[jboss-svn-commits] JBoss Common SVN: r4010 - in arquillian/trunk: build and 17 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Feb 9 06:51:12 EST 2010


Author: aslak
Date: 2010-02-09 06:51:10 -0500 (Tue, 09 Feb 2010)
New Revision: 4010

Added:
   arquillian/trunk/container-glassfish-embedded/
   arquillian/trunk/container-glassfish-embedded/pom.xml
   arquillian/trunk/container-glassfish-embedded/src/
   arquillian/trunk/container-glassfish-embedded/src/main/
   arquillian/trunk/container-glassfish-embedded/src/main/java/
   arquillian/trunk/container-glassfish-embedded/src/main/java/org/
   arquillian/trunk/container-glassfish-embedded/src/main/java/org/jboss/
   arquillian/trunk/container-glassfish-embedded/src/main/java/org/jboss/arquillian/
   arquillian/trunk/container-glassfish-embedded/src/main/java/org/jboss/arquillian/glassfish/
   arquillian/trunk/container-glassfish-embedded/src/main/java/org/jboss/arquillian/glassfish/GlassFishEmbeddedContainer.java
   arquillian/trunk/container-glassfish-embedded/src/main/resources/
   arquillian/trunk/container-glassfish-embedded/src/main/resources/META-INF/
   arquillian/trunk/container-glassfish-embedded/src/main/resources/META-INF/services/
   arquillian/trunk/container-glassfish-embedded/src/main/resources/META-INF/services/org.jboss.arquillian.spi.DeployableContainer
   arquillian/trunk/container-glassfish-embedded/src/test/
   arquillian/trunk/container-glassfish-embedded/src/test/java/
   arquillian/trunk/container-glassfish-embedded/src/test/resources/
Modified:
   arquillian/trunk/build/pom.xml
   arquillian/trunk/demo-testng/pom.xml
   arquillian/trunk/demo/pom.xml
   arquillian/trunk/junit/src/main/java/org/jboss/arquillian/junit/Arquillian.java
   arquillian/trunk/pom.xml
   arquillian/trunk/protocol-servlet/pom.xml
   arquillian/trunk/testenricher-jboss/src/main/java/org/jboss/arquillian/testenricher/jboss/EJBInjectionEnricher.java
Log:
ARQ-62 Added Glassfish Embedded container + demo profiles


Modified: arquillian/trunk/build/pom.xml
===================================================================
--- arquillian/trunk/build/pom.xml	2010-02-09 07:51:12 UTC (rev 4009)
+++ arquillian/trunk/build/pom.xml	2010-02-09 11:51:10 UTC (rev 4010)
@@ -31,7 +31,7 @@
 		<version.testng_testng>5.10</version.testng_testng>
 		<version.shrinkwrap_shrinkwrap>1.0.0-alpha-5</version.shrinkwrap_shrinkwrap>
 		<version.jboss_embedded>1.0.0-alpha-1</version.jboss_embedded>
-		<version.servlet_api>2.5</version.servlet_api>
+		<version.javaee_api>6.0</version.javaee_api>
 		<version.jetty_jetty>6.1.9</version.jetty_jetty>
 
 	</properties>
@@ -219,6 +219,11 @@
 				<version>${version.shrinkwrap_shrinkwrap}</version>
 			</dependency>
 			<dependency>
+				<groupId>org.jboss.shrinkwrap</groupId>
+				<artifactId>shrinkwrap-extension-glassfish</artifactId>
+				<version>${version.shrinkwrap_shrinkwrap}</version>
+			</dependency>
+			<dependency>
 				<groupId>org.jboss.embedded</groupId>
 				<artifactId>jboss-embedded-assembly</artifactId>
 				<classifier>launcher</classifier>
@@ -226,9 +231,9 @@
 				<version>${version.jboss_embedded}</version>
 			</dependency>
 			<dependency>
-				<groupId>javax.servlet</groupId>
-				<artifactId>servlet-api</artifactId>
-				<version>${version.servlet_api}</version>
+				<groupId>javax</groupId>
+				<artifactId>javaee-api</artifactId>
+				<version>${version.javaee_api}</version>
 			</dependency>
 			<dependency>
 				<groupId>junit</groupId>


Property changes on: arquillian/trunk/container-glassfish-embedded
___________________________________________________________________
Name: svn:ignore
   + .classpath
.project
.settings
target


Added: arquillian/trunk/container-glassfish-embedded/pom.xml
===================================================================
--- arquillian/trunk/container-glassfish-embedded/pom.xml	                        (rev 0)
+++ arquillian/trunk/container-glassfish-embedded/pom.xml	2010-02-09 11:51:10 UTC (rev 4010)
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+   <!-- Parent -->
+   <parent>
+      <groupId>org.jboss.arquillian</groupId>
+      <artifactId>arquillian-build</artifactId>
+      <version>1.0.0-SNAPSHOT</version>
+      <relativePath>../build/pom.xml</relativePath>
+   </parent>
+
+   <!-- Model Version -->
+   <modelVersion>4.0.0</modelVersion>
+
+   <!-- Artifact Configuration -->
+   <artifactId>arquillian-glassfish-embedded</artifactId>
+   <name>Arquillian Container Glassfish Embedded</name>
+   <description>Glassfish Embedded Container integration for the Arquillian Project</description>
+
+
+   <!-- Properties -->
+   <properties>
+
+      <!-- Versioning -->
+      <version.glassfish>3.0.1-b02</version.glassfish>
+
+   </properties>
+
+   <!-- Dependencies -->
+   <dependencies>
+
+      <!-- 
+    org.jboss.arquillian
+     -->
+      <dependency>
+         <groupId>org.jboss.arquillian</groupId>
+         <artifactId>arquillian-spi</artifactId>
+         <version>${project.version}</version>
+      </dependency>
+
+      <dependency>
+         <groupId>org.jboss.shrinkwrap</groupId>
+         <artifactId>shrinkwrap-impl-base</artifactId>
+      </dependency>
+
+      <dependency>
+         <groupId>org.jboss.shrinkwrap</groupId>
+         <artifactId>shrinkwrap-extension-glassfish</artifactId>
+      </dependency>
+
+      <dependency>
+         <groupId>org.jboss.arquillian</groupId>
+         <artifactId>arquillian-protocol-servlet</artifactId>
+         <version>${project.version}</version>
+         <exclusions>
+            <exclusion>
+               <groupId>javax.servlet</groupId>
+               <artifactId>servlet-api</artifactId>
+            </exclusion>
+            <exclusion>
+               <groupId>javax</groupId>
+               <artifactId>javaee-api</artifactId>
+            </exclusion>
+         </exclusions>
+      </dependency>
+
+      <dependency>
+         <groupId>org.jboss.arquillian</groupId>
+         <artifactId>arquillian-jboss-testenricher</artifactId>
+         <version>${project.version}</version>
+      </dependency>
+
+      <!-- 
+    org.glassfish.embedded
+     -->
+      <dependency>
+         <groupId>org.glassfish.extras</groupId>
+         <artifactId>glassfish-embedded-all</artifactId>
+         <version>${version.glassfish}</version>
+      </dependency>
+
+   </dependencies>
+</project>
+

Added: arquillian/trunk/container-glassfish-embedded/src/main/java/org/jboss/arquillian/glassfish/GlassFishEmbeddedContainer.java
===================================================================
--- arquillian/trunk/container-glassfish-embedded/src/main/java/org/jboss/arquillian/glassfish/GlassFishEmbeddedContainer.java	                        (rev 0)
+++ arquillian/trunk/container-glassfish-embedded/src/main/java/org/jboss/arquillian/glassfish/GlassFishEmbeddedContainer.java	2010-02-09 11:51:10 UTC (rev 4010)
@@ -0,0 +1,142 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2009, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed 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.jboss.arquillian.glassfish;
+
+import java.net.URL;
+
+import org.glassfish.api.deployment.DeployCommandParameters;
+import org.glassfish.api.deployment.UndeployCommandParameters;
+import org.glassfish.api.embedded.ContainerBuilder;
+import org.glassfish.api.embedded.EmbeddedContainer;
+import org.glassfish.api.embedded.EmbeddedFileSystem;
+import org.glassfish.api.embedded.Server;
+import org.jboss.arquillian.protocol.servlet.ServletMethodExecutor;
+import org.jboss.arquillian.spi.ContainerMethodExecutor;
+import org.jboss.arquillian.spi.DeployableContainer;
+import org.jboss.arquillian.spi.DeploymentException;
+import org.jboss.arquillian.spi.LifecycleException;
+import org.jboss.shrinkwrap.api.Archive;
+import org.jboss.shrinkwrap.glassfish.api.ShrinkwrapReadableArchive;
+
+/**
+ * GlassFishEmbeddedContainer
+ *
+ * @author <a href="mailto:aslak at conduct.no">Aslak Knutsen</a>
+ * @version $Revision: $
+ */
+public class GlassFishEmbeddedContainer implements DeployableContainer
+{
+   private String target = "server";
+   private Server server;
+   private int port = 8080;
+   
+   public GlassFishEmbeddedContainer()
+   {
+      final Server.Builder builder = new Server.Builder(GlassFishEmbeddedContainer.class.getName());
+
+      final EmbeddedFileSystem.Builder embeddedFsBuilder = new EmbeddedFileSystem.Builder();
+      final EmbeddedFileSystem embeddedFs = embeddedFsBuilder.build();
+      builder.embeddedFileSystem(embeddedFs);
+      
+      server = builder.build();
+      
+      //final ContainerBuilder<EmbeddedContainer> containerBuilder = server.createConfig(ContainerBuilder.Type.all);
+      server.addContainer(ContainerBuilder.Type.all);
+   }
+   
+   @Override
+   public void start() throws LifecycleException
+   {
+      try 
+      {
+         for(EmbeddedContainer contianer : server.getContainers()) {
+            contianer.bind(server.createPort(port), "http");
+            contianer.start();
+         }
+      } 
+      catch (Exception e) 
+      {
+         throw new LifecycleException("Could not start container", e);
+      }
+   }
+
+   @Override
+   public void stop() throws LifecycleException
+   {
+      try 
+      {
+         server.stop();
+      } 
+      catch (Exception e) 
+      {
+         throw new LifecycleException("Could not stop container", e);
+      }
+   }
+
+   @Override
+   public ContainerMethodExecutor deploy(Archive<?> archive) throws DeploymentException
+   {
+      try 
+      {
+         DeployCommandParameters params = new DeployCommandParameters();
+         params.enabled = true;
+         params.target = target;
+         params.name = archive.getName();
+
+         server.getDeployer().deploy(
+               archive.as(ShrinkwrapReadableArchive.class),
+               params);
+         
+      } 
+      catch (Exception e) 
+      {
+         throw new DeploymentException("Could not deploy " + archive.getName(), e);
+      }
+
+      try 
+      {
+         return new ServletMethodExecutor(
+               new URL(
+                     "http",
+                     "localhost",
+                     port, 
+                     "/")
+               );
+      } 
+      catch (Exception e) 
+      {
+         throw new RuntimeException("Could not create ContianerMethodExecutor", e);
+      }
+   }
+
+   @Override
+   public void undeploy(Archive<?> archive) throws DeploymentException
+   {
+      UndeployCommandParameters params = new UndeployCommandParameters();
+      params.target = target;
+      params.name = archive.getName();
+      
+      try 
+      {
+         server.getDeployer().undeploy(archive.getName(), params);
+      }
+      catch (Exception e) 
+      {
+         throw new DeploymentException("Could not undeploy " + archive.getName(), e);
+      }
+   }
+}

Added: arquillian/trunk/container-glassfish-embedded/src/main/resources/META-INF/services/org.jboss.arquillian.spi.DeployableContainer
===================================================================
--- arquillian/trunk/container-glassfish-embedded/src/main/resources/META-INF/services/org.jboss.arquillian.spi.DeployableContainer	                        (rev 0)
+++ arquillian/trunk/container-glassfish-embedded/src/main/resources/META-INF/services/org.jboss.arquillian.spi.DeployableContainer	2010-02-09 11:51:10 UTC (rev 4010)
@@ -0,0 +1 @@
+org.jboss.arquillian.glassfish.GlassFishEmbeddedContainer
\ No newline at end of file

Modified: arquillian/trunk/demo/pom.xml
===================================================================
--- arquillian/trunk/demo/pom.xml	2010-02-09 07:51:12 UTC (rev 4009)
+++ arquillian/trunk/demo/pom.xml	2010-02-09 11:51:10 UTC (rev 4010)
@@ -24,22 +24,39 @@
       <!-- Versioning -->
 
    </properties>
-   
+
    <build>
-     <plugins>
-       <!-- Surefire -->
-       <plugin>
-         <artifactId>maven-surefire-plugin</artifactId>
-         <configuration>
-           <!-- ARQ-60 -->
-           <skip>true</skip>
-         </configuration>
-       </plugin>
-     </plugins>
+      <plugins>
+         <!-- Surefire -->
+         <plugin>
+            <artifactId>maven-surefire-plugin</artifactId>
+            <configuration>
+               <!-- ARQ-60 -->
+               <skip>false</skip>
+            </configuration>
+         </plugin>
+      </plugins>
    </build>
 
    <profiles>
       <profile>
+         <!-- 
+            Added a default profile used during compiling. 
+            The JavaEE API jar can not be on classpath during test execution.
+          -->
+         <id>default</id>
+         <activation>
+            <activeByDefault>true</activeByDefault>
+         </activation>
+         <dependencies>
+            <dependency>
+               <groupId>javax</groupId>
+               <artifactId>javaee-api</artifactId>
+               <scope>provided</scope>
+            </dependency>
+         </dependencies>
+      </profile>
+      <profile>
          <id>weld-se</id>
          <dependencies>
             <dependency>
@@ -79,45 +96,22 @@
             </dependency>
          </dependencies>
       </profile>
+      <profile>
+         <id>glassfish-embedded</id>
+         <dependencies>
+            <dependency>
+               <groupId>org.jboss.arquillian</groupId>
+               <artifactId>arquillian-glassfish-embedded</artifactId>
+               <version>${project.version}</version>
+            </dependency>
+         </dependencies>
+      </profile>
    </profiles>
 
    <!-- Dependencies -->
    <dependencies>
 
-<!--  
       <dependency>
-         <groupId>javax.ejb</groupId>
-         <artifactId>ejb-api</artifactId>
-         <version>3.0</version>
-         <scope>provided</scope>
-      </dependency>
--->
-      <dependency>
-         <groupId>org.jboss.ejb3</groupId>
-         <artifactId>jboss-ejb3-api</artifactId>
-         <version>3.1.0</version>
-         <scope>provided</scope>
-      </dependency>
-      <dependency>
-         <groupId>javax.enterprise</groupId> 
-         <artifactId>cdi-api</artifactId>
-         <version>1.0</version>
-         <scope>provided</scope>       
-      </dependency>
-      <dependency>
-         <groupId>javax.mail</groupId> 
-         <artifactId>mail</artifactId>
-         <version>1.4.1</version>
-         <scope>provided</scope>       
-      </dependency>
-      <dependency>
-         <groupId>javax.jms</groupId> 
-         <artifactId>jms</artifactId>
-         <version>1.1</version>
-         <scope>provided</scope>       
-      </dependency>
-
-      <dependency>
          <groupId>org.jboss.arquillian</groupId>
          <artifactId>arquillian-junit</artifactId>
          <version>${project.version}</version>

Modified: arquillian/trunk/demo-testng/pom.xml
===================================================================
--- arquillian/trunk/demo-testng/pom.xml	2010-02-09 07:51:12 UTC (rev 4009)
+++ arquillian/trunk/demo-testng/pom.xml	2010-02-09 11:51:10 UTC (rev 4010)
@@ -40,6 +40,23 @@
 
    <profiles>
       <profile>
+         <!-- 
+            Added a default profile used during compiling. 
+            The JavaEE API jar can not be on classpath during test execution.
+          -->
+         <id>default</id>
+         <activation>
+            <activeByDefault>true</activeByDefault>
+         </activation>
+         <dependencies>
+            <dependency>
+               <groupId>javax</groupId>
+               <artifactId>javaee-api</artifactId>
+               <scope>provided</scope>
+            </dependency>
+         </dependencies>
+      </profile>
+      <profile>
          <id>weld-se</id>
          <dependencies>
             <dependency>
@@ -90,42 +107,22 @@
             </dependency>
          </dependencies>
       </profile>
+      <profile>
+         <id>glassfish-embedded</id>
+         <dependencies>
+            <dependency>
+               <groupId>org.jboss.arquillian</groupId>
+               <artifactId>arquillian-glassfish-embedded</artifactId>
+               <version>${project.version}</version>
+            </dependency>
+         </dependencies>
+      </profile>
    </profiles>
 
    <!-- Dependencies -->
    <dependencies>
 
       <dependency>
-         <groupId>javax.ejb</groupId>
-         <artifactId>ejb-api</artifactId>
-         <version>3.0</version>
-         <scope>provided</scope>
-      </dependency>
-      <dependency>
-         <groupId>javax.enterprise</groupId> 
-         <artifactId>cdi-api</artifactId>
-         <version>1.0</version>
-         <scope>provided</scope>       
-      </dependency>
-      <dependency>
-         <groupId>javax.mail</groupId> 
-         <artifactId>mail</artifactId>
-         <version>1.4.1</version>
-         <scope>provided</scope>       
-      </dependency>
-      <dependency>
-         <groupId>javax.jms</groupId> 
-         <artifactId>jms</artifactId>
-         <version>1.1</version>
-         <scope>provided</scope>       
-      </dependency>
-      <dependency>
-         <groupId>javax.persistence</groupId> 
-         <artifactId>persistence-api</artifactId> 
-         <version>1.0</version>
-         <scope>provided</scope>       
-      </dependency>
-      <dependency>
          <groupId>org.jboss.arquillian</groupId>
          <artifactId>arquillian-testng</artifactId>
          <version>${project.version}</version>

Modified: arquillian/trunk/junit/src/main/java/org/jboss/arquillian/junit/Arquillian.java
===================================================================
--- arquillian/trunk/junit/src/main/java/org/jboss/arquillian/junit/Arquillian.java	2010-02-09 07:51:12 UTC (rev 4009)
+++ arquillian/trunk/junit/src/main/java/org/jboss/arquillian/junit/Arquillian.java	2010-02-09 11:51:10 UTC (rev 4010)
@@ -39,7 +39,7 @@
  */
 public class Arquillian extends BlockJUnit4ClassRunner
 {
-   private static DeployableTest deployableTest;
+   private static ThreadLocal<DeployableTest> deployableTest = new ThreadLocal<DeployableTest>();
    
    private Archive<?> archive = null;
    private ContainerMethodExecutor methodExecutor;
@@ -47,12 +47,12 @@
    public Arquillian(Class<?> klass) throws InitializationError
    {
       super(klass);
-      if(deployableTest == null) 
+      if(deployableTest.get() == null) 
       {
-         deployableTest = DeployableTestBuilder.build(null);
+         deployableTest.set(DeployableTestBuilder.build(null));
          try 
          {
-            deployableTest.getContainerController().start();
+            deployableTest.get().getContainerController().start();
          } 
          catch (Exception e) 
          {
@@ -64,7 +64,10 @@
             {
                try  
                {
-                  deployableTest.getContainerController().stop();
+                  if(deployableTest.get() != null) 
+                  {
+                     deployableTest.get().getContainerController().stop();
+                  }
                } 
                catch (Exception e) 
                {
@@ -91,10 +94,10 @@
          @Override
          public void evaluate() throws Throwable
          {
-            archive = deployableTest.generateArchive(
+            archive = deployableTest.get().generateArchive(
                   Arquillian.this.getTestClass().getJavaClass());
 
-            methodExecutor = deployableTest.getDeployer().deploy(archive);
+            methodExecutor = deployableTest.get().getDeployer().deploy(archive);
             originalStatement.evaluate();
          }
       };
@@ -110,7 +113,7 @@
          public void evaluate() throws Throwable
          {
             originalStatement.evaluate();
-            deployableTest.getDeployer().undeploy(archive);
+            deployableTest.get().getDeployer().undeploy(archive);
          }
       };
    }

Modified: arquillian/trunk/pom.xml
===================================================================
--- arquillian/trunk/pom.xml	2010-02-09 07:51:12 UTC (rev 4009)
+++ arquillian/trunk/pom.xml	2010-02-09 11:51:10 UTC (rev 4010)
@@ -64,6 +64,7 @@
     <module>container-jboss-remote-60</module>
     <module>testenricher-jboss</module>
 
+    <module>container-glassfish-embedded</module>
     <module>container-weld-embedded</module>
 
     <!-- Demo / Test Suite -->

Modified: arquillian/trunk/protocol-servlet/pom.xml
===================================================================
--- arquillian/trunk/protocol-servlet/pom.xml	2010-02-09 07:51:12 UTC (rev 4009)
+++ arquillian/trunk/protocol-servlet/pom.xml	2010-02-09 11:51:10 UTC (rev 4010)
@@ -26,6 +26,26 @@
 
    </properties>
 
+   <profiles>
+      <profile>
+         <!-- 
+            Added a default profile used during compiling. 
+            The JavaEE API jar can not be on classpath during test execution.
+          -->
+         <id>default</id>
+         <activation>
+            <activeByDefault>true</activeByDefault>
+         </activation>
+         <dependencies>
+            <dependency>
+               <groupId>javax</groupId>
+               <artifactId>javaee-api</artifactId>
+               <scope>provided</scope>
+            </dependency>
+         </dependencies>
+      </profile>
+   </profiles>
+   
    <!-- Dependencies -->
    <dependencies>
 
@@ -41,10 +61,6 @@
       <!-- 
     servlet api
      -->
-      <dependency>
-         <groupId>javax.servlet</groupId>
-         <artifactId>servlet-api</artifactId>
-      </dependency>
 
       <dependency>
          <groupId>junit</groupId>

Modified: arquillian/trunk/testenricher-jboss/src/main/java/org/jboss/arquillian/testenricher/jboss/EJBInjectionEnricher.java
===================================================================
--- arquillian/trunk/testenricher-jboss/src/main/java/org/jboss/arquillian/testenricher/jboss/EJBInjectionEnricher.java	2010-02-09 07:51:12 UTC (rev 4009)
+++ arquillian/trunk/testenricher-jboss/src/main/java/org/jboss/arquillian/testenricher/jboss/EJBInjectionEnricher.java	2010-02-09 11:51:10 UTC (rev 4010)
@@ -76,11 +76,18 @@
       InitialContext context = new InitialContext();
       try 
       {
-    	  return context.lookup("test/" + field.getType().getSimpleName() + "Bean/local");
+         return context.lookup("java:global/test.ear/test/" + field.getType().getSimpleName() + "Bean");
       } 
       catch (NamingException e) 
       {
-    	  return context.lookup("test/" + field.getType().getSimpleName() + "Bean/remote");
+    	  try 
+    	  {
+    	     return context.lookup("test/" + field.getType().getSimpleName() + "Bean/local");
+    	  } 
+    	  catch (NamingException e2) 
+    	  {
+    	     return context.lookup("test/" + field.getType().getSimpleName() + "Bean/remote");    	    
+    	  }
       }
    }
 }



More information about the jboss-svn-commits mailing list