[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