Author: bpapez
Date: Wed Jan  2 19:03:07 2008
New Revision: 19447

URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D19447&repname=
=3Djahia
Log:
JAHIA-2638: add a TBP expiration date for a 10000 pages subsection
Refactorings due to performance improvements:

* Entries in jahia_retrule and jahia_retrule_range are not created, if the =
rule is just being inherited from the parent (patch scripts have been added=
 to remove these unnecessary entries from existing installations)
* The TimeBasedPublishing operations have been changed to not use the compl=
etely loaded ContentObjects, but work only with the ContentObjectKey object=
s. This way we removed many unnecessary selects to load the objects, as onl=
y the key is needed. Moved the getChildsForTimeBasedPublishing and getParen=
tForTimeBasedPublishing methods out of ContentObject into the TimeBasedPubl=
ishingService.
* Refactored the TimeBasedPublishingImplService.handleTimeBasedPublishingEv=
ent (creation of a new rule if null not necessary; copyParentStateToCurrent=
ObjectAndChilds removed as it is anyway done through calling the handleTime=
BasedPublishingEvent on the children) =

* Removed propagateRuleChangeToCHilds and its calling from TimeBasedPublish=
ingJob as the same functionality is done in handling the fireTimeBasedPubli=
shingStateChange event, which is called afterwards

Added:
    trunk/core/src/webapp/WEB-INF/var/patches/sql/mssql/retrule-cleanup_194=
37.sql
    trunk/core/src/webapp/WEB-INF/var/patches/sql/mysql/retrule-cleanup_194=
37.sql
    trunk/core/src/webapp/WEB-INF/var/patches/sql/oracle/retrule-cleanup_19=
437.sql
    trunk/core/src/webapp/WEB-INF/var/patches/sql/postgresql/retrule-cleanu=
p_19437.sql
Modified:
    trunk/core/src/java/org/jahia/ajax/actionmenus/GetTimeBasedPublishingSt=
ate.java
    trunk/core/src/java/org/jahia/content/ContentFieldKey.java
    trunk/core/src/java/org/jahia/content/ContentPageKey.java
    trunk/core/src/java/org/jahia/content/TimeBasedPublishingJahiaObject.ja=
va
    trunk/core/src/java/org/jahia/engines/shared/Page_Field.java
    trunk/core/src/java/org/jahia/hibernate/manager/JahiaObjectManager.java
    trunk/core/src/java/org/jahia/services/timebasedpublishing/TimeBasedPub=
lishingImplService.java
    trunk/core/src/java/org/jahia/services/timebasedpublishing/TimeBasedPub=
lishingJob.java
    trunk/core/src/java/org/jahia/services/timebasedpublishing/TimeBasedPub=
lishingService.java

Modified: trunk/core/src/java/org/jahia/ajax/actionmenus/GetTimeBasedPublis=
hingState.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/ajax/actionmenus/GetTimeBasedPublishingState.java&rev=3D19447&repn=
ame=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/ajax/actionmenus/GetTimeBasedPublishingSt=
ate.java (original)
+++ trunk/core/src/java/org/jahia/ajax/actionmenus/GetTimeBasedPublishingSt=
ate.java Wed Jan  2 19:03:07 2008
@@ -19,15 +19,13 @@
 import org.jahia.ajax.AjaxAction;
 import org.jahia.services.timebasedpublishing.TimeBasedPublishingService;
 import org.jahia.services.timebasedpublishing.RetentionRule;
-import org.jahia.services.timebasedpublishing.RangeRetentionRule;
 import org.jahia.services.usermanager.JahiaUser;
 import org.jahia.services.usermanager.JahiaAdminUser;
 import org.jahia.services.sites.JahiaSite;
 import org.jahia.services.version.EntryLoadRequest;
 import org.jahia.params.ProcessingContext;
 import org.jahia.params.ParamBean;
-import org.jahia.content.ContentObject;
-import org.jahia.content.TimeBasedPublishingJahiaObject;
+import org.jahia.content.ObjectKey;
 import org.jahia.resourcebundle.JahiaResourceBundle;
 import org.jahia.hibernate.manager.JahiaObjectDelegate;
 import org.jahia.hibernate.manager.JahiaObjectManager;
@@ -84,23 +82,40 @@
                     super.getServlet().getServletContext(), params);
 =

             final String key =3D getParameter(request, response, KEY);
-            final ContentObject currentObject =3D getContentObjectFromStri=
ng(key);
+            ObjectKey currentObjectKey =3D ObjectKey.getInstance(key);
 =

             if (logger.isDebugEnabled()) {
                 logger.debug("Getting Time Based Publishing State for: " +=
 key);
             }
-            if ( currentObject !=3D null ){
-                final JahiaObjectDelegate jahiaObjectDelegate =3D
-                        jahiaObjectManager.getJahiaObjectDelegate(currentO=
bject.getObjectKey());
-                final RetentionRule retRule =3D tbpService.getRetentionRul=
e(currentObject.getObjectKey());
+            if ( currentObjectKey !=3D null ){
+                JahiaObjectDelegate jahiaObjectDelegate =3D
+                        jahiaObjectManager.getJahiaObjectDelegate(currentO=
bjectKey);
+                RetentionRule retRule =3D tbpService.getRetentionRule(curr=
entObjectKey);
+                boolean inherited =3D true;
+                if (retRule =3D=3D null) {
+                    JahiaUser adminUser =3D JahiaAdminUser
+                            .getAdminUser(jahiaObjectDelegate.getSiteId()
+                                    .intValue());
+                    currentObjectKey =3D tbpService.getParentObjectKeyForT=
imeBasedPublishing(currentObjectKey,
+                            adminUser, EntryLoadRequest.STAGED, ParamBean.=
EDIT,
+                            true);
+                    if (currentObjectKey !=3D null) {
+                        jahiaObjectDelegate =3D jahiaObjectManager
+                                .getJahiaObjectDelegate(currentObjectKey);
+                        retRule =3D tbpService.getRetentionRule(currentObj=
ectKey);
+                    }
+                } else {
+                    inherited =3D retRule.getInherited().booleanValue();
+                }
                 final long nowInMillis =3D new Date().getTime();
-                final long offSet =3D TimeZone.getDefault().getOffset(nowI=
nMillis);
+                final long offSet =3D TimeZone.getDefault()
+                        .getOffset(nowInMillis);
                 final long now =3D nowInMillis - offSet;
 =

                 final boolean displayDialog =3D "true".equals(getParameter=
(request, response, "displayDialog", "false"));
 =

                 if (!displayDialog) {
-                    returnTimeBasedPublishingStateImg(mapping, form, reque=
st, response, retRule, jahiaObjectDelegate, now, jParams);
+                    returnTimeBasedPublishingStateImg(mapping, form, reque=
st, response, retRule, jahiaObjectDelegate, now, jParams, inherited);
                 } else {
                     displayTimeBasedPublishingStateDialog(mapping, form, r=
equest, response, retRule, jahiaObjectDelegate, now, jParams);
                 }
@@ -118,19 +133,15 @@
         return null;
     }
 =

-    protected void returnTimeBasedPublishingStateImg(final ActionMapping m=
apping,
-                                                     final ActionForm form,
-                                                     final HttpServletRequ=
est request,
-                                                     final HttpServletResp=
onse response,
-                                                     final RetentionRule r=
etRule,
-                                                     final JahiaObjectDele=
gate jahiaObjectDelegate,
-                                                     final long now,
-                                                     final ProcessingConte=
xt jParams
-    )
+    protected void returnTimeBasedPublishingStateImg(
+            final ActionMapping mapping, final ActionForm form,
+            final HttpServletRequest request,
+            final HttpServletResponse response, final RetentionRule retRul=
e,
+            final JahiaObjectDelegate jahiaObjectDelegate, final long now,
+            final ProcessingContext jParams, boolean inherited)
             throws IOException, ServletException {
         String statusLabel =3D "";
         if (retRule !=3D null) {
-            final boolean inherited =3D retRule.getInherited().booleanValu=
e();
             final boolean isValid =3D jahiaObjectDelegate.isValid();
             final boolean isExpired =3D jahiaObjectDelegate.isExpired();
             final boolean willExpire =3D jahiaObjectDelegate.willExpire(no=
w);
@@ -238,14 +249,12 @@
                     boolean isExpired =3D jahiaObjectDelegate.isExpired();
                     schedulingType =3D retRule.getRuleType();
                     if ( inherited ){
-                        TimeBasedPublishingJahiaObject contentObject =3D (=
TimeBasedPublishingJahiaObject)ContentObject
-                                .getContentObjectInstance(jahiaObjectDeleg=
ate.getObjectKey());
                         JahiaUser adminUser =3D JahiaAdminUser.getAdminUse=
r(jahiaObjectDelegate.getSiteId().intValue());
-                        contentObject =3D contentObject
-                                .getParentForTimeBasedPublishing(adminUser=
, EntryLoadRequest.STAGED,ParamBean.EDIT,true);
-                        if ( contentObject !=3D null &&
-                                !contentObject.getObjectKey().equals(jahia=
ObjectDelegate.getObjectKey()) ){
-                            final RetentionRule effectiveRetRule =3D tbpSe=
rvice.getRetentionRule(contentObject.getObjectKey());
+                        ObjectKey contentObjectKey =3D tbpService
+                                .getParentObjectKeyForTimeBasedPublishing(=
jahiaObjectDelegate.getObjectKey(), adminUser, EntryLoadRequest.STAGED,Para=
mBean.EDIT,true);
+                        if ( contentObjectKey !=3D null &&
+                                !contentObjectKey.equals(jahiaObjectDelega=
te.getObjectKey()) ){
+                            final RetentionRule effectiveRetRule =3D tbpSe=
rvice.getRetentionRule(contentObjectKey);
                             schedulingType =3D effectiveRetRule.getRuleTyp=
e();
                         }
                     }

Modified: trunk/core/src/java/org/jahia/content/ContentFieldKey.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/content/ContentFieldKey.java&rev=3D19447&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/content/ContentFieldKey.java (original)
+++ trunk/core/src/java/org/jahia/content/ContentFieldKey.java Wed Jan  2 1=
9:03:07 2008
@@ -16,11 +16,13 @@
  * limitations under the License.
  */package org.jahia.content;
 =

+import org.jahia.data.fields.FieldTypes;
 import org.jahia.registries.ServicesRegistry;
 import org.jahia.services.version.EntryLoadRequest;
 =

 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Collections;
 import java.util.List;
 =

 public class  ContentFieldKey extends ContentObjectKey {
@@ -102,12 +104,13 @@
     }
 =

     public Collection getChilds(EntryLoadRequest request) {
-        List results =3D new ArrayList();
-        if (fieldType =3D=3D -1 || fieldType =3D=3D 5) {
+        List results =3D Collections.EMPTY_LIST;
+        if (fieldType =3D=3D -1 || fieldType =3D=3D FieldTypes.PAGE) {
             int[] i =3D ServicesRegistry.getInstance().getJahiaFieldServic=
e().getSubPageIdAndType(getIdInType(), request);
             if ( i[0] > 0) {
                 ContentPageKey o =3D new ContentPageKey(i[0]);
                 o.setPageType(i[1]);
+                results =3D new ArrayList();                =

                 results.add(o);
             }
         }

Modified: trunk/core/src/java/org/jahia/content/ContentPageKey.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/content/ContentPageKey.java&rev=3D19447&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/content/ContentPageKey.java (original)
+++ trunk/core/src/java/org/jahia/content/ContentPageKey.java Wed Jan  2 19=
:03:07 2008
@@ -16,8 +16,10 @@
  * limitations under the License.
  */package org.jahia.content;
 =

+import org.apache.log4j.Logger;
 import org.jahia.exceptions.JahiaException;
 import org.jahia.registries.ServicesRegistry;
+import org.jahia.services.pages.ContentPage;
 import org.jahia.services.version.EntryLoadRequest;
 =

 import java.util.ArrayList;
@@ -37,6 +39,8 @@
 public class  ContentPageKey extends ContentObjectKey {
 =

     private static final long serialVersionUID =3D -3710517391444085081L;
+    =

+    private static final Logger logger =3D Logger.getLogger(ContentPageKey=
.class);    =

 =

     public static final String PAGE_TYPE =3D "ContentPage";
 =

@@ -127,11 +131,27 @@
                 results.add(key);
             }
         } catch (JahiaException e) {
-            e.printStackTrace();
+            logger.warn("Exception getting page children", e);
         }
         return results;
     }
 =

+    public Collection getChildLists(EntryLoadRequest request) {
+        List results =3D new ArrayList();
+        try {
+            Collection c =3D ServicesRegistry.getInstance().getJahiaContai=
nersService().getAllPageTopLevelContainerListIDs(getIdInType(), request);
+            for (Iterator iterator =3D c.iterator(); iterator.hasNext();) {
+                Integer integer =3D (Integer) iterator.next();
+                ContentContainerListKey cclk =3D new ContentContainerListK=
ey(integer.intValue());
+                cclk.setParent(this);
+                results.add(cclk);
+            }
+        } catch (JahiaException e) {
+            logger.warn("Exception getting page children container lists",=
 e);
+        }
+        return results;
+    }    =

+    =

     public static String toObjectKeyString(String idInType) {
         return toObjectKeyString(PAGE_TYPE, idInType);
     }

Modified: trunk/core/src/java/org/jahia/content/TimeBasedPublishingJahiaObj=
ect.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/content/TimeBasedPublishingJahiaObject.java&rev=3D19447&repname=3D=
jahia
=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/content/TimeBasedPublishingJahiaObject.ja=
va (original)
+++ trunk/core/src/java/org/jahia/content/TimeBasedPublishingJahiaObject.ja=
va Wed Jan  2 19:03:07 2008
@@ -33,37 +33,6 @@
 public interface TimeBasedPublishingJahiaObject {
 =

     /**
-     * Returns childs that implement TimeBasedPublishingJahiaObject interf=
ace
-     * @return
-     */
-    public List getChildsForTimeBasedPublishing(JahiaUser user,
-                                EntryLoadRequest loadRequest,
-                                String operationMode) throws JahiaExceptio=
n;
-
-    /**
-     * Returns the parent of the current object
-     * @return
-     */
-    public TimeBasedPublishingJahiaObject getParentForTimeBasedPublishing(=
JahiaUser user,
-                                EntryLoadRequest loadRequest,
-                                String operationMode) throws JahiaExceptio=
n;
-
-    /**
-     * Returns the parent of the current object
-     * @param user
-     * @param loadRequest
-     * @param operationMode
-     * @param withoutIneritedRule if true, returns the first parent that h=
as a rule that does not inherit.
-     *
-     * @return
-     * @throws JahiaException
-     */
-    public TimeBasedPublishingJahiaObject getParentForTimeBasedPublishing(=
JahiaUser user,
-                                EntryLoadRequest loadRequest,
-                                String operationMode,
-                                boolean withoutIneritedRule) throws JahiaE=
xception;
-
-    /**
      * This method is called to notify that time based publishing state ha=
s changed
      */
     public void notifyStateChanged();

Modified: trunk/core/src/java/org/jahia/engines/shared/Page_Field.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/engines/shared/Page_Field.java&rev=3D19447&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/engines/shared/Page_Field.java (original)
+++ trunk/core/src/java/org/jahia/engines/shared/Page_Field.java Wed Jan  2=
 19:03:07 2008
@@ -20,6 +20,7 @@
 =

 import org.jahia.bin.Jahia;
 import org.jahia.content.ContentObject;
+import org.jahia.content.ObjectKey;
 import org.jahia.content.TimeBasedPublishingJahiaObject;
 import org.jahia.data.containers.JahiaContainer;
 import org.jahia.data.events.JahiaEvent;
@@ -370,14 +371,14 @@
                             jahiaObjectManager.getJahiaObjectDelegate(curr=
entObject.getObjectKey());
                     RetentionRule retRule =3D tbpService.getRetentionRule(=
currentObject.getObjectKey());
                     if ( retRule.getInherited().booleanValue() && jahiaObj=
ectDelegate.isValid() ){
-                        TimeBasedPublishingJahiaObject tbpObject =3D
-                                contentPage.getParentForTimeBasedPublishin=
g(jParams.getUser(),
+                        ObjectKey tbpObjectKey =3D
+                                tbpService.getParentObjectKeyForTimeBasedP=
ublishing(contentPage.getObjectKey(), jParams.getUser(),
                                 jParams.getEntryLoadRequest(),jParams.getO=
perationMode());
-                        if ( tbpObject !=3D null ){
-                           currentObject =3D ContentObject.getContentObjec=
tInstance(tbpObject.getObjectKey());
+                        if ( tbpObjectKey !=3D null ){
+                           currentObject =3D ContentObject.getContentObjec=
tInstance(tbpObjectKey);
                             jahiaObjectDelegate =3D
-                                    jahiaObjectManager.getJahiaObjectDeleg=
ate(currentObject.getObjectKey());
-                            retRule =3D tbpService.getRetentionRule(curren=
tObject.getObjectKey());
+                                    jahiaObjectManager.getJahiaObjectDeleg=
ate(tbpObjectKey);
+                            retRule =3D tbpService.getRetentionRule(tbpObj=
ectKey);
                         }
                     }
                     final long nowInMillis =3D new Date().getTime();

Modified: trunk/core/src/java/org/jahia/hibernate/manager/JahiaObjectManage=
r.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/hibernate/manager/JahiaObjectManager.java&rev=3D19447&repname=3Dja=
hia
=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/hibernate/manager/JahiaObjectManager.java=
 (original)
+++ trunk/core/src/java/org/jahia/hibernate/manager/JahiaObjectManager.java=
 Wed Jan  2 19:03:07 2008
@@ -395,7 +395,8 @@
         this.flushCache(hibJahiaObject.getComp_id());
         if ( this.cache !=3D null ){
             try {
-                this.cache.put(CACHE_KEY_PREFIX + delegate.getObjectKey(),=
hibJahiaObject.toJahiaObject());
+                //commented due to performance reasons: JAHIA-2638
+                //this.cache.put(CACHE_KEY_PREFIX + delegate.getObjectKey(=
),hibJahiaObject.toJahiaObject());
                 this.cache.put(OBJECTDELEGATE_KEY_PREFIX + delegate.getObj=
ectKey(),delegate);
             } catch ( Throwable t ){
             }

Modified: trunk/core/src/java/org/jahia/services/timebasedpublishing/TimeBa=
sedPublishingImplService.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/services/timebasedpublishing/TimeBasedPublishingImplService.java&r=
ev=3D19447&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/services/timebasedpublishing/TimeBasedPub=
lishingImplService.java (original)
+++ trunk/core/src/java/org/jahia/services/timebasedpublishing/TimeBasedPub=
lishingImplService.java Wed Jan  2 19:03:07 2008
@@ -17,9 +17,12 @@
  */package org.jahia.services.timebasedpublishing;
 =

 import org.jahia.bin.Jahia;
-import org.jahia.content.JahiaObject;
+import org.jahia.content.ContentContainerKey;
+import org.jahia.content.ContentContainerListKey;
+import org.jahia.content.ContentFieldKey;
+import org.jahia.content.ContentObjectKey;
+import org.jahia.content.ContentPageKey;
 import org.jahia.content.ObjectKey;
-import org.jahia.content.TimeBasedPublishingJahiaObject;
 import org.jahia.exceptions.JahiaInitializationException;
 import org.jahia.exceptions.JahiaException;
 import org.jahia.hibernate.manager.*;
@@ -45,6 +48,8 @@
     JahiaObjectManager jahiaObjectMgr;
     JahiaRetentionRuleManager ruleMgr;
     JahiaRetentionRuleDefManager ruleDefMgr;
+    JahiaFieldsDataManager fieldsDataMgr;
+    JahiaContainerListManager containerListMgr;    =

 =

     private static org.apache.log4j.Logger logger =3D
         org.apache.log4j.Logger.getLogger (TimeBasedPublishingImplService.=
class);
@@ -269,9 +274,7 @@
                 JahiaObjectDelegate jahiaObjectDelegate =3D (JahiaObjectDe=
legate) iterator.next();
                 if ( jahiaObjectDelegate !=3D null ){
                     try {
-                        JahiaObject jahiaObject =3D JahiaObject
-                                .getInstance(jahiaObjectDelegate.getObject=
Key());
-                        handleTimeBasedPublishingEvent(theEvent, rule, (Ti=
meBasedPublishingJahiaObject)jahiaObject);
+                        handleTimeBasedPublishingEvent(theEvent, rule, jah=
iaObjectDelegate.getObjectKey());
                     } catch ( Throwable t) {
                         logger.debug("Error converting JahiaObjectDelegate=
 to JahiaObjec",t);
                     }
@@ -344,31 +347,16 @@
      */
     private void handleTimeBasedPublishingEvent(RetentionRuleEvent theEven=
t,
                                                 RetentionRule rule,
-                                                TimeBasedPublishingJahiaOb=
ject jahiaObject){
+                                                ObjectKey jahiaObjectKey){
 =

         JahiaObjectDelegate jahiaObjectDelegate =3D jahiaObjectMgr
-                .getJahiaObjectDelegate(jahiaObject.getObjectKey());
+                .getJahiaObjectDelegate(jahiaObjectKey);
         if ( jahiaObjectDelegate =3D=3D null ){
             return;
         }
         boolean newRuleCreated =3D false;
-        if ( jahiaObjectDelegate.getRule() =3D=3D null ){
-            RetentionRuleDef baseDef =3D getBaseRetentionRuleDef();
-            RetentionRule newRule =3D baseDef.createRule();
-            newRule.setInherited(Boolean.TRUE);
-            RangeRetentionRule rangeRule =3D (RangeRetentionRule)newRule;
-            try {
-                saveRetentionRule(rangeRule);
-                jahiaObjectDelegate.setRule(rangeRule);
-                jahiaObjectMgr.save(jahiaObjectDelegate);
-                newRuleCreated =3D true;
-            } catch ( Exception e){
-                logger.debug("Exception creating retention rule",e);
-            }
-        }
-
         RetentionRule localRule =3D jahiaObjectDelegate.getRule();
-        if ( localRule.getId().intValue() !=3D rule.getId().intValue() && =
!localRule.getInherited().booleanValue() ){
+        if ( localRule !=3D null && localRule.getId().intValue() !=3D rule=
.getId().intValue() && !localRule.getInherited().booleanValue() ){
             // do not propagate parent's rule change
             return;
         }
@@ -381,62 +369,42 @@
         }
         JahiaUser adminUser =3D JahiaAdminUser.getAdminUser(jahiaObjectDel=
egate.getSiteId().intValue());
         RetentionRule effectiveRule =3D rule;
-        if ( localRule.getId().intValue() =3D=3D rule.getId().intValue() &&
-                localRule.getInherited().booleanValue() ){
-            // as the rule inherit from parent, we propagate parent state =
instead of rule
-            try {
-                TimeBasedPublishingJahiaObject parent =3D (TimeBasedPublis=
hingJahiaObject)
-                        jahiaObject.getParentForTimeBasedPublishing(adminU=
ser,EntryLoadRequest.STAGED,ParamBean.EDIT);
-                if ( parent !=3D null ){
-                    JahiaObjectDelegate parentObjectDelegate =3D
-                            jahiaObjectMgr.getJahiaObjectDelegate(parent.g=
etObjectKey());
-                    if ( parentObjectDelegate !=3D null ){
-                        copyParentStateToCurrentObjectAndChilds(jahiaObjec=
t, parentObjectDelegate);
-                    }
-                }
-            } catch ( Throwable t){
-                logger.debug("Error copying parent timebased publishing st=
atues to child"
-                        + jahiaObjectDelegate.getObjectKey(),t);
-                return;
-            }
-            return;
-        }
 =

         // apply to childs
         try {
-            List childs =3D jahiaObject.getChildsForTimeBasedPublishing(ad=
minUser,EntryLoadRequest.STAGED,ParamBean.EDIT);
+            Collection childs =3D getChildObjectKeysForTimeBasedPublishing=
(jahiaObjectKey, adminUser, EntryLoadRequest.STAGED, ParamBean.EDIT);
             Iterator iterator =3D childs.iterator();
-            TimeBasedPublishingJahiaObject child =3D null;
+            ObjectKey child =3D null;
             while ( iterator.hasNext() ){
-                child =3D (TimeBasedPublishingJahiaObject)iterator.next();
+                child =3D (ObjectKey)iterator.next();
                 handleTimeBasedPublishingEvent(theEvent, effectiveRule, ch=
ild);
             }
         } catch ( Throwable t) {
-            logger.debug("Error converting JahiaObjectDelegate to JahiaObj=
ec",t);
+            logger.warn("Error converting JahiaObjectDelegate to JahiaObje=
c",t);
         }
         // apply rule to current object
         applyTimeBasedPublishingEvent(theEvent, effectiveRule, jahiaObject=
Delegate);
     }
 =

-    private void copyParentStateToCurrentObjectAndChilds(TimeBasedPublishi=
ngJahiaObject jahiaObject,
+    private void copyParentStateToCurrentObjectAndChilds(ObjectKey jahiaOb=
jectKey,
                                                          JahiaObjectDelega=
te parentObjectDelegate){
         // use the first parent rule that is not inherited
         // apply to childs
         try {
-            List childs =3D jahiaObject.getChildsForTimeBasedPublishing(
+            Collection childs =3D getChildObjectKeysForTimeBasedPublishing=
(jahiaObjectKey,
                     JahiaAdminUser.getAdminUser(parentObjectDelegate.getSi=
teId().intValue()),
                     EntryLoadRequest.STAGED,ParamBean.EDIT);
             Iterator iterator =3D childs.iterator();
-            TimeBasedPublishingJahiaObject child =3D null;
+            ObjectKey childObjectKey =3D null;
             JahiaObjectDelegate childObjectDelegate =3D null;
             while ( iterator.hasNext() ){
-                child =3D (TimeBasedPublishingJahiaObject)iterator.next();
-                childObjectDelegate =3D jahiaObjectMgr.getJahiaObjectDeleg=
ate(child.getObjectKey());
+                childObjectKey =3D (ObjectKey)iterator.next();
+                childObjectDelegate =3D jahiaObjectMgr.getJahiaObjectDeleg=
ate(childObjectKey);
                 if ( childObjectDelegate !=3D null && childObjectDelegate.=
getRule().getInherited().booleanValue() ){
-                    copyParentStateToCurrentObjectAndChilds(child, parentO=
bjectDelegate);
+                    copyParentStateToCurrentObjectAndChilds(childObjectKey=
, parentObjectDelegate);
                 }
             }
-            JahiaObjectDelegate objectDelegate =3D jahiaObjectMgr.getJahia=
ObjectDelegate(jahiaObject.getObjectKey());
+            JahiaObjectDelegate objectDelegate =3D jahiaObjectMgr.getJahia=
ObjectDelegate(jahiaObjectKey);
             if ( objectDelegate !=3D null ){
                 objectDelegate.setTimeBPState(parentObjectDelegate.getTime=
BPState());
                 objectDelegate.setValidFromDate(parentObjectDelegate.getVa=
lidFromDate());
@@ -471,14 +439,11 @@
             if ( rule.getInherited().booleanValue() ){
                 // check agains parent state
                 try {
-                    TimeBasedPublishingJahiaObject timeBPObject =3D (TimeB=
asedPublishingJahiaObject)
-                            JahiaObject.getInstanceAsObject(jahiaObject.ge=
tObjectKey());
-                    TimeBasedPublishingJahiaObject parent =3D timeBPObject
-                            .getParentForTimeBasedPublishing(JahiaAdminUse=
r.getAdminUser(jahiaObject.getSiteId().intValue()),
+                    ObjectKey parentObjectKey =3D getParentObjectKeyForTim=
eBasedPublishing(jahiaObject.getObjectKey(), JahiaAdminUser.getAdminUser(ja=
hiaObject.getSiteId().intValue()),
                                     EntryLoadRequest.STAGED,ParamBean.EDIT=
);
-                    if ( parent !=3D null ) {
+                    if ( parentObjectKey !=3D null ) {
                         JahiaObjectDelegate parentDelegate =3D jahiaObject=
Mgr
-                                .getJahiaObjectDelegate(parent.getObjectKe=
y());
+                                .getJahiaObjectDelegate(parentObjectKey);
                         if ( parentDelegate !=3D null ){
                             return ( jahiaObject.getTimeBPState().intValue=
()
                                     !=3D parentDelegate.getTimeBPState().i=
ntValue() );
@@ -490,7 +455,7 @@
                                     .getJahiaObjectDelegate(jahiaObject.ge=
tObjectKey());
                             delegate.setTimeBPState(new Integer(IS_VALID_S=
TATE));
                             jahiaObjectMgr.save(delegate);
-                            copyParentStateToCurrentObjectAndChilds(timeBP=
Object, delegate);
+                            copyParentStateToCurrentObjectAndChilds(jahiaO=
bject.getObjectKey(), delegate);
                             return true;
                         }
                     }
@@ -543,7 +508,7 @@
             }
         } else if ( theEvent.getEventType() =3D=3D RetentionRuleEvent.UPDA=
TING_RULE ){
             RangeRetentionRule rangeRule =3D (RangeRetentionRule)rule;
-            Long oldValidFromDate =3D jahiaObject.getValidFromDate();
+            //Long oldValidFromDate =3D jahiaObject.getValidFromDate();
             Long oldValidToDate =3D jahiaObject.getValidToDate();
             jahiaObject.setValidFromDate(rangeRule.getValidFromDate());
             jahiaObject.setValidToDate(rangeRule.getValidToDate());
@@ -586,4 +551,123 @@
         }
         return false;
     }
+    =

+    /**
+     * Returns child object keys of objects that implement TimeBasedPublis=
hingJahiaObject interface
+     * =

+     * @param user
+     * @param loadRequest
+     * @param operationMode
+     * @return
+     */
+    public Collection getChildObjectKeysForTimeBasedPublishing(
+            ObjectKey jahiaObjectKey, JahiaUser user,
+            EntryLoadRequest loadRequest, String operationMode)
+            throws JahiaException {
+        Collection filteredChildKeys =3D Collections.EMPTY_LIST;
+        =

+        if (ContentPageKey.PAGE_TYPE.equals(jahiaObjectKey.getType())) {
+            ContentPageKey contentPageKey =3D (ContentPageKey) jahiaObject=
Key;
+            Collection children =3D contentPageKey.getChildLists(loadReque=
st);
+            ContentContainerListKey child;
+            filteredChildKeys =3D new ArrayList();
+            for (Iterator it =3D children.iterator(); it.hasNext(); ) {
+                child =3D (ContentContainerListKey) it.next();
+                filteredChildKeys.addAll(getChildObjectKeysForTimeBasedPub=
lishing(child, user, loadRequest, operationMode));
+            }            =

+        } else if (ContentContainerListKey.CONTAINERLIST_TYPE
+                .equals(jahiaObjectKey.getType())) {
+            ContentContainerListKey contentContainerListKey =3D (ContentCo=
ntainerListKey) jahiaObjectKey;            =

+            filteredChildKeys =3D contentContainerListKey.getChilds(loadRe=
quest);
+        } else if (ContentContainerKey.CONTAINER_TYPE.equals(jahiaObjectKey
+                .getType())) {
+            ContentContainerKey contentContainerKey =3D (ContentContainerK=
ey) jahiaObjectKey;
+            Collection childs =3D contentContainerKey.getChilds(loadReques=
t);
+            =

+            Object child =3D null;
+            filteredChildKeys =3D new ArrayList();
+            for (Iterator it =3D childs.iterator(); it.hasNext();) {
+                child =3D it.next();
+                if (child instanceof ContentContainerListKey) {
+                    filteredChildKeys.add(child);
+                } else if (child instanceof ContentFieldKey) {
+                    ContentFieldKey contentFieldKey =3D (ContentFieldKey) =
child;
+                    // field child
+                    filteredChildKeys.addAll(contentFieldKey.getChilds(loa=
dRequest));
+                }
+            }
+        }
+        return filteredChildKeys;
+    }
+
+    /**
+     * Returns the parent object key of the current object for timebased p=
ublishing
+     *
+     * @return
+     */
+    public ObjectKey getParentObjectKeyForTimeBasedPublishing(ObjectKey ja=
hiaObjectKey,
+            JahiaUser user, EntryLoadRequest loadRequest, String operation=
Mode)
+            throws JahiaException {
+        return getParentObjectKeyForTimeBasedPublishing(jahiaObjectKey, us=
er, loadRequest,
+                operationMode, false);
+    }
+
+    /**
+     * Returns the parent object key of the current object for timebased p=
ublishing
+     */
+    public ObjectKey getParentObjectKeyForTimeBasedPublishing(ObjectKey ja=
hiaObjectKey,
+            JahiaUser user, EntryLoadRequest loadRequest, String operation=
Mode,
+            boolean withoutInheritedRule) throws JahiaException {
+        ObjectKey parentObjectKey =3D null;
+        if (ContentPageKey.PAGE_TYPE.equals(jahiaObjectKey.getType())) {
+            ContentPageKey contentPageKey =3D (ContentPageKey) jahiaObject=
Key;
+            =

+            ContentObjectKey pageFieldKey =3D contentPageKey.getParent(loa=
dRequest);
+            =

+            if (pageFieldKey !=3D null) {
+                parentObjectKey =3D pageFieldKey.getParent(loadRequest);
+            }            =

+        } else if (ContentContainerListKey.CONTAINERLIST_TYPE
+                .equals(jahiaObjectKey.getType())) {
+            =

+            ContentContainerListKey contentContainerListKey =3D (ContentCo=
ntainerListKey) jahiaObjectKey;
+            parentObjectKey =3D contentContainerListKey.getParent(loadRequ=
est);
+            =

+        } else if (ContentContainerKey.CONTAINER_TYPE.equals(jahiaObjectKey
+                .getType())) {
+            =

+            ContentContainerKey contentContainerKey =3D (ContentContainerK=
ey) jahiaObjectKey;
+            parentObjectKey =3D contentContainerKey.getParent(loadRequest)=
.getParent(loadRequest);
+        }
+        =

+        if (withoutInheritedRule && parentObjectKey !=3D null) {
+            final RetentionRule retRule =3D ServicesRegistry
+                    .getInstance().getTimeBasedPublishingService()
+                    .getRetentionRule(parentObjectKey);
+            if (retRule =3D=3D null
+                    || retRule.getInherited().booleanValue()) {
+                parentObjectKey =3D getParentObjectKeyForTimeBasedPublishi=
ng(
+                        parentObjectKey, user, loadRequest,
+                        operationMode, withoutInheritedRule);
+            }
+        }
+        return parentObjectKey;
+    }
+
+    public JahiaFieldsDataManager getFieldsDataMgr() {
+        return fieldsDataMgr;
+    }
+
+    public void setFieldsDataMgr(JahiaFieldsDataManager fieldsDataMgr) {
+        this.fieldsDataMgr =3D fieldsDataMgr;
+    }
+
+    public JahiaContainerListManager getContainerListMgr() {
+        return containerListMgr;
+    }
+
+    public void setContainerListMgr(JahiaContainerListManager containerLis=
tMgr) {
+        this.containerListMgr =3D containerListMgr;
+    }
+
 }

Modified: trunk/core/src/java/org/jahia/services/timebasedpublishing/TimeBa=
sedPublishingJob.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/services/timebasedpublishing/TimeBasedPublishingJob.java&rev=3D194=
47&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/services/timebasedpublishing/TimeBasedPub=
lishingJob.java (original)
+++ trunk/core/src/java/org/jahia/services/timebasedpublishing/TimeBasedPub=
lishingJob.java Wed Jan  2 19:03:07 2008
@@ -1,8 +1,6 @@
 package org.jahia.services.timebasedpublishing;
 =

 import org.apache.log4j.Logger;
-import org.jahia.content.ContentContainerKey;
-import org.jahia.content.ContentObject;
 import org.jahia.content.ObjectKey;
 import org.jahia.exceptions.JahiaException;
 import org.jahia.hibernate.manager.JahiaObjectDelegate;
@@ -10,17 +8,12 @@
 import org.jahia.hibernate.manager.SpringContextSingleton;
 import org.jahia.params.ProcessingContext;
 import org.jahia.registries.ServicesRegistry;
-import org.jahia.services.containers.ContentContainer;
-import org.jahia.services.pages.ContentPage;
 import org.jahia.services.scheduler.BackgroundJob;
 import org.quartz.JobDataMap;
 import org.quartz.JobDetail;
 import org.quartz.JobExecutionContext;
 import org.quartz.JobExecutionException;
 =

-import java.util.Iterator;
-import java.util.List;
-
 /**
  * Created by IntelliJ IDEA.
  * User: Rincevent
@@ -99,7 +92,6 @@
                 jahiaObjectDelegate.setRule(rule);
                 jahiaObjectDelegate.setObjectKey(objectKey);
                 jahiaObjectMgr.save(jahiaObjectDelegate);
-                propagateRuleChangeToCHilds(jahiaObjectDelegate, jParams, =
jahiaObjectMgr);
 =

                 RetentionRuleEvent event =3D new RetentionRuleEvent(this, =
jParams,
                         rule.getId().intValue(), RetentionRuleEvent.UPDATI=
NG_RULE, -1);
@@ -113,51 +105,4 @@
             }
         }
     }
-
-    private void propagateRuleChangeToCHilds(JahiaObjectDelegate jahiaObje=
ctDelegate,
-                                             ProcessingContext jParams,
-                                             JahiaObjectManager jahiaObjec=
tMgr) {
-
-        TimeBasedPublishingService tbpServ =3D ServicesRegistry.getInstanc=
e()
-                .getTimeBasedPublishingService();
-
-        RetentionRuleDef def =3D tbpServ.getBaseRetentionRuleDef();
-        if (def =3D=3D null) {
-            return;
-        }
-        if (jahiaObjectDelegate.getObjectKey().getType()
-                .equals(ContentContainerKey.CONTAINER_TYPE)) {
-            ContentContainer container =3D (ContentContainer) ContentConta=
iner
-                    .getChildInstance(jahiaObjectDelegate.getObjectKey().g=
etIDInType());
-            try {
-                List childs =3D container.getChildsForTimeBasedPublishing(=
jParams.getUser(),
-                        jParams.getEntryLoadRequest(), jParams.getOperatio=
nMode());
-                ContentObject child =3D null;
-                JahiaObjectDelegate childDelegate =3D null;
-                Iterator iterator =3D childs.iterator();
-                RetentionRule rule =3D null;
-                while (iterator.hasNext()) {
-                    child =3D (ContentObject) iterator.next();
-                    if (child instanceof ContentPage) {
-                        childDelegate =3D jahiaObjectMgr.getJahiaObjectDel=
egate(child.getObjectKey());
-                        rule =3D childDelegate.getRule();
-                        if (rule =3D=3D null) {
-                            rule =3D def.createRule();
-                            rule.setInherited(Boolean.TRUE);
-                            tbpServ.saveRetentionRule(rule);
-                            childDelegate.setRule(rule);
-                            jahiaObjectMgr.save(childDelegate);
-                            RetentionRuleEvent event =3D new RetentionRule=
Event(this, jParams,
-                                    rule.getId().intValue(), RetentionRule=
Event.UPDATING_RULE, -1);
-                            ServicesRegistry.getInstance().getJahiaEventSe=
rvice().fireTimeBasedPublishingStateChange(event);
-                            rule.startJob();
-                        }
-                    }
-                }
-            } catch (Throwable t) {
-            }
-        }
-
-    }
-
 }

Modified: trunk/core/src/java/org/jahia/services/timebasedpublishing/TimeBa=
sedPublishingService.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/services/timebasedpublishing/TimeBasedPublishingService.java&rev=
=3D19447&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/services/timebasedpublishing/TimeBasedPub=
lishingService.java (original)
+++ trunk/core/src/java/org/jahia/services/timebasedpublishing/TimeBasedPub=
lishingService.java Wed Jan  2 19:03:07 2008
@@ -22,8 +22,11 @@
 import org.jahia.hibernate.manager.JahiaObjectDelegate;
 import org.jahia.hibernate.manager.JahiaObjectManager;
 import org.jahia.services.JahiaService;
+import org.jahia.services.usermanager.JahiaUser;
+import org.jahia.services.version.EntryLoadRequest;
 import org.jahia.params.ProcessingContext;
 =

+import java.util.Collection;
 import java.util.List;
 =

 public abstract class TimeBasedPublishingService extends JahiaService
@@ -122,5 +125,34 @@
                                        ProcessingContext jParams) throws E=
xception;
 =

     public abstract JahiaObjectManager getJahiaObjectMgr();
+    =

+    /**
+     * Returns child object keys of objects that implement TimeBasedPublis=
hingJahiaObject interface
+     * =

+     * @param user
+     * @param loadRequest
+     * @param operationMode
+     * @return
+     */
+    public abstract Collection getChildObjectKeysForTimeBasedPublishing(
+            ObjectKey jahiaObjectKey, JahiaUser user,
+            EntryLoadRequest loadRequest, String operationMode)
+            throws JahiaException;    =

+    =

+    /**
+     * Returns the parent object key of the current object for timebased p=
ublishing
+     *
+     * @return
+     */
+    public abstract ObjectKey getParentObjectKeyForTimeBasedPublishing(Obj=
ectKey jahiaObjectKey,
+            JahiaUser user, EntryLoadRequest loadRequest, String operation=
Mode)
+            throws JahiaException;    =

+    =

+    /**
+     * Returns the parent object key of the current object for timebased p=
ublishing
+     */
+    public abstract ObjectKey getParentObjectKeyForTimeBasedPublishing(Obj=
ectKey jahiaObjectKey,
+            JahiaUser user, EntryLoadRequest loadRequest, String operation=
Mode,
+            boolean withoutInheritedRule) throws JahiaException;    =

 =

 }

Added: trunk/core/src/webapp/WEB-INF/var/patches/sql/mssql/retrule-cleanup_=
19437.sql
URL: https://svndev.jahia.net/websvn/filedetails.php?path=3D/trunk/core/src=
/webapp/WEB-INF/var/patches/sql/mssql/retrule-cleanup_19437.sql&rev=3D19447=
&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/webapp/WEB-INF/var/patches/sql/mssql/retrule-cleanup_194=
37.sql (added)
+++ trunk/core/src/webapp/WEB-INF/var/patches/sql/mssql/retrule-cleanup_194=
37.sql Wed Jan  2 19:03:07 2008
@@ -0,0 +1,3 @@
+update jahia_obj set retrule_jahia_obj=3Dnull where retrule_jahia_obj in (=
SELECT id_jahia_retrule FROM jahia_retrule where settings_retrule like '%<i=
nherit-from-parent>true</inherit-from-parent>%');
+delete from jahia_retrule_range where id_retrule_range in (SELECT id_jahia=
_retrule FROM jahia_retrule where settings_retrule like '%<inherit-from-par=
ent>true</inherit-from-parent>%');
+delete from jahia_retrule where settings_retrule like '%<inherit-from-pare=
nt>true</inherit-from-parent>%';
\ No newline at end of file

Added: trunk/core/src/webapp/WEB-INF/var/patches/sql/mysql/retrule-cleanup_=
19437.sql
URL: https://svndev.jahia.net/websvn/filedetails.php?path=3D/trunk/core/src=
/webapp/WEB-INF/var/patches/sql/mysql/retrule-cleanup_19437.sql&rev=3D19447=
&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/webapp/WEB-INF/var/patches/sql/mysql/retrule-cleanup_194=
37.sql (added)
+++ trunk/core/src/webapp/WEB-INF/var/patches/sql/mysql/retrule-cleanup_194=
37.sql Wed Jan  2 19:03:07 2008
@@ -0,0 +1,3 @@
+update jahia_obj set retrule_jahia_obj=3Dnull where retrule_jahia_obj in (=
SELECT id_jahia_retrule FROM jahia_retrule where settings_retrule like '%<i=
nherit-from-parent>true</inherit-from-parent>%');
+delete from jahia_retrule_range where id_retrule_range in (SELECT id_jahia=
_retrule FROM jahia_retrule where settings_retrule like '%<inherit-from-par=
ent>true</inherit-from-parent>%');
+delete from jahia_retrule where settings_retrule like '%<inherit-from-pare=
nt>true</inherit-from-parent>%';
\ No newline at end of file

Added: trunk/core/src/webapp/WEB-INF/var/patches/sql/oracle/retrule-cleanup=
_19437.sql
URL: https://svndev.jahia.net/websvn/filedetails.php?path=3D/trunk/core/src=
/webapp/WEB-INF/var/patches/sql/oracle/retrule-cleanup_19437.sql&rev=3D1944=
7&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/webapp/WEB-INF/var/patches/sql/oracle/retrule-cleanup_19=
437.sql (added)
+++ trunk/core/src/webapp/WEB-INF/var/patches/sql/oracle/retrule-cleanup_19=
437.sql Wed Jan  2 19:03:07 2008
@@ -0,0 +1,3 @@
+update jahia_obj set retrule_jahia_obj=3Dnull where retrule_jahia_obj in (=
SELECT id_jahia_retrule FROM jahia_retrule where settings_retrule like '%<i=
nherit-from-parent>true</inherit-from-parent>%');
+delete from jahia_retrule_range where id_retrule_range in (SELECT id_jahia=
_retrule FROM jahia_retrule where settings_retrule like '%<inherit-from-par=
ent>true</inherit-from-parent>%');
+delete from jahia_retrule where settings_retrule like '%<inherit-from-pare=
nt>true</inherit-from-parent>%';
\ No newline at end of file

Added: trunk/core/src/webapp/WEB-INF/var/patches/sql/postgresql/retrule-cle=
anup_19437.sql
URL: https://svndev.jahia.net/websvn/filedetails.php?path=3D/trunk/core/src=
/webapp/WEB-INF/var/patches/sql/postgresql/retrule-cleanup_19437.sql&rev=3D=
19447&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/webapp/WEB-INF/var/patches/sql/postgresql/retrule-cleanu=
p_19437.sql (added)
+++ trunk/core/src/webapp/WEB-INF/var/patches/sql/postgresql/retrule-cleanu=
p_19437.sql Wed Jan  2 19:03:07 2008
@@ -0,0 +1,3 @@
+update jahia_obj set retrule_jahia_obj=3Dnull where retrule_jahia_obj in (=
SELECT id_jahia_retrule FROM jahia_retrule where settings_retrule like '%<i=
nherit-from-parent>true</inherit-from-parent>%');
+delete from jahia_retrule_range where id_retrule_range in (SELECT id_jahia=
_retrule FROM jahia_retrule where settings_retrule like '%<inherit-from-par=
ent>true</inherit-from-parent>%');
+delete from jahia_retrule where settings_retrule like '%<inherit-from-pare=
nt>true</inherit-from-parent>%';
\ No newline at end of file

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

Reply via email to