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());


Reply via email to