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";