tdraier 2006/01/09 12:11:29 CET
Modified files:
core/src/java/org/jahia/services/importexport
ActivationContentPickerJob.java
ActivationContentPickerListener.java
Log:
content pick as a job
Revision Changes Path
1.2 +95 -6
jahia/core/src/java/org/jahia/services/importexport/ActivationContentPickerJob.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/importexport/ActivationContentPickerJob.java.diff?r1=1.1&r2=1.2&f=h
1.3 +16 -99
jahia/core/src/java/org/jahia/services/importexport/ActivationContentPickerListener.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/importexport/ActivationContentPickerListener.java.diff?r1=1.2&r2=1.3&f=h
Index: ActivationContentPickerJob.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/services/importexport/ActivationContentPickerJob.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ActivationContentPickerJob.java 6 Jan 2006 13:11:08 -0000 1.1
+++ ActivationContentPickerJob.java 9 Jan 2006 11:11:29 -0000 1.2
@@ -20,13 +20,14 @@
import org.jahia.services.scheduler.BackgroundJob;
import java.util.*;
+import java.io.OutputStreamWriter;
/**
* Created by IntelliJ IDEA.
* Date: 25 oct. 2005 - 16:34:07
*
* @author toto
- * @version $Id: ActivationContentPickerJob.java,v 1.1 2006/01/06 13:11:08
tdraier Exp $
+ * @version $Id: ActivationContentPickerJob.java,v 1.2 2006/01/09 11:11:29
tdraier Exp $
*/
public class ActivationContentPickerJob extends BackgroundJob {
private static org.apache.log4j.Logger logger =
@@ -34,20 +35,108 @@
private static ThreadLocal isInContentPickJob = new ThreadLocal();
- public synchronized void executeJahiaJob(JobExecutionContext
jobExecutionContext, ProcessingContext context) throws Exception {
+ public synchronized void executeJahiaJob(JobExecutionContext
jobExecutionContext, ProcessingContext jParams) throws Exception {
JobDataMap jobDataMap =
jobExecutionContext.getJobDetail().getJobDataMap();
ImportExportService ie =
ServicesRegistry.getInstance().getImportExportService();
- String eventType = (String) jobDataMap.get("event");
- String language = context.getCurrentLocale().toString();
+ String pickerKey = (String) jobDataMap.get("picker");
+ ContentObject picker =
ContentObject.getContentObjectInstance(ObjectKey.getInstance(pickerKey));
+ Set langs = (Set) jobDataMap.get("langs");
+
+ DataWriter dw = new DataWriter(new OutputStreamWriter(System.out,
"UTF-8"));
+
+ ContentObject pickedObject =
picker.getPickedObject(StructuralRelationship.ACTIVATION_PICKER_LINK);
+
+ Set files = new HashSet();
+ JahiaUser oldUser = jParams.getUser();
+ try {
+ JahiaSite destSite =
ServicesRegistry.getInstance().getJahiaSitesService().getSite(picker.getSiteID());
+ setUser(picker, destSite, jParams, oldUser);
+
+ checkFilesInChildren(pickedObject, jParams, ie, destSite);
+
+ for (Iterator iterator2 = langs.iterator();
iterator2.hasNext();) {
+ String lang = (String) iterator2.next();
+
+ Map froms = new HashMap();
+ getFroms(froms, lang, picker, jParams);
+
+ long now = System.currentTimeMillis() / 1000;
+ EntryLoadRequest toLoadRequest = new
EntryLoadRequest(EntryLoadRequest.VERSIONED_WORKFLOW_STATE, new
Long(now).intValue(), jParams.getLocales());
+ toLoadRequest.setWithDeleted(true);
+// System.out.println("---------->
"+froms);
+// System.out.println("---------->
"+toLoadRequest);
+ ie.export(pickedObject, lang, dw, files, jParams, null,
toLoadRequest, froms, StructuralRelationship.ACTIVATION_PICKER_LINK);
+ ImportHandler handler = new ImportHandler(picker,jParams,
lang, destSite);
+ handler.setCopyUuid(true);
+ ie.export(pickedObject, lang, handler, files, jParams, null,
toLoadRequest, froms, StructuralRelationship.ACTIVATION_PICKER_LINK);
+ }
+ } catch (Throwable t) {
+ logger.error("Error when content picking content",t);
+ } finally {
+ jParams.setTheUser(oldUser);
+ }
+ }
+
+ private void checkFilesInChildren(ContentObject source,
ProcessingContext context, ImportExportService ie, JahiaSite destSite) throws
JahiaException {
+ if (source instanceof ContentFileField) {
+ JahiaSite sourceSite =
ServicesRegistry.getInstance().getJahiaSitesService().getSite(source.getSiteID());
+ String path = ((ContentFileField)source).getValue(context,
EntryLoadRequest.CURRENT);
+ DAVFileAccess sourceFile = new DAVFileAccess(context,
sourceSite, context.getUser(), path);
+ ie.ensureFile(sourceFile, context, destSite);
+ }
+ List childs =
source.getChilds(null,context.getEntryLoadRequest(),null);
+ for (Iterator iterator1 = childs.iterator(); iterator1.hasNext();) {
+ ContentObject child = (ContentObject) iterator1.next();
+ checkFilesInChildren(child, context, ie, destSite);
+ }
+ }
+
+
- JahiaUser oldUser = context.getUser();
+ private void setUser(ContentObject picker, JahiaSite site,
ProcessingContext jParams, JahiaUser oldUser) throws JahiaException {
+ ContentObject container = picker;
+ while (!(container instanceof ContentContainer) && container !=
null) {
+ container = container.getParent(null);
+ }
+
+ JahiaGroup admins =
ServicesRegistry.getInstance().getJahiaGroupManagerService().lookupGroup(site.getID(),
JahiaGroupManagerService.ADMINISTRATORS_GROUPNAME);
+ JahiaUser admin = (JahiaUser) admins.members().nextElement();
+
+ if (admin != null) {
+ jParams.setTheUser(admin);
+ } else {
+ jParams.setTheUser(oldUser);
+ }
+ }
+
+
+ private void getFroms (Map m, String lang, ContentObject o,
ProcessingContext jParams) throws JahiaException {
+ List l = o.getChilds(null, EntryLoadRequest.STAGED, null);
+ for (Iterator iterator = l.iterator(); iterator.hasNext();) {
+ ContentObject child = (ContentObject) iterator.next();
+ getFroms(m, lang, child, jParams);
+ }
+
+ String name;
+ if (o.isShared()) {
+ name = "lastPickedVersion";
+ } else {
+ name = "lastPickedVersion-" + lang;
+ }
+ String last = o.getProperty(name);
+ if (last != null) {
+ m.put(o.getProperty("uuid"), new
EntryLoadRequest(EntryLoadRequest.VERSIONED_WORKFLOW_STATE,
Integer.parseInt(last), jParams.getLocales()));
+ }
}
}
/**
*$Log: ActivationContentPickerJob.java,v $
+ *Revision 1.2 2006/01/09 11:11:29 tdraier
+ *content pick as a job
+ *
*Revision 1.1 2006/01/06 13:11:08 tdraier
*content picker and workflow updates
*
Index: ActivationContentPickerListener.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/services/importexport/ActivationContentPickerListener.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ActivationContentPickerListener.java 6 Jan 2006 18:21:43 -0000
1.2
+++ ActivationContentPickerListener.java 9 Jan 2006 11:11:29 -0000
1.3
@@ -32,7 +32,7 @@
* User: toto
* Date: 26 avr. 2005
* Time: 12:15:52
- * @version $Id: ActivationContentPickerListener.java,v 1.2 2006/01/06
18:21:43 tdraier Exp $
+ * @version $Id: ActivationContentPickerListener.java,v 1.3 2006/01/09
11:11:29 tdraier Exp $
*/
public class ActivationContentPickerListener extends JahiaEventListener {
private static org.apache.log4j.Logger logger =
@@ -67,54 +67,19 @@
ContentObject parentPicker =
picker.getParent(null, EntryLoadRequest.STAGED, null);
if (parentPicker != null &&
parentPicker.getPickedObject(StructuralRelationship.ACTIVATION_PICKER_LINK) ==
null) {
+ Set langs = event.getLanguageCodes();
-// String pickerKey =
picker.getObjectKey().toString();
-//
-// JobDetail jobDetail =
BackgroundJob.createJahiaJob("Propagate changes to "+pickerKey,
ActivationContentPickerJob.class, jParams);
-//
-// JobDataMap jobDataMap;
-// jobDataMap = jobDetail.getJobDataMap();
-// jobDataMap.put("langs",
event.getLanguageCodes());
-// jobDataMap.put("picker",
picker.getObjectKey().toString());
-//
-// SchedulerService schedulerServ =
ServicesRegistry.getInstance().getSchedulerService();
-// schedulerServ.scheduleJobNow(jobDetail);
-
- DataWriter dw = new DataWriter(new
OutputStreamWriter(System.out, "UTF-8"));
-
- ContentObject pickedObject =
picker.getPickedObject(StructuralRelationship.ACTIVATION_PICKER_LINK);
-
- Set files = new HashSet();
- JahiaUser oldUser = jParams.getUser();
- try {
- JahiaSite destSite =
ServicesRegistry.getInstance().getJahiaSitesService().getSite(picker.getSiteID());
- setUser(picker, destSite, jParams,
oldUser);
-
- checkFilesInChildren(pickedObject,
jParams, ie, destSite);
-
- Set langs = event.getLanguageCodes();
- for (Iterator iterator2 =
langs.iterator(); iterator2.hasNext();) {
- String lang = (String)
iterator2.next();
-
- Map froms = new HashMap();
- getFroms(froms, lang, picker,
jParams);
-
- long now =
System.currentTimeMillis() / 1000;
- EntryLoadRequest toLoadRequest = new
EntryLoadRequest(EntryLoadRequest.VERSIONED_WORKFLOW_STATE, new
Long(now).intValue(), jParams.getLocales());
- toLoadRequest.setWithDeleted(true);
-// System.out.println("---------->
"+froms);
-// System.out.println("---------->
"+toLoadRequest);
- ie.export(pickedObject, lang, dw,
files, jParams, null, toLoadRequest, froms,
StructuralRelationship.ACTIVATION_PICKER_LINK);
- ImportHandler handler = new
ImportHandler(picker,jParams, lang, destSite);
- handler.setCopyUuid(true);
- ie.export(pickedObject, lang,
handler, files, jParams, null, toLoadRequest, froms,
StructuralRelationship.ACTIVATION_PICKER_LINK);
- }
- } catch (Throwable t) {
- logger.error("Error when content picking
content",t);
- } finally {
- jParams.setTheUser(oldUser);
- }
+ String pickerKey =
picker.getObjectKey().toString();
+ JobDetail jobDetail =
BackgroundJob.createJahiaJob("Propagate changes to "+pickerKey,
ActivationContentPickerJob.class, jParams);
+
+ JobDataMap jobDataMap;
+ jobDataMap = jobDetail.getJobDataMap();
+ jobDataMap.put("langs", langs);
+ jobDataMap.put("picker",
picker.getObjectKey().toString());
+
+ SchedulerService schedulerServ =
ServicesRegistry.getInstance().getSchedulerService();
+ schedulerServ.scheduleJobNow(jobDetail);
break;
}
picker = parentPicker;
@@ -127,58 +92,6 @@
}
}
- private void checkFilesInChildren(ContentObject source,
ProcessingContext context, ImportExportService ie, JahiaSite destSite) throws
JahiaException {
- if (source instanceof ContentFileField) {
- JahiaSite sourceSite =
ServicesRegistry.getInstance().getJahiaSitesService().getSite(source.getSiteID());
- String path = ((ContentFileField)source).getValue(context,
EntryLoadRequest.CURRENT);
- DAVFileAccess sourceFile = new DAVFileAccess(context,
sourceSite, context.getUser(), path);
- ie.ensureFile(sourceFile, context, destSite);
- }
- List childs =
source.getChilds(null,context.getEntryLoadRequest(),null);
- for (Iterator iterator1 = childs.iterator(); iterator1.hasNext();) {
- ContentObject child = (ContentObject) iterator1.next();
- checkFilesInChildren(child, context, ie, destSite);
- }
- }
-
-
-
- private void setUser(ContentObject picker, JahiaSite site,
ProcessingContext jParams, JahiaUser oldUser) throws JahiaException {
- ContentObject container = picker;
- while (!(container instanceof ContentContainer) && container !=
null) {
- container = container.getParent(null);
- }
-
- JahiaGroup admins =
ServicesRegistry.getInstance().getJahiaGroupManagerService().lookupGroup(site.getID(),
JahiaGroupManagerService.ADMINISTRATORS_GROUPNAME);
- JahiaUser admin = (JahiaUser) admins.members().nextElement();
-
- if (admin != null) {
- jParams.setTheUser(admin);
- } else {
- jParams.setTheUser(oldUser);
- }
- }
-
-
- private void getFroms (Map m, String lang, ContentObject o,
ProcessingContext jParams) throws JahiaException {
- List l = o.getChilds(null, EntryLoadRequest.STAGED, null);
- for (Iterator iterator = l.iterator(); iterator.hasNext();) {
- ContentObject child = (ContentObject) iterator.next();
- getFroms(m, lang, child, jParams);
- }
-
- String name;
- if (o.isShared()) {
- name = "lastPickedVersion";
- } else {
- name = "lastPickedVersion-" + lang;
- }
- String last = o.getProperty(name);
- if (last != null) {
- m.put(o.getProperty("uuid"), new
EntryLoadRequest(EntryLoadRequest.VERSIONED_WORKFLOW_STATE,
Integer.parseInt(last), jParams.getLocales()));
- }
- }
-
public void contentActivation(ContentActivationEvent theEvent) {
try {
@@ -193,10 +106,14 @@
logger.error("Error",e);
}
}
+
}
/**
* $Log: ActivationContentPickerListener.java,v $
+* Revision 1.3 2006/01/09 11:11:29 tdraier
+* content pick as a job
+*
* Revision 1.2 2006/01/06 18:21:43 tdraier
* multi-sites and user fix
*