Author: rmannibucau
Date: Tue Aug 21 11:50:59 2012
New Revision: 1375481
URL: http://svn.apache.org/viewvc?rev=1375481&view=rev
Log:
updatedUrl for tomcat-jdbc + some more debug for arquillian module
Modified:
openejb/trunk/openejb/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEContainer.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-tests/pom.xml
openejb/trunk/openejb/arquillian/arquillian-tomee-webapp-remote/src/main/java/org/apache/tomee/arquillian/webapp/TomEEWebappContainer.java
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java
openejb/trunk/openejb/tomee/tomee-jdbc/src/main/java/org/apache/tomee/jdbc/TomEEDataSourceCreator.java
Modified:
openejb/trunk/openejb/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEContainer.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEContainer.java?rev=1375481&r1=1375480&r2=1375481&view=diff
==============================================================================
---
openejb/trunk/openejb/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEContainer.java
(original)
+++
openejb/trunk/openejb/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEContainer.java
Tue Aug 21 11:50:59 2012
@@ -62,6 +62,7 @@ public abstract class TomEEContainer<Con
this.options = new Options(System.getProperties());
}
+ @Override
public void setup(Configuration configuration) {
this.configuration = configuration;
@@ -171,6 +172,7 @@ public abstract class TomEEContainer<Con
public abstract void start() throws LifecycleException;
+ @Override
public void stop() throws LifecycleException {
try {
Socket socket = new Socket(configuration.getHost(),
configuration.getStopPort());
@@ -204,6 +206,7 @@ public abstract class TomEEContainer<Con
}
}
+ @Override
public ProtocolDescription getDefaultProtocol() {
return new ProtocolDescription("Servlet 2.5");
}
@@ -231,6 +234,7 @@ public abstract class TomEEContainer<Con
}
}
+ @Override
public ProtocolMetaData deploy(Archive<?> archive) throws
DeploymentException {
try {
String tmpDir = configuration.getAppWorkingDir();
@@ -304,7 +308,7 @@ public abstract class TomEEContainer<Con
try {
final Properties properties = new Properties();
properties.setProperty(Context.INITIAL_CONTEXT_FACTORY,
"org.apache.openejb.client.RemoteInitialContextFactory");
- properties.setProperty(Context.PROVIDER_URL, "http://" +
configuration.getHost() + ":" + configuration.getHttpPort() + "/tomee/ejb");
+ properties.setProperty(Context.PROVIDER_URL, providerUrl());
return (Deployer) new
InitialContext(properties).lookup("openejb/DeployerBusinessRemote");
} catch (RuntimeException ne) { // surely
"org.apache.openejb.client.ClientRuntimeException: Invalid response from
server: -1"
if (retry > 1) {
@@ -319,6 +323,10 @@ public abstract class TomEEContainer<Con
}
}
+ protected String providerUrl() {
+ return "http://" + configuration.getHost() + ":" +
configuration.getHttpPort() + "/tomee/ejb";
+ }
+
protected String getArchiveNameWithoutExtension(final Archive<?> archive) {
final String archiveName = archive.getName();
final int extensionOffset = archiveName.lastIndexOf('.');
@@ -328,6 +336,7 @@ public abstract class TomEEContainer<Con
return archiveName;
}
+ @Override
public void undeploy(Archive<?> archive) throws DeploymentException {
final DeployedApp deployed = moduleIds.get(archive.getName());
try {
@@ -347,10 +356,12 @@ public abstract class TomEEContainer<Con
}
}
+ @Override
public void deploy(Descriptor descriptor) throws DeploymentException {
throw new UnsupportedOperationException("Not implemented");
}
+ @Override
public void undeploy(Descriptor descriptor) throws DeploymentException {
throw new UnsupportedOperationException("Not implemented");
}
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=1375481&r1=1375480&r2=1375481&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
Tue Aug 21 11:50:59 2012
@@ -59,6 +59,7 @@ public class EmbeddedTomEEContainer exte
return EmbeddedTomEEConfiguration.class;
}
+ @Override
public void setup(EmbeddedTomEEConfiguration configuration) {
super.setup(configuration);
container = new Container();
@@ -80,6 +81,7 @@ public class EmbeddedTomEEContainer exte
return configuration;
}
+ @Override
public void start() throws LifecycleException {
try {
container.start();
@@ -90,6 +92,7 @@ public class EmbeddedTomEEContainer exte
}
}
+ @Override
public void stop() throws LifecycleException {
try {
container.stop();
@@ -98,10 +101,12 @@ public class EmbeddedTomEEContainer exte
}
}
+ @Override
public ProtocolDescription getDefaultProtocol() {
return new ProtocolDescription("Local");
}
-
+
+ @Override
public ProtocolMetaData deploy(Archive<?> archive) throws
DeploymentException {
try {
final File tempDir = Files.createTempDir();
@@ -126,6 +131,7 @@ public class EmbeddedTomEEContainer exte
}
}
+ @Override
public void undeploy(Archive<?> archive) throws DeploymentException {
try {
final String name = archive.getName();
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=1375481&r1=1375480&r2=1375481&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
Tue Aug 21 11:50:59 2012
@@ -17,14 +17,20 @@
package org.apache.tomee.arquillian.remote;
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.assembler.Deployer;
import org.apache.openejb.config.RemoteServer;
import org.jboss.arquillian.container.spi.client.container.LifecycleException;
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
import java.io.File;
import java.io.IOException;
import java.util.Map;
+import java.util.Properties;
import java.util.TreeMap;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -39,6 +45,7 @@ public class RemoteTomEEContainer extend
private RemoteServer container;
private boolean shutdown = false;
+ @Override
public void start() throws LifecycleException {
// see if TomEE is already running by checking the http port
if (Setup.isRunning(configuration.getHost(),
configuration.getHttpPort())) {
@@ -117,6 +124,7 @@ public class RemoteTomEEContainer extend
}
}
+ @Override
public void stop() throws LifecycleException {
// only stop the container if we started it
if (shutdown) {
@@ -124,7 +132,27 @@ public class RemoteTomEEContainer extend
}
}
+ @Override
public Class<RemoteTomEEConfiguration> getConfigurationClass() {
return RemoteTomEEConfiguration.class;
}
+
+ @Override
+ protected Deployer deployer() throws NamingException {
+ try {
+ return super.deployer();
+ } catch (RuntimeException ne) {
+ // some debug lines
+ if (Boolean.getBoolean("openejb.arquillian.debug")) {
+ container.kill3UNIX();
+ LOGGER.info("Can't connect to deployer through: " +
providerUrl());
+ try {
+ LOGGER.info("Here is the server.xml:\n" + IO.slurp(new
File(Setup.findHome(new File(configuration.getDir()).getAbsoluteFile()),
"conf/server.xml")));
+ } catch (IOException ignored) {
+ // no-op
+ }
+ }
+ throw ne;
+ }
+ }
}
Modified: openejb/trunk/openejb/arquillian/arquillian-tomee-tests/pom.xml
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian/arquillian-tomee-tests/pom.xml?rev=1375481&r1=1375480&r2=1375481&view=diff
==============================================================================
--- openejb/trunk/openejb/arquillian/arquillian-tomee-tests/pom.xml (original)
+++ openejb/trunk/openejb/arquillian/arquillian-tomee-tests/pom.xml Tue Aug 21
11:50:59 2012
@@ -120,36 +120,13 @@
<build>
<plugins>
- <!-- trying to use random port for each test instead of a single one
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>build-helper-maven-plugin</artifactId>
- <version>1.7</version>
- <executions>
- <execution>
- <id>reserve-network-port</id>
- <phase>process-test-classes</phase>
- <goals>
- <goal>reserve-network-port</goal>
- </goals>
- <configuration>
- <portNames>
- <portName>tomee.http.port</portName>
- <portName>tomee.shutdown.port</portName>
- </portNames>
- </configuration>
- </execution>
- </executions>
- </plugin>
- -->
-
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12</version>
<executions>
<execution>
- <id>test-tomee-embedded</id>
+ <id>test-tomee-remote</id>
<phase>test</phase>
<goals>
<goal>test</goal>
@@ -157,14 +134,16 @@
<configuration>
<skip>${maven.test.skip}</skip>
<systemPropertyVariables>
+ <openejb.arquillian.debug>true</openejb.arquillian.debug>
<tomee.version>${tomee.version}</tomee.version>
- <arquillian.launch>tomee-embedded</arquillian.launch>
-
<openejb.arquillian.adapter>tomee-embedded</openejb.arquillian.adapter>
+ <tomee.classifier>${distribution.under.test}</tomee.classifier>
+ <arquillian.launch>tomee-remote</arquillian.launch>
+
<openejb.arquillian.adapter>tomee-remote</openejb.arquillian.adapter>
</systemPropertyVariables>
</configuration>
</execution>
<execution>
- <id>test-tomee-remote</id>
+ <id>test-tomee-embedded</id>
<phase>test</phase>
<goals>
<goal>test</goal>
@@ -173,9 +152,8 @@
<skip>${maven.test.skip}</skip>
<systemPropertyVariables>
<tomee.version>${tomee.version}</tomee.version>
- <tomee.classifier>${distribution.under.test}</tomee.classifier>
- <arquillian.launch>tomee-remote</arquillian.launch>
-
<openejb.arquillian.adapter>tomee-remote</openejb.arquillian.adapter>
+ <arquillian.launch>tomee-embedded</arquillian.launch>
+
<openejb.arquillian.adapter>tomee-embedded</openejb.arquillian.adapter>
</systemPropertyVariables>
</configuration>
</execution>
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=1375481&r1=1375480&r2=1375481&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
Tue Aug 21 11:50:59 2012
@@ -45,6 +45,7 @@ public class TomEEWebappContainer extend
private RemoteServer container;
private boolean shutdown = false;
+ @Override
public void start() throws LifecycleException {
// see if TomEE is already running by checking the http port
if (Setup.isRunning(configuration.getHost(),
configuration.getHttpPort())) {
@@ -172,6 +173,7 @@ public class TomEEWebappContainer extend
Zips.unzip(zipFile, catalinaDirectory);
}
+ @Override
public void stop() throws LifecycleException {
// only stop the container if we started it
if (shutdown) {
@@ -179,6 +181,7 @@ public class TomEEWebappContainer extend
}
}
+ @Override
public Class<TomEEWebappConfiguration> getConfigurationClass() {
return TomEEWebappConfiguration.class;
}
Modified:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java?rev=1375481&r1=1375480&r2=1375481&view=diff
==============================================================================
---
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java
(original)
+++
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java
Tue Aug 21 11:50:59 2012
@@ -328,14 +328,7 @@ public class RemoteServer {
e1.printStackTrace();
}
if (i == 5) {
- try {
- final Field f =
server.getClass().getDeclaredField("pid");
- f.setAccessible(true);
- int pid = (Integer) f.get(server);
- Pipe.pipe(Runtime.getRuntime().exec("kill -3 "
+ pid));
- } catch (Exception e1) {
- e1.printStackTrace();
- }
+ kill3UNIX();
i = 0;
}
}
@@ -346,6 +339,21 @@ public class RemoteServer {
t.start();
}
+ public void kill3UNIX() { // debug purpose only
+ if (System.getProperty("os.name").toLowerCase().contains("win")) {
+ return;
+ }
+
+ try {
+ final Field f = server.getClass().getDeclaredField("pid");
+ f.setAccessible(true);
+ int pid = (Integer) f.get(server);
+ Pipe.pipe(Runtime.getRuntime().exec("kill -3 " + pid));
+ } catch (Exception e1) {
+ e1.printStackTrace();
+ }
+ }
+
private File lib(String name, File... dirs) {
for (File dir : dirs) {
final File[] files = dir.listFiles();
Modified:
openejb/trunk/openejb/tomee/tomee-jdbc/src/main/java/org/apache/tomee/jdbc/TomEEDataSourceCreator.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-jdbc/src/main/java/org/apache/tomee/jdbc/TomEEDataSourceCreator.java?rev=1375481&r1=1375480&r2=1375481&view=diff
==============================================================================
---
openejb/trunk/openejb/tomee/tomee-jdbc/src/main/java/org/apache/tomee/jdbc/TomEEDataSourceCreator.java
(original)
+++
openejb/trunk/openejb/tomee/tomee-jdbc/src/main/java/org/apache/tomee/jdbc/TomEEDataSourceCreator.java
Tue Aug 21 11:50:59 2012
@@ -20,6 +20,8 @@ import org.apache.juli.logging.Log;
import org.apache.juli.logging.LogFactory;
import org.apache.openejb.monitoring.LocalMBeanServer;
import org.apache.openejb.monitoring.ObjectNameBuilder;
+import org.apache.openejb.resource.jdbc.BasicDataSourceUtil;
+import org.apache.openejb.resource.jdbc.plugin.DataSourcePlugin;
import org.apache.openejb.resource.jdbc.pool.PoolDataSourceCreator;
import org.apache.openejb.util.LogCategory;
import org.apache.openejb.util.Logger;
@@ -35,7 +37,6 @@ import java.lang.reflect.InvocationHandl
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.sql.Connection;
-import java.sql.Driver;
import java.sql.SQLException;
import java.util.Map;
import java.util.Properties;
@@ -100,9 +101,31 @@ public class TomEEDataSourceCreator exte
continue;
}
- converted.put(key, value);
+ converted.put(uncapitalize(key), value);
}
}
+
+ final String currentUrl = properties.getProperty("url");
+ if (currentUrl != null) {
+ try {
+ final DataSourcePlugin helper =
BasicDataSourceUtil.getDataSourcePlugin(currentUrl);
+ if (helper != null) {
+ final String newUrl = helper.updatedUrl(currentUrl);
+ if (!currentUrl.equals(newUrl)) {
+ properties.setProperty("url", newUrl);
+ }
+ }
+ } catch (SQLException ignored) {
+ // no-op
+ }
+ }
+ }
+
+ private static String uncapitalize(final String key) {
+ if (key == null || key.isEmpty()) {
+ return key;
+ }
+ return Character.toLowerCase(key.charAt(0)) + key.substring(1);
}
@Override