Project-X v23.05 - Release Notes

AdroitLogic Project-X

Copyright © 2010-2023
AdroitLogic Private Ltd. All Rights Reserved

** Changes for 23.05-RC ** [2023-05-24]
--------------------------
(summary since 22.01)

core platform:

* Drops support for Java <17
* Full compatibility with Jakarta initiative (javax. -> jakarta.)
* All core libraries upgraded (most significant ones follow):
  - Spring 5.3.9 -> 6.0.5
  - aspectjrt 1.9.5 -> 1.9.19
  - classgraph 4.8.110 -> 4.8.154
  - Jackson 2.12.3 -> 2.14.2
  - Log4J (via x-logging-log4j2) 2.17.1 -> 2.19.0
  - Elasticsearch REST (optional, for metrics) 7.13.1 -> 8.6.2
  - Curator/ZooKeeper (optional, for clustering) 5.1.0/3.6.0 -> 5.4.0/3.7.1
  - Jetty (optional, management server) 9.4.43.v20210629 -> 11.0.5
* BouncyCastle (optional, not bundled): bcprov-jdk15on 1.69 -> bcprov-jdk18on 1.72
* x-metrics-es-transport, Available with older-version (7.13.1) ES transport client/server; ES no longer offers it for 8.x
* Gracefully close server spring-context on startup failure
* Prevent silent overriding of server/project beans
* Load properties files in alphabetical order (22.01.2)
* Inject property sources to project/flow contexts for implicit/delayed placeholder expression resolution;
  earlier resolution was run explicitly at startup (22.01.1)
* Support multiple classpath default.properties (22.01.1)
* XPR build: support classifiers and Maven archiver custom configs (22.01.2)
* XPR build: fix default platform artifact exclusion to only consider groupId and artifactId; ignore version differences etc (22.01.1)


UltraESB-X distribution:

* Update launchers/configs for Java 17+
* Remove deprecated ES transport-client and embedded server from complete distros, ship REST client instead;
  now complete and production are identical, except for ZooKeeper and UXTerm management CLI being shipped in former
* Replace Docker Java 8/11 builds with 17 (based on eclipse-temurin:17-jre-alpine)
* Remove unsupported zkServer launch scripts from prod distro


UltraStudio IDE plugin:

* IDEA 2023.1 compatibility
* Stopped bundling toolbox components (HTTP/JMS Client, Jetty Server, TCP Dump); planned to release as a separate plugin(s) in future


logging:

* Public access to logger-context manipulation (LoggerFactory.overlayContext(key, value))
* Skip log validation for abstract classes
* Log4J upgraded; 2.17.1 -> 2.19.0


libraries:

* Library upgrades


features:

* Library upgrades
* Misc. enhancements and fixes to AS2 feature, kudos as2gateway.com
  - BouncyCastle: bcprov-jdk15on 1.69 -> bcprov-jdk18on 1.72
  - tolerate variants in X.509 cert DNs
  - handle insufficient-message-security error-message in inbound MDNs
  - improve inbound signature-error message texts
  - avoid in-memory processing of MIME parts
  - file-backed AS2 parsing when possible; bypass 2GB-max Java mem. allocation limit
  - made MDN Message-ID header optional
  - support MD2 MICs
  - refactor AS2GatewayRepository API to support converting existing app-specific entities into AS2 entities (instead of loading from scratch)
  - AS2 version 1.2, EDIINT-Features header
  - log enc/sign specs during compose
  - remove algorithm protection attributes from signatures
  - avoid possible array-index error on filename detection
  - improve cert identifier displayed in signature errors
  - retain content-type of incoming files
  - use binary encoding in signature parser only when part doesn't have a content-transfer-encoding specified


transports:

* Library upgrades
* nio-http:
  - Remove SSLSession.getPeerCertificateChain() calls for Java 18 compatibility
  - Workaround for Java 11 closed sockets not returning remote-address info, preventing connection-cache cleanup and causing memory leak
  - Cleaned up unused dependencies
* aws:
  - fix listener-config equality checks to ensure separate transports for different configurations
  - S3: explicitly release opened object data-stream after fetch/error


connectors:

* Library upgrades
* Incorporates above fixes for nio-http and AWS


processors:

* Library upgrades