[jboss-cvs] JBossAS SVN: r100180 - in projects/embedded/trunk/testsuite-jbosshomecl: src/test/java/org/jboss/embedded/testsuite/jbosshomecl and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Sun Jan 31 12:46:35 EST 2010
Author: ALRubinger
Date: 2010-01-31 12:46:34 -0500 (Sun, 31 Jan 2010)
New Revision: 100180
Added:
projects/embedded/trunk/testsuite-jbosshomecl/src/test/java/org/jboss/embedded/testsuite/jbosshomecl/EchoBean.java
projects/embedded/trunk/testsuite-jbosshomecl/src/test/java/org/jboss/embedded/testsuite/jbosshomecl/EchoLocalBusiness.java
Modified:
projects/embedded/trunk/testsuite-jbosshomecl/pom.xml
projects/embedded/trunk/testsuite-jbosshomecl/src/test/java/org/jboss/embedded/testsuite/jbosshomecl/JBossHomeClassLoaderIntegrationTest.java
Log:
[EMB-82] Add test for deployment into server (should not cause NCDFE)
Modified: projects/embedded/trunk/testsuite-jbosshomecl/pom.xml
===================================================================
--- projects/embedded/trunk/testsuite-jbosshomecl/pom.xml 2010-01-31 17:38:39 UTC (rev 100179)
+++ projects/embedded/trunk/testsuite-jbosshomecl/pom.xml 2010-01-31 17:46:34 UTC (rev 100180)
@@ -44,6 +44,7 @@
<goal>test</goal>
</goals>
<configuration>
+ <!-- Required for server start; ORB Singleton -->
<additionalClasspathElements>
<additionalClasspathElement>${JBOSS_HOME}/bin/run.jar</additionalClasspathElement>
</additionalClasspathElements>
@@ -126,6 +127,18 @@
<version>${version}</version>
<scope>test</scope>
</dependency>
+
+ <dependency>
+ <groupId>org.jboss.ejb3</groupId>
+ <artifactId>jboss-ejb3-api</artifactId>
+ <scope>provided</scope>
+ <version>3.1.0-Alpha1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.shrinkwrap</groupId>
+ <artifactId>shrinkwrap-impl-base</artifactId>
+ <scope>test</scope>
+ </dependency>
<!-- JUnit -->
<dependency>
Added: projects/embedded/trunk/testsuite-jbosshomecl/src/test/java/org/jboss/embedded/testsuite/jbosshomecl/EchoBean.java
===================================================================
--- projects/embedded/trunk/testsuite-jbosshomecl/src/test/java/org/jboss/embedded/testsuite/jbosshomecl/EchoBean.java (rev 0)
+++ projects/embedded/trunk/testsuite-jbosshomecl/src/test/java/org/jboss/embedded/testsuite/jbosshomecl/EchoBean.java 2010-01-31 17:46:34 UTC (rev 100180)
@@ -0,0 +1,63 @@
+/*
+ * 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.embedded.testsuite.jbosshomecl;
+
+import javax.ejb.Stateless;
+
+/**
+ *
+ *
+ * @author <a href="mailto:andrew.rubinger at jboss.org">ALR</a>
+ * @version $Revision: $
+ */
+ at Stateless
+public class EchoBean implements EchoLocalBusiness
+{
+
+ /* (non-Javadoc)
+ * @see org.jboss.embedded.testsuite.jbosshomecl.EchoLocalBusiness#echo(java.lang.String)
+ */
+ @Override
+ public String echo(String echo)
+ {
+ return echo;
+ }
+
+ //-------------------------------------------------------------------------------------||
+ // Class Members ----------------------------------------------------------------------||
+ //-------------------------------------------------------------------------------------||
+
+ //-------------------------------------------------------------------------------------||
+ // Instance Members -------------------------------------------------------------------||
+ //-------------------------------------------------------------------------------------||
+
+ //-------------------------------------------------------------------------------------||
+ // Constructor ------------------------------------------------------------------------||
+ //-------------------------------------------------------------------------------------||
+
+ //-------------------------------------------------------------------------------------||
+ // Required Implementations -----------------------------------------------------------||
+ //-------------------------------------------------------------------------------------||
+
+ //-------------------------------------------------------------------------------------||
+ // Functional Methods -----------------------------------------------------------------||
+ //-------------------------------------------------------------------------------------||
+
+ //-------------------------------------------------------------------------------------||
+ // Internal Helper Methods ------------------------------------------------------------||
+ //-------------------------------------------------------------------------------------||
+}
Added: projects/embedded/trunk/testsuite-jbosshomecl/src/test/java/org/jboss/embedded/testsuite/jbosshomecl/EchoLocalBusiness.java
===================================================================
--- projects/embedded/trunk/testsuite-jbosshomecl/src/test/java/org/jboss/embedded/testsuite/jbosshomecl/EchoLocalBusiness.java (rev 0)
+++ projects/embedded/trunk/testsuite-jbosshomecl/src/test/java/org/jboss/embedded/testsuite/jbosshomecl/EchoLocalBusiness.java 2010-01-31 17:46:34 UTC (rev 100180)
@@ -0,0 +1,9 @@
+package org.jboss.embedded.testsuite.jbosshomecl;
+
+import javax.ejb.Local;
+
+ at Local
+public interface EchoLocalBusiness
+{
+ String echo(String echo);
+}
Modified: projects/embedded/trunk/testsuite-jbosshomecl/src/test/java/org/jboss/embedded/testsuite/jbosshomecl/JBossHomeClassLoaderIntegrationTest.java
===================================================================
--- projects/embedded/trunk/testsuite-jbosshomecl/src/test/java/org/jboss/embedded/testsuite/jbosshomecl/JBossHomeClassLoaderIntegrationTest.java 2010-01-31 17:38:39 UTC (rev 100179)
+++ projects/embedded/trunk/testsuite-jbosshomecl/src/test/java/org/jboss/embedded/testsuite/jbosshomecl/JBossHomeClassLoaderIntegrationTest.java 2010-01-31 17:46:34 UTC (rev 100180)
@@ -26,14 +26,21 @@
import java.net.URL;
import java.util.HashSet;
import java.util.Set;
+import java.util.logging.Level;
import java.util.logging.Logger;
+import javax.naming.Context;
+
import junit.framework.TestCase;
import org.jboss.bootstrap.api.lifecycle.LifecycleState;
import org.jboss.embedded.api.server.JBossASEmbeddedServer;
import org.jboss.embedded.api.server.JBossASEmbeddedServerFactory;
import org.jboss.embedded.api.server.JBossHomeClassLoader;
+import org.jboss.shrinkwrap.api.Archives;
+import org.jboss.shrinkwrap.api.spec.JavaArchive;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
import org.junit.Test;
/**
@@ -64,6 +71,16 @@
private static JBossASEmbeddedServer server;
/**
+ * Initial TCCL
+ */
+ private static ClassLoader originalCl;
+
+ /**
+ * Naming Context
+ */
+ private static Context context;
+
+ /**
* Name of the server configuration to use
*/
private static final String NAME_SERVER_CONFIG = "all";
@@ -77,17 +94,17 @@
* dependency set, and the {@link JBossHomeClassLoader} to bring
* in the required visibility
*/
- @Test
- public void startEmbeddedUsingJBossHomeClassLoader() throws Exception
+ @BeforeClass
+ public static void startEmbeddedUsingJBossHomeClassLoader() throws Exception
{
// Get JBOSS_HOME
- final URL jbossHome = this.getJBossHome();
+ final URL jbossHome = getJBossHome();
// Get additional binaries which need CL visibility (ie. jboss-embedded-core,
// which is placed under "target/deps" by the build). These
// binaries are not presently available under $JBOSS_HOME
final Set<URL> additionalUrls = new HashSet<URL>();
- final URL source = this.getClass().getProtectionDomain().getCodeSource().getLocation();
+ final URL source = JBossHomeClassLoaderIntegrationTest.class.getProtectionDomain().getCodeSource().getLocation();
final URL target = new URL(source, "..");
final URL additionalDeps = new URL(target, "deps");
final File deps = new File(additionalDeps.toURI());
@@ -100,10 +117,10 @@
}
// Make the new ClassLoader
- final ClassLoader oldCl = Thread.currentThread().getContextClassLoader();
+ originalCl = Thread.currentThread().getContextClassLoader();
final ClassLoader jbossHomeClassLoader = JBossHomeClassLoader.newInstance(jbossHome, additionalUrls
.toArray(new URL[]
- {}), oldCl);
+ {}), originalCl);
// Make Server
server = JBossASEmbeddedServerFactory.createServer(jbossHomeClassLoader);
@@ -115,29 +132,75 @@
// Set TCCL
Thread.currentThread().setContextClassLoader(jbossHomeClassLoader);
+ log.info("JBossHome CL:" + jbossHomeClassLoader);
- try
+ // Start the Server
+ server.start();
+ log.info("...started.");
+
+ // final URLClassLoader urlcl = new URLClassLoader(new URL[]
+ // {new URL(getJBossHome(), "client/jbossall-client.jar")}, jbossHomeClassLoader);
+ // Thread.currentThread().setContextClassLoader(urlcl);
+ //
+ // Properties properties = new Properties();
+ // properties.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
+ // properties.setProperty("java.naming.provider.url", "http://localhost:1099");
+ // properties.setProperty("java.naming.factory.url.pkgs", "org.jnp.interfaces.NamingContextFactory");
+ // context = new InitialContext(properties);
+ // Thread.currentThread().setContextClassLoader(jbossHomeClassLoader);
+
+ }
+
+ @AfterClass
+ public static void stopServer() throws Exception
+ {
+ if (server != null & server.getState().equals(LifecycleState.STARTED))
{
- // Start the Server
- server.start();
- log.info("...started.");
+ server.shutdown();
+ }
+ // Reset the TCCL
+ Thread.currentThread().setContextClassLoader(originalCl);
- // Test
- TestCase.assertEquals("Server did not report started as expected", LifecycleState.STARTED, server.getState());
+ }
- // Shutdown if started
- if (server != null && server.getState().equals(LifecycleState.STARTED))
- {
- // Shutdown
- log.info("Shutting down server: " + server);
- server.shutdown();
- }
+ @Test
+ public void serverStarted()
+ {
+ // Test
+ TestCase.assertEquals("Server did not report started as expected", LifecycleState.STARTED, server.getState());
+ }
+
+ /**
+ * Ensures we can deploy into the server
+ * @throws Exception
+ */
+ @Test
+ public void testDeployment() throws Exception
+ {
+
+ // Create an archive
+ final JavaArchive archive = Archives.create("slsb.jar", JavaArchive.class).addClasses(EchoBean.class,
+ EchoLocalBusiness.class);
+
+ // Deploy/undeploy
+ try
+ {
+ server.deploy(archive);
+ server.undeploy(archive);
}
- finally
+ // EMB-82
+ catch (final NoClassDefFoundError e)
{
- // Reset the TCCL
- Thread.currentThread().setContextClassLoader(oldCl);
+ final String msg = "Problem in ClassLoading setup";
+ log.log(Level.SEVERE, msg, e);
+ TestCase.fail(msg + e.getMessage());
}
+ catch (final Exception e)
+ {
+ final String msg = "Deployment failed";
+ log.log(Level.SEVERE, msg, e);
+ TestCase.fail(msg + e.getMessage());
+ }
}
//-------------------------------------------------------------------------------||
@@ -149,7 +212,7 @@
*
* @return
*/
- private URL getJBossHome()
+ private static URL getJBossHome()
{
try
{
More information about the jboss-cvs-commits
mailing list