Author: olamy
Date: Tue Feb 28 18:36:39 2012
New Revision: 1294770

URL: http://svn.apache.org/viewvc?rev=1294770&view=rev
Log:
http 204 No content if put in cache failed: no pointer, implements client side

Modified:
    
incubator/directmemory/trunk/server/directmemory-server-client/src/main/java/org/apache/directmemory/server/client/DefaultDirectMemoryClient.java
    
incubator/directmemory/trunk/server/directmemory-server-client/src/main/java/org/apache/directmemory/server/client/DirectMemoryClient.java
    
incubator/directmemory/trunk/server/directmemory-server-client/src/main/java/org/apache/directmemory/server/client/DirectMemoryHttpClient.java
    
incubator/directmemory/trunk/server/directmemory-server-client/src/main/java/org/apache/directmemory/server/client/HttpClientDirectMemoryHttpClient.java
    
incubator/directmemory/trunk/server/directmemory-server/src/test/java/org/apache/directmemory/server/services/AbstractServletWithClientTest.java

Modified: 
incubator/directmemory/trunk/server/directmemory-server-client/src/main/java/org/apache/directmemory/server/client/DefaultDirectMemoryClient.java
URL: 
http://svn.apache.org/viewvc/incubator/directmemory/trunk/server/directmemory-server-client/src/main/java/org/apache/directmemory/server/client/DefaultDirectMemoryClient.java?rev=1294770&r1=1294769&r2=1294770&view=diff
==============================================================================
--- 
incubator/directmemory/trunk/server/directmemory-server-client/src/main/java/org/apache/directmemory/server/client/DefaultDirectMemoryClient.java
 (original)
+++ 
incubator/directmemory/trunk/server/directmemory-server-client/src/main/java/org/apache/directmemory/server/client/DefaultDirectMemoryClient.java
 Tue Feb 28 18:36:39 2012
@@ -80,15 +80,15 @@ public class DefaultDirectMemoryClient
     }
 
     @Override
-    public void put( DirectMemoryRequest directMemoryRequest )
+    public Boolean put( DirectMemoryRequest directMemoryRequest )
         throws DirectMemoryException
     {
         verifyPerRequestParameters( directMemoryRequest );
-        this.directMemoryHttpClient.put( directMemoryRequest );
+        return this.directMemoryHttpClient.put( directMemoryRequest );
     }
 
     @Override
-    public Future<Void> asyncPut( DirectMemoryRequest directMemoryRequest )
+    public Future<Boolean> asyncPut( DirectMemoryRequest directMemoryRequest )
         throws DirectMemoryException
     {
         verifyPerRequestParameters( directMemoryRequest );

Modified: 
incubator/directmemory/trunk/server/directmemory-server-client/src/main/java/org/apache/directmemory/server/client/DirectMemoryClient.java
URL: 
http://svn.apache.org/viewvc/incubator/directmemory/trunk/server/directmemory-server-client/src/main/java/org/apache/directmemory/server/client/DirectMemoryClient.java?rev=1294770&r1=1294769&r2=1294770&view=diff
==============================================================================
--- 
incubator/directmemory/trunk/server/directmemory-server-client/src/main/java/org/apache/directmemory/server/client/DirectMemoryClient.java
 (original)
+++ 
incubator/directmemory/trunk/server/directmemory-server-client/src/main/java/org/apache/directmemory/server/client/DirectMemoryClient.java
 Tue Feb 28 18:36:39 2012
@@ -38,10 +38,10 @@ public interface DirectMemoryClient
     Future<DirectMemoryResponse> asyncRetrieve( DirectMemoryRequest 
directMemoryRequest )
         throws DirectMemoryException;
 
-    void put( DirectMemoryRequest directMemoryRequest )
+    Boolean put( DirectMemoryRequest directMemoryRequest )
         throws DirectMemoryException;
 
-    Future<Void> asyncPut( DirectMemoryRequest directMemoryRequest )
+    Future<Boolean> asyncPut( DirectMemoryRequest directMemoryRequest )
         throws DirectMemoryException;
 
     DirectMemoryResponse delete( DirectMemoryRequest directMemoryRequest )

Modified: 
incubator/directmemory/trunk/server/directmemory-server-client/src/main/java/org/apache/directmemory/server/client/DirectMemoryHttpClient.java
URL: 
http://svn.apache.org/viewvc/incubator/directmemory/trunk/server/directmemory-server-client/src/main/java/org/apache/directmemory/server/client/DirectMemoryHttpClient.java?rev=1294770&r1=1294769&r2=1294770&view=diff
==============================================================================
--- 
incubator/directmemory/trunk/server/directmemory-server-client/src/main/java/org/apache/directmemory/server/client/DirectMemoryHttpClient.java
 (original)
+++ 
incubator/directmemory/trunk/server/directmemory-server-client/src/main/java/org/apache/directmemory/server/client/DirectMemoryHttpClient.java
 Tue Feb 28 18:36:39 2012
@@ -32,10 +32,10 @@ public interface DirectMemoryHttpClient
     void configure( DirectMemoryClientConfiguration configuration )
         throws DirectMemoryException;
 
-    void put( DirectMemoryRequest request )
+    Boolean put( DirectMemoryRequest request )
         throws DirectMemoryException;
 
-    Future<Void> asyncPut( DirectMemoryRequest request )
+    Future<Boolean> asyncPut( DirectMemoryRequest request )
         throws DirectMemoryException;
 
     DirectMemoryResponse get( DirectMemoryRequest request )

Modified: 
incubator/directmemory/trunk/server/directmemory-server-client/src/main/java/org/apache/directmemory/server/client/HttpClientDirectMemoryHttpClient.java
URL: 
http://svn.apache.org/viewvc/incubator/directmemory/trunk/server/directmemory-server-client/src/main/java/org/apache/directmemory/server/client/HttpClientDirectMemoryHttpClient.java?rev=1294770&r1=1294769&r2=1294770&view=diff
==============================================================================
--- 
incubator/directmemory/trunk/server/directmemory-server-client/src/main/java/org/apache/directmemory/server/client/HttpClientDirectMemoryHttpClient.java
 (original)
+++ 
incubator/directmemory/trunk/server/directmemory-server-client/src/main/java/org/apache/directmemory/server/client/HttpClientDirectMemoryHttpClient.java
 Tue Feb 28 18:36:39 2012
@@ -73,7 +73,7 @@ public class HttpClientDirectMemoryHttpC
     }
 
     @Override
-    public void put( DirectMemoryRequest request )
+    public Boolean put( DirectMemoryRequest request )
         throws DirectMemoryException
     {
         String uri = buildRequestWithKey( request );
@@ -100,12 +100,19 @@ public class HttpClientDirectMemoryHttpC
         {
             HttpResponse response = httpClient.execute( httpPut );
             StatusLine statusLine = response.getStatusLine();
-            if ( statusLine.getStatusCode() != 200 )
+            switch ( statusLine.getStatusCode() )
             {
-                throw new DirectMemoryException(
-                    "put cache content return http code:'" + 
statusLine.getStatusCode() + "', reasonPhrase:"
-                        + statusLine.getReasonPhrase() );
+                case 200:
+                    return Boolean.TRUE;
+                case 204:
+                    return Boolean.FALSE;
+                default:
+                    throw new DirectMemoryException(
+                        "put cache content return http code:'" + 
statusLine.getStatusCode() + "', reasonPhrase:"
+                            + statusLine.getReasonPhrase() );
+
             }
+
         }
         catch ( IOException e )
         {
@@ -114,17 +121,16 @@ public class HttpClientDirectMemoryHttpC
     }
 
     @Override
-    public Future<Void> asyncPut( final DirectMemoryRequest request )
+    public Future<Boolean> asyncPut( final DirectMemoryRequest request )
         throws DirectMemoryException
     {
-        return Executors.newSingleThreadExecutor().submit( new Callable<Void>()
+        return Executors.newSingleThreadExecutor().submit( new 
Callable<Boolean>()
         {
             @Override
-            public Void call()
+            public Boolean call()
                 throws Exception
             {
-                put( request );
-                return null;
+                return put( request );
             }
         } );
     }

Modified: 
incubator/directmemory/trunk/server/directmemory-server/src/test/java/org/apache/directmemory/server/services/AbstractServletWithClientTest.java
URL: 
http://svn.apache.org/viewvc/incubator/directmemory/trunk/server/directmemory-server/src/test/java/org/apache/directmemory/server/services/AbstractServletWithClientTest.java?rev=1294770&r1=1294769&r2=1294770&view=diff
==============================================================================
--- 
incubator/directmemory/trunk/server/directmemory-server/src/test/java/org/apache/directmemory/server/services/AbstractServletWithClientTest.java
 (original)
+++ 
incubator/directmemory/trunk/server/directmemory-server/src/test/java/org/apache/directmemory/server/services/AbstractServletWithClientTest.java
 Tue Feb 28 18:36:39 2012
@@ -22,9 +22,9 @@ import org.apache.catalina.Context;
 import org.apache.catalina.startup.Tomcat;
 import org.apache.directmemory.serialization.SerializerFactory;
 import org.apache.directmemory.server.client.DefaultDirectMemoryClient;
+import org.apache.directmemory.server.client.DirectMemoryClient;
 import org.apache.directmemory.server.client.DirectMemoryClientConfiguration;
 import org.apache.directmemory.server.client.DirectMemoryHttpClient;
-import org.apache.directmemory.server.client.DirectMemoryClient;
 import org.apache.directmemory.server.client.HttpClientDirectMemoryHttpClient;
 import org.apache.directmemory.server.commons.DirectMemoryRequest;
 import org.apache.directmemory.server.commons.DirectMemoryResponse;
@@ -50,6 +50,9 @@ public abstract class AbstractServletWit
 
     DirectMemoryClient client;
 
+    StringBuilder hugeStr = new StringBuilder( "" );
+
+
     protected abstract ExchangeType getExchangeType();
 
     @Before
@@ -85,6 +88,11 @@ public abstract class AbstractServletWit
 
         client = DefaultDirectMemoryClient.instance( configuration );
         // END SNIPPET: client-configuration
+
+        for ( int i = 0; i < 1000000; i++ )
+        {
+            hugeStr.append( "foo" );
+        }
     }
 
     public void shutdown()
@@ -100,7 +108,7 @@ public abstract class AbstractServletWit
         // START SNIPPET: client-put
 
         Wine bordeaux = new Wine( "Bordeaux", "very great wine" );
-        client.put( new DirectMemoryRequest<Wine>( "bordeaux", bordeaux ) );
+        assertTrue( client.put( new DirectMemoryRequest<Wine>( "bordeaux", 
bordeaux ) ) );
 
         // END SNIPPET: client-put
 
@@ -135,10 +143,9 @@ public abstract class AbstractServletWit
     {
         Wine bordeaux = new Wine( "Bordeaux", "very great wine" );
 
-        client.put( new DirectMemoryRequest<Wine>( "bordeaux", bordeaux ) );
+        assertTrue( client.put( new DirectMemoryRequest<Wine>( "bordeaux", 
bordeaux ) ) );
 
-        DirectMemoryResponse<Wine> response =
-            client.retrieve( new DirectMemoryRequest( "bordeaux", Wine.class ) 
);
+        DirectMemoryResponse<Wine> response = client.retrieve( new 
DirectMemoryRequest( "bordeaux", Wine.class ) );
 
         assertTrue( response.isFound() );
         Wine wine = response.getResponse();
@@ -174,7 +181,7 @@ public abstract class AbstractServletWit
 
         DirectMemoryResponse deleteResponse = client.delete( new 
DirectMemoryRequest<Wine>( "bordeaux" ) );
         Wine bordeaux = new Wine( "Bordeaux", "very great wine" );
-        client.put( new DirectMemoryRequest<Wine>( "bordeaux", bordeaux 
).setExpiresIn( 1000 ) );
+        assertTrue( client.put( new DirectMemoryRequest<Wine>( "bordeaux", 
bordeaux ).setExpiresIn( 1000 ) ) );
 
         DirectMemoryRequest rq = new DirectMemoryRequest( "bordeaux", 
Wine.class );
 
@@ -196,4 +203,13 @@ public abstract class AbstractServletWit
 
         assertNull( response.getResponse() );
     }
+
+
+    @Test
+    public void putTooBigNoPointer()
+        throws Exception
+    {
+
+        assertFalse( client.put( new DirectMemoryRequest<String>( "foo", 
hugeStr.toString() ) ) );
+    }
 }


Reply via email to