Author: tdraier
Date: Tue Jul 17 16:19:10 2007
New Revision: 18026

URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D18026&repname=
=3Djahia
Log:
optimized container and containerlist validation

Modified:
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/hibernate/dao/Jahi=
aContainerDAO.java
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/hibernate/dao/Jahi=
aContainerListDAO.java
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/hibernate/manager/=
JahiaContainerListManager.java
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/hibernate/manager/=
JahiaContainerManager.java

Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/hibernate/da=
o/JahiaContainerDAO.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/hibernate/dao/JahiaContainerDAO.java&rev=3D=
18026&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
--- branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/hibernate/dao/Jahi=
aContainerDAO.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/hibernate/dao/Jahi=
aContainerDAO.java Tue Jul 17 16:19:10 2007
@@ -875,6 +875,19 @@
         hibernateTemplate.flush();
     }
 =

+    public void mergeVersion(JahiaContainer container) {
+        HibernateTemplate hibernateTemplate =3D getHibernateTemplate();
+        hibernateTemplate.setFlushMode(HibernateTemplate.FLUSH_AUTO);
+        hibernateTemplate.merge(container);
+    }
+
+    public void saveNewVersion(JahiaContainer container) {
+        HibernateTemplate hibernateTemplate =3D getHibernateTemplate();
+        hibernateTemplate.setFlushMode(HibernateTemplate.FLUSH_AUTO);
+        hibernateTemplate.save(container);
+    }
+
+
     public void update(JahiaContainer container) {
         final HibernateTemplate hibernateTemplate =3D getHibernateTemplate=
();
         hibernateTemplate.setFlushMode(HibernateTemplate.FLUSH_AUTO);

Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/hibernate/da=
o/JahiaContainerListDAO.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/hibernate/dao/JahiaContainerListDAO.java&re=
v=3D18026&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
--- branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/hibernate/dao/Jahi=
aContainerListDAO.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/hibernate/dao/Jahi=
aContainerListDAO.java Tue Jul 17 16:19:10 2007
@@ -46,7 +46,7 @@
 =

 // -------------------------- OTHER METHODS --------------------------
 =

-    public void backupContainer(Integer containerID, Long versionID) {
+    public void backupContainerList(Integer containerID, Long versionID) {
         try {
             JahiaContainerList container =3D (JahiaContainerList) loadPubl=
ishedContainerList(containerID);
             if (container !=3D null && !container.getComp_id().getVersionI=
d().equals(versionID)) {
@@ -699,6 +699,18 @@
         }
     }
 =

+    public void mergeVersion(JahiaContainerList containerList) {
+        final HibernateTemplate hibernateTemplate =3D getHibernateTemplate=
();
+        hibernateTemplate.setFlushMode(HibernateTemplate.FLUSH_AUTO);
+        hibernateTemplate.merge(containerList);
+    }
+
+    public void saveNewVersion(JahiaContainerList containerList) {
+        final HibernateTemplate hibernateTemplate =3D getHibernateTemplate=
();
+        hibernateTemplate.setFlushMode(HibernateTemplate.FLUSH_AUTO);
+        hibernateTemplate.save(containerList);
+    }
+
     public void update(JahiaContainerList containerList) {
         HibernateTemplate template =3D getHibernateTemplate();
         template.setFlushMode(HibernateTemplate.FLUSH_AUTO);

Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/hibernate/ma=
nager/JahiaContainerListManager.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/hibernate/manager/JahiaContainerListManager=
.java&rev=3D18026&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
--- branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/hibernate/manager/=
JahiaContainerListManager.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/hibernate/manager/=
JahiaContainerListManager.java Tue Jul 17 16:19:10 2007
@@ -29,7 +29,6 @@
 import org.jahia.hibernate.dao.*;
 import org.jahia.hibernate.model.JahiaContainerList;
 import org.jahia.hibernate.model.JahiaCtnListPK;
-import org.jahia.hibernate.model.JahiaPagesData;
 import org.jahia.services.cache.Cache;
 import org.jahia.services.cache.CacheService;
 import org.jahia.services.cache.GroupCacheKey;
@@ -40,6 +39,7 @@
 import org.jahia.services.version.JahiaSaveVersion;
 import org.jahia.spring.advice.CacheAdvice;
 import org.springframework.orm.ObjectRetrievalFailureException;
+import org.springframework.orm.hibernate3.HibernateTemplate;
 =

 import java.util.*;
 =

@@ -214,7 +214,7 @@
                 dao.deleteContainerLists(stagedContainers);
             }
         } else if (saveVersion.isVersioned()) {
-            dao.backupContainer(new Integer(containerId), new Long(saveVer=
sion.getVersionID()));
+            dao.backupContainerList(new Integer(containerId), new Long(sav=
eVersion.getVersionID()));
             dao.deleteContainerList(container);
             try {
                 org.jahia.hibernate.model.JahiaContainer jahiaContainer =
=3D
@@ -532,7 +532,7 @@
             pk.setVersionId(new Long(0));
         } else {
             if (saveVersion.isVersioned()) {
-                dao.backupContainer(new Integer(containerList.getID()), ne=
w Long(saveVersion.getVersionID()));
+                dao.backupContainerList(new Integer(containerList.getID())=
, new Long(saveVersion.getVersionID()));
             }
             pk.setWorkflowState(new Integer(1));
             pk.setVersionId(new Long(saveVersion.getVersionID()));
@@ -556,54 +556,59 @@
                    jahiaContainerList.getContainerDefinition().getName());
     }
 =

-    public void validateStagedContainerList(int containerId, JahiaSaveVers=
ion saveVersion) {
-        JahiaContainerList container =3D null;
+    public void validateStagedContainerList(int containerListId, JahiaSave=
Version saveVersion) {
+        JahiaContainerList containerList =3D null;
         try {
-            container =3D dao.loadStagedContainerList(new Integer(containe=
rId));
+            containerList =3D dao.loadStagedContainerList(new Integer(cont=
ainerListId));
         } catch (ObjectRetrievalFailureException e) {
         }
-        if (container !=3D null) {
-            JahiaContainerList publishedContainer =3D dao.loadPublishedCon=
tainerList(new Integer(containerId));
+        if (containerList !=3D null) {
+            JahiaContainerList publishedContainer =3D dao.loadPublishedCon=
tainerList(new Integer(containerListId));
 =

             int versionID =3D saveVersion.getVersionID();
-            boolean isDeleted =3D (container.getComp_id().getVersionId().i=
ntValue() =3D=3D -1);
+            boolean isDeleted =3D (containerList.getComp_id().getVersionId=
().intValue() =3D=3D -1);
 =

-            if ((publishedContainer !=3D null) && ((int)publishedContainer=
.getComp_id().getVersionId().longValue() =3D=3D saveVersion.getVersionID())=
 && !isDeleted) {
+            if ((publishedContainer !=3D null) && ((int)publishedContainer=
.getComp_id().getVersionId().longValue() =3D=3D versionID) && !isDeleted) {
                 try {
-                    JahiaContainerList jahiaContainer =3D (JahiaContainerL=
ist) container.clone();
-                    jahiaContainer.getComp_id().setVersionId(new Long(vers=
ionID));
-                    jahiaContainer.getComp_id().setWorkflowState(new Integ=
er(1));
-                    dao.save(jahiaContainer);
+                    JahiaContainerList jahiaContainerList =3D (JahiaContai=
nerList) containerList.clone();
+                    jahiaContainerList.getComp_id().setVersionId(new Long(=
versionID));
+                    jahiaContainerList.getComp_id().setWorkflowState(new I=
nteger(1));
+                    dao.mergeVersion(jahiaContainerList);
                 } catch (CloneNotSupportedException e) {
                     log.error("Could not clone org.jahia.hibernate.model.J=
ahiaContainer");
                 }
             } else {
                 // We have something to validate
                 if (saveVersion.isVersioned()) {
-                    dao.backupContainer(new Integer(containerId),new Long(=
saveVersion.getVersionID()));
+                    try {
+                        if (publishedContainer !=3D null && !publishedCont=
ainer.getComp_id().getVersionId().equals(new Long(versionID))) {
+                            JahiaContainerList jahiaContainerList =3D (Jah=
iaContainerList) publishedContainer.clone();
+                            jahiaContainerList.getComp_id().setWorkflowSta=
te(new Integer(0));
+                            dao.saveNewVersion(jahiaContainerList);
+                        }
+                    } catch (CloneNotSupportedException e) {
+                        log.error("Could not clone JahiaContainerList");
+                    }
                 }
 =

                 // Is it a delete
+                if (publishedContainer !=3D null) {
+                    dao.deleteContainerList(publishedContainer);
+                }               =

                 if (isDeleted) {
-                    if (publishedContainer !=3D null) {
-                        dao.deleteContainerList(publishedContainer);
-                    }
                     if (saveVersion.isVersioned()) {
                         try {
-                            JahiaContainerList jahiaContainer =3D (JahiaCo=
ntainerList) container.clone();
+                            JahiaContainerList jahiaContainer =3D (JahiaCo=
ntainerList) containerList.clone();
                             jahiaContainer.getComp_id().setVersionId(new L=
ong(versionID));
                             jahiaContainer.getComp_id().setWorkflowState(n=
ew Integer(-1));
-                            dao.save(jahiaContainer);
+                            dao.saveNewVersion(jahiaContainer);
                         } catch (CloneNotSupportedException e) {
                             log.error("Could not clone org.jahia.hibernate=
.model.JahiaContainer");
                         }
                     }
                 } else {
-                    if (publishedContainer !=3D null) {
-                        dao.deleteContainerList(publishedContainer);
-                    }
                     try {
-                        JahiaContainerList jahiaContainer =3D (JahiaContai=
nerList) container.clone();
+                        JahiaContainerList jahiaContainer =3D (JahiaContai=
nerList) containerList.clone();
                         jahiaContainer.getComp_id().setVersionId(new Long(=
versionID));
                         jahiaContainer.getComp_id().setWorkflowState(new I=
nteger(1));
                         dao.save(jahiaContainer);
@@ -612,12 +617,11 @@
                     }
                 }
             }
-            List stagedContainers =3D dao.loadStagedContainerLists(new Int=
eger(containerId));
-            if (stagedContainers !=3D null && stagedContainers.size() > 0)
-                dao.deleteContainerLists(stagedContainers);
 =

-            flushCache(containerId, container.getContainerDefinition().get=
JahiaSite().getId().intValue(),
-                   container.getContainerDefinition().getName());
+            dao.deleteContainerList(containerList);
+
+            flushCache(containerListId, containerList.getContainerDefiniti=
on().getJahiaSite().getId().intValue(),
+                   containerList.getContainerDefinition().getName());
         }
     }
 =


Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/hibernate/ma=
nager/JahiaContainerManager.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/hibernate/manager/JahiaContainerManager.jav=
a&rev=3D18026&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
--- branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/hibernate/manager/=
JahiaContainerManager.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/hibernate/manager/=
JahiaContainerManager.java Tue Jul 17 16:19:10 2007
@@ -891,35 +891,62 @@
         } catch (ObjectRetrievalFailureException e) {
         }
         if (container !=3D null) {
-            // We have something to validate
-            if (saveVersion.isVersioned()) {
-                dao.backupContainer(new Integer(containerId));
-            }
-            // Is it a delete
-            if (container.getComp_id().getVersionId().intValue() =3D=3D -1=
) {
+            org.jahia.hibernate.model.JahiaContainer publishedContainer =
=3D dao.loadPublishedContainer(new Integer(containerId));
+
+            int versionID =3D saveVersion.getVersionID();
+            boolean isDeleted =3D container.getComp_id().getVersionId().in=
tValue() =3D=3D -1;
+
+            if ((publishedContainer !=3D null) && ((int)publishedContainer=
.getComp_id().getVersionId().longValue() =3D=3D versionID) && !isDeleted) {
+                try {
+                    org.jahia.hibernate.model.JahiaContainer  jahiaContain=
er =3D ( org.jahia.hibernate.model.JahiaContainer) container.clone();
+                    jahiaContainer.getComp_id().setVersionId(new Long(vers=
ionID));
+                    jahiaContainer.getComp_id().setWorkflowState(new Integ=
er(1));
+                    dao.mergeVersion(jahiaContainer);
+                } catch (CloneNotSupportedException e) {
+                    log.error("Could not clone org.jahia.hibernate.model.J=
ahiaContainer");
+                }
+            } else {
+                // We have something to validate
                 if (saveVersion.isVersioned()) {
                     try {
+                        if (publishedContainer !=3D null && !publishedCont=
ainer.getComp_id().getVersionId().equals(new Long(versionID))) {
+                            org.jahia.hibernate.model.JahiaContainer jahia=
Container =3D (org.jahia.hibernate.model.JahiaContainer) publishedContainer=
.clone();
+                            jahiaContainer.getComp_id().setWorkflowState(n=
ew Integer(0));
+                            dao.saveNewVersion(jahiaContainer);
+                        }
+                    } catch (CloneNotSupportedException e) {
+                        log.error("Could not clone JahiaContainer");
+                    }
+                }
+                // Is it a delete
+                if (publishedContainer !=3D null) {
+                    dao.deleteContainer(publishedContainer);
+                }
+                if (isDeleted) {
+                    if (saveVersion.isVersioned()) {
+                        try {
+                            org.jahia.hibernate.model.JahiaContainer jahia=
Container =3D (org.jahia.hibernate.model.JahiaContainer) container.clone();
+                            jahiaContainer.getComp_id().setVersionId(new L=
ong(saveVersion.getVersionID()));
+                            jahiaContainer.getComp_id().setWorkflowState(n=
ew Integer(-1));
+                            dao.saveNewVersion(jahiaContainer);
+                        } catch (CloneNotSupportedException e) {
+                            log.error("Could not clone org.jahia.hibernate=
.model.JahiaContainer");
+                        }
+                    }
+                } else {
+                    try {
                         org.jahia.hibernate.model.JahiaContainer jahiaCont=
ainer =3D (org.jahia.hibernate.model.JahiaContainer) container.clone();
                         jahiaContainer.getComp_id().setVersionId(new Long(=
saveVersion.getVersionID()));
-                        jahiaContainer.getComp_id().setWorkflowState(new I=
nteger(-1));
+                        jahiaContainer.getComp_id().setWorkflowState(new I=
nteger(1));
                         dao.save(jahiaContainer);
                     } catch (CloneNotSupportedException e) {
                         log.error("Could not clone org.jahia.hibernate.mod=
el.JahiaContainer");
                     }
                 }
-                dao.deleteContainers(dao.loadStagingContainers(new Integer=
(containerId)));
-            } else {
-                dao.deleteContainer(dao.loadPublishedContainer(new Integer=
(containerId)));
-                try {
-                    org.jahia.hibernate.model.JahiaContainer jahiaContaine=
r =3D (org.jahia.hibernate.model.JahiaContainer) container.clone();
-                    jahiaContainer.getComp_id().setVersionId(new Long(save=
Version.getVersionID()));
-                    jahiaContainer.getComp_id().setWorkflowState(new Integ=
er(1));
-                    dao.save(jahiaContainer);
-                } catch (CloneNotSupportedException e) {
-                    log.error("Could not clone org.jahia.hibernate.model.J=
ahiaContainer");
-                }
-                dao.deleteContainers(dao.loadStagedContainers(new Integer(=
containerId)));
             }
+
+            dao.deleteContainer(container);
+            =

             flushCache(containerId, container.getSiteId().intValue(), cont=
ainer.getListid().intValue(), container.getPageid().intValue());
         }
     }

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

Reply via email to