Author: knguyen
Date: Fri Oct 12 11:46:21 2007
New Revision: 18847
URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D18847&repname=
=3Djahia
Log:
JAHIA-2475: fix import and export of Retention Rule with recurrence
Modified:
branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/importexp=
ort/ImportExportBaseService.java
branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/importexp=
ort/ImportHandler.java
branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/importexp=
ort/ImportJob.java
branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/scheduler=
/SchedulerServiceImpl.java
Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/imp=
ortexport/ImportExportBaseService.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/services/importexport/ImportExportBaseServi=
ce.java&rev=3D18847&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/services/importexp=
ort/ImportExportBaseService.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/importexp=
ort/ImportExportBaseService.java Fri Oct 12 11:46:21 2007
@@ -901,6 +901,8 @@
if (to > 0) {
attr.addAttribute(JAHIA_URI, "validTo" , =
"jahia:validTo", "CDATA", df.format(new Date(to)));
}
+ attr.addAttribute(JAHIA_URI, "ruleType" , "ja=
hia:ruleType", "CDATA", r.getRuleType());
+ attr.addAttribute(JAHIA_URI, "ruleSettings" ,=
"jahia:ruleSettings", "CDATA", r.getSettings());
}
} catch (Exception e) {
}
Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/imp=
ortexport/ImportHandler.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/services/importexport/ImportHandler.java&re=
v=3D18847&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/services/importexp=
ort/ImportHandler.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/importexp=
ort/ImportHandler.java Fri Oct 12 11:46:21 2007
@@ -36,6 +36,7 @@
import org.jahia.hibernate.manager.JahiaSiteLanguageListManager;
import org.jahia.hibernate.manager.SpringContextSingleton;
import org.jahia.hibernate.model.JahiaAclEntry;
+import org.jahia.hibernate.model.JahiaRetentionRule;
import org.jahia.params.ProcessingContext;
import org.jahia.registries.JahiaContainerDefinitionsRegistry;
import org.jahia.registries.JahiaFieldDefinitionsRegistry;
@@ -1764,6 +1765,8 @@
if (!(object instanceof ContentField) && !(object instanceof C=
ontentContainerList)) {
String from =3D attr.getValue(ImportExportBaseService.JAHI=
A_URI, "validFrom");
String to =3D attr.getValue(ImportExportBaseService.JAHIA_=
URI, "validTo");
+ String ruleType =3D attr.getValue(ImportExportBaseService.=
JAHIA_URI, "ruleType");
+ String ruleSettings =3D attr.getValue(ImportExportBaseServ=
ice.JAHIA_URI, "ruleSettings");
TimeBasedPublishingService timeBasedPublishingService =3D =
ServicesRegistry.getInstance().getTimeBasedPublishingService();
RetentionRule rule =3D timeBasedPublishingService.getReten=
tionRule(objectKey);
=
@@ -1794,6 +1797,13 @@
rule.setInherited(Boolean.TRUE);
}
}
+ if ( ruleType !=3D null && !"".equals(ruleType.trim())=
){
+ rule.setRuleType(ruleType);
+ }
+ if ( ruleSettings !=3D null && !"".equals(ruleSettings=
.trim()) ){
+ BaseRetentionRule baseRule =3D (BaseRetentionRule)=
rule;
+ baseRule.loadSettings(ruleSettings);
+ } =
}
try {
if (rule !=3D null) {
@@ -1805,10 +1815,24 @@
jahiaObjectDelegate.setObjectKey(objectKey);
jahiaObjectMgr.save(jahiaObjectDelegate);
=
+ try {
+ timeBasedPublishingService.scheduleBackgroundJ=
ob(objectKey,
+ TimeBasedPublishingJob.UPDATE_OPERATIO=
N,rule,jParams);
+ } catch (Exception e) {
+ throw new JahiaException("Error scheduling Ret=
ention Rule at import",
+ "Error scheduling Retention Rule at im=
port",
+ JahiaException.ENGINE_ERROR, JahiaExce=
ption.ERROR_SEVERITY, e);
+ }
+ /*
RetentionRuleEvent event =3D new RetentionRuleEven=
t(this, jParams,
rule.getId().intValue(),RetentionRuleEvent=
.UPDATING_RULE,-1);
ServicesRegistry.getInstance().getJahiaEventServic=
e().fireTimeBasedPublishingStateChange(event);
rule.startJob();
+ */
+ /*
+ if ( rule.getRuleType() !=3D RetentionRule.RULE_ST=
ART_AND_END_DATE ){
+ rule.scheduleNextJob(jParams);
+ }*/
}
} catch (Exception e) {
// [EMAIL PROTECTED]
Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/imp=
ortexport/ImportJob.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/services/importexport/ImportJob.java&rev=3D=
18847&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/services/importexp=
ort/ImportJob.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/importexp=
ort/ImportJob.java Fri Oct 12 11:46:21 2007
@@ -64,10 +64,17 @@
ExtendedImportResult result =3D new ExtendedImportResult();
ContentObject imported =3D null;
if (inputStream !=3D null) {
- if (contentType.indexOf("zip")>0) {
- imported =3D ServicesRegistry.getInstance().getImportExpor=
tService().importFile(target, context, inputStream, true, result);
- } else if ("text/xml".equals(contentType) || "application/xml"=
.equals(contentType)) {
- imported =3D ServicesRegistry.getInstance().getImportExpor=
tService().importDocument(target, context.getLocale().toString(), context, =
inputStream, false, true, result);
+ try {
+ if (contentType.indexOf("zip")>0) {
+ ServicesRegistry.getInstance().getSchedulerService().s=
tartRequest();
+ imported =3D ServicesRegistry.getInstance().getImportE=
xportService().importFile(target, context, inputStream, true, result);
+ } else if ("text/xml".equals(contentType) || "application/=
xml".equals(contentType)) {
+ ServicesRegistry.getInstance().getSchedulerService().s=
tartRequest();
+ imported =3D ServicesRegistry.getInstance().getImportE=
xportService().importDocument(target, context.getLocale().toString(), conte=
xt, inputStream, false, true, result);
+ }
+ } catch ( Throwable t ){
+ } finally {
+ ServicesRegistry.getInstance().getSchedulerService().endRe=
quest(); =
}
}
=
Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/sch=
eduler/SchedulerServiceImpl.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/services/scheduler/SchedulerServiceImpl.jav=
a&rev=3D18847&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/services/scheduler=
/SchedulerServiceImpl.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/scheduler=
/SchedulerServiceImpl.java Fri Oct 12 11:46:21 2007
@@ -345,23 +345,41 @@
}
=
public void startRequest() {
- waitingJobs.set(new ArrayList());
+ synchronized(waitingJobs){
+ waitingJobs.set(new ArrayList());
+ } =
}
=
public void endRequest() throws JahiaException {
- List l =3D (List) waitingJobs.get();
- if (l !=3D null) {
- for (Iterator iterator =3D l.iterator(); iterator.hasNext();) {
- JobDetail jobDetail =3D (JobDetail) iterator.next();
- scheduleJobNow(jobDetail);
+ synchronized(waitingJobs){
+ List l =3D (List) waitingJobs.get();
+ if (l !=3D null) {
+ for (Iterator iterator =3D l.iterator(); iterator.hasNext(=
);) {
+ JobDetail jobDetail =3D (JobDetail) iterator.next();
+ unscheduleJob(jobDetail);
+ scheduleJobNow(jobDetail);
+ }
}
}
}
=
public void scheduleJobAtEndOfRequest(JobDetail jobDetail) {
- List l =3D (List) waitingJobs.get();
- if (l !=3D null) {
- l.add(jobDetail);
+ synchronized(waitingJobs){
+ List l =3D (List) waitingJobs.get();
+ if (l !=3D null) {
+ Iterator it =3D l.iterator();
+ JobDetail jd =3D null;
+ int index =3D 0;
+ while ( it.hasNext() ){
+ index+=3D1;
+ jd =3D (JobDetail)it.next();
+ if ( jd.getFullName().equals(jobDetail.getFullName()) =
){
+ l.set(index-1,jobDetail);
+ return;
+ }
+ }
+ l.add(jobDetail);
+ }
}
}
=
_______________________________________________
cvs_list mailing list
[email protected]
http://lists.jahia.org/cgi-bin/mailman/listinfo/cvs_list