| /* |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| */ |
| package org.apache.meecrowave.openwebbeans; |
| |
| import static java.util.Optional.ofNullable; |
| import static java.util.stream.Collectors.toSet; |
| |
| import java.util.Collection; |
| import java.util.HashSet; |
| import java.util.stream.Stream; |
| |
| import org.apache.meecrowave.Meecrowave; |
| import org.apache.tomcat.JarScanFilter; |
| import org.apache.tomcat.JarScanType; |
| |
| public class KnownJarsFilter implements JarScanFilter { |
| private final Collection<String> forceIncludes = new HashSet<String>() {{ |
| add("cxf-integration-cdi"); |
| }}; |
| |
| private final Collection<String> excludes = new HashSet<String>() {{ |
| add("activation-"); |
| add("activeio-"); |
| add("activemq-"); |
| add("aether-"); |
| add("akka-actor-"); |
| add("akka-cluster-"); |
| add("akka-remote-"); |
| add("animal-sniffer-annotations-"); |
| add("ant-"); |
| add("antlr-"); |
| add("aopalliance-"); |
| add("ApacheJMeter"); |
| add("apiguardian-"); |
| add("args4j-"); |
| add("arquillian-common"); |
| add("arquillian-config-"); |
| add("arquillian-container-"); |
| add("arquillian-core-api-"); |
| add("arquillian-core-impl-base"); |
| add("arquillian-core.jar"); |
| add("arquillian-core-spi-"); |
| add("arquillian-junit-"); |
| add("arquillian-junit.jar"); |
| add("arquillian-test-api"); |
| add("arquillian-test-impl-base"); |
| add("arquillian-testng.jar"); |
| add("arquillian-test-spi"); |
| add("arquillian-tomee-"); |
| add("arquillian-transaction.jar"); |
| add("asciidoctorj-"); |
| add("asm-"); |
| add("async-http-client-"); |
| add("avalon-framework-"); |
| add("avro-"); |
| add("axis-"); |
| add("axis2-"); |
| add("batchee-jbatch"); |
| add("batik-"); |
| add("bcprov-"); |
| add("beam-"); |
| add("bootstrap.jar"); |
| add("bsf-"); |
| add("bval-core"); |
| add("bval-jsr"); |
| add("c3p0-"); |
| add("cassandra-driver-core"); |
| add("catalina-"); |
| add("catalina.jar"); |
| add("cglib-"); |
| add("charsets.jar"); |
| add("checker-qual"); |
| add("common-java5"); |
| add("common-junit"); |
| add("commons-beanutils"); |
| add("commons-cli-"); |
| add("commons-codec-"); |
| add("commons-collections-"); |
| add("commons-compress-"); |
| add("commons-configuration-"); |
| add("commons-dbcp"); |
| add("commons-dbcp-all-1.3-"); |
| add("commons-digester-"); |
| add("commons-discovery-"); |
| add("commons-fileupload-"); |
| add("commons-httpclient-"); |
| add("commons-io-"); |
| add("commons-jcs-core-"); |
| add("commons-lang-"); |
| add("commons-lang3-"); |
| add("commons-logging-"); |
| add("commons-logging-api-"); |
| add("commons-net-"); |
| add("commons-pool-"); |
| add("commons-pool2-"); |
| add("commons-text-"); |
| add("cryptacular-"); |
| add("cssparser-"); |
| add("cxf-"); |
| add("deploy.jar"); |
| add("derby-"); |
| add("derbyclient-"); |
| add("derbynet-"); |
| add("dom4j"); |
| add("ecj-"); |
| add("eclipselink-"); |
| add("ehcache-"); |
| add("el-api"); |
| add("error_prone_annotations"); |
| add("failureaccess"); |
| add("FastInfoset"); |
| add("freemarker-"); |
| add("fusemq-leveldb-"); |
| add("geronimo-connector-"); |
| add("geronimo-j2ee"); |
| add("geronimo-jpa"); |
| add("geronimo-javamail"); |
| add("geronimo-transaction"); |
| add("google-"); |
| add("gpars-"); |
| add("gragent.jar"); |
| add("groovy-"); |
| add("gson-"); |
| add("guava-"); |
| add("guice-"); |
| add("h2-"); |
| add("hamcrest-"); |
| add("hawtbuf-"); |
| add("hawtdispatch-"); |
| add("hawtio-"); |
| add("hawtjni-runtime"); |
| add("hibernate-"); |
| add("howl-"); |
| add("hsqldb-"); |
| add("htmlunit-"); |
| add("httpclient-"); |
| add("httpcore-"); |
| add("icu4j-"); |
| add("idb-"); |
| add("idea_rt.jar"); |
| add("istack-commons-runtime-"); |
| add("ivy-"); |
| add("j2objc-"); |
| add("jackson-annotations-"); |
| add("jackson-core-"); |
| add("jackson-databind-"); |
| add("jackson-mapper-asl-"); |
| add("jackson-module-jaxb-annotations-"); |
| add("janino-"); |
| add("jansi-"); |
| add("jasper-el.jar"); |
| add("jasper.jar"); |
| add("jasypt-"); |
| add("java-atk-wrapper"); |
| add("javaee-"); |
| add("javaee-api"); |
| add("javassist-"); |
| add("java-support-"); |
| add("javaws.jar"); |
| add("javax."); |
| add("jaxb-"); |
| add("jaxp-"); |
| add("jaxws-api"); |
| add("jbake-"); |
| add("jboss-"); |
| add("jbossall-"); |
| add("jbosscx-"); |
| add("jbossjts-"); |
| add("jbosssx-"); |
| add("jce.jar"); |
| add("jcommander-"); |
| add("jersey-"); |
| add("jettison-"); |
| add("jetty-"); |
| add("jfr.jar"); |
| add("jfxrt.jar"); |
| add("jib-"); |
| add("jline"); |
| add("jmdns-"); |
| add("jna-"); |
| add("jnr-"); |
| add("joda-time-"); |
| add("johnzon-"); |
| add("jolokia-core-"); |
| add("jolokia-jvm-"); |
| add("jolokia-serv"); |
| add("jruby-"); |
| add("jsonb-api"); |
| add("json-simple-"); |
| add("jsoup-"); |
| add("jsp-api"); |
| add("jsr166"); |
| add("jsr299-"); |
| add("jsr305"); |
| add("jsr311-"); |
| add("jsse.jar"); |
| add("juli-"); |
| add("jul-to-slf4j-"); |
| add("junit-"); |
| add("junit5-"); |
| add("jython-"); |
| add("kahadb-"); |
| add("kotlin-runtime"); |
| add("leveldb"); |
| add("listenablefuture"); |
| add("log4j-"); |
| add("logkit-"); |
| add("lombok-"); |
| add("lucene-analyzers-"); |
| add("lucene-core-"); |
| add("management-agent.jar"); |
| add("maven-"); |
| add("mbean-annotation-api-"); |
| add("meecrowave-gradle-"); |
| add("meecrowave-maven-"); |
| add("meecrowave-specs-api-"); |
| add("microprofile-config-api-"); |
| add("microprofile-fault-tolerance-api-"); |
| add("microprofile-health-api-"); |
| add("microprofile-jwt-auth-api-"); |
| add("microprofile-metrics-api-"); |
| add("microprofile-openapi-api-"); |
| add("microprofile-opentracing-api-"); |
| add("mimepull-"); |
| add("mina-"); |
| add("mqtt-client-"); |
| add("multiverse-core-"); |
| add("myfaces-api"); |
| add("myfaces-impl"); |
| add("mysql-connector-java-"); |
| add("neethi-"); |
| add("nekohtml-"); |
| add("netty-"); |
| add("openjpa-"); |
| add("openmdx-"); |
| add("opensaml-"); |
| add("opentest4j-"); |
| add("openwebbeans-"); |
| add("openws-"); |
| add("ops4j-"); |
| add("org.apache.aries.blueprint.noosgi"); |
| add("org.apache.aries.blueprint.web"); |
| add("org.eclipse."); |
| add("org.jacoco.agent"); |
| add("org.junit."); |
| add("org.osgi.annotation.versioning"); |
| add("org.osgi.core-"); |
| add("org.osgi.enterprise"); |
| add("orient-commons-"); |
| add("orientdb-core-"); |
| add("orientdb-nativeos-"); |
| add("oro-"); |
| add("paranamer-"); |
| add("pax-url"); |
| add("PDFBox"); |
| add("plexus-"); |
| add("plugin.jar"); |
| add("poi-"); |
| add("qdox-"); |
| add("quartz-2"); |
| add("quartz-openejb-"); |
| add("resources.jar"); |
| add("rhino-"); |
| add("rmock-"); |
| add("rt.jar"); |
| add("saaj-"); |
| add("sac-"); |
| add("scala-library-"); |
| add("scalatest"); |
| add("scannotation-"); |
| add("serializer-"); |
| add("serp-"); |
| add("servlet-api-"); |
| add("shrinkwrap-"); |
| add("sisu-guice"); |
| add("sisu-inject"); |
| add("slf4j-"); |
| add("smack-"); |
| add("smackx-"); |
| add("snappy-"); |
| add("spring-"); |
| add("sshd-"); |
| add("stax2-api-"); |
| add("stax-api-"); |
| add("stax-ex-"); |
| add("sunec.jar"); |
| add("surefire-"); |
| add("swizzle-"); |
| add("sxc-"); |
| add("testng-"); |
| add("tomcat-annotations"); |
| add("tomcat-api"); |
| add("tomcat-catalina"); |
| add("tomcat-coyote"); |
| add("tomcat-dbcp"); |
| add("tomcat-el"); |
| add("tomcat-i18n"); |
| add("tomcat-jasper"); |
| add("tomcat-jaspic"); |
| add("tomcat-jdbc"); |
| add("tomcat-jni"); |
| add("tomcat-jsp"); |
| add("tomcat-juli"); |
| add("tomcat-servlet"); |
| add("tomcat-spdy"); |
| add("tomcat-tribes"); |
| add("tomcat-util"); |
| add("tomcat-websocket-api"); |
| add("tomee-"); |
| add("tools.jar"); |
| add("twitter4j-"); |
| add("validation-api-"); |
| add("velocity-"); |
| add("wagon-"); |
| add("webbeans-ee"); |
| add("webbeans-ejb"); |
| add("webbeans-impl"); |
| add("webbeans-spi"); |
| add("websocket-api"); |
| add("woodstox-core-"); |
| add("ws-commons-util-"); |
| add("wsdl4j-"); |
| add("wss4j-"); |
| add("wstx-asl-"); |
| add("xalan-"); |
| add("xbean-"); |
| add("xercesImpl-"); |
| add("xml-apis-"); |
| add("xmlbeans-"); |
| add("xmlgraphics-"); |
| add("xmlpull-"); |
| add("xml-resolver-"); |
| add("xmlrpc-"); |
| add("xmlschema-"); |
| add("XmlSchema-"); |
| add("xmlsec-"); |
| add("xmltooling-"); |
| add("xmlunit-"); |
| add("xstream-"); |
| add("xz-"); |
| add("zipfs.jar"); |
| add("ziplock-"); |
| }}; |
| |
| public KnownJarsFilter() { |
| // no-op |
| } |
| |
| KnownJarsFilter(final Meecrowave.Builder config) { |
| ofNullable(config.getScanningIncludes()).ifPresent(i -> { |
| forceIncludes.clear(); |
| forceIncludes.addAll(Stream.of(i.split(",")).map(String::trim).filter(j -> !j.isEmpty()).collect(toSet())); |
| }); |
| ofNullable(config.getScanningExcludes()) |
| .ifPresent(i -> excludes.addAll(Stream.of(i.split(",")).map(String::trim).filter(j -> !j.isEmpty()).collect(toSet()))); |
| } |
| |
| @Override |
| public boolean check(final JarScanType jarScanType, final String jarName) { |
| return forceIncludes.stream().anyMatch(jarName::startsWith) || |
| (excludes.stream().noneMatch(jarName::startsWith) && !isGeronimoSpecJar(jarName)); |
| } |
| |
| private boolean isGeronimoSpecJar(final String jarName) { |
| return jarName.startsWith("geronimo") && jarName.contains("_spec"); |
| } |
| } |