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