Author: rfeng
Date: Thu Mar  5 02:03:18 2009
New Revision: 750287

URL: http://svn.apache.org/viewvc?rev=750287&view=rev
Log:
Adjust processors to support @replace for Wire and @nonOverridable for 
component reference

Modified:
    
tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java
    
tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/Constants.java

Modified: 
tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java?rev=750287&r1=750286&r2=750287&view=diff
==============================================================================
--- 
tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java
 (original)
+++ 
tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java
 Thu Mar  5 02:03:18 2009
@@ -38,11 +38,13 @@
 import static org.apache.tuscany.sca.assembly.xml.Constants.MANY;
 import static org.apache.tuscany.sca.assembly.xml.Constants.MUST_SUPPLY;
 import static org.apache.tuscany.sca.assembly.xml.Constants.NAME;
+import static org.apache.tuscany.sca.assembly.xml.Constants.NONOVERRIDABLE;
 import static org.apache.tuscany.sca.assembly.xml.Constants.PROMOTE;
 import static org.apache.tuscany.sca.assembly.xml.Constants.PROPERTY;
 import static org.apache.tuscany.sca.assembly.xml.Constants.PROPERTY_QNAME;
 import static org.apache.tuscany.sca.assembly.xml.Constants.REFERENCE;
 import static org.apache.tuscany.sca.assembly.xml.Constants.REFERENCE_QNAME;
+import static org.apache.tuscany.sca.assembly.xml.Constants.REPLACE;
 import static org.apache.tuscany.sca.assembly.xml.Constants.SCA11_NS;
 import static org.apache.tuscany.sca.assembly.xml.Constants.SERVICE;
 import static org.apache.tuscany.sca.assembly.xml.Constants.SERVICE_QNAME;
@@ -271,6 +273,11 @@
                                 if (isSet(reader, AUTOWIRE)) {
                                     
componentReference.setAutowire(getBoolean(reader, AUTOWIRE));
                                 }
+                                // Read @nonOverridable
+                                String nonOverridable = 
reader.getAttributeValue(null, NONOVERRIDABLE);
+                                if (nonOverridable != null) {
+                                    
componentReference.setNonOverridable(Boolean.parseBoolean(nonOverridable));
+                                }
                                 readTargets(componentReference, reader);
                                 
componentReference.setWiredByImpl(getBoolean(reader, WIRED_BY_IMPL));
                                 
@@ -406,6 +413,12 @@
                             target.setUnresolved(true);
                             target.setName(getString(reader, TARGET));
                             wire.setTarget(target);
+                            
+                            // Read @replace
+                            String replace = reader.getAttributeValue(null, 
REPLACE);
+                            if (replace != null) {
+                                wire.setReplace(Boolean.parseBoolean(replace));
+                            }
     
                             //handle extension attributes
                             this.readExtendedAttributes(reader, name, wire, 
extensionAttributeProcessor);
@@ -724,10 +737,13 @@
             
             // Write <reference> elements
             for (ComponentReference reference : component.getReferences()) {
-                writeStart(writer, REFERENCE, new XAttr(NAME, 
reference.getName()),
-                           new XAttr(AUTOWIRE, reference.getAutowire()),
-                           writeMultiplicity(reference),
-                           writeTargets(reference),
+                writeStart(writer, 
+                           REFERENCE, 
+                           new XAttr(NAME, reference.getName()), 
+                           new XAttr(AUTOWIRE, reference.getAutowire()), 
+                           (reference.isNonOverridable() ? new 
XAttr(NONOVERRIDABLE, true) : null), 
+                           writeMultiplicity(reference), 
+                           writeTargets(reference), 
                            policyProcessor.writePolicies(reference));
 
                 //write extended attributes
@@ -883,8 +899,8 @@
 
         // Write <wire> elements
         for (Wire wire : composite.getWires()) {
-            writeStart(writer, WIRE, new XAttr(SOURCE, 
wire.getSource().getName()), new XAttr(TARGET, wire
-                .getTarget().getName()));
+            writeStart(writer, WIRE, new XAttr(SOURCE, 
wire.getSource().getName()), new XAttr(TARGET, wire.getTarget()
+                .getName()), wire.isReplace() ? new XAttr(Constants.REPLACE, 
true) : null);
             
             //write extended attributes
             this.writeExtendedAttributes(writer, wire, 
extensionAttributeProcessor);

Modified: 
tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/Constants.java
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/Constants.java?rev=750287&r1=750286&r2=750287&view=diff
==============================================================================
--- 
tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/Constants.java
 (original)
+++ 
tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/Constants.java
 Thu Mar  5 02:03:18 2009
@@ -76,6 +76,8 @@
     String TARGET_NAMESPACE = "targetNamespace";
     String LOCAL = "local";
     String AUTOWIRE = "autowire";
+    String NONOVERRIDABLE = "nonOverridable";
+    String REPLACE = "replace";
     String REQUIRES = "requires";
     String POLICY_SETS = "policySets"; 
     String APPLICABLE_POLICY_SETS = "applicablePolicySets";


Reply via email to