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