01-16-2009 10:19 AM
<bean id="archiver-executer"
class="org.alfresco.module.msc.action.executer.MscArchiverExecuter"
parent="action-executer">
<property name="nodeService">
<ref bean="NodeService" />
</property>
<property name="fileFolderService">
<ref bean="FileFolderService" />
</property>
<property name="mscSearchService">
<ref bean="MscSearchService" />
</property>
</bean>
<!– Bundle des action executer–>
<bean id="extension.actionResourceBundles" parent="actionResourceBundles">
<property name="resourceBundles">
<list>
<value>org.alfresco.module.msc.web.resources.msc-web-messages</value>
</list>
</property>
</bean>
<bean id="fromTraiterToArchiverScheduler" parent="baseTemplateActionDefintion">
<property name="actionName">
<value>archiver-executer</value>
</property>
</bean>
<bean id="templateActionModelFactory" class="org.alfresco.repo.action.scheduled.FreeMarkerWithLuceneExtensionsModelFactory">
<property name="serviceRegistry">
<ref bean="ServiceRegistry"/>
</property>
</bean>
<bean id="fromTraiterToArchiverEveryOneHundredDays"
class="org.alfresco.repo.action.scheduled.CronScheduledQueryBasedTemplateActionDefinition">
<property name="transactionMode">
<value>ISOLATED_TRANSACTIONS</value>
</property>
<property name="compensatingActionMode">
<value>IGNORE</value>
</property>
<property name="searchService">
<ref bean="SearchService" />
</property>
<property name="templateService">
<ref bean="TemplateService" />
</property>
<property name="queryLanguage">
<value>lucene</value>
</property>
<property name="stores">
<list>
<value>workspace://SpacesStore</value>
</list>
</property>
<!– Find all nodes that do not have the aspect –>
<property name="queryTemplate">
<value>PATH:"/app:company_home"</value>
</property>
<property name="cronExpression">
<!– <value>* * * 0/100 * ?</value>–>
<value>0/5 * * * * ?</value>
</property>
<property name="jobName">
<value>fromTraiterToArchiverScheduler</value>
</property>
<property name="jobGroup">
<value>jobGroup</value>
</property>
<property name="triggerName">
<value>triggerA</value>
</property>
<property name="triggerGroup">
<value>triggerGroup</value>
</property>
<!–
Inject the scheduler - the trigger will be registered with this
scheduler
–>
<property name="scheduler">
<ref bean="schedulerFactory" />
</property>
<property name="actionService">
<ref bean="ActionService" />
</property>
<property name="templateActionModelFactory">
<ref bean="templateActionModelFactory" />
</property>
<property name="templateActionDefinition">
<ref bean="fromTraiterToArchiverScheduler" />
</property>
<property name="transactionService">
<ref bean="TransactionService" />
</property>
<property name="runAsUser">
<value>System</value>
</property>
</bean>
01-16-2009 10:20 AM
public class MscArchiverExecuter extends ActionExecuterAbstractBase {
public static final String NAME = "archiver-executer";
private static Log log = LogFactory
.getLog( MscArchiverExecuter.class );
private FileFolderService fileFolderService;
private NodeService nodeService;
private MscSearchService mscSearchService;
@Override
protected void addParameterDefinitions(List<ParameterDefinition> pParamList) {
// TODO Auto-generated method stub
}
@Override
protected void executeImpl(Action pAction, NodeRef pActionedUponNodeRef) {
System.out.println( "dans archiver-executer" );
NodeRef lNodeRef = mscSearchService
.getFolder( MscFolderEnum.FOLDER_TRAITER.getFolderName() );
NodeRef lDestNodeRef = mscSearchService
.getFolder( MscFolderEnum.FOLDER_ARCHIVER.getFolderName() );
List<ChildAssociationRef> lChildren = nodeService
.getChildAssocs( lNodeRef );
for (ChildAssociationRef lChild : lChildren)
{
NodeRef lSrcNodeRef = lChild.getChildRef();
String lName = (String) nodeService.getProperty( lSrcNodeRef,
ContentModel.PROP_NAME );
if (log.isDebugEnabled())
{
log.debug( "Moving node " + lName + " to folder "
+ MscFolderEnum.FOLDER_ARCHIVER.getFolderName() );
}
try
{
fileFolderService.move( lSrcNodeRef, lDestNodeRef, null );
}
catch (Exception e)
{
e.printStackTrace();
throw new IllegalStateException( "Failed to move document "
+ lName + " to folder "
+ MscFolderEnum.FOLDER_ARCHIVER.getFolderName() );
}
}
}
public void setFileFolderService(FileFolderService pFileFolderService) {
fileFolderService = pFileFolderService;
}
public void setMscSearchService(MscSearchService pMscSearchService) {
mscSearchService = pMscSearchService;
}
public void setNodeService(NodeService pNodeService) {
nodeService = pNodeService;
}
Tags
Find what you came for
We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.