JNIEasy : Release Notes / Changes
1.2.1 version, 2008 March 31
- Added Solaris x86 support. Compiled and tested on Solaris 11 (OpenSolaris x86 b85)
- Fixed Mac OS X 10.4 (Tiger) problems.
JNIEasy is reported to run on Tiger 10.4.5 and Leopard 10.5
- Programmatic specification of search paths to locate native libraries calling
JNIEasy.setFeature("java.library.path","path-list"). If this feature
is specified JNIEasy uses this path list
and ignores "java.library.path" system property.
Now JNIEasy can be fully configured on runtime.
- LD_LIBRARY_PATH or DYLD_LIBRARY_PATH is no longer needed to
locate native libraries,
(was necessary on Mac OS X), use "java.library.path" instead.
- Updated manual and javadoc accordingly
- Manual: added a new chapter
"7.5 MAPPING NATIVE LEGACY CLASSES" showing how to access from
Java legacy C++ classes with no source changes. Included a running example
(ManualExamples.Mapping_native_legacy_classes() method).
1.2 version, 2008 January 18
- Support of Mac OS X 10.4 (Tiger) and upper
- Ant file is simplified and now true multiplatform, basePath property adjusting
(/conf/conf.properties)
no longer necessary
- Size of JNIEasy.dll and libJNIEasy.so drastically reduced.
- Added JNIEasy.getFeature/setFeature/hasFeature methods
- Programmatically location of the JNIEasy's license folder
calling JNIEasy.setFeature(String,Object)
with "jnieasy.license.dir" and the license folder path (before calling JNIEasy.load())
- Removed dependency from InnowhereUtil.jar and Xerces jars (xercesImpl.jar and xml-apis.jar),
no longer necessary.
- Removed dependency from InnowhereException and InnowhereXMLException, JNIEasyException
now inherits from RuntimeException
- Java methods wrapping native methods can now be declared as "native" (with no body)
- Added "params" attribute to XML declarations of methods and constructors to specify
the selected method/constructor when no special native configuration is necessary
for parameters. Updated examples to the new compact syntax when apropriated.
- Fixed bug: NativeTransaction.setSynchronization does nothing
1.1.0.1 version, 2007 April 25
- License change: removed the "Audit" clause (item 12)
- Minor license management changes (license evaluation days calc)
1.1.0.0 version, 2006 Sept 12
- First x86 Linux version
- New license model to open source projects: a special runtime-only JNIEasy.lic file,
can be freely distributed to run JNIEasy related projects with no time limit
- Introduced an "inspired" C macro style to define platform dependent names
(DLLs/shared objects can have different names by platform, exported names can have different name manglings)
and sizes (a user defined Java native class can have several native layouts)
- Java primitive types can have user defined variable native sizes and alignments
- Varargs support to call native methods like printf
- Revised, improved and updated Manual, javadocs and tutorial
- DLLs/shared objects are located using the java.library.path Java system environment variable
- Optional JNIEASY_LICENSE_DIR Java environment variable to locate the JNIEasy.lic file
- Code examples:
- Updated to Linux and including new features
- Directory tree reorganized to support multiple operating systems
- Ant build.xml reorganized and updated to compile/run with Linux
- Native code examples can be compiled with Visual C++ 6+, MinGW, cygwin and Linux gcc
- Provided .bat and .sh files to execute the examples from command line without Ant
- Removed CodeBlocks dependency, no GUI is needed to compile the examples (only Ant)
- API changes:
- Removed NativeTypeManager.decAddress(Class), changed
for NativeTypeManager.decAddress()
- New methods: NativePrimitiveUtil.toString(byte[]), NativePrimitiveUtil.toString(char[])
- New methods related to macros: NativeTypeManager.getMacro(String) / defineMacro(...) /
isDefinedMacro(String) / undefMacro(String) / getMacros() / parseTextWithMacros(String) / parseMemorySizeWithMacros(String) /
getSize(String) / decPrimitive(Class,String) / decPrimitive(Class,String,String) /
decString(Class,String) / decStringBuffer(Class,String)
- New methods related to primitives with user defined memory size:
NativeTypeManager.decPrimitive(Class,long,long) / decPrimitive(Class,long) /
setDefaultXSize(long) / setDefaultXSize(long,long) / getDefaultX(Align)Size() where X is Boolean, Int, Char etc
- New methods to support wchar_t with platform dependent size (2 or 4 bytes, used in Unicode strings)
NativeTypeManager.getWCharTSize() / setWCharTSize(long)
- New interfaces: TypeNativePrimitiveObject, TypeNativePrimitiveWrapper
- New class JNIEasyNativeException throwed by native code
- New interface: NativeParameterDec
- Varargs support using the method VarTypeNative.decParameter(boolean)
- Expressions like
int{memSizeExpr[,prefAlignSizeExpr]} using macros
can be used to declare primitive types with user defined sizes with methods like NativeTypeManager.dec(String)
- XML changes:
- libraryPath, nativeName and encoding attributes can use the new macro system
to declare platform dependent names
- New attributes: memSize and prefAlignSize to declare the size/alignment of primitive types using the new macro system
- alignSize attribute can use the new macro system
- New attribute varargs to declare a varargs parameter, or using the "Type..."
syntax with dec attribute.
- Updated javassist to v3.3
- User defined classes enhanced/generated with previous releases, must be recompiled, re-enhanced and/or regenerated
1.0.0.1 version, 2006 June 22
- Minor license management changes
1.0.0.0 version, 2006 June 9
- First commercial version
- User defined classes must be recompiled, re-enhanced and/or regenerated
0.9.1.0 version, 2006 May 30
- Enhancer modifications: user defined classes must
be recompiled, re-enhanced and/or regenerated
- JNIEasy.getVersion() now returns the correct version
0.9.0.2 version, 2006 May 18
- Minor modifications in the examples (erroneous use of unions)
- Minor modifications in the documentation (erroneous use of unions)
0.9.0.1 version, 2006 May 11
- Minor modifications in the examples
0.9.0.0 version changes, 2006 May 6
up
|