Merged BRANCHES/DEV/WF-NOTIFICATION to HEAD:

29508: Workflow Notification - First Cut
     * Notification service to consolidate sending of user notifications (kinds of notifications are provided by Sprung in notification providers)
     * EMail notification provider implementation (uses standard Email action to send email)
     * Frist cut workflow email template (still needs lots of details added)
     * AMP, etc for email template
     * Hook point within Activit and JBMP implementations
     * Property added to model (startTask) indicating whether email notifications should be sent
     * Hook points sensitive to property
     * Wf forms updated to show property
  29703: Workflow Notification:
     * Remove AMP and replace with exploded XMl and template (easier to maintain)
     * Bootstrap updated
     * Patch added
     * Refactored hooks to use generic workflowTask object (tidies up helper methods)
     * I18n'ed messages
     * Task and work package information placed in template model
     * Email template built with reference to Lintons wire's (still needs some polish!)
     * Added Notification Servcice to Service Registry



git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@29705 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Roy Wetherall
2011-08-12 04:26:24 +00:00
parent 2f926fc967
commit 7430652942
30 changed files with 1577 additions and 20 deletions

View File

@@ -20,7 +20,9 @@ package org.alfresco.util;
import org.alfresco.repo.security.authentication.AuthenticationComponent;
import org.alfresco.repo.security.authentication.AuthenticationUtil;
import org.alfresco.repo.transaction.RetryingTransactionHelper;
import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback;
import org.alfresco.service.ServiceRegistry;
import org.alfresco.service.cmr.action.ActionService;
import org.alfresco.service.cmr.repository.ContentService;
@@ -82,6 +84,14 @@ public abstract class BaseAlfrescoTestCase extends RetryingTransactionHelperTest
ctx = ApplicationContextHelper.getApplicationContext();
}
/**
* @return true if using spaces store, otherwise creates own store
*/
protected boolean useSpacesStore()
{
return false;
}
/**
* @see junit.framework.TestCase#setUp()
*/
@@ -102,13 +112,31 @@ public abstract class BaseAlfrescoTestCase extends RetryingTransactionHelperTest
this.transactionService = serviceRegistry.getTransactionService();
this.retryingTransactionHelper = (RetryingTransactionHelper)ctx.getBean("retryingTransactionHelper");
// Authenticate as the system user - this must be done before we create the store
authenticationComponent.setSystemUserAsCurrentUser();
retryingTransactionHelper.doInTransaction(new RetryingTransactionCallback<Object>()
{
@Override
public Object execute() throws Throwable
{
// As system user
AuthenticationUtil.setFullyAuthenticatedUser(AuthenticationUtil.getSystemUserName());
// Create the store and get the root node
this.storeRef = this.nodeService.createStore(StoreRef.PROTOCOL_WORKSPACE, "Test_" + System.currentTimeMillis());
this.rootNodeRef = this.nodeService.getRootNode(this.storeRef);
if (useSpacesStore() == false)
{
// Create the store and get the root node
storeRef = nodeService.createStore(StoreRef.PROTOCOL_WORKSPACE, "Test_" + System.currentTimeMillis());
}
else
{
// Use the spaces store
storeRef = StoreRef.STORE_REF_WORKSPACE_SPACESSTORE;
}
// Get the root node reference
rootNodeRef = nodeService.getRootNode(storeRef);
return null;
}
});
}
/**
@@ -126,15 +154,24 @@ public abstract class BaseAlfrescoTestCase extends RetryingTransactionHelperTest
@Override
protected void tearDown() throws Exception
{
try
retryingTransactionHelper.doInTransaction(new RetryingTransactionCallback<Object>()
{
authenticationComponent.clearCurrentSecurityContext();
}
catch (Throwable e)
{
e.printStackTrace();
// Don't let this mask any previous exceptions
}
@Override
public Object execute() throws Throwable
{
// As system user
AuthenticationUtil.setFullyAuthenticatedUser(AuthenticationUtil.getSystemUserName());
if (useSpacesStore() == false)
{
// Delete the created store
nodeService.deleteStore(storeRef);
}
return null;
}
});
super.tearDown();
}
}