@Override public void setUp() throws Exception { AuthenticationUtil.setRunAsUserSystem(); ServiceRegistry serviceRegistry = (ServiceRegistry) ctx.getBean("ServiceRegistry"); contentService = serviceRegistry.getContentService(); nodeService = serviceRegistry.getNodeService(); transactionService = serviceRegistry.getTransactionService(); jobLockService = serviceRegistry.getJobLockService(); TransactionService transactionService = serviceRegistry.getTransactionService(); DictionaryService dictionaryService = serviceRegistry.getDictionaryService(); NodeDaoService nodeDaoService = (NodeDaoService) ctx.getBean("nodeDaoService"); AVMNodeDAO avmNodeDAO = (AVMNodeDAO) ctx.getBean("newAvmNodeDAO"); ContentDataDAO contentDataDAO = (ContentDataDAO) ctx.getBean("contentDataDAO"); // we need a store store = (ContentStore) ctx.getBean("fileContentStore"); // and a listener listener = new DummyCleanerListener(); // initialise record of deleted URLs deletedUrls = new ArrayList<String>(5); // Construct the test cleaners eagerCleaner = (EagerContentStoreCleaner) ctx.getBean("eagerContentStoreCleaner"); eagerCleaner.setEagerOrphanCleanup(false); eagerCleaner.setStores(Collections.singletonList(store)); eagerCleaner.setListeners(Collections.singletonList(listener)); cleaner = new ContentStoreCleaner(); cleaner.setEagerContentStoreCleaner(eagerCleaner); cleaner.setJobLockService(jobLockService); cleaner.setContentDataDAO(contentDataDAO); cleaner.setTransactionService(transactionService); cleaner.setDictionaryService(dictionaryService); cleaner.setContentService(contentService); cleaner.setNodeDaoService(nodeDaoService); cleaner.setAvmNodeDAO(avmNodeDAO); }
private void clean() { ContentStoreCleanerListener listener = new ContentStoreCleanerListener() { private int count = 0; public void beforeDelete(ContentStore store, String contentUrl) throws ContentIOException { count++; if (count % 1000 == 0) { System.out.println(String.format(" Total deleted: %6d", count)); } } }; // We use the default cleaners, but fix them up a bit EagerContentStoreCleaner eagerCleaner = (EagerContentStoreCleaner) ctx.getBean("eagerContentStoreCleaner"); eagerCleaner.setListeners(Collections.singletonList(listener)); eagerCleaner.setStores(Collections.singletonList(contentStore)); cleaner = (ContentStoreCleaner) ctx.getBean("contentStoreCleaner"); cleaner.setProtectDays(0); // The cleaner has its own txns cleaner.execute(); }