[jboss-cvs] JBossAS SVN: r60839 - in trunk: ejb3/src/main/org/jboss/ejb3/metamodel and 13 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Fri Feb 23 09:07:05 EST 2007
Author: thomas.diesler at jboss.com
Date: 2007-02-23 09:07:05 -0500 (Fri, 23 Feb 2007)
New Revision: 60839
Added:
trunk/server/src/main/org/jboss/metamodel/descriptor/WebServiceRefMetaData.java
trunk/server/src/resources/dtd/webservice-ref_5_0.dtd
Removed:
trunk/server/src/main/org/jboss/metamodel/descriptor/ServiceRef.java
trunk/server/src/resources/dtd/service-ref_5_0.dtd
Modified:
trunk/ejb3/.classpath
trunk/ejb3/src/main/org/jboss/ejb3/metamodel/EjbJarDDObjectFactory.java
trunk/ejb3/src/main/org/jboss/ejb3/metamodel/EnterpriseBeans.java
trunk/ejb3/src/main/org/jboss/ejb3/metamodel/Injectable.java
trunk/ejb3/src/main/org/jboss/ejb3/metamodel/JBossClientDDObjectFactory.java
trunk/ejb3/src/main/org/jboss/ejb3/metamodel/JBossDDObjectFactory.java
trunk/ejb3/src/main/org/jboss/injection/WebServiceRefHandler.java
trunk/ejb3/src/main/org/jboss/injection/WebServiceRefInjector.java
trunk/server/src/main/org/jboss/deployment/ClientDeployer.java
trunk/server/src/main/org/jboss/deployment/EjbJarObjectFactory.java
trunk/server/src/main/org/jboss/deployment/JBossEjbObjectFactory.java
trunk/server/src/main/org/jboss/ejb/Container.java
trunk/server/src/main/org/jboss/metadata/BeanMetaData.java
trunk/server/src/main/org/jboss/metadata/DDObjectFactory.java
trunk/server/src/main/org/jboss/metadata/WebMetaData.java
trunk/server/src/main/org/jboss/metadata/web/JBossWebMetaDataObjectFactory.java
trunk/server/src/main/org/jboss/metadata/web/WebMetaDataObjectFactory.java
trunk/server/src/main/org/jboss/metamodel/descriptor/DDObjectFactory.java
trunk/server/src/main/org/jboss/metamodel/descriptor/EnvironmentRefGroup.java
trunk/server/src/main/org/jboss/metamodel/descriptor/PortInfo.java
trunk/server/src/main/org/jboss/web/AbstractWebDeployer.java
trunk/server/src/main/org/jboss/web/deployers/AbstractWarDeployer.java
trunk/server/src/main/org/jboss/web/deployers/AbstractWarDeployment.java
trunk/server/src/main/org/jboss/webservice/ServiceRefHandler.java
trunk/server/src/main/org/jboss/webservice/metadata/serviceref/HandlerMetaData.java
trunk/server/src/main/org/jboss/webservice/metadata/serviceref/PortComponentRefMetaData.java
trunk/server/src/main/org/jboss/webservice/metadata/serviceref/ServiceRefMetaData.java
trunk/server/src/resources/dtd/jboss-client_5_0.dtd
trunk/server/src/resources/dtd/jboss-web_5_0.dtd
trunk/server/src/resources/dtd/jboss_5_0.dtd
trunk/tomcat/src/main/org/jboss/web/metamodel/descriptor/JBossWebDDObjectFactory.java
trunk/tomcat/src/main/org/jboss/web/tomcat/tc6/deployers/TomcatDeployment.java
Log:
Fix <service-ref> handling
Modified: trunk/ejb3/.classpath
===================================================================
--- trunk/ejb3/.classpath 2007-02-23 13:21:39 UTC (rev 60838)
+++ trunk/ejb3/.classpath 2007-02-23 14:07:05 UTC (rev 60839)
@@ -1,51 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src/main"/>
- <classpathentry kind="src" path="docs/tutorial/ssl/src"/>
- <classpathentry excluding="org/jboss/ejb3/test/clusteredentity/|org/jboss/ejb3/test/clusteredsession/" kind="src" output="output/eclipse-test-classes" path="src/test"/>
- <classpathentry kind="src" path="docs/embedded-tutorial/advanced-deployment/archive/src"/>
- <classpathentry kind="src" path="docs/embedded-tutorial/advanced-deployment/archive-by-resource/src"/>
- <classpathentry kind="src" path="docs/embedded-tutorial/advanced-deployment/deploy-dir/src"/>
- <classpathentry kind="src" path="docs/embedded-tutorial/advanced-deployment/deploy-dir-by-resource/src"/>
- <classpathentry kind="src" path="docs/embedded-tutorial/advanced-deployment/microcontainer-deployment/src"/>
- <classpathentry kind="src" path="docs/embedded-tutorial/embedded-war/src"/>
- <classpathentry kind="src" path="docs/embedded-tutorial/mdb-standalone/src"/>
- <classpathentry kind="src" path="docs/embedded-tutorial/simple-deployment/src"/>
- <classpathentry kind="src" path="docs/embedded-tutorial/test-with-junit/src"/>
- <classpathentry kind="src" path="docs/tutorial/consumer_deployment_descriptor/src"/>
- <classpathentry kind="src" path="docs/tutorial/ejb21_client_adaptors/src"/>
- <classpathentry kind="src" path="docs/tutorial/extended_pc/src"/>
- <classpathentry kind="src" path="docs/tutorial/jboss_deployment_descriptor/src"/>
- <classpathentry kind="src" path="docs/tutorial/packaging/src"/>
- <classpathentry kind="src" path="docs/tutorial/service_deployment_descriptor/src"/>
- <classpathentry kind="src" path="docs/tutorial/clusteredentity/src"/>
- <classpathentry kind="src" path="docs/tutorial/asynch/src"/>
- <classpathentry kind="src" path="docs/tutorial/blob/src"/>
- <classpathentry kind="src" path="docs/tutorial/callbacks/src"/>
- <classpathentry kind="src" path="docs/tutorial/clustering/src"/>
- <classpathentry kind="src" path="docs/tutorial/composite/src"/>
- <classpathentry kind="src" path="docs/tutorial/consumer/src"/>
- <classpathentry kind="src" path="docs/tutorial/dependent/src"/>
- <classpathentry kind="src" path="docs/tutorial/ear/src"/>
- <classpathentry kind="src" path="docs/tutorial/entity/src"/>
- <classpathentry kind="src" path="docs/tutorial/injection/src"/>
- <classpathentry kind="src" path="docs/tutorial/interceptor/src"/>
- <classpathentry kind="src" path="docs/tutorial/jndibinding/src"/>
- <classpathentry kind="src" path="docs/tutorial/joininheritance/src"/>
- <classpathentry kind="src" path="docs/tutorial/mdb/src"/>
- <classpathentry kind="src" path="docs/tutorial/mdb_deployment_descriptor/src"/>
- <classpathentry kind="src" path="docs/tutorial/merge/src"/>
- <classpathentry kind="src" path="docs/tutorial/relationships/src"/>
- <classpathentry kind="src" path="docs/tutorial/secondary/src"/>
- <classpathentry kind="src" path="docs/tutorial/security/src"/>
- <classpathentry kind="src" path="docs/tutorial/service/src"/>
- <classpathentry kind="src" path="docs/tutorial/singleinheritance/src"/>
- <classpathentry kind="src" path="docs/tutorial/stateful/src"/>
- <classpathentry kind="src" path="docs/tutorial/stateful_deployment_descriptor/src"/>
- <classpathentry kind="src" path="docs/tutorial/stateless/src"/>
- <classpathentry kind="src" path="docs/tutorial/stateless_deployment_descriptor/src"/>
- <classpathentry kind="src" path="docs/tutorial/tableperinheritance/src"/>
- <classpathentry kind="src" path="docs/tutorial/timer/src"/>
<classpathentry kind="src" path="/ejb3x"/>
<classpathentry kind="src" path="/j2ee"/>
<classpathentry kind="lib" path="/thirdparty/trove/lib/trove.jar"/>
@@ -93,7 +48,6 @@
<classpathentry kind="lib" path="/thirdparty/jboss/aop/lib/jboss-aop-jdk50.jar"/>
<classpathentry kind="lib" path="src/resources/test"/>
<classpathentry kind="lib" path="/thirdparty/jboss/jboss-vfs/lib/jboss-vfs.jar" sourcepath="/thirdparty/jboss/jboss-vfs/lib/jboss-vfs-sources.jar"/>
- <classpathentry combineaccessrules="false" kind="src" path="/embedded"/>
<classpathentry kind="lib" path="/thirdparty/jboss/jbossws/lib/jboss-jaxws.jar"/>
<classpathentry kind="lib" path="/thirdparty/jboss/jbossws/lib/jboss-saaj.jar"/>
<classpathentry kind="lib" path="/thirdparty/jboss/jbossws/lib/jbossws-client.jar"/>
Modified: trunk/ejb3/src/main/org/jboss/ejb3/metamodel/EjbJarDDObjectFactory.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/ejb3/metamodel/EjbJarDDObjectFactory.java 2007-02-23 13:21:39 UTC (rev 60838)
+++ trunk/ejb3/src/main/org/jboss/ejb3/metamodel/EjbJarDDObjectFactory.java 2007-02-23 14:07:05 UTC (rev 60839)
@@ -48,7 +48,7 @@
import org.jboss.metamodel.descriptor.ResourceEnvRef;
import org.jboss.metamodel.descriptor.ResourceRef;
import org.jboss.metamodel.descriptor.RunAs;
-import org.jboss.metamodel.descriptor.ServiceRef;
+import org.jboss.metamodel.descriptor.WebServiceRefMetaData;
import org.jboss.metamodel.descriptor.SecurityRole;
import org.jboss.metamodel.descriptor.PersistenceContextRef;
@@ -670,7 +670,7 @@
parent.addResourceRef(envRef);
}
- public void addChild(MessageDrivenBean parent, ServiceRef envRef, UnmarshallingContext navigator, String namespaceURI, String localName)
+ public void addChild(MessageDrivenBean parent, WebServiceRefMetaData envRef, UnmarshallingContext navigator, String namespaceURI, String localName)
{
parent.addServiceRef(envRef);
}
@@ -771,7 +771,7 @@
/**
* Called when parsing character is complete.
*/
- public void addChild(SessionEnterpriseBean parent, ServiceRef envRef, UnmarshallingContext navigator, String namespaceURI, String localName)
+ public void addChild(SessionEnterpriseBean parent, WebServiceRefMetaData envRef, UnmarshallingContext navigator, String namespaceURI, String localName)
{
parent.addServiceRef(envRef);
}
@@ -1037,7 +1037,7 @@
/**
* Called when parsing character is complete.
*/
- public void addChild(Interceptor parent, ServiceRef ref, UnmarshallingContext navigator, String namespaceURI, String localName)
+ public void addChild(Interceptor parent, WebServiceRefMetaData ref, UnmarshallingContext navigator, String namespaceURI, String localName)
{
parent.addServiceRef(ref);
}
Modified: trunk/ejb3/src/main/org/jboss/ejb3/metamodel/EnterpriseBeans.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/ejb3/metamodel/EnterpriseBeans.java 2007-02-23 13:21:39 UTC (rev 60838)
+++ trunk/ejb3/src/main/org/jboss/ejb3/metamodel/EnterpriseBeans.java 2007-02-23 14:07:05 UTC (rev 60839)
@@ -35,7 +35,7 @@
import org.jboss.metamodel.descriptor.MessageDestinationRef;
import org.jboss.metamodel.descriptor.ResourceEnvRef;
import org.jboss.metamodel.descriptor.ResourceRef;
-import org.jboss.metamodel.descriptor.ServiceRef;
+import org.jboss.metamodel.descriptor.WebServiceRefMetaData;
/**
* Represents EJB elements of the ejb-jar.xml deployment descriptor for the 1.4
@@ -114,7 +114,7 @@
currentEjb.mergeMessageDestinationRef(ref);
}
- public void addServiceRef(ServiceRef ref)
+ public void addServiceRef(WebServiceRefMetaData ref)
{
currentEjb.addServiceRef(ref);
}
Modified: trunk/ejb3/src/main/org/jboss/ejb3/metamodel/Injectable.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/ejb3/metamodel/Injectable.java 2007-02-23 13:21:39 UTC (rev 60838)
+++ trunk/ejb3/src/main/org/jboss/ejb3/metamodel/Injectable.java 2007-02-23 14:07:05 UTC (rev 60839)
@@ -31,7 +31,7 @@
import org.jboss.metamodel.descriptor.PersistenceUnitRef;
import org.jboss.metamodel.descriptor.ResourceEnvRef;
import org.jboss.metamodel.descriptor.ResourceRef;
-import org.jboss.metamodel.descriptor.ServiceRef;
+import org.jboss.metamodel.descriptor.WebServiceRefMetaData;
import org.jboss.metamodel.descriptor.PersistenceContextRef;
/**
@@ -50,7 +50,7 @@
Collection<ResourceRef> getResourceRefs();
- Collection<ServiceRef> getServiceRefs();
+ Collection<WebServiceRefMetaData> getServiceRefs();
Collection<MessageDestinationRef> getMessageDestinationRefs();
Modified: trunk/ejb3/src/main/org/jboss/ejb3/metamodel/JBossClientDDObjectFactory.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/ejb3/metamodel/JBossClientDDObjectFactory.java 2007-02-23 13:21:39 UTC (rev 60838)
+++ trunk/ejb3/src/main/org/jboss/ejb3/metamodel/JBossClientDDObjectFactory.java 2007-02-23 14:07:05 UTC (rev 60839)
@@ -30,7 +30,7 @@
import org.jboss.metamodel.descriptor.MessageDestinationRef;
import org.jboss.metamodel.descriptor.ResourceEnvRef;
import org.jboss.metamodel.descriptor.ResourceRef;
-import org.jboss.metamodel.descriptor.ServiceRef;
+import org.jboss.metamodel.descriptor.WebServiceRefMetaData;
import org.jboss.util.xml.JBossEntityResolver;
import org.jboss.xb.binding.JBossXBException;
import org.jboss.xb.binding.Unmarshaller;
@@ -95,7 +95,7 @@
dd.updateMessageDestinationRef(ref);
}
- public void addChild(ApplicationClientDD parent, ServiceRef ref, UnmarshallingContext navigator, String namespaceURI, String localName)
+ public void addChild(ApplicationClientDD parent, WebServiceRefMetaData ref, UnmarshallingContext navigator, String namespaceURI, String localName)
{
dd.addServiceRef(ref);
}
Modified: trunk/ejb3/src/main/org/jboss/ejb3/metamodel/JBossDDObjectFactory.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/ejb3/metamodel/JBossDDObjectFactory.java 2007-02-23 13:21:39 UTC (rev 60838)
+++ trunk/ejb3/src/main/org/jboss/ejb3/metamodel/JBossDDObjectFactory.java 2007-02-23 14:07:05 UTC (rev 60839)
@@ -47,8 +47,8 @@
import org.jboss.metamodel.descriptor.NameValuePair;
import org.jboss.metamodel.descriptor.ResourceEnvRef;
import org.jboss.metamodel.descriptor.ResourceRef;
-import org.jboss.metamodel.descriptor.ServiceRef;
-import org.jboss.metamodel.descriptor.ServiceRef;
+import org.jboss.metamodel.descriptor.WebServiceRefMetaData;
+import org.jboss.metamodel.descriptor.WebServiceRefMetaData;
/**
* Represents the jboss.xml deployment descriptor for the 2.1 schema
@@ -664,7 +664,7 @@
/**
* Called when parsing character is complete.
*/
- public void addChild(EnterpriseBeans parent, ServiceRef ref, UnmarshallingContext navigator, String namespaceURI, String localName)
+ public void addChild(EnterpriseBeans parent, WebServiceRefMetaData ref, UnmarshallingContext navigator, String namespaceURI, String localName)
{
parent.addServiceRef(ref);
}
Modified: trunk/ejb3/src/main/org/jboss/injection/WebServiceRefHandler.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/injection/WebServiceRefHandler.java 2007-02-23 13:21:39 UTC (rev 60838)
+++ trunk/ejb3/src/main/org/jboss/injection/WebServiceRefHandler.java 2007-02-23 14:07:05 UTC (rev 60839)
@@ -35,7 +35,7 @@
import org.jboss.logging.Logger;
import org.jboss.metamodel.descriptor.EnvironmentRefGroup;
-import org.jboss.metamodel.descriptor.ServiceRef;
+import org.jboss.metamodel.descriptor.WebServiceRefMetaData;
/**
* Handle @WebServiceRef annotations
@@ -45,13 +45,13 @@
public class WebServiceRefHandler implements InjectionHandler
{
private static final Logger log = Logger.getLogger(WebServiceRefHandler.class);
- private Map<String, ServiceRef> srefMap = new HashMap<String, ServiceRef>();
+ private Map<String, WebServiceRefMetaData> srefMap = new HashMap<String, WebServiceRefMetaData>();
public void loadXml(EnvironmentRefGroup xml, InjectionContainer container)
{
if (xml == null) return;
if (xml.getServiceRefs() == null) return;
- for (ServiceRef sref : xml.getServiceRefs())
+ for (WebServiceRefMetaData sref : xml.getServiceRefs())
{
log.debug("@WebServiceRef override: " + sref);
if (srefMap.get(sref.getServiceRefName()) != null)
@@ -88,7 +88,7 @@
if (!container.getEncInjectors().containsKey(name))
{
String encName = "env/" + name;
- ServiceRef sref = getServiceRef(name);
+ WebServiceRefMetaData sref = getServiceRef(name);
container.getEncInjectors().put(name, new WebServiceRefInjector(encName, type, sref));
}
}
@@ -109,7 +109,7 @@
Context encCtx = container.getEnc();
if (!container.getEncInjectors().containsKey(name))
{
- ServiceRef sref = getServiceRef(name);
+ WebServiceRefMetaData sref = getServiceRef(name);
container.getEncInjectors().put(name, new WebServiceRefInjector(encName, method, sref));
}
@@ -129,20 +129,20 @@
Context encCtx = container.getEnc();
if (!container.getEncInjectors().containsKey(name))
{
- ServiceRef sref = getServiceRef(name);
+ WebServiceRefMetaData sref = getServiceRef(name);
container.getEncInjectors().put(name, new WebServiceRefInjector(encName, field, sref));
}
injectors.put(field, new JndiFieldInjector(field, encName, encCtx));
}
- private ServiceRef getServiceRef(String name)
+ private WebServiceRefMetaData getServiceRef(String name)
{
- ServiceRef sref = srefMap.get(name);
+ WebServiceRefMetaData sref = srefMap.get(name);
if (sref == null)
{
log.debug("No override for @WebServiceRef.name: " + name);
- sref = new ServiceRef();
+ sref = new WebServiceRefMetaData();
sref.setServiceRefName(name);
}
return sref;
Modified: trunk/ejb3/src/main/org/jboss/injection/WebServiceRefInjector.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/injection/WebServiceRefInjector.java 2007-02-23 13:21:39 UTC (rev 60838)
+++ trunk/ejb3/src/main/org/jboss/injection/WebServiceRefInjector.java 2007-02-23 14:07:05 UTC (rev 60839)
@@ -35,7 +35,7 @@
import javax.xml.ws.WebServiceException;
import org.jboss.logging.Logger;
-import org.jboss.metamodel.descriptor.ServiceRef;
+import org.jboss.metamodel.descriptor.WebServiceRefMetaData;
import org.jboss.mx.util.MBeanProxy;
import org.jboss.mx.util.MBeanServerLocator;
import org.jboss.mx.util.ObjectNameFactory;
@@ -56,7 +56,7 @@
private String name;
private AnnotatedElement anElement;
- private ServiceRef sref;
+ private WebServiceRefMetaData sref;
// The @WebServiceRef handler MBean interface
// is duplicated here to avoid a binary dependency on JBossWS
@@ -66,7 +66,7 @@
void setupWebServiceRef(Context encCtx, String encName, AnnotatedElement anElement, VirtualFile vfsRoot, Source metadata) throws NamingException;
}
- public WebServiceRefInjector(String name, AnnotatedElement anElement, ServiceRef sref)
+ public WebServiceRefInjector(String name, AnnotatedElement anElement, WebServiceRefMetaData sref)
{
this.name = name;
this.anElement = anElement;
Modified: trunk/server/src/main/org/jboss/deployment/ClientDeployer.java
===================================================================
--- trunk/server/src/main/org/jboss/deployment/ClientDeployer.java 2007-02-23 13:21:39 UTC (rev 60838)
+++ trunk/server/src/main/org/jboss/deployment/ClientDeployer.java 2007-02-23 14:07:05 UTC (rev 60839)
@@ -272,7 +272,7 @@
Iterator serviceRefs = metaData.getServiceReferences().values().iterator();
ServiceRefHandler refHandler = ServiceRefHandlerFactory.newInstance();
if (refHandler != null && serviceRefs.hasNext())
- refHandler.setupServiceRefEnvironment(envCtx, serviceRefs, unit);
+ refHandler.bindServiceRefs(envCtx, serviceRefs, unit);
// Bind resource references
HashMap resRefs = metaData.getResourceReferences();
Modified: trunk/server/src/main/org/jboss/deployment/EjbJarObjectFactory.java
===================================================================
--- trunk/server/src/main/org/jboss/deployment/EjbJarObjectFactory.java 2007-02-23 13:21:39 UTC (rev 60838)
+++ trunk/server/src/main/org/jboss/deployment/EjbJarObjectFactory.java 2007-02-23 14:07:05 UTC (rev 60839)
@@ -469,7 +469,7 @@
public void addChild(EntityMetaData parent, ServiceRefMetaData child,
UnmarshallingContext navigator, String namespaceURI, String localName)
{
- parent.addServiceReference(child);
+ parent.addServiceRef(child);
}
public void addChild(SessionMetaData parent, SecurityIdentityMetaData child,
@@ -523,7 +523,7 @@
public void addChild(SessionMetaData parent, ServiceRefMetaData child,
UnmarshallingContext navigator, String namespaceURI, String localName)
{
- parent.addServiceReference(child);
+ parent.addServiceRef(child);
}
public void addChild(RelationMetaData relation, RelationshipRoleMetaData role,
@@ -631,7 +631,7 @@
public void addChild(MessageDrivenMetaData parent, ServiceRefMetaData child,
UnmarshallingContext navigator, String namespaceURI, String localName)
{
- parent.addServiceReference(child);
+ parent.addServiceRef(child);
}
public void addChild(MethodPermission parent, MethodMetaData child,
Modified: trunk/server/src/main/org/jboss/deployment/JBossEjbObjectFactory.java
===================================================================
--- trunk/server/src/main/org/jboss/deployment/JBossEjbObjectFactory.java 2007-02-23 13:21:39 UTC (rev 60838)
+++ trunk/server/src/main/org/jboss/deployment/JBossEjbObjectFactory.java 2007-02-23 14:07:05 UTC (rev 60839)
@@ -576,10 +576,18 @@
ref.setJndiName(child.getJndiName());
}
- public void addChild(BeanHolder parent, ServiceRefMetaData child,
+ public void addChild(BeanHolder parent, ServiceRefMetaData sourceRef,
UnmarshallingContext navigator, String namespaceURI, String localName)
{
- // TODO merge/add service-ref
+ String refName = sourceRef.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);
}
public void addChild(InvokerMetaData parent, InvokerMetaData.EjbRef child,
Modified: trunk/server/src/main/org/jboss/ejb/Container.java
===================================================================
--- trunk/server/src/main/org/jboss/ejb/Container.java 2007-02-23 13:21:39 UTC (rev 60838)
+++ trunk/server/src/main/org/jboss/ejb/Container.java 2007-02-23 14:07:05 UTC (rev 60839)
@@ -1265,10 +1265,10 @@
}
// Bind service references
- Iterator serviceRefs = metaData.getServiceReferences().values().iterator();
+ Iterator serviceRefs = metaData.getServiceRefs().values().iterator();
ServiceRefHandler refHandler = ServiceRefHandlerFactory.newInstance();
if (refHandler != null && serviceRefs.hasNext())
- refHandler.setupServiceRefEnvironment(envCtx, serviceRefs, di);
+ refHandler.bindServiceRefs(envCtx, serviceRefs, di);
// Bind resource references
{
Modified: trunk/server/src/main/org/jboss/metadata/BeanMetaData.java
===================================================================
--- trunk/server/src/main/org/jboss/metadata/BeanMetaData.java 2007-02-23 13:21:39 UTC (rev 60838)
+++ trunk/server/src/main/org/jboss/metadata/BeanMetaData.java 2007-02-23 14:07:05 UTC (rev 60839)
@@ -28,21 +28,23 @@
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
+import java.util.LinkedHashMap;
import java.util.LinkedList;
+import java.util.Map;
import java.util.Set;
-import EDU.oswego.cs.dl.util.concurrent.ConcurrentReaderHashMap;
-
import org.jboss.deployment.DeploymentException;
import org.jboss.invocation.InvocationType;
-import org.jboss.webservice.metadata.serviceref.ServiceRefMetaData;
import org.jboss.mx.util.ObjectNameFactory;
import org.jboss.security.AnybodyPrincipal;
import org.jboss.security.NobodyPrincipal;
import org.jboss.security.SimplePrincipal;
+import org.jboss.webservice.metadata.serviceref.ServiceRefMetaData;
import org.w3c.dom.Element;
+import EDU.oswego.cs.dl.util.concurrent.ConcurrentReaderHashMap;
+
/**
* A common meta data class for the entity, message-driven and session beans.
*
@@ -115,8 +117,8 @@
private HashMap ejbReferences = new HashMap();
/** The ejb-local-ref element(s) info */
private HashMap ejbLocalReferences = new HashMap();
- /** The HashMap<ServiceRefMetaData> service-ref element(s) info */
- private HashMap serviceReferences = new HashMap();
+ /** The HashMap<String, ServiceRefMetaData> service-ref element(s) info */
+ private Map<String, ServiceRefMetaData> serviceRefs = new LinkedHashMap<String, ServiceRefMetaData>();
/** The security-role-ref element(s) info */
private ArrayList<SecurityRoleRefMetaData> securityRoleReferences = new ArrayList<SecurityRoleRefMetaData>();
/** The security-idemtity element info */
@@ -417,19 +419,21 @@
return (MessageDestinationRefMetaData)messageDestinationReferences.get(refName);
}
- /**
- * @return HashMap<ServiceRefMetaData>
- */
- public HashMap getServiceReferences()
+ public Map<String, ServiceRefMetaData> getServiceRefs()
{
- return serviceReferences;
+ return serviceRefs;
}
- public void addServiceReference(ServiceRefMetaData ref)
+ public ServiceRefMetaData getServiceRef(String refName)
{
- serviceReferences.put(ref.getServiceRefName(), ref);
+ return serviceRefs.get(refName);
}
+ public void addServiceRef(ServiceRefMetaData ref)
+ {
+ serviceRefs.put(ref.getServiceRefName(), ref);
+ }
+
public String getJndiName()
{
// jndiName may be set in jboss.xml
@@ -1033,9 +1037,9 @@
this.securityRoleReferences = securityRoleReferences;
}
- public void setServiceReferences(HashMap serviceReferences)
+ public void setServiceRefs(HashMap serviceReferences)
{
- this.serviceReferences = serviceReferences;
+ this.serviceRefs = serviceReferences;
}
public void setTimerPersistence(boolean timerPersistence)
@@ -1118,7 +1122,7 @@
{
ServiceRefMetaData refMetaData = new ServiceRefMetaData();
refMetaData.importStandardXml(serviceRef);
- serviceReferences.put(refMetaData.getServiceRefName(), refMetaData);
+ serviceRefs.put(refMetaData.getServiceRefName(), refMetaData);
}
}
@@ -1291,7 +1295,7 @@
{
Element serviceRef = (Element)iterator.next();
String serviceRefName = MetaData.getUniqueChildContent(serviceRef, "service-ref-name");
- ServiceRefMetaData refMetaData = (ServiceRefMetaData)serviceReferences.get(serviceRefName);
+ ServiceRefMetaData refMetaData = (ServiceRefMetaData)serviceRefs.get(serviceRefName);
if (refMetaData == null && ServiceRefMetaData.isValidDoctype(serviceRef))
{
throw new DeploymentException("service-ref " + serviceRefName + " found in jboss.xml but not in ejb-jar.xml");
Modified: trunk/server/src/main/org/jboss/metadata/DDObjectFactory.java
===================================================================
--- trunk/server/src/main/org/jboss/metadata/DDObjectFactory.java 2007-02-23 13:21:39 UTC (rev 60838)
+++ trunk/server/src/main/org/jboss/metadata/DDObjectFactory.java 2007-02-23 14:07:05 UTC (rev 60839)
@@ -21,26 +21,24 @@
*/
package org.jboss.metadata;
+import javax.persistence.PersistenceContextType;
+
+import org.jboss.webservice.metadata.serviceref.HandlerMetaData;
+import org.jboss.webservice.metadata.serviceref.InitParamMetaData;
+import org.jboss.webservice.metadata.serviceref.PortComponentRefMetaData;
import org.jboss.webservice.metadata.serviceref.ServiceRefMetaData;
import org.jboss.xb.binding.ObjectModelFactory;
import org.jboss.xb.binding.UnmarshallingContext;
-
-import org.jboss.logging.Logger;
import org.xml.sax.Attributes;
-import javax.persistence.PersistenceContextType;
-import javax.xml.namespace.QName;
-
/**
* @author <a href="mailto:bdecoste at jboss.com">William DeCoste</a>
* @author Scott.Stark at jboss.org
+ * @author Thomas.Diesler at jboss.org
* @version <tt>$Revision: 56531 $</tt>
*/
public abstract class DDObjectFactory implements ObjectModelFactory
{
- private static final Logger log = Logger
- .getLogger(DDObjectFactory.class);
-
public Object newChild(PersistenceUnitRef ref,
UnmarshallingContext navigator, String namespaceURI, String localName,
Attributes attrs)
@@ -101,9 +99,13 @@
UnmarshallingContext navigator, String namespaceURI, String localName,
Attributes attrs)
{
- return newRefChild(ref, localName);
- //
-
+ Object child = newRefChild(ref, localName);
+ if (localName.equals("port-component-ref"))
+ child = new PortComponentRefMetaData(ref);
+ else if (localName.equals("handler"))
+ child = new HandlerMetaData();
+
+ return child;
}
public Object newChild(JndiRef ref,
@@ -373,6 +375,7 @@
public void setValue(ServiceRefMetaData ref, UnmarshallingContext navigator,
String namespaceURI, String localName, String value)
{
+ /* Standard properties */
if (localName.equals("service-ref-name"))
{
ref.setServiceRefName(getValue(localName, value));
@@ -387,8 +390,7 @@
}
else if (localName.equals("service-qname"))
{
- QName serviceQName = new QName(namespaceURI, value);
- ref.setServiceQName(serviceQName);
+ ref.setServiceQName(navigator.resolveQName(value));
}
else if (localName.equals("wsdl-file"))
{
@@ -398,12 +400,108 @@
{
ref.setMappingFile(getValue(localName, value));
}
- else if (localName.equals("mapped-name"))
+
+ /* JBoss properties */
+ else if (localName.equals("config-name"))
{
- ref.setMappedName(getValue(localName, value));
+ ref.setConfigName(value);
}
+ else if (localName.equals("config-file"))
+ {
+ ref.setConfigFile(value);
+ }
+ else if (localName.equals("wsdl-override"))
+ {
+ ref.setWsdlOverride(value);
+ }
}
+ 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 setValue(PortComponentRefMetaData ref, UnmarshallingContext navigator, String namespaceURI, String localName, String value)
+ {
+ if (localName.equals("service-endpoint-interface"))
+ {
+ ref.setServiceEndpointInterface(value);
+ }
+ else if (localName.equals("port-component-link"))
+ {
+ 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 NameValuePair();
+
+ return child;
+ }
+
+ public void addChild(PortComponentRefMetaData parent, NameValuePair property, UnmarshallingContext navigator, String namespaceURI, String localName)
+ {
+ parent.addCallProperty(property.getName(), property.getValue());
+ }
+
+ 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(SecurityRoleMetaData role, UnmarshallingContext navigator,
String namespaceURI, String localName, String value)
{
Modified: trunk/server/src/main/org/jboss/metadata/WebMetaData.java
===================================================================
--- trunk/server/src/main/org/jboss/metadata/WebMetaData.java 2007-02-23 13:21:39 UTC (rev 60838)
+++ trunk/server/src/main/org/jboss/metadata/WebMetaData.java 2007-02-23 14:07:05 UTC (rev 60839)
@@ -123,7 +123,7 @@
/** web.xml ejb-local-refs */
private HashMap<String, EjbLocalRefMetaData> ejbLocalReferences = new HashMap<String, EjbLocalRefMetaData>();
/** The web.xml service-refs */
- private HashMap serviceReferences = new HashMap();
+ private HashMap<String, ServiceRefMetaData> serviceRefs = new HashMap<String, ServiceRefMetaData>();
/** web.xml security-role-refs <String servlet-name, ArrayList<SecurityRoleRefMetaData>> */
private HashMap securityRoleReferences = new HashMap();
/** The web.xml servlet/run-as <String servlet-name, String role> */
@@ -691,19 +691,21 @@
/** Return an iterator of the service-ref mappings.
* @return Iterator of ServiceRefMetaData objects
*/
- public Iterator getServiceReferences()
+ public Iterator getServiceRefs()
{
- return serviceReferences.values().iterator();
+ return serviceRefs.values().iterator();
}
- /**
- *
- * @param serviceReferences - Map<String, ServiceRefMetaData>
- */
- public void setServiceReferences(Map serviceReferences)
+
+ public ServiceRefMetaData getServiceRef(String name)
{
- this.serviceReferences.clear();
- this.serviceReferences.putAll(serviceReferences);
+ ServiceRefMetaData ref = serviceRefs.get(name);
+ return ref;
}
+
+ public void addServiceRef(ServiceRefMetaData serviceRef)
+ {
+ this.serviceRefs.put(serviceRef.getServiceRefName(), serviceRef);
+ }
/** This the the jboss-web.xml descriptor context-root and it
*is only meaningful if a war is deployed outside of an ear.
@@ -1308,12 +1310,12 @@
{
Element serviceRef = (Element) iterator.next();
String serviceRefName = MetaData.getUniqueChildContent(serviceRef, "service-ref-name");
- ServiceRefMetaData refMetaData = (ServiceRefMetaData)serviceReferences.get(serviceRefName);
+ ServiceRefMetaData refMetaData = (ServiceRefMetaData)serviceRefs.get(serviceRefName);
if (refMetaData == null)
{
log.warn("service-ref " + serviceRefName + " found in jboss-web.xml but not in web.xml");
refMetaData = new ServiceRefMetaData(serviceRefName);
- serviceReferences.put(serviceRefName, refMetaData);
+ serviceRefs.put(serviceRefName, refMetaData);
}
refMetaData.importJBossXml(serviceRef);
}
Modified: trunk/server/src/main/org/jboss/metadata/web/JBossWebMetaDataObjectFactory.java
===================================================================
--- trunk/server/src/main/org/jboss/metadata/web/JBossWebMetaDataObjectFactory.java 2007-02-23 13:21:39 UTC (rev 60838)
+++ trunk/server/src/main/org/jboss/metadata/web/JBossWebMetaDataObjectFactory.java 2007-02-23 14:07:05 UTC (rev 60839)
@@ -37,6 +37,7 @@
import org.jboss.metadata.SecurityRoleMetaData;
import org.jboss.metadata.WebMetaData;
import org.jboss.util.xml.JBossEntityResolver;
+import org.jboss.webservice.metadata.serviceref.ServiceRefMetaData;
import org.jboss.xb.binding.JBossXBException;
import org.jboss.xb.binding.ObjectModelFactory;
import org.jboss.xb.binding.Unmarshaller;
@@ -134,7 +135,7 @@
}
return child;
}
-
+
public void addChild(WebMetaData parent, ReplicationConfig config,
UnmarshallingContext navigator, String namespaceURI, String localName)
{
@@ -209,6 +210,20 @@
parent.addSecurityRole(role);
}
+ public void addChild(WebMetaData parent, ServiceRefMetaData sourceRef,
+ UnmarshallingContext navigator, String namespaceURI, String localName)
+ {
+ String refName = sourceRef.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);
+ }
+
public void addChild(WebMetaData parent, Servlet servlet,
UnmarshallingContext navigator, String namespaceURI, String localName)
{
Modified: trunk/server/src/main/org/jboss/metadata/web/WebMetaDataObjectFactory.java
===================================================================
--- trunk/server/src/main/org/jboss/metadata/web/WebMetaDataObjectFactory.java 2007-02-23 13:21:39 UTC (rev 60838)
+++ trunk/server/src/main/org/jboss/metadata/web/WebMetaDataObjectFactory.java 2007-02-23 14:07:05 UTC (rev 60839)
@@ -41,6 +41,7 @@
import org.jboss.metadata.WebMetaData;
import org.jboss.metadata.WebSecurityMetaData;
import org.jboss.metadata.WebSecurityMetaData.WebResourceCollection;
+import org.jboss.webservice.metadata.serviceref.ServiceRefMetaData;
import org.jboss.xb.binding.UnmarshallingContext;
import org.xml.sax.Attributes;
@@ -79,13 +80,6 @@
/**
* Create the web-app child elements
- *
- * @param dd
- * @param navigator
- * @param namespaceURI
- * @param localName
- * @param attrs
- * @return
*/
public Object newChild(WebMetaData dd, UnmarshallingContext navigator,
String namespaceURI, String localName, Attributes attrs)
@@ -200,13 +194,6 @@
/**
* web-app/servlet children
- *
- * @param servlet
- * @param navigator
- * @param namespaceURI
- * @param localName
- * @param attrs
- * @return
*/
public Object newChild(Servlet servlet, UnmarshallingContext navigator,
String namespaceURI, String localName, Attributes attrs)
@@ -270,7 +257,7 @@
return child;
}
-
+
public void addChild(WebMetaData parent, ParamValue pv,
UnmarshallingContext navigator, String namespaceURI, String localName)
{
@@ -347,6 +334,12 @@
parent.addSecurityConstraint(constraint);
}
+ public void addChild(WebMetaData parent, ServiceRefMetaData serviceref,
+ UnmarshallingContext navigator, String namespaceURI, String localName)
+ {
+ parent.addServiceRef(serviceref);
+ }
+
public void addChild(WebMetaData parent, ErrorPage page,
UnmarshallingContext navigator, String namespaceURI, String localName)
{
Modified: trunk/server/src/main/org/jboss/metamodel/descriptor/DDObjectFactory.java
===================================================================
--- trunk/server/src/main/org/jboss/metamodel/descriptor/DDObjectFactory.java 2007-02-23 13:21:39 UTC (rev 60838)
+++ trunk/server/src/main/org/jboss/metamodel/descriptor/DDObjectFactory.java 2007-02-23 14:07:05 UTC (rev 60839)
@@ -75,7 +75,7 @@
return newRefChild(ref, localName);
}
- public Object newChild(ServiceRef ref, UnmarshallingContext navigator, String namespaceURI, String localName, Attributes attrs)
+ public Object newChild(WebServiceRefMetaData ref, UnmarshallingContext navigator, String namespaceURI, String localName, Attributes attrs)
{
return newServiceRefChild(ref, localName);
}
@@ -125,7 +125,7 @@
parent.setInjectionTarget(target);
}
- public void addChild(ServiceRef parent, InjectionTarget target, UnmarshallingContext navigator, String namespaceURI, String localName)
+ public void addChild(WebServiceRefMetaData parent, InjectionTarget target, UnmarshallingContext navigator, String namespaceURI, String localName)
{
parent.setInjectionTarget(target);
}
@@ -323,7 +323,7 @@
}
}
- public void setValue(ServiceRef ref, UnmarshallingContext navigator, String namespaceURI, String localName, String value)
+ public void setValue(WebServiceRefMetaData ref, UnmarshallingContext navigator, String namespaceURI, String localName, String value)
{
if (localName.equals("service-ref-name"))
{
@@ -355,7 +355,7 @@
}
}
- private Object newServiceRefChild(ServiceRef ref, String localName)
+ private Object newServiceRefChild(WebServiceRefMetaData ref, String localName)
{
Object child = newRefChild(ref, localName);
@@ -365,7 +365,7 @@
return child;
}
- public void addChild(ServiceRef parent, PortInfo portInfo, UnmarshallingContext navigator, String namespaceURI, String localName)
+ public void addChild(WebServiceRefMetaData parent, PortInfo portInfo, UnmarshallingContext navigator, String namespaceURI, String localName)
{
parent.getPortInfos().add(portInfo);
}
@@ -522,7 +522,7 @@
}
else if (localName.equals("service-ref"))
{
- child = new ServiceRef();
+ child = new WebServiceRefMetaData();
}
else if (localName.equals("jndi-ref"))
{
Modified: trunk/server/src/main/org/jboss/metamodel/descriptor/EnvironmentRefGroup.java
===================================================================
--- trunk/server/src/main/org/jboss/metamodel/descriptor/EnvironmentRefGroup.java 2007-02-23 13:21:39 UTC (rev 60838)
+++ trunk/server/src/main/org/jboss/metamodel/descriptor/EnvironmentRefGroup.java 2007-02-23 14:07:05 UTC (rev 60839)
@@ -35,7 +35,7 @@
import org.jboss.metamodel.descriptor.MessageDestinationRef;
import org.jboss.metamodel.descriptor.ResourceEnvRef;
import org.jboss.metamodel.descriptor.ResourceRef;
-import org.jboss.metamodel.descriptor.ServiceRef;
+import org.jboss.metamodel.descriptor.WebServiceRefMetaData;
/**
* @author <a href="mailto:bdecoste at jboss.com">William DeCoste</a>
@@ -53,7 +53,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 HashMap<String, ServiceRef> serviceRefs = new HashMap<String, ServiceRef>();
+ protected HashMap<String, WebServiceRefMetaData> serviceRefs = new HashMap<String, WebServiceRefMetaData>();
protected HashMap<String, JndiRef> jndiRefs = new HashMap<String, JndiRef>();
protected List<PersistenceContextRef> persistenceContextRefs = new ArrayList<PersistenceContextRef>();
protected List<PersistenceUnitRef> persistenceUnitRefs = new ArrayList<PersistenceUnitRef>();
@@ -134,12 +134,12 @@
jndiRefs.put(ref.getJndiRefName(), ref);
}
- public Collection<ServiceRef> getServiceRefs()
+ public Collection<WebServiceRefMetaData> getServiceRefs()
{
return serviceRefs.values();
}
- public void addServiceRef(ServiceRef ref)
+ public void addServiceRef(WebServiceRefMetaData ref)
{
serviceRefs.put(ref.getServiceRefName(), ref);
}
Modified: trunk/server/src/main/org/jboss/metamodel/descriptor/PortInfo.java
===================================================================
--- trunk/server/src/main/org/jboss/metamodel/descriptor/PortInfo.java 2007-02-23 13:21:39 UTC (rev 60838)
+++ trunk/server/src/main/org/jboss/metamodel/descriptor/PortInfo.java 2007-02-23 14:07:05 UTC (rev 60839)
@@ -35,19 +35,19 @@
*/
public class PortInfo
{
- private ServiceRef serviceRef;
+ private WebServiceRefMetaData serviceRef;
private String serviceEndpointInterface;
private QName portQName;
private String configName;
private String configFile;
private List<NameValuePair> stubProperties = new ArrayList<NameValuePair>();
- public PortInfo(ServiceRef serviceRef)
+ public PortInfo(WebServiceRefMetaData serviceRef)
{
this.serviceRef = serviceRef;
}
- public ServiceRef getServiceRef()
+ public WebServiceRefMetaData getServiceRef()
{
return serviceRef;
}
Deleted: trunk/server/src/main/org/jboss/metamodel/descriptor/ServiceRef.java
===================================================================
--- trunk/server/src/main/org/jboss/metamodel/descriptor/ServiceRef.java 2007-02-23 13:21:39 UTC (rev 60838)
+++ trunk/server/src/main/org/jboss/metamodel/descriptor/ServiceRef.java 2007-02-23 14:07:05 UTC (rev 60839)
@@ -1,163 +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.metamodel.descriptor;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.xml.namespace.QName;
-
-// $Id$
-
-/**
- * Represents a <service-ref> element of the jboss.xml, jboss-web.xml, jboss-client.xml deployment descriptor
- * for the 5.0 schema
- *
- * @author <a href="mailto:bdecoste at jboss.com">William DeCoste</a>
- * @author Thomas.Diesler at jboss.com
- */
-public class ServiceRef extends Ref
-{
- private String serviceRefName;
- private String serviceClassName;
- private QName serviceQName;
- private String configName;
- private String configFile;
- private String handlerChain;
- private List<PortInfo> portInfos = new ArrayList<PortInfo>();
- private String wsdlOverride;
-
- public String getServiceRefName()
- {
- return serviceRefName;
- }
-
- public void setServiceRefName(String name)
- {
- this.serviceRefName = name;
- }
-
- public String getServiceClassName()
- {
- return serviceClassName;
- }
-
- public void setServiceClassName(String serviceClassName)
- {
- this.serviceClassName = serviceClassName;
- }
-
- public QName getServiceQName()
- {
- return serviceQName;
- }
-
- public void setServiceQName(QName serviceQName)
- {
- this.serviceQName = serviceQName;
- }
-
- public String getConfigFile()
- {
- return configFile;
- }
-
- public void setConfigFile(String configFile)
- {
- this.configFile = configFile;
- }
-
- public String getConfigName()
- {
- return configName;
- }
-
- public void setConfigName(String configName)
- {
- this.configName = configName;
- }
-
- public String getHandlerChain()
- {
- return handlerChain;
- }
-
- public void setHandlerChain(String handlerChain)
- {
- this.handlerChain = handlerChain;
- }
-
- public List<PortInfo> getPortInfos()
- {
- return portInfos;
- }
-
- public String getWsdlOverride()
- {
- return wsdlOverride;
- }
-
- public void setWsdlOverride(String wsdlLocation)
- {
- this.wsdlOverride = wsdlLocation;
- }
-
- public String toXMLFragment()
- {
- StringBuilder xml = new StringBuilder("<service-ref>");
-
- xml.append("<service-ref-name>" + serviceRefName + "</service-ref-name>");
-
- if (serviceClassName != null)
- xml.append("<service-class-name>" + serviceClassName + "</service-class-name>");
-
- if (serviceQName != null)
- xml.append("<service-qname>" + serviceQName + "</service-qname>");
-
- if (configName != null)
- xml.append("<config-name>" + configName + "</config-name>");
- if (configFile != null)
- xml.append("<config-file>" + configFile + "</config-file>");
-
- if (handlerChain != null)
- xml.append("<handler-chain>" + handlerChain + "</handler-chain>");
-
- for (PortInfo portInfo : portInfos)
- xml.append(portInfo.toXMLFragment());
-
- if (wsdlOverride != null)
- xml.append("<wsdl-override>" + wsdlOverride + "</wsdl-override>");
-
- xml.append("</service-ref>");
-
- return xml.toString();
- }
-
- public String toString()
- {
- StringBuffer sb = new StringBuffer(100);
- sb.append("[");
- sb.append("name=").append(serviceRefName);
- sb.append("]");
- return sb.toString();
- }
-}
Copied: trunk/server/src/main/org/jboss/metamodel/descriptor/WebServiceRefMetaData.java (from rev 60809, trunk/server/src/main/org/jboss/metamodel/descriptor/ServiceRef.java)
===================================================================
--- trunk/server/src/main/org/jboss/metamodel/descriptor/WebServiceRefMetaData.java (rev 0)
+++ trunk/server/src/main/org/jboss/metamodel/descriptor/WebServiceRefMetaData.java 2007-02-23 14:07:05 UTC (rev 60839)
@@ -0,0 +1,163 @@
+/*
+ * 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.metamodel.descriptor;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.namespace.QName;
+
+// $Id$
+
+/**
+ * Represents a <service-ref> element of the jboss.xml, jboss-web.xml, jboss-client.xml deployment descriptor
+ * for the 5.0 schema
+ *
+ * @author <a href="mailto:bdecoste at jboss.com">William DeCoste</a>
+ * @author Thomas.Diesler at jboss.com
+ */
+public class WebServiceRefMetaData extends Ref
+{
+ private String serviceRefName;
+ private String serviceClassName;
+ private QName serviceQName;
+ private String configName;
+ private String configFile;
+ private String handlerChain;
+ private List<PortInfo> portInfos = new ArrayList<PortInfo>();
+ private String wsdlOverride;
+
+ public String getServiceRefName()
+ {
+ return serviceRefName;
+ }
+
+ public void setServiceRefName(String name)
+ {
+ this.serviceRefName = name;
+ }
+
+ public String getServiceClassName()
+ {
+ return serviceClassName;
+ }
+
+ public void setServiceClassName(String serviceClassName)
+ {
+ this.serviceClassName = serviceClassName;
+ }
+
+ public QName getServiceQName()
+ {
+ return serviceQName;
+ }
+
+ public void setServiceQName(QName serviceQName)
+ {
+ this.serviceQName = serviceQName;
+ }
+
+ public String getConfigFile()
+ {
+ return configFile;
+ }
+
+ public void setConfigFile(String configFile)
+ {
+ this.configFile = configFile;
+ }
+
+ public String getConfigName()
+ {
+ return configName;
+ }
+
+ public void setConfigName(String configName)
+ {
+ this.configName = configName;
+ }
+
+ public String getHandlerChain()
+ {
+ return handlerChain;
+ }
+
+ public void setHandlerChain(String handlerChain)
+ {
+ this.handlerChain = handlerChain;
+ }
+
+ public List<PortInfo> getPortInfos()
+ {
+ return portInfos;
+ }
+
+ public String getWsdlOverride()
+ {
+ return wsdlOverride;
+ }
+
+ public void setWsdlOverride(String wsdlLocation)
+ {
+ this.wsdlOverride = wsdlLocation;
+ }
+
+ public String toXMLFragment()
+ {
+ StringBuilder xml = new StringBuilder("<service-ref>");
+
+ xml.append("<service-ref-name>" + serviceRefName + "</service-ref-name>");
+
+ if (serviceClassName != null)
+ xml.append("<service-class-name>" + serviceClassName + "</service-class-name>");
+
+ if (serviceQName != null)
+ xml.append("<service-qname>" + serviceQName + "</service-qname>");
+
+ if (configName != null)
+ xml.append("<config-name>" + configName + "</config-name>");
+ if (configFile != null)
+ xml.append("<config-file>" + configFile + "</config-file>");
+
+ if (handlerChain != null)
+ xml.append("<handler-chain>" + handlerChain + "</handler-chain>");
+
+ for (PortInfo portInfo : portInfos)
+ xml.append(portInfo.toXMLFragment());
+
+ if (wsdlOverride != null)
+ xml.append("<wsdl-override>" + wsdlOverride + "</wsdl-override>");
+
+ xml.append("</service-ref>");
+
+ return xml.toString();
+ }
+
+ public String toString()
+ {
+ StringBuffer sb = new StringBuffer(100);
+ sb.append("[");
+ sb.append("name=").append(serviceRefName);
+ sb.append("]");
+ return sb.toString();
+ }
+}
Modified: trunk/server/src/main/org/jboss/web/AbstractWebDeployer.java
===================================================================
--- trunk/server/src/main/org/jboss/web/AbstractWebDeployer.java 2007-02-23 13:21:39 UTC (rev 60838)
+++ trunk/server/src/main/org/jboss/web/AbstractWebDeployer.java 2007-02-23 14:07:05 UTC (rev 60839)
@@ -24,11 +24,12 @@
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLClassLoader;
-import java.util.ArrayList;
+import java.security.Policy;
+import java.util.ArrayList;
import java.util.HashSet;
-import java.util.Iterator;
+import java.util.Iterator;
import java.util.Set;
-import java.security.Policy;
+
import javax.management.MBeanServer;
import javax.naming.Context;
import javax.naming.InitialContext;
@@ -36,7 +37,7 @@
import javax.naming.NamingException;
import javax.security.jacc.PolicyConfiguration;
import javax.security.jacc.PolicyConfigurationFactory;
-import javax.security.jacc.PolicyContextException;
+import javax.security.jacc.PolicyContextException;
import org.jboss.deployment.DeploymentException;
import org.jboss.deployment.DeploymentInfo;
@@ -51,17 +52,13 @@
import org.jboss.metadata.MessageDestinationRefMetaData;
import org.jboss.metadata.ResourceEnvRefMetaData;
import org.jboss.metadata.ResourceRefMetaData;
-import org.jboss.metadata.WebMetaData;
+import org.jboss.metadata.WebMetaData;
import org.jboss.mx.loading.LoaderRepositoryFactory;
-import org.jboss.mx.util.MBeanProxyExt;
import org.jboss.naming.NonSerializableFactory;
import org.jboss.naming.Util;
import org.jboss.security.AuthorizationManager;
import org.jboss.security.authorization.PolicyRegistration;
-import org.jboss.security.plugins.AuthorizationManagerServiceMBean;
import org.jboss.web.AbstractWebContainer.WebDescriptorParser;
-import org.jboss.webservice.ServiceRefHandler;
-import org.jboss.webservice.ServiceRefHandlerFactory;
import org.omg.CORBA.ORB;
/** A template pattern class for web deployer integration into JBoss. This class
@@ -557,11 +554,11 @@
Iterator ejbLocalRefs = metaData.getEjbLocalReferences();
log.debug("linkEjbLocalRefs");
linkEjbLocalRefs(ejbLocalRefs, envCtx, di);
- Iterator serviceRefs = metaData.getServiceReferences();
+ Iterator serviceRefs = metaData.getServiceRefs();
log.debug("linkServiceRefs");
- ServiceRefHandler refHandler = ServiceRefHandlerFactory.newInstance();
- if (refHandler != null && serviceRefs.hasNext())
- refHandler.setupServiceRefEnvironment(envCtx, serviceRefs, di);
+ //ServiceRefHandler refHandler = ServiceRefHandlerFactory.newInstance();
+ //if (refHandler != null && serviceRefs.hasNext())
+ // refHandler.bindServiceRefs(envCtx, serviceRefs, di);
}
protected void addEnvEntries(Iterator envEntries, Context envCtx)
Modified: trunk/server/src/main/org/jboss/web/deployers/AbstractWarDeployer.java
===================================================================
--- trunk/server/src/main/org/jboss/web/deployers/AbstractWarDeployer.java 2007-02-23 13:21:39 UTC (rev 60838)
+++ trunk/server/src/main/org/jboss/web/deployers/AbstractWarDeployer.java 2007-02-23 14:07:05 UTC (rev 60839)
@@ -281,13 +281,6 @@
try
{
- /* TODO: This needs to be moved to a webservice deployer which updates the WebMetaData
- // We need to unpack the WAR if it has webservices.xml, because we need
- // to manipulate th web.xml before deploying to the web container
- boolean unpackWebservice = di.localCl.findResource("WEB-INF/webservices.xml") != null;
- // With JSR-181 annotated JSE endpoints we need to do it as well even if there is no webservices.xml
- // unpackWebservice |= server.isRegistered(ObjectNameFactory.create("jboss.ws:service=ServiceEndpointManager"));
- */
/* Unpack wars to the tmp directory for now until tomcat can use the vfs directly. Since
* the vfs deals with the distinction between a true directory, the only way we can tell from
* this level of the api is to look for a url that ends in '/'. Here we assume that the name is
Modified: trunk/server/src/main/org/jboss/web/deployers/AbstractWarDeployment.java
===================================================================
--- trunk/server/src/main/org/jboss/web/deployers/AbstractWarDeployment.java 2007-02-23 13:21:39 UTC (rev 60838)
+++ trunk/server/src/main/org/jboss/web/deployers/AbstractWarDeployment.java 2007-02-23 14:07:05 UTC (rev 60839)
@@ -57,6 +57,8 @@
import org.jboss.security.AuthorizationManager;
import org.jboss.security.authorization.PolicyRegistration;
import org.jboss.web.WebApplication;
+import org.jboss.webservice.ServiceRefHandler;
+import org.jboss.webservice.ServiceRefHandlerFactory;
import org.omg.CORBA.ORB;
/**
@@ -507,9 +509,11 @@
Iterator ejbLocalRefs = metaData.getEjbLocalReferences();
log.debug("linkEjbLocalRefs");
linkEjbLocalRefs(unit, ejbLocalRefs, envCtx);
- Iterator serviceRefs = metaData.getServiceReferences();
+ Iterator serviceRefs = metaData.getServiceRefs();
log.debug("linkServiceRefs");
- //WebServiceClientHandler.setupServiceRefEnvironment(envCtx, serviceRefs);
+ ServiceRefHandler refHandler = ServiceRefHandlerFactory.newInstance();
+ if (refHandler != null && serviceRefs.hasNext())
+ refHandler.bindServiceRefs(envCtx, serviceRefs, unit);
}
protected void addEnvEntries(Iterator envEntries, Context envCtx)
Modified: trunk/server/src/main/org/jboss/webservice/ServiceRefHandler.java
===================================================================
--- trunk/server/src/main/org/jboss/webservice/ServiceRefHandler.java 2007-02-23 13:21:39 UTC (rev 60838)
+++ trunk/server/src/main/org/jboss/webservice/ServiceRefHandler.java 2007-02-23 14:07:05 UTC (rev 60839)
@@ -28,6 +28,7 @@
import javax.naming.Context;
import org.jboss.deployers.spi.DeploymentException;
+import org.jboss.deployers.spi.deployer.DeploymentUnit;
/**
* Implemtent to bind JAXRPC ServiceRefs
@@ -42,8 +43,8 @@
*
* @param envCtx ENC to bind the javax.rpc.xml.Service object to
* @param serviceRefs An iterator of the service-ref elements in the client deployment descriptor
- * @param deployment The client's deployment unit
+ * @param unit The client's deployment unit
* @throws DeploymentException if it goes wrong
*/
- void setupServiceRefEnvironment(Context envCtx, Iterator serviceRefs, Object deployment);
+ void bindServiceRefs(Context envCtx, Iterator serviceRefs, DeploymentUnit unit);
}
Modified: trunk/server/src/main/org/jboss/webservice/metadata/serviceref/HandlerMetaData.java
===================================================================
--- trunk/server/src/main/org/jboss/webservice/metadata/serviceref/HandlerMetaData.java 2007-02-23 13:21:39 UTC (rev 60838)
+++ trunk/server/src/main/org/jboss/webservice/metadata/serviceref/HandlerMetaData.java 2007-02-23 14:07:05 UTC (rev 60839)
@@ -117,6 +117,11 @@
return array;
}
+ public void addPortName(String value)
+ {
+ portNames.add(value);
+ }
+
public void importStandardXml(Element element)
{
handlerName = MetaData.getUniqueChildContent(element, "handler-name");
Modified: trunk/server/src/main/org/jboss/webservice/metadata/serviceref/PortComponentRefMetaData.java
===================================================================
--- trunk/server/src/main/org/jboss/webservice/metadata/serviceref/PortComponentRefMetaData.java 2007-02-23 13:21:39 UTC (rev 60838)
+++ trunk/server/src/main/org/jboss/webservice/metadata/serviceref/PortComponentRefMetaData.java 2007-02-23 14:07:05 UTC (rev 60839)
@@ -75,16 +75,36 @@
return portComponentLink;
}
+ public void setPortComponentLink(String portComponentLink)
+ {
+ this.portComponentLink = portComponentLink;
+ }
+
public String getServiceEndpointInterface()
{
return serviceEndpointInterface;
}
+
+ public void setServiceEndpointInterface(String serviceEndpointInterface)
+ {
+ this.serviceEndpointInterface = serviceEndpointInterface;
+ }
public Properties getCallProperties()
{
return callProperties;
}
+
+ public void setCallProperties(Properties props)
+ {
+ callProperties = props;
+ }
+ public void addCallProperty(String name, String value)
+ {
+ callProperties.setProperty(name, value);
+ }
+
public void importStandardXml(Element element)
{
serviceEndpointInterface = MetaData.getUniqueChildContent(element, "service-endpoint-interface");
Modified: trunk/server/src/main/org/jboss/webservice/metadata/serviceref/ServiceRefMetaData.java
===================================================================
--- trunk/server/src/main/org/jboss/webservice/metadata/serviceref/ServiceRefMetaData.java 2007-02-23 13:21:39 UTC (rev 60838)
+++ trunk/server/src/main/org/jboss/webservice/metadata/serviceref/ServiceRefMetaData.java 2007-02-23 14:07:05 UTC (rev 60839)
@@ -29,6 +29,7 @@
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedHashMap;
+import java.util.Map;
import java.util.Properties;
import javax.xml.namespace.QName;
@@ -66,7 +67,7 @@
// The optional <service-qname> element
private QName serviceQName;
// The LinkedHashMap<String, PortComponentRefMetaData> for <port-component-ref> elements
- private LinkedHashMap portComponentRefs = new LinkedHashMap();
+ private Map<String, PortComponentRefMetaData> portComponentRefs = new LinkedHashMap<String, PortComponentRefMetaData>();
// The optional <handler> elements
private ArrayList handlers = new ArrayList();
@@ -78,7 +79,6 @@
private URL wsdlOverride;
/** Arbitrary proxy properties given by <call-property> */
private Properties callProperties;
- private String mappedName;
/** Default constructor, used when unmarshalling on the client side
*/
@@ -93,6 +93,27 @@
this.serviceRefName = serviceRefName;
}
+ public void merge(ServiceRefMetaData sourceRef)
+ {
+ configName = sourceRef.configName;
+ configFile = sourceRef.configFile;
+ wsdlOverride = sourceRef.wsdlOverride;
+ callProperties = sourceRef.getCallProperties();
+
+ for (PortComponentRefMetaData pcSourceRef : sourceRef.getPortComponentRefs())
+ {
+ String seiName = pcSourceRef.getServiceEndpointInterface();
+ if (seiName == null)
+ throw new IllegalStateException("Illegal SEI name: " + seiName);
+
+ PortComponentRefMetaData pcTargetRef = portComponentRefs.get(seiName);
+ if (pcTargetRef == null)
+ throw new IllegalStateException("Cannot find port component ref with SEI name: " + seiName);
+
+ pcTargetRef.setCallProperties(pcSourceRef.getCallProperties());
+ }
+ }
+
public String getMappingFile()
{
return mappingFile;
@@ -109,6 +130,17 @@
portComponentRefs.values().toArray(array);
return array;
}
+
+ public PortComponentRefMetaData getPortComponentRef(String seiName)
+ {
+ PortComponentRefMetaData ref = portComponentRefs.get(seiName);
+ return ref;
+ }
+
+ public void addPortComponentRef(PortComponentRefMetaData pcRef)
+ {
+ portComponentRefs.put(pcRef.getServiceEndpointInterface(), pcRef);
+ }
public HandlerMetaData[] getHandlers()
{
@@ -117,6 +149,11 @@
return array;
}
+ public void addHandler(HandlerMetaData handler)
+ {
+ handlers.add(handler);
+ }
+
public String getServiceInterface()
{
return serviceInterface;
@@ -182,16 +219,6 @@
return configName;
}
- public String getMappedName()
- {
- return mappedName;
- }
-
- public void setMappedName(String mappedName)
- {
- this.mappedName = mappedName;
- }
-
public void setConfigName(String configName)
{
this.configName = configName;
@@ -201,6 +228,18 @@
{
return wsdlOverride;
}
+
+ public void setWsdlOverride(String wsdlOverride)
+ {
+ try
+ {
+ this.wsdlOverride = new URL(wsdlOverride);
+ }
+ catch (MalformedURLException e)
+ {
+ throw new IllegalArgumentException("Invalid wsdl-override: " + wsdlOverride);
+ }
+ }
public Properties getCallProperties()
{
Modified: trunk/server/src/resources/dtd/jboss-client_5_0.dtd
===================================================================
--- trunk/server/src/resources/dtd/jboss-client_5_0.dtd 2007-02-23 13:21:39 UTC (rev 60838)
+++ trunk/server/src/resources/dtd/jboss-client_5_0.dtd 2007-02-23 14:07:05 UTC (rev 60839)
@@ -12,8 +12,8 @@
"http://www.jboss.org/j2ee/dtd/jboss-client_5_0.dtd">
-->
-<!ENTITY % service-ref SYSTEM "./docs/dtd/service-ref_5_0.dtd">
-%service-ref;
+<!ENTITY % webservice-ref SYSTEM "./docs/dtd/webservice-ref_5_0.dtd">
+%webservice-ref;
<!-- The jboss-client element is the root element.
-->
Modified: trunk/server/src/resources/dtd/jboss-web_5_0.dtd
===================================================================
--- trunk/server/src/resources/dtd/jboss-web_5_0.dtd 2007-02-23 13:21:39 UTC (rev 60838)
+++ trunk/server/src/resources/dtd/jboss-web_5_0.dtd 2007-02-23 14:07:05 UTC (rev 60839)
@@ -13,8 +13,8 @@
-->
-<!ENTITY % service-ref SYSTEM "./docs/dtd/service-ref_5_0.dtd">
-%service-ref;
+<!ENTITY % webservice-ref SYSTEM "./docs/dtd/webservice-ref_5_0.dtd">
+%webservice-ref;
<!-- The jboss-web element is the root element.
-->
Modified: trunk/server/src/resources/dtd/jboss_5_0.dtd
===================================================================
--- trunk/server/src/resources/dtd/jboss_5_0.dtd 2007-02-23 13:21:39 UTC (rev 60838)
+++ trunk/server/src/resources/dtd/jboss_5_0.dtd 2007-02-23 14:07:05 UTC (rev 60839)
@@ -144,8 +144,8 @@
</jboss>
-->
-<!ENTITY % service-ref SYSTEM "./docs/dtd/service-ref_5_0.dtd">
-%service-ref;
+<!ENTITY % webservice-ref SYSTEM "./docs/dtd/webservice-ref_5_0.dtd">
+%webservice-ref;
<!--
The jboss element is the root element of the jboss.xml file. It
Deleted: trunk/server/src/resources/dtd/service-ref_5_0.dtd
===================================================================
--- trunk/server/src/resources/dtd/service-ref_5_0.dtd 2007-02-23 13:21:39 UTC (rev 60838)
+++ trunk/server/src/resources/dtd/service-ref_5_0.dtd 2007-02-23 14:07:05 UTC (rev 60839)
@@ -1,155 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-
-<!--
- $Id: jboss-client_5_0.dtd 58121 2006-11-04 19:57:58Z thomas.diesler at jboss.com $
--->
-
-<!--
- WebServiceRef customization
--->
-
-<!--
- Runtime settings for a web service reference. In the simplest case,
- there is no runtime information required for a service ref. Runtime info
- is only needed in the following cases :
-
- * to define the port that should be used to resolve a container-managed port
- * to define default Stub property settings for Stub objects
- * to define the URL of a final WSDL document to be used
-
- Example:
-
- <service-ref>
- <service-ref-name>OrganizationService</service-ref-name>
- <wsdl-override>file:/wsdlRepository/organization-service.wsdl</wsdl-override>
- </service-ref>
-
- <service-ref>
- <service-ref-name>OrganizationService</service-ref-name>
- <config-name>Secure Client Config</config-name>
- <config-file>META-INF/jbossws-client-config.xml</config-file>
- <handler-chain>META-INF/jbossws-client-handlers.xml</handler-chain>
- </service-ref>
-
- <service-ref>
- <service-ref-name>SecureService</service-ref-name>
- <service-class-name>org.jboss.tests.ws.jaxws.webserviceref.SecureEndpointService</service-class-name>
- <service-qname>{http://org.jboss.ws/wsref}SecureEndpointService</service-qname>
- <port-info>
- <service-endpoint-interface>org.jboss.tests.ws.jaxws.webserviceref.SecureEndpoint</service-endpoint-interface>
- <port-qname>{http://org.jboss.ws/wsref}SecureEndpointPort</port-qname>
- <stub-property>
- <name>javax.xml.ws.security.auth.username</name>
- <value>kermit</value>
- </stub-property>
- <stub-property>
- <name>javax.xml.ws.security.auth.password</name>
- <value>thefrog</value>
- </stub-property>
- </port-info>
- </service-ref>
--->
-<!ELEMENT service-ref (service-ref-name, service-class-name?, service-qname?, config-name?, config-file?, handler-chain?, port-info*, wsdl-override?)>
-
-<!--
- The service-ref-name element gives the ENC relative name.
- Overrides @WebServiceRef.name
--->
-<!ELEMENT service-ref-name (#PCDATA)>
-
-<!--
- Name of the class that implements javax.xml.ws.Service.
- Overrides @WebServiceRef.value
--->
-<!ELEMENT service-class-name (#PCDATA)>
-
-<!--
- The service-qname element declares the specific WSDL service element.
- Specify the qualified service name in the form defined by QName.valueOf()
-
- Example:
- <service-qname>{http://somensURI}SomeService</service-qname>
--->
-<!ELEMENT service-qname (#PCDATA)>
-
-<!--
- The optional handler-chain element is a URL or resource name to a handler chain configuration.
- See: @HandlerChain.file
--->
-<!ELEMENT handler-chain (#PCDATA)>
-
-<!--
- Information for a port within a service-reference.
-
- Either service-endpoint-interface or wsdl-port or both
- (service-endpoint-interface and wsdl-port) should be specified.
-
- If both are specified, wsdl-port represents the
- port the container should choose for container-managed port selection.
-
- The same wsdl-port value must not appear in
- more than one port-info entry within the same service-ref.
-
- If a particular service-endpoint-interface is using container-managed port
- selection, it must not appear in more than one port-info entry
- within the same service-ref.
--->
-<!ELEMENT port-info (service-endpoint-interface?, port-qname?, config-name?, config-file?, stub-property*)>
-
-<!--
- Fully qualified name of service endpoint interface
--->
-<!ELEMENT service-endpoint-interface (#PCDATA)>
-
-<!--
- Port used in port-info.
- Specify the qualified port name in the form defined by QName.valueOf()
-
- Example:
- <port-qname>{http://somensURI}SomeService</port-qname>
--->
-<!ELEMENT port-qname (#PCDATA)>
-
-<!--
- The optional config-name element gives the client configuration name that must be present in
- the configuration given by element config-file. Ports that match this port info will be
- configured with this config name.
-
- The default is: Standard Client
--->
-<!ELEMENT config-name (#PCDATA)>
-
-<!--
- The optional config-file element is a URL or resource name for the client configuration.
- Ports that match this port info will be configured with this config file.
-
- The default is: META-INF/standard-jbossws-client-config.xml
--->
-<!ELEMENT config-file (#PCDATA)>
-
-<!--
- Property values that should be set on a stub before it's returned to
- to the web service client. The property names can be any properties supported
- by the StubExt or Stub implementation.
-
- See javadoc for org.jboss.ws.core.StubExt, javax.xml.rpc.Stub
--->
-<!ELEMENT stub-property (name, value)>
-
-<!--
- This text nodes holds a name string.
--->
-<!ELEMENT name (#PCDATA)>
-
-<!--
- This text nodes holds a value string.
--->
-<!ELEMENT value (#PCDATA)>
-
-<!--
- The wsdl-override element the actual wsdl docuement the web service client
- uses to connect to the remote service.
-
- Overrides @WebServiceRef.wsdlLocation
--->
-<!ELEMENT wsdl-override (#PCDATA)>
Copied: trunk/server/src/resources/dtd/webservice-ref_5_0.dtd (from rev 60809, trunk/server/src/resources/dtd/service-ref_5_0.dtd)
===================================================================
--- trunk/server/src/resources/dtd/webservice-ref_5_0.dtd (rev 0)
+++ trunk/server/src/resources/dtd/webservice-ref_5_0.dtd 2007-02-23 14:07:05 UTC (rev 60839)
@@ -0,0 +1,155 @@
+<?xml version='1.0' encoding='UTF-8'?>
+
+<!--
+ $Id: jboss-client_5_0.dtd 58121 2006-11-04 19:57:58Z thomas.diesler at jboss.com $
+-->
+
+<!--
+ WebServiceRef customization
+-->
+
+<!--
+ Runtime settings for a web service reference. In the simplest case,
+ there is no runtime information required for a service ref. Runtime info
+ is only needed in the following cases :
+
+ * to define the port that should be used to resolve a container-managed port
+ * to define default Stub property settings for Stub objects
+ * to define the URL of a final WSDL document to be used
+
+ Example:
+
+ <webservice-ref>
+ <service-ref-name>OrganizationService</service-ref-name>
+ <wsdl-override>file:/wsdlRepository/organization-service.wsdl</wsdl-override>
+ </webservice-ref>
+
+ <webservice-ref>
+ <service-ref-name>OrganizationService</service-ref-name>
+ <config-name>Secure Client Config</config-name>
+ <config-file>META-INF/jbossws-client-config.xml</config-file>
+ <handler-chain>META-INF/jbossws-client-handlers.xml</handler-chain>
+ </webservice-ref>
+
+ <webservice-ref>
+ <service-ref-name>SecureService</service-ref-name>
+ <service-class-name>org.jboss.tests.ws.jaxws.webserviceref.SecureEndpointService</service-class-name>
+ <service-qname>{http://org.jboss.ws/wsref}SecureEndpointService</service-qname>
+ <port-info>
+ <service-endpoint-interface>org.jboss.tests.ws.jaxws.webserviceref.SecureEndpoint</service-endpoint-interface>
+ <port-qname>{http://org.jboss.ws/wsref}SecureEndpointPort</port-qname>
+ <stub-property>
+ <name>javax.xml.ws.security.auth.username</name>
+ <value>kermit</value>
+ </stub-property>
+ <stub-property>
+ <name>javax.xml.ws.security.auth.password</name>
+ <value>thefrog</value>
+ </stub-property>
+ </port-info>
+ </webservice-ref>
+-->
+<!ELEMENT webservice-ref (service-ref-name, service-class-name?, service-qname?, config-name?, config-file?, handler-chain?, port-info*, wsdl-override?)>
+
+<!--
+ The service-ref-name element gives the ENC relative name.
+ Overrides @WebServiceRef.name
+-->
+<!ELEMENT service-ref-name (#PCDATA)>
+
+<!--
+ Name of the class that implements javax.xml.ws.Service.
+ Overrides @WebServiceRef.value
+-->
+<!ELEMENT service-class-name (#PCDATA)>
+
+<!--
+ The service-qname element declares the specific WSDL service element.
+ Specify the qualified service name in the form defined by QName.valueOf()
+
+ Example:
+ <service-qname>{http://somensURI}SomeService</service-qname>
+-->
+<!ELEMENT service-qname (#PCDATA)>
+
+<!--
+ The optional handler-chain element is a URL or resource name to a handler chain configuration.
+ See: @HandlerChain.file
+-->
+<!ELEMENT handler-chain (#PCDATA)>
+
+<!--
+ Information for a port within a service-reference.
+
+ Either service-endpoint-interface or wsdl-port or both
+ (service-endpoint-interface and wsdl-port) should be specified.
+
+ If both are specified, wsdl-port represents the
+ port the container should choose for container-managed port selection.
+
+ The same wsdl-port value must not appear in
+ more than one port-info entry within the same service-ref.
+
+ If a particular service-endpoint-interface is using container-managed port
+ selection, it must not appear in more than one port-info entry
+ within the same service-ref.
+-->
+<!ELEMENT port-info (service-endpoint-interface?, port-qname?, config-name?, config-file?, stub-property*)>
+
+<!--
+ Fully qualified name of service endpoint interface
+-->
+<!ELEMENT service-endpoint-interface (#PCDATA)>
+
+<!--
+ Port used in port-info.
+ Specify the qualified port name in the form defined by QName.valueOf()
+
+ Example:
+ <port-qname>{http://somensURI}SomeService</port-qname>
+-->
+<!ELEMENT port-qname (#PCDATA)>
+
+<!--
+ The optional config-name element gives the client configuration name that must be present in
+ the configuration given by element config-file. Ports that match this port info will be
+ configured with this config name.
+
+ The default is: Standard Client
+-->
+<!ELEMENT config-name (#PCDATA)>
+
+<!--
+ The optional config-file element is a URL or resource name for the client configuration.
+ Ports that match this port info will be configured with this config file.
+
+ The default is: META-INF/standard-jbossws-client-config.xml
+-->
+<!ELEMENT config-file (#PCDATA)>
+
+<!--
+ Property values that should be set on a stub before it's returned to
+ to the web service client. The property names can be any properties supported
+ by the StubExt or Stub implementation.
+
+ See javadoc for org.jboss.ws.core.StubExt, javax.xml.rpc.Stub
+-->
+<!ELEMENT stub-property (name, value)>
+
+<!--
+ This text nodes holds a name string.
+-->
+<!ELEMENT name (#PCDATA)>
+
+<!--
+ This text nodes holds a value string.
+-->
+<!ELEMENT value (#PCDATA)>
+
+<!--
+ The wsdl-override element the actual wsdl docuement the web service client
+ uses to connect to the remote service.
+
+ Overrides @WebServiceRef.wsdlLocation
+-->
+<!ELEMENT wsdl-override (#PCDATA)>
Modified: trunk/tomcat/src/main/org/jboss/web/metamodel/descriptor/JBossWebDDObjectFactory.java
===================================================================
--- trunk/tomcat/src/main/org/jboss/web/metamodel/descriptor/JBossWebDDObjectFactory.java 2007-02-23 13:21:39 UTC (rev 60838)
+++ trunk/tomcat/src/main/org/jboss/web/metamodel/descriptor/JBossWebDDObjectFactory.java 2007-02-23 14:07:05 UTC (rev 60839)
@@ -30,7 +30,7 @@
import org.jboss.metamodel.descriptor.MessageDestinationRef;
import org.jboss.metamodel.descriptor.ResourceEnvRef;
import org.jboss.metamodel.descriptor.ResourceRef;
-import org.jboss.metamodel.descriptor.ServiceRef;
+import org.jboss.metamodel.descriptor.WebServiceRefMetaData;
import org.jboss.util.xml.JBossEntityResolver;
import org.jboss.xb.binding.JBossXBException;
import org.jboss.xb.binding.ObjectModelFactory;
@@ -174,7 +174,7 @@
parent.updateMessageDestinationRef(ref);
}
- public void addChild(WebDD parent, ServiceRef ref, UnmarshallingContext navigator, String namespaceURI, String localName)
+ public void addChild(WebDD parent, WebServiceRefMetaData ref, UnmarshallingContext navigator, String namespaceURI, String localName)
{
parent.addServiceRef(ref);
}
Modified: trunk/tomcat/src/main/org/jboss/web/tomcat/tc6/deployers/TomcatDeployment.java
===================================================================
--- trunk/tomcat/src/main/org/jboss/web/tomcat/tc6/deployers/TomcatDeployment.java 2007-02-23 13:21:39 UTC (rev 60838)
+++ trunk/tomcat/src/main/org/jboss/web/tomcat/tc6/deployers/TomcatDeployment.java 2007-02-23 14:07:05 UTC (rev 60839)
@@ -34,7 +34,6 @@
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
-import java.util.List;
import java.util.Set;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
@@ -60,13 +59,15 @@
import org.jboss.web.deployers.AbstractWarDeployment;
import org.jboss.web.tomcat.security.JaccContextValve;
import org.jboss.web.tomcat.security.RunAsListener;
-import org.jboss.web.tomcat.security.SecurityAssociationValve;
+import org.jboss.web.tomcat.security.SecurityAssociationValve;
import org.jboss.web.tomcat.tc6.TomcatInjectionContainer;
import org.jboss.web.tomcat.tc6.WebAppLoader;
import org.jboss.web.tomcat.tc6.WebCtxLoader;
import org.jboss.web.tomcat.tc6.session.AbstractJBossManager;
import org.jboss.web.tomcat.tc6.session.ClusteringNotSupportedException;
import org.jboss.web.tomcat.tc6.session.JBossCacheManager;
+import org.jboss.webservice.ServiceRefHandler;
+import org.jboss.webservice.ServiceRefHandlerFactory;
import org.omg.CORBA.ORB;
/**
@@ -139,7 +140,7 @@
protected void performDeployInternal(String hostName,
WebApplication webApp, String warUrl) throws Exception
{
-
+ DeploymentUnit unit = webApp.getDeploymentUnit();
WebMetaData metaData = webApp.getMetaData();
String ctxPath = metaData.getContextRoot();
if (ctxPath.equals("/") || ctxPath.equals("/ROOT") || ctxPath.equals(""))
@@ -319,7 +320,9 @@
// Build the ENC
if (injectionContainer == null)
+ {
super.processEnc(webLoader.getClassLoader(), webApp);
+ }
else
{
Thread currentThread = Thread.currentThread();
@@ -363,6 +366,15 @@
envCtx = envCtx.createSubcontext("env");
injectionContainer.populateEnc(webLoader.getClassLoader());
+
+ // TODO: should this be handled differently?
+ // JAX-RPC service refs are not injectable objects
+ Iterator serviceRefs = metaData.getServiceRefs();
+ log.debug("linkServiceRefs");
+ ServiceRefHandler refHandler = ServiceRefHandlerFactory.newInstance();
+ if (refHandler != null && serviceRefs.hasNext())
+ refHandler.bindServiceRefs(envCtx, serviceRefs, unit);
+
// TODO: this should be bindings in the metadata
currentThread.setContextClassLoader(webLoader.getClassLoader());
String securityDomain = metaData.getSecurityDomain();
More information about the jboss-cvs-commits
mailing list