mcardle     2006/01/04 04:22:03 CET

  Modified files:
    core/src/java/org/jahia/services/esi EsiInvalidation.java 
                                         EsiSOAPInvalidation.java 
  Log:
  * adds option to invalidate the current page and all its fragments in ESI mode
  
  Revision  Changes    Path
  1.13      +32 -0     
jahia/core/src/java/org/jahia/services/esi/EsiInvalidation.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/esi/EsiInvalidation.java.diff?r1=1.12&r2=1.13&f=h
  1.10      +17 -0     
jahia/core/src/java/org/jahia/services/esi/EsiSOAPInvalidation.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/esi/EsiSOAPInvalidation.java.diff?r1=1.9&r2=1.10&f=h
  
  
  
  Index: EsiInvalidation.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/services/esi/EsiInvalidation.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- EsiInvalidation.java      29 Dec 2005 13:50:30 -0000      1.12
  +++ EsiInvalidation.java      4 Jan 2006 03:22:02 -0000       1.13
  @@ -396,6 +396,38 @@
       }
   
       /**
  +     * Get invalidation string for a page and all its fragments
  +     */
  +    public static String getPageAndAllFragsInvalidationString(ParamBean 
jParams, int pid) {
  +        StringBuffer str = new StringBuffer();
  +        Template tpl = ServicesRegistry.getInstance().
  +                getEsiService().getTemplate();
  +
  +        if (tpl!=null) {
  +            str.append(
  +                    getTemplateInvalidationString(jParams, tpl.prefix, 
Integer.toString(tpl.pageID))
  +            );
  +
  +            int frgCount = 1;
  +            Fragment frg = ServicesRegistry.getInstance().
  +                getEsiService().getFragment (frgCount);
  +            while (frg!=null) {
  +                str.append(
  +                            getFragmentInvalidationString(jParams, 
frg.prefix,
  +                                    Integer.toString(frg.pageID), 
Integer.toString(frg.fragID))
  +                    );
  +                frgCount++;
  +                frg = ServicesRegistry.getInstance().
  +                                getEsiService().getFragment (frgCount);
  +            }
  +
  +           return str.toString();
  +        }
  +
  +        return null;
  +    }
  +
  +    /**
        * returns the invalidation String necessary to clean out the ESI cache 
on the remote
        * ESI server(s)
        *
  
  
  
  Index: EsiSOAPInvalidation.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/services/esi/EsiSOAPInvalidation.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- EsiSOAPInvalidation.java  2 Jan 2006 14:23:03 -0000       1.9
  +++ EsiSOAPInvalidation.java  4 Jan 2006 03:22:02 -0000       1.10
  @@ -194,6 +194,23 @@
           return false; //nothing to invalidate
       }
   
  +    /**
  +     * invalidate a page and all its fragments
  +     *
  +     * @param jParams
  +     * @param pid
  +     * @return
  +     */
  +    public static boolean SOAPInvalidatePageAndAllFrags(ParamBean jParams, 
int pid) {
  +        String invMessage = 
EsiInvalidation.getPageAndAllFragsInvalidationString(jParams, pid);
  +        if (invMessage!=null) {
  +        String soapRequest = EsiInvalidation.addSOAPXMLWrapper(invMessage);
  +            if (logger.isDebugEnabled())
  +                logger.debug("[esi]:  SOAP Invalidation Message : \n" + 
soapRequest );
  +            return Transmit(soapRequest, jParams);
  +        }
  +        return false; //nothing to invalidate
  +    }
   
       /**
        * invalidates everything on the remote ESI server. This is (optionally) 
executed once
  

Reply via email to