Verbesserung
Java 17 soll als Standard-Entwicklungs- und Laufzeitumgebung für TopLogic 7.9 verwendet werden.
Code Migration
- Java muss auf Version 17 aktualisiert werden.
- Jetty muss auf Version 11 aktualisiert werden. Version 12 wird noch nicht unterstützt.
- Tomcat muss auf Version 10.1 oder 11 aktualisiert werden.
- "Java EE" wurde zu "Jakarta EE". Dabei haben sich die Maven Namen der Bibliotheken geändert. Zusätzlich haben sich auch die Namen der Java Packages geändert. Aus javax.foo wurde meistens jakarta.foo. Aber leider nicht immer. Und etliche javax.foo Packages gibt es weiterhin in Java SE. Beides, die neuen Maven Namen und die neuen Java Package Namen müssen jeweils individuell recherchiert werden.
- Siehe zum Beispiel: https://wiki.eclipse.org/Jakarta_EE_Maven_Coordinates
- Etliche Packages die ursprünglich zu Java EE gehörten aber mit der Zeit nach Java SE gewandert sind, sind wieder aus Java SE entfernt worden und gehören jetzt zu Jakarta EE. Hier müssen Bibliotheken eingebunden und wie oben erwähnt Package Namen angepasst werden.
- Aufrufe von FileSystems.newFileSystem(Path, null) sind mehrdeutig geworden. null muss weggelassen werden.
- yield ist ein "special Keyword" geworden. Aufrufe der Methode yield() von Thread müssen daher von yield() zu Thread.yield() geändert werden.
- "Pac4j" musste auf eine neue Version mit einer etwas anderen API aktualisiert werden.
- Falls die web-fragment.xml aus dem Framework nicht verwendet wird, muss in der web.xml folgender filter um einen init-param erweitert werden:
{{{#!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> }}}
- Das Framework wurde entsprechend angepasst und die Umstellung erfolgreich getestet.
- Der TLNTLMSecurityFilter ist veraltet und wurde entfernt.
- Das Package com.top_logic.kafka.services.connect wurde entfernt.