Author: lresende
Date: Fri Jan 16 17:37:35 2009
New Revision: 735201
URL: http://svn.apache.org/viewvc?rev=735201&view=rev
Log:
TUSCANY-2463 - Last adjustments to test processors to support the extension
attribute wrapper
Modified:
tuscany/branches/sca-java-1.x/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/BaseAssemblyProcessor.java
tuscany/branches/sca-java-1.x/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ReadWriteAnyAttributeTestCase.java
tuscany/branches/sca-java-1.x/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/TestAttributeProcessor.java
tuscany/branches/sca-java-1.x/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/processor/xml/AnyAttributeProcessor.java
Modified:
tuscany/branches/sca-java-1.x/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.x/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/BaseAssemblyProcessor.java?rev=735201&r1=735200&r2=735201&view=diff
==============================================================================
---
tuscany/branches/sca-java-1.x/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/BaseAssemblyProcessor.java
(original)
+++
tuscany/branches/sca-java-1.x/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/BaseAssemblyProcessor.java
Fri Jan 16 17:37:35 2009
@@ -882,8 +882,13 @@
QName attributeName = reader.getAttributeName(a);
if( attributeName.getNamespaceURI() != null &&
attributeName.getNamespaceURI().length() > 0) {
if( !
elementName.getNamespaceURI().equals(attributeName.getNamespaceURI()) ) {
- String attributeValue = (String)
extensionAttributeProcessor.read(attributeName, reader);
- Extension attributeExtension =
extensionFactory.createExtension(attributeName, attributeValue, true);
+ 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);
}
}
@@ -903,7 +908,7 @@
protected void writeExtendedAttributes(XMLStreamWriter writer, Extensible
extensibleElement, StAXAttributeProcessor extensionAttributeProcessor) throws
ContributionWriteException, XMLStreamException {
for(Extension extension : extensibleElement.getAttributeExtensions()) {
if(extension.isAttribute()) {
- extensionAttributeProcessor.write(extension.getValue(),
writer);
+ extensionAttributeProcessor.write(extension, writer);
}
}
}
Modified:
tuscany/branches/sca-java-1.x/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.x/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ReadWriteAnyAttributeTestCase.java?rev=735201&r1=735200&r2=735201&view=diff
==============================================================================
---
tuscany/branches/sca-java-1.x/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ReadWriteAnyAttributeTestCase.java
(original)
+++
tuscany/branches/sca-java-1.x/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ReadWriteAnyAttributeTestCase.java
Fri Jan 16 17:37:35 2009
@@ -47,19 +47,17 @@
*/
public class ReadWriteAnyAttributeTestCase {
- 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\">"+
- "<component name=\"AddServiceComponent\"
xmlns:test=\"http://test\" test:customAttribute=\"customValue\">"+
- "<implementation.java
class=\"calculator.AddServiceImpl\" />"+
- "</component>"+
- "</composite>";
+ "<component name=\"AddServiceComponent\"
xmlns:test=\"http://test\" test:customAttribute=\"customValue\">"+
+ "<implementation.java
class=\"calculator.AddServiceImpl\" />"+
+ "</component>"+
+ "</composite>";
private XMLInputFactory inputFactory;
private ExtensibleStAXArtifactProcessor staxProcessor;
@@ -91,7 +89,6 @@
* @throws Exception
*/
@Test
- @Ignore
public void testReadWriteCompositeWithAttributeProcessor() throws
Exception {
init(new TestAttributeProcessor());
@@ -104,8 +101,8 @@
staxProcessor.write(composite, bos);
// used for debug comparison
- System.out.println(XML);
- System.out.println(bos.toString());
+ // System.out.println(XML);
+ // System.out.println(bos.toString());
assertEquals(XML, bos.toString());
}
@@ -116,7 +113,6 @@
* @throws Exception
*/
@Test
- @Ignore
public void testDefaultReadWriteComposite() throws Exception {
init(null);
@@ -129,8 +125,8 @@
staxProcessor.write(composite, bos);
// used for debug comparison
- System.out.println(XML);
- System.out.println(bos.toString());
+ // System.out.println(XML);
+ // System.out.println(bos.toString());
assertEquals(XML, bos.toString());
}
Modified:
tuscany/branches/sca-java-1.x/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.x/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/TestAttributeProcessor.java?rev=735201&r1=735200&r2=735201&view=diff
==============================================================================
---
tuscany/branches/sca-java-1.x/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/TestAttributeProcessor.java
(original)
+++
tuscany/branches/sca-java-1.x/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/TestAttributeProcessor.java
Fri Jan 16 17:37:35 2009
@@ -31,7 +31,7 @@
import org.apache.tuscany.sca.contribution.service.ContributionWriteException;
/**
- * A Policy Processor used for testing.
+ * A Attribute Processor used for testing.
*
* @version $Rev$ $Date$
*/
@@ -51,7 +51,7 @@
}
public Class<String> getModelType() {
- return String.class;
+ return null;
}
public void resolve(String arg0, ModelResolver arg1) throws
ContributionResolveException {
Modified:
tuscany/branches/sca-java-1.x/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.x/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/processor/xml/AnyAttributeProcessor.java?rev=735201&r1=735200&r2=735201&view=diff
==============================================================================
---
tuscany/branches/sca-java-1.x/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/processor/xml/AnyAttributeProcessor.java
(original)
+++
tuscany/branches/sca-java-1.x/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/processor/xml/AnyAttributeProcessor.java
Fri Jan 16 17:37:35 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 {
}
}