You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by lr...@apache.org on 2009/04/23 05:57:23 UTC

svn commit: r767777 - in /tuscany/branches/sca-java-1.x/modules: binding-http-oasis-runtime/src/test/resources/ binding-http-oasis/src/main/java/org/apache/tuscany/sca/binding/http/ binding-http-oasis/src/main/java/org/apache/tuscany/sca/binding/http/i...

Author: lresende
Date: Thu Apr 23 03:57:22 2009
New Revision: 767777

URL: http://svn.apache.org/viewvc?rev=767777&view=rev
Log:
TUSCANY-2968 - Adding new binding processor and making necessary adjustment to move to spec namespace

Added:
    tuscany/branches/sca-java-1.x/modules/binding-http-oasis/src/main/java/org/apache/tuscany/sca/binding/http/xml/
    tuscany/branches/sca-java-1.x/modules/binding-http-oasis/src/main/java/org/apache/tuscany/sca/binding/http/xml/HTTPBindingProcessor.java   (with props)
    tuscany/branches/sca-java-1.x/modules/binding-http-oasis/src/test/
    tuscany/branches/sca-java-1.x/modules/binding-http-oasis/src/test/java/
    tuscany/branches/sca-java-1.x/modules/binding-http-oasis/src/test/java/org/
    tuscany/branches/sca-java-1.x/modules/binding-http-oasis/src/test/java/org/apache/
    tuscany/branches/sca-java-1.x/modules/binding-http-oasis/src/test/java/org/apache/tuscany/
    tuscany/branches/sca-java-1.x/modules/binding-http-oasis/src/test/java/org/apache/tuscany/sca/
    tuscany/branches/sca-java-1.x/modules/binding-http-oasis/src/test/java/org/apache/tuscany/sca/binding/
    tuscany/branches/sca-java-1.x/modules/binding-http-oasis/src/test/java/org/apache/tuscany/sca/binding/http/
    tuscany/branches/sca-java-1.x/modules/binding-http-oasis/src/test/java/org/apache/tuscany/sca/binding/http/xml/
    tuscany/branches/sca-java-1.x/modules/binding-http-oasis/src/test/java/org/apache/tuscany/sca/binding/http/xml/HTTPBindingProcessorTestCase.java   (with props)
Modified:
    tuscany/branches/sca-java-1.x/modules/binding-http-oasis-runtime/src/test/resources/test.composite
    tuscany/branches/sca-java-1.x/modules/binding-http-oasis-runtime/src/test/resources/testCache.composite
    tuscany/branches/sca-java-1.x/modules/binding-http-oasis/src/main/java/org/apache/tuscany/sca/binding/http/HTTPBinding.java
    tuscany/branches/sca-java-1.x/modules/binding-http-oasis/src/main/java/org/apache/tuscany/sca/binding/http/HTTPBindingFactory.java
    tuscany/branches/sca-java-1.x/modules/binding-http-oasis/src/main/java/org/apache/tuscany/sca/binding/http/impl/HTTPBindingFactoryImpl.java
    tuscany/branches/sca-java-1.x/modules/binding-http-oasis/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor

Modified: tuscany/branches/sca-java-1.x/modules/binding-http-oasis-runtime/src/test/resources/test.composite
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/binding-http-oasis-runtime/src/test/resources/test.composite?rev=767777&r1=767776&r2=767777&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/binding-http-oasis-runtime/src/test/resources/test.composite (original)
+++ tuscany/branches/sca-java-1.x/modules/binding-http-oasis-runtime/src/test/resources/test.composite Thu Apr 23 03:57:22 2009
@@ -26,21 +26,21 @@
     <component name="ResourceServiceComponent">
         <tuscany:implementation.resource location="content"/>
     	<service name="Resource">
-    		<tuscany:binding.http uri="http://localhost:8085/webcontent"/>
+    		<binding.http uri="http://localhost:8085/webcontent"/>
     	</service>
     </component>
 
     <component name="HTTPServiceComponent">
         <implementation.java class="org.apache.tuscany.sca.binding.http.TestServiceImpl"/>
     	<service name="Servlet">
-    		<tuscany:binding.http uri="http://localhost:8085/httpservice"/>
+    		<binding.http uri="http://localhost:8085/httpservice"/>
     	</service>
     </component>
 
     <component name="HTTPGetComponent">
         <implementation.java class="org.apache.tuscany.sca.binding.http.TestGetImpl"/>
     	<service name="TestGetImpl">
-    		<tuscany:binding.http uri="http://localhost:8085/httpget"/>
+    		<binding.http uri="http://localhost:8085/httpget"/>
     	</service>
     </component>
 

Modified: tuscany/branches/sca-java-1.x/modules/binding-http-oasis-runtime/src/test/resources/testCache.composite
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/binding-http-oasis-runtime/src/test/resources/testCache.composite?rev=767777&r1=767776&r2=767777&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/binding-http-oasis-runtime/src/test/resources/testCache.composite (original)
+++ tuscany/branches/sca-java-1.x/modules/binding-http-oasis-runtime/src/test/resources/testCache.composite Thu Apr 23 03:57:22 2009
@@ -26,7 +26,7 @@
     <component name="HTTPBindingComponent">
         <implementation.java class="org.apache.tuscany.sca.binding.http.TestBindingCacheImpl"/>
     	<service name="TestBindingCacheImpl">
-    		<tuscany:binding.http uri="http://localhost:8085/httpbinding"/>
+    		<binding.http uri="http://localhost:8085/httpbinding"/>
     	</service>
     </component>
 

Modified: tuscany/branches/sca-java-1.x/modules/binding-http-oasis/src/main/java/org/apache/tuscany/sca/binding/http/HTTPBinding.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/binding-http-oasis/src/main/java/org/apache/tuscany/sca/binding/http/HTTPBinding.java?rev=767777&r1=767776&r2=767777&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/binding-http-oasis/src/main/java/org/apache/tuscany/sca/binding/http/HTTPBinding.java (original)
+++ tuscany/branches/sca-java-1.x/modules/binding-http-oasis/src/main/java/org/apache/tuscany/sca/binding/http/HTTPBinding.java Thu Apr 23 03:57:22 2009
@@ -28,4 +28,5 @@
  * @version $Rev$ $Date$
 */
 public interface HTTPBinding extends Binding {
+    
 }

Modified: tuscany/branches/sca-java-1.x/modules/binding-http-oasis/src/main/java/org/apache/tuscany/sca/binding/http/HTTPBindingFactory.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/binding-http-oasis/src/main/java/org/apache/tuscany/sca/binding/http/HTTPBindingFactory.java?rev=767777&r1=767776&r2=767777&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/binding-http-oasis/src/main/java/org/apache/tuscany/sca/binding/http/HTTPBindingFactory.java (original)
+++ tuscany/branches/sca-java-1.x/modules/binding-http-oasis/src/main/java/org/apache/tuscany/sca/binding/http/HTTPBindingFactory.java Thu Apr 23 03:57:22 2009
@@ -30,6 +30,6 @@
      * Creates a new HTTP binding.
      * @return a new HTTP binding
      */
-    HTTPBinding createHTTPResourceBinding();
+    HTTPBinding createHTTPBinding();
 
 }

Modified: tuscany/branches/sca-java-1.x/modules/binding-http-oasis/src/main/java/org/apache/tuscany/sca/binding/http/impl/HTTPBindingFactoryImpl.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/binding-http-oasis/src/main/java/org/apache/tuscany/sca/binding/http/impl/HTTPBindingFactoryImpl.java?rev=767777&r1=767776&r2=767777&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/binding-http-oasis/src/main/java/org/apache/tuscany/sca/binding/http/impl/HTTPBindingFactoryImpl.java (original)
+++ tuscany/branches/sca-java-1.x/modules/binding-http-oasis/src/main/java/org/apache/tuscany/sca/binding/http/impl/HTTPBindingFactoryImpl.java Thu Apr 23 03:57:22 2009
@@ -29,7 +29,7 @@
  */
 public class HTTPBindingFactoryImpl implements HTTPBindingFactory {
 
-    public HTTPBinding createHTTPResourceBinding() {
+    public HTTPBinding createHTTPBinding() {
         return new HTTPBindingImpl();
     }
 

Added: tuscany/branches/sca-java-1.x/modules/binding-http-oasis/src/main/java/org/apache/tuscany/sca/binding/http/xml/HTTPBindingProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/binding-http-oasis/src/main/java/org/apache/tuscany/sca/binding/http/xml/HTTPBindingProcessor.java?rev=767777&view=auto
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/binding-http-oasis/src/main/java/org/apache/tuscany/sca/binding/http/xml/HTTPBindingProcessor.java (added)
+++ tuscany/branches/sca-java-1.x/modules/binding-http-oasis/src/main/java/org/apache/tuscany/sca/binding/http/xml/HTTPBindingProcessor.java Thu Apr 23 03:57:22 2009
@@ -0,0 +1,117 @@
+/*
+ * 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.builder.impl.ProblemImpl;
+import org.apache.tuscany.sca.assembly.xml.Constants;
+import org.apache.tuscany.sca.binding.http.HTTPBinding;
+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.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.monitor.Monitor;
+import org.apache.tuscany.sca.monitor.Problem;
+import org.apache.tuscany.sca.monitor.Problem.Severity;
+
+public class HTTPBindingProcessor extends BaseStAXArtifactProcessor implements StAXArtifactProcessor<HTTPBinding> {
+    private static final String BINDING_HTTP = "binding.http";
+    private static final QName BINDING_HTTP_QNAME = new QName(Constants.SCA10_NS, BINDING_HTTP);
+    
+    private static final String NAME = "name";
+    private static final String URI = "uri";
+    
+    private HTTPBindingFactory httpBindingFactory;
+    private Monitor monitor;
+
+    public HTTPBindingProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) {
+        this.httpBindingFactory = modelFactories.getFactory(HTTPBindingFactory.class);
+        this.monitor = monitor;
+    }
+    
+    public QName getArtifactType() {
+        return BINDING_HTTP_QNAME;
+    }
+    
+    public Class<HTTPBinding> getModelType() {
+        return HTTPBinding.class;
+    }
+
+    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);
+        }
+
+        return httpBinding;
+    }
+
+    public void write(HTTPBinding httpBinding, XMLStreamWriter writer) throws ContributionWriteException, XMLStreamException {
+        writer.writeStartElement(Constants.SCA10_NS, BINDING_HTTP);
+        
+        // Write binding name
+        if (httpBinding.getName() != null) {
+            writer.writeAttribute(NAME, httpBinding.getName());
+        }
+
+        // Write binding URI
+        if (httpBinding.getURI() != null) {
+            writer.writeAttribute(URI, httpBinding.getURI());
+        }
+        
+        writer.writeEndElement();
+    }
+
+
+    public void resolve(HTTPBinding model, ModelResolver resolver) throws ContributionResolveException {
+        // Should not need to do anything here for now... 
+        
+    }
+    
+    /**
+     * Report a error.
+     * 
+     * @param problems
+     * @param message
+     * @param model
+     */
+    private void error(String message, Object model, Object... messageParameters) {
+         if (monitor != null) {
+                Problem problem = new ProblemImpl(this.getClass().getName(), "impl-bpel-validation-messages", Severity.ERROR, model, message, (Object[])messageParameters);
+                monitor.problem(problem);
+         }
+    }
+
+}

Propchange: tuscany/branches/sca-java-1.x/modules/binding-http-oasis/src/main/java/org/apache/tuscany/sca/binding/http/xml/HTTPBindingProcessor.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/branches/sca-java-1.x/modules/binding-http-oasis/src/main/java/org/apache/tuscany/sca/binding/http/xml/HTTPBindingProcessor.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: tuscany/branches/sca-java-1.x/modules/binding-http-oasis/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/binding-http-oasis/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor?rev=767777&r1=767776&r2=767777&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/binding-http-oasis/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor (original)
+++ tuscany/branches/sca-java-1.x/modules/binding-http-oasis/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor Thu Apr 23 03:57:22 2009
@@ -16,4 +16,4 @@
 # under the License. 
 
 # Implementation class for the artifact processor extension
-org.apache.tuscany.sca.assembly.xml.DefaultBeanModelProcessor;qname=http://tuscany.apache.org/xmlns/sca/1.0#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.HTTPBindingProcessor;qname=http://www.osoa.org/xmlns/sca/1.0#binding.http,model=org.apache.tuscany.sca.binding.http.HTTPBinding,factory=org.apache.tuscany.sca.binding.http.HTTPBindingFactory

Added: tuscany/branches/sca-java-1.x/modules/binding-http-oasis/src/test/java/org/apache/tuscany/sca/binding/http/xml/HTTPBindingProcessorTestCase.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/binding-http-oasis/src/test/java/org/apache/tuscany/sca/binding/http/xml/HTTPBindingProcessorTestCase.java?rev=767777&view=auto
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/binding-http-oasis/src/test/java/org/apache/tuscany/sca/binding/http/xml/HTTPBindingProcessorTestCase.java (added)
+++ tuscany/branches/sca-java-1.x/modules/binding-http-oasis/src/test/java/org/apache/tuscany/sca/binding/http/xml/HTTPBindingProcessorTestCase.java Thu Apr 23 03:57:22 2009
@@ -0,0 +1,104 @@
+/*
+ * 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 static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import java.io.ByteArrayOutputStream;
+import java.io.StringReader;
+
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLOutputFactory;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import org.apache.tuscany.sca.binding.http.HTTPBinding;
+import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
+import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry;
+import org.apache.tuscany.sca.core.UtilityExtensionPoint;
+import org.apache.tuscany.sca.monitor.Monitor;
+import org.apache.tuscany.sca.monitor.MonitorFactory;
+import org.apache.tuscany.sca.monitor.impl.DefaultMonitorFactoryImpl;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class HTTPBindingProcessorTestCase {
+
+    private static final String XML = "<binding.http name=\"name\" uri=\"uri\" />";
+    
+    private static XMLInputFactory inputFactory;
+    private static XMLOutputFactory outputFactory;
+
+    private static Monitor monitor;
+
+    private static HTTPBindingProcessor httpBindingProcessor;
+    
+    @BeforeClass
+    public static void setUp() throws Exception {
+        inputFactory = XMLInputFactory.newInstance();
+        outputFactory = XMLOutputFactory.newInstance();
+        
+        DefaultExtensionPointRegistry extensionPoints = new DefaultExtensionPointRegistry();
+        // Create a monitor
+        UtilityExtensionPoint utilities = extensionPoints.getExtensionPoint(UtilityExtensionPoint.class);
+        MonitorFactory monitorFactory = new DefaultMonitorFactoryImpl();  
+        if (monitorFactory != null) {
+                monitor = monitorFactory.createMonitor();
+                utilities.addUtility(monitorFactory);
+        }
+        
+        ModelFactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class);
+        httpBindingProcessor = new HTTPBindingProcessor(modelFactories, monitor);
+    }
+    
+    
+    /**
+     * Read and Write a composite using the HTTP Binding
+     * 
+     * @throws Exception
+     */
+    @Test
+    public void testReadWriteCompositeWithHTTPBinding() throws Exception {
+
+        XMLStreamReader reader = inputFactory.createXMLStreamReader(new StringReader(XML));
+        reader.next();
+        
+        HTTPBinding httpBinding = (HTTPBinding) httpBindingProcessor.read(reader);
+        assertNotNull(httpBinding);
+        reader.close();
+
+        ByteArrayOutputStream bos = new ByteArrayOutputStream();
+        XMLStreamWriter writer = outputFactory.createXMLStreamWriter(bos);
+        writer.setDefaultNamespace("http://www.osoa.org/xmlns/sca/1.0");
+        httpBindingProcessor.write(httpBinding, writer);
+        writer.writeEndDocument();
+        
+        // used for debug comparison
+        // System.out.println(XML);
+        // System.out.println(bos.toString());
+
+        assertEquals(XML, bos.toString());      
+    }
+}

Propchange: tuscany/branches/sca-java-1.x/modules/binding-http-oasis/src/test/java/org/apache/tuscany/sca/binding/http/xml/HTTPBindingProcessorTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/branches/sca-java-1.x/modules/binding-http-oasis/src/test/java/org/apache/tuscany/sca/binding/http/xml/HTTPBindingProcessorTestCase.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date