JPPF Changelog

New in version 5.0.0

March 7th, 2015
  • .Net integration:
  • The main focus of this release, the .Net bridge for JPPF brings JPPF grids to the .Net world.
  • Submit pure .Net workloads and execute them on .Net-capable JPPF nodes
  • The .Net client API is almost identical to the Java API
  • Includes full grid management and monitoring features
  • .Net and Java clients can mix freely in the same grid
  • Administration console extensions:
  • new extension point: add your own pluggable view to the administration tool. A new sample "topology event log" is provided to showcase this feature.
  • any built-in view can be hidden at will
  • the administration console can be embedded in any other Swing application
  • the columns in all tree views can now be switched from visible to hidden on demand
  • ability to import/export the console settings, including window size and location, value of persistent fields, tree columns' hidden state and width, charts definitions
  • new charts types and fields are now available for built-in and user-defined charts
  • the console was refactored to use more consistent code and APIs. In particular, it is now based on the new grid topology monitoring API
  • New APIs:
  • A new grid topology monitoring API was added, enabling developers to programmatically browse the JPPF topology and receive notifications of any change. This is also the API the administration console is based on
  • New and convenient methods were added to easily explore the client connections pools and obtain connection objects
  • Execution policies now have access to contextual information during their evaluation
  • Connection pools defined in the configuration can now indivdually specify whether secure connections should be used
  • A new helper class is provided to facilitate the implemetntation of job streaming patterns
  • Server extensions and improvements:
  • It is now possible to receive the status of tasks returning from the nodes with fine details
  • The thread pool management was refactored, resulting in many less threads created and increased scalability
  • Management and monitoring:
  • server monitoring: all MBean methods getting information on the nodes now accept a NodeSelector parameter to provide fine-grained filtering
  • server management: server broadcasting can now be remotely enabled or disabled on-demand
  • nodes reprovisioning requests, as well as shutdown and restart requests, can now be deferred until the nodes are idle
  • Deployment:
  • Servers and nodes can now be installed as Windows services without having to download a third-party library
  • Nodes in "idle host" mode (aka CPU scavenging) can now be configured to stop only when the current tasks are complete
  • Refactoring of distribution packaging
  • The JPPF jar files were refactored to adopt a more meaningful naming and a consistent distribution of the code.
  • All new features and enhancements:
  • New Features:
  • JPPF-6 Improvements for nodes in idle mode
  • JPPF-29 Ability to disable resource lookup in the file system
  • JPPF-261 Refactor the jar packaging in the JPPF distribution
  • JPPF-262 Integrate the functionality of JPPFResultCollector into JPPFJob
  • JPPF-294 Ability for individual connection pools to specify whether they use SSL
  • JPPF-295 Execution policies should have access to job and grid information
  • JPPF-298 .Net bridge for JPPF
  • JPPF-303 Let node shutdown and reprovisioning respect executing nodes
  • JPPF-314 Admin console charts: add new chart types and fields
  • JPPF-315 Admin console support for pluggable components and external GUI integration
  • JPPF-318 Provide a helper class for building job streams
  • JPPF-323 Integrate Idle Host mode as part of the main code
  • JPPF-330 Add a Task.getTaskClassLoader() method
  • JPPF-334 Provide physical/virtual machine RAM information for nodes and drivers
  • JPPF-336 New sample: admin console pluggable view
  • JPPF-341 Allow Monitoring and Administration Tool to display either HostName or IP
  • JPPF-348 Ability to import/export the admin console settings
  • JPPF-349 Admin console: ability to hide columns in tree table views
  • JPPF-352 Alternative to drivers and nodes as Windows services using Apache commons daemon
  • JPPF-353 Notifications of tasks completion status in the server
  • Enhancements:
  • JPPF-306 Revisit the samples to apply the job streaming pattern where applicable
  • JPPF-307 Server scalability: improve the thread pool handling for NIO operations
  • JPPF-310 Improve the handling of non-serializable tasks in the client.
  • JPPF-316 Improve server responsiveness when many nodes connect at once
  • JPPF-317 Add awaitXXX methods to the client side connection and JMX pools
  • JPPF-322 Properties substitutions: implement missing use cases, improve resources usage
  • JPPF-332 Change all popup windows and child frames to modeless dialogs
  • JPPF-350 Add a CLOSED status for client to server connections
  • JPPF-367 Document which jars each package can be found in
  • JPPF-369 Add nodesInformation(NodeSelector) method to JPPFDriverManagementMBean

New in version 4.2.6 (February 9th, 2015)

  • Bug fixes:
  • JPPF-357 J2EE connector does not work with Wildfly 8.x app server
  • JPPF-359 Node unable to reconnect when connection is closed from a separate thread
  • JPPF-360 Nodes not enrolled in tasks distribution when JMX server is disabled or unreachable
  • JPPF-361 Driver sends results for wrong job upon task resubmit
  • Enhancements:
  • JPPF-362 Ability for the cient to handle multiple class loaders per job

New in version 4.2.5 (December 26th, 2014)

  • Bug fixes:
  • JPPF-354 NPE in the node notification forwarding mechanism
  • Enhancements:
  • JPPF-355 Add an "interruptible" flag to the tasks

New in version 4.2.4 (December 19th, 2014)

  • Bug fixes:
  • JPPF-340 Deadlock on task completion
  • JPPF-342 Uncontrolled incrementing of idle node count
  • JPPF-343 Use of log4j2 with console appender causes slave node to hang
  • JPPF-344 Server deadlock with many slave nodes
  • JPPF-345 Shutdown vs. Provisioning race condition causes duplicate nodes with incomplete tasks
  • Enhancements;
  • JPPF-346 Make JPPFManagementInfo immutable

New in version 4.2.3 (October 21st, 2014)

  • JPPF-327 Node deadlock when shutting it down
  • JPPF-329 Inconsistent classloading in org.jppf.client.balancer.ChannelWrapperRemote
  • JPPF-333 Server statistics report incorrect inbound traffic from nodes and clients
  • JPPF-335 NPE in JMXConnectionWrapper.getAttribute()
  • JPPF-337 Deadlock upon closing the administration console
  • JPPF-338 Issues with recovery of peer server connections
  • JPPF-339 Driver log full of null pointer exception traces

New in version 4.0 (January 14th, 2014)

  • JPPF 4.0 brings volunteer computing, dynamic scripting, easier configuration management, awesome new demos, and a lot more.

New in version 4.0 RC1 (January 4th, 2014)

  • This version is feature-complete and passes all automated tests.
  • Performance tests, stress tests, and load tests are still ongoing and may result in code updates and fixes, however no public API or implemented feature will be changed in the final release.

New in version 4.0 Beta (December 3rd, 2013)

  • Bug fixes:
  • JPPFConfiguration constructor and getConfigurationStream() method should be private
  • Missing batching of class loading requests in class loading doc
  • Enhancements:
  • Class loader enhancements: client channel requests
  • Apply data transformation and serialization scheme to JMX data
  • Fully automate unit testing for the J2EE connector
  • Generalize the tasks exception property to Throwable type
  • Improve handling of deserialization errors in the nodes
  • Add the 'jppf.' preffix to the configuration properties that miss it
  • Feature requests:
  • Ability to export statistics
  • Ability for the nodes to work offline
  • Class loader statistics
  • Data transfer statistics
  • Make the client dynamically configurable
  • Refactor the client and node APIs to use Task instead of JPPFTask
  • Provide a more flexible mechanism for custom serialization extension
  • Add Wikipedia database word count as a sample
  • JCA connector: provide a mechanism for reconfiguration of the client without restart of the app server
  • Ability to change the admin console layout
  • Ability to include external configuration in the JPPF configuration
  • Optimize deserialization errors handling in the node
  • Timeout of bundles dispatched to the nodes
  • Ability to associate a screen saver with a node
  • Extend the JPPF network protocol to enable properly closing the network connections
  • Built-in ability for the tasks to send notifications during execution
  • Drop support for OC4J app server in the JCA connector
  • Ability to reset the JPPF client
  • Tasks:
  • Regroup NodeLifeCycleListener and NodeLifeCycleListenerEx into a single interface
  • Refactor the entire statistics and performance monitoring APIs
  • Provide an API for easily implementing simple hooks in any area
  • Refactor the client API so that standalone and JCA client use the same code
  • Move "jdk7 add-ons" to the "common" module
  • Genericize the get methods of dictionary types
  • Create minimal set of unit tests for SSL/TLS configurations
  • Create minimal set of unit tests for multi-server configurations
  • Document the API changes between 3.3 and 4.0

New in version 3.3.7 (November 28th, 2013)

  • Bug fixes:
  • JPPF-198 Issues with multi-server topologies
  • JPPF-199 Regression causes JPPFTask.compute() to throw a ClassCastException
  • JPPF-200 Documentation incorrectly states that idle socket timeout is working for server and nodes
  • JPPF-203 Class loader resource cache generates duplicate resources

New in version 4.0 Alpha 2 (October 19th, 2013)

  • This alpha release brings major new features and enhancements.
  • A new offline mode for the nodes increases scalability by an order of magnitude and makes JPPF ideal for volunteer computing.
  • A new Wikipedia work count sample demonstrates how to tackle big data.
  • Error handling and reporting from the nodes is now easier than ever.
  • Performance was significantly increased in many areas.
  • Automated test coverage has vastly increased.

New in version 3.3.6 (September 21st, 2013)

  • This maintenance release brings important bugfixes and enhancements, including increased security options for SSL authentication and a significant improvement of the distributed class loader performance.

New in version 3.3.3 (June 15th, 2013)

  • This maintenance release brings important bug fixes.

New in version 3.3.1 (April 27th, 2013)

  • This version brings a few bugfixes and performance improvements.

New in version 3.3 (April 8th, 2013)

  • This version brings grid health monitoring, GPU computing, new class loader extensions, publication to Maven Central, and greater flexibility in network management.

New in version 3.3 RC1 (March 28th, 2013)

  • This release candidate brings major new features, including GPU computing, JVM health monitoring, scalable node management, and more.

New in version 3.2.3 (March 13th, 2013)

  • This maintenance release brings important bugfixes.

New in version 3.3 Beta (February 19th, 2013)

  • This beta version brings new bugfixes, enhancements, and features.

New in version 3.2.2 (January 28th, 2013)

  • This maintenance release brings important bugfixes, including a critical issue preventing secure connections to the server.

New in version 3.2.1 (January 8th, 2013)

  • This maintenance release includes important bugfixes.

New in version 3.2 (December 19th, 2012)

  • This release brings client-side scheduling and SLA, class loader performance and resilience improvements, and IPv6 readiness.

New in version 3.1.4 (November 13th, 2012)

  • This version includes major bugfixes and improves stability, reliability, and resource consumption.

New in version 3.1.3 (September 24th, 2012)

  • This maintenance release brings important bugfixes.

New in version 3.1.1 (July 10th, 2012)

  • This is a maintenance release which brings important bugfixes

New in version 3.1 (June 26th, 2012)

  • A new secure communication layer, based on SSL/TLS, has been added to the framework.
  • A graph view of the grid topology has been added to the administration console.
  • Load-balancing of local vs. remote execution is now fully configurable in the client.
  • Nodes now support a local fork/join execution model.
  • Executor services now support jobs SLA and metadata, as well as task cancellation and timeout handlers.

New in version 3.0 (February 1st, 2012)

  • This version brings incredible improvements in ease of use, stability, reliability and flexibility. The configuration was simplified and improved.
  • Job recovery was improved and job failover was added on the client side.
  • New, fully documented class loading extensions were added.
  • New extension points are now available.
  • The administration console, management, and monitoring features have received new capabilities and improvements.
  • Four full-fledged examples applications were added.

New in version 2.5.5 (December 19th, 2011)

  • This maintenance release brings important bugfixes which improve stability and scalability.

New in version 2.5.4 (November 15th, 2011)

  • This version brings important bugfixes, with increased stability and scalability.

New in version 2.5.3 (September 13th, 2011)

  • This maintenance release brings important bugfixes and minor enhancements, including class loader and serialization bugfixes, along with a port of the J2EE connector to JBoss 7.

New in version 2.5.2 (August 1st, 2011)

  • 3382065 - Deadlock in node when using generic serialization
  • 3362103 - SerializationUtils.readLong - wrong results
  • 3362045 - Deserializer - read int array instead of longs
  • 3362017 - InputStream not closed 3x
  • 3358138 - the doc does not mention that JMX port are auto-incremented
  • 3356881 - REG 2.5.1: NPE: ResourceProvider.getMultipleResourcesAsBytes
  • 3373217 - Node failover is not working

New in version 2.5.1 (July 6th, 2011)

  • This version brings important bug fixes related to deadlocks in clients and nodes, along with a few minor enhancements to the class loading mechanism.

New in version 2.5 (June 6th, 2011)

  • JPPF now features broadcast jobs, flexible serialization schemes, data grid integration, an embedded FTP server, a new parallel N-body simulation, and many other enhancements and fixes.

New in version 2.4 (December 27th, 2010)

  • This release provides critical bug fixes, performance and resources usage enhancements, along with new features that increase JPPF's ease of use and integration capabilities

New in version 2.3 (October 19th, 2010)

  • Changes:
  • JPPF now takes advantage of computers on which no user activity is occurring. It is very easy to configure a JPPF node to start when no keyboard or mouse activity has occurred for a specified time, and stop upon any new activity from the user.
  • The scheduling mechanism has been improved to provide more fairness among concurrent jobs with the same priority.
  • Logging traces are now available as JMX notifications via the JPPF management APIs. Developers can now receive, display and store traces from nodes and servers in a single location.
  • A long-awaited new mechanism enables the detection of hardware failures of a node or server, allowing recovery in a resonable time frame. This brings a new level of resilience and reliability to the JPPF grid.
  • It is now possible to configure a node to run in the same JVM as a JPPF server, via a single on/off switch.
  • New Features:
  • 3059420 - Take advantage of idle computers
  • 3044110 - Job scheduling enhancements
  • 3042238 - JMX-based remote loggers
  • 3042227 - Provide packaged sources for each module
  • 2981736 - Pluggable panels in the administration UI
  • 2977887 - Ability to run a node in the same JVM as the server
  • Bug Fixes:
  • 3074513 - ClassCastException using JPPFClient(String) constructor
  • 3071454 - OOME: Direct buffer space, reading large data from a socket
  • 3071045 - Uncaught OOM in the driver while receiving tasks from a node
  • 3069849 - Driver hangs on disk overflow operation
  • 3066604 - Nodes shown in red in the console after driver restart

New in version 2.2 (July 27th, 2010)

  • JVM Support:
  • As of version 2.2, JPPF is dropping support for the JDK 1.5. Only JDK 1.6 and later are supported.
  • JPPF Executor Service:
  • This new API provides an executor service facade for the JPPF client. It implements all the functionality specified in java.util.concurrent.ExecutorService
  • Administration console:
  • A new status bar indicates the number of currently connected servers and nodes
  • The topology view includes two new buttons in the toolbar to select all servers or all nodes at once
  • Multiple bugs have been fixed, making the console mmore robust and reliable than ever
  • Connectors:
  • The J2EE connector now has the ability to connect to multiple servers and automatically discover servers on the network.
  • The Gigaspace connector was upgraded to support Gigaspaces XAP 7.1.1
  • The Tomcat connector was upgraded to support Tomcat 7.0.0 beta
  • All three connectors have seen their demo web application revamped for a more enjoyable experience
  • Job SLA:
  • JPPF Jobs can now be set to expire at a specified date or after a specified amount of time.
  • Samples:
  • The network data encryption sample was upgraded to offer a much more secure solution.
  • New Features:
  • 3018899 - Upgrade to GigaSpaces XAP 7.1.1
  • 3018563 - Expiration date/time for jobs
  • 3016249 - Document usage of JPPF configuration APIs
  • 2994564 - Ability to select all nodes / all drivers in the console
  • 2990285 - J2EE connector: ability to connect to multiple JPPF servers
  • 2972415 - Provide an ExecutorService facade to the JPPF client
  • Bug Fixes:
  • 3032447 - JMX connector binds RMI registry to the wrong host
  • 3030900 - Server fails to dispatch tasks to some nodes
  • 3017866 - When connected to multiple drivers, client only uses one
  • 3010245 - Typo and wrong comment in config of peer server discovery
  • 3006929 - Client connections are named improperly
  • 2993389 - Nodes are not removed from the console upon dying

New in version 1.9 (May 13th, 2009)

  • Submitted tasks can now fetch data from the client while executing
  • A node's configuration can now be updated remotely without restart
  • A new sample illustrates how tasks can communicate with each other
  • Numberous bugs have been fixed, improving the overall stability and performance