Author: rmannibucau
Date: Fri Jul 18 17:08:41 2014
New Revision: 1611717

URL: http://svn.apache.org/r1611717
Log:
TOMEE-1274 additionalLibs for tomee remote arquillian adapter

Added:
    
tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/AdditionalLibsTest.java
Modified:
    
tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/Setup.java
    tomee/tomee/trunk/arquillian/arquillian-tomee-remote/pom.xml
    
tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEEConfiguration.java
    
tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEEContainer.java
    
tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/resources/arquillian.xml

Modified: 
tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/Setup.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/Setup.java?rev=1611717&r1=1611716&r2=1611717&view=diff
==============================================================================
--- 
tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/Setup.java
 (original)
+++ 
tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/Setup.java
 Fri Jul 18 17:08:41 2014
@@ -342,6 +342,27 @@ public class Setup {
         Files.delete(destination);
     }
 
+    public static void addTomEELibraries(final File tomeeHome, final String 
additionalLibs) {
+        if (additionalLibs == null) {
+            return;
+        }
+        final String libs = additionalLibs.trim();
+        if (libs.isEmpty()) {
+            return;
+        }
+
+        final File libFolder = new File(tomeeHome, "lib");
+        for (final String lib : libs.split("\n")) {
+            final String location = ProvisioningUtil.realLocation(lib.trim());
+            final File from = new File(location);
+            try {
+                org.apache.openejb.loader.IO.copy(from, new File(libFolder, 
from.getName()));
+            } catch (final IOException e) {
+                throw new IllegalStateException(e);
+            }
+        }
+    }
+
     private static class DirectFileOnlyFilter implements FileFilter {
         private final File accepted;
 

Modified: tomee/tomee/trunk/arquillian/arquillian-tomee-remote/pom.xml
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/arquillian-tomee-remote/pom.xml?rev=1611717&r1=1611716&r2=1611717&view=diff
==============================================================================
--- tomee/tomee/trunk/arquillian/arquillian-tomee-remote/pom.xml (original)
+++ tomee/tomee/trunk/arquillian/arquillian-tomee-remote/pom.xml Fri Jul 18 
17:08:41 2014
@@ -163,6 +163,13 @@
       <version>3.1</version>
       <scope>test</scope>
     </dependency>
+
+    <dependency>
+      <groupId>org.apache.sirona</groupId>
+      <artifactId>sirona-web</artifactId>
+      <version>0.2-incubating</version>
+      <scope>test</scope>
+    </dependency>
   </dependencies>
 
   <build>

Modified: 
tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEEConfiguration.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEEConfiguration.java?rev=1611717&r1=1611716&r2=1611717&view=diff
==============================================================================
--- 
tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEEConfiguration.java
 (original)
+++ 
tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEEConfiguration.java
 Fri Jul 18 17:08:41 2014
@@ -39,6 +39,7 @@ public class RemoteTomEEConfiguration ex
     private String conf;
     private String bin;
     private String lib;
+    private String additionalLibs;
     private boolean cleanOnStartUp;
     private boolean debug;
     private int debugPort = 5005;
@@ -89,6 +90,15 @@ public class RemoteTomEEConfiguration ex
         this.type = type;
     }
 
+    public String getAdditionalLibs() {
+        return additionalLibs;
+    }
+
+    @Multiline
+    public void setAdditionalLibs(String additionalLibs) {
+        this.additionalLibs = additionalLibs;
+    }
+
     public String getArtifactName() {
 
         final String format = (classifier == null || classifier.isEmpty()) ? 
"%s:%s:%s:%s" : "%s:%s:%s:%s:%s";

Modified: 
tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEEContainer.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEEContainer.java?rev=1611717&r1=1611716&r2=1611717&view=diff
==============================================================================
--- 
tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEEContainer.java
 (original)
+++ 
tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEEContainer.java
 Fri Jul 18 17:08:41 2014
@@ -202,6 +202,7 @@ public class RemoteTomEEContainer extend
         Setup.synchronizeFolder(tomeeHome, configuration.getConf(), "conf");
         Setup.synchronizeFolder(tomeeHome, configuration.getBin(), "bin");
         Setup.synchronizeFolder(tomeeHome, configuration.getLib(), "lib");
+        Setup.addTomEELibraries(tomeeHome, configuration.getAdditionalLibs());
 
         Setup.configureServerXml(tomeeHome, configuration);
 

Added: 
tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/AdditionalLibsTest.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/AdditionalLibsTest.java?rev=1611717&view=auto
==============================================================================
--- 
tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/AdditionalLibsTest.java
 (added)
+++ 
tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/java/org/apache/openejb/arquillian/AdditionalLibsTest.java
 Fri Jul 18 17:08:41 2014
@@ -0,0 +1,57 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.openejb.arquillian;
+
+import org.apache.sirona.repositories.Repository;
+import org.jboss.arquillian.container.test.api.Deployment;
+import org.jboss.arquillian.junit.Arquillian;
+import org.jboss.shrinkwrap.api.Archive;
+import org.jboss.shrinkwrap.api.ShrinkWrap;
+import org.jboss.shrinkwrap.api.spec.WebArchive;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.io.File;
+import java.io.FilenameFilter;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+@RunWith(Arquillian.class)
+public class AdditionalLibsTest {
+    @Deployment
+    public static Archive<?> war() {
+        return ShrinkWrap.create(WebArchive.class, "foo.war")
+            .addClass(Tester.class);
+    }
+
+    @Test
+    public void run() {
+        final File[] sirona = new File(System.getProperty("catalina.base") + 
"/lib").listFiles(new FilenameFilter() {
+            @Override
+            public boolean accept(final File dir, final String name) {
+                return name.startsWith("sirona-");
+            }
+        });
+        assertEquals(3, sirona.length); // core, web, aop
+
+        assertNotNull(Repository.INSTANCE); // would fail if libs are missing
+    }
+
+    private static class Tester {
+    }
+}

Modified: 
tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/resources/arquillian.xml
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/resources/arquillian.xml?rev=1611717&r1=1611716&r2=1611717&view=diff
==============================================================================
--- 
tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/resources/arquillian.xml
 (original)
+++ 
tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/test/resources/arquillian.xml
 Fri Jul 18 17:08:41 2014
@@ -26,6 +26,11 @@
                <property name="stopPort">-1</property>
                <property name="ajpPort">-1</property>
                <property name="dir">target/apache-tomee-remote</property>
+               <property name="additionalLibs">
+                 mvn:org.apache.sirona:sirona-core:0.2-incubating
+                 mvn:org.apache.sirona:sirona-aop:0.2-incubating
+                 mvn:org.apache.sirona:sirona-web:0.2-incubating
+               </property>
                <property 
name="appWorkingDir">target/arquillian-test-working-dir</property>
                <property name="properties">
                   openejb.classloader.forced-load=org.apache.openejb


Reply via email to