Author: rfeng
Date: Tue Jul 7 22:00:41 2009
New Revision: 791991
URL: http://svn.apache.org/viewvc?rev=791991&view=rev
Log:
Fix the code to read policies and intents
Modified:
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/BaseBuilderImpl.java
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositePolicyBuilderImpl.java
Modified:
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/BaseBuilderImpl.java
URL:
http://svn.apache.org/viewvc/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/BaseBuilderImpl.java?rev=791991&r1=791990&r2=791991&view=diff
==============================================================================
---
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/BaseBuilderImpl.java
(original)
+++
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/BaseBuilderImpl.java
Tue Jul 7 22:00:41 2009
@@ -39,6 +39,9 @@
import org.apache.tuscany.sca.assembly.SCABindingFactory;
import org.apache.tuscany.sca.assembly.Service;
import org.apache.tuscany.sca.assembly.builder.CompositeBuilder;
+import org.apache.tuscany.sca.core.ExtensionPointRegistry;
+import org.apache.tuscany.sca.core.FactoryExtensionPoint;
+import org.apache.tuscany.sca.core.UtilityExtensionPoint;
import org.apache.tuscany.sca.definitions.Definitions;
import org.apache.tuscany.sca.interfacedef.InterfaceContract;
import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper;
@@ -75,6 +78,20 @@
this.transformerFactory = transformerFactory;
this.interfaceContractMapper = interfaceContractMapper;
}
+
+ /**
+ * Construct a builder from the extension point registry
+ * @param registry
+ */
+ protected BaseBuilderImpl(ExtensionPointRegistry registry) {
+ FactoryExtensionPoint factoryExtensionPoint =
registry.getExtensionPoint(FactoryExtensionPoint.class);
+ this.assemblyFactory =
factoryExtensionPoint.getFactory(AssemblyFactory.class);
+ this.scaBindingFactory =
factoryExtensionPoint.getFactory(SCABindingFactory.class);
+ this.documentBuilderFactory =
factoryExtensionPoint.getFactory(DocumentBuilderFactory.class);
+ this.transformerFactory =
factoryExtensionPoint.getFactory(TransformerFactory.class);
+ this.interfaceContractMapper =
+
registry.getExtensionPoint(UtilityExtensionPoint.class).getUtility(InterfaceContractMapper.class);
+ }
/**
* Report a warning.
Modified:
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositePolicyBuilderImpl.java
URL:
http://svn.apache.org/viewvc/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositePolicyBuilderImpl.java?rev=791991&r1=791990&r2=791991&view=diff
==============================================================================
---
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositePolicyBuilderImpl.java
(original)
+++
tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositePolicyBuilderImpl.java
Tue Jul 7 22:00:41 2009
@@ -38,6 +38,7 @@
import org.apache.tuscany.sca.assembly.Service;
import org.apache.tuscany.sca.assembly.builder.CompositeBuilder;
import org.apache.tuscany.sca.assembly.builder.CompositeBuilderException;
+import org.apache.tuscany.sca.core.ExtensionPointRegistry;
import org.apache.tuscany.sca.definitions.Definitions;
import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper;
import org.apache.tuscany.sca.monitor.Monitor;
@@ -53,7 +54,10 @@
* @version $Rev$ $Date$
*/
public class CompositePolicyBuilderImpl extends BaseBuilderImpl implements
CompositeBuilder {
-
+ public CompositePolicyBuilderImpl(ExtensionPointRegistry registry) {
+ super(registry);
+ }
+
public CompositePolicyBuilderImpl(AssemblyFactory assemblyFactory,
InterfaceContractMapper interfaceContractMapper) {
super(assemblyFactory, null, null, null, interfaceContractMapper);
}
@@ -181,15 +185,29 @@
return name2.equals(name1);
}
}
+
+ private Intent resolve(Definitions definitions, Intent proxy) {
+ for(Intent i: definitions.getIntents()) {
+ if(i.equals(proxy)) {
+ return i;
+ }
+ for(Intent qi: i.getQualifiedIntents()) {
+ if(qi.equals(proxy)) {
+ return qi;
+ }
+ }
+ }
+ return null;
+ }
private void resolveAndNormalize(PolicySubject subject, Definitions
definitions, Monitor monitor) {
Set<Intent> intents = new HashSet<Intent>();
if (definitions != null) {
for (Intent i : subject.getRequiredIntents()) {
- int index = definitions.getIntents().indexOf(i);
- if (index != -1) {
- intents.add(definitions.getIntents().get(index));
+ Intent resolved = resolve(definitions, i);
+ if (resolved != null) {
+ intents.add(resolved);
} else {
warning(monitor, "intent-not-found", subject,
i.getName().toString());
// Intent cannot be resolved
@@ -198,8 +216,8 @@
}
// Replace profile intents with their required intents
- boolean profileIntentsFound = false;
- while (true) {
+ while (!intents.isEmpty()) {
+ boolean profileIntentsFound = false;
Set<Intent> copy = new HashSet<Intent>(intents);
for (Intent i : copy) {
if (!i.getRequiredIntents().isEmpty()) {