Fixed txn demarcation for setUp and tearDown

- Forum node was being created and then properties were being set in subsequent, new transactions
 - tearDown was trying to delete the site without retries,
   which would normally be OK unless some background process was just busy with it


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@30138 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Derek Hulley
2011-08-31 09:08:43 +00:00
parent 74b6666e4a
commit a3ff59fa09

View File

@@ -18,9 +18,12 @@
*/ */
package org.alfresco.repo.web.scripts.discussion; package org.alfresco.repo.web.scripts.discussion;
import java.io.Serializable;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
import javax.transaction.UserTransaction; import javax.transaction.UserTransaction;
@@ -30,6 +33,7 @@ import org.alfresco.repo.policy.BehaviourFilter;
import org.alfresco.repo.security.authentication.AuthenticationComponent; import org.alfresco.repo.security.authentication.AuthenticationComponent;
import org.alfresco.repo.security.authentication.AuthenticationUtil; import org.alfresco.repo.security.authentication.AuthenticationUtil;
import org.alfresco.repo.site.SiteModel; import org.alfresco.repo.site.SiteModel;
import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback;
import org.alfresco.repo.web.scripts.BaseWebScriptTest; import org.alfresco.repo.web.scripts.BaseWebScriptTest;
import org.alfresco.service.cmr.repository.ChildAssociationRef; import org.alfresco.service.cmr.repository.ChildAssociationRef;
import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeRef;
@@ -44,15 +48,15 @@ import org.alfresco.service.namespace.QName;
import org.alfresco.service.namespace.RegexQNamePattern; import org.alfresco.service.namespace.RegexQNamePattern;
import org.alfresco.service.transaction.TransactionService; import org.alfresco.service.transaction.TransactionService;
import org.alfresco.util.PropertyMap; import org.alfresco.util.PropertyMap;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.json.JSONObject;
import org.springframework.extensions.webscripts.Status; import org.springframework.extensions.webscripts.Status;
import org.springframework.extensions.webscripts.TestWebScriptServer.DeleteRequest; import org.springframework.extensions.webscripts.TestWebScriptServer.DeleteRequest;
import org.springframework.extensions.webscripts.TestWebScriptServer.GetRequest; import org.springframework.extensions.webscripts.TestWebScriptServer.GetRequest;
import org.springframework.extensions.webscripts.TestWebScriptServer.PostRequest; import org.springframework.extensions.webscripts.TestWebScriptServer.PostRequest;
import org.springframework.extensions.webscripts.TestWebScriptServer.PutRequest; import org.springframework.extensions.webscripts.TestWebScriptServer.PutRequest;
import org.springframework.extensions.webscripts.TestWebScriptServer.Response; import org.springframework.extensions.webscripts.TestWebScriptServer.Response;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.json.JSONObject;
/** /**
* Unit Test to test Discussions Web Script API * Unit Test to test Discussions Web Script API
@@ -120,14 +124,15 @@ public class DiscussionRestApiTest extends BaseWebScriptTest
// Create the forum // Create the forum
String forumNodeName = "TestForum"; String forumNodeName = "TestForum";
FORUM_NODE = nodeService.getChildByName(siteInfo.getNodeRef(), ContentModel.ASSOC_CONTAINS, forumNodeName); FORUM_NODE = nodeService.getChildByName(siteInfo.getNodeRef(), ContentModel.ASSOC_CONTAINS, forumNodeName);
if(FORUM_NODE == null) if (FORUM_NODE == null)
{ {
FORUM_NODE = nodeService.createNode( Map<QName, Serializable> props = new HashMap<QName, Serializable>(5);
siteInfo.getNodeRef(), ContentModel.ASSOC_CONTAINS, props.put(ContentModel.PROP_NAME, forumNodeName);
QName.createQName(forumNodeName), ForumModel.TYPE_FORUM props.put(ContentModel.PROP_TITLE, forumNodeName);
).getChildRef(); FORUM_NODE = nodeService.createNode(
nodeService.setProperty(FORUM_NODE, ContentModel.PROP_NAME, forumNodeName); siteInfo.getNodeRef(), ContentModel.ASSOC_CONTAINS,
nodeService.setProperty(FORUM_NODE, ContentModel.PROP_TITLE, forumNodeName); QName.createQName(forumNodeName), ForumModel.TYPE_FORUM
).getChildRef();
} }
// Create users // Create users
@@ -160,7 +165,16 @@ public class DiscussionRestApiTest extends BaseWebScriptTest
} }
// delete discussions test site // delete discussions test site
siteService.deleteSite(SITE_SHORT_NAME_DISCUSSION); RetryingTransactionCallback<Void> deleteCallback = new RetryingTransactionCallback<Void>()
{
@Override
public Void execute() throws Throwable
{
siteService.deleteSite(SITE_SHORT_NAME_DISCUSSION);
return null;
}
};
transactionService.getRetryingTransactionHelper().doInTransaction(deleteCallback);
} }
private void createUser(String userName, String role) private void createUser(String userName, String role)