package is.idega.idegaweb.egov.bpm.cases.email.business;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.context.ApplicationEvent;
import org.springframework.context.ApplicationListener;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Service;
import com.idega.block.email.client.business.ApplicationEmailEvent;
import com.idega.bpm.exe.DefaultBPMProcessInstanceW;
import com.idega.bpm.xformsview.IXFormViewFactory;
import com.idega.core.file.tmp.TmpFileResolver;
import com.idega.core.file.tmp.TmpFileResolverType;
import com.idega.core.file.tmp.TmpFilesManager;
import com.idega.idegaweb.egov.bpm.data.dao.CasesBPMDAO;
import com.idega.jbpm.BPMContext;
import com.idega.jbpm.exe.BPMFactory;
/**
* Event's handler calls another thread {@link EmailMessagesAttacherWorker} to parse and attach email(s)
*
* @author <a href="mailto:civilis@idega.com">Vytautas Čivilis</a>
* @version $Revision: 1.1 $ Last modified: $Date: 2009/04/22 12:56:21 $ by $Author: valdas $
*/
@Scope(BeanDefinition.SCOPE_SINGLETON)
@Service
public class EmailMessagesAttacher implements ApplicationListener {
private CasesBPMDAO casesBPMDAO;
private BPMContext idegaJbpmContext;
private BPMFactory bpmFactory;
private IXFormViewFactory xfvFact;
private TmpFilesManager fileUploadManager;
private TmpFileResolver uploadedResourceResolver;
protected static final String email_fetch_process_name = DefaultBPMProcessInstanceW.email_fetch_process_name;
public void onApplicationEvent(ApplicationEvent ae) {
if (!(ae instanceof ApplicationEmailEvent)) {
return;
}
Thread worker = new Thread(new EmailMessagesAttacherWorker((ApplicationEmailEvent) ae));
worker.start();
}
public CasesBPMDAO getCasesBPMDAO() {
return casesBPMDAO;
}
@Autowired
public void setCasesBPMDAO(CasesBPMDAO casesBPMDAO) {
this.casesBPMDAO = casesBPMDAO;
}
public BPMContext getIdegaJbpmContext() {
return idegaJbpmContext;
}
@Autowired
public void setIdegaJbpmContext(BPMContext idegaJbpmContext) {
this.idegaJbpmContext = idegaJbpmContext;
}
public BPMFactory getBpmFactory() {
return bpmFactory;
}
@Autowired
public void setBpmFactory(BPMFactory bpmFactory) {
this.bpmFactory = bpmFactory;
}
public IXFormViewFactory getXfvFact() {
return xfvFact;
}
@Autowired
public void setXfvFact(IXFormViewFactory xfvFact) {
this.xfvFact = xfvFact;
}
public TmpFilesManager getFileUploadManager() {
return fileUploadManager;
}
@Autowired
public void setFileUploadManager(TmpFilesManager fileUploadManager) {
this.fileUploadManager = fileUploadManager;
}
public TmpFileResolver getUploadedResourceResolver() {
return uploadedResourceResolver;
}
@Autowired
public void setUploadedResourceResolver(
@TmpFileResolverType("defaultResolver") TmpFileResolver uploadedResourceResolver) {
this.uploadedResourceResolver = uploadedResourceResolver;
}
}