[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