You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by an...@apache.org on 2011/11/21 13:35:42 UTC

svn commit: r1204472 - in /tuscany/sca-java-2.x/trunk/modules/binding-rest/src: main/java/org/apache/tuscany/sca/binding/rest/ main/java/org/apache/tuscany/sca/binding/rest/impl/ main/java/org/apache/tuscany/sca/binding/rest/xml/ test/java/org/apache/t...

Author: antelder
Date: Mon Nov 21 12:35:41 2011
New Revision: 1204472

URL: http://svn.apache.org/viewvc?rev=1204472&view=rev
Log:
TUSCANY-3977: Commit patch from Anuj Bhatia to fix No way to configure wink timeout for binding.rest

Modified:
    tuscany/sca-java-2.x/trunk/modules/binding-rest/src/main/java/org/apache/tuscany/sca/binding/rest/RESTBinding.java
    tuscany/sca-java-2.x/trunk/modules/binding-rest/src/main/java/org/apache/tuscany/sca/binding/rest/impl/RESTBindingImpl.java
    tuscany/sca-java-2.x/trunk/modules/binding-rest/src/main/java/org/apache/tuscany/sca/binding/rest/xml/RESTBindingProcessor.java
    tuscany/sca-java-2.x/trunk/modules/binding-rest/src/test/java/org/apache/tuscany/sca/binding/rest/xml/RESTBindingProcessorTestCase.java

Modified: tuscany/sca-java-2.x/trunk/modules/binding-rest/src/main/java/org/apache/tuscany/sca/binding/rest/RESTBinding.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-rest/src/main/java/org/apache/tuscany/sca/binding/rest/RESTBinding.java?rev=1204472&r1=1204471&r2=1204472&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-rest/src/main/java/org/apache/tuscany/sca/binding/rest/RESTBinding.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-rest/src/main/java/org/apache/tuscany/sca/binding/rest/RESTBinding.java Mon Nov 21 12:35:41 2011
@@ -36,5 +36,8 @@ public interface RESTBinding extends Bin
     
     public List<HTTPHeader> getHttpHeaders();
 
+    public int getReadTimeout();
+    public void setReadTimeout(int timeout);
+    
     public boolean isCORS();
 }

Modified: tuscany/sca-java-2.x/trunk/modules/binding-rest/src/main/java/org/apache/tuscany/sca/binding/rest/impl/RESTBindingImpl.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-rest/src/main/java/org/apache/tuscany/sca/binding/rest/impl/RESTBindingImpl.java?rev=1204472&r1=1204471&r2=1204472&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-rest/src/main/java/org/apache/tuscany/sca/binding/rest/impl/RESTBindingImpl.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-rest/src/main/java/org/apache/tuscany/sca/binding/rest/impl/RESTBindingImpl.java Mon Nov 21 12:35:41 2011
@@ -42,6 +42,8 @@ class RESTBindingImpl implements RESTBin
 
     private List<HTTPHeader> httpHeaders = new ArrayList<HTTPHeader>();
 
+    private int readTimeout = 60000;
+
     private WireFormat requestWireFormat;
     private WireFormat responseWireFormat;
     private OperationSelector operationSelector;
@@ -112,4 +114,12 @@ class RESTBindingImpl implements RESTBin
     public boolean isCORS() {
         return true;
     }
+
+    public int getReadTimeout() {
+        return readTimeout;
+    }
+
+    public void setReadTimeout(int readTimeout) {
+        this.readTimeout = readTimeout;
+    }
 }

Modified: tuscany/sca-java-2.x/trunk/modules/binding-rest/src/main/java/org/apache/tuscany/sca/binding/rest/xml/RESTBindingProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-rest/src/main/java/org/apache/tuscany/sca/binding/rest/xml/RESTBindingProcessor.java?rev=1204472&r1=1204471&r2=1204472&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-rest/src/main/java/org/apache/tuscany/sca/binding/rest/xml/RESTBindingProcessor.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-rest/src/main/java/org/apache/tuscany/sca/binding/rest/xml/RESTBindingProcessor.java Mon Nov 21 12:35:41 2011
@@ -33,6 +33,7 @@ import org.apache.tuscany.sca.assembly.W
 import org.apache.tuscany.sca.binding.rest.RESTBinding;
 import org.apache.tuscany.sca.binding.rest.RESTBindingFactory;
 import org.apache.tuscany.sca.common.http.HTTPHeader;
+import org.apache.tuscany.sca.common.xml.stax.StAXHelper;
 import org.apache.tuscany.sca.contribution.processor.BaseStAXArtifactProcessor;
 import org.apache.tuscany.sca.contribution.processor.ContributionReadException;
 import org.apache.tuscany.sca.contribution.processor.ContributionResolveException;
@@ -57,6 +58,7 @@ public class RESTBindingProcessor extend
     private static final String NAME = "name";
     private static final String VALUE = "value";
     private static final String URI = "uri";
+    private static final String READ_TIMEOUT = "readTimeout";
 
     private RESTBindingFactory httpBindingFactory;
     private StAXArtifactProcessor<Object> extensionProcessor;
@@ -81,7 +83,7 @@ public class RESTBindingProcessor extend
         RESTBinding restBinding = httpBindingFactory.createRESTBinding();
 
         /**
-         *    <tuscany:binding.rest uri="http://localhost:8085/Customer">
+         *    <tuscany:binding.rest uri="http://localhost:8085/Customer" readTimeout="60000">
          *          <tuscany:wireFormat.xml />
          *          <tuscany:operationSelector.jaxrs />
          *          <tuscany:http-headers>
@@ -113,6 +115,11 @@ public class RESTBindingProcessor extend
                         if (uri != null) {
                             restBinding.setURI(uri);
                         }
+                        
+                        String readTimeout = getReadTimeoutString(reader, READ_TIMEOUT);
+                        if (readTimeout != null) {
+                            restBinding.setReadTimeout(Integer.valueOf(readTimeout));
+                        }
                         break;
 
                     } else if (HEADERS_QNAME.equals(elementName)) {
@@ -189,6 +196,10 @@ public class RESTBindingProcessor extend
         return restBinding;
     }
 
+    private String getReadTimeoutString(XMLStreamReader reader, String readTimeout) {
+        return StAXHelper.getAttributeAsString(reader, readTimeout);
+    }
+
     public void write(RESTBinding restBinding, XMLStreamWriter writer, ProcessorContext context) throws ContributionWriteException, XMLStreamException {
 
         writeStart(writer, RESTBinding.TYPE.getNamespaceURI(), RESTBinding.TYPE.getLocalPart());

Modified: tuscany/sca-java-2.x/trunk/modules/binding-rest/src/test/java/org/apache/tuscany/sca/binding/rest/xml/RESTBindingProcessorTestCase.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-rest/src/test/java/org/apache/tuscany/sca/binding/rest/xml/RESTBindingProcessorTestCase.java?rev=1204472&r1=1204471&r2=1204472&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-rest/src/test/java/org/apache/tuscany/sca/binding/rest/xml/RESTBindingProcessorTestCase.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-rest/src/test/java/org/apache/tuscany/sca/binding/rest/xml/RESTBindingProcessorTestCase.java Mon Nov 21 12:35:41 2011
@@ -48,7 +48,7 @@ public class RESTBindingProcessorTestCas
             + " <component name=\"CustomerService\">"
             + "   <implementation.java class=\"services.customer.CustomerServiceImpl\"/>"
             + "      <service name=\"CustomerService\">"
-            + "         <tuscany:binding.rest uri=\"http://localhost:8085/Customer\">"
+            + "         <tuscany:binding.rest uri=\"http://localhost:8085/Customer\" readTimeout=\"30000\">"
             + "            <tuscany:wireFormat.xml />"
             + "            <tuscany:operationSelector.jaxrs />"
             + "            <tuscany:http-headers>"
@@ -86,6 +86,7 @@ public class RESTBindingProcessorTestCas
         RESTBinding binding = (RESTBinding)   composite.getComponents().get(0).getServices().get(0).getBindings().get(0);
         
         Assert.assertNotNull(binding);
+        Assert.assertEquals(30000, binding.getReadTimeout());
         Assert.assertEquals(2, binding.getHttpHeaders().size());
         Assert.assertEquals("Cache-Control", binding.getHttpHeaders().get(0).getName());
         Assert.assertEquals("no-cache", binding.getHttpHeaders().get(0).getValue());