summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/trunk
diff options
context:
space:
mode:
Diffstat (limited to 'sca-java-2.x/trunk')
-rw-r--r--sca-java-2.x/trunk/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java5
-rw-r--r--sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Callback.java14
-rw-r--r--sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/CallbackImpl.java12
-rw-r--r--sca-java-2.x/trunk/modules/binding-ws/src/main/java/org/apache/tuscany/sca/binding/ws/xml/WebServiceBindingProcessor.java7
-rw-r--r--sca-java-2.x/trunk/modules/binding-ws/src/main/resources/binding-wsxml-validation-messages.properties3
5 files changed, 40 insertions, 1 deletions
diff --git a/sca-java-2.x/trunk/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java b/sca-java-2.x/trunk/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java
index 6f5b84dd56..3cf109c8cf 100644
--- a/sca-java-2.x/trunk/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java
+++ b/sca-java-2.x/trunk/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java
@@ -467,11 +467,16 @@ public class CompositeProcessor extends BaseAssemblyProcessor implements StAXArt
// Read a <callback>
callback = assemblyFactory.createCallback();
contract.setCallback(callback);
+ callback.setParentContract(contract);
//handle extension attributes
this.readExtendedAttributes(reader, name, callback, extensionAttributeProcessor, context);
policyProcessor.readPolicies(callback, reader);
+
+ // set the parent model so that binding processing can
+ // detect it they're being read as part of a callback
+ context.setParentModel(callback);
} else if (IMPLEMENTATION_COMPOSITE_QNAME.equals(name)) {
diff --git a/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Callback.java b/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Callback.java
index d34ec7d01f..a220f14159 100644
--- a/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Callback.java
+++ b/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Callback.java
@@ -35,5 +35,19 @@ public interface Callback extends Base, Extensible, PolicySubject {
* @return the bindings supported for callbacks
*/
List<Binding> getBindings();
+
+ /**
+ * Returns the contract that holds this callback
+ *
+ * @return the contract that holds this callback
+ */
+ Contract getParentContract();
+
+ /**
+ * Sets the contract that holds this callback
+ *
+ * @param contract the contract that holds this callback
+ */
+ void setParentContract(Contract contract);
}
diff --git a/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/CallbackImpl.java b/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/CallbackImpl.java
index dcd6c7b08a..35f512bcbf 100644
--- a/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/CallbackImpl.java
+++ b/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/CallbackImpl.java
@@ -24,6 +24,7 @@ import java.util.List;
import org.apache.tuscany.sca.assembly.Binding;
import org.apache.tuscany.sca.assembly.Callback;
+import org.apache.tuscany.sca.assembly.Contract;
import org.apache.tuscany.sca.policy.ExtensionType;
import org.apache.tuscany.sca.policy.Intent;
import org.apache.tuscany.sca.policy.PolicySet;
@@ -37,6 +38,7 @@ public class CallbackImpl extends ExtensibleImpl implements Callback {
private List<Binding> bindings = new ArrayList<Binding>();
private List<Intent> requiredIntents = new ArrayList<Intent>();
private List<PolicySet> policySets = new ArrayList<PolicySet>();
+ private Contract parentContract;
public List<PolicySet> getPolicySets() {
return policySets;
@@ -63,5 +65,15 @@ public class CallbackImpl extends ExtensibleImpl implements Callback {
public void setRequiredIntents(List<Intent> intents) {
this.requiredIntents = intents;
}
+
+ @Override
+ public Contract getParentContract() {
+ return parentContract;
+ }
+
+ @Override
+ public void setParentContract(Contract contract) {
+ this.parentContract = contract;
+ }
}
diff --git a/sca-java-2.x/trunk/modules/binding-ws/src/main/java/org/apache/tuscany/sca/binding/ws/xml/WebServiceBindingProcessor.java b/sca-java-2.x/trunk/modules/binding-ws/src/main/java/org/apache/tuscany/sca/binding/ws/xml/WebServiceBindingProcessor.java
index 170a5259f3..67bd206115 100644
--- a/sca-java-2.x/trunk/modules/binding-ws/src/main/java/org/apache/tuscany/sca/binding/ws/xml/WebServiceBindingProcessor.java
+++ b/sca-java-2.x/trunk/modules/binding-ws/src/main/java/org/apache/tuscany/sca/binding/ws/xml/WebServiceBindingProcessor.java
@@ -37,6 +37,7 @@ import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
import javax.xml.stream.XMLStreamWriter;
+import org.apache.tuscany.sca.assembly.Callback;
import org.apache.tuscany.sca.assembly.Reference;
import org.apache.tuscany.sca.assembly.xml.PolicySubjectProcessor;
import org.apache.tuscany.sca.binding.ws.WebServiceBinding;
@@ -149,6 +150,12 @@ public class WebServiceBindingProcessor extends BaseStAXArtifactProcessor implem
error(monitor, "InvalidURISyntax", reader, ex.getMessage());
}
}
+
+ // BWS20020
+ if ((context.getParentModel() instanceof Callback) &&
+ (((Callback)context.getParentModel()).getParentContract() instanceof org.apache.tuscany.sca.assembly.Service)){
+ error(monitor, "URIFoundForServiceCallback", reader, uri);
+ }
}
// Read a qname in the form:
diff --git a/sca-java-2.x/trunk/modules/binding-ws/src/main/resources/binding-wsxml-validation-messages.properties b/sca-java-2.x/trunk/modules/binding-ws/src/main/resources/binding-wsxml-validation-messages.properties
index 1e06d882e3..a355d1b5ae 100644
--- a/sca-java-2.x/trunk/modules/binding-ws/src/main/resources/binding-wsxml-validation-messages.properties
+++ b/sca-java-2.x/trunk/modules/binding-ws/src/main/resources/binding-wsxml-validation-messages.properties
@@ -24,10 +24,11 @@ InvalidInterfaceException = Exception creating interface from WSDL for binding:
WsdlBindingDoesNotMatch = The #wsdl.binding({0}) not found in the available WSDL Definitions
WsdlServiceDoesNotMatch = [BWS20005] The #wsdl.service({0}) not found in the available WSDL Definitions
WsdlPortTypeDoesNotMatch = The #wsdl.port({0}) does not match with the WSDL Definitions
-WsdliLocationMissingWsdlElement = binding.ws has a @wsdli:wsdlLocation attribute but no @wsdlElement attribute
+WsdliLocationMissingWsdlElement = [BWS20017] binding.ws has a @wsdli:wsdlLocation attribute but no @wsdlElement attribute
URINotAbsolute = [BWS20001] The URI value for binding.ws on an SCA reference must be absolute. Non-absolute value found {0}
InvalidURISyntax = The URI value {0} found on binding.ws has invalid syntax
WSDLServiceOnService = [BWS20003] The wsdlElement attribute of a binding.ws on an SCA service must not specify the wsdl.service form of URI. The following URI was found {0}
+URIFoundForServiceCallback = [BWS20020] For the callback element of an SCA service, the binding must not specify an endpoint address URI or a WS-Addressing wsa:EndpointReference