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