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/03/03 13:08:21 UTC
svn commit: r514136 - in /incubator/tuscany/java/sca/kernel/core/src:
main/java/org/apache/tuscany/core/marshaller/
main/java/org/apache/tuscany/core/marshaller/java/ test/resources/marshall/
Author: meerajk
Date: Sat Mar 3 04:08:20 2007
New Revision: 514136
URL: http://svn.apache.org/viewvc?view=rev&rev=514136
Log:
Added support to abstract extensions
Added:
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/AbstractExtensibleMarshallerExtension.java (with props)
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/AbstractPhysicalComponentDefinitionMarshaller.java (with props)
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/AbstractPhysicalReferenceDefinitionMarshaller.java (with props)
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/AbstractPhysicalServiceDefinitionMarshaller.java (with props)
incubator/tuscany/java/sca/kernel/core/src/test/resources/marshall/
incubator/tuscany/java/sca/kernel/core/src/test/resources/marshall/javaChangeSet.xml (with props)
Modified:
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/AbstractMarshallerExtension.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/java/JavaPhysicalComponentDefinitionMarshaller.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/java/JavaPhysicalReferenceDefinitionMarshaller.java
Added: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/AbstractExtensibleMarshallerExtension.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/AbstractExtensibleMarshallerExtension.java?view=auto&rev=514136
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/AbstractExtensibleMarshallerExtension.java (added)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/AbstractExtensibleMarshallerExtension.java Sat Mar 3 04:08:20 2007
@@ -0,0 +1,55 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tuscany.core.marshaller;
+
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import org.apache.tuscany.spi.model.ModelObject;
+
+/**
+ * Abstract marshaller that supports extensible model objects.
+ *
+ * @version $Revision$ $Date$
+ *
+ * @param <MD>
+ */
+public abstract class AbstractExtensibleMarshallerExtension<MD extends ModelObject> extends AbstractMarshallerExtension<MD> {
+
+ /**
+ * Create the concrete model object.
+ * @return Concrete model object.
+ */
+ protected abstract MD getConcreteModelObject();
+
+ /**
+ * Handles extensions for unmarshalling.
+ * @param modelObject Concrete model object.
+ * @param reader Reader from which marshalled data is read.
+ */
+ protected abstract void handleExtensions(MD modelObject, XMLStreamReader reader);
+
+ /**
+ * Handles extensions for marshalling.
+ * @param modelObject Concrete model object.
+ * @param reader Writer to which marshalled data is written.
+ */
+ protected abstract void handleExtensions(MD modelObject, XMLStreamWriter writer);
+
+}
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/AbstractExtensibleMarshallerExtension.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/AbstractExtensibleMarshallerExtension.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/AbstractMarshallerExtension.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/AbstractMarshallerExtension.java?view=diff&rev=514136&r1=514135&r2=514136
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/AbstractMarshallerExtension.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/AbstractMarshallerExtension.java Sat Mar 3 04:08:20 2007
@@ -20,12 +20,18 @@
import javax.xml.namespace.QName;
-import org.osoa.sca.annotations.Reference;
-
import org.apache.tuscany.spi.marshaller.ModelMarshaller;
import org.apache.tuscany.spi.marshaller.ModelMarshallerRegistry;
import org.apache.tuscany.spi.model.ModelObject;
+import org.osoa.sca.annotations.Reference;
+/**
+ * Abstract marshaller that supports marshaller registry.
+ *
+ * @version $Revision$ $Date$
+ *
+ * @param <MD>
+ */
public abstract class AbstractMarshallerExtension<MD extends ModelObject> implements ModelMarshaller<MD> {
// Private Model marshaller registry
@@ -33,7 +39,6 @@
/**
* Injects the model marshaller registry.
- *
* @param registry Model marshaller registry.
*/
@Reference
@@ -50,14 +55,12 @@
/**
* Gets the qualified name of the XML fragment for the marshalled model object.
- *
* @return Qualified name of the XML fragment.
*/
protected abstract QName getModelObjectQName();
/**
* Retursn the type of the model object.
- *
* @return Model object type.
*/
protected abstract Class<MD> getModelObjectType();
Added: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/AbstractPhysicalComponentDefinitionMarshaller.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/AbstractPhysicalComponentDefinitionMarshaller.java?view=auto&rev=514136
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/AbstractPhysicalComponentDefinitionMarshaller.java (added)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/AbstractPhysicalComponentDefinitionMarshaller.java Sat Mar 3 04:08:20 2007
@@ -0,0 +1,94 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tuscany.core.marshaller;
+
+import static javax.xml.stream.XMLStreamConstants.END_ELEMENT;
+import static javax.xml.stream.XMLStreamConstants.START_ELEMENT;
+
+import java.net.URI;
+import java.net.URISyntaxException;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import org.apache.tuscany.spi.marshaller.MarshallException;
+import org.apache.tuscany.spi.model.physical.PhysicalComponentDefinition;
+import org.apache.tuscany.spi.model.physical.PhysicalReferenceDefinition;
+import org.apache.tuscany.spi.model.physical.PhysicalServiceDefinition;
+
+/**
+ * Abstract super class for all PCD marshallers.
+ *
+ * @version $Revision$ $Date$
+ */
+public abstract class AbstractPhysicalComponentDefinitionMarshaller<PCD extends PhysicalComponentDefinition> extends AbstractExtensibleMarshallerExtension<PCD> {
+
+ // Component id attribute
+ private static final String COMPONENT_ID = "componentId";
+
+ // Reference
+ private static final String REFERENCE = "reference";
+
+ // Service
+ private static final String SERVICE = "service";
+
+ /**
+ * Marshalls a physical change set to the xml writer.
+ */
+ public final void marshall(PCD modelObject, XMLStreamWriter writer) throws MarshallException {
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * Unmarshalls a physical change set from the xml reader.
+ */
+ public final PCD unmarshall(XMLStreamReader reader) throws MarshallException {
+
+ try {
+ PCD componentDefinition = getConcreteModelObject();
+ componentDefinition.setComponentId(new URI(reader.getAttributeValue(null, COMPONENT_ID)));
+ while (true) {
+ switch (reader.next()) {
+ case START_ELEMENT:
+ String name = reader.getName().getLocalPart();
+ if(REFERENCE.equals(name)) {
+ PhysicalReferenceDefinition reference = (PhysicalReferenceDefinition) registry.unmarshall(reader);
+ componentDefinition.addReference(reference);
+ } else if(SERVICE.equals(name)) {
+ PhysicalServiceDefinition service = (PhysicalServiceDefinition) registry.unmarshall(reader);
+ componentDefinition.addService(service);
+ } else {
+ handleExtensions(componentDefinition, reader);
+ }
+ break;
+ case END_ELEMENT:
+ return componentDefinition;
+
+ }
+ }
+ } catch (XMLStreamException ex) {
+ throw new MarshallException(ex);
+ } catch (URISyntaxException ex) {
+ throw new MarshallException(ex);
+ }
+
+ }
+
+}
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/AbstractPhysicalComponentDefinitionMarshaller.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/AbstractPhysicalComponentDefinitionMarshaller.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/AbstractPhysicalReferenceDefinitionMarshaller.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/AbstractPhysicalReferenceDefinitionMarshaller.java?view=auto&rev=514136
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/AbstractPhysicalReferenceDefinitionMarshaller.java (added)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/AbstractPhysicalReferenceDefinitionMarshaller.java Sat Mar 3 04:08:20 2007
@@ -0,0 +1,83 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tuscany.core.marshaller;
+
+import static javax.xml.stream.XMLStreamConstants.END_ELEMENT;
+import static javax.xml.stream.XMLStreamConstants.START_ELEMENT;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import org.apache.tuscany.spi.marshaller.MarshallException;
+import org.apache.tuscany.spi.model.ModelObject;
+import org.apache.tuscany.spi.model.physical.PhysicalOperationDefinition;
+import org.apache.tuscany.spi.model.physical.PhysicalReferenceDefinition;
+
+/**
+ * Marshaller for java physical reference definition.
+ *
+ * @version $Revision$ $Date$
+ */
+public abstract class AbstractPhysicalReferenceDefinitionMarshaller<PRD extends PhysicalReferenceDefinition> extends AbstractExtensibleMarshallerExtension<PRD> {
+
+ // Local part for operation
+ private static final String OPERATION = "operation";
+
+ // Source name attribute
+ private static final String NAME = "name";
+
+ /**
+ * Marshalls a physical java reference definition to the xml writer.
+ */
+ public void marshall(PRD modelObject, XMLStreamWriter writer) throws MarshallException {
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * Unmarshalls a java physical reference definition from the xml reader.
+ */
+ public PRD unmarshall(XMLStreamReader reader) throws MarshallException {
+
+ try {
+ PRD referenceDefinition = getConcreteModelObject();
+ referenceDefinition.setName(reader.getAttributeValue(null, NAME));
+ while (true) {
+ switch (reader.next()) {
+ case START_ELEMENT:
+ ModelObject modelObject = registry.unmarshall(reader);
+ String name = reader.getName().getLocalPart();
+ if(OPERATION.equals(name)) {
+ referenceDefinition.addOperation((PhysicalOperationDefinition)modelObject);
+ } else {
+ handleExtensions(referenceDefinition, reader);
+ }
+ break;
+ case END_ELEMENT:
+ return referenceDefinition;
+
+ }
+ }
+ } catch (XMLStreamException ex) {
+ throw new MarshallException(ex);
+ }
+
+ }
+
+}
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/AbstractPhysicalReferenceDefinitionMarshaller.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/AbstractPhysicalReferenceDefinitionMarshaller.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/AbstractPhysicalServiceDefinitionMarshaller.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/AbstractPhysicalServiceDefinitionMarshaller.java?view=auto&rev=514136
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/AbstractPhysicalServiceDefinitionMarshaller.java (added)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/AbstractPhysicalServiceDefinitionMarshaller.java Sat Mar 3 04:08:20 2007
@@ -0,0 +1,83 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tuscany.core.marshaller;
+
+import static javax.xml.stream.XMLStreamConstants.END_ELEMENT;
+import static javax.xml.stream.XMLStreamConstants.START_ELEMENT;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import org.apache.tuscany.spi.marshaller.MarshallException;
+import org.apache.tuscany.spi.model.ModelObject;
+import org.apache.tuscany.spi.model.physical.PhysicalOperationDefinition;
+import org.apache.tuscany.spi.model.physical.PhysicalServiceDefinition;
+
+/**
+ * Marshaller for java physical service definition.
+ *
+ * @version $Revision$ $Date$
+ */
+public abstract class AbstractPhysicalServiceDefinitionMarshaller<PSD extends PhysicalServiceDefinition> extends AbstractExtensibleMarshallerExtension<PSD> {
+
+// Local part for operation
+ private static final String OPERATION = "operation";
+
+ // Source name attribute
+ private static final String NAME = "name";
+
+ /**
+ * Marshalls a physical java reference definition to the xml writer.
+ */
+ public void marshall(PSD modelObject, XMLStreamWriter writer) throws MarshallException {
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * Unmarshalls a java physical reference definition from the xml reader.
+ */
+ public PSD unmarshall(XMLStreamReader reader) throws MarshallException {
+
+ try {
+ PSD serviceDefinition = getConcreteModelObject();
+ serviceDefinition.setName(reader.getAttributeValue(null, NAME));
+ while (true) {
+ switch (reader.next()) {
+ case START_ELEMENT:
+ ModelObject modelObject = registry.unmarshall(reader);
+ String name = reader.getName().getLocalPart();
+ if(OPERATION.equals(name)) {
+ serviceDefinition.addOperation((PhysicalOperationDefinition)modelObject);
+ } else {
+ handleExtensions(serviceDefinition, reader);
+ }
+ break;
+ case END_ELEMENT:
+ return serviceDefinition;
+
+ }
+ }
+ } catch (XMLStreamException ex) {
+ throw new MarshallException(ex);
+ }
+
+ }
+
+}
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/AbstractPhysicalServiceDefinitionMarshaller.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/AbstractPhysicalServiceDefinitionMarshaller.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/java/JavaPhysicalComponentDefinitionMarshaller.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/java/JavaPhysicalComponentDefinitionMarshaller.java?view=diff&rev=514136&r1=514135&r2=514136
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/java/JavaPhysicalComponentDefinitionMarshaller.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/java/JavaPhysicalComponentDefinitionMarshaller.java Sat Mar 3 04:08:20 2007
@@ -18,95 +18,73 @@
*/
package org.apache.tuscany.core.marshaller.java;
-import static javax.xml.stream.XMLStreamConstants.END_ELEMENT;
-import static javax.xml.stream.XMLStreamConstants.START_ELEMENT;
-
-import java.net.URI;
-import java.net.URISyntaxException;
-
import javax.xml.namespace.QName;
-import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
import javax.xml.stream.XMLStreamWriter;
import org.apache.commons.codec.binary.Base64;
-import org.apache.tuscany.core.marshaller.AbstractMarshallerExtension;
+import org.apache.tuscany.core.marshaller.AbstractPhysicalComponentDefinitionMarshaller;
import org.apache.tuscany.core.model.physical.java.JavaPhysicalComponentDefinition;
-import org.apache.tuscany.spi.marshaller.MarshallException;
-import org.apache.tuscany.spi.model.physical.PhysicalReferenceDefinition;
-import org.apache.tuscany.spi.model.physical.PhysicalServiceDefinition;
/**
* Marshaller for physical wire definition.
*
* @version $Revision$ $Date$
*/
-public class JavaPhysicalComponentDefinitionMarshaller extends AbstractMarshallerExtension<JavaPhysicalComponentDefinition> {
-
- // Component id attribute
- private static final String COMPONENT_ID = "componentId";
-
- // Reference
- private static final String REFERENCE = "reference";
-
- // Service
- private static final String SERVICE = "service";
+public class JavaPhysicalComponentDefinitionMarshaller extends AbstractPhysicalComponentDefinitionMarshaller<JavaPhysicalComponentDefinition> {
// Instance factory
private static final String INSTANCE_FACTORY = "instanceFactory";
// QName for the root element
private static final QName QNAME = new QName("http://tuscany.apache.org/xmlns/marshaller/component/java/1.0-SNAPSHOT", "component");
-
+
/**
- * Marshalls a physical change set to the xml writer.
+ * Create the concrete PCD.
+ * @return Java physical component definition
*/
- public void marshall(JavaPhysicalComponentDefinition modelObject, XMLStreamWriter writer) throws MarshallException {
- throw new UnsupportedOperationException();
+ @Override
+ protected JavaPhysicalComponentDefinition getConcreteModelObject() {
+ return new JavaPhysicalComponentDefinition();
}
-
+
/**
- * Unmarshalls a physical change set from the xml reader.
+ * Handles extensions for unmarshalling.
+ * @param componentDefinition Physical component definition.
+ * @param reader Reader from which marshalled data is read.
*/
- public JavaPhysicalComponentDefinition unmarshall(XMLStreamReader reader) throws MarshallException {
-
- try {
- JavaPhysicalComponentDefinition javaPhysicalComponentDefinition = new JavaPhysicalComponentDefinition();
- javaPhysicalComponentDefinition.setComponentId(new URI(reader.getAttributeValue(null, COMPONENT_ID)));
- while (true) {
- switch (reader.next()) {
- case START_ELEMENT:
- String name = reader.getName().getLocalPart();
- if(REFERENCE.equals(name)) {
- PhysicalReferenceDefinition reference = (PhysicalReferenceDefinition) registry.unmarshall(reader);
- javaPhysicalComponentDefinition.addReference(reference);
- } else if(SERVICE.equals(name)) {
- PhysicalServiceDefinition service = (PhysicalServiceDefinition) registry.unmarshall(reader);
- javaPhysicalComponentDefinition.addService(service);
- } else if(INSTANCE_FACTORY.equals(name)) {
- byte[] base64ByteCode = reader.getText().getBytes();
- byte[] byteCode = Base64.decodeBase64(base64ByteCode);
- javaPhysicalComponentDefinition.setInstanceFactoryByteCode(byteCode);
- }
- break;
- case END_ELEMENT:
- return javaPhysicalComponentDefinition;
-
- }
- }
- } catch (XMLStreamException ex) {
- throw new MarshallException(ex);
- } catch (URISyntaxException ex) {
- throw new MarshallException(ex);
+ @Override
+ protected void handleExtensions(JavaPhysicalComponentDefinition componentDefinition, XMLStreamReader reader) {
+ String name = reader.getName().getLocalPart();
+ if(INSTANCE_FACTORY.equals(name)) {
+ byte[] base64ByteCode = reader.getText().getBytes();
+ byte[] byteCode = Base64.decodeBase64(base64ByteCode);
+ componentDefinition.setInstanceFactoryByteCode(byteCode);
}
-
+ }
+
+ /**
+ * Handles extensions for marshalling.
+ * @param componentDefinition Physical component definition.
+ * @param reader Writer to which marshalled data is written.
+ */
+ @Override
+ protected void handleExtensions(JavaPhysicalComponentDefinition componentDefinition, XMLStreamWriter writer) {
}
+ /**
+ * Gets the qualified name of the XML fragment for the marshalled model object.
+ * @return Qualified name of the XML fragment.
+ */
@Override
protected QName getModelObjectQName() {
return QNAME;
}
+ /**
+ * Retursn the type of the model object.
+ * @return Model object type.
+ */
@Override
protected Class<JavaPhysicalComponentDefinition> getModelObjectType() {
return JavaPhysicalComponentDefinition.class;
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/java/JavaPhysicalReferenceDefinitionMarshaller.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/java/JavaPhysicalReferenceDefinitionMarshaller.java?view=diff&rev=514136&r1=514135&r2=514136
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/java/JavaPhysicalReferenceDefinitionMarshaller.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/java/JavaPhysicalReferenceDefinitionMarshaller.java Sat Mar 3 04:08:20 2007
@@ -18,79 +18,70 @@
*/
package org.apache.tuscany.core.marshaller.java;
-import static javax.xml.stream.XMLStreamConstants.END_ELEMENT;
-import static javax.xml.stream.XMLStreamConstants.START_ELEMENT;
-
import javax.xml.namespace.QName;
-import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
import javax.xml.stream.XMLStreamWriter;
-import org.apache.tuscany.core.marshaller.AbstractMarshallerExtension;
+import org.apache.tuscany.core.marshaller.AbstractPhysicalReferenceDefinitionMarshaller;
import org.apache.tuscany.core.model.physical.java.JavaPhysicalReferenceDefinition;
-import org.apache.tuscany.spi.marshaller.MarshallException;
-import org.apache.tuscany.spi.model.ModelObject;
-import org.apache.tuscany.spi.model.physical.PhysicalOperationDefinition;
/**
* Marshaller for java physical reference definition.
*
* @version $Revision$ $Date$
*/
-public class JavaPhysicalReferenceDefinitionMarshaller extends AbstractMarshallerExtension<JavaPhysicalReferenceDefinition> {
-
- // Local part for operation
- private static final String OPERATION = "operation";
-
- // Source name attribute
- private static final String NAME = "name";
+public class JavaPhysicalReferenceDefinitionMarshaller extends AbstractPhysicalReferenceDefinitionMarshaller<JavaPhysicalReferenceDefinition> {
// QName for the root element
private static final QName QNAME = new QName("http://tuscany.apache.org/xmlns/marshaller/reference/java/1.0-SNAPSHOT", "service");
/**
- * Marshalls a physical java reference definition to the xml writer.
+ * Gets the qualified name of the XML fragment for the marshalled model object.
+ * @return Qualified name of the XML fragment.
*/
- public void marshall(JavaPhysicalReferenceDefinition modelObject, XMLStreamWriter writer) throws MarshallException {
- throw new UnsupportedOperationException();
+ @Override
+ protected QName getModelObjectQName() {
+ return QNAME;
}
/**
- * Unmarshalls a java physical reference definition from the xml reader.
+ * Retursn the type of the model object.
+ * @return Model object type.
*/
- public JavaPhysicalReferenceDefinition unmarshall(XMLStreamReader reader) throws MarshallException {
-
- try {
- JavaPhysicalReferenceDefinition referenceDefinition = new JavaPhysicalReferenceDefinition();
- referenceDefinition.setName(reader.getAttributeValue(null, NAME));
- while (true) {
- switch (reader.next()) {
- case START_ELEMENT:
- ModelObject modelObject = registry.unmarshall(reader);
- String name = reader.getName().getLocalPart();
- if(OPERATION.equals(name)) {
- referenceDefinition.addOperation((PhysicalOperationDefinition)modelObject);
- }
- break;
- case END_ELEMENT:
- return referenceDefinition;
-
- }
- }
- } catch (XMLStreamException ex) {
- throw new MarshallException(ex);
- }
-
+ @Override
+ protected Class<JavaPhysicalReferenceDefinition> getModelObjectType() {
+ return JavaPhysicalReferenceDefinition.class;
+ }
+
+ /**
+ * Create the concrete model object.
+ * @return Concrete model object.
+ */
+ @Override
+ protected JavaPhysicalReferenceDefinition getConcreteModelObject() {
+ return new JavaPhysicalReferenceDefinition();
}
+ /**
+ * Handles extensions for unmarshalling.
+ * @param modelObject Concrete model object.
+ * @param reader Reader from which marshalled data is read.
+ */
@Override
- protected QName getModelObjectQName() {
- return QNAME;
+ protected void handleExtensions(JavaPhysicalReferenceDefinition modelObject, XMLStreamReader reader) {
+ // TODO Auto-generated method stub
+
}
+ /**
+ * Handles extensions for marshalling.
+ * @param modelObject Concrete model object.
+ * @param reader Writer to which marshalled data is written.
+ */
@Override
- protected Class<JavaPhysicalReferenceDefinition> getModelObjectType() {
- return JavaPhysicalReferenceDefinition.class;
+ protected void handleExtensions(JavaPhysicalReferenceDefinition modelObject, XMLStreamWriter writer) {
+ // TODO Auto-generated method stub
+
}
}
Added: incubator/tuscany/java/sca/kernel/core/src/test/resources/marshall/javaChangeSet.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/resources/marshall/javaChangeSet.xml?view=auto&rev=514136
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/resources/marshall/javaChangeSet.xml (added)
+++ incubator/tuscany/java/sca/kernel/core/src/test/resources/marshall/javaChangeSet.xml Sat Mar 3 04:08:20 2007
@@ -0,0 +1,19 @@
+<changeSet>
+
+ <component>
+
+ </component>
+
+ <component>
+
+ </component>
+
+ <wire>
+
+ </wire>
+
+ <wire>
+
+ </wire>
+
+</changeSet>
\ No newline at end of file
Propchange: incubator/tuscany/java/sca/kernel/core/src/test/resources/marshall/javaChangeSet.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/core/src/test/resources/marshall/javaChangeSet.xml
------------------------------------------------------------------------------
svn:keywords = Rev Date
Propchange: incubator/tuscany/java/sca/kernel/core/src/test/resources/marshall/javaChangeSet.xml
------------------------------------------------------------------------------
svn:mime-type = text/xml
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org