As we transition to the new Hyland Community, some post links may be temporarily disrupted as we finalize redirects. We apologize for the inconvenience and are working to resolve this as quickly as possible. Details.
<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>
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; }