Compare commits

...

1 Commits

Author SHA1 Message Date
Stefan Andritoiu
8ce214ae86 java: Added version information & checks to ensure Java version matches Native version
Signed-off-by: Stefan Andritoiu <stefan.andritoiu@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2016-06-01 11:30:08 +01:00
4 changed files with 41 additions and 1 deletions

View File

@@ -193,6 +193,8 @@ if (BUILDSWIG)
add_subdirectory (python)
endif ()
if (BUILDSWIGJAVA)
configure_file (${CMAKE_CURRENT_SOURCE_DIR}/java/manifest.txt.in
${CMAKE_CURRENT_BINARY_DIR}/java/manifest.txt)
add_subdirectory (java)
endif ()
if (BUILDSWIGNODE)

View File

@@ -33,7 +33,7 @@ add_custom_command (TARGET mraajava
COMMAND cmake -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/mraa
COMMAND ${JAVAC} *.java -d ${CMAKE_CURRENT_BINARY_DIR}
COMMAND cmake -E echo "Creating jar"
COMMAND ${JAR} cvf mraa.jar mraa
COMMAND ${JAR} cvmf manifest.txt mraa.jar mraa
)
if (DOXYGEN_FOUND)

9
src/java/manifest.txt.in Normal file
View File

@@ -0,0 +1,9 @@
Manifest-version: 1.0
Name: mraa/
Specification-Title: mraa
Specification-Version: @VERSION_SHORT@
Specification-Vendor: Intel Corp.
Package-Title: mraa
Package-Version: @VERSION_SHORT@
Package-Vendor: Intel Corp.

View File

@@ -96,5 +96,34 @@ class Spi;
System.err.println("Native code library failed to load. \n" + e);
System.exit(1);
}
String javaAPIVersion = mraa.class.getPackage().getSpecificationVersion();
String nativeAPIVersion = mraa.getVersion().substring(1);
String javaMajor = javaAPIVersion.substring(0, javaAPIVersion.indexOf('.'));
String nativeMajor = nativeAPIVersion.substring(0, nativeAPIVersion.indexOf('.'));
if(Integer.parseInt(javaMajor) < Integer.parseInt(nativeMajor)){
System.err.println("Java library is out of date. Please update the Java library.");
System.err.println("Native library version is " + nativeAPIVersion + ". Java library version is " + javaAPIVersion + ".");
System.exit(1);
}
if(Integer.parseInt(javaMajor) > Integer.parseInt(nativeMajor)){
System.err.println("Native library is out of date. Please update the Native library.");
System.err.println("Native library version is " + nativeAPIVersion + ". Java library version is " + javaAPIVersion + ".");
System.exit(1);
}
String javaMinor = javaAPIVersion.substring(javaMajor.length() + 1, javaAPIVersion.indexOf('.', javaMajor.length() + 1));
String nativeMinor = nativeAPIVersion.substring(nativeMajor.length() + 1, nativeAPIVersion.indexOf('.', nativeMajor.length() + 1));
if(Integer.parseInt(javaMinor) < Integer.parseInt(nativeMinor)){
System.err.println("Java library is out of date. Please consider updating the Java library.");
System.err.println("Native library version is " + nativeAPIVersion + ". Java library version is " + javaAPIVersion + ".");
}
if(Integer.parseInt(javaMinor) > Integer.parseInt(nativeMinor)){
System.err.println("Native library is out of date. Please consider updating the Native library.");
System.err.println("Native library version is " + nativeAPIVersion + ". Java library version is " + javaAPIVersion + ".");
}
}
%}