Author: lresende
Date: Thu Jan 29 01:02:16 2009
New Revision: 738689

URL: http://svn.apache.org/viewvc?rev=738689&view=rev
Log:
Adding support for extended attributes to java implementation

Modified:
    
tuscany/branches/sca-java-1.x/modules/binding-ws-xml/src/main/java/org/apache/tuscany/sca/binding/ws/xml/WebServiceBindingProcessor.java
    tuscany/branches/sca-java-1.x/modules/implementation-java-xml/pom.xml
    
tuscany/branches/sca-java-1.x/modules/implementation-java-xml/src/main/java/org/apache/tuscany/sca/implementation/java/xml/JavaImplementationProcessor.java

Modified: 
tuscany/branches/sca-java-1.x/modules/binding-ws-xml/src/main/java/org/apache/tuscany/sca/binding/ws/xml/WebServiceBindingProcessor.java
URL: 
http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/binding-ws-xml/src/main/java/org/apache/tuscany/sca/binding/ws/xml/WebServiceBindingProcessor.java?rev=738689&r1=738688&r2=738689&view=diff
==============================================================================
--- 
tuscany/branches/sca-java-1.x/modules/binding-ws-xml/src/main/java/org/apache/tuscany/sca/binding/ws/xml/WebServiceBindingProcessor.java
 (original)
+++ 
tuscany/branches/sca-java-1.x/modules/binding-ws-xml/src/main/java/org/apache/tuscany/sca/binding/ws/xml/WebServiceBindingProcessor.java
 Thu Jan 29 01:02:16 2009
@@ -86,7 +86,7 @@
     private StAXAttributeProcessor<Object> extensionAttributeProcessor;
     private Monitor monitor;
     
-    public WebServiceBindingProcessor(ExtensionPointRegistry extensionPoints) {
+    public WebServiceBindingProcessor(ExtensionPointRegistry extensionPoints, 
Monitor monitor) {
         
         this.extensionPoints = extensionPoints;
         ModelFactoryExtensionPoint modelFactories = 
extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class);
@@ -96,11 +96,7 @@
         this.extensionFactory = 
modelFactories.getFactory(ExtensionFactory.class);
         this.policyProcessor = new PolicyAttachPointProcessor(policyFactory);
         this.intentAttachPointTypeFactory = 
modelFactories.getFactory(IntentAttachPointTypeFactory.class);
-        UtilityExtensionPoint utilities = 
extensionPoints.getExtensionPoint(UtilityExtensionPoint.class);
-        MonitorFactory monitorFactory = 
utilities.getUtility(MonitorFactory.class);
-        if (monitorFactory != null) {
-            this.monitor = monitorFactory.createMonitor();
-        }
+        this.monitor = monitor;
         this.configuredOperationProcessor = new 
ConfiguredOperationProcessor(modelFactories, this.monitor);
         this.extensionAttributeProcessor = 
extensionPoints.getExtensionPoint(ExtensibleStAXAttributeProcessor.class);
     }
@@ -351,6 +347,7 @@
             writer.writeAttribute(WSDLI_NS, WSDL_LOCATION, 
wsBinding.getLocation());
         }
 
+        // Write extended attributes
         for(Extension extension : wsBinding.getAttributeExtensions()) {
             if(extension.isAttribute()) {
                 extensionAttributeProcessor.write(extension, writer);

Modified: tuscany/branches/sca-java-1.x/modules/implementation-java-xml/pom.xml
URL: 
http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/implementation-java-xml/pom.xml?rev=738689&r1=738688&r2=738689&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/implementation-java-xml/pom.xml 
(original)
+++ tuscany/branches/sca-java-1.x/modules/implementation-java-xml/pom.xml Thu 
Jan 29 01:02:16 2009
@@ -33,7 +33,7 @@
         <dependency>
             <groupId>org.apache.tuscany.sca</groupId>
             <artifactId>tuscany-assembly-xml</artifactId>
-            <version>1.5-SNAPSHOT</version>
+            <version>${version}</version>
         </dependency>
 
         <dependency>

Modified: 
tuscany/branches/sca-java-1.x/modules/implementation-java-xml/src/main/java/org/apache/tuscany/sca/implementation/java/xml/JavaImplementationProcessor.java
URL: 
http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/implementation-java-xml/src/main/java/org/apache/tuscany/sca/implementation/java/xml/JavaImplementationProcessor.java?rev=738689&r1=738688&r2=738689&view=diff
==============================================================================
--- 
tuscany/branches/sca-java-1.x/modules/implementation-java-xml/src/main/java/org/apache/tuscany/sca/implementation/java/xml/JavaImplementationProcessor.java
 (original)
+++ 
tuscany/branches/sca-java-1.x/modules/implementation-java-xml/src/main/java/org/apache/tuscany/sca/implementation/java/xml/JavaImplementationProcessor.java
 Thu Jan 29 01:02:16 2009
@@ -36,6 +36,8 @@
 import org.apache.tuscany.sca.assembly.AssemblyFactory;
 import org.apache.tuscany.sca.assembly.ComponentType;
 import org.apache.tuscany.sca.assembly.ConfiguredOperation;
+import org.apache.tuscany.sca.assembly.Extension;
+import org.apache.tuscany.sca.assembly.ExtensionFactory;
 import org.apache.tuscany.sca.assembly.OperationsConfigurator;
 import org.apache.tuscany.sca.assembly.Property;
 import org.apache.tuscany.sca.assembly.Reference;
@@ -46,6 +48,7 @@
 import org.apache.tuscany.sca.assembly.xml.PolicyAttachPointProcessor;
 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.ClassReference;
 import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
 import org.apache.tuscany.sca.contribution.service.ContributionReadException;
@@ -71,22 +74,29 @@
 public class JavaImplementationProcessor implements 
StAXArtifactProcessor<JavaImplementation>,
     JavaImplementationConstants {
 
-    private JavaImplementationFactory javaFactory;
     private AssemblyFactory assemblyFactory;
     private PolicyFactory policyFactory;
+    private ExtensionFactory extensionFactory;
+    private JavaImplementationFactory javaFactory;
     private PolicyAttachPointProcessor policyProcessor;
     private IntentAttachPointTypeFactory  intentAttachPointTypeFactory;
     private ConfiguredOperationProcessor configuredOperationProcessor;
+    private StAXAttributeProcessor<Object> extensionAttributeProcessor;
     private Monitor monitor;
 
-    public JavaImplementationProcessor(ModelFactoryExtensionPoint 
modelFactories, Monitor monitor) {
+    public JavaImplementationProcessor(ModelFactoryExtensionPoint 
modelFactories,
+                                       StAXArtifactProcessor 
extensionProcessor,
+                                       StAXAttributeProcessor 
extensionAttributeProcessor,
+                                       Monitor monitor) {
         this.assemblyFactory = 
modelFactories.getFactory(AssemblyFactory.class);
         this.policyFactory = modelFactories.getFactory(PolicyFactory.class);
+        this.extensionFactory = 
modelFactories.getFactory(ExtensionFactory.class);
         this.javaFactory = 
modelFactories.getFactory(JavaImplementationFactory.class);
         this.policyProcessor = new PolicyAttachPointProcessor(policyFactory);
         this.intentAttachPointTypeFactory = 
modelFactories.getFactory(IntentAttachPointTypeFactory.class);
         this.monitor = monitor;
         this.configuredOperationProcessor = new 
ConfiguredOperationProcessor(modelFactories, this.monitor);
+        this.extensionAttributeProcessor = extensionAttributeProcessor;
     }
     
     /**
@@ -134,6 +144,26 @@
 
         // Read policies
         policyProcessor.readPolicies(javaImplementation, reader);
+        
+        // Handle extended attributes
+        for (int a = 0; a < reader.getAttributeCount(); a++) {
+            QName attributeName = reader.getAttributeName(a);
+            if( attributeName.getNamespaceURI() != null && 
attributeName.getNamespaceURI().length() > 0) {
+                if( (! 
Constants.SCA10_NS.equals(attributeName.getNamespaceURI()) && 
+                    (! 
Constants.SCA10_TUSCANY_NS.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);
+                    }
+                    
javaImplementation.getAttributeExtensions().add(attributeExtension);
+                }
+            }
+        }
+
+        
 
         // read operation elements if exists or skip unto end element
         int event;
@@ -171,6 +201,13 @@
             writer.writeAttribute(CLASS, javaImplementation.getName());
         }
 
+        // Write extended attributes
+        for(Extension extension : javaImplementation.getAttributeExtensions()) 
{
+            if(extension.isAttribute()) {
+                extensionAttributeProcessor.write(extension, writer);
+            }
+        }
+        
         writer.writeEndElement();
     }
 


Reply via email to