summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/trunk/modules/binding-http/src
diff options
context:
space:
mode:
authorlresende <lresende@13f79535-47bb-0310-9956-ffa450edef68>2011-11-11 00:53:16 +0000
committerlresende <lresende@13f79535-47bb-0310-9956-ffa450edef68>2011-11-11 00:53:16 +0000
commitcd07713f408a9edc820fb70a7dead012ee1ff899 (patch)
treebaea598f776a47141d9afc49f453200ba1f947f2 /sca-java-2.x/trunk/modules/binding-http/src
parentc607b0cf671eda11eff333748e4ce3a75ce941d1 (diff)
Refactoring binding http model to bring back support for servlet based resources, and making rpc style it's own operationSelector
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1200669 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to '')
-rw-r--r--sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/operationselector/HTTPDefaultOperationSelector.java (renamed from sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/HTTPDefaultOperationSelector.java)12
-rw-r--r--sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/operationselector/HTTPRPCOperationSelector.java44
-rw-r--r--sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/HTTPDefaultWireFormat.java (renamed from sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/HTTPDefaultWireFormat.java)11
-rw-r--r--sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/HTTPJSONWireFormat.java44
-rw-r--r--sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/HTTPXMLWireFormat.java (renamed from sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/HTTPXMLWireFormat.java)8
-rw-r--r--sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/xml/HTTPBindingProcessor.java89
-rw-r--r--sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/xml/HTTPDefaultOperationSelectorProcessor.java70
-rw-r--r--sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/xml/HTTPDefaultWireFormatProcessor.java71
-rw-r--r--sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/xml/HTTPXMLWireFormatProcessor.java71
-rw-r--r--sca-java-2.x/trunk/modules/binding-http/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor10
-rw-r--r--sca-java-2.x/trunk/modules/binding-http/src/test/java/org/apache/tuscany/sca/binding/http/xml/HTTPBindingProcessorTestCase.java93
11 files changed, 283 insertions, 240 deletions
diff --git a/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/HTTPDefaultOperationSelector.java b/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/operationselector/HTTPDefaultOperationSelector.java
index a77774356f..2ce5e4a399 100644
--- a/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/HTTPDefaultOperationSelector.java
+++ b/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/operationselector/HTTPDefaultOperationSelector.java
@@ -16,18 +16,24 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.tuscany.sca.binding.http;
+package org.apache.tuscany.sca.binding.http.operationselector;
import javax.xml.namespace.QName;
import org.apache.tuscany.sca.assembly.OperationSelector;
import org.apache.tuscany.sca.assembly.xml.Constants;
+
+/**
+ * HTTP binding default operation selector.
+ *
+ * @version $Rev$ $Date$
+*/
public class HTTPDefaultOperationSelector implements OperationSelector {
- public static final QName OPERATION_SELECTOR_HTTP_DEFAULT_QNAME = new QName(Constants.SCA11_NS, "operationSelector.httpDefault");
+ public static final QName HTTP_OPERATION_SELECTOR_DEFAULT_QNAME = new QName(Constants.SCA11_NS, "operationSelector.default");
public QName getSchemaName() {
- return OPERATION_SELECTOR_HTTP_DEFAULT_QNAME;
+ return HTTP_OPERATION_SELECTOR_DEFAULT_QNAME;
}
public boolean isUnresolved() {
diff --git a/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/operationselector/HTTPRPCOperationSelector.java b/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/operationselector/HTTPRPCOperationSelector.java
new file mode 100644
index 0000000000..e5df37f5eb
--- /dev/null
+++ b/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/operationselector/HTTPRPCOperationSelector.java
@@ -0,0 +1,44 @@
+/*
+ * 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.binding.http.operationselector;
+
+import javax.xml.namespace.QName;
+
+import org.apache.tuscany.sca.assembly.OperationSelector;
+import org.apache.tuscany.sca.assembly.xml.Constants;
+
+/**
+ * HTTP binding RPC style operation selector.
+ *
+ * @version $Rev$ $Date$
+*/
+public class HTTPRPCOperationSelector implements OperationSelector {
+ public static final QName HTTP_OPERATION_SELECTOR_RPC_QNAME = new QName(Constants.SCA11_NS, "operationSelector.rpc");
+
+ public QName getSchemaName() {
+ return HTTP_OPERATION_SELECTOR_RPC_QNAME;
+ }
+
+ public boolean isUnresolved() {
+ return false;
+ }
+
+ public void setUnresolved(boolean unresolved) {
+ }
+}
diff --git a/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/HTTPDefaultWireFormat.java b/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/HTTPDefaultWireFormat.java
index e3ff891a32..ba2816a4cc 100644
--- a/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/HTTPDefaultWireFormat.java
+++ b/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/HTTPDefaultWireFormat.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.tuscany.sca.binding.http;
+package org.apache.tuscany.sca.binding.http.wireformat;
import javax.xml.namespace.QName;
@@ -24,16 +24,15 @@ import org.apache.tuscany.sca.assembly.WireFormat;
import org.apache.tuscany.sca.assembly.xml.Constants;
/**
- * Implementation for policies that could be injected as parameter
- * into the axis2config.
+ * Default wire format for http binding
*
- * @version $Rev: 813442 $ $Date: 2009-09-10 14:56:17 +0100 (Thu, 10 Sep 2009) $
+ * @version $Rev$ $Date$
*/
public class HTTPDefaultWireFormat implements WireFormat {
- public static final QName WIRE_FORMAT_HTTP_DEFAULT_QNAME = new QName(Constants.SCA11_TUSCANY_NS, "wireFormat.httpDefault");
+ public static final QName HTTP_WIRE_FORMAT_DEFAULT_QNAME = new QName(Constants.SCA11_TUSCANY_NS, "wireFormat.default");
public QName getSchemaName() {
- return WIRE_FORMAT_HTTP_DEFAULT_QNAME;
+ return HTTP_WIRE_FORMAT_DEFAULT_QNAME;
}
public boolean isUnresolved() {
diff --git a/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/HTTPJSONWireFormat.java b/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/HTTPJSONWireFormat.java
new file mode 100644
index 0000000000..739446785d
--- /dev/null
+++ b/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/HTTPJSONWireFormat.java
@@ -0,0 +1,44 @@
+/*
+ * 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.binding.http.wireformat;
+
+import javax.xml.namespace.QName;
+
+import org.apache.tuscany.sca.assembly.WireFormat;
+import org.apache.tuscany.sca.assembly.xml.Constants;
+
+/**
+ * JSON wire format for http binding
+ *
+ * @version $Rev$ $Date$
+ */
+public class HTTPJSONWireFormat implements WireFormat {
+ public static final QName HTTP_WIRE_FORMAT_JSON_QNAME = new QName(Constants.SCA11_TUSCANY_NS, "wireFormat.json");
+
+ public QName getSchemaName() {
+ return HTTP_WIRE_FORMAT_JSON_QNAME;
+ }
+
+ public boolean isUnresolved() {
+ return false;
+ }
+
+ public void setUnresolved(boolean unresolved) {
+ }
+}
diff --git a/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/HTTPXMLWireFormat.java b/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/HTTPXMLWireFormat.java
index a616c15ee6..58c5c9f84f 100644
--- a/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/HTTPXMLWireFormat.java
+++ b/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/HTTPXMLWireFormat.java
@@ -16,13 +16,19 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.tuscany.sca.binding.http;
+package org.apache.tuscany.sca.binding.http.wireformat;
import javax.xml.namespace.QName;
import org.apache.tuscany.sca.assembly.WireFormat;
import org.apache.tuscany.sca.assembly.xml.Constants;
+
+/**
+ * XML Wire format for HTTP binding
+ *
+ * @version $Rev$ $Date$
+*/
public class HTTPXMLWireFormat implements WireFormat {
public static final QName WIRE_FORMAT_HTTP_XML_QNAME = new QName(Constants.SCA11_TUSCANY_NS, "wireFormat.httpXml");
diff --git a/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/xml/HTTPBindingProcessor.java b/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/xml/HTTPBindingProcessor.java
index bdec50bde0..fc57ada6f2 100644
--- a/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/xml/HTTPBindingProcessor.java
+++ b/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/xml/HTTPBindingProcessor.java
@@ -27,6 +27,7 @@ import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
import javax.xml.stream.XMLStreamWriter;
+import org.apache.tuscany.sca.assembly.Base;
import org.apache.tuscany.sca.assembly.OperationSelector;
import org.apache.tuscany.sca.assembly.WireFormat;
import org.apache.tuscany.sca.binding.http.HTTPBinding;
@@ -42,22 +43,27 @@ import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
import org.apache.tuscany.sca.core.ExtensionPointRegistry;
import org.apache.tuscany.sca.core.FactoryExtensionPoint;
+
+/**
+ * HTTP binding artifact processor that handles the read/write of HTTP specific XML elements.
+ *
+ * @version $Rev$ $Date$
+*/
public class HTTPBindingProcessor extends BaseStAXArtifactProcessor implements StAXArtifactProcessor<HTTPBinding> {
+ private static final QName RESPONSE_QNAME = new QName(Base.SCA11_TUSCANY_NS, "response");
+
private static final String NAME = "name";
private static final String URI = "uri";
private HTTPBindingFactory httpBindingFactory;
private StAXArtifactProcessor<Object> extensionProcessor;
- private StAXAttributeProcessor<Object> extensionAttributeProcessor;
-
- public HTTPBindingProcessor(ExtensionPointRegistry extensionPoints,
- StAXArtifactProcessor extensionProcessor,
- StAXAttributeProcessor extensionAttributeProcessor) {
+ public HTTPBindingProcessor(ExtensionPointRegistry extensionPoints,
+ StAXArtifactProcessor<Object> extensionProcessor,
+ StAXAttributeProcessor<Object> extensionAttributeProcessor) {
FactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(FactoryExtensionPoint.class);
this.httpBindingFactory = modelFactories.getFactory(HTTPBindingFactory.class);
this.extensionProcessor = (StAXArtifactProcessor<Object>)extensionProcessor;
- this.extensionAttributeProcessor = extensionAttributeProcessor;
}
public QName getArtifactType() {
@@ -68,10 +74,21 @@ public class HTTPBindingProcessor extends BaseStAXArtifactProcessor implements S
return HTTPBinding.class;
}
- public HTTPBinding read(XMLStreamReader reader, ProcessorContext context) throws ContributionReadException, XMLStreamException {
+ public HTTPBinding read(XMLStreamReader reader, ProcessorContext context) throws ContributionReadException,XMLStreamException {
HTTPBinding httpBinding = httpBindingFactory.createHTTPBinding();
- while(reader.hasNext()) {
+ /**
+ * <tuscany:binding.http uri="http://localhost:8085/Customer">
+ * <tuscany:wireFormat.json />
+ * <tuscany:operationSelector.default />
+ * <tuscany:response>
+ * <tuscany:wireFormat.xml />
+ * </tuscany:response>
+ * </tuscany:binding.http>
+ *
+ */
+
+ while (reader.hasNext()) {
QName elementName = null;
int event = reader.getEventType();
switch (event) {
@@ -80,7 +97,7 @@ public class HTTPBindingProcessor extends BaseStAXArtifactProcessor implements S
if (HTTPBinding.TYPE.equals(elementName)) {
String name = getString(reader, NAME);
- if(name != null) {
+ if (name != null) {
httpBinding.setName(name);
}
@@ -88,13 +105,38 @@ public class HTTPBindingProcessor extends BaseStAXArtifactProcessor implements S
if (uri != null) {
httpBinding.setURI(uri);
}
+ } else if (RESPONSE_QNAME.equals(elementName)) {
+
+ // skip response
+ reader.next();
+ // and position to the next start_element event
+ while (reader.hasNext()) {
+ int sub_event = reader.getEventType();
+ switch (sub_event) {
+ case START_ELEMENT:
+ elementName = reader.getName();
+ break;
+ default:
+ reader.next();
+ }
+ break;
+ }
+
+ // dispatch to read wire format for the response
+ Object extension = extensionProcessor.read(reader, context);
+ if (extension != null) {
+ if (extension instanceof WireFormat) {
+ httpBinding.setResponseWireFormat((WireFormat)extension);
+ }
+ }
+ break;
} else {
// Read an extension element
Object extension = extensionProcessor.read(reader, context);
if (extension != null) {
if (extension instanceof WireFormat) {
httpBinding.setRequestWireFormat((WireFormat)extension);
- } else if(extension instanceof OperationSelector) {
+ } else if (extension instanceof OperationSelector) {
httpBinding.setOperationSelector((OperationSelector)extension);
}
}
@@ -114,8 +156,9 @@ public class HTTPBindingProcessor extends BaseStAXArtifactProcessor implements S
return httpBinding;
}
- public void write(HTTPBinding httpBinding, XMLStreamWriter writer, ProcessorContext context) throws ContributionWriteException, XMLStreamException {
- //writer.writeStartElement(Constants.SCA10_NS, BINDING_HTTP);
+ public void write(HTTPBinding httpBinding, XMLStreamWriter writer, ProcessorContext context)
+ throws ContributionWriteException, XMLStreamException {
+ // writer.writeStartElement(Constants.SCA10_NS, BINDING_HTTP);
writeStart(writer, HTTPBinding.TYPE.getNamespaceURI(), HTTPBinding.TYPE.getLocalPart());
@@ -129,13 +172,29 @@ public class HTTPBindingProcessor extends BaseStAXArtifactProcessor implements S
writer.writeAttribute(URI, httpBinding.getURI());
}
+ // Write operation selectors
+ if (httpBinding.getOperationSelector() != null) {
+ extensionProcessor.write(httpBinding.getOperationSelector(), writer, context);
+ }
+
+ // Write wire formats
+ if (httpBinding.getRequestWireFormat() != null) {
+ extensionProcessor.write(httpBinding.getRequestWireFormat(), writer, context);
+ }
+
+ if (httpBinding.getResponseWireFormat() != null && httpBinding.getRequestWireFormat() != httpBinding
+ .getResponseWireFormat()) {
+ writeStart(writer, RESPONSE_QNAME.getNamespaceURI(), RESPONSE_QNAME.getLocalPart());
+ extensionProcessor.write(httpBinding.getResponseWireFormat(), writer, context);
+ writeEnd(writer);
+ }
+
writeEnd(writer);
- //writer.writeEndElement();
+ // writer.writeEndElement();
}
-
public void resolve(HTTPBinding model, ModelResolver resolver, ProcessorContext context) throws ContributionResolveException {
- // Should not need to do anything here for now...
+ // Should not need to do anything here for now...
}
diff --git a/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/xml/HTTPDefaultOperationSelectorProcessor.java b/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/xml/HTTPDefaultOperationSelectorProcessor.java
deleted file mode 100644
index 1e15965cb9..0000000000
--- a/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/xml/HTTPDefaultOperationSelectorProcessor.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * 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.binding.http.xml;
-
-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.xml.Constants;
-import org.apache.tuscany.sca.binding.http.HTTPDefaultOperationSelector;
-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.ProcessorContext;
-import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
-import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
-import org.apache.tuscany.sca.core.FactoryExtensionPoint;
-
-public class HTTPDefaultOperationSelectorProcessor extends BaseStAXArtifactProcessor implements StAXArtifactProcessor<HTTPDefaultOperationSelector> {
-
- public HTTPDefaultOperationSelectorProcessor(FactoryExtensionPoint modelFactories) {
- }
-
- public QName getArtifactType() {
- return HTTPDefaultOperationSelector.OPERATION_SELECTOR_HTTP_DEFAULT_QNAME;
- }
-
- public HTTPDefaultOperationSelector read(XMLStreamReader reader, ProcessorContext context) throws ContributionReadException, XMLStreamException {
- HTTPDefaultOperationSelector wireFormat = new HTTPDefaultOperationSelector();
-
- return wireFormat;
- }
-
- public void write(HTTPDefaultOperationSelector wireFormat, XMLStreamWriter writer, ProcessorContext context)
- throws ContributionWriteException, XMLStreamException {
- writer.writeStartElement("tuscany",
- getArtifactType().getLocalPart(),
- getArtifactType().getNamespaceURI());
- writer.writeNamespace("tuscany", Constants.SCA11_TUSCANY_NS);
-
- writer.writeEndElement();
- }
-
- public Class<HTTPDefaultOperationSelector> getModelType() {
- return HTTPDefaultOperationSelector.class;
- }
-
- public void resolve(HTTPDefaultOperationSelector arg0, ModelResolver arg1, ProcessorContext context) throws ContributionResolveException {
-
- }
-
-}
diff --git a/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/xml/HTTPDefaultWireFormatProcessor.java b/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/xml/HTTPDefaultWireFormatProcessor.java
deleted file mode 100644
index b5b1827d21..0000000000
--- a/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/xml/HTTPDefaultWireFormatProcessor.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * 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.binding.http.xml;
-
-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.xml.Constants;
-import org.apache.tuscany.sca.binding.http.HTTPDefaultWireFormat;
-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.ProcessorContext;
-import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
-import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
-import org.apache.tuscany.sca.core.FactoryExtensionPoint;
-
-public class HTTPDefaultWireFormatProcessor extends BaseStAXArtifactProcessor implements StAXArtifactProcessor<HTTPDefaultWireFormat> {
-
- public HTTPDefaultWireFormatProcessor(FactoryExtensionPoint modelFactories) {
- }
-
- public QName getArtifactType() {
- return HTTPDefaultWireFormat.WIRE_FORMAT_HTTP_DEFAULT_QNAME;
- }
-
-
- public HTTPDefaultWireFormat read(XMLStreamReader reader, ProcessorContext context) throws ContributionReadException, XMLStreamException {
- HTTPDefaultWireFormat wireFormat = new HTTPDefaultWireFormat();
-
- return wireFormat;
- }
-
- public void write(HTTPDefaultWireFormat wireFormat, XMLStreamWriter writer, ProcessorContext context)
- throws ContributionWriteException, XMLStreamException {
- writer.writeStartElement("tuscany",
- getArtifactType().getLocalPart(),
- getArtifactType().getNamespaceURI());
- writer.writeNamespace("tuscany", Constants.SCA11_TUSCANY_NS);
-
- writer.writeEndElement();
- }
-
- public Class<HTTPDefaultWireFormat> getModelType() {
- return HTTPDefaultWireFormat.class;
- }
-
- public void resolve(HTTPDefaultWireFormat arg0, ModelResolver arg1, ProcessorContext context) throws ContributionResolveException {
-
- }
-
-}
diff --git a/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/xml/HTTPXMLWireFormatProcessor.java b/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/xml/HTTPXMLWireFormatProcessor.java
deleted file mode 100644
index 86292cf724..0000000000
--- a/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/xml/HTTPXMLWireFormatProcessor.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * 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.binding.http.xml;
-
-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.xml.Constants;
-import org.apache.tuscany.sca.binding.http.HTTPXMLWireFormat;
-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.ProcessorContext;
-import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
-import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
-import org.apache.tuscany.sca.core.FactoryExtensionPoint;
-
-public class HTTPXMLWireFormatProcessor extends BaseStAXArtifactProcessor implements StAXArtifactProcessor<HTTPXMLWireFormat> {
-
- public HTTPXMLWireFormatProcessor(FactoryExtensionPoint modelFactories) {
- }
-
- public QName getArtifactType() {
- return HTTPXMLWireFormat.WIRE_FORMAT_HTTP_XML_QNAME;
- }
-
-
- public HTTPXMLWireFormat read(XMLStreamReader reader, ProcessorContext context) throws ContributionReadException, XMLStreamException {
- HTTPXMLWireFormat wireFormat = new HTTPXMLWireFormat();
-
- return wireFormat;
- }
-
- public void write(HTTPXMLWireFormat wireFormat, XMLStreamWriter writer, ProcessorContext context)
- throws ContributionWriteException, XMLStreamException {
- writer.writeStartElement("tuscany",
- getArtifactType().getLocalPart(),
- getArtifactType().getNamespaceURI());
- writer.writeNamespace("tuscany", Constants.SCA11_TUSCANY_NS);
-
- writer.writeEndElement();
- }
-
- public Class<HTTPXMLWireFormat> getModelType() {
- return HTTPXMLWireFormat.class;
- }
-
- public void resolve(HTTPXMLWireFormat arg0, ModelResolver arg1, ProcessorContext context) throws ContributionResolveException {
-
- }
-
-}
diff --git a/sca-java-2.x/trunk/modules/binding-http/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor b/sca-java-2.x/trunk/modules/binding-http/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor
index 9a26611bee..d35ee610f0 100644
--- a/sca-java-2.x/trunk/modules/binding-http/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor
+++ b/sca-java-2.x/trunk/modules/binding-http/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor
@@ -17,6 +17,10 @@
# Implementation class for the artifact processor extension
org.apache.tuscany.sca.binding.http.xml.HTTPBindingProcessor;qname=http://tuscany.apache.org/xmlns/sca/1.1#binding.http,model=org.apache.tuscany.sca.binding.http.HTTPBinding,factory=org.apache.tuscany.sca.binding.http.HTTPBindingFactory
-org.apache.tuscany.sca.binding.http.xml.HTTPDefaultWireFormatProcessor;qname=http://tuscany.apache.org/xmlns/sca/1.1#wireFormat.httpDefault,model=org.apache.tuscany.sca.binding.http.HTTPDefaultWireFormat
-org.apache.tuscany.sca.binding.http.xml.HTTPXMLWireFormatProcessor;qname=http://tuscany.apache.org/xmlns/sca/1.1#wireFormat.httpXml,model=org.apache.tuscany.sca.binding.http.HTTPXMLWireFormat
-org.apache.tuscany.sca.binding.http.xml.HTTPDefaultOperationSelectorProcessor;qname=http://tuscany.apache.org/xmlns/sca/1.1#operationSelector.httpDefault,model=org.apache.tuscany.sca.binding.http.HTTPDefaultOperationSelector
+
+org.apache.tuscany.sca.assembly.xml.DefaultBeanModelProcessor;qname=http://tuscany.apache.org/xmlns/sca/1.1#wireFormat.default,model=org.apache.tuscany.sca.binding.http.wireformat.HTTPDefaultWireFormat
+org.apache.tuscany.sca.assembly.xml.DefaultBeanModelProcessor;qname=http://tuscany.apache.org/xmlns/sca/1.1#wireFormat.json,model=org.apache.tuscany.sca.binding.http.wireformat.HTTPJSONWireFormat
+org.apache.tuscany.sca.assembly.xml.DefaultBeanModelProcessor;qname=http://tuscany.apache.org/xmlns/sca/1.1#wireFormat.xml,model=org.apache.tuscany.sca.binding.http.wireformat.HTTPXMLWireFormat
+
+org.apache.tuscany.sca.assembly.xml.DefaultBeanModelProcessor;qname=http://tuscany.apache.org/xmlns/sca/1.1#operationSelector.default,model=org.apache.tuscany.sca.binding.http.operationselector.HTTPDefaultOperationSelector
+org.apache.tuscany.sca.assembly.xml.DefaultBeanModelProcessor;qname=http://tuscany.apache.org/xmlns/sca/1.1#operationSelector.rpc,model=org.apache.tuscany.sca.binding.http.operationselector.HTTPRPCOperationSelector
diff --git a/sca-java-2.x/trunk/modules/binding-http/src/test/java/org/apache/tuscany/sca/binding/http/xml/HTTPBindingProcessorTestCase.java b/sca-java-2.x/trunk/modules/binding-http/src/test/java/org/apache/tuscany/sca/binding/http/xml/HTTPBindingProcessorTestCase.java
new file mode 100644
index 0000000000..055bdb8588
--- /dev/null
+++ b/sca-java-2.x/trunk/modules/binding-http/src/test/java/org/apache/tuscany/sca/binding/http/xml/HTTPBindingProcessorTestCase.java
@@ -0,0 +1,93 @@
+/*
+ * 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.binding.http.xml;
+
+import java.io.StringReader;
+
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamReader;
+
+import org.apache.tuscany.sca.assembly.Composite;
+import org.apache.tuscany.sca.binding.http.HTTPBinding;
+import org.apache.tuscany.sca.contribution.processor.DefaultStAXArtifactProcessorExtensionPoint;
+import org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor;
+import org.apache.tuscany.sca.contribution.processor.ProcessorContext;
+import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
+import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint;
+import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class HTTPBindingProcessorTestCase {
+
+ private static final String COMPOSITE =
+ "<?xml version=\"1.0\" encoding=\"ASCII\"?>"
+ + "<composite xmlns=\"http://docs.oasis-open.org/ns/opencsa/sca/200912\" xmlns:tuscany=\"http://tuscany.apache.org/xmlns/sca/1.1\" targetNamespace=\"http://binding-http\" name=\"binding-http\">"
+ + " <component name=\"CustomerService\">"
+ + " <implementation.java class=\"services.customer.CustomerServiceImpl\"/>"
+ + " <service name=\"CustomerService\">"
+ + " <tuscany:binding.http uri=\"http://localhost:8085/Customer\">"
+ + " <tuscany:wireFormat.json />"
+ + " <tuscany:operationSelector.default />"
+ + " <tuscany:response>"
+ + " <tuscany:wireFormat.xml />"
+ + " </tuscany:response>"
+ + " </tuscany:binding.http>"
+ + " </service>"
+ + " </component>"
+ + "</composite>";
+
+ private static XMLInputFactory inputFactory;
+ private static StAXArtifactProcessor<Object> staxProcessor;
+ private static ProcessorContext context;
+
+ @BeforeClass
+ public static void setUp() throws Exception {
+ DefaultExtensionPointRegistry extensionPoints = new DefaultExtensionPointRegistry();
+ context = new ProcessorContext(extensionPoints);
+ inputFactory = XMLInputFactory.newInstance();
+
+ StAXArtifactProcessorExtensionPoint staxProcessors = new DefaultStAXArtifactProcessorExtensionPoint(extensionPoints);
+ staxProcessor = new ExtensibleStAXArtifactProcessor(staxProcessors, inputFactory, null);
+ }
+
+ /**
+ * Test parsing valid composite definition. Valid composite populated with correct values expected.
+ * @throws Exception
+ */
+ @Test
+ public void testLoadValidComposite() throws Exception {
+ XMLStreamReader reader = inputFactory.createXMLStreamReader(new StringReader(COMPOSITE));
+
+ Composite composite = (Composite)staxProcessor.read(reader, context);
+ HTTPBinding binding = (HTTPBinding) composite.getComponents().get(0).getServices().get(0).getBindings().get(0);
+
+ Assert.assertNotNull(binding);
+ Assert.assertNotNull(binding.getOperationSelector());
+ Assert.assertNotNull(binding.getRequestWireFormat());
+ Assert.assertNotNull(binding.getResponseWireFormat());
+
+ }
+}