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