You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2007/06/18 20:28:25 UTC
svn commit: r548435 -
/incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBDataBinding.java
Author: dkulp
Date: Mon Jun 18 11:28:25 2007
New Revision: 548435
URL: http://svn.apache.org/viewvc?view=rev&rev=548435
Log:
[CXF-597] Only add the addressing types to the JAXB context if something uses our WS-Addressing types.
Modified:
incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBDataBinding.java
Modified: incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBDataBinding.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBDataBinding.java?view=diff&rev=548435&r1=548434&r2=548435
==============================================================================
--- incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBDataBinding.java (original)
+++ incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBDataBinding.java Mon Jun 18 11:28:25 2007
@@ -71,6 +71,8 @@
import org.apache.cxf.service.factory.ServiceConstructionException;
import org.apache.cxf.service.model.SchemaInfo;
import org.apache.cxf.service.model.ServiceInfo;
+import org.apache.cxf.ws.addressing.EndpointReferenceType;
+import org.apache.cxf.ws.addressing.ObjectFactory;
import org.apache.cxf.wsdl11.WSDLServiceBuilder;
import org.apache.ws.commons.schema.XmlSchema;
import org.apache.ws.commons.schema.XmlSchemaCollection;
@@ -374,32 +376,32 @@
classes.remove(remoteExceptionObject);
}
}
-
+ // add user extra class into jaxb context
+ if (extraClass != null && extraClass.length > 0) {
+ for (Class clz : extraClass) {
+ classes.add(clz);
+ }
+ }
+
for (Class<?> clz : classes) {
if (clz.getName().endsWith("ObjectFactory")) {
//kind of a hack, but ObjectFactories may be created with empty namespaces
defaultNs = null;
}
}
-
- try {
- classes.add(Class.forName("org.apache.cxf.ws.addressing.wsdl.AttributedQNameType"));
- classes.add(Class.forName("org.apache.cxf.ws.addressing.wsdl.ObjectFactory"));
- classes.add(Class.forName("org.apache.cxf.ws.addressing.wsdl.ServiceNameType"));
- } catch (ClassNotFoundException e) {
- // REVISIT - ignorable if WS-ADDRESSING not available?
- // maybe add a way to allow interceptors to add stuff to the
- // context?
- }
- try {
- // add user extra class into jaxb context
- if (extraClass != null && extraClass.length > 0) {
- for (Class clz : extraClass) {
- classes.add(clz);
- }
+
+ if (classes.contains(EndpointReferenceType.class)
+ || classes.contains(ObjectFactory.class)) {
+ //ws-addressing is used, lets add the specific types
+ try {
+ classes.add(Class.forName("org.apache.cxf.ws.addressing.wsdl.AttributedQNameType"));
+ classes.add(Class.forName("org.apache.cxf.ws.addressing.wsdl.ObjectFactory"));
+ classes.add(Class.forName("org.apache.cxf.ws.addressing.wsdl.ServiceNameType"));
+ } catch (ClassNotFoundException e) {
+ // REVISIT - ignorable if WS-ADDRESSING not available?
+ // maybe add a way to allow interceptors to add stuff to the
+ // context?
}
- } catch (Exception e) {
- //
}
Map<String, Object> map = new HashMap<String, Object>();