You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by js...@apache.org on 2007/03/31 21:12:42 UTC
svn commit: r524471 - in
/incubator/tuscany/java/sca/scdl4j/xml/src/main/java/org/apache/tuscany/scdl:
impl/ComponentTypeHandler.java impl/CompositeHandler.java
impl/ConstrainingTypeHandler.java util/BaseHandler.java
Author: jsdelfino
Date: Sat Mar 31 12:12:41 2007
New Revision: 524471
URL: http://svn.apache.org/viewvc?view=rev&rev=524471
Log:
Added support for associating policy intents and policy sets to operations
Modified:
incubator/tuscany/java/sca/scdl4j/xml/src/main/java/org/apache/tuscany/scdl/impl/ComponentTypeHandler.java
incubator/tuscany/java/sca/scdl4j/xml/src/main/java/org/apache/tuscany/scdl/impl/CompositeHandler.java
incubator/tuscany/java/sca/scdl4j/xml/src/main/java/org/apache/tuscany/scdl/impl/ConstrainingTypeHandler.java
incubator/tuscany/java/sca/scdl4j/xml/src/main/java/org/apache/tuscany/scdl/util/BaseHandler.java
Modified: incubator/tuscany/java/sca/scdl4j/xml/src/main/java/org/apache/tuscany/scdl/impl/ComponentTypeHandler.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/scdl4j/xml/src/main/java/org/apache/tuscany/scdl/impl/ComponentTypeHandler.java?view=diff&rev=524471&r1=524470&r2=524471
==============================================================================
--- incubator/tuscany/java/sca/scdl4j/xml/src/main/java/org/apache/tuscany/scdl/impl/ComponentTypeHandler.java (original)
+++ incubator/tuscany/java/sca/scdl4j/xml/src/main/java/org/apache/tuscany/scdl/impl/ComponentTypeHandler.java Sat Mar 31 12:12:41 2007
@@ -28,6 +28,8 @@
import org.apache.tuscany.assembly.model.Reference;
import org.apache.tuscany.assembly.model.Service;
import org.apache.tuscany.policy.model.PolicyFactory;
+import org.apache.tuscany.sca.idl.Operation;
+import org.apache.tuscany.scdl.BindingHandler;
import org.apache.tuscany.scdl.Constants;
import org.apache.tuscany.scdl.HandlerRegistry;
import org.apache.tuscany.scdl.InterfaceHandler;
@@ -50,6 +52,7 @@
private Property property;
private Callback callback;
private InterfaceHandler interfaceHandler;
+ private BindingHandler bindingHandler;
private AssemblyFactory factory;
public ComponentTypeHandler(AssemblyFactory factory, PolicyFactory policyFactory,
@@ -68,8 +71,7 @@
if (Constants.COMPONENT_TYPE.equals(name)) {
componentType = factory.createComponentType();
componentType.setConstrainingType(getConstrainingType(attr));
- readRequiredIntents(componentType, attr);
- readPolicySets(componentType, attr);
+ readPolicies(componentType, attr);
return;
} else if (Constants.SERVICE.equals(name)) {
@@ -77,8 +79,7 @@
contract = service;
service.setName(getString(attr, Constants.NAME));
componentType.getServices().add(service);
- readRequiredIntents(service, attr);
- readPolicySets(service, attr);
+ readPolicies(service, attr);
return;
} else if (Constants.REFERENCE.equals(name)) {
@@ -93,30 +94,40 @@
reference.getTargets().add(target);
componentType.getReferences().add(reference);
- readRequiredIntents(reference, attr);
- readPolicySets(reference, attr);
+ readPolicies(reference, attr);
return;
} else if (Constants.PROPERTY.equals(name)) {
property = factory.createProperty();
readProperty(property, attr);
componentType.getProperties().add(property);
- readRequiredIntents(property, attr);
- readPolicySets(property, attr);
+ readPolicies(property, attr);
return;
} else if (Constants.CALLBACK.equals(name)) {
callback = factory.createCallback();
contract.setCallback(callback);
- readRequiredIntents(callback, attr);
- readPolicySets(callback, attr);
+ readPolicies(callback, attr);
return;
+
+ } else if (Constants.OPERATION.equals(name)) {
+ Operation operation = factory.createOperation();
+ operation.setName(getString(attr, Constants.NAME));
+ operation.setUnresolved(true);
+ if (callback != null) {
+ readPolicies(callback, operation, attr);
+ } else {
+ readPolicies(contract, operation, attr);
+ }
}
}
// Handle interface elements
if (contract != null) {
interfaceHandler = startInterfaceElement(uri, name, qname, attr);
+ if (interfaceHandler == null) {
+ bindingHandler = startBindingElement(uri, name, qname, attr);
+ }
}
}
@@ -127,6 +138,10 @@
if (endInterfaceElement(uri, name, qname)) {
contract.setInterface(interfaceHandler.getInterface());
interfaceHandler = null;
+ return;
+ } else if (endBindingElement(uri, name, qname)) {
+ contract.getBindings().add(bindingHandler.getBinding());
+ bindingHandler = null;
return;
}
}
Modified: incubator/tuscany/java/sca/scdl4j/xml/src/main/java/org/apache/tuscany/scdl/impl/CompositeHandler.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/scdl4j/xml/src/main/java/org/apache/tuscany/scdl/impl/CompositeHandler.java?view=diff&rev=524471&r1=524470&r2=524471
==============================================================================
--- incubator/tuscany/java/sca/scdl4j/xml/src/main/java/org/apache/tuscany/scdl/impl/CompositeHandler.java (original)
+++ incubator/tuscany/java/sca/scdl4j/xml/src/main/java/org/apache/tuscany/scdl/impl/CompositeHandler.java Sat Mar 31 12:12:41 2007
@@ -32,6 +32,7 @@
import org.apache.tuscany.assembly.model.Property;
import org.apache.tuscany.assembly.model.Wire;
import org.apache.tuscany.policy.model.PolicyFactory;
+import org.apache.tuscany.sca.idl.Operation;
import org.apache.tuscany.scdl.BindingHandler;
import org.apache.tuscany.scdl.Constants;
import org.apache.tuscany.scdl.HandlerRegistry;
@@ -87,8 +88,7 @@
composite.setAutowire(getBoolean(attr, Constants.AUTOWIRE));
composite.setLocal(getBoolean(attr, Constants.LOCAL));
composite.setConstrainingType(getConstrainingType(attr));
- readRequiredIntents(composite, attr);
- readPolicySets(composite, attr);
+ readPolicies(composite, attr);
return;
} else if (Constants.INCLUDE.equals(name)) {
@@ -102,8 +102,7 @@
componentService = factory.createComponentService();
contract = componentService;
componentService.setName(getString(attr, Constants.NAME));
- readRequiredIntents(componentService, attr);
- readPolicySets(componentService, attr);
+ readPolicies(componentService, attr);
component.getServices().add(componentService);
} else {
compositeService = factory.createCompositeService();
@@ -117,8 +116,7 @@
composite.getServices().add(compositeService);
}
- readRequiredIntents(contract, attr);
- readPolicySets(contract, attr);
+ readPolicies(contract, attr);
return;
} else if (Constants.REFERENCE.equals(name)) {
@@ -147,8 +145,7 @@
composite.getReferences().add(compositeReference);
}
- readRequiredIntents(contract, attr);
- readPolicySets(contract, attr);
+ readPolicies(contract, attr);
return;
} else if (Constants.PROPERTY.equals(name)) {
@@ -162,8 +159,7 @@
readProperty(property, attr);
composite.getProperties().add(property);
}
- readRequiredIntents(property, attr);
- readPolicySets(property, attr);
+ readPolicies(property, attr);
return;
} else if (Constants.COMPONENT.equals(name)) {
@@ -171,8 +167,7 @@
component.setName(getString(attr, Constants.NAME));
component.setConstrainingType(getConstrainingType(attr));
composite.getComponents().add(component);
- readRequiredIntents(component, attr);
- readPolicySets(component, attr);
+ readPolicies(component, attr);
return;
} else if (Constants.WIRE.equals(name)) {
@@ -188,16 +183,24 @@
wire.setTarget(target);
composite.getWires().add(wire);
- readRequiredIntents(wire, attr);
- readPolicySets(wire, attr);
+ readPolicies(wire, attr);
return;
} else if (Constants.CALLBACK.equals(name)) {
callback = factory.createCallback();
contract.setCallback(callback);
- readRequiredIntents(callback, attr);
- readPolicySets(callback, attr);
+ readPolicies(callback, attr);
return;
+
+ } else if (Constants.OPERATION.equals(name)) {
+ Operation operation = factory.createOperation();
+ operation.setName(getString(attr, Constants.NAME));
+ operation.setUnresolved(true);
+ if (callback != null) {
+ readPolicies(callback, operation, attr);
+ } else {
+ readPolicies(contract, operation, attr);
+ }
}
}
@@ -233,7 +236,6 @@
contract.setInterface(interfaceHandler.getInterface());
interfaceHandler = null;
return;
-
} else if (endBindingElement(uri, name, qname)) {
contract.getBindings().add(bindingHandler.getBinding());
bindingHandler = null;
Modified: incubator/tuscany/java/sca/scdl4j/xml/src/main/java/org/apache/tuscany/scdl/impl/ConstrainingTypeHandler.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/scdl4j/xml/src/main/java/org/apache/tuscany/scdl/impl/ConstrainingTypeHandler.java?view=diff&rev=524471&r1=524470&r2=524471
==============================================================================
--- incubator/tuscany/java/sca/scdl4j/xml/src/main/java/org/apache/tuscany/scdl/impl/ConstrainingTypeHandler.java (original)
+++ incubator/tuscany/java/sca/scdl4j/xml/src/main/java/org/apache/tuscany/scdl/impl/ConstrainingTypeHandler.java Sat Mar 31 12:12:41 2007
@@ -65,7 +65,7 @@
if (Constants.CONSTRAINING_TYPE.equals(name)) {
constrainingType = factory.createConstrainingType();
constrainingType.setName(getQName(attr, Constants.NAME));
- readRequiredIntents(constrainingType, attr);
+ readIntents(constrainingType, attr);
return;
} else if (Constants.SERVICE.equals(name)) {
@@ -73,7 +73,7 @@
abstractContract = abstractService;
abstractService.setName(getString(attr, Constants.NAME));
constrainingType.getServices().add(abstractService);
- readRequiredIntents(abstractService, attr);
+ readIntents(abstractService, attr);
return;
} else if (Constants.REFERENCE.equals(name)) {
@@ -81,14 +81,14 @@
abstractContract = abstractReference;
abstractReference.setName(getString(attr, Constants.NAME));
constrainingType.getReferences().add(abstractReference);
- readRequiredIntents(abstractReference, attr);
+ readIntents(abstractReference, attr);
return;
} else if (Constants.PROPERTY.equals(name)) {
abstractProperty = factory.createAbstractProperty();
readAbstractProperty(abstractProperty, attr);
constrainingType.getProperties().add(abstractProperty);
- readRequiredIntents(abstractProperty, attr);
+ readIntents(abstractProperty, attr);
return;
}
}
Modified: incubator/tuscany/java/sca/scdl4j/xml/src/main/java/org/apache/tuscany/scdl/util/BaseHandler.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/scdl4j/xml/src/main/java/org/apache/tuscany/scdl/util/BaseHandler.java?view=diff&rev=524471&r1=524470&r2=524471
==============================================================================
--- incubator/tuscany/java/sca/scdl4j/xml/src/main/java/org/apache/tuscany/scdl/util/BaseHandler.java (original)
+++ incubator/tuscany/java/sca/scdl4j/xml/src/main/java/org/apache/tuscany/scdl/util/BaseHandler.java Sat Mar 31 12:12:41 2007
@@ -35,6 +35,7 @@
import org.apache.tuscany.policy.model.PolicyFactory;
import org.apache.tuscany.policy.model.PolicySet;
import org.apache.tuscany.policy.model.PolicySetAttachPoint;
+import org.apache.tuscany.sca.idl.Operation;
import org.apache.tuscany.scdl.BindingHandler;
import org.apache.tuscany.scdl.Constants;
import org.apache.tuscany.scdl.HandlerRegistry;
@@ -117,7 +118,11 @@
}
}
- protected void readRequiredIntents(IntentAttachPoint attachPoint, Attributes attr) {
+ protected void readIntents(IntentAttachPoint attachPoint, Attributes attr) {
+ readIntents(attachPoint, null, attr);
+ }
+
+ protected void readIntents(IntentAttachPoint attachPoint, Operation operation, Attributes attr) {
String value = attr.getValue(Constants.REQUIRES);
if (value != null) {
List<Intent> requiredIntents = attachPoint.getRequiredIntents();
@@ -125,12 +130,21 @@
QName qname = getQName(tokens.nextToken());
Intent intent = policyFactory.createIntent();
intent.setName(qname);
+ if (operation != null) {
+ intent.getOperations().add(operation);
+ }
requiredIntents.add(intent);
}
}
}
+
+ protected void readPolicies(PolicySetAttachPoint attachPoint, Attributes attr) {
+ readPolicies(attachPoint, null, attr);
+ }
- protected void readPolicySets(PolicySetAttachPoint attachPoint, Attributes attr) {
+ protected void readPolicies(PolicySetAttachPoint attachPoint, Operation operation, Attributes attr) {
+ readIntents(attachPoint, operation, attr);
+
String value = attr.getValue(Constants.POLICY_SETS);
if (value != null) {
List<PolicySet> policySets = attachPoint.getPolicySets();
@@ -138,6 +152,9 @@
QName qname = getQName(tokens.nextToken());
PolicySet policySet = policyFactory.createPolicySet();
policySet.setName(qname);
+ if (operation != null) {
+ policySet.getOperations().add(operation);
+ }
policySets.add(policySet);
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org