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 <rmannibu...@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>