[jboss-cvs] JBossAS SVN: r67024 - in trunk/ejb3/src: main/org/jboss/ejb3/deployers and 2 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Nov 13 10:26:08 EST 2007


Author: wolfc
Date: 2007-11-13 10:26:08 -0500 (Tue, 13 Nov 2007)
New Revision: 67024

Modified:
   trunk/ejb3/src/main/org/jboss/ejb3/client/ClientLauncher.java
   trunk/ejb3/src/main/org/jboss/ejb3/deployers/Ejb3ClientDeployer.java
   trunk/ejb3/src/resources/test/appclient/jboss-client.xml
   trunk/ejb3/src/test/org/jboss/ejb3/test/appclient/unit/AppClientUnitTestCase.java
   trunk/ejb3/src/test/org/jboss/ejb3/test/appclient/unit/SimpleResourceEarUnitTestCase.java
   trunk/ejb3/src/test/org/jboss/ejb3/test/appclient/unit/SimpleResourceUnitTestCase.java
Log:
EJBTHREE-1067: using the server side meta data instead of parsing

Modified: trunk/ejb3/src/main/org/jboss/ejb3/client/ClientLauncher.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/ejb3/client/ClientLauncher.java	2007-11-13 15:17:39 UTC (rev 67023)
+++ trunk/ejb3/src/main/org/jboss/ejb3/client/ClientLauncher.java	2007-11-13 15:26:08 UTC (rev 67024)
@@ -22,27 +22,22 @@
 package org.jboss.ejb3.client;
 
 import java.io.IOException;
-import java.io.InputStream;
 import java.net.URL;
 import java.net.URLClassLoader;
 import java.util.ArrayList;
 import java.util.List;
 
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+
 import org.jboss.client.AppClientLauncher;
+import org.jboss.ejb3.metamodel.ApplicationClientDD;
+import org.jboss.ejb3.metamodel.ApplicationClientDDObjectFactory;
+import org.jboss.ejb3.metamodel.JBossClientDDObjectFactory;
 import org.jboss.logging.Logger;
-import org.jboss.metadata.client.jboss.JBossClient5DTDMetaData;
-import org.jboss.metadata.client.jboss.JBossClient5MetaData;
 import org.jboss.metadata.client.jboss.JBossClientMetaData;
-import org.jboss.metadata.client.spec.ApplicationClient14DTDMetaData;
-import org.jboss.metadata.client.spec.ApplicationClient14MetaData;
-import org.jboss.metadata.client.spec.ApplicationClient5MetaData;
-import org.jboss.metadata.client.spec.ApplicationClientMetaData;
 import org.jboss.util.NotImplementedException;
 import org.jboss.xb.binding.JBossXBException;
-import org.jboss.xb.binding.Unmarshaller;
-import org.jboss.xb.binding.UnmarshallerFactory;
-import org.jboss.xb.binding.sunday.unmarshalling.DefaultSchemaResolver;
-import org.jboss.xb.binding.sunday.unmarshalling.SingletonSchemaResolverFactory;
 
 /**
  * This class launches a JavaEE 5 application client.
@@ -59,39 +54,6 @@
 {
    private static final Logger log = Logger.getLogger(ClientLauncher.class);
    
-   /** The unmarshaller factory */
-   private static UnmarshallerFactory factory = UnmarshallerFactory.newInstance();
-   
-   /** The schema resolver */
-   private static DefaultSchemaResolver resolver = (DefaultSchemaResolver) SingletonSchemaResolverFactory.getInstance().getSchemaBindingResolver();
-   
-   static
-   {
-      // FIXME hardwiring
-      resolver.addClassBindingForLocation("application-client", ApplicationClient14DTDMetaData.class);
-      resolver.addClassBindingForLocation("application-client_1_2.dtd", ApplicationClient14DTDMetaData.class);
-      resolver.addClassBindingForLocation("application-client_1_3.dtd", ApplicationClient14DTDMetaData.class);
-      resolver.addClassBindingForLocation("application-client_1_4.xsd", ApplicationClient14MetaData.class);
-      resolver.addClassBindingForLocation("application-client_5.xsd", ApplicationClient5MetaData.class);
-      resolver.addClassBindingForLocation("jboss-client", JBossClient5DTDMetaData.class);
-      resolver.addClassBindingForLocation("jboss-client_3_0.dtd", JBossClient5DTDMetaData.class);
-      resolver.addClassBindingForLocation("jboss-client_3_2.dtd", JBossClient5DTDMetaData.class);
-      resolver.addClassBindingForLocation("jboss-client_4_0.dtd", JBossClient5DTDMetaData.class);
-      resolver.addClassBindingForLocation("jboss-client_4_2.dtd", JBossClient5DTDMetaData.class);
-      resolver.addClassBindingForLocation("jboss-client_5_0.dtd", JBossClient5DTDMetaData.class);
-      resolver.addClassBindingForLocation("jboss-client_5_0.xsd", JBossClient5MetaData.class);
-   }
-   
-   private static URL findResource(String resourceName)
-   {
-      URL url;
-      if(Thread.currentThread().getContextClassLoader() instanceof URLClassLoader)
-         url = ((URLClassLoader) Thread.currentThread().getContextClassLoader()).findResource(resourceName);
-      else
-         url = Thread.currentThread().getContextClassLoader().getResource(resourceName);
-      return url;
-   }
-   
    /**
     * Convenience method for launching a client container.
     * 
@@ -121,97 +83,21 @@
     * @throws IOException 
     * @throws JBossXBException 
     */
-   public static JBossClientMetaData loadXML() throws JBossXBException, IOException
+   public static JBossClientMetaData loadXML(String applicationClientName) throws NamingException
    {
+      /*
       URL url = findResource("META-INF/application-client.xml");
       log.trace("application-client.xml found at " + url);
       URL jbossClientURL = findResource("META-INF/jboss-client.xml");
       log.trace("jboss-client.xml found at " + jbossClientURL);
       return loadXML(url, jbossClientURL);
+      */
+      log.warn("FIXME: using an unsupported hack to get metadata");
+      InitialContext ctx = new InitialContext();
+      JBossClientMetaData metaData = (JBossClientMetaData) ctx.lookup(applicationClientName + "/metaData");
+      return metaData;
    }
    
-   @Deprecated
-   public static JBossClientMetaData loadXML(String urlSpec) throws JBossXBException, IOException
-   {
-      URL url = new URL(urlSpec);
-      return loadXML(url, null);
-   }
-   
-   public static Unmarshaller createUnmarshaller() throws JBossXBException, IOException
-   {
-      Unmarshaller unmarshaller = factory.newUnmarshaller();
-      unmarshaller.setSchemaValidation(true);
-      unmarshaller.setValidation(true);
-      return unmarshaller;
-      
-   }
-   
-   public static JBossClientMetaData loadXML(URL url, URL jbossClientURL) throws JBossXBException, IOException
-   {
-      if (url == null)
-         throw new RuntimeException("Null url for application-client.xml");
-
-      log.debug("Parsing application-client.xml: "+url);
-      Unmarshaller unmarshaller = createUnmarshaller();
-      InputStream is = url.openStream();
-      Object parsed = null;
-      try
-      {
-         parsed = unmarshaller.unmarshal(is, resolver);
-         log.debug("Parsed application-client.xml: "+url+" to: "+parsed);
-      }
-      finally
-      {
-         try
-         {
-            is.close();
-         }
-         catch (Exception ignored)
-         {
-         }
-      }
-      if (parsed == null)
-         throw new JBossXBException("The xml " + url + " is not well formed!");
-
-      ApplicationClientMetaData applicationClientMetaData = ApplicationClientMetaData.class.cast(parsed);
-      
-      JBossClientMetaData jbossClientMetaData;
-      if (jbossClientURL == null)
-         jbossClientMetaData = new JBossClientMetaData();
-      else
-      {
-
-         log.debug("Parsing jboss-client.xml: "+jbossClientURL);
-         unmarshaller = createUnmarshaller();
-         is = jbossClientURL.openStream();
-         parsed = null;
-         try
-         {
-            parsed = unmarshaller.unmarshal(is, resolver);
-            log.debug("Parsed jboss-client.xml: "+jbossClientURL+" to: "+parsed);
-
-            if (parsed == null)
-               throw new JBossXBException("The xml " + url + " is not well formed!");
-
-            jbossClientMetaData = JBossClientMetaData.class.cast(parsed);
-         }
-         finally
-         {
-            try
-            {
-               is.close();
-            }
-            catch (Exception ignored)
-            {
-            }
-         }
-      }
-
-      JBossClientMetaData result = new JBossClientMetaData();
-      result.merge(jbossClientMetaData, applicationClientMetaData, true);
-      return result;
-   }
-   
    /**
     * Work in progress.
     * 
@@ -241,9 +127,13 @@
          URL appXmlURL = mainClass.getClassLoader().getResource("META-INF/application-client.xml");
          if(appXmlURL == null)
             throw new RuntimeException("Can't find META-INF/application-client.xml");
-         URL jbossXmlURL = mainClass.getClassLoader().getResource("META-INF/jboss-client.xml");
-         JBossClientMetaData xml = loadXML(appXmlURL, jbossXmlURL);
          
+         // FIXME: client metadata
+         JBossClientMetaData xml = null;
+         //JBossClientMetaData xml = ApplicationClientDDObjectFactory.parse(appXmlURL);
+         if(true)
+            throw new RuntimeException("NYI");
+         
          // FIXME: j2ee.clientName
          
          List<String> newArgs = new ArrayList<String>();
@@ -275,7 +165,7 @@
    public void launch(String mainClassName, String clientName, String args[])
       throws Throwable
    {
-      JBossClientMetaData xml = loadXML();
+      JBossClientMetaData xml = loadXML(clientName);
       launch(xml, mainClassName, clientName, args);
    }
 

Modified: trunk/ejb3/src/main/org/jboss/ejb3/deployers/Ejb3ClientDeployer.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/ejb3/deployers/Ejb3ClientDeployer.java	2007-11-13 15:17:39 UTC (rev 67023)
+++ trunk/ejb3/src/main/org/jboss/ejb3/deployers/Ejb3ClientDeployer.java	2007-11-13 15:26:08 UTC (rev 67024)
@@ -84,6 +84,10 @@
          // Notify the client launcher of extra class path entries in an EAR (See EE 8.2)
          encCtx.bind("classPathEntries", getClassPathEntries(unit));
          
+         // TODO: Notify the client launcher of other metadata stuff (injectors, lifecycle callbacks etc)
+         // FIXME: For now I expose the entire metadata
+         encCtx.bind("metaData", metaData);
+         
          String mainClassName = getMainClassName(unit, true);
 
          Class<?> mainClass = loadClass(unit, mainClassName);

Modified: trunk/ejb3/src/resources/test/appclient/jboss-client.xml
===================================================================
--- trunk/ejb3/src/resources/test/appclient/jboss-client.xml	2007-11-13 15:17:39 UTC (rev 67023)
+++ trunk/ejb3/src/resources/test/appclient/jboss-client.xml	2007-11-13 15:26:08 UTC (rev 67024)
@@ -1,7 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE jboss-client PUBLIC "-//JBoss//DTD Application Client 5.0//EN" "http://www.jboss.org/j2ee/dtd/jboss-client_5_0.dtd">
-
-<jboss-client>
+<jboss-client xmlns="http://www.jboss.com/xml/ns/javaee"
+   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+   xsi:schemaLocation="http://www.jboss.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/jboss-client_5_0.xsd"
+   version="5.0"
+   id="appclient-test">
    <jndi-name>applicationclient_test</jndi-name>
    
    <resource-env-ref>

Modified: trunk/ejb3/src/test/org/jboss/ejb3/test/appclient/unit/AppClientUnitTestCase.java
===================================================================
--- trunk/ejb3/src/test/org/jboss/ejb3/test/appclient/unit/AppClientUnitTestCase.java	2007-11-13 15:17:39 UTC (rev 67023)
+++ trunk/ejb3/src/test/org/jboss/ejb3/test/appclient/unit/AppClientUnitTestCase.java	2007-11-13 15:26:08 UTC (rev 67024)
@@ -45,18 +45,15 @@
       super(name);
    }
 
-   public void test1() throws Exception
+   public void test1() throws Throwable
    {
-      URL url = Thread.currentThread().getContextClassLoader().getResource("appclient/application-client.xml");
-      URL jbossClientURL = Thread.currentThread().getContextClassLoader().getResource("appclient/jboss-client.xml");
-      JBossClientMetaData xml = ClientLauncher.loadXML(url, jbossClientURL);
-      
       String mainClassName = HelloWorldClient.class.getName();
       String applicationClientName = "applicationclient_test"; // must match JNDI name in jboss-client.xml or display-name in application-client.xml
       String name = new Date().toString();
       String args[] = { name };
       
-      ClientLauncher.launch(xml, mainClassName, applicationClientName, args);
+      ClientLauncher launcher = new ClientLauncher();
+      launcher.launch(mainClassName, applicationClientName, args);
       
       {
          String actual = HelloWorldClient.getResult();

Modified: trunk/ejb3/src/test/org/jboss/ejb3/test/appclient/unit/SimpleResourceEarUnitTestCase.java
===================================================================
--- trunk/ejb3/src/test/org/jboss/ejb3/test/appclient/unit/SimpleResourceEarUnitTestCase.java	2007-11-13 15:17:39 UTC (rev 67023)
+++ trunk/ejb3/src/test/org/jboss/ejb3/test/appclient/unit/SimpleResourceEarUnitTestCase.java	2007-11-13 15:26:08 UTC (rev 67024)
@@ -94,18 +94,14 @@
 //      }
    }
    
-   public void testClientLauncher() throws Exception
+   public void testClientLauncher() throws Throwable
    {
-      URL url = Thread.currentThread().getContextClassLoader().getResource("appclient/simpleresource/application-client.xml");
-      //URL jbossClientURL = Thread.currentThread().getContextClassLoader().getResource("appclient/jboss-client.xml");
-      URL jbossClientURL = null;
-      JBossClientMetaData xml = ClientLauncher.loadXML(url, jbossClientURL);
-      
       String mainClassName = SimpleResourceClient.class.getName();
       String applicationClientName = "appclient-simpleresource-client"; // must match JNDI name in jboss-client.xml or display-name in application-client.xml
       String args[] = { };
       
-      ClientLauncher.launch(xml, mainClassName, applicationClientName, args);
+      ClientLauncher launcher = new ClientLauncher();
+      launcher.launch(mainClassName, applicationClientName, args);
    }
    
    public static Test suite() throws Exception

Modified: trunk/ejb3/src/test/org/jboss/ejb3/test/appclient/unit/SimpleResourceUnitTestCase.java
===================================================================
--- trunk/ejb3/src/test/org/jboss/ejb3/test/appclient/unit/SimpleResourceUnitTestCase.java	2007-11-13 15:17:39 UTC (rev 67023)
+++ trunk/ejb3/src/test/org/jboss/ejb3/test/appclient/unit/SimpleResourceUnitTestCase.java	2007-11-13 15:26:08 UTC (rev 67024)
@@ -94,18 +94,14 @@
 //      }
    }
    
-   public void testClientLauncher() throws Exception
+   public void testClientLauncher() throws Throwable
    {
-      URL url = Thread.currentThread().getContextClassLoader().getResource("appclient/simpleresource/application-client.xml");
-      //URL jbossClientURL = Thread.currentThread().getContextClassLoader().getResource("appclient/jboss-client.xml");
-      URL jbossClientURL = null;
-      JBossClientMetaData xml = ClientLauncher.loadXML(url, jbossClientURL);
-      
       String mainClassName = SimpleResourceClient.class.getName();
       String applicationClientName = "appclient-simpleresource-client"; // must match JNDI name in jboss-client.xml or display-name in application-client.xml
       String args[] = { };
-      
-      ClientLauncher.launch(xml, mainClassName, applicationClientName, args);
+
+      ClientLauncher launcher = new ClientLauncher();
+      launcher.launch(mainClassName, applicationClientName, args);
    }
    
    public static Test suite() throws Exception




More information about the jboss-cvs-commits mailing list