From c96796e771ebe8055c32b765d2a0e52d0ad14418 Mon Sep 17 00:00:00 2001 From: bdaniel Date: Thu, 15 Jul 2010 17:34:38 +0000 Subject: Use binding type from system definitions to obtain mayProvide/alwaysProvide values git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@964503 13f79535-47bb-0310-9956-ffa450edef68 --- .../sca/builder/impl/ComponentPolicyBuilderImpl.java | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) (limited to 'sca-java-2.x/trunk/modules/builder/src/main/java/org/apache') diff --git a/sca-java-2.x/trunk/modules/builder/src/main/java/org/apache/tuscany/sca/builder/impl/ComponentPolicyBuilderImpl.java b/sca-java-2.x/trunk/modules/builder/src/main/java/org/apache/tuscany/sca/builder/impl/ComponentPolicyBuilderImpl.java index 09d37bb463..e908122861 100644 --- a/sca-java-2.x/trunk/modules/builder/src/main/java/org/apache/tuscany/sca/builder/impl/ComponentPolicyBuilderImpl.java +++ b/sca-java-2.x/trunk/modules/builder/src/main/java/org/apache/tuscany/sca/builder/impl/ComponentPolicyBuilderImpl.java @@ -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()); + } + } } } } -- cgit v1.2.3