Author: rmannibucau
Date: Fri Jan 11 10:01:25 2013
New Revision: 1431964

URL: http://svn.apache.org/viewvc?rev=1431964&view=rev
Log:
TOMEE-724 simpleLog for tomee + internal agnotisc log when init phase of a 
webapp is hitten

Added:
    
openejb/trunk/openejb/tomee/tomee-util/src/main/java/org/apache/tomee/util/InstallationEnrichers.java
    
openejb/trunk/openejb/tomee/tomee-util/src/main/java/org/apache/tomee/util/SimpleTomEEFormatter.java
Modified:
    
openejb/trunk/openejb/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEEContainer.java
    
openejb/trunk/openejb/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java
    
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
    openejb/trunk/openejb/tomee/tomee-util/pom.xml

Modified: 
openejb/trunk/openejb/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEEContainer.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEEContainer.java?rev=1431964&r1=1431963&r2=1431964&view=diff
==============================================================================
--- 
openejb/trunk/openejb/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEEContainer.java
 (original)
+++ 
openejb/trunk/openejb/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEEContainer.java
 Fri Jan 11 10:01:25 2013
@@ -23,14 +23,13 @@ import org.apache.openejb.arquillian.com
 import org.apache.openejb.arquillian.common.TomEEContainer;
 import org.apache.openejb.assembler.Deployer;
 import org.apache.openejb.config.RemoteServer;
-import org.jboss.arquillian.container.spi.client.container.DeploymentException;
+import org.apache.tomee.util.InstallationEnrichers;
 import org.jboss.arquillian.container.spi.client.container.LifecycleException;
 import org.jboss.shrinkwrap.api.Archive;
 
 import javax.naming.NamingException;
 import java.io.File;
 import java.io.IOException;
-import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
@@ -85,7 +84,7 @@ public class RemoteTomEEContainer extend
             }
             container = new RemoteServer();
 
-            container.setAdditionalClasspath(addOneLineFormatter(tomeeHome));
+            
container.setAdditionalClasspath(InstallationEnrichers.addOneLineFormatter(tomeeHome));
             container.start(args(), "start", true);
             container.killOnExit();
 
@@ -110,28 +109,6 @@ public class RemoteTomEEContainer extend
         }
     }
 
-    private String addOneLineFormatter(final File home) {
-        final String name = 
SimpleTomEEFormatter.class.getPackage().getName().replace('.', '/') + "/" + 
SimpleTomEEFormatter.class.getSimpleName() + ".class";
-        final InputStream is = getClass().getResourceAsStream("/" + name);
-        if (is != null) {
-            final File parent = Files.path(home, "bin", "classes");
-            final File destination = new File(parent, name);
-            if (!destination.getParentFile().mkdirs()) {
-                LOGGER.warning("Can't create " + destination.getPath());
-            } else {
-                try {
-                    IO.copy(is, destination);
-                    return parent.getAbsolutePath(); // to add to the 
classpath, don't return destination
-                } catch (IOException e) {
-                    LOGGER.log(Level.WARNING, "Can't add SingleLineFormatter", 
e);
-                } finally {
-                    IO.closeSilently(is);
-                }
-            }
-        }
-        return null;
-    }
-
     private List<String> args() {
         String opts = configuration.getCatalina_opts();
         if (opts == null || (opts = opts.trim()).isEmpty()) {

Modified: 
openejb/trunk/openejb/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java?rev=1431964&r1=1431963&r2=1431964&view=diff
==============================================================================
--- 
openejb/trunk/openejb/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java
 (original)
+++ 
openejb/trunk/openejb/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java
 Fri Jan 11 10:01:25 2013
@@ -33,7 +33,9 @@ import org.apache.openejb.loader.Files;
 import org.apache.openejb.loader.IO;
 import org.apache.openejb.loader.Zips;
 import org.apache.openejb.util.OpenEjbVersion;
+import org.apache.tomee.util.InstallationEnrichers;
 import org.apache.tomee.util.QuickServerXmlParser;
+import org.apache.tomee.util.SimpleTomEEFormatter;
 
 import java.io.BufferedInputStream;
 import java.io.BufferedOutputStream;
@@ -56,6 +58,7 @@ import java.util.List;
 import java.util.Locale;
 import java.util.Map;
 import java.util.concurrent.CountDownLatch;
+import java.util.logging.SimpleFormatter;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipFile;
 
@@ -127,6 +130,9 @@ public abstract class AbstractTomEEMojo 
     @Parameter(property = "tomee-plugin.debug", defaultValue = "false")
     protected boolean debug;
 
+    @Parameter(property = "tomee-plugin.simple-log", defaultValue = "false")
+    protected boolean simpleLog;
+
     @Parameter(property = "tomee-plugin.debugPort", defaultValue = "5005")
     protected int debugPort;
 
@@ -209,6 +215,7 @@ public abstract class AbstractTomEEMojo 
     protected Settings settings;
 
     protected File deployedFile = null;
+    private String additionalCp = null;
 
     @Override
     public void execute() throws MojoExecutionException, MojoFailureException {
@@ -236,6 +243,10 @@ public abstract class AbstractTomEEMojo 
             }
         }
 
+        if (simpleLog) {
+            additionalCp = activateSimpleLog();
+        }
+
         if (!keepServerXmlAsthis) {
             overrideAddresses();
         }
@@ -245,6 +256,31 @@ public abstract class AbstractTomEEMojo 
         run();
     }
 
+    private String activateSimpleLog() {
+        // adding SimpleTomEEFormatter to the classpath
+        final String cp = 
InstallationEnrichers.addOneLineFormatter(catalinaBase);
+
+        // replacing java.util.logging.SimpleFormatter by SimpleTomEEFormatter
+        final File loggingProperties = new File(catalinaBase, 
"conf/logging.properties");
+        if (loggingProperties.exists() && !new File(config, 
"conf/logging.properties").exists()) {
+            try {
+                final String content = IO.slurp(loggingProperties)
+                        .replace(SimpleFormatter.class.getName(), 
SimpleTomEEFormatter.class.getName());
+                final FileWriter writer = new FileWriter(loggingProperties);
+                try {
+                    writer.write(content);
+                } finally {
+                    IO.close(writer);
+                }
+            } catch (Exception e) {
+                getLog().error("Can't set SimpleTomEEFormatter", e);
+                return null;
+            }
+            return cp;
+        }
+        return null;
+    }
+
     private void removeDefaultWebapps(final boolean removeTomee) {
         final File webapps = new File(catalinaBase, webappDir);
         if (webapps.isDirectory()) {
@@ -570,6 +606,9 @@ public abstract class AbstractTomEEMojo 
         System.setProperty("server.shutdown.port", 
Integer.toString(tomeeShutdownPort));
 
         final RemoteServer server = new RemoteServer(getConnectAttempts(), 
false);
+        if (additionalCp != null) {
+            server.setAdditionalClasspath(additionalCp);
+        }
         addShutdownHooks(server); // some shutdown hooks are always added (see 
UpdatableTomEEMojo)
 
         final CountDownLatch stopCondition;

Modified: 
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java?rev=1431964&r1=1431963&r2=1431964&view=diff
==============================================================================
--- 
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
 (original)
+++ 
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
 Fri Jan 11 10:01:25 2013
@@ -698,7 +698,7 @@ public class TomcatWebAppBuilder impleme
         if (isIgnored(standardContext)) return;
 
         // just adding a carriage return to get logs more readable
-        logger.info("-------------------------\nTomcatWebAppBuilder.init " + 
finalName(standardContext.getPath()));
+        logger.info("------------------------- " + 
finalName(standardContext.getPath()));
 
         if (FORCE_RELOADABLE) {
             standardContext.setReloadable(true);

Modified: openejb/trunk/openejb/tomee/tomee-util/pom.xml
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-util/pom.xml?rev=1431964&r1=1431963&r2=1431964&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-util/pom.xml (original)
+++ openejb/trunk/openejb/tomee/tomee-util/pom.xml Fri Jan 11 10:01:25 2013
@@ -28,4 +28,13 @@
 
   <artifactId>tomee-util</artifactId>
   <name>OpenEJB :: TomEE :: Util</name>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.openejb</groupId>
+      <artifactId>openejb-loader</artifactId>
+      <version>4.5.2-SNAPSHOT</version>
+      <scope>provided</scope>
+    </dependency>
+  </dependencies>
 </project>

Added: 
openejb/trunk/openejb/tomee/tomee-util/src/main/java/org/apache/tomee/util/InstallationEnrichers.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-util/src/main/java/org/apache/tomee/util/InstallationEnrichers.java?rev=1431964&view=auto
==============================================================================
--- 
openejb/trunk/openejb/tomee/tomee-util/src/main/java/org/apache/tomee/util/InstallationEnrichers.java
 (added)
+++ 
openejb/trunk/openejb/tomee/tomee-util/src/main/java/org/apache/tomee/util/InstallationEnrichers.java
 Fri Jan 11 10:01:25 2013
@@ -0,0 +1,42 @@
+package org.apache.tomee.util;
+
+import org.apache.openejb.loader.Files;
+import org.apache.openejb.loader.IO;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+public class InstallationEnrichers {
+    private InstallationEnrichers() {
+        // no-op
+    }
+
+    public static String addOneLineFormatter(final File home) {
+        final String name = 
SimpleTomEEFormatter.class.getPackage().getName().replace('.', '/') + "/" + 
SimpleTomEEFormatter.class.getSimpleName() + ".class";
+        final InputStream is = 
InstallationEnrichers.class.getResourceAsStream("/" + name);
+        if (is != null) {
+            final File parent = Files.path(home, "bin", "classes");
+            final File destination = new File(parent, name);
+            if (destination.exists()) {
+                return parent.getAbsolutePath();
+            }
+
+            if (!destination.getParentFile().mkdirs()) {
+                
Logger.getLogger(InstallationEnrichers.class.getName()).warning("Can't create " 
+ destination.getPath());
+            } else {
+                try {
+                    IO.copy(is, destination);
+                    return parent.getAbsolutePath(); // to add to the 
classpath, don't return destination
+                } catch (IOException e) {
+                    
Logger.getLogger(InstallationEnrichers.class.getName()).log(Level.WARNING, 
"Can't add SingleLineFormatter", e);
+                } finally {
+                    IO.close(is);
+                }
+            }
+        }
+        return null;
+    }
+}

Added: 
openejb/trunk/openejb/tomee/tomee-util/src/main/java/org/apache/tomee/util/SimpleTomEEFormatter.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-util/src/main/java/org/apache/tomee/util/SimpleTomEEFormatter.java?rev=1431964&view=auto
==============================================================================
--- 
openejb/trunk/openejb/tomee/tomee-util/src/main/java/org/apache/tomee/util/SimpleTomEEFormatter.java
 (added)
+++ 
openejb/trunk/openejb/tomee/tomee-util/src/main/java/org/apache/tomee/util/SimpleTomEEFormatter.java
 Fri Jan 11 10:01:25 2013
@@ -0,0 +1,31 @@
+package org.apache.tomee.util;
+
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.util.logging.LogRecord;
+
+public class SimpleTomEEFormatter extends java.util.logging.Formatter {
+    private static final String LN = System.getProperty("line.separator");
+
+    @Override
+    public synchronized String format(LogRecord record) {
+        final Throwable thrown = record.getThrown();
+        final StringBuilder sbuf = new StringBuilder();
+        sbuf.append(record.getLevel().getLocalizedName());
+        sbuf.append(" - ");
+        sbuf.append(formatMessage(record));
+        sbuf.append(LN);
+        if (thrown != null) {
+            try {
+                final StringWriter sw = new StringWriter();
+                final PrintWriter pw = new PrintWriter(sw);
+                thrown.printStackTrace(pw);
+                pw.close();
+                sbuf.append(sw.toString());
+            } catch (Exception ex) {
+                // no-op
+            }
+        }
+        return sbuf.toString();
+    }
+}


Reply via email to