Author: tdraier
Date: Fri Sep 14 12:52:36 2007
New Revision: 18459

URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D18459&repname=
=3Djahia
Log:
allows to disable cache in sub containers (port 18176)

Modified:
    trunk/core/src/java/org/jahia/taglibs/container/ContainerCache.java
    trunk/core/src/java/org/jahia/taglibs/container/ContainerCacheTag.java
    trunk/core/src/java/org/jahia/taglibs/container/ContainerTag.java

Modified: trunk/core/src/java/org/jahia/taglibs/container/ContainerCache.ja=
va
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/taglibs/container/ContainerCache.java&rev=3D18459&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/core/src/java/org/jahia/taglibs/container/ContainerCache.java (or=
iginal)
+++ trunk/core/src/java/org/jahia/taglibs/container/ContainerCache.java Fri=
 Sep 14 12:52:36 2007
@@ -13,4 +13,5 @@
 =

     public void addContainerDependency(int containerId);
 =

+    public void disableCache();
 }

Modified: trunk/core/src/java/org/jahia/taglibs/container/ContainerCacheTag=
.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/taglibs/container/ContainerCacheTag.java&rev=3D18459&repname=3Djah=
ia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/core/src/java/org/jahia/taglibs/container/ContainerCacheTag.java =
(original)
+++ trunk/core/src/java/org/jahia/taglibs/container/ContainerCacheTag.java =
Fri Sep 14 12:52:36 2007
@@ -37,6 +37,7 @@
     private String containerContent =3D null;
     private int counter =3D 1;
     private JahiaData jData =3D null;
+    private String cache =3D "true";
     private String cacheKey =3D null;
     private Set dependencies =3D null;
     private ContainerCache oldCacheTag;
@@ -95,14 +96,16 @@
         dependencies =3D new HashSet();
         ServletRequest request =3D pageContext.getRequest();
         jData =3D (JahiaData) request.getAttribute("org.jahia.data.JahiaDa=
ta");
-        try {
-            containerContent =3D getFromContainerCache(container, jData);
-            if (containerContent !=3D null) {
-                return SKIP_BODY;
+        if ("true".equals(cache)) {
+            try {
+                containerContent =3D getFromContainerCache(container, jDat=
a);
+                if (containerContent !=3D null) {
+                    return SKIP_BODY;
+                }
+            } catch (JahiaInitializationException jie) {
+                logger.error("Error initializing container rendering", jie=
);
+                throw new JspTagException();
             }
-        } catch (JahiaInitializationException jie) {
-            logger.error("Error initializing container rendering", jie);
-            throw new JspTagException();
         }
         return EVAL_BODY_BUFFERED;
     }
@@ -113,7 +116,9 @@
         if (this.display) {
             try {
                 String bodyContent =3D getBodyContent().getString();
-                writeToContainerCache(container, jData, bodyContent);
+                if ("true".equals(cache)) {
+                    writeToContainerCache(container, jData, bodyContent);
+                }
                 getBodyContent().writeOut(getPreviousOut());
                 getBodyContent().clear();
                 this.counter++;
@@ -172,6 +177,14 @@
         ancestor.addContainerDependency(containerId);
     }
 =

+    public void disableCache() {
+        cache =3D "false";
+
+        ContainerCache ancestor =3D (ContainerCache) findAncestorWithClass=
(this, ContainerCache.class);
+        if (ancestor !=3D null)
+            ancestor.disableCache();
+    }
+
     private void writeToContainerCache(JahiaContainer jahiaContainer,Jahia=
Data jahiaData,
             String bodyContent) throws JahiaInitializationException {
         ContainerHTMLCache containerHTMLCache =3D ServicesRegistry.getInst=
ance().getCacheService().getContainerHTMLCacheInstance();

Modified: trunk/core/src/java/org/jahia/taglibs/container/ContainerTag.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/taglibs/container/ContainerTag.java&rev=3D18459&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/core/src/java/org/jahia/taglibs/container/ContainerTag.java (orig=
inal)
+++ trunk/core/src/java/org/jahia/taglibs/container/ContainerTag.java Fri S=
ep 14 12:52:36 2007
@@ -106,7 +106,11 @@
     }
 =

     public void setCache(String cache) {
-        this.cache =3D cache;
+        if (!"true".equals(cache) && !"on".equals(cache)) {
+            disableCache();
+        } else {
+            this.cache =3D "true";
+        }
     }
 =

     public String getCacheKey() {
@@ -194,7 +198,9 @@
                     if (containerContent !=3D null) {
                         if ((this.display)) {
                             try {
+//                                out.print("<fieldset><legend align=3D\"r=
ight\">cached</legend>");
                                 out.print(containerContent);
+//                                out.print("</fieldset>");
                             } catch (IOException ioe) {
                                 logger.error("Error displaying container o=
utput", ioe);
                                 throw new JspTagException();
@@ -299,6 +305,21 @@
         ancestor.addContainerDependency(containerId);
     }
 =

+    public static void disableCache(PageContext pageContext) {
+        ContainerCache oldCacheTag =3D (ContainerCache) pageContext.getAtt=
ribute(CACHETAG);
+        if (oldCacheTag !=3D null) {
+            oldCacheTag.disableCache();
+        }
+    }
+
+    public void disableCache() {
+        cache =3D "false";
+
+        ContainerCache ancestor =3D (ContainerCache) findAncestorWithClass=
(this, ContainerCache.class);
+        if (ancestor !=3D null)
+        ancestor.disableCache();
+    }
+
     private void writeToContainerCache(JahiaContainer jahiaContainer, Jahi=
aData jahiaData,
             String bodyContent) throws JahiaInitializationException {
         ContainerHTMLCache containerHTMLCache =3D ServicesRegistry.getInst=
ance().getCacheService().getContainerHTMLCacheInstance();

_______________________________________________
cvs_list mailing list
[email protected]
http://lists.jahia.org/cgi-bin/mailman/listinfo/cvs_list

Reply via email to