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/26 23:55:34 UTC
svn commit: r512057 - in /incubator/tuscany/java/sca/kernel:
core/src/main/java/org/apache/tuscany/core/deployer/federation/
core/src/main/java/org/apache/tuscany/core/marshaller/
spi/src/main/java/org/apache/tuscany/spi/marshaller/
Author: meerajk
Date: Mon Feb 26 14:55:33 2007
New Revision: 512057
URL: http://svn.apache.org/viewvc?view=rev&rev=512057
Log:
half-baked marshaller and physical model definitions that build
Added:
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/AbstractMarshallerExtension.java (with props)
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/marshaller/MarshallException.java
- copied, changed from r511874, incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/marshaller/MarshalException.java
Removed:
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/marshaller/MarshalException.java
Modified:
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/deployer/federation/FederatedDeployer.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/deployer/federation/JavaComponentDeployer.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/DefaultModelMarshallerRegistry.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/JavaPhysicalComponentDefinitionMarshaller.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/marshaller/ModelMarshaller.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/marshaller/ModelMarshallerRegistry.java
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/deployer/federation/FederatedDeployer.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/deployer/federation/FederatedDeployer.java?view=diff&rev=512057&r1=512056&r2=512057
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/deployer/federation/FederatedDeployer.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/deployer/federation/FederatedDeployer.java Mon Feb 26 14:55:33 2007
@@ -25,7 +25,7 @@
import org.apache.tuscany.spi.builder.BuilderException;
import org.apache.tuscany.spi.builder.physical.PhysicalComponentBuilderRegistry;
import org.apache.tuscany.spi.component.Component;
-import org.apache.tuscany.spi.marshaller.MarshalException;
+import org.apache.tuscany.spi.marshaller.MarshallException;
import org.apache.tuscany.spi.marshaller.ModelMarshallerRegistry;
import org.apache.tuscany.spi.model.physical.PhysicalComponentDefinition;
import org.apache.tuscany.spi.services.discovery.DiscoveryService;
@@ -65,7 +65,7 @@
final C component = buildComponent(definition);
component.start();
- } catch (MarshalException ex) {
+ } catch (MarshallException ex) {
return null;
} catch (BuilderException ex) {
return null;
@@ -136,9 +136,9 @@
*
* @param content XML content stream.
* @return Physical component definition.
- * @throws MarshalException If unable to marshall the component definition.
+ * @throws MarshallException If unable to marshall the component definition.
*/
- protected abstract PCD unmarshallDefinition(XMLStreamReader content) throws MarshalException;
+ protected abstract PCD unmarshallDefinition(XMLStreamReader content) throws MarshallException;
/**
* Builds the component from the physical component definition.
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/deployer/federation/JavaComponentDeployer.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/deployer/federation/JavaComponentDeployer.java?view=diff&rev=512057&r1=512056&r2=512057
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/deployer/federation/JavaComponentDeployer.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/deployer/federation/JavaComponentDeployer.java Mon Feb 26 14:55:33 2007
@@ -27,9 +27,7 @@
import org.apache.tuscany.spi.builder.BuilderException;
import org.apache.tuscany.spi.builder.physical.PhysicalComponentBuilder;
import org.apache.tuscany.spi.builder.physical.PhysicalComponentBuilderRegistry;
-import org.apache.tuscany.spi.marshaller.MarshalException;
-import org.apache.tuscany.spi.marshaller.ModelMarshaller;
-import org.apache.tuscany.spi.marshaller.ModelMarshallerRegistry;
+import org.apache.tuscany.spi.marshaller.MarshallException;
/**
* Federated deployer responsible for deploying Java components.
@@ -43,7 +41,7 @@
*
* @param content XML content stream.
* @return Physical component definition.
- * @throws MarshalException If unable to marshall the component definition.
+ * @throws MarshallException If unable to marshall the component definition.
*/
@Override
protected QName getQualifiedName() {
@@ -74,13 +72,8 @@
* @return The qualified name of the document element.
*/
@Override
- protected JavaPhysicalComponentDefinition unmarshallDefinition(XMLStreamReader content) throws MarshalException {
-
- ModelMarshallerRegistry marshallerRegistry = getMarshallerRegistry();
- ModelMarshaller<JavaPhysicalComponentDefinition> marshaller =
- marshallerRegistry.getMarshaller(JavaPhysicalComponentDefinition.class);
- return marshaller.unmarshall(content);
-
+ protected JavaPhysicalComponentDefinition unmarshallDefinition(XMLStreamReader content) throws MarshallException {
+ throw new UnsupportedOperationException();
}
}
Added: 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=auto&rev=512057
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/AbstractMarshallerExtension.java (added)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/AbstractMarshallerExtension.java Mon Feb 26 14:55:33 2007
@@ -0,0 +1,64 @@
+/*
+ * 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.namespace.QName;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import org.apache.tuscany.spi.annotation.Autowire;
+import org.apache.tuscany.spi.marshaller.MarshallException;
+import org.apache.tuscany.spi.marshaller.ModelMarshaller;
+import org.apache.tuscany.spi.marshaller.ModelMarshallerRegistry;
+import org.apache.tuscany.spi.model.ModelObject;
+
+public abstract class AbstractMarshallerExtension<MD extends ModelObject> implements ModelMarshaller<MD> {
+
+ // Private Model marshaller registry
+ private ModelMarshallerRegistry registry;
+
+ /**
+ * Injects the model marshaller registry.
+ * @param registry Model marshaller registry.
+ */
+ @Autowire
+ public void setRegistry(ModelMarshallerRegistry registry) {
+
+ this.registry = registry;
+
+ Class<MD> marshallerType = getModelObjectType();
+ QName marshallerQName = getModelObjectQName();
+
+ registry.registerMarshaller(marshallerType, marshallerQName, this);
+
+ }
+
+ /**
+ * 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();
+
+}
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/AbstractMarshallerExtension.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/AbstractMarshallerExtension.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/DefaultModelMarshallerRegistry.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/DefaultModelMarshallerRegistry.java?view=diff&rev=512057&r1=512056&r2=512057
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/DefaultModelMarshallerRegistry.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/DefaultModelMarshallerRegistry.java Mon Feb 26 14:55:33 2007
@@ -18,14 +18,17 @@
*/
package org.apache.tuscany.core.marshaller;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
import javax.xml.namespace.QName;
import javax.xml.stream.XMLStreamReader;
import javax.xml.stream.XMLStreamWriter;
+import org.apache.tuscany.spi.marshaller.MarshallException;
import org.apache.tuscany.spi.marshaller.ModelMarshaller;
import org.apache.tuscany.spi.marshaller.ModelMarshallerRegistry;
import org.apache.tuscany.spi.model.ModelObject;
-import org.apache.tuscany.spi.model.physical.PhysicalChangeSet;
/**
* Default map-based implementation of the model marshaller registry.
@@ -33,59 +36,61 @@
* @version $Rev$ $Date$
*/
public class DefaultModelMarshallerRegistry implements ModelMarshallerRegistry {
+
+ // Marshaller registry
+ private final Map<Class<? extends ModelObject>, ModelMarshaller> marshallerRegistry = new ConcurrentHashMap<Class<? extends ModelObject>, ModelMarshaller>();
+
+ // Unmarshaller registry
+ private final Map<QName, ModelMarshaller> unmarshallerRegistry = new ConcurrentHashMap<QName, ModelMarshaller>();
/**
- * Gets a marshaller for marshalling.
+ * Registers a model object marshaller.
*
* @param <MD> Model object type.
* @param modelClass Model obejct class.
- * @return Model object marshaller.
- */
- public <MD extends ModelObject> ModelMarshaller<MD> getMarshaller(Class<MD> modelClass) {
- return null;
- }
-
- /**
- * Gets a marshaller for unmarshalling.
- *
- * @param <MD> Model object type.
* @param qname Qualified name of the root element of the marshalled XML.
- * @return Model object marshaller.
+ * @param marshaller Model object marshaller.
*/
- public <MD extends ModelObject> ModelMarshaller<MD> getMarshaller(QName qname) {
- return null;
+ public <MD extends ModelObject> void registerMarshaller(Class<MD> modelClass,
+ QName qname,
+ ModelMarshaller<MD> marshaller) {
+ marshallerRegistry.put(modelClass, marshaller);
+ unmarshallerRegistry.put(qname, marshaller);
}
/**
- * Marshalls a physical change set.
+ * Marshalls a model object.
*
- * @param changeSet Physical chaneg set to be marshalled.
+ * @param modelObject Model object to be marshalled.
* @param writer Writer to which marshalled information is written.
*/
- public void marshall(PhysicalChangeSet changeSet, XMLStreamWriter writer) {
- }
-
- /**
- * Registers a model object marshaller.
- *
- * @param <MD> Model object type.
- * @param modelClass Model obejct class.
- * @param qname Qualified name of the root element of the marshalled XML.
- * @param marshaller Model object marshaller.
- */
- public <MD extends ModelObject> void registerMarshaller(Class<MD> modelClass,
- QName qname,
- ModelMarshaller<MD> marshaller) {
+ @SuppressWarnings("unchecked")
+ public void marshall(ModelObject modelObject, XMLStreamWriter writer) throws MarshallException {
+
+ ModelMarshaller marshaller = marshallerRegistry.get(modelObject.getClass());
+ if(marshaller == null) {
+ throw new MarshallException("No marshaller defined for " + modelObject.getClass());
+ }
+ marshaller.marshall(modelObject, writer);
+
}
/**
- * Unmarshalls an XML stream to a physical change set.
+ * Unmarshalls an XML stream to a model object.
*
* @param reader Reader from which marshalled information is read.
- * @return Physical chnage set from the marshalled stream.
+ * @return Model object from the marshalled stream.
*/
- public PhysicalChangeSet unmarshall(XMLStreamReader reader) {
- return null;
+ public ModelObject unmarshall(XMLStreamReader reader) throws MarshallException {
+
+ QName qname = reader.getName();
+
+ ModelMarshaller marshaller = unmarshallerRegistry.get(qname);
+ if(marshaller == null) {
+ throw new MarshallException("No marshaller defined for " + qname);
+ }
+ return marshaller.unmarshall(reader);
+
}
}
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=512057&r1=512056&r2=512057
==============================================================================
--- 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 Mon Feb 26 14:55:33 2007
@@ -31,7 +31,7 @@
import org.apache.commons.codec.binary.Base64;
import org.apache.tuscany.core.component.JavaPhysicalComponentDefinition;
-import org.apache.tuscany.spi.marshaller.MarshalException;
+import org.apache.tuscany.spi.marshaller.MarshallException;
import org.apache.tuscany.spi.marshaller.ModelMarshaller;
/**
@@ -65,9 +65,9 @@
*
* @param modelObject Component definition object to be serialized.
* @param writer Stream writer to which the infoset is serialized.
- * @throws MarshalException In case of any marshalling error.
+ * @throws MarshallException In case of any marshalling error.
*/
- public void marshall(JavaPhysicalComponentDefinition modelObject, XMLStreamWriter writer) throws MarshalException {
+ public void marshall(JavaPhysicalComponentDefinition modelObject, XMLStreamWriter writer) throws MarshallException {
try {
@@ -90,7 +90,7 @@
writer.flush();
} catch (XMLStreamException ex) {
- throw new MarshalException(ex);
+ throw new MarshallException(ex);
}
}
@@ -99,9 +99,9 @@
*
* @param reader XML stream from where the marshalled XML is read.
* @return Hydrated component definition object.
- * @throws MarshalException In case of any unmarshalling error.
+ * @throws MarshallException In case of any unmarshalling error.
*/
- public JavaPhysicalComponentDefinition unmarshall(XMLStreamReader reader) throws MarshalException {
+ public JavaPhysicalComponentDefinition unmarshall(XMLStreamReader reader) throws MarshallException {
try {
@@ -121,15 +121,15 @@
}
if (definition.getComponentId() == null || definition.getInstanceFactoryByteCode() == null) {
- throw new MarshalException("Invalid component definition");
+ throw new MarshallException("Invalid component definition");
}
return definition;
} catch (XMLStreamException ex) {
- throw new MarshalException(ex);
+ throw new MarshallException(ex);
} catch (URISyntaxException ex) {
- throw new MarshalException(ex);
+ throw new MarshallException(ex);
}
}
Copied: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/marshaller/MarshallException.java (from r511874, incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/marshaller/MarshalException.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/marshaller/MarshallException.java?view=diff&rev=512057&p1=incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/marshaller/MarshalException.java&r1=511874&p2=incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/marshaller/MarshallException.java&r2=512057
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/marshaller/MarshalException.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/marshaller/MarshallException.java Mon Feb 26 14:55:33 2007
@@ -26,14 +26,14 @@
* @version $Rev$ $Date$
*/
@SuppressWarnings("serial")
-public class MarshalException extends TuscanyException {
+public class MarshallException extends TuscanyException {
/**
* Initializes the exception message.
*
* @param message Message for the exception.
*/
- public MarshalException(String message) {
+ public MarshallException(String message) {
super(message);
}
@@ -42,7 +42,7 @@
*
* @param cause Root cause for the exception.
*/
- public MarshalException(Throwable cause) {
+ public MarshallException(Throwable cause) {
super(cause);
}
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/marshaller/ModelMarshaller.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/marshaller/ModelMarshaller.java?view=diff&rev=512057&r1=512056&r2=512057
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/marshaller/ModelMarshaller.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/marshaller/ModelMarshaller.java Mon Feb 26 14:55:33 2007
@@ -36,17 +36,17 @@
*
* @param modelObject Physical component definition to be serialized.
* @param writer Stream writer to which the infoset is serialized.
- * @throws MarshalException In case of any marshalling error.
+ * @throws MarshallException In case of any marshalling error.
*/
- void marshall(MD modelObject, XMLStreamWriter writer) throws MarshalException;
+ void marshall(MD modelObject, XMLStreamWriter writer) throws MarshallException;
/**
* Unmarshalls an XML stream to a model object.
*
* @param reader XML stream from where the marshalled XML is read.
* @return Physical component definition.
- * @throws MarshalException In case of any unmarshalling error.
+ * @throws MarshallException In case of any unmarshalling error.
*/
- MD unmarshall(XMLStreamReader reader) throws MarshalException;
+ MD unmarshall(XMLStreamReader reader) throws MarshallException;
}
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/marshaller/ModelMarshallerRegistry.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/marshaller/ModelMarshallerRegistry.java?view=diff&rev=512057&r1=512056&r2=512057
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/marshaller/ModelMarshallerRegistry.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/marshaller/ModelMarshallerRegistry.java Mon Feb 26 14:55:33 2007
@@ -23,7 +23,6 @@
import javax.xml.stream.XMLStreamWriter;
import org.apache.tuscany.spi.model.ModelObject;
-import org.apache.tuscany.spi.model.physical.PhysicalChangeSet;
/**
* A registry for model object marshallers.
@@ -43,37 +42,19 @@
<MD extends ModelObject> void registerMarshaller(Class<MD> modelClass, QName qname, ModelMarshaller<MD> marshaller);
/**
- * Gets a marshaller for marshalling.
+ * Marshalls a model object.
*
- * @param <MD> Model object type.
- * @param modelClass Model obejct class.
- * @return Model object marshaller.
- */
- <MD extends ModelObject> ModelMarshaller<MD> getMarshaller(Class<MD> modelClass);
-
- /**
- * Gets a marshaller for unmarshalling.
- *
- * @param <MD> Model object type.
- * @param qname Qualified name of the root element of the marshalled XML.
- * @return Model object marshaller.
- */
- <MD extends ModelObject> ModelMarshaller<MD> getMarshaller(QName qname);
-
- /**
- * Marshalls a physical change set.
- *
- * @param changeSet Physical chaneg set to be marshalled.
+ * @param modelObject Model object to be marshalled.
* @param writer Writer to which marshalled information is written.
*/
- void marshall(PhysicalChangeSet changeSet, XMLStreamWriter writer);
+ void marshall(ModelObject modelObject, XMLStreamWriter writer) throws MarshallException;
/**
- * Unmarshalls an XML stream to a physical change set.
+ * Unmarshalls an XML stream to a model object.
*
* @param reader Reader from which marshalled information is read.
- * @return Physical chnage set from the marshalled stream.
+ * @return Model object from the marshalled stream.
*/
- PhysicalChangeSet unmarshall(XMLStreamReader reader);
+ ModelObject unmarshall(XMLStreamReader reader) throws MarshallException;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org