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 2008/09/15 19:57:27 UTC

svn commit: r695565 - in /tuscany/branches/sca-java-1.3.2/modules: ./ assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ assembly-xml/src/test/resources/org/apache/tuscany/sca...

Author: lresende
Date: Mon Sep 15 10:57:26 2008
New Revision: 695565

URL: http://svn.apache.org/viewvc?rev=695565&view=rev
Log:
TUSCANY-2463 - Merging attribute extension support from trunk

Added:
    tuscany/branches/sca-java-1.3.2/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ReadWriteAttributeTestCase.java
      - copied unchanged from r694165, tuscany/java/sca/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ReadWriteAttributeTestCase.java
    tuscany/branches/sca-java-1.3.2/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/TestAttributeProcessor.java
      - copied unchanged from r694165, tuscany/java/sca/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/TestAttributeProcessor.java
    tuscany/branches/sca-java-1.3.2/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/CalculatorExtended.composite
      - copied unchanged from r694165, tuscany/java/sca/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/CalculatorExtended.composite
    tuscany/branches/sca-java-1.3.2/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/Constants.java
      - copied unchanged from r694165, tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/Constants.java
    tuscany/branches/sca-java-1.3.2/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultStAXAttributeProcessorExtensionPoint.java
      - copied unchanged from r694165, tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultStAXAttributeProcessorExtensionPoint.java
    tuscany/branches/sca-java-1.3.2/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ExtensibleStAXAttributeProcessor.java
      - copied unchanged from r694165, tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ExtensibleStAXAttributeProcessor.java
    tuscany/branches/sca-java-1.3.2/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/StAXAttributeProcessor.java
      - copied unchanged from r694165, tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/StAXAttributeProcessor.java
    tuscany/branches/sca-java-1.3.2/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/StAXAttributeProcessorExtensionPoint.java
      - copied unchanged from r694165, tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/StAXAttributeProcessorExtensionPoint.java
    tuscany/branches/sca-java-1.3.2/modules/contribution/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXAttributeProcessorExtensionPoint
      - copied unchanged from r694165, tuscany/java/sca/modules/contribution/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXAttributeProcessorExtensionPoint
Modified:
    tuscany/branches/sca-java-1.3.2/modules/   (props changed)
    tuscany/branches/sca-java-1.3.2/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/BaseAssemblyProcessor.java
    tuscany/branches/sca-java-1.3.2/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ComponentTypeProcessor.java
    tuscany/branches/sca-java-1.3.2/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java
    tuscany/branches/sca-java-1.3.2/modules/binding-ws-wsdlgen/   (props changed)
    tuscany/branches/sca-java-1.3.2/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultStAXArtifactProcessorExtensionPoint.java

Propchange: tuscany/branches/sca-java-1.3.2/modules/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Sep 15 10:57:26 2008
@@ -1 +1 @@
-/tuscany/java/sca/modules:673298,674894-674933,675006,675061
+/tuscany/java/sca/modules:673298,674894-674933,675006,675061,694165

Modified: tuscany/branches/sca-java-1.3.2/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.2/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/BaseAssemblyProcessor.java?rev=695565&r1=695564&r2=695565&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.3.2/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/BaseAssemblyProcessor.java (original)
+++ tuscany/branches/sca-java-1.3.2/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/BaseAssemblyProcessor.java Mon Sep 15 10:57:26 2008
@@ -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.Extensible;
 import org.apache.tuscany.sca.assembly.Implementation;
 import org.apache.tuscany.sca.assembly.Multiplicity;
 import org.apache.tuscany.sca.assembly.OperationsConfigurator;
@@ -58,9 +59,11 @@
 import org.apache.tuscany.sca.contribution.ContributionFactory;
 import org.apache.tuscany.sca.contribution.processor.BaseStAXArtifactProcessor;
 import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
+import org.apache.tuscany.sca.contribution.processor.StAXAttributeProcessor;
 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.interfacedef.InterfaceContract;
 import org.apache.tuscany.sca.monitor.Monitor;
 import org.apache.tuscany.sca.monitor.Problem;
@@ -832,6 +835,45 @@
         }
     }
     
+    /**
+     * 
+     * @param reader
+     * @param elementName
+     * @param estensibleElement
+     * @param extensionAttributeProcessor
+     * @throws ContributionReadException
+     * @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);
+             	}
+         	}
+         }
+    }
+    
+
+    /**
+     * 
+     * @param attributeModel
+     * @param writer
+     * @param extensibleElement
+     * @param extensionAttributeProcessor
+     * @throws ContributionWriteException
+     * @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);
+        	}
+        }
+    }
     
     /*protected void validatePolicySets(PolicySetAttachPoint policySetAttachPoint) 
                                                             throws ContributionResolveException {

Modified: tuscany/branches/sca-java-1.3.2/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.2/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ComponentTypeProcessor.java?rev=695565&r1=695564&r2=695565&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.3.2/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ComponentTypeProcessor.java (original)
+++ tuscany/branches/sca-java-1.3.2/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ComponentTypeProcessor.java Mon Sep 15 10:57:26 2008
@@ -38,6 +38,7 @@
 import org.apache.tuscany.sca.assembly.Service;
 import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
 import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
+import org.apache.tuscany.sca.contribution.processor.StAXAttributeProcessor;
 import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
 import org.apache.tuscany.sca.contribution.service.ContributionReadException;
 import org.apache.tuscany.sca.contribution.service.ContributionResolveException;
@@ -45,10 +46,10 @@
 import org.apache.tuscany.sca.interfacedef.InterfaceContract;
 import org.apache.tuscany.sca.interfacedef.Operation;
 import org.apache.tuscany.sca.interfacedef.impl.OperationImpl;
+import org.apache.tuscany.sca.monitor.Monitor;
 import org.apache.tuscany.sca.policy.IntentAttachPoint;
 import org.apache.tuscany.sca.policy.PolicyFactory;
 import org.apache.tuscany.sca.policy.PolicySetAttachPoint;
-import org.apache.tuscany.sca.monitor.Monitor;
 import org.w3c.dom.Document;
 
 /**
@@ -65,7 +66,7 @@
      * @param registry
      */
     public ComponentTypeProcessor(AssemblyFactory factory, PolicyFactory policyFactory, 
-    							  StAXArtifactProcessor extensionProcessor, Monitor monitor) {
+    							  StAXArtifactProcessor extensionProcessor, StAXAttributeProcessor extensionAttributeProcessor, Monitor monitor) {
         super(factory, policyFactory, extensionProcessor, monitor);
     }
 
@@ -77,6 +78,7 @@
      */
     public ComponentTypeProcessor(ModelFactoryExtensionPoint modelFactories, 
     							  StAXArtifactProcessor extensionProcessor,
+    							  StAXAttributeProcessor extensionAttributeProcessor,
     							  Monitor monitor) {
         super(modelFactories.getFactory(AssemblyFactory.class),
               modelFactories.getFactory(PolicyFactory.class), extensionProcessor, monitor);

Modified: tuscany/branches/sca-java-1.3.2/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.2/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java?rev=695565&r1=695564&r2=695565&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.3.2/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java (original)
+++ tuscany/branches/sca-java-1.3.2/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java Mon Sep 15 10:57:26 2008
@@ -59,6 +59,7 @@
 import org.apache.tuscany.sca.contribution.ContributionFactory;
 import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
 import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
+import org.apache.tuscany.sca.contribution.processor.StAXAttributeProcessor;
 import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
 import org.apache.tuscany.sca.contribution.resolver.ResolverExtension;
 import org.apache.tuscany.sca.contribution.service.ContributionReadException;
@@ -88,16 +89,25 @@
     // FIXME: to be refactored
     private XPathFactory xPathFactory = XPathFactory.newInstance();
     
+    protected StAXAttributeProcessor<Object> extensionAttributeProcessor;
+    
     /**
      * Construct a new composite processor
      * 
      * @param extensionPoints
      * @param extensionProcessor
      */
-    public CompositeProcessor(ExtensionPointRegistry extensionPoints, 
-    						  StAXArtifactProcessor extensionProcessor,
-    						  Monitor monitor) {
-        this(modelFactories(extensionPoints), extensionProcessor, monitor(extensionPoints));
+    public CompositeProcessor(ExtensionPointRegistry extensionPoints,
+			StAXArtifactProcessor extensionProcessor,
+			StAXAttributeProcessor extensionAttributeProcessor, 
+			Monitor monitor) {
+        
+    	this(modelFactories(extensionPoints), 
+    		extensionProcessor, 
+    		extensionAttributeProcessor, 
+    		monitor(extensionPoints));
+        
+    	this.extensionAttributeProcessor = extensionAttributeProcessor;
     }
     
     /**
@@ -108,12 +118,18 @@
      * @param monitor
      */
     private CompositeProcessor(ModelFactoryExtensionPoint modelFactories,
-                               StAXArtifactProcessor extensionProcessor,
-                               Monitor monitor) {
-        super(modelFactories.getFactory(ContributionFactory.class),
+             StAXArtifactProcessor extensionProcessor,
+             StAXAttributeProcessor extensionAttributeProcessor,
+             Monitor monitor) {
+        
+    	super(modelFactories.getFactory(ContributionFactory.class),
             modelFactories.getFactory(AssemblyFactory.class),
             modelFactories.getFactory(PolicyFactory.class),
-            extensionProcessor, monitor);
+            extensionProcessor, 
+            monitor);
+        
+        this.extensionAttributeProcessor = extensionAttributeProcessor;
+        
     }
     
     /**
@@ -125,10 +141,11 @@
      * @param extensionProcessor
      */
     public CompositeProcessor(ContributionFactory contributionFactory,
-                              AssemblyFactory assemblyFactory,
-                              PolicyFactory policyFactory,
-                              StAXArtifactProcessor extensionProcessor,
-                              Monitor monitor) {
+            AssemblyFactory assemblyFactory,
+            PolicyFactory policyFactory,
+            StAXArtifactProcessor extensionProcessor,
+            StAXAttributeProcessor extensionAttributeProcessor,
+            Monitor monitor) {
         super(contributionFactory, assemblyFactory, policyFactory, extensionProcessor, monitor);
     }    
 
@@ -169,6 +186,10 @@
                         if(isSet(reader, AUTOWIRE)) {
                             composite.setAutowire(getBoolean(reader, AUTOWIRE));
                         }
+                        
+                        //handle extension attributes
+                        this.readExtendedAttributes(reader, name, composite, extensionAttributeProcessor);
+
                         composite.setLocal(getBoolean(reader, LOCAL));
                         composite.setConstrainingType(readConstrainingType(reader));
                         policyProcessor.readPolicies(composite, reader);
@@ -189,6 +210,10 @@
                             componentService = assemblyFactory.createComponentService();
                             contract = componentService;
                             componentService.setName(getString(reader, NAME));
+                            
+                            //handle extension attributes
+                            this.readExtendedAttributes(reader, name, componentService, extensionAttributeProcessor);
+
                             component.getServices().add(componentService);
                             policyProcessor.readPolicies(contract, reader);
                         } else {
@@ -222,6 +247,9 @@
                                 compositeService.setPromotedService(promotedService);
                             }
 
+                            //handle extension attributes
+                            this.readExtendedAttributes(reader, name, compositeService, extensionAttributeProcessor);
+
                             composite.getServices().add(compositeService);
                             policyProcessor.readPolicies(contract, reader);
                         }
@@ -238,6 +266,10 @@
                             }
                             readTargets(componentReference, reader);
                             componentReference.setWiredByImpl(getBoolean(reader, WIRED_BY_IMPL));
+                            
+                            //handle extension attributes
+                            this.readExtendedAttributes(reader, name, componentReference, extensionAttributeProcessor);
+
                             component.getReferences().add(componentReference);
                             policyProcessor.readPolicies(contract, reader);
                         } else {
@@ -258,7 +290,11 @@
                                 }
                             }
                             compositeReference.setWiredByImpl(getBoolean(reader, WIRED_BY_IMPL));
-                            composite.getReferences().add(compositeReference);
+                            
+                            //handle extension attributes
+                            this.readExtendedAttributes(reader, name, compositeReference, extensionAttributeProcessor);
+
+                            composite.getReferences().add(compositeReference);                            
                             policyProcessor.readPolicies(contract, reader);
                         }
 
@@ -298,6 +334,10 @@
                                 }
                             }
                             componentProperty.setFile(getString(reader, FILE));
+                            
+                            //handle extension attributes
+                            this.readExtendedAttributes(reader, name, componentProperty, extensionAttributeProcessor);
+
                             policyProcessor.readPolicies(property, reader);
                             readAbstractProperty(componentProperty, reader);
                             
@@ -338,6 +378,10 @@
                         if (isSet(reader, URI)) {
                             component.setURI(getString(reader, URI));
                         }
+                        
+                        //handle extension attributes
+                       this.readExtendedAttributes(reader, name, component, extensionAttributeProcessor);
+                        
                         component.setConstrainingType(readConstrainingType(reader));
                         composite.getComponents().add(component);
                         policyProcessor.readPolicies(component, reader);
@@ -356,6 +400,9 @@
                         target.setName(getString(reader, TARGET));
                         wire.setTarget(target);
 
+                        //handle extension attributes
+                        this.readExtendedAttributes(reader, name, wire, extensionAttributeProcessor);
+
                         composite.getWires().add(wire);
                         policyProcessor.readPolicies(wire, reader);
 
@@ -364,6 +411,10 @@
                         // Read a <callback>
                         callback = assemblyFactory.createCallback();
                         contract.setCallback(callback);
+                        
+                        //handle extension attributes
+                        this.readExtendedAttributes(reader, name, callback, extensionAttributeProcessor);
+                        
                         policyProcessor.readPolicies(callback, reader);
 
                     } else if (OPERATION_QNAME.equals(name)) {
@@ -396,6 +447,10 @@
                         Composite implementation = assemblyFactory.createComposite();
                         implementation.setName(getQName(reader, NAME));
                         implementation.setUnresolved(true);
+                        
+                        //handle extension attributes
+                        this.readExtendedAttributes(reader, name, implementation, extensionAttributeProcessor);
+
                         component.setImplementation(implementation);
                         policyProcessor.readPolicies(implementation, reader);
                     } else {
@@ -527,6 +582,9 @@
                            new XAttr(NAME, composite.getName().getLocalPart()),
                            new XAttr(AUTOWIRE, composite.getAutowire()),
                            policyProcessor.writePolicies(composite));
+        
+        //write extended attributes
+        this.writeExtendedAttributes(writer, composite, extensionAttributeProcessor);
 
         // Write <include> elements
         for (Composite include : composite.getIncludes()) {
@@ -535,6 +593,10 @@
                        INCLUDE,
                        new XAttr(NAME, include.getName()),
                        new XAttr(URI, uri));
+
+            //write extended attributes
+            this.writeExtendedAttributes(writer, include, extensionAttributeProcessor);
+            
             writeEnd(writer);
         }
 
@@ -556,6 +618,10 @@
             writeStart(writer, SERVICE, new XAttr(NAME, service.getName()), new XAttr(PROMOTE, promote),
                        policyProcessor.writePolicies(service));
             
+            //write extended attributes
+            this.writeExtendedAttributes(writer, service, extensionAttributeProcessor);
+
+            
             // Write service interface
             extensionProcessor.write(service.getInterfaceContract(), writer);
 
@@ -570,6 +636,9 @@
                 writeStart(writer, CALLBACK,
                            policyProcessor.writePolicies(callback));
             
+                //write extended attributes
+                this.writeExtendedAttributes(writer, callback, extensionAttributeProcessor);
+
                 // Write callback bindings
                 for (Binding binding : callback.getBindings()) {
                     extensionProcessor.write(binding, writer);
@@ -598,10 +667,17 @@
                        new XAttr(AUTOWIRE, component.getAutowire()),
                        policyProcessor.writePolicies(component));
             
+            //write extended attributes
+            this.writeExtendedAttributes(writer, component, extensionAttributeProcessor);
+            
             // Write the component implementation
             Implementation implementation = component.getImplementation();
             if (implementation instanceof Composite) {
                 writeStart(writer, IMPLEMENTATION_COMPOSITE, new XAttr(NAME, ((Composite)implementation).getName()));
+                
+                //write extended attributes
+                this.writeExtendedAttributes(writer, (Composite)implementation, extensionAttributeProcessor);
+
                 writeEnd(writer);
             } else {
                 extensionProcessor.write(component.getImplementation(), writer);
@@ -612,6 +688,9 @@
                 writeStart(writer, SERVICE, new XAttr(NAME, service.getName()),
                            policyProcessor.writePolicies(service));
 
+                //write extended attributes
+                this.writeExtendedAttributes(writer, service, extensionAttributeProcessor);
+
                 // Write service interface
                 extensionProcessor.write(service.getInterfaceContract(), writer);
                 
@@ -624,7 +703,10 @@
                 if (service.getCallback() != null) {
                     Callback callback = service.getCallback();
                     writeStart(writer, CALLBACK, policyProcessor.writePolicies(callback));
-                
+
+                    //write extended attributes
+                    this.writeExtendedAttributes(writer, callback, extensionAttributeProcessor);
+
                     // Write bindings
                     for (Binding binding : callback.getBindings()) {
                         extensionProcessor.write(binding, writer);
@@ -653,6 +735,9 @@
                            writeTargets(reference),
                            policyProcessor.writePolicies(reference));
 
+                //write extended attributes
+                this.writeExtendedAttributes(writer, reference, extensionAttributeProcessor);
+
                 // Write reference interface
                 extensionProcessor.write(reference.getInterfaceContract(), writer);
 
@@ -666,6 +751,9 @@
                     Callback callback = reference.getCallback();
                     writeStart(writer, CALLBACK, policyProcessor.writePolicies(callback));
                 
+                    //write extended attributes
+                    this.writeExtendedAttributes(writer, callback, extensionAttributeProcessor);
+
                     // Write callback bindings
                     for (Binding binding : callback.getBindings()) {
                         extensionProcessor.write(binding, writer);
@@ -700,6 +788,9 @@
                            new XAttr(FILE, property.getFile()),
                            policyProcessor.writePolicies(property));
 
+                //write extended attributes
+                this.writeExtendedAttributes(writer, property, extensionAttributeProcessor);
+
                 // Write property value
                 writePropertyValue(property.getValue(), property.getXSDElement(), property.getXSDType(), writer);
 
@@ -729,6 +820,9 @@
                        new XAttr(PROMOTE, promote),
                        policyProcessor.writePolicies(reference));
 
+            //write extended attributes
+            this.writeExtendedAttributes(writer, reference, extensionAttributeProcessor);
+
             // Write reference interface
             extensionProcessor.write(reference.getInterfaceContract(), writer);
             
@@ -742,6 +836,9 @@
                 Callback callback = reference.getCallback();
                 writeStart(writer, CALLBACK);
             
+                //write extended attributes
+                this.writeExtendedAttributes(writer, callback, extensionAttributeProcessor);
+
                 // Write callback bindings
                 for (Binding binding : callback.getBindings()) {
                     extensionProcessor.write(binding, writer);
@@ -774,6 +871,9 @@
                        new XAttr(ELEMENT, property.getXSDElement()),
                        policyProcessor.writePolicies(property));
 
+            //write extended attributes
+            this.writeExtendedAttributes(writer, property, extensionAttributeProcessor);
+
             // Write property value
             writePropertyValue(property.getValue(), property.getXSDElement(), property.getXSDType(), writer);
 
@@ -790,6 +890,9 @@
             writeStart(writer, WIRE, new XAttr(SOURCE, wire.getSource().getName()), new XAttr(TARGET, wire
                 .getTarget().getName()));
             
+            //write extended attributes
+            this.writeExtendedAttributes(writer, wire, extensionAttributeProcessor);
+
             // Write extensions
             for (Object extension : wire.getExtensions()) {
                 extensionProcessor.write(extension, writer);

Propchange: tuscany/branches/sca-java-1.3.2/modules/binding-ws-wsdlgen/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Sep 15 10:57:26 2008
@@ -1 +1 @@
-/tuscany/java/sca/modules/binding-ws-wsdlgen:673298,675013,675061
+/tuscany/java/sca/modules/binding-ws-wsdlgen:673298,675013,675061,694165

Modified: tuscany/branches/sca-java-1.3.2/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.2/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultStAXArtifactProcessorExtensionPoint.java?rev=695565&r1=695564&r2=695565&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.3.2/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultStAXArtifactProcessorExtensionPoint.java (original)
+++ tuscany/branches/sca-java-1.3.2/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultStAXArtifactProcessorExtensionPoint.java Mon Sep 15 10:57:26 2008
@@ -60,6 +60,7 @@
     private MonitorFactory monitorFactory;
     private boolean loaded;
     private StAXArtifactProcessor<Object> extensibleStAXProcessor;
+    private StAXAttributeProcessor<Object> extensibleStAXAttributeProcessor;
     private Monitor monitor = null;
 
     /**
@@ -75,6 +76,9 @@
         if (monitorFactory != null)
         	this.monitor = monitorFactory.createMonitor();
         this.extensibleStAXProcessor = new ExtensibleStAXArtifactProcessor(this, inputFactory, outputFactory, this.monitor);
+        
+        StAXAttributeProcessorExtensionPoint attributeExtensionPoint = extensionPoints.getExtensionPoint(StAXAttributeProcessorExtensionPoint.class);
+        this.extensibleStAXAttributeProcessor = new ExtensibleStAXAttributeProcessor(attributeExtensionPoint ,inputFactory, outputFactory, this.monitor);
     }
     
     /**
@@ -182,7 +186,7 @@
             StAXArtifactProcessor processor =
                 new LazyStAXArtifactProcessor(artifactType, modelTypeName, factoryName,
                                               processorDeclaration, extensionPoints, modelFactories, 
-                                              extensibleStAXProcessor, monitor);
+                                              extensibleStAXProcessor,extensibleStAXAttributeProcessor, monitor);
             addArtifactProcessor(processor);
         }
 
@@ -203,6 +207,7 @@
         private StAXArtifactProcessor processor;
         private Class<?> modelType;
         private StAXArtifactProcessor<Object> extensionProcessor;
+        private StAXAttributeProcessor<Object> extensionAttributeProcessor;
         private Monitor monitor;
 
         LazyStAXArtifactProcessor(QName artifactType,
@@ -212,6 +217,7 @@
                                   ExtensionPointRegistry extensionPoints,
                                   ModelFactoryExtensionPoint modelFactories,
                                   StAXArtifactProcessor<Object> extensionProcessor,
+                                  StAXAttributeProcessor<Object> extensionAttributeProcessor,
                                   Monitor monitor) {
 
             this.extensionPoints = extensionPoints;
@@ -220,6 +226,7 @@
             this.factoryName = factoryName;
             this.processorDeclaration = processorDeclaration;
             this.extensionProcessor = extensionProcessor;
+            this.extensionAttributeProcessor = extensionAttributeProcessor;
             this.monitor = monitor;
         }
 
@@ -279,53 +286,66 @@
 
                     // Load and instantiate the processor class
                     try {
-                        Class<StAXArtifactProcessor> processorClass =
-                            (Class<StAXArtifactProcessor>)processorDeclaration.loadClass();
-                        try {
-                            Constructor<StAXArtifactProcessor> constructor =
-                                processorClass.getConstructor(ModelFactoryExtensionPoint.class, Monitor.class);
-                            processor = constructor.newInstance(modelFactories, monitor);
-                        } catch (NoSuchMethodException e) {
-                          try {
-                              Constructor<StAXArtifactProcessor> constructor =
-                                  processorClass.getConstructor(ExtensionPointRegistry.class, Monitor.class);
-                              processor = constructor.newInstance(extensionPoints, monitor);
-                          } catch (NoSuchMethodException e1) {
-                            try {
-                                Constructor<StAXArtifactProcessor> constructor =
-                                    processorClass.getConstructor(ModelFactoryExtensionPoint.class, StAXArtifactProcessor.class, Monitor.class);
-                                processor = constructor.newInstance(modelFactories, extensionProcessor, monitor);
-                            } catch (NoSuchMethodException e2) {
-                                try {
-                                    Constructor<StAXArtifactProcessor> constructor =
-                                        processorClass.getConstructor(ExtensionPointRegistry.class, StAXArtifactProcessor.class, Monitor.class);
-                                    processor = constructor.newInstance(extensionPoints, extensionProcessor, monitor);
-                                } catch (NoSuchMethodException e3) {
-                                    try {
-                                        Constructor<StAXArtifactProcessor> constructor =
-                                            processorClass.getConstructor(ModelFactoryExtensionPoint.class);
-                                        processor = constructor.newInstance(modelFactories);
-                                    } catch (NoSuchMethodException e4) {
-                                      try {
-                                          Constructor<StAXArtifactProcessor> constructor =
-                                              processorClass.getConstructor(ExtensionPointRegistry.class);
-                                          processor = constructor.newInstance(extensionPoints);
-                                      } catch (NoSuchMethodException e4a) {
-                                        try {
-                                            Constructor<StAXArtifactProcessor> constructor =
-                                                processorClass.getConstructor(ModelFactoryExtensionPoint.class, StAXArtifactProcessor.class);
-                                            processor = constructor.newInstance(modelFactories, extensionProcessor);
-                                        } catch (NoSuchMethodException e5) {
-                                            Constructor<StAXArtifactProcessor> constructor =
-                                                processorClass.getConstructor(ExtensionPointRegistry.class, StAXArtifactProcessor.class);
-                                            processor = constructor.newInstance(extensionPoints, extensionProcessor);
-                                        }
-                                      }
-                                    }
-                                }
-                            }
-                          }
-                        }
+                    	Class<StAXArtifactProcessor> processorClass =
+                    		(Class<StAXArtifactProcessor>)processorDeclaration.loadClass();
+                    	try {
+                    		Constructor<StAXArtifactProcessor> constructor =
+                    			processorClass.getConstructor(ModelFactoryExtensionPoint.class, Monitor.class);
+                    		processor = constructor.newInstance(modelFactories, monitor);
+                    	} catch (NoSuchMethodException e) {
+                    		try {
+                    			Constructor<StAXArtifactProcessor> constructor =
+                    				processorClass.getConstructor(ExtensionPointRegistry.class, Monitor.class);
+                    			processor = constructor.newInstance(extensionPoints, monitor);
+                    		} catch (NoSuchMethodException e1) {
+                    			try {
+                    				Constructor<StAXArtifactProcessor> constructor =
+                    					processorClass.getConstructor(ModelFactoryExtensionPoint.class, StAXArtifactProcessor.class, Monitor.class);
+                    				processor = constructor.newInstance(modelFactories, extensionProcessor, monitor);
+                    			} catch (NoSuchMethodException e2) {
+                    				try {
+                    					Constructor<StAXArtifactProcessor> constructor =
+                    						processorClass.getConstructor(ModelFactoryExtensionPoint.class, StAXArtifactProcessor.class, StAXAttributeProcessor.class, Monitor.class);
+                    					processor = constructor.newInstance(modelFactories, extensionProcessor, extensionAttributeProcessor, monitor);
+                    				} catch (NoSuchMethodException e2a) {
+                    					try {
+                    						Constructor<StAXArtifactProcessor> constructor =
+                    							processorClass.getConstructor(ExtensionPointRegistry.class, StAXArtifactProcessor.class, Monitor.class);
+                    						processor = constructor.newInstance(extensionPoints, extensionProcessor, monitor);
+                    					} catch (NoSuchMethodException e3) {
+                    						try {
+                    							Constructor<StAXArtifactProcessor> constructor =
+                    								processorClass.getConstructor(ExtensionPointRegistry.class, StAXArtifactProcessor.class, StAXAttributeProcessor.class, Monitor.class);
+                    							processor = constructor.newInstance(extensionPoints, extensionProcessor, extensionAttributeProcessor, monitor);
+                    						} catch (NoSuchMethodException e3a) {
+
+                    							try {
+                    								Constructor<StAXArtifactProcessor> constructor =
+                    									processorClass.getConstructor(ModelFactoryExtensionPoint.class);
+                    								processor = constructor.newInstance(modelFactories);
+                    							} catch (NoSuchMethodException e4) {
+                    								try {
+                    									Constructor<StAXArtifactProcessor> constructor =
+                    										processorClass.getConstructor(ExtensionPointRegistry.class);
+                    									processor = constructor.newInstance(extensionPoints);
+                    								} catch (NoSuchMethodException e4a) {
+                    									try {
+                    										Constructor<StAXArtifactProcessor> constructor =
+                    											processorClass.getConstructor(ModelFactoryExtensionPoint.class, StAXArtifactProcessor.class);
+                    										processor = constructor.newInstance(modelFactories, extensionProcessor);
+                    									} catch (NoSuchMethodException e5) {
+                    										Constructor<StAXArtifactProcessor> constructor =
+                    											processorClass.getConstructor(ExtensionPointRegistry.class, StAXArtifactProcessor.class);
+                    										processor = constructor.newInstance(extensionPoints, extensionProcessor);
+                    									}
+                    								}
+                    							}
+                    						}
+                    					}
+                    				}
+                    			}
+                    		}
+                    	}
                     } catch (Exception e) {
                     	IllegalStateException ie = new IllegalStateException(e);
                     	error("IllegalStateException", processor, ie);