Author: rmannibucau
Date: Tue Aug 14 15:10:42 2012
New Revision: 1372917

URL: http://svn.apache.org/viewvc?rev=1372917&view=rev
Log:
TOMEE-373 supporting a conf folder template for tomee remote arquillian adapter

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/TomEEContainer.java
    
openejb/trunk/openejb/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEEConfiguration.java
    
openejb/trunk/openejb/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEEContainer.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=1372917&r1=1372916&r2=1372917&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
 Tue Aug 14 15:10:42 2012
@@ -17,13 +17,14 @@
 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.loader.*;
 import org.apache.openejb.util.JarExtractor;
 import org.jboss.arquillian.container.spi.client.container.LifecycleException;
 
 import java.io.*;
 import java.net.Socket;
+import java.util.Collection;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
@@ -265,4 +266,37 @@ public class Setup {
             }
         }
     }
+
+    public static void synchronizeConf(final File openejbHome, final File 
confSrc) {
+        final File conf = new File(openejbHome, "conf");
+        final Collection<File> files = 
org.apache.openejb.loader.Files.collect(confSrc, TrueFileFilter.instance());
+        files.remove(confSrc);
+        for (File f : files) {
+            try {
+                org.apache.openejb.loader.IO.copy(f, new File(conf, 
relativize(f, confSrc)));
+            } catch (Exception e) {
+                LOGGER.log(Level.WARNING, "ignoring copy of " + 
f.getAbsolutePath(), e);
+            }
+        }
+    }
+
+    private static String relativize(final File f, final File base) {
+        return f.getAbsolutePath().substring(base.getAbsolutePath().length() + 
1);
+    }
+
+    private static class TrueFileFilter implements FileFilter {
+        private static TrueFileFilter INSTANCE = null;
+
+        public static TrueFileFilter instance() {
+            if (INSTANCE == null) {
+                INSTANCE = new TrueFileFilter();
+            }
+            return INSTANCE;
+        }
+
+        @Override
+        public boolean accept(final File pathname) {
+            return true;
+        }
+    }
 }

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=1372917&r1=1372916&r2=1372917&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 14 15:10:42 2012
@@ -222,7 +222,11 @@ public abstract class TomEEContainer<Con
             final AppInfo appInfo;
             try {
                 appInfo = deployer().deploy(file.getAbsolutePath());
-                moduleIds.put(archive.getName(), new DeployedApp(appInfo.path, 
file.getParentFile()));
+                if (appInfo != null) {
+                    moduleIds.put(archive.getName(), new 
DeployedApp(appInfo.path, file.getParentFile()));
+                } else {
+                    throw new OpenEJBException("can't get appInfo");
+                }
             } catch (OpenEJBException re) { // clean up in undeploy needs it
                 moduleIds.put(archive.getName(), new 
DeployedApp(file.getPath(), file.getParentFile()));
                 throw re;

Modified: 
openejb/trunk/openejb/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEEConfiguration.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEEConfiguration.java?rev=1372917&r1=1372916&r2=1372917&view=diff
==============================================================================
--- 
openejb/trunk/openejb/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEEConfiguration.java
 (original)
+++ 
openejb/trunk/openejb/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEEConfiguration.java
 Tue Aug 14 15:10:42 2012
@@ -32,6 +32,7 @@ public class RemoteTomEEConfiguration ex
     private String type = "zip";
     private boolean removeUnusedWebapps = true;
     private int ajpPort = 8009;
+    private String conf;
 
     public String getGroupId() {
         return groupId;
@@ -97,4 +98,11 @@ public class RemoteTomEEConfiguration ex
         this.ajpPort = ajpPort;
     }
 
+    public String getConf() {
+        return conf;
+    }
+
+    public void setConf(String conf) {
+        this.conf = conf;
+    }
 }

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=1372917&r1=1372916&r2=1372917&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 14 15:10:42 2012
@@ -96,6 +96,15 @@ public class RemoteTomEEContainer extend
         Setup.configureServerXml(openejbHome, configuration);
         Setup.configureSystemProperties(openejbHome, configuration);
 
+        if (configuration.getConf() != null && 
!configuration.getConf().isEmpty()) {
+            final File confSrc = new File(configuration.getConf());
+            if (confSrc.exists()) {
+                Setup.synchronizeConf(openejbHome, confSrc);
+            } else {
+                LOGGER.warning("can't find " + confSrc.getAbsolutePath());
+            }
+        }
+
         Setup.exportProperties(openejbHome, configuration);
 
         if (configuration.isRemoveUnusedWebapps()) {


Reply via email to