=== modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/AbstractCrudController.java'
--- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/AbstractCrudController.java	2014-07-03 13:13:37 +0000
+++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/AbstractCrudController.java	2014-10-10 09:50:01 +0000
@@ -126,6 +126,9 @@
     @Autowired
     protected ContextService contextService;
 
+    @Autowired
+    private ContextUtils contextUtils;
+
     //--------------------------------------------------------------------------
     // GET
     //--------------------------------------------------------------------------
@@ -172,12 +175,17 @@
 
             if ( name != null )
             {
-                int count = manager.getCountByName( getEntityClass(), name );
-
-                Pager pager = new Pager( options.getPage(), count, options.getPageSize() );
-                metaData.setPager( pager );
-
-                entityList = Lists.newArrayList( manager.getBetweenByName( getEntityClass(), name, pager.getOffset(), pager.getPageSize() ) );
+                if (name.equals("addEtag")) {
+                    entityList = getEntityListWithEtag( metaData, options, request, response );
+                }
+                else {
+                    int count = manager.getCountByName(getEntityClass(), name);
+
+                    Pager pager = new Pager(options.getPage(), count, options.getPageSize());
+                    metaData.setPager(pager);
+
+                    entityList = Lists.newArrayList(manager.getBetweenByName(getEntityClass(), name, pager.getOffset(), pager.getPageSize()));
+                }
             }
             else
             {
@@ -507,7 +515,7 @@
     // Helpers
     //--------------------------------------------------------------------------
 
-    protected List<T> getEntityList( WebMetaData metaData, WebOptions options )
+    protected List<T> getEntityList( WebMetaData metaData, WebOptions options)
     {
         List<T> entityList;
 
@@ -532,6 +540,13 @@
         return entityList;
     }
 
+    protected List<T> getEntityListWithEtag( WebMetaData metaData, WebOptions options, HttpServletRequest request, HttpServletResponse response ){
+        List<T> entityList = getEntityList(metaData, options);
+        ContextUtils.clearIfNotModified(request,response,entityList);
+        contextUtils.configureResponse(response,ContextUtils.CONTENT_TYPE_JSON, ContextUtils.CacheStrategy.NO_CACHE);
+        return entityList;
+    }
+
     protected List<T> getEntity( String uid )
     {
         return getEntity( uid, new WebOptions( new HashMap<String, String>() ) );

