You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by me...@apache.org on 2007/02/06 09:24:20 UTC
svn commit: r504024 - in /incubator/tuscany/java/sca/kernel/core/src:
main/java/org/apache/tuscany/core/marshaller/
test/java/org/apache/tuscany/core/marshaller/
Author: meerajk
Date: Tue Feb 6 00:24:19 2007
New Revision: 504024
URL: http://svn.apache.org/viewvc?view=rev&rev=504024
Log:
Implemented marshall
Modified:
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/JavaPhysicalComponentDefinitionMarshaller.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/marshaller/JavaPhysicalComponentDefinitionMarshallerTestCase.java
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/JavaPhysicalComponentDefinitionMarshaller.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/JavaPhysicalComponentDefinitionMarshaller.java?view=diff&rev=504024&r1=504023&r2=504024
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/JavaPhysicalComponentDefinitionMarshaller.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/JavaPhysicalComponentDefinitionMarshaller.java Tue Feb 6 00:24:19 2007
@@ -38,9 +38,9 @@
* physical Java component definitions are of the form,
*
* <code>
- * <ns:componentJava componentId="uri" xmlns:ns="http://tuscany.apache.org/xmlns/1.0-SNAPSHOT">
+ * <componentJava componentId="uri" xmlns="http://tuscany.apache.org/xmlns/1.0-SNAPSHOT">
* <instanceFactoryByteCode>Base 64 Encoded byte code</instanceFactoryByteCode>
- * </ns:component-java>
+ * </component-java>
* </code>
*
* @version $Rev$ $Date$
@@ -56,7 +56,8 @@
public static final String COMPONENT_ID = "componentId";
/** Instance factory byte code. */
- public static final QName INSTANCE_FACTORY_BYTE_CODE = new QName(null, "instanceFactoryByteCode");
+ public static final QName INSTANCE_FACTORY_BYTE_CODE =
+ new QName("http://tuscany.apache.org/xmlns/1.0-SNAPSHOT", "instanceFactoryByteCode");
/**
* Marshalls the component definition object to the specified stream writer.
@@ -66,7 +67,31 @@
* @throws MarshalException In case of any marshalling error.
*/
public void marshall(JavaPhysicalComponentDefinition modelObject, XMLStreamWriter writer) throws MarshalException {
- throw new UnsupportedOperationException("Not implemented");
+
+ try {
+
+ writer.setDefaultNamespace(MESSAGE_TYPE.getNamespaceURI());
+
+ writer.writeStartDocument();
+ writer.writeStartElement(MESSAGE_TYPE.getLocalPart());
+ writer.writeNamespace(null, MESSAGE_TYPE.getNamespaceURI());
+ writer.writeAttribute(COMPONENT_ID, modelObject.getComponentId().toASCIIString());
+ writer.writeStartElement(INSTANCE_FACTORY_BYTE_CODE.getLocalPart());
+
+ byte[] byteCode = modelObject.getInstanceFactoryByteCode();
+ // TODO Change this with base64 encode
+ String encodedByteCode = new String(byteCode);
+ writer.writeCharacters(encodedByteCode);
+
+ writer.writeEndElement();
+ writer.writeEndElement();
+ writer.writeEndDocument();
+
+ writer.flush();
+
+ } catch (XMLStreamException ex) {
+ throw new MarshalException(ex);
+ }
}
/**
Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/marshaller/JavaPhysicalComponentDefinitionMarshallerTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/marshaller/JavaPhysicalComponentDefinitionMarshallerTestCase.java?view=diff&rev=504024&r1=504023&r2=504024
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/marshaller/JavaPhysicalComponentDefinitionMarshallerTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/marshaller/JavaPhysicalComponentDefinitionMarshallerTestCase.java Tue Feb 6 00:24:19 2007
@@ -18,9 +18,12 @@
*/
package org.apache.tuscany.core.marshaller;
+import java.io.ByteArrayOutputStream;
import java.net.URI;
+import javax.xml.stream.XMLOutputFactory;
import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
import org.apache.tuscany.core.component.JavaPhysicalComponentDefinition;
import org.apache.tuscany.spi.marshaller.ModelMarshaller;
@@ -45,9 +48,9 @@
public void testUnmarshall() throws Exception {
String xml =
- "<ns:componentJava componentId=\"uri\" xmlns:ns=\"http://tuscany.apache.org/xmlns/1.0-SNAPSHOT\">" +
+ "<componentJava componentId=\"uri\" xmlns=\"http://tuscany.apache.org/xmlns/1.0-SNAPSHOT\">" +
" <instanceFactoryByteCode>Base 64 Encoded byte code</instanceFactoryByteCode>" +
- "</ns:componentJava>";
+ "</componentJava>";
XMLStreamReader reader = StaxUtil.createReader(xml);
ModelMarshaller<JavaPhysicalComponentDefinition> marshaller = new JavaPhysicalComponentDefinitionMarshaller();
@@ -55,6 +58,30 @@
assertEquals(new URI("uri"), definition.getComponentId());
assertEquals("Base 64 Encoded byte code", new String(definition.getInstanceFactoryByteCode()));
+
+ }
+
+ public void testMarshall() throws Exception {
+
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+
+ JavaPhysicalComponentDefinition definition = new JavaPhysicalComponentDefinition();
+ definition.setComponentId(new URI("uri"));
+ definition.setInstanceFactoryByteCode("Base 64 Encoded byte code".getBytes());
+
+ XMLStreamWriter writer = XMLOutputFactory.newInstance().createXMLStreamWriter(out, "UTF-8");
+
+
+ ModelMarshaller<JavaPhysicalComponentDefinition> marshaller = new JavaPhysicalComponentDefinitionMarshaller();
+ marshaller.marshall(definition, writer);
+
+ String xml = new String(out.toByteArray());
+ XMLStreamReader reader = StaxUtil.createReader(xml);
+ definition = marshaller.unmarshall(reader);
+
+ assertEquals(new URI("uri"), definition.getComponentId());
+ assertEquals("Base 64 Encoded byte code", new String(definition.getInstanceFactoryByteCode()));
+
}
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org