MEECROWAVE-176 ensure to not use log4j if not bundled (meecrowave:bundle)

git-svn-id: https://svn.apache.org/repos/asf/openwebbeans/meecrowave/trunk@1851711 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/meecrowave-maven-plugin/src/main/java/org/apache/meecrowave/maven/MeecrowaveBundleMojo.java b/meecrowave-maven-plugin/src/main/java/org/apache/meecrowave/maven/MeecrowaveBundleMojo.java
index c1d8412..4d2e84a 100644
--- a/meecrowave-maven-plugin/src/main/java/org/apache/meecrowave/maven/MeecrowaveBundleMojo.java
+++ b/meecrowave-maven-plugin/src/main/java/org/apache/meecrowave/maven/MeecrowaveBundleMojo.java
@@ -41,6 +41,7 @@
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.Properties;
 import java.util.stream.Stream;
 import java.util.zip.GZIPOutputStream;
@@ -180,19 +181,6 @@
 
         Stream.of("bin", "conf", "logs", "lib").forEach(i -> new File(distroFolder, i).mkdirs());
 
-        // TODO: add .bat support
-        for (final String ext : asList("sh", "bat")) {
-            try (final BufferedReader reader = new BufferedReader(new InputStreamReader(
-                    Thread.currentThread().getContextClassLoader().getResourceAsStream("bin/meecrowave." + ext)))) {
-                write(new File(distroFolder, "bin/meecrowave." + ext), StrSubstitutor.replace(reader.lines().collect(joining("\n")),
-                        new HashMap<String, String>() {{
-                            put("main", main);
-                        }}));
-            } catch (final IOException e) {
-                throw new MojoExecutionException(e.getMessage(), e);
-            }
-        }
-
         copyProvidedFiles(distroFolder);
 
         write(new File(distroFolder, "logs/you_can_safely_delete.txt"), DELETE_TEXT);
@@ -258,6 +246,23 @@
             }});
         }
 
+        for (final String ext : asList("sh", "bat")) {
+            try (final BufferedReader reader = new BufferedReader(new InputStreamReader(
+                    Thread.currentThread().getContextClassLoader().getResourceAsStream("bin/meecrowave." + ext)))) {
+                final File target = new File(distroFolder, "bin/meecrowave." + ext);
+                if (!target.exists()) {
+                    write(target, StrSubstitutor.replace(reader.lines().collect(joining("\n")),
+                            new HashMap<String, String>() {{
+                                put("main", main);
+                                put("logManager", hasLog4j(distroFolder) ?
+                                        "org.apache.logging.log4j.jul.LogManager" : "org.apache.juli.ClassLoaderLogManager");
+                            }}));
+                }
+            } catch (final IOException e) {
+                throw new MojoExecutionException(e.getMessage(), e);
+            }
+        }
+
         final Path prefix = skipArchiveRootFolder ? distroFolder.toPath() : distroFolder.getParentFile().toPath();
         for (final String format : formats) {
             getLog().info(format + "-ing Custom Meecrowave Distribution");
@@ -298,6 +303,15 @@
         }
     }
 
+    private boolean hasLog4j(final File distroFolder) {
+        try {
+            return Files.list(distroFolder.toPath().resolve("lib"))
+                    .anyMatch(it -> it.getFileName().toString().startsWith("log4j-jul"));
+        } catch (final IOException e) {
+            return true;
+        }
+    }
+
     private void addTransitiveDependencies(final File distroFolder, final Collection<String> includedArtifacts, final Dependency dependency) {
         final DependencyResolutionRequest request = new DefaultDependencyResolutionRequest();
         request.setMavenProject(new MavenProject() {{
diff --git a/meecrowave-maven-plugin/src/main/resources/bin/meecrowave.bat b/meecrowave-maven-plugin/src/main/resources/bin/meecrowave.bat
index 9c858d0..f3224ed 100644
--- a/meecrowave-maven-plugin/src/main/resources/bin/meecrowave.bat
+++ b/meecrowave-maven-plugin/src/main/resources/bin/meecrowave.bat
@@ -268,7 +268,7 @@
 :noJuliConfig
 
 if not "%LOGGING_MANAGER%" == "" goto noJuliManager
-set LOGGING_MANAGER=-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
+set LOGGING_MANAGER=-Djava.util.logging.manager=${logManager}
 :noJuliManager
 
 rem Configure JAVA 9 specific start-up parameters
diff --git a/meecrowave-maven-plugin/src/main/resources/bin/meecrowave.sh b/meecrowave-maven-plugin/src/main/resources/bin/meecrowave.sh
index a940980..b3626ab 100644
--- a/meecrowave-maven-plugin/src/main/resources/bin/meecrowave.sh
+++ b/meecrowave-maven-plugin/src/main/resources/bin/meecrowave.sh
@@ -231,7 +231,7 @@
 fi
 
 if [ -z "$LOGGING_MANAGER" ]; then
-  LOGGING_MANAGER="-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager"
+  LOGGING_MANAGER="-Djava.util.logging.manager=${logManager}"
 fi
 
 # Set UMASK unless it has been overridden