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 2008/09/03 05:23:09 UTC
svn commit: r691491 - in /cxf/branches/2.1.x-fixes: ./
rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBDataBinding.java
Author: dkulp
Date: Tue Sep 2 20:23:08 2008
New Revision: 691491
URL: http://svn.apache.org/viewvc?rev=691491&view=rev
Log:
Merged revisions 691488 via svnmerge from
https://svn.apache.org/repos/asf/cxf/trunk
........
r691488 | dkulp | 2008-09-02 23:20:37 -0400 (Tue, 02 Sep 2008) | 2 lines
[CXF-1624] Check the ObjectFactory to see if the defaultNs can be set or not.
........
Modified:
cxf/branches/2.1.x-fixes/ (props changed)
cxf/branches/2.1.x-fixes/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBDataBinding.java
Propchange: cxf/branches/2.1.x-fixes/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Sep 2 20:23:08 2008
@@ -1 +1 @@
-/cxf/trunk:686333-686363,686764,686820,687096,687194,687363,687387,687463,687543,687722,687798,687814,687817,687891,687910,687914,688086,688102,688133,688596,688735,688870,689572,689596,689855,689924,690067,690289,691246,691271,691295,691355
+/cxf/trunk:686333-686363,686764,686820,687096,687194,687363,687387,687463,687543,687722,687798,687814,687817,687891,687910,687914,688086,688102,688133,688596,688735,688870,689572,689596,689855,689924,690067,690289,691246,691271,691295,691355,691488
Propchange: cxf/branches/2.1.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified: cxf/branches/2.1.x-fixes/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBDataBinding.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBDataBinding.java?rev=691491&r1=691490&r2=691491&view=diff
==============================================================================
--- cxf/branches/2.1.x-fixes/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBDataBinding.java (original)
+++ cxf/branches/2.1.x-fixes/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBDataBinding.java Tue Sep 2 20:23:08 2008
@@ -25,6 +25,7 @@
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.lang.ref.WeakReference;
+import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
@@ -44,6 +45,7 @@
import javax.xml.bind.Marshaller;
import javax.xml.bind.SchemaOutputResolver;
import javax.xml.bind.Unmarshaller;
+import javax.xml.bind.annotation.XmlElementDecl;
import javax.xml.stream.XMLEventReader;
import javax.xml.stream.XMLEventWriter;
import javax.xml.stream.XMLStreamReader;
@@ -501,7 +503,8 @@
addWsAddressingTypes(classes);
for (Class<?> clz : classes) {
- if (clz.getName().endsWith("ObjectFactory")) {
+ if (clz.getName().endsWith("ObjectFactory")
+ && checkObjectFactoryNamespaces(clz)) {
// kind of a hack, but ObjectFactories may be created with empty
// namespaces
defaultNs = null;
@@ -533,6 +536,19 @@
return cachedContextAndSchemas;
}
+ private boolean checkObjectFactoryNamespaces(Class<?> clz) {
+ for (Method meth : clz.getMethods()) {
+ XmlElementDecl decl = meth.getAnnotation(XmlElementDecl.class);
+ if (decl != null
+ && XmlElementDecl.GLOBAL.class.equals(decl.scope())
+ && StringUtils.isEmpty(decl.namespace())) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
private void addToObjectFactoryCache(Package objectFactoryPkg, Class<?> ofactory) {
if (objectFactoryPkg == null) {
return;