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">


Reply via email to