You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jaxme-dev@ws.apache.org by jo...@apache.org on 2005/11/21 21:42:19 UTC

svn commit: r347976 - in /webservices/jaxme/branches/MAVEN/projects/jm: ./ src/main/java/org/apache/ws/jaxme/generator/types/ src/main/java/org/apache/ws/jaxme/impl/ src/test/java/org/apache/ws/jaxme/junit/ src/test/resources/jira/ xdocs/

Author: jochen
Date: Mon Nov 21 12:41:34 2005
New Revision: 347976

URL: http://svn.apache.org/viewcvs?rev=347976&view=rev
Log:
A namespace wasn't necessarily declared for marshalling the data type
xs:QName.
PR: JAXME-72
Submitted-by: Andreas.Arrgard at octagroup.com

Added:
    webservices/jaxme/branches/MAVEN/projects/jm/src/test/resources/jira/jaxme-72.xsd
Modified:
    webservices/jaxme/branches/MAVEN/projects/jm/project.xml
    webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/generator/types/QNameSG.java
    webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/impl/JMSAXDriverController.java
    webservices/jaxme/branches/MAVEN/projects/jm/src/test/java/org/apache/ws/jaxme/junit/JiraTest.java
    webservices/jaxme/branches/MAVEN/projects/jm/xdocs/changes.xml

Modified: webservices/jaxme/branches/MAVEN/projects/jm/project.xml
URL: http://svn.apache.org/viewcvs/webservices/jaxme/branches/MAVEN/projects/jm/project.xml?rev=347976&r1=347975&r2=347976&view=diff
==============================================================================
--- webservices/jaxme/branches/MAVEN/projects/jm/project.xml (original)
+++ webservices/jaxme/branches/MAVEN/projects/jm/project.xml Mon Nov 21 12:41:34 2005
@@ -77,6 +77,10 @@
             <name>Veniamin Fichin</name>
             <email>3ca28f66 at mail.ru</email>
         </contributor>
+        <contributor>
+            <name>Andreas Arrgård</name>
+            <email>andreas.arrgard at octagroup.com</email>
+        </contributor>
     </contributors>
     <build>
         <unitTest>

Modified: webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/generator/types/QNameSG.java
URL: http://svn.apache.org/viewcvs/webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/generator/types/QNameSG.java?rev=347976&r1=347975&r2=347976&view=diff
==============================================================================
--- webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/generator/types/QNameSG.java (original)
+++ webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/generator/types/QNameSG.java Mon Nov 21 12:41:34 2005
@@ -68,8 +68,8 @@
   }
 
   public TypedValue getCastToString(SimpleTypeSG pController, Object pValue, DirectAccessible pData) {
-      return new TypedValueImpl(new Object[]{ pData, ".getDatatypeConverter().printQName(", pValue, ", ", pData,
-      							".getNamespaceContext())" }, String.class);
+	  return new TypedValueImpl(new Object[]{ pData, ".getElementQName(this, ", pValue, ".getNamespaceURI(), ", pValue,
+			        							".getLocalPart())" }, String.class);
   }
   
   public void forAllNonNullValues(SimpleTypeSG pController, JavaMethod pMethod, Object pValue, SGlet pSGlet) throws SAXException {

Modified: webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/impl/JMSAXDriverController.java
URL: http://svn.apache.org/viewcvs/webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/impl/JMSAXDriverController.java?rev=347976&r1=347975&r2=347976&view=diff
==============================================================================
--- webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/impl/JMSAXDriverController.java (original)
+++ webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/impl/JMSAXDriverController.java Mon Nov 21 12:41:34 2005
@@ -130,8 +130,12 @@
 		}
 	}
 
-	protected String getElementQName(JMSAXDriver pDriver, String pNamespaceURI,
-									 String pLocalName)
+	/** Returns the qualified name of the element <code>pLocalName</code>
+	 * in namespace <code>pNamespaceURI</code>. In other words, it attachs
+	 * a prefix, if required.
+	 */
+	public String getElementQName(JMSAXDriver pDriver, String pNamespaceURI,
+								  String pLocalName)
 			throws SAXException {
 		if (pNamespaceURI == null) {
 			pNamespaceURI = "";

Modified: webservices/jaxme/branches/MAVEN/projects/jm/src/test/java/org/apache/ws/jaxme/junit/JiraTest.java
URL: http://svn.apache.org/viewcvs/webservices/jaxme/branches/MAVEN/projects/jm/src/test/java/org/apache/ws/jaxme/junit/JiraTest.java?rev=347976&r1=347975&r2=347976&view=diff
==============================================================================
--- webservices/jaxme/branches/MAVEN/projects/jm/src/test/java/org/apache/ws/jaxme/junit/JiraTest.java (original)
+++ webservices/jaxme/branches/MAVEN/projects/jm/src/test/java/org/apache/ws/jaxme/junit/JiraTest.java Mon Nov 21 12:41:34 2005
@@ -7,6 +7,7 @@
 import javax.xml.bind.JAXBContext;
 import javax.xml.bind.JAXBException;
 import javax.xml.bind.Unmarshaller;
+import javax.xml.namespace.QName;
 
 import magoffin.matt.ieat.domain.impl.IngredientImpl;
 import net.dspc.commons.activitymodel.TransmissionData;
@@ -26,6 +27,7 @@
 import org.apache.ws.jaxme.test.jira.jaxme58.Booklist;
 import org.apache.ws.jaxme.test.jira.jaxme65.Jaxme65;
 import org.apache.ws.jaxme.test.jira.jaxme65.Jaxme65Type;
+import org.apache.ws.jaxme.test.jira72.Jaxme72;
 import org.apache.ws.jaxme.test.misc.types.Jira62;
 import org.apache.ws.jaxme.test.misc.types.Row;
 import org.apache.ws.jaxme.test.misc.types.impl.RowImpl;
@@ -300,5 +302,22 @@
 		}
 		result += "</booklist>\n";
 		return result;
+	}
+
+	/** Test for <a href="http://issues.apache.org/jira/browse/JAXME-72">JAXME-72</a>.
+	 */
+	public void testJAXME72() throws JAXBException {
+		// create test structure
+		org.apache.ws.jaxme.test.jira72.ObjectFactory oFact = new org.apache.ws.jaxme.test.jira72.ObjectFactory();
+		Jaxme72 jaxme72  = oFact.createJaxme72();
+		QName qName = new QName("http://this.namespace/must/be/declared", "jaxme72");
+		jaxme72.setTest(qName);
+		// try to marshal it...Jira issue 72 address the problem that this will fail.
+		JAXBContext ctx = JAXBContext.newInstance("org.apache.ws.jaxme.test.jira72");
+		StringWriter sw = new StringWriter();
+		ctx.createMarshaller().marshal(jaxme72, sw);
+		// if we get this far issue 72 shoulb be fixed. just to be sure - unmarshal and compare QNames.
+		Jaxme72 jaxme72Clone = (Jaxme72) ctx.createUnmarshaller().unmarshal(new InputSource(new StringReader(sw.toString())));
+		assertEquals(jaxme72.getTest(),jaxme72Clone.getTest());
 	}
 }

Added: webservices/jaxme/branches/MAVEN/projects/jm/src/test/resources/jira/jaxme-72.xsd
URL: http://svn.apache.org/viewcvs/webservices/jaxme/branches/MAVEN/projects/jm/src/test/resources/jira/jaxme-72.xsd?rev=347976&view=auto
==============================================================================
--- webservices/jaxme/branches/MAVEN/projects/jm/src/test/resources/jira/jaxme-72.xsd (added)
+++ webservices/jaxme/branches/MAVEN/projects/jm/src/test/resources/jira/jaxme-72.xsd Mon Nov 21 12:41:34 2005
@@ -0,0 +1,8 @@
+<xs:schema targetNamespace='http://apache.org/ws/jaxme/test/jira72'
+	    xmlns:xs='http://www.w3.org/2001/XMLSchema'>
+  <xs:element name='jaxme-72'>
+    <xs:complexType>
+      <xs:attribute name="test" type="xs:QName"/>
+    </xs:complexType>
+  </xs:element>
+</xs:schema>

Modified: webservices/jaxme/branches/MAVEN/projects/jm/xdocs/changes.xml
URL: http://svn.apache.org/viewcvs/webservices/jaxme/branches/MAVEN/projects/jm/xdocs/changes.xml?rev=347976&r1=347975&r2=347976&view=diff
==============================================================================
--- webservices/jaxme/branches/MAVEN/projects/jm/xdocs/changes.xml (original)
+++ webservices/jaxme/branches/MAVEN/projects/jm/xdocs/changes.xml Mon Nov 21 12:41:34 2005
@@ -21,7 +21,14 @@
 		<title>Releases</title>
 	</properties>
 	<body>
-	<release version="0.5" date="Not yet published">
+	<release version="0.6-dev">
+      <action dev="JW" type="fix" context="generator">
+        The namespace of a simple type xs:QName wasn't necessarily
+        declared by the marshaller. (JAXME-72, Andreas Arrgård,
+        andreas.arrgard at octagroup.com)
+      </action>
+	</release>
+	<release version="0.5" date="2005-Aug-08">
       <action dev="JW" type="fix" context="generator">
 		A sequence was always treated as a required group,
 		even if all particles were optional.



---------------------------------------------------------------------
To unsubscribe, e-mail: jaxme-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: jaxme-dev-help@ws.apache.org