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();