tdraier 2005/11/09 12:14:16 CET
Added files:
core/src/java/org/jahia/services/importexport
BackgroundJob.java
ImportJob.java
Log:
new files for processing server
Revision Changes Path
1.1 +63 -0
jahia/core/src/java/org/jahia/services/importexport/BackgroundJob.java (new)
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/importexport/BackgroundJob.java?rev=1.1&content-type=text/plain
1.1 +44 -0
jahia/core/src/java/org/jahia/services/importexport/ImportJob.java (new)
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/importexport/ImportJob.java?rev=1.1&content-type=text/plain
Index: BackgroundJob.java
====================================================================
package org.jahia.services.importexport;
import org.quartz.*;
import org.jahia.params.ProcessingContext;
import org.jahia.bin.Jahia;
import org.jahia.registries.ServicesRegistry;
import org.jahia.services.sites.JahiaSite;
import org.jahia.services.usermanager.JahiaUser;
import org.jahia.services.pages.ContentPage;
import org.jahia.exceptions.JahiaException;
import org.apache.log4j.Logger;
import java.util.Locale;
/**
* Created by IntelliJ IDEA.
* Date: 25 oct. 2005 - 16:34:07
*
* @author toto
* @version $Id: BackgroundJob.java,v 1.1 2005/11/09 11:14:16 tdraier Exp $
*/
public abstract class BackgroundJob implements StatefulJob {
private final static Logger logger =
Logger.getLogger(BackgroundJob.class);
public static JobDetail createJahiaJob(Class jobClass, ProcessingContext
jParams) {
JobDetail jobDetail = new
JobDetail("Background"+System.currentTimeMillis(), Scheduler.DEFAULT_GROUP,
jobClass);
JobDataMap jobDataMap = new JobDataMap();
jobDataMap.put("sitekey", jParams.getSiteKey());
jobDataMap.put("userkey", jParams.getUser().getUserKey());
jobDataMap.put("pid", Integer.toString(jParams.getPageID()));
jobDataMap.put("currentLocale", jParams.getCurrentLocale());
jobDetail.setJobDataMap(jobDataMap);
return jobDetail;
}
public void execute(JobExecutionContext jobExecutionContext) throws
JobExecutionException {
logger.info("Background job started");
JobDataMap data = jobExecutionContext.getJobDetail().getJobDataMap();
try {
JahiaSite site =
ServicesRegistry.getInstance().getJahiaSitesService().getSiteByKey((String)
data.get("sitekey"));
JahiaUser user =
ServicesRegistry.getInstance().getJahiaUserManagerService().lookupUser((String)
data.get("userkey"));
ContentPage page = ContentPage.getPage(Integer.parseInt((String)
data.get("pid")));
ProcessingContext context = new
ProcessingContext(Jahia.getSettings(), System.currentTimeMillis(), site, user,
page);
context.setCurrentLocale((Locale) data.get("currentLocale"));
Jahia.setThreadParamBean(context);
executeJahiaJob(jobExecutionContext, context);
} catch (Exception e) {
logger.error("Cannot execute job", e);
throw new JobExecutionException(e);
}
logger.info("Background job ended");
}
public abstract void executeJahiaJob(JobExecutionContext
jobExecutionContext, ProcessingContext processingContext)
throws Exception;
}
/**
*$Log $
*/
Index: ImportJob.java
====================================================================
package org.jahia.services.importexport;
import org.quartz.StatefulJob;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.quartz.JobDataMap;
import org.jahia.params.ProcessingContext;
import org.jahia.params.ParamBean;
import org.jahia.bin.Jahia;
import org.jahia.registries.ServicesRegistry;
import org.jahia.tools.files.FileUpload;
import org.jahia.content.ContentObject;
import org.jahia.content.ObjectKey;
import org.jahia.exceptions.JahiaException;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.File;
import java.util.Vector;
import java.util.Enumeration;
/**
* Created by IntelliJ IDEA.
* Date: 25 oct. 2005 - 16:34:07
*
* @author toto
* @version $Id: ImportJob.java,v 1.1 2005/11/09 11:14:16 tdraier Exp $
*/
public class ImportJob extends BackgroundJob {
public void executeJahiaJob(JobExecutionContext jobExecutionContext,
ProcessingContext context) throws Exception {
JobDataMap jobDataMap =
jobExecutionContext.getJobDetail().getJobDataMap();
File file = (File) jobDataMap.get("file");
String contentType = (String) jobDataMap.get("contentType");
ContentObject target =
ContentObject.getContentObjectInstance(ObjectKey.getInstance((String)
jobDataMap.get("target")));
if (contentType.indexOf("zip")>0) {
ServicesRegistry.getInstance().getImportExportService().importFile(target,
context, new FileInputStream(file));
} else if ("text/xml".equals(contentType) ||
"application/xml".equals(contentType)) {
ServicesRegistry.getInstance().getImportExportService().importDocument(target,
context.getLocale().toString(), context, new FileInputStream(file), false);
}
}
}
/**
*$Log $
*/