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


Reply via email to