Con el impacto en el ecosistema después de la migración del paquete javax a Jakarta en Jakarta EE 9 y el soporte para Java SE 11 en Jakarta EE 9.1, esta sesión cubre recomendaciones y estrategias para ayudarlo a navegar el proceso de migración a Jakarta EE 9.1 usando Apache TomEE .
7. @CesarHgt @tomitribe
Jakarta EE 9.1
● javax.* namespace ya no es válido;
migrar a jakarta.*
● Soporte para Java SE 11
● Plataforma para innovación
● Baja barrera de entrada
● Fácil migración
jakarta.ee/release/9.1
8. @CesarHgt @tomitribe
El namespace javax.*
• Oracle decide restringir javax.* namespace
• Unchanged APIs can still use javax.* namespace
• Any other changes not allowed
• Adding a value to an enum
• Overriding/adding a method signature
• Adding default methods in interfaces
• Compensating for Java language changes
https://www.tomitribe.com/jakarta/ns/poll/vote
11. @CesarHgt @tomitribe
● Apache Tomcat migration tool for Jakarta EE
○ Migra aplicaciones que corren en Apache Tomcat 9 a Apache Tomcat 10
○ https://github.com/apache/tomcat-jakartaee-migration
● Eclipse Transformer
○ Mutación de archivos JAR o WAR
○ https://projects.eclipse.org/projects/technology.transformer
● Tomitribe fork Transformer Maven Plugin
○ https://github.com/tomitribe/transformer
Enfoque a nível de bytecode
12. @CesarHgt @tomitribe
Apache Tomcat migration tool for Jakarta EE
Descargar https://tomcat.apache.org/download-migration.cgi
java -jar jakartaee-migration-*-shaded.jar <origen> <destino>
13. @CesarHgt @tomitribe
● Eclipse Transformer
○ Mutación de archivos JAR o WAR
○ https://projects.eclipse.org/projects/technology.transformer
● Apache Tomcat migration tool for Jakarta EE
○ Migra aplicaciones que corren en Apache Tomcat 9 a Apache Tomcat 10
○ https://github.com/apache/tomcat-jakartaee-migration
● Tomitribe fork Transformer Maven Plugin
○ https://github.com/tomitribe/transformer
Enfoque a nível de bytecode
14. @CesarHgt @tomitribe
Tomitribe fork Transformer Maven Plugin
Agrega a tu pom.xml el plugin
<plugin>
<groupId>org.tomitribe.transformer</groupId>
<artifactId>org.eclipse.transformer.maven</artifactId>
<version>0.3.0-SNAPSHOT</version>
<configuration>
<classifier>jakartaee9</classifier>
</configuration>
<executions>
<execution>
<goals>
<goal>run</goal>
</goals>
<phase>package</phase>
</execution>
</executions>
</plugin>
15. @CesarHgt @tomitribe
● IDE, bash, etc.
Enfoque a nível de código
egrep -lRZ 'javax' . | xargs -0 -l sed -i -e 's/javax/jakarta/g'
21. @CesarHgt @tomitribe
● Forma más rápida de descargar, instalar y ejecutar TomEE con o sin
aplicaciones web
● Altamente configurable para entornos de CI
● tomee.apache.org/latest/docs/developer/tools/maven-plugins.html
$ mvn clean install tomee
TomEE Maven Plugin
22. @CesarHgt @tomitribe
tomee-maven-plugin
Agrega a tu pom.xml el plugin
<plugin>
<groupId>org.apache.tomee.maven</groupId>
<artifactId>tomee-maven-plugin</artifactId>
<version>8.0.5</version>
<configuration>
<tomeeVersion>9.0.0-M3</tomeeVersion>
<tomeeGroupId>org.apache.tomee.jakarta</tomeeGroupId>
<tomeeClassifier>plume</tomeeClassifier>
<warFile>
${project.build.directory}/javaee-tomee-demo-jakartaee9-1.0.0.war
</warFile>
</configuration>
</plugin>
24. @CesarHgt @tomitribe
Apoyo en CD & CI
● Reducción en costo en detección de errores
● Mejora la trazabilidad
● Reduce la deuda técnica
● Nos prepara para el futuro
http://corpsite-blog.s3.amazonaws.com/blog/wp-content/uploads/2014/10/Screen-Shot-2014-10-21-at-10.35.35-AM-4061918db9a7d7de7a7ccc9587164f58.png
29. @CesarHgt @tomitribe
How to contribute in Jakarta EE?
• jakarta.ee/connect
○ Community, Working Group and Projects Mailing List
○ Slack, Newsletter, Blogs, Social Media
• Join Jakarta EE community meetings
• Join EE4J top project and Jakarta EE working group
• Spread the word by speaking at conferences or blogging
30. @CesarHgt @tomitribe
How to contribute in TomEE?
• tomee.apache.org/community
• Share your migration takeaways
• Documentation
• Website fixes
• Code tests
• Code examples
• Coverage increase for unit, integration, performance and static tests
• Workshops