[jboss-svn-commits] JBoss Common SVN: r4596 - in arquillian/trunk/containers/jbossas-local-51: src/main/java/org/jboss/arquillian and 12 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Jun 29 08:52:56 EDT 2010
Author: aslak
Date: 2010-06-29 08:52:55 -0400 (Tue, 29 Jun 2010)
New Revision: 4596
Added:
arquillian/trunk/containers/jbossas-local-51/src/main/java/org/jboss/arquillian/container/
arquillian/trunk/containers/jbossas-local-51/src/main/java/org/jboss/arquillian/container/jbossas/
arquillian/trunk/containers/jbossas-local-51/src/main/java/org/jboss/arquillian/container/jbossas/managed_5_1/
arquillian/trunk/containers/jbossas-local-51/src/main/java/org/jboss/arquillian/container/jbossas/managed_5_1/JBossASConfiguration.java
arquillian/trunk/containers/jbossas-local-51/src/main/java/org/jboss/arquillian/container/jbossas/managed_5_1/JBossASDeploymentAppender.java
arquillian/trunk/containers/jbossas-local-51/src/main/java/org/jboss/arquillian/container/jbossas/managed_5_1/JBossASLocalContainer.java
arquillian/trunk/containers/jbossas-local-51/src/main/java/org/jboss/arquillian/container/jbossas/managed_5_1/utils/
arquillian/trunk/containers/jbossas-local-51/src/test/java/org/jboss/arquillian/container/
arquillian/trunk/containers/jbossas-local-51/src/test/java/org/jboss/arquillian/container/jbossas/
arquillian/trunk/containers/jbossas-local-51/src/test/java/org/jboss/arquillian/container/jbossas/managed_5_1/
arquillian/trunk/containers/jbossas-local-51/src/test/java/org/jboss/arquillian/container/jbossas/managed_5_1/JBossASIntegrationTestCase.java
arquillian/trunk/containers/jbossas-local-51/src/test/java/org/jboss/arquillian/container/jbossas/managed_5_1/ejb/
Removed:
arquillian/trunk/containers/jbossas-local-51/src/main/java/org/jboss/arquillian/jbossas/local51/JBossASConfiguration.java
arquillian/trunk/containers/jbossas-local-51/src/main/java/org/jboss/arquillian/jbossas/local51/JBossASDeploymentAppender.java
arquillian/trunk/containers/jbossas-local-51/src/main/java/org/jboss/arquillian/jbossas/local51/JBossASLocalContainer.java
arquillian/trunk/containers/jbossas-local-51/src/main/java/org/jboss/arquillian/jbossas/local51/utils/
arquillian/trunk/containers/jbossas-local-51/src/test/java/org/jboss/arquillian/jbossas/local51/JBossASIntegrationTestCase.java
arquillian/trunk/containers/jbossas-local-51/src/test/java/org/jboss/arquillian/jbossas/local51/ejb/
Modified:
arquillian/trunk/containers/jbossas-local-51/pom.xml
arquillian/trunk/containers/jbossas-local-51/src/main/java/org/jboss/arquillian/container/jbossas/managed_5_1/utils/AsLifecycleDelegate.java
arquillian/trunk/containers/jbossas-local-51/src/main/resources/META-INF/services/org.jboss.arquillian.spi.AuxiliaryArchiveAppender
arquillian/trunk/containers/jbossas-local-51/src/main/resources/META-INF/services/org.jboss.arquillian.spi.ContainerConfiguration
arquillian/trunk/containers/jbossas-local-51/src/main/resources/META-INF/services/org.jboss.arquillian.spi.DeployableContainer
arquillian/trunk/containers/jbossas-local-51/src/test/java/org/jboss/arquillian/container/jbossas/managed_5_1/ejb/MyEjb.java
arquillian/trunk/containers/jbossas-local-51/src/test/java/org/jboss/arquillian/container/jbossas/managed_5_1/ejb/MyEjbBean.java
Log:
ARQ-200 ARQ-174 ARQ-202 Renamed JBoss AS 5.1 Managed Container package
Modified: arquillian/trunk/containers/jbossas-local-51/pom.xml
===================================================================
--- arquillian/trunk/containers/jbossas-local-51/pom.xml 2010-06-29 12:15:27 UTC (rev 4595)
+++ arquillian/trunk/containers/jbossas-local-51/pom.xml 2010-06-29 12:52:55 UTC (rev 4596)
@@ -15,9 +15,9 @@
<!-- Artifact Configuration -->
<groupId>org.jboss.arquillian.container</groupId>
- <artifactId>arquillian-jbossas-local-51</artifactId>
- <name>Arquillian Container JBoss AS Local 5.1</name>
- <description>JBoss AS 5.1 Local Container integration for the Arquillian Project</description>
+ <artifactId>arquillian-jbossas-managed-5.1</artifactId>
+ <name>Arquillian Container JBoss AS Managed 5.1.x</name>
+ <description>JBoss AS 5.1.x Managed Container integration for the Arquillian Project</description>
<!-- Properties -->
Copied: arquillian/trunk/containers/jbossas-local-51/src/main/java/org/jboss/arquillian/container/jbossas/managed_5_1/JBossASConfiguration.java (from rev 4586, arquillian/trunk/containers/jbossas-local-51/src/main/java/org/jboss/arquillian/jbossas/local51/JBossASConfiguration.java)
===================================================================
--- arquillian/trunk/containers/jbossas-local-51/src/main/java/org/jboss/arquillian/container/jbossas/managed_5_1/JBossASConfiguration.java (rev 0)
+++ arquillian/trunk/containers/jbossas-local-51/src/main/java/org/jboss/arquillian/container/jbossas/managed_5_1/JBossASConfiguration.java 2010-06-29 12:52:55 UTC (rev 4596)
@@ -0,0 +1,101 @@
+/*
+ * 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.container.jbossas.managed_5_1;
+
+import java.io.File;
+
+import org.jboss.arquillian.spi.ContainerConfiguration;
+import org.jboss.arquillian.spi.ContainerProfile;
+
+/**
+ * A {@link org.jboss.arquillian.spi.ContainerConfiguration} implementation for
+ * the JBoss AS container.
+ *
+ * @author <a href="mailto:german.escobarc at gmail.com">German Escobar</a>
+ * @version $Revision: $
+ */
+public class JBossASConfiguration implements ContainerConfiguration
+{
+ private String bindAddress = "localhost";
+
+ private int httpPort = 8080;
+
+ private String profileName = "default";
+
+ private String jbossHome = null;
+
+ private String javaHome = null;
+
+ public ContainerProfile getContainerProfile()
+ {
+ return ContainerProfile.CLIENT;
+ }
+
+ public String getBindAddress()
+ {
+ return bindAddress;
+ }
+
+ public void setBindAddress(String bindAddress)
+ {
+ this.bindAddress = bindAddress;
+ }
+
+ public int getHttpPort()
+ {
+ return httpPort;
+ }
+
+ public void setHttpPort(int httpPort)
+ {
+ this.httpPort = httpPort;
+ }
+
+ public String getProfileName()
+ {
+ return profileName;
+ }
+
+ public void setProfileName(String profileName)
+ {
+ this.profileName = profileName;
+ }
+
+ public void setJbossHome(String jbossHome)
+ {
+ this.jbossHome = jbossHome;
+ }
+
+ public String getJbossHome()
+ {
+ if(jbossHome != null)
+ {
+ return new File(jbossHome).getAbsolutePath();
+ }
+ return jbossHome;
+ }
+
+ public void setJavaHome(String javaHome)
+ {
+ this.javaHome = javaHome;
+ }
+
+ public String getJavaHome()
+ {
+ return javaHome;
+ }
+}
Copied: arquillian/trunk/containers/jbossas-local-51/src/main/java/org/jboss/arquillian/container/jbossas/managed_5_1/JBossASDeploymentAppender.java (from rev 4586, arquillian/trunk/containers/jbossas-local-51/src/main/java/org/jboss/arquillian/jbossas/local51/JBossASDeploymentAppender.java)
===================================================================
--- arquillian/trunk/containers/jbossas-local-51/src/main/java/org/jboss/arquillian/container/jbossas/managed_5_1/JBossASDeploymentAppender.java (rev 0)
+++ arquillian/trunk/containers/jbossas-local-51/src/main/java/org/jboss/arquillian/container/jbossas/managed_5_1/JBossASDeploymentAppender.java 2010-06-29 12:52:55 UTC (rev 4596)
@@ -0,0 +1,53 @@
+/*
+ * 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.container.jbossas.managed_5_1;
+
+import org.jboss.arquillian.spi.AuxiliaryArchiveAppender;
+import org.jboss.arquillian.spi.TestEnricher;
+import org.jboss.arquillian.testenricher.ejb.EJBInjectionEnricher;
+import org.jboss.arquillian.testenricher.resource.ResourceInjectionEnricher;
+import org.jboss.shrinkwrap.api.Archive;
+import org.jboss.shrinkwrap.api.ShrinkWrap;
+import org.jboss.shrinkwrap.api.spec.JavaArchive;
+
+/**
+ * EmbeddedDeploymentAppender
+ *
+ * Package the required dependencies needed by the Jboss Embedded Container plugin
+ * to run in container.
+ *
+ * @author <a href="mailto:aslak at conduct.no">Aslak Knutsen</a>
+ * @version $Revision: $
+ */
+public class JBossASDeploymentAppender implements AuxiliaryArchiveAppender
+{
+
+ public Archive<?> createAuxiliaryArchive()
+ {
+ JavaArchive archive = ShrinkWrap.create("arquillian-jboss-testenrichers.jar", JavaArchive.class)
+ .addPackages(
+ true,
+ EJBInjectionEnricher.class.getPackage(),
+ ResourceInjectionEnricher.class.getPackage())
+ .addServiceProvider(
+ TestEnricher.class,
+ EJBInjectionEnricher.class,
+ ResourceInjectionEnricher.class);
+ return archive;
+ }
+
+}
Copied: arquillian/trunk/containers/jbossas-local-51/src/main/java/org/jboss/arquillian/container/jbossas/managed_5_1/JBossASLocalContainer.java (from rev 4586, arquillian/trunk/containers/jbossas-local-51/src/main/java/org/jboss/arquillian/jbossas/local51/JBossASLocalContainer.java)
===================================================================
--- arquillian/trunk/containers/jbossas-local-51/src/main/java/org/jboss/arquillian/container/jbossas/managed_5_1/JBossASLocalContainer.java (rev 0)
+++ arquillian/trunk/containers/jbossas-local-51/src/main/java/org/jboss/arquillian/container/jbossas/managed_5_1/JBossASLocalContainer.java 2010-06-29 12:52:55 UTC (rev 4596)
@@ -0,0 +1,358 @@
+/*
+ * 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.container.jbossas.managed_5_1;
+
+import java.io.File;
+import java.io.IOException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.jboss.arquillian.container.jbossas.managed_5_1.utils.AsLifecycleDelegate;
+import org.jboss.arquillian.protocol.servlet.ServletMethodExecutor;
+import org.jboss.arquillian.spi.Configuration;
+import org.jboss.arquillian.spi.ContainerMethodExecutor;
+import org.jboss.arquillian.spi.Context;
+import org.jboss.arquillian.spi.DeployableContainer;
+import org.jboss.arquillian.spi.DeploymentException;
+import org.jboss.arquillian.spi.LifecycleException;
+import org.jboss.jbossas.servermanager.Server;
+import org.jboss.jbossas.servermanager.ServerController;
+import org.jboss.jbossas.servermanager.ServerManager;
+import org.jboss.logging.Logger;
+import org.jboss.shrinkwrap.api.Archive;
+import org.jboss.shrinkwrap.api.exporter.ZipExporter;
+
+/**
+ * JbossLocalContainer
+ *
+ * @author <a href="mailto:aamonten at gmail.com">Alejandro Montenegro</a>
+ * @version $Revision: $
+ */
+public class JBossASLocalContainer implements DeployableContainer
+{
+ private static Logger log = Logger.getLogger(JBossASLocalContainer.class);
+
+ private static AsLifecycleDelegate delegate;
+
+ protected Server server;
+
+ protected ServerManager manager;
+
+ private boolean wasStarted;
+
+ private final List<String> failedUndeployments = new ArrayList<String>();
+
+ private boolean forceRestart = false;
+
+ private int shutdownDelay = 15000;
+
+ private int bootTimeout = 240000;
+
+ private String host = "localhost";
+
+ private String profile = "default";
+
+ private int port = 8181;
+
+ private JBossASConfiguration configuration;
+
+ public JBossASLocalContainer()
+ {
+
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.arquillian.spi.DeployableContainer#setup(org.jboss.arquillian.spi.Context, org.jboss.arquillian.spi.Configuration)
+ */
+ public void setup(Context context, Configuration configuration)
+ {
+ this.configuration = configuration.getContainerConfig(JBossASConfiguration.class);
+ host = this.configuration.getBindAddress();
+ profile = this.configuration.getProfileName();
+ port = this.configuration.getHttpPort();
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.arquillian.spi.DeployableContainer#start(org.jboss.arquillian.spi.Context)
+ */
+ public void start(Context context) throws LifecycleException
+ {
+
+ try
+ {
+ startServerManager();
+ restartServer();
+ }
+ catch (IOException e)
+ {
+ throw new LifecycleException("Could not start local container", e);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.arquillian.spi.DeployableContainer#stop(org.jboss.arquillian.spi.Context)
+ */
+ public void stop(Context context) throws LifecycleException
+ {
+ try
+ {
+ removeFailedUnDeployments();
+ }
+ catch (Exception e)
+ {
+ throw new LifecycleException("Could not clean up", e);
+ }
+ if (wasStarted)
+ {
+ stopServer();
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.arquillian.spi.DeployableContainer#deploy(org.jboss.arquillian.spi.Context, org.jboss.shrinkwrap.api.Archive)
+ */
+ public ContainerMethodExecutor deploy(Context context, final Archive<?> archive) throws DeploymentException
+ {
+ if (archive == null)
+ {
+ throw new IllegalArgumentException("Archive must be specified");
+ }
+ if (manager == null || server == null)
+ {
+ throw new IllegalStateException("start has not been called!");
+ }
+ final String deploymentName = archive.getName();
+
+ File file = new File(deploymentName);
+ archive.as(ZipExporter.class).exportZip(file, true);
+
+ Exception failure = null;
+ try
+ {
+ server.deploy(file);
+ }
+ catch (Exception e)
+ {
+ throw new DeploymentException("Could not deploy " + deploymentName, e);
+ }
+ if (failure != null)
+ {
+ throw new DeploymentException("Failed to deploy " + deploymentName, failure);
+ }
+ try
+ {
+ return new ServletMethodExecutor(new URL(server.getHttpUrl().toExternalForm() + "/"));
+ }
+ catch (Exception e)
+ {
+ throw new RuntimeException("Could not create ContainerMethodExecutor", e);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.arquillian.spi.DeployableContainer#undeploy(org.jboss.arquillian.spi.Context, org.jboss.shrinkwrap.api.Archive)
+ */
+ public void undeploy(Context context, Archive<?> archive) throws DeploymentException
+ {
+ if (archive == null)
+ {
+ throw new IllegalArgumentException("Archive must be specified");
+ }
+ File file = new File(archive.getName());
+ archive.as(ZipExporter.class).exportZip(file, true);
+ undeploy(file);
+ }
+
+ private void undeploy(File file) throws DeploymentException
+ {
+ try
+ {
+ server.undeploy(file);
+ }
+ catch (Exception e)
+ {
+ failedUndeployments.add(file.getName());
+ throw new DeploymentException("Could not undeploy " + file.getName(), e);
+ }
+ finally
+ {
+ file.delete();
+ }
+ }
+
+ private void removeFailedUnDeployments() throws IOException
+ {
+ List<String> remainingDeployments = new ArrayList<String>();
+ for (String name : failedUndeployments)
+ {
+
+ try
+ {
+ server.undeploy(new File(name));
+
+ }
+ catch (Exception e)
+ {
+ IOException ioe = new IOException();
+ ioe.initCause(e);
+ throw ioe;
+ }
+ }
+ if (remainingDeployments.size() > 0)
+ {
+ log.error("Failed to undeploy these artifacts: " + remainingDeployments);
+ }
+ failedUndeployments.clear();
+ }
+
+ protected void startServerManager()
+ {
+ manager = getDelegate().getServerManager();
+ server = new Server();
+ server.setName(profile);
+ server.setHttpPort(port);
+ server.setHost(host);
+
+ if(configuration.getJbossHome() != null)
+ {
+ manager.setJbossHome(configuration.getJbossHome());
+ }
+ if(configuration.getJavaHome() != null)
+ {
+ manager.setJavaHome(configuration.getJavaHome());
+ }
+
+ AsLifecycleDelegate.applyServerDefaults(server, manager);
+ }
+
+ protected void restartServer() throws IOException, LifecycleException
+ {
+ if (getForceRestart())
+ {
+ if (isServerUp())
+ {
+ log.info("Shutting down server as in force-restart mode");
+ stopServer();
+ try
+ {
+ Thread.sleep(getShutdownDelay());
+ }
+ catch (InterruptedException e)
+ {
+ Thread.currentThread().interrupt();
+ }
+ }
+ }
+ if (!isServerUp())
+ {
+ wasStarted = true;
+ startServer();
+ log.info("Starting server");
+ // Wait for server to come up
+ long timeoutTime = System.currentTimeMillis() + getServerBootTimeout();
+ boolean interrupted = false;
+ while (timeoutTime > System.currentTimeMillis())
+ {
+ if (isServerUp())
+ {
+ log.info("Started server");
+ return;
+ }
+ try
+ {
+ Thread.sleep(200);
+ }
+ catch (InterruptedException e)
+ {
+ interrupted = true;
+ }
+ }
+ if (interrupted)
+ {
+ Thread.currentThread().interrupt();
+ }
+ // If we got this far something went wrong
+ log.info("Unable to connect to server after " + getServerBootTimeout() + "ms, giving up!");
+ stopServer();
+ throw new IllegalStateException("Error connecting to server");
+ }
+ }
+
+ protected void stopServer() throws LifecycleException
+ {
+ try
+ {
+ getDelegate().stopJbossAs(profile);
+ }
+ catch (Throwable t)
+ {
+ throw new LifecycleException("could not stop local container", t);
+ }
+ }
+
+ private void startServer() throws LifecycleException
+ {
+ try
+ {
+ getDelegate().startJbossAs(profile);
+ }
+ catch (Throwable t)
+ {
+ throw new LifecycleException("could not start local container", t);
+ }
+ }
+
+ protected boolean isServerUp() throws IOException
+ {
+ return ServerController.isServerStarted(server);
+ }
+
+ protected synchronized static AsLifecycleDelegate getDelegate()
+ {
+ if (delegate == null)
+ {
+ delegate = new AsLifecycleDelegate();
+ }
+ return delegate;
+ }
+
+ protected String getHost()
+ {
+ return host;
+ }
+
+ protected boolean getForceRestart()
+ {
+ return forceRestart;
+ }
+
+ protected int getShutdownDelay()
+ {
+ return shutdownDelay;
+ }
+
+ protected int getServerBootTimeout()
+ {
+ return bootTimeout;
+ }
+
+ protected int getPort()
+ {
+ return port;
+ }
+}
Copied: arquillian/trunk/containers/jbossas-local-51/src/main/java/org/jboss/arquillian/container/jbossas/managed_5_1/utils (from rev 4586, arquillian/trunk/containers/jbossas-local-51/src/main/java/org/jboss/arquillian/jbossas/local51/utils)
Modified: arquillian/trunk/containers/jbossas-local-51/src/main/java/org/jboss/arquillian/container/jbossas/managed_5_1/utils/AsLifecycleDelegate.java
===================================================================
--- arquillian/trunk/containers/jbossas-local-51/src/main/java/org/jboss/arquillian/jbossas/local51/utils/AsLifecycleDelegate.java 2010-06-29 10:58:12 UTC (rev 4586)
+++ arquillian/trunk/containers/jbossas-local-51/src/main/java/org/jboss/arquillian/container/jbossas/managed_5_1/utils/AsLifecycleDelegate.java 2010-06-29 12:52:55 UTC (rev 4596)
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.jboss.arquillian.jbossas.local51.utils;
+package org.jboss.arquillian.container.jbossas.managed_5_1.utils;
import org.jboss.jbossas.servermanager.Server;
import org.jboss.jbossas.servermanager.ServerController;
Deleted: arquillian/trunk/containers/jbossas-local-51/src/main/java/org/jboss/arquillian/jbossas/local51/JBossASConfiguration.java
===================================================================
--- arquillian/trunk/containers/jbossas-local-51/src/main/java/org/jboss/arquillian/jbossas/local51/JBossASConfiguration.java 2010-06-29 12:15:27 UTC (rev 4595)
+++ arquillian/trunk/containers/jbossas-local-51/src/main/java/org/jboss/arquillian/jbossas/local51/JBossASConfiguration.java 2010-06-29 12:52:55 UTC (rev 4596)
@@ -1,101 +0,0 @@
-/*
- * 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.jbossas.local51;
-
-import java.io.File;
-
-import org.jboss.arquillian.spi.ContainerConfiguration;
-import org.jboss.arquillian.spi.ContainerProfile;
-
-/**
- * A {@link org.jboss.arquillian.spi.ContainerConfiguration} implementation for
- * the JBoss AS container.
- *
- * @author <a href="mailto:german.escobarc at gmail.com">German Escobar</a>
- * @version $Revision: $
- */
-public class JBossASConfiguration implements ContainerConfiguration
-{
- private String bindAddress = "localhost";
-
- private int httpPort = 8080;
-
- private String profileName = "default";
-
- private String jbossHome = null;
-
- private String javaHome = null;
-
- public ContainerProfile getContainerProfile()
- {
- return ContainerProfile.CLIENT;
- }
-
- public String getBindAddress()
- {
- return bindAddress;
- }
-
- public void setBindAddress(String bindAddress)
- {
- this.bindAddress = bindAddress;
- }
-
- public int getHttpPort()
- {
- return httpPort;
- }
-
- public void setHttpPort(int httpPort)
- {
- this.httpPort = httpPort;
- }
-
- public String getProfileName()
- {
- return profileName;
- }
-
- public void setProfileName(String profileName)
- {
- this.profileName = profileName;
- }
-
- public void setJbossHome(String jbossHome)
- {
- this.jbossHome = jbossHome;
- }
-
- public String getJbossHome()
- {
- if(jbossHome != null)
- {
- return new File(jbossHome).getAbsolutePath();
- }
- return jbossHome;
- }
-
- public void setJavaHome(String javaHome)
- {
- this.javaHome = javaHome;
- }
-
- public String getJavaHome()
- {
- return javaHome;
- }
-}
Deleted: arquillian/trunk/containers/jbossas-local-51/src/main/java/org/jboss/arquillian/jbossas/local51/JBossASDeploymentAppender.java
===================================================================
--- arquillian/trunk/containers/jbossas-local-51/src/main/java/org/jboss/arquillian/jbossas/local51/JBossASDeploymentAppender.java 2010-06-29 12:15:27 UTC (rev 4595)
+++ arquillian/trunk/containers/jbossas-local-51/src/main/java/org/jboss/arquillian/jbossas/local51/JBossASDeploymentAppender.java 2010-06-29 12:52:55 UTC (rev 4596)
@@ -1,53 +0,0 @@
-/*
- * 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.jbossas.local51;
-
-import org.jboss.arquillian.spi.AuxiliaryArchiveAppender;
-import org.jboss.arquillian.spi.TestEnricher;
-import org.jboss.arquillian.testenricher.ejb.EJBInjectionEnricher;
-import org.jboss.arquillian.testenricher.resource.ResourceInjectionEnricher;
-import org.jboss.shrinkwrap.api.Archive;
-import org.jboss.shrinkwrap.api.ShrinkWrap;
-import org.jboss.shrinkwrap.api.spec.JavaArchive;
-
-/**
- * EmbeddedDeploymentAppender
- *
- * Package the required dependencies needed by the Jboss Embedded Container plugin
- * to run in container.
- *
- * @author <a href="mailto:aslak at conduct.no">Aslak Knutsen</a>
- * @version $Revision: $
- */
-public class JBossASDeploymentAppender implements AuxiliaryArchiveAppender
-{
-
- public Archive<?> createAuxiliaryArchive()
- {
- JavaArchive archive = ShrinkWrap.create("arquillian-jboss-testenrichers.jar", JavaArchive.class)
- .addPackages(
- true,
- EJBInjectionEnricher.class.getPackage(),
- ResourceInjectionEnricher.class.getPackage())
- .addServiceProvider(
- TestEnricher.class,
- EJBInjectionEnricher.class,
- ResourceInjectionEnricher.class);
- return archive;
- }
-
-}
Deleted: arquillian/trunk/containers/jbossas-local-51/src/main/java/org/jboss/arquillian/jbossas/local51/JBossASLocalContainer.java
===================================================================
--- arquillian/trunk/containers/jbossas-local-51/src/main/java/org/jboss/arquillian/jbossas/local51/JBossASLocalContainer.java 2010-06-29 12:15:27 UTC (rev 4595)
+++ arquillian/trunk/containers/jbossas-local-51/src/main/java/org/jboss/arquillian/jbossas/local51/JBossASLocalContainer.java 2010-06-29 12:52:55 UTC (rev 4596)
@@ -1,358 +0,0 @@
-/*
- * 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.jbossas.local51;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.jboss.arquillian.jbossas.local51.utils.AsLifecycleDelegate;
-import org.jboss.arquillian.protocol.servlet.ServletMethodExecutor;
-import org.jboss.arquillian.spi.Configuration;
-import org.jboss.arquillian.spi.ContainerMethodExecutor;
-import org.jboss.arquillian.spi.Context;
-import org.jboss.arquillian.spi.DeployableContainer;
-import org.jboss.arquillian.spi.DeploymentException;
-import org.jboss.arquillian.spi.LifecycleException;
-import org.jboss.jbossas.servermanager.Server;
-import org.jboss.jbossas.servermanager.ServerController;
-import org.jboss.jbossas.servermanager.ServerManager;
-import org.jboss.logging.Logger;
-import org.jboss.shrinkwrap.api.Archive;
-import org.jboss.shrinkwrap.api.exporter.ZipExporter;
-
-/**
- * JbossLocalContainer
- *
- * @author <a href="mailto:aamonten at gmail.com">Alejandro Montenegro</a>
- * @version $Revision: $
- */
-public class JBossASLocalContainer implements DeployableContainer
-{
- private static Logger log = Logger.getLogger(JBossASLocalContainer.class);
-
- private static AsLifecycleDelegate delegate;
-
- protected Server server;
-
- protected ServerManager manager;
-
- private boolean wasStarted;
-
- private final List<String> failedUndeployments = new ArrayList<String>();
-
- private boolean forceRestart = false;
-
- private int shutdownDelay = 15000;
-
- private int bootTimeout = 240000;
-
- private String host = "localhost";
-
- private String profile = "default";
-
- private int port = 8181;
-
- private JBossASConfiguration configuration;
-
- public JBossASLocalContainer()
- {
-
- }
-
- /* (non-Javadoc)
- * @see org.jboss.arquillian.spi.DeployableContainer#setup(org.jboss.arquillian.spi.Context, org.jboss.arquillian.spi.Configuration)
- */
- public void setup(Context context, Configuration configuration)
- {
- this.configuration = configuration.getContainerConfig(JBossASConfiguration.class);
- host = this.configuration.getBindAddress();
- profile = this.configuration.getProfileName();
- port = this.configuration.getHttpPort();
- }
-
- /* (non-Javadoc)
- * @see org.jboss.arquillian.spi.DeployableContainer#start(org.jboss.arquillian.spi.Context)
- */
- public void start(Context context) throws LifecycleException
- {
-
- try
- {
- startServerManager();
- restartServer();
- }
- catch (IOException e)
- {
- throw new LifecycleException("Could not start local container", e);
- }
- }
-
- /* (non-Javadoc)
- * @see org.jboss.arquillian.spi.DeployableContainer#stop(org.jboss.arquillian.spi.Context)
- */
- public void stop(Context context) throws LifecycleException
- {
- try
- {
- removeFailedUnDeployments();
- }
- catch (Exception e)
- {
- throw new LifecycleException("Could not clean up", e);
- }
- if (wasStarted)
- {
- stopServer();
- }
- }
-
- /* (non-Javadoc)
- * @see org.jboss.arquillian.spi.DeployableContainer#deploy(org.jboss.arquillian.spi.Context, org.jboss.shrinkwrap.api.Archive)
- */
- public ContainerMethodExecutor deploy(Context context, final Archive<?> archive) throws DeploymentException
- {
- if (archive == null)
- {
- throw new IllegalArgumentException("Archive must be specified");
- }
- if (manager == null || server == null)
- {
- throw new IllegalStateException("start has not been called!");
- }
- final String deploymentName = archive.getName();
-
- File file = new File(deploymentName);
- archive.as(ZipExporter.class).exportZip(file, true);
-
- Exception failure = null;
- try
- {
- server.deploy(file);
- }
- catch (Exception e)
- {
- throw new DeploymentException("Could not deploy " + deploymentName, e);
- }
- if (failure != null)
- {
- throw new DeploymentException("Failed to deploy " + deploymentName, failure);
- }
- try
- {
- return new ServletMethodExecutor(new URL(server.getHttpUrl().toExternalForm() + "/"));
- }
- catch (Exception e)
- {
- throw new RuntimeException("Could not create ContainerMethodExecutor", e);
- }
- }
-
- /* (non-Javadoc)
- * @see org.jboss.arquillian.spi.DeployableContainer#undeploy(org.jboss.arquillian.spi.Context, org.jboss.shrinkwrap.api.Archive)
- */
- public void undeploy(Context context, Archive<?> archive) throws DeploymentException
- {
- if (archive == null)
- {
- throw new IllegalArgumentException("Archive must be specified");
- }
- File file = new File(archive.getName());
- archive.as(ZipExporter.class).exportZip(file, true);
- undeploy(file);
- }
-
- private void undeploy(File file) throws DeploymentException
- {
- try
- {
- server.undeploy(file);
- }
- catch (Exception e)
- {
- failedUndeployments.add(file.getName());
- throw new DeploymentException("Could not undeploy " + file.getName(), e);
- }
- finally
- {
- file.delete();
- }
- }
-
- private void removeFailedUnDeployments() throws IOException
- {
- List<String> remainingDeployments = new ArrayList<String>();
- for (String name : failedUndeployments)
- {
-
- try
- {
- server.undeploy(new File(name));
-
- }
- catch (Exception e)
- {
- IOException ioe = new IOException();
- ioe.initCause(e);
- throw ioe;
- }
- }
- if (remainingDeployments.size() > 0)
- {
- log.error("Failed to undeploy these artifacts: " + remainingDeployments);
- }
- failedUndeployments.clear();
- }
-
- protected void startServerManager()
- {
- manager = getDelegate().getServerManager();
- server = new Server();
- server.setName(profile);
- server.setHttpPort(port);
- server.setHost(host);
-
- if(configuration.getJbossHome() != null)
- {
- manager.setJbossHome(configuration.getJbossHome());
- }
- if(configuration.getJavaHome() != null)
- {
- manager.setJavaHome(configuration.getJavaHome());
- }
-
- AsLifecycleDelegate.applyServerDefaults(server, manager);
- }
-
- protected void restartServer() throws IOException, LifecycleException
- {
- if (getForceRestart())
- {
- if (isServerUp())
- {
- log.info("Shutting down server as in force-restart mode");
- stopServer();
- try
- {
- Thread.sleep(getShutdownDelay());
- }
- catch (InterruptedException e)
- {
- Thread.currentThread().interrupt();
- }
- }
- }
- if (!isServerUp())
- {
- wasStarted = true;
- startServer();
- log.info("Starting server");
- // Wait for server to come up
- long timeoutTime = System.currentTimeMillis() + getServerBootTimeout();
- boolean interrupted = false;
- while (timeoutTime > System.currentTimeMillis())
- {
- if (isServerUp())
- {
- log.info("Started server");
- return;
- }
- try
- {
- Thread.sleep(200);
- }
- catch (InterruptedException e)
- {
- interrupted = true;
- }
- }
- if (interrupted)
- {
- Thread.currentThread().interrupt();
- }
- // If we got this far something went wrong
- log.info("Unable to connect to server after " + getServerBootTimeout() + "ms, giving up!");
- stopServer();
- throw new IllegalStateException("Error connecting to server");
- }
- }
-
- protected void stopServer() throws LifecycleException
- {
- try
- {
- getDelegate().stopJbossAs(profile);
- }
- catch (Throwable t)
- {
- throw new LifecycleException("could not stop local container", t);
- }
- }
-
- private void startServer() throws LifecycleException
- {
- try
- {
- getDelegate().startJbossAs(profile);
- }
- catch (Throwable t)
- {
- throw new LifecycleException("could not start local container", t);
- }
- }
-
- protected boolean isServerUp() throws IOException
- {
- return ServerController.isServerStarted(server);
- }
-
- protected synchronized static AsLifecycleDelegate getDelegate()
- {
- if (delegate == null)
- {
- delegate = new AsLifecycleDelegate();
- }
- return delegate;
- }
-
- protected String getHost()
- {
- return host;
- }
-
- protected boolean getForceRestart()
- {
- return forceRestart;
- }
-
- protected int getShutdownDelay()
- {
- return shutdownDelay;
- }
-
- protected int getServerBootTimeout()
- {
- return bootTimeout;
- }
-
- protected int getPort()
- {
- return port;
- }
-}
Modified: arquillian/trunk/containers/jbossas-local-51/src/main/resources/META-INF/services/org.jboss.arquillian.spi.AuxiliaryArchiveAppender
===================================================================
--- arquillian/trunk/containers/jbossas-local-51/src/main/resources/META-INF/services/org.jboss.arquillian.spi.AuxiliaryArchiveAppender 2010-06-29 12:15:27 UTC (rev 4595)
+++ arquillian/trunk/containers/jbossas-local-51/src/main/resources/META-INF/services/org.jboss.arquillian.spi.AuxiliaryArchiveAppender 2010-06-29 12:52:55 UTC (rev 4596)
@@ -1 +1 @@
-org.jboss.arquillian.jbossas.local51.JBossASDeploymentAppender
\ No newline at end of file
+org.jboss.arquillian.container.jbossas.managed_5_1.JBossASDeploymentAppender
\ No newline at end of file
Modified: arquillian/trunk/containers/jbossas-local-51/src/main/resources/META-INF/services/org.jboss.arquillian.spi.ContainerConfiguration
===================================================================
--- arquillian/trunk/containers/jbossas-local-51/src/main/resources/META-INF/services/org.jboss.arquillian.spi.ContainerConfiguration 2010-06-29 12:15:27 UTC (rev 4595)
+++ arquillian/trunk/containers/jbossas-local-51/src/main/resources/META-INF/services/org.jboss.arquillian.spi.ContainerConfiguration 2010-06-29 12:52:55 UTC (rev 4596)
@@ -1 +1 @@
-org.jboss.arquillian.jbossas.local51.JBossASConfiguration
\ No newline at end of file
+org.jboss.arquillian.container.jbossas.managed_5_1.JBossASConfiguration
\ No newline at end of file
Modified: arquillian/trunk/containers/jbossas-local-51/src/main/resources/META-INF/services/org.jboss.arquillian.spi.DeployableContainer
===================================================================
--- arquillian/trunk/containers/jbossas-local-51/src/main/resources/META-INF/services/org.jboss.arquillian.spi.DeployableContainer 2010-06-29 12:15:27 UTC (rev 4595)
+++ arquillian/trunk/containers/jbossas-local-51/src/main/resources/META-INF/services/org.jboss.arquillian.spi.DeployableContainer 2010-06-29 12:52:55 UTC (rev 4596)
@@ -1 +1 @@
-org.jboss.arquillian.jbossas.local51.JBossASLocalContainer
\ No newline at end of file
+org.jboss.arquillian.container.jbossas.managed_5_1.JBossASLocalContainer
\ No newline at end of file
Copied: arquillian/trunk/containers/jbossas-local-51/src/test/java/org/jboss/arquillian/container/jbossas/managed_5_1/JBossASIntegrationTestCase.java (from rev 4586, arquillian/trunk/containers/jbossas-local-51/src/test/java/org/jboss/arquillian/jbossas/local51/JBossASIntegrationTestCase.java)
===================================================================
--- arquillian/trunk/containers/jbossas-local-51/src/test/java/org/jboss/arquillian/container/jbossas/managed_5_1/JBossASIntegrationTestCase.java (rev 0)
+++ arquillian/trunk/containers/jbossas-local-51/src/test/java/org/jboss/arquillian/container/jbossas/managed_5_1/JBossASIntegrationTestCase.java 2010-06-29 12:52:55 UTC (rev 4596)
@@ -0,0 +1,64 @@
+/*
+ * 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.container.jbossas.managed_5_1;
+
+import javax.ejb.EJB;
+
+import junit.framework.Assert;
+
+import org.jboss.arquillian.api.Deployment;
+import org.jboss.arquillian.container.jbossas.managed_5_1.ejb.MyEjb;
+import org.jboss.arquillian.container.jbossas.managed_5_1.ejb.MyEjbBean;
+import org.jboss.arquillian.junit.Arquillian;
+import org.jboss.shrinkwrap.api.ShrinkWrap;
+import org.jboss.shrinkwrap.api.spec.JavaArchive;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+/**
+ * JBossEmbeddedIntegrationTestCase
+ *
+ * @author <a href="mailto:aslak at redhat.com">Aslak Knutsen</a>
+ * @version $Revision: $
+ */
+ at Ignore // TODO: Add auto extract of 5.1 container. No Maven based dist for 5.1, download from sourceforge?
+ at RunWith(Arquillian.class)
+public class JBossASIntegrationTestCase
+{
+ @Deployment
+ public static JavaArchive createDeployment() throws Exception
+ {
+ return ShrinkWrap.create("test.jar", JavaArchive.class)
+ .addClasses(
+ JBossASIntegrationTestCase.class,
+ MyEjb.class, MyEjbBean.class);
+ }
+
+ @EJB
+ private MyEjb instanceVariable;
+
+ @Test
+ public void shouldBeAbleToInjectEJBAsInstanceVariable() throws Exception
+ {
+ Assert.assertNotNull(
+ "Verify that the Bean has been injected",
+ instanceVariable);
+
+ Assert.assertEquals("aslak", instanceVariable.getName());
+ }
+}
Copied: arquillian/trunk/containers/jbossas-local-51/src/test/java/org/jboss/arquillian/container/jbossas/managed_5_1/ejb (from rev 4586, arquillian/trunk/containers/jbossas-local-51/src/test/java/org/jboss/arquillian/jbossas/local51/ejb)
Modified: arquillian/trunk/containers/jbossas-local-51/src/test/java/org/jboss/arquillian/container/jbossas/managed_5_1/ejb/MyEjb.java
===================================================================
--- arquillian/trunk/containers/jbossas-local-51/src/test/java/org/jboss/arquillian/jbossas/local51/ejb/MyEjb.java 2010-06-29 10:58:12 UTC (rev 4586)
+++ arquillian/trunk/containers/jbossas-local-51/src/test/java/org/jboss/arquillian/container/jbossas/managed_5_1/ejb/MyEjb.java 2010-06-29 12:52:55 UTC (rev 4596)
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.jboss.arquillian.jbossas.local51.ejb;
+package org.jboss.arquillian.container.jbossas.managed_5_1.ejb;
/**
*
Modified: arquillian/trunk/containers/jbossas-local-51/src/test/java/org/jboss/arquillian/container/jbossas/managed_5_1/ejb/MyEjbBean.java
===================================================================
--- arquillian/trunk/containers/jbossas-local-51/src/test/java/org/jboss/arquillian/jbossas/local51/ejb/MyEjbBean.java 2010-06-29 10:58:12 UTC (rev 4586)
+++ arquillian/trunk/containers/jbossas-local-51/src/test/java/org/jboss/arquillian/container/jbossas/managed_5_1/ejb/MyEjbBean.java 2010-06-29 12:52:55 UTC (rev 4596)
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.jboss.arquillian.jbossas.local51.ejb;
+package org.jboss.arquillian.container.jbossas.managed_5_1.ejb;
import javax.ejb.Local;
import javax.ejb.Stateless;
Deleted: arquillian/trunk/containers/jbossas-local-51/src/test/java/org/jboss/arquillian/jbossas/local51/JBossASIntegrationTestCase.java
===================================================================
--- arquillian/trunk/containers/jbossas-local-51/src/test/java/org/jboss/arquillian/jbossas/local51/JBossASIntegrationTestCase.java 2010-06-29 12:15:27 UTC (rev 4595)
+++ arquillian/trunk/containers/jbossas-local-51/src/test/java/org/jboss/arquillian/jbossas/local51/JBossASIntegrationTestCase.java 2010-06-29 12:52:55 UTC (rev 4596)
@@ -1,64 +0,0 @@
-/*
- * 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.jbossas.local51;
-
-import javax.ejb.EJB;
-
-import junit.framework.Assert;
-
-import org.jboss.arquillian.api.Deployment;
-import org.jboss.arquillian.jbossas.local51.ejb.MyEjb;
-import org.jboss.arquillian.jbossas.local51.ejb.MyEjbBean;
-import org.jboss.arquillian.junit.Arquillian;
-import org.jboss.shrinkwrap.api.ShrinkWrap;
-import org.jboss.shrinkwrap.api.spec.JavaArchive;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-/**
- * JBossEmbeddedIntegrationTestCase
- *
- * @author <a href="mailto:aslak at redhat.com">Aslak Knutsen</a>
- * @version $Revision: $
- */
- at Ignore // TODO: Add auto extract of 5.1 container. No Maven based dist for 5.1, download from sourceforge?
- at RunWith(Arquillian.class)
-public class JBossASIntegrationTestCase
-{
- @Deployment
- public static JavaArchive createDeployment() throws Exception
- {
- return ShrinkWrap.create("test.jar", JavaArchive.class)
- .addClasses(
- JBossASIntegrationTestCase.class,
- MyEjb.class, MyEjbBean.class);
- }
-
- @EJB
- private MyEjb instanceVariable;
-
- @Test
- public void shouldBeAbleToInjectEJBAsInstanceVariable() throws Exception
- {
- Assert.assertNotNull(
- "Verify that the Bean has been injected",
- instanceVariable);
-
- Assert.assertEquals("aslak", instanceVariable.getName());
- }
-}
More information about the jboss-svn-commits
mailing list