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