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>
This commit is contained in:
committed by
Brendan Le Foll
parent
5160d909d3
commit
03b548c33b
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
7
src/java/manifest.txt.in
Normal file
7
src/java/manifest.txt.in
Normal file
@@ -0,0 +1,7 @@
|
||||
Manifest-version: 1.0
|
||||
|
||||
Name: mraa/
|
||||
Specification-Title: mraa
|
||||
Specification-Version: @VERSION_SHORT@
|
||||
Package-Title: mraa
|
||||
Package-Version: @VERSION_SHORT@
|
||||
@@ -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 + ".");
|
||||
}
|
||||
}
|
||||
%}
|
||||
|
||||
Reference in New Issue
Block a user