You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2007/04/18 06:50:50 UTC
svn commit: r529864 -
/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
Author: dblevins
Date: Tue Apr 17 21:50:49 2007
New Revision: 529864
URL: http://svn.apache.org/viewvc?view=rev&rev=529864
Log:
Patch from Jarek Gawor OPENEJB-562: WebServiceRef annotation processing does not check for existing service-ref elements in DD
Thanks Jarek!
Modified:
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java?view=diff&rev=529864&r1=529863&r2=529864
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java Tue Apr 17 21:50:49 2007
@@ -1066,14 +1066,26 @@
private void buildWebServiceRef(JndiConsumer consumer, WebServiceRef webService, Member member) {
- ServiceRef serviceRef = new ServiceRef();
+ ServiceRef serviceRef = null;
String refName = webService.name();
if (refName.equals("")) {
refName = (member == null) ? null : member.getDeclaringClass().getName() + "/" + member.getName();
}
- serviceRef.setServiceRefName(refName);
+
+ List<ServiceRef> serviceRefEntries = consumer.getServiceRef();
+ for (ServiceRef serviceRefEntry : serviceRefEntries) {
+ if (serviceRefEntry.getName().equals(refName)) {
+ serviceRef = serviceRefEntry;
+ break;
+ }
+ }
+ if (serviceRef == null) {
+ serviceRef = new ServiceRef();
+ serviceRef.setServiceRefName(refName);
+ serviceRefEntries.add(serviceRef);
+ }
if (member != null) {
// Set the member name where this will be injected
@@ -1083,31 +1095,35 @@
serviceRef.getInjectionTarget().add(target);
}
- Class<?> interfce = webService.type();
- if (interfce.equals(Object.class)) {
- if (member != null) {
- interfce = member.getType();
- } else {
- interfce = webService.value();
+ // Set service interface
+ if (serviceRef.getServiceInterface() == null) {
+ Class<?> interfce = webService.type();
+ if (interfce.equals(Object.class)) {
+ if (member != null) {
+ interfce = member.getType();
+ } else {
+ interfce = webService.value();
+ }
}
+ serviceRef.setServiceInterface(interfce.getName());
}
- serviceRef.setServiceInterface(interfce.getName());
- // Set the mappedName, if any
- String mappedName = webService.mappedName();
- if (mappedName.equals("")) {
- mappedName = null;
+ // Set the mappedName
+ if (serviceRef.getMappedName() == null) {
+ String mappedName = webService.mappedName();
+ if (mappedName.equals("")) {
+ mappedName = null;
+ }
+ serviceRef.setMappedName(mappedName);
}
- serviceRef.setMappedName(mappedName);
-
-
- String wsdlLocation = webService.wsdlLocation();
- if (!wsdlLocation.equals("")) {
- serviceRef.setWsdlFile(wsdlLocation);
+
+ // Set wsdl file
+ if (serviceRef.getWsdlFile() == null) {
+ String wsdlLocation = webService.wsdlLocation();
+ if (!wsdlLocation.equals("")) {
+ serviceRef.setWsdlFile(wsdlLocation);
+ }
}
-
- consumer.getServiceRef().add(serviceRef);
-
}
/**