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 2013/07/13 23:30:03 UTC
svn commit: r1502893 - in /cxf/trunk: api/
api/src/main/java/org/apache/cxf/common/jaxb/ parent/
rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/
rt/databinding/jaxb/src/test/java/org/apache/cxf/jaxb/
rt/frontend/jaxrs/src/main/java/org/apache/cx...
Author: dkulp
Date: Sat Jul 13 21:30:02 2013
New Revision: 1502893
URL: http://svn.apache.org/r1502893
Log:
Initial support for using eclipselink Moxy instead of the JAXB ri. Many tests will still fail with it, but most of the simpler things are now working.
Modified:
cxf/trunk/api/pom.xml
cxf/trunk/api/src/main/java/org/apache/cxf/common/jaxb/JAXBUtils.java
cxf/trunk/parent/pom.xml
cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBDataBinding.java
cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBEncoderDecoder.java
cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBSchemaInitializer.java
cxf/trunk/rt/databinding/jaxb/src/test/java/org/apache/cxf/jaxb/JAXBDataBindingTest.java
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/wadl/WadlGenerator.java
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/AbstractJAXBProvider.java
Modified: cxf/trunk/api/pom.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/api/pom.xml?rev=1502893&r1=1502892&r2=1502893&view=diff
==============================================================================
--- cxf/trunk/api/pom.xml (original)
+++ cxf/trunk/api/pom.xml Sat Jul 13 21:30:02 2013
@@ -87,6 +87,13 @@
<scope>provided</scope>
</dependency>
<dependency>
+ <groupId>org.eclipse.persistence</groupId>
+ <artifactId>org.eclipse.persistence.moxy</artifactId>
+ <version>2.5.0</version>
+ <scope>provided</scope>
+ <optional>true</optional>
+ </dependency>
+ <dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
Modified: cxf/trunk/api/src/main/java/org/apache/cxf/common/jaxb/JAXBUtils.java
URL: http://svn.apache.org/viewvc/cxf/trunk/api/src/main/java/org/apache/cxf/common/jaxb/JAXBUtils.java?rev=1502893&r1=1502892&r2=1502893&view=diff
==============================================================================
--- cxf/trunk/api/src/main/java/org/apache/cxf/common/jaxb/JAXBUtils.java (original)
+++ cxf/trunk/api/src/main/java/org/apache/cxf/common/jaxb/JAXBUtils.java Sat Jul 13 21:30:02 2013
@@ -37,6 +37,8 @@ import java.net.URISyntaxException;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
@@ -68,7 +70,6 @@ import org.w3c.dom.Node;
import org.xml.sax.EntityResolver;
import org.xml.sax.InputSource;
-import org.apache.cxf.common.logging.LogUtils;
import org.apache.cxf.common.util.ASMHelper;
import org.apache.cxf.common.util.ASMHelper.ClassWriter;
import org.apache.cxf.common.util.ASMHelper.FieldVisitor;
@@ -114,7 +115,6 @@ public final class JAXBUtils {
private static final Map<String, String> BUILTIN_DATATYPES_MAP;
private static final Map<String, Class<?>> HOLDER_TYPES_MAP;
- private static final Logger LOG = LogUtils.getL7dLogger(JAXBUtils.class);
private static ClassLoader jaxbXjcLoader;
static {
@@ -577,28 +577,20 @@ public final class JAXBUtils {
throw new JAXBException(e);
}
}
- public static void setNamespaceWrapper(final Map<String, String> nspref,
+ public static Object setNamespaceWrapper(final Map<String, String> nspref,
Marshaller marshaller) throws PropertyException {
- Object mapper = null;
+ Object mapper = createNamespaceWrapper(marshaller.getClass(), nspref);
if (marshaller.getClass().getName().contains(".internal.")) {
- mapper = createNamespaceWrapper(nspref);
- if (mapper == null) {
- LOG.log(Level.INFO, "Could not create namespace mapper for JDK internal"
- + " JAXB implementation.");
- } else {
- marshaller.setProperty("com.sun.xml.internal.bind.namespacePrefixMapper",
+ marshaller.setProperty("com.sun.xml.internal.bind.namespacePrefixMapper",
mapper);
- }
- } else {
- try {
- Class<?> cls = Class.forName("org.apache.cxf.common.jaxb.NamespaceMapper");
- mapper = cls.getConstructor(Map.class).newInstance(nspref);
- } catch (Exception ex) {
- LOG.log(Level.INFO, "Could not create NamespaceMapper", ex);
- }
+ } else if (marshaller.getClass().getName().contains("com.sun")) {
marshaller.setProperty("com.sun.xml.bind.namespacePrefixMapper",
mapper);
+ } else if (marshaller.getClass().getName().contains("eclipse")) {
+ marshaller.setProperty("eclipselink.namespace-prefix-mapper",
+ mapper);
}
+ return mapper;
}
public static BridgeWrapper createBridge(Set<Class<?>> ctxClasses,
QName qname,
@@ -1027,16 +1019,26 @@ public final class JAXBUtils {
return false;
}
- private static synchronized Object createNamespaceWrapper(Map<String, String> map) {
+ private static synchronized Object createNamespaceWrapper(Class<?> mcls, Map<String, String> map) {
ASMHelper helper = new ASMHelper();
- String className = "org.apache.cxf.jaxb.NamespaceMapperInternal";
+ String className = "org.apache.cxf.jaxb.NamespaceMapper";
+ String postFix = "";
+ if (mcls.getName().contains("eclipse")) {
+ //can use the map directly
+ return map;
+ } else if (mcls.getName().contains(".internal")) {
+ postFix = "Internal";
+ } else if (mcls.getName().contains("com.sun")) {
+ postFix = "RI";
+ }
+ className += postFix;
Class<?> cls = helper.findClass(className, JAXBUtils.class);
if (cls == null) {
ClassWriter cw = helper.createClassWriter();
if (cw == null) {
return null;
}
- cls = createNamespaceWrapperInternal(helper, cw);
+ cls = createNamespaceWrapperInternal(helper, cw, postFix, mcls);
}
try {
return cls.getConstructor(Map.class).newInstance(map);
@@ -1044,14 +1046,18 @@ public final class JAXBUtils {
return null;
}
}
- private static Class<?> createNamespaceWrapperInternal(ASMHelper helper, ClassWriter cw) {
- String className = "org.apache.cxf.jaxb.NamespaceMapperInternal";
+ private static Class<?> createNamespaceWrapperInternal(ASMHelper helper, ClassWriter cw,
+ String postFix, Class<?> ref) {
+ String className = "org.apache.cxf.jaxb.NamespaceMapper" + postFix;
+ String superName = "com/sun/xml/"
+ + ("RI".equals(postFix) ? "" : "internal/")
+ + "bind/marshaller/NamespacePrefixMapper";
FieldVisitor fv;
MethodVisitor mv;
cw.visit(Opcodes.V1_5,
Opcodes.ACC_PUBLIC + Opcodes.ACC_FINAL + Opcodes.ACC_SUPER,
- "org/apache/cxf/jaxb/NamespaceMapperInternal", null,
- "com/sun/xml/internal/bind/marshaller/NamespacePrefixMapper", null);
+ "org/apache/cxf/jaxb/NamespaceMapper" + postFix, null,
+ superName, null);
cw.visitSource("NamespaceMapper.java", null);
@@ -1069,13 +1075,13 @@ public final class JAXBUtils {
mv.visitLineNumber(30, l0);
mv.visitVarInsn(Opcodes.ALOAD, 0);
mv.visitMethodInsn(Opcodes.INVOKESPECIAL,
- "com/sun/xml/internal/bind/marshaller/NamespacePrefixMapper", "<init>", "()V");
+ superName, "<init>", "()V");
Label l1 = helper.createLabel();
mv.visitLabel(l1);
mv.visitLineNumber(31, l1);
mv.visitVarInsn(Opcodes.ALOAD, 0);
mv.visitVarInsn(Opcodes.ALOAD, 1);
- mv.visitFieldInsn(Opcodes.PUTFIELD, "org/apache/cxf/jaxb/NamespaceMapperInternal",
+ mv.visitFieldInsn(Opcodes.PUTFIELD, "org/apache/cxf/jaxb/NamespaceMapper" + postFix,
"nspref", "Ljava/util/Map;");
Label l2 = helper.createLabel();
mv.visitLabel(l2);
@@ -1083,7 +1089,7 @@ public final class JAXBUtils {
mv.visitInsn(Opcodes.RETURN);
Label l3 = helper.createLabel();
mv.visitLabel(l3);
- mv.visitLocalVariable("this", "Lorg/apache/cxf/jaxb/NamespaceMapperInternal;", null, l0, l3, 0);
+ mv.visitLocalVariable("this", "Lorg/apache/cxf/jaxb/NamespaceMapper" + postFix + ";", null, l0, l3, 0);
mv.visitLocalVariable("nspref", "Ljava/util/Map;",
"Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;",
l0, l3, 1);
@@ -1099,7 +1105,7 @@ public final class JAXBUtils {
mv.visitLineNumber(38, l0);
mv.visitVarInsn(Opcodes.ALOAD, 0);
mv.visitFieldInsn(Opcodes.GETFIELD,
- "org/apache/cxf/jaxb/NamespaceMapperInternal",
+ "org/apache/cxf/jaxb/NamespaceMapper" + postFix,
"nspref", "Ljava/util/Map;");
mv.visitVarInsn(Opcodes.ALOAD, 1);
mv.visitMethodInsn(Opcodes.INVOKEINTERFACE, "java/util/Map",
@@ -1123,7 +1129,7 @@ public final class JAXBUtils {
mv.visitInsn(Opcodes.ARETURN);
Label l4 = helper.createLabel();
mv.visitLabel(l4);
- mv.visitLocalVariable("this", "Lorg/apache/cxf/jaxb/NamespaceMapperInternal;", null, l0, l4, 0);
+ mv.visitLocalVariable("this", "Lorg/apache/cxf/jaxb/NamespaceMapper" + postFix + ";", null, l0, l4, 0);
mv.visitLocalVariable("namespaceUri", "Ljava/lang/String;", null, l0, l4, 1);
mv.visitLocalVariable("suggestion", "Ljava/lang/String;", null, l0, l4, 2);
mv.visitLocalVariable("requirePrefix", "Z", null, l0, l4, 3);
@@ -1133,29 +1139,61 @@ public final class JAXBUtils {
cw.visitEnd();
byte bts[] = cw.toByteArray();
-
-
- Class<?> cls;
- try {
- cls = Class.forName("com.sun.xml.bind.api.JAXBRIContext");
- } catch (ClassNotFoundException e) {
- // TODO Auto-generated catch block
- try {
- cls = Class.forName("com.sun.xml.internal.bind.api.JAXBRIContext", true, getXJCClassLoader());
- } catch (ClassNotFoundException e1) {
- cls = JAXBUtils.class;
- }
- }
-
return helper.loadClass(className,
- cls, bts);
+ ref, bts);
}
+ public static JAXBContextProxy createJAXBContextProxy(final JAXBContext ctx) {
+ if (ctx.getClass().getName().contains("eclipse")) {
+ final org.eclipse.persistence.jaxb.JAXBContext c = (org.eclipse.persistence.jaxb.JAXBContext)ctx;
+ return new JAXBContextProxy() {
+ public Object getBeanInfo(Class<?> cls) {
+ final org.eclipse.persistence.oxm.XMLDescriptor xd
+ = (org.eclipse.persistence.oxm.XMLDescriptor)c.getXMLContext().getSession().getDescriptor(cls);
+ final QName schemaType = xd.getSchemaReference().getSchemaContextAsQName();
+ if (xd.getDefaultRootElementField() != null) {
+ return new JAXBBeanInfo() {
+ public boolean isElement() {
+ return true;
+ }
+ public Collection<QName> getTypeNames() {
+ return Collections.singletonList(schemaType);
+ }
+ public String getElementNamespaceURI(Object object) {
+ return xd.getDefaultRootElementField().getXPathFragment().getNamespaceURI();
+ }
+ public String getElementLocalName(Object object) {
+ return xd.getDefaultRootElementField().getXPathFragment().getLocalName();
+ }
+ };
+ }
+ return new JAXBBeanInfo() {
+ public boolean isElement() {
+ return false;
+ }
+ public Collection<QName> getTypeNames() {
+ return Collections.singletonList(schemaType);
+ }
+ public String getElementNamespaceURI(Object object) {
+ return null;
+ }
+ public String getElementLocalName(Object object) {
+ return null;
+ }
+ };
+ }
+ };
+ }
+ return ReflectionInvokationHandler.createProxyWrapper(ctx, JAXBContextProxy.class);
+ }
public static JAXBBeanInfo getBeanInfo(JAXBContextProxy context, Class<?> cls) {
Object o = context.getBeanInfo(cls);
if (o == null) {
return null;
}
+ if (o instanceof JAXBBeanInfo) {
+ return (JAXBBeanInfo)o;
+ }
return ReflectionInvokationHandler.createProxyWrapper(o, JAXBBeanInfo.class);
}
Modified: cxf/trunk/parent/pom.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/parent/pom.xml?rev=1502893&r1=1502892&r2=1502893&view=diff
==============================================================================
--- cxf/trunk/parent/pom.xml (original)
+++ cxf/trunk/parent/pom.xml Sat Jul 13 21:30:02 2013
@@ -403,6 +403,7 @@
<spring.validation.mode>${cxf.spring.validation.mode}</spring.validation.mode>
<server.launcher.vmargs>${cxf.server.launcher.vmargs}</server.launcher.vmargs>
<org.apache.cxf.transport.http.async.usePolicy>ALWAYS</org.apache.cxf.transport.http.async.usePolicy>
+ <!--javax.xml.bind.JAXBContext>org.eclipse.persistence.jaxb.JAXBContextFactory</javax.xml.bind.JAXBContext-->
</systemPropertyVariables>
</configuration>
</plugin>
Modified: cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBDataBinding.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBDataBinding.java?rev=1502893&r1=1502892&r2=1502893&view=diff
==============================================================================
--- cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBDataBinding.java (original)
+++ cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBDataBinding.java Sat Jul 13 21:30:02 2013
@@ -71,7 +71,6 @@ import org.apache.cxf.common.logging.Log
import org.apache.cxf.common.util.ModCountCopyOnWriteArrayList;
import org.apache.cxf.common.util.PackageUtils;
import org.apache.cxf.common.util.PropertyUtils;
-import org.apache.cxf.common.util.ReflectionInvokationHandler;
import org.apache.cxf.common.util.ReflectionUtil;
import org.apache.cxf.common.xmlschema.SchemaCollection;
import org.apache.cxf.databinding.AbstractDataBinding;
@@ -428,16 +427,15 @@ public class JAXBDataBinding extends Abs
}
private void checkForJAXBAnnotations(MessagePartInfo mpi) {
Annotation[] anns = (Annotation[])mpi.getProperty("parameter.annotations");
- JAXBContextProxy ctx = ReflectionInvokationHandler.createProxyWrapper(context, JAXBContextProxy.class);
+ JAXBContextProxy ctx = JAXBUtils.createJAXBContextProxy(context);
XmlJavaTypeAdapter jta = JAXBSchemaInitializer.findFromTypeAdapter(ctx, mpi.getTypeClass(), anns);
- JAXBBeanInfo jtaBeanInfo = null;
if (jta != null) {
- jtaBeanInfo = JAXBSchemaInitializer.findFromTypeAdapter(ctx, jta.value());
- }
- JAXBBeanInfo beanInfo = JAXBSchemaInitializer.getBeanInfo(ctx, mpi.getTypeClass());
- if (jtaBeanInfo != beanInfo && jta != null) {
- mpi.setProperty("parameter.annotations", anns);
- mpi.setProperty("honor.jaxb.annotations", Boolean.TRUE);
+ JAXBBeanInfo jtaBeanInfo = JAXBSchemaInitializer.findFromTypeAdapter(ctx, jta.value());
+ JAXBBeanInfo beanInfo = JAXBSchemaInitializer.getBeanInfo(ctx, mpi.getTypeClass());
+ if (jtaBeanInfo != beanInfo) {
+ mpi.setProperty("parameter.annotations", anns);
+ mpi.setProperty("honor.jaxb.annotations", Boolean.TRUE);
+ }
}
}
Modified: cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBEncoderDecoder.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBEncoderDecoder.java?rev=1502893&r1=1502892&r2=1502893&view=diff
==============================================================================
--- cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBEncoderDecoder.java (original)
+++ cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBEncoderDecoder.java Sat Jul 13 21:30:02 2013
@@ -526,6 +526,9 @@ public final class JAXBEncoderDecoder {
}
}
}
+ if (reader.getEventType() == XMLStreamReader.END_ELEMENT && q.equals(reader.getName())) {
+ reader.next();
+ }
}
return (Exception)obj;
} catch (Exception e) {
Modified: cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBSchemaInitializer.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBSchemaInitializer.java?rev=1502893&r1=1502892&r2=1502893&view=diff
==============================================================================
--- cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBSchemaInitializer.java (original)
+++ cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBSchemaInitializer.java Sat Jul 13 21:30:02 2013
@@ -50,7 +50,6 @@ import org.apache.cxf.common.jaxb.JAXBBe
import org.apache.cxf.common.jaxb.JAXBContextProxy;
import org.apache.cxf.common.jaxb.JAXBUtils;
import org.apache.cxf.common.logging.LogUtils;
-import org.apache.cxf.common.util.ReflectionInvokationHandler;
import org.apache.cxf.common.util.StringUtils;
import org.apache.cxf.common.xmlschema.SchemaCollection;
import org.apache.cxf.interceptor.Fault;
@@ -87,7 +86,7 @@ class JAXBSchemaInitializer extends Serv
boolean q) {
super(serviceInfo);
schemas = col;
- this.context = ReflectionInvokationHandler.createProxyWrapper(context, JAXBContextProxy.class);
+ this.context = JAXBUtils.createJAXBContextProxy(context);
this.qualifiedSchemas = q;
}
Modified: cxf/trunk/rt/databinding/jaxb/src/test/java/org/apache/cxf/jaxb/JAXBDataBindingTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/databinding/jaxb/src/test/java/org/apache/cxf/jaxb/JAXBDataBindingTest.java?rev=1502893&r1=1502892&r2=1502893&view=diff
==============================================================================
--- cxf/trunk/rt/databinding/jaxb/src/test/java/org/apache/cxf/jaxb/JAXBDataBindingTest.java (original)
+++ cxf/trunk/rt/databinding/jaxb/src/test/java/org/apache/cxf/jaxb/JAXBDataBindingTest.java Sat Jul 13 21:30:02 2013
@@ -48,8 +48,8 @@ import org.w3c.dom.Node;
import org.apache.cxf.Bus;
import org.apache.cxf.binding.BindingFactoryManager;
import org.apache.cxf.common.jaxb.JAXBContextProxy;
+import org.apache.cxf.common.jaxb.JAXBUtils;
import org.apache.cxf.common.logging.LogUtils;
-import org.apache.cxf.common.util.ReflectionInvokationHandler;
import org.apache.cxf.databinding.DataReader;
import org.apache.cxf.databinding.DataWriter;
import org.apache.cxf.helpers.CastUtils;
@@ -65,6 +65,7 @@ import org.apache.hello_world_soap_http.
import org.apache.hello_world_soap_http.types.GreetMeOneWay;
import org.easymock.EasyMock;
import org.easymock.IMocksControl;
+
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
@@ -184,13 +185,16 @@ public class JAXBDataBindingTest extends
Set<Class<?>> classes = new HashSet<Class<?>>();
classes.add(ObjectFactory.class);
JAXBContext ctx = db.createJAXBContext(classes);
- JAXBContextProxy ctxp = ReflectionInvokationHandler.createProxyWrapper(ctx, JAXBContextProxy.class);
+ JAXBContextProxy ctxp = JAXBUtils.createJAXBContextProxy(ctx);
assertNotNull(JAXBSchemaInitializer.getBeanInfo(ctxp, TestJAXBClass.class));
}
@Test
public void testContextProperties() throws Exception {
JAXBDataBinding db = new JAXBDataBinding();
+ Map<String, String> nsMap = new HashMap<String, String>();
+ nsMap.put("uri:ultima:thule", "");
+ db.setNamespaceMap(nsMap);
Map<String, Object> contextProperties = new HashMap<String, Object>();
contextProperties.put("com.sun.xml.bind.defaultNamespaceRemap", "uri:ultima:thule");
db.setContextProperties(contextProperties);
@@ -206,7 +210,7 @@ public class JAXBDataBindingTest extends
writer.write(bean, xmlWriter);
xmlWriter.flush();
String xml = stringWriter.toString();
- assertTrue(xml.contains("uri:ultima:thule"));
+ assertTrue(xml, xml.contains("uri:ultima:thule"));
}
@Test
@@ -216,7 +220,7 @@ public class JAXBDataBindingTest extends
nsMap.put("uri:ultima:thule", "greenland");
db.setNamespaceMap(nsMap);
Map<String, Object> contextProperties = new HashMap<String, Object>();
- contextProperties.put("com.sun.xml.bind.defaultNamespaceRemap", "uri:ultima:thule");
+ //contextProperties.put("com.sun.xml.bind.defaultNamespaceRemap", "uri:ultima:thule");
db.setContextProperties(contextProperties);
Set<Class<?>> classes = new HashSet<Class<?>>();
classes.add(QualifiedBean.class);
Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/wadl/WadlGenerator.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/wadl/WadlGenerator.java?rev=1502893&r1=1502892&r2=1502893&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/wadl/WadlGenerator.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/wadl/WadlGenerator.java Sat Jul 13 21:30:02 2013
@@ -77,7 +77,6 @@ import org.apache.cxf.common.jaxb.JAXBCo
import org.apache.cxf.common.jaxb.JAXBUtils;
import org.apache.cxf.common.logging.LogUtils;
import org.apache.cxf.common.util.PackageUtils;
-import org.apache.cxf.common.util.ReflectionInvokationHandler;
import org.apache.cxf.common.util.StringUtils;
import org.apache.cxf.common.util.XmlSchemaPrimitiveUtils;
import org.apache.cxf.common.xmlschema.SchemaCollection;
@@ -1383,8 +1382,7 @@ public class WadlGenerator implements Co
}
if (useJaxbContextForQnames) {
if (context != null) {
- JAXBContextProxy proxy = ReflectionInvokationHandler
- .createProxyWrapper(context, JAXBContextProxy.class);
+ JAXBContextProxy proxy = JAXBUtils.createJAXBContextProxy(context);
return new JaxbContextQNameResolver(proxy);
} else {
return null;
Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/AbstractJAXBProvider.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/AbstractJAXBProvider.java?rev=1502893&r1=1502892&r2=1502893&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/AbstractJAXBProvider.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/AbstractJAXBProvider.java Sat Jul 13 21:30:02 2013
@@ -69,7 +69,6 @@ import org.xml.sax.helpers.DefaultHandle
import org.apache.cxf.common.i18n.BundleUtils;
import org.apache.cxf.common.jaxb.JAXBUtils;
-import org.apache.cxf.common.jaxb.NamespaceMapper;
import org.apache.cxf.common.logging.LogUtils;
import org.apache.cxf.common.util.PackageUtils;
import org.apache.cxf.jaxrs.ext.MessageContext;
@@ -141,11 +140,9 @@ public abstract class AbstractJAXBProvid
protected void setNamespaceMapper(Marshaller ms,
Map<String, String> map) throws Exception {
- NamespaceMapper nsMapper = new NamespaceMapper(map);
+ Object nsMapper = JAXBUtils.setNamespaceWrapper(map, ms);
if (namespaceMapperPropertyName != null) {
setMarshallerProp(ms, nsMapper, namespaceMapperPropertyName, null);
- } else {
- setMarshallerProp(ms, nsMapper, NS_MAPPER_PROPERTY_RI, NS_MAPPER_PROPERTY_RI_INT);
}
}