Author: richard.opalka(a)jboss.com
Date: 2010-10-26 10:58:08 -0400 (Tue, 26 Oct 2010)
New Revision: 13191
Modified:
common/trunk/src/main/java/org/jboss/wsf/common/serviceref/AbstractServiceRefBinderJAXWS.java
common/trunk/src/main/java/org/jboss/wsf/common/serviceref/AbstractServiceReferenceableJAXWS.java
common/trunk/src/main/java/org/jboss/wsf/common/serviceref/ServiceRefSerializer.java
Log:
refactoring
Modified:
common/trunk/src/main/java/org/jboss/wsf/common/serviceref/AbstractServiceRefBinderJAXWS.java
===================================================================
---
common/trunk/src/main/java/org/jboss/wsf/common/serviceref/AbstractServiceRefBinderJAXWS.java 2010-10-26
12:48:45 UTC (rev 13190)
+++
common/trunk/src/main/java/org/jboss/wsf/common/serviceref/AbstractServiceRefBinderJAXWS.java 2010-10-26
14:58:08 UTC (rev 13191)
@@ -58,17 +58,16 @@
this.processRespectBindingAnnotation(serviceRef);
this.processHandlerChainAnnotation(serviceRef);
- final WebServiceRef serviceRefAnnotation =
this.getWebServiceRefAnnotation(serviceRef);
- final Class<?> targetClass = getTargetClass(serviceRef,
serviceRefAnnotation);
+ final Class<?> targetClass = getTargetClass(serviceRef);
final String targetClassName = (targetClass != null ? targetClass.getName() :
null);
- final String serviceImplClassName = getServiceImplClassName(serviceRef,
serviceRefAnnotation, targetClass);
+ final String serviceImplClassName = getServiceImplClassName(serviceRef);
- this.processWsdlOverride(serviceRef, serviceRefAnnotation, loader,
serviceImplClassName);
-
// TODO: refactor these two lines of code higher
+ serviceRef.setServiceInterface(targetClassName);
serviceRef.setServiceImplClass(serviceImplClassName);
- serviceRef.setServiceInterface(targetClassName);
-
+
+ this.processWsdlOverride(serviceRef, loader);
+
return this.createJAXWSReferenceable(serviceRef);
}
@@ -153,10 +152,10 @@
return annotatedElement != null ? (T)
annotatedElement.getAnnotation(annotationClass) : null;
}
- private void processWsdlOverride(final UnifiedServiceRefMetaData serviceRefMD,
- final WebServiceRef serviceRefAnnotation, final ClassLoader loader, final String
serviceImplClassName)
+ private void processWsdlOverride(final UnifiedServiceRefMetaData serviceRefMD, final
ClassLoader loader)
{
// Set the wsdlLocation if there is no override already
+ final WebServiceRef serviceRefAnnotation =
this.getWebServiceRefAnnotation(serviceRefMD);
if (serviceRefMD.getWsdlOverride() == null && serviceRefAnnotation != null
&& serviceRefAnnotation.wsdlLocation().length() > 0)
serviceRefMD.setWsdlOverride(serviceRefAnnotation.wsdlLocation());
@@ -166,7 +165,7 @@
{
try
{
- Class<?> serviceClass = loader.loadClass(serviceImplClassName);
+ Class<?> serviceClass =
loader.loadClass(serviceRefMD.getServiceImplClass());
if (serviceClass.getAnnotation(WebServiceClient.class) != null)
{
WebServiceClient clientDecl = (WebServiceClient)
serviceClass.getAnnotation(WebServiceClient.class);
@@ -198,7 +197,7 @@
return declaringClass;
}
- private Class<?> getTargetClass(final UnifiedServiceRefMetaData serviceRefMD,
WebServiceRef serviceRefAnnotation)
+ private Class<?> getTargetClass(final UnifiedServiceRefMetaData serviceRefMD)
{
final AnnotatedElement annotatedElement = (AnnotatedElement)
serviceRefMD.getAnnotatedElement();
@@ -214,6 +213,7 @@
}
else
{
+ final WebServiceRef serviceRefAnnotation =
this.getWebServiceRefAnnotation(serviceRefMD);
if (serviceRefAnnotation != null && (serviceRefAnnotation.type() !=
Object.class))
targetClass = serviceRefAnnotation.type();
}
@@ -221,6 +221,31 @@
return targetClass;
}
+ private String getServiceImplClassName(final UnifiedServiceRefMetaData serviceRefMD)
+ {
+ String serviceImplClass = null;
+
+ // #1 Use the explicit @WebServiceRef.value
+ final WebServiceRef serviceRefAnnotation =
this.getWebServiceRefAnnotation(serviceRefMD);
+ if (serviceRefAnnotation != null && serviceRefAnnotation.value() !=
Service.class)
+ serviceImplClass = serviceRefAnnotation.value().getName();
+
+ // #2 Use the target ref type
+ final Class<?> targetClass = getTargetClass(serviceRefMD);
+ if (serviceImplClass == null && targetClass != null &&
Service.class.isAssignableFrom(targetClass))
+ serviceImplClass = targetClass.getName();
+
+ // #3 Use <service-interface>
+ if (serviceImplClass == null && serviceRefMD.getServiceInterface() !=
null)
+ serviceImplClass = serviceRefMD.getServiceInterface();
+
+ // #4 Use javax.xml.ws.Service
+ if (serviceImplClass == null)
+ serviceImplClass = Service.class.getName();
+
+ return serviceImplClass;
+ }
+
private WebServiceRef getWebServiceRefAnnotation(final UnifiedServiceRefMetaData
serviceRefMD)
{
final WebServiceRef webServiceRefAnnotation = this.getAnnotation(serviceRefMD,
WebServiceRef.class);
@@ -267,28 +292,4 @@
return returnValue;
}
-
- private String getServiceImplClassName(final UnifiedServiceRefMetaData serviceRefMD,
- final WebServiceRef serviceRefAnnotation, final Class<?> targetClass)
- {
- String serviceImplClass = null;
-
- // #1 Use the explicit @WebServiceRef.value
- if (serviceRefAnnotation != null && serviceRefAnnotation.value() !=
Service.class)
- serviceImplClass = serviceRefAnnotation.value().getName();
-
- // #2 Use the target ref type
- if (serviceImplClass == null && targetClass != null &&
Service.class.isAssignableFrom(targetClass))
- serviceImplClass = targetClass.getName();
-
- // #3 Use <service-interface>
- if (serviceImplClass == null && serviceRefMD.getServiceInterface() !=
null)
- serviceImplClass = serviceRefMD.getServiceInterface();
-
- // #4 Use javax.xml.ws.Service
- if (serviceImplClass == null)
- serviceImplClass = Service.class.getName();
-
- return serviceImplClass;
- }
}
Modified:
common/trunk/src/main/java/org/jboss/wsf/common/serviceref/AbstractServiceReferenceableJAXWS.java
===================================================================
---
common/trunk/src/main/java/org/jboss/wsf/common/serviceref/AbstractServiceReferenceableJAXWS.java 2010-10-26
12:48:45 UTC (rev 13190)
+++
common/trunk/src/main/java/org/jboss/wsf/common/serviceref/AbstractServiceReferenceableJAXWS.java 2010-10-26
14:58:08 UTC (rev 13191)
@@ -43,7 +43,7 @@
{
private final UnifiedServiceRefMetaData serviceRef;
- public AbstractServiceReferenceableJAXWS(final UnifiedServiceRefMetaData serviceRef)
+ protected AbstractServiceReferenceableJAXWS(final UnifiedServiceRefMetaData
serviceRef)
{
this.serviceRef = serviceRef;
}
Modified:
common/trunk/src/main/java/org/jboss/wsf/common/serviceref/ServiceRefSerializer.java
===================================================================
---
common/trunk/src/main/java/org/jboss/wsf/common/serviceref/ServiceRefSerializer.java 2010-10-26
12:48:45 UTC (rev 13190)
+++
common/trunk/src/main/java/org/jboss/wsf/common/serviceref/ServiceRefSerializer.java 2010-10-26
14:58:08 UTC (rev 13191)
@@ -38,14 +38,14 @@
*/
final class ServiceRefSerializer
{
- public static final String SERVICE_REF_META_DATA = "SERVICE_REF_META_DATA";
+ static final String SERVICE_REF_META_DATA = "SERVICE_REF_META_DATA";
private ServiceRefSerializer()
{
// forbidden constructor
}
- public static byte[] marshall(final UnifiedServiceRefMetaData obj) throws
NamingException
+ static byte[] marshall(final UnifiedServiceRefMetaData obj) throws NamingException
{
final ByteArrayOutputStream baos = new ByteArrayOutputStream(512);
@@ -63,7 +63,7 @@
return baos.toByteArray();
}
- public static UnifiedServiceRefMetaData unmarshall(final byte[] data) throws
NamingException
+ static UnifiedServiceRefMetaData unmarshall(final byte[] data) throws NamingException
{
final UnifiedServiceRefMetaData sref;
Show replies by date