You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by sv...@apache.org on 2008/01/02 11:35:40 UTC

svn commit: r608074 [1/2] - in /incubator/tuscany/java/sca/modules: assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/ assembly/src/main/java/org/apache/tuscany/sca/assem...

Author: svkrish
Date: Wed Jan  2 02:35:24 2008
New Revision: 608074

URL: http://svn.apache.org/viewvc?rev=608074&view=rev
Log:
allowing for multiple definitions.xml file, runtime and extensions can have definitions.xml in META-INF/services and contributions can also have their own definitions.xml, all of them is aggregated for the domain

Added:
    incubator/tuscany/java/sca/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/another_test_definitions.xml
      - copied unchanged from r607532, incubator/tuscany/java/sca/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/AnotherDefinitions.xml
    incubator/tuscany/java/sca/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/test_definitions.xml
      - copied unchanged from r607532, incubator/tuscany/java/sca/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/definitions.xml
    incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/resources/META-INF/services/definitions.xml
    incubator/tuscany/java/sca/modules/binding-ws-axis2/src/test/resources/org/apache/tuscany/sca/binding/ws/axis2/itests/policy/configparams/definitions.xml
    incubator/tuscany/java/sca/modules/binding-ws-axis2/src/test/resources/org/apache/tuscany/sca/binding/ws/axis2/itests/policy/wspolicy/definitions.xml
    incubator/tuscany/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/SCADefinitionsResolver.java
    incubator/tuscany/java/sca/modules/definitions/src/main/java/org/apache/tuscany/sca/definitions/util/
    incubator/tuscany/java/sca/modules/definitions/src/main/java/org/apache/tuscany/sca/definitions/util/SCADefinitionsUtil.java
    incubator/tuscany/java/sca/modules/policy-logging/src/main/resources/META-INF/services/definitions.xml
    incubator/tuscany/java/sca/modules/policy/src/main/resources/META-INF/services/definitions.xml
Removed:
    incubator/tuscany/java/sca/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/AnotherDefinitions.xml
    incubator/tuscany/java/sca/modules/assembly-xml/src/test/resources/org/apache/tuscany/sca/assembly/xml/definitions.xml
    incubator/tuscany/java/sca/modules/binding-ws-axis2/src/test/resources/definitions.xml
    incubator/tuscany/java/sca/modules/definitions/src/main/java/org/apache/tuscany/sca/definitions/SCADefinitionsResolver.java
Modified:
    incubator/tuscany/java/sca/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/BuildPolicyTestCase.java
    incubator/tuscany/java/sca/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ResolvePolicyTestCase.java
    incubator/tuscany/java/sca/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/WireTestCase.java
    incubator/tuscany/java/sca/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/WriteAllTestCase.java
    incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/BindingPolicyComputer.java
    incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ImplementationPolicyComputer.java
    incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/PolicyComputer.java
    incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/TestNode.java
    incubator/tuscany/java/sca/modules/binding-ws-axis2/src/test/resources/org/apache/tuscany/sca/binding/ws/axis2/itests/policy/configparams/WSSecurityAuthentication.composite
    incubator/tuscany/java/sca/modules/binding-ws-axis2/src/test/resources/org/apache/tuscany/sca/binding/ws/axis2/itests/policy/wspolicy/WSSecurityAuthentication.composite
    incubator/tuscany/java/sca/modules/binding-ws-axis2/src/test/resources/org/apache/tuscany/sca/binding/ws/axis2/itests/policy/wspolicy/WSSecurityIntegrity.composite
    incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionServiceImpl.java
    incubator/tuscany/java/sca/modules/contribution/pom.xml
    incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/service/ContributionService.java
    incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/CompositeActivatorImpl.java
    incubator/tuscany/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/SCADefinitionsDocumentProcessor.java
    incubator/tuscany/java/sca/modules/definitions/pom.xml
    incubator/tuscany/java/sca/modules/definitions/src/main/java/org/apache/tuscany/sca/definitions/SCADefinitionsBuilderImpl.java
    incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/impl/SCADomainImpl.java
    incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/DefaultSCADomain.java
    incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/EmbeddedSCADomain.java
    incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntime.java
    incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java
    incubator/tuscany/java/sca/modules/host-embedded/src/test/java/org/apache/tuscany/sca/host/embedded/impl/EmbeddedSCADomainTestCase.java
    incubator/tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/SCADomainProxyImpl.java

Modified: incubator/tuscany/java/sca/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/BuildPolicyTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/BuildPolicyTestCase.java?rev=608074&r1=608073&r2=608074&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/BuildPolicyTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/BuildPolicyTestCase.java Wed Jan  2 02:35:24 2008
@@ -112,8 +112,8 @@
         composite = (Composite)documentProcessor.read(null, uri, url);
         assertNotNull(composite);
         
-        url = getClass().getResource("AnotherDefinitions.xml");
-        uri = URI.create("AnotherDefinitions.xml");
+        url = getClass().getResource("another_test_definitions.xml");
+        uri = URI.create("another_test_definitions.xml");
         SCADefinitions scaDefns = (SCADefinitions)scaDefnDocProcessor.read(null, uri, url);
         assertNotNull(scaDefns);
         

Modified: incubator/tuscany/java/sca/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ResolvePolicyTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ResolvePolicyTestCase.java?rev=608074&r1=608073&r2=608074&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ResolvePolicyTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/ResolvePolicyTestCase.java Wed Jan  2 02:35:24 2008
@@ -111,8 +111,8 @@
         Composite composite = (Composite)documentProcessor.read(null, uri, url);
         assertNotNull(composite);
         
-        url = getClass().getResource("definitions.xml");
-        uri = URI.create("definitions.xml");
+        url = getClass().getResource("test_definitions.xml");
+        uri = URI.create("test_definitions.xml");
         SCADefinitions scaDefns = (SCADefinitions)scaDefnDocProcessor.read(null, uri, url);
         assertNotNull(scaDefns);
         

Modified: incubator/tuscany/java/sca/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/WireTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/WireTestCase.java?rev=608074&r1=608073&r2=608074&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/WireTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/WireTestCase.java Wed Jan  2 02:35:24 2008
@@ -99,8 +99,8 @@
         is.close();
         assertNotNull(composite);
         
-        URL url = getClass().getResource("definitions.xml");
-        URI uri = URI.create("definitions.xml");
+        URL url = getClass().getResource("test_definitions.xml");
+        URI uri = URI.create("test_definitions.xml");
         SCADefinitions scaDefns = (SCADefinitions)scaDefnDocProcessor.read(null, uri, url);
         assertNotNull(scaDefns);
         
@@ -129,8 +129,8 @@
         Composite composite = compositeReader.read(reader);
         is.close();
         
-        URL url = getClass().getResource("definitions.xml");
-        URI uri = URI.create("definitions.xml");
+        URL url = getClass().getResource("test_definitions.xml");
+        URI uri = URI.create("test_definitions.xml");
         SCADefinitions scaDefns = (SCADefinitions)scaDefnDocProcessor.read(null, uri, url);
         assertNotNull(scaDefns);
         

Modified: incubator/tuscany/java/sca/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/WriteAllTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/WriteAllTestCase.java?rev=608074&r1=608073&r2=608074&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/WriteAllTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/assembly-xml/src/test/java/org/apache/tuscany/sca/assembly/xml/WriteAllTestCase.java Wed Jan  2 02:35:24 2008
@@ -108,8 +108,8 @@
         InputStream is = getClass().getResourceAsStream("TestAllCalculator.composite");
         Composite composite = staxProcessor.read(is, Composite.class);
         
-        URL url = getClass().getResource("definitions.xml");
-        URI uri = URI.create("definitions.xml");
+        URL url = getClass().getResource("test_definitions.xml");
+        URI uri = URI.create("test_definitions.xml");
         SCADefinitions scaDefns = (SCADefinitions)scaDefnDocProcessor.read(null, uri, url);
         assertNotNull(scaDefns);
         scaDefnDocProcessor.resolve(scaDefns, resolver);

Modified: incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/BindingPolicyComputer.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/BindingPolicyComputer.java?rev=608074&r1=608073&r2=608074&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/BindingPolicyComputer.java (original)
+++ incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/BindingPolicyComputer.java Wed Jan  2 02:35:24 2008
@@ -163,11 +163,13 @@
             
             if ( policiedBinding.getRequiredIntents().size() > 0 ) {
                 if ( contract instanceof Service ) {
-                    throw new PolicyComputationException("There are unfulfilled intents for " +
-                            "binding in service - " + contract.getName());
+                    throw new PolicyComputationException("The following are unfulfilled intents for " +
+                            "binding in service - " + contract.getName() + "\nUnfulfilled Intents = " + 
+                            policiedBinding.getRequiredIntents());
                 } else {
-                    throw new PolicyComputationException("There are unfulfilled intents for " +
-                            "binding in reference - " + contract.getName());
+                    throw new PolicyComputationException("The are unfulfilled intents for " +
+                            "binding in reference - " + contract.getName() + "\nUnfulfilled Intents = " + 
+                            policiedBinding.getRequiredIntents());
                 }
             }
         }

Modified: incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ImplementationPolicyComputer.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ImplementationPolicyComputer.java?rev=608074&r1=608073&r2=608074&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ImplementationPolicyComputer.java (original)
+++ incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ImplementationPolicyComputer.java Wed Jan  2 02:35:24 2008
@@ -92,8 +92,9 @@
                                                             policiedImplementation.getType());
     
                         if (confOp.getRequiredIntents().size() > 0) {
-                            new PolicyComputationException("There are unfulfilled intents for operations configured in "
-                                    + "component implementation - " + component.getName());
+                            new PolicyComputationException("The following are unfulfilled intents for operations configured in "
+                                    + "component implementation - " + component.getName() + "\nUnfulfilled Intents = " +
+                                    confOp.getRequiredIntents());
                         }
                     }
                 }
@@ -111,8 +112,8 @@
                                                     policiedImplementation.getType());
                                                     
                 if (component.getRequiredIntents().size() > 0) {
-                    throw new PolicyComputationException("There are unfulfilled intents for component implementation - " + component
-                        .getName());
+                    throw new PolicyComputationException("The following are unfulfilled intents for component implementation - " + component
+                        .getName() + "\nUnfulfilled Intents = " + component.getRequiredIntents());
                 }
             }
         }

Modified: incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/PolicyComputer.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/PolicyComputer.java?rev=608074&r1=608073&r2=608074&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/PolicyComputer.java (original)
+++ incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/PolicyComputer.java Wed Jan  2 02:35:24 2008
@@ -67,7 +67,7 @@
                     }
                 }
             } else {
-                new PolicyValidationException("Policy Intent '" + intent.getName() + "' is not defined in this domain");
+                throw new PolicyValidationException("Policy Intent '" + intent.getName() + "' is not defined in this domain");
             }
         }
         
@@ -122,7 +122,7 @@
             //expand profile intents specified on operations
             expandProfileIntents(confOp.getRequiredIntents());
             
-            //validateIntents(confOp, attachPointType);
+            validateIntents(confOp, attachPointType);
             
             //add intents specified for parent intent attach point (binding / implementation)
             //wherever its not overriden in the operation

Modified: incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/TestNode.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/TestNode.java?rev=608074&r1=608073&r2=608074&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/TestNode.java (original)
+++ incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/TestNode.java Wed Jan  2 02:35:24 2008
@@ -138,7 +138,7 @@
 
             // Add the deployable composite to the domain
             nodeComposite.getIncludes().add(appComposite);
-            nodeRuntime.getCompositeBuilder().build(appComposite);
+            nodeRuntime.buildComposite(appComposite);
             nodeRuntime.getCompositeActivator().activate(appComposite);
             
             ((TestDomain)domain).addComposite(appComposite);

Added: incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/resources/META-INF/services/definitions.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/resources/META-INF/services/definitions.xml?rev=608074&view=auto
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/resources/META-INF/services/definitions.xml (added)
+++ incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/resources/META-INF/services/definitions.xml Wed Jan  2 02:35:24 2008
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="ASCII"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+-->
+<sca:definitions xmlns="http://www.osoa.org/xmlns/sca/1.0"
+ 			targetNamespace="http://www.osoa.org/xmlns/sca/1.0"
+ 			xmlns:sca="http://www.osoa.org/xmlns/sca/1.0"
+ 			xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.0">
+
+	<!-- PolicyIntents defined by the SCA Runtime Extension for WS Binding Axis 2 -->
+	 <sca:intent name="soap"  
+	 			 constrains="sca:binding.ws">
+	 			 <sca:description>
+	 			 Communitcation thro this binding requires SOAP 
+	 			 </sca:description>
+	 </sca:intent>
+	
+	 <sca:intent name="soap11"  
+	 			 constrains="sca:binding.ws">
+	 			 <sca:description>
+	 			 Communitcation thro this binding requires SOAP 1.1
+	 			 </sca:description>
+	 </sca:intent>
+	
+	 <sca:intent name="soap12"  
+	 			 constrains="sca:binding.ws">
+	 			 <sca:description>
+	 			 Communitcation thro this binding requires SOAP 1.2
+	 			 </sca:description>
+	 </sca:intent>
+ </sca:definitions>
\ No newline at end of file

Modified: incubator/tuscany/java/sca/modules/binding-ws-axis2/src/test/resources/org/apache/tuscany/sca/binding/ws/axis2/itests/policy/configparams/WSSecurityAuthentication.composite
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-ws-axis2/src/test/resources/org/apache/tuscany/sca/binding/ws/axis2/itests/policy/configparams/WSSecurityAuthentication.composite?rev=608074&r1=608073&r2=608074&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-ws-axis2/src/test/resources/org/apache/tuscany/sca/binding/ws/axis2/itests/policy/configparams/WSSecurityAuthentication.composite (original)
+++ incubator/tuscany/java/sca/modules/binding-ws-axis2/src/test/resources/org/apache/tuscany/sca/binding/ws/axis2/itests/policy/configparams/WSSecurityAuthentication.composite Wed Jan  2 02:35:24 2008
@@ -18,7 +18,7 @@
  * under the License.    
 -->
 <composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
-
+			xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.0"
            name="endpoint3">
            
     <!-- 
@@ -40,7 +40,7 @@
         <reference name="helloWorldWS" />
     </component>
 
-    <reference name="helloWorldWS" promote="HelloWorldComponent/helloWorldWS" policySets="wsClientAuthenticationPolicy">
+    <reference name="helloWorldWS" promote="HelloWorldComponent/helloWorldWS" policySets="tuscany:wsClientAuthenticationPolicy">
         <interface.wsdl interface="http://helloworld-om-uri#wsdl.interface(HelloWorld)" />
         <binding.ws wsdlElement="http://helloworld-om-uri#wsdl.binding(HelloWorldSoapBinding)"
                     uri="http://localhost:8085/myExplicitURI"/>

Added: incubator/tuscany/java/sca/modules/binding-ws-axis2/src/test/resources/org/apache/tuscany/sca/binding/ws/axis2/itests/policy/configparams/definitions.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-ws-axis2/src/test/resources/org/apache/tuscany/sca/binding/ws/axis2/itests/policy/configparams/definitions.xml?rev=608074&view=auto
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-ws-axis2/src/test/resources/org/apache/tuscany/sca/binding/ws/axis2/itests/policy/configparams/definitions.xml (added)
+++ incubator/tuscany/java/sca/modules/binding-ws-axis2/src/test/resources/org/apache/tuscany/sca/binding/ws/axis2/itests/policy/configparams/definitions.xml Wed Jan  2 02:35:24 2008
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="ASCII"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+-->
+<sca:definitions xmlns="http://www.osoa.org/xmlns/sca/1.0"
+ 			targetNamespace="http://tuscany.apache.org/xmlns/sca/1.0"
+ 			xmlns:sca="http://www.osoa.org/xmlns/sca/1.0"
+ 			xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.0">
+
+ <sca:intent name="tuscany:wsAuthentication" 
+ 			 constrains="sca:binding.ws">
+ 			 <description>
+ 			 Communitcation thro this binding required Authentication.
+ 			 </description>
+ </sca:intent>	
+ 
+ <!-- WS Security POLICY SETS -->
+  <sca:policySet name="tuscany:wsAuthenticationPolicy"
+ 	provides="sca:authentication"
+ 	appliesTo="sca:binding.ws"
+ 	>
+ 	<tuscany:wsConfigParam>
+ 		<parameter name="InflowSecurity">
+ 			<action>
+ 				<items>UsernameToken</items>
+ 				<passwordCallbackClass>org.apache.tuscany.sca.binding.ws.axis2.itests.policy.configparams.ServerPWCBHandler</passwordCallbackClass>
+       		</action>
+      	</parameter>
+ 	</tuscany:wsConfigParam>
+ </sca:policySet>
+ 
+ <sca:policySet name="tuscany:wsClientAuthenticationPolicy"
+ 	provides="tuscany:wsAuthentication"
+ 	appliesTo="sca:binding.ws">
+ 	<tuscany:wsConfigParam>
+ 		<parameter name="OutflowSecurity">
+ 			<action>
+ 				<items>UsernameToken</items>
+ 				<user>TuscanyWsUser</user>
+				<passwordCallbackClass>org.apache.tuscany.sca.binding.ws.axis2.itests.policy.configparams.ClientPWCBHandler</passwordCallbackClass>" +
+                <passwordType>PasswordText</passwordType>
+               </action>
+    	</parameter>
+ 	</tuscany:wsConfigParam>
+ </sca:policySet>
+ 
+ <sca:policySet name="tuscany:wsIntegrityPolicy"
+ 	provides="sca:integrity"
+ 	appliesTo="sca:binding.ws">
+ 	<tuscany:wsConfigParam>
+ 		<parameter name="InflowSecurity">
+		    <action>
+		        <items>Timestamp Signature</items>
+		        <signaturePropFile>org/apache/tuscany/sca/binding/ws/axis2/itests/policy/configparams/security.properties</signaturePropFile>
+		    </action>
+		</parameter>
+ 		<parameter name="OutflowSecurity">
+      		<action>
+        		<items>Timestamp Signature</items>
+        		<user>TuscanyWsUser</user>
+        		<signaturePropFile>org/apache/tuscany/sca/binding/ws/axis2/itests/policy/configparams/security.properties</signaturePropFile>
+        		<passwordCallbackClass>org.apache.tuscany.sca.binding.ws.axis2.itests.policy.configparams.IntegrityPWCBHandler</passwordCallbackClass>" +
+        		<signatureKeyIdentifier>DirectReference</signatureKeyIdentifier>
+      		</action>
+    	</parameter>
+ 	</tuscany:wsConfigParam>
+ </sca:policySet>
+
+ <sca:policySet name="tuscany:wsConfidentialityPolicy"
+ 	provides="sca:confidentiality"
+ 	appliesTo="sca:binding.ws">
+ 	<tuscany:wsConfigParam>
+ 		<parameter name="InflowSecurity">
+      		<action>
+        		<items>Timestamp Signature Encrypt</items>
+        		<passwordCallbackClass>org.apache.tuscany.sca.binding.ws.axis2.itests.policy.configparams.IntegrityPWCBHandler</passwordCallbackClass>
+        		<signaturePropFile>org/apache/tuscany/sca/binding/ws/axis2/itests/policy/configparams/security.properties</signaturePropFile>
+      		</action>
+    	</parameter>
+ 		<parameter name="OutflowSecurity">
+      		<action>
+        		<items>Timestamp Signature Encrypt</items>
+        		<user>TuscanyWsUser</user>
+        		<encryptionUser>TuscanyWsUser</encryptionUser>
+        		<passwordCallbackClass>org.apache.tuscany.sca.binding.ws.axis2.itests.policy.configparams.IntegrityPWCBHandler</passwordCallbackClass>
+        		<signaturePropFile>org/apache/tuscany/sca/binding/ws/axis2/itests/policy/configparams/security.properties</signaturePropFile>
+      			<signatureKeyIdentifier>DirectReference</signatureKeyIdentifier>
+      			<encryptionKeyIdentifier>SKIKeyIdentifier</encryptionKeyIdentifier>
+	      </action>
+    	</parameter>
+ 	</tuscany:wsConfigParam>
+ </sca:policySet>
+ </sca:definitions>
\ No newline at end of file

Modified: incubator/tuscany/java/sca/modules/binding-ws-axis2/src/test/resources/org/apache/tuscany/sca/binding/ws/axis2/itests/policy/wspolicy/WSSecurityAuthentication.composite
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-ws-axis2/src/test/resources/org/apache/tuscany/sca/binding/ws/axis2/itests/policy/wspolicy/WSSecurityAuthentication.composite?rev=608074&r1=608073&r2=608074&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-ws-axis2/src/test/resources/org/apache/tuscany/sca/binding/ws/axis2/itests/policy/wspolicy/WSSecurityAuthentication.composite (original)
+++ incubator/tuscany/java/sca/modules/binding-ws-axis2/src/test/resources/org/apache/tuscany/sca/binding/ws/axis2/itests/policy/wspolicy/WSSecurityAuthentication.composite Wed Jan  2 02:35:24 2008
@@ -18,7 +18,7 @@
  * under the License.    
 -->
 <composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
-
+			xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.0"
            name="endpoint3">
            
     <!-- 
@@ -26,7 +26,7 @@
     so for this composite the service is: http://localhost:8085/myExplicitURI 
     -->      
 
-    <service name="helloWorld" promote="HelloWorldService" policySets="wsSecurityPolicyForAuthentication">
+    <service name="helloWorld" promote="HelloWorldService" policySets="tuscany:wsSecurityPolicyForAuthentication">
         <interface.wsdl interface="http://helloworld-om-uri#wsdl.interface(HelloWorld)" />
         <binding.ws wsdlElement="http://helloworld-om-uri#wsdl.port(HelloWorldService/HelloWorldSoapPort)" />
     </service>
@@ -40,7 +40,7 @@
         <reference name="helloWorldWS" />
     </component>
 
-    <reference name="helloWorldWS" promote="HelloWorldComponent/helloWorldWS" policySets="wsSecurityPolicyForAuthentication">
+    <reference name="helloWorldWS" promote="HelloWorldComponent/helloWorldWS" policySets="tuscany:wsSecurityPolicyForAuthentication">
         <interface.wsdl interface="http://helloworld-om-uri#wsdl.interface(HelloWorld)" />
         <binding.ws wsdlElement="http://helloworld-om-uri#wsdl.binding(HelloWorldSoapBinding)"
                     uri="http://localhost:8085/myExplicitURI"/>

Modified: incubator/tuscany/java/sca/modules/binding-ws-axis2/src/test/resources/org/apache/tuscany/sca/binding/ws/axis2/itests/policy/wspolicy/WSSecurityIntegrity.composite
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-ws-axis2/src/test/resources/org/apache/tuscany/sca/binding/ws/axis2/itests/policy/wspolicy/WSSecurityIntegrity.composite?rev=608074&r1=608073&r2=608074&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-ws-axis2/src/test/resources/org/apache/tuscany/sca/binding/ws/axis2/itests/policy/wspolicy/WSSecurityIntegrity.composite (original)
+++ incubator/tuscany/java/sca/modules/binding-ws-axis2/src/test/resources/org/apache/tuscany/sca/binding/ws/axis2/itests/policy/wspolicy/WSSecurityIntegrity.composite Wed Jan  2 02:35:24 2008
@@ -18,7 +18,7 @@
  * under the License.    
 -->
 <composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
-
+			xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.0"
            name="endpoint3">
            
     <!-- 
@@ -26,7 +26,7 @@
     so for this composite the service is: http://localhost:8085/myExplicitURI 
     -->      
 
-    <service name="helloWorld" promote="HelloWorldService" policySets="wsSecurityPolicyForIntegrity">
+    <service name="helloWorld" promote="HelloWorldService" policySets="tuscany:wsSecurityPolicyForIntegrity">
         <interface.wsdl interface="http://helloworld-om-uri#wsdl.interface(HelloWorld)" />
         <binding.ws wsdlElement="http://helloworld-om-uri#wsdl.port(HelloWorldService/HelloWorldSoapPort)" />
     </service>
@@ -40,7 +40,7 @@
         <reference name="helloWorldWS" />
     </component>
 
-    <reference name="helloWorldWS" promote="HelloWorldComponent/helloWorldWS" policySets="wsSecurityPolicyForIntegrity">
+    <reference name="helloWorldWS" promote="HelloWorldComponent/helloWorldWS" policySets="tuscany:wsSecurityPolicyForIntegrity">
         <interface.wsdl interface="http://helloworld-om-uri#wsdl.interface(HelloWorld)" />
         <binding.ws wsdlElement="http://helloworld-om-uri#wsdl.binding(HelloWorldSoapBinding)"
                     uri="http://localhost:8085/myExplicitURI"/>

Added: incubator/tuscany/java/sca/modules/binding-ws-axis2/src/test/resources/org/apache/tuscany/sca/binding/ws/axis2/itests/policy/wspolicy/definitions.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-ws-axis2/src/test/resources/org/apache/tuscany/sca/binding/ws/axis2/itests/policy/wspolicy/definitions.xml?rev=608074&view=auto
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-ws-axis2/src/test/resources/org/apache/tuscany/sca/binding/ws/axis2/itests/policy/wspolicy/definitions.xml (added)
+++ incubator/tuscany/java/sca/modules/binding-ws-axis2/src/test/resources/org/apache/tuscany/sca/binding/ws/axis2/itests/policy/wspolicy/definitions.xml Wed Jan  2 02:35:24 2008
@@ -0,0 +1,211 @@
+<?xml version="1.0" encoding="ASCII"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+-->
+<sca:definitions xmlns="http://www.osoa.org/xmlns/sca/1.0"
+ 			targetNamespace="http://tuscany.apache.org/xmlns/sca/1.0"
+ 			xmlns:sca="http://www.osoa.org/xmlns/sca/1.0"
+ 			xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.0">
+
+ <sca:intent name="tuscany:wsAuthentication" 
+ 			 constrains="sca:binding.ws">
+ 			 <description>
+ 			 Communitcation thro this binding required Authentication.
+ 			 </description>
+ </sca:intent>	
+ 
+ <!-- WS Security POLICY SETS -->
+ <!-- A policyset that uses WS Policy -->
+ <sca:policySet name="tuscany:wsSecurityPolicyForAuthentication"
+ 	provides="sca:authentication"
+ 	appliesTo="sca:binding.ws"
+ 	>
+ 	<wsp:Policy wsu:Id="UTOverTransport" 
+ 		xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" 
+ 		xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
+		<wsp:ExactlyOne>
+		  <wsp:All>
+ 		 	<sp:SignedSupportingTokens xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+				<wsp:Policy>
+					<sp:UsernameToken sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient" />
+				</wsp:Policy>
+			</sp:SignedSupportingTokens>
+			
+			<ramp:RampartConfig xmlns:ramp="http://ws.apache.org/rampart/policy"> 
+				<ramp:user>TuscanyWsUser</ramp:user>
+				<ramp:passwordType>PasswordText</ramp:passwordType>
+				<ramp:passwordCallbackClass>org.apache.tuscany.sca.binding.ws.axis2.itests.policy.wspolicy.ClientPWCBHandler</ramp:passwordCallbackClass>
+			</ramp:RampartConfig>
+			</wsp:All>
+		</wsp:ExactlyOne>
+	</wsp:Policy>
+ </sca:policySet>
+ 
+  <!-- A policyset that uses WS Policy --> 
+ <sca:policySet name="tuscany:wsSecurityPolicyForIntegrity"
+ 	provides="sca:integrity"
+ 	appliesTo="sca:binding.ws">
+ 	<wsp:Policy wsu:Id="SignOnly" 
+ 		xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" 
+ 		xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
+		<wsp:ExactlyOne>
+			<wsp:All>
+				<sp:AsymmetricBinding xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+					<wsp:Policy>
+						<sp:InitiatorToken>
+							<wsp:Policy>
+								<sp:X509Token sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient">
+									<wsp:Policy>
+										<sp:WssX509V3Token10/>
+									</wsp:Policy>
+								</sp:X509Token>
+							</wsp:Policy>
+						</sp:InitiatorToken>
+						<sp:RecipientToken>
+							<wsp:Policy>
+								<sp:X509Token sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/Never">
+									<wsp:Policy>
+										<sp:WssX509V3Token10/>
+									</wsp:Policy>
+								</sp:X509Token>
+							</wsp:Policy>
+						</sp:RecipientToken>
+						<sp:AlgorithmSuite>
+							<wsp:Policy>
+								<sp:TripleDesRsa15/>
+							</wsp:Policy>
+						</sp:AlgorithmSuite>
+						<sp:Layout>
+							<wsp:Policy>
+								<sp:Strict/>
+							</wsp:Policy>
+						</sp:Layout>
+						<sp:IncludeTimestamp/>
+						<sp:OnlySignEntireHeadersAndBody/>
+					</wsp:Policy>
+				</sp:AsymmetricBinding>
+				<sp:Wss10 xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+					<wsp:Policy>
+						<sp:MustSupportRefKeyIdentifier/>
+						<sp:MustSupportRefIssuerSerial/>
+					</wsp:Policy>
+				</sp:Wss10>
+				<sp:SignedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+					<sp:Body/>
+				</sp:SignedParts>
+	
+				<ramp:RampartConfig xmlns:ramp="http://ws.apache.org/rampart/policy"> 
+					<ramp:user>TuscanyWsUser</ramp:user>
+					<ramp:encryptionUser>TuscanyWsUser</ramp:encryptionUser>
+					<ramp:passwordCallbackClass>org.apache.tuscany.sca.binding.ws.axis2.itests.policy.wspolicy.IntegrityPWCBHandler</ramp:passwordCallbackClass>
+					
+					<ramp:signatureCrypto>
+						<ramp:crypto provider="org.apache.ws.security.components.crypto.Merlin">
+							<ramp:property name="org.apache.ws.security.crypto.merlin.keystore.type">JKS</ramp:property>
+							<ramp:property name="org.apache.ws.security.crypto.merlin.file">org/apache/tuscany/sca/binding/ws/axis2/itests/policy/wspolicy/tuscanyKeys.jks</ramp:property>
+							<ramp:property name="org.apache.ws.security.crypto.merlin.keystore.password">TuscanyWsUserPasswd</ramp:property>
+						</ramp:crypto>
+					</ramp:signatureCrypto>
+				</ramp:RampartConfig>
+	
+			</wsp:All>
+		</wsp:ExactlyOne>
+	</wsp:Policy>
+ </sca:policySet>
+ 
+ <!-- A policyset that uses WS Policy -->
+ <sca:policySet name="tuscany:wsSecurityPolicyForConfidentiality"
+ 	provides="sca:confidentiality"
+ 	appliesTo="sca:binding.ws">
+ 	<wsp:Policy wsu:Id="SigEncr" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
+	<wsp:ExactlyOne>
+		<wsp:All>
+			<sp:AsymmetricBinding xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+				<wsp:Policy>
+					<sp:InitiatorToken>
+						<wsp:Policy>
+							<sp:X509Token sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient">
+								<wsp:Policy>
+									<sp:WssX509V3Token10/>
+								</wsp:Policy>
+							</sp:X509Token>
+						</wsp:Policy>
+					</sp:InitiatorToken>
+					<sp:RecipientToken>
+						<wsp:Policy>
+							<sp:X509Token sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/Never">
+								<wsp:Policy>
+									<sp:WssX509V3Token10/>
+								</wsp:Policy>
+							</sp:X509Token>
+						</wsp:Policy>
+					</sp:RecipientToken>
+					<sp:AlgorithmSuite>
+						<wsp:Policy>
+							<sp:TripleDesRsa15/>
+						</wsp:Policy>
+					</sp:AlgorithmSuite>
+					<sp:Layout>
+						<wsp:Policy>
+							<sp:Strict/>
+						</wsp:Policy>
+					</sp:Layout>
+					<sp:IncludeTimestamp/>
+					<sp:OnlySignEntireHeadersAndBody/>
+				</wsp:Policy>
+			</sp:AsymmetricBinding>
+			<sp:Wss10 xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+				<wsp:Policy>
+					<sp:MustSupportRefKeyIdentifier/>
+					<sp:MustSupportRefIssuerSerial/>
+				</wsp:Policy>
+			</sp:Wss10>
+			<sp:SignedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+				<sp:Body/>
+			</sp:SignedParts>
+			<sp:EncryptedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+				<sp:Body/>
+			</sp:EncryptedParts>
+
+			<ramp:RampartConfig xmlns:ramp="http://ws.apache.org/rampart/policy"> 
+				<ramp:user>TuscanyWsUser</ramp:user>
+				<ramp:encryptionUser>TuscanyWsUser</ramp:encryptionUser>
+				<ramp:passwordCallbackClass>org.apache.tuscany.sca.binding.ws.axis2.itests.policy.wspolicy.IntegrityPWCBHandler</ramp:passwordCallbackClass>
+				<ramp:signatureCrypto>
+					<ramp:crypto provider="org.apache.ws.security.components.crypto.Merlin">
+						<ramp:property name="org.apache.ws.security.crypto.merlin.keystore.type">JKS</ramp:property>
+						<ramp:property name="org.apache.ws.security.crypto.merlin.file">org/apache/tuscany/sca/binding/ws/axis2/itests/policy/wspolicy/tuscanyKeys.jks</ramp:property>
+						<ramp:property name="org.apache.ws.security.crypto.merlin.keystore.password">TuscanyWsUserPasswd</ramp:property>
+					</ramp:crypto>
+				</ramp:signatureCrypto>
+				
+				<ramp:encryptionCypto>
+					<ramp:crypto provider="org.apache.ws.security.components.crypto.Merlin">
+						<ramp:property name="org.apache.ws.security.crypto.merlin.keystore.type">JKS</ramp:property>
+						<ramp:property name="org.apache.ws.security.crypto.merlin.file">org/apache/tuscany/sca/binding/ws/axis2/itests/policy/wspolicy/tuscanyKeys.jks</ramp:property>
+						<ramp:property name="org.apache.ws.security.crypto.merlin.keystore.password">TuscanyWsUserPasswd</ramp:property>
+					</ramp:crypto>
+				</ramp:encryptionCypto>
+			</ramp:RampartConfig>
+
+		</wsp:All>
+	</wsp:ExactlyOne>
+</wsp:Policy>
+ </sca:policySet>
+ 
+ </sca:definitions>
\ No newline at end of file

Modified: incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionServiceImpl.java?rev=608074&r1=608073&r2=608074&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionServiceImpl.java (original)
+++ incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionServiceImpl.java Wed Jan  2 02:35:24 2008
@@ -47,6 +47,7 @@
 import org.apache.tuscany.sca.contribution.service.ContributionService;
 import org.apache.tuscany.sca.contribution.service.ExtensibleContributionListener;
 import org.apache.tuscany.sca.contribution.service.util.IOHelper;
+import org.apache.tuscany.sca.definitions.SCADefinitions;
 
 /**
  * Service interface that manages artifacts contributed to a Tuscany runtime.
@@ -108,9 +109,12 @@
     private AssemblyFactory assemblyFactory;
 
     /**
-     * Contribution model facotry
+     * Contribution model factory
      */
     private ContributionFactory contributionFactory;
+    
+    
+    private List<SCADefinitions> contributionSCADefinitions = new ArrayList<SCADefinitions>(); 
 
     private ModelResolver domainResolver;
 
@@ -379,6 +383,10 @@
 
                 // Add the loaded model to the model resolver
                 modelResolver.addModel(model);
+                
+                if ( model instanceof SCADefinitions ) {
+                    contributionSCADefinitions.add((SCADefinitions)model);
+                }
             }
         }
     }
@@ -426,5 +434,9 @@
         }
         contribution.getDeployables().clear();
         contribution.getDeployables().addAll(resolvedDeployables);
+    }
+
+    public List<SCADefinitions> getContributionSCADefinitions() {
+        return contributionSCADefinitions;
     }
 }

Modified: incubator/tuscany/java/sca/modules/contribution/pom.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/pom.xml?rev=608074&r1=608073&r2=608074&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution/pom.xml (original)
+++ incubator/tuscany/java/sca/modules/contribution/pom.xml Wed Jan  2 02:35:24 2008
@@ -34,6 +34,12 @@
             <artifactId>tuscany-assembly</artifactId>
             <version>1.1-incubating-SNAPSHOT</version>
         </dependency>
+
+	<dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-definitions</artifactId>
+            <version>1.1-incubating-SNAPSHOT</version>
+        </dependency>
             	
         <dependency>
             <groupId>stax</groupId>

Modified: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/service/ContributionService.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/service/ContributionService.java?rev=608074&r1=608073&r2=608074&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/service/ContributionService.java (original)
+++ incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/service/ContributionService.java Wed Jan  2 02:35:24 2008
@@ -21,10 +21,12 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.URL;
+import java.util.List;
 
 import org.apache.tuscany.sca.assembly.Composite;
 import org.apache.tuscany.sca.contribution.Contribution;
 import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
+import org.apache.tuscany.sca.definitions.SCADefinitions;
 
 /**
  * Service interface that manages artifacts contributed to a Tuscany runtime.
@@ -138,5 +140,11 @@
      * @throws DeploymentException
      */
     void remove(String contribution) throws ContributionException;
-
+    
+    /**
+     * Return the collection of SCA Definitions processed in the contribution
+     * 
+     * @return collection of SCADefinitions
+     */
+    List<SCADefinitions> getContributionSCADefinitions();
 }

Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/CompositeActivatorImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/CompositeActivatorImpl.java?rev=608074&r1=608073&r2=608074&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/CompositeActivatorImpl.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/CompositeActivatorImpl.java Wed Jan  2 02:35:24 2008
@@ -31,7 +31,6 @@
 import org.apache.tuscany.sca.assembly.Implementation;
 import org.apache.tuscany.sca.assembly.OptimizableBinding;
 import org.apache.tuscany.sca.assembly.Reference;
-import org.apache.tuscany.sca.assembly.SCABinding;
 import org.apache.tuscany.sca.assembly.SCABindingFactory;
 import org.apache.tuscany.sca.assembly.Service;
 import org.apache.tuscany.sca.context.RequestContextFactory;

Modified: incubator/tuscany/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/SCADefinitionsDocumentProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/SCADefinitionsDocumentProcessor.java?rev=608074&r1=608073&r2=608074&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/SCADefinitionsDocumentProcessor.java (original)
+++ incubator/tuscany/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/SCADefinitionsDocumentProcessor.java Wed Jan  2 02:35:24 2008
@@ -36,9 +36,8 @@
 import org.apache.tuscany.sca.contribution.service.ContributionResolveException;
 import org.apache.tuscany.sca.definitions.SCADefinitions;
 import org.apache.tuscany.sca.definitions.SCADefinitionsBuilder;
-import org.apache.tuscany.sca.definitions.SCADefinitionsBuilderException;
 import org.apache.tuscany.sca.definitions.SCADefinitionsBuilderImpl;
-import org.apache.tuscany.sca.definitions.SCADefinitionsResolver;
+import org.apache.tuscany.sca.definitions.util.SCADefinitionsUtil;
 import org.apache.tuscany.sca.policy.DefaultIntentAttachPointTypeFactory;
 import org.apache.tuscany.sca.policy.IntentAttachPointTypeFactory;
 import org.apache.tuscany.sca.policy.PolicyFactory;
@@ -56,7 +55,7 @@
 public class SCADefinitionsDocumentProcessor  implements URLArtifactProcessor<SCADefinitions> {
     private StAXArtifactProcessor<Object> extensionProcessor;
     private SCADefinitionsBuilder definitionsBuilder;
-    private ModelResolver domainModelResolver;
+    private ModelResolver scaDefinitionsResolver;
     private XMLInputFactory inputFactory;
 
     /**
@@ -72,11 +71,11 @@
         this.extensionProcessor = (StAXArtifactProcessor<Object>)staxProcessor;
         this.inputFactory = inputFactory;
         definitionsBuilder = new SCADefinitionsBuilderImpl();
-        this.domainModelResolver = new SCADefinitionsResolver();
+        this.scaDefinitionsResolver = new SCADefinitionsResolver();
         
         IntentAttachPointTypeFactory intentAttachPointFactory = new DefaultIntentAttachPointTypeFactory();
             
-        SCADefinitionsProcessor scaDefnProcessor = new SCADefinitionsProcessor(policyFactory, extensionProcessor, domainModelResolver);
+        SCADefinitionsProcessor scaDefnProcessor = new SCADefinitionsProcessor(policyFactory, extensionProcessor, scaDefinitionsResolver);
         staxProcessors.addArtifactProcessor(scaDefnProcessor);
         
         staxProcessors.addArtifactProcessor(new SimpleIntentProcessor(policyFactory, extensionProcessor));
@@ -114,16 +113,13 @@
         }
     }
     
+    
     public void resolve(SCADefinitions scaDefinitions, ModelResolver resolver) throws ContributionResolveException {
-        try {
-            if ( resolver == null ) {
-                resolver = this.domainModelResolver;
-            }
-            definitionsBuilder.build(scaDefinitions);
-            extensionProcessor.resolve(scaDefinitions, resolver);
-        } catch (SCADefinitionsBuilderException e) {
-            throw new ContributionResolveException(e);
+        if ( resolver == null ) {
+            resolver = this.scaDefinitionsResolver;
         }
+        SCADefinitionsUtil.stripDuplicates(scaDefinitions);
+        extensionProcessor.resolve(scaDefinitions, resolver);
     }
 
     public String getArtifactType() {
@@ -134,11 +130,11 @@
         return SCADefinitions.class;
     }
 
-    public ModelResolver getDomainModelResolver() {
-        return domainModelResolver;
+    public ModelResolver getSCADefinitionsResolver() {
+        return scaDefinitionsResolver;
     }
 
     public void setDomainModelResolver(ModelResolver scaDefnsModelResolver) {
-        this.domainModelResolver = scaDefnsModelResolver;
+        this.scaDefinitionsResolver = scaDefnsModelResolver;
     }
 }

Added: incubator/tuscany/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/SCADefinitionsResolver.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/SCADefinitionsResolver.java?rev=608074&view=auto
==============================================================================
--- incubator/tuscany/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/SCADefinitionsResolver.java (added)
+++ incubator/tuscany/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/SCADefinitionsResolver.java Wed Jan  2 02:35:24 2008
@@ -0,0 +1,52 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+package org.apache.tuscany.sca.definitions.xml;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
+
+/**
+ * Resolver for artifacts defined in definitions.xml
+ *
+ */
+public class SCADefinitionsResolver implements ModelResolver {
+    private Map<Object, Object> map = new HashMap<Object, Object>();
+
+    public SCADefinitionsResolver() {
+    }
+
+    public void addModel(Object resolved) {
+        map.put(resolved, resolved);
+    }
+
+    public Object removeModel(Object resolved) {
+        return map.remove(resolved);
+    }
+
+    @SuppressWarnings("unchecked")
+    public <T> T resolveModel(Class<T> modelClass, T unresolved) {
+        Object resolved = map.get(unresolved);
+        if (resolved != null) {
+            return (T)resolved;
+        }
+        return unresolved;
+    }
+}

Modified: incubator/tuscany/java/sca/modules/definitions/pom.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/definitions/pom.xml?rev=608074&r1=608073&r2=608074&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/definitions/pom.xml (original)
+++ incubator/tuscany/java/sca/modules/definitions/pom.xml Wed Jan  2 02:35:24 2008
@@ -37,12 +37,6 @@
         
         <dependency>
             <groupId>org.apache.tuscany.sca</groupId>
-            <artifactId>tuscany-contribution</artifactId>
-            <version>1.1-incubating-SNAPSHOT</version>
-        </dependency>
-        
-        <dependency>
-            <groupId>org.apache.tuscany.sca</groupId>
             <artifactId>tuscany-assembly-xsd</artifactId>
             <version>1.1-incubating-SNAPSHOT</version>
             <scope>test</scope>

Modified: incubator/tuscany/java/sca/modules/definitions/src/main/java/org/apache/tuscany/sca/definitions/SCADefinitionsBuilderImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/definitions/src/main/java/org/apache/tuscany/sca/definitions/SCADefinitionsBuilderImpl.java?rev=608074&r1=608073&r2=608074&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/definitions/src/main/java/org/apache/tuscany/sca/definitions/SCADefinitionsBuilderImpl.java (original)
+++ incubator/tuscany/java/sca/modules/definitions/src/main/java/org/apache/tuscany/sca/definitions/SCADefinitionsBuilderImpl.java Wed Jan  2 02:35:24 2008
@@ -59,6 +59,18 @@
             definedImplTypes.put(implType.getName(), implType);
         }
         
+        //filling up the maps removes all duplicate entries... so fill this unique lists
+        //into the scaDefns.
+        scaDefns.getPolicyIntents().clear();
+        scaDefns.getPolicySets().clear();
+        scaDefns.getBindingTypes().clear();
+        scaDefns.getImplementationTypes().clear();
+        
+        scaDefns.getPolicyIntents().addAll(definedIntents.values());
+        scaDefns.getPolicySets().addAll(definedPolicySets.values());
+        scaDefns.getBindingTypes().addAll(definedBindingTypes.values());
+        scaDefns.getImplementationTypes().addAll(definedImplTypes.values());
+        
         buildPolicyIntents(scaDefns, definedIntents);
         buildPolicySets(scaDefns, definedPolicySets, definedIntents);
         buildBindingTypes(scaDefns, definedBindingTypes, definedIntents);

Added: incubator/tuscany/java/sca/modules/definitions/src/main/java/org/apache/tuscany/sca/definitions/util/SCADefinitionsUtil.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/definitions/src/main/java/org/apache/tuscany/sca/definitions/util/SCADefinitionsUtil.java?rev=608074&view=auto
==============================================================================
--- incubator/tuscany/java/sca/modules/definitions/src/main/java/org/apache/tuscany/sca/definitions/util/SCADefinitionsUtil.java (added)
+++ incubator/tuscany/java/sca/modules/definitions/src/main/java/org/apache/tuscany/sca/definitions/util/SCADefinitionsUtil.java Wed Jan  2 02:35:24 2008
@@ -0,0 +1,75 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+
+package org.apache.tuscany.sca.definitions.util;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.xml.namespace.QName;
+
+import org.apache.tuscany.sca.definitions.SCADefinitions;
+import org.apache.tuscany.sca.policy.Intent;
+import org.apache.tuscany.sca.policy.IntentAttachPointType;
+import org.apache.tuscany.sca.policy.PolicySet;
+
+/**
+ * Some utility funtions to deal with SCADefinitions
+ */
+public class SCADefinitionsUtil {
+    
+    public static  void stripDuplicates(SCADefinitions scaDefns) {
+        Map<QName, Intent> definedIntents = new HashMap<QName, Intent>();
+        for (Intent intent : scaDefns.getPolicyIntents()) {
+            definedIntents.put(intent.getName(), intent);
+        }
+
+        Map<QName, PolicySet> definedPolicySets = new HashMap<QName, PolicySet>();
+        for (PolicySet policySet : scaDefns.getPolicySets()) {
+            definedPolicySets.put(policySet.getName(), policySet);
+        }
+        
+        Map<QName, IntentAttachPointType> definedBindingTypes = new HashMap<QName, IntentAttachPointType>();
+        for (IntentAttachPointType bindingType : scaDefns.getBindingTypes()) {
+            definedBindingTypes.put(bindingType.getName(), bindingType);
+        }
+        
+        Map<QName, IntentAttachPointType> definedImplTypes = new HashMap<QName, IntentAttachPointType>();
+        for (IntentAttachPointType implType : scaDefns.getImplementationTypes()) {
+            definedImplTypes.put(implType.getName(), implType);
+        }
+        
+        scaDefns.getPolicyIntents().clear();
+        scaDefns.getPolicyIntents().addAll(definedIntents.values());
+        scaDefns.getPolicySets().clear();
+        scaDefns.getPolicySets().addAll(definedPolicySets.values());
+        scaDefns.getBindingTypes().clear();
+        scaDefns.getBindingTypes().addAll(definedBindingTypes.values());
+        scaDefns.getImplementationTypes().clear();
+        scaDefns.getImplementationTypes().addAll(definedImplTypes.values());
+    }
+    
+    public static void aggregateSCADefinitions(SCADefinitions source, SCADefinitions target) {
+        target.getPolicyIntents().addAll(source.getPolicyIntents());
+        target.getPolicySets().addAll(source.getPolicySets());
+        target.getBindingTypes().addAll(source.getBindingTypes());
+        target.getImplementationTypes().addAll(source.getImplementationTypes());
+    }
+
+}

Modified: incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/impl/SCADomainImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/impl/SCADomainImpl.java?rev=608074&r1=608073&r2=608074&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/impl/SCADomainImpl.java (original)
+++ incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/impl/SCADomainImpl.java Wed Jan  2 02:35:24 2008
@@ -24,12 +24,9 @@
 import java.net.URI;
 import java.net.URL;
 import java.util.ArrayList;
-import java.util.Iterator;
 import java.util.List;
-import java.util.Map;
 import java.util.concurrent.Executors;
 import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.TimeUnit;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
@@ -38,17 +35,14 @@
 import javax.xml.stream.XMLStreamWriter;
 
 import org.apache.tuscany.sca.assembly.AssemblyFactory;
-import org.apache.tuscany.sca.assembly.Binding;
 import org.apache.tuscany.sca.assembly.Component;
 import org.apache.tuscany.sca.assembly.ComponentService;
 import org.apache.tuscany.sca.assembly.Composite;
 import org.apache.tuscany.sca.assembly.CompositeService;
-import org.apache.tuscany.sca.assembly.Reference;
 import org.apache.tuscany.sca.assembly.SCABinding;
 import org.apache.tuscany.sca.assembly.SCABindingFactory;
 import org.apache.tuscany.sca.assembly.Service;
 import org.apache.tuscany.sca.assembly.builder.DomainBuilder;
-import org.apache.tuscany.sca.assembly.builder.impl.DomainWireBuilderImpl;
 import org.apache.tuscany.sca.assembly.xml.Constants;
 import org.apache.tuscany.sca.contribution.Contribution;
 import org.apache.tuscany.sca.contribution.DeployedArtifact;
@@ -167,9 +161,6 @@
             domainManagementRuntime = new ReallySmallRuntime(domainClassLoader);
             domainManagementRuntime.start();
             
-            // get the domain builder
-            domainBuilder = domainManagementRuntime.getDomainBuilder();            
-            
             // Configure the default server port and path
             int port = URI.create(domainModel.getDomainURI()).getPort();
             String path = URI.create(domainModel.getDomainURI()).getPath();
@@ -217,6 +208,16 @@
                                                                               contributionURL, 
                                                                               false);
                 
+                //update the runtime for all SCA Definitions processed from the contribution..
+                //so that the policyset determination done during 'build' has the all the defined
+                //intents and policysets
+                domainManagementRuntime.updateSCADefinitions(domainManagementContributionService.getContributionSCADefinitions());
+                
+                
+                //get the domain builder
+                domainBuilder = domainManagementRuntime.getDomainBuilder();
+                
+                
                 Composite composite = null;
                 for (DeployedArtifact artifact: contribution.getArtifacts()) {
                     if (domainCompositeName.equals(artifact.getURI())) {
@@ -227,7 +228,7 @@
                 if (composite != null) {
                 
                     domainManagementComposite.getIncludes().add(composite);
-                    domainManagementRuntime.getCompositeBuilder().build(composite);
+                    domainManagementRuntime.buildComposite(composite);
                     domainManagementRuntime.getCompositeActivator().activate(composite); 
                     domainManagementRuntime.getCompositeActivator().start(composite);
                 

Modified: incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/DefaultSCADomain.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/DefaultSCADomain.java?rev=608074&r1=608073&r2=608074&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/DefaultSCADomain.java (original)
+++ incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/DefaultSCADomain.java Wed Jan  2 02:35:24 2008
@@ -57,7 +57,6 @@
 import org.apache.tuscany.sca.host.embedded.management.ComponentManager;
 import org.apache.tuscany.sca.interfacedef.InterfaceContract;
 import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory;
-import org.apache.tuscany.sca.policy.Policy;
 import org.apache.tuscany.sca.runtime.RuntimeComponent;
 import org.apache.tuscany.sca.runtime.RuntimeComponentContext;
 import org.apache.tuscany.sca.runtime.RuntimeComponentReference;
@@ -95,10 +94,6 @@
         this.uri = domainURI;
         this.composites = composites;
 
-        // Create and start the runtime
-        // System.out.println("Test " + ReallySmallRuntime.class.getCanonicalName());
-        // IntentAttachPointTypeFactory iaptf;
-        Policy policy;
         runtime = new ReallySmallRuntime(runtimeClassLoader);
         try {
             runtime.start();
@@ -106,6 +101,8 @@
         } catch (ActivationException e) {
             throw new ServiceRuntimeException(e);
         }
+        
+        
 
         // Contribute the given contribution to an in-memory repository
         ContributionService contributionService = runtime.getContributionService();
@@ -161,13 +158,16 @@
             }
 
         }
+        
+        //update the runtime for all SCA Definitions processed from the contribution..
+        //so that the policyset determination done during 'build' has the all the defined
+        //intents and policysets
+        runtime.updateSCADefinitions(contributionService.getContributionSCADefinitions());
 
         // Build the SCA composites
-        CompositeBuilder compositeBuilder = runtime.getCompositeBuilder();
-
         for (Composite composite : domainComposite.getIncludes()) {
             try {
-                compositeBuilder.build(composite);
+                runtime.buildComposite(composite);
             } catch (CompositeBuilderException e) {
                 throw new ServiceRuntimeException(e);
             }

Modified: incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/EmbeddedSCADomain.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/EmbeddedSCADomain.java?rev=608074&r1=608073&r2=608074&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/EmbeddedSCADomain.java (original)
+++ incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/EmbeddedSCADomain.java Wed Jan  2 02:35:24 2008
@@ -19,6 +19,8 @@
 
 package org.apache.tuscany.sca.host.embedded.impl;
 
+import java.util.List;
+
 import javax.xml.namespace.QName;
 
 import org.apache.tuscany.sca.assembly.AssemblyFactory;
@@ -29,12 +31,14 @@
 import org.apache.tuscany.sca.assembly.SCABinding;
 import org.apache.tuscany.sca.assembly.SCABindingFactory;
 import org.apache.tuscany.sca.assembly.builder.CompositeBuilder;
+import org.apache.tuscany.sca.assembly.builder.CompositeBuilderException;
 import org.apache.tuscany.sca.assembly.xml.Constants;
 import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
 import org.apache.tuscany.sca.contribution.service.ContributionService;
 import org.apache.tuscany.sca.core.assembly.ActivationException;
 import org.apache.tuscany.sca.core.assembly.CompositeActivator;
 import org.apache.tuscany.sca.core.context.ServiceReferenceImpl;
+import org.apache.tuscany.sca.definitions.SCADefinitions;
 import org.apache.tuscany.sca.host.embedded.SCADomain;
 import org.apache.tuscany.sca.host.embedded.management.ComponentManager;
 import org.apache.tuscany.sca.interfacedef.InterfaceContract;
@@ -94,6 +98,14 @@
         
         // Cleanup
         domainComposite = null;
+    }
+    
+    public void updateContributionSCADefinitions(List<SCADefinitions> scaDefns) {
+        runtime.updateSCADefinitions(scaDefns);
+    }
+    
+    public void buildComposite(Composite composite) throws CompositeBuilderException {
+        runtime.buildComposite(composite);
     }
 
     public ContributionService getContributionService() {

Modified: incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntime.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntime.java?rev=608074&r1=608073&r2=608074&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntime.java (original)
+++ incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntime.java Wed Jan  2 02:35:24 2008
@@ -23,13 +23,16 @@
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
 import org.apache.tuscany.sca.assembly.AssemblyFactory;
+import org.apache.tuscany.sca.assembly.Composite;
 import org.apache.tuscany.sca.assembly.SCABindingFactory;
 import org.apache.tuscany.sca.assembly.builder.CompositeBuilder;
+import org.apache.tuscany.sca.assembly.builder.CompositeBuilderException;
 import org.apache.tuscany.sca.assembly.builder.DomainBuilder;
 import org.apache.tuscany.sca.context.ContextFactoryExtensionPoint;
 import org.apache.tuscany.sca.context.DefaultContextFactoryExtensionPoint;
@@ -51,12 +54,16 @@
 import org.apache.tuscany.sca.core.invocation.ProxyFactory;
 import org.apache.tuscany.sca.core.scope.ScopeRegistry;
 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.definitions.xml.SCADefinitionsDocumentProcessor;
 import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper;
 import org.apache.tuscany.sca.interfacedef.impl.InterfaceContractMapperImpl;
 import org.apache.tuscany.sca.invocation.MessageFactory;
 import org.apache.tuscany.sca.policy.DefaultIntentAttachPointTypeFactory;
 import org.apache.tuscany.sca.policy.DefaultPolicyFactory;
+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.PolicyFactory;
 import org.apache.tuscany.sca.policy.PolicySet;
@@ -76,6 +83,7 @@
     private WorkScheduler workScheduler;
     private ScopeRegistry scopeRegistry;
     private ProxyFactory proxyFactory;
+    private SCADefinitions scaDefinitions = null;
 
     public ReallySmallRuntime(ClassLoader classLoader) {
         this.classLoader = classLoader;
@@ -87,7 +95,7 @@
         // Create our extension point registry
         registry = new DefaultExtensionPointRegistry();
 
-//      Get work scheduler
+        //Get work scheduler
         workScheduler = registry.getExtensionPoint(WorkScheduler.class);
 
         // Create an interface contract mapper
@@ -146,53 +154,29 @@
         startModules(registry, modules);
 
         // Load the definitions.xml
-        URLArtifactProcessorExtensionPoint documentProcessors = registry.getExtensionPoint(URLArtifactProcessorExtensionPoint.class);
-        SCADefinitionsDocumentProcessor definitionsProcessor = (SCADefinitionsDocumentProcessor)documentProcessors.getProcessor(SCADefinitions.class);
-        SCADefinitions definitions = loadDomainDefinitions(definitionsProcessor);
-        List<PolicySet> domainPolicySets;
-        if ( definitions != null ) {
-            domainPolicySets = definitions.getPolicySets();
-        } else {
-            domainPolicySets = null;
-        }
+        loadSCADefinitions(registry);
         
         //Create a composite builder
-        compositeBuilder = ReallySmallRuntimeBuilder.createCompositeBuilder(assemblyFactory,
+        /*compositeBuilder = ReallySmallRuntimeBuilder.createCompositeBuilder(assemblyFactory,
                                                                             scaBindingFactory,
                                                                             intentAttachPointTypeFactory,
                                                                             mapper,
                                                                             domainPolicySets);
-
+        */
+        
         //Create a domain builder
-        domainBuilder = ReallySmallRuntimeBuilder.createDomainBuilder(assemblyFactory,
+        /*domainBuilder = ReallySmallRuntimeBuilder.createDomainBuilder(assemblyFactory,
                                                                       scaBindingFactory,
                                                                       intentAttachPointTypeFactory,
                                                                       mapper,
                                                                       domainPolicySets);
-        
+        */
         if (logger.isLoggable(Level.FINE)) {
             long end = System.currentTimeMillis();
             logger.fine("The tuscany runtime is started in " + (end - start) + " ms.");
         }
     }
     
-    private SCADefinitions loadDomainDefinitions(SCADefinitionsDocumentProcessor definitionsProcessor) throws ActivationException {
-        URL url = this.classLoader.getResource("definitions.xml");
-        SCADefinitions definitions = null;
-        
-        if ( url != null ) {
-            try {
-                definitions = definitionsProcessor.read(null, null, url);
-                definitionsProcessor.resolve(definitions, definitionsProcessor.getDomainModelResolver());
-            } catch ( ContributionReadException e ) {
-                throw new ActivationException(e);
-            } catch ( ContributionResolveException e ) {
-                throw new ActivationException(e);
-            }
-        } 
-        return definitions;
-    }
-
     public void stop() throws ActivationException {
     	long start = System.currentTimeMillis();
 
@@ -216,6 +200,30 @@
             logger.fine("The tuscany runtime is stopped in " + (end - start) + " ms.");
         }
     }
+    
+    public void buildComposite(Composite composite) throws CompositeBuilderException {
+        //Get factory extension point
+        ModelFactoryExtensionPoint factories = registry.getExtensionPoint(ModelFactoryExtensionPoint.class);
+        SCABindingFactory scaBindingFactory = factories.getFactory(SCABindingFactory.class);
+        IntentAttachPointTypeFactory intentAttachPointTypeFactory = factories.getFactory(IntentAttachPointTypeFactory.class);
+        InterfaceContractMapper mapper = new InterfaceContractMapperImpl();
+        
+        //Create a composite builder
+        compositeBuilder = ReallySmallRuntimeBuilder.createCompositeBuilder(assemblyFactory,
+                                                                            scaBindingFactory,
+                                                                            intentAttachPointTypeFactory,
+                                                                            mapper,
+                                                                            scaDefinitions.getPolicySets());
+        compositeBuilder.build(composite);
+        
+    }
+    
+    public void updateSCADefinitions(List<SCADefinitions> scaDefns) {
+        for ( SCADefinitions aDefn : scaDefns ) {
+            SCADefinitionsUtil.aggregateSCADefinitions(aDefn, scaDefinitions);
+        }
+        SCADefinitionsUtil.stripDuplicates(scaDefinitions);
+    }
 
     public ContributionService getContributionService() {
         return contributionService;
@@ -234,7 +242,48 @@
     }
 
     public DomainBuilder getDomainBuilder() {
+        if ( domainBuilder == null ) {
+            //Create a domain builder
+            //Get factory extension point
+            ModelFactoryExtensionPoint factories = registry.getExtensionPoint(ModelFactoryExtensionPoint.class);
+            SCABindingFactory scaBindingFactory = factories.getFactory(SCABindingFactory.class);
+            IntentAttachPointTypeFactory intentAttachPointTypeFactory = factories.getFactory(IntentAttachPointTypeFactory.class);
+            InterfaceContractMapper mapper = new InterfaceContractMapperImpl();
+            domainBuilder = ReallySmallRuntimeBuilder.createDomainBuilder(assemblyFactory,
+                                                                          scaBindingFactory,
+                                                                          intentAttachPointTypeFactory,
+                                                                          mapper,
+                                                                          scaDefinitions.getPolicySets());
+        }
         return domainBuilder;
+    }
+    
+    private SCADefinitions loadSCADefinitions(ExtensionPointRegistry registry) throws ActivationException {
+        URLArtifactProcessorExtensionPoint documentProcessors = registry.getExtensionPoint(URLArtifactProcessorExtensionPoint.class);
+        SCADefinitionsDocumentProcessor definitionsProcessor = (SCADefinitionsDocumentProcessor)documentProcessors.getProcessor(SCADefinitions.class);
+        
+        scaDefinitions = new SCADefinitionsImpl();
+        try {
+            Map<ClassLoader, Set<URL>> scaDefinitionFiles = 
+            ServiceDiscovery.getInstance().getServiceResources("definitions.xml");
+            
+            for ( ClassLoader cl : scaDefinitionFiles.keySet() ) {
+                for ( URL scaDefnUrl : scaDefinitionFiles.get(cl) ) {
+                    SCADefinitions defnSubset = definitionsProcessor.read(null, null, scaDefnUrl);
+                    SCADefinitionsUtil.aggregateSCADefinitions(defnSubset, scaDefinitions);
+                }
+            }
+            
+            definitionsProcessor.resolve(scaDefinitions, definitionsProcessor.getSCADefinitionsResolver());
+        } catch ( ContributionReadException e ) {
+            throw new ActivationException(e);
+        } catch ( ContributionResolveException e ) {
+            throw new ActivationException(e);
+        } catch ( IOException e ) {
+            throw new ActivationException(e);
+        }
+    
+        return scaDefinitions;
     }
     
     @SuppressWarnings("unchecked")

Modified: incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java?rev=608074&r1=608073&r2=608074&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java (original)
+++ incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java Wed Jan  2 02:35:24 2008
@@ -219,7 +219,7 @@
         SCADefinitionsDocumentProcessor definitionsDocumentProcessor =
             new SCADefinitionsDocumentProcessor(staxProcessors, staxProcessor, inputFactory, policyFactory);
         documentProcessors.addArtifactProcessor(definitionsDocumentProcessor);
-        ModelResolver domainModelResolver = definitionsDocumentProcessor.getDomainModelResolver();
+        ModelResolver domainModelResolver = definitionsDocumentProcessor.getSCADefinitionsResolver();
 
         // Create Model Resolver extension point
         ModelResolverExtensionPoint modelResolvers = registry.getExtensionPoint(ModelResolverExtensionPoint.class);

Modified: incubator/tuscany/java/sca/modules/host-embedded/src/test/java/org/apache/tuscany/sca/host/embedded/impl/EmbeddedSCADomainTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-embedded/src/test/java/org/apache/tuscany/sca/host/embedded/impl/EmbeddedSCADomainTestCase.java?rev=608074&r1=608073&r2=608074&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/host-embedded/src/test/java/org/apache/tuscany/sca/host/embedded/impl/EmbeddedSCADomainTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/host-embedded/src/test/java/org/apache/tuscany/sca/host/embedded/impl/EmbeddedSCADomainTestCase.java Wed Jan  2 02:35:24 2008
@@ -71,7 +71,13 @@
         
         // Add the deployable composite to the domain
         domain.getDomainComposite().getIncludes().add(myComposite);
-        domain.getCompositeBuilder().build(myComposite);
+        
+        
+        //update for sca definitions processed from contributions.. need to do this  before building
+        //the composite
+        domain.updateContributionSCADefinitions(contributionService.getContributionSCADefinitions());
+        
+        domain.buildComposite(myComposite);
 
         // Start the composite
         domain.getCompositeActivator().activate(myComposite);
@@ -128,7 +134,12 @@
         
         // Add the deployable composite to the domain
         domain.getDomainComposite().getIncludes().add(myComposite);
-        domain.getCompositeBuilder().build(myComposite);
+        
+        //update for sca definitions processed from contributions.. need to do this  before building
+        //the composite
+        domain.updateContributionSCADefinitions(contributionService.getContributionSCADefinitions());
+        
+        domain.buildComposite(myComposite);
 
         // Start the composite
         domain.getCompositeActivator().activate(myComposite);

Modified: incubator/tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/SCADomainProxyImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/SCADomainProxyImpl.java?rev=608074&r1=608073&r2=608074&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/SCADomainProxyImpl.java (original)
+++ incubator/tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/SCADomainProxyImpl.java Wed Jan  2 02:35:24 2008
@@ -207,6 +207,10 @@
                                                                                               modelResolver,
                                                                                               false);
                 
+                //update runtime with contribution sca definitions
+                //this should be done before building the composite
+                domainManagementRuntime.updateSCADefinitions(domainManagementContributionService.getContributionSCADefinitions());
+                
                 Composite composite = null;
                 
                 for (DeployedArtifact artifact: domainManagementContribution.getArtifacts()) {
@@ -218,7 +222,7 @@
                 if (composite != null) {
                 
                     domainManagementComposite.getIncludes().add(composite);
-                    domainManagementRuntime.getCompositeBuilder().build(composite);
+                    domainManagementRuntime.buildComposite(composite);
                     
                     if (domainModel.getDomainURL() != null) {
                         URI domainURI = URI.create(domainModel.getDomainURI());

Added: incubator/tuscany/java/sca/modules/policy-logging/src/main/resources/META-INF/services/definitions.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/policy-logging/src/main/resources/META-INF/services/definitions.xml?rev=608074&view=auto
==============================================================================
--- incubator/tuscany/java/sca/modules/policy-logging/src/main/resources/META-INF/services/definitions.xml (added)
+++ incubator/tuscany/java/sca/modules/policy-logging/src/main/resources/META-INF/services/definitions.xml Wed Jan  2 02:35:24 2008
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="ASCII"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+-->
+<definitions xmlns="http://www.osoa.org/xmlns/sca/1.0"
+ 			targetNamespace="http://www.osoa.org/xmlns/sca/1.0"
+ 			xmlns:sca="http://www.osoa.org/xmlns/sca/1.0"
+ 			xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.0">
+
+	<!-- Policy Intents Defined by the SCA Runtime -->
+	<intent name="tuscany:logging" 
+ 		constrains="sca:implementation.java">
+		<description>
+			All messages to and from this implementation must be logged
+		</description>
+	</intent>
+</definitions>
\ No newline at end of file



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org