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

Reply via email to