You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by sl...@apache.org on 2010/01/20 17:00:10 UTC

svn commit: r901251 - in /tuscany/sca-java-2.x/trunk/modules: interface-java/META-INF/ interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/xml/ interface-java/src/test/resources/org/apache/tuscany/sca/interfacedef/java/xml/ interface-...

Author: slaws
Date: Wed Jan 20 16:00:09 2010
New Revision: 901251

URL: http://svn.apache.org/viewvc?rev=901251&view=rev
Log:
TUSCANY-3426 read/write/resolve requires and policySets attributes that appear in interface.java and interface.wsdl elements.

Modified:
    tuscany/sca-java-2.x/trunk/modules/interface-java/META-INF/MANIFEST.MF
    tuscany/sca-java-2.x/trunk/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/xml/JavaInterfaceProcessor.java
    tuscany/sca-java-2.x/trunk/modules/interface-java/src/test/resources/org/apache/tuscany/sca/interfacedef/java/xml/Calculator.composite
    tuscany/sca-java-2.x/trunk/modules/interface-wsdl/META-INF/MANIFEST.MF
    tuscany/sca-java-2.x/trunk/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLInterfaceProcessor.java
    tuscany/sca-java-2.x/trunk/modules/interface-wsdl/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/Calculator.composite

Modified: tuscany/sca-java-2.x/trunk/modules/interface-java/META-INF/MANIFEST.MF
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/interface-java/META-INF/MANIFEST.MF?rev=901251&r1=901250&r2=901251&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/interface-java/META-INF/MANIFEST.MF (original)
+++ tuscany/sca-java-2.x/trunk/modules/interface-java/META-INF/MANIFEST.MF Wed Jan 20 16:00:09 2010
@@ -22,6 +22,7 @@
 Import-Package: javax.xml.namespace,
  javax.xml.stream,
  org.apache.tuscany.sca.assembly;version="2.0.0",
+ org.apache.tuscany.sca.assembly.xml;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",

Modified: tuscany/sca-java-2.x/trunk/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/xml/JavaInterfaceProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/xml/JavaInterfaceProcessor.java?rev=901251&r1=901250&r2=901251&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/xml/JavaInterfaceProcessor.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/xml/JavaInterfaceProcessor.java Wed Jan 20 16:00:09 2010
@@ -32,6 +32,7 @@
 import javax.xml.stream.XMLStreamReader;
 import javax.xml.stream.XMLStreamWriter;
 
+import org.apache.tuscany.sca.assembly.xml.PolicySubjectProcessor;
 import org.apache.tuscany.sca.contribution.processor.ContributionReadException;
 import org.apache.tuscany.sca.contribution.processor.ContributionResolveException;
 import org.apache.tuscany.sca.contribution.processor.ContributionWriteException;
@@ -39,6 +40,7 @@
 import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
 import org.apache.tuscany.sca.contribution.resolver.ClassReference;
 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.interfacedef.InvalidInterfaceException;
 import org.apache.tuscany.sca.interfacedef.java.JavaInterface;
@@ -47,6 +49,7 @@
 import org.apache.tuscany.sca.monitor.Monitor;
 import org.apache.tuscany.sca.monitor.Problem;
 import org.apache.tuscany.sca.monitor.Problem.Severity;
+import org.apache.tuscany.sca.policy.PolicyFactory;
 import org.oasisopen.sca.annotation.AllowsPassByReference;
 import org.oasisopen.sca.annotation.Callback;
 import org.oasisopen.sca.annotation.ComponentName;
@@ -68,10 +71,17 @@
  */
 public class JavaInterfaceProcessor implements StAXArtifactProcessor<JavaInterfaceContract>, JavaConstants {
     private static final String SCA11_NS = "http://docs.oasis-open.org/ns/opencsa/sca/200912";
-    private JavaInterfaceFactory javaFactory;
     
-
-    public JavaInterfaceProcessor(FactoryExtensionPoint modelFactories) {
+    private JavaInterfaceFactory javaFactory;
+    private ExtensionPointRegistry extensionPoints;
+    private PolicyFactory policyFactory;
+    private PolicySubjectProcessor policyProcessor;
+
+    public JavaInterfaceProcessor(ExtensionPointRegistry extensionPoints) {
+        this.extensionPoints = extensionPoints;
+        FactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(FactoryExtensionPoint.class);
+        this.policyFactory = modelFactories.getFactory(PolicyFactory.class);
+        this.policyProcessor = new PolicySubjectProcessor(policyFactory);
         this.javaFactory = modelFactories.getFactory(JavaInterfaceFactory.class);
     }
     
@@ -142,8 +152,10 @@
         if (remotable != null) {
             javaInterfaceContract.getInterface().setRemotable(Boolean.parseBoolean(remotable));
         }
-
         
+        // Read intents and policy sets
+        policyProcessor.readPolicies(javaInterfaceContract.getInterface(), reader);
+
         // Skip to end element
         while (reader.hasNext()) {
             if (reader.next() == END_ELEMENT && INTERFACE_JAVA_QNAME.equals(reader.getName())) {
@@ -168,6 +180,8 @@
             writer.writeAttribute(CALLBACK_INTERFACE, javaCallbackInterface.getName());
         }
         
+        policyProcessor.writePolicyAttributes(javaInterface, writer);
+        
         writer.writeEndElement();
     }
     

Modified: tuscany/sca-java-2.x/trunk/modules/interface-java/src/test/resources/org/apache/tuscany/sca/interfacedef/java/xml/Calculator.composite
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/interface-java/src/test/resources/org/apache/tuscany/sca/interfacedef/java/xml/Calculator.composite?rev=901251&r1=901250&r2=901251&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/interface-java/src/test/resources/org/apache/tuscany/sca/interfacedef/java/xml/Calculator.composite (original)
+++ tuscany/sca-java-2.x/trunk/modules/interface-java/src/test/resources/org/apache/tuscany/sca/interfacedef/java/xml/Calculator.composite Wed Jan 20 16:00:09 2010
@@ -23,7 +23,7 @@
 	name="Calculator">
 
     <service name="CalculatorService" promote="CalculatorServiceComponent">
-        <interface.java interface="calculator.CalculatorService"/>
+        <interface.java interface="calculator.CalculatorService" requires="calc:intent1" policySets="calc:policySet1" />
     </service>
 
     <component name="CalculatorServiceComponent">

Modified: tuscany/sca-java-2.x/trunk/modules/interface-wsdl/META-INF/MANIFEST.MF
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/interface-wsdl/META-INF/MANIFEST.MF?rev=901251&r1=901250&r2=901251&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/interface-wsdl/META-INF/MANIFEST.MF (original)
+++ tuscany/sca-java-2.x/trunk/modules/interface-wsdl/META-INF/MANIFEST.MF Wed Jan 20 16:00:09 2010
@@ -21,6 +21,7 @@
  javax.xml.namespace,
  javax.xml.stream,
  org.apache.tuscany.sca.assembly;version="2.0.0",
+ org.apache.tuscany.sca.assembly.xml;version="2.0.0",
  org.apache.tuscany.sca.common.java.io;version="2.0.0",
  org.apache.tuscany.sca.common.xml;version="2.0.0",
  org.apache.tuscany.sca.common.xml.stax;version="2.0.0",

Modified: tuscany/sca-java-2.x/trunk/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLInterfaceProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLInterfaceProcessor.java?rev=901251&r1=901250&r2=901251&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLInterfaceProcessor.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLInterfaceProcessor.java Wed Jan 20 16:00:09 2010
@@ -27,6 +27,7 @@
 import javax.xml.stream.XMLStreamReader;
 import javax.xml.stream.XMLStreamWriter;
 
+import org.apache.tuscany.sca.assembly.xml.PolicySubjectProcessor;
 import org.apache.tuscany.sca.contribution.processor.ContributionReadException;
 import org.apache.tuscany.sca.contribution.processor.ContributionResolveException;
 import org.apache.tuscany.sca.contribution.processor.ContributionWriteException;
@@ -38,6 +39,7 @@
 import org.apache.tuscany.sca.core.UtilityExtensionPoint;
 import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper;
 import org.apache.tuscany.sca.interfacedef.InvalidInterfaceException;
+import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory;
 import org.apache.tuscany.sca.interfacedef.wsdl.WSDLDefinition;
 import org.apache.tuscany.sca.interfacedef.wsdl.WSDLFactory;
 import org.apache.tuscany.sca.interfacedef.wsdl.WSDLInterface;
@@ -46,6 +48,7 @@
 import org.apache.tuscany.sca.monitor.Monitor;
 import org.apache.tuscany.sca.monitor.Problem;
 import org.apache.tuscany.sca.monitor.Problem.Severity;
+import org.apache.tuscany.sca.policy.PolicyFactory;
 
 /**
  * Handles a <interface.wsdl ... /> element in a SCDL file
@@ -54,8 +57,9 @@
 public class WSDLInterfaceProcessor implements StAXArtifactProcessor<WSDLInterfaceContract>, WSDLConstants {
 
     private WSDLFactory wsdlFactory;
-    
     private InterfaceContractMapper interfaceContractMapper;
+    private PolicyFactory policyFactory;
+    private PolicySubjectProcessor policyProcessor;
 
     public WSDLInterfaceProcessor(ExtensionPointRegistry registry) {
         FactoryExtensionPoint modelFactories = registry.getExtensionPoint(FactoryExtensionPoint.class);
@@ -63,6 +67,9 @@
             registry.getExtensionPoint(UtilityExtensionPoint.class).getUtility(InterfaceContractMapper.class);
         
         this.wsdlFactory = modelFactories.getFactory(WSDLFactory.class);
+        
+        this.policyFactory = modelFactories.getFactory(PolicyFactory.class);
+        this.policyProcessor = new PolicySubjectProcessor(policyFactory);      
     }
     /**
      * Report a warning.
@@ -195,6 +202,9 @@
                           ((WSDLInterface)wsdlInterfaceContract.getInterface()).getName().toString(),
                           remotable);
         }
+        
+        // Read intents and policy sets
+        policyProcessor.readPolicies(wsdlInterfaceContract.getInterface(), reader);
             
         // Skip to end element
         while (reader.hasNext()) {
@@ -229,6 +239,8 @@
             writer.writeAttribute(WSDLI_NS, WSDL_LOCATION, wsdlInterfaceContract.getLocation());
         }
         
+        policyProcessor.writePolicyAttributes(wsdlInterface, writer);
+        
         writer.writeEndElement();
     }
     
@@ -259,9 +271,12 @@
                         // WSDLInterface to the resolver
                         try {
                             wsdlDefinition.setDefinition(portType.getDefinition());
-                            wsdlInterface = wsdlFactory.createWSDLInterface(portType.getElement(), wsdlDefinition, resolver, monitor);
-                            wsdlInterface.setWsdlDefinition(wsdlDefinition);
-                            resolver.addModel(wsdlInterface, context);
+                            WSDLInterface newWSDLInterface = wsdlFactory.createWSDLInterface(portType.getElement(), wsdlDefinition, resolver, monitor);
+                            newWSDLInterface.setWsdlDefinition(wsdlDefinition);
+                            newWSDLInterface.getRequiredIntents().addAll(wsdlInterface.getRequiredIntents());
+                            newWSDLInterface.getPolicySets().addAll(wsdlInterface.getPolicySets());
+                            resolver.addModel(newWSDLInterface, context);
+                            wsdlInterface = newWSDLInterface;
                         } catch (InvalidInterfaceException e) {
                         	ContributionResolveException ce = new ContributionResolveException("Invalid interface when resolving " + 
                         			                                                            portType.toString(), e);

Modified: tuscany/sca-java-2.x/trunk/modules/interface-wsdl/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/Calculator.composite
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/interface-wsdl/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/Calculator.composite?rev=901251&r1=901250&r2=901251&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/interface-wsdl/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/Calculator.composite (original)
+++ tuscany/sca-java-2.x/trunk/modules/interface-wsdl/src/test/resources/org/apache/tuscany/sca/interfacedef/wsdl/xml/Calculator.composite Wed Jan 20 16:00:09 2010
@@ -25,7 +25,7 @@
 
     <service name="CalculatorService" promote="CalculatorServiceComponent">
         <interface.wsdl interface="http://sample/calculator#wsdl.interface(Calculator)"
-        	wsdli:wsdlLocation="http://tempuri.org"/>
+        	wsdli:wsdlLocation="http://tempuri.org" requires="calc:intent1" policySets="calc:policySet1"/>
     </service>
 
     <component name="CalculatorServiceComponent">