You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by dj...@apache.org on 2006/09/12 01:51:36 UTC
svn commit: r442387 [1/5] - in /geronimo/server/trunk:
configs/axis-deployer/src/plan/ configs/client-deployer/src/plan/
configs/j2ee-deployer/src/plan/ configs/jetty-deployer/src/plan/
configs/openejb-deployer/src/plan/ configs/tomcat-deployer/src/pla...
Author: djencks
Date: Mon Sep 11 16:51:32 2006
New Revision: 442387
URL: http://svn.apache.org/viewvc?view=rev&rev=442387
Log:
GERONIMO-2383 Refactor naming builder to a set of registered builders
Added:
geronimo/server/trunk/modules/geronimo-axis-builder/src/main/java/org/apache/geronimo/axis/builder/AxisServiceRefBuilder.java (with props)
geronimo/server/trunk/modules/geronimo-connector-builder/src/main/java/org/apache/geronimo/connector/deployment/AdminObjectRefBuilder.java (with props)
geronimo/server/trunk/modules/geronimo-connector-builder/src/main/java/org/apache/geronimo/connector/deployment/ResourceRefBuilder.java (with props)
geronimo/server/trunk/modules/geronimo-connector-builder/src/test/java/org/apache/geronimo/connector/deployment/MessageDestinationTest.java (with props)
geronimo/server/trunk/modules/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/ActivationSpecInfoLocator.java (with props)
geronimo/server/trunk/modules/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/CorbaGBeanNameSource.java (with props)
geronimo/server/trunk/modules/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/HandlerInfoInfo.java (with props)
geronimo/server/trunk/modules/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/NamingBuilder.java (with props)
geronimo/server/trunk/modules/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/NamingBuilderCollection.java (with props)
geronimo/server/trunk/modules/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/NamingBuilderCollectionGBean.java (with props)
geronimo/server/trunk/modules/geronimo-naming-builder/src/main/java/org/apache/geronimo/naming/deployment/AbstractNamingBuilder.java (with props)
geronimo/server/trunk/modules/geronimo-naming-builder/src/main/java/org/apache/geronimo/naming/deployment/CorbaRefBuilder.java (with props)
geronimo/server/trunk/modules/geronimo-naming-builder/src/main/java/org/apache/geronimo/naming/deployment/EnvironmentEntryBuilder.java (with props)
geronimo/server/trunk/modules/geronimo-naming-builder/src/main/java/org/apache/geronimo/naming/deployment/GBeanRefBuilder.java (with props)
geronimo/server/trunk/modules/geronimo-naming-builder/src/main/java/org/apache/geronimo/naming/deployment/PersistenceContextRefBuilder.java (with props)
geronimo/server/trunk/modules/geronimo-naming-builder/src/main/java/org/apache/geronimo/naming/deployment/UnavailableRefBuilder.java (with props)
geronimo/server/trunk/modules/geronimo-naming-builder/src/main/java/org/apache/geronimo/naming/deployment/UserTransactionRefBuilder.java (with props)
geronimo/server/trunk/modules/geronimo-naming-builder/src/test/java/org/apache/geronimo/connector/
geronimo/server/trunk/modules/geronimo-naming-builder/src/test/java/org/apache/geronimo/connector/deployment/
geronimo/server/trunk/modules/geronimo-naming-builder/src/test/java/org/apache/geronimo/naming/deployment/EnvironmentEntryBuilderTest.java (with props)
geronimo/server/trunk/modules/geronimo-naming/src/main/java/org/apache/geronimo/naming/reference/PersistenceContextReference.java (with props)
Removed:
geronimo/server/trunk/modules/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/EJBReferenceBuilder.java
geronimo/server/trunk/modules/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/RefContext.java
geronimo/server/trunk/modules/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/ResourceReferenceBuilder.java
geronimo/server/trunk/modules/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/ServiceReferenceBuilder.java
geronimo/server/trunk/modules/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/UnavailableEJBReferenceBuilder.java
geronimo/server/trunk/modules/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/UnavailableServiceReferenceBuilder.java
geronimo/server/trunk/modules/geronimo-naming-builder/src/test/java/org/apache/geronimo/naming/deployment/MessageDestinationTest.java
geronimo/server/trunk/modules/geronimo-naming/src/main/java/org/apache/geronimo/naming/java/ComponentContextBuilder.java
geronimo/server/trunk/modules/geronimo-naming/src/test/java/org/apache/geronimo/naming/java/ContextBuilderTest.java
Modified:
geronimo/server/trunk/configs/axis-deployer/src/plan/plan.xml
geronimo/server/trunk/configs/client-deployer/src/plan/plan.xml
geronimo/server/trunk/configs/j2ee-deployer/src/plan/plan.xml
geronimo/server/trunk/configs/jetty-deployer/src/plan/plan.xml
geronimo/server/trunk/configs/openejb-deployer/src/plan/plan.xml
geronimo/server/trunk/configs/tomcat-deployer/src/plan/plan.xml
geronimo/server/trunk/configs/unavailable-ejb-deployer/src/plan/plan.xml
geronimo/server/trunk/configs/unavailable-webservices-deployer/src/plan/plan.xml
geronimo/server/trunk/modules/geronimo-axis-builder/src/main/java/org/apache/geronimo/axis/builder/AxisBuilder.java
geronimo/server/trunk/modules/geronimo-axis-builder/src/test/java/org/apache/geronimo/axis/builder/ServiceReferenceTest.java
geronimo/server/trunk/modules/geronimo-client-builder/src/main/java/org/apache/geronimo/client/builder/AppClientModuleBuilder.java
geronimo/server/trunk/modules/geronimo-client-builder/src/test/java/org/apache/geronimo/client/builder/PlanParsingTest.java
geronimo/server/trunk/modules/geronimo-connector-builder/src/main/java/org/apache/geronimo/connector/deployment/ConnectorModuleBuilder.java
geronimo/server/trunk/modules/geronimo-connector-builder/src/test/java/org/apache/geronimo/connector/deployment/ConnectorModuleBuilderTest.java
geronimo/server/trunk/modules/geronimo-connector-builder/src/test/java/org/apache/geronimo/connector/deployment/PlanParsingTest.java
geronimo/server/trunk/modules/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/EARConfigBuilder.java
geronimo/server/trunk/modules/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/EARContext.java
geronimo/server/trunk/modules/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/Module.java
geronimo/server/trunk/modules/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/WebModule.java
geronimo/server/trunk/modules/geronimo-j2ee-builder/src/test/java/org/apache/geronimo/j2ee/deployment/EARConfigBuilderTestSupport.java
geronimo/server/trunk/modules/geronimo-j2ee-builder/src/test/java/org/apache/geronimo/j2ee/deployment/EJBRefContextTest.java
geronimo/server/trunk/modules/geronimo-j2ee-builder/src/test/java/org/apache/geronimo/j2ee/deployment/MockConnectorConfigBuilder.java
geronimo/server/trunk/modules/geronimo-j2ee-builder/src/test/java/org/apache/geronimo/j2ee/deployment/MockEJBConfigBuilder.java
geronimo/server/trunk/modules/geronimo-jetty-builder/src/main/java/org/apache/geronimo/jetty/deployment/JettyModuleBuilder.java
geronimo/server/trunk/modules/geronimo-jetty-builder/src/test/java/org/apache/geronimo/jetty/deployment/JettyModuleBuilderTest.java
geronimo/server/trunk/modules/geronimo-jetty-builder/src/test/java/org/apache/geronimo/jetty/deployment/PlanParsingTest.java
geronimo/server/trunk/modules/geronimo-jetty/src/main/java/org/apache/geronimo/jetty/JettyWebAppContext.java
geronimo/server/trunk/modules/geronimo-naming-builder/src/main/java/org/apache/geronimo/naming/deployment/ENCConfigBuilder.java
geronimo/server/trunk/modules/geronimo-naming-builder/src/main/schema/geronimo-naming-1.2.xsd
geronimo/server/trunk/modules/geronimo-service-builder/src/main/java/org/apache/geronimo/deployment/xmlbeans/XmlBeansUtil.java
geronimo/server/trunk/modules/geronimo-tomcat-builder/src/main/java/org/apache/geronimo/tomcat/deployment/TomcatModuleBuilder.java
geronimo/server/trunk/modules/geronimo-tomcat-builder/src/test/java/org/apache/geronimo/tomcat/deployment/PlanParsingTest.java
geronimo/server/trunk/modules/geronimo-tomcat-builder/src/test/java/org/apache/geronimo/tomcat/deployment/TomcatModuleBuilderTest.java
geronimo/server/trunk/modules/geronimo-web-builder/src/main/java/org/apache/geronimo/web/deployment/AbstractWebModuleBuilder.java
Modified: geronimo/server/trunk/configs/axis-deployer/src/plan/plan.xml
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/configs/axis-deployer/src/plan/plan.xml?view=diff&rev=442387&r1=442386&r2=442387
==============================================================================
--- geronimo/server/trunk/configs/axis-deployer/src/plan/plan.xml (original)
+++ geronimo/server/trunk/configs/axis-deployer/src/plan/plan.xml Mon Sep 11 16:51:32 2006
@@ -19,4 +19,21 @@
<gbean name="WebServiceBuilder" class="org.apache.geronimo.axis.builder.AxisBuilder"/>
+ <gbean name="AxisServiceRefBuilder" class="org.apache.geronimo.axis.builder.AxisServiceRefBuilder">
+ <xml-attribute name="defaultEnvironment">
+ <environment xmlns="http://geronimo.apache.org/xml/ns/deployment-1.1">
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.geronimo.modules</groupId>
+ <artifactId>geronimo-axis</artifactId>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </environment>
+ </xml-attribute>
+ <reference name="AxisBuilder">
+ <name>WebServiceBuilder</name>
+ </reference>
+ </gbean>
+
</module>
Modified: geronimo/server/trunk/configs/client-deployer/src/plan/plan.xml
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/configs/client-deployer/src/plan/plan.xml?view=diff&rev=442387&r1=442386&r2=442387
==============================================================================
--- geronimo/server/trunk/configs/client-deployer/src/plan/plan.xml (original)
+++ geronimo/server/trunk/configs/client-deployer/src/plan/plan.xml Mon Sep 11 16:51:32 2006
@@ -27,28 +27,35 @@
<reference name="ServiceBuilders">
<name>GBeanBuilder</name>
</reference>
- <references name="EJBReferenceBuilder">
+ <references name="NamingBuilders">
<pattern>
- <name>ClientEJBReferenceBuilder</name>
+ <name>GBeanRefBuilder</name>
</pattern>
<pattern>
- <name>UnavailableClientEJBReferenceBuilder</name>
+ <name>PersistenceContextRefBuilder</name>
+ </pattern>
+ <pattern>
+ <name>ResourceRefBuilder</name>
</pattern>
- </references>
- <reference name="ConnectorModuleBuilder">
- <name>ClientConnectorBuilder</name>
- </reference>
- <reference name="ResourceReferenceBuilder">
- <name>ClientConnectorBuilder</name>
- </reference>
- <references name="ServiceReferenceBuilder">
<pattern>
- <name>WebServiceBuilder</name>
+ <name>AdminObjectRefBuilder</name>
</pattern>
<pattern>
- <name>UnavailableWebServiceBuilder</name>
+ <name>EnvironmentEntryBuilder</name>
+ </pattern>
+ <pattern>
+ <name>AxisServiceRefBuilder</name>
+ </pattern>
+ <pattern>
+ <name>OpenEjbClientRemoteRefBuilder</name>
+ </pattern>
+ <pattern>
+ <name>CorbaRefBuilder</name>
</pattern>
</references>
+ <reference name="ConnectorModuleBuilder">
+ <name>ClientConnectorBuilder</name>
+ </reference>
<xml-attribute name="defaultServerEnvironment">
<environment xmlns="http://geronimo.apache.org/xml/ns/deployment-1.1">
<dependencies>
Modified: geronimo/server/trunk/configs/j2ee-deployer/src/plan/plan.xml
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/configs/j2ee-deployer/src/plan/plan.xml?view=diff&rev=442387&r1=442386&r2=442387
==============================================================================
--- geronimo/server/trunk/configs/j2ee-deployer/src/plan/plan.xml (original)
+++ geronimo/server/trunk/configs/j2ee-deployer/src/plan/plan.xml Mon Sep 11 16:51:32 2006
@@ -57,25 +57,6 @@
<name>UnavailableAppClientBuilder</name>
</pattern>
</references>
- <reference name="ResourceReferenceBuilder">
- <name>ConnectorBuilder</name>
- </reference>
- <references name="ServiceReferenceBuilder">
- <pattern>
- <name>WebServiceBuilder</name>
- </pattern>
- <pattern>
- <name>UnavailableWebServiceBuilder</name>
- </pattern>
- </references>
- <references name="EJBReferenceBuilder">
- <pattern>
- <name>ServerEJBReferenceBuilder</name>
- </pattern>
- <pattern>
- <name>UnavailableServerEJBReferenceBuilder</name>
- </pattern>
- </references>
<xml-attribute name="defaultEnvironment">
<environment xmlns="http://geronimo.apache.org/xml/ns/deployment-1.1">
<dependencies>
@@ -135,6 +116,44 @@
<attribute name="policyProvider">org.apache.geronimo.security.jacc.GeronimoPolicy</attribute>
</gbean>
+ <gbean name="NamingBuilders" class="org.apache.geronimo.j2ee.deployment.NamingBuilderCollectionGBean">
+ <attribute name="baseElementQNameNamespaceURI">http://geronimo.apache.org/xml/ns/naming-1.2</attribute>
+ <attribute name="baseElementQNameLocalPart">abstract-naming-entry</attribute>
+ <references name="NamingBuilders">
+ <pattern>
+ <name>GBeanRefBuilder</name>
+ </pattern>
+ <pattern>
+ <name>PersistenceContextRefBuilder</name>
+ </pattern>
+ <pattern>
+ <name>ResourceRefBuilder</name>
+ </pattern>
+ <pattern>
+ <name>AdminObjectRefBuilder</name>
+ </pattern>
+ <pattern>
+ <name>EnvironmentEntryBuilder</name>
+ </pattern>
+ <pattern>
+ <name>AxisServiceRefBuilder</name>
+ </pattern>
+ <pattern>
+ <name>OpenEjbRemoteRefBuilder</name>
+ </pattern>
+ <pattern>
+ <name>OpenEjbLocalRefBuilder</name>
+ </pattern>
+ <pattern>
+ <name>CorbaRefBuilder</name>
+ </pattern>
+ </references>
+ </gbean>
+ <gbean name="GBeanRefBuilder" class="org.apache.geronimo.naming.deployment.GBeanRefBuilder"/>
+ <gbean name="PersistenceContextRefBuilder" class="org.apache.geronimo.naming.deployment.PersistenceContextRefBuilder"/>
+ <gbean name="ResourceRefBuilder" class="org.apache.geronimo.connector.deployment.ResourceRefBuilder"/>
+ <gbean name="AdminObjectRefBuilder" class="org.apache.geronimo.connector.deployment.AdminObjectRefBuilder"/>
+ <gbean name="EnvironmentEntryBuilder" class="org.apache.geronimo.naming.deployment.EnvironmentEntryBuilder"/>
</module>
Modified: geronimo/server/trunk/configs/jetty-deployer/src/plan/plan.xml
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/configs/jetty-deployer/src/plan/plan.xml?view=diff&rev=442387&r1=442386&r2=442387
==============================================================================
--- geronimo/server/trunk/configs/jetty-deployer/src/plan/plan.xml (original)
+++ geronimo/server/trunk/configs/jetty-deployer/src/plan/plan.xml Mon Sep 11 16:51:32 2006
@@ -48,6 +48,9 @@
<name>UnavailableWebServiceBuilder</name>
</pattern>
</references>
+ <reference name="NamingBuilders">
+ <name>NamingBuilders</name>
+ </reference>
<xml-attribute name="defaultEnvironment">
<environment xmlns="http://geronimo.apache.org/xml/ns/deployment-1.1">
<dependencies>
Modified: geronimo/server/trunk/configs/openejb-deployer/src/plan/plan.xml
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/configs/openejb-deployer/src/plan/plan.xml?view=diff&rev=442387&r1=442386&r2=442387
==============================================================================
--- geronimo/server/trunk/configs/openejb-deployer/src/plan/plan.xml (original)
+++ geronimo/server/trunk/configs/openejb-deployer/src/plan/plan.xml Mon Sep 11 16:51:32 2006
@@ -43,6 +43,12 @@
<name>UnavailableWebServiceBuilder</name>
</pattern>
</references>
+ <reference name="NamingBuilders">
+ <name>NamingBuilders</name>
+ </reference>
+ <reference name="ActivationSpecInfoLocator">
+ <name>ConnectorBuilder</name>
+ </reference>
<xml-attribute name="defaultEnvironment">
<environment xmlns="http://geronimo.apache.org/xml/ns/deployment-1.1">
<dependencies>
@@ -65,12 +71,50 @@
<gbean name="CSSAttributeBuilder" class="org.openejb.corba.security.config.css.CSSConfigEditor"/>
<gbean name="TSSAttributeBuilder" class="org.openejb.corba.security.config.tss.TSSConfigEditor"/>
- <gbean name="ClientEJBReferenceBuilder" class="org.openejb.deployment.RemoteEjbReferenceBuilder">
+ <gbean name="OpenEjbRemoteRefBuilder" class="org.openejb.deployment.OpenEjbRemoteRefBuilder">
+ <xml-attribute name="defaultEnvironment">
+ <environment xmlns="http://geronimo.apache.org/xml/ns/deployment-1.1">
+ <dependencies>
+ <dependency>
+ <groupId>org.openejb</groupId>
+ <artifactId>openejb-core</artifactId>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </environment>
+ </xml-attribute>
+ </gbean>
+
+ <gbean name="OpenEjbClientRemoteRefBuilder" class="org.openejb.deployment.OpenEjbClientRemoteRefBuilder">
<attribute name="host">${PlanServerHostname}</attribute>
<attribute name="port">${PlanOpenEJBPort}</attribute>
+ <xml-attribute name="defaultEnvironment">
+ <environment xmlns="http://geronimo.apache.org/xml/ns/deployment-1.1">
+ <dependencies>
+ <dependency>
+ <groupId>org.openejb</groupId>
+ <artifactId>openejb-core</artifactId>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+ </environment>
+ </xml-attribute>
</gbean>
- <gbean name="ServerEJBReferenceBuilder" class="org.openejb.deployment.OpenEjbReferenceBuilder"/>
+ <gbean name="OpenEjbLocalRefBuilder" class="org.openejb.deployment.OpenEjbLocalRefBuilder"/>
+
+ <gbean name="CorbaRefBuilder" class="org.apache.geronimo.naming.deployment.CorbaRefBuilder">
+ <reference name="CorbaGBeanNameSource">
+ <name>EarBuilder</name>
+ </reference>
+ </gbean>
+ <gbean name="ClientCorbaRefBuilder" class="org.apache.geronimo.naming.deployment.CorbaRefBuilder">
+ <reference name="CorbaGBeanNameSource">
+ <name>AppClientBuilder</name>
+ </reference>
+ </gbean>
+
+
<gbean name="WebServiceEJBLinkTemplate" class="org.openejb.server.axis.WSContainerGBean"/>
</module>
Modified: geronimo/server/trunk/configs/tomcat-deployer/src/plan/plan.xml
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/configs/tomcat-deployer/src/plan/plan.xml?view=diff&rev=442387&r1=442386&r2=442387
==============================================================================
--- geronimo/server/trunk/configs/tomcat-deployer/src/plan/plan.xml (original)
+++ geronimo/server/trunk/configs/tomcat-deployer/src/plan/plan.xml Mon Sep 11 16:51:32 2006
@@ -35,6 +35,9 @@
<name>UnavailableWebServiceBuilder</name>
</pattern>
</references>
+ <reference name="NamingBuilders">
+ <name>NamingBuilders</name>
+ </reference>
<xml-attribute name="defaultEnvironment">
<environment xmlns="http://geronimo.apache.org/xml/ns/deployment-1.1">
<dependencies>
Modified: geronimo/server/trunk/configs/unavailable-ejb-deployer/src/plan/plan.xml
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/configs/unavailable-ejb-deployer/src/plan/plan.xml?view=diff&rev=442387&r1=442386&r2=442387
==============================================================================
--- geronimo/server/trunk/configs/unavailable-ejb-deployer/src/plan/plan.xml (original)
+++ geronimo/server/trunk/configs/unavailable-ejb-deployer/src/plan/plan.xml Mon Sep 11 16:51:32 2006
@@ -21,8 +21,9 @@
<gbean name="UnavailableEJBBuilder" class="org.apache.geronimo.j2ee.deployment.UnavailableModuleBuilder" />
- <gbean name="UnavailableClientEJBReferenceBuilder" class="org.apache.geronimo.j2ee.deployment.UnavailableEJBReferenceBuilder" />
+ <!-- TODO include new-style unavaliable naming builders -->
+ <!--<gbean name="UnavailableClientEJBReferenceBuilder" class="org.apache.geronimo.j2ee.deployment.UnavailableEJBReferenceBuilder" />-->
- <gbean name="UnavailableServerEJBReferenceBuilder" class="org.apache.geronimo.j2ee.deployment.UnavailableEJBReferenceBuilder" />
+ <!--<gbean name="UnavailableServerEJBReferenceBuilder" class="org.apache.geronimo.j2ee.deployment.UnavailableEJBReferenceBuilder" />-->
</module>
Modified: geronimo/server/trunk/configs/unavailable-webservices-deployer/src/plan/plan.xml
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/configs/unavailable-webservices-deployer/src/plan/plan.xml?view=diff&rev=442387&r1=442386&r2=442387
==============================================================================
--- geronimo/server/trunk/configs/unavailable-webservices-deployer/src/plan/plan.xml (original)
+++ geronimo/server/trunk/configs/unavailable-webservices-deployer/src/plan/plan.xml Mon Sep 11 16:51:32 2006
@@ -21,6 +21,5 @@
<gbean name="UnavailableWebServiceBuilder" class="org.apache.geronimo.j2ee.deployment.UnavailableWebServiceBuilder" />
- <gbean name="UnavailableServiceReferenceBuilder" class="org.apache.geronimo.j2ee.deployment.UnavailableServiceReferenceBuilder" />
-
+ <!--TODO need an unavailable naming builder -->
</module>
Modified: geronimo/server/trunk/modules/geronimo-axis-builder/src/main/java/org/apache/geronimo/axis/builder/AxisBuilder.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-axis-builder/src/main/java/org/apache/geronimo/axis/builder/AxisBuilder.java?view=diff&rev=442387&r1=442386&r2=442387
==============================================================================
--- geronimo/server/trunk/modules/geronimo-axis-builder/src/main/java/org/apache/geronimo/axis/builder/AxisBuilder.java (original)
+++ geronimo/server/trunk/modules/geronimo-axis-builder/src/main/java/org/apache/geronimo/axis/builder/AxisBuilder.java Mon Sep 11 16:51:32 2006
@@ -57,13 +57,12 @@
import org.apache.geronimo.axis.server.POJOProvider;
import org.apache.geronimo.axis.server.ServiceInfo;
import org.apache.geronimo.common.DeploymentException;
-import org.apache.geronimo.deployment.DeploymentContext;
import org.apache.geronimo.gbean.GBeanData;
import org.apache.geronimo.gbean.GBeanInfo;
import org.apache.geronimo.gbean.GBeanInfoBuilder;
import org.apache.geronimo.j2ee.deployment.Module;
-import org.apache.geronimo.j2ee.deployment.ServiceReferenceBuilder;
import org.apache.geronimo.j2ee.deployment.WebServiceBuilder;
+import org.apache.geronimo.j2ee.deployment.HandlerInfoInfo;
import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
import org.apache.geronimo.xbeans.geronimo.naming.GerPortCompletionType;
import org.apache.geronimo.xbeans.geronimo.naming.GerPortType;
@@ -77,7 +76,7 @@
/**
* @version $Rev$ $Date$
*/
-public class AxisBuilder implements ServiceReferenceBuilder, WebServiceBuilder {
+public class AxisBuilder implements WebServiceBuilder {
// private static final Class[] SERVICE_CONSTRUCTOR_TYPES = new Class[]{Map.class, Map.class};
private static final SOAPConstants SOAP_VERSION = SOAPConstants.SOAP11_CONSTANTS;
@@ -145,7 +144,7 @@
//ServicereferenceBuilder
- public Object createService(Class serviceInterface, URI wsdlURI, URI jaxrpcMappingURI, QName serviceQName, Map portComponentRefMap, List handlerInfos, Object serviceRefType, DeploymentContext deploymentContext, Module module, ClassLoader classLoader) throws DeploymentException {
+ public Object createService(Class serviceInterface, URI wsdlURI, URI jaxrpcMappingURI, QName serviceQName, Map portComponentRefMap, List handlerInfos, Object serviceRefType, Module module, ClassLoader classLoader) throws DeploymentException {
GerServiceRefType gerServiceRefType = (GerServiceRefType) serviceRefType;
JarFile moduleFile = module.getModuleFile();
SchemaInfoBuilder schemaInfoBuilder = null;
@@ -156,10 +155,10 @@
mapping = WSDescriptorParser.readJaxrpcMapping(moduleFile, jaxrpcMappingURI);
}
- return createService(serviceInterface, schemaInfoBuilder, mapping, serviceQName, SOAP_VERSION, handlerInfos, gerServiceRefType, deploymentContext, module, classLoader);
+ return createService(serviceInterface, schemaInfoBuilder, mapping, serviceQName, SOAP_VERSION, handlerInfos, gerServiceRefType, module, classLoader);
}
- public Object createService(Class serviceInterface, SchemaInfoBuilder schemaInfoBuilder, JavaWsdlMappingType mapping, QName serviceQName, SOAPConstants soapVersion, List handlerInfos, GerServiceRefType serviceRefType, DeploymentContext context, Module module, ClassLoader classloader) throws DeploymentException {
+ public Object createService(Class serviceInterface, SchemaInfoBuilder schemaInfoBuilder, JavaWsdlMappingType mapping, QName serviceQName, SOAPConstants soapVersion, List handlerInfos, GerServiceRefType serviceRefType, Module module, ClassLoader classloader) throws DeploymentException {
Map seiPortNameToFactoryMap = new HashMap();
Map seiClassNameToFactoryMap = new HashMap();
if (schemaInfoBuilder != null) {
@@ -520,7 +519,6 @@
static {
GBeanInfoBuilder infoBuilder = GBeanInfoBuilder.createStatic(AxisBuilder.class, NameFactory.MODULE_BUILDER);
- infoBuilder.addInterface(ServiceReferenceBuilder.class);
infoBuilder.addInterface(WebServiceBuilder.class);
GBEAN_INFO = infoBuilder.getBeanInfo();
Added: geronimo/server/trunk/modules/geronimo-axis-builder/src/main/java/org/apache/geronimo/axis/builder/AxisServiceRefBuilder.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-axis-builder/src/main/java/org/apache/geronimo/axis/builder/AxisServiceRefBuilder.java?view=auto&rev=442387
==============================================================================
--- geronimo/server/trunk/modules/geronimo-axis-builder/src/main/java/org/apache/geronimo/axis/builder/AxisServiceRefBuilder.java (added)
+++ geronimo/server/trunk/modules/geronimo-axis-builder/src/main/java/org/apache/geronimo/axis/builder/AxisServiceRefBuilder.java Mon Sep 11 16:51:32 2006
@@ -0,0 +1,223 @@
+/**
+ *
+ * Copyright 2006 The Apache Software Foundation
+ *
+ * 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.apache.geronimo.axis.builder;
+
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import javax.xml.namespace.QName;
+
+import org.apache.geronimo.common.DeploymentException;
+import org.apache.geronimo.gbean.GBeanInfo;
+import org.apache.geronimo.gbean.GBeanInfoBuilder;
+import org.apache.geronimo.j2ee.deployment.HandlerInfoInfo;
+import org.apache.geronimo.j2ee.deployment.Module;
+import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
+import org.apache.geronimo.kernel.ClassLoading;
+import org.apache.geronimo.kernel.config.Configuration;
+import org.apache.geronimo.kernel.repository.Environment;
+import org.apache.geronimo.naming.deployment.AbstractNamingBuilder;
+import org.apache.geronimo.xbeans.geronimo.naming.GerServiceRefDocument;
+import org.apache.geronimo.xbeans.geronimo.naming.GerServiceRefType;
+import org.apache.geronimo.xbeans.j2ee.ParamValueType;
+import org.apache.geronimo.xbeans.j2ee.PortComponentRefType;
+import org.apache.geronimo.xbeans.j2ee.ServiceRefHandlerType;
+import org.apache.geronimo.xbeans.j2ee.ServiceRefType;
+import org.apache.geronimo.xbeans.j2ee.XsdQNameType;
+import org.apache.xmlbeans.QNameSet;
+import org.apache.xmlbeans.XmlObject;
+
+/**
+ * @version $Rev:$ $Date:$
+ */
+public class AxisServiceRefBuilder extends AbstractNamingBuilder {
+ private static final String J2EE_NAMESPACE = "http://java.sun.com/xml/ns/j2ee";
+ private static final QName SERVICE_REF_QNAME = new QName(J2EE_NAMESPACE, "service-ref");
+ private static final QNameSet SERVICE_REF_QNAME_SET = QNameSet.singleton(SERVICE_REF_QNAME);
+ private static final QName GER_SERVICE_REF_QNAME = GerServiceRefDocument.type.getDocumentElementName();
+ private static final QNameSet GER_SERVICE_REF_QNAME_SET = QNameSet.singleton(GER_SERVICE_REF_QNAME);
+
+ private final AxisBuilder axisBuilder;
+
+ public AxisServiceRefBuilder(Environment defaultEnvironment, AxisBuilder axisBuilder) {
+ super(defaultEnvironment);
+ this.axisBuilder = axisBuilder;
+ }
+
+ protected boolean willMergeEnvironment(XmlObject specDD, XmlObject plan) {
+ return getServiceRefs(specDD).length > 0;
+ }
+
+ public void buildNaming(XmlObject specDD, XmlObject plan, Configuration localConfiguration, Configuration remoteConfiguration, Module module, Map componentContext) throws DeploymentException {
+ XmlObject[] serviceRefsUntyped = getServiceRefs(specDD);
+ XmlObject[] gerServiceRefsUntyped = plan == null? NO_REFS: plan.selectChildren(GER_SERVICE_REF_QNAME_SET);
+ Map serviceRefMap = mapServiceRefs(gerServiceRefsUntyped);
+ ClassLoader cl = localConfiguration.getConfigurationClassLoader();
+
+ for (int i = 0; i < serviceRefsUntyped.length; i++) {
+ ServiceRefType serviceRef = (ServiceRefType) serviceRefsUntyped[i];
+ String name = getStringValue(serviceRef.getServiceRefName());
+ GerServiceRefType serviceRefType = (GerServiceRefType) serviceRefMap.get(name);
+// Map credentialsNameMap = (Map) serviceRefCredentialsNameMap.get(name);
+ String serviceInterfaceName = getStringValue(serviceRef.getServiceInterface());
+ assureInterface(serviceInterfaceName, "javax.xml.rpc.Service", "[Web]Service", cl);
+ Class serviceInterface;
+ try {
+ serviceInterface = cl.loadClass(serviceInterfaceName);
+ } catch (ClassNotFoundException e) {
+ throw new DeploymentException("Could not load service interface class: " + serviceInterfaceName, e);
+ }
+ URI wsdlURI = null;
+ if (serviceRef.isSetWsdlFile()) {
+ try {
+ wsdlURI = new URI(serviceRef.getWsdlFile().getStringValue().trim());
+ } catch (URISyntaxException e) {
+ throw new DeploymentException("could not construct wsdl uri from " + serviceRef.getWsdlFile().getStringValue(), e);
+ }
+ }
+ URI jaxrpcMappingURI = null;
+ if (serviceRef.isSetJaxrpcMappingFile()) {
+ try {
+ jaxrpcMappingURI = new URI(getStringValue(serviceRef.getJaxrpcMappingFile()));
+ } catch (URISyntaxException e) {
+ throw new DeploymentException("Could not construct jaxrpc mapping uri from " + serviceRef.getJaxrpcMappingFile(), e);
+ }
+ }
+ QName serviceQName = null;
+ if (serviceRef.isSetServiceQname()) {
+ serviceQName = serviceRef.getServiceQname().getQNameValue();
+ }
+ Map portComponentRefMap = new HashMap();
+ PortComponentRefType[] portComponentRefs = serviceRef.getPortComponentRefArray();
+ if (portComponentRefs != null) {
+ for (int j = 0; j < portComponentRefs.length; j++) {
+ PortComponentRefType portComponentRef = portComponentRefs[j];
+ String portComponentLink = getStringValue(portComponentRef.getPortComponentLink());
+ String serviceEndpointInterfaceType = getStringValue(portComponentRef.getServiceEndpointInterface());
+ assureInterface(serviceEndpointInterfaceType, "java.rmi.Remote", "ServiceEndpoint", cl);
+ Class serviceEndpointClass;
+ try {
+ serviceEndpointClass = cl.loadClass(serviceEndpointInterfaceType);
+ } catch (ClassNotFoundException e) {
+ throw new DeploymentException("could not load service endpoint class " + serviceEndpointInterfaceType, e);
+ }
+ portComponentRefMap.put(serviceEndpointClass, portComponentLink);
+ }
+ }
+ ServiceRefHandlerType[] handlers = serviceRef.getHandlerArray();
+ List handlerInfos = buildHandlerInfoList(handlers, cl);
+
+//we could get a Reference or the actual serializable Service back.
+ Object ref = axisBuilder.createService(serviceInterface, wsdlURI, jaxrpcMappingURI, serviceQName, portComponentRefMap, handlerInfos, serviceRefType, module, cl);
+ componentContext.put(ENV + name, ref);
+ }
+
+ }
+
+ private XmlObject[] getServiceRefs(XmlObject specDD) {
+ XmlObject[] serviceRefsUntyped = specDD.selectChildren(SERVICE_REF_QNAME_SET);
+ return serviceRefsUntyped;
+ }
+
+ public QNameSet getSpecQNameSet() {
+ return SERVICE_REF_QNAME_SET;
+ }
+
+ public QNameSet getPlanQNameSet() {
+ return GER_SERVICE_REF_QNAME_SET;
+ }
+
+
+ private static List buildHandlerInfoList(ServiceRefHandlerType[] handlers, ClassLoader classLoader) throws DeploymentException {
+ List handlerInfos = new ArrayList();
+ for (int i = 0; i < handlers.length; i++) {
+ ServiceRefHandlerType handler = handlers[i];
+ org.apache.geronimo.xbeans.j2ee.String[] portNameArray = handler.getPortNameArray();
+ List portNames = new ArrayList();
+ for (int j = 0; j < portNameArray.length; j++) {
+ portNames.add(portNameArray[j].getStringValue().trim());
+
+ }
+// Set portNames = new HashSet(Arrays.asList(portNameArray));
+ String handlerClassName = handler.getHandlerClass().getStringValue().trim();
+ Class handlerClass;
+ try {
+ handlerClass = ClassLoading.loadClass(handlerClassName, classLoader);
+ } catch (ClassNotFoundException e) {
+ throw new DeploymentException("Could not load handler class", e);
+ }
+ Map config = new HashMap();
+ ParamValueType[] paramValues = handler.getInitParamArray();
+ for (int j = 0; j < paramValues.length; j++) {
+ ParamValueType paramValue = paramValues[j];
+ String paramName = paramValue.getParamName().getStringValue().trim();
+ String paramStringValue = paramValue.getParamValue().getStringValue().trim();
+ config.put(paramName, paramStringValue);
+ }
+ XsdQNameType[] soapHeaderQNames = handler.getSoapHeaderArray();
+ QName[] headerQNames = new QName[soapHeaderQNames.length];
+ for (int j = 0; j < soapHeaderQNames.length; j++) {
+ XsdQNameType soapHeaderQName = soapHeaderQNames[j];
+ headerQNames[j] = soapHeaderQName.getQNameValue();
+ }
+ Set soapRoles = new HashSet();
+ for (int j = 0; j < handler.getSoapRoleArray().length; j++) {
+ String soapRole = handler.getSoapRoleArray(j).getStringValue().trim();
+ soapRoles.add(soapRole);
+ }
+ HandlerInfoInfo handlerInfoInfo = new HandlerInfoInfo(new HashSet(portNames), handlerClass, config, headerQNames, soapRoles);
+ handlerInfos.add(handlerInfoInfo);
+ }
+ return handlerInfos;
+ }
+
+
+ private static Map mapServiceRefs(XmlObject[] refs) {
+ Map refMap = new HashMap();
+ if (refs != null) {
+ for (int i = 0; i < refs.length; i++) {
+ GerServiceRefType ref = (GerServiceRefType) refs[i].copy().changeType(GerServiceRefType.type);
+ String serviceRefName = ref.getServiceRefName().trim();
+ refMap.put(serviceRefName, ref);
+ }
+ }
+ return refMap;
+ }
+
+ public static final GBeanInfo GBEAN_INFO;
+
+ static {
+ GBeanInfoBuilder infoBuilder = GBeanInfoBuilder.createStatic(AxisServiceRefBuilder.class, NameFactory.MODULE_BUILDER);
+ infoBuilder.addAttribute("defaultEnvironment", Environment.class, true, true);
+ infoBuilder.addReference("AxisBuilder", AxisBuilder.class, NameFactory.MODULE_BUILDER);
+
+ infoBuilder.setConstructor(new String[] {"defaultEnvironment", "AxisBuilder"});
+
+ GBEAN_INFO = infoBuilder.getBeanInfo();
+ }
+
+ public static GBeanInfo getGBeanInfo() {
+ return GBEAN_INFO;
+ }
+}
Propchange: geronimo/server/trunk/modules/geronimo-axis-builder/src/main/java/org/apache/geronimo/axis/builder/AxisServiceRefBuilder.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/server/trunk/modules/geronimo-axis-builder/src/main/java/org/apache/geronimo/axis/builder/AxisServiceRefBuilder.java
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/server/trunk/modules/geronimo-axis-builder/src/main/java/org/apache/geronimo/axis/builder/AxisServiceRefBuilder.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: geronimo/server/trunk/modules/geronimo-axis-builder/src/test/java/org/apache/geronimo/axis/builder/ServiceReferenceTest.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-axis-builder/src/test/java/org/apache/geronimo/axis/builder/ServiceReferenceTest.java?view=diff&rev=442387&r1=442386&r2=442387
==============================================================================
--- geronimo/server/trunk/modules/geronimo-axis-builder/src/test/java/org/apache/geronimo/axis/builder/ServiceReferenceTest.java (original)
+++ geronimo/server/trunk/modules/geronimo-axis-builder/src/test/java/org/apache/geronimo/axis/builder/ServiceReferenceTest.java Mon Sep 11 16:51:32 2006
@@ -176,7 +176,7 @@
JavaWsdlMappingType mapping = buildLightweightMappingType();
QName serviceQName = new QName(NAMESPACE, "MockService");
AxisBuilder builder = new AxisBuilder();
- Object reference = builder.createService(MockService.class, schemaInfoBuilder, mapping, serviceQName, SOAPConstants.SOAP11_CONSTANTS, handlerInfos, gerServiceRefType, context, module, isolatedCl);
+ Object reference = builder.createService(MockService.class, schemaInfoBuilder, mapping, serviceQName, SOAPConstants.SOAP11_CONSTANTS, handlerInfos, gerServiceRefType, module, isolatedCl);
assertNotNull(reference);
assertTrue(reference instanceof AxisServiceReference);
AxisServiceReference claReference = (AxisServiceReference) reference;
@@ -198,7 +198,7 @@
JavaWsdlMappingType mapping = mappingDocument.getJavaWsdlMapping();
QName serviceQName = new QName("http://www.Monson-Haefel.com/jwsbook/BookQuote", "BookQuoteService");
AxisBuilder builder = new AxisBuilder();
- Object reference = builder.createService(BookQuoteService.class, schemaInfoBuilder, mapping, serviceQName, SOAPConstants.SOAP11_CONSTANTS, handlerInfos, gerServiceRefType, context, module, isolatedCl);
+ Object reference = builder.createService(BookQuoteService.class, schemaInfoBuilder, mapping, serviceQName, SOAPConstants.SOAP11_CONSTANTS, handlerInfos, gerServiceRefType, module, isolatedCl);
assertNotNull(reference);
assertTrue(reference instanceof AxisServiceReference);
AxisServiceReference claReference = (AxisServiceReference) reference;
@@ -220,7 +220,7 @@
JavaWsdlMappingType mapping = mappingDocument.getJavaWsdlMapping();
QName serviceQName = new QName("http://tempuri.org/4s4c/1/3/wsdl/def/interopLab", "interopLab");
AxisBuilder builder = new AxisBuilder();
- Object proxy = builder.createService(InteropLab.class, schemaInfoBuilder, mapping, serviceQName, SOAPConstants.SOAP11_CONSTANTS, handlerInfos, gerServiceRefType, context, module, isolatedCl);
+ Object proxy = builder.createService(InteropLab.class, schemaInfoBuilder, mapping, serviceQName, SOAPConstants.SOAP11_CONSTANTS, handlerInfos, gerServiceRefType, module, isolatedCl);
assertNotNull(proxy);
assertTrue(proxy instanceof InteropLab);
InteropTestPortType interopTestPort = ((InteropLab) proxy).getinteropTestPort();
Modified: geronimo/server/trunk/modules/geronimo-client-builder/src/main/java/org/apache/geronimo/client/builder/AppClientModuleBuilder.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-client-builder/src/main/java/org/apache/geronimo/client/builder/AppClientModuleBuilder.java?view=diff&rev=442387&r1=442386&r2=442387
==============================================================================
--- geronimo/server/trunk/modules/geronimo-client-builder/src/main/java/org/apache/geronimo/client/builder/AppClientModuleBuilder.java (original)
+++ geronimo/server/trunk/modules/geronimo-client-builder/src/main/java/org/apache/geronimo/client/builder/AppClientModuleBuilder.java Mon Sep 11 16:51:32 2006
@@ -28,6 +28,7 @@
import java.util.LinkedList;
import java.util.Map;
import java.util.StringTokenizer;
+import java.util.HashMap;
import java.util.jar.Attributes;
import java.util.jar.JarFile;
import java.util.jar.Manifest;
@@ -43,11 +44,9 @@
import org.apache.geronimo.deployment.NamespaceDrivenBuilder;
import org.apache.geronimo.deployment.NamespaceDrivenBuilderCollection;
import org.apache.geronimo.deployment.service.EnvironmentBuilder;
-import org.apache.geronimo.deployment.service.ServiceConfigBuilder;
import org.apache.geronimo.deployment.util.DeploymentUtil;
import org.apache.geronimo.deployment.util.NestedJarFile;
import org.apache.geronimo.deployment.xbeans.EnvironmentType;
-import org.apache.geronimo.deployment.xbeans.GbeanType;
import org.apache.geronimo.deployment.xmlbeans.XmlBeansUtil;
import org.apache.geronimo.gbean.AbstractName;
import org.apache.geronimo.gbean.AbstractNameQuery;
@@ -57,13 +56,12 @@
import org.apache.geronimo.gbean.SingleElementCollection;
import org.apache.geronimo.j2ee.deployment.AppClientModule;
import org.apache.geronimo.j2ee.deployment.EARContext;
-import org.apache.geronimo.j2ee.deployment.EJBReferenceBuilder;
import org.apache.geronimo.j2ee.deployment.Module;
import org.apache.geronimo.j2ee.deployment.ModuleBuilder;
-import org.apache.geronimo.j2ee.deployment.RefContext;
-import org.apache.geronimo.j2ee.deployment.ResourceReferenceBuilder;
-import org.apache.geronimo.j2ee.deployment.ServiceReferenceBuilder;
import org.apache.geronimo.j2ee.deployment.SecurityBuilder;
+import org.apache.geronimo.j2ee.deployment.CorbaGBeanNameSource;
+import org.apache.geronimo.j2ee.deployment.NamingBuilder;
+import org.apache.geronimo.j2ee.deployment.NamingBuilderCollection;
import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
import org.apache.geronimo.j2ee.management.impl.J2EEAppClientModuleImpl;
import org.apache.geronimo.kernel.GBeanAlreadyExistsException;
@@ -71,20 +69,18 @@
import org.apache.geronimo.kernel.config.ConfigurationAlreadyExistsException;
import org.apache.geronimo.kernel.config.ConfigurationModuleType;
import org.apache.geronimo.kernel.config.ConfigurationStore;
+import org.apache.geronimo.kernel.config.Configuration;
import org.apache.geronimo.kernel.repository.Artifact;
import org.apache.geronimo.kernel.repository.Environment;
import org.apache.geronimo.kernel.repository.Repository;
-import org.apache.geronimo.naming.deployment.ENCConfigBuilder;
import org.apache.geronimo.schema.SchemaConversionUtils;
import org.apache.geronimo.security.deploy.DefaultPrincipal;
import org.apache.geronimo.xbeans.geronimo.client.GerApplicationClientDocument;
import org.apache.geronimo.xbeans.geronimo.client.GerApplicationClientType;
import org.apache.geronimo.xbeans.geronimo.client.GerResourceType;
-import org.apache.geronimo.xbeans.geronimo.naming.GerMessageDestinationType;
+import org.apache.geronimo.xbeans.geronimo.naming.GerAbstractNamingEntryDocument;
import org.apache.geronimo.xbeans.j2ee.ApplicationClientDocument;
import org.apache.geronimo.xbeans.j2ee.ApplicationClientType;
-import org.apache.geronimo.xbeans.j2ee.EjbLocalRefType;
-import org.apache.geronimo.xbeans.j2ee.MessageDestinationType;
import org.apache.xmlbeans.XmlException;
import org.apache.xmlbeans.XmlObject;
@@ -92,22 +88,20 @@
/**
* @version $Rev:385232 $ $Date$
*/
-public class AppClientModuleBuilder implements ModuleBuilder {
+public class AppClientModuleBuilder implements ModuleBuilder, CorbaGBeanNameSource {
private static final Log log = LogFactory.getLog(AppClientModuleBuilder.class);
private static final String LINE_SEP = System.getProperty("line.separator");
-
+
private final Environment defaultClientEnvironment;
private final Environment defaultServerEnvironment;
private final AbstractNameQuery corbaGBeanObjectName;
private final AbstractNameQuery transactionManagerObjectName;
private final AbstractNameQuery connectionTrackerObjectName;
- private final SingleElementCollection ejbReferenceBuilder;
private final SingleElementCollection connectorModuleBuilder;
- private final SingleElementCollection resourceReferenceBuilder;
- private final SingleElementCollection serviceReferenceBuilder;
private final SingleElementCollection securityBuilder;
private final NamespaceDrivenBuilderCollection serviceBuilder;
+ private final NamingBuilderCollection namingBuilders;
private static final String GERAPPCLIENT_NAMESPACE = GerApplicationClientDocument.type.getDocumentElementName().getNamespaceURI();
@@ -116,34 +110,28 @@
AbstractNameQuery transactionManagerObjectName,
AbstractNameQuery connectionTrackerObjectName,
AbstractNameQuery corbaGBeanObjectName,
- EJBReferenceBuilder ejbReferenceBuilder,
ModuleBuilder connectorModuleBuilder,
- ResourceReferenceBuilder resourceReferenceBuilder,
- ServiceReferenceBuilder serviceReferenceBuilder,
NamespaceDrivenBuilder securityBuilder,
- NamespaceDrivenBuilder serviceBuilder) {
+ NamespaceDrivenBuilder serviceBuilder,
+ Collection namingBuilders) {
this(defaultClientEnvironment,
defaultServerEnvironment,
transactionManagerObjectName,
connectionTrackerObjectName,
corbaGBeanObjectName,
- new SingleElementCollection(ejbReferenceBuilder),
new SingleElementCollection(connectorModuleBuilder),
- new SingleElementCollection(resourceReferenceBuilder),
- new SingleElementCollection(serviceReferenceBuilder),
new SingleElementCollection(securityBuilder),
- serviceBuilder == null? Collections.EMPTY_SET: Collections.singleton(serviceBuilder));
+ serviceBuilder == null ? Collections.EMPTY_SET : Collections.singleton(serviceBuilder),
+ namingBuilders == null ? Collections.EMPTY_SET : namingBuilders);
}
public AppClientModuleBuilder(AbstractNameQuery transactionManagerObjectName,
AbstractNameQuery connectionTrackerObjectName,
AbstractNameQuery corbaGBeanObjectName,
- Collection ejbReferenceBuilder,
Collection connectorModuleBuilder,
- Collection resourceReferenceBuilder,
- Collection serviceReferenceBuilder,
Collection securityBuilder,
Collection serviceBuilder,
+ Collection namingBuilders,
Environment defaultClientEnvironment,
Environment defaultServerEnvironment) {
this(defaultClientEnvironment,
@@ -151,12 +139,10 @@
transactionManagerObjectName,
connectionTrackerObjectName,
corbaGBeanObjectName,
- new SingleElementCollection(ejbReferenceBuilder),
new SingleElementCollection(connectorModuleBuilder),
- new SingleElementCollection(resourceReferenceBuilder),
- new SingleElementCollection(serviceReferenceBuilder),
new SingleElementCollection(securityBuilder),
- serviceBuilder);
+ serviceBuilder,
+ namingBuilders);
}
private AppClientModuleBuilder(Environment defaultClientEnvironment,
@@ -164,41 +150,29 @@
AbstractNameQuery transactionManagerObjectName,
AbstractNameQuery connectionTrackerObjectName,
AbstractNameQuery corbaGBeanObjectName,
- SingleElementCollection ejbReferenceBuilder,
SingleElementCollection connectorModuleBuilder,
- SingleElementCollection resourceReferenceBuilder,
- SingleElementCollection serviceReferenceBuilder,
SingleElementCollection securityBuilder,
- Collection serviceBuilder) {
+ Collection serviceBuilder, Collection namingBuilders) {
this.defaultClientEnvironment = defaultClientEnvironment;
this.defaultServerEnvironment = defaultServerEnvironment;
this.corbaGBeanObjectName = corbaGBeanObjectName;
this.transactionManagerObjectName = transactionManagerObjectName;
this.connectionTrackerObjectName = connectionTrackerObjectName;
- this.ejbReferenceBuilder = ejbReferenceBuilder;
this.connectorModuleBuilder = connectorModuleBuilder;
- this.resourceReferenceBuilder = resourceReferenceBuilder;
- this.serviceReferenceBuilder = serviceReferenceBuilder;
this.securityBuilder = securityBuilder;
this.serviceBuilder = new NamespaceDrivenBuilderCollection(serviceBuilder);
+ this.namingBuilders = new NamingBuilderCollection(namingBuilders, GerAbstractNamingEntryDocument.type.getDocumentElementName());
}
- private EJBReferenceBuilder getEjbReferenceBuilder() {
- return (EJBReferenceBuilder) ejbReferenceBuilder.getElement();
+
+ public AbstractNameQuery getCorbaGBeanName() {
+ return corbaGBeanObjectName;
}
private ModuleBuilder getConnectorModuleBuilder() {
return (ModuleBuilder) connectorModuleBuilder.getElement();
}
- private ResourceReferenceBuilder getResourceReferenceBuilder() {
- return (ResourceReferenceBuilder) resourceReferenceBuilder.getElement();
- }
-
- private ServiceReferenceBuilder getServiceReferenceBuilder() {
- return (ServiceReferenceBuilder) serviceReferenceBuilder.getElement();
- }
-
private org.apache.geronimo.j2ee.deployment.SecurityBuilder getSecurityBuilder() {
return (SecurityBuilder) securityBuilder.getElement();
}
@@ -248,9 +222,9 @@
EnvironmentType clientEnvironmentType = gerAppClient.getClientEnvironment();
Environment clientEnvironment = EnvironmentBuilder.buildEnvironment(clientEnvironmentType, defaultClientEnvironment);
- if(standAlone) {
+ if (standAlone) {
String name = new File(moduleFile.getName()).getName();
- idBuilder.resolve(clientEnvironment, name+"_"+name, "jar");
+ idBuilder.resolve(clientEnvironment, name + "_" + name, "jar");
} else {
Artifact earConfigId = earEnvironment.getConfigId();
idBuilder.resolve(clientEnvironment, earConfigId.getArtifactId() + "_" + new File(moduleFile.getName()).getName(), "jar");
@@ -260,13 +234,15 @@
if (!standAlone) {
EnvironmentBuilder.mergeEnvironments(earEnvironment, serverEnvironment);
serverEnvironment = earEnvironment;
- if(!serverEnvironment.getConfigId().isResolved()) {
- throw new IllegalStateException("Server environment module ID should be fully resolved (not "+serverEnvironment.getConfigId()+")");
+ if (!serverEnvironment.getConfigId().isResolved()) {
+ throw new IllegalStateException("Server environment module ID should be fully resolved (not " + serverEnvironment.getConfigId() + ")");
}
} else {
idBuilder.resolve(serverEnvironment, new File(moduleFile.getName()).getName(), "jar");
}
+ namingBuilders.buildEnvironment(appClient, gerAppClient, clientEnvironment);
+
AbstractName moduleName;
if (earName == null) {
earName = naming.createRootName(earEnvironment.getConfigId(), NameFactory.NULL, NameFactory.J2EE_APPLICATION);
@@ -387,9 +363,10 @@
connectionTrackerObjectName,
null,
null,
- corbaGBeanObjectName,
- new RefContext(getEjbReferenceBuilder(), getResourceReferenceBuilder(), getServiceReferenceBuilder()));
+ corbaGBeanObjectName
+ );
appClientModule.setEarContext(appClientDeploymentContext);
+ appClientModule.setRootEarContext(earContext);
} catch (DeploymentException e) {
cleanupAppClientDir(appClientDir);
throw e;
@@ -435,9 +412,9 @@
Map componentContext;
GBeanData appClientModuleGBeanData = new GBeanData(appClientModuleName, J2EEAppClientModuleImpl.GBEAN_INFO);
try {
- appClientModuleGBeanData.setReferencePatterns("J2EEServer", Collections.singleton(earContext.getServerName()));
+ appClientModuleGBeanData.setReferencePattern("J2EEServer", earContext.getServerName());
if (!module.isStandAlone()) {
- appClientModuleGBeanData.setReferencePatterns("J2EEApplication", Collections.singleton(earContext.getModuleName()));
+ appClientModuleGBeanData.setReferencePattern("J2EEApplication", earContext.getModuleName());
}
appClientModuleGBeanData.setAttribute("deploymentDescriptor", appClientModule.getOriginalSpecDD());
@@ -461,10 +438,7 @@
try {
//register the message destinations in the app client ear context.
- MessageDestinationType[] messageDestinations = appClient.getMessageDestinationArray();
- GerMessageDestinationType[] gerMessageDestinations = geronimoAppClient.getMessageDestinationArray();
-
- ENCConfigBuilder.registerMessageDestinations(appClientDeploymentContext.getRefContext(), appClientModule.getName(), messageDestinations, gerMessageDestinations);
+ namingBuilders.initContext(appClient, geronimoAppClient, appClientDeploymentContext.getConfiguration(), earContext.getConfiguration(), appClientModule);
// extract the client Jar file into a standalone packed jar file and add the contents to the output
URI moduleBase = new URI(appClientModule.getTargetPath());
try {
@@ -546,7 +520,7 @@
AbstractName jndiContextName = earContext.getNaming().createChildName(appClientDeploymentContext.getModuleName(), "StaticJndiContext", "StaticJndiContext");
GBeanData jndiContextGBeanData = new GBeanData(jndiContextName, StaticJndiContextPlugin.GBEAN_INFO);
try {
- componentContext = buildComponentContext(appClientDeploymentContext, earContext, appClientModule, appClient, geronimoAppClient, appClientClassLoader);
+ componentContext = buildComponentContext(appClientDeploymentContext, earContext, appClientModule, appClient, geronimoAppClient);
jndiContextGBeanData.setAttribute("context", componentContext);
} catch (DeploymentException e) {
throw e;
@@ -685,40 +659,29 @@
}
}
- private Map buildComponentContext(EARContext appClientContext, EARContext ejbContext, AppClientModule appClientModule, ApplicationClientType appClient, GerApplicationClientType geronimoAppClient, ClassLoader cl) throws DeploymentException {
-
- return ENCConfigBuilder.buildComponentContext(appClientContext,
- ejbContext.getConfiguration(),
- appClientModule,
- null, //no user transaction yet
- appClient.getEnvEntryArray(),
- appClient.getEjbRefArray(), geronimoAppClient.getEjbRefArray(),
- new EjbLocalRefType[0], null,
- appClient.getResourceRefArray(), geronimoAppClient.getResourceRefArray(),
- appClient.getResourceEnvRefArray(), geronimoAppClient.getResourceEnvRefArray(),
- appClient.getMessageDestinationRefArray(),
- appClient.getServiceRefArray(), geronimoAppClient.getServiceRefArray(),
- geronimoAppClient.getGbeanRefArray(),
- cl);
-
+ private Map buildComponentContext(EARContext appClientContext, EARContext ejbContext, AppClientModule appClientModule, ApplicationClientType appClient, GerApplicationClientType geronimoAppClient) throws DeploymentException {
+ Map componentContext = new HashMap();
+ Configuration localConfiguration = appClientContext.getConfiguration();
+ Configuration remoteConfiguration = ejbContext.getConfiguration();
+ namingBuilders.buildNaming(appClient, geronimoAppClient, localConfiguration, remoteConfiguration, appClientModule, componentContext);
+ return componentContext;
}
- private boolean cleanupAppClientDir(File configurationDir)
- {
+ private boolean cleanupAppClientDir(File configurationDir) {
LinkedList cannotBeDeletedList = new LinkedList();
-
- if (!DeploymentUtil.recursiveDelete(configurationDir,cannotBeDeletedList)) {
+
+ if (!DeploymentUtil.recursiveDelete(configurationDir, cannotBeDeletedList)) {
// Output a message to help user track down file problem
- log.warn("Unable to delete " + cannotBeDeletedList.size() +
- " files while recursively deleting directory "
+ log.warn("Unable to delete " + cannotBeDeletedList.size() +
+ " files while recursively deleting directory "
+ configurationDir + LINE_SEP +
- "The first file that could not be deleted was:" + LINE_SEP + " "+
- ( !cannotBeDeletedList.isEmpty() ? cannotBeDeletedList.getFirst() : "") );
+ "The first file that could not be deleted was:" + LINE_SEP + " " +
+ (!cannotBeDeletedList.isEmpty() ? cannotBeDeletedList.getFirst() : ""));
return false;
}
return true;
- }
-
+ }
+
public static final GBeanInfo GBEAN_INFO;
static {
@@ -728,24 +691,20 @@
infoBuilder.addAttribute("transactionManagerObjectName", AbstractNameQuery.class, true);
infoBuilder.addAttribute("connectionTrackerObjectName", AbstractNameQuery.class, true);
infoBuilder.addAttribute("corbaGBeanObjectName", AbstractNameQuery.class, true);
- infoBuilder.addReference("EJBReferenceBuilder", EJBReferenceBuilder.class, NameFactory.MODULE_BUILDER);
infoBuilder.addReference("ConnectorModuleBuilder", ModuleBuilder.class, NameFactory.MODULE_BUILDER);
- infoBuilder.addReference("ResourceReferenceBuilder", ResourceReferenceBuilder.class, NameFactory.MODULE_BUILDER);
- infoBuilder.addReference("ServiceReferenceBuilder", ServiceReferenceBuilder.class, NameFactory.MODULE_BUILDER);
infoBuilder.addReference("SecurityBuilder", SecurityBuilder.class, NameFactory.MODULE_BUILDER);
infoBuilder.addReference("ServiceBuilders", NamespaceDrivenBuilder.class, NameFactory.MODULE_BUILDER);
+ infoBuilder.addReference("NamingBuilders", NamingBuilder.class, NameFactory.MODULE_BUILDER);
infoBuilder.addInterface(ModuleBuilder.class);
infoBuilder.setConstructor(new String[]{"transactionManagerObjectName",
"connectionTrackerObjectName",
"corbaGBeanObjectName",
- "EJBReferenceBuilder",
"ConnectorModuleBuilder",
- "ResourceReferenceBuilder",
- "ServiceReferenceBuilder",
"SecurityBuilder",
"ServiceBuilders",
+ "NamingBuilders",
"defaultClientEnvironment",
"defaultServerEnvironment",
});
Modified: geronimo/server/trunk/modules/geronimo-client-builder/src/test/java/org/apache/geronimo/client/builder/PlanParsingTest.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-client-builder/src/test/java/org/apache/geronimo/client/builder/PlanParsingTest.java?view=diff&rev=442387&r1=442386&r2=442387
==============================================================================
--- geronimo/server/trunk/modules/geronimo-client-builder/src/test/java/org/apache/geronimo/client/builder/PlanParsingTest.java (original)
+++ geronimo/server/trunk/modules/geronimo-client-builder/src/test/java/org/apache/geronimo/client/builder/PlanParsingTest.java Mon Sep 11 16:51:32 2006
@@ -19,7 +19,7 @@
private AppClientModuleBuilder builder;
protected void setUp() throws Exception {
- builder = new AppClientModuleBuilder(new Environment(), null, null, null, null, null, null, null, null, null, null);
+ builder = new AppClientModuleBuilder(new Environment(), null, null, null, null, null, null, null, null);
}
public void testResourceRef() throws Exception {
Added: geronimo/server/trunk/modules/geronimo-connector-builder/src/main/java/org/apache/geronimo/connector/deployment/AdminObjectRefBuilder.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-connector-builder/src/main/java/org/apache/geronimo/connector/deployment/AdminObjectRefBuilder.java?view=auto&rev=442387
==============================================================================
--- geronimo/server/trunk/modules/geronimo-connector-builder/src/main/java/org/apache/geronimo/connector/deployment/AdminObjectRefBuilder.java (added)
+++ geronimo/server/trunk/modules/geronimo-connector-builder/src/main/java/org/apache/geronimo/connector/deployment/AdminObjectRefBuilder.java Mon Sep 11 16:51:32 2006
@@ -0,0 +1,257 @@
+/**
+ *
+ * Copyright 2006 The Apache Software Foundation
+ *
+ * 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.apache.geronimo.connector.deployment;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
+import javax.naming.Reference;
+import javax.xml.namespace.QName;
+
+import org.apache.geronimo.common.DeploymentException;
+import org.apache.geronimo.common.UnresolvedReferenceException;
+import org.apache.geronimo.gbean.AbstractNameQuery;
+import org.apache.geronimo.gbean.GBeanInfo;
+import org.apache.geronimo.gbean.GBeanInfoBuilder;
+import org.apache.geronimo.j2ee.deployment.Module;
+import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
+import org.apache.geronimo.kernel.GBeanNotFoundException;
+import org.apache.geronimo.kernel.config.Configuration;
+import org.apache.geronimo.kernel.repository.Environment;
+import org.apache.geronimo.naming.deployment.AbstractNamingBuilder;
+import org.apache.geronimo.naming.reference.ResourceReference;
+import org.apache.geronimo.xbeans.geronimo.naming.GerMessageDestinationDocument;
+import org.apache.geronimo.xbeans.geronimo.naming.GerMessageDestinationType;
+import org.apache.geronimo.xbeans.geronimo.naming.GerPatternType;
+import org.apache.geronimo.xbeans.geronimo.naming.GerResourceEnvRefDocument;
+import org.apache.geronimo.xbeans.geronimo.naming.GerResourceEnvRefType;
+import org.apache.geronimo.xbeans.j2ee.ConnectorDocument;
+import org.apache.geronimo.xbeans.j2ee.MessageDestinationRefType;
+import org.apache.geronimo.xbeans.j2ee.MessageDestinationType;
+import org.apache.geronimo.xbeans.j2ee.ResourceEnvRefType;
+import org.apache.xmlbeans.QNameSet;
+import org.apache.xmlbeans.XmlObject;
+
+/**
+ * @version $Rev:$ $Date:$
+ */
+public class AdminObjectRefBuilder extends AbstractNamingBuilder {
+ private static final String J2EE_NAMESPACE = ConnectorDocument.type.getDocumentElementName().getNamespaceURI();
+ private static final QName ADMIN_OBJECT_REF_QNAME = new QName(J2EE_NAMESPACE, "resource-env-ref");
+ private static final QNameSet ADMIN_OBJECT_REF_QNAME_SET = QNameSet.singleton(ADMIN_OBJECT_REF_QNAME);
+ private static final QName MESSAGE_DESTINATION_REF_QNAME = new QName(J2EE_NAMESPACE, "message-destination-ref");
+// private static final QNameSet ADMIN_OBJECT_REF_QNAME_SET = QNameSet.singleton(ADMIN_OBJECT_REF_QNAME);
+ private static final QName GER_ADMIN_OBJECT_REF_QNAME = GerResourceEnvRefDocument.type.getDocumentElementName();
+ private static final QNameSet GER_ADMIN_OBJECT_REF_QNAME_SET = QNameSet.singleton(GER_ADMIN_OBJECT_REF_QNAME);
+ private static final QName MESSAGE_DESTINATION_REF = new QName(J2EE_NAMESPACE, "message-destination");
+ private static final QNameSet MESSAGE_DESTINATION_QNAME_SET = QNameSet.singleton(MESSAGE_DESTINATION_REF);
+ private static final QName GER_MESSAGE_DESTINATION_QNAME = GerMessageDestinationDocument.type.getDocumentElementName();
+ private static final QNameSet GER_MESSAGE_DESTINATION_QNAME_SET = QNameSet.singleton(GER_MESSAGE_DESTINATION_QNAME);
+
+
+ public void buildEnvironment(XmlObject specDD, XmlObject plan, Environment environment) {
+ }
+
+ public void initContext(XmlObject specDD, XmlObject plan, Configuration localConfiguration, Configuration remoteConfiguration, Module module) throws DeploymentException {
+ XmlObject[] specDestinations = specDD.selectChildren(MESSAGE_DESTINATION_QNAME_SET);
+ XmlObject[] gerDestinations = plan.selectChildren(GER_MESSAGE_DESTINATION_QNAME_SET);
+ Map nameMap = new HashMap();
+ for (int i = 0; i < gerDestinations.length; i++) {
+ GerMessageDestinationType destination = (GerMessageDestinationType) gerDestinations[i].copy().changeType(GerMessageDestinationType.type);
+ String name = destination.getMessageDestinationName().trim();
+ nameMap.put(name, destination);
+ boolean found = false;
+ for (int j = 0; j < specDestinations.length; j++) {
+ MessageDestinationType specDestination = (MessageDestinationType) specDestinations[j].copy().changeType(MessageDestinationType.type);
+ if (specDestination.getMessageDestinationName().getStringValue().trim().equals(name)) {
+ found = true;
+ break;
+ }
+ }
+ if (!found) {
+ throw new DeploymentException("No spec DD message-destination for " + name);
+ }
+ }
+ module.getRootEarContext().registerMessageDestionations(module.getName(), nameMap);
+ }
+
+
+ public void buildNaming(XmlObject specDD, XmlObject plan, Configuration localConfiguration, Configuration remoteConfiguration, Module module, Map componentContext) throws DeploymentException {
+ XmlObject[] resourceEnvRefsUntyped = specDD.selectChildren(ADMIN_OBJECT_REF_QNAME_SET);
+ ClassLoader cl = localConfiguration.getConfigurationClassLoader();
+ XmlObject[] gerResourceEnvRefsUntyped = plan == null? NO_REFS: plan.selectChildren(GER_ADMIN_OBJECT_REF_QNAME_SET);
+ Map refMap = mapResourceEnvRefs(gerResourceEnvRefsUntyped);
+ for (int i = 0; i < resourceEnvRefsUntyped.length; i++) {
+ ResourceEnvRefType resourceEnvRef = (ResourceEnvRefType) resourceEnvRefsUntyped[i];
+ String name = resourceEnvRef.getResourceEnvRefName().getStringValue().trim();
+ String type = resourceEnvRef.getResourceEnvRefType().getStringValue().trim();
+ Class iface;
+ try {
+ iface = cl.loadClass(type);
+ } catch (ClassNotFoundException e) {
+ throw new DeploymentException("could not load class " + type, e);
+ }
+ GerResourceEnvRefType gerResourceEnvRef = (GerResourceEnvRefType) refMap.get(name);
+ try {
+ AbstractNameQuery containerId = getAdminObjectContainerId(name, gerResourceEnvRef);
+ Reference ref = buildAdminObjectReference(localConfiguration, containerId, iface);
+ componentContext.put(ENV + name, ref);
+ } catch (UnresolvedReferenceException e) {
+ throw new DeploymentException("Unable to resolve resource env reference '" + name + "' (" + (e.isMultiple() ? "found multiple matching resources" : "no matching resources found") + ")");
+ }
+ }
+
+ //message-destination-refs
+ XmlObject[] messageDestinationRefsUntyped = specDD.selectChildren(MESSAGE_DESTINATION_REF_QNAME);
+
+ for (int i = 0; i < messageDestinationRefsUntyped.length; i++) {
+ MessageDestinationRefType messageDestinationRef = (MessageDestinationRefType) messageDestinationRefsUntyped[i].copy().changeType(MessageDestinationRefType.type);
+ String name = getStringValue(messageDestinationRef.getMessageDestinationRefName());
+ String linkName = getStringValue(messageDestinationRef.getMessageDestinationLink());
+ String type = getStringValue(messageDestinationRef.getMessageDestinationType());
+ Class iface;
+ try {
+ iface = cl.loadClass(type);
+ } catch (ClassNotFoundException e) {
+ throw new DeploymentException("could not load class " + type, e);
+ }
+ String moduleURI = null;
+ Map messageDestinations = module.getRootEarContext().getMessageDestinations();
+ GerMessageDestinationType destination = getMessageDestination(linkName, messageDestinations);
+ if (destination != null) {
+ if (destination.isSetAdminObjectLink()) {
+ if (destination.isSetAdminObjectModule()) {
+ moduleURI = destination.getAdminObjectModule().trim();
+ }
+ linkName = destination.getAdminObjectLink().trim();
+ }
+ } else {
+ //well, we know for sure an admin object is not going to be defined in a modules that can have a message-destination
+ int pos = linkName.indexOf('#');
+ if (pos > -1) {
+ //AMM -- the following line causes blowups; e.g. to look in DayTrader EJB module for a RA -- why is that?!?
+ //moduleURI = linkName.substring(0, pos);
+ linkName = linkName.substring(pos + 1);
+ }
+ }
+
+ //try to resolve ref based only matching resource-ref-name
+ //throws exception if it can't locate ref.
+ AbstractNameQuery containerId = buildAbstractNameQuery(null, moduleURI, linkName, NameFactory.JCA_ADMIN_OBJECT, NameFactory.RESOURCE_ADAPTER_MODULE);
+ Reference ref = buildAdminObjectReference(localConfiguration, containerId, iface);
+ componentContext.put(ENV + name, ref);
+
+ }
+
+ }
+
+ public static GerMessageDestinationType getMessageDestination(String messageDestinationLink, Map messageDestinations) throws DeploymentException {
+ GerMessageDestinationType destination = null;
+ int pos = messageDestinationLink.indexOf('#');
+ if (pos > -1) {
+ String targetModule = messageDestinationLink.substring(0, pos);
+ Map destinations = (Map) messageDestinations.get(targetModule);
+ // Hmmm...if we don't find the module then something is wrong in the deployment.
+ if (destinations == null) {
+ StringBuffer sb = new StringBuffer();
+ for (Iterator mapIterator = messageDestinations.keySet().iterator(); mapIterator.hasNext();) {
+ sb.append(mapIterator.next()).append("\n");
+ }
+ throw new DeploymentException("Unknown module " + targetModule + " when processing message destination " + messageDestinationLink +
+ "\nKnown modules in deployable unit are:\n" + sb.toString());
+ }
+ messageDestinationLink = messageDestinationLink.substring(pos + 1);
+ destination = (GerMessageDestinationType) destinations.get(messageDestinationLink);
+ } else {
+ for (Iterator iterator = messageDestinations.values().iterator(); iterator.hasNext();) {
+ Map destinations = (Map) iterator.next();
+ GerMessageDestinationType destinationTest = (GerMessageDestinationType) destinations.get(messageDestinationLink);
+ if (destinationTest != null) {
+ if (destination != null) {
+ throw new DeploymentException("Duplicate message destination " + messageDestinationLink + " accessed from a message-destination-link without a module");
+ }
+ destination = destinationTest;
+ }
+ }
+ }
+ return destination;
+ }
+
+
+ private Reference buildAdminObjectReference(Configuration localConfiguration, AbstractNameQuery containerId, Class iface) throws DeploymentException {
+ try {
+ localConfiguration.findGBean(containerId);
+ } catch (GBeanNotFoundException e) {
+ throw new DeploymentException("Can not resolve admin object ref " + containerId + " in configuration " + localConfiguration.getId());
+ }
+ return new ResourceReference(localConfiguration.getId(), containerId, iface);
+ }
+
+ private static AbstractNameQuery getAdminObjectContainerId(String name, GerResourceEnvRefType gerResourceEnvRef) {
+ AbstractNameQuery containerId;
+ if (gerResourceEnvRef == null) {
+ containerId = buildAbstractNameQuery(null, null, name, NameFactory.JCA_ADMIN_OBJECT, NameFactory.RESOURCE_ADAPTER_MODULE);
+ } else if (gerResourceEnvRef.isSetMessageDestinationLink()) {
+ containerId = buildAbstractNameQuery(null, null, gerResourceEnvRef.getMessageDestinationLink().trim(), NameFactory.JCA_ADMIN_OBJECT, NameFactory.RESOURCE_ADAPTER_MODULE);
+ } else if (gerResourceEnvRef.isSetAdminObjectLink()) {
+ String moduleURI = null;
+ if (gerResourceEnvRef.isSetAdminObjectModule()) {
+ moduleURI = gerResourceEnvRef.getAdminObjectModule().trim();
+ }
+ containerId = buildAbstractNameQuery(null, moduleURI, gerResourceEnvRef.getAdminObjectLink().trim(), NameFactory.JCA_ADMIN_OBJECT, NameFactory.RESOURCE_ADAPTER_MODULE);
+ } else {
+ //construct name from components
+ GerPatternType patternType = gerResourceEnvRef.getPattern();
+ containerId = buildAbstractNameQuery(patternType, NameFactory.JCA_ADMIN_OBJECT, NameFactory.RESOURCE_ADAPTER_MODULE, null);
+ }
+ return containerId;
+ }
+
+ private static Map mapResourceEnvRefs(XmlObject[] refs) {
+ Map refMap = new HashMap();
+ if (refs != null) {
+ for (int i = 0; i < refs.length; i++) {
+ GerResourceEnvRefType ref = (GerResourceEnvRefType) refs[i].copy().changeType(GerResourceEnvRefType.type);
+ refMap.put(ref.getRefName().trim(), ref);
+ }
+ }
+ return refMap;
+ }
+
+ public QNameSet getSpecQNameSet() {
+ return ADMIN_OBJECT_REF_QNAME_SET;
+ }
+
+ public QNameSet getPlanQNameSet() {
+ return GER_ADMIN_OBJECT_REF_QNAME_SET;
+ }
+
+ public static final GBeanInfo GBEAN_INFO;
+
+ static {
+ GBeanInfoBuilder infoBuilder = GBeanInfoBuilder.createStatic(AdminObjectRefBuilder.class, NameFactory.MODULE_BUILDER);
+
+ GBEAN_INFO = infoBuilder.getBeanInfo();
+ }
+
+ public static GBeanInfo getGBeanInfo() {
+ return GBEAN_INFO;
+ }
+
+}
Propchange: geronimo/server/trunk/modules/geronimo-connector-builder/src/main/java/org/apache/geronimo/connector/deployment/AdminObjectRefBuilder.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/server/trunk/modules/geronimo-connector-builder/src/main/java/org/apache/geronimo/connector/deployment/AdminObjectRefBuilder.java
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/server/trunk/modules/geronimo-connector-builder/src/main/java/org/apache/geronimo/connector/deployment/AdminObjectRefBuilder.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: geronimo/server/trunk/modules/geronimo-connector-builder/src/main/java/org/apache/geronimo/connector/deployment/ConnectorModuleBuilder.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-connector-builder/src/main/java/org/apache/geronimo/connector/deployment/ConnectorModuleBuilder.java?view=diff&rev=442387&r1=442386&r2=442387
==============================================================================
--- geronimo/server/trunk/modules/geronimo-connector-builder/src/main/java/org/apache/geronimo/connector/deployment/ConnectorModuleBuilder.java (original)
+++ geronimo/server/trunk/modules/geronimo-connector-builder/src/main/java/org/apache/geronimo/connector/deployment/ConnectorModuleBuilder.java Mon Sep 11 16:51:32 2006
@@ -80,7 +80,7 @@
import org.apache.geronimo.j2ee.deployment.EARContext;
import org.apache.geronimo.j2ee.deployment.Module;
import org.apache.geronimo.j2ee.deployment.ModuleBuilder;
-import org.apache.geronimo.j2ee.deployment.ResourceReferenceBuilder;
+import org.apache.geronimo.j2ee.deployment.ActivationSpecInfoLocator;
import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
import org.apache.geronimo.kernel.GBeanAlreadyExistsException;
import org.apache.geronimo.kernel.GBeanNotFoundException;
@@ -121,7 +121,7 @@
/**
* @version $Rev:385659 $ $Date$
*/
-public class ConnectorModuleBuilder implements ModuleBuilder, ResourceReferenceBuilder {
+public class ConnectorModuleBuilder implements ModuleBuilder, ActivationSpecInfoLocator {
private static QName CONNECTOR_QNAME = GerConnectorDocument.type.getDocumentElementName();
static final String GERCONNECTOR_NAMESPACE = CONNECTOR_QNAME.getNamespaceURI();
@@ -416,7 +416,7 @@
resourceAdapterInstanceGBeanData.setReferencePattern("WorkManager", workManagerName);
// set the xa terminator name which is the same as our transaction manager
- resourceAdapterInstanceGBeanData.setReferencePattern("XATerminator", earContext.getTransactionManagerObjectName());
+ resourceAdapterInstanceGBeanData.setReferencePattern("XATerminator", earContext.getTransactionManagerName());
String resourceAdapterName = geronimoResourceAdapter.getResourceadapterInstance().getResourceadapterName();
resourceAdapterAbstractName = earContext.getNaming().createChildName(jcaResourceName, resourceAdapterName, NameFactory.JCA_RESOURCE_ADAPTER);
@@ -724,9 +724,9 @@
try {
connectionManagerGBean.setAttribute("transactionSupport", transactionSupport);
connectionManagerGBean.setAttribute("pooling", pooling);
- connectionManagerGBean.setReferencePattern("ConnectionTracker", earContext.getConnectionTrackerObjectName());
+ connectionManagerGBean.setReferencePattern("ConnectionTracker", earContext.getConnectionTrackerName());
connectionManagerGBean.setAttribute("containerManagedSecurity", Boolean.valueOf(connectionManager.isSetContainerManagedSecurity()));
- connectionManagerGBean.setReferencePattern("TransactionManager", earContext.getTransactionManagerObjectName());
+ connectionManagerGBean.setReferencePattern("TransactionManager", earContext.getTransactionManagerName());
} catch (Exception e) {
throw new DeploymentException("Problem setting up ConnectionManager named " + connectionfactoryInstance.getName().trim(), e);
}
@@ -786,7 +786,7 @@
}
}
- //ResourceReferenceBuilder implementation
+ //ResourceRefBuilder implementation
public Reference createResourceRef(AbstractNameQuery containerId, Class iface, Configuration configuration) throws DeploymentException {
try {
configuration.findGBean(containerId);
@@ -875,7 +875,7 @@
infoBuilder.addReference("ServiceBuilders", NamespaceDrivenBuilder.class, NameFactory.MODULE_BUILDER);
infoBuilder.addInterface(ModuleBuilder.class);
- infoBuilder.addInterface(ResourceReferenceBuilder.class);
+ infoBuilder.addInterface(ActivationSpecInfoLocator.class);
infoBuilder.setConstructor(new String[]{"defaultEnvironment",
"defaultMaxSize",