Release notes

Ver 2.5.11.240229

Ver 2.5.10.240120

  • PERFORMANCE IMPROVEMENT: recovered more or less one microsecond in each method execution request to the JVM, which more than doubles execution speed
  • Fixed 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

  • Added in-place support for .NET 8
  • Fixed 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

  • Fix on previous version

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

  • Fix on previous version

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

  • Support for .NET 5

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