[jboss-cvs] JBossAS SVN: r61183 - in branches/tdiesler/trunk: ejb3/src/main/org/jboss/injection and 8 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Mar 7 07:13:06 EST 2007
Author: thomas.diesler at jboss.com
Date: 2007-03-07 07:13:06 -0500 (Wed, 07 Mar 2007)
New Revision: 61183
Added:
branches/tdiesler/trunk/ejb3/src/main/org/jboss/injection/WebServiceRefHandler.java
branches/tdiesler/trunk/server/src/main/org/jboss/metadata/serviceref/ServiceRefObjectFactory.java
Removed:
branches/tdiesler/trunk/ejb3/src/main/org/jboss/injection/WebServiceRefHandler.java
Modified:
branches/tdiesler/trunk/ejb3/src/main/org/jboss/ejb3/metamodel/EnterpriseBeans.java
branches/tdiesler/trunk/ejb3/src/main/org/jboss/ejb3/metamodel/JBossClientDDObjectFactory.java
branches/tdiesler/trunk/ejb3/src/main/org/jboss/ejb3/metamodel/JBossDDObjectFactory.java
branches/tdiesler/trunk/server/src/main/org/jboss/deployment/JBossEjbObjectFactory.java
branches/tdiesler/trunk/server/src/main/org/jboss/metadata/DDObjectFactory.java
branches/tdiesler/trunk/server/src/main/org/jboss/metadata/serviceref/PortComponentRefMetaData.java
branches/tdiesler/trunk/server/src/main/org/jboss/metadata/serviceref/ServiceRefMetaData.java
branches/tdiesler/trunk/server/src/main/org/jboss/metadata/web/JBossWebMetaDataObjectFactory.java
branches/tdiesler/trunk/server/src/main/org/jboss/metamodel/descriptor/DDObjectFactory.java
branches/tdiesler/trunk/server/src/main/org/jboss/metamodel/descriptor/EnvironmentRefGroup.java
branches/tdiesler/trunk/server/src/resources/dtd/service-ref_5_0.dtd
branches/tdiesler/trunk/tomcat/src/main/org/jboss/web/metamodel/descriptor/JBossWebDDObjectFactory.java
branches/tdiesler/trunk/tomcat/src/main/org/jboss/web/tomcat/tc6/deployers/TomcatDeployment.java
branches/tdiesler/trunk/tomcat/src/main/org/jboss/web/tomcat/tc6/deployers/TomcatDeployment2.java
Log:
partial
Modified: branches/tdiesler/trunk/ejb3/src/main/org/jboss/ejb3/metamodel/EnterpriseBeans.java
===================================================================
--- branches/tdiesler/trunk/ejb3/src/main/org/jboss/ejb3/metamodel/EnterpriseBeans.java 2007-03-07 11:20:31 UTC (rev 61182)
+++ branches/tdiesler/trunk/ejb3/src/main/org/jboss/ejb3/metamodel/EnterpriseBeans.java 2007-03-07 12:13:06 UTC (rev 61183)
@@ -119,6 +119,11 @@
currentEjb.addServiceRef(ref);
}
+ public ServiceRefMetaData getServiceRef(String name)
+ {
+ return currentEjb.getServiceRef(name);
+ }
+
public void setMethodAttributes(MethodAttributes attributes)
{
currentEjb.setMethodAttributes(attributes);
Modified: branches/tdiesler/trunk/ejb3/src/main/org/jboss/ejb3/metamodel/JBossClientDDObjectFactory.java
===================================================================
--- branches/tdiesler/trunk/ejb3/src/main/org/jboss/ejb3/metamodel/JBossClientDDObjectFactory.java 2007-03-07 11:20:31 UTC (rev 61182)
+++ branches/tdiesler/trunk/ejb3/src/main/org/jboss/ejb3/metamodel/JBossClientDDObjectFactory.java 2007-03-07 12:13:06 UTC (rev 61183)
@@ -95,9 +95,22 @@
dd.updateMessageDestinationRef(ref);
}
- public void addChild(ApplicationClientDD parent, ServiceRefMetaData ref, UnmarshallingContext navigator, String namespaceURI, String localName)
+ public void addChild(ApplicationClientDD parent, ServiceRefMetaData sref, UnmarshallingContext navigator, String namespaceURI, String localName)
{
- dd.addServiceRef(ref);
+ String refName = sref.getServiceRefName();
+ if (refName == null)
+ throw new IllegalStateException("Invalid service-ref-name: " + refName);
+
+ ServiceRefMetaData targetRef = parent.getServiceRef(refName);
+ if (targetRef == null)
+ {
+ log.debug("Cannot find <service-ref> with name: " + refName);
+ parent.addServiceRef(sref);
+ }
+ else
+ {
+ targetRef.merge(sref);
+ }
}
public void addChild(ApplicationClientDD dd, ResourceEnvRef envRef, UnmarshallingContext navigator, String namespaceURI, String localName)
Modified: branches/tdiesler/trunk/ejb3/src/main/org/jboss/ejb3/metamodel/JBossDDObjectFactory.java
===================================================================
--- branches/tdiesler/trunk/ejb3/src/main/org/jboss/ejb3/metamodel/JBossDDObjectFactory.java 2007-03-07 11:20:31 UTC (rev 61182)
+++ branches/tdiesler/trunk/ejb3/src/main/org/jboss/ejb3/metamodel/JBossDDObjectFactory.java 2007-03-07 12:13:06 UTC (rev 61183)
@@ -662,9 +662,22 @@
/**
* Called when parsing character is complete.
*/
- public void addChild(EnterpriseBeans parent, ServiceRefMetaData ref, UnmarshallingContext navigator, String namespaceURI, String localName)
+ public void addChild(EnterpriseBeans parent, ServiceRefMetaData sref, UnmarshallingContext navigator, String namespaceURI, String localName)
{
- parent.addServiceRef(ref);
+ String refName = sref.getServiceRefName();
+ if (refName == null)
+ throw new IllegalStateException("Invalid service-ref-name: " + refName);
+
+ ServiceRefMetaData targetRef = parent.getServiceRef(refName);
+ if (targetRef == null)
+ {
+ log.debug("Cannot find <service-ref> with name: " + refName);
+ parent.addServiceRef(sref);
+ }
+ else
+ {
+ targetRef.merge(sref);
+ }
}
/**
Deleted: branches/tdiesler/trunk/ejb3/src/main/org/jboss/injection/WebServiceRefHandler.java
===================================================================
--- branches/tdiesler/trunk/ejb3/src/main/org/jboss/injection/WebServiceRefHandler.java 2007-03-07 11:20:31 UTC (rev 61182)
+++ branches/tdiesler/trunk/ejb3/src/main/org/jboss/injection/WebServiceRefHandler.java 2007-03-07 12:13:06 UTC (rev 61183)
@@ -1,150 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.injection;
-
-// $Id$
-
-import java.lang.reflect.AccessibleObject;
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.naming.Context;
-import javax.xml.ws.WebServiceRef;
-import javax.xml.ws.WebServiceRefs;
-
-import org.jboss.logging.Logger;
-import org.jboss.metadata.serviceref.ServiceRefMetaData;
-import org.jboss.metamodel.descriptor.EnvironmentRefGroup;
-
-/**
- * Handle @WebServiceRef annotations
- *
- * @author Thomas.Diesler at jboss.com
- */
-public class WebServiceRefHandler implements InjectionHandler
-{
- private static final Logger log = Logger.getLogger(WebServiceRefHandler.class);
- private Map<String, ServiceRefMetaData> srefMap = new HashMap<String, ServiceRefMetaData>();
-
- public void loadXml(EnvironmentRefGroup xml, InjectionContainer container)
- {
- if (xml == null) return;
- if (xml.getServiceRefs() == null) return;
- for (ServiceRefMetaData sref : xml.getServiceRefs())
- {
- log.debug("service-ref: " + sref);
- if (srefMap.get(sref.getServiceRefName()) != null)
- throw new IllegalStateException ("Duplicate <service-ref-name> in " + sref);
-
- srefMap.put(sref.getServiceRefName(), sref);
- }
- }
-
- public void handleClassAnnotations(Class type, InjectionContainer container)
- {
- WebServiceRef wsref = container.getAnnotation(WebServiceRef.class, type);
- if (wsref != null)
- {
- bindRefOnType(type, container, wsref);
- }
-
- WebServiceRefs refs = container.getAnnotation(WebServiceRefs.class, type);
- if (refs != null)
- {
- for (WebServiceRef refItem : refs.value())
- {
- bindRefOnType(type, container, refItem);
- }
- }
- }
-
- private void bindRefOnType(Class type, InjectionContainer container, WebServiceRef wsref)
- {
- String name = wsref.name();
- if (name.equals(""))
- name = InjectionUtil.getEncName(type).substring(4);
-
- if (!container.getEncInjectors().containsKey(name))
- {
- String encName = "env/" + name;
- ServiceRefMetaData sref = getServiceRef(name);
- container.getEncInjectors().put(name, new ServiceRefInjector(encName, type, sref));
- }
- }
-
- public void handleMethodAnnotations(Method method, InjectionContainer container, Map<AccessibleObject, Injector> injectors)
- {
- WebServiceRef wsref = method.getAnnotation(WebServiceRef.class);
- if (wsref == null) return;
-
- if (!method.getName().startsWith("set"))
- throw new RuntimeException("@WebServiceRef can only be used with a set method: " + method);
-
- String name = wsref.name();
- if (name.equals(""))
- name = InjectionUtil.getEncName(method).substring(4);
-
- String encName = "env/" + name;
- Context encCtx = container.getEnc();
- if (!container.getEncInjectors().containsKey(name))
- {
- ServiceRefMetaData sref = getServiceRef(name);
- container.getEncInjectors().put(name, new ServiceRefInjector(encName, method, sref));
- }
-
- injectors.put(method, new JndiMethodInjector(method, encName, encCtx));
- }
-
- public void handleFieldAnnotations(Field field, InjectionContainer container, Map<AccessibleObject, Injector> injectors)
- {
- WebServiceRef wsref = field.getAnnotation(WebServiceRef.class);
- if (wsref == null) return;
-
- String name = wsref.name();
- if (name.equals(""))
- name = InjectionUtil.getEncName(field).substring(4);
-
- String encName = "env/" + name;
- Context encCtx = container.getEnc();
- if (!container.getEncInjectors().containsKey(name))
- {
- ServiceRefMetaData sref = getServiceRef(name);
- container.getEncInjectors().put(name, new ServiceRefInjector(encName, field, sref));
- }
-
- injectors.put(field, new JndiFieldInjector(field, encName, encCtx));
- }
-
- private ServiceRefMetaData getServiceRef(String name)
- {
- ServiceRefMetaData sref = srefMap.get(name);
- if (sref == null)
- {
- log.debug("No override for @WebServiceRef.name: " + name);
- sref = new ServiceRefMetaData();
- sref.setServiceRefName(name);
- }
- return sref;
- }
-}
Added: branches/tdiesler/trunk/ejb3/src/main/org/jboss/injection/WebServiceRefHandler.java
===================================================================
--- branches/tdiesler/trunk/ejb3/src/main/org/jboss/injection/WebServiceRefHandler.java (rev 0)
+++ branches/tdiesler/trunk/ejb3/src/main/org/jboss/injection/WebServiceRefHandler.java 2007-03-07 12:13:06 UTC (rev 61183)
@@ -0,0 +1,150 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.injection;
+
+// $Id$
+
+import java.lang.reflect.AccessibleObject;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.naming.Context;
+import javax.xml.ws.WebServiceRef;
+import javax.xml.ws.WebServiceRefs;
+
+import org.jboss.logging.Logger;
+import org.jboss.metadata.serviceref.ServiceRefMetaData;
+import org.jboss.metamodel.descriptor.EnvironmentRefGroup;
+
+/**
+ * Handle @WebServiceRef annotations
+ *
+ * @author Thomas.Diesler at jboss.com
+ */
+public class WebServiceRefHandler implements InjectionHandler
+{
+ private static final Logger log = Logger.getLogger(WebServiceRefHandler.class);
+ private Map<String, ServiceRefMetaData> srefMap = new HashMap<String, ServiceRefMetaData>();
+
+ public void loadXml(EnvironmentRefGroup xml, InjectionContainer container)
+ {
+ if (xml == null) return;
+ if (xml.getServiceRefs() == null) return;
+ for (ServiceRefMetaData sref : xml.getServiceRefs())
+ {
+ log.debug("service-ref: " + sref);
+ if (srefMap.get(sref.getServiceRefName()) != null)
+ throw new IllegalStateException ("Duplicate <service-ref-name> in " + sref);
+
+ srefMap.put(sref.getServiceRefName(), sref);
+ }
+ }
+
+ public void handleClassAnnotations(Class type, InjectionContainer container)
+ {
+ WebServiceRef wsref = container.getAnnotation(WebServiceRef.class, type);
+ if (wsref != null)
+ {
+ bindRefOnType(type, container, wsref);
+ }
+
+ WebServiceRefs refs = container.getAnnotation(WebServiceRefs.class, type);
+ if (refs != null)
+ {
+ for (WebServiceRef refItem : refs.value())
+ {
+ bindRefOnType(type, container, refItem);
+ }
+ }
+ }
+
+ private void bindRefOnType(Class type, InjectionContainer container, WebServiceRef wsref)
+ {
+ String name = wsref.name();
+ if (name.equals(""))
+ name = InjectionUtil.getEncName(type).substring(4);
+
+ if (!container.getEncInjectors().containsKey(name))
+ {
+ String encName = "env/" + name;
+ ServiceRefMetaData sref = getServiceRef(name);
+ container.getEncInjectors().put(name, new ServiceRefInjector(encName, type, sref));
+ }
+ }
+
+ public void handleMethodAnnotations(Method method, InjectionContainer container, Map<AccessibleObject, Injector> injectors)
+ {
+ WebServiceRef wsref = method.getAnnotation(WebServiceRef.class);
+ if (wsref == null) return;
+
+ if (!method.getName().startsWith("set"))
+ throw new RuntimeException("@WebServiceRef can only be used with a set method: " + method);
+
+ String name = wsref.name();
+ if (name.equals(""))
+ name = InjectionUtil.getEncName(method).substring(4);
+
+ String encName = "env/" + name;
+ Context encCtx = container.getEnc();
+ if (!container.getEncInjectors().containsKey(name))
+ {
+ ServiceRefMetaData sref = getServiceRef(name);
+ container.getEncInjectors().put(name, new ServiceRefInjector(encName, method, sref));
+ }
+
+ injectors.put(method, new JndiMethodInjector(method, encName, encCtx));
+ }
+
+ public void handleFieldAnnotations(Field field, InjectionContainer container, Map<AccessibleObject, Injector> injectors)
+ {
+ WebServiceRef wsref = field.getAnnotation(WebServiceRef.class);
+ if (wsref == null) return;
+
+ String name = wsref.name();
+ if (name.equals(""))
+ name = InjectionUtil.getEncName(field).substring(4);
+
+ String encName = "env/" + name;
+ Context encCtx = container.getEnc();
+ if (!container.getEncInjectors().containsKey(name))
+ {
+ ServiceRefMetaData sref = getServiceRef(name);
+ container.getEncInjectors().put(name, new ServiceRefInjector(encName, field, sref));
+ }
+
+ injectors.put(field, new JndiFieldInjector(field, encName, encCtx));
+ }
+
+ private ServiceRefMetaData getServiceRef(String name)
+ {
+ ServiceRefMetaData sref = srefMap.get(name);
+ if (sref == null)
+ {
+ log.debug("No override for @WebServiceRef.name: " + name);
+ sref = new ServiceRefMetaData();
+ sref.setServiceRefName(name);
+ }
+ return sref;
+ }
+}
Modified: branches/tdiesler/trunk/server/src/main/org/jboss/deployment/JBossEjbObjectFactory.java
===================================================================
--- branches/tdiesler/trunk/server/src/main/org/jboss/deployment/JBossEjbObjectFactory.java 2007-03-07 11:20:31 UTC (rev 61182)
+++ branches/tdiesler/trunk/server/src/main/org/jboss/deployment/JBossEjbObjectFactory.java 2007-03-07 12:13:06 UTC (rev 61183)
@@ -576,18 +576,22 @@
ref.setJndiName(child.getJndiName());
}
- public void addChild(BeanHolder parent, ServiceRefMetaData sourceRef,
- UnmarshallingContext navigator, String namespaceURI, String localName)
+ public void addChild(BeanHolder parent, ServiceRefMetaData sref, UnmarshallingContext navigator, String namespaceURI, String localName)
{
- String refName = sourceRef.getServiceRefName();
+ String refName = sref.getServiceRefName();
if (refName == null)
throw new IllegalStateException("Invalid service-ref-name: " + refName);
-
+
ServiceRefMetaData targetRef = parent.metaData.getServiceRef(refName);
if (targetRef == null)
- throw new IllegalStateException("Cannot find service-ref: " + refName);
-
- targetRef.merge(sourceRef);
+ {
+ log.debug("Cannot find <service-ref> with name: " + refName);
+ parent.metaData.addServiceRef(sref);
+ }
+ else
+ {
+ targetRef.merge(sref);
+ }
}
public void addChild(InvokerMetaData parent, InvokerMetaData.EjbRef child,
Modified: branches/tdiesler/trunk/server/src/main/org/jboss/metadata/DDObjectFactory.java
===================================================================
--- branches/tdiesler/trunk/server/src/main/org/jboss/metadata/DDObjectFactory.java 2007-03-07 11:20:31 UTC (rev 61182)
+++ branches/tdiesler/trunk/server/src/main/org/jboss/metadata/DDObjectFactory.java 2007-03-07 12:13:06 UTC (rev 61183)
@@ -23,7 +23,9 @@
import javax.persistence.PersistenceContextType;
+import org.jboss.logging.Logger;
import org.jboss.metadata.serviceref.ServiceRefMetaData;
+import org.jboss.metadata.serviceref.ServiceRefObjectFactory;
import org.jboss.xb.binding.ObjectModelFactory;
import org.jboss.xb.binding.UnmarshallingContext;
import org.xml.sax.Attributes;
@@ -34,8 +36,11 @@
* @author Thomas.Diesler at jboss.org
* @version <tt>$Revision: 56531 $</tt>
*/
-public abstract class DDObjectFactory implements ObjectModelFactory
+public abstract class DDObjectFactory extends ServiceRefObjectFactory implements ObjectModelFactory
{
+ // provide logging
+ protected Logger log = Logger.getLogger(getClass());
+
public Object newChild(PersistenceUnitRef ref, UnmarshallingContext navigator, String namespaceURI, String localName, Attributes attrs)
{
return newRefChild(ref, localName);
@@ -324,7 +329,6 @@
}
}
-
public void setValue(SecurityRoleMetaData role, UnmarshallingContext navigator, String namespaceURI, String localName, String value)
{
if (localName.equals("role-name"))
Modified: branches/tdiesler/trunk/server/src/main/org/jboss/metadata/serviceref/PortComponentRefMetaData.java
===================================================================
--- branches/tdiesler/trunk/server/src/main/org/jboss/metadata/serviceref/PortComponentRefMetaData.java 2007-03-07 11:20:31 UTC (rev 61182)
+++ branches/tdiesler/trunk/server/src/main/org/jboss/metadata/serviceref/PortComponentRefMetaData.java 2007-03-07 12:13:06 UTC (rev 61183)
@@ -43,22 +43,27 @@
// The parent service-ref
private ServiceRefMetaData serviceRefMetaData;
+ // Standard properties
+
// The required <service-endpoint-interface> element
private String serviceEndpointInterface;
// The optional <enable-mtom> element
private Boolean enableMTOM;
// The optional <port-component-link> element
private String portComponentLink;
+
+ // JBoss properties
+
// The optional <port-qname> element
private QName portQName;
+ // The optional JBossWS config-name
+ private String configName;
+ // The optional JBossWS config-file
+ private String configFile;
// Arbitrary proxy properties given by <call-property>
private List<CallPropertyMetaData> callProperties = new ArrayList<CallPropertyMetaData>();
// Arbitrary proxy properties given by <stub-property>
private List<StubPropertyMetaData> stubProperties = new ArrayList<StubPropertyMetaData>();
- // The optional JBossWS config-name
- private String configName;
- // The optional JBossWS config-file
- private String configFile;
public PortComponentRefMetaData(ServiceRefMetaData serviceRefMetaData)
{
@@ -70,6 +75,15 @@
return serviceRefMetaData;
}
+ public void merge(PortComponentRefMetaData pcref)
+ {
+ portQName = pcref.portQName;
+ configName = pcref.configName;
+ configFile = pcref.configFile;
+ callProperties = pcref.callProperties;
+ stubProperties = pcref.stubProperties;
+ }
+
public Boolean getEnableMTOM()
{
return enableMTOM;
Modified: branches/tdiesler/trunk/server/src/main/org/jboss/metadata/serviceref/ServiceRefMetaData.java
===================================================================
--- branches/tdiesler/trunk/server/src/main/org/jboss/metadata/serviceref/ServiceRefMetaData.java 2007-03-07 11:20:31 UTC (rev 61182)
+++ branches/tdiesler/trunk/server/src/main/org/jboss/metadata/serviceref/ServiceRefMetaData.java 2007-03-07 12:13:06 UTC (rev 61183)
@@ -52,9 +52,11 @@
// provide logging
private static Logger log = Logger.getLogger(ServiceRefMetaData.class);
+ // Standard properties
+
// The required <service-ref-name> element
private String serviceRefName;
- // The required <service-interface> element
+ // The JAXRPC required <service-interface> element
private String serviceInterface;
// service-res-type
private String serviceRefType;
@@ -70,14 +72,19 @@
private List<HandlerMetaData> handlers = new ArrayList<HandlerMetaData>();
// The optional <handler-chains> elements. JAX-WS handlers declared in the standard JavaEE5 descriptor
private HandlerChainsMetaData handlerChains;
- // The optional <handler-chain> element. JAX-WS handler chain declared in the JBoss JavaEE5 descriptor
- private String handlerChain;
+
+ // JBoss properties
+
+ // The optional <service-impl-class> element
+ private String serviceImplClass;
// The optional JBossWS config-name
private String configName;
// The optional JBossWS config-file
private String configFile;
// The optional URL of the actual WSDL to use, <wsdl-override>
private String wsdlOverride;
+ // The optional <handler-chain> element. JAX-WS handler chain declared in the JBoss JavaEE5 descriptor
+ private String handlerChain;
// Arbitrary proxy properties given by <call-property>
private List<CallPropertyMetaData> callProperties = new ArrayList<CallPropertyMetaData>();
@@ -88,20 +95,24 @@
{
}
- public void merge(ServiceRefMetaData sourceRef)
+ public void merge(ServiceRefMetaData sref)
{
- handlerChain = sourceRef.getHandlerChain();
- configName = sourceRef.configName;
- configFile = sourceRef.configFile;
- wsdlOverride = sourceRef.wsdlOverride;
- callProperties = sourceRef.getCallProperties();
+ serviceImplClass = sref.serviceImplClass;
+ configName = sref.configName;
+ configFile = sref.configFile;
+ wsdlOverride = sref.wsdlOverride;
+ handlerChain = sref.handlerChain;
+ callProperties = sref.callProperties;
- for (PortComponentRefMetaData pcSourceRef : sourceRef.getPortComponentRefs())
+ if (serviceQName == null && sref.serviceQName != null)
+ serviceQName = sref.serviceQName;
+
+ for (PortComponentRefMetaData pcref : sref.getPortComponentRefs())
{
- String seiName = pcSourceRef.getServiceEndpointInterface();
+ String seiName = pcref.getServiceEndpointInterface();
if (seiName == null)
{
- log.warn("Illegal service endpoint interface: " + seiName);
+ log.warn("Null service endpoint interface in: " + toXMLFragmet());
continue;
}
@@ -109,13 +120,11 @@
if (pcTargetRef == null)
{
log.warn("Cannot find port component ref with SEI name: " + seiName);
- addPortComponentRef(pcSourceRef);
- pcTargetRef = pcSourceRef;
+ addPortComponentRef(pcref);
+ pcTargetRef = pcref;
}
- pcTargetRef.setPortQName(pcSourceRef.getPortQName());
- pcTargetRef.setCallProperties(pcSourceRef.getCallProperties());
- pcTargetRef.setStubProperties(pcSourceRef.getStubProperties());
+ pcTargetRef.merge(pcref);
}
}
@@ -167,6 +176,16 @@
this.serviceInterface = serviceInterface;
}
+ public String getServiceImplClass()
+ {
+ return serviceImplClass;
+ }
+
+ public void setServiceImplClass(String serviceImplClass)
+ {
+ this.serviceImplClass = serviceImplClass;
+ }
+
public QName getServiceQName()
{
return serviceQName;
@@ -395,8 +414,17 @@
root.add(handler.toXMLFragment());
if (handlerChains != null)
root.add(handlerChains.toXMLFragment());
+
+ if (serviceImplClass != null)
+ root.addElement("service-impl-class").addText(serviceImplClass);
+ if (configName != null)
+ root.addElement("config-name").addText(configName);
+ if (configFile != null)
+ root.addElement("config-file").addText(configFile);
if (handlerChain != null)
root.addElement("handler-chain").addText(handlerChain);
+ if (wsdlOverride != null)
+ root.addElement("wsdl-override").addText(wsdlOverride);
for (CallPropertyMetaData prop : getCallProperties())
{
@@ -405,12 +433,6 @@
propEl.addElement("prop-value").addText(prop.getPropValue());
}
- if (configName != null)
- root.addElement("config-name").addText(configName);
- if (configFile != null)
- root.addElement("config-file").addText(configFile);
- if (wsdlOverride != null)
- root.addElement("wsdl-override").addText(wsdlOverride);
return root.asXML();
}
}
Added: branches/tdiesler/trunk/server/src/main/org/jboss/metadata/serviceref/ServiceRefObjectFactory.java
===================================================================
--- branches/tdiesler/trunk/server/src/main/org/jboss/metadata/serviceref/ServiceRefObjectFactory.java (rev 0)
+++ branches/tdiesler/trunk/server/src/main/org/jboss/metadata/serviceref/ServiceRefObjectFactory.java 2007-03-07 12:13:06 UTC (rev 61183)
@@ -0,0 +1,277 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.metadata.serviceref;
+
+// $Id$
+
+import javax.xml.namespace.QName;
+
+import org.jboss.xb.binding.ObjectModelFactory;
+import org.jboss.xb.binding.UnmarshallingContext;
+import org.xml.sax.Attributes;
+
+/**
+ * A object model factory for <service-ref>
+ *
+ * @author Thomas.Diesler at jboss.com
+ */
+public abstract class ServiceRefObjectFactory implements ObjectModelFactory
+{
+ public void setValue(ServiceRefMetaData ref, UnmarshallingContext navigator, String namespaceURI, String localName, String value)
+ {
+ /* Standard properties */
+ if (localName.equals("service-ref-name"))
+ {
+ ref.setServiceRefName(value);
+ }
+ else if (localName.equals("service-interface"))
+ {
+ ref.setServiceInterface(value);
+ }
+ else if (localName.equals("service-ref-type"))
+ {
+ ref.setServiceRefType(value);
+ }
+ else if (localName.equals("wsdl-file"))
+ {
+ ref.setWsdlFile(value);
+ }
+ else if (localName.equals("jaxrpc-mapping-file"))
+ {
+ ref.setMappingFile(value);
+ }
+ else if (localName.equals("service-qname"))
+ {
+ ref.setServiceQName(QName.valueOf(value));
+ }
+
+ /* JBoss properties */
+ else if (localName.equals("service-impl-class"))
+ {
+ ref.setServiceImplClass(value);
+ }
+ else if (localName.equals("config-name"))
+ {
+ ref.setConfigName(value);
+ }
+ else if (localName.equals("config-file"))
+ {
+ ref.setConfigFile(value);
+ }
+ else if (localName.equals("wsdl-override"))
+ {
+ ref.setWsdlOverride(value);
+ }
+ else if (localName.equals("handler-chain"))
+ {
+ ref.setHandlerChain(value);
+ }
+ }
+
+ public Object newChild(ServiceRefMetaData ref, UnmarshallingContext navigator, String namespaceURI, String localName, Attributes attrs)
+ {
+ Object child = null;
+ if (localName.equals("port-component-ref"))
+ child = new PortComponentRefMetaData(ref);
+ else if (localName.equals("handler"))
+ child = new HandlerMetaData();
+ else if (localName.equals("handler-chains"))
+ child = new HandlerChainsMetaData();
+
+ else if (localName.equals("call-property"))
+ child = new CallPropertyMetaData();
+
+ return child;
+ }
+
+ public Object newChild(HandlerChainsMetaData ref, UnmarshallingContext navigator, String namespaceURI, String localName, Attributes attrs)
+ {
+ Object child = null;
+ if (localName.equals("handler-chain"))
+ child = new HandlerChainMetaData();
+
+ return child;
+ }
+
+ public void addChild(ServiceRefMetaData parent, PortComponentRefMetaData pcRef, UnmarshallingContext navigator, String namespaceURI, String localName)
+ {
+ parent.addPortComponentRef(pcRef);
+ }
+
+ public void addChild(ServiceRefMetaData parent, HandlerMetaData handler, UnmarshallingContext navigator, String namespaceURI, String localName)
+ {
+ parent.addHandler(handler);
+ }
+
+ public void addChild(ServiceRefMetaData parent, HandlerChainsMetaData handlerChains, UnmarshallingContext navigator, String namespaceURI, String localName)
+ {
+ parent.setHandlerChains(handlerChains);
+ }
+
+ public void addChild(ServiceRefMetaData parent, CallPropertyMetaData callProp, UnmarshallingContext navigator, String namespaceURI, String localName)
+ {
+ parent.addCallProperty(callProp);
+ }
+
+ public void addChild(HandlerChainsMetaData parent, HandlerChainMetaData handlerChain, UnmarshallingContext navigator, String namespaceURI, String localName)
+ {
+ parent.addHandlerChain(handlerChain);
+ }
+
+ public void setValue(PortComponentRefMetaData ref, UnmarshallingContext navigator, String namespaceURI, String localName, String value)
+ {
+ if (localName.equals("service-endpoint-interface"))
+ {
+ ref.setServiceEndpointInterface(value);
+ }
+ else if (localName.equals("enable-mtom"))
+ {
+ ref.setEnableMTOM(Boolean.valueOf(value));
+ }
+ else if (localName.equals("port-component-link"))
+ {
+ ref.setPortComponentLink(value);
+ }
+ else if (localName.equals("port-qname"))
+ {
+ ref.setPortQName(QName.valueOf(value));
+ }
+ else if (localName.equals("config-name"))
+ {
+ ref.setConfigName(value);
+ }
+ else if (localName.equals("config-file"))
+ {
+ ref.setConfigFile(value);
+ }
+ }
+
+ public Object newChild(PortComponentRefMetaData ref, UnmarshallingContext navigator, String namespaceURI, String localName, Attributes attrs)
+ {
+ Object child = null;
+ if (localName.equals("call-property"))
+ child = new CallPropertyMetaData();
+ if (localName.equals("stub-property"))
+ child = new StubPropertyMetaData();
+ return child;
+ }
+
+ public void setValue(HandlerChainMetaData ref, UnmarshallingContext navigator, String namespaceURI, String localName, String value)
+ {
+ if (localName.equals("service-name-pattern"))
+ {
+ ref.setServiceNamePattern(QName.valueOf(value));
+ }
+ else if (localName.equals("port-name-pattern"))
+ {
+ ref.setPortNamePattern(QName.valueOf(value));
+ }
+ else if (localName.equals("protocol-binding"))
+ {
+ ref.setProtocolBindings(value);
+ }
+ }
+
+ public void setValue(HandlerMetaData ref, UnmarshallingContext navigator, String namespaceURI, String localName, String value)
+ {
+ if (localName.equals("handler-name"))
+ {
+ ref.setHandlerName(value);
+ }
+ else if (localName.equals("handler-class"))
+ {
+ ref.setHandlerClass(value);
+ }
+ else if (localName.equals("soap-header"))
+ {
+ ref.addSoapHeader(navigator.resolveQName(value));
+ }
+ else if (localName.equals("soap-role"))
+ {
+ ref.addSoapRole(value);
+ }
+ else if (localName.equals("port-name"))
+ {
+ ref.addPortName(value);
+ }
+ }
+
+ public Object newChild(HandlerMetaData ref, UnmarshallingContext navigator, String namespaceURI, String localName, Attributes attrs)
+ {
+ Object child = null;
+ if (localName.equals("init-param"))
+ child = new InitParamMetaData();
+
+ return child;
+ }
+
+ public void addChild(HandlerMetaData parent, InitParamMetaData param, UnmarshallingContext navigator, String namespaceURI, String localName)
+ {
+ parent.addInitParam(param);
+ }
+
+ public void setValue(InitParamMetaData ref, UnmarshallingContext navigator, String namespaceURI, String localName, String value)
+ {
+ if (localName.equals("param-name"))
+ {
+ ref.setParamName(value);
+ }
+ else if (localName.equals("param-value"))
+ {
+ ref.setParamValue(value);
+ }
+ }
+
+ public void setValue(CallPropertyMetaData ref, UnmarshallingContext navigator, String namespaceURI, String localName, String value)
+ {
+ if (localName.equals("prop-name"))
+ {
+ ref.setPropName(value);
+ }
+ else if (localName.equals("prop-value"))
+ {
+ ref.setPropValue(value);
+ }
+ }
+
+ public void setValue(StubPropertyMetaData ref, UnmarshallingContext navigator, String namespaceURI, String localName, String value)
+ {
+ if (localName.equals("prop-name"))
+ {
+ ref.setPropName(value);
+ }
+ else if (localName.equals("prop-value"))
+ {
+ ref.setPropValue(value);
+ }
+ }
+
+ public void addChild(PortComponentRefMetaData ref, CallPropertyMetaData callProp, UnmarshallingContext navigator, String namespaceURI, String localName)
+ {
+ ref.addCallProperty(callProp);
+ }
+
+ public void addChild(PortComponentRefMetaData ref, StubPropertyMetaData stubProp, UnmarshallingContext navigator, String namespaceURI, String localName)
+ {
+ ref.addStubProperty(stubProp);
+ }
+}
Property changes on: branches/tdiesler/trunk/server/src/main/org/jboss/metadata/serviceref/ServiceRefObjectFactory.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Modified: branches/tdiesler/trunk/server/src/main/org/jboss/metadata/web/JBossWebMetaDataObjectFactory.java
===================================================================
--- branches/tdiesler/trunk/server/src/main/org/jboss/metadata/web/JBossWebMetaDataObjectFactory.java 2007-03-07 11:20:31 UTC (rev 61182)
+++ branches/tdiesler/trunk/server/src/main/org/jboss/metadata/web/JBossWebMetaDataObjectFactory.java 2007-03-07 12:13:06 UTC (rev 61183)
@@ -210,18 +210,22 @@
parent.addSecurityRole(role);
}
- public void addChild(WebMetaData parent, ServiceRefMetaData sourceRef,
- UnmarshallingContext navigator, String namespaceURI, String localName)
+ public void addChild(WebMetaData parent, ServiceRefMetaData sref, UnmarshallingContext navigator, String namespaceURI, String localName)
{
- String refName = sourceRef.getServiceRefName();
+ String refName = sref.getServiceRefName();
if (refName == null)
throw new IllegalStateException("Invalid service-ref-name: " + refName);
-
+
ServiceRefMetaData targetRef = parent.getServiceRef(refName);
if (targetRef == null)
- throw new IllegalStateException("Cannot find service-ref: " + refName);
-
- targetRef.merge(sourceRef);
+ {
+ log.debug("Cannot find <service-ref> with name: " + refName);
+ parent.addServiceRef(sref);
+ }
+ else
+ {
+ targetRef.merge(sref);
+ }
}
public void addChild(WebMetaData parent, Servlet servlet,
Modified: branches/tdiesler/trunk/server/src/main/org/jboss/metamodel/descriptor/DDObjectFactory.java
===================================================================
--- branches/tdiesler/trunk/server/src/main/org/jboss/metamodel/descriptor/DDObjectFactory.java 2007-03-07 11:20:31 UTC (rev 61182)
+++ branches/tdiesler/trunk/server/src/main/org/jboss/metamodel/descriptor/DDObjectFactory.java 2007-03-07 12:13:06 UTC (rev 61183)
@@ -22,16 +22,9 @@
package org.jboss.metamodel.descriptor;
import javax.persistence.PersistenceContextType;
-import javax.xml.namespace.QName;
-import org.jboss.metadata.serviceref.CallPropertyMetaData;
-import org.jboss.metadata.serviceref.HandlerChainMetaData;
-import org.jboss.metadata.serviceref.HandlerChainsMetaData;
-import org.jboss.metadata.serviceref.HandlerMetaData;
-import org.jboss.metadata.serviceref.InitParamMetaData;
-import org.jboss.metadata.serviceref.PortComponentRefMetaData;
import org.jboss.metadata.serviceref.ServiceRefMetaData;
-import org.jboss.metadata.serviceref.StubPropertyMetaData;
+import org.jboss.metadata.serviceref.ServiceRefObjectFactory;
import org.jboss.xb.binding.ObjectModelFactory;
import org.jboss.xb.binding.UnmarshallingContext;
import org.xml.sax.Attributes;
@@ -41,7 +34,7 @@
* @author Thomas.Diesler at jboss.com
* @version <tt>$Revision$</tt>
*/
-public abstract class DDObjectFactory implements ObjectModelFactory
+public abstract class DDObjectFactory extends ServiceRefObjectFactory implements ObjectModelFactory
{
public Object newChild(PersistenceUnitRef ref, UnmarshallingContext navigator, String namespaceURI, String localName, Attributes attrs)
{
@@ -321,229 +314,6 @@
}
}
- // ********************************************************
- // START ServiceRefMetaData
-
- public void setValue(ServiceRefMetaData ref, UnmarshallingContext navigator, String namespaceURI, String localName, String value)
- {
- /* Standard properties */
- if (localName.equals("service-ref-name"))
- {
- ref.setServiceRefName(value);
- }
- else if (localName.equals("service-interface"))
- {
- ref.setServiceInterface(value);
- }
- else if (localName.equals("service-ref-type"))
- {
- ref.setServiceRefType(value);
- }
- else if (localName.equals("wsdl-file"))
- {
- ref.setWsdlFile(value);
- }
- else if (localName.equals("jaxrpc-mapping-file"))
- {
- ref.setMappingFile(value);
- }
- else if (localName.equals("service-qname"))
- {
- ref.setServiceQName(QName.valueOf(value));
- }
-
- /* JBoss properties */
- else if (localName.equals("config-name"))
- {
- ref.setConfigName(value);
- }
- else if (localName.equals("config-file"))
- {
- ref.setConfigFile(value);
- }
- else if (localName.equals("wsdl-override"))
- {
- ref.setWsdlOverride(value);
- }
- else if (localName.equals("handler-chain"))
- {
- ref.setHandlerChain(value);
- }
- }
-
- public Object newChild(ServiceRefMetaData ref, UnmarshallingContext navigator, String namespaceURI, String localName, Attributes attrs)
- {
- Object child = null;
- if (localName.equals("port-component-ref"))
- child = new PortComponentRefMetaData(ref);
- else if (localName.equals("handler"))
- child = new HandlerMetaData();
- else if (localName.equals("handler-chains"))
- child = new HandlerChainsMetaData();
-
- else if (localName.equals("call-property"))
- child = new CallPropertyMetaData();
-
- return child;
- }
-
- public Object newChild(HandlerChainsMetaData ref, UnmarshallingContext navigator, String namespaceURI, String localName, Attributes attrs)
- {
- Object child = null;
- if (localName.equals("handler-chain"))
- child = new HandlerChainMetaData();
-
- return child;
- }
-
- public void addChild(ServiceRefMetaData parent, PortComponentRefMetaData pcRef, UnmarshallingContext navigator, String namespaceURI, String localName)
- {
- parent.addPortComponentRef(pcRef);
- }
-
- public void addChild(ServiceRefMetaData parent, HandlerMetaData handler, UnmarshallingContext navigator, String namespaceURI, String localName)
- {
- parent.addHandler(handler);
- }
-
- public void addChild(ServiceRefMetaData parent, HandlerChainsMetaData handlerChains, UnmarshallingContext navigator, String namespaceURI, String localName)
- {
- parent.setHandlerChains(handlerChains);
- }
-
- public void addChild(ServiceRefMetaData parent, CallPropertyMetaData callProp, UnmarshallingContext navigator, String namespaceURI, String localName)
- {
- parent.addCallProperty(callProp);
- }
-
- public void addChild(HandlerChainsMetaData parent, HandlerChainMetaData handlerChain, UnmarshallingContext navigator, String namespaceURI, String localName)
- {
- parent.addHandlerChain(handlerChain);
- }
-
- public void setValue(PortComponentRefMetaData ref, UnmarshallingContext navigator, String namespaceURI, String localName, String value)
- {
- if (localName.equals("service-endpoint-interface"))
- {
- ref.setServiceEndpointInterface(value);
- }
- else if (localName.equals("enable-mtom"))
- {
- ref.setEnableMTOM(Boolean.valueOf(value));
- }
- else if (localName.equals("port-component-link"))
- {
- ref.setPortComponentLink(value);
- }
- else if (localName.equals("port-qname"))
- {
- ref.setPortComponentLink(value);
- }
- }
-
- public Object newChild(PortComponentRefMetaData ref, UnmarshallingContext navigator, String namespaceURI, String localName, Attributes attrs)
- {
- Object child = null;
- if (localName.equals("call-property"))
- child = new CallPropertyMetaData();
- if (localName.equals("stub-property"))
- child = new StubPropertyMetaData();
- return child;
- }
-
- public void setValue(HandlerChainMetaData ref, UnmarshallingContext navigator, String namespaceURI, String localName, String value)
- {
- if (localName.equals("service-name-pattern"))
- {
- ref.setServiceNamePattern(QName.valueOf(value));
- }
- else if (localName.equals("port-name-pattern"))
- {
- ref.setPortNamePattern(QName.valueOf(value));
- }
- else if (localName.equals("protocol-binding"))
- {
- ref.setProtocolBindings(value);
- }
- }
-
- public void setValue(HandlerMetaData ref, UnmarshallingContext navigator, String namespaceURI, String localName, String value)
- {
- if (localName.equals("handler-name"))
- {
- ref.setHandlerName(value);
- }
- else if (localName.equals("handler-class"))
- {
- ref.setHandlerClass(value);
- }
- else if (localName.equals("soap-header"))
- {
- ref.addSoapHeader(navigator.resolveQName(value));
- }
- else if (localName.equals("soap-role"))
- {
- ref.addSoapRole(value);
- }
- else if (localName.equals("port-name"))
- {
- ref.addPortName(value);
- }
- }
-
- public Object newChild(HandlerMetaData ref, UnmarshallingContext navigator, String namespaceURI, String localName, Attributes attrs)
- {
- Object child = null;
- if (localName.equals("init-param"))
- child = new InitParamMetaData();
-
- return child;
- }
-
- public void addChild(HandlerMetaData parent, InitParamMetaData param, UnmarshallingContext navigator, String namespaceURI, String localName)
- {
- parent.addInitParam(param);
- }
-
- public void setValue(InitParamMetaData ref, UnmarshallingContext navigator, String namespaceURI, String localName, String value)
- {
- if (localName.equals("param-name"))
- {
- ref.setParamName(value);
- }
- else if (localName.equals("param-value"))
- {
- ref.setParamValue(value);
- }
- }
-
- public void setValue(CallPropertyMetaData ref, UnmarshallingContext navigator, String namespaceURI, String localName, String value)
- {
- if (localName.equals("prop-name"))
- {
- ref.setPropName(value);
- }
- else if (localName.equals("prop-value"))
- {
- ref.setPropValue(value);
- }
- }
-
- public void setValue(StubPropertyMetaData ref, UnmarshallingContext navigator, String namespaceURI, String localName, String value)
- {
- if (localName.equals("prop-name"))
- {
- ref.setPropName(value);
- }
- else if (localName.equals("prop-value"))
- {
- ref.setPropValue(value);
- }
- }
-
- // END ServiceRefMetaData
- // ********************************************************
-
public void setValue(NameValuePair nvPair, UnmarshallingContext navigator, String namespaceURI, String localName, String value)
{
if (localName.equals("name"))
Modified: branches/tdiesler/trunk/server/src/main/org/jboss/metamodel/descriptor/EnvironmentRefGroup.java
===================================================================
--- branches/tdiesler/trunk/server/src/main/org/jboss/metamodel/descriptor/EnvironmentRefGroup.java 2007-03-07 11:20:31 UTC (rev 61182)
+++ branches/tdiesler/trunk/server/src/main/org/jboss/metamodel/descriptor/EnvironmentRefGroup.java 2007-03-07 12:13:06 UTC (rev 61183)
@@ -24,6 +24,7 @@
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
+import java.util.LinkedHashMap;
import java.util.List;
import org.jboss.logging.Logger;
@@ -45,7 +46,7 @@
protected HashMap<String, MessageDestinationRef> messageDestinationRefs = new HashMap<String, MessageDestinationRef>();
/** An index of MessageDestinationRef keyed by message-destination-link values */
protected HashMap<String, MessageDestinationRef> messageDestinationRefsByLink = new HashMap<String, MessageDestinationRef>();
- protected List<ServiceRefMetaData> serviceRefs = new ArrayList<ServiceRefMetaData>();
+ protected HashMap<String, ServiceRefMetaData> serviceRefs = new LinkedHashMap<String, ServiceRefMetaData>();
protected HashMap<String, JndiRef> jndiRefs = new HashMap<String, JndiRef>();
protected List<PersistenceContextRef> persistenceContextRefs = new ArrayList<PersistenceContextRef>();
protected List<PersistenceUnitRef> persistenceUnitRefs = new ArrayList<PersistenceUnitRef>();
@@ -126,16 +127,21 @@
jndiRefs.put(ref.getJndiRefName(), ref);
}
- public List<ServiceRefMetaData> getServiceRefs()
+ public Collection<ServiceRefMetaData> getServiceRefs()
{
- return serviceRefs;
+ return serviceRefs.values();
}
public void addServiceRef(ServiceRefMetaData ref)
{
- serviceRefs.add(ref);
+ serviceRefs.put(ref.getServiceRefName(), ref);
}
+ public ServiceRefMetaData getServiceRef(String name)
+ {
+ return serviceRefs.get(name);
+ }
+
public void updateEjbRef(EjbRef updatedRef)
{
EjbRef ref = (EjbRef)ejbRefs.get(updatedRef.getEjbRefName());
Modified: branches/tdiesler/trunk/server/src/resources/dtd/service-ref_5_0.dtd
===================================================================
--- branches/tdiesler/trunk/server/src/resources/dtd/service-ref_5_0.dtd 2007-03-07 11:20:31 UTC (rev 61182)
+++ branches/tdiesler/trunk/server/src/resources/dtd/service-ref_5_0.dtd 2007-03-07 12:13:06 UTC (rev 61183)
@@ -33,7 +33,7 @@
<service-ref>
<service-ref-name>SecureService</service-ref-name>
- <service-interface>org.jboss.tests.ws.jaxws.webserviceref.SecureEndpointService</service-interface>
+ <service-impl-class>org.jboss.tests.ws.jaxws.webserviceref.SecureEndpointService</service-impl-class>
<service-qname>{http://org.jboss.ws/wsref}SecureEndpointService</service-qname>
<port-component-ref>
<service-endpoint-interface>org.jboss.tests.ws.jaxws.webserviceref.SecureEndpoint</service-endpoint-interface>
@@ -49,7 +49,7 @@
</port-component-ref>
</service-ref>
-->
-<!ELEMENT service-ref (service-ref-name, service-interface?, service-qname?, config-name?, config-file?, handler-chain?, port-component-ref*, wsdl-override?)>
+<!ELEMENT service-ref (service-ref-name, service-impl-class?, service-qname?, config-name?, config-file?, handler-chain?, port-component-ref*, wsdl-override?)>
<!--
The service-ref-name element gives the ENC relative name.
@@ -58,10 +58,10 @@
<!ELEMENT service-ref-name (#PCDATA)>
<!--
- Name of the service interface.
+ Name of the JAXWS service implementation class.
Overrides @WebServiceRef.value
-->
-<!ELEMENT service-interface (#PCDATA)>
+<!ELEMENT service-impl-class (#PCDATA)>
<!--
The service-qname element declares the specific WSDL service element.
@@ -134,17 +134,17 @@
See javadoc for org.jboss.ws.core.StubExt, javax.xml.rpc.Stub
-->
-<!ELEMENT stub-property (name, value)>
+<!ELEMENT stub-property (prop-name, prop-value)>
<!--
This text nodes holds a name string.
-->
-<!ELEMENT name (#PCDATA)>
+<!ELEMENT prop-name (#PCDATA)>
<!--
This text nodes holds a value string.
-->
-<!ELEMENT value (#PCDATA)>
+<!ELEMENT prop-value (#PCDATA)>
<!--
The wsdl-override element the actual wsdl docuement the web service client
Modified: branches/tdiesler/trunk/tomcat/src/main/org/jboss/web/metamodel/descriptor/JBossWebDDObjectFactory.java
===================================================================
--- branches/tdiesler/trunk/tomcat/src/main/org/jboss/web/metamodel/descriptor/JBossWebDDObjectFactory.java 2007-03-07 11:20:31 UTC (rev 61182)
+++ branches/tdiesler/trunk/tomcat/src/main/org/jboss/web/metamodel/descriptor/JBossWebDDObjectFactory.java 2007-03-07 12:13:06 UTC (rev 61183)
@@ -174,9 +174,22 @@
parent.updateMessageDestinationRef(ref);
}
- public void addChild(WebDD parent, ServiceRefMetaData ref, UnmarshallingContext navigator, String namespaceURI, String localName)
+ public void addChild(WebDD parent, ServiceRefMetaData sref, UnmarshallingContext navigator, String namespaceURI, String localName)
{
- parent.addServiceRef(ref);
+ String refName = sref.getServiceRefName();
+ if (refName == null)
+ throw new IllegalStateException("Invalid service-ref-name: " + refName);
+
+ ServiceRefMetaData targetRef = parent.getServiceRef(refName);
+ if (targetRef == null)
+ {
+ log.debug("Cannot find <service-ref> with name: " + refName);
+ parent.addServiceRef(sref);
+ }
+ else
+ {
+ targetRef.merge(sref);
+ }
}
public void addChild(WebDD parent, ResourceEnvRef ref, UnmarshallingContext navigator, String namespaceURI, String localName)
Modified: branches/tdiesler/trunk/tomcat/src/main/org/jboss/web/tomcat/tc6/deployers/TomcatDeployment.java
===================================================================
--- branches/tdiesler/trunk/tomcat/src/main/org/jboss/web/tomcat/tc6/deployers/TomcatDeployment.java 2007-03-07 11:20:31 UTC (rev 61182)
+++ branches/tdiesler/trunk/tomcat/src/main/org/jboss/web/tomcat/tc6/deployers/TomcatDeployment.java 2007-03-07 12:13:06 UTC (rev 61183)
@@ -50,9 +50,6 @@
import org.jboss.deployers.spi.deployer.DeploymentUnit;
import org.jboss.logging.Logger;
import org.jboss.metadata.WebMetaData;
-import org.jboss.metadata.serviceref.ServiceRefHandler;
-import org.jboss.metadata.serviceref.ServiceRefHandlerFactory;
-import org.jboss.metadata.serviceref.ServiceRefMetaData;
import org.jboss.mx.util.MBeanServerLocator;
import org.jboss.naming.NonSerializableFactory;
import org.jboss.security.AuthorizationManager;
@@ -356,6 +353,7 @@
injectionContainer.populateEnc(webLoader.getClassLoader());
// Bind <service-ref> elements
+ /*
ServiceRefHandler refHandler = ServiceRefHandlerFactory.newInstance();
if (refHandler != null)
{
@@ -366,6 +364,7 @@
refHandler.setupServiceRef(envCtx, encName, null, vfsRoot, sref.toXMLFragmet());
}
}
+ */
// TODO: this should be bindings in the metadata
currentThread.setContextClassLoader(webLoader.getClassLoader());
Modified: branches/tdiesler/trunk/tomcat/src/main/org/jboss/web/tomcat/tc6/deployers/TomcatDeployment2.java
===================================================================
--- branches/tdiesler/trunk/tomcat/src/main/org/jboss/web/tomcat/tc6/deployers/TomcatDeployment2.java 2007-03-07 11:20:31 UTC (rev 61182)
+++ branches/tdiesler/trunk/tomcat/src/main/org/jboss/web/tomcat/tc6/deployers/TomcatDeployment2.java 2007-03-07 12:13:06 UTC (rev 61183)
@@ -474,6 +474,7 @@
linkSecurityDomain(securityDomain, envCtx);
// Bind <service-ref> elements
+ /*
ServiceRefHandler refHandler = ServiceRefHandlerFactory.newInstance();
if (refHandler != null)
{
@@ -484,7 +485,7 @@
refHandler.setupServiceRef(envCtx, encName, null, vfsRoot, sref.toXMLFragmet());
}
}
-
+ */
}
catch (Throwable t)
{
More information about the jboss-cvs-commits
mailing list