[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