You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by ga...@apache.org on 2008/10/24 21:11:16 UTC
svn commit: r707722 - in
/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2:
datasource/jaxb/JAXBDSContext.java jaxws/message/databinding/JAXBUtils.java
Author: gawor
Date: Fri Oct 24 12:11:16 2008
New Revision: 707722
URL: http://svn.apache.org/viewvc?rev=707722&view=rev
Log:
use the right jaxb property name based on the jaxb implementation used at runtime (could be internal with java 6 or external)
Modified:
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/datasource/jaxb/JAXBDSContext.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/JAXBUtils.java
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/datasource/jaxb/JAXBDSContext.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/datasource/jaxb/JAXBDSContext.java?rev=707722&r1=707721&r2=707722&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/datasource/jaxb/JAXBDSContext.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/datasource/jaxb/JAXBDSContext.java Fri Oct 24 12:11:16 2008
@@ -184,7 +184,7 @@
*/
if (this.webServiceNamespace != null) {
properties = new HashMap<String, Object>();
- properties.put("com.sun.xml.bind.defaultNamespaceRemap", this.webServiceNamespace);
+ properties.put(JAXBUtils.DEFAULT_NAMESPACE_REMAP, this.webServiceNamespace);
}
jc = JAXBUtils.getJAXBContext(contextPackages, constructType,
contextPackagesKey, cl, properties);
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/JAXBUtils.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/JAXBUtils.java?rev=707722&r1=707721&r2=707722&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/JAXBUtils.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/JAXBUtils.java Fri Oct 24 12:11:16 2008
@@ -111,6 +111,7 @@
specialMap.put("javax.xml.ws.wsaddressing", classes);
}
+ public static final String DEFAULT_NAMESPACE_REMAP = getDefaultNamespaceRemapProperty();
/**
* Get a JAXBContext for the class
@@ -1213,4 +1214,39 @@
}
});
}
+
+ private static String getDefaultNamespaceRemapProperty() {
+ String external = "com.sun.xml.bind.defaultNamespaceRemap";
+ String internal = "com.sun.xml.internal.bind.defaultNamespaceRemap";
+
+ Boolean isExternal = testJAXBProperty(external);
+ if (Boolean.TRUE.equals(isExternal)) {
+ return external;
+ }
+ Boolean isInternal = testJAXBProperty(internal);
+ if (Boolean.TRUE.equals(isInternal)) {
+ return internal;
+ }
+ // hmm... both properties cannot be set
+ return external;
+ }
+
+ private static Boolean testJAXBProperty(String propName) {
+ final Map<String, String> props = new HashMap<String, String>();
+ props.put(propName, "http://test");
+ try {
+ AccessController.doPrivileged(
+ new PrivilegedExceptionAction() {
+ public Object run() throws JAXBException {
+ return JAXBContext.newInstance(new Class[] {Integer.class}, props);
+ }
+ });
+ return Boolean.TRUE;
+ } catch (PrivilegedActionException e) {
+ if (e.getCause() instanceof JAXBException) {
+ return Boolean.FALSE;
+ }
+ return null;
+ }
+ }
}