/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package org.pieShare.pieShareApp.springConfiguration.PieShareApp;
import org.pieShare.pieShareApp.springConfiguration.PiePlateConfiguration;
import org.pieShare.pieShareApp.springConfiguration.PieUtilitiesConfiguration;
import org.pieShare.pieShareApp.task.AMessageSendingTask;
import org.pieShare.pieShareApp.task.commandTasks.loginTask.LoginTask;
import org.pieShare.pieShareApp.task.commandTasks.logoutTask.LogoutTask;
import org.pieShare.pieShareApp.task.commandTasks.resetPwd.ResetPwdTask;
import org.pieShare.pieShareApp.task.eventTasks.conflictTasks.FileChangedTask;
import org.pieShare.pieShareApp.task.eventTasks.conflictTasks.FileDeletedTask;
import org.pieShare.pieShareApp.task.eventTasks.FileListRequestTask;
import org.pieShare.pieShareApp.task.eventTasks.conflictTasks.FileListTask;
import org.pieShare.pieShareApp.task.eventTasks.FileMetaTask;
import org.pieShare.pieShareApp.task.eventTasks.FileRequestTask;
import org.pieShare.pieShareApp.task.eventTasks.FileTransferCompleteTask;
import org.pieShare.pieShareApp.task.eventTasks.MetaCommitTask;
import org.pieShare.pieShareApp.task.eventTasks.conflictTasks.NewFileTask;
import org.pieShare.pieShareApp.task.localTasks.TorrentTask;
import org.pieShare.pieShareApp.task.localTasks.fileEventTask.LocalFileChangedTask;
import org.pieShare.pieShareApp.task.localTasks.fileEventTask.LocalFileCreatedTask;
import org.pieShare.pieShareApp.task.localTasks.fileEventTask.LocalFileDeletedTask;
import org.pieShare.pieShareApp.task.localTasks.fileEventTask.ALocalFileEventTask;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Lazy;
import org.springframework.context.annotation.Scope;
/**
*
* @author Svetoslav
*/
@Lazy
@Configuration
public class PieShareAppTasks {
@Autowired
private PieShareAppService services;
@Autowired
private PiePlateConfiguration plate;
@Autowired
private PieUtilitiesConfiguration config;
private void aMessageSendingTask(AMessageSendingTask task) {
task.setBeanService(this.config.beanService());
task.setClusterManagementService(this.plate.clusterManagementService());
task.setMessageFactoryService(this.services.messageFactoryService());
}
private void aLocalFileEventTask(ALocalFileEventTask task) {
this.aMessageSendingTask(task);
task.setFileFilterService(services.fileFilterService());
task.setHistoryService(services.historyService());
task.setFileEncrypterService(services.fileEncryptionService());
task.setFileWatcherService(this.services.apacheFileWatcherService());
task.setHistoryFileService(this.services.historyFileService());
}
@Bean
@Scope(value = "prototype")
public FileMetaTask fileMetaTask() {
FileMetaTask task = new FileMetaTask();
task.setRequestService(this.services.requestService());
task.setBeanService(this.config.beanService());
task.setBitTorrentService(this.services.bitTorrentService());
task.setClusterManagementService(this.plate.clusterManagementService());
task.setMessageFactoryService(this.services.messageFactoryService());
return task;
}
@Bean
@Scope(value = "prototype")
public FileRequestTask fileRequestTask() {
FileRequestTask task = new FileRequestTask();
task.setBeanService(config.beanService());
task.setBitTorrentService(this.services.bitTorrentService());
task.setShareService(this.services.shareService());
task.setClusterManagementService(this.plate.clusterManagementService());
task.setMessageFactoryService(this.services.messageFactoryService());
return task;
}
@Bean
@Scope(value = "prototype")
public FileTransferCompleteTask fileTransferCompleteTask() {
FileTransferCompleteTask task = new FileTransferCompleteTask();
task.setBitTorentService(this.services.bitTorrentService());
return task;
}
@Bean
@Scope(value = "prototype")
public NewFileTask newFileTask() {
NewFileTask task = new NewFileTask();
task.setRequestService(services.requestService());
task.setComparerService(services.fileCompareService());
return task;
}
@Bean
@Scope(value = "prototype")
public FileChangedTask fileChangedTask() {
FileChangedTask task = new FileChangedTask();
task.setRequestService(this.services.requestService());
task.setComparerService(this.services.fileCompareService());
return task;
}
@Bean
@Scope(value = "prototype")
public LocalFileCreatedTask localFileCreatedTask() {
LocalFileCreatedTask task = new LocalFileCreatedTask();
this.aLocalFileEventTask(task);
task.setFileService(this.services.localFileService());
return task;
}
@Bean
@Scope(value = "prototype")
public LocalFileChangedTask localFileChangedTask() {
LocalFileChangedTask task = new LocalFileChangedTask();
this.aLocalFileEventTask(task);
task.setFileService(this.services.localFileService());
return task;
}
@Bean
@Scope(value = "prototype")
public LocalFileDeletedTask localFileDeletedTask() {
LocalFileDeletedTask task = new LocalFileDeletedTask();
this.aLocalFileEventTask(task);
task.setFileService(this.services.localFileService());
return task;
}
@Bean
@Scope(value = "prototype")
public FileListTask fileListTask() {
FileListTask task = new FileListTask();
task.setComparerService(this.services.fileCompareService());
task.setRequestService(this.services.requestService());
return task;
}
@Bean
@Scope(value = "prototype")
public FileListRequestTask fileListRequestTask() {
FileListRequestTask task = new FileListRequestTask();
this.aMessageSendingTask(task);
task.setFileService(this.services.historyFileService());
task.setBeanService(this.config.beanService());
task.setMessageFactoryService(this.services.messageFactoryService());
return task;
}
@Bean
@Scope(value = "prototype")
public FileDeletedTask fileDeletedTask() {
FileDeletedTask task = new FileDeletedTask();
task.setFileService(this.services.historyFileService());
task.setComparerService(this.services.fileCompareService());
return task;
}
@Bean
@Lazy
@Scope(value = "prototype")
public LoginTask loginTask() {
LoginTask service = new LoginTask();
service.setBeanService(config.beanService());
service.setPasswordEncryptionService(config.passwordEncryptionService());
service.setConfigurationFactory(services.configurationFactory());
service.setEncodeService(config.encodeService());
service.setDatabaseService(services.databaseService());
service.setClusterManagementService(plate.clusterManagementService());
service.setHistoryService(services.historyService());
service.setFileWatcherService(this.services.apacheFileWatcherService());
service.setMessageFactoryService(this.services.messageFactoryService());
service.setFileService(this.services.historyFileService());
return service;
}
@Bean
@Lazy
@Scope(value = "prototype")
public LogoutTask logoutTask() {
LogoutTask task = new LogoutTask();
task.setBeanService(config.beanService());
task.setClusterManagementService(plate.clusterManagementService());
return task;
}
@Bean
@Lazy
@Scope(value = "prototype")
public ResetPwdTask resetPwdTask() {
ResetPwdTask task = new ResetPwdTask();
task.setBeanService(config.beanService());
task.setDatabaseService(services.databaseService());
return task;
}
@Bean
@Lazy
@Scope(value = "prototype")
public TorrentTask torrentTask() {
TorrentTask task = new TorrentTask();
this.aMessageSendingTask(task);
task.setNetworkService(this.services.networkService());
task.setShareService(this.services.shareService());
task.setShutdownService(this.config.shutdownService());
task.setBitTorrentService(this.services.bitTorrentService());
task.setFileService(this.services.historyFileService());
task.setRequestService(this.services.requestService());
return task;
}
@Bean
@Lazy
@Scope(value = "prototype")
public MetaCommitTask metaCommitTask() {
MetaCommitTask task = new MetaCommitTask();
task.setBitTorrentService(this.services.bitTorrentService());
task.setShareService(this.services.shareService());
task.setCompareService(this.services.fileCompareService());
task.setRequestService(this.services.requestService());
task.setClusterManagementService(this.plate.clusterManagementService());
return task;
}
}