Author: rmannibucau
Date: Sun Jun 17 16:25:36 2012
New Revision: 1351122
URL: http://svn.apache.org/viewvc?rev=1351122&view=rev
Log:
TOMEE-235 ability to provide a server.xml in embedded tomee and 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=1351122&r1=1351121&r2=1351122&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
Sun Jun 17 16:25:36 2012
@@ -16,6 +16,7 @@
*/
package org.apache.openejb.arquillian.common;
+import java.lang.reflect.Method;
import org.apache.openejb.loader.ProvisioningUtil;
import org.apache.openejb.loader.SystemInstance;
import org.apache.openejb.util.JarExtractor;
@@ -207,4 +208,31 @@ public class Setup {
}
}
}
+
+ public static void configureServerXml(final File openejbHome, final
TomEEConfiguration configuration) throws IOException {
+ if (configuration.getServerXml() != null) {
+ final File sXml = new File(configuration.getServerXml());
+ if (!sXml.exists()) {
+ LOGGER.severe("provided server.xml doesn't exist: '" +
sXml.getPath() + "'");
+ } else {
+ final FileOutputStream fos = new FileOutputStream(new
File(openejbHome, "conf/server.xml"));
+ try {
+ IO.copy(sXml, fos);
+ } finally {
+ IO.close(fos);
+ }
+ return; // in this case we don't want to override the conf
+ }
+ }
+ Setup.updateServerXml(openejbHome, configuration.getHttpPort(),
configuration.getStopPort(), ajpPort(configuration));
+ }
+
+ private static int ajpPort(final TomEEConfiguration config) {
+ try {
+ final Method ajbPort = config.getClass().getMethod("getAjpPort");
+ return (Integer) ajbPort.invoke(config);
+ } catch (Exception e) {
+ return DEFAULT_AJP_PORT;
+ }
+ }
}
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=1351122&r1=1351121&r2=1351122&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
Sun Jun 17 16:25:36 2012
@@ -34,6 +34,7 @@ public class TomEEConfiguration implemen
private String dir = System.getProperty("java.io.tmpdir") +
"/arquillian-apache-tomee";
private String appWorkingDir = System.getProperty("java.io.tmpdir");
private String host = "localhost";
+ private String serverXml = null;
public int getHttpPort() {
return httpPort;
@@ -85,4 +86,12 @@ public class TomEEConfiguration implemen
public void setHost(String host) {
this.host = host;
}
+
+ public String getServerXml() {
+ return serverXml;
+ }
+
+ public void setServerXml(String serverXml) {
+ this.serverXml = serverXml;
+ }
}
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=1351122&r1=1351121&r2=1351122&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
Sun Jun 17 16:25:36 2012
@@ -75,6 +75,7 @@ public class EmbeddedTomEEContainer exte
configuration.setHttpPort(tomeeConfiguration.getHttpPort());
configuration.setStopPort(tomeeConfiguration.getStopPort());
configuration.setHost(tomeeConfiguration.getHost());
+ configuration.setServerXml(tomeeConfiguration.getServerXml());
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=1351122&r1=1351121&r2=1351122&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
Sun Jun 17 16:25:36 2012
@@ -16,7 +16,9 @@
*/
package org.apache.tomee.arquillian.remote;
+import java.io.FileOutputStream;
import org.apache.openejb.arquillian.common.Files;
+import org.apache.openejb.arquillian.common.IO;
import org.apache.openejb.arquillian.common.Setup;
import org.apache.openejb.arquillian.common.TomEEContainer;
import org.apache.openejb.config.RemoteServer;
@@ -91,7 +93,7 @@ public class RemoteTomEEContainer extend
Files.readable(openejbHome);
Files.writable(openejbHome);
- Setup.updateServerXml(openejbHome, configuration.getHttpPort(),
configuration.getStopPort(), configuration.getAjpPort());
+ Setup.configureServerXml(openejbHome, configuration);
Setup.exportProperties(openejbHome, configuration);
@@ -100,7 +102,7 @@ public class RemoteTomEEContainer extend
}
if (logger.isLoggable(Level.FINE)) {
- Map<Object, Object> map = new TreeMap(System.getProperties());
+ final Map<Object, Object> map = new TreeMap<Object,
Object>(System.getProperties());
for (Map.Entry<Object, Object> entry : map.entrySet()) {
logger.log(Level.FINE, String.format("%s = %s\n",
entry.getKey(), entry.getValue()));
}
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=1351122&r1=1351121&r2=1351122&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
Sun Jun 17 16:25:36 2012
@@ -101,7 +101,8 @@ public class TomEEWebappContainer extend
Files.readable(openejbHome);
Files.writable(openejbHome);
- Setup.updateServerXml(openejbHome, configuration.getHttpPort(),
configuration.getStopPort(), 0);
+ Setup.configureServerXml(openejbHome, configuration);
+
Setup.exportProperties(openejbHome, configuration);
final URL logging =
Thread.currentThread().getContextClassLoader().getResource("default.remote.logging.properties");
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=1351122&r1=1351121&r2=1351122&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
Sun Jun 17 16:25:36 2012
@@ -16,6 +16,8 @@
*/
package org.apache.tomee.embedded;
+import java.io.File;
+
/**
* @version $Rev$ $Date$
*/
@@ -26,6 +28,7 @@ public class Configuration {
private int stopPort = 8005;
private String host = "localhost";
protected String dir;
+ private File serverXml = null;
public int getHttpPort() {
return httpPort;
@@ -66,4 +69,19 @@ public class Configuration {
public void setHost(String host) {
this.host = host;
}
+
+ public void setServerXml(String file) {
+ final File sXml = new File(file);
+ if (sXml.exists()) {
+ serverXml = sXml;
+ }
+ }
+
+ public File getServerXmlFile() {
+ return serverXml;
+ }
+
+ public boolean hasServerXml() {
+ return serverXml != null && serverXml.exists();
+ }
}
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=1351122&r1=1351121&r2=1351122&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
Sun Jun 17 16:25:36 2012
@@ -17,6 +17,7 @@
package org.apache.tomee.embedded;
import java.io.File;
+import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
@@ -114,9 +115,18 @@ public class Container {
copyTemplateTo(conf, "catalina.properties");
copyFileTo(conf, "context.xml");
copyFileTo(conf, "openejb.xml");
- copyFileTo(conf, "server.xml");
copyFileTo(conf, "tomcat-users.xml");
copyFileTo(conf, "web.xml");
+ if (configuration.hasServerXml()) {
+ final FileOutputStream fos = new FileOutputStream(new File(conf,
"server.xml"));
+ try {
+ IO.copy(configuration.getServerXmlFile(), fos);
+ } finally {
+ IO.close(fos);
+ }
+ } else {
+ copyFileTo(conf, "server.xml");
+ }
// Need to use JULI so log messages from the tests are visible
// using openejb logging conf in embedded mode