Search in sources :

Example 6 with SimpleStoredMessage

use of com.icegreen.greenmail.store.SimpleStoredMessage in project alfresco-repository by Alfresco.

the class AlfrescoImapFolder method getNonDeletedMessagesInternal.

/**
 * Returns the list of messages that have no {@link javax.mail.Flags.Flag#DELETED} flag set for current user.
 *
 * @return the list of non-deleted messages.
 */
@Override
protected List<SimpleStoredMessage> getNonDeletedMessagesInternal() {
    if (logger.isDebugEnabled()) {
        logger.debug("[getNonDeletedMessagesInternal] " + this);
    }
    List<SimpleStoredMessage> result = new ArrayList<SimpleStoredMessage>();
    Collection<SimpleStoredMessage> values = getMessagesInternal();
    for (SimpleStoredMessage message : values) {
        if (!getFlags(message).contains(Flags.Flag.DELETED)) {
            result.add(message);
        }
    }
    if (logger.isDebugEnabled() && folderInfo != null) {
        logger.debug(folderInfo.getName() + " - Non deleted messages count:" + result.size());
    }
    return result;
}
Also used : SimpleStoredMessage(com.icegreen.greenmail.store.SimpleStoredMessage) ArrayList(java.util.ArrayList)

Example 7 with SimpleStoredMessage

use of com.icegreen.greenmail.store.SimpleStoredMessage in project alfresco-repository by Alfresco.

the class LoadTester method setUp.

@Override
public void setUp() throws Exception {
    ServiceRegistry serviceRegistry = (ServiceRegistry) ctx.getBean("ServiceRegistry");
    authenticationService = serviceRegistry.getAuthenticationService();
    imapService = serviceRegistry.getImapService();
    importerService = serviceRegistry.getImporterService();
    NodeService nodeService = serviceRegistry.getNodeService();
    SearchService searchService = serviceRegistry.getSearchService();
    NamespaceService namespaceService = serviceRegistry.getNamespaceService();
    PersonService personService = serviceRegistry.getPersonService();
    FileFolderService fileFolderService = serviceRegistry.getFileFolderService();
    TransactionService transactionService = serviceRegistry.getTransactionService();
    PermissionService permissionService = serviceRegistry.getPermissionService();
    // start the transaction
    UserTransaction txn = transactionService.getUserTransaction();
    txn.begin();
    authenticationService.authenticate(USER_NAME, USER_PASSWORD.toCharArray());
    anotherUserName = "test_imap_user";
    NodeRef person = personService.getPerson(anotherUserName);
    if (person != null) {
        personService.deletePerson(anotherUserName);
        PropertyMap testUser = new PropertyMap();
        testUser.put(ContentModel.PROP_USERNAME, anotherUserName);
        testUser.put(ContentModel.PROP_FIRSTNAME, anotherUserName);
        testUser.put(ContentModel.PROP_LASTNAME, anotherUserName);
        testUser.put(ContentModel.PROP_EMAIL, anotherUserName + "@alfresco.com");
        testUser.put(ContentModel.PROP_JOBTITLE, "jobTitle");
        personService.createPerson(testUser);
    }
    if (authenticationService.authenticationExists(anotherUserName)) {
        authenticationService.deleteAuthentication(anotherUserName);
    }
    authenticationService.createAuthentication(anotherUserName, anotherUserName.toCharArray());
    user = new AlfrescoImapUser(anotherUserName + "@alfresco.com", anotherUserName, anotherUserName);
    String storePath = "workspace://SpacesStore";
    String companyHomePathInStore = "/app:company_home";
    StoreRef storeRef = new StoreRef(storePath);
    NodeRef storeRootNodeRef = nodeService.getRootNode(storeRef);
    List<NodeRef> nodeRefs = searchService.selectNodes(storeRootNodeRef, companyHomePathInStore, null, namespaceService, false);
    NodeRef companyHomeNodeRef = nodeRefs.get(0);
    ChildApplicationContextFactory imap = (ChildApplicationContextFactory) ctx.getBean("imap");
    ApplicationContext imapCtx = imap.getApplicationContext();
    ImapServiceImpl imapServiceImpl = (ImapServiceImpl) imapCtx.getBean("imapService");
    // Delete test folder
    nodeRefs = searchService.selectNodes(storeRootNodeRef, companyHomePathInStore + "/" + NamespaceService.CONTENT_MODEL_PREFIX + ":" + TEST_IMAP_ROOT_FOLDER_NAME, null, namespaceService, false);
    if (nodeRefs.size() == 1) {
        NodeRef ch = nodeRefs.get(0);
        nodeService.deleteNode(ch);
    }
    // Creating IMAP test folder for IMAP root
    LinkedList<String> folders = new LinkedList<String>();
    folders.add(TEST_IMAP_ROOT_FOLDER_NAME);
    FileFolderServiceImpl.makeFolders(fileFolderService, companyHomeNodeRef, folders, ContentModel.TYPE_FOLDER);
    // Setting IMAP root
    RepositoryFolderConfigBean imapHome = new RepositoryFolderConfigBean();
    imapHome.setStore(storePath);
    imapHome.setRootPath(companyHomePathInStore);
    imapHome.setFolderPath(TEST_IMAP_ROOT_FOLDER_NAME);
    imapServiceImpl.setImapHome(imapHome);
    // Starting IMAP
    imapServiceImpl.startupInTxn(true);
    nodeRefs = searchService.selectNodes(storeRootNodeRef, companyHomePathInStore + "/" + NamespaceService.CONTENT_MODEL_PREFIX + ":" + TEST_IMAP_ROOT_FOLDER_NAME, null, namespaceService, false);
    // Used to create User's folder
    NodeRef userFolderRef = imapService.getUserImapHomeRef(anotherUserName);
    permissionService.setPermission(userFolderRef, anotherUserName, PermissionService.ALL_PERMISSIONS, true);
    importTestData("imap/load_test_data.acp", userFolderRef);
    reauthenticate(anotherUserName, anotherUserName);
    AlfrescoImapFolder testDataFolder = imapService.getOrCreateMailbox(user, TEST_DATA_FOLDER_NAME, true, false);
    SimpleStoredMessage m = testDataFolder.getMessages().get(0);
    m = testDataFolder.getMessage(m.getUid());
    AlfrescoImapFolder folder = imapService.getOrCreateMailbox(user, TEST_FOLDER_NAME, false, true);
    logger.info("Creating folders...");
    long t = System.currentTimeMillis();
    try {
        for (int i = 0; i < MESSAGE_QUANTITY; i++) {
            System.out.println("i = " + i);
            folder.appendMessage(m.getMimeMessage(), new Flags(), new Date());
        }
    } catch (Exception e) {
        logger.error(e, e);
    }
    t = System.currentTimeMillis() - t;
    logger.info("Create time: " + t + " ms (" + t / 1000 + " s (" + t / 60000 + " min))");
    txn.commit();
}
Also used : PersonService(org.alfresco.service.cmr.security.PersonService) RepositoryFolderConfigBean(org.alfresco.util.config.RepositoryFolderConfigBean) SimpleStoredMessage(com.icegreen.greenmail.store.SimpleStoredMessage) FileFolderService(org.alfresco.service.cmr.model.FileFolderService) PermissionService(org.alfresco.service.cmr.security.PermissionService) NodeRef(org.alfresco.service.cmr.repository.NodeRef) ApplicationContext(org.springframework.context.ApplicationContext) NamespaceService(org.alfresco.service.namespace.NamespaceService) SearchService(org.alfresco.service.cmr.search.SearchService) UserTransaction(javax.transaction.UserTransaction) StoreRef(org.alfresco.service.cmr.repository.StoreRef) TransactionService(org.alfresco.service.transaction.TransactionService) NodeService(org.alfresco.service.cmr.repository.NodeService) Flags(javax.mail.Flags) ChildApplicationContextFactory(org.alfresco.repo.management.subsystems.ChildApplicationContextFactory) LinkedList(java.util.LinkedList) Date(java.util.Date) IOException(java.io.IOException) PropertyMap(org.alfresco.util.PropertyMap) ServiceRegistry(org.alfresco.service.ServiceRegistry)

Aggregations

SimpleStoredMessage (com.icegreen.greenmail.store.SimpleStoredMessage)7 NodeRef (org.alfresco.service.cmr.repository.NodeRef)4 FileInfo (org.alfresco.service.cmr.model.FileInfo)3 ArrayList (java.util.ArrayList)2 Date (java.util.Date)2 ContentWriter (org.alfresco.service.cmr.repository.ContentWriter)2 IOException (java.io.IOException)1 LinkedList (java.util.LinkedList)1 Flags (javax.mail.Flags)1 UserTransaction (javax.transaction.UserTransaction)1 ChildApplicationContextFactory (org.alfresco.repo.management.subsystems.ChildApplicationContextFactory)1 ServiceRegistry (org.alfresco.service.ServiceRegistry)1 FileFolderService (org.alfresco.service.cmr.model.FileFolderService)1 ContentReader (org.alfresco.service.cmr.repository.ContentReader)1 NodeService (org.alfresco.service.cmr.repository.NodeService)1 StoreRef (org.alfresco.service.cmr.repository.StoreRef)1 SearchService (org.alfresco.service.cmr.search.SearchService)1 PermissionService (org.alfresco.service.cmr.security.PermissionService)1 PersonService (org.alfresco.service.cmr.security.PersonService)1 NamespaceService (org.alfresco.service.namespace.NamespaceService)1