Repository: tomee Updated Branches: refs/heads/master 2b190f0b7 -> e6ebfddea
TOMEE-1911 fixing gradle 3.0 compatibility Project: http://git-wip-us.apache.org/repos/asf/tomee/repo Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/e6ebfdde Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/e6ebfdde Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/e6ebfdde Branch: refs/heads/master Commit: e6ebfddea1e509540d3783aaa4870aed20e2c630 Parents: 2b190f0 Author: Romain manni-Bucau <rmannibu...@gmail.com> Authored: Tue Aug 23 19:13:02 2016 +0200 Committer: Romain manni-Bucau <rmannibu...@gmail.com> Committed: Tue Aug 23 19:13:02 2016 +0200 ---------------------------------------------------------------------- .../src/main/resources/default.exclusions | 1 + .../gradle/embedded/TomEEEmbeddedTask.java | 53 ++++---------------- .../classloader/FilterGradleClassLoader.java | 27 ++++++++-- gradle/pom.xml | 2 +- pom.xml | 2 +- 5 files changed, 35 insertions(+), 50 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tomee/blob/e6ebfdde/container/openejb-core/src/main/resources/default.exclusions ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/resources/default.exclusions b/container/openejb-core/src/main/resources/default.exclusions index c993bd0..b2dd209 100644 --- a/container/openejb-core/src/main/resources/default.exclusions +++ b/container/openejb-core/src/main/resources/default.exclusions @@ -137,6 +137,7 @@ jsse.jar juli- junit- kahadb- +kotlin-runtime leveldb log4j- logkit- http://git-wip-us.apache.org/repos/asf/tomee/blob/e6ebfdde/gradle/gradle-tomee-embedded/src/main/java/org/apache/tomee/gradle/embedded/TomEEEmbeddedTask.java ---------------------------------------------------------------------- diff --git a/gradle/gradle-tomee-embedded/src/main/java/org/apache/tomee/gradle/embedded/TomEEEmbeddedTask.java b/gradle/gradle-tomee-embedded/src/main/java/org/apache/tomee/gradle/embedded/TomEEEmbeddedTask.java index eb637d8..b5c3e27 100644 --- a/gradle/gradle-tomee-embedded/src/main/java/org/apache/tomee/gradle/embedded/TomEEEmbeddedTask.java +++ b/gradle/gradle-tomee-embedded/src/main/java/org/apache/tomee/gradle/embedded/TomEEEmbeddedTask.java @@ -21,8 +21,6 @@ import org.gradle.api.DefaultTask; import org.gradle.api.GradleException; import org.gradle.api.Project; import org.gradle.api.artifacts.Configuration; -import org.gradle.api.logging.LogLevel; -import org.gradle.api.logging.LoggingManager; import org.gradle.api.tasks.Input; import org.gradle.api.tasks.Optional; import org.gradle.api.tasks.TaskAction; @@ -39,6 +37,7 @@ import java.util.HashMap; import java.util.HashSet; import java.util.LinkedHashSet; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.Properties; import java.util.Scanner; @@ -122,6 +121,10 @@ public class TomEEEmbeddedTask extends DefaultTask { @Optional @Input + private Collection<String> classloaderFilteredPackages; + + @Optional + @Input private boolean webResourceCached = true; @Optional @@ -172,10 +175,6 @@ public class TomEEEmbeddedTask extends DefaultTask { @Input private String dir; - @Optional - @Input - private LogLevel logLevel = LogLevel.INFO; - /* TODO if needed @Parameter //a dvanced config but a simple boolean will be used for defaults (withLiveReload) private LiveReload liveReload; @@ -192,15 +191,11 @@ public class TomEEEmbeddedTask extends DefaultTask { final Thread thread = Thread.currentThread(); final ClassLoader tccl = thread.getContextClassLoader(); - final LoggingManager logging = getProject().getLogging(); - final LogSetup logSetup = new LogSetup(logging, logging.getStandardOutputCaptureLevel(), logging.getStandardErrorCaptureLevel(), logLevel).init(); - logging.setLevel(logLevel); thread.setContextClassLoader(createLoader(tccl)); try { doRun(); } finally { thread.setContextClassLoader(tccl); - logSetup.reset(); } } @@ -323,13 +318,16 @@ public class TomEEEmbeddedTask extends DefaultTask { String line; final Scanner scanner = new Scanner(System.in); while ((line = scanner.nextLine()) != null) { - switch (line.trim()) { + final String cmd = line.trim().toLowerCase(Locale.ENGLISH); + switch (cmd) { case "exit": case "quit": running.set(false); Runtime.getRuntime().removeShutdownHook(hook); container.close(); return; + default: + getLogger().warn("Unknown: '" + cmd + "', use 'exit' or 'quit'"); } } } catch (final Exception e) { @@ -405,7 +403,7 @@ public class TomEEEmbeddedTask extends DefaultTask { addFiles(classpath.getFiles(), urls); // use JVM loader to avoid the noise of gradle and its plugins - return new URLClassLoader(urls.toArray(new URL[urls.size()]), new FilterGradleClassLoader(parent)); + return new URLClassLoader(urls.toArray(new URL[urls.size()]), new FilterGradleClassLoader(parent, classloaderFilteredPackages)); } private void addFiles(final Collection<File> files, final Collection<URL> urls) { @@ -676,35 +674,4 @@ public class TomEEEmbeddedTask extends DefaultTask { public void setSingleClassloader(final boolean singleClassloader) { this.singleClassloader = singleClassloader; } - - public void setLogLevel(final LogLevel logLevel) { - this.logLevel = logLevel; - } - - private static final class LogSetup { - private final LoggingManager logging; - private final LogLevel stdOutLvl; - private final LogLevel stdErrLvl; - private final LogLevel requiredLvl; - - private LogSetup(final LoggingManager logging, final LogLevel stdOutLvl, final LogLevel stdErrLvl, - final LogLevel requiredLvl) { - this.logging = logging; - this.stdOutLvl = stdOutLvl; - this.stdErrLvl = stdErrLvl; - this.requiredLvl = requiredLvl; - } - - - public LogSetup init() { - logging.captureStandardError(requiredLvl); - logging.captureStandardOutput(requiredLvl); - return this; - } - - public void reset() { - logging.captureStandardError(stdErrLvl); - logging.captureStandardOutput(stdOutLvl); - } - } } http://git-wip-us.apache.org/repos/asf/tomee/blob/e6ebfdde/gradle/gradle-tomee-embedded/src/main/java/org/apache/tomee/gradle/embedded/classloader/FilterGradleClassLoader.java ---------------------------------------------------------------------- diff --git a/gradle/gradle-tomee-embedded/src/main/java/org/apache/tomee/gradle/embedded/classloader/FilterGradleClassLoader.java b/gradle/gradle-tomee-embedded/src/main/java/org/apache/tomee/gradle/embedded/classloader/FilterGradleClassLoader.java index 00fb440..227c329 100644 --- a/gradle/gradle-tomee-embedded/src/main/java/org/apache/tomee/gradle/embedded/classloader/FilterGradleClassLoader.java +++ b/gradle/gradle-tomee-embedded/src/main/java/org/apache/tomee/gradle/embedded/classloader/FilterGradleClassLoader.java @@ -19,16 +19,19 @@ package org.apache.tomee.gradle.embedded.classloader; import java.io.IOException; import java.io.InputStream; import java.net.URL; +import java.util.Collection; import java.util.Enumeration; import static java.util.Collections.emptyEnumeration; -public class FilterGradleClassLoader extends ClassLoader { // TODO: make configurable +public class FilterGradleClassLoader extends ClassLoader { private final ClassLoader delegate; + private final Collection<String> filtered; - public FilterGradleClassLoader(final ClassLoader gradle) { + public FilterGradleClassLoader(final ClassLoader gradle, final Collection<String> filtered) { super(gradle.getParent()); - delegate = gradle; + this.delegate = gradle; + this.filtered = filtered; } @Override @@ -106,16 +109,30 @@ public class FilterGradleClassLoader extends ClassLoader { // TODO: make configu name.startsWith("org.sonatype.") || name.startsWith("org.testng.") || name.startsWith("org.yaml.") || - isForbiddenGradleClass(name) + isForbiddenGradleClass(name) || + isFiltered(name) )) { throw new ClassNotFoundException(); } } + private boolean isFiltered(final String name) { + if (filtered == null || name == null) { + return false; + } + for (final String pck : filtered) { + if (name.startsWith(pck)) { + return true; + } + } + return false; + } + private boolean isForbiddenGradleClass(final String name) { // we need logging classes but we don't want to scan gradle return name.startsWith("org.gradle.initialization") || name.startsWith("org.gradle.launcher") || name.startsWith("org.gradle.execution") || name.startsWith("org.gradle.internal") - || name.startsWith("org.gradle.tooling") || name.startsWith("org.gradle.api.internal.tasks"); + || name.startsWith("org.gradle.tooling") || name.startsWith("org.gradle.api.internal.tasks") + || name.startsWith("org.gradle.util") || name.startsWith("org.gradle.wrapper"); } private boolean checkResource(final String name) { http://git-wip-us.apache.org/repos/asf/tomee/blob/e6ebfdde/gradle/pom.xml ---------------------------------------------------------------------- diff --git a/gradle/pom.xml b/gradle/pom.xml index fb0f4ef..8a30790 100644 --- a/gradle/pom.xml +++ b/gradle/pom.xml @@ -40,7 +40,7 @@ <dependency> <groupId>org.gradle</groupId> <artifactId>gradle-core</artifactId> - <version>2.12</version> + <version>3.0</version> <scope>provided</scope> </dependency> <dependency> http://git-wip-us.apache.org/repos/asf/tomee/blob/e6ebfdde/pom.xml ---------------------------------------------------------------------- diff --git a/pom.xml b/pom.xml index 8fc87f0..7b7b6d1 100644 --- a/pom.xml +++ b/pom.xml @@ -99,7 +99,7 @@ <openjpa.version>2.4.1</openjpa.version> <org.apache.openwebbeans.version>1.6.3</org.apache.openwebbeans.version> <jcs.version>2.0-M1</jcs.version> - <johnzon.version>0.9.4</johnzon.version> + <johnzon.version>0.9.5</johnzon.version> <!-- Maven module versions --> <maven-bundle-plugin.version>2.3.7</maven-bundle-plugin.version>