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 16:04:25 UTC
svn commit: r964438 -
/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 14:04:25 2010
New Revision: 964438
URL: http://svn.apache.org/viewvc?rev=964438&view=rev
Log:
Check extension type for unresolved service side intents, only throw a warning for unresolved reference side intents
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=964438&r1=964437&r2=964438&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 14:04:25 2010
@@ -36,6 +36,7 @@ import org.apache.tuscany.sca.assembly.C
import org.apache.tuscany.sca.assembly.CompositeReference;
import org.apache.tuscany.sca.assembly.CompositeService;
import org.apache.tuscany.sca.assembly.Contract;
+import org.apache.tuscany.sca.assembly.EndpointReference;
import org.apache.tuscany.sca.assembly.Reference;
import org.apache.tuscany.sca.assembly.Service;
import org.apache.tuscany.sca.assembly.builder.BuilderContext;
@@ -522,15 +523,20 @@ public class ComponentPolicyBuilderImpl
}
}
- if (!intentMatched){
- // Raise a warning as we have an intent that doesn't have a matching
- // policy set at this start.
- // TODO - this could be because the intent is provided by and extension
- // and hence there is no explicit policy set. Need and extra piece
- // of processing to walk through the extension models.
-
- // warning(context.getMonitor(), "IntentNotSatisfiedAtBuild", subject, intent.getName(), subject.toString());
- error(context.getMonitor(), "IntentNotSatisfiedAtBuild", subject, intent.getName(), subject.toString());
+ if (!intentMatched){
+
+ // Reference side intents can still be resolved by the service binding, so we can only issue a
+ // warning here.
+ if ( subject instanceof EndpointReference ) {
+ warning(context.getMonitor(), "IntentNotSatisfiedAtBuild", subject, intent.getName(), subject.toString());
+ } 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))
+ error(context.getMonitor(), "IntentNotSatisfiedAtBuild", subject, intent.getName(), subject.toString());
+ }
}
}
}