Added new JAVA port option (on by default) to enable Java bindings for libmesos.
Please coud you review some areas of concern which I have marked starting with `#REVIEW:` in the Makefile.
**Issue: Maven Build Dependencies**
Enabling Java bindings causes Maven to be invoked mid-way through the build process to build the `mesos.jar` artifact.
On a ports build system this will fail as internet connectivity is only available during the fetch phase.
**Resolution**
Created a trimmed down version of the `mesos.pom` placed under `files/maven-deps.pom` intended purely for dependency resolution.
During fetch phase Maven invoked with the `dependency:go-offline` goal to fetch all dependencies into the local maven repository upfront.Pushed all required Maven deps into GitHub, so they can be fetched as a normal distfile:
MAVEN_OPTS is then set to point to the local maven repository, so that when Maven is invoked later in the build phase all dependencies will be resolved from the local maven repository rather than fetched online.
**Issue: Mismatched Protobuf.jar version**
The mesos build already has a dependency on `devel/protobuf` from ports (currently version 3.12.2). However enabling java bindings in the build also requires `protobuf.jar` from Maven which has the version hardcoded to `3.5.0` within `mesos.pom.in`. This version mismatch will cause the build to fail.
**Resolution**
Created a patch (`files/extra-patch-src_java_mesos.pom.in`) to replace the harcoded protobuf version with a placeholder `@PROTOBUF_VERSION@` string. During the post-patch phase, this placeholder is replaced inline from the PROTOBUF_VERSION Makefile variable which is set to the current ports version of protobuf (3.12.2). Would be better if PROTOBUF_VERSION could be set to the current version of `devel/protobuf` in the Makefile rather than hardcoding, but I'm not sure how that would be done, any advice appreciated!
**Bugzilla**
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=247419