@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();
  }