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());
+                               }
+                       }
                }
             }
         }


Reply via email to