Author: rmannibucau
Date: Wed Jul 25 08:38:02 2012
New Revision: 1365488

URL: http://svn.apache.org/viewvc?rev=1365488&view=rev
Log:
TOMEE-341 system properties managedment in tomee arquillian adapters

Modified:
    
openejb/trunk/openejb/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/Setup.java
    
openejb/trunk/openejb/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEConfiguration.java
    
openejb/trunk/openejb/arquillian/arquillian-tomee-embedded/src/main/java/org/apache/openejb/arquillian/embedded/EmbeddedTomEEContainer.java
    
openejb/trunk/openejb/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEEContainer.java
    
openejb/trunk/openejb/arquillian/arquillian-tomee-webapp-remote/src/main/java/org/apache/tomee/arquillian/webapp/TomEEWebappContainer.java
    
openejb/trunk/openejb/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Configuration.java
    
openejb/trunk/openejb/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java

Modified: 
openejb/trunk/openejb/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/Setup.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/Setup.java?rev=1365488&r1=1365487&r2=1365488&view=diff
==============================================================================
--- 
openejb/trunk/openejb/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/Setup.java
 (original)
+++ 
openejb/trunk/openejb/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/Setup.java
 Wed Jul 25 08:38:02 2012
@@ -27,6 +27,7 @@ import java.net.Socket;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
+import java.util.Properties;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
@@ -236,4 +237,32 @@ public class Setup {
             return DEFAULT_AJP_PORT;
         }
     }
+
+    public static void configureSystemProperties(final File openejbHome, final 
TomEEConfiguration configuration) {
+        final Properties props = new Properties();
+        final File systemProperties = new File(openejbHome, 
"conf/system.properties");
+        if (systemProperties.exists()) {
+            try {
+                org.apache.openejb.loader.IO.readProperties(systemProperties);
+            } catch (IOException e) {
+                LOGGER.log(Level.SEVERE, "can't read " + 
systemProperties.getAbsolutePath(), e);
+            }
+        }
+        props.putAll(configuration.systemProperties());
+
+        FileWriter writer = null;
+        try {
+            writer = new FileWriter(systemProperties);
+            props.store(writer, "");
+        } catch (IOException e) {
+            LOGGER.log(Level.SEVERE, "can't save system properties " + 
systemProperties.getAbsolutePath(), e);
+            return;
+        } finally {
+            try {
+                IO.close(writer);
+            } catch (IOException ignored) {
+                // no-op
+            }
+        }
+    }
 }

Modified: 
openejb/trunk/openejb/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEConfiguration.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEConfiguration.java?rev=1365488&r1=1365487&r2=1365488&view=diff
==============================================================================
--- 
openejb/trunk/openejb/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEConfiguration.java
 (original)
+++ 
openejb/trunk/openejb/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEConfiguration.java
 Wed Jul 25 08:38:02 2012
@@ -17,13 +17,17 @@
 package org.apache.openejb.arquillian.common;
 
 
+import org.apache.openejb.OpenEJBRuntimeException;
+import org.apache.openejb.loader.*;
 import org.jboss.arquillian.container.spi.ConfigurationException;
 import 
org.jboss.arquillian.container.spi.client.container.ContainerConfiguration;
 
+import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.Reader;
 import java.io.StringReader;
+import java.util.Map;
 import java.util.Properties;
 
 public class TomEEConfiguration implements ContainerConfiguration {
@@ -35,6 +39,7 @@ public class TomEEConfiguration implemen
     private String appWorkingDir = System.getProperty("java.io.tmpdir");
     private String host = "localhost";
     private String serverXml = null;
+    private String properties = "";
 
     public int getHttpPort() {
         return httpPort;
@@ -94,4 +99,33 @@ public class TomEEConfiguration implemen
     public void setServerXml(String serverXml) {
         this.serverXml = serverXml;
     }
+
+    public String getProperties() {
+        return properties;
+    }
+
+    public void setProperties(String properties) {
+        this.properties = properties;
+    }
+
+    public Properties systemProperties() {
+        if (properties == null || properties.isEmpty()) {
+            return new Properties();
+        }
+
+        final Properties properties = new Properties();
+        final ByteArrayInputStream bais = new 
ByteArrayInputStream(getProperties().getBytes());
+        try {
+            properties.load(bais);
+        } catch (IOException e) {
+            throw new OpenEJBRuntimeException(e);
+        } finally {
+            try {
+                IO.close(bais);
+            } catch (IOException ignored) {
+                // no-op
+            }
+        }
+        return properties;
+    }
 }

Modified: 
openejb/trunk/openejb/arquillian/arquillian-tomee-embedded/src/main/java/org/apache/openejb/arquillian/embedded/EmbeddedTomEEContainer.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian/arquillian-tomee-embedded/src/main/java/org/apache/openejb/arquillian/embedded/EmbeddedTomEEContainer.java?rev=1365488&r1=1365487&r2=1365488&view=diff
==============================================================================
--- 
openejb/trunk/openejb/arquillian/arquillian-tomee-embedded/src/main/java/org/apache/openejb/arquillian/embedded/EmbeddedTomEEContainer.java
 (original)
+++ 
openejb/trunk/openejb/arquillian/arquillian-tomee-embedded/src/main/java/org/apache/openejb/arquillian/embedded/EmbeddedTomEEContainer.java
 Wed Jul 25 08:38:02 2012
@@ -76,6 +76,7 @@ public class EmbeddedTomEEContainer exte
        configuration.setStopPort(tomeeConfiguration.getStopPort());
         configuration.setHost(tomeeConfiguration.getHost());
         configuration.setServerXml(tomeeConfiguration.getServerXml());
+        configuration.setProperties(tomeeConfiguration.systemProperties());
                return configuration;
        }
 

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=1365488&r1=1365487&r2=1365488&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
 Wed Jul 25 08:38:02 2012
@@ -94,6 +94,7 @@ public class RemoteTomEEContainer extend
         Files.writable(openejbHome);
 
         Setup.configureServerXml(openejbHome, configuration);
+        Setup.configureSystemProperties(openejbHome, configuration);
 
         Setup.exportProperties(openejbHome, configuration);
 

Modified: 
openejb/trunk/openejb/arquillian/arquillian-tomee-webapp-remote/src/main/java/org/apache/tomee/arquillian/webapp/TomEEWebappContainer.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian/arquillian-tomee-webapp-remote/src/main/java/org/apache/tomee/arquillian/webapp/TomEEWebappContainer.java?rev=1365488&r1=1365487&r2=1365488&view=diff
==============================================================================
--- 
openejb/trunk/openejb/arquillian/arquillian-tomee-webapp-remote/src/main/java/org/apache/tomee/arquillian/webapp/TomEEWebappContainer.java
 (original)
+++ 
openejb/trunk/openejb/arquillian/arquillian-tomee-webapp-remote/src/main/java/org/apache/tomee/arquillian/webapp/TomEEWebappContainer.java
 Wed Jul 25 08:38:02 2012
@@ -102,6 +102,7 @@ public class TomEEWebappContainer extend
             Files.writable(openejbHome);
 
             Setup.configureServerXml(openejbHome, configuration);
+            Setup.configureSystemProperties(openejbHome, configuration);
 
             Setup.exportProperties(openejbHome, configuration);
 

Modified: 
openejb/trunk/openejb/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Configuration.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Configuration.java?rev=1365488&r1=1365487&r2=1365488&view=diff
==============================================================================
--- 
openejb/trunk/openejb/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Configuration.java
 (original)
+++ 
openejb/trunk/openejb/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Configuration.java
 Wed Jul 25 08:38:02 2012
@@ -17,6 +17,7 @@
 package org.apache.tomee.embedded;
 
 import java.io.File;
+import java.util.Properties;
 
 /**
 * @version $Rev$ $Date$
@@ -29,6 +30,7 @@ public class Configuration {
     private String host = "localhost";
     protected String dir;
     private File serverXml = null;
+    private Properties properties;
 
     public int getHttpPort() {
         return httpPort;
@@ -88,4 +90,12 @@ public class Configuration {
     public boolean hasServerXml() {
         return serverXml != null && serverXml.exists();
     }
+
+    public void setProperties(final Properties properties) {
+        this.properties = properties;
+    }
+
+    public Properties getProperties() {
+        return properties;
+    }
 }

Modified: 
openejb/trunk/openejb/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java?rev=1365488&r1=1365487&r2=1365488&view=diff
==============================================================================
--- 
openejb/trunk/openejb/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java
 (original)
+++ 
openejb/trunk/openejb/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java
 Wed Jul 25 08:38:02 2012
@@ -127,6 +127,15 @@ public class Container {
         } else {
             copyFileTo(conf, "server.xml");
         }
+        final Properties props = configuration.getProperties();
+        if (props != null && !props.isEmpty()) {
+            final FileWriter systemProperties = new FileWriter(new File(conf, 
"system.properties"));
+            try {
+                props.store(systemProperties, "");
+            } finally {
+                IO.close(systemProperties);
+            }
+        }
 
         // Need to use JULI so log messages from the tests are visible
         // using openejb logging conf in embedded mode
@@ -177,6 +186,7 @@ public class Container {
         properties.setProperty("openejb.home", catalinaBase);
         properties.setProperty("openejb.base", catalinaBase);
         properties.setProperty("openejb.servicemanager.enabled", "false");
+        properties.putAll(configuration.getProperties());
 
         try {
             ClassLoader classLoader = 
Thread.currentThread().getContextClassLoader();


Reply via email to