New features in Project Zero Core M4
Core - The core Project Zero platform and programming model.
Configuration updates
- The Project Zero application configuration has been updated to generate better error messages identifying the source of a configuration error.
- Conditional configuration has also been simplified with support for operators such for performing logical AND, OR etc. These changes affect existing config handler registration in applications.
- Includes of other configuration files in a dependent application or library need not be fully qualified and is now virtualized.
Global Context updates
- Support for nested updates in zpost, zput and zdelete and updates to the zlist method
- Consistency in behavior for return values and exceptions from Global Context accessors
- Updated mechanism to "walk" types and corresponding updates to the Type and Zone handlers in the Global Context
- Updated Groovy (GPATH) API for accessing the global context
- Update PHP API for accessing the global context.
JSON API updates
- Simplified JSON API for encoding and decoding JSON steams
- Improved performance by eliminating intermediary objects.
Zero Resource Model updates
- Paging Model API ...
collection[10..19].list()
- Paging HTTP API ...
?start=10&count=10
- Improved and clarified optional field values with the use of the
required attribute on field definitions
- Now leveraging zero.core's JSON serializer
-
DateField and DecimalField improvements
- Improved error handling and messages
- Unit tests received a 92% execution speed increase
Zero launcher feature
- Created a native C based Zero Socket Opener (ZSO) that allows starting the app, but doesn't require a running JRE
- Currently supports Linux -- allows a zero app to accept connections with 6K memory footprint
- Added idle timeouts and max requests parameters to allow a Zero app with a Java runtime to fall back to ZSO
- Zero apps can also now be started via inetd/xinetd
Connectivity - Core connectivity
Connectivity infrastructure
Enhancements to the
Connection API and related infrastructure in
zero.core:
- Connection destination configuration in
zero.config, replacing integration_fabric.xml. See Configuring destinations.
- Rationalized naming and terminology:
-
ConnectionException replaces IntegrationException.
-
/connection zone replaces /mediation.
-
/config/connection/defaults/... keys replace /config/connection/transports/...
- Connection handlers replace mediations and are implemented by the
Handler interface.
- Connectivity GlobalContext keys now included in
GlobalContextURIs.
-
HEAD operation added to Connection API.
- Revised logging connection handlers. See Simple logging connection handlers.
- Documentation for
Connection API and related concepts moved to Core Developer's guide. See Calling a remote resource.
Outbound HTTP and HTTPS support
Various enhancements to the
HTTP and HTTPS protocol support:
- Client certificate authentication support for HTTPS.
- Support for supplying basic authentication credentials to remote service through connection protocol configuration.
- Support
MultipartBody to enable the uploading of files to remote server.
REST to SOAP extension
Enhancements to the
REST to SOAP extension:
- Support for HTTP and HTTPS protocol configuration parameters.
- Renamed to
zero.connection.soap, replacing zero.assemble.core.
Tooling - Eclipse and Command Line tooling for Project Zero.
Simplified CLI updates
The Zero CLI may now be updated by invoking
zero get cli. That is, the CLI is now implemented as a
resolvable dependency, which makes it easy to check for and obtain updates.