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