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 {
        
     }
 }


Reply via email to