diff options
Diffstat (limited to '')
3 files changed, 94 insertions, 16 deletions
diff --git a/branches/sca-java-1.x/modules/binding-http-oasis/src/main/java/org/apache/tuscany/sca/binding/http/HTTPBinding.java b/branches/sca-java-1.x/modules/binding-http-oasis/src/main/java/org/apache/tuscany/sca/binding/http/HTTPBinding.java index d4ad8d2602..7005385afb 100644 --- a/branches/sca-java-1.x/modules/binding-http-oasis/src/main/java/org/apache/tuscany/sca/binding/http/HTTPBinding.java +++ b/branches/sca-java-1.x/modules/binding-http-oasis/src/main/java/org/apache/tuscany/sca/binding/http/HTTPBinding.java @@ -19,7 +19,7 @@ package org.apache.tuscany.sca.binding.http; -import org.apache.tuscany.sca.assembly.Binding; +import org.apache.tuscany.sca.assembly.BindingRRB; /** @@ -27,6 +27,6 @@ import org.apache.tuscany.sca.assembly.Binding; * * @version $Rev$ $Date$ */ -public interface HTTPBinding extends Binding { +public interface HTTPBinding extends BindingRRB { } diff --git a/branches/sca-java-1.x/modules/binding-http-oasis/src/main/java/org/apache/tuscany/sca/binding/http/impl/HTTPBindingImpl.java b/branches/sca-java-1.x/modules/binding-http-oasis/src/main/java/org/apache/tuscany/sca/binding/http/impl/HTTPBindingImpl.java index 6d4bf92adc..242f3c6d48 100644 --- a/branches/sca-java-1.x/modules/binding-http-oasis/src/main/java/org/apache/tuscany/sca/binding/http/impl/HTTPBindingImpl.java +++ b/branches/sca-java-1.x/modules/binding-http-oasis/src/main/java/org/apache/tuscany/sca/binding/http/impl/HTTPBindingImpl.java @@ -22,6 +22,8 @@ package org.apache.tuscany.sca.binding.http.impl; import java.util.ArrayList; import java.util.List; +import org.apache.tuscany.sca.assembly.OperationSelector; +import org.apache.tuscany.sca.assembly.WireFormat; import org.apache.tuscany.sca.binding.http.HTTPBinding; import org.apache.tuscany.sca.policy.Intent; import org.apache.tuscany.sca.policy.IntentAttachPointType; @@ -39,12 +41,14 @@ class HTTPBindingImpl implements HTTPBinding, PolicySetAttachPoint { private String name; private String uri; + private WireFormat wireFormat; + private OperationSelector operationSelector; + private List<Intent> requiredIntents = new ArrayList<Intent>(); private List<PolicySet> policySets = new ArrayList<PolicySet>(); private IntentAttachPointType intentAttachPointType; private List<PolicySet> applicablePolicySets = new ArrayList<PolicySet>(); - public String getName() { return name; } @@ -60,8 +64,7 @@ class HTTPBindingImpl implements HTTPBinding, PolicySetAttachPoint { public void setURI(String uri) { this.uri = uri; } - - + public boolean isUnresolved() { return false; } @@ -70,6 +73,32 @@ class HTTPBindingImpl implements HTTPBinding, PolicySetAttachPoint { // The sample binding is always resolved } + // Wireformat and Operation selection + + public WireFormat getRequestWireFormat() { + return wireFormat; + } + + public void setRequestWireFormat(WireFormat wireFormat) { + this.wireFormat = wireFormat; + } + + public WireFormat getResponseWireFormat() { + return wireFormat; + } + + public void setResponseWireFormat(WireFormat wireFormat) { + this.wireFormat = wireFormat; + } + + public OperationSelector getOperationSelector() { + return operationSelector; + } + + public void setOperationSelector(OperationSelector operationSelector) { + this.operationSelector = operationSelector; + } + //Policy related getters/setters public List<PolicySet> getPolicySets() { diff --git a/branches/sca-java-1.x/modules/binding-http-oasis/src/main/java/org/apache/tuscany/sca/binding/http/xml/HTTPBindingProcessor.java b/branches/sca-java-1.x/modules/binding-http-oasis/src/main/java/org/apache/tuscany/sca/binding/http/xml/HTTPBindingProcessor.java index f5b32a8ea0..b7b0df38db 100644 --- a/branches/sca-java-1.x/modules/binding-http-oasis/src/main/java/org/apache/tuscany/sca/binding/http/xml/HTTPBindingProcessor.java +++ b/branches/sca-java-1.x/modules/binding-http-oasis/src/main/java/org/apache/tuscany/sca/binding/http/xml/HTTPBindingProcessor.java @@ -19,11 +19,16 @@ package org.apache.tuscany.sca.binding.http.xml; +import static javax.xml.stream.XMLStreamConstants.END_ELEMENT; +import static javax.xml.stream.XMLStreamConstants.START_ELEMENT; + import javax.xml.namespace.QName; import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamReader; import javax.xml.stream.XMLStreamWriter; +import org.apache.tuscany.sca.assembly.OperationSelector; +import org.apache.tuscany.sca.assembly.WireFormat; import org.apache.tuscany.sca.assembly.builder.impl.ProblemImpl; import org.apache.tuscany.sca.assembly.xml.Constants; import org.apache.tuscany.sca.binding.http.HTTPBinding; @@ -31,10 +36,12 @@ import org.apache.tuscany.sca.binding.http.HTTPBindingFactory; import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.BaseStAXArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; +import org.apache.tuscany.sca.contribution.processor.StAXAttributeProcessor; import org.apache.tuscany.sca.contribution.resolver.ModelResolver; import org.apache.tuscany.sca.contribution.service.ContributionReadException; import org.apache.tuscany.sca.contribution.service.ContributionResolveException; import org.apache.tuscany.sca.contribution.service.ContributionWriteException; +import org.apache.tuscany.sca.core.ExtensionPointRegistry; import org.apache.tuscany.sca.monitor.Monitor; import org.apache.tuscany.sca.monitor.Problem; import org.apache.tuscany.sca.monitor.Problem.Severity; @@ -47,10 +54,18 @@ public class HTTPBindingProcessor extends BaseStAXArtifactProcessor implements S private static final String URI = "uri"; private HTTPBindingFactory httpBindingFactory; + private StAXArtifactProcessor<Object> extensionProcessor; + private StAXAttributeProcessor<Object> extensionAttributeProcessor; private Monitor monitor; - public HTTPBindingProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) { + public HTTPBindingProcessor(ExtensionPointRegistry extensionPoints, + StAXArtifactProcessor extensionProcessor, + StAXAttributeProcessor extensionAttributeProcessor, + Monitor monitor) { + ModelFactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class); this.httpBindingFactory = modelFactories.getFactory(HTTPBindingFactory.class); + this.extensionProcessor = (StAXArtifactProcessor<Object>)extensionProcessor; + this.extensionAttributeProcessor = extensionAttributeProcessor; this.monitor = monitor; } @@ -64,22 +79,55 @@ public class HTTPBindingProcessor extends BaseStAXArtifactProcessor implements S public HTTPBinding read(XMLStreamReader reader) throws ContributionReadException, XMLStreamException { HTTPBinding httpBinding = httpBindingFactory.createHTTPBinding(); - - String name = getString(reader, NAME); - if(name != null) { - httpBinding.setName(name); - } - String uri = getString(reader, URI); - if (uri != null) { - httpBinding.setURI(uri); + while(reader.hasNext()) { + QName elementName = null; + int event = reader.getEventType(); + switch (event) { + case START_ELEMENT: + elementName = reader.getName(); + + if (BINDING_HTTP_QNAME.equals(elementName)) { + String name = getString(reader, NAME); + if(name != null) { + httpBinding.setName(name); + } + + String uri = getString(reader, URI); + if (uri != null) { + httpBinding.setURI(uri); + } + } else { + // Read an extension element + Object extension = extensionProcessor.read(reader); + if (extension != null) { + if (extension instanceof WireFormat) { + httpBinding.setRequestWireFormat((WireFormat)extension); + } else if(extension instanceof OperationSelector) { + httpBinding.setOperationSelector((OperationSelector)extension); + } + } + } + + } + + if (event == END_ELEMENT && BINDING_HTTP_QNAME.equals(reader.getName())) { + break; + } + + // Read the next element + if (reader.hasNext()) { + reader.next(); + } } return httpBinding; } public void write(HTTPBinding httpBinding, XMLStreamWriter writer) throws ContributionWriteException, XMLStreamException { - writer.writeStartElement(Constants.SCA10_NS, BINDING_HTTP); + //writer.writeStartElement(Constants.SCA10_NS, BINDING_HTTP); + + writeStart(writer, BINDING_HTTP_QNAME.getNamespaceURI(), BINDING_HTTP_QNAME.getLocalPart()); // Write binding name if (httpBinding.getName() != null) { @@ -91,7 +139,8 @@ public class HTTPBindingProcessor extends BaseStAXArtifactProcessor implements S writer.writeAttribute(URI, httpBinding.getURI()); } - writer.writeEndElement(); + writeEnd(writer); + //writer.writeEndElement(); } |