mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
Merged DEV to HEAD
- ALF-8806 RINF 41: Lucene Removal: Fix CopyService - ALF-9028: RINF 41: Fix Aspect cm:copiedFrom - ALF-9029 RINF 49: Lucene Removal: CheckOutCheckInService API - ALF-9032: RINF 49: fixes to cm:workingcopy aspect 28996: Dev branch for De-Lucene work pending patches 29004: Evaluator runs in read-only txn 29006: Additional PermissionCheckedCollection.create method - Use an existing collection's permission check data (cut-off, etc) to wrap a new collection 29007: CopyService and CheckOutCheckInService refactors to remove Lucene CopyService: Removed cm:source property from cm:copiedfrom aspect and replaced with a cm:original association. Added CQ-based APIs to query for copies Added APIs to support bi-directional walking of copy association Fixed sundry uses of cm:copiedfrom esp. all uses related to cm:workingcopy CheckOutCheckInService: Check-out now creates a source aspect cm:checkedOut with 1:1 relationship to cm:workingcopy via cm:workingcopylink Removed explicit use of cm:workingcopy aspect and replaced it with calls to COCI API 29083: Audit tests fail when indexing is turned off. Also removed a getReader() call during rule evaluation, leading to a 'sub-action' read being recorded. 29113: NodeDAO.getNodesWithAspects supports paging 29135: Removed unused patch queries 29139: Basic patch (still terminates with error) to upgrade cm:copiedfrom and cm:workingcopy 29157: Tested patch for cm:copiedfrom and cm:workingcopy aspects git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@29159 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -18,8 +18,13 @@
|
|||||||
*/
|
*/
|
||||||
package org.alfresco.web.action.evaluator;
|
package org.alfresco.web.action.evaluator;
|
||||||
|
|
||||||
|
import javax.faces.context.FacesContext;
|
||||||
|
|
||||||
|
import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback;
|
||||||
|
import org.alfresco.service.transaction.TransactionService;
|
||||||
import org.alfresco.web.action.ActionEvaluator;
|
import org.alfresco.web.action.ActionEvaluator;
|
||||||
import org.alfresco.web.bean.repository.Node;
|
import org.alfresco.web.bean.repository.Node;
|
||||||
|
import org.alfresco.web.bean.repository.Repository;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Base class for all action evaluators.
|
* Base class for all action evaluators.
|
||||||
@@ -35,7 +40,7 @@ public class BaseActionEvaluator implements ActionEvaluator
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean evaluate(Object obj)
|
public boolean evaluate(final Object obj)
|
||||||
{
|
{
|
||||||
// if a Node object is passed to this method call
|
// if a Node object is passed to this method call
|
||||||
// the explicit evaluate(Node) method otherwise
|
// the explicit evaluate(Node) method otherwise
|
||||||
@@ -43,7 +48,17 @@ public class BaseActionEvaluator implements ActionEvaluator
|
|||||||
|
|
||||||
if (obj instanceof Node)
|
if (obj instanceof Node)
|
||||||
{
|
{
|
||||||
return evaluate((Node)obj);
|
RetryingTransactionCallback<Boolean> txnCallback = new RetryingTransactionCallback<Boolean>()
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public Boolean execute() throws Throwable
|
||||||
|
{
|
||||||
|
return evaluate((Node)obj);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
TransactionService txnService =
|
||||||
|
Repository.getServiceRegistry(FacesContext.getCurrentInstance()).getTransactionService();
|
||||||
|
return txnService.getRetryingTransactionHelper().doInTransaction(txnCallback, true, true);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@@ -22,8 +22,8 @@ import javax.faces.context.FacesContext;
|
|||||||
|
|
||||||
import org.alfresco.model.ContentModel;
|
import org.alfresco.model.ContentModel;
|
||||||
import org.alfresco.model.ForumModel;
|
import org.alfresco.model.ForumModel;
|
||||||
|
import org.alfresco.service.cmr.coci.CheckOutCheckInService;
|
||||||
import org.alfresco.service.cmr.repository.NodeRef;
|
import org.alfresco.service.cmr.repository.NodeRef;
|
||||||
import org.alfresco.service.cmr.repository.NodeService;
|
|
||||||
import org.alfresco.service.cmr.security.PermissionService;
|
import org.alfresco.service.cmr.security.PermissionService;
|
||||||
import org.alfresco.web.bean.repository.Node;
|
import org.alfresco.web.bean.repository.Node;
|
||||||
import org.alfresco.web.bean.repository.Repository;
|
import org.alfresco.web.bean.repository.Repository;
|
||||||
@@ -49,11 +49,10 @@ public class ForumsCheckinDocEvaluator extends BaseActionEvaluator
|
|||||||
{
|
{
|
||||||
if (node.hasAspect(ForumModel.ASPECT_DISCUSSABLE))
|
if (node.hasAspect(ForumModel.ASPECT_DISCUSSABLE))
|
||||||
{
|
{
|
||||||
NodeService nodeService =
|
CheckOutCheckInService checkOutCheckInService =
|
||||||
Repository.getServiceRegistry(FacesContext.getCurrentInstance()).getNodeService();
|
Repository.getServiceRegistry(FacesContext.getCurrentInstance()).getCheckOutCheckInService();
|
||||||
|
|
||||||
// get the original locked node (via the copiedfrom aspect)
|
// get the original locked node (via the copiedfrom aspect)
|
||||||
NodeRef lockedNodeRef = (NodeRef)nodeService.getProperty(node.getNodeRef(), ContentModel.PROP_COPY_REFERENCE);
|
NodeRef lockedNodeRef = checkOutCheckInService.getCheckedOut(node.getNodeRef());
|
||||||
if (lockedNodeRef != null)
|
if (lockedNodeRef != null)
|
||||||
{
|
{
|
||||||
Node lockedNode = new Node(lockedNodeRef);
|
Node lockedNode = new Node(lockedNodeRef);
|
||||||
|
File diff suppressed because it is too large
Load Diff
@@ -18,8 +18,6 @@
|
|||||||
*/
|
*/
|
||||||
package org.alfresco.web.bean.coci;
|
package org.alfresco.web.bean.coci;
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.StringTokenizer;
|
import java.util.StringTokenizer;
|
||||||
|
|
||||||
import javax.faces.application.NavigationHandler;
|
import javax.faces.application.NavigationHandler;
|
||||||
@@ -29,7 +27,6 @@ import javax.faces.event.ActionEvent;
|
|||||||
import org.alfresco.model.ContentModel;
|
import org.alfresco.model.ContentModel;
|
||||||
import org.alfresco.service.cmr.repository.NodeRef;
|
import org.alfresco.service.cmr.repository.NodeRef;
|
||||||
import org.alfresco.service.cmr.version.Version;
|
import org.alfresco.service.cmr.version.Version;
|
||||||
import org.alfresco.service.namespace.QName;
|
|
||||||
import org.alfresco.web.app.AlfrescoNavigationHandler;
|
import org.alfresco.web.app.AlfrescoNavigationHandler;
|
||||||
import org.alfresco.web.app.Application;
|
import org.alfresco.web.app.Application;
|
||||||
import org.alfresco.web.bean.repository.Node;
|
import org.alfresco.web.bean.repository.Node;
|
||||||
@@ -198,13 +195,7 @@ public class DoneEditingDialog extends CheckinCheckoutDialog
|
|||||||
*/
|
*/
|
||||||
private NodeRef getSourceNodeRef(NodeRef workingCopyNodeRef)
|
private NodeRef getSourceNodeRef(NodeRef workingCopyNodeRef)
|
||||||
{
|
{
|
||||||
if (getNodeService().hasAspect(workingCopyNodeRef, ContentModel.ASPECT_COPIEDFROM) == true)
|
return getCheckOutCheckInService().getCheckedOut(workingCopyNodeRef);
|
||||||
{
|
|
||||||
Map<QName, Serializable> workingCopyProperties = getNodeService().getProperties(workingCopyNodeRef);
|
|
||||||
return (NodeRef) workingCopyProperties.get(ContentModel.PROP_COPY_REFERENCE);
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -29,6 +29,7 @@ import javax.faces.context.FacesContext;
|
|||||||
import org.alfresco.error.AlfrescoRuntimeException;
|
import org.alfresco.error.AlfrescoRuntimeException;
|
||||||
import org.alfresco.repo.transaction.RetryingTransactionHelper;
|
import org.alfresco.repo.transaction.RetryingTransactionHelper;
|
||||||
import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback;
|
import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback;
|
||||||
|
import org.alfresco.service.cmr.coci.CheckOutCheckInService;
|
||||||
import org.alfresco.service.cmr.dictionary.DictionaryService;
|
import org.alfresco.service.cmr.dictionary.DictionaryService;
|
||||||
import org.alfresco.service.cmr.model.FileFolderService;
|
import org.alfresco.service.cmr.model.FileFolderService;
|
||||||
import org.alfresco.service.cmr.repository.NodeService;
|
import org.alfresco.service.cmr.repository.NodeService;
|
||||||
@@ -51,6 +52,7 @@ import org.alfresco.web.ui.common.Utils;
|
|||||||
*
|
*
|
||||||
* @author gavinc
|
* @author gavinc
|
||||||
*/
|
*/
|
||||||
|
@SuppressWarnings("serial")
|
||||||
public abstract class BaseDialogBean implements IDialogBean, Serializable
|
public abstract class BaseDialogBean implements IDialogBean, Serializable
|
||||||
{
|
{
|
||||||
protected Map<String, String> parameters;
|
protected Map<String, String> parameters;
|
||||||
@@ -62,6 +64,7 @@ public abstract class BaseDialogBean implements IDialogBean, Serializable
|
|||||||
|
|
||||||
transient private TransactionService transactionService;
|
transient private TransactionService transactionService;
|
||||||
transient private NodeService nodeService;
|
transient private NodeService nodeService;
|
||||||
|
transient private CheckOutCheckInService checkOutCheckInService;
|
||||||
transient private FileFolderService fileFolderService;
|
transient private FileFolderService fileFolderService;
|
||||||
transient private SearchService searchService;
|
transient private SearchService searchService;
|
||||||
transient private DictionaryService dictionaryService;
|
transient private DictionaryService dictionaryService;
|
||||||
@@ -272,6 +275,15 @@ public abstract class BaseDialogBean implements IDialogBean, Serializable
|
|||||||
return this.nodeService;
|
return this.nodeService;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected CheckOutCheckInService getCheckOutCheckInService()
|
||||||
|
{
|
||||||
|
if (this.checkOutCheckInService == null)
|
||||||
|
{
|
||||||
|
this.checkOutCheckInService = Repository.getServiceRegistry(FacesContext.getCurrentInstance()).getCheckOutCheckInService();
|
||||||
|
}
|
||||||
|
return this.checkOutCheckInService;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the rule service
|
* Get the rule service
|
||||||
* @return RuleService rule service
|
* @return RuleService rule service
|
||||||
|
@@ -337,6 +337,10 @@
|
|||||||
<property-name>searchService</property-name>
|
<property-name>searchService</property-name>
|
||||||
<value>#{SearchService}</value>
|
<value>#{SearchService}</value>
|
||||||
</managed-property>
|
</managed-property>
|
||||||
|
<managed-property>
|
||||||
|
<property-name>checkOutCheckInService</property-name>
|
||||||
|
<value>#{CheckOutCheckInService}</value>
|
||||||
|
</managed-property>
|
||||||
<managed-property>
|
<managed-property>
|
||||||
<property-name>lockService</property-name>
|
<property-name>lockService</property-name>
|
||||||
<value>#{LockService}</value>
|
<value>#{LockService}</value>
|
||||||
@@ -4320,19 +4324,19 @@
|
|||||||
|
|
||||||
<managed-bean>
|
<managed-bean>
|
||||||
<description>
|
<description>
|
||||||
The bean that backs up the Revert Snapshot Dialog
|
The bean that backs up the Revert Snapshot Dialog
|
||||||
</description>
|
</description>
|
||||||
<managed-bean-name>RevertSnapshotDialog</managed-bean-name>
|
<managed-bean-name>RevertSnapshotDialog</managed-bean-name>
|
||||||
<managed-bean-class>org.alfresco.web.bean.wcm.RevertSnapshotDialog</managed-bean-class>
|
<managed-bean-class>org.alfresco.web.bean.wcm.RevertSnapshotDialog</managed-bean-class>
|
||||||
<managed-bean-scope>session</managed-bean-scope>
|
<managed-bean-scope>session</managed-bean-scope>
|
||||||
<managed-property>
|
<managed-property>
|
||||||
<property-name>avmBrowseBean</property-name>
|
<property-name>avmBrowseBean</property-name>
|
||||||
<value>#{AVMBrowseBean}</value>
|
<value>#{AVMBrowseBean}</value>
|
||||||
</managed-property>
|
</managed-property>
|
||||||
</managed-bean>
|
</managed-bean>
|
||||||
|
|
||||||
<managed-bean>
|
<managed-bean>
|
||||||
<description>
|
<description>
|
||||||
The bean that backs up the Deploy Website Dialog
|
The bean that backs up the Deploy Website Dialog
|
||||||
</description>
|
</description>
|
||||||
<managed-bean-name>DeployWebsiteDialog</managed-bean-name>
|
<managed-bean-name>DeployWebsiteDialog</managed-bean-name>
|
||||||
|
Reference in New Issue
Block a user