Author: rmannibucau Date: Fri Oct 21 09:21:12 2016 New Revision: 1765970 URL: http://svn.apache.org/viewvc?rev=1765970&view=rev Log: upgrading to owb 1.7.1-SNAPSHOT
Added: openwebbeans/microwave/trunk/microwave-core/src/main/java/org/apache/microwave/openwebbeans/KnowClassesFilter.java - copied, changed from r1765969, openwebbeans/microwave/trunk/microwave-core/src/main/java/org/apache/microwave/openwebbeans/BundleMetadataDiscovery.java Removed: openwebbeans/microwave/trunk/microwave-core/src/main/java/org/apache/microwave/openwebbeans/BundleMetadataDiscovery.java Modified: openwebbeans/microwave/trunk/microwave-core/pom.xml openwebbeans/microwave/trunk/microwave-core/src/main/java/org/apache/catalina/startup/MicrowaveContextConfig.java openwebbeans/microwave/trunk/microwave-core/src/main/java/org/apache/microwave/tomcat/OWBJarScanner.java openwebbeans/microwave/trunk/microwave-core/src/main/resources/META-INF/openwebbeans/openwebbeans.properties Modified: openwebbeans/microwave/trunk/microwave-core/pom.xml URL: http://svn.apache.org/viewvc/openwebbeans/microwave/trunk/microwave-core/pom.xml?rev=1765970&r1=1765969&r2=1765970&view=diff ============================================================================== --- openwebbeans/microwave/trunk/microwave-core/pom.xml (original) +++ openwebbeans/microwave/trunk/microwave-core/pom.xml Fri Oct 21 09:21:12 2016 @@ -33,7 +33,7 @@ <name>Microwave :: Core</name> <properties> - <openwebbeans.version>1.7.0</openwebbeans.version> + <openwebbeans.version>1.7.1-SNAPSHOT</openwebbeans.version> <tomcat.version>8.5.6</tomcat.version> <cxf.version>3.1.9-SNAPSHOT</cxf.version> <johnzon.version>0.9.5</johnzon.version> @@ -73,11 +73,6 @@ </dependency> <dependency> <groupId>org.apache.tomcat</groupId> - <artifactId>tomcat-el-api</artifactId> - <version>${tomcat.version}</version> - </dependency> - <dependency> - <groupId>org.apache.tomcat</groupId> <artifactId>tomcat-jaspic-api</artifactId> <!--<version>${tomcat.version}</version>--> <version>9.0-SNAPSHOT</version> @@ -123,6 +118,14 @@ <groupId>org.apache.tomcat</groupId> <artifactId>tomcat-annotations-api</artifactId> </exclusion> + <exclusion> + <groupId>org.apache.tomcat</groupId> + <artifactId>tomcat-jsp-api</artifactId> + </exclusion> + <exclusion> + <groupId>org.apache.tomcat</groupId> + <artifactId>tomcat-el-api</artifactId> + </exclusion> </exclusions> </dependency> <dependency> Modified: openwebbeans/microwave/trunk/microwave-core/src/main/java/org/apache/catalina/startup/MicrowaveContextConfig.java URL: http://svn.apache.org/viewvc/openwebbeans/microwave/trunk/microwave-core/src/main/java/org/apache/catalina/startup/MicrowaveContextConfig.java?rev=1765970&r1=1765969&r2=1765970&view=diff ============================================================================== --- openwebbeans/microwave/trunk/microwave-core/src/main/java/org/apache/catalina/startup/MicrowaveContextConfig.java (original) +++ openwebbeans/microwave/trunk/microwave-core/src/main/java/org/apache/catalina/startup/MicrowaveContextConfig.java Fri Oct 21 09:21:12 2016 @@ -21,10 +21,10 @@ package org.apache.catalina.startup; import org.apache.catalina.WebResource; import org.apache.microwave.Microwave; import org.apache.microwave.logging.tomcat.LogFacade; -import org.apache.microwave.openwebbeans.BundleMetadataDiscovery; import org.apache.tomcat.util.descriptor.web.WebXml; import org.apache.webbeans.config.WebBeansContext; import org.apache.webbeans.corespi.scanner.xbean.CdiArchive; +import org.apache.webbeans.web.scanner.WebScannerService; import javax.servlet.annotation.WebFilter; import javax.servlet.annotation.WebListener; @@ -55,7 +55,7 @@ public class MicrowaveContextConfig exte final ClassLoader old = thread.getContextClassLoader(); thread.setContextClassLoader(loader); try { - final BundleMetadataDiscovery scannerService = BundleMetadataDiscovery.class.cast(WebBeansContext.getInstance().getScannerService()); + final WebScannerService scannerService = WebScannerService.class.cast(WebBeansContext.getInstance().getScannerService()); scannerService.scan(); final CdiArchive archive = CdiArchive.class.cast(scannerService.getFinder().getArchive()); Stream.of(WebServlet.class, WebFilter.class, WebListener.class) Copied: openwebbeans/microwave/trunk/microwave-core/src/main/java/org/apache/microwave/openwebbeans/KnowClassesFilter.java (from r1765969, openwebbeans/microwave/trunk/microwave-core/src/main/java/org/apache/microwave/openwebbeans/BundleMetadataDiscovery.java) URL: http://svn.apache.org/viewvc/openwebbeans/microwave/trunk/microwave-core/src/main/java/org/apache/microwave/openwebbeans/KnowClassesFilter.java?p2=openwebbeans/microwave/trunk/microwave-core/src/main/java/org/apache/microwave/openwebbeans/KnowClassesFilter.java&p1=openwebbeans/microwave/trunk/microwave-core/src/main/java/org/apache/microwave/openwebbeans/BundleMetadataDiscovery.java&r1=1765969&r2=1765970&rev=1765970&view=diff ============================================================================== --- openwebbeans/microwave/trunk/microwave-core/src/main/java/org/apache/microwave/openwebbeans/BundleMetadataDiscovery.java (original) +++ openwebbeans/microwave/trunk/microwave-core/src/main/java/org/apache/microwave/openwebbeans/KnowClassesFilter.java Fri Oct 21 09:21:12 2016 @@ -18,274 +18,158 @@ */ package org.apache.microwave.openwebbeans; -import org.apache.webbeans.corespi.scanner.xbean.CdiArchive; -import org.apache.webbeans.corespi.scanner.xbean.OwbAnnotationFinder; -import org.apache.webbeans.spi.BeanArchiveService; -import org.apache.webbeans.util.WebBeansUtil; -import org.apache.webbeans.web.scanner.WebScannerService; -import org.apache.xbean.finder.AnnotationFinder; import org.apache.xbean.finder.filter.Filter; -import java.net.URL; import java.util.HashSet; -import java.util.List; import java.util.Set; -public class BundleMetadataDiscovery extends WebScannerService { - public OwbAnnotationFinder getFinder() { - return OwbAnnotationFinder.class.cast(initFinder()); - } +public class KnowClassesFilter implements Filter { // one easy and efficient solution for fatjars + private static final String[] EMPTY_ARRAY = new String[0]; - @Override - public void scan() { - if (finder != null) { - return; - } - super.scan(); + // this has to be configured from the root config + private final String[] forced = EMPTY_ARRAY; + private final String[] skipped = EMPTY_ARRAY; + + private final Filter delegateAccept; + private final Filter delegateSkip; + + public KnowClassesFilter() { + final Set<String> excluded = new HashSet<>(); + excluded.add("com.codehale.metrics"); + excluded.add("com.ctc.wstx"); + excluded.add("com.datastax.driver.core"); + excluded.add("com.fasterxml.jackson.annotation"); + excluded.add("com.fasterxml.jackson.core"); + excluded.add("com.fasterxml.jackson.databind"); + excluded.add("com.fasterxml.jackson.dataformat"); + excluded.add("com.fasterxml.jackson.module"); + excluded.add("com.google.common"); + excluded.add("com.google.thirdparty"); + excluded.add("com.ibm.wsdl"); + excluded.add("com.jcraft.jsch"); + excluded.add("com.kenai.jffi"); + excluded.add("com.kenai.jnr"); + excluded.add("com.sun.istack"); + excluded.add("com.sun.xml.bind"); + excluded.add("com.sun.xml.messaging.saaj"); + excluded.add("com.sun.xml.txw2"); + excluded.add("io.jsonwebtoken"); + excluded.add("io.netty"); + excluded.add("io.swagger.annotations"); + excluded.add("io.swagger.config"); + excluded.add("io.swagger.converter"); + excluded.add("io.swagger.core"); + excluded.add("io.swagger.jackson"); + excluded.add("io.swagger.jaxrs"); + excluded.add("io.swagger.model"); + excluded.add("io.swagger.models"); + excluded.add("io.swagger.util"); + excluded.add("javax"); + excluded.add("jnr"); + excluded.add("junit"); + excluded.add("net.sf.ehcache"); + excluded.add("net.shibboleth.utilities.java.support"); + excluded.add("org.aeonbits.owner"); + excluded.add("org.apache.activemq"); + excluded.add("org.apache.bval"); + excluded.add("org.apache.catalina"); + excluded.add("org.apache.camel"); + excluded.add("org.apache.commons.beanutils"); + excluded.add("org.apache.commons.cli"); + excluded.add("org.apache.commons.codec"); + excluded.add("org.apache.commons.collections"); + excluded.add("org.apache.commons.dbcp2"); + excluded.add("org.apache.commons.digester"); + excluded.add("org.apache.commons.io"); + excluded.add("org.apache.commons.lang"); + excluded.add("org.apache.commons.lang3"); + excluded.add("org.apache.commons.logging"); + excluded.add("org.apache.commons.pool2"); + excluded.add("org.apache.coyote"); + excluded.add("org.apache.cxf"); + excluded.add("org.apache.geronimo.javamail"); + excluded.add("org.apache.geronimo.mail"); + excluded.add("org.apache.geronimo.osgi"); + excluded.add("org.apache.http"); + excluded.add("org.apache.jcp"); + excluded.add("org.apache.johnzon"); + excluded.add("org.apache.juli"); + excluded.add("org.apache.logging.log4j.core"); + excluded.add("org.apache.logging.log4j.util"); + excluded.add("org.apache.logging.slf4j"); + excluded.add("org.apache.microwave"); + excluded.add("org.apache.myfaces"); + excluded.add("org.apache.naming"); + excluded.add("org.apache.neethi"); + excluded.add("org.apache.openejb"); + excluded.add("org.apache.oro"); + excluded.add("org.apache.tomcat"); + excluded.add("org.apache.tomee"); + excluded.add("org.apache.velocity"); + excluded.add("org.apache.webbeans"); + excluded.add("org.apache.ws"); + excluded.add("org.apache.wss4j"); + excluded.add("org.apache.xbean"); + excluded.add("org.apache.xml"); + excluded.add("org.apache.xml.resolver"); + excluded.add("org.bouncycastle"); + excluded.add("org.codehaus.stax2"); + excluded.add("org.codehaus.swizzle.Grep"); + excluded.add("org.codehaus.swizzle.Lexer"); + excluded.add("org.cryptacular"); + excluded.add("org.eclipse.jdt.core"); + excluded.add("org.eclipse.jdt.internal"); + excluded.add("org.fusesource.hawtbuf"); + excluded.add("org.hamcrest"); + excluded.add("org.hsqldb"); + excluded.add("org.jasypt"); + excluded.add("org.jboss.marshalling"); + excluded.add("org.joda.time"); + excluded.add("org.jose4j"); + excluded.add("org.junit"); + excluded.add("org.jvnet.mimepull"); + excluded.add("org.metatype.sxc"); + excluded.add("org.objectweb.asm"); + excluded.add("org.objectweb.howl"); + excluded.add("org.openejb"); + excluded.add("org.opensaml"); + excluded.add("org.slf4j"); + excluded.add("org.swizzle"); + excluded.add("org.terracotta.context"); + excluded.add("org.terracotta.entity"); + excluded.add("org.terracotta.modules.ehcache"); + excluded.add("org.terracotta.statistics"); + excluded.add("org.yaml.snakeyaml"); + excluded.add("serp"); + + final Set<String> included = new HashSet<>(); + included.add("org.apache.camel.cdi"); + included.add("org.apache.myfaces.cdi"); + // included.add("org.apache.myfaces.application.cdi"); + included.add("org.apache.myfaces.flow.cdi"); + + delegateSkip = new OptimizedExclusionFilter(excluded); + delegateAccept = new OptimizedExclusionFilter(included); } @Override - protected AnnotationFinder initFinder() { - if (finder != null) { - return finder; + public boolean accept(final String name) { + if (forced != null && startsWith(forced, name)) { + return true; } - - // if OWB gets a filter on CdiArchive we can simplify that bit of code - final Filter filter = new KnowClassesFilter(); - final BeanArchiveService beanArchiveService = webBeansContext.getBeanArchiveService(); - archive = new CdiArchive(new BeanArchiveService() { - @Override - public BeanArchiveInformation getBeanArchiveInformation(final URL beanArchiveUrl) { - final BeanArchiveInformation information = beanArchiveService.getBeanArchiveInformation(beanArchiveUrl); - return new BeanArchiveInformation() { - @Override - public int hashCode() { - return information.hashCode(); - } - - @Override - public boolean equals(final Object obj) { - return information.equals(obj) || this == obj; - } - - @Override - public boolean isClassExcluded(final String clazz) { - return information.isClassExcluded(clazz) || !filter.accept(clazz); - } - - @Override - public String getVersion() { - return information.getVersion(); - } - - @Override - public BeanDiscoveryMode getBeanDiscoveryMode() { - return information.getBeanDiscoveryMode(); - } - - @Override - public boolean isPackageExcluded(final String packageName) { - return information.isPackageExcluded(packageName); - } - - @Override - public List<String> getInterceptors() { - return information.getInterceptors(); - } - - @Override - public List<String> getDecorators() { - return information.getDecorators(); - } - - @Override - public List<String> getAlternativeClasses() { - return information.getAlternativeClasses(); - } - - @Override - public List<String> getAlternativeStereotypes() { - return information.getAlternativeStereotypes(); - } - - @Override - public List<String> getExcludedClasses() { - return information.getExcludedClasses(); - } - - @Override - public List<String> getExcludedPackages() { - return information.getExcludedPackages(); - } - - @Override - public List<String> getAllowProxyingClasses() { - return information.getAllowProxyingClasses(); - } - }; - } - - @Override - public Set<URL> getRegisteredBeanArchives() { - return beanArchiveService.getRegisteredBeanArchives(); - } - - @Override - public void release() { - beanArchiveService.release(); - } - }, WebBeansUtil.getCurrentClassLoader(), getBeanDeploymentUrls()); - return finder = new OwbAnnotationFinder(archive); - } - - private static class KnowClassesFilter implements Filter { // one easy and efficient solution for fatjars - private static final String[] EMPTY_ARRAY = new String[0]; - - // this has to be configured from the root config - private final String[] forced = EMPTY_ARRAY; - private final String[] skipped = EMPTY_ARRAY; - - private final Filter delegateAccept; - private final Filter delegateSkip; - - private KnowClassesFilter() { - final Set<String> excluded = new HashSet<>(); - excluded.add("com.codehale.metrics"); - excluded.add("com.ctc.wstx"); - excluded.add("com.datastax.driver.core"); - excluded.add("com.fasterxml.jackson.annotation"); - excluded.add("com.fasterxml.jackson.core"); - excluded.add("com.fasterxml.jackson.databind"); - excluded.add("com.fasterxml.jackson.dataformat"); - excluded.add("com.fasterxml.jackson.module"); - excluded.add("com.google.common"); - excluded.add("com.google.thirdparty"); - excluded.add("com.ibm.wsdl"); - excluded.add("com.jcraft.jsch"); - excluded.add("com.kenai.jffi"); - excluded.add("com.kenai.jnr"); - excluded.add("com.sun.istack"); - excluded.add("com.sun.xml.bind"); - excluded.add("com.sun.xml.messaging.saaj"); - excluded.add("com.sun.xml.txw2"); - excluded.add("io.jsonwebtoken"); - excluded.add("io.netty"); - excluded.add("io.swagger.annotations"); - excluded.add("io.swagger.config"); - excluded.add("io.swagger.converter"); - excluded.add("io.swagger.core"); - excluded.add("io.swagger.jackson"); - excluded.add("io.swagger.jaxrs"); - excluded.add("io.swagger.model"); - excluded.add("io.swagger.models"); - excluded.add("io.swagger.util"); - excluded.add("javax"); - excluded.add("jnr"); - excluded.add("junit"); - excluded.add("net.sf.ehcache"); - excluded.add("net.shibboleth.utilities.java.support"); - excluded.add("org.aeonbits.owner"); - excluded.add("org.apache.activemq"); - excluded.add("org.apache.bval"); - excluded.add("org.apache.catalina"); - excluded.add("org.apache.camel"); - excluded.add("org.apache.commons.beanutils"); - excluded.add("org.apache.commons.cli"); - excluded.add("org.apache.commons.codec"); - excluded.add("org.apache.commons.collections"); - excluded.add("org.apache.commons.dbcp2"); - excluded.add("org.apache.commons.digester"); - excluded.add("org.apache.commons.io"); - excluded.add("org.apache.commons.lang"); - excluded.add("org.apache.commons.lang3"); - excluded.add("org.apache.commons.logging"); - excluded.add("org.apache.commons.pool2"); - excluded.add("org.apache.coyote"); - excluded.add("org.apache.cxf"); - excluded.add("org.apache.geronimo.javamail"); - excluded.add("org.apache.geronimo.mail"); - excluded.add("org.apache.geronimo.osgi"); - excluded.add("org.apache.http"); - excluded.add("org.apache.jcp"); - excluded.add("org.apache.johnzon"); - excluded.add("org.apache.juli"); - excluded.add("org.apache.logging.log4j.core"); - excluded.add("org.apache.logging.log4j.util"); - excluded.add("org.apache.logging.slf4j"); - excluded.add("org.apache.microwave"); - excluded.add("org.apache.myfaces"); - excluded.add("org.apache.naming"); - excluded.add("org.apache.neethi"); - excluded.add("org.apache.openejb"); - excluded.add("org.apache.oro"); - excluded.add("org.apache.tomcat"); - excluded.add("org.apache.tomee"); - excluded.add("org.apache.velocity"); - excluded.add("org.apache.webbeans"); - excluded.add("org.apache.ws"); - excluded.add("org.apache.wss4j"); - excluded.add("org.apache.xbean"); - excluded.add("org.apache.xml"); - excluded.add("org.apache.xml.resolver"); - excluded.add("org.bouncycastle"); - excluded.add("org.codehaus.stax2"); - excluded.add("org.codehaus.swizzle.Grep"); - excluded.add("org.codehaus.swizzle.Lexer"); - excluded.add("org.cryptacular"); - excluded.add("org.eclipse.jdt.core"); - excluded.add("org.eclipse.jdt.internal"); - excluded.add("org.fusesource.hawtbuf"); - excluded.add("org.hamcrest"); - excluded.add("org.hsqldb"); - excluded.add("org.jasypt"); - excluded.add("org.jboss.marshalling"); - excluded.add("org.joda.time"); - excluded.add("org.jose4j"); - excluded.add("org.junit"); - excluded.add("org.jvnet.mimepull"); - excluded.add("org.metatype.sxc"); - excluded.add("org.objectweb.asm"); - excluded.add("org.objectweb.howl"); - excluded.add("org.openejb"); - excluded.add("org.opensaml"); - excluded.add("org.slf4j"); - excluded.add("org.swizzle"); - excluded.add("org.terracotta.context"); - excluded.add("org.terracotta.entity"); - excluded.add("org.terracotta.modules.ehcache"); - excluded.add("org.terracotta.statistics"); - excluded.add("org.yaml.snakeyaml"); - excluded.add("serp"); - - final Set<String> included = new HashSet<>(); - included.add("org.apache.camel.cdi"); - included.add("org.apache.myfaces.cdi"); - // included.add("org.apache.myfaces.application.cdi"); - included.add("org.apache.myfaces.flow.cdi"); - - delegateSkip = new OptimizedExclusionFilter(excluded); - delegateAccept = new OptimizedExclusionFilter(included); + if (skipped != null && startsWith(skipped, name)) { + return false; } + return delegateAccept.accept(name) || !delegateSkip.accept(name); + } - @Override - public boolean accept(final String name) { - if (forced != null && startsWith(forced, name)) { + private static boolean startsWith(final String[] array, String name) { + for (final String prefix : array) { + if (name.startsWith(prefix)) { return true; } - if (skipped != null && startsWith(skipped, name)) { - return false; - } - return delegateAccept.accept(name) || !delegateSkip.accept(name); - } - - private static boolean startsWith(final String[] array, String name) { - for (final String prefix : array) { - if (name.startsWith(prefix)) { - return true; - } - } - return false; } + return false; } private static class OptimizedExclusionFilter implements Filter { Modified: openwebbeans/microwave/trunk/microwave-core/src/main/java/org/apache/microwave/tomcat/OWBJarScanner.java URL: http://svn.apache.org/viewvc/openwebbeans/microwave/trunk/microwave-core/src/main/java/org/apache/microwave/tomcat/OWBJarScanner.java?rev=1765970&r1=1765969&r2=1765970&view=diff ============================================================================== --- openwebbeans/microwave/trunk/microwave-core/src/main/java/org/apache/microwave/tomcat/OWBJarScanner.java (original) +++ openwebbeans/microwave/trunk/microwave-core/src/main/java/org/apache/microwave/tomcat/OWBJarScanner.java Fri Oct 21 09:21:12 2016 @@ -18,7 +18,6 @@ */ package org.apache.microwave.tomcat; -import org.apache.microwave.openwebbeans.BundleMetadataDiscovery; import org.apache.tomcat.Jar; import org.apache.tomcat.JarScanFilter; import org.apache.tomcat.JarScanType; @@ -29,6 +28,7 @@ import org.apache.tomcat.util.scan.Const import org.apache.tomcat.util.scan.JarFactory; import org.apache.webbeans.config.WebBeansContext; import org.apache.webbeans.corespi.scanner.xbean.CdiArchive; +import org.apache.webbeans.web.scanner.WebScannerService; import javax.servlet.ServletContext; import java.io.File; @@ -44,7 +44,7 @@ public class OWBJarScanner implements Ja public void scan(final JarScanType jarScanType, final ServletContext servletContext, final JarScannerCallback callback) { switch (jarScanType) { case PLUGGABILITY: - CdiArchive.class.cast(BundleMetadataDiscovery.class.cast(WebBeansContext.getInstance().getScannerService()).getFinder().getArchive()) + CdiArchive.class.cast(WebScannerService.class.cast(WebBeansContext.getInstance().getScannerService()).getFinder().getArchive()) .classesByUrl().keySet().forEach(u -> { try { final URL url = new URL(u); Modified: openwebbeans/microwave/trunk/microwave-core/src/main/resources/META-INF/openwebbeans/openwebbeans.properties URL: http://svn.apache.org/viewvc/openwebbeans/microwave/trunk/microwave-core/src/main/resources/META-INF/openwebbeans/openwebbeans.properties?rev=1765970&r1=1765969&r2=1765970&view=diff ============================================================================== --- openwebbeans/microwave/trunk/microwave-core/src/main/resources/META-INF/openwebbeans/openwebbeans.properties (original) +++ openwebbeans/microwave/trunk/microwave-core/src/main/resources/META-INF/openwebbeans/openwebbeans.properties Fri Oct 21 09:21:12 2016 @@ -15,7 +15,7 @@ #specific language governing permissions and limitations #under the License. configuration.ordinal=1000 -org.apache.webbeans.spi.ScannerService=org.apache.microwave.openwebbeans.BundleMetadataDiscovery +org.apache.xbean.finder.filter.Filter=org.apache.microwave.openwebbeans.KnowClassesFilter org.apache.webbeans.scanExclusionPaths=\ /jre/lib, \ /Contents/Home/, \