You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by jl...@apache.org on 2022/10/20 15:20:36 UTC

[tomee] 02/04: Update Arquillian such as it supports converting archives on the fly

This is an automated email from the ASF dual-hosted git repository.

jlmonteiro pushed a commit to branch javax-to-jakarta-on-deploy
in repository https://gitbox.apache.org/repos/asf/tomee.git

commit 209d33ed1a045d43d584e284bba1d9c1199842ab
Author: Jean-Louis Monteiro <jl...@tomitribe.com>
AuthorDate: Thu Oct 20 17:18:17 2022 +0200

    Update Arquillian such as it supports converting archives on the fly
---
 arquillian/arquillian-tomee-common/pom.xml         |  6 ++++
 .../arquillian/common/TomEEConfiguration.java      |  9 ++++++
 .../openejb/arquillian/common/TomEEContainer.java  | 31 ++++++++++++++++++++
 boms/tomee-microprofile/pom.xml                    | 33 ++++++++++++++++++++++
 examples/pom.xml                                   |  1 +
 examples/serverless-tomee-plume/pom.xml            |  2 +-
 .../tomee-microprofile-webapp/pom.xml              |  7 +++++
 tomee/tomee-plume-webapp/pom.xml                   |  7 +++++
 tomee/tomee-plus-webapp/pom.xml                    |  7 +++++
 tomee/tomee-webapp/pom.xml                         |  7 +++++
 10 files changed, 109 insertions(+), 1 deletion(-)

diff --git a/arquillian/arquillian-tomee-common/pom.xml b/arquillian/arquillian-tomee-common/pom.xml
index 7585e31acc..67cc070771 100644
--- a/arquillian/arquillian-tomee-common/pom.xml
+++ b/arquillian/arquillian-tomee-common/pom.xml
@@ -102,6 +102,12 @@
         </exclusion>
       </exclusions>
     </dependency>
+    <dependency>
+      <groupId>org.apache.tomcat</groupId>
+      <artifactId>jakartaee-migration</artifactId>
+      <classifier>shaded</classifier>
+      <version>1.0.4</version>
+    </dependency>
     <dependency>
       <groupId>org.apache.tomee</groupId>
       <artifactId>openejb-loader</artifactId>
diff --git a/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEConfiguration.java b/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEConfiguration.java
index 1a3b2f325c..592a9dc49b 100644
--- a/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEConfiguration.java
+++ b/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEConfiguration.java
@@ -47,6 +47,7 @@ public class TomEEConfiguration implements ContainerConfiguration {
     protected boolean quickSession = true;
     protected boolean unsafeEjbd = true;
     protected boolean unpackWars = true;
+    protected boolean convertFromJavax = false;
 
     protected String properties = "";
     protected String webContextToUseWithEars;
@@ -79,6 +80,14 @@ public class TomEEConfiguration implements ContainerConfiguration {
         this.unpackWars = unpackWars;
     }
 
+    public boolean isConvertFromJavax() {
+        return convertFromJavax;
+    }
+
+    public void setConvertFromJavax(final boolean convertFromJavax) {
+        this.convertFromJavax = convertFromJavax;
+    }
+
     public int getHttpsPort() {
         return httpsPort;
     }
diff --git a/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEContainer.java b/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEContainer.java
index c0764d4d13..8d6bf09dd3 100644
--- a/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEContainer.java
+++ b/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEContainer.java
@@ -27,6 +27,8 @@ import org.apache.openejb.assembler.classic.ServletInfo;
 import org.apache.openejb.assembler.classic.WebAppInfo;
 import org.apache.openejb.loader.Options;
 import org.apache.openejb.util.NetworkUtil;
+import org.apache.tomcat.jakartaee.EESpecProfile;
+import org.apache.tomcat.jakartaee.Migration;
 import org.jboss.arquillian.container.spi.client.container.DeployableContainer;
 import org.jboss.arquillian.container.spi.client.container.DeploymentException;
 import org.jboss.arquillian.container.spi.client.container.LifecycleException;
@@ -348,6 +350,27 @@ public abstract class TomEEContainer<Configuration extends TomEEConfiguration> i
         }
     }
 
+    private void migrateLegacyApp(final File source) {
+        try {
+            // delegate to Tomcat migration tool
+            Migration migration = new Migration();
+            migration.setSource(source);
+            migration.setDestination(source); // in place replacement
+            migration.setEESpecProfile(EESpecProfile.EE);
+            migration.addExclude("tomee-*.jar");
+            migration.addExclude("openejb-*.jar");
+            migration.addExclude("openwebbeans-*.jar");
+            migration.addExclude("geronimo-*.jar");
+            migration.addExclude("openjpa-*.jar");
+            migration.addExclude("cxf-*.jar");
+            migration.addExclude("arquillian-*.jar");
+            migration.execute();
+
+        } catch (Throwable t) {
+            throw new RuntimeException(t);
+        }
+    }
+
     protected Collection<AppInfo> getDeployedApps() throws NamingException {
         return deployer().getDeployedApps();
     }
@@ -421,6 +444,14 @@ public abstract class TomEEContainer<Configuration extends TomEEConfiguration> i
                     + "\n");
         }
 
+        if (configuration.isConvertFromJavax()) {
+            try {
+                migrateLegacyApp(file);
+
+            } catch (final Exception e) {
+                LOGGER.warning("Failed to migrate application " + file.getAbsolutePath());
+            }
+        }
         return new Dump(file, created);
     }
 
diff --git a/boms/tomee-microprofile/pom.xml b/boms/tomee-microprofile/pom.xml
index 5c3b9628ee..2f8f281e25 100644
--- a/boms/tomee-microprofile/pom.xml
+++ b/boms/tomee-microprofile/pom.xml
@@ -199,6 +199,17 @@
         </exclusion>
       </exclusions>
     </dependency>
+    <dependency>
+      <groupId>commons-io</groupId>
+      <artifactId>commons-io</artifactId>
+      <version>2.11.0</version>
+      <exclusions>
+        <exclusion>
+          <artifactId>*</artifactId>
+          <groupId>*</groupId>
+        </exclusion>
+      </exclusions>
+    </dependency>
     <dependency>
       <groupId>commons-logging</groupId>
       <artifactId>commons-logging</artifactId>
@@ -540,6 +551,17 @@
         </exclusion>
       </exclusions>
     </dependency>
+    <dependency>
+      <groupId>org.apache.bcel</groupId>
+      <artifactId>bcel</artifactId>
+      <version>6.5.0</version>
+      <exclusions>
+        <exclusion>
+          <artifactId>*</artifactId>
+          <groupId>*</groupId>
+        </exclusion>
+      </exclusions>
+    </dependency>
     <dependency>
       <groupId>org.apache.bval</groupId>
       <artifactId>bval-jsr</artifactId>
@@ -552,6 +574,17 @@
         </exclusion>
       </exclusions>
     </dependency>
+    <dependency>
+      <groupId>org.apache.commons</groupId>
+      <artifactId>commons-compress</artifactId>
+      <version>1.21</version>
+      <exclusions>
+        <exclusion>
+          <artifactId>*</artifactId>
+          <groupId>*</groupId>
+        </exclusion>
+      </exclusions>
+    </dependency>
     <dependency>
       <groupId>org.apache.commons</groupId>
       <artifactId>commons-lang3</artifactId>
diff --git a/examples/pom.xml b/examples/pom.xml
index 85175358cb..ab23d5a637 100644
--- a/examples/pom.xml
+++ b/examples/pom.xml
@@ -93,6 +93,7 @@
     <module>javamail</module>
     <module>javamail-velocity</module>
     <module>java-modules</module>
+    <module>javax-to-jakarta-namespace</module>
     <module>jaxrs-filter</module>
     <module>jaxrs-json-provider-jettison</module>
     <module>jpa-eclipselink</module>
diff --git a/examples/serverless-tomee-plume/pom.xml b/examples/serverless-tomee-plume/pom.xml
index 33c2c5de7e..2556088bbd 100644
--- a/examples/serverless-tomee-plume/pom.xml
+++ b/examples/serverless-tomee-plume/pom.xml
@@ -31,7 +31,7 @@
   <dependencies>
     <dependency>
       <groupId>org.apache.tomee.bom</groupId>
-      <artifactId>tomee-webprofile</artifactId>
+      <artifactId>tomee-plume</artifactId>
       <version>${version.tomee}</version>
     </dependency>
     <dependency>
diff --git a/tomee/tomee-microprofile/tomee-microprofile-webapp/pom.xml b/tomee/tomee-microprofile/tomee-microprofile-webapp/pom.xml
index f36f416578..9fbc72d10c 100644
--- a/tomee/tomee-microprofile/tomee-microprofile-webapp/pom.xml
+++ b/tomee/tomee-microprofile/tomee-microprofile-webapp/pom.xml
@@ -186,6 +186,13 @@
       </exclusions>
       <scope>runtime</scope>
     </dependency>
+    <dependency>
+      <groupId>org.apache.tomcat</groupId>
+      <artifactId>jakartaee-migration</artifactId>
+      <classifier>shaded</classifier>
+      <version>1.0.4</version>
+      <scope>runtime</scope>
+    </dependency>
     <dependency>
       <groupId>${project.groupId}</groupId>
       <artifactId>tomee-catalina</artifactId>
diff --git a/tomee/tomee-plume-webapp/pom.xml b/tomee/tomee-plume-webapp/pom.xml
index 87136f7f19..8d5d4302d6 100644
--- a/tomee/tomee-plume-webapp/pom.xml
+++ b/tomee/tomee-plume-webapp/pom.xml
@@ -245,6 +245,13 @@
       </exclusions>
       <scope>runtime</scope>
     </dependency>
+    <dependency>
+      <groupId>org.apache.tomcat</groupId>
+      <artifactId>jakartaee-migration</artifactId>
+      <classifier>shaded</classifier>
+      <version>1.0.4</version>
+      <scope>runtime</scope>
+    </dependency>
     <dependency>
       <groupId>${project.groupId}</groupId>
       <artifactId>tomee-catalina</artifactId>
diff --git a/tomee/tomee-plus-webapp/pom.xml b/tomee/tomee-plus-webapp/pom.xml
index c3c07a64ec..0c614ca95a 100644
--- a/tomee/tomee-plus-webapp/pom.xml
+++ b/tomee/tomee-plus-webapp/pom.xml
@@ -237,6 +237,13 @@
       </exclusions>
       <scope>runtime</scope>
     </dependency>
+    <dependency>
+      <groupId>org.apache.tomcat</groupId>
+      <artifactId>jakartaee-migration</artifactId>
+      <classifier>shaded</classifier>
+      <version>1.0.4</version>
+      <scope>runtime</scope>
+    </dependency>
     <dependency>
       <groupId>${project.groupId}</groupId>
       <artifactId>tomee-catalina</artifactId>
diff --git a/tomee/tomee-webapp/pom.xml b/tomee/tomee-webapp/pom.xml
index 6bc5e42467..e57fb6918f 100644
--- a/tomee/tomee-webapp/pom.xml
+++ b/tomee/tomee-webapp/pom.xml
@@ -315,6 +315,13 @@
       </exclusions>
       <scope>runtime</scope>
     </dependency>
+    <dependency>
+      <groupId>org.apache.tomcat</groupId>
+      <artifactId>jakartaee-migration</artifactId>
+      <classifier>shaded</classifier>
+      <version>1.0.4</version>
+      <scope>runtime</scope>
+    </dependency>
     <dependency>
       <groupId>${project.groupId}</groupId>
       <artifactId>tomee-catalina</artifactId>