Ver 2.5.17.240622
- Fix activation in MacOS
- Support for MacOS in .NET 6/8 (experimental)
Ver 2.5.16.240622
- Updates the management of online license for MacOS
- Supports MacOS in .NET 6/8 (experimental)
Ver 2.5.15.240621
- Fix an issue during activation of the secondary host context within .NET
- Adds support for MacOS in .NET 6/8 (experimental)
Ver 2.5.14.240617 (Early published)
- Build toolchains upgrade to Visual Studio 2022
- Adds Monitor API management: read carefully the API remarks before use them
- Removes support for win-arm in .NET 8
- Fix .NET 6/8 activation
Ver 2.5.13.240514 (Maintenance release)
- Maintenance release to fix CastTo as reported in https://github.com/masesgroup/JCOBridge/issues/5
Ver 2.5.12.240512
- Adds methods, based on ByteBuffer, to optimize data exchange at CLR-JVM boundary (requested from https://github.com/masesgroup/JCOBridge/issues/3):
- CLR: added NewDirectBuffer and GetDirectBuffer methods on IJVMWrapperDirect interface
- JVM: added new JCSharedBuffer class to help creation of ByteBuffer based on native memory
- Breaking changes:
- Removed support for .NET 7
- Method CastTo strictly checks cast behavior
- Fix some issues using JDK 21 reported from (see https://github.com/masesgroup/JCOBridge/issues/4):
- within the parse of the constructors parameters, the JVM raises an ACCESS VIOLATION exception if the constructor declares one, or more, exception can be thrown
- Other minor enhancement and fixes, most notables are:
- Added WrapsDirect method to reduce load on JVMBridgeBase type casting
- Removed static constraints check on class instantiation to instantiate nested static classes
- Removed some unnecessary JNI methods invocations
- Added ThreadPriority on IEnumerableExtension
- Optimized Array enumeration
Ver 2.5.11.240229
Ver 2.5.10.240120
- PERFORMANCE IMPROVEMENT: recovers more or less one microsecond in each method execution request to the JVM, which more than doubles execution speed
- Fix the error reported in https://github.com/masesgroup/JCOBridge/issues/2: generated from a missing object reference, the Garbage Collector executes a GEN 0 collection retiring the non referenced object, destroying the object counterpart in the JVM
- Minor fixes
Ver 2.5.9.231125
- Adds in-place support for .NET 8
- Fix InvalidOperationException when Windows registry miss some information
Ver 2.5.8.230625
- Added IJVMBridgeMain interface to identify Main-Class types
- Added JVMBridgeMainExtensible beside JVMBridgeMain
- Added a mechanism to retrieve Main-Class types and execute them
- Minor fix on previous version
Ver 2.5.7.230503
Ver 2.5.6.230415
- Added new method overload of IsInstanceOf and IsAssignableFrom based on fully qualified name of class
- Added new methods to retrieve IJavaType using both fully qualified name of class and class type constraint
- Added new methods in JVMBridgeBase to execute operations on user defined IJavaType (requested to cover https://github.com/masesgroup/JNet/issues/152)
- Fully reviewed graphical integration subsystem:
- Added JCWindowsManager class to manage windows integration between .NET and JVM graphical system
- Reviewed IJCGraphicContainer interface to receive reviewed graphical management
- Minor fix on previous version
Ver 2.5.5.230406 (Maintenance release)
- Maintenance release: published artifact of version 2.5.4 not aligned to latest development status
- Updates for parallel execution on HPC: in some conditions the library reports a false positive error
- Added new kind of Enumerator to accomplish the request in https://github.com/masesgroup/JNet/issues/139
- Added ability to cast to sub class, previous version worked only in super class direction
- Enhanced JVMBridgeBase* classes with IsInstanceOf, CastTo and IsAssignableFrom methods
- Minor changes from previous release to accomplish on needs of https://github.com/masesgroup/JNet
Ver 2.5.4.230405
- Updates for parallel execution on HPC: in some conditions the library reports a false positive error
- Added new kind of Enumerator to accomplish the request in https://github.com/masesgroup/JNet/issues/139
- Added ability to cast to sub class, previous version worked only in super class direction
- Enhanced JVMBridgeBase* classes with IsInstanceOf, CastTo and IsAssignableFrom methods
- Minor changes from previous release to accomplish on needs of https://github.com/masesgroup/JNet
Ver 2.5.3.230222
- Solved an issue which causes sporadic application crash due to an asynchronous collection made by GC during a JNI operation
- Reduced the number of JNI calls from .NET to Java: obtained an extra speed of 20% from previous version in some operating conditions
- Added the methods Notify, NotifyAll, Wait to JVMBridgeBase and to every class extending it
- Added an handler to receive info and exception in user code, default behavior prints output on console
- Added the ability to register all exception classes defined within an assembly
- Typed exceptions can be directly retrieved
- Added a new switch to set the module paths
Ver 2.5.2.230208 (Maintenance release)
- Reports on console the failure of online license requests
Ver 2.5.1.230131 (Maintenance release)
- Upgrade .NET Framework from v4.6.1 to v4.6.2: v4.6.1 end of support on 26th April
- Removed .NET 5: end of support on 10 May 2022
- Removed .NET Core 3.1: end of support on 13 December 2022
- Added .NET 7
- Minimum Java version supported is 11
- License model upgrade to actively support community: it is possible to use online requests together with file based licensing
- Speed improvements by 40%
- Templates moved to JNet project, see https://github.com/masesgroup/JNet
- Made public other methods
- Non functional fix on previous version
Ver 2.5.0.230128
- Upgrade .NET Framework from v4.6.1 to v4.6.2: v4.6.1 end of support on 26th April
- Removed .NET 5: end of support on 10 May 2022
- Removed .NET Core 3.1: end of support on 13 December 2022
- Added .NET 7
- License model upgrade: it is possible to use online requests together with file based licensing
- Speed improvements by 40%
- Templates moved to JNet project, see https://github.com/masesgroup/JNet
Ver 2.4.14.220818
Ver 2.4.13.220816
- Fixed regression in JCRefOut for native types
Ver 2.4.12.220507
- Fixed regression in object array
- Fix on previous version
Ver 2.4.11.220428
- Fixed management of heavy memory pressure on Garbage Collector
- Added new statistics on JNI interface
- Fix on previous version
Ver 2.4.10.220413
Ver 2.4.9.220328
- All classes within Java.Lang namespace now are fully available in MASES.JNet NuGet package
- Classes under namespace Java.Util.Function fully moved within MASES.JNet NuGet package
- Graphic management classes are now obsolete, moved within MASES.JNet NuGet package: they will be removed in a future major release
- Update method signature to avoid stackoverflow with latest versions of AWT
- Fix on previous version
Ver 2.4.8.220319
- Removed most of the classes within Java.Lang namespace: moved on MASES.JNet NuGet package
- New command-line switches and initialization
- Fix on previous version
Ver 2.4.7.220309
- Fixed management of get/set fields with non primitive type
- Breaking changes:
- MASES.JCOBridge.C2JBridge.Exceptions becomes Java.Lang
- MASES.JCOBridge.C2JBridge.Function becomes Java.Util.Function
- Added almost all classes under java.lang package: only someone are implemented; waiting for full implementation a developer can access methods/fields with dynamic
- JVMBridgeBase now expose a property named Class to be more compliant with the Java equivalent .class keyword
- Added JVMBridgeListener to continue in API surface consolidation
- CLRListener becomes obsolete
- Fix on previous version
Ver 2.4.6.220205
- API surface consolidation
- Improvements on array management
- Improvements on Exception management
- JVMBridgeBase classes expose new accessors and it is based on an interface (IJVMBridgeBase)
- Listener inherits from IJVMBridgeBase
- JVMBridgeBase is able to identify arguments of IJVMBridgeBase and ICLRListener types and manages them conseguently
- Events in java.util.function package now exposes interfaces
- Fix on previous version
Ver 2.4.5.220108
- Added new APIs
- Improvements on Exception management
- Fix on previous version
Ver 2.4.4.220103
- Fix on package publishing
Ver 2.4.3.211213
- .NET side is able to send back data to the JVM upon events
- Events can now manage more than one information
- java.lang.function package is directly managed from the core
- Exceptions of java.lang package directly managed from the core
- Important fix on version 2.4.2
Ver 2.4.2.211211
- .NET side is able to send back data to the JVM upon events
- Events can now manage more than one information
- java.lang.function package is directly managed from the core
- Exceptions of java.lang package directly managed from the core
- Minor fixes on version 2.4.1
Ver 2.4.1.211121
- Added new features to .NET JVMBridge classes
- Management of JavaException in CLR
- Minor fixes on version 2.4.0
Ver 2.4.0.211113
- Added .NET 6 target
- Better management of JavaException in the engine
- Added LastBindingException to help in debugging underlying subsystem
- Added some classes helping to bridge JVM from .NET
- Removed support for MSI installer
Ver 2.3.2.210304
- Added “NativePath” command line option to define where the JCOBridge runtime is located.
- Minor fixes in documentation.
Ver 2.3.1.201207
- Fixed issues with .NET Core 3.1
- Enabled online check of Trial License Agreement.
Ver 2.3.0.201115
Ver 2.2.1.200603
- Removed the limitation to a single embeddable instance if the JavaUI control has its own message pump detached from main UI message pump
- Removed limitation on JCRefOut to single object: management of arrays now is a public feature
- Exposed internal API, on both JCType and JCObject, to interact with underlying System.Type and fields
- Solved minor issues
Ver 2.2.0.200516
This update adds new wrapper libraries for Windows and Linux. News in this update:
- On platforms, where WindowsDesktop is supported, it is possible to integrate a Java Component within the WPF/WindowsForm main application
- Added new Java event management (Mouse, Keyboard, Focus, etc) to help users with ready made classes
- Now shared objects between CLR and JVM are available on .NET Core
- Added win-arm, win-arm64, linux-arm and linux-arm64 wrapper libraries
- Runtime Identifier is no more mandatory, Java Initialize does not needs it from the command line; if it is not found automatically the user must specify it
- Added functions to start external thread and daemon thread from .NET
- Minor change on API and interfaces to better cover some behaviors
- Solved minor issues
Known limitations:
- .NET Core Type identification from Java code needs, in some condition, an explicit assembly qualified name. Some types reported to be in one assembly really is managed from another one: e.g. System.Uri, System.Runtime.dll (https://docs.microsoft.com/it-it/dotnet/api/system.uri?view=netcore-3.1) really is managed from System.Private.Uri.dll
Ver 2.1.0.200415
This update introduces the general availability to invoke .NET Core API from Java. With this update both .NET Core and .NET Framework are aligned with a complete bidirectional communication between JVM and CLR. News in this update:
- New command line switch available for Java
Known limitations:
- The NET Core initialization libraries are available for Windows x86/x64 and Linux x64. Other platforms available on demand.
- .NET Core Type identification from Java code needs an explicit assembly qualified name: it will be updated in a future release; .NET Framework has a better type resolver.
- WindowsDesktop is an experimental feature. Do not use it in production: use the version available on https://www.jcobridge.com instead.
Ver 2.0.1.200409
This is critical patch update to solve an issue revealed in version 2.0.0.200321. The previous version will be retired.
Other news in this update
- Added missing J2CBridge wrapping libraries for Linux x86/x64
- New command line switch for license search path
- Simplified usage of SetupJVMWrapper initialization class
Ver 2.0.0.200321
The major improvements of this version is on the CLR host: now it is possible to use .NET Core on different operating system.
JVM (Available only for .NET Framework, .NET Core coming soon)
- Added event management for JVM graphical environment (AWT/Swing)
- All features of previous versions
CLR (Available for .NET Framework on Windows and .NET Core on Windows and Linux, other platforms available on demand)
- Added .NET Core host (Windows/Linux), other platfoms are available on demand
- Management of events coming from JVM graphical environment
- All features of previous versions
Ver 1.0.2.0
- minor fix
- minor performance improvement
Ver 1.0.0.0
JVM
- Retrieve CLR Type
- Instantiate CLR object
- Invoke static or instance methods
- Get or set static or instance properties
- Subscribe to events
- Integrates into AWT or Swing both WPF and WinForms controls, managing properties and events
CLR
- Retrieve JVM class
- Instantiate JVM objects
- Invoke static or instance methods
- Get or set static or instance fields
- Use dynamic access to write code in a seamless way as it is done in Java language
- Use specific interface to direct manages methods and fields