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 2016/12/05 09:04:23 UTC
svn commit: r1772610 - in /openwebbeans/meecrowave/trunk:
meecrowave-arquillian/src/main/java/org/apache/meecrowave/arquillian/
meecrowave-core/src/main/java/org/apache/catalina/startup/
meecrowave-core/src/main/java/org/apache/meecrowave/ meecrowave-c...
Author: rmannibucau
Date: Mon Dec 5 09:04:23 2016
New Revision: 1772610
URL: http://svn.apache.org/viewvc?rev=1772610&view=rev
Log:
few code cleanup and adding scaninng include/exclude to the configuration. Also fixing the mojo js customizer variables adding project and renaming catalinaBase to meecrowaveBase
Modified:
openwebbeans/meecrowave/trunk/meecrowave-arquillian/src/main/java/org/apache/meecrowave/arquillian/MeecrowaveConfiguration.java
openwebbeans/meecrowave/trunk/meecrowave-core/src/main/java/org/apache/catalina/startup/MeecrowaveContextConfig.java
openwebbeans/meecrowave/trunk/meecrowave-core/src/main/java/org/apache/meecrowave/Meecrowave.java
openwebbeans/meecrowave/trunk/meecrowave-core/src/main/java/org/apache/meecrowave/openwebbeans/KnownJarsFilter.java
openwebbeans/meecrowave/trunk/meecrowave-core/src/main/java/org/apache/meecrowave/openwebbeans/OWBTomcatWebScannerService.java
openwebbeans/meecrowave/trunk/meecrowave-gradle-plugin/src/main/java/org/apache/meecrowave/gradle/MeecrowaveExtension.java
openwebbeans/meecrowave/trunk/meecrowave-gradle-plugin/src/main/java/org/apache/meecrowave/gradle/MeecrowaveTask.java
openwebbeans/meecrowave/trunk/meecrowave-maven-plugin/src/main/java/org/apache/meecrowave/maven/MeecrowaveRunMojo.java
Modified: openwebbeans/meecrowave/trunk/meecrowave-arquillian/src/main/java/org/apache/meecrowave/arquillian/MeecrowaveConfiguration.java
URL: http://svn.apache.org/viewvc/openwebbeans/meecrowave/trunk/meecrowave-arquillian/src/main/java/org/apache/meecrowave/arquillian/MeecrowaveConfiguration.java?rev=1772610&r1=1772609&r2=1772610&view=diff
==============================================================================
--- openwebbeans/meecrowave/trunk/meecrowave-arquillian/src/main/java/org/apache/meecrowave/arquillian/MeecrowaveConfiguration.java (original)
+++ openwebbeans/meecrowave/trunk/meecrowave-arquillian/src/main/java/org/apache/meecrowave/arquillian/MeecrowaveConfiguration.java Mon Dec 5 09:04:23 2016
@@ -95,6 +95,8 @@ public class MeecrowaveConfiguration imp
private String jsonbNamingStrategy;
private String jsonbOrderStrategy;
private boolean java9SkipWorkarounds = false;
+ private String scanningIncludes;
+ private String scanningExcludes;
@Override
public void validate() throws ConfigurationException {
@@ -562,4 +564,20 @@ public class MeecrowaveConfiguration imp
public void setUseLog4j2JulLogManager(final boolean useLog4j2JulLogManager) {
this.useLog4j2JulLogManager = useLog4j2JulLogManager;
}
+
+ public String getScanningIncludes() {
+ return scanningIncludes;
+ }
+
+ public void setScanningIncludes(final String scanningIncludes) {
+ this.scanningIncludes = scanningIncludes;
+ }
+
+ public String getScanningExcludes() {
+ return scanningExcludes;
+ }
+
+ public void setScanningExcludes(final String scanningExcludes) {
+ this.scanningExcludes = scanningExcludes;
+ }
}
Modified: openwebbeans/meecrowave/trunk/meecrowave-core/src/main/java/org/apache/catalina/startup/MeecrowaveContextConfig.java
URL: http://svn.apache.org/viewvc/openwebbeans/meecrowave/trunk/meecrowave-core/src/main/java/org/apache/catalina/startup/MeecrowaveContextConfig.java?rev=1772610&r1=1772609&r2=1772610&view=diff
==============================================================================
--- openwebbeans/meecrowave/trunk/meecrowave-core/src/main/java/org/apache/catalina/startup/MeecrowaveContextConfig.java (original)
+++ openwebbeans/meecrowave/trunk/meecrowave-core/src/main/java/org/apache/catalina/startup/MeecrowaveContextConfig.java Mon Dec 5 09:04:23 2016
@@ -22,6 +22,7 @@ import org.apache.catalina.WebResource;
import org.apache.meecrowave.Meecrowave;
import org.apache.meecrowave.logging.tomcat.LogFacade;
import org.apache.meecrowave.openwebbeans.OWBTomcatWebScannerService;
+import org.apache.tomcat.JarScanner;
import org.apache.tomcat.util.descriptor.web.WebXml;
import org.apache.webbeans.config.WebBeansContext;
import org.apache.webbeans.corespi.scanner.xbean.CdiArchive;
@@ -74,7 +75,7 @@ public class MeecrowaveContextConfig ext
thread.setContextClassLoader(loader);
try {
final OWBTomcatWebScannerService scannerService = OWBTomcatWebScannerService.class.cast(WebBeansContext.getInstance().getScannerService());
- ofNullable(context.getJarScanner()).ifPresent(s -> scannerService.setFilter(s.getJarScanFilter()));
+ scannerService.setFilter(ofNullable(context.getJarScanner()).map(JarScanner::getJarScanFilter).orElse(null), context.getServletContext());
scannerService.setDocBase(context.getDocBase());
scannerService.setShared(configuration.getSharedLibraries());
scannerService.scan();
Modified: openwebbeans/meecrowave/trunk/meecrowave-core/src/main/java/org/apache/meecrowave/Meecrowave.java
URL: http://svn.apache.org/viewvc/openwebbeans/meecrowave/trunk/meecrowave-core/src/main/java/org/apache/meecrowave/Meecrowave.java?rev=1772610&r1=1772609&r2=1772610&view=diff
==============================================================================
--- openwebbeans/meecrowave/trunk/meecrowave-core/src/main/java/org/apache/meecrowave/Meecrowave.java (original)
+++ openwebbeans/meecrowave/trunk/meecrowave-core/src/main/java/org/apache/meecrowave/Meecrowave.java Mon Dec 5 09:04:23 2016
@@ -183,10 +183,11 @@ public class Meecrowave implements AutoC
return d;
});
+ final OWBJarScanner scanner = new OWBJarScanner();
final StandardContext ctx = new StandardContext();
ctx.setPath(meta.context);
ctx.setName(meta.context);
- ctx.setJarScanner(new OWBJarScanner());
+ ctx.setJarScanner(scanner);
ctx.setInstanceManager(new CDIInstanceManager());
try {
ctx.setDocBase(dir.getCanonicalPath());
@@ -194,13 +195,11 @@ public class Meecrowave implements AutoC
ctx.setDocBase(dir.getAbsolutePath());
}
ofNullable(configuration.tomcatFilter).ifPresent(filter -> {
- final OWBJarScanner jarScanner = new OWBJarScanner();
try {
- jarScanner.setJarScanFilter(JarScanFilter.class.cast(Thread.currentThread().getContextClassLoader().loadClass(filter).newInstance()));
+ scanner.setJarScanFilter(JarScanFilter.class.cast(Thread.currentThread().getContextClassLoader().loadClass(filter).newInstance()));
} catch (final ClassNotFoundException | InstantiationException | IllegalAccessException e) {
throw new IllegalArgumentException(e);
}
- ctx.setJarScanner(jarScanner);
});
ctx.addLifecycleListener(new MeecrowaveContextConfig(configuration));
ctx.addLifecycleListener(event -> {
@@ -209,6 +208,7 @@ public class Meecrowave implements AutoC
ctx.getResources().setCachingAllowed(configuration.webResourceCached);
break;
case Lifecycle.BEFORE_INIT_EVENT:
+ ctx.getServletContext().setAttribute("meecrowave.configuration", configuration);
if (configuration.loginConfig != null) {
ctx.setLoginConfig(configuration.loginConfig.build());
}
@@ -226,8 +226,6 @@ public class Meecrowave implements AutoC
ctx.addLifecycleListener(new Tomcat.FixContextListener()); // after having configured the security!!!
ctx.addServletContainerInitializer((c, ctx1) -> {
- ctx.getServletContext().setAttribute("meecrowave.configuration", configuration);
-
new OWBAutoSetup().onStartup(c, ctx1);
new CxfCdiAutoSetup().onStartup(c, ctx1);
new TomcatAutoInitializer().onStartup(c, ctx1);
@@ -869,6 +867,12 @@ public class Meecrowave implements AutoC
@CliOption(name = "tomcat-filter", description = "A Tomcat JarScanFilter")
private String tomcatFilter;
+ @CliOption(name = "scanning-include", description = "A forced include list of jar names (comma separated values)")
+ private String scanningIncludes;
+
+ @CliOption(name = "scanning-exclude", description = "A forced exclude list of jar names (comma separated values)")
+ private String scanningExcludes;
+
@CliOption(name = "tomcat-default", description = "Should Tomcat default be set (session timeout, mime mapping etc...)")
private boolean useTomcatDefaults = true;
@@ -904,6 +908,22 @@ public class Meecrowave implements AutoC
extensions.put(type, value);
}
+ public String getScanningIncludes() {
+ return scanningIncludes;
+ }
+
+ public void setScanningIncludes(final String scanningIncludes) {
+ this.scanningIncludes = scanningIncludes;
+ }
+
+ public String getScanningExcludes() {
+ return scanningExcludes;
+ }
+
+ public void setScanningExcludes(final String scanningExcludes) {
+ this.scanningExcludes = scanningExcludes;
+ }
+
public boolean isJava9SkipWorkarounds() {
return java9SkipWorkarounds;
}
Modified: openwebbeans/meecrowave/trunk/meecrowave-core/src/main/java/org/apache/meecrowave/openwebbeans/KnownJarsFilter.java
URL: http://svn.apache.org/viewvc/openwebbeans/meecrowave/trunk/meecrowave-core/src/main/java/org/apache/meecrowave/openwebbeans/KnownJarsFilter.java?rev=1772610&r1=1772609&r2=1772610&view=diff
==============================================================================
--- openwebbeans/meecrowave/trunk/meecrowave-core/src/main/java/org/apache/meecrowave/openwebbeans/KnownJarsFilter.java (original)
+++ openwebbeans/meecrowave/trunk/meecrowave-core/src/main/java/org/apache/meecrowave/openwebbeans/KnownJarsFilter.java Mon Dec 5 09:04:23 2016
@@ -18,11 +18,16 @@
*/
package org.apache.meecrowave.openwebbeans;
+import org.apache.meecrowave.Meecrowave;
import org.apache.tomcat.JarScanFilter;
import org.apache.tomcat.JarScanType;
import java.util.Collection;
import java.util.HashSet;
+import java.util.stream.Stream;
+
+import static java.util.Optional.ofNullable;
+import static java.util.stream.Collectors.toSet;
public class KnownJarsFilter implements JarScanFilter {
private final Collection<String> forceIncludes = new HashSet<String>() {{
@@ -297,9 +302,21 @@ public class KnownJarsFilter implements
add("zipfs.jar");
}};
+ 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().filter(jarName::startsWith).findAny().isPresent()
- || !excludes.stream().filter(jarName::startsWith).findAny().isPresent();
+ return forceIncludes.stream().anyMatch(jarName::startsWith) || excludes.stream().noneMatch(jarName::startsWith);
}
}
Modified: openwebbeans/meecrowave/trunk/meecrowave-core/src/main/java/org/apache/meecrowave/openwebbeans/OWBTomcatWebScannerService.java
URL: http://svn.apache.org/viewvc/openwebbeans/meecrowave/trunk/meecrowave-core/src/main/java/org/apache/meecrowave/openwebbeans/OWBTomcatWebScannerService.java?rev=1772610&r1=1772609&r2=1772610&view=diff
==============================================================================
--- openwebbeans/meecrowave/trunk/meecrowave-core/src/main/java/org/apache/meecrowave/openwebbeans/OWBTomcatWebScannerService.java (original)
+++ openwebbeans/meecrowave/trunk/meecrowave-core/src/main/java/org/apache/meecrowave/openwebbeans/OWBTomcatWebScannerService.java Mon Dec 5 09:04:23 2016
@@ -18,10 +18,12 @@
*/
package org.apache.meecrowave.openwebbeans;
+import org.apache.meecrowave.Meecrowave;
import org.apache.meecrowave.logging.tomcat.LogFacade;
import org.apache.tomcat.JarScanFilter;
import org.apache.webbeans.web.scanner.WebScannerService;
+import javax.servlet.ServletContext;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
@@ -44,6 +46,11 @@ public class OWBTomcatWebScannerService
private String shared;
@Override
+ public void init(final Object context) {
+ // no-op
+ }
+
+ @Override
public void scan() {
if (finder != null) {
return;
@@ -71,7 +78,7 @@ public class OWBTomcatWebScannerService
shownValue = "${maven}/" + shownValue.substring(shownValue.replace(File.separatorChar, '/').lastIndexOf('/') + 1);
} else if (shownValue.startsWith(base)) {
shownValue = "${app}" + shownValue.replace(base, "");
- } else if (sharedBase != null && shownValue.startsWith(sharedBase)) {
+ } else if (shownValue.startsWith(sharedBase)) {
shownValue = "${shared}" + shownValue.replace(sharedBase, "");
}
@@ -86,10 +93,6 @@ public class OWBTomcatWebScannerService
@Override
protected void filterExcludedJars(final Set<URL> classPathUrls) {
- if (filter == null) {
- filter = new KnownJarsFilter();
- }
-
String jreBaseTmp;
try {
jreBaseTmp = new File(System.getProperty("java.home")).toURI().toURL().toExternalForm();
@@ -124,8 +127,15 @@ public class OWBTomcatWebScannerService
return filter.check(PLUGGABILITY, path.substring(filenameIdx)) ? -1 : (path.indexOf(".jar") - 1);
}
- public void setFilter(final JarScanFilter filter) {
+ // replace init
+ public void setFilter(final JarScanFilter filter, final ServletContext ctx) {
this.filter = filter;
+
+ super.init(ctx);
+ if (this.filter == null) {
+ final Meecrowave.Builder config = Meecrowave.Builder.class.cast(ServletContext.class.cast(ctx).getAttribute("meecrowave.configuration"));
+ this.filter = new KnownJarsFilter(config);
+ }
}
@Override
Modified: openwebbeans/meecrowave/trunk/meecrowave-gradle-plugin/src/main/java/org/apache/meecrowave/gradle/MeecrowaveExtension.java
URL: http://svn.apache.org/viewvc/openwebbeans/meecrowave/trunk/meecrowave-gradle-plugin/src/main/java/org/apache/meecrowave/gradle/MeecrowaveExtension.java?rev=1772610&r1=1772609&r2=1772610&view=diff
==============================================================================
--- openwebbeans/meecrowave/trunk/meecrowave-gradle-plugin/src/main/java/org/apache/meecrowave/gradle/MeecrowaveExtension.java (original)
+++ openwebbeans/meecrowave/trunk/meecrowave-gradle-plugin/src/main/java/org/apache/meecrowave/gradle/MeecrowaveExtension.java Mon Dec 5 09:04:23 2016
@@ -85,6 +85,8 @@ public class MeecrowaveExtension {
private String jsonbNamingStrategy;
private String jsonbOrderStrategy;
private boolean java9SkipWorkarounds = false;
+ private String scanningIncludes;
+ private String scanningExcludes;
public boolean isJava9SkipWorkarounds() {
return java9SkipWorkarounds;
@@ -565,4 +567,20 @@ public class MeecrowaveExtension {
public void setTomcatAutoSetup(final boolean tomcatAutoSetup) {
this.tomcatAutoSetup = tomcatAutoSetup;
}
+
+ public String getScanningIncludes() {
+ return scanningIncludes;
+ }
+
+ public void setScanningIncludes(final String scanningIncludes) {
+ this.scanningIncludes = scanningIncludes;
+ }
+
+ public String getScanningExcludes() {
+ return scanningExcludes;
+ }
+
+ public void setScanningExcludes(final String scanningExcludes) {
+ this.scanningExcludes = scanningExcludes;
+ }
}
Modified: openwebbeans/meecrowave/trunk/meecrowave-gradle-plugin/src/main/java/org/apache/meecrowave/gradle/MeecrowaveTask.java
URL: http://svn.apache.org/viewvc/openwebbeans/meecrowave/trunk/meecrowave-gradle-plugin/src/main/java/org/apache/meecrowave/gradle/MeecrowaveTask.java?rev=1772610&r1=1772609&r2=1772610&view=diff
==============================================================================
--- openwebbeans/meecrowave/trunk/meecrowave-gradle-plugin/src/main/java/org/apache/meecrowave/gradle/MeecrowaveTask.java (original)
+++ openwebbeans/meecrowave/trunk/meecrowave-gradle-plugin/src/main/java/org/apache/meecrowave/gradle/MeecrowaveTask.java Mon Dec 5 09:04:23 2016
@@ -299,6 +299,14 @@ public class MeecrowaveTask extends Defa
@Optional
private boolean java9SkipWorkarounds = false;
+ @Input
+ @Optional
+ private String scanningIncludes;
+
+ @Input
+ @Optional
+ private String scanningExcludes;
+
@TaskAction
public void bake() {
fixConfig();
@@ -947,4 +955,20 @@ public class MeecrowaveTask extends Defa
public void setJava9SkipWorkarounds(final boolean java9SkipWorkarounds) {
this.java9SkipWorkarounds = java9SkipWorkarounds;
}
+
+ public String getScanningIncludes() {
+ return scanningIncludes;
+ }
+
+ public void setScanningIncludes(final String scanningIncludes) {
+ this.scanningIncludes = scanningIncludes;
+ }
+
+ public String getScanningExcludes() {
+ return scanningExcludes;
+ }
+
+ public void setScanningExcludes(final String scanningExcludes) {
+ this.scanningExcludes = scanningExcludes;
+ }
}
Modified: openwebbeans/meecrowave/trunk/meecrowave-maven-plugin/src/main/java/org/apache/meecrowave/maven/MeecrowaveRunMojo.java
URL: http://svn.apache.org/viewvc/openwebbeans/meecrowave/trunk/meecrowave-maven-plugin/src/main/java/org/apache/meecrowave/maven/MeecrowaveRunMojo.java?rev=1772610&r1=1772609&r2=1772610&view=diff
==============================================================================
--- openwebbeans/meecrowave/trunk/meecrowave-maven-plugin/src/main/java/org/apache/meecrowave/maven/MeecrowaveRunMojo.java (original)
+++ openwebbeans/meecrowave/trunk/meecrowave-maven-plugin/src/main/java/org/apache/meecrowave/maven/MeecrowaveRunMojo.java Mon Dec 5 09:04:23 2016
@@ -242,6 +242,12 @@ public class MeecrowaveRunMojo extends A
@Parameter(property = "meecrowave.jsonb-order-strategy")
private String jsonbOrderStrategy;
+ @Parameter(property = "meecrowave.scanning-exclude")
+ private String scanningIncludes;
+
+ @Parameter(property = "meecrowave.scanning-include")
+ private String scanningExcludes;
+
@Override
public void execute() throws MojoExecutionException, MojoFailureException {
if (skip) {
@@ -293,7 +299,8 @@ public class MeecrowaveRunMojo extends A
for (final String js : customizers) {
try {
final SimpleBindings bindings = new SimpleBindings();
- bindings.put("catalinaBase", base);
+ bindings.put("meecrowaveBase", base);
+ bindings.put("project", project);
engine.eval(new StringReader(js), bindings);
} catch (final ScriptException e) {
throw new IllegalStateException(e.getMessage(), e);