You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by na...@apache.org on 2009/09/13 23:46:58 UTC

svn commit: r814389 - in /tuscany/branches/sca-java-1.x: itest/domainmgr/ itest/domainmgr/basic/runtest/ itest/domainmgr/transaction/ itest/domainmgr/transaction/payment/ itest/domainmgr/transaction/payment/src/ itest/domainmgr/transaction/payment/src/...

Author: nash
Date: Sun Sep 13 21:46:57 2009
New Revision: 814389

URL: http://svn.apache.org/viewvc?rev=814389&view=rev
Log:
Copy r797984, r797987 and r797991 changes from 1.5.1 branch to 1.x branch

Added:
    tuscany/branches/sca-java-1.x/itest/domainmgr/transaction/
      - copied from r797987, tuscany/branches/sca-java-1.5.1/itest/domainmgr/transaction/
    tuscany/branches/sca-java-1.x/itest/domainmgr/transaction/payment/   (props changed)
      - copied from r797987, tuscany/branches/sca-java-1.5.1/itest/domainmgr/transaction/payment/
    tuscany/branches/sca-java-1.x/itest/domainmgr/transaction/payment/pom.xml
      - copied unchanged from r797987, tuscany/branches/sca-java-1.5.1/itest/domainmgr/transaction/payment/pom.xml
    tuscany/branches/sca-java-1.x/itest/domainmgr/transaction/payment/src/
      - copied from r797987, tuscany/branches/sca-java-1.5.1/itest/domainmgr/transaction/payment/src/
    tuscany/branches/sca-java-1.x/itest/domainmgr/transaction/payment/src/main/
      - copied from r797987, tuscany/branches/sca-java-1.5.1/itest/domainmgr/transaction/payment/src/main/
    tuscany/branches/sca-java-1.x/itest/domainmgr/transaction/payment/src/main/java/
      - copied from r797987, tuscany/branches/sca-java-1.5.1/itest/domainmgr/transaction/payment/src/main/java/
    tuscany/branches/sca-java-1.x/itest/domainmgr/transaction/payment/src/main/java/payment/
      - copied from r797987, tuscany/branches/sca-java-1.5.1/itest/domainmgr/transaction/payment/src/main/java/payment/
    tuscany/branches/sca-java-1.x/itest/domainmgr/transaction/payment/src/main/java/payment/PaymentImpl.java
      - copied unchanged from r797987, tuscany/branches/sca-java-1.5.1/itest/domainmgr/transaction/payment/src/main/java/payment/PaymentImpl.java
    tuscany/branches/sca-java-1.x/itest/domainmgr/transaction/payment/src/main/java/scatours/
      - copied from r797987, tuscany/branches/sca-java-1.5.1/itest/domainmgr/transaction/payment/src/main/java/scatours/
    tuscany/branches/sca-java-1.x/itest/domainmgr/transaction/payment/src/main/java/scatours/customer/
      - copied from r797987, tuscany/branches/sca-java-1.5.1/itest/domainmgr/transaction/payment/src/main/java/scatours/customer/
    tuscany/branches/sca-java-1.x/itest/domainmgr/transaction/payment/src/main/java/scatours/customer/Customer.java
      - copied unchanged from r797987, tuscany/branches/sca-java-1.5.1/itest/domainmgr/transaction/payment/src/main/java/scatours/customer/Customer.java
    tuscany/branches/sca-java-1.x/itest/domainmgr/transaction/payment/src/main/java/scatours/customer/CustomerNotFoundException.java
      - copied unchanged from r797987, tuscany/branches/sca-java-1.5.1/itest/domainmgr/transaction/payment/src/main/java/scatours/customer/CustomerNotFoundException.java
    tuscany/branches/sca-java-1.x/itest/domainmgr/transaction/payment/src/main/java/scatours/customer/CustomerRegistry.java
      - copied unchanged from r797987, tuscany/branches/sca-java-1.5.1/itest/domainmgr/transaction/payment/src/main/java/scatours/customer/CustomerRegistry.java
    tuscany/branches/sca-java-1.x/itest/domainmgr/transaction/payment/src/main/java/scatours/customer/CustomerRegistryImpl.java
      - copied unchanged from r797987, tuscany/branches/sca-java-1.5.1/itest/domainmgr/transaction/payment/src/main/java/scatours/customer/CustomerRegistryImpl.java
    tuscany/branches/sca-java-1.x/itest/domainmgr/transaction/payment/src/main/java/scatours/emailgateway/
      - copied from r797987, tuscany/branches/sca-java-1.5.1/itest/domainmgr/transaction/payment/src/main/java/scatours/emailgateway/
    tuscany/branches/sca-java-1.x/itest/domainmgr/transaction/payment/src/main/java/scatours/emailgateway/EmailGateway.java
      - copied unchanged from r797987, tuscany/branches/sca-java-1.5.1/itest/domainmgr/transaction/payment/src/main/java/scatours/emailgateway/EmailGateway.java
    tuscany/branches/sca-java-1.x/itest/domainmgr/transaction/payment/src/main/java/scatours/emailgateway/EmailGatewayImpl.java
      - copied unchanged from r797987, tuscany/branches/sca-java-1.5.1/itest/domainmgr/transaction/payment/src/main/java/scatours/emailgateway/EmailGatewayImpl.java
    tuscany/branches/sca-java-1.x/itest/domainmgr/transaction/payment/src/main/resources/
      - copied from r797987, tuscany/branches/sca-java-1.5.1/itest/domainmgr/transaction/payment/src/main/resources/
    tuscany/branches/sca-java-1.x/itest/domainmgr/transaction/payment/src/main/resources/CreditCardPayment.wsdl
      - copied unchanged from r797987, tuscany/branches/sca-java-1.5.1/itest/domainmgr/transaction/payment/src/main/resources/CreditCardPayment.wsdl
    tuscany/branches/sca-java-1.x/itest/domainmgr/transaction/payment/src/main/resources/META-INF/
      - copied from r797987, tuscany/branches/sca-java-1.5.1/itest/domainmgr/transaction/payment/src/main/resources/META-INF/
    tuscany/branches/sca-java-1.x/itest/domainmgr/transaction/payment/src/main/resources/META-INF/sca-contribution.xml
      - copied unchanged from r797987, tuscany/branches/sca-java-1.5.1/itest/domainmgr/transaction/payment/src/main/resources/META-INF/sca-contribution.xml
    tuscany/branches/sca-java-1.x/itest/domainmgr/transaction/payment/src/main/resources/Payment.wsdl
      - copied unchanged from r797987, tuscany/branches/sca-java-1.5.1/itest/domainmgr/transaction/payment/src/main/resources/Payment.wsdl
    tuscany/branches/sca-java-1.x/itest/domainmgr/transaction/payment/src/main/resources/definitions.xml
      - copied unchanged from r797987, tuscany/branches/sca-java-1.5.1/itest/domainmgr/transaction/payment/src/main/resources/definitions.xml
    tuscany/branches/sca-java-1.x/itest/domainmgr/transaction/payment/src/main/resources/payment.composite
      - copied unchanged from r797987, tuscany/branches/sca-java-1.5.1/itest/domainmgr/transaction/payment/src/main/resources/payment.composite
    tuscany/branches/sca-java-1.x/itest/domainmgr/transaction/pom.xml
      - copied unchanged from r797987, tuscany/branches/sca-java-1.5.1/itest/domainmgr/transaction/pom.xml
    tuscany/branches/sca-java-1.x/itest/domainmgr/transaction/runtest/   (props changed)
      - copied from r797987, tuscany/branches/sca-java-1.5.1/itest/domainmgr/transaction/runtest/
    tuscany/branches/sca-java-1.x/itest/domainmgr/transaction/runtest/pom.xml
      - copied unchanged from r797987, tuscany/branches/sca-java-1.5.1/itest/domainmgr/transaction/runtest/pom.xml
    tuscany/branches/sca-java-1.x/itest/domainmgr/transaction/runtest/src/
      - copied from r797987, tuscany/branches/sca-java-1.5.1/itest/domainmgr/transaction/runtest/src/
    tuscany/branches/sca-java-1.x/itest/domainmgr/transaction/runtest/src/test/
      - copied from r797987, tuscany/branches/sca-java-1.5.1/itest/domainmgr/transaction/runtest/src/test/
    tuscany/branches/sca-java-1.x/itest/domainmgr/transaction/runtest/src/test/java/
      - copied from r797987, tuscany/branches/sca-java-1.5.1/itest/domainmgr/transaction/runtest/src/test/java/
    tuscany/branches/sca-java-1.x/itest/domainmgr/transaction/runtest/src/test/java/domainmgr/
      - copied from r797987, tuscany/branches/sca-java-1.5.1/itest/domainmgr/transaction/runtest/src/test/java/domainmgr/
    tuscany/branches/sca-java-1.x/itest/domainmgr/transaction/runtest/src/test/java/domainmgr/DomainManagerTransactionTestCase.java
      - copied unchanged from r797987, tuscany/branches/sca-java-1.5.1/itest/domainmgr/transaction/runtest/src/test/java/domainmgr/DomainManagerTransactionTestCase.java
    tuscany/branches/sca-java-1.x/itest/domainmgr/transaction/runtest/src/test/resources/
      - copied from r797987, tuscany/branches/sca-java-1.5.1/itest/domainmgr/transaction/runtest/src/test/resources/
    tuscany/branches/sca-java-1.x/itest/domainmgr/transaction/runtest/src/test/resources/domain/
      - copied from r797987, tuscany/branches/sca-java-1.5.1/itest/domainmgr/transaction/runtest/src/test/resources/domain/
    tuscany/branches/sca-java-1.x/itest/domainmgr/transaction/runtest/src/test/resources/domain/cloud/
      - copied from r797987, tuscany/branches/sca-java-1.5.1/itest/domainmgr/transaction/runtest/src/test/resources/domain/cloud/
    tuscany/branches/sca-java-1.x/itest/domainmgr/transaction/runtest/src/test/resources/domain/cloud.composite
      - copied unchanged from r797987, tuscany/branches/sca-java-1.5.1/itest/domainmgr/transaction/runtest/src/test/resources/domain/cloud.composite
    tuscany/branches/sca-java-1.x/itest/domainmgr/transaction/runtest/src/test/resources/domain/cloud/PaymentNode.composite
      - copied unchanged from r797987, tuscany/branches/sca-java-1.5.1/itest/domainmgr/transaction/runtest/src/test/resources/domain/cloud/PaymentNode.composite
    tuscany/branches/sca-java-1.x/itest/domainmgr/transaction/runtest/src/test/resources/domain/domain.composite
      - copied unchanged from r797987, tuscany/branches/sca-java-1.5.1/itest/domainmgr/transaction/runtest/src/test/resources/domain/domain.composite
    tuscany/branches/sca-java-1.x/itest/domainmgr/transaction/runtest/src/test/resources/domain/workspace.xml
      - copied unchanged from r797987, tuscany/branches/sca-java-1.5.1/itest/domainmgr/transaction/runtest/src/test/resources/domain/workspace.xml
Modified:
    tuscany/branches/sca-java-1.x/itest/domainmgr/basic/runtest/pom.xml
    tuscany/branches/sca-java-1.x/itest/domainmgr/pom.xml
    tuscany/branches/sca-java-1.x/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/CompositeConfigurationServiceImpl.java
    tuscany/branches/sca-java-1.x/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/processor/impl/ContributionContentProcessor.java

Modified: tuscany/branches/sca-java-1.x/itest/domainmgr/basic/runtest/pom.xml
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/itest/domainmgr/basic/runtest/pom.xml?rev=814389&r1=814388&r2=814389&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/itest/domainmgr/basic/runtest/pom.xml (original)
+++ tuscany/branches/sca-java-1.x/itest/domainmgr/basic/runtest/pom.xml Sun Sep 13 21:46:57 2009
@@ -70,14 +70,6 @@
             <version>1.5.1-SNAPSHOT</version>
             <scope>test</scope>
         </dependency>
-        <!--
-        <dependency>
-            <groupId>org.apache.tuscany.sca</groupId>
-            <artifactId>tuscany-binding-jsonrpc-runtime</artifactId>
-            <version>1.5.1-SNAPSHOT</version>
-            <scope>test</scope>
-        </dependency>
-        -->
 
         <dependency>
             <groupId>junit</groupId>

Modified: tuscany/branches/sca-java-1.x/itest/domainmgr/pom.xml
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/itest/domainmgr/pom.xml?rev=814389&r1=814388&r2=814389&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/itest/domainmgr/pom.xml (original)
+++ tuscany/branches/sca-java-1.x/itest/domainmgr/pom.xml Sun Sep 13 21:46:57 2009
@@ -33,9 +33,10 @@
 
   <packaging>pom</packaging>
   <build>
-	<defaultGoal>install</defaultGoal>
+    <defaultGoal>install</defaultGoal>
   </build>
   <modules>
     <module>basic</module>
+    <module>transaction</module>
   </modules>
 </project>

Propchange: tuscany/branches/sca-java-1.x/itest/domainmgr/transaction/payment/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Sun Sep 13 21:46:57 2009
@@ -0,0 +1,15 @@
+target
+*.iws
+*.ipr
+*.iml
+.project
+.classpath
+maven.log
+velocity.log*
+junit*.properties
+surefire*.properties
+.settings
+.deployables
+.wtpmodules
+.externalToolBuilders
+maven-eclipse.xml

Propchange: tuscany/branches/sca-java-1.x/itest/domainmgr/transaction/runtest/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Sun Sep 13 21:46:57 2009
@@ -0,0 +1,15 @@
+target
+*.iws
+*.ipr
+*.iml
+.project
+.classpath
+maven.log
+velocity.log*
+junit*.properties
+surefire*.properties
+.settings
+.deployables
+.wtpmodules
+.externalToolBuilders
+maven-eclipse.xml

Modified: tuscany/branches/sca-java-1.x/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/CompositeConfigurationServiceImpl.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/CompositeConfigurationServiceImpl.java?rev=814389&r1=814388&r2=814389&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/CompositeConfigurationServiceImpl.java (original)
+++ tuscany/branches/sca-java-1.x/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/CompositeConfigurationServiceImpl.java Sun Sep 13 21:46:57 2009
@@ -55,6 +55,7 @@
 import org.apache.tuscany.sca.assembly.builder.CompositeBuilderException;
 import org.apache.tuscany.sca.assembly.builder.impl.CompositeBuilderImpl;
 import org.apache.tuscany.sca.assembly.builder.impl.CompositeIncludeBuilderImpl;
+import org.apache.tuscany.sca.assembly.xml.CompositeDocumentProcessor;
 import org.apache.tuscany.sca.assembly.xml.Constants;
 import org.apache.tuscany.sca.contribution.Artifact;
 import org.apache.tuscany.sca.contribution.Contribution;
@@ -65,7 +66,10 @@
 import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint;
 import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor;
 import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessorExtensionPoint;
+import org.apache.tuscany.sca.contribution.processor.ValidatingXMLInputFactory;
+import org.apache.tuscany.sca.contribution.resolver.DefaultModelResolver;
 import org.apache.tuscany.sca.contribution.resolver.ExtensibleModelResolver;
+import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
 import org.apache.tuscany.sca.contribution.resolver.ModelResolverExtensionPoint;
 import org.apache.tuscany.sca.contribution.service.ContributionReadException;
 import org.apache.tuscany.sca.contribution.service.ContributionResolveException;
@@ -75,17 +79,26 @@
 import org.apache.tuscany.sca.data.collection.Item;
 import org.apache.tuscany.sca.data.collection.LocalItemCollection;
 import org.apache.tuscany.sca.data.collection.NotFoundException;
+import org.apache.tuscany.sca.definitions.SCADefinitions;
+import org.apache.tuscany.sca.definitions.impl.SCADefinitionsImpl;
+import org.apache.tuscany.sca.definitions.util.SCADefinitionsUtil;
 import org.apache.tuscany.sca.implementation.node.NodeImplementation;
 import org.apache.tuscany.sca.implementation.node.builder.impl.NodeCompositeBuilderImpl;
 import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper;
 import org.apache.tuscany.sca.monitor.Monitor;
 import org.apache.tuscany.sca.monitor.MonitorFactory;
+import org.apache.tuscany.sca.policy.Intent;
+import org.apache.tuscany.sca.policy.IntentAttachPointType;
 import org.apache.tuscany.sca.policy.IntentAttachPointTypeFactory;
+import org.apache.tuscany.sca.policy.PolicySet;
+import org.apache.tuscany.sca.provider.SCADefinitionsProvider;
+import org.apache.tuscany.sca.provider.SCADefinitionsProviderExtensionPoint;
 import org.apache.tuscany.sca.workspace.Workspace;
 import org.apache.tuscany.sca.workspace.WorkspaceFactory;
 import org.apache.tuscany.sca.workspace.builder.ContributionDependencyBuilder;
 import org.apache.tuscany.sca.workspace.builder.impl.ContributionDependencyBuilderImpl;
 import org.apache.tuscany.sca.workspace.processor.impl.ContributionContentProcessor;
+import org.osoa.sca.ServiceRuntimeException;
 import org.osoa.sca.annotations.Init;
 import org.osoa.sca.annotations.Reference;
 import org.osoa.sca.annotations.Scope;
@@ -125,10 +138,16 @@
     private StAXArtifactProcessor<Composite> compositeProcessor;
     private XMLOutputFactory outputFactory;
     private ContributionDependencyBuilder contributionDependencyBuilder;
-    private CompositeBuilder compositeBuilder;
     private CompositeBuilder compositeIncludeBuilder;
     private CompositeBuilder nodeConfigurationBuilder;
     private Monitor monitor;
+    private List<SCADefinitions> policyDefinitions;
+    private ModelResolver policyDefinitionsResolver;
+    private SCABindingFactory scaBindingFactory;
+    private IntentAttachPointTypeFactory intentAttachPointTypeFactory;
+    private DocumentBuilderFactory documentBuilderFactory;
+    private TransformerFactory transformerFactory;
+    private InterfaceContractMapper contractMapper;
     
     /**
      * Initialize the component.
@@ -158,26 +177,37 @@
 
         URLArtifactProcessorExtensionPoint urlProcessors = extensionPoints.getExtensionPoint(URLArtifactProcessorExtensionPoint.class);
         URLArtifactProcessor<Object> urlProcessor = new ExtensibleURLArtifactProcessor(urlProcessors, monitor);
-        
+        policyDefinitionsResolver = new DefaultModelResolver();
+        policyDefinitions = new ArrayList<SCADefinitions>();
+
+        // The following was copied from RuntimeBuilder to fix TUSCANY-3171
+        XMLInputFactory validatingInputFactory = modelFactories.getFactory(ValidatingXMLInputFactory.class);
+        documentBuilderFactory = modelFactories.getFactory(DocumentBuilderFactory.class);
+        //documentBuilderFactory.setNamespaceAware(true);
+        urlProcessors.getProcessor(Composite.class);
+        urlProcessors.addArtifactProcessor(new CompositeDocumentProcessor(staxProcessor, validatingInputFactory,
+                                                                          documentBuilderFactory, policyDefinitions, monitor));
+    
         // Create contribution processor
         modelResolvers = extensionPoints.getExtensionPoint(ModelResolverExtensionPoint.class);
-        contributionProcessor = new ContributionContentProcessor(extensionPoints, monitor);
+        contributionProcessor = new ContributionContentProcessor(extensionPoints, monitor, policyDefinitionsResolver, policyDefinitions);
         
         // Create contribution and composite builders
-        DocumentBuilderFactory documentBuilderFactory = modelFactories.getFactory(DocumentBuilderFactory.class);
-        TransformerFactory transformerFactory = modelFactories.getFactory(TransformerFactory.class);
+        transformerFactory = modelFactories.getFactory(TransformerFactory.class);
         contributionDependencyBuilder = new ContributionDependencyBuilderImpl(monitor);
-        SCABindingFactory scaBindingFactory = modelFactories.getFactory(SCABindingFactory.class);
-        IntentAttachPointTypeFactory intentAttachPointTypeFactory = modelFactories.getFactory(IntentAttachPointTypeFactory.class);
-        InterfaceContractMapper contractMapper = utilities.getUtility(InterfaceContractMapper.class);
-        compositeBuilder = new CompositeBuilderImpl(assemblyFactory, scaBindingFactory, intentAttachPointTypeFactory, documentBuilderFactory, transformerFactory, contractMapper, monitor);
+        scaBindingFactory = modelFactories.getFactory(SCABindingFactory.class);
+        intentAttachPointTypeFactory = modelFactories.getFactory(IntentAttachPointTypeFactory.class);
+        contractMapper = utilities.getUtility(InterfaceContractMapper.class);
         compositeIncludeBuilder = new CompositeIncludeBuilderImpl(monitor);
         nodeConfigurationBuilder = new NodeCompositeBuilderImpl(assemblyFactory, scaBindingFactory, documentBuilderFactory, transformerFactory, contractMapper, null, monitor);
+
+        // Load the definitions.xml
+        loadSCADefinitions(extensionPoints);
     }
     
     @Override
     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
-        
+
         // Get the request path
         String path = URLDecoder.decode(request.getRequestURI().substring(request.getServletPath().length()), "UTF-8");
         String key;
@@ -284,6 +314,7 @@
             try {
                 compositeIncludeBuilder.build(deployable);
             } catch (CompositeBuilderException e) {
+                e.printStackTrace();  //[nash]
                 response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.toString());
             }
             
@@ -347,9 +378,17 @@
         }
         
         // Build the domain composite
+        SCADefinitions aggregatedDefinitions = new SCADefinitionsImpl();
+        for (SCADefinitions definition : policyDefinitions) {
+            SCADefinitionsUtil.aggregateSCADefinitions(definition, aggregatedDefinitions);
+        }
+        CompositeBuilder compositeBuilder = new CompositeBuilderImpl(assemblyFactory, null, scaBindingFactory,
+                                     intentAttachPointTypeFactory, documentBuilderFactory, transformerFactory,
+                                     contractMapper, aggregatedDefinitions, monitor);
         try {
             compositeBuilder.build(domainComposite);
         } catch (CompositeBuilderException e) {
+            e.printStackTrace();  //[nash]
             response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.toString());
             return;
         }        
@@ -416,7 +455,9 @@
             QName formatName = new QName(format.substring(0, s), format.substring(s +1));
             processor = (StAXArtifactProcessor<Composite>)staxProcessors.getProcessor(formatName);
             if (processor == null) {
-                response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, new IllegalArgumentException(queryString).toString());
+                Exception e = new IllegalArgumentException(queryString);  //[nash]
+                e.printStackTrace();  //[nash]
+                response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.toString()); //[nash]
                 return;
             }
         } else {
@@ -427,6 +468,7 @@
             XMLStreamWriter writer = outputFactory.createXMLStreamWriter(response.getOutputStream());
             processor.write(requestedComposite, writer);
         } catch (Exception e) {
+            e.printStackTrace();  //[nash]
             response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.toString());
             return;
         }
@@ -516,4 +558,52 @@
         }
     }
 
+    /**
+     * The following code was copied from RuntimeBootStrapper to fix TUSCANY-3171
+     *
+     * @param registry
+     */
+    private void loadSCADefinitions(ExtensionPointRegistry registry) throws ParserConfigurationException {
+        try {
+            URLArtifactProcessorExtensionPoint documentProcessors =
+                registry.getExtensionPoint(URLArtifactProcessorExtensionPoint.class);
+            URLArtifactProcessor<SCADefinitions> definitionsProcessor =
+                documentProcessors.getProcessor(SCADefinitions.class);
+            SCADefinitionsProviderExtensionPoint scaDefnProviders =
+                registry.getExtensionPoint(SCADefinitionsProviderExtensionPoint.class);
+
+            SCADefinitions systemSCADefinitions = new SCADefinitionsImpl();
+            SCADefinitions aSCADefn = null;
+            for (SCADefinitionsProvider aProvider : scaDefnProviders.getSCADefinitionsProviders()) {
+                aSCADefn = aProvider.getSCADefinition();
+                SCADefinitionsUtil.aggregateSCADefinitions(aSCADefn, systemSCADefinitions);
+            }
+
+            policyDefinitions.add(systemSCADefinitions);
+
+            //we cannot expect that providers will add the intents and policysets into the resolver
+            //so we do this here explicitly
+            for (Intent intent : systemSCADefinitions.getPolicyIntents()) {
+                policyDefinitionsResolver.addModel(intent);
+            }
+
+            for (PolicySet policySet : systemSCADefinitions.getPolicySets()) {
+                policyDefinitionsResolver.addModel(policySet);
+            }
+
+            for (IntentAttachPointType attachPoinType : systemSCADefinitions.getBindingTypes()) {
+                policyDefinitionsResolver.addModel(attachPoinType);
+            }
+
+            for (IntentAttachPointType attachPoinType : systemSCADefinitions.getImplementationTypes()) {
+                policyDefinitionsResolver.addModel(attachPoinType);
+            }
+
+            //now that all system sca definitions have been read, lets resolve them right away
+            definitionsProcessor.resolve(systemSCADefinitions, policyDefinitionsResolver);
+        } catch (Exception e) {
+            throw new ServiceRuntimeException(e);
+        }
+    }
+
 }

Modified: tuscany/branches/sca-java-1.x/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/processor/impl/ContributionContentProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/processor/impl/ContributionContentProcessor.java?rev=814389&r1=814388&r2=814389&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/processor/impl/ContributionContentProcessor.java (original)
+++ tuscany/branches/sca-java-1.x/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/processor/impl/ContributionContentProcessor.java Sun Sep 13 21:46:57 2009
@@ -50,9 +50,13 @@
 import org.apache.tuscany.sca.contribution.scanner.ContributionScanner;
 import org.apache.tuscany.sca.contribution.service.ContributionReadException;
 import org.apache.tuscany.sca.contribution.service.ContributionResolveException;
+import org.apache.tuscany.sca.definitions.SCADefinitions;
 import org.apache.tuscany.sca.core.ExtensionPointRegistry;
 import org.apache.tuscany.sca.core.UtilityExtensionPoint;
 import org.apache.tuscany.sca.monitor.Monitor;
+import org.apache.tuscany.sca.policy.Intent;
+import org.apache.tuscany.sca.policy.IntentAttachPointType;
+import org.apache.tuscany.sca.policy.PolicySet;
 import org.apache.tuscany.sca.workspace.scanner.impl.DirectoryContributionScanner;
 import org.apache.tuscany.sca.workspace.scanner.impl.JarContributionScanner;
 
@@ -71,6 +75,8 @@
     private StAXArtifactProcessor<Object> extensionProcessor;
     private UtilityExtensionPoint utilities;
     private Monitor monitor = null;
+    private ModelResolver policyDefinitionsResolver = null;
+    private List<SCADefinitions> policyDefinitions = null;
 
     public ContributionContentProcessor(ExtensionPointRegistry extensionPoints, Monitor monitor) {
         this.extensionPoints = extensionPoints;
@@ -89,6 +95,13 @@
         this.contributionFactory = modelFactories.getFactory(ContributionFactory.class);
     }
 
+    public ContributionContentProcessor(ExtensionPointRegistry extensionPoints, Monitor monitor,
+                                        ModelResolver policyDefinitionsResolver, List<SCADefinitions> policyDefinitions) {
+        this(extensionPoints, monitor);
+        this.policyDefinitionsResolver = policyDefinitionsResolver;
+        this.policyDefinitions = policyDefinitions;
+    }
+
     /*
     public ContributionContentProcessor(ModelFactoryExtensionPoint modelFactories, ModelResolverExtensionPoint modelResolvers,
                                         URLArtifactProcessor<Object> artifactProcessor, StAXArtifactProcessor<Object> extensionProcessor, Monitor monitor) {
@@ -116,7 +129,12 @@
         Contribution contribution = contributionFactory.createContribution();
         contribution.setURI(contributionURI.toString());
         contribution.setLocation(contributionURL.toString());
-        ModelResolver modelResolver = new ExtensibleModelResolver(contribution, extensionPoints);
+        ModelResolver modelResolver;
+        if (policyDefinitionsResolver != null) {
+            modelResolver = new ExtensibleModelResolver(contribution, extensionPoints, modelResolvers, modelFactories, policyDefinitionsResolver);
+        } else { 
+            modelResolver = new ExtensibleModelResolver(contribution, extensionPoints);
+        }
         contribution.setModelResolver(modelResolver);
         contribution.setUnresolved(true);
 
@@ -150,6 +168,11 @@
                 // Add the loaded model to the model resolver
                 modelResolver.addModel(model);
 
+                // Add policy definitions to the list of policy definitions
+                if (policyDefinitionsResolver != null) {
+                    addPolicyDefinitions(model);
+                }
+
                 // Merge contribution metadata into the contribution model
                 if (model instanceof ContributionMetadata) {
                     contributionMetadata = true;
@@ -245,4 +268,38 @@
             }
         }
     }
+
+    /**
+     * The following code was copied from ContributionServiceImpl to fix TUSCANY-3171
+     *
+     * @param model
+     */
+    private void addPolicyDefinitions(Object model) {
+
+        // Add policy definitions to the list of policy definitions
+        if (model instanceof SCADefinitions) {
+            policyDefinitions.add((SCADefinitions)model);
+
+            SCADefinitions definitions = (SCADefinitions)model;
+            for (Intent intent : definitions.getPolicyIntents() ) {
+                policyDefinitionsResolver.addModel(intent);
+            }
+
+            for (PolicySet policySet : definitions.getPolicySets() ) {
+                policyDefinitionsResolver.addModel(policySet);
+            }
+
+            for (IntentAttachPointType attachPointType : definitions.getBindingTypes() ) {
+                policyDefinitionsResolver.addModel(attachPointType);
+            }
+
+            for (IntentAttachPointType attachPointType : definitions.getImplementationTypes() ) {
+                policyDefinitionsResolver.addModel(attachPointType);
+            }
+            for (Object binding : definitions.getBindings() ) {
+                policyDefinitionsResolver.addModel(binding);
+            }
+        }
+    }
+
 }