You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by rm...@apache.org on 2020/12/15 16:49:10 UTC

[openwebbeans-meecrowave] branch master updated: [MEECROWAVE-274] start to create light runner flavor

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

rmannibucau pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openwebbeans-meecrowave.git


The following commit(s) were added to refs/heads/master by this push:
     new f8d973d  [MEECROWAVE-274] start to create light runner flavor
f8d973d is described below

commit f8d973df2bfdc9d62b8aa6ff3a0c95c4cd5a2371
Author: Romain Manni-Bucau <rm...@gmail.com>
AuthorDate: Tue Dec 15 17:49:04 2020 +0100

    [MEECROWAVE-274] start to create light runner flavor
---
 meecrowave-core/pom.xml                            | 63 ++++++++++++++++++++
 .../meecrowave/tomcat/light/LightDigester.java     | 34 +++++++++++
 meecrowave-specs-api/pom.xml                       | 68 ++++++++++++++++++++++
 3 files changed, 165 insertions(+)

diff --git a/meecrowave-core/pom.xml b/meecrowave-core/pom.xml
index 7ea0cbb..10a8479 100644
--- a/meecrowave-core/pom.xml
+++ b/meecrowave-core/pom.xml
@@ -444,6 +444,69 @@
               </relocations>
             </configuration>
           </execution>
+          <execution>
+            <id>light-bundle</id>
+            <phase>package</phase>
+            <goals>
+              <goal>shade</goal>
+            </goals>
+            <configuration>
+              <shadedClassifierName>runner-light</shadedClassifierName>
+              <shadedArtifactAttached>true</shadedArtifactAttached>
+              <dependencyReducedPomLocation>${project.build.directory}/reduced-pom-bundle.xml
+              </dependencyReducedPomLocation>
+              <transformers>
+                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
+                  <mainClass>org.apache.meecrowave.runner.Cli</mainClass>
+                </transformer>
+                <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
+                  <resource>META-INF/cxf/bus-extensions.txt</resource>
+                </transformer>
+                <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
+                  <resource>log4j2.component.properties</resource>
+                </transformer>
+                <transformer implementation="com.github.edwgiz.maven_shade_plugin.log4j2_cache_transformer.PluginsCacheFileTransformer" />
+                <transformer implementation="org.apache.maven.plugins.shade.resource.properties.OpenWebBeansPropertiesTransformer" />
+                <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
+              </transformers>
+              <filters>
+                <filter>
+                  <artifact>org.apache.logging.log4j:log4j-api</artifact>
+                  <excludes>
+                    <exclude>META-INF/versions/**</exclude>
+                  </excludes>
+                </filter>
+                <filter>
+                  <artifact>*:*</artifact>
+                  <excludes>
+                    <exclude>OSGI-INF/**</exclude>
+                    <exclude>META-INF/cxf/cxf*.xml</exclude>
+                    <exclude>schemas/**</exclude> <!-- cxf -->
+                    <exclude>javax/servlet/resources/**</exclude> <!-- tomcat-servlet-api -->
+                    <exclude>javax/servlet/jsp/resources/**</exclude>
+                    <exclude>META-INF/maven</exclude> <!-- maven built artifacts -->
+                    <exclude>META-INF/*.SF</exclude>
+                    <exclude>META-INF/*.DSA</exclude>
+                    <exclude>META-INF/*.RSA</exclude>
+                    <exclude>META-INF/LICENSE.txt</exclude>
+                    <exclude>META-INF/LICENSE</exclude>
+                    <exclude>META-INF/NOTICE.txt</exclude>
+                    <exclude>META-INF/NOTICE</exclude>
+                  </excludes>
+                </filter>
+              </filters>
+              <relocations>
+                <relocation>
+                  <pattern>org.apache.meecrowave.tomcat.light.LightDigester</pattern>
+                  <shadedPattern>org.apache.tomcat.util.descriptor.DigesterFactory</shadedPattern>
+                </relocation>
+                <relocation>
+                  <pattern>org.apache.commons</pattern>
+                  <shadedPattern>org.apache.meecrowave.shaded.commons</shadedPattern>
+                </relocation>
+              </relocations>
+            </configuration>
+          </execution>
         </executions>
         <dependencies>
           <dependency>
diff --git a/meecrowave-core/src/main/java/org/apache/meecrowave/tomcat/light/LightDigester.java b/meecrowave-core/src/main/java/org/apache/meecrowave/tomcat/light/LightDigester.java
new file mode 100644
index 0000000..aee2ef6
--- /dev/null
+++ b/meecrowave-core/src/main/java/org/apache/meecrowave/tomcat/light/LightDigester.java
@@ -0,0 +1,34 @@
+package org.apache.meecrowave.tomcat.light;
+
+import org.apache.tomcat.util.descriptor.LocalResolver;
+import org.apache.tomcat.util.digester.Digester;
+import org.apache.tomcat.util.digester.RuleSet;
+import org.xml.sax.ext.EntityResolver2;
+
+import static java.util.Collections.emptyMap;
+
+// used to replace org.apache.tomcat.util.descriptor.DigesterFactory in some shades - see pom.xml
+public final class LightDigester {
+    private LightDigester() {
+        // no-op
+    }
+
+    public static Digester newDigester(boolean xmlValidation,
+                                       boolean xmlNamespaceAware,
+                                       RuleSet rule,
+                                       boolean blockExternal) {
+        if (xmlValidation) {
+            throw new IllegalArgumentException("Light distribution does not support xml validation");
+        }
+        final Digester digester = new Digester();
+        digester.setNamespaceAware(xmlNamespaceAware);
+        digester.setValidating(false);
+        digester.setUseContextClassLoader(true);
+        final EntityResolver2 resolver = new LocalResolver(emptyMap(), emptyMap(), blockExternal);
+        digester.setEntityResolver(resolver);
+        if (rule != null) {
+            digester.addRuleSet(rule);
+        }
+        return digester;
+    }
+}
diff --git a/meecrowave-specs-api/pom.xml b/meecrowave-specs-api/pom.xml
index 4064d35..4717b84 100644
--- a/meecrowave-specs-api/pom.xml
+++ b/meecrowave-specs-api/pom.xml
@@ -138,6 +138,74 @@
             </transformers>
           </configuration>
         </execution>
+        <execution>
+          <id>mw-javaee-api-light</id>
+          <phase>package</phase>
+          <goals>
+            <goal>shade</goal>
+          </goals>
+          <configuration>
+            <shadedArtifactAttached>true</shadedArtifactAttached>
+            <shadedClassifierName>light</shadedClassifierName>
+            <createSourcesJar>true</createSourcesJar>
+            <useBaseVersion>true</useBaseVersion>
+            <createDependencyReducedPom>true</createDependencyReducedPom>
+            <artifactSet>
+              <excludes>
+                <exclude>*:*:sources</exclude>
+              </excludes>
+            </artifactSet>
+            <filters>
+              <filter>
+                <artifact>org.apache.geronimo.specs:*</artifact>
+                <excludes>
+                  <exclude>META-INF/*.txt</exclude>
+                  <exclude>META-INF/LICENSE</exclude>
+                  <exclude>META-INF/NOTICE</exclude>
+                  <exclude>org/apache/geronimo/osgi/locator/ProviderLocator.class</exclude>
+                  <exclude>org/apache/geronimo/osgi/locator/Activator.class</exclude>
+                </excludes>
+              </filter>
+              <filter>
+                <artifact>*:*</artifact>
+                <excludes>
+                  <exclude>javax/servlet/resources/**</exclude>
+                  <exclude>javax/servlet/jsp/resources/**</exclude>
+                  <exclude>META-INF/LICENSE</exclude>
+                  <exclude>META-INF/NOTICE</exclude>
+                  <exclude>META-INF/README.txt</exclude>
+                </excludes>
+              </filter>
+            </filters>
+            <transformers>
+              <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
+                <manifestEntries>
+                  <Export-Package>
+                    javax.xml,javax.xml.ws,javax.xml.ws.handler,javax.xml.ws.handler.soap,javax.xml.ws.spi,javax.xml.ws.http,javax.xml.ws.soap,javax.xml.soap,javax.xml.namespace,javax.xml.registry,javax.xml.registry.infomodel,javax.xml.rpc,javax.xml.rpc.encoding,javax.xml.rpc.handler,javax.xml.rpc.handler.soap,javax.xml.rpc.holders,javax.xml.rpc.server,javax.xml.rpc.soap,javax.xml.stream,javax.xml.stream.events,javax.xml.stream.util,javax.xml.bind,javax.xml.bind.annotation,javax.xml.bind [...]
+                  </Export-Package>
+                  <Import-Package>org.apache.geronimo.osgi.registry.api;resolution:=optional</Import-Package>
+                  <Private-Package>org.apache.openejb.javaee.api.activator,org.apache.geronimo.osgi.locator
+                  </Private-Package>
+                  <Bundle-Activator>org.apache.openejb.javaee.api.activator.MultiActivator</Bundle-Activator>
+                  <Bundle-ActivationPolicy>lazy</Bundle-ActivationPolicy>
+                  <Bundle-ManifestVersion>2</Bundle-ManifestVersion>
+                  <Bundle-SymbolicName>${project.groupId}.${project.artifactId};singleton=true</Bundle-SymbolicName>
+                  <Bundle-Name>${project.name}</Bundle-Name>
+                </manifestEntries>
+              </transformer>
+              <transformer implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer">
+                <resource>META-INF/LICENSE</resource>
+                <file>${project.basedir}/src/main/legal/META-INF/all/LICENSE</file>
+              </transformer>
+              <transformer implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer">
+                <resource>META-INF/NOTICE</resource>
+                <file>${project.basedir}/src/main/legal/META-INF/all/NOTICE</file>
+              </transformer>
+              <transformer implementation="org.apache.maven.plugins.shade.resource.ApacheLicenseResourceTransformer">
+              </transformer>
+            </transformers>
+          </configuration>
+        </execution>
       </executions>
       </plugin>
     </plugins>