[jboss-svn-commits] JBoss Common SVN: r4268 - in arquillian/trunk: containers/glassfish-embedded-30/src/main/resources/META-INF/services and 15 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Apr 20 10:54:04 EDT 2010


Author: aslak
Date: 2010-04-20 10:53:59 -0400 (Tue, 20 Apr 2010)
New Revision: 4268

Added:
   arquillian/trunk/containers/glassfish-embedded-30/src/main/java/org/jboss/arquillian/glassfish/GlassFishConfiguration.java
   arquillian/trunk/containers/glassfish-embedded-30/src/main/resources/META-INF/services/org.jboss.arquillian.spi.ContainerConfiguration
   arquillian/trunk/containers/jbossas-remote-51/src/main/java/org/jboss/arquillian/jboss/JBossConfiguration.java
   arquillian/trunk/containers/jbossas-remote-51/src/main/resources/META-INF/services/org.jboss.arquillian.spi.ContainerConfiguration
   arquillian/trunk/containers/jbossas-remote-60/src/main/java/org/jboss/arquillian/jboss/JBossConfiguration.java
   arquillian/trunk/containers/jbossas-remote-60/src/main/resources/META-INF/services/org.jboss.arquillian.spi.ContainerConfiguration
   arquillian/trunk/containers/openejb/src/main/java/org/jboss/arquillian/openejb/OpenEJBConfiguration.java
   arquillian/trunk/containers/openejb/src/main/resources/META-INF/services/org.jboss.arquillian.spi.ContainerConfiguration
   arquillian/trunk/containers/openwebbeans-embedded/src/main/java/org/jboss/arquillian/openwebbeans/OpenWebBeansConfiguration.java
   arquillian/trunk/containers/openwebbeans-embedded/src/main/resources/META-INF/services/org.jboss.arquillian.spi.ContainerConfiguration
   arquillian/trunk/containers/reloaded/src/main/java/org/jboss/arquillian/container/reloaded/JBossReloadedConfiguration.java
   arquillian/trunk/containers/reloaded/src/main/resources/META-INF/services/org.jboss.arquillian.spi.ContainerConfiguration
   arquillian/trunk/containers/weld-embedded/src/main/java/org/jboss/arquillian/weld/WeldSEConfiguration.java
   arquillian/trunk/containers/weld-embedded/src/main/resources/META-INF/services/org.jboss.arquillian.spi.ContainerConfiguration
   arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/ConfigurationBuilder.java
   arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/XmlConfigurationBuilder.java
   arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/XmlConfigurationBuilderTestCase.java
   arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/Configuration.java
   arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/ConfigurationException.java
   arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/ContainerConfiguration.java
   arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/ContainerProfile.java
Log:
ARQ-33 General Configuration module. XML configuration parser and base container configurations


Added: arquillian/trunk/containers/glassfish-embedded-30/src/main/java/org/jboss/arquillian/glassfish/GlassFishConfiguration.java
===================================================================
--- arquillian/trunk/containers/glassfish-embedded-30/src/main/java/org/jboss/arquillian/glassfish/GlassFishConfiguration.java	                        (rev 0)
+++ arquillian/trunk/containers/glassfish-embedded-30/src/main/java/org/jboss/arquillian/glassfish/GlassFishConfiguration.java	2010-04-20 14:53:59 UTC (rev 4268)
@@ -0,0 +1,49 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2010, 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 org.jboss.arquillian.spi.ContainerConfiguration;
+import org.jboss.arquillian.spi.ContainerProfile;
+
+/**
+ * A {@link org.jboss.arquillian.spi.ContainerConfiguration} implementation for
+ * the GlassFish Embedded container.
+ *
+ * @author <a href="mailto:german.escobarc at gmail.com">German Escobar</a>
+ * @version $Revision: $
+ */
+public class GlassFishConfiguration implements ContainerConfiguration
+{
+   private int bindPort = 8080;
+
+   @Override
+   public ContainerProfile getContainerProfile()
+   {
+      return ContainerProfile.CLIENT;
+   }
+   
+   public int getBindPort()
+   {
+      return bindPort;
+   }
+
+   public void setBindPort(int bindPort)
+   {
+      this.bindPort = bindPort;
+   }
+   
+}

Added: arquillian/trunk/containers/glassfish-embedded-30/src/main/resources/META-INF/services/org.jboss.arquillian.spi.ContainerConfiguration
===================================================================
--- arquillian/trunk/containers/glassfish-embedded-30/src/main/resources/META-INF/services/org.jboss.arquillian.spi.ContainerConfiguration	                        (rev 0)
+++ arquillian/trunk/containers/glassfish-embedded-30/src/main/resources/META-INF/services/org.jboss.arquillian.spi.ContainerConfiguration	2010-04-20 14:53:59 UTC (rev 4268)
@@ -0,0 +1 @@
+org.jboss.arquillian.glassfish.GlassFishConfiguration
\ No newline at end of file

Added: arquillian/trunk/containers/jbossas-remote-51/src/main/java/org/jboss/arquillian/jboss/JBossConfiguration.java
===================================================================
--- arquillian/trunk/containers/jbossas-remote-51/src/main/java/org/jboss/arquillian/jboss/JBossConfiguration.java	                        (rev 0)
+++ arquillian/trunk/containers/jbossas-remote-51/src/main/java/org/jboss/arquillian/jboss/JBossConfiguration.java	2010-04-20 14:53:59 UTC (rev 4268)
@@ -0,0 +1,73 @@
+/*
+ * 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.jboss;
+
+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 JBossConfiguration implements ContainerConfiguration
+{
+   private String bindAddress = "localhost";
+
+   private int bindPort = 8181;
+
+   private String profileName = "default";
+
+   @Override
+   public ContainerProfile getContainerProfile()
+   {
+      return ContainerProfile.CLIENT;
+   }
+   
+   public String getBindAddress()
+   {
+      return bindAddress;
+   }
+
+   public void setBindAddress(String bindAddress)
+   {
+      this.bindAddress = bindAddress;
+   }
+
+   public int getBindPort()
+   {
+      return bindPort;
+   }
+
+   public void setBindPort(int bindPort)
+   {
+      this.bindPort = bindPort;
+   }
+
+   public String getProfileName()
+   {
+      return profileName;
+   }
+
+   public void setProfileName(String profileName)
+   {
+      this.profileName = profileName;
+   }
+
+}

Added: arquillian/trunk/containers/jbossas-remote-51/src/main/resources/META-INF/services/org.jboss.arquillian.spi.ContainerConfiguration
===================================================================
--- arquillian/trunk/containers/jbossas-remote-51/src/main/resources/META-INF/services/org.jboss.arquillian.spi.ContainerConfiguration	                        (rev 0)
+++ arquillian/trunk/containers/jbossas-remote-51/src/main/resources/META-INF/services/org.jboss.arquillian.spi.ContainerConfiguration	2010-04-20 14:53:59 UTC (rev 4268)
@@ -0,0 +1 @@
+org.jboss.arquillian.jboss.JBossConfiguration
\ No newline at end of file

Added: arquillian/trunk/containers/jbossas-remote-60/src/main/java/org/jboss/arquillian/jboss/JBossConfiguration.java
===================================================================
--- arquillian/trunk/containers/jbossas-remote-60/src/main/java/org/jboss/arquillian/jboss/JBossConfiguration.java	                        (rev 0)
+++ arquillian/trunk/containers/jbossas-remote-60/src/main/java/org/jboss/arquillian/jboss/JBossConfiguration.java	2010-04-20 14:53:59 UTC (rev 4268)
@@ -0,0 +1,73 @@
+/*
+ * 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.jboss;
+
+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 JBossConfiguration implements ContainerConfiguration
+{
+   private String bindAddress = "localhost";
+
+   private int bindPort = 8181;
+
+   private String profileName = "default";
+
+   @Override
+   public ContainerProfile getContainerProfile()
+   {
+      return ContainerProfile.CLIENT;
+   }
+   
+   public String getBindAddress()
+   {
+      return bindAddress;
+   }
+
+   public void setBindAddress(String bindAddress)
+   {
+      this.bindAddress = bindAddress;
+   }
+
+   public int getBindPort()
+   {
+      return bindPort;
+   }
+
+   public void setBindPort(int bindPort)
+   {
+      this.bindPort = bindPort;
+   }
+
+   public String getProfileName()
+   {
+      return profileName;
+   }
+
+   public void setProfileName(String profileName)
+   {
+      this.profileName = profileName;
+   }
+
+}

Added: arquillian/trunk/containers/jbossas-remote-60/src/main/resources/META-INF/services/org.jboss.arquillian.spi.ContainerConfiguration
===================================================================
--- arquillian/trunk/containers/jbossas-remote-60/src/main/resources/META-INF/services/org.jboss.arquillian.spi.ContainerConfiguration	                        (rev 0)
+++ arquillian/trunk/containers/jbossas-remote-60/src/main/resources/META-INF/services/org.jboss.arquillian.spi.ContainerConfiguration	2010-04-20 14:53:59 UTC (rev 4268)
@@ -0,0 +1 @@
+org.jboss.arquillian.jboss.JBossConfiguration
\ No newline at end of file

Added: arquillian/trunk/containers/openejb/src/main/java/org/jboss/arquillian/openejb/OpenEJBConfiguration.java
===================================================================
--- arquillian/trunk/containers/openejb/src/main/java/org/jboss/arquillian/openejb/OpenEJBConfiguration.java	                        (rev 0)
+++ arquillian/trunk/containers/openejb/src/main/java/org/jboss/arquillian/openejb/OpenEJBConfiguration.java	2010-04-20 14:53:59 UTC (rev 4268)
@@ -0,0 +1,38 @@
+/*
+ * 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.openejb;
+
+import org.jboss.arquillian.spi.ContainerConfiguration;
+import org.jboss.arquillian.spi.ContainerProfile;
+
+/**
+ * OpenEJBConfiguration
+ *
+ * @author <a href="mailto:aknutsen at redhat.com">Aslak Knutsen</a>
+ * @version $Revision: $
+ */
+public class OpenEJBConfiguration implements ContainerConfiguration
+{
+   /* (non-Javadoc)
+    * @see org.jboss.arquillian.spi.ContainerConfiguration#getContainerProfile()
+    */
+   @Override
+   public ContainerProfile getContainerProfile()
+   {
+      return ContainerProfile.STANDALONE;
+   }
+}

Added: arquillian/trunk/containers/openejb/src/main/resources/META-INF/services/org.jboss.arquillian.spi.ContainerConfiguration
===================================================================
--- arquillian/trunk/containers/openejb/src/main/resources/META-INF/services/org.jboss.arquillian.spi.ContainerConfiguration	                        (rev 0)
+++ arquillian/trunk/containers/openejb/src/main/resources/META-INF/services/org.jboss.arquillian.spi.ContainerConfiguration	2010-04-20 14:53:59 UTC (rev 4268)
@@ -0,0 +1 @@
+org.jboss.arquillian.openejb.OpenEJBConfiguration
\ No newline at end of file

Added: arquillian/trunk/containers/openwebbeans-embedded/src/main/java/org/jboss/arquillian/openwebbeans/OpenWebBeansConfiguration.java
===================================================================
--- arquillian/trunk/containers/openwebbeans-embedded/src/main/java/org/jboss/arquillian/openwebbeans/OpenWebBeansConfiguration.java	                        (rev 0)
+++ arquillian/trunk/containers/openwebbeans-embedded/src/main/java/org/jboss/arquillian/openwebbeans/OpenWebBeansConfiguration.java	2010-04-20 14:53:59 UTC (rev 4268)
@@ -0,0 +1,38 @@
+/*
+ * 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.openwebbeans;
+
+import org.jboss.arquillian.spi.ContainerConfiguration;
+import org.jboss.arquillian.spi.ContainerProfile;
+
+/**
+ * OpenWebBeansConfiguration
+ *
+ * @author <a href="mailto:aknutsen at redhat.com">Aslak Knutsen</a>
+ * @version $Revision: $
+ */
+public class OpenWebBeansConfiguration implements ContainerConfiguration
+{
+   /* (non-Javadoc)
+    * @see org.jboss.arquillian.spi.ContainerConfiguration#getContainerProfile()
+    */
+   @Override
+   public ContainerProfile getContainerProfile()
+   {
+      return ContainerProfile.STANDALONE;
+   }
+}

Added: arquillian/trunk/containers/openwebbeans-embedded/src/main/resources/META-INF/services/org.jboss.arquillian.spi.ContainerConfiguration
===================================================================
--- arquillian/trunk/containers/openwebbeans-embedded/src/main/resources/META-INF/services/org.jboss.arquillian.spi.ContainerConfiguration	                        (rev 0)
+++ arquillian/trunk/containers/openwebbeans-embedded/src/main/resources/META-INF/services/org.jboss.arquillian.spi.ContainerConfiguration	2010-04-20 14:53:59 UTC (rev 4268)
@@ -0,0 +1 @@
+org.jboss.arquillian.openwebbeans.OpenWebBeansConfiguration
\ No newline at end of file

Added: arquillian/trunk/containers/reloaded/src/main/java/org/jboss/arquillian/container/reloaded/JBossReloadedConfiguration.java
===================================================================
--- arquillian/trunk/containers/reloaded/src/main/java/org/jboss/arquillian/container/reloaded/JBossReloadedConfiguration.java	                        (rev 0)
+++ arquillian/trunk/containers/reloaded/src/main/java/org/jboss/arquillian/container/reloaded/JBossReloadedConfiguration.java	2010-04-20 14:53:59 UTC (rev 4268)
@@ -0,0 +1,40 @@
+/*
+ * 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.reloaded;
+
+import org.jboss.arquillian.spi.ContainerConfiguration;
+import org.jboss.arquillian.spi.ContainerProfile;
+
+/**
+ * JBossReloadedConfiguration
+ *
+ * @author <a href="mailto:aknutsen at redhat.com">Aslak Knutsen</a>
+ * @version $Revision: $
+ */
+public class JBossReloadedConfiguration implements ContainerConfiguration
+{
+
+   /* (non-Javadoc)
+    * @see org.jboss.arquillian.spi.ContainerConfiguration#getContainerProfile()
+    */
+   @Override
+   public ContainerProfile getContainerProfile()
+   {
+      return ContainerProfile.STANDALONE;
+   }
+
+}

Added: arquillian/trunk/containers/reloaded/src/main/resources/META-INF/services/org.jboss.arquillian.spi.ContainerConfiguration
===================================================================
--- arquillian/trunk/containers/reloaded/src/main/resources/META-INF/services/org.jboss.arquillian.spi.ContainerConfiguration	                        (rev 0)
+++ arquillian/trunk/containers/reloaded/src/main/resources/META-INF/services/org.jboss.arquillian.spi.ContainerConfiguration	2010-04-20 14:53:59 UTC (rev 4268)
@@ -0,0 +1 @@
+org.jboss.arquillian.container.reloaded.JBossReloadedConfiguration
\ No newline at end of file

Added: arquillian/trunk/containers/weld-embedded/src/main/java/org/jboss/arquillian/weld/WeldSEConfiguration.java
===================================================================
--- arquillian/trunk/containers/weld-embedded/src/main/java/org/jboss/arquillian/weld/WeldSEConfiguration.java	                        (rev 0)
+++ arquillian/trunk/containers/weld-embedded/src/main/java/org/jboss/arquillian/weld/WeldSEConfiguration.java	2010-04-20 14:53:59 UTC (rev 4268)
@@ -0,0 +1,40 @@
+/*
+ * 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.weld;
+
+import org.jboss.arquillian.spi.ContainerConfiguration;
+import org.jboss.arquillian.spi.ContainerProfile;
+
+/**
+ * WeldSEConfiguration
+ *
+ * @author <a href="mailto:aknutsen at redhat.com">Aslak Knutsen</a>
+ * @version $Revision: $
+ */
+public class WeldSEConfiguration implements ContainerConfiguration
+{
+
+   /* (non-Javadoc)
+    * @see org.jboss.arquillian.spi.ContainerConfiguration#getContainerProfile()
+    */
+   @Override
+   public ContainerProfile getContainerProfile()
+   {
+      return ContainerProfile.STANDALONE;
+   }
+
+}

Added: arquillian/trunk/containers/weld-embedded/src/main/resources/META-INF/services/org.jboss.arquillian.spi.ContainerConfiguration
===================================================================
--- arquillian/trunk/containers/weld-embedded/src/main/resources/META-INF/services/org.jboss.arquillian.spi.ContainerConfiguration	                        (rev 0)
+++ arquillian/trunk/containers/weld-embedded/src/main/resources/META-INF/services/org.jboss.arquillian.spi.ContainerConfiguration	2010-04-20 14:53:59 UTC (rev 4268)
@@ -0,0 +1 @@
+org.jboss.arquillian.weld.WeldSEConfiguration
\ No newline at end of file

Added: arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/ConfigurationBuilder.java
===================================================================
--- arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/ConfigurationBuilder.java	                        (rev 0)
+++ arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/ConfigurationBuilder.java	2010-04-20 14:53:59 UTC (rev 4268)
@@ -0,0 +1,36 @@
+/*
+ * 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.impl;
+
+import org.jboss.arquillian.spi.Configuration;
+import org.jboss.arquillian.spi.ConfigurationException;
+
+/**
+ * Builds a {@link Configuration} object.
+ *
+ * @author <a href="mailto:german.escobarc at gmail.com">German Escobar</a>
+ * @version $Revision: $
+ */
+public interface ConfigurationBuilder
+{
+   /**
+    * Builds the {@link Configuration} object.
+    * @return a not-null {@link Configuration} object.
+    * @throws ConfigurationException if there is a problem building the configuration object
+    */
+   Configuration build() throws ConfigurationException;
+}

Added: arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/XmlConfigurationBuilder.java
===================================================================
--- arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/XmlConfigurationBuilder.java	                        (rev 0)
+++ arquillian/trunk/impl-base/src/main/java/org/jboss/arquillian/impl/XmlConfigurationBuilder.java	2010-04-20 14:53:59 UTC (rev 4268)
@@ -0,0 +1,357 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2010, 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.impl;
+
+import java.io.InputStream;
+
+import java.lang.reflect.Field;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.logging.Logger;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+
+import org.jboss.arquillian.spi.Configuration;
+import org.jboss.arquillian.spi.ConfigurationException;
+import org.jboss.arquillian.spi.ContainerConfiguration;
+import org.jboss.arquillian.spi.ServiceLoader;
+import org.w3c.dom.Document;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+/**
+ * An implementation of {@link ConfigurationBuilder} that loads the configuration
+ * from the arquillian.xml file located in the root of the classpath. If not found,
+ * it just returns an empty {@link org.jboss.arquillian.spi.Configuration} object.
+ *
+ * @author <a href="mailto:german.escobarc at gmail.com">German Escobar</a>
+ * @version $Revision: $
+ */
+public class XmlConfigurationBuilder implements ConfigurationBuilder
+{
+   
+   private static final Logger log = Logger.getLogger(XmlConfigurationBuilder.class.getName());
+   
+   /**
+    * The default XML resource path.
+    */
+   private static final String DEFAULT_RESOURCE_PATH = "arquillian.xml";
+
+   /**
+    * The actual resourcePath
+    */
+   private String resourcePath;
+   
+   private ServiceLoader serviceLoader;
+
+   /**
+    * Constructor. Initializes with the default resource path and service loader.
+    */
+   public XmlConfigurationBuilder() 
+   {
+       this(DEFAULT_RESOURCE_PATH);
+   }
+
+   /**
+    * Constructor. Initializes with the provided resource path and the default
+    * service loader.
+    * @param resourcePath the path to the XML configuration file.
+    */
+   public XmlConfigurationBuilder(String resourcePath) 
+   {
+       this(resourcePath, new DynamicServiceLoader());
+   }
+   
+   /**
+    * Constructor. Initializes with the provided resource path and service loader.
+    * @param resourcePath the path to the XML configuration file.
+    * @param serviceLoader the ServiceLoader implementation to use.
+    */
+   public XmlConfigurationBuilder(String resourcePath, ServiceLoader serviceLoader) 
+   {
+      this.resourcePath = resourcePath;
+      this.serviceLoader = serviceLoader;
+   }
+
+   /* (non-Javadoc)
+    * @see org.jboss.arquillian.impl.ConfigurationBuilder#build()
+    */
+   @Override
+   public Configuration build() throws ConfigurationException
+   {      
+      // the configuration object we are going to return
+      Configuration configuration = new Configuration();
+      
+      Collection<ContainerConfiguration> containersConfigurations = serviceLoader.all(ContainerConfiguration.class);
+      log.fine("Container Configurations: " + containersConfigurations.size());
+      
+      for(ContainerConfiguration containerConfiguration : containersConfigurations)
+      {
+         configuration.addContainerConfig(containerConfiguration);
+      }
+      
+      try
+      {
+         // load the xml configuration file
+         ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+         InputStream inputStream = classLoader.getResourceAsStream(resourcePath);
+         
+         if (inputStream != null) 
+         {
+            log.info("building configuration from XML file: " + resourcePath);
+            Document document = getDocument(inputStream);
+            
+            // load all the container nodes
+            NodeList nodeList = document.getDocumentElement().getElementsByTagNameNS("*", "container");
+            for (int i=0; i < nodeList.getLength(); i++) 
+            {
+               Node containerNode = nodeList.item(i); 
+               
+               // retrieve the package
+               String pkg = containerNode.getNamespaceURI().replaceFirst("urn:arq:", "");
+               
+               // try to find a ContainerConfiguration that matches the package
+               ContainerConfiguration containerConfig = matchContainerConfiguration(containersConfigurations, pkg);
+               
+               if (containerConfig != null) 
+               {
+                  // map the nodes
+                  mapNodesToProperties(containerConfig, containerNode);
+                  
+                  // add the ContainerConfiguration to the configuration
+               }
+            }
+         }
+         else
+         {
+            log.fine("No " + resourcePath + " file found");
+         }
+      }
+      catch (Exception e)
+      {
+         throw new ConfigurationException(e.getMessage(), e);
+      }
+      return configuration;
+   }
+   
+   /**
+    * Fills the properties of the ContainerConfiguration implementation object with the 
+    * information from the container XML fragment (the containerNode argument). 
+    * @param containerConfig the ContainerConfiguration object to be filled from the XML fragment
+    * @param containerNode the XML node that represents the container configuration.
+    * @throws Exception if there is a problem filling the ContainerConfiguration object.
+    */
+   private void mapNodesToProperties(ContainerConfiguration containerConfig, Node containerNode) throws Exception
+   {
+      // validation
+      Validate.notNull(containerConfig, "No container configuration specified");
+      Validate.notNull(containerNode, "No container XML Node specified");
+      
+      log.fine("filling container configuration for class: " + containerConfig.getClass().getName());
+      
+      // here we will store the properties taken from the child elements of the container node
+      Map<String,String> properties = new HashMap<String,String>(); 
+      
+      NodeList childNodes = containerNode.getChildNodes();
+      for (int i=0; i < childNodes.getLength(); i++) 
+      {
+         Node child = childNodes.item(i);
+         
+         // only process element nodes
+         if (child.getNodeType() == Node.ELEMENT_NODE) 
+         {
+            properties.putAll(getPropertiesFromNode(child));
+         }
+      }
+      
+      // set the properties found in the container XML fragment to the ContainerConfiguration
+      for (Map.Entry<String, String> property : properties.entrySet()) 
+      {
+         Field field = containerConfig.getClass().getDeclaredField(property.getKey());
+         field.setAccessible(true);
+         Object value = convert(field.getType(), property.getValue());
+         field.set(containerConfig, value);
+      }
+   }
+   
+   /**
+    * Creates all the properties from a single Node element. The element must be a child of the
+    * container root element.
+    * @param element the XML Node from which we are going to create the properties.
+    * @return a Map of properties names and values mapped from the XML Node element.
+    */
+   private Map<String,String> getPropertiesFromNode(Node element) {
+      Map<String,String> properties = new HashMap<String,String>(); 
+
+      // retrieve the attributes of the element 
+      NamedNodeMap attributes = element.getAttributes();
+      
+      // choose the strategy
+      if (attributes.getLength() > 0) 
+      {
+         new TagNameAttributeMapper().map(element, properties);
+      }
+      else
+      {
+         new TagNameMapper().map(element, properties);
+      }
+      
+      return properties;
+   }
+   
+   /**
+    * Matches a ContainerConfiguration implementation object with the pkg parameter.
+    * @param pkg the package prefix used to match the ContainerConfiguration.
+    * @return the ContainerConfiguration implementation object that matches the package, 
+    * null otherwise.
+    */
+   private ContainerConfiguration matchContainerConfiguration(Collection<ContainerConfiguration> containerConfigurations, String pkg) 
+   {
+      log.fine("trying to match a container configuration for package: " + pkg);
+      // load all the containers configurations 
+      
+      ContainerConfiguration containerConfig = null;
+      
+      // select the container configuration that matches the package
+      for (ContainerConfiguration cc : containerConfigurations) 
+      {
+         if (cc.getClass().getName().startsWith(pkg)) 
+         {
+            containerConfig = cc;                     
+         }
+      }
+      
+      // warn: we didn't find the class
+      if (containerConfig == null)
+      {
+         log.warning("No container configuration found for URI: java:urn:" + pkg);
+      }
+      
+      return containerConfig;
+   }
+   
+   /**
+    * Retrieves the DOM document object from the inputStream.
+    * @param inputStream the inputStream of the XML file.
+    * @return a loaded Document object for DOM manipulation.
+    * @throws Exception if the Document object couldn't be created.
+    */
+   private Document getDocument(InputStream inputStream) throws Exception 
+   {
+      Validate.notNull(inputStream, "No input stream specified");
+      
+      DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+      dbf.setNamespaceAware(true);
+      DocumentBuilder db = dbf.newDocumentBuilder();
+      Document document = db.parse(inputStream);
+   
+      document.getDocumentElement().normalize();
+      
+      return document;
+   }
+   
+   /**
+    * Converts a String value to the specified class.
+    * @param clazz
+    * @param value
+    * @return
+    */
+   private Object convert(Class<?> clazz, String value) 
+   {
+      /* TODO create a new Converter class and move this method there for reuse */
+      
+      if (Integer.class.equals(clazz) || int.class.equals(clazz)) 
+      {
+         return Integer.valueOf(value);
+      } 
+      else if (Double.class.equals(clazz) || double.class.equals(clazz)) 
+      {
+         return Double.valueOf(value);
+      } 
+      else if (Long.class.equals(clazz) || long.class.equals(clazz))
+      {
+         return Long.valueOf(value);
+      }
+      else if (Boolean.class.equals(clazz) || boolean.class.equals(clazz))
+      {
+         return Boolean.valueOf(value);
+      }
+      
+      return value;
+   }
+   
+   /**
+    * 
+    * @author <a href="mailto:german.escobarc at gmail.com">German Escobar</a>
+    */
+   private interface PropertiesMapper 
+   {
+      void map(Node element, Map<String,String> properties);
+   }
+
+   /**
+    * 
+    * @author <a href="mailto:german.escobarc at gmail.com">German Escobar</a>
+    */
+   private class TagNameAttributeMapper implements PropertiesMapper
+   {
+      @Override
+      public void map(Node element, Map<String, String> properties)
+      {
+         // retrieve the attributes of the element 
+         NamedNodeMap attributes = element.getAttributes();
+         
+         for (int k=0; k < attributes.getLength(); k++)
+         {
+            Node attribute = attributes.item(k);
+            
+            // build the property name
+            String attributeName = attribute.getNodeName();
+            String fullPropertyName = element.getLocalName() + Character.toUpperCase(attributeName.charAt(0)) 
+                  + attributeName.substring(1);
+           
+            // add the property name and its value
+            properties.put(fullPropertyName, attribute.getNodeValue());
+         }
+      }
+   }
+   
+   /**
+    * 
+    * @author <a href="mailto:german.escobarc at gmail.com">German Escobar</a>
+    */
+   private class TagNameMapper implements PropertiesMapper
+   {
+      @Override
+      public void map(Node element, Map<String, String> properties)
+      {
+         String value = "";
+         
+         if (!element.hasChildNodes()) 
+         {
+            throw new ConfigurationException("Node " + element.getNodeName() + " has no value");
+         }
+         
+         value = element.getChildNodes().item(0).getNodeValue();
+         properties.put(element.getLocalName(), value);
+      }
+      
+   }
+}

Added: arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/XmlConfigurationBuilderTestCase.java
===================================================================
--- arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/XmlConfigurationBuilderTestCase.java	                        (rev 0)
+++ arquillian/trunk/impl-base/src/test/java/org/jboss/arquillian/impl/XmlConfigurationBuilderTestCase.java	2010-04-20 14:53:59 UTC (rev 4268)
@@ -0,0 +1,205 @@
+/*
+ * 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.impl;
+
+import java.util.Collection;
+import java.util.Collections;
+
+import org.jboss.arquillian.spi.Configuration;
+import org.jboss.arquillian.spi.ConfigurationException;
+import org.jboss.arquillian.spi.ContainerConfiguration;
+import org.jboss.arquillian.spi.ContainerProfile;
+import org.jboss.arquillian.spi.ServiceLoader;
+import org.junit.Assert;
+import org.junit.Test;
+
+/**
+ * XmlConfigurationBuilderTestCase
+ *
+ * @author <a href="mailto:german.escobarc at gmail.com">German Escobar</a>
+ * @version $Revision: $
+ */
+public class XmlConfigurationBuilderTestCase
+{
+   /**
+    * Should return an empty Configuration object if the file doesn't exists.
+    * @throws Exception
+    */
+   @Test
+   public void testNonExistingConfigurationFile() throws Exception
+   {
+      ConfigurationBuilder builder = new XmlConfigurationBuilder("non-existing.xml");
+      Configuration configuration = builder.build();
+
+      Assert.assertNotNull(configuration);
+      Assert.assertNull(configuration.getContainerConfig(MockContainerConfiguration.class));
+   }
+   
+   /**
+    * Should process correctly a valid configuration file. Property mapper is also tested here.
+    * @throws Exception
+    */
+   @Test
+   public void testValidConfigurationFile() throws Exception 
+   {
+      // create a mock ServiceLoader that returns our MockContainerConfiguration
+      ServiceLoader serviceLoader = new MockServiceLoader();
+      
+      // build the configuration
+      ConfigurationBuilder builder = new XmlConfigurationBuilder("arquillian.xml", serviceLoader);
+      Configuration configuration = builder.build();
+      Assert.assertNotNull(configuration);
+      
+      // retrieve the container configuration
+      MockContainerConfiguration containerConfig = configuration.getContainerConfig(MockContainerConfiguration.class);
+      Assert.assertNotNull(containerConfig);
+      
+      // check that the properties have the correct value
+      Assert.assertEquals("hola", containerConfig.getPropertyString());
+      Assert.assertEquals(1, containerConfig.getPropertyInt());
+      Assert.assertEquals(2L, containerConfig.getPropertyLong());
+      Assert.assertEquals(3D, containerConfig.getPropertyDouble(), 0);
+      Assert.assertEquals(true, containerConfig.getPropertyBoolean());
+   }
+   
+   /**
+    * Should throw a ConfigurationException if 
+    * @throws Exception
+    */
+   @Test(expected=ConfigurationException.class)
+   public void testInvalidConfigurationFile() throws Exception
+   {
+      new XmlConfigurationBuilder("broken_arquillian.xml").build();
+   }
+
+   /**
+    * Should load the MocContainerConfiguration even if the defined resource file is missing.
+    * 
+    * @throws Exception
+    */
+   @Test
+   public void testLoadDefaultConfigurationOnMissingFile() throws Exception
+   {
+      Configuration configuration = new XmlConfigurationBuilder(
+            "missing_arquillian.xml", 
+            new MockServiceLoader()).build();
+      
+      ContainerConfiguration containerConfiguration = configuration.getActiveContainerConfiguration();
+      Assert.assertNotNull(containerConfiguration);
+      
+      MockContainerConfiguration mockContainerConfiguration = configuration.getContainerConfig(MockContainerConfiguration.class);
+      Assert.assertNotNull(mockContainerConfiguration);
+   }
+   
+   /**
+    * Mocks the ServiceLoader to return our MockContainerConfiguration
+    * 
+    * @author <a href="mailto:german.escobarc at gmail.com">German Escobar</a>
+    */
+   class MockServiceLoader implements ServiceLoader 
+   {
+      @SuppressWarnings("unchecked")
+      @Override
+      public <T> Collection<T> all(Class<T> serviceClass)
+      {
+         return (Collection<T>) Collections.singleton(new MockContainerConfiguration());
+      }
+
+      @SuppressWarnings("unchecked")
+      @Override
+      public <T> T onlyOne(Class<T> serviceClass)
+      {
+         return (T) new MockContainerConfiguration();
+      }
+   }
+   
+   /**
+    * Mocks a ContainerConfiguration implementation
+    * 
+    * @author <a href="mailto:german.escobarc at gmail.com">German Escobar</a>
+    */
+   class MockContainerConfiguration implements ContainerConfiguration
+   {
+      private String propertyString;
+      
+      private int propertyInt;
+      
+      private long propertyLong;
+      
+      private double propertyDouble;
+      
+      private boolean propertyBoolean;
+
+      @Override
+      public ContainerProfile getContainerProfile()
+      {
+         return ContainerProfile.STANDALONE;
+      }
+      
+      public String getPropertyString()
+      {
+         return propertyString;
+      }
+
+      public void setPropertyString(String propertyString)
+      {
+         this.propertyString = propertyString;
+      }
+
+      public int getPropertyInt()
+      {
+         return propertyInt;
+      }
+
+      public void setPropertyInt(int propertyInt)
+      {
+         this.propertyInt = propertyInt;
+      }
+
+      public long getPropertyLong()
+      {
+         return propertyLong;
+      }
+
+      public void setPropertyLong(long propertyLong)
+      {
+         this.propertyLong = propertyLong;
+      }
+
+      public double getPropertyDouble()
+      {
+         return propertyDouble;
+      }
+
+      public void setPropertyDouble(double propertyDouble)
+      {
+         this.propertyDouble = propertyDouble;
+      }
+
+      public boolean getPropertyBoolean()
+      {
+         return propertyBoolean;
+      }
+
+      public void setPropertyBoolean(boolean propertyBoolean)
+      {
+         this.propertyBoolean = propertyBoolean;
+      }
+      
+   }
+
+}

Added: arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/Configuration.java
===================================================================
--- arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/Configuration.java	                        (rev 0)
+++ arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/Configuration.java	2010-04-20 14:53:59 UTC (rev 4268)
@@ -0,0 +1,80 @@
+/*
+ * 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.spi;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Map.Entry;
+
+/**
+ * Holds the global Arquillian configuration and a Map of {@link ContainerConfiguration}
+ * implementations objects. It is built by 
+ * {@link org.jboss.arquillian.impl.ConfigurationBuilder}s
+ *
+ * @author <a href="mailto:german.escobarc at gmail.com">German Escobar</a>
+ * @version $Revision: $
+ */
+public class Configuration
+{  
+   /**
+    * A Map of container configuration objects
+    */
+   private Map<Class<? extends ContainerConfiguration>, ContainerConfiguration> containersConfig = 
+      new HashMap<Class<? extends ContainerConfiguration>, ContainerConfiguration>();
+
+   /**
+    * Puts a {@link ContainerConfiguration} implementation in the containersConfig
+    * field. If the {@link ContainerConfiguration} already exists, it just replaces
+    * it.
+    * @param containerConfig the {@link ContainerConfiguration} implementation to put.
+    */
+   public  void addContainerConfig(ContainerConfiguration containerConfig) 
+   {
+      containersConfig.put(containerConfig.getClass(), containerConfig);
+   }
+
+   /**
+    * Retrieves a {@link ContainerConfiguration} implementation that matches the clazz
+    * parameter.
+    * @param <T>
+    * @param clazz The actual class of the {@link ContainerConfiguration} we are looking
+    * for.
+    * @return the {@link ContainerConfiguration} implementation that matches the clazz
+    * parameter, null otherwise.
+    */
+   public <T extends ContainerConfiguration> T getContainerConfig(Class<T> clazz)
+   {
+      return clazz.cast(containersConfig.get(clazz));
+   }
+   
+   /**
+    * 
+    * @return
+    * @deprecated
+    */
+   // TODO: figure out permanent solution 
+   public ContainerConfiguration getActiveContainerConfiguration() 
+   {
+      Iterator<Entry<Class<? extends ContainerConfiguration>, ContainerConfiguration>> itr = containersConfig.entrySet().iterator();
+      if(itr.hasNext()) 
+      {
+         return itr.next().getValue();
+      }
+      return null;
+   }
+}

Added: arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/ConfigurationException.java
===================================================================
--- arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/ConfigurationException.java	                        (rev 0)
+++ arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/ConfigurationException.java	2010-04-20 14:53:59 UTC (rev 4268)
@@ -0,0 +1,45 @@
+/*
+ * 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.spi;
+
+/**
+ * ConfigurationException
+ *
+ * @author <a href="mailto:german.escobarc at gmail.com">German Escobar</a>
+ * @version $Revision: $
+ */
+public class ConfigurationException extends RuntimeException
+{
+   
+   private static final long serialVersionUID = 1L;
+
+   public ConfigurationException(String message)
+   {
+      super(message);
+   }
+
+   public ConfigurationException(Throwable cause)
+   {
+      super(cause);
+   }
+
+   public ConfigurationException(String message, Throwable cause)
+   {
+      super(message, cause);
+   }
+
+}

Added: arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/ContainerConfiguration.java
===================================================================
--- arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/ContainerConfiguration.java	                        (rev 0)
+++ arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/ContainerConfiguration.java	2010-04-20 14:53:59 UTC (rev 4268)
@@ -0,0 +1,33 @@
+/*
+w * 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.spi;
+
+/**
+ * A marker for container configuration implementations.
+ *
+ * @author <a href="mailto:german.escobarc at gmail.com">German Escobar</a>
+ * @version $Revision: $
+ */
+public interface ContainerConfiguration
+{
+   /**
+    * 
+    * @return
+    */
+   ContainerProfile getContainerProfile();
+   
+}

Added: arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/ContainerProfile.java
===================================================================
--- arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/ContainerProfile.java	                        (rev 0)
+++ arquillian/trunk/spi/src/main/java/org/jboss/arquillian/spi/ContainerProfile.java	2010-04-20 14:53:59 UTC (rev 4268)
@@ -0,0 +1,31 @@
+/*
+ * 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.spi;
+
+/**
+ * ContainerProfile
+ *
+ * @author <a href="mailto:aknutsen at redhat.com">Aslak Knutsen</a>
+ * @version $Revision: $
+ */
+public enum ContainerProfile 
+{
+   CLIENT,
+   CONTAINER,
+   STANDALONE
+}
+



More information about the jboss-svn-commits mailing list