Enhancement
Java 17 is to be used as the standard development and runtime environment for TopLogic 7.9.
Code migration
- Java must be updated to version 17.
- Jetty must be updated to version 11. Version 12 is not yet supported.
- Tomcat must be updated to version 10.1 or 11.
- "Java EE" has become "Jakarta EE". The Maven names of the libraries have changed. The names of the Java packages have also changed. javax.foo usually became jakarta.foo. But unfortunately not always. And some javax.foo packages still exist in Java SE. Both the new Maven names and the new Java package names must be researched individually.
- See for example: https://wiki.eclipse.org/Jakarta_EE_Maven_Coordinates
- A number of packages that originally belonged to Java EE but have migrated to Java SE over time have been removed from Java SE and now belong to Jakarta EE. Libraries must be integrated here and, as mentioned above, package names must be adapted.
- Calls to FileSystems.newFileSystem(Path, null) have become ambiguous. null must be omitted.
- yield has become a "special keyword". Calls to the yield() method of Thread must therefore be changed from yield() to Thread.yield().
- "Pac4j" had to be updated to a new version with a slightly different API.
- If the web-fragment.xml from the framework is not used, the following filter must be extended by an init-param in the web.xml:
{{#!xml <filter> <filter-name>Pac4jSecurityFilter</filter-name> <filter-class>org.pac4j.jee.filter.SecurityFilter</filter-class> + <init-param> + <param-name>configFactory</param-name> + <param-value>com.top_logic.security.auth.pac4j.config.Pac4jConfigFactory$TLPac4jConfigFactory</param-value> + </init-param> </filter> }}}
- The framework was adapted accordingly and the changeover successfully tested.
- The TLNTLMSecurityFilter is obsolete and has been removed.
- The package com.top_logic.kafka.services.connect has been removed.