disable caching for repositories

This commit is contained in:
Sebastian Sdorra
2011-02-13 18:36:40 +01:00
parent b69b6cb9fd
commit 54e21c986a
2 changed files with 52 additions and 4 deletions

View File

@@ -237,7 +237,18 @@ public abstract class AbstractManagerResource<T extends ModelObject,
prepareForReturn(item);
return createResponse(request, item);
Response response = null;
if (disableCache)
{
response = Response.ok(item).build();
}
else
{
response = createCacheResponse(request, item);
}
return response;
}
/**
@@ -259,7 +270,18 @@ public abstract class AbstractManagerResource<T extends ModelObject,
prepareForReturn(manager.getAll());
}
return createResponse(request, items);
Response response = null;
if (disableCache)
{
response = Response.ok(items).build();
}
else
{
response = createCacheResponse(request, items);
}
return response;
}
/**
@@ -273,6 +295,17 @@ public abstract class AbstractManagerResource<T extends ModelObject,
return cacheMaxAge;
}
/**
* Method description
*
*
* @return
*/
public boolean isDisableCache()
{
return disableCache;
}
//~--- set methods ----------------------------------------------------------
/**
@@ -286,6 +319,17 @@ public abstract class AbstractManagerResource<T extends ModelObject,
this.cacheMaxAge = cacheMaxAge;
}
/**
* Method description
*
*
* @param disableCache
*/
public void setDisableCache(boolean disableCache)
{
this.disableCache = disableCache;
}
//~--- methods --------------------------------------------------------------
/**
@@ -361,7 +405,7 @@ public abstract class AbstractManagerResource<T extends ModelObject,
*
* @return
*/
private Response createResponse(Request request, T item)
private Response createCacheResponse(Request request, T item)
{
Response.ResponseBuilder builder = null;
Date lastModified = getLastModified(item);
@@ -395,7 +439,7 @@ public abstract class AbstractManagerResource<T extends ModelObject,
*
* @return
*/
private Response createResponse(Request request, Collection<T> items)
private Response createCacheResponse(Request request, Collection<T> items)
{
Response.ResponseBuilder builder = null;
Date lastModified = getLastModified(manager);
@@ -443,6 +487,9 @@ public abstract class AbstractManagerResource<T extends ModelObject,
/** Field description */
protected int cacheMaxAge = 1;
/** Field description */
protected boolean disableCache = false;
/** Field description */
protected Manager<T, E> manager;
}

View File

@@ -94,6 +94,7 @@ public class RepositoryResource
this.repositoryManager = repositoryManager;
this.securityContextProvider = securityContextProvider;
this.requestProvider = requestProvider;
setDisableCache(true);
}
//~--- methods --------------------------------------------------------------