[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