Releases: frankframework/frankframework
v9.2.1-20250826.133401 (nightly)
The Frank!Framework nightly (snapshot) build provides a daily compilation of the latest code changes and developments, allowing users to access cutting-edge features and updates before they are officially released.
Copy version
9.2.1-20250826.133401
Download instructions
Get the Webapp
Add it to the pom.xml
:
<dependencies>
<dependency>
<groupId>org.frankframework</groupId>
<artifactId>frankframework-webapp</artifactId>
<version>9.2.1-20250826.133401</version>
</dependency>
</dependencies>
<repositories>
<repository>
<id>frankframework</id>
<name>Frank!Framework</name>
<url>https://nexus.frankframework.org/content/repositories/public</url>
</repository>
</repositories>
Get the Docker image
Pull the Docker image:
docker pull frankframework/frankframework:9.2.1-20250826.133401
v9.3.0-20250827.042331 (nightly)
The Frank!Framework nightly (snapshot) build provides a daily compilation of the latest code changes and developments, allowing users to access cutting-edge features and updates before they are officially released.
Copy version
9.3.0-20250827.042331
Download instructions
Get the Webapp
Add it to the pom.xml
:
<dependencies>
<dependency>
<groupId>org.frankframework</groupId>
<artifactId>frankframework-webapp</artifactId>
<version>9.3.0-20250827.042331</version>
</dependency>
</dependencies>
<repositories>
<repository>
<id>frankframework</id>
<name>Frank!Framework</name>
<url>https://nexus.frankframework.org/content/repositories/public</url>
</repository>
</repositories>
Get the Docker image
Pull the Docker image:
docker pull frankframework/frankframework:9.3.0-20250827.042331
v7.9.7-20250826.065038 (nightly)
The Frank!Framework nightly (snapshot) build provides a daily compilation of the latest code changes and developments, allowing users to access cutting-edge features and updates before they are officially released.
Copy version
7.9.7-20250826.065038
Download instructions
Get the Webapp
Add it to the pom.xml
:
<dependencies>
<dependency>
<groupId>org.frankframework</groupId>
<artifactId>frankframework-webapp</artifactId>
<version>7.9.7-20250826.065038</version>
</dependency>
</dependencies>
<repositories>
<repository>
<id>frankframework</id>
<name>Frank!Framework</name>
<url>https://nexus.frankframework.org/content/repositories/public</url>
</repository>
</repositories>
Get the Docker image
Pull the Docker image:
docker pull frankframework/frankframework:7.9.7-20250826.065038
v9.0.2-20250826.031130 (nightly)
The Frank!Framework nightly (snapshot) build provides a daily compilation of the latest code changes and developments, allowing users to access cutting-edge features and updates before they are officially released.
Copy version
9.0.2-20250826.031130
Download instructions
Get the Webapp
Add it to the pom.xml
:
<dependencies>
<dependency>
<groupId>org.frankframework</groupId>
<artifactId>frankframework-webapp</artifactId>
<version>9.0.2-20250826.031130</version>
</dependency>
</dependencies>
<repositories>
<repository>
<id>frankframework</id>
<name>Frank!Framework</name>
<url>https://nexus.frankframework.org/content/repositories/public</url>
</repository>
</repositories>
Get the Docker image
Pull the Docker image:
docker pull frankframework/frankframework:9.0.2-20250826.031130
v9.2.0
Full Changelog: v9.1.0...v9.2.0, see Milestone 9.2.0 for more info.
Highlights
Bumped dependencies 163 times
Improved documentation
(Structured) logging improvements
Automated OWASP ZAP reports
Tip
The Frank!Framework no longer requires JMS as a required dependency.
Note
Since 9.1.0: ApiListeners may now throw security warnings, allows whitelisting of HTTP parameters.
Warning
Our Tomcat Container's classpath has been changed. Ensure resources and configurations are mounted properly.
Bugs
- Fix the use of multiple credential providers(#8909)
- Fix CredentialFactory in HttpSender to authenticate requests (#8866)
- Fix charset bug in SerializableFileReference (#8950)
- Fix WebServiceListener result message closed too early (#8969)
- Fix MQTT resources (#9025)
- Fix "ISender#sendMessageOrThrow" closing result that has also been referenced in Session keys (#9024)
- Fix MongoDB resource.yml parsing (#9034)
- Fix GraalJS JavascriptEngine arguments (#9044)
- Use FileSystem attributes for process-state / errorstorage comments (#9059)
- Fix OAuth flow in standalone app (#9086)
- Fix IfPipe can lose the input message (#9105)
- Improve JSON Path validation and evaluation in Parameter (#9154)
- Fix Module loading in WildFly (#9216)
Features
- Improved caching of TransformerPools (#8781)
- Allow JWT Token to omit "Bearer" when it is a non-standard header (#8818)
- Introduce ContextSecurityHandler(#8829)
- JSON Parameter and jsonPathExpression (#8862)
- Allow users to use ScanningDirectoryClassloader instead of normal DirectoryClassloader (#8962)
- Expand BooleanParameter to allow !false (#8958)
- Change the DelineaCredentialFactory.hasCredentials to getSecret(#8989)
- Use generic common method to generate message IDs (#9005)
- Add Narayana expiryScanner to either purge or move expired items (#9092)
- Introduce springdoc for openapi endpoint(#8874)
- Introduce a SoapAction ServiceListener (#9077)
- Make HTTP timeout work based on the HttpSession (sharedResources) (#9107)
- Handle numerical and boolean values in JSON better (#9152)
- Add JsonPathPipe (#9143)
- Update the JsonValidator to allow validation using newer json schemas(#9179)
- Rename XmlSwitch to SwitchPipe and add jsonPathExpression (#9175)
- Add bearer only authentication and validate role claim(#9140 + #9221)
- Add new property to csv parser pipe to trim whitespace(#9249)
- Change Tomcat classpath, configs are no longer on the classpath (#9256)
Console
- Add sorting options in error store (#9206)
- Improve flow modal window size (#9208)
- Fix adapter pipes & receivers disappearing after certain adapter updates (#8821)
- Only show existing columns in message storage views (#8676)
- Filtering on message storage with dynamic columns (#8847)
- Fix statistics graph time offset (#8982)
- Fix Console error page & logging page on framework startup error (#9133)
- Fix CSRF session pinning (#9056)
- Sort processing receivers statistics based on thread name (#9181)
- Add Mermaid flow zooming & panning (#9173)
- Add expiring certificates to security items page (#9110 + #9136)
- Disable testtool echo2 by default (#8961)
Larva
- Add warnings in Larva when properties are overwritten by included files (#9038)
- Add larva.enabled property (#9240)
- Make reading of scenario steps more flexible (#8980)
- Change Larva Output (#8974)
ErrorFormatters
- Allow formatting of error messages as JSON (#8981)
- Always use ErrorMessageFormatter from the Adapter (#8953)
- Add DataSonnetErrorMessageFormatter (#8990)
- Pipes should not handle ExceptionForward themselves (#9144 + #9180)
- Add parameters to ExceptionPipe and update ErrorMessageFormatter to apply them (#9165)
- Optimize pipeline error-return flows (#9220)
- Add Configuration-wide default ErrorMessageFormatter (#9017)
Non backwards compatible changes
Important
Removed deprecated pipes from 7.8 or older. This means that the following pipes are now removed: FileLineIteratorPipe, FilenameSwitch, PostboxRetrieverPipe, PutParametersInSession, Stream2StringPipe, XmlBuilderPipe, XmlFileElementIteratorPipe.
Warning
Tomcat classpath has been changed!
- The configurations directory is no longer mounted on the classpath.
- The drivers directory has been added to allow users to overwrite drivers with ease.
v9.1.1-20250624.022330 (nightly)
The Frank!Framework nightly (snapshot) build provides a daily compilation of the latest code changes and developments, allowing users to access cutting-edge features and updates before they are officially released.
Copy version
9.1.1-20250624.022330
Download instructions
Get the Webapp
Add it to the pom.xml
:
<dependencies>
<dependency>
<groupId>org.frankframework</groupId>
<artifactId>frankframework-webapp</artifactId>
<version>9.1.1-20250624.022330</version>
</dependency>
</dependencies>
<repositories>
<repository>
<id>frankframework</id>
<name>Frank!Framework</name>
<url>https://nexus.frankframework.org/content/repositories/public</url>
</repository>
</repositories>
Get the Docker image
Pull the Docker image:
docker pull frankframework/frankframework:9.1.1-20250624.022330
v8.3.3-20250605.001628 (nightly)
The Frank!Framework nightly (snapshot) build provides a daily compilation of the latest code changes and developments, allowing users to access cutting-edge features and updates before they are officially released.
Copy version
8.3.3-20250605.001628
Download instructions
Get the Webapp
Add it to the pom.xml
:
<dependencies>
<dependency>
<groupId>org.frankframework</groupId>
<artifactId>frankframework-webapp</artifactId>
<version>8.3.3-20250605.001628</version>
</dependency>
</dependencies>
<repositories>
<repository>
<id>frankframework</id>
<name>Frank!Framework</name>
<url>https://nexus.frankframework.org/content/repositories/public</url>
</repository>
</repositories>
Get the Docker image
Pull the Docker image:
docker pull frankframework/frankframework:8.3.3-20250605.001628
v9.1.0
Full Changelog: v9.0.0...v9.1.0, see Milestone 9.1.0 for more info.
Highlights
Bumped dependencies 184 times
Add JDK24 Build Support
Improved documentation
Tip
The Frank!Framework no longer requires JMS as a required dependency.
Note
ApiListeners may now throw security warnings, allows whitelisting of HTTP parameters.
Performance
- Memory footprint has been reduced when doing XML and JSON conversions
- Fix memory leak when iterating over large files using iterating pipes and returned sessionkeys
- Fix session pollution when using parallel iterating pipes and a SenderWrapper
- Fix parallel XSLT processing (with and without pipeline transactions)
- Improve disk to memory IO operations
- Improved JDBC query builder
Bugs
- Fix 'time' in parameter pattern
- Fix configuration webcontent lookups
- Fix manual retry capability by using the proper ID fields such as StorageID, MessageID and CorrelationID
- Fix broken parameter pattern substitution
- Fix a NPE when trying to list files and folders using the AmazonS3sender
- Fix for XML2JSON mapping with wildcard-types that have nested elements
- Don't use Phaser in IteratingPipe to allow handling of more than 65.535 elements
Features
- Setup a new module and plugin structure
- Enable monitoring capability (by default)
- No longer display default-value configuration-warnings
- Improve log traceability
- Don't rename threads anymore
- Extended Resource Locators (resources.yml) to use the new module structure
- Health endpoints now require authorization except on localhost
- Ignore namespaces when comparing XML in CompareStringPipe
- Allow setting MQTT topic via a parameter
- Share MQTT connection between different Frank Components
- Add skip-locked functionality for H2 databases
- Add ability to move message 'stuck in processing' to Error state
- Allow returning extra fields from JDBCTableListener
- Add option to omit XML declaration from the output of Json2XmlValidator
- Allow Narayana to deal with 'stuck' Heuristic Hazard transactions
CredentialProviders & Authenticators
- Add DelineaCredentialFactory
- Add Azure AD Authenticator
Ladybug & Larva
- Display MessageContext in Ladybug
- Display more information in Ladybug Reports
- Add Ladybug 'convert to larva' button, only works on local development
- Larva can now use nearly all framework listeners and senders, including JMS and the new FrankListener and FrankSender
- Use Message instead of Strings, allows binary comparisons
Frank!Framework Console
- Make code editor resizable
- Make log page scroll back to previous position when clicking back
- Allow configurations to be stopped from Console
- Add button to open a log file in a new window
- Add root tag around configuration elements to make it xml compliant
- Store form field values when switching between pages
- Improve adapter statistics overview
- Fix JEE authentication in console and ladybug
- Fix duplicate server warning response
- Fix errorstore issues when configuration doesnt have errors
- Allow users to update websocket intervals
Non backwards compatible changes
Important
Removed deprecated pipes from 7.8 or older. This means that the following pipes are now removed: FileLineIteratorPipe, FilenameSwitch, PostboxRetrieverPipe, PutParametersInSession, Stream2StringPipe, XmlBuilderPipe, XmlFileElementIteratorPipe.
Warning
MqttSender and MqttListener now require a resource to be registered in resources.yml. This allows multiple senders/listeners to use the same connection at the same time.
Warning
Remove JMX capability.
v9.0.1
Patch Changelog: v9.0.0...v9.0.1 - Full Changelog: v8.3.0...v9.0.1, see Milestone 9.0.1 for more info.
Performance
- Fix session pollution when using parallel iterating pipes and a SenderWrapper
- Fix parallel XSLT processing (with and without pipeline transactions)
- Improve disk to memory IO operations
Bugs
- Fix 'time' in parameter pattern
- Fix configuration webcontent lookups
- Fix manual retry capability by using the proper ID fields such as StorageID, MessageID and CorrelationID
- Fix broken parameter pattern substitution
- Fix a NPE when trying to list files and folders using the AmazonS3sender
- Fix for XML2JSON mapping with wildcard-types that have nested elements
Features
- Enable monitoring capability (by default)
- No longer display default-value configuration-warnings
- Don't rename threads anymore
- Add ability to move message 'stuck in processing' to Error state
- Add option to omit XML declaration from the output of Json2XmlValidator
- Allow Narayana to deal with 'stuck' Heuristic Hazard transactions
Frank!Framework Console
- Make code editor resizable
- Make log page scroll back to previous position when clicking back
- Fix JEE authentication in console and ladybug
- Fix duplicate server warning response
- Fix errorstore issues when configuration doesnt have errors
- Allow users to update websocket interval
Non backwards compatible changes
- The SenderPipe no longer accepts a
Listener
, when using asynchronous messaging (sender/listener combination) please use theAsyncSenderWithListenerPipe
instead. No other attributes need to be modified! - The default
ldap-role-mapping.properties
file andldap.auth.<role name>
properties have been removed as it was not always possible to overwrite this file. An example can be found atsecurity/src/test/resources/oauth-role-mapping.properties
. Users are encouraged to map roles to 'scopes' in their preferred oauth environment, the example file only verifies logging in. - Receiver configuration property
maxDeliveries
has been deprecated. Instead, configuremaxRetries
. For backwards compatibility, if you have configuredmaxDeliveries
this will setmaxRetries
to the same value. See the Frank!Doc for these properties in the Receiver for more information. - Fix the exponential delay after errors in message processing. This feature has not worked for an unknown time. There might be potential problems with transactions having an unexpected timeout due to this increased delay, which could result in an unrecoverable error situation. For this reason the delay is maximum half of the configured transaction timeout duration. However, this might not always be sufficient for each process and the transaction timeout can not always be determined so please watch out for transaction timeout errors that might happen after a number of retries and see the next bullet point for remediation.
- To avoid the above unexpected transaction timeouts, the maximum delay after errors has been made configurable. This can be configured for the whole configuration with the property
receiver.defaultMaxBackoffDelay
, or per receiver with the attributemaxBackoffDelay
. The value is in seconds. The default is 100 seconds.
v8.0.6-20250305.000628 (nightly)
The Frank!Framework nightly (snapshot) build provides a daily compilation of the latest code changes and developments, allowing users to access cutting-edge features and updates before they are officially released.
Copy version
8.0.6-20250305.000628
Download instructions
Get the Webapp
Add it to the pom.xml
:
<dependencies>
<dependency>
<groupId>org.frankframework</groupId>
<artifactId>frankframework-webapp</artifactId>
<version>8.0.6-20250305.000628</version>
</dependency>
</dependencies>
<repositories>
<repository>
<id>frankframework</id>
<name>Frank!Framework</name>
<url>https://nexus.frankframework.org/content/repositories/public</url>
</repository>
</repositories>
Get the Docker image
Pull the Docker image:
docker pull frankframework/frankframework:8.0.6-20250305.000628