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 sc...@apache.org on 2008/07/14 17:24:01 UTC
svn commit: r676623 - in /webservices/axis2/trunk/java/modules/jaxws:
src/org/apache/axis2/datasource/jaxb/JAXBDataSource.java
test/org/apache/axis2/jaxws/message/JAXBCustomBuilderTests.java
Author: scheu
Date: Mon Jul 14 08:24:00 2008
New Revision: 676623
URL: http://svn.apache.org/viewvc?rev=676623&view=rev
Log:
WSCOMMONS-360
Modified:
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/datasource/jaxb/JAXBDataSource.java
webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/message/JAXBCustomBuilderTests.java
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/datasource/jaxb/JAXBDataSource.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/datasource/jaxb/JAXBDataSource.java?rev=676623&r1=676622&r2=676623&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/datasource/jaxb/JAXBDataSource.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/datasource/jaxb/JAXBDataSource.java Mon Jul 14 08:24:00 2008
@@ -55,6 +55,10 @@
super();
this.jaxb = jaxb;
this.context = context;
+
+ // Currently we cannot control how the unmarshaller will emit the prefix
+ // So if the value of the prefix is needed, full expansion is necessary.
+ setProperty(OMDataSourceExt.LOSSY_PREFIX, Boolean.TRUE);
}
public void close() {
Modified: webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/message/JAXBCustomBuilderTests.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/message/JAXBCustomBuilderTests.java?rev=676623&r1=676622&r2=676623&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/message/JAXBCustomBuilderTests.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/message/JAXBCustomBuilderTests.java Mon Jul 14 08:24:00 2008
@@ -22,6 +22,7 @@
import junit.framework.TestCase;
import org.apache.axiom.om.OMDataSource;
import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMNamespace;
import org.apache.axiom.om.OMSourcedElement;
import org.apache.axiom.om.impl.builder.StAXOMBuilder;
import org.apache.axis2.datasource.jaxb.JAXBCustomBuilder;
@@ -62,14 +63,15 @@
public void test() throws Exception {
+ TreeSet<String> contextPackages = new TreeSet<String>();
+ contextPackages.add(EchoString.class.getPackage().getName());
+ /**
// Setup: Create a jaxb object
ObjectFactory factory = new ObjectFactory();
EchoString jaxb = factory.createEchoString();
jaxb.setInput("Hello World");
- // Now create a Context for this object
- TreeSet<String> contextPackages = new TreeSet<String>();
- contextPackages.add(EchoString.class.getPackage().getName());
+
JAXBContext context = JAXBUtils.getJAXBContext(contextPackages);
// Write out the xml
@@ -80,7 +82,13 @@
JAXBUtils.releaseJAXBMarshaller(context, marshaller);
writer.flush();
sw.flush();
- StringReader sr = new StringReader(sw.toString());
+ String outtext = sw.toString();
+ System.out.println("OUT=" + outtext);
+ StringReader sr = new StringReader(outtext);
+ **/
+
+ String inText = "<pre:echoString xmlns:pre=\"http://test\"><pre:input>Hello World</pre:input></pre:echoString>";
+ StringReader sr = new StringReader(inText);
// Read the sample text using OM backed by StAX.
XMLStreamReader inputReader = inputFactory.createXMLStreamReader(sr);
@@ -106,6 +114,30 @@
assertTrue(jaxbObject instanceof EchoString);
EchoString result = (EchoString) jaxbObject;
assertTrue(result.getInput().equals("Hello World"));
+
+ // Make sure that the local name can be obtained without expansion
+ String localName = om.getLocalName();
+ assertTrue("echoString".equals(localName));
+ ds = ((OMSourcedElement) om).getDataSource();
+ assertTrue(ds != null);
+
+ // Make sure that the namespace uri can be obtained without expansion
+ OMNamespace omNS = om.getNamespace();
+ String uri = omNS.getNamespaceURI();
+ assertTrue("http://test".equals (uri));
+ ds = ((OMSourcedElement) om).getDataSource();
+ assertTrue(ds != null);
+
+ // Make sure the prefix is consistent with the output
+ String prefix = omNS.getPrefix();
+ System.out.println(prefix);
+ String text = om.toString();
+ System.out.println(text);
+ String searchString = (prefix == null || prefix.length() == 0) ?
+ "</echoString>" :
+ "</" + prefix + ":echoString>";
+ assertTrue(text.indexOf(searchString) > 0);
+
}
}