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

svn commit: r814879 [2/2] - in /tuscany/java/sca/modules: assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/ assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ assembly/src/main/resources/ assembly/src/test/java/org/apach...

Added: tuscany/java/sca/modules/binding-ws-wsdlgen/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.builder.BindingBuilder
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/binding-ws-wsdlgen/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.builder.BindingBuilder?rev=814879&view=auto
==============================================================================
--- tuscany/java/sca/modules/binding-ws-wsdlgen/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.builder.BindingBuilder (added)
+++ tuscany/java/sca/modules/binding-ws-wsdlgen/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.builder.BindingBuilder Mon Sep 14 21:49:36 2009
@@ -0,0 +1,17 @@
+# 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. 
+org.apache.tuscany.sca.binding.ws.wsdlgen.WebServiceBindingBuilder;model=org.apache.tuscany.sca.binding.ws.WebServiceBinding

Modified: tuscany/java/sca/modules/binding-ws-xml/src/main/java/org/apache/tuscany/sca/binding/ws/xml/WebServiceBindingProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/binding-ws-xml/src/main/java/org/apache/tuscany/sca/binding/ws/xml/WebServiceBindingProcessor.java?rev=814879&r1=814878&r2=814879&view=diff
==============================================================================
--- tuscany/java/sca/modules/binding-ws-xml/src/main/java/org/apache/tuscany/sca/binding/ws/xml/WebServiceBindingProcessor.java (original)
+++ tuscany/java/sca/modules/binding-ws-xml/src/main/java/org/apache/tuscany/sca/binding/ws/xml/WebServiceBindingProcessor.java Mon Sep 14 21:49:36 2009
@@ -123,7 +123,6 @@
         bindingType.setUnresolved(true);
         ((PolicySubject)wsBinding).setType(bindingType);*/
         wsBinding.setUnresolved(true);
-        wsBinding.setBuilder(new BindingBuilderImpl(extensionPoints));
 
         // Read policies
         policyProcessor.readPolicies(wsBinding, reader);

Modified: tuscany/java/sca/modules/binding-ws/src/main/java/org/apache/tuscany/sca/binding/ws/WebServiceBinding.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/binding-ws/src/main/java/org/apache/tuscany/sca/binding/ws/WebServiceBinding.java?rev=814879&r1=814878&r2=814879&view=diff
==============================================================================
--- tuscany/java/sca/modules/binding-ws/src/main/java/org/apache/tuscany/sca/binding/ws/WebServiceBinding.java (original)
+++ tuscany/java/sca/modules/binding-ws/src/main/java/org/apache/tuscany/sca/binding/ws/WebServiceBinding.java Mon Sep 14 21:49:36 2009
@@ -24,7 +24,6 @@
 import javax.xml.namespace.QName;
 
 import org.apache.tuscany.sca.assembly.Binding;
-import org.apache.tuscany.sca.assembly.builder.BindingBuilderExtension;
 import org.apache.tuscany.sca.interfacedef.InterfaceContract;
 import org.apache.tuscany.sca.interfacedef.wsdl.WSDLDefinition;
 import org.w3c.dom.Element;
@@ -35,7 +34,7 @@
  *
  * @version $Rev$ $Date$
  */
-public interface WebServiceBinding extends Binding, BindingBuilderExtension {
+public interface WebServiceBinding extends Binding {
     QName TYPE = new QName(SCA11_NS, "binding.ws");
 
     /**

Modified: tuscany/java/sca/modules/binding-ws/src/main/java/org/apache/tuscany/sca/binding/ws/impl/WebServiceBindingImpl.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/binding-ws/src/main/java/org/apache/tuscany/sca/binding/ws/impl/WebServiceBindingImpl.java?rev=814879&r1=814878&r2=814879&view=diff
==============================================================================
--- tuscany/java/sca/modules/binding-ws/src/main/java/org/apache/tuscany/sca/binding/ws/impl/WebServiceBindingImpl.java (original)
+++ tuscany/java/sca/modules/binding-ws/src/main/java/org/apache/tuscany/sca/binding/ws/impl/WebServiceBindingImpl.java Mon Sep 14 21:49:36 2009
@@ -30,7 +30,6 @@
 
 import org.apache.tuscany.sca.assembly.Extensible;
 import org.apache.tuscany.sca.assembly.Extension;
-import org.apache.tuscany.sca.assembly.builder.BindingBuilder;
 import org.apache.tuscany.sca.binding.ws.WebServiceBinding;
 import org.apache.tuscany.sca.interfacedef.Interface;
 import org.apache.tuscany.sca.interfacedef.InterfaceContract;
@@ -70,7 +69,6 @@
     private InterfaceContract bindingInterfaceContract;
     private Element endPointReference;
     private Definition generatedWSDLDocument;
-    private BindingBuilder builder;
 
     protected WebServiceBindingImpl() {
     }
@@ -295,14 +293,6 @@
         this.generatedWSDLDocument = definition;
     }
 
-    public BindingBuilder getBuilder() {
-        return builder;
-    }
-
-    public void setBuilder(BindingBuilder builder) {
-        this.builder = builder;
-    }
-
     public QName getType() {
         return TYPE;
     }

Modified: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/CallableReferenceImpl.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/CallableReferenceImpl.java?rev=814879&r1=814878&r2=814879&view=diff
==============================================================================
--- tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/CallableReferenceImpl.java (original)
+++ tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/CallableReferenceImpl.java Mon Sep 14 21:49:36 2009
@@ -35,11 +35,13 @@
 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.ComponentService;
 import org.apache.tuscany.sca.assembly.CompositeService;
 import org.apache.tuscany.sca.assembly.EndpointReference;
 import org.apache.tuscany.sca.assembly.Service;
-import org.apache.tuscany.sca.assembly.builder.BindingBuilderExtension;
+import org.apache.tuscany.sca.assembly.builder.BindingBuilder;
+import org.apache.tuscany.sca.assembly.builder.CompositeBuilderExtensionPoint;
 import org.apache.tuscany.sca.contribution.processor.ContributionReadException;
 import org.apache.tuscany.sca.contribution.processor.ContributionWriteException;
 import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
@@ -49,7 +51,6 @@
 import org.apache.tuscany.sca.core.assembly.CompositeActivator;
 import org.apache.tuscany.sca.core.assembly.RuntimeAssemblyFactory;
 import org.apache.tuscany.sca.core.assembly.impl.ReferenceParametersImpl;
-import org.apache.tuscany.sca.core.assembly.impl.RuntimeWireImpl;
 import org.apache.tuscany.sca.core.context.ComponentContextExt;
 import org.apache.tuscany.sca.core.context.CompositeContext;
 import org.apache.tuscany.sca.core.context.ServiceReferenceExt;
@@ -98,6 +99,7 @@
     private StAXArtifactProcessor<EndpointReference> staxProcessor; 
     private XMLInputFactory xmlInputFactory;
     private XMLOutputFactory xmlOutputFactory;
+    private CompositeBuilderExtensionPoint builders;
 
     /*
      * Public constructor for Externalizable serialization/deserialization
@@ -164,6 +166,7 @@
         this.xmlOutputFactory = modelFactories.getFactory(XMLOutputFactory.class);
         this.staxProcessors = registry.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class);
         this.staxProcessor = staxProcessors.getProcessor(EndpointReference.class);
+        this.builders = registry.getExtensionPoint(CompositeBuilderExtensionPoint.class);
     }
 
     public CallableReferenceImpl(Class<B> businessInterface, RuntimeWire wire, ProxyFactory proxyFactory) {
@@ -423,9 +426,13 @@
                 this.businessInterface = (Class<B>)javaInterface.getJavaClass();
             }
             
-            if (endpointReference.getBinding() instanceof BindingBuilderExtension) {
-                ((BindingBuilderExtension)endpointReference.getBinding()).getBuilder().build(component, reference, endpointReference.getBinding(), null);
-            }            
+            Binding binding = endpointReference.getBinding();
+            if (binding != null) {
+                BindingBuilder bindingBuilder = builders.getBindingBuilder(binding.getClass());
+                if (bindingBuilder != null) {
+                    bindingBuilder.build(component, reference, endpointReference.getBinding(), null);
+                }
+            }
 
             this.proxyFactory = compositeActivator.getCompositeContext().getProxyFactory();       
         } else if (compositeActivator == null) {

Copied: tuscany/java/sca/modules/definitions-xml/src/test/java/org/apache/tuscany/sca/definitions/xml/MockPolicy.java (from r811001, tuscany/java/sca/modules/definitions-xml/src/test/java/org/apache/tuscany/sca/definitions/MockPolicy.java)
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/definitions-xml/src/test/java/org/apache/tuscany/sca/definitions/xml/MockPolicy.java?p2=tuscany/java/sca/modules/definitions-xml/src/test/java/org/apache/tuscany/sca/definitions/xml/MockPolicy.java&p1=tuscany/java/sca/modules/definitions-xml/src/test/java/org/apache/tuscany/sca/definitions/MockPolicy.java&r1=811001&r2=814879&rev=814879&view=diff
==============================================================================
--- tuscany/java/sca/modules/definitions-xml/src/test/java/org/apache/tuscany/sca/definitions/MockPolicy.java (original)
+++ tuscany/java/sca/modules/definitions-xml/src/test/java/org/apache/tuscany/sca/definitions/xml/MockPolicy.java Mon Sep 14 21:49:36 2009
@@ -17,7 +17,7 @@
  * under the License.    
  */
 
-package org.apache.tuscany.sca.definitions;
+package org.apache.tuscany.sca.definitions.xml;
 
 import javax.xml.namespace.QName;
 

Copied: tuscany/java/sca/modules/definitions-xml/src/test/java/org/apache/tuscany/sca/definitions/xml/ReadDocumentTestCase.java (from r811001, tuscany/java/sca/modules/definitions-xml/src/test/java/org/apache/tuscany/sca/definitions/ReadDocumentTestCase.java)
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/definitions-xml/src/test/java/org/apache/tuscany/sca/definitions/xml/ReadDocumentTestCase.java?p2=tuscany/java/sca/modules/definitions-xml/src/test/java/org/apache/tuscany/sca/definitions/xml/ReadDocumentTestCase.java&p1=tuscany/java/sca/modules/definitions-xml/src/test/java/org/apache/tuscany/sca/definitions/ReadDocumentTestCase.java&r1=811001&r2=814879&rev=814879&view=diff
==============================================================================
--- tuscany/java/sca/modules/definitions-xml/src/test/java/org/apache/tuscany/sca/definitions/ReadDocumentTestCase.java (original)
+++ tuscany/java/sca/modules/definitions-xml/src/test/java/org/apache/tuscany/sca/definitions/xml/ReadDocumentTestCase.java Mon Sep 14 21:49:36 2009
@@ -17,7 +17,7 @@
  * under the License.    
  */
 
-package org.apache.tuscany.sca.definitions;
+package org.apache.tuscany.sca.definitions.xml;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -38,6 +38,7 @@
 import org.apache.tuscany.sca.contribution.resolver.DefaultModelResolver;
 import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
 import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry;
+import org.apache.tuscany.sca.definitions.Definitions;
 import org.apache.tuscany.sca.policy.BindingType;
 import org.apache.tuscany.sca.policy.ImplementationType;
 import org.apache.tuscany.sca.policy.Intent;

Copied: tuscany/java/sca/modules/definitions-xml/src/test/java/org/apache/tuscany/sca/definitions/xml/TestPolicyProcessor.java (from r811001, tuscany/java/sca/modules/definitions-xml/src/test/java/org/apache/tuscany/sca/definitions/TestPolicyProcessor.java)
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/definitions-xml/src/test/java/org/apache/tuscany/sca/definitions/xml/TestPolicyProcessor.java?p2=tuscany/java/sca/modules/definitions-xml/src/test/java/org/apache/tuscany/sca/definitions/xml/TestPolicyProcessor.java&p1=tuscany/java/sca/modules/definitions-xml/src/test/java/org/apache/tuscany/sca/definitions/TestPolicyProcessor.java&r1=811001&r2=814879&rev=814879&view=diff
==============================================================================
--- tuscany/java/sca/modules/definitions-xml/src/test/java/org/apache/tuscany/sca/definitions/TestPolicyProcessor.java (original)
+++ tuscany/java/sca/modules/definitions-xml/src/test/java/org/apache/tuscany/sca/definitions/xml/TestPolicyProcessor.java Mon Sep 14 21:49:36 2009
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.    
  */
-package org.apache.tuscany.sca.definitions;
+package org.apache.tuscany.sca.definitions.xml;
 
 import javax.xml.namespace.QName;
 import javax.xml.stream.XMLStreamException;

Copied: tuscany/java/sca/modules/definitions-xml/src/test/resources/org/apache/tuscany/sca/definitions/xml/test_definitions.xml (from r811001, tuscany/java/sca/modules/definitions-xml/src/test/resources/org/apache/tuscany/sca/definitions/test_definitions.xml)
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/definitions-xml/src/test/resources/org/apache/tuscany/sca/definitions/xml/test_definitions.xml?p2=tuscany/java/sca/modules/definitions-xml/src/test/resources/org/apache/tuscany/sca/definitions/xml/test_definitions.xml&p1=tuscany/java/sca/modules/definitions-xml/src/test/resources/org/apache/tuscany/sca/definitions/test_definitions.xml&r1=811001&r2=814879&rev=814879&view=diff
==============================================================================
--- tuscany/java/sca/modules/definitions-xml/src/test/resources/org/apache/tuscany/sca/definitions/test_definitions.xml (original)
+++ tuscany/java/sca/modules/definitions-xml/src/test/resources/org/apache/tuscany/sca/definitions/xml/test_definitions.xml Mon Sep 14 21:49:36 2009
@@ -38,6 +38,7 @@
     </intent>
 
     <policySet name="TestPolicySetOne" provides="test:TestIntentOne" appliesTo="sca:binding.ws"
+        attachTo = "//sca:component[@name='CalculatorServiceComponent']/sca:reference[@name='addService']"
         xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200903" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
         <wsp:PolicyAttachment>
             <!-- policy expression and policy subject for

Modified: tuscany/java/sca/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementation.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementation.java?rev=814879&r1=814878&r2=814879&view=diff
==============================================================================
--- tuscany/java/sca/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementation.java (original)
+++ tuscany/java/sca/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementation.java Mon Sep 14 21:49:36 2009
@@ -31,7 +31,6 @@
 import org.apache.tuscany.sca.assembly.Property;
 import org.apache.tuscany.sca.assembly.Reference;
 import org.apache.tuscany.sca.assembly.Service;
-import org.apache.tuscany.sca.assembly.builder.ComponentPreProcessor;
 import org.apache.tuscany.sca.assembly.impl.ImplementationImpl;
 import org.apache.tuscany.sca.interfacedef.InterfaceContract;
 import org.apache.tuscany.sca.runtime.RuntimeComponent;
@@ -42,7 +41,7 @@
  *
  * @version $Rev$ $Date$
  */
-public class SpringImplementation extends ImplementationImpl implements Implementation, ComponentPreProcessor, Extensible {
+public class SpringImplementation extends ImplementationImpl implements Implementation, Extensible {
     private final static QName TYPE = new QName(SCA11_NS, "implementation.spring");
     // The location attribute which points to the Spring application-context XML file
     private String location;
@@ -173,7 +172,7 @@
     /**
      * Use preProcess to validate and map the references and properties dynamically
      */
-    public void preProcess(Component component) {
+    public void build(Component component) {
         if (!(component instanceof RuntimeComponent))
             return;
 

Added: tuscany/java/sca/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationBuilder.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationBuilder.java?rev=814879&view=auto
==============================================================================
--- tuscany/java/sca/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationBuilder.java (added)
+++ tuscany/java/sca/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationBuilder.java Mon Sep 14 21:49:36 2009
@@ -0,0 +1,40 @@
+/*
+ * 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.implementation.spring;
+
+import org.apache.tuscany.sca.assembly.Component;
+import org.apache.tuscany.sca.assembly.builder.ImplementationBuilder;
+import org.apache.tuscany.sca.monitor.Monitor;
+
+/**
+ * 
+ */
+public class SpringImplementationBuilder implements ImplementationBuilder<SpringImplementation> {
+
+    public void build(Component component, SpringImplementation implmentation, Monitor monitor) {
+        implmentation.build(component);
+    }
+
+    public Class<SpringImplementation> getModelType() {
+        // TODO Auto-generated method stub
+        return SpringImplementation.class;
+    }
+
+}

Propchange: tuscany/java/sca/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationBuilder.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/java/sca/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationBuilder.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: tuscany/java/sca/modules/implementation-spring/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.builder.ImplementationBuilder
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/implementation-spring/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.builder.ImplementationBuilder?rev=814879&view=auto
==============================================================================
--- tuscany/java/sca/modules/implementation-spring/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.builder.ImplementationBuilder (added)
+++ tuscany/java/sca/modules/implementation-spring/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.builder.ImplementationBuilder Mon Sep 14 21:49:36 2009
@@ -0,0 +1,17 @@
+# 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. 
+org.apache.tuscany.sca.implementation.spring.SpringImplementationBuilder;model=org.apache.tuscany.sca.implementation.spring.SpringImplementation

Modified: tuscany/java/sca/modules/implementation-web/META-INF/MANIFEST.MF
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/implementation-web/META-INF/MANIFEST.MF?rev=814879&r1=814878&r2=814879&view=diff
==============================================================================
--- tuscany/java/sca/modules/implementation-web/META-INF/MANIFEST.MF (original)
+++ tuscany/java/sca/modules/implementation-web/META-INF/MANIFEST.MF Mon Sep 14 21:49:36 2009
@@ -21,6 +21,7 @@
  org.apache.tuscany.sca.contribution.resolver;version="2.0.0",
  org.apache.tuscany.sca.core;version="2.0.0",
  org.apache.tuscany.sca.implementation.web;version="2.0.0",
+ org.apache.tuscany.sca.monitor;version="2.0.0",
  org.apache.tuscany.sca.policy;version="2.0.0",
  org.apache.tuscany.sca.runtime;version="2.0.0",
  org.apache.tuscany.sca.xsd;version="2.0.0"

Modified: tuscany/java/sca/modules/implementation-web/pom.xml
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/implementation-web/pom.xml?rev=814879&r1=814878&r2=814879&view=diff
==============================================================================
--- tuscany/java/sca/modules/implementation-web/pom.xml (original)
+++ tuscany/java/sca/modules/implementation-web/pom.xml Mon Sep 14 21:49:36 2009
@@ -59,7 +59,6 @@
             <groupId>org.apache.tuscany.sca</groupId>
             <artifactId>tuscany-monitor</artifactId>
             <version>2.0-SNAPSHOT</version>
-            <scope>test</scope>
         </dependency>
 
         <dependency>

Added: tuscany/java/sca/modules/implementation-web/src/main/java/org/apache/tuscany/sca/implementation/web/impl/WebImplementationBuilder.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/implementation-web/src/main/java/org/apache/tuscany/sca/implementation/web/impl/WebImplementationBuilder.java?rev=814879&view=auto
==============================================================================
--- tuscany/java/sca/modules/implementation-web/src/main/java/org/apache/tuscany/sca/implementation/web/impl/WebImplementationBuilder.java (added)
+++ tuscany/java/sca/modules/implementation-web/src/main/java/org/apache/tuscany/sca/implementation/web/impl/WebImplementationBuilder.java Mon Sep 14 21:49:36 2009
@@ -0,0 +1,41 @@
+/*
+ * 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.implementation.web.impl;
+
+import org.apache.tuscany.sca.assembly.Component;
+import org.apache.tuscany.sca.assembly.builder.ImplementationBuilder;
+import org.apache.tuscany.sca.implementation.web.WebImplementation;
+import org.apache.tuscany.sca.monitor.Monitor;
+
+/**
+ * 
+ */
+public class WebImplementationBuilder implements ImplementationBuilder<WebImplementation> {
+
+    public void build(Component component, WebImplementation implmentation, Monitor monitor) {
+        ((WebImplementationImpl)implmentation).build(component);
+
+    }
+
+    public Class<WebImplementation> getModelType() {
+        return WebImplementation.class;
+    }
+
+}

Propchange: tuscany/java/sca/modules/implementation-web/src/main/java/org/apache/tuscany/sca/implementation/web/impl/WebImplementationBuilder.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/java/sca/modules/implementation-web/src/main/java/org/apache/tuscany/sca/implementation/web/impl/WebImplementationBuilder.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: tuscany/java/sca/modules/implementation-web/src/main/java/org/apache/tuscany/sca/implementation/web/impl/WebImplementationImpl.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/implementation-web/src/main/java/org/apache/tuscany/sca/implementation/web/impl/WebImplementationImpl.java?rev=814879&r1=814878&r2=814879&view=diff
==============================================================================
--- tuscany/java/sca/modules/implementation-web/src/main/java/org/apache/tuscany/sca/implementation/web/impl/WebImplementationImpl.java (original)
+++ tuscany/java/sca/modules/implementation-web/src/main/java/org/apache/tuscany/sca/implementation/web/impl/WebImplementationImpl.java Mon Sep 14 21:49:36 2009
@@ -29,7 +29,6 @@
 import org.apache.tuscany.sca.assembly.Property;
 import org.apache.tuscany.sca.assembly.Reference;
 import org.apache.tuscany.sca.assembly.Service;
-import org.apache.tuscany.sca.assembly.builder.ComponentPreProcessor;
 import org.apache.tuscany.sca.assembly.impl.ImplementationImpl;
 import org.apache.tuscany.sca.implementation.web.WebImplementation;
 import org.apache.tuscany.sca.runtime.RuntimeComponent;
@@ -38,7 +37,7 @@
 /**
  * The model representing an Web implementation in an SCA assembly model.
  */
-class WebImplementationImpl extends ImplementationImpl implements WebImplementation, ComponentPreProcessor {
+class WebImplementationImpl extends ImplementationImpl implements WebImplementation {
     private static final QName TYPE = new QName(SCA11_NS, "implementation.web");
 
     private List<Property> properties = new ArrayList<Property>();
@@ -105,7 +104,7 @@
      * Use preProcess to add any references and properties dynamically
      * TODO: also support introspection and handle WEB-INF/web.componentType (spec line 503)
      */
-    public void preProcess(Component component) {
+    public void build(Component component) {
         if (!(component instanceof RuntimeComponent)) {
             return;
         }

Added: tuscany/java/sca/modules/implementation-web/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.builder.ImplementationBuilder
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/implementation-web/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.builder.ImplementationBuilder?rev=814879&view=auto
==============================================================================
--- tuscany/java/sca/modules/implementation-web/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.builder.ImplementationBuilder (added)
+++ tuscany/java/sca/modules/implementation-web/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.builder.ImplementationBuilder Mon Sep 14 21:49:36 2009
@@ -0,0 +1,17 @@
+# 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. 
+org.apache.tuscany.sca.implementation.web.impl.WebImplementationBuilder;model=org.apache.tuscany.sca.implementation.web.WebImplementation

Modified: tuscany/java/sca/modules/policy-xml/META-INF/MANIFEST.MF
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/policy-xml/META-INF/MANIFEST.MF?rev=814879&r1=814878&r2=814879&view=diff
==============================================================================
--- tuscany/java/sca/modules/policy-xml/META-INF/MANIFEST.MF (original)
+++ tuscany/java/sca/modules/policy-xml/META-INF/MANIFEST.MF Mon Sep 14 21:49:36 2009
@@ -9,12 +9,17 @@
 Bundle-ManifestVersion: 2
 Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt
 Bundle-Description: Apache Tuscany SCA Policy XML Model
-Import-Package: javax.xml.namespace,javax.xml.stream,javax.xml.xpath,o
- rg.apache.tuscany.sca.contribution.processor;version="2.0.0",org.apache
- .tuscany.sca.contribution.resolver;version="2.0.0",org.apache.tuscany.s
- ca.core;version="2.0.0",org.apache.tuscany.sca.monitor;version="2.0.0",or
- g.apache.tuscany.sca.policy;version="2.0.0",org.apache.tuscany.sca.poli
- cy.impl;version="2.0.0"
+Import-Package: javax.xml.namespace,
+ javax.xml.stream,
+ javax.xml.xpath,
+ org.apache.tuscany.sca.assembly;version="2.0.0",
+ org.apache.tuscany.sca.common.xml.xpath;version="2.0.0",
+ org.apache.tuscany.sca.contribution.processor;version="2.0.0",
+ org.apache.tuscany.sca.contribution.resolver;version="2.0.0",
+ org.apache.tuscany.sca.core;version="2.0.0",
+ org.apache.tuscany.sca.monitor;version="2.0.0",
+ org.apache.tuscany.sca.policy;version="2.0.0",
+ org.apache.tuscany.sca.policy.impl;version="2.0.0"
 Bundle-SymbolicName: org.apache.tuscany.sca.policy.xml
 Bundle-DocURL: http://www.apache.org/
 Bundle-RequiredExecutionEnvironment: J2SE-1.5,JavaSE-1.6

Modified: tuscany/java/sca/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicySetProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicySetProcessor.java?rev=814879&r1=814878&r2=814879&view=diff
==============================================================================
--- tuscany/java/sca/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicySetProcessor.java (original)
+++ tuscany/java/sca/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicySetProcessor.java Mon Sep 14 21:49:36 2009
@@ -26,20 +26,23 @@
 import java.util.List;
 import java.util.StringTokenizer;
 
+import javax.xml.namespace.NamespaceContext;
 import javax.xml.namespace.QName;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
 import javax.xml.stream.XMLStreamWriter;
 import javax.xml.xpath.XPath;
+import javax.xml.xpath.XPathExpression;
 import javax.xml.xpath.XPathExpressionException;
-import javax.xml.xpath.XPathFactory;
 
+import org.apache.tuscany.sca.common.xml.xpath.XPathHelper;
 import org.apache.tuscany.sca.contribution.processor.BaseStAXArtifactProcessor;
 import org.apache.tuscany.sca.contribution.processor.ContributionReadException;
 import org.apache.tuscany.sca.contribution.processor.ContributionResolveException;
 import org.apache.tuscany.sca.contribution.processor.ContributionWriteException;
 import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
 import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
+import org.apache.tuscany.sca.core.ExtensionPointRegistry;
 import org.apache.tuscany.sca.core.FactoryExtensionPoint;
 import org.apache.tuscany.sca.monitor.Monitor;
 import org.apache.tuscany.sca.monitor.Problem;
@@ -61,17 +64,22 @@
 
     private PolicyFactory policyFactory;
     private StAXArtifactProcessor<Object> extensionProcessor;
-    private XPathFactory xpathFactory = XPathFactory.newInstance();
+    private XPathHelper xpathHelper;
+    // private XPathFactory xpathFactory;
     private Monitor monitor;
 
-    public PolicySetProcessor(FactoryExtensionPoint modelFactories,
+    public PolicySetProcessor(ExtensionPointRegistry registry,
                               StAXArtifactProcessor<Object> extensionProcessor,
                               Monitor monitor) {
+        FactoryExtensionPoint modelFactories = registry.getExtensionPoint(FactoryExtensionPoint.class);
         this.policyFactory = modelFactories.getFactory(PolicyFactory.class);
         this.extensionProcessor = extensionProcessor;
         this.monitor = monitor;
+        this.xpathHelper = XPathHelper.getInstance(registry);
+        // this.xpathFactory = modelFactories.getFactory(XPathFactory.class);
     }
 
+    /*
     public PolicySetProcessor(PolicyFactory policyFactory,
                               StAXArtifactProcessor<Object> extensionProcessor,
                               Monitor monitor) {
@@ -79,6 +87,7 @@
         this.extensionProcessor = extensionProcessor;
         this.monitor = monitor;
     }
+    */
 
     /**
      * Report a exception.
@@ -146,16 +155,35 @@
 
         policySet.setAppliesTo(appliesTo);
 
-        XPath path = xpathFactory.newXPath();
-        path.setNamespaceContext(reader.getNamespaceContext());
-        try {
-            if (appliesTo != null) {
-                policySet.setAppliesToXPathExpression(path.compile(appliesTo));
-            }
-        } catch (XPathExpressionException e) {
-            ContributionReadException ce = new ContributionReadException(e);
-            error("ContributionReadException", policySet, ce);
-            //throw ce;
+        if (appliesTo != null) {
+            try {
+                XPath path = xpathHelper.newXPath();
+                NamespaceContext context = xpathHelper.getNamespaceContext(appliesTo, reader.getNamespaceContext());
+                // path.setXPathFunctionResolver(new PolicyXPathFunctionResolver(context));
+                XPathExpression expression = xpathHelper.compile(path, context, appliesTo);
+                policySet.setAppliesToXPathExpression(expression);
+            } catch (XPathExpressionException e) {
+                ContributionReadException ce = new ContributionReadException(e);
+                error("ContributionReadException", policySet, ce);
+                //throw ce;
+            }
+        }
+        
+        String attachTo = reader.getAttributeValue(null, ATTACH_TO);
+        if (attachTo != null) {
+            try {
+                XPath path = xpathHelper.newXPath();
+                NamespaceContext context = xpathHelper.getNamespaceContext(attachTo, reader.getNamespaceContext());
+                path.setXPathFunctionResolver(new PolicyXPathFunctionResolver(context));
+                XPathExpression expression = xpathHelper.compile(path, context, attachTo);
+                policySet.setAttachTo(attachTo);
+                policySet.setAttachToXPathExpression(expression);
+            } catch (XPathExpressionException e) {
+                ContributionReadException ce = new ContributionReadException(e);
+                error("ContributionReadException", policySet, ce);
+                //throw ce;
+            }
+
         }
 
         readProvidedIntents(policySet, reader);

Modified: tuscany/java/sca/modules/policy-xml/src/test/resources/org/apache/tuscany/sca/policy/xml/Calculator.composite
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/policy-xml/src/test/resources/org/apache/tuscany/sca/policy/xml/Calculator.composite?rev=814879&r1=814878&r2=814879&view=diff
==============================================================================
--- tuscany/java/sca/modules/policy-xml/src/test/resources/org/apache/tuscany/sca/policy/xml/Calculator.composite (original)
+++ tuscany/java/sca/modules/policy-xml/src/test/resources/org/apache/tuscany/sca/policy/xml/Calculator.composite Mon Sep 14 21:49:36 2009
@@ -22,7 +22,7 @@
            xmlns:sample="http://sample"
            name="Calculator">
 
-    <component name="CalculatorServiceComponent" requires="sca:confidentiality">
+    <component name="CalculatorServiceComponent" requires="confidentiality">
 		<implementation.java class="calculator.CalculatorServiceImpl" xmlns:test="http://test" requiers="test:TestIntentOne"/>
         <reference name="addService" target="AddServiceComponent" />
         <reference name="subtractService" target="SubtractServiceComponent" />

Modified: tuscany/java/sca/modules/policy-xml/src/test/resources/org/apache/tuscany/sca/policy/xml/test_definitions.xml
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/policy-xml/src/test/resources/org/apache/tuscany/sca/policy/xml/test_definitions.xml?rev=814879&r1=814878&r2=814879&view=diff
==============================================================================
--- tuscany/java/sca/modules/policy-xml/src/test/resources/org/apache/tuscany/sca/policy/xml/test_definitions.xml (original)
+++ tuscany/java/sca/modules/policy-xml/src/test/resources/org/apache/tuscany/sca/policy/xml/test_definitions.xml Mon Sep 14 21:49:36 2009
@@ -38,6 +38,7 @@
     </intent>
 
     <policySet name="TestPolicySetOne" provides="test:TestIntentOne" appliesTo="sca:binding.ws"
+        attachTo = "//sca:component[@name='CalculatorServiceComponent']/sca:reference[@name='addService']"
         xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200903" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
         <wsp:PolicyAttachment>
             <!-- policy expression and policy subject for