You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2014/10/09 21:42:38 UTC
svn commit: r1630572 - in /tomee/tomee/trunk: maven/maven-util/
maven/maven-util/src/main/java/org/apache/openejb/maven/util/
maven/tomee-embedded-maven-plugin/src/main/java/org/apache/openejb/maven/plugins/
tomee/tomee-juli/src/main/java/org/apache/to...
Author: rmannibucau
Date: Thu Oct 9 19:42:38 2014
New Revision: 1630572
URL: http://svn.apache.org/r1630572
Log:
integrating MavenLogStreamFactory with tomee
Added:
tomee/tomee/trunk/maven/maven-util/src/main/java/org/apache/openejb/maven/util/TomEEMavenLog.java
Modified:
tomee/tomee/trunk/maven/maven-util/pom.xml
tomee/tomee/trunk/maven/maven-util/src/main/java/org/apache/openejb/maven/util/MavenLogStreamFactory.java
tomee/tomee/trunk/maven/tomee-embedded-maven-plugin/src/main/java/org/apache/openejb/maven/plugins/TomEEEmbeddedMojo.java
tomee/tomee/trunk/tomee/tomee-juli/src/main/java/org/apache/tomee/jul/formatter/log/ReloadableLog.java
tomee/tomee/trunk/tomee/tomee-juli/src/main/java/org/apache/tomee/jul/formatter/log/TomEELog.java
Modified: tomee/tomee/trunk/maven/maven-util/pom.xml
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/maven/maven-util/pom.xml?rev=1630572&r1=1630571&r2=1630572&view=diff
==============================================================================
--- tomee/tomee/trunk/maven/maven-util/pom.xml (original)
+++ tomee/tomee/trunk/maven/maven-util/pom.xml Thu Oct 9 19:42:38 2014
@@ -38,5 +38,11 @@
<groupId>org.apache.openejb</groupId>
<artifactId>openejb-core</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.apache.openejb</groupId>
+ <artifactId>tomee-juli</artifactId>
+ <version>${tomee.version}</version>
+ <scope>provided</scope>
+ </dependency>
</dependencies>
</project>
Modified: tomee/tomee/trunk/maven/maven-util/src/main/java/org/apache/openejb/maven/util/MavenLogStreamFactory.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/maven/maven-util/src/main/java/org/apache/openejb/maven/util/MavenLogStreamFactory.java?rev=1630572&r1=1630571&r2=1630572&view=diff
==============================================================================
--- tomee/tomee/trunk/maven/maven-util/src/main/java/org/apache/openejb/maven/util/MavenLogStreamFactory.java (original)
+++ tomee/tomee/trunk/maven/maven-util/src/main/java/org/apache/openejb/maven/util/MavenLogStreamFactory.java Thu Oct 9 19:42:38 2014
@@ -17,12 +17,23 @@
package org.apache.openejb.maven.util;
import org.apache.maven.plugin.logging.Log;
+import org.apache.openejb.log.logger.AbstractDelegatingLogger;
import org.apache.openejb.util.LogCategory;
import org.apache.openejb.util.LogStream;
import org.apache.openejb.util.LogStreamFactory;
+import org.apache.webbeans.logger.WebBeansLoggerFacade;
+import org.apache.webbeans.logger.WebBeansLoggerFactory;
+
+import java.util.Locale;
+import java.util.logging.Level;
+import java.util.logging.LogRecord;
+import java.util.logging.Logger;
public class MavenLogStreamFactory implements LogStreamFactory {
private static Log logger;
+ static {
+ System.setProperty(WebBeansLoggerFacade.OPENWEBBEANS_LOGGING_FACTORY_PROP, OWBMavenLogFactory.class.getName());
+ }
@Override
public LogStream createLogStream(final LogCategory logCategory) {
@@ -33,6 +44,88 @@ public class MavenLogStreamFactory imple
MavenLogStreamFactory.logger = logger;
}
+ public static Log currentLogger() {
+ return logger;
+ }
+
+ public static class MavenLogger extends AbstractDelegatingLogger {
+ public MavenLogger(final String name, final String resourceBundleName) {
+ super(name, resourceBundleName);
+ }
+
+ @Override
+ public Level getLevel() {
+ if (logger.isDebugEnabled()) {
+ return Level.FINER;
+ } else if (logger.isInfoEnabled()) {
+ return Level.INFO;
+ } else if (logger.isWarnEnabled()) {
+ return Level.WARNING;
+ } else if (logger.isErrorEnabled()) {
+ return Level.SEVERE;
+ }
+ return Level.OFF;
+ }
+
+ @Override
+ public boolean isLoggable(final Level level) {
+ final int i = level.intValue();
+ if (i == Level.OFF.intValue()) {
+ return false;
+ } else if (i >= Level.SEVERE.intValue()) {
+ return logger.isErrorEnabled();
+ } else if (i >= Level.WARNING.intValue()) {
+ return logger.isWarnEnabled();
+ } else if (i >= Level.INFO.intValue()) {
+ return logger.isInfoEnabled();
+ }
+ return logger.isDebugEnabled();
+ }
+
+ @Override
+ protected void internalLogFormatted(final String msg, final LogRecord record) {
+ final Level level = record.getLevel();
+ final Throwable t = record.getThrown();
+ if (Level.FINE.equals(level) || Level.FINER.equals(level) || Level.CONFIG.equals(level)) {
+ if (t == null) {
+ logger.debug(msg);
+ } else {
+ logger.debug(msg, t);
+ }
+ } else if (Level.INFO.equals(level)) {
+ if (t == null) {
+ logger.info(msg);
+ } else {
+ logger.info(msg, t);
+ }
+ } else if (Level.WARNING.equals(level)) {
+ if (t == null) {
+ logger.warn(msg);
+ } else {
+ logger.warn(msg, t);
+ }
+ } else if (Level.ALL.equals(level) || Level.SEVERE.equals(level)) {
+ if (t == null) {
+ logger.error(msg);
+ } else {
+ logger.error(msg, t);
+ }
+ }
+ }
+ }
+
+ public static class OWBMavenLogFactory implements WebBeansLoggerFactory {
+ @Override
+ public Logger getLogger(final Class<?> clazz, final Locale desiredLocale) {
+ return new MavenLogger(clazz.getName(), "openwebbeans/Messages");
+ }
+
+ @Override
+ public Logger getLogger(final Class<?> clazz) {
+ return new MavenLogger(clazz.getName(), "openwebbeans/Messages");
+ }
+ }
+
private static class MavenLogStream implements LogStream {
private final Log log;
Added: tomee/tomee/trunk/maven/maven-util/src/main/java/org/apache/openejb/maven/util/TomEEMavenLog.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/maven/maven-util/src/main/java/org/apache/openejb/maven/util/TomEEMavenLog.java?rev=1630572&view=auto
==============================================================================
--- tomee/tomee/trunk/maven/maven-util/src/main/java/org/apache/openejb/maven/util/TomEEMavenLog.java (added)
+++ tomee/tomee/trunk/maven/maven-util/src/main/java/org/apache/openejb/maven/util/TomEEMavenLog.java Thu Oct 9 19:42:38 2014
@@ -0,0 +1,115 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.openejb.maven.util;
+
+import org.apache.juli.logging.Log;
+
+public class TomEEMavenLog implements Log {
+ public TomEEMavenLog(final String ignored ) {
+ // no-op but needed by TomEELog (reloadable feature)
+ }
+
+ @Override
+ public boolean isDebugEnabled() {
+ return MavenLogStreamFactory.currentLogger().isDebugEnabled();
+ }
+
+ @Override
+ public boolean isErrorEnabled() {
+ return MavenLogStreamFactory.currentLogger().isErrorEnabled();
+ }
+
+ @Override
+ public boolean isFatalEnabled() {
+ return MavenLogStreamFactory.currentLogger().isErrorEnabled();
+ }
+
+ @Override
+ public boolean isInfoEnabled() {
+ return MavenLogStreamFactory.currentLogger().isInfoEnabled();
+ }
+
+ @Override
+ public boolean isTraceEnabled() {
+ return MavenLogStreamFactory.currentLogger().isDebugEnabled();
+ }
+
+ @Override
+ public boolean isWarnEnabled() {
+ return MavenLogStreamFactory.currentLogger().isWarnEnabled();
+ }
+
+ @Override
+ public void trace(final Object message) {
+ MavenLogStreamFactory.currentLogger().debug(String.valueOf(message));
+ }
+
+ @Override
+ public void trace(final Object message, final Throwable t) {
+ MavenLogStreamFactory.currentLogger().debug(String.valueOf(message), t);
+ }
+
+ @Override
+ public void debug(final Object message) {
+ MavenLogStreamFactory.currentLogger().debug(String.valueOf(message));
+ }
+
+ @Override
+ public void debug(final Object message, final Throwable t) {
+ MavenLogStreamFactory.currentLogger().debug(String.valueOf(message), t);
+ }
+
+ @Override
+ public void info(final Object message) {
+ MavenLogStreamFactory.currentLogger().info(String.valueOf(message));
+ }
+
+ @Override
+ public void info(final Object message, final Throwable t) {
+ MavenLogStreamFactory.currentLogger().info(String.valueOf(message), t);
+ }
+
+ @Override
+ public void warn(final Object message) {
+ MavenLogStreamFactory.currentLogger().warn(String.valueOf(message));
+ }
+
+ @Override
+ public void warn(final Object message, final Throwable t) {
+ MavenLogStreamFactory.currentLogger().warn(String.valueOf(message), t);
+ }
+
+ @Override
+ public void error(final Object message) {
+ MavenLogStreamFactory.currentLogger().error(String.valueOf(message));
+ }
+
+ @Override
+ public void error(final Object message, final Throwable t) {
+ MavenLogStreamFactory.currentLogger().error(String.valueOf(message), t);
+ }
+
+ @Override
+ public void fatal(final Object message) {
+ MavenLogStreamFactory.currentLogger().error(String.valueOf(message));
+ }
+
+ @Override
+ public void fatal(final Object message, final Throwable t) {
+ MavenLogStreamFactory.currentLogger().error(String.valueOf(message), t);
+ }
+}
Modified: tomee/tomee/trunk/maven/tomee-embedded-maven-plugin/src/main/java/org/apache/openejb/maven/plugins/TomEEEmbeddedMojo.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/maven/tomee-embedded-maven-plugin/src/main/java/org/apache/openejb/maven/plugins/TomEEEmbeddedMojo.java?rev=1630572&r1=1630571&r2=1630572&view=diff
==============================================================================
--- tomee/tomee/trunk/maven/tomee-embedded-maven-plugin/src/main/java/org/apache/openejb/maven/plugins/TomEEEmbeddedMojo.java (original)
+++ tomee/tomee/trunk/maven/tomee-embedded-maven-plugin/src/main/java/org/apache/openejb/maven/plugins/TomEEEmbeddedMojo.java Thu Oct 9 19:42:38 2014
@@ -143,7 +143,7 @@ public class TomEEEmbeddedMojo extends A
final String logFactory = System.getProperty("openejb.log.factory");
MavenLogStreamFactory.setLogger(getLog());
if (mavenLog) {
- System.setProperty("openejb.log.factory", "org.apache.openejb.maven.util.MavenLogStreamFactory");
+ System.setProperty("openejb.log.factory", MavenLogStreamFactory.class.getName()); // this line also preload the class (<cinit>)
System.setProperty("openejb.jul.forceReload", "true");
}
Modified: tomee/tomee/trunk/tomee/tomee-juli/src/main/java/org/apache/tomee/jul/formatter/log/ReloadableLog.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-juli/src/main/java/org/apache/tomee/jul/formatter/log/ReloadableLog.java?rev=1630572&r1=1630571&r2=1630572&view=diff
==============================================================================
--- tomee/tomee/trunk/tomee/tomee-juli/src/main/java/org/apache/tomee/jul/formatter/log/ReloadableLog.java (original)
+++ tomee/tomee/trunk/tomee/tomee-juli/src/main/java/org/apache/tomee/jul/formatter/log/ReloadableLog.java Thu Oct 9 19:42:38 2014
@@ -41,6 +41,7 @@ public final class ReloadableLog {
private static final String LOG4J_IMPL = "org.apache.tomee.loader.log.Log4jLog";
private static final String LOG4J2_IMPL = "org.apache.tomee.loader.log.Log4j2Log";
private static final String SLF4J_IMPL = "org.apache.tomee.loader.log.Slf4jLog";
+ private static final String MAVEN_IMPL = "org.apache.openejb.maven.util.TomEEMavenLog";
private volatile String factory;
private final String name;
@@ -64,6 +65,11 @@ public final class ReloadableLog {
if (f != null) {
factory = f;
}
+
+ final Log log = delegate.get();
+ if (factory == null && log != null) {
+ return log;
+ }
}
switch (factory) {
case "org.apache.openejb.util.Log4jLogStreamFactory":
@@ -75,6 +81,9 @@ public final class ReloadableLog {
case "org.apache.openejb.util.Slf4jLogStreamFactory":
delegate.set(newInstance(SLF4J_IMPL));
break;
+ case "org.apache.openejb.maven.util.MavenLogStreamFactory":
+ delegate.set(newInstance(MAVEN_IMPL));
+ break;
default:
delegate.set(new JULLogger(name));
}
Modified: tomee/tomee/trunk/tomee/tomee-juli/src/main/java/org/apache/tomee/jul/formatter/log/TomEELog.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-juli/src/main/java/org/apache/tomee/jul/formatter/log/TomEELog.java?rev=1630572&r1=1630571&r2=1630572&view=diff
==============================================================================
--- tomee/tomee/trunk/tomee/tomee-juli/src/main/java/org/apache/tomee/jul/formatter/log/TomEELog.java (original)
+++ tomee/tomee/trunk/tomee/tomee-juli/src/main/java/org/apache/tomee/jul/formatter/log/TomEELog.java Thu Oct 9 19:42:38 2014
@@ -46,6 +46,7 @@ public class TomEELog implements Log {
case "org.apache.openejb.util.Log4j2LogStreamFactory":
case "org.apache.openejb.util.Log4jLogStreamFactory":
case "org.apache.openejb.util.Slf4jLogStreamFactory":
+ case "org.apache.openejb.maven.util.MavenLogStreamFactory":
defaultLogger = false;
break;
default: