[jboss-svn-commits] JBoss Common SVN: r4548 - in arquillian/trunk: containers/osgi-embedded and 21 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Jun 24 04:50:20 EDT 2010
Author: thomas.diesler at jboss.com
Date: 2010-06-24 04:50:17 -0400 (Thu, 24 Jun 2010)
New Revision: 4548
Added:
arquillian/trunk/protocols/jmx/
arquillian/trunk/protocols/jmx/pom.xml
arquillian/trunk/protocols/jmx/src/
arquillian/trunk/protocols/jmx/src/main/
arquillian/trunk/protocols/jmx/src/main/java/
arquillian/trunk/protocols/jmx/src/main/java/org/
arquillian/trunk/protocols/jmx/src/main/java/org/jboss/
arquillian/trunk/protocols/jmx/src/main/java/org/jboss/arquillian/
arquillian/trunk/protocols/jmx/src/main/java/org/jboss/arquillian/protocol/
arquillian/trunk/protocols/jmx/src/main/java/org/jboss/arquillian/protocol/jmx/
arquillian/trunk/protocols/jmx/src/main/java/org/jboss/arquillian/protocol/jmx/JMXMethodExecutor.java
arquillian/trunk/protocols/jmx/src/main/java/org/jboss/arquillian/protocol/jmx/JMXTestRunner.java
arquillian/trunk/protocols/jmx/src/main/java/org/jboss/arquillian/protocol/jmx/JMXTestRunnerMBean.java
arquillian/trunk/protocols/jmx/src/test/
arquillian/trunk/protocols/jmx/src/test/java/
arquillian/trunk/protocols/jmx/src/test/java/org/
arquillian/trunk/protocols/jmx/src/test/java/org/jboss/
arquillian/trunk/protocols/jmx/src/test/java/org/jboss/arquillian/
arquillian/trunk/protocols/jmx/src/test/java/org/jboss/arquillian/jmx/
arquillian/trunk/protocols/jmx/src/test/java/org/jboss/arquillian/jmx/DummyTestCase.java
arquillian/trunk/protocols/jmx/src/test/java/org/jboss/arquillian/jmx/JMXTestRunnerTestCase.java
arquillian/trunk/protocols/jmx/src/test/resources/
arquillian/trunk/protocols/jmx/src/test/resources/META-INF/
arquillian/trunk/protocols/jmx/src/test/resources/META-INF/services/
arquillian/trunk/protocols/jmx/src/test/resources/META-INF/services/org.jboss.arquillian.spi.TestRunner
Modified:
arquillian/trunk/.gitignore
arquillian/trunk/containers/osgi-embedded/pom.xml
arquillian/trunk/containers/osgi-embedded/src/main/java/org/jboss/arquillian/osgi/OSGiEmbeddedFrameworkContainer.java
arquillian/trunk/containers/osgi-embedded/src/test/java/org/jboss/arquillian/osgi/OSGiEmbeddedFrameworkTestCase.java
arquillian/trunk/protocols/pom.xml
Log:
osgi: Add jmx protocoll - not functional
Modified: arquillian/trunk/.gitignore
===================================================================
--- arquillian/trunk/.gitignore 2010-06-24 08:47:58 UTC (rev 4547)
+++ arquillian/trunk/.gitignore 2010-06-24 08:50:17 UTC (rev 4548)
@@ -51,6 +51,8 @@
packagers/javaee/.project
packagers/javaee/.settings/
packagers/javaee/target
+protocols/jmx/.classpath
+protocols/jmx/target
protocols/local/.classpath
protocols/local/target
packagers/osgi/target/
Modified: arquillian/trunk/containers/osgi-embedded/pom.xml
===================================================================
--- arquillian/trunk/containers/osgi-embedded/pom.xml 2010-06-24 08:47:58 UTC (rev 4547)
+++ arquillian/trunk/containers/osgi-embedded/pom.xml 2010-06-24 08:50:17 UTC (rev 4548)
@@ -38,7 +38,7 @@
</dependency>
<dependency>
<groupId>org.jboss.arquillian.protocol</groupId>
- <artifactId>arquillian-protocol-local</artifactId>
+ <artifactId>arquillian-protocol-jmx</artifactId>
<version>${project.version}</version>
</dependency>
Modified: arquillian/trunk/containers/osgi-embedded/src/main/java/org/jboss/arquillian/osgi/OSGiEmbeddedFrameworkContainer.java
===================================================================
--- arquillian/trunk/containers/osgi-embedded/src/main/java/org/jboss/arquillian/osgi/OSGiEmbeddedFrameworkContainer.java 2010-06-24 08:47:58 UTC (rev 4547)
+++ arquillian/trunk/containers/osgi-embedded/src/main/java/org/jboss/arquillian/osgi/OSGiEmbeddedFrameworkContainer.java 2010-06-24 08:50:17 UTC (rev 4548)
@@ -17,7 +17,7 @@
package org.jboss.arquillian.osgi;
import org.jboss.arquillian.packager.osgi.BundleArchive;
-import org.jboss.arquillian.protocol.local.LocalMethodExecutor;
+import org.jboss.arquillian.protocol.jmx.JMXMethodExecutor;
import org.jboss.arquillian.spi.Configuration;
import org.jboss.arquillian.spi.ContainerMethodExecutor;
import org.jboss.arquillian.spi.Context;
@@ -107,7 +107,7 @@
{
throw new DeploymentException("Cannot deploy: " + archive, ex);
}
- return new LocalMethodExecutor();
+ return new JMXMethodExecutor();
}
@Override
Modified: arquillian/trunk/containers/osgi-embedded/src/test/java/org/jboss/arquillian/osgi/OSGiEmbeddedFrameworkTestCase.java
===================================================================
--- arquillian/trunk/containers/osgi-embedded/src/test/java/org/jboss/arquillian/osgi/OSGiEmbeddedFrameworkTestCase.java 2010-06-24 08:47:58 UTC (rev 4547)
+++ arquillian/trunk/containers/osgi-embedded/src/test/java/org/jboss/arquillian/osgi/OSGiEmbeddedFrameworkTestCase.java 2010-06-24 08:50:17 UTC (rev 4548)
@@ -45,6 +45,11 @@
@RunWith(Arquillian.class)
public class OSGiEmbeddedFrameworkTestCase
{
+ public OSGiEmbeddedFrameworkTestCase()
+ {
+ System.out.println("new OSGiEmbeddedFrameworkTestCase");
+ }
+
@Deployment
public static JavaArchive createdeployment()
{
Added: arquillian/trunk/protocols/jmx/pom.xml
===================================================================
--- arquillian/trunk/protocols/jmx/pom.xml (rev 0)
+++ arquillian/trunk/protocols/jmx/pom.xml 2010-06-24 08:50:17 UTC (rev 4548)
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <!-- Parent -->
+ <parent>
+ <groupId>org.jboss.arquillian</groupId>
+ <artifactId>arquillian-build</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <relativePath>../../build/pom.xml</relativePath>
+ </parent>
+
+ <!-- Model Version -->
+ <modelVersion>4.0.0</modelVersion>
+
+ <!-- Artifact Configuration -->
+ <groupId>org.jboss.arquillian.protocol</groupId>
+ <artifactId>arquillian-protocol-jmx</artifactId>
+ <name>Arquillian Protocol Local</name>
+ <description>Protocol handler for communicating whithin the same Java VM</description>
+
+
+ <!-- Properties -->
+ <properties>
+
+ <!-- Versioning -->
+
+ </properties>
+
+ <!-- Dependencies -->
+ <dependencies>
+
+ <!-- org.jboss.arquillian -->
+ <dependency>
+ <groupId>org.jboss.arquillian</groupId>
+ <artifactId>arquillian-spi</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.arquillian</groupId>
+ <artifactId>arquillian-junit</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ </dependencies>
+</project>
+
Added: arquillian/trunk/protocols/jmx/src/main/java/org/jboss/arquillian/protocol/jmx/JMXMethodExecutor.java
===================================================================
--- arquillian/trunk/protocols/jmx/src/main/java/org/jboss/arquillian/protocol/jmx/JMXMethodExecutor.java (rev 0)
+++ arquillian/trunk/protocols/jmx/src/main/java/org/jboss/arquillian/protocol/jmx/JMXMethodExecutor.java 2010-06-24 08:50:17 UTC (rev 4548)
@@ -0,0 +1,54 @@
+/*
+ * 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.protocol.jmx;
+
+import org.jboss.arquillian.spi.ContainerMethodExecutor;
+import org.jboss.arquillian.spi.TestMethodExecutor;
+import org.jboss.arquillian.spi.TestResult;
+import org.jboss.arquillian.spi.TestResult.Status;
+
+/**
+ * JMXMethodExecutor
+ *
+ * @author thomas.diesler at jboss.com
+ * @version $Revision: $
+ */
+public class JMXMethodExecutor implements ContainerMethodExecutor
+{
+ @Override
+ public TestResult invoke(TestMethodExecutor testMethodExecutor)
+ {
+ TestResult result = new TestResult();
+ try
+ {
+ testMethodExecutor.invoke();
+ result.setStatus(Status.PASSED);
+ }
+ catch (final Throwable e)
+ {
+ /*
+ * TODO: the internal state TestResult is FAILED with Exception set, but it might have passed
+ * due to the TestFrameworks ExpectedExceptions. We need to know this information to set the correct state.
+ */
+
+ result.setStatus(Status.FAILED);
+ result.setThrowable(e);
+ }
+ result.setEnd(System.currentTimeMillis());
+ return result;
+ }
+}
\ No newline at end of file
Added: arquillian/trunk/protocols/jmx/src/main/java/org/jboss/arquillian/protocol/jmx/JMXTestRunner.java
===================================================================
--- arquillian/trunk/protocols/jmx/src/main/java/org/jboss/arquillian/protocol/jmx/JMXTestRunner.java (rev 0)
+++ arquillian/trunk/protocols/jmx/src/main/java/org/jboss/arquillian/protocol/jmx/JMXTestRunner.java 2010-06-24 08:50:17 UTC (rev 4548)
@@ -0,0 +1,81 @@
+/*
+ * 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.protocol.jmx;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.ObjectOutputStream;
+
+import org.jboss.arquillian.spi.TestResult;
+import org.jboss.arquillian.spi.TestResult.Status;
+import org.jboss.arquillian.spi.TestRunner;
+import org.jboss.arquillian.spi.util.TestRunners;
+
+/**
+ * An MBean to run test methods in container.
+ *
+ * @author thomas.diesler at jboss.com
+ * @version $Revision: $
+ */
+public class JMXTestRunner implements JMXTestRunnerMBean
+{
+ @Override
+ public TestResult runTestMethodLocal(String className, String methodName)
+ {
+ return runTestMethodInternal(className, methodName);
+ }
+
+ @Override
+ public InputStream runTestMethodRemote(String className, String methodName)
+ {
+ TestResult result = runTestMethodInternal(className, methodName);
+
+ // Marshall the TestResult
+ try
+ {
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ ObjectOutputStream oos = new ObjectOutputStream(baos);
+ oos.writeObject(result);
+ oos.close();
+
+ return new ByteArrayInputStream(baos.toByteArray());
+ }
+ catch (IOException ex)
+ {
+ throw new IllegalStateException("Cannot marshall response", ex);
+ }
+ }
+
+ private TestResult runTestMethodInternal(String className, String methodName)
+ {
+ try
+ {
+ Class<?> testClass = Thread.currentThread().getContextClassLoader().loadClass(className);
+
+ TestRunner runner = TestRunners.getTestRunner();
+
+ TestResult testResult = runner.execute(testClass, methodName);
+ return testResult;
+ }
+ catch(Throwable th)
+ {
+ return new TestResult(Status.FAILED, th);
+ }
+ }
+}
Added: arquillian/trunk/protocols/jmx/src/main/java/org/jboss/arquillian/protocol/jmx/JMXTestRunnerMBean.java
===================================================================
--- arquillian/trunk/protocols/jmx/src/main/java/org/jboss/arquillian/protocol/jmx/JMXTestRunnerMBean.java (rev 0)
+++ arquillian/trunk/protocols/jmx/src/main/java/org/jboss/arquillian/protocol/jmx/JMXTestRunnerMBean.java 2010-06-24 08:50:17 UTC (rev 4548)
@@ -0,0 +1,48 @@
+/*
+ * 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.protocol.jmx;
+
+import java.io.InputStream;
+
+import org.jboss.arquillian.spi.TestResult;
+
+/**
+ * An MBean to run test methods in container.
+ *
+ * @author thomas.diesler at jboss.com
+ * @version $Revision: $
+ */
+public interface JMXTestRunnerMBean
+{
+ /**
+ * Runs a test method on the given test class
+ *
+ * @param className the test class name
+ * @param methodName the test method name
+ * @return the input stream to read the {@link TestResult} from
+ */
+ InputStream runTestMethodRemote(String className, String methodName);
+
+ /**
+ * Runs a test method on the given test class
+ *
+ * @param className the test class name
+ * @param methodName the test method name
+ * @return the {@link TestResult}
+ */
+ TestResult runTestMethodLocal(String className, String methodName);
+}
Added: arquillian/trunk/protocols/jmx/src/test/java/org/jboss/arquillian/jmx/DummyTestCase.java
===================================================================
--- arquillian/trunk/protocols/jmx/src/test/java/org/jboss/arquillian/jmx/DummyTestCase.java (rev 0)
+++ arquillian/trunk/protocols/jmx/src/test/java/org/jboss/arquillian/jmx/DummyTestCase.java 2010-06-24 08:50:17 UTC (rev 4548)
@@ -0,0 +1,27 @@
+/*
+ * 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.jmx;
+
+import org.junit.Test;
+
+public class DummyTestCase
+{
+ @Test
+ public void testMethod() throws Exception
+ {
+ }
+}
Added: arquillian/trunk/protocols/jmx/src/test/java/org/jboss/arquillian/jmx/JMXTestRunnerTestCase.java
===================================================================
--- arquillian/trunk/protocols/jmx/src/test/java/org/jboss/arquillian/jmx/JMXTestRunnerTestCase.java (rev 0)
+++ arquillian/trunk/protocols/jmx/src/test/java/org/jboss/arquillian/jmx/JMXTestRunnerTestCase.java 2010-06-24 08:50:17 UTC (rev 4548)
@@ -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.jmx;
+
+import static org.junit.Assert.*;
+
+import org.jboss.arquillian.protocol.jmx.JMXTestRunner;
+import org.jboss.arquillian.spi.TestResult;
+import org.jboss.arquillian.spi.TestResult.Status;
+import org.junit.Test;
+
+
+/**
+ * Test the {@link JMXTestRunner}
+ *
+ * @author thomas.diesler at jboss.com
+ * @version $Revision: $
+ */
+public class JMXTestRunnerTestCase
+{
+ @Test
+ public void testFrameworkInjection() throws Throwable
+ {
+ JMXTestRunner testRunner = new JMXTestRunner();
+ TestResult result = testRunner.runTestMethodLocal(DummyTestCase.class.getName(), "testMethod");
+ assertNotNull("TestResult not null", result);
+ assertNotNull("Status not null", result.getStatus());
+ if (result.getStatus() == Status.FAILED)
+ throw result.getThrowable();
+ }
+}
Added: arquillian/trunk/protocols/jmx/src/test/resources/META-INF/services/org.jboss.arquillian.spi.TestRunner
===================================================================
--- arquillian/trunk/protocols/jmx/src/test/resources/META-INF/services/org.jboss.arquillian.spi.TestRunner (rev 0)
+++ arquillian/trunk/protocols/jmx/src/test/resources/META-INF/services/org.jboss.arquillian.spi.TestRunner 2010-06-24 08:50:17 UTC (rev 4548)
@@ -0,0 +1 @@
+org.jboss.arquillian.junit.JUnitTestRunner
\ No newline at end of file
Modified: arquillian/trunk/protocols/pom.xml
===================================================================
--- arquillian/trunk/protocols/pom.xml 2010-06-24 08:47:58 UTC (rev 4547)
+++ arquillian/trunk/protocols/pom.xml 2010-06-24 08:50:17 UTC (rev 4548)
@@ -29,6 +29,7 @@
<module>servlet-ee5</module>
<module>servlet-ee6</module>
<module>local</module>
+ <module>jmx</module>
</modules>
More information about the jboss-svn-commits
mailing list