You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by bd...@apache.org on 2010/07/15 19:34:39 UTC

svn commit: r964503 - /tuscany/sca-java-2.x/trunk/modules/builder/src/main/java/org/apache/tuscany/sca/builder/impl/ComponentPolicyBuilderImpl.java

Author: bdaniel
Date: Thu Jul 15 17:34:38 2010
New Revision: 964503

URL: http://svn.apache.org/viewvc?rev=964503&view=rev
Log:
Use binding type from system definitions to obtain mayProvide/alwaysProvide values

Modified:
    tuscany/sca-java-2.x/trunk/modules/builder/src/main/java/org/apache/tuscany/sca/builder/impl/ComponentPolicyBuilderImpl.java

Modified: tuscany/sca-java-2.x/trunk/modules/builder/src/main/java/org/apache/tuscany/sca/builder/impl/ComponentPolicyBuilderImpl.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/builder/src/main/java/org/apache/tuscany/sca/builder/impl/ComponentPolicyBuilderImpl.java?rev=964503&r1=964502&r2=964503&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/builder/src/main/java/org/apache/tuscany/sca/builder/impl/ComponentPolicyBuilderImpl.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/builder/src/main/java/org/apache/tuscany/sca/builder/impl/ComponentPolicyBuilderImpl.java Thu Jul 15 17:34:38 2010
@@ -532,10 +532,23 @@ public class ComponentPolicyBuilderImpl 
             	} else {
             		// Need to check the ExtensionType to see if the intent is provided there. If not, throw an error
             		ExtensionType type = subject.getExtensionType();
-            		if ( type == null )
-            			error(context.getMonitor(), "IntentNotSatisfiedAtBuild", subject, intent.getName(), subject.toString());
-            		else if ( !type.getAlwaysProvidedIntents().contains(intent) && !type.getMayProvidedIntents().contains(intent))
+
+            		
+            		if ( type == null ) {
             			error(context.getMonitor(), "IntentNotSatisfiedAtBuild", subject, intent.getName(), subject.toString());
+            		} else {
+            			// The ExtensionType on the subject only has the binding name. The one in the system
+            			// definitions will have the mayProvide/alwaysProvides values
+            			for ( ExtensionType et : context.getDefinitions().getBindingTypes() ) {
+            				if ( type.getType().equals(et.getType()) ) {
+            					type = et;
+            				}
+            			}
+            		
+            			if ( !type.getAlwaysProvidedIntents().contains(intent) && !type.getMayProvidedIntents().contains(intent)) {            			            	
+            				error(context.getMonitor(), "IntentNotSatisfiedAtBuild", subject, intent.getName(), subject.toString());
+            			}
+            		}
             	}
             }
         }