You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by lr...@apache.org on 2009/01/17 18:28:19 UTC
svn commit: r735314 - in /tuscany/branches/sca-java-1.3.3/modules:
assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/
assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/
assembly/src/main/java/org/apache/tuscany/sca/assembly/ a...
Author: lresende
Date: Sat Jan 17 09:28:17 2009
New Revision: 735314
URL: http://svn.apache.org/viewvc?rev=735314&view=rev
Log:
TUSCANY-2463 - Merging latest support for extended attributes from 1.x branch
Added:
tuscany/branches/sca-java-1.3.3/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/DefaultExtensionFactory.java
- copied, changed from r735283, tuscany/branches/sca-java-1.3.3/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Extensible.java
tuscany/branches/sca-java-1.3.3/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Extension.java
- copied, changed from r735283, tuscany/branches/sca-java-1.3.3/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Extensible.java
tuscany/branches/sca-java-1.3.3/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/ExtensionFactory.java
- copied, changed from r735283, tuscany/branches/sca-java-1.3.3/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Extensible.java
tuscany/branches/sca-java-1.3.3/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ExtensionImpl.java
- copied, changed from r735283, tuscany/branches/sca-java-1.3.3/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ExtensibleImpl.java
tuscany/branches/sca-java-1.3.3/modules/assembly/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.ExtensionFactory
tuscany/branches/sca-java-1.3.3/modules/contribution-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXAttributeProcessor
Modified:
tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/BaseAssemblyProcessor.java
tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ComponentTypeDocumentProcessor.java
tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ComponentTypeProcessor.java
tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeDocumentProcessor.java
tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java
tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ConstrainingTypeDocumentProcessor.java
tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ConstrainingTypeProcessor.java
tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/DefaultBeanModelProcessor.java
tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ReadWriteAnyAttributeTestCase.java
tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/TestAttributeProcessor.java
tuscany/branches/sca-java-1.3.3/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Extensible.java
tuscany/branches/sca-java-1.3.3/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ExtensibleImpl.java
tuscany/branches/sca-java-1.3.3/modules/binding-sca/src/main/java/org/apache/tuscany/sca/binding/sca/impl/SCABindingImpl.java
tuscany/branches/sca-java-1.3.3/modules/binding-ws/src/main/java/org/apache/tuscany/sca/binding/ws/impl/WebServiceBindingImpl.java
tuscany/branches/sca-java-1.3.3/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/processor/xml/AnyAttributeProcessor.java
tuscany/branches/sca-java-1.3.3/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultStAXArtifactProcessorExtensionPoint.java
tuscany/branches/sca-java-1.3.3/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ExtensibleStAXAttributeProcessor.java
tuscany/branches/sca-java-1.3.3/modules/core-spring/src/main/java/org/apache/tuscany/sca/core/spring/assembly/impl/BeanComponentImpl.java
tuscany/branches/sca-java-1.3.3/modules/core-spring/src/main/java/org/apache/tuscany/sca/core/spring/implementation/java/impl/BeanBaseJavaImplementationImpl.java
Modified: tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/BaseAssemblyProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/BaseAssemblyProcessor.java?rev=735314&r1=735313&r2=735314&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/BaseAssemblyProcessor.java (original)
+++ tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/BaseAssemblyProcessor.java Sat Jan 17 09:28:17 2009
@@ -50,6 +50,8 @@
import org.apache.tuscany.sca.assembly.ConstrainingType;
import org.apache.tuscany.sca.assembly.Contract;
import org.apache.tuscany.sca.assembly.Extensible;
+import org.apache.tuscany.sca.assembly.Extension;
+import org.apache.tuscany.sca.assembly.ExtensionFactory;
import org.apache.tuscany.sca.assembly.Implementation;
import org.apache.tuscany.sca.assembly.Multiplicity;
import org.apache.tuscany.sca.assembly.OperationsConfigurator;
@@ -93,6 +95,7 @@
protected ContributionFactory contributionFactory;
protected AssemblyFactory assemblyFactory;
+ protected ExtensionFactory extensionFactory;
protected PolicyFactory policyFactory;
protected StAXArtifactProcessor<Object> extensionProcessor;
protected PolicyAttachPointProcessor policyProcessor;
@@ -103,16 +106,18 @@
/**
* Constructs a new BaseArtifactProcessor.
* @param contribFactory
- * @param factory
+ * @param assemblyFactory
* @param policyFactory
*/
@SuppressWarnings("unchecked")
public BaseAssemblyProcessor(ContributionFactory contribFactory,
- AssemblyFactory factory,
+ AssemblyFactory assemblyFactory,
+ ExtensionFactory extensionFactory,
PolicyFactory policyFactory,
StAXArtifactProcessor extensionProcessor,
Monitor monitor) {
- this.assemblyFactory = factory;
+ this.assemblyFactory = assemblyFactory;
+ this.extensionFactory = extensionFactory;
this.policyFactory = policyFactory;
this.extensionProcessor = (StAXArtifactProcessor<Object>)extensionProcessor;
this.contributionFactory = contribFactory;
@@ -123,21 +128,21 @@
/**
* Constructs a new BaseArtifactProcessor.
- * @param factory
+ * @param assemblyFactory
* @param policyFactory
*/
@SuppressWarnings("unchecked")
- public BaseAssemblyProcessor(AssemblyFactory factory,
+ public BaseAssemblyProcessor(AssemblyFactory assemblyFactory,
+ ExtensionFactory extensionFactory,
PolicyFactory policyFactory,
StAXArtifactProcessor extensionProcessor,
Monitor monitor) {
- this.assemblyFactory = factory;
+ this.assemblyFactory = assemblyFactory;
+ this.extensionFactory = extensionFactory;
this.policyFactory = policyFactory;
this.extensionProcessor = (StAXArtifactProcessor<Object>)extensionProcessor;
this.policyProcessor = new PolicyAttachPointProcessor(policyFactory);
this.monitor = monitor;
-
- //TODO - this constructor should take a monitor too.
}
/**
@@ -856,6 +861,7 @@
}
}
+
/**
*
* @param reader
@@ -866,15 +872,21 @@
* @throws XMLStreamException
*/
protected void readExtendedAttributes(XMLStreamReader reader, QName elementName, Extensible estensibleElement, StAXAttributeProcessor extensionAttributeProcessor) throws ContributionReadException, XMLStreamException {
- for (int a = 0; a < reader.getAttributeCount(); a++) {
- QName attributeName = reader.getAttributeName(a);
- if( attributeName.getNamespaceURI() != null && attributeName.getNamespaceURI().length() > 0) {
- if( ! elementName.getNamespaceURI().equals(attributeName.getNamespaceURI()) ) {
- String attributeExtension = (String) extensionAttributeProcessor.read(attributeName, reader);
- estensibleElement.getExtensions().add(attributeExtension);
- }
- }
- }
+ for (int a = 0; a < reader.getAttributeCount(); a++) {
+ QName attributeName = reader.getAttributeName(a);
+ if( attributeName.getNamespaceURI() != null && attributeName.getNamespaceURI().length() > 0) {
+ if( ! elementName.getNamespaceURI().equals(attributeName.getNamespaceURI()) ) {
+ Object attributeValue = extensionAttributeProcessor.read(attributeName, reader);
+ Extension attributeExtension;
+ if (attributeValue instanceof Extension) {
+ attributeExtension = (Extension) attributeValue;
+ } else {
+ attributeExtension = extensionFactory.createExtension(attributeName, attributeValue, true);
+ }
+ estensibleElement.getAttributeExtensions().add(attributeExtension);
+ }
+ }
+ }
}
@@ -888,11 +900,10 @@
* @throws XMLStreamException
*/
protected void writeExtendedAttributes(XMLStreamWriter writer, Extensible extensibleElement, StAXAttributeProcessor extensionAttributeProcessor) throws ContributionWriteException, XMLStreamException {
- for(Object o : extensibleElement.getExtensions()) {
- //FIXME How to identify it's a extended attribute ?
- if(o instanceof String) {
- extensionAttributeProcessor.write(o, writer);
- }
+ for(Extension extension : extensibleElement.getAttributeExtensions()) {
+ if(extension.isAttribute()) {
+ extensionAttributeProcessor.write(extension, writer);
+ }
}
}
Modified: tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ComponentTypeDocumentProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ComponentTypeDocumentProcessor.java?rev=735314&r1=735313&r2=735314&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ComponentTypeDocumentProcessor.java (original)
+++ tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ComponentTypeDocumentProcessor.java Sat Jan 17 09:28:17 2009
@@ -56,7 +56,7 @@
public ComponentTypeDocumentProcessor(StAXArtifactProcessor staxProcessor,
XMLInputFactory inputFactory,
Monitor monitor) {
- super(null, null, staxProcessor, monitor);
+ super(null, null, null, staxProcessor, monitor);
this.inputFactory = inputFactory;
}
@@ -68,7 +68,7 @@
public ComponentTypeDocumentProcessor(ModelFactoryExtensionPoint modelFactories,
StAXArtifactProcessor staxProcessor,
Monitor monitor) {
- super(null, null, staxProcessor, monitor);
+ super(null, null, null, staxProcessor, monitor);
this.inputFactory = modelFactories.getFactory(ValidatingXMLInputFactory.class);
}
Modified: tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ComponentTypeProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ComponentTypeProcessor.java?rev=735314&r1=735313&r2=735314&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ComponentTypeProcessor.java (original)
+++ tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ComponentTypeProcessor.java Sat Jan 17 09:28:17 2009
@@ -33,6 +33,7 @@
import org.apache.tuscany.sca.assembly.ComponentType;
import org.apache.tuscany.sca.assembly.Contract;
import org.apache.tuscany.sca.assembly.Extensible;
+import org.apache.tuscany.sca.assembly.ExtensionFactory;
import org.apache.tuscany.sca.assembly.Property;
import org.apache.tuscany.sca.assembly.Reference;
import org.apache.tuscany.sca.assembly.Service;
@@ -65,9 +66,11 @@
* @param policyFactory
* @param registry
*/
- public ComponentTypeProcessor(AssemblyFactory factory, PolicyFactory policyFactory,
+ public ComponentTypeProcessor(AssemblyFactory factory,
+ ExtensionFactory extensionFactory,
+ PolicyFactory policyFactory,
StAXArtifactProcessor extensionProcessor, StAXAttributeProcessor extensionAttributeProcessor, Monitor monitor) {
- super(factory, policyFactory, extensionProcessor, monitor);
+ super(factory, extensionFactory, policyFactory, extensionProcessor, monitor);
}
/**
@@ -81,7 +84,10 @@
StAXAttributeProcessor extensionAttributeProcessor,
Monitor monitor) {
super(modelFactories.getFactory(AssemblyFactory.class),
- modelFactories.getFactory(PolicyFactory.class), extensionProcessor, monitor);
+ modelFactories.getFactory(ExtensionFactory.class),
+ modelFactories.getFactory(PolicyFactory.class),
+ extensionProcessor,
+ monitor);
}
public ComponentType read(XMLStreamReader reader) throws ContributionReadException {
Modified: tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeDocumentProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeDocumentProcessor.java?rev=735314&r1=735313&r2=735314&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeDocumentProcessor.java (original)
+++ tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeDocumentProcessor.java Sat Jan 17 09:28:17 2009
@@ -67,7 +67,7 @@
*/
public CompositeDocumentProcessor(StAXArtifactProcessor staxProcessor,
XMLInputFactory inputFactory, List scaDefnsSink, Monitor monitor) {
- super(null, null, staxProcessor, monitor);
+ super(null, null, null, staxProcessor, monitor);
this.inputFactory = inputFactory;
this.scaDefnSink = scaDefnsSink;
}
@@ -79,7 +79,7 @@
*/
public CompositeDocumentProcessor(ModelFactoryExtensionPoint modelFactories,
StAXArtifactProcessor staxProcessor, Monitor monitor) {
- super(null, null, staxProcessor, monitor);
+ super(null, null, null, staxProcessor, monitor);
this.inputFactory = modelFactories.getFactory(ValidatingXMLInputFactory.class);
}
Modified: tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java?rev=735314&r1=735313&r2=735314&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java (original)
+++ tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java Sat Jan 17 09:28:17 2009
@@ -49,6 +49,7 @@
import org.apache.tuscany.sca.assembly.ConfiguredOperation;
import org.apache.tuscany.sca.assembly.ConstrainingType;
import org.apache.tuscany.sca.assembly.Contract;
+import org.apache.tuscany.sca.assembly.ExtensionFactory;
import org.apache.tuscany.sca.assembly.Implementation;
import org.apache.tuscany.sca.assembly.OperationsConfigurator;
import org.apache.tuscany.sca.assembly.Property;
@@ -124,6 +125,7 @@
super(modelFactories.getFactory(ContributionFactory.class),
modelFactories.getFactory(AssemblyFactory.class),
+ modelFactories.getFactory(ExtensionFactory.class),
modelFactories.getFactory(PolicyFactory.class),
extensionProcessor,
monitor);
@@ -142,11 +144,12 @@
*/
public CompositeProcessor(ContributionFactory contributionFactory,
AssemblyFactory assemblyFactory,
+ ExtensionFactory extensionFactory,
PolicyFactory policyFactory,
StAXArtifactProcessor extensionProcessor,
StAXAttributeProcessor extensionAttributeProcessor,
Monitor monitor) {
- super(contributionFactory, assemblyFactory, policyFactory, extensionProcessor, monitor);
+ super(contributionFactory, assemblyFactory, extensionFactory, policyFactory, extensionProcessor, monitor);
}
public Composite read(XMLStreamReader reader) throws ContributionReadException {
Modified: tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ConstrainingTypeDocumentProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ConstrainingTypeDocumentProcessor.java?rev=735314&r1=735313&r2=735314&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ConstrainingTypeDocumentProcessor.java (original)
+++ tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ConstrainingTypeDocumentProcessor.java Sat Jan 17 09:28:17 2009
@@ -56,7 +56,7 @@
public ConstrainingTypeDocumentProcessor(StAXArtifactProcessor staxProcessor,
XMLInputFactory inputFactory,
Monitor monitor) {
- super(null, null, staxProcessor, monitor);
+ super(null, null, null, staxProcessor, monitor);
this.inputFactory = inputFactory;
}
@@ -68,7 +68,7 @@
public ConstrainingTypeDocumentProcessor(ModelFactoryExtensionPoint modelFactories,
StAXArtifactProcessor staxProcessor,
Monitor monitor) {
- super(null, null, staxProcessor, monitor);
+ super(null, null, null, staxProcessor, monitor);
this.inputFactory = modelFactories.getFactory(ValidatingXMLInputFactory.class);
}
Modified: tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ConstrainingTypeProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ConstrainingTypeProcessor.java?rev=735314&r1=735313&r2=735314&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ConstrainingTypeProcessor.java (original)
+++ tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ConstrainingTypeProcessor.java Sat Jan 17 09:28:17 2009
@@ -33,6 +33,7 @@
import org.apache.tuscany.sca.assembly.AbstractService;
import org.apache.tuscany.sca.assembly.AssemblyFactory;
import org.apache.tuscany.sca.assembly.ConstrainingType;
+import org.apache.tuscany.sca.assembly.ExtensionFactory;
import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
@@ -55,13 +56,16 @@
/**
* Construct a new constrainingType processor.
- * @param factory
+ * @param assemblyFactory
* @param policyFactory
* @param extensionProcessor
*/
- public ConstrainingTypeProcessor(AssemblyFactory factory, PolicyFactory policyFactory,
- StAXArtifactProcessor extensionProcessor, Monitor monitor) {
- super(factory, policyFactory, extensionProcessor, monitor);
+ public ConstrainingTypeProcessor(AssemblyFactory assemblyFactory,
+ ExtensionFactory extensionFactory,
+ PolicyFactory policyFactory,
+ StAXArtifactProcessor extensionProcessor,
+ Monitor monitor) {
+ super(assemblyFactory, extensionFactory, policyFactory, extensionProcessor, monitor);
}
/**
@@ -74,7 +78,10 @@
StAXArtifactProcessor extensionProcessor,
Monitor monitor) {
super(modelFactories.getFactory(AssemblyFactory.class),
- modelFactories.getFactory(PolicyFactory.class), extensionProcessor, monitor);
+ modelFactories.getFactory(ExtensionFactory.class),
+ modelFactories.getFactory(PolicyFactory.class),
+ extensionProcessor,
+ monitor);
}
public ConstrainingType read(XMLStreamReader reader) throws ContributionReadException {
Modified: tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/DefaultBeanModelProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/DefaultBeanModelProcessor.java?rev=735314&r1=735313&r2=735314&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/DefaultBeanModelProcessor.java (original)
+++ tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/DefaultBeanModelProcessor.java Sat Jan 17 09:28:17 2009
@@ -35,13 +35,14 @@
import org.apache.tuscany.sca.assembly.AssemblyFactory;
import org.apache.tuscany.sca.assembly.Base;
import org.apache.tuscany.sca.assembly.ComponentType;
+import org.apache.tuscany.sca.assembly.ExtensionFactory;
import org.apache.tuscany.sca.assembly.Implementation;
-import org.apache.tuscany.sca.monitor.Monitor;
import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
import org.apache.tuscany.sca.contribution.service.ContributionReadException;
import org.apache.tuscany.sca.contribution.service.ContributionResolveException;
import org.apache.tuscany.sca.contribution.service.ContributionWriteException;
+import org.apache.tuscany.sca.monitor.Monitor;
import org.apache.tuscany.sca.policy.PolicyFactory;
import org.apache.tuscany.sca.policy.PolicySetAttachPoint;
@@ -60,12 +61,13 @@
private Map<String, Method> getterMethods = new HashMap<String, Method>();
public DefaultBeanModelProcessor(AssemblyFactory assemblyFactory,
- PolicyFactory policyFactory,
- QName artifactType,
- Class<Implementation> modelClass,
- Object modelFactory,
- Monitor monitor) {
- super(assemblyFactory, policyFactory, null, monitor);
+ ExtensionFactory extensionFactory,
+ PolicyFactory policyFactory,
+ QName artifactType,
+ Class<Implementation> modelClass,
+ Object modelFactory,
+ Monitor monitor) {
+ super(assemblyFactory, extensionFactory, policyFactory, null, monitor);
this.artifactType = artifactType;
this.modelClass = modelClass;
this.modelFactory = modelFactory;
Modified: tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ReadWriteAnyAttributeTestCase.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ReadWriteAnyAttributeTestCase.java?rev=735314&r1=735313&r2=735314&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ReadWriteAnyAttributeTestCase.java (original)
+++ tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ReadWriteAnyAttributeTestCase.java Sat Jan 17 09:28:17 2009
@@ -19,100 +19,114 @@
package org.apache.tuscany.sca.assembly.xml;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
import java.io.ByteArrayOutputStream;
-import java.io.InputStream;
+import java.io.StringReader;
import javax.xml.namespace.QName;
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLOutputFactory;
import javax.xml.stream.XMLStreamReader;
-import junit.framework.TestCase;
-
import org.apache.tuscany.sca.assembly.Composite;
import org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor;
-import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint;
+import org.apache.tuscany.sca.contribution.processor.StAXAttributeProcessor;
import org.apache.tuscany.sca.contribution.processor.StAXAttributeProcessorExtensionPoint;
import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry;
import org.apache.tuscany.sca.core.ExtensionPointRegistry;
+import org.junit.Test;
/**
* Test reading SCA XML assemblies.
*
* @version $Rev$ $Date$
*/
-public class ReadWriteAnyAttributeTestCase extends TestCase {
+public class ReadWriteAnyAttributeTestCase {
- private XMLInputFactory inputFactory;
- private ExtensibleStAXArtifactProcessor staxProcessor;
-
- private static final QName ATTRIBUTE = new QName("http://test", "customAttribute");
+ private static final QName EXTENDED_ATTRIBUTE = new QName("http://test", "customAttribute");
- // implementation.java for CalculatorServiceComponent appears in a strange place as the
- // java implementation extension is not loaded and hence they are loaded as any elements
private static final String XML = "<?xml version='1.0' encoding='UTF-8'?>"+
- "<composite xmlns=\"http://www.osoa.org/xmlns/sca/1.0\" xmlns:ns1=\"http://www.osoa.org/xmlns/sca/1.0\" targetNamespace=\"http://calc\" name=\"Calculator\">"+
- "<service name=\"CalculatorService\" promote=\"CalculatorServiceComponent\">"+
- "<interface.java interface=\"calculator.CalculatorService\" />"+
- "</service>"+
- "<component name=\"CalculatorServiceComponent\" customAttribute=\"customValue\">"+
- "<implementation.java class=\"calculator.CalculatorServiceImpl\" />"+
- "<reference name=\"addService\" target=\"AddServiceComponent\" />"+
- "<reference name=\"subtractService\" target=\"SubtractServiceComponent\" />"+
- "<reference name=\"multiplyService\" target=\"MultiplyServiceComponent\" />"+
- "<reference name=\"divideService\" target=\"DivideServiceComponent\" />"+
- "</component>"+
- "<component name=\"AddServiceComponent\">"+
- "<implementation.java class=\"calculator.AddServiceImpl\" />"+
- "</component>"+
- "<component name=\"SubtractServiceComponent\">"+
- "<implementation.java class=\"calculator.SubtractServiceImpl\" />"+
- "</component>"+
- "<component name=\"MultiplyServiceComponent\">"+
- "<implementation.java class=\"calculator.MultiplyServiceImpl\" />"+
- "</component>"+
- "<component name=\"DivideServiceComponent\">"+
- "<implementation.java class=\"calculator.DivideServiceImpl\" />"+
- "</component>"+
- "</composite>";
+ "<composite xmlns=\"http://www.osoa.org/xmlns/sca/1.0\" " +
+ "xmlns:ns1=\"http://www.osoa.org/xmlns/sca/1.0\" " +
+ "targetNamespace=\"http://calc\" " +
+ "name=\"Calculator\">"+
+ "<component name=\"AddServiceComponent\" xmlns:test=\"http://test\" test:customAttribute=\"customValue\">"+
+ "<implementation.java class=\"calculator.AddServiceImpl\" />"+
+ "</component>"+
+ "</composite>";
- @Override
- public void setUp() throws Exception {
- ExtensionPointRegistry extensionPoints = new DefaultExtensionPointRegistry();
- inputFactory = XMLInputFactory.newInstance();
- StAXArtifactProcessorExtensionPoint staxProcessors = extensionPoints.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class);
-
- StAXAttributeProcessorExtensionPoint staxAttributeProcessors = extensionPoints.getExtensionPoint(StAXAttributeProcessorExtensionPoint.class);
- staxAttributeProcessors.addArtifactProcessor(new TestAttributeProcessor());
-
- staxProcessor = new ExtensibleStAXArtifactProcessor(staxProcessors, XMLInputFactory.newInstance(), XMLOutputFactory.newInstance(), null);
- }
+ private XMLInputFactory inputFactory;
+ private ExtensibleStAXArtifactProcessor staxProcessor;
+
- @Override
- public void tearDown() throws Exception {
+ /**
+ * Initialize the test environment
+ * This takes care to register attribute processors when provided
+ *
+ * @param attributeProcessor
+ * @throws Exception
+ */
+ private void init(StAXAttributeProcessor<?> attributeProcessor) throws Exception {
+ ExtensionPointRegistry extensionPoints = new DefaultExtensionPointRegistry();
+ inputFactory = XMLInputFactory.newInstance();
+ StAXArtifactProcessorExtensionPoint staxProcessors = extensionPoints.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class);
+
+ if(attributeProcessor != null) {
+ StAXAttributeProcessorExtensionPoint staxAttributeProcessors = extensionPoints.getExtensionPoint(StAXAttributeProcessorExtensionPoint.class);
+ staxAttributeProcessors.addArtifactProcessor(attributeProcessor);
+ }
+ staxProcessor = new ExtensibleStAXArtifactProcessor(staxProcessors, XMLInputFactory.newInstance(), XMLOutputFactory.newInstance(), null);
}
- public void testReadComposite() throws Exception {
- InputStream is = getClass().getResourceAsStream("CalculatorExtended.composite");
- XMLStreamReader reader = inputFactory.createXMLStreamReader(is);
- Composite composite = (Composite) staxProcessor.read(reader);
- assertNotNull(composite);
- is.close();
+ /**
+ * Read and Write a composite that has a extended attribute
+ * and a particular attribute processor
+ * @throws Exception
+ */
+ @Test
+ public void testReadWriteCompositeWithAttributeProcessor() throws Exception {
+ init(new TestAttributeProcessor());
+
+ XMLStreamReader reader = inputFactory.createXMLStreamReader(new StringReader(XML));
+ Composite composite = (Composite) staxProcessor.read(reader);
+ assertNotNull(composite);
+ reader.close();
+
+ ByteArrayOutputStream bos = new ByteArrayOutputStream();
+ staxProcessor.write(composite, bos);
+
+ // used for debug comparison
+ // System.out.println(XML);
+ // System.out.println(bos.toString());
+
+ assertEquals(XML, bos.toString());
}
-
- public void testWriteComposite() throws Exception {
- InputStream is = getClass().getResourceAsStream("CalculatorExtended.composite");
- XMLStreamReader reader = inputFactory.createXMLStreamReader(is);
- Composite composite = (Composite) staxProcessor.read(reader);
- assertNotNull(composite);
- is.close();
-
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
- staxProcessor.write(composite, bos);
- System.out.println(bos.toString());
-
- assertEquals(XML, bos.toString());
+
+ /**
+ * Read and Write a composite that has a extended attribute
+ * but no particular processor for it
+ * @throws Exception
+ */
+ @Test
+ public void testDefaultReadWriteComposite() throws Exception {
+ init(null);
+
+ XMLStreamReader reader = inputFactory.createXMLStreamReader(new StringReader(XML));
+ Composite composite = (Composite) staxProcessor.read(reader);
+ assertNotNull(composite);
+ reader.close();
+
+ ByteArrayOutputStream bos = new ByteArrayOutputStream();
+ staxProcessor.write(composite, bos);
+
+ // used for debug comparison
+ // System.out.println(XML);
+ // System.out.println(bos.toString());
+
+ assertEquals(XML, bos.toString());
}
}
Modified: tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/TestAttributeProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/TestAttributeProcessor.java?rev=735314&r1=735313&r2=735314&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/TestAttributeProcessor.java (original)
+++ tuscany/branches/sca-java-1.3.3/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/TestAttributeProcessor.java Sat Jan 17 09:28:17 2009
@@ -36,7 +36,7 @@
* @version $Rev$ $Date$
*/
public class TestAttributeProcessor extends BaseStAXArtifactProcessor implements StAXAttributeProcessor<String> {
- private static final QName ATTRIBUTE = new QName("http://test", "customAttribute");
+ private static final QName ATTRIBUTE = new QName("http://test", "customAttribute", "test");
public QName getArtifactType() {
return ATTRIBUTE;
@@ -47,15 +47,14 @@
}
public void write(String value, XMLStreamWriter writer) throws ContributionWriteException, XMLStreamException {
- writer.setPrefix(ATTRIBUTE.getPrefix(), ATTRIBUTE.getNamespaceURI());
- writer.writeAttribute(ATTRIBUTE.getLocalPart(), value);
+ writer.writeAttribute(ATTRIBUTE.getPrefix(), ATTRIBUTE.getNamespaceURI(),ATTRIBUTE.getLocalPart(), value);
}
public Class<String> getModelType() {
- return String.class;
+ return null;
}
public void resolve(String arg0, ModelResolver arg1) throws ContributionResolveException {
}
-}
+}
\ No newline at end of file
Copied: tuscany/branches/sca-java-1.3.3/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/DefaultExtensionFactory.java (from r735283, tuscany/branches/sca-java-1.3.3/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Extensible.java)
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.3.3/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/DefaultExtensionFactory.java?p2=tuscany/branches/sca-java-1.3.3/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/DefaultExtensionFactory.java&p1=tuscany/branches/sca-java-1.3.3/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Extensible.java&r1=735283&r2=735314&rev=735314&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.3.3/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Extensible.java (original)
+++ tuscany/branches/sca-java-1.3.3/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/DefaultExtensionFactory.java Sat Jan 17 09:28:17 2009
@@ -16,22 +16,21 @@
* specific language governing permissions and limitations
* under the License.
*/
+
package org.apache.tuscany.sca.assembly;
-import java.util.List;
+import javax.xml.namespace.QName;
-/**
- * Base interface for extensible assembly model objects.
- *
- * @version $Rev$ $Date$
- */
-public interface Extensible {
+import org.apache.tuscany.sca.assembly.impl.ExtensionImpl;
+
+public class DefaultExtensionFactory implements ExtensionFactory {
+
+ public Extension createExtension() {
+ return new ExtensionImpl();
+ }
- /**
- * Returns a list of extension objects contained in this model object.
- *
- * @return a list of extension objects container in this model object
- */
- List<Object> getExtensions();
+ public Extension createExtension(QName name, Object value, boolean isAttribute) {
+ return new ExtensionImpl(name, value, isAttribute);
+ }
}
Modified: tuscany/branches/sca-java-1.3.3/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Extensible.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.3.3/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Extensible.java?rev=735314&r1=735313&r2=735314&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.3.3/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Extensible.java (original)
+++ tuscany/branches/sca-java-1.3.3/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Extensible.java Sat Jan 17 09:28:17 2009
@@ -33,5 +33,12 @@
* @return a list of extension objects container in this model object
*/
List<Object> getExtensions();
+
+ /**
+ * Returns a list of attribute extensions contained in this model object
+ *
+ * @return a list of attribute extensions contained in this model object
+ */
+ List<Extension> getAttributeExtensions();
}
Copied: tuscany/branches/sca-java-1.3.3/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Extension.java (from r735283, tuscany/branches/sca-java-1.3.3/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Extensible.java)
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.3.3/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Extension.java?p2=tuscany/branches/sca-java-1.3.3/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Extension.java&p1=tuscany/branches/sca-java-1.3.3/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Extensible.java&r1=735283&r2=735314&rev=735314&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.3.3/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Extensible.java (original)
+++ tuscany/branches/sca-java-1.3.3/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Extension.java Sat Jan 17 09:28:17 2009
@@ -18,20 +18,48 @@
*/
package org.apache.tuscany.sca.assembly;
-import java.util.List;
+import javax.xml.namespace.QName;
/**
- * Base interface for extensible assembly model objects.
+ * Base interface for storing contents of extensible assembly model objects.
*
* @version $Rev$ $Date$
*/
-public interface Extensible {
-
- /**
- * Returns a list of extension objects contained in this model object.
- *
- * @return a list of extension objects container in this model object
- */
- List<Object> getExtensions();
+public interface Extension {
+ /**
+ * Return QName for the extension
+ * @return the extension QName
+ */
+ QName getQName();
+
+ /**
+ * Set QName for the extension
+ * @param qName the extension QName
+ */
+ void setQName(QName qName);
+
+ /**
+ * Return the original extension value
+ * @return the extension value
+ */
+ Object getValue();
+
+ /**
+ * Set the original extension value
+ * @param value the extension value
+ */
+ void setValue(Object value);
+
+ /**
+ * Return whether or not the extension is an attribute
+ * @return
+ */
+ boolean isAttribute();
+
+ /**
+ * Set whether or not the extension is an attribute
+ * @param value
+ */
+ void setIsAttribute(boolean isAttribute);
}
Copied: tuscany/branches/sca-java-1.3.3/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/ExtensionFactory.java (from r735283, tuscany/branches/sca-java-1.3.3/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Extensible.java)
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.3.3/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/ExtensionFactory.java?p2=tuscany/branches/sca-java-1.3.3/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/ExtensionFactory.java&p1=tuscany/branches/sca-java-1.3.3/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Extensible.java&r1=735283&r2=735314&rev=735314&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.3.3/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Extensible.java (original)
+++ tuscany/branches/sca-java-1.3.3/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/ExtensionFactory.java Sat Jan 17 09:28:17 2009
@@ -18,20 +18,11 @@
*/
package org.apache.tuscany.sca.assembly;
-import java.util.List;
+import javax.xml.namespace.QName;
-/**
- * Base interface for extensible assembly model objects.
- *
- * @version $Rev$ $Date$
- */
-public interface Extensible {
-
- /**
- * Returns a list of extension objects contained in this model object.
- *
- * @return a list of extension objects container in this model object
- */
- List<Object> getExtensions();
+public interface ExtensionFactory {
+ Extension createExtension();
+
+ Extension createExtension(QName qName, Object value, boolean isAttribute);
}
Modified: tuscany/branches/sca-java-1.3.3/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ExtensibleImpl.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.3.3/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ExtensibleImpl.java?rev=735314&r1=735313&r2=735314&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.3.3/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ExtensibleImpl.java (original)
+++ tuscany/branches/sca-java-1.3.3/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ExtensibleImpl.java Sat Jan 17 09:28:17 2009
@@ -22,6 +22,7 @@
import java.util.List;
import org.apache.tuscany.sca.assembly.Extensible;
+import org.apache.tuscany.sca.assembly.Extension;
/**
* Convenience base class for extensible assembly model objects.
@@ -30,6 +31,7 @@
*/
public abstract class ExtensibleImpl extends BaseImpl implements Extensible {
private List<Object> extensions = new ArrayList<Object>();
+ private List<Extension> attributeExtensions = new ArrayList<Extension>();
/**
* Constructs a new base model object.
@@ -40,5 +42,8 @@
public List<Object> getExtensions() {
return extensions;
}
-
+
+ public List<Extension> getAttributeExtensions() {
+ return attributeExtensions;
+ }
}
Copied: tuscany/branches/sca-java-1.3.3/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ExtensionImpl.java (from r735283, tuscany/branches/sca-java-1.3.3/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ExtensibleImpl.java)
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.3.3/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ExtensionImpl.java?p2=tuscany/branches/sca-java-1.3.3/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ExtensionImpl.java&p1=tuscany/branches/sca-java-1.3.3/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ExtensibleImpl.java&r1=735283&r2=735314&rev=735314&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.3.3/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ExtensibleImpl.java (original)
+++ tuscany/branches/sca-java-1.3.3/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ExtensionImpl.java Sat Jan 17 09:28:17 2009
@@ -18,27 +18,46 @@
*/
package org.apache.tuscany.sca.assembly.impl;
-import java.util.ArrayList;
-import java.util.List;
+import javax.xml.namespace.QName;
-import org.apache.tuscany.sca.assembly.Extensible;
+import org.apache.tuscany.sca.assembly.Extension;
-/**
- * Convenience base class for extensible assembly model objects.
- *
- * @version $Rev$ $Date$
- */
-public abstract class ExtensibleImpl extends BaseImpl implements Extensible {
- private List<Object> extensions = new ArrayList<Object>();
+public class ExtensionImpl implements Extension {
+ private QName qName;
+ private Object value;
+ boolean isAttribute = false;
+
+ public ExtensionImpl() {
+
+ }
+
+ public ExtensionImpl(QName qName, Object value, boolean isAttribute) {
+ this.qName = qName;
+ this.value = value;
+ this.isAttribute = isAttribute;
+ }
+
+ public QName getQName() {
+ return qName;
+ }
+
+ public void setQName(QName qName) {
+ this.qName = qName;
+ }
+
+ public Object getValue() {
+ return value;
+ }
+
+ public void setValue(Object value) {
+ this.value = value;
+ }
- /**
- * Constructs a new base model object.
- */
- protected ExtensibleImpl() {
- }
-
- public List<Object> getExtensions() {
- return extensions;
- }
+ public boolean isAttribute() {
+ return isAttribute;
+ }
+ public void setIsAttribute(boolean isAttribute) {
+ this.isAttribute = isAttribute;
+ }
}
Added: tuscany/branches/sca-java-1.3.3/modules/assembly/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.ExtensionFactory
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.3.3/modules/assembly/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.ExtensionFactory?rev=735314&view=auto
==============================================================================
--- tuscany/branches/sca-java-1.3.3/modules/assembly/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.ExtensionFactory (added)
+++ tuscany/branches/sca-java-1.3.3/modules/assembly/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.ExtensionFactory Sat Jan 17 09:28:17 2009
@@ -0,0 +1,18 @@
+# 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.
+
+org.apache.tuscany.sca.assembly.DefaultExtensionFactory
\ No newline at end of file
Modified: tuscany/branches/sca-java-1.3.3/modules/binding-sca/src/main/java/org/apache/tuscany/sca/binding/sca/impl/SCABindingImpl.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.3.3/modules/binding-sca/src/main/java/org/apache/tuscany/sca/binding/sca/impl/SCABindingImpl.java?rev=735314&r1=735313&r2=735314&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.3.3/modules/binding-sca/src/main/java/org/apache/tuscany/sca/binding/sca/impl/SCABindingImpl.java (original)
+++ tuscany/branches/sca-java-1.3.3/modules/binding-sca/src/main/java/org/apache/tuscany/sca/binding/sca/impl/SCABindingImpl.java Sat Jan 17 09:28:17 2009
@@ -25,6 +25,7 @@
import org.apache.tuscany.sca.assembly.Component;
import org.apache.tuscany.sca.assembly.ComponentService;
import org.apache.tuscany.sca.assembly.Extensible;
+import org.apache.tuscany.sca.assembly.Extension;
import org.apache.tuscany.sca.assembly.OptimizableBinding;
import org.apache.tuscany.sca.assembly.SCABinding;
import org.apache.tuscany.sca.assembly.builder.AutomaticBinding;
@@ -42,6 +43,7 @@
private String name;
private String uri;
private List<Object> extensions = new ArrayList<Object>();
+ private List<Extension> attributeExtensions = new ArrayList<Extension>();
private List<Intent> requiredIntents = new ArrayList<Intent>();
private List<PolicySet> policySets = new ArrayList<PolicySet>();
private IntentAttachPointType intentAttachPointType;
@@ -106,15 +108,15 @@
this.uri = uri;
}
- /**
- * Returns a list of extension objects contained in this model object.
- *
- * @return a list of extension objects container in this model object
- */
public List<Object> getExtensions() {
return extensions;
}
+ public List<Extension> getAttributeExtensions() {
+ return attributeExtensions;
+ }
+
+
/**
* Returns true if the model element is unresolved.
*
Modified: tuscany/branches/sca-java-1.3.3/modules/binding-ws/src/main/java/org/apache/tuscany/sca/binding/ws/impl/WebServiceBindingImpl.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.3.3/modules/binding-ws/src/main/java/org/apache/tuscany/sca/binding/ws/impl/WebServiceBindingImpl.java?rev=735314&r1=735313&r2=735314&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.3.3/modules/binding-ws/src/main/java/org/apache/tuscany/sca/binding/ws/impl/WebServiceBindingImpl.java (original)
+++ tuscany/branches/sca-java-1.3.3/modules/binding-ws/src/main/java/org/apache/tuscany/sca/binding/ws/impl/WebServiceBindingImpl.java Sat Jan 17 09:28:17 2009
@@ -30,6 +30,7 @@
import org.apache.tuscany.sca.assembly.ConfiguredOperation;
import org.apache.tuscany.sca.assembly.Extensible;
+import org.apache.tuscany.sca.assembly.Extension;
import org.apache.tuscany.sca.assembly.OperationsConfigurator;
import org.apache.tuscany.sca.assembly.builder.BindingBuilder;
import org.apache.tuscany.sca.binding.ws.WebServiceBinding;
@@ -53,6 +54,7 @@
private String uri;
private boolean unresolved;
private List<Object> extensions = new ArrayList<Object>();
+ private List<Extension> attributeExtensions = new ArrayList<Extension>();
private List<Intent> requiredIntents = new ArrayList<Intent>();
private List<PolicySet> policySets = new ArrayList<PolicySet>();
private IntentAttachPointType intentAttachPointType;
@@ -109,6 +111,10 @@
return extensions;
}
+ public List<Extension> getAttributeExtensions() {
+ return attributeExtensions;
+ }
+
public String getLocation() {
return location;
}
Modified: tuscany/branches/sca-java-1.3.3/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/processor/xml/AnyAttributeProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.3.3/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/processor/xml/AnyAttributeProcessor.java?rev=735314&r1=735313&r2=735314&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.3.3/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/processor/xml/AnyAttributeProcessor.java (original)
+++ tuscany/branches/sca-java-1.3.3/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/processor/xml/AnyAttributeProcessor.java Sat Jan 17 09:28:17 2009
@@ -23,6 +23,8 @@
import javax.xml.stream.XMLStreamReader;
import javax.xml.stream.XMLStreamWriter;
+import org.apache.tuscany.sca.assembly.Extension;
+import org.apache.tuscany.sca.assembly.ExtensionFactory;
import org.apache.tuscany.sca.contribution.Constants;
import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
import org.apache.tuscany.sca.contribution.processor.BaseStAXArtifactProcessor;
@@ -38,32 +40,37 @@
*
* @version $Rev$ $Date$
*/
-public class AnyAttributeProcessor extends BaseStAXArtifactProcessor implements StAXAttributeProcessor<String> {
- private static final QName ANY_ATTRIBUTE = new QName(Constants.XMLSCHEMA_NS, "anyAttribute");
-
- public AnyAttributeProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) {
-
- }
+public class AnyAttributeProcessor extends BaseStAXArtifactProcessor implements StAXAttributeProcessor<Extension> {
+ private static final QName ANY_ATTRIBUTE = new QName(Constants.XMLSCHEMA_NS, "anyAttribute");
+
+ private ExtensionFactory extensionFactory;
+
+ public AnyAttributeProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) {
+ this.extensionFactory = modelFactories.getFactory(ExtensionFactory.class);
+ }
public QName getArtifactType() {
return ANY_ATTRIBUTE;
}
- public Class<String> getModelType() {
- return String.class;
+ public Class<Extension> getModelType() {
+ return Extension.class;
}
- public String read(QName attributeName, XMLStreamReader reader) throws ContributionReadException, XMLStreamException {
- return reader.getAttributeValue(attributeName.getNamespaceURI(), attributeName.getLocalPart());
+ public Extension read(QName attributeName, XMLStreamReader reader) throws ContributionReadException, XMLStreamException {
+ String attributeValue = reader.getAttributeValue(attributeName.getNamespaceURI(), attributeName.getLocalPart());
+ return extensionFactory.createExtension(attributeName, attributeValue, true);
}
- public void write(String value, XMLStreamWriter writer) throws ContributionWriteException, XMLStreamException {
- writer.setPrefix(ANY_ATTRIBUTE.getPrefix(), ANY_ATTRIBUTE.getNamespaceURI());
- writer.writeAttribute(ANY_ATTRIBUTE.getLocalPart(), value);
+ public void write(Extension attributeExtension, XMLStreamWriter writer) throws ContributionWriteException, XMLStreamException {
+ writer.writeAttribute(attributeExtension.getQName().getPrefix(),
+ attributeExtension.getQName().getNamespaceURI(),
+ attributeExtension.getQName().getLocalPart(),
+ attributeExtension.getValue().toString()); //for extended attributes, we can assume values
+ // are just the string representation fo the attribute
}
-
- public void resolve(String arg0, ModelResolver arg1) throws ContributionResolveException {
+ public void resolve(Extension arg0, ModelResolver arg1) throws ContributionResolveException {
}
-}
+}
\ No newline at end of file
Added: tuscany/branches/sca-java-1.3.3/modules/contribution-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXAttributeProcessor
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.3.3/modules/contribution-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXAttributeProcessor?rev=735314&view=auto
==============================================================================
--- tuscany/branches/sca-java-1.3.3/modules/contribution-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXAttributeProcessor (added)
+++ tuscany/branches/sca-java-1.3.3/modules/contribution-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXAttributeProcessor Sat Jan 17 09:28:17 2009
@@ -0,0 +1,19 @@
+# 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.
+
+# Implementation class for the attribute processor extension
+org.apache.tuscany.sca.contribution.processor.xml.AnyAttributeProcessor;qname=http://www.w3.org/2001/XMLSchema#anyAttribute,model=org.apache.tuscany.sca.assembly.Extension
Modified: tuscany/branches/sca-java-1.3.3/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultStAXArtifactProcessorExtensionPoint.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.3.3/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultStAXArtifactProcessorExtensionPoint.java?rev=735314&r1=735313&r2=735314&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.3.3/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultStAXArtifactProcessorExtensionPoint.java (original)
+++ tuscany/branches/sca-java-1.3.3/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultStAXArtifactProcessorExtensionPoint.java Sat Jan 17 09:28:17 2009
@@ -31,6 +31,7 @@
import javax.xml.stream.XMLStreamWriter;
import org.apache.tuscany.sca.assembly.AssemblyFactory;
+import org.apache.tuscany.sca.assembly.ExtensionFactory;
import org.apache.tuscany.sca.assembly.builder.impl.ProblemImpl;
import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
@@ -41,11 +42,11 @@
import org.apache.tuscany.sca.core.UtilityExtensionPoint;
import org.apache.tuscany.sca.extensibility.ServiceDeclaration;
import org.apache.tuscany.sca.extensibility.ServiceDiscovery;
-import org.apache.tuscany.sca.policy.PolicyFactory;
import org.apache.tuscany.sca.monitor.Monitor;
import org.apache.tuscany.sca.monitor.MonitorFactory;
import org.apache.tuscany.sca.monitor.Problem;
import org.apache.tuscany.sca.monitor.Problem.Severity;
+import org.apache.tuscany.sca.policy.PolicyFactory;
/**
* The default implementation of an extension point for StAX artifact processors.
@@ -251,6 +252,7 @@
// Specific initialization for the DefaultBeanModelProcessor
ModelFactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class);
AssemblyFactory assemblyFactory = modelFactories.getFactory(AssemblyFactory.class);
+ ExtensionFactory extensionFactory = modelFactories.getFactory(ExtensionFactory.class);
PolicyFactory policyFactory = modelFactories.getFactory(PolicyFactory.class);
try {
Class<StAXArtifactProcessor> processorClass =
@@ -264,6 +266,7 @@
}
Constructor<StAXArtifactProcessor> constructor =
processorClass.getConstructor(AssemblyFactory.class,
+ ExtensionFactory.class,
PolicyFactory.class,
QName.class,
Class.class,
@@ -271,6 +274,7 @@
Monitor.class);
processor =
constructor.newInstance(assemblyFactory,
+ extensionFactory,
policyFactory,
artifactType,
getModelType(),
Modified: tuscany/branches/sca-java-1.3.3/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ExtensibleStAXAttributeProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.3.3/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ExtensibleStAXAttributeProcessor.java?rev=735314&r1=735313&r2=735314&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.3.3/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ExtensibleStAXAttributeProcessor.java (original)
+++ tuscany/branches/sca-java-1.3.3/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ExtensibleStAXAttributeProcessor.java Sat Jan 17 09:28:17 2009
@@ -55,7 +55,7 @@
private static final Logger logger = Logger.getLogger(ExtensibleStAXAttributeProcessor.class.getName());
- private static final QName UNKNOWN_ATTRIBUTE = new QName(Constants.SCA10_TUSCANY_NS, "unknown");
+ private static final QName ANY_ATTRIBUTE = new QName(Constants.XMLSCHEMA_NS, "anyAttribute");
private XMLInputFactory inputFactory;
private XMLOutputFactory outputFactory;
@@ -149,13 +149,13 @@
//handle extension attributes without processors
- processor = (StAXAttributeProcessor<?>)processors.getProcessor(UNKNOWN_ATTRIBUTE);
+ processor = (StAXAttributeProcessor<?>)processors.getProcessor(ANY_ATTRIBUTE);
if (processor == null) {
Location location = source.getLocation();
if (logger.isLoggable(Level.WARNING)) {
logger.warning("Could not find Default Attribute processor !");
}
- warning("DefaultAttributeProcessorNotAvailable", processors, UNKNOWN_ATTRIBUTE, location);
+ warning("DefaultAttributeProcessorNotAvailable", processors, ANY_ATTRIBUTE, location);
}
return processor == null ? null : processor.read(attributeName, source);
@@ -181,7 +181,7 @@
}
//handle extension attributes without processors
- processor = (StAXAttributeProcessor<?>)processors.getProcessor(UNKNOWN_ATTRIBUTE);
+ processor = (StAXAttributeProcessor<?>)processors.getProcessor(ANY_ATTRIBUTE);
if(processor == null) {
if (logger.isLoggable(Level.WARNING)) {
logger.warning("No Default StAX processor is configured to handle " + model.getClass());
Modified: tuscany/branches/sca-java-1.3.3/modules/core-spring/src/main/java/org/apache/tuscany/sca/core/spring/assembly/impl/BeanComponentImpl.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.3.3/modules/core-spring/src/main/java/org/apache/tuscany/sca/core/spring/assembly/impl/BeanComponentImpl.java?rev=735314&r1=735313&r2=735314&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.3.3/modules/core-spring/src/main/java/org/apache/tuscany/sca/core/spring/assembly/impl/BeanComponentImpl.java (original)
+++ tuscany/branches/sca-java-1.3.3/modules/core-spring/src/main/java/org/apache/tuscany/sca/core/spring/assembly/impl/BeanComponentImpl.java Sat Jan 17 09:28:17 2009
@@ -26,6 +26,7 @@
import org.apache.tuscany.sca.assembly.ComponentReference;
import org.apache.tuscany.sca.assembly.ComponentService;
import org.apache.tuscany.sca.assembly.ConstrainingType;
+import org.apache.tuscany.sca.assembly.Extension;
import org.apache.tuscany.sca.assembly.Implementation;
import org.apache.tuscany.sca.policy.Intent;
import org.apache.tuscany.sca.policy.IntentAttachPointType;
@@ -62,6 +63,7 @@
private List<Intent> requiredIntents = new ArrayList<Intent>();
private List<PolicySet> policySets = new ArrayList<PolicySet>();
private List<Object> extensions = new ArrayList<Object>();
+ private List<Extension> attributeExtensions = new ArrayList<Extension>();
private boolean unresolved = false;
private BeanDefinitionRegistry beanRegistry;
@@ -205,6 +207,10 @@
return extensions;
}
+ public List<Extension> getAttributeExtensions() {
+ return attributeExtensions;
+ }
+
public boolean isUnresolved() {
return unresolved;
}
Modified: tuscany/branches/sca-java-1.3.3/modules/core-spring/src/main/java/org/apache/tuscany/sca/core/spring/implementation/java/impl/BeanBaseJavaImplementationImpl.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.3.3/modules/core-spring/src/main/java/org/apache/tuscany/sca/core/spring/implementation/java/impl/BeanBaseJavaImplementationImpl.java?rev=735314&r1=735313&r2=735314&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.3.3/modules/core-spring/src/main/java/org/apache/tuscany/sca/core/spring/implementation/java/impl/BeanBaseJavaImplementationImpl.java (original)
+++ tuscany/branches/sca-java-1.3.3/modules/core-spring/src/main/java/org/apache/tuscany/sca/core/spring/implementation/java/impl/BeanBaseJavaImplementationImpl.java Sat Jan 17 09:28:17 2009
@@ -23,6 +23,7 @@
import org.apache.tuscany.sca.assembly.ConfiguredOperation;
import org.apache.tuscany.sca.assembly.ConstrainingType;
+import org.apache.tuscany.sca.assembly.Extension;
import org.apache.tuscany.sca.assembly.Property;
import org.apache.tuscany.sca.assembly.Reference;
import org.apache.tuscany.sca.assembly.Service;
@@ -45,6 +46,7 @@
private List<Service> services = new ArrayList<Service>();
private ConstrainingType constrainingType;
private List<Object> extensions = new ArrayList<Object>();
+ private List<Extension> attributeExtensions = new ArrayList<Extension>();
private boolean unresolved;
private BeanDefinitionRegistry beanRegistry;
private String uri;
@@ -172,6 +174,10 @@
return extensions;
}
+ public List<Extension> getAttributeExtensions() {
+ return attributeExtensions;
+ }
+
public boolean isUnresolved() {
return unresolved;
}