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/10/19 17:26:59 UTC

svn commit: r1765688 - in /openwebbeans/microwave/trunk: microwave-core/src/main/java/org/apache/microwave/ microwave-core/src/main/java/org/apache/microwave/cxf/ microwave-core/src/main/resources/META-INF/openwebbeans/ microwave-maven-plugin/src/main/...

Author: rmannibucau
Date: Wed Oct 19 17:26:59 2016
New Revision: 1765688

URL: http://svn.apache.org/viewvc?rev=1765688&view=rev
Log:
better defaults (fixing a boolean logic) + ensuring mojo works

Added:
    openwebbeans/microwave/trunk/microwave-maven-plugin/src/main/java/org/apache/microwave/maven/MicrowaveBakeMojo.java
      - copied, changed from r1765670, openwebbeans/microwave/trunk/microwave-maven-plugin/src/main/java/org/apache/microwave/maven/MicrowaveRunMojo.java
Modified:
    openwebbeans/microwave/trunk/microwave-core/src/main/java/org/apache/microwave/Microwave.java
    openwebbeans/microwave/trunk/microwave-core/src/main/java/org/apache/microwave/cxf/CxfCdiAutoSetup.java
    openwebbeans/microwave/trunk/microwave-core/src/main/resources/META-INF/openwebbeans/openwebbeans.properties
    openwebbeans/microwave/trunk/microwave-maven-plugin/src/main/java/org/apache/microwave/maven/MicrowaveRunMojo.java

Modified: openwebbeans/microwave/trunk/microwave-core/src/main/java/org/apache/microwave/Microwave.java
URL: http://svn.apache.org/viewvc/openwebbeans/microwave/trunk/microwave-core/src/main/java/org/apache/microwave/Microwave.java?rev=1765688&r1=1765687&r2=1765688&view=diff
==============================================================================
--- openwebbeans/microwave/trunk/microwave-core/src/main/java/org/apache/microwave/Microwave.java (original)
+++ openwebbeans/microwave/trunk/microwave-core/src/main/java/org/apache/microwave/Microwave.java Wed Oct 19 17:26:59 2016
@@ -609,7 +609,7 @@ public class Microwave implements AutoCl
         private boolean cdiConversation;
 
         @CliOption(name = "jaxrs-provider-setup", description = "Should default JAX-RS provider be configured")
-        private boolean jaxrsProviderSetup;
+        private boolean jaxrsProviderSetup = true;
 
         public Builder() { // load defaults
             loadFrom("microwave.properties");

Modified: openwebbeans/microwave/trunk/microwave-core/src/main/java/org/apache/microwave/cxf/CxfCdiAutoSetup.java
URL: http://svn.apache.org/viewvc/openwebbeans/microwave/trunk/microwave-core/src/main/java/org/apache/microwave/cxf/CxfCdiAutoSetup.java?rev=1765688&r1=1765687&r2=1765688&view=diff
==============================================================================
--- openwebbeans/microwave/trunk/microwave-core/src/main/java/org/apache/microwave/cxf/CxfCdiAutoSetup.java (original)
+++ openwebbeans/microwave/trunk/microwave-core/src/main/java/org/apache/microwave/cxf/CxfCdiAutoSetup.java Wed Oct 19 17:26:59 2016
@@ -44,7 +44,7 @@ public class CxfCdiAutoSetup implements
             @Override
             protected void loadBus(final ServletConfig servletConfig) {
                 super.loadBus(servletConfig);
-                if (builder.isJaxrsProviderSetup()) {
+                if (!builder.isJaxrsProviderSetup()) {
                     return;
                 }
 

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=1765688&r1=1765687&r2=1765688&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 Wed Oct 19 17:26:59 2016
@@ -52,6 +52,8 @@ org.apache.webbeans.scanExclusionPaths=\
         /annotation-api, \
         /el-api, \
         /mojarra, \
+        /aopalliance-, \
+        /guice-, \
         /sisu-guice-, \
         /sisu-inject-, \
         /aether-, \
@@ -88,4 +90,6 @@ org.apache.webbeans.scanExclusionPaths=\
         /woodstox-,\
         /stax,\
         /xmlschema,\
-        /lombok
+        /lombok,\
+        /microwave-gradle-plugin, \
+        /microwave-maven-plugin

Copied: openwebbeans/microwave/trunk/microwave-maven-plugin/src/main/java/org/apache/microwave/maven/MicrowaveBakeMojo.java (from r1765670, openwebbeans/microwave/trunk/microwave-maven-plugin/src/main/java/org/apache/microwave/maven/MicrowaveRunMojo.java)
URL: http://svn.apache.org/viewvc/openwebbeans/microwave/trunk/microwave-maven-plugin/src/main/java/org/apache/microwave/maven/MicrowaveBakeMojo.java?p2=openwebbeans/microwave/trunk/microwave-maven-plugin/src/main/java/org/apache/microwave/maven/MicrowaveBakeMojo.java&p1=openwebbeans/microwave/trunk/microwave-maven-plugin/src/main/java/org/apache/microwave/maven/MicrowaveRunMojo.java&r1=1765670&r2=1765688&rev=1765688&view=diff
==============================================================================
--- openwebbeans/microwave/trunk/microwave-maven-plugin/src/main/java/org/apache/microwave/maven/MicrowaveRunMojo.java (original)
+++ openwebbeans/microwave/trunk/microwave-maven-plugin/src/main/java/org/apache/microwave/maven/MicrowaveBakeMojo.java Wed Oct 19 17:26:59 2016
@@ -18,254 +18,13 @@
  */
 package org.apache.microwave.maven;
 
-import org.apache.maven.artifact.Artifact;
-import org.apache.maven.plugin.AbstractMojo;
-import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.plugin.MojoFailureException;
 import org.apache.maven.plugins.annotations.Mojo;
-import org.apache.maven.plugins.annotations.Parameter;
-import org.apache.maven.project.MavenProject;
-import org.apache.microwave.Microwave;
 
-import javax.script.ScriptEngine;
-import javax.script.ScriptEngineManager;
-import javax.script.ScriptException;
-import javax.script.SimpleBindings;
-import java.io.File;
-import java.io.StringReader;
-import java.lang.reflect.Field;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.net.URLClassLoader;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Scanner;
-
-import static java.util.Optional.ofNullable;
-import static java.util.stream.Collectors.toList;
 import static org.apache.maven.plugins.annotations.ResolutionScope.RUNTIME_PLUS_SYSTEM;
 
-@Mojo(name = "run", requiresDependencyResolution = RUNTIME_PLUS_SYSTEM)
-public class MicrowaveRunMojo extends AbstractMojo {
-    @Parameter(property = "microwave.http", defaultValue = "8080")
-    private int httpPort;
-
-    @Parameter(property = "microwave.https", defaultValue = "8443")
-    private int httpsPort;
-
-    @Parameter(property = "microwave.stop", defaultValue = "8005")
-    private int stopPort;
-
-    @Parameter(property = "microwave.host", defaultValue = "localhost")
-    private String host;
-
-    @Parameter(property = "microwave.dir")
-    protected String dir;
-
-    @Parameter(property = "microwave.serverXml")
-    private File serverXml;
-
-    @Parameter(property = "microwave.keepServerXmlAsThis")
-    private boolean keepServerXmlAsThis;
-
-    @Parameter
-    private Map<String, String> properties;
-
-    @Parameter(property = "microwave.quickSession", defaultValue = "true")
-    private boolean quickSession;
-
-    @Parameter(property = "microwave.skipHttp")
-    private boolean skipHttp;
-
-    @Parameter(property = "microwave.ssl")
-    private boolean ssl;
-
-    @Parameter(property = "microwave.keystoreFile")
-    private String keystoreFile;
-
-    @Parameter(property = "microwave.keystorePass")
-    private String keystorePass;
-
-    @Parameter(property = "microwave.keystoreType", defaultValue = "JKS")
-    private String keystoreType;
-
-    @Parameter(property = "microwave.clientAuth")
-    private String clientAuth;
-
-    @Parameter(property = "microwave.keyAlias")
-    private String keyAlias;
-
-    @Parameter(property = "microwave.sslProtocol")
-    private String sslProtocol;
-
-    @Parameter(property = "microwave.webXml")
-    private String webXml;
-
-    @Parameter
-    private Microwave.LoginConfigBuilder loginConfig;
-
-    @Parameter
-    private Collection<Microwave.SecurityConstaintBuilder> securityConstraints = new LinkedList<>();
-
-    @Parameter
-    private Map<String, String> users;
-
-    @Parameter
-    private Map<String, String> roles;
-
-    @Parameter(property = "microwave.http2")
-    private boolean http2;
-
-    @Parameter(property = "microwave.tempDir")
-    private String tempDir;
-
-    @Parameter(property = "microwave.webResourceCached", defaultValue = "true")
-    private boolean webResourceCached;
-
-    @Parameter(property = "microwave.conf")
-    private String conf;
-
-    @Parameter(property = "microwave.deleteBaseOnStartup", defaultValue = "true")
-    private boolean deleteBaseOnStartup;
-
-    @Parameter(property = "microwave.jaxrsMapping", defaultValue = "/*")
-    private String jaxrsMapping;
-
-    @Parameter(property = "microwave.cdiConversation", defaultValue = "true")
-    private boolean cdiConversation;
-
-    @Parameter(property = "microwave.skip")
-    private boolean skip;
-
-    @Parameter(property = "microwave.jaxrs-provider-setup", defaultValue = "true")
-    private boolean jaxrsProviderSetup;
-
-    @Parameter
-    private List<String> jsCustomizers;
-
-    @Parameter
-    private List<String> applicationScopes;
-
-    @Parameter
-    private List<File> modules;
-
-    @Parameter(defaultValue = "${project}", readonly = true, required = true)
-    private MavenProject project;
-
-    @Parameter(property = "microwave.context", defaultValue = "")
-    private String context;
-
-    @Parameter(property = "microwave.webapp")
-    private File webapp;
-
-    @Override
-    public void execute() throws MojoExecutionException, MojoFailureException {
-        if (skip) {
-            getLog().warn("Mojo skipped");
-            return;
-        }
-
-        final Thread thread = Thread.currentThread();
-        final ClassLoader loader = thread.getContextClassLoader();
-        thread.setContextClassLoader(createClassLoader(loader));
-        try {
-            final Microwave.Builder builder = getConfig();
-            try (final Microwave microwave = new Microwave(builder) {
-                @Override
-                protected void beforeStart() {
-                    scriptCustomization(jsCustomizers, "js", base.getAbsolutePath());
-                }
-            }) {
-                microwave.start();
-                final String fixedContext = ofNullable(context).orElse("");
-                if (webapp == null) {
-                    microwave.deployClasspath(fixedContext);
-                } else {
-                    microwave.deployWebapp(fixedContext, webapp);
-                }
-                new Scanner(System.in).next();
-            }
-        } finally {
-            thread.setContextClassLoader(loader);
-        }
-    }
-
-    private void scriptCustomization(final List<String> customizers, final String ext, final String base) {
-        if (customizers == null || customizers.isEmpty()) {
-            return;
-        }
-        final ScriptEngine engine = new ScriptEngineManager().getEngineByExtension(ext);
-        if (engine == null) {
-            throw new IllegalStateException("No engine for " + ext + ". Maybe add the JSR223 implementation as plugin dependency.");
-        }
-        for (final String js : customizers) {
-            try {
-                final SimpleBindings bindings = new SimpleBindings();
-                bindings.put("catalinaBase", base);
-                engine.eval(new StringReader(js), bindings);
-            } catch (final ScriptException e) {
-                throw new IllegalStateException(e.getMessage(), e);
-            }
-        }
-    }
-
-    private ClassLoader createClassLoader(final ClassLoader parent) {
-        final List<URL> urls = new ArrayList<>();
-        urls.addAll(project.getArtifacts().stream()
-                .filter(a -> !((applicationScopes == null && !(Artifact.SCOPE_COMPILE.equals(a.getScope()) || Artifact.SCOPE_RUNTIME.equals(a.getScope())))
-                        || (applicationScopes != null && !applicationScopes.contains(a.getScope()))))
-                .map(f -> {
-                    try {
-                        return f.getFile().toURI().toURL();
-                    } catch (final MalformedURLException e) {
-                        throw new IllegalArgumentException(e);
-                    }
-                })
-                .collect(toList()));
-        urls.addAll(ofNullable(modules).orElse(Collections.emptyList()).stream().map(f -> {
-            try {
-                return f.toURI().toURL();
-            } catch (final MalformedURLException e) {
-                throw new IllegalArgumentException(e);
-            }
-        }).collect(toList()));
-        return urls.isEmpty() ? parent : new URLClassLoader(urls.toArray(new URL[urls.size()]), parent) {
-            @Override
-            public boolean equals(final Object obj) {
-                return super.equals(obj) || parent.equals(obj);
-            }
-        };
-    }
-
-    private Microwave.Builder getConfig() {
-        final Microwave.Builder config = new Microwave.Builder();
-        for (final Field field : MicrowaveRunMojo.class.getDeclaredFields()) {
-            if ("properties".equals(field.getName())) {
-                continue;
-            }
-            try {
-                final Field configField = Microwave.Builder.class.getDeclaredField(field.getName());
-                field.setAccessible(true);
-                configField.setAccessible(true);
-
-                final Object value = field.get(this);
-                if (value != null) {
-                    configField.set(config, value);
-                    getLog().debug("using " + field.getName() + " = " + value);
-                }
-            } catch (final NoSuchFieldException nsfe) {
-                // ignored
-            } catch (final Exception e) {
-                getLog().warn("can't initialize attribute " + field.getName());
-            }
-        }
-        if (properties != null) {
-            config.getProperties().putAll(properties);
-        }
-        return config;
-    }
+/**
+ * Just an alias for run Mojo.
+ */
+@Mojo(name = "bake", requiresDependencyResolution = RUNTIME_PLUS_SYSTEM)
+public class MicrowaveBakeMojo extends MicrowaveRunMojo {
 }

Modified: openwebbeans/microwave/trunk/microwave-maven-plugin/src/main/java/org/apache/microwave/maven/MicrowaveRunMojo.java
URL: http://svn.apache.org/viewvc/openwebbeans/microwave/trunk/microwave-maven-plugin/src/main/java/org/apache/microwave/maven/MicrowaveRunMojo.java?rev=1765688&r1=1765687&r2=1765688&view=diff
==============================================================================
--- openwebbeans/microwave/trunk/microwave-maven-plugin/src/main/java/org/apache/microwave/maven/MicrowaveRunMojo.java (original)
+++ openwebbeans/microwave/trunk/microwave-maven-plugin/src/main/java/org/apache/microwave/maven/MicrowaveRunMojo.java Wed Oct 19 17:26:59 2016
@@ -32,6 +32,7 @@ import javax.script.ScriptEngineManager;
 import javax.script.ScriptException;
 import javax.script.SimpleBindings;
 import java.io.File;
+import java.io.IOException;
 import java.io.StringReader;
 import java.lang.reflect.Field;
 import java.net.MalformedURLException;
@@ -150,7 +151,7 @@ public class MicrowaveRunMojo extends Ab
     @Parameter
     private List<String> applicationScopes;
 
-    @Parameter
+    @Parameter(defaultValue = "${project.build.outputDirectory}")
     private List<File> modules;
 
     @Parameter(defaultValue = "${project}", readonly = true, required = true)
@@ -171,7 +172,8 @@ public class MicrowaveRunMojo extends Ab
 
         final Thread thread = Thread.currentThread();
         final ClassLoader loader = thread.getContextClassLoader();
-        thread.setContextClassLoader(createClassLoader(loader));
+        final ClassLoader appLoader = createClassLoader(loader);
+        thread.setContextClassLoader(appLoader);
         try {
             final Microwave.Builder builder = getConfig();
             try (final Microwave microwave = new Microwave(builder) {
@@ -190,6 +192,13 @@ public class MicrowaveRunMojo extends Ab
                 new Scanner(System.in).next();
             }
         } finally {
+            if (appLoader != loader) {
+                try {
+                    URLClassLoader.class.cast(appLoader).close();
+                } catch (final IOException e) {
+                    getLog().warn(e.getMessage(), e);
+                }
+            }
             thread.setContextClassLoader(loader);
         }
     }