mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-24 17:32:48 +00:00
SEARCH-2445: Adding Elasticsearch Search Subsystem as Only Enterprise option
This commit is contained in:
@@ -25,16 +25,16 @@
|
|||||||
*/
|
*/
|
||||||
package org.alfresco.repo.web.scripts.solr;
|
package org.alfresco.repo.web.scripts.solr;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import org.alfresco.repo.solr.AclChangeSet;
|
import org.alfresco.repo.search.SearchTrackingComponent;
|
||||||
import org.alfresco.repo.solr.SOLRTrackingComponent;
|
import org.alfresco.repo.solr.AclChangeSet;
|
||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
import org.apache.commons.logging.LogFactory;
|
import org.apache.commons.logging.LogFactory;
|
||||||
import org.springframework.extensions.webscripts.DeclarativeWebScript;
|
import org.springframework.extensions.webscripts.DeclarativeWebScript;
|
||||||
import org.springframework.extensions.webscripts.Status;
|
import org.springframework.extensions.webscripts.Status;
|
||||||
import org.springframework.extensions.webscripts.WebScriptRequest;
|
import org.springframework.extensions.webscripts.WebScriptRequest;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -46,11 +46,11 @@ public class AclChangeSetsGet extends DeclarativeWebScript
|
|||||||
{
|
{
|
||||||
protected static final Log logger = LogFactory.getLog(AclChangeSetsGet.class);
|
protected static final Log logger = LogFactory.getLog(AclChangeSetsGet.class);
|
||||||
|
|
||||||
private SOLRTrackingComponent solrTrackingComponent;
|
private SearchTrackingComponent searchTrackingComponent;
|
||||||
|
|
||||||
public void setSolrTrackingComponent(SOLRTrackingComponent solrTrackingComponent)
|
public void setSearchTrackingComponent(SearchTrackingComponent searchTrackingComponent)
|
||||||
{
|
{
|
||||||
this.solrTrackingComponent = solrTrackingComponent;
|
this.searchTrackingComponent = searchTrackingComponent;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected Map<String, Object> executeImpl(WebScriptRequest req, Status status)
|
protected Map<String, Object> executeImpl(WebScriptRequest req, Status status)
|
||||||
@@ -67,18 +67,18 @@ public class AclChangeSetsGet extends DeclarativeWebScript
|
|||||||
Long toTime = (toTimeParam == null ? null : Long.valueOf(toTimeParam));
|
Long toTime = (toTimeParam == null ? null : Long.valueOf(toTimeParam));
|
||||||
int maxResults = (maxResultsParam == null ? 1024 : Integer.valueOf(maxResultsParam));
|
int maxResults = (maxResultsParam == null ? 1024 : Integer.valueOf(maxResultsParam));
|
||||||
|
|
||||||
List<AclChangeSet> changesets = solrTrackingComponent.getAclChangeSets(fromId, fromTime, toId, toTime, maxResults);
|
List<AclChangeSet> changesets = searchTrackingComponent.getAclChangeSets(fromId, fromTime, toId, toTime, maxResults);
|
||||||
|
|
||||||
Map<String, Object> model = new HashMap<String, Object>(1, 1.0f);
|
Map<String, Object> model = new HashMap<String, Object>(1, 1.0f);
|
||||||
model.put("aclChangeSets", changesets);
|
model.put("aclChangeSets", changesets);
|
||||||
|
|
||||||
Long maxChangeSetCommitTime = solrTrackingComponent.getMaxChangeSetCommitTime();
|
Long maxChangeSetCommitTime = searchTrackingComponent.getMaxChangeSetCommitTime();
|
||||||
if(maxChangeSetCommitTime != null)
|
if(maxChangeSetCommitTime != null)
|
||||||
{
|
{
|
||||||
model.put("maxChangeSetCommitTime", maxChangeSetCommitTime);
|
model.put("maxChangeSetCommitTime", maxChangeSetCommitTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
Long maxChangeSetId = solrTrackingComponent.getMaxChangeSetId();
|
Long maxChangeSetId = searchTrackingComponent.getMaxChangeSetId();
|
||||||
if(maxChangeSetId != null)
|
if(maxChangeSetId != null)
|
||||||
{
|
{
|
||||||
model.put("maxChangeSetId", maxChangeSetId);
|
model.put("maxChangeSetId", maxChangeSetId);
|
||||||
|
@@ -25,23 +25,23 @@
|
|||||||
*/
|
*/
|
||||||
package org.alfresco.repo.web.scripts.solr;
|
package org.alfresco.repo.web.scripts.solr;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import org.alfresco.repo.solr.Acl;
|
import org.alfresco.repo.search.SearchTrackingComponent;
|
||||||
import org.alfresco.repo.solr.SOLRTrackingComponent;
|
import org.alfresco.repo.solr.Acl;
|
||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
import org.apache.commons.logging.LogFactory;
|
import org.apache.commons.logging.LogFactory;
|
||||||
import org.json.JSONArray;
|
import org.json.JSONArray;
|
||||||
import org.json.JSONException;
|
import org.json.JSONException;
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
import org.springframework.extensions.surf.util.Content;
|
import org.springframework.extensions.surf.util.Content;
|
||||||
import org.springframework.extensions.webscripts.DeclarativeWebScript;
|
import org.springframework.extensions.webscripts.DeclarativeWebScript;
|
||||||
import org.springframework.extensions.webscripts.Status;
|
import org.springframework.extensions.webscripts.Status;
|
||||||
import org.springframework.extensions.webscripts.WebScriptException;
|
import org.springframework.extensions.webscripts.WebScriptException;
|
||||||
import org.springframework.extensions.webscripts.WebScriptRequest;
|
import org.springframework.extensions.webscripts.WebScriptRequest;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -53,11 +53,11 @@ public class AclsGet extends DeclarativeWebScript
|
|||||||
{
|
{
|
||||||
protected static final Log logger = LogFactory.getLog(AclsGet.class);
|
protected static final Log logger = LogFactory.getLog(AclsGet.class);
|
||||||
|
|
||||||
private SOLRTrackingComponent solrTrackingComponent;
|
private SearchTrackingComponent searchTrackingComponent;
|
||||||
|
|
||||||
public void setSolrTrackingComponent(SOLRTrackingComponent solrTrackingComponent)
|
public void setSearchTrackingComponent(SearchTrackingComponent searchTrackingComponent)
|
||||||
{
|
{
|
||||||
this.solrTrackingComponent = solrTrackingComponent;
|
this.searchTrackingComponent = searchTrackingComponent;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected Map<String, Object> executeImpl(WebScriptRequest req, Status status)
|
protected Map<String, Object> executeImpl(WebScriptRequest req, Status status)
|
||||||
@@ -117,7 +117,7 @@ public class AclsGet extends DeclarativeWebScript
|
|||||||
int maxResults = (maxResultsParam == null ? 1024 : Integer.valueOf(maxResultsParam));
|
int maxResults = (maxResultsParam == null ? 1024 : Integer.valueOf(maxResultsParam));
|
||||||
|
|
||||||
// Request according to the paging query style required
|
// Request according to the paging query style required
|
||||||
List<Acl> acls = solrTrackingComponent.getAcls(aclChangeSetIds, fromId, maxResults);
|
List<Acl> acls = searchTrackingComponent.getAcls(aclChangeSetIds, fromId, maxResults);
|
||||||
|
|
||||||
Map<String, Object> model = new HashMap<String, Object>(1, 1.0f);
|
Map<String, Object> model = new HashMap<String, Object>(1, 1.0f);
|
||||||
model.put("acls", acls);
|
model.put("acls", acls);
|
||||||
|
@@ -25,23 +25,23 @@
|
|||||||
*/
|
*/
|
||||||
package org.alfresco.repo.web.scripts.solr;
|
package org.alfresco.repo.web.scripts.solr;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import org.alfresco.repo.solr.AclReaders;
|
import org.alfresco.repo.search.SearchTrackingComponent;
|
||||||
import org.alfresco.repo.solr.SOLRTrackingComponent;
|
import org.alfresco.repo.solr.AclReaders;
|
||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
import org.apache.commons.logging.LogFactory;
|
import org.apache.commons.logging.LogFactory;
|
||||||
import org.json.JSONArray;
|
import org.json.JSONArray;
|
||||||
import org.json.JSONException;
|
import org.json.JSONException;
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
import org.springframework.extensions.surf.util.Content;
|
import org.springframework.extensions.surf.util.Content;
|
||||||
import org.springframework.extensions.webscripts.DeclarativeWebScript;
|
import org.springframework.extensions.webscripts.DeclarativeWebScript;
|
||||||
import org.springframework.extensions.webscripts.Status;
|
import org.springframework.extensions.webscripts.Status;
|
||||||
import org.springframework.extensions.webscripts.WebScriptException;
|
import org.springframework.extensions.webscripts.WebScriptException;
|
||||||
import org.springframework.extensions.webscripts.WebScriptRequest;
|
import org.springframework.extensions.webscripts.WebScriptRequest;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -53,11 +53,11 @@ public class AclsReadersGet extends DeclarativeWebScript
|
|||||||
{
|
{
|
||||||
protected static final Log logger = LogFactory.getLog(AclsReadersGet.class);
|
protected static final Log logger = LogFactory.getLog(AclsReadersGet.class);
|
||||||
|
|
||||||
private SOLRTrackingComponent solrTrackingComponent;
|
private SearchTrackingComponent searchTrackingComponent;
|
||||||
|
|
||||||
public void setSolrTrackingComponent(SOLRTrackingComponent solrTrackingComponent)
|
public void setSearchTrackingComponent(SearchTrackingComponent searchTrackingComponent)
|
||||||
{
|
{
|
||||||
this.solrTrackingComponent = solrTrackingComponent;
|
this.searchTrackingComponent = searchTrackingComponent;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected Map<String, Object> executeImpl(WebScriptRequest req, Status status)
|
protected Map<String, Object> executeImpl(WebScriptRequest req, Status status)
|
||||||
@@ -111,7 +111,7 @@ public class AclsReadersGet extends DeclarativeWebScript
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Request according to the paging query style required
|
// Request according to the paging query style required
|
||||||
List<AclReaders> aclsReaders = solrTrackingComponent.getAclsReaders(aclIds);
|
List<AclReaders> aclsReaders = searchTrackingComponent.getAclsReaders(aclIds);
|
||||||
|
|
||||||
Map<String, Object> model = new HashMap<String, Object>(1, 1.0f);
|
Map<String, Object> model = new HashMap<String, Object>(1, 1.0f);
|
||||||
model.put("aclsReaders", aclsReaders);
|
model.put("aclsReaders", aclsReaders);
|
||||||
|
@@ -25,21 +25,20 @@
|
|||||||
*/
|
*/
|
||||||
package org.alfresco.repo.web.scripts.solr;
|
package org.alfresco.repo.web.scripts.solr;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Map;
|
|
||||||
|
import org.alfresco.repo.search.SearchTrackingComponent;
|
||||||
import org.alfresco.repo.solr.AlfrescoModel;
|
import org.alfresco.repo.solr.AlfrescoModel;
|
||||||
import org.alfresco.repo.solr.SOLRTrackingComponent;
|
import org.alfresco.service.cmr.dictionary.ModelDefinition;
|
||||||
import org.alfresco.service.cmr.dictionary.ModelDefinition;
|
import org.alfresco.service.namespace.NamespaceService;
|
||||||
import org.alfresco.service.namespace.NamespaceService;
|
import org.alfresco.service.namespace.QName;
|
||||||
import org.alfresco.service.namespace.QName;
|
import org.apache.commons.logging.Log;
|
||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.LogFactory;
|
||||||
import org.apache.commons.logging.LogFactory;
|
import org.json.JSONException;
|
||||||
import org.json.JSONException;
|
import org.springframework.extensions.webscripts.AbstractWebScript;
|
||||||
import org.springframework.extensions.webscripts.AbstractWebScript;
|
import org.springframework.extensions.webscripts.Status;
|
||||||
import org.springframework.extensions.webscripts.Status;
|
import org.springframework.extensions.webscripts.WebScriptException;
|
||||||
import org.springframework.extensions.webscripts.WebScriptException;
|
import org.springframework.extensions.webscripts.WebScriptRequest;
|
||||||
import org.springframework.extensions.webscripts.WebScriptRequest;
|
|
||||||
import org.springframework.extensions.webscripts.WebScriptResponse;
|
import org.springframework.extensions.webscripts.WebScriptResponse;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -52,11 +51,11 @@ public class AlfrescoModelGet extends AbstractWebScript
|
|||||||
protected static final Log logger = LogFactory.getLog(AlfrescoModelGet.class);
|
protected static final Log logger = LogFactory.getLog(AlfrescoModelGet.class);
|
||||||
|
|
||||||
private NamespaceService namespaceService;
|
private NamespaceService namespaceService;
|
||||||
private SOLRTrackingComponent solrTrackingComponent;
|
private SearchTrackingComponent searchTrackingComponent;
|
||||||
|
|
||||||
public void setSolrTrackingComponent(SOLRTrackingComponent solrTrackingComponent)
|
public void setSearchTrackingComponent(SearchTrackingComponent searchTrackingComponent)
|
||||||
{
|
{
|
||||||
this.solrTrackingComponent = solrTrackingComponent;
|
this.searchTrackingComponent = searchTrackingComponent;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setNamespaceService(NamespaceService namespaceService)
|
public void setNamespaceService(NamespaceService namespaceService)
|
||||||
@@ -92,7 +91,7 @@ public class AlfrescoModelGet extends AbstractWebScript
|
|||||||
}
|
}
|
||||||
|
|
||||||
ModelDefinition.XMLBindingType bindingType = ModelDefinition.XMLBindingType.DEFAULT;
|
ModelDefinition.XMLBindingType bindingType = ModelDefinition.XMLBindingType.DEFAULT;
|
||||||
AlfrescoModel model = solrTrackingComponent.getModel(QName.createQName(modelQName));
|
AlfrescoModel model = searchTrackingComponent.getModel(QName.createQName(modelQName));
|
||||||
res.setHeader("XAlfresco-modelChecksum", String.valueOf(model.getModelDef().getChecksum(bindingType)));
|
res.setHeader("XAlfresco-modelChecksum", String.valueOf(model.getModelDef().getChecksum(bindingType)));
|
||||||
model.getModelDef().toXML(bindingType, res.getOutputStream());
|
model.getModelDef().toXML(bindingType, res.getOutputStream());
|
||||||
}
|
}
|
||||||
|
@@ -25,23 +25,23 @@
|
|||||||
*/
|
*/
|
||||||
package org.alfresco.repo.web.scripts.solr;
|
package org.alfresco.repo.web.scripts.solr;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import org.alfresco.repo.solr.AlfrescoModelDiff;
|
import org.alfresco.repo.search.SearchTrackingComponent;
|
||||||
import org.alfresco.repo.solr.SOLRTrackingComponent;
|
import org.alfresco.repo.solr.AlfrescoModelDiff;
|
||||||
import org.alfresco.service.namespace.QName;
|
import org.alfresco.service.namespace.QName;
|
||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
import org.apache.commons.logging.LogFactory;
|
import org.apache.commons.logging.LogFactory;
|
||||||
import org.json.JSONArray;
|
import org.json.JSONArray;
|
||||||
import org.json.JSONException;
|
import org.json.JSONException;
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
import org.springframework.extensions.surf.util.Content;
|
import org.springframework.extensions.surf.util.Content;
|
||||||
import org.springframework.extensions.webscripts.DeclarativeWebScript;
|
import org.springframework.extensions.webscripts.DeclarativeWebScript;
|
||||||
import org.springframework.extensions.webscripts.Status;
|
import org.springframework.extensions.webscripts.Status;
|
||||||
import org.springframework.extensions.webscripts.WebScriptException;
|
import org.springframework.extensions.webscripts.WebScriptException;
|
||||||
import org.springframework.extensions.webscripts.WebScriptRequest;
|
import org.springframework.extensions.webscripts.WebScriptRequest;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -57,11 +57,11 @@ public class AlfrescoModelsDiff extends DeclarativeWebScript
|
|||||||
|
|
||||||
private static final String MSG_JSON_EXCEPTION = "Unable to fetch model changes from ";
|
private static final String MSG_JSON_EXCEPTION = "Unable to fetch model changes from ";
|
||||||
|
|
||||||
private SOLRTrackingComponent solrTrackingComponent;
|
private SearchTrackingComponent searchTrackingComponent;
|
||||||
|
|
||||||
public void setSolrTrackingComponent(SOLRTrackingComponent solrTrackingComponent)
|
public void setSearchTrackingComponent(SearchTrackingComponent searchTrackingComponent)
|
||||||
{
|
{
|
||||||
this.solrTrackingComponent = solrTrackingComponent;
|
this.searchTrackingComponent = searchTrackingComponent;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected Map<String, Object> executeImpl(WebScriptRequest req, Status status)
|
protected Map<String, Object> executeImpl(WebScriptRequest req, Status status)
|
||||||
@@ -122,7 +122,7 @@ public class AlfrescoModelsDiff extends DeclarativeWebScript
|
|||||||
models.put(QName.createQName(jsonModel.getString("name")), jsonModel.getLong("checksum"));
|
models.put(QName.createQName(jsonModel.getString("name")), jsonModel.getLong("checksum"));
|
||||||
}
|
}
|
||||||
|
|
||||||
List<AlfrescoModelDiff> diffs = solrTrackingComponent.getModelDiffs(models);
|
List<AlfrescoModelDiff> diffs = searchTrackingComponent.getModelDiffs(models);
|
||||||
model.put("diffs", diffs);
|
model.put("diffs", diffs);
|
||||||
|
|
||||||
if (logger.isDebugEnabled())
|
if (logger.isDebugEnabled())
|
||||||
|
@@ -35,11 +35,10 @@ import java.util.Set;
|
|||||||
|
|
||||||
import org.alfresco.repo.domain.node.Node;
|
import org.alfresco.repo.domain.node.Node;
|
||||||
import org.alfresco.repo.domain.qname.QNameDAO;
|
import org.alfresco.repo.domain.qname.QNameDAO;
|
||||||
import org.alfresco.repo.search.impl.QueryParserUtils;
|
import org.alfresco.repo.search.SearchTrackingComponent;
|
||||||
|
import org.alfresco.repo.search.SearchTrackingComponent.NodeQueryCallback;
|
||||||
import org.alfresco.repo.security.authentication.AuthenticationUtil;
|
import org.alfresco.repo.security.authentication.AuthenticationUtil;
|
||||||
import org.alfresco.repo.solr.NodeParameters;
|
import org.alfresco.repo.solr.NodeParameters;
|
||||||
import org.alfresco.repo.solr.SOLRTrackingComponent;
|
|
||||||
import org.alfresco.repo.solr.SOLRTrackingComponent.NodeQueryCallback;
|
|
||||||
import org.alfresco.repo.tenant.TenantService;
|
import org.alfresco.repo.tenant.TenantService;
|
||||||
import org.alfresco.service.cmr.repository.StoreRef;
|
import org.alfresco.service.cmr.repository.StoreRef;
|
||||||
import org.alfresco.service.namespace.QName;
|
import org.alfresco.service.namespace.QName;
|
||||||
@@ -67,15 +66,15 @@ public class NodesGet extends DeclarativeWebScript
|
|||||||
{
|
{
|
||||||
protected static final Log logger = LogFactory.getLog(NodesGet.class);
|
protected static final Log logger = LogFactory.getLog(NodesGet.class);
|
||||||
|
|
||||||
private SOLRTrackingComponent solrTrackingComponent;
|
private SearchTrackingComponent searchTrackingComponent;
|
||||||
|
|
||||||
private TenantService tenantService;
|
private TenantService tenantService;
|
||||||
|
|
||||||
private QNameDAO qnameDAO;
|
private QNameDAO qnameDAO;
|
||||||
|
|
||||||
public void setSolrTrackingComponent(SOLRTrackingComponent solrTrackingComponent)
|
public void setSearchTrackingComponent(SearchTrackingComponent searchTrackingComponent)
|
||||||
{
|
{
|
||||||
this.solrTrackingComponent = solrTrackingComponent;
|
this.searchTrackingComponent = searchTrackingComponent;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setTenantService(TenantService tenantService)
|
public void setTenantService(TenantService tenantService)
|
||||||
@@ -202,7 +201,7 @@ public class NodesGet extends DeclarativeWebScript
|
|||||||
|
|
||||||
WebNodeQueryCallback nodeQueryCallback = new WebNodeQueryCallback(maxResults, storeRef, tenantService, qnameDAO);
|
WebNodeQueryCallback nodeQueryCallback = new WebNodeQueryCallback(maxResults, storeRef, tenantService, qnameDAO);
|
||||||
|
|
||||||
solrTrackingComponent.getNodes(nodeParameters, nodeQueryCallback);
|
searchTrackingComponent.getNodes(nodeParameters, nodeQueryCallback);
|
||||||
|
|
||||||
Map<String, Object> model = new HashMap<String, Object>(1, 1.0f);
|
Map<String, Object> model = new HashMap<String, Object>(1, 1.0f);
|
||||||
List<NodeRecord> nodes = nodeQueryCallback.getNodes();
|
List<NodeRecord> nodes = nodeQueryCallback.getNodes();
|
||||||
|
@@ -38,11 +38,11 @@ import java.util.Set;
|
|||||||
|
|
||||||
import org.alfresco.error.AlfrescoRuntimeException;
|
import org.alfresco.error.AlfrescoRuntimeException;
|
||||||
import org.alfresco.repo.search.IndexerException;
|
import org.alfresco.repo.search.IndexerException;
|
||||||
|
import org.alfresco.repo.search.SearchTrackingComponent;
|
||||||
|
import org.alfresco.repo.search.SearchTrackingComponent.NodeMetaDataQueryCallback;
|
||||||
import org.alfresco.repo.solr.MetaDataResultsFilter;
|
import org.alfresco.repo.solr.MetaDataResultsFilter;
|
||||||
import org.alfresco.repo.solr.NodeMetaData;
|
import org.alfresco.repo.solr.NodeMetaData;
|
||||||
import org.alfresco.repo.solr.NodeMetaDataParameters;
|
import org.alfresco.repo.solr.NodeMetaDataParameters;
|
||||||
import org.alfresco.repo.solr.SOLRTrackingComponent;
|
|
||||||
import org.alfresco.repo.solr.SOLRTrackingComponent.NodeMetaDataQueryCallback;
|
|
||||||
import org.alfresco.repo.tenant.TenantUtil;
|
import org.alfresco.repo.tenant.TenantUtil;
|
||||||
import org.alfresco.repo.tenant.TenantUtil.TenantRunAsWork;
|
import org.alfresco.repo.tenant.TenantUtil.TenantRunAsWork;
|
||||||
import org.alfresco.service.cmr.repository.ChildAssociationRef;
|
import org.alfresco.service.cmr.repository.ChildAssociationRef;
|
||||||
@@ -74,12 +74,12 @@ public class NodesMetaDataGet extends DeclarativeWebScript
|
|||||||
private static final int INITIAL_DEFAULT_SIZE = 100;
|
private static final int INITIAL_DEFAULT_SIZE = 100;
|
||||||
private static final int BATCH_SIZE = 50;
|
private static final int BATCH_SIZE = 50;
|
||||||
|
|
||||||
private SOLRTrackingComponent solrTrackingComponent;
|
private SearchTrackingComponent searchTrackingComponent;
|
||||||
private SOLRSerializer solrSerializer;
|
private SOLRSerializer solrSerializer;
|
||||||
|
|
||||||
public void setSolrTrackingComponent(SOLRTrackingComponent solrTrackingComponent)
|
public void setSearchTrackingComponent(SearchTrackingComponent searchTrackingComponent)
|
||||||
{
|
{
|
||||||
this.solrTrackingComponent = solrTrackingComponent;
|
this.searchTrackingComponent = searchTrackingComponent;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setSolrSerializer(SOLRSerializer solrSerializer)
|
public void setSolrSerializer(SOLRSerializer solrSerializer)
|
||||||
@@ -188,7 +188,7 @@ public class NodesMetaDataGet extends DeclarativeWebScript
|
|||||||
params.setToNodeId(toNodeId);
|
params.setToNodeId(toNodeId);
|
||||||
params.setMaxResults(maxResults);
|
params.setMaxResults(maxResults);
|
||||||
|
|
||||||
solrTrackingComponent.getNodesMetadata(params, filter, new NodeMetaDataQueryCallback()
|
searchTrackingComponent.getNodesMetadata(params, filter, new NodeMetaDataQueryCallback()
|
||||||
{
|
{
|
||||||
private int counter = BATCH_SIZE;
|
private int counter = BATCH_SIZE;
|
||||||
private int numBatches = 0;
|
private int numBatches = 0;
|
||||||
|
@@ -25,20 +25,20 @@
|
|||||||
*/
|
*/
|
||||||
package org.alfresco.repo.web.scripts.solr;
|
package org.alfresco.repo.web.scripts.solr;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import org.alfresco.repo.index.shard.ShardMethodEnum;
|
import org.alfresco.repo.index.shard.ShardMethodEnum;
|
||||||
import org.alfresco.repo.index.shard.ShardState;
|
import org.alfresco.repo.index.shard.ShardState;
|
||||||
import org.alfresco.repo.index.shard.ShardStateBuilder;
|
import org.alfresco.repo.index.shard.ShardStateBuilder;
|
||||||
import org.alfresco.repo.solr.SOLRTrackingComponent;
|
import org.alfresco.repo.search.SearchTrackingComponent;
|
||||||
import org.alfresco.repo.solr.Transaction;
|
import org.alfresco.repo.solr.Transaction;
|
||||||
import org.alfresco.service.cmr.repository.StoreRef;
|
import org.alfresco.service.cmr.repository.StoreRef;
|
||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
import org.apache.commons.logging.LogFactory;
|
import org.apache.commons.logging.LogFactory;
|
||||||
import org.springframework.extensions.webscripts.DeclarativeWebScript;
|
import org.springframework.extensions.webscripts.DeclarativeWebScript;
|
||||||
import org.springframework.extensions.webscripts.Status;
|
import org.springframework.extensions.webscripts.Status;
|
||||||
import org.springframework.extensions.webscripts.WebScriptRequest;
|
import org.springframework.extensions.webscripts.WebScriptRequest;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -50,11 +50,11 @@ public class TransactionsGet extends DeclarativeWebScript
|
|||||||
{
|
{
|
||||||
protected static final Log logger = LogFactory.getLog(TransactionsGet.class);
|
protected static final Log logger = LogFactory.getLog(TransactionsGet.class);
|
||||||
|
|
||||||
private SOLRTrackingComponent solrTrackingComponent;
|
private SearchTrackingComponent searchTrackingComponent;
|
||||||
|
|
||||||
public void setSolrTrackingComponent(SOLRTrackingComponent solrTrackingComponent)
|
public void setSearchTrackingComponent(SearchTrackingComponent searchTrackingComponent)
|
||||||
{
|
{
|
||||||
this.solrTrackingComponent = solrTrackingComponent;
|
this.searchTrackingComponent = searchTrackingComponent;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected Map<String, Object> executeImpl(WebScriptRequest req, Status status)
|
protected Map<String, Object> executeImpl(WebScriptRequest req, Status status)
|
||||||
@@ -128,7 +128,7 @@ public class TransactionsGet extends DeclarativeWebScript
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
solrTrackingComponent.registerShardState(shardState);
|
searchTrackingComponent.registerShardState(shardState);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -139,18 +139,18 @@ public class TransactionsGet extends DeclarativeWebScript
|
|||||||
Long toCommitTime = (toCommitTimeParam == null ? null : Long.valueOf(toCommitTimeParam));
|
Long toCommitTime = (toCommitTimeParam == null ? null : Long.valueOf(toCommitTimeParam));
|
||||||
int maxResults = (maxResultsParam == null ? 1024 : Integer.valueOf(maxResultsParam));
|
int maxResults = (maxResultsParam == null ? 1024 : Integer.valueOf(maxResultsParam));
|
||||||
|
|
||||||
List<Transaction> transactions = solrTrackingComponent.getTransactions(minTxnId, fromCommitTime, maxTxnId, toCommitTime, maxResults);
|
List<Transaction> transactions = searchTrackingComponent.getTransactions(minTxnId, fromCommitTime, maxTxnId, toCommitTime, maxResults);
|
||||||
|
|
||||||
Map<String, Object> model = new HashMap<String, Object>(1, 1.0f);
|
Map<String, Object> model = new HashMap<String, Object>(1, 1.0f);
|
||||||
model.put("transactions", transactions);
|
model.put("transactions", transactions);
|
||||||
|
|
||||||
Long maxTxnCommitTime = solrTrackingComponent.getMaxTxnCommitTime();
|
Long maxTxnCommitTime = searchTrackingComponent.getMaxTxnCommitTime();
|
||||||
if(maxTxnCommitTime != null)
|
if(maxTxnCommitTime != null)
|
||||||
{
|
{
|
||||||
model.put("maxTxnCommitTime", maxTxnCommitTime);
|
model.put("maxTxnCommitTime", maxTxnCommitTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
Long maxTxnIdOnServer = solrTrackingComponent.getMaxTxnId();
|
Long maxTxnIdOnServer = searchTrackingComponent.getMaxTxnId();
|
||||||
if(maxTxnIdOnServer != null)
|
if(maxTxnIdOnServer != null)
|
||||||
{
|
{
|
||||||
model.put("maxTxnId", maxTxnIdOnServer);
|
model.put("maxTxnId", maxTxnIdOnServer);
|
||||||
|
@@ -1159,13 +1159,13 @@
|
|||||||
<bean id="webscript.org.alfresco.repository.solr.aclChangeSets.get"
|
<bean id="webscript.org.alfresco.repository.solr.aclChangeSets.get"
|
||||||
class="org.alfresco.repo.web.scripts.solr.AclChangeSetsGet"
|
class="org.alfresco.repo.web.scripts.solr.AclChangeSetsGet"
|
||||||
parent="webscript">
|
parent="webscript">
|
||||||
<property name="solrTrackingComponent" ref="solrTrackingComponent"/>
|
<property name="searchTrackingComponent" ref="searchTrackingComponent"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="webscript.org.alfresco.repository.solr.acls.post"
|
<bean id="webscript.org.alfresco.repository.solr.acls.post"
|
||||||
class="org.alfresco.repo.web.scripts.solr.AclsGet"
|
class="org.alfresco.repo.web.scripts.solr.AclsGet"
|
||||||
parent="webscript">
|
parent="webscript">
|
||||||
<property name="solrTrackingComponent" ref="solrTrackingComponent"/>
|
<property name="searchTrackingComponent" ref="searchTrackingComponent"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="webscript.org.alfresco.repository.solr.acls.get"
|
<bean id="webscript.org.alfresco.repository.solr.acls.get"
|
||||||
@@ -1174,7 +1174,7 @@
|
|||||||
<bean id="webscript.org.alfresco.repository.solr.aclsReaders.post"
|
<bean id="webscript.org.alfresco.repository.solr.aclsReaders.post"
|
||||||
class="org.alfresco.repo.web.scripts.solr.AclsReadersGet"
|
class="org.alfresco.repo.web.scripts.solr.AclsReadersGet"
|
||||||
parent="webscript">
|
parent="webscript">
|
||||||
<property name="solrTrackingComponent" ref="solrTrackingComponent"/>
|
<property name="searchTrackingComponent" ref="searchTrackingComponent"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="webscript.org.alfresco.repository.solr.aclsReaders.get"
|
<bean id="webscript.org.alfresco.repository.solr.aclsReaders.get"
|
||||||
@@ -1183,7 +1183,7 @@
|
|||||||
<bean id="webscript.org.alfresco.repository.solr.transactions.get"
|
<bean id="webscript.org.alfresco.repository.solr.transactions.get"
|
||||||
class="org.alfresco.repo.web.scripts.solr.TransactionsGet"
|
class="org.alfresco.repo.web.scripts.solr.TransactionsGet"
|
||||||
parent="webscript">
|
parent="webscript">
|
||||||
<property name="solrTrackingComponent" ref="solrTrackingComponent"/>
|
<property name="searchTrackingComponent" ref="searchTrackingComponent"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="webscript.org.alfresco.repository.solr.stats.get"
|
<bean id="webscript.org.alfresco.repository.solr.stats.get"
|
||||||
@@ -1225,7 +1225,7 @@
|
|||||||
<bean id="webscript.org.alfresco.repository.solr.nodes.post"
|
<bean id="webscript.org.alfresco.repository.solr.nodes.post"
|
||||||
class="org.alfresco.repo.web.scripts.solr.NodesGet"
|
class="org.alfresco.repo.web.scripts.solr.NodesGet"
|
||||||
parent="webscript">
|
parent="webscript">
|
||||||
<property name="solrTrackingComponent" ref="solrTrackingComponent"/>
|
<property name="searchTrackingComponent" ref="searchTrackingComponent"/>
|
||||||
<property name="tenantService" ref="tenantService"/>
|
<property name="tenantService" ref="tenantService"/>
|
||||||
<property name="qnameDAO" ref="qnameDAO"/>
|
<property name="qnameDAO" ref="qnameDAO"/>
|
||||||
</bean>
|
</bean>
|
||||||
@@ -1233,7 +1233,7 @@
|
|||||||
<bean id="webscript.org.alfresco.repository.solr.nodesMetaData.post"
|
<bean id="webscript.org.alfresco.repository.solr.nodesMetaData.post"
|
||||||
class="org.alfresco.repo.web.scripts.solr.NodesMetaDataGet"
|
class="org.alfresco.repo.web.scripts.solr.NodesMetaDataGet"
|
||||||
parent="webscript">
|
parent="webscript">
|
||||||
<property name="solrTrackingComponent" ref="solrTrackingComponent"/>
|
<property name="searchTrackingComponent" ref="searchTrackingComponent"/>
|
||||||
<property name="solrSerializer" ref="solrSerializer"/>
|
<property name="solrSerializer" ref="solrSerializer"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
@@ -1250,14 +1250,14 @@
|
|||||||
<bean id="webscript.org.alfresco.repository.solr.model.get"
|
<bean id="webscript.org.alfresco.repository.solr.model.get"
|
||||||
class="org.alfresco.repo.web.scripts.solr.AlfrescoModelGet"
|
class="org.alfresco.repo.web.scripts.solr.AlfrescoModelGet"
|
||||||
parent="webscript">
|
parent="webscript">
|
||||||
<property name="solrTrackingComponent" ref="solrTrackingComponent"/>
|
<property name="searchTrackingComponent" ref="searchTrackingComponent"/>
|
||||||
<property name="namespaceService" ref="namespaceService"/>
|
<property name="namespaceService" ref="namespaceService"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="webscript.org.alfresco.repository.solr.modelsdiff.post"
|
<bean id="webscript.org.alfresco.repository.solr.modelsdiff.post"
|
||||||
class="org.alfresco.repo.web.scripts.solr.AlfrescoModelsDiff"
|
class="org.alfresco.repo.web.scripts.solr.AlfrescoModelsDiff"
|
||||||
parent="webscript">
|
parent="webscript">
|
||||||
<property name="solrTrackingComponent" ref="solrTrackingComponent"/>
|
<property name="searchTrackingComponent" ref="searchTrackingComponent"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<!-- /api/solr webscript returning the min txId and the max TxId in a nodeId range -->
|
<!-- /api/solr webscript returning the min txId and the max TxId in a nodeId range -->
|
||||||
@@ -1266,7 +1266,7 @@
|
|||||||
parent="webscript">
|
parent="webscript">
|
||||||
<property name="nodeDAO" ref="nodeDAO" />
|
<property name="nodeDAO" ref="nodeDAO" />
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<!-- /api/solr webscript returning the min txId in a nodeId range -->
|
<!-- /api/solr webscript returning the min txId in a nodeId range -->
|
||||||
<bean id="webscript.org.alfresco.repository.solr.nextTransactionCommitTime.get"
|
<bean id="webscript.org.alfresco.repository.solr.nextTransactionCommitTime.get"
|
||||||
class="org.alfresco.repo.web.scripts.solr.NextTransactionGet"
|
class="org.alfresco.repo.web.scripts.solr.NextTransactionGet"
|
||||||
|
@@ -25,46 +25,46 @@
|
|||||||
*/
|
*/
|
||||||
package org.alfresco.repo.web.scripts.solr;
|
package org.alfresco.repo.web.scripts.solr;
|
||||||
|
|
||||||
import java.io.PrintWriter;
|
import java.io.PrintWriter;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import org.alfresco.model.ContentModel;
|
import org.alfresco.model.ContentModel;
|
||||||
import org.alfresco.repo.domain.node.NodeDAO;
|
import org.alfresco.repo.domain.node.NodeDAO;
|
||||||
import org.alfresco.repo.security.authentication.AuthenticationUtil;
|
import org.alfresco.repo.search.SearchTrackingComponent;
|
||||||
import org.alfresco.repo.solr.Acl;
|
import org.alfresco.repo.security.authentication.AuthenticationUtil;
|
||||||
import org.alfresco.repo.solr.AclChangeSet;
|
import org.alfresco.repo.solr.Acl;
|
||||||
import org.alfresco.repo.solr.AclReaders;
|
import org.alfresco.repo.solr.AclChangeSet;
|
||||||
import org.alfresco.repo.solr.SOLRTrackingComponent;
|
import org.alfresco.repo.solr.AclReaders;
|
||||||
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.repo.web.scripts.BaseWebScriptTest;
|
import org.alfresco.repo.web.scripts.BaseWebScriptTest;
|
||||||
import org.alfresco.service.ServiceRegistry;
|
import org.alfresco.service.ServiceRegistry;
|
||||||
import org.alfresco.service.cmr.model.FileFolderService;
|
import org.alfresco.service.cmr.model.FileFolderService;
|
||||||
import org.alfresco.service.cmr.model.FileInfo;
|
import org.alfresco.service.cmr.model.FileInfo;
|
||||||
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.repository.NodeService;
|
||||||
import org.alfresco.service.cmr.repository.Path;
|
import org.alfresco.service.cmr.repository.Path;
|
||||||
import org.alfresco.service.cmr.repository.StoreRef;
|
import org.alfresco.service.cmr.repository.StoreRef;
|
||||||
import org.alfresco.service.namespace.NamespaceService;
|
import org.alfresco.service.namespace.NamespaceService;
|
||||||
import org.alfresco.service.namespace.QName;
|
import org.alfresco.service.namespace.QName;
|
||||||
import org.alfresco.service.transaction.TransactionService;
|
import org.alfresco.service.transaction.TransactionService;
|
||||||
import org.alfresco.util.Pair;
|
import org.alfresco.util.Pair;
|
||||||
import org.alfresco.util.PropertyMap;
|
import org.alfresco.util.PropertyMap;
|
||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
import org.apache.commons.logging.LogFactory;
|
import org.apache.commons.logging.LogFactory;
|
||||||
import org.json.JSONArray;
|
import org.json.JSONArray;
|
||||||
import org.json.JSONException;
|
import org.json.JSONException;
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
import org.springframework.context.ApplicationContext;
|
import org.springframework.context.ApplicationContext;
|
||||||
import org.springframework.extensions.webscripts.Status;
|
import org.springframework.extensions.webscripts.Status;
|
||||||
import org.springframework.extensions.webscripts.TestWebScriptServer;
|
import org.springframework.extensions.webscripts.TestWebScriptServer;
|
||||||
import org.springframework.extensions.webscripts.TestWebScriptServer.Response;
|
import org.springframework.extensions.webscripts.TestWebScriptServer.Response;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -77,7 +77,7 @@ public class SOLRWebScriptTest extends BaseWebScriptTest
|
|||||||
protected static final Log logger = LogFactory.getLog(SOLRWebScriptTest.class);
|
protected static final Log logger = LogFactory.getLog(SOLRWebScriptTest.class);
|
||||||
|
|
||||||
private ApplicationContext ctx;
|
private ApplicationContext ctx;
|
||||||
private SOLRTrackingComponent solrTrackingComponent;
|
private SearchTrackingComponent searchTrackingComponent;
|
||||||
private NodeDAO nodeDAO;
|
private NodeDAO nodeDAO;
|
||||||
private TransactionService transactionService;
|
private TransactionService transactionService;
|
||||||
private NodeService nodeService;
|
private NodeService nodeService;
|
||||||
@@ -107,7 +107,7 @@ public class SOLRWebScriptTest extends BaseWebScriptTest
|
|||||||
namespaceService = serviceRegistry.getNamespaceService();
|
namespaceService = serviceRegistry.getNamespaceService();
|
||||||
txnHelper = transactionService.getRetryingTransactionHelper();
|
txnHelper = transactionService.getRetryingTransactionHelper();
|
||||||
nodeDAO = (NodeDAO)ctx.getBean("nodeDAO");
|
nodeDAO = (NodeDAO)ctx.getBean("nodeDAO");
|
||||||
solrTrackingComponent = (SOLRTrackingComponent) ctx.getBean("solrTrackingComponent");
|
searchTrackingComponent = (SearchTrackingComponent) ctx.getBean("searchTrackingComponent");
|
||||||
|
|
||||||
admin = AuthenticationUtil.getAdminUserName();
|
admin = AuthenticationUtil.getAdminUserName();
|
||||||
|
|
||||||
@@ -165,7 +165,7 @@ public class SOLRWebScriptTest extends BaseWebScriptTest
|
|||||||
|
|
||||||
public void testAclsGet() throws Exception
|
public void testAclsGet() throws Exception
|
||||||
{
|
{
|
||||||
List<AclChangeSet> aclChangeSets = solrTrackingComponent.getAclChangeSets(null, null, null, null, 100);
|
List<AclChangeSet> aclChangeSets = searchTrackingComponent.getAclChangeSets(null, null, null, null, 100);
|
||||||
if (aclChangeSets.size() == 0)
|
if (aclChangeSets.size() == 0)
|
||||||
{
|
{
|
||||||
return; // Can't test, but very unlikely
|
return; // Can't test, but very unlikely
|
||||||
@@ -203,7 +203,7 @@ public class SOLRWebScriptTest extends BaseWebScriptTest
|
|||||||
JSONArray acls = json.getJSONArray("acls");
|
JSONArray acls = json.getJSONArray("acls");
|
||||||
|
|
||||||
// Check
|
// Check
|
||||||
List<Acl> aclsCheck = solrTrackingComponent.getAcls(aclChangeSetIds, null, 512);
|
List<Acl> aclsCheck = searchTrackingComponent.getAcls(aclChangeSetIds, null, 512);
|
||||||
assertEquals("Script and API returned different number of results", aclsCheck.size(), acls.length());
|
assertEquals("Script and API returned different number of results", aclsCheck.size(), acls.length());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -223,7 +223,7 @@ public class SOLRWebScriptTest extends BaseWebScriptTest
|
|||||||
|
|
||||||
private void aclReadersGetImpl() throws Exception
|
private void aclReadersGetImpl() throws Exception
|
||||||
{
|
{
|
||||||
List<AclChangeSet> aclChangeSets = solrTrackingComponent.getAclChangeSets(null, null, null, null, 1024);
|
List<AclChangeSet> aclChangeSets = searchTrackingComponent.getAclChangeSets(null, null, null, null, 1024);
|
||||||
List<Long> aclChangeSetIds = new ArrayList<Long>(50);
|
List<Long> aclChangeSetIds = new ArrayList<Long>(50);
|
||||||
for (AclChangeSet aclChangeSet : aclChangeSets)
|
for (AclChangeSet aclChangeSet : aclChangeSets)
|
||||||
{
|
{
|
||||||
@@ -237,7 +237,7 @@ public class SOLRWebScriptTest extends BaseWebScriptTest
|
|||||||
{
|
{
|
||||||
// No ACLs; not likely
|
// No ACLs; not likely
|
||||||
}
|
}
|
||||||
List<Acl> acls = solrTrackingComponent.getAcls(aclChangeSetIds, null, 1024);
|
List<Acl> acls = searchTrackingComponent.getAcls(aclChangeSetIds, null, 1024);
|
||||||
List<Long> aclIds = new ArrayList<Long>(acls.size());
|
List<Long> aclIds = new ArrayList<Long>(acls.size());
|
||||||
JSONObject json = new JSONObject();
|
JSONObject json = new JSONObject();
|
||||||
JSONArray aclIdsJSON = new JSONArray();
|
JSONArray aclIdsJSON = new JSONArray();
|
||||||
@@ -250,7 +250,7 @@ public class SOLRWebScriptTest extends BaseWebScriptTest
|
|||||||
json.put("aclIds", aclIdsJSON);
|
json.put("aclIds", aclIdsJSON);
|
||||||
|
|
||||||
// Now get the readers
|
// Now get the readers
|
||||||
List<AclReaders> aclsReaders = solrTrackingComponent.getAclsReaders(aclIds);
|
List<AclReaders> aclsReaders = searchTrackingComponent.getAclsReaders(aclIds);
|
||||||
assertEquals("Should have same number of ACLs as supplied", aclIds.size(), aclsReaders.size());
|
assertEquals("Should have same number of ACLs as supplied", aclIds.size(), aclsReaders.size());
|
||||||
assertTrue("Must have *some* ACLs here", aclIds.size() > 0);
|
assertTrue("Must have *some* ACLs here", aclIds.size() > 0);
|
||||||
Map<Long, Set<String>> readersByAclId = new HashMap<Long, Set<String>>();
|
Map<Long, Set<String>> readersByAclId = new HashMap<Long, Set<String>>();
|
||||||
|
@@ -39,7 +39,7 @@ import org.alfresco.service.namespace.QName;
|
|||||||
*
|
*
|
||||||
* @since 4.0
|
* @since 4.0
|
||||||
*/
|
*/
|
||||||
public interface SOLRDAO
|
public interface SearchDAO
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Get the ACL changesets summary (rollup count) with paging options
|
* Get the ACL changesets summary (rollup count) with paging options
|
@@ -36,7 +36,7 @@ import org.alfresco.repo.domain.node.Node;
|
|||||||
import org.alfresco.repo.domain.qname.QNameDAO;
|
import org.alfresco.repo.domain.qname.QNameDAO;
|
||||||
import org.alfresco.repo.domain.solr.AclEntity;
|
import org.alfresco.repo.domain.solr.AclEntity;
|
||||||
import org.alfresco.repo.domain.solr.NodeParametersEntity;
|
import org.alfresco.repo.domain.solr.NodeParametersEntity;
|
||||||
import org.alfresco.repo.domain.solr.SOLRDAO;
|
import org.alfresco.repo.domain.solr.SearchDAO;
|
||||||
import org.alfresco.repo.domain.solr.SOLRTrackingParameters;
|
import org.alfresco.repo.domain.solr.SOLRTrackingParameters;
|
||||||
import org.alfresco.repo.search.impl.QueryParserUtils;
|
import org.alfresco.repo.search.impl.QueryParserUtils;
|
||||||
import org.alfresco.repo.solr.Acl;
|
import org.alfresco.repo.solr.Acl;
|
||||||
@@ -55,7 +55,7 @@ import org.mybatis.spring.SqlSessionTemplate;
|
|||||||
*
|
*
|
||||||
* @since 4.0
|
* @since 4.0
|
||||||
*/
|
*/
|
||||||
public class SOLRDAOImpl implements SOLRDAO
|
public class SearchDAOImpl implements SearchDAO
|
||||||
{
|
{
|
||||||
private static final String SELECT_CHANGESETS_SUMMARY = "alfresco.solr.select_ChangeSets_Summary";
|
private static final String SELECT_CHANGESETS_SUMMARY = "alfresco.solr.select_ChangeSets_Summary";
|
||||||
private static final String SELECT_ACLS_BY_CHANGESET_IDS = "alfresco.solr.select_AclsByChangeSetIds";
|
private static final String SELECT_ACLS_BY_CHANGESET_IDS = "alfresco.solr.select_AclsByChangeSetIds";
|
@@ -31,8 +31,8 @@ import org.alfresco.repo.node.NodeServicePolicies.OnDeleteChildAssociationPolicy
|
|||||||
import org.alfresco.repo.node.NodeServicePolicies.OnMoveNodePolicy;
|
import org.alfresco.repo.node.NodeServicePolicies.OnMoveNodePolicy;
|
||||||
import org.alfresco.repo.policy.Behaviour;
|
import org.alfresco.repo.policy.Behaviour;
|
||||||
import org.alfresco.repo.policy.JavaBehaviour;
|
import org.alfresco.repo.policy.JavaBehaviour;
|
||||||
import org.alfresco.repo.policy.PolicyComponent;
|
import org.alfresco.repo.policy.PolicyComponent;
|
||||||
import org.alfresco.repo.solr.SOLRTrackingComponent;
|
import org.alfresco.repo.search.SearchTrackingComponent;
|
||||||
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;
|
||||||
import org.alfresco.service.cmr.repository.NodeRef.Status;
|
import org.alfresco.service.cmr.repository.NodeRef.Status;
|
||||||
@@ -46,7 +46,7 @@ public class CascadeUpdateAspect implements OnCreateChildAssociationPolicy, OnDe
|
|||||||
{
|
{
|
||||||
private PolicyComponent policyComponent;
|
private PolicyComponent policyComponent;
|
||||||
private NodeService nodeService;
|
private NodeService nodeService;
|
||||||
private SOLRTrackingComponent solrTrackingComponent;
|
private SearchTrackingComponent searchTrackingComponent;
|
||||||
|
|
||||||
|
|
||||||
public void setPolicyComponent(PolicyComponent policyComponent)
|
public void setPolicyComponent(PolicyComponent policyComponent)
|
||||||
@@ -59,9 +59,9 @@ public class CascadeUpdateAspect implements OnCreateChildAssociationPolicy, OnDe
|
|||||||
this.nodeService = nodeService;
|
this.nodeService = nodeService;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setSolrTrackingComponent(SOLRTrackingComponent solrTrackingComponent)
|
public void setSearchTrackingComponent(SearchTrackingComponent searchTrackingComponent)
|
||||||
{
|
{
|
||||||
this.solrTrackingComponent = solrTrackingComponent;
|
this.searchTrackingComponent = searchTrackingComponent;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -112,7 +112,7 @@ public class CascadeUpdateAspect implements OnCreateChildAssociationPolicy, OnDe
|
|||||||
private void markCascadeUpdate(NodeRef nodeRef)
|
private void markCascadeUpdate(NodeRef nodeRef)
|
||||||
{
|
{
|
||||||
Status status = nodeService.getNodeStatus(nodeRef);
|
Status status = nodeService.getNodeStatus(nodeRef);
|
||||||
nodeService.setProperty(status.getNodeRef(), ContentModel.PROP_CASCADE_CRC, solrTrackingComponent.getCRC(status.getDbId()));
|
nodeService.setProperty(status.getNodeRef(), ContentModel.PROP_CASCADE_CRC, searchTrackingComponent.getCRC(status.getDbId()));
|
||||||
nodeService.setProperty(status.getNodeRef(), ContentModel.PROP_CASCADE_TX, status.getDbTxnId());
|
nodeService.setProperty(status.getNodeRef(), ContentModel.PROP_CASCADE_TX, status.getDbTxnId());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -23,22 +23,32 @@
|
|||||||
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
|
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
|
||||||
* #L%
|
* #L%
|
||||||
*/
|
*/
|
||||||
package org.alfresco.repo.solr;
|
package org.alfresco.repo.search;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import org.alfresco.repo.domain.node.Node;
|
import org.alfresco.repo.domain.node.Node;
|
||||||
import org.alfresco.repo.index.shard.ShardRegistry;
|
import org.alfresco.repo.index.shard.ShardRegistry;
|
||||||
import org.alfresco.repo.index.shard.ShardState;
|
import org.alfresco.repo.index.shard.ShardState;
|
||||||
|
import org.alfresco.repo.solr.Acl;
|
||||||
|
import org.alfresco.repo.solr.AclChangeSet;
|
||||||
|
import org.alfresco.repo.solr.AclReaders;
|
||||||
|
import org.alfresco.repo.solr.AlfrescoModel;
|
||||||
|
import org.alfresco.repo.solr.AlfrescoModelDiff;
|
||||||
|
import org.alfresco.repo.solr.MetaDataResultsFilter;
|
||||||
|
import org.alfresco.repo.solr.NodeMetaData;
|
||||||
|
import org.alfresco.repo.solr.NodeMetaDataParameters;
|
||||||
|
import org.alfresco.repo.solr.NodeParameters;
|
||||||
|
import org.alfresco.repo.solr.Transaction;
|
||||||
import org.alfresco.service.namespace.QName;
|
import org.alfresco.service.namespace.QName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Interface for component to provide tracking data for SOLR.
|
* Interface for component to provide tracking data for Search Subsystem.
|
||||||
*
|
*
|
||||||
* @since 4.0
|
* @since 4.0
|
||||||
*/
|
*/
|
||||||
public interface SOLRTrackingComponent
|
public interface SearchTrackingComponent
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Get the ACL changesets for given range parameters
|
* Get the ACL changesets for given range parameters
|
@@ -32,7 +32,7 @@ import java.util.Set;
|
|||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
|
|
||||||
import org.alfresco.repo.domain.node.Node;
|
import org.alfresco.repo.domain.node.Node;
|
||||||
import org.alfresco.repo.domain.solr.SOLRDAO;
|
import org.alfresco.repo.domain.solr.SearchDAO;
|
||||||
import org.alfresco.repo.search.impl.lucene.AbstractLuceneQueryLanguage;
|
import org.alfresco.repo.search.impl.lucene.AbstractLuceneQueryLanguage;
|
||||||
import org.alfresco.repo.search.impl.lucene.LuceneQueryLanguageSPI;
|
import org.alfresco.repo.search.impl.lucene.LuceneQueryLanguageSPI;
|
||||||
import org.alfresco.repo.search.impl.lucene.SolrJSONResultSet;
|
import org.alfresco.repo.search.impl.lucene.SolrJSONResultSet;
|
||||||
@@ -65,7 +65,7 @@ public class DbOrIndexSwitchingQueryLanguage extends AbstractLuceneQueryLanguage
|
|||||||
|
|
||||||
private NodeService nodeService;
|
private NodeService nodeService;
|
||||||
|
|
||||||
private SOLRDAO solrDao;
|
private SearchDAO searchDao;
|
||||||
|
|
||||||
private boolean hybridEnabled;
|
private boolean hybridEnabled;
|
||||||
|
|
||||||
@@ -101,9 +101,9 @@ public class DbOrIndexSwitchingQueryLanguage extends AbstractLuceneQueryLanguage
|
|||||||
this.nodeService = nodeService;
|
this.nodeService = nodeService;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setSolrDao(SOLRDAO solrDao)
|
public void setSearchDao(SearchDAO searchDao)
|
||||||
{
|
{
|
||||||
this.solrDao = solrDao;
|
this.searchDao = searchDao;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setHybridEnabled(boolean hybridEnabled)
|
public void setHybridEnabled(boolean hybridEnabled)
|
||||||
@@ -333,7 +333,7 @@ public class DbOrIndexSwitchingQueryLanguage extends AbstractLuceneQueryLanguage
|
|||||||
// TODO: setToTxnId(null) when SolrDAO behaviour is fixed.
|
// TODO: setToTxnId(null) when SolrDAO behaviour is fixed.
|
||||||
nodeParameters.setToTxnId(Long.MAX_VALUE);
|
nodeParameters.setToTxnId(Long.MAX_VALUE);
|
||||||
stopWatch.start("get changed nodes");
|
stopWatch.start("get changed nodes");
|
||||||
List<Node> changedNodeList = solrDao.getNodes(nodeParameters, null, null);
|
List<Node> changedNodeList = searchDao.getNodes(nodeParameters, null, null);
|
||||||
stopWatch.stop();
|
stopWatch.stop();
|
||||||
if (logger.isDebugEnabled())
|
if (logger.isDebugEnabled())
|
||||||
{
|
{
|
||||||
|
@@ -36,14 +36,12 @@ import java.util.Iterator;
|
|||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.OptionalInt;
|
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.TreeSet;
|
import java.util.TreeSet;
|
||||||
import java.util.zip.CRC32;
|
import java.util.zip.CRC32;
|
||||||
|
|
||||||
import org.alfresco.error.AlfrescoRuntimeException;
|
import org.alfresco.error.AlfrescoRuntimeException;
|
||||||
import org.alfresco.model.ContentModel;
|
import org.alfresco.model.ContentModel;
|
||||||
import org.alfresco.repo.coci.CheckOutCheckInServiceImpl;
|
|
||||||
import org.alfresco.repo.dictionary.DictionaryDAO;
|
import org.alfresco.repo.dictionary.DictionaryDAO;
|
||||||
import org.alfresco.repo.domain.node.Node;
|
import org.alfresco.repo.domain.node.Node;
|
||||||
import org.alfresco.repo.domain.node.NodeDAO;
|
import org.alfresco.repo.domain.node.NodeDAO;
|
||||||
@@ -51,10 +49,11 @@ import org.alfresco.repo.domain.node.NodeDAO.ChildAssocRefQueryCallback;
|
|||||||
import org.alfresco.repo.domain.node.NodeEntity;
|
import org.alfresco.repo.domain.node.NodeEntity;
|
||||||
import org.alfresco.repo.domain.permissions.AclDAO;
|
import org.alfresco.repo.domain.permissions.AclDAO;
|
||||||
import org.alfresco.repo.domain.qname.QNameDAO;
|
import org.alfresco.repo.domain.qname.QNameDAO;
|
||||||
import org.alfresco.repo.domain.solr.SOLRDAO;
|
import org.alfresco.repo.domain.solr.SearchDAO;
|
||||||
import org.alfresco.repo.index.shard.ShardRegistry;
|
import org.alfresco.repo.index.shard.ShardRegistry;
|
||||||
import org.alfresco.repo.index.shard.ShardState;
|
import org.alfresco.repo.index.shard.ShardState;
|
||||||
import org.alfresco.repo.search.AspectIndexFilter;
|
import org.alfresco.repo.search.AspectIndexFilter;
|
||||||
|
import org.alfresco.repo.search.SearchTrackingComponent;
|
||||||
import org.alfresco.repo.search.TypeIndexFilter;
|
import org.alfresco.repo.search.TypeIndexFilter;
|
||||||
import org.alfresco.repo.search.impl.QueryParserUtils;
|
import org.alfresco.repo.search.impl.QueryParserUtils;
|
||||||
import org.alfresco.repo.security.authentication.AuthenticationUtil;
|
import org.alfresco.repo.security.authentication.AuthenticationUtil;
|
||||||
@@ -89,11 +88,11 @@ import org.apache.commons.logging.LogFactory;
|
|||||||
*
|
*
|
||||||
* @since 4.0
|
* @since 4.0
|
||||||
*/
|
*/
|
||||||
public class SOLRTrackingComponentImpl implements SOLRTrackingComponent
|
public class SOLRTrackingComponentImpl implements SearchTrackingComponent
|
||||||
{
|
{
|
||||||
private NodeDAO nodeDAO;
|
private NodeDAO nodeDAO;
|
||||||
private QNameDAO qnameDAO;
|
private QNameDAO qnameDAO;
|
||||||
private SOLRDAO solrDAO;
|
private SearchDAO searchDAO;
|
||||||
private DictionaryDAO dictionaryDAO;
|
private DictionaryDAO dictionaryDAO;
|
||||||
private PermissionService permissionService;
|
private PermissionService permissionService;
|
||||||
private AclDAO aclDAO;
|
private AclDAO aclDAO;
|
||||||
@@ -130,9 +129,9 @@ public class SOLRTrackingComponentImpl implements SOLRTrackingComponent
|
|||||||
this.cacheAncestors = cacheAncestors;
|
this.cacheAncestors = cacheAncestors;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setSolrDAO(SOLRDAO solrDAO)
|
public void setSearchDAO(SearchDAO searchDAO)
|
||||||
{
|
{
|
||||||
this.solrDAO = solrDAO;
|
this.searchDAO = searchDAO;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setNodeDAO(NodeDAO nodeDAO)
|
public void setNodeDAO(NodeDAO nodeDAO)
|
||||||
@@ -200,7 +199,7 @@ public class SOLRTrackingComponentImpl implements SOLRTrackingComponent
|
|||||||
*/
|
*/
|
||||||
public void init()
|
public void init()
|
||||||
{
|
{
|
||||||
PropertyCheck.mandatory(this, "solrDAO", solrDAO);
|
PropertyCheck.mandatory(this, "solrDAO", searchDAO);
|
||||||
PropertyCheck.mandatory(this, "nodeDAO", nodeDAO);
|
PropertyCheck.mandatory(this, "nodeDAO", nodeDAO);
|
||||||
PropertyCheck.mandatory(this, "qnameDAO", qnameDAO);
|
PropertyCheck.mandatory(this, "qnameDAO", qnameDAO);
|
||||||
PropertyCheck.mandatory(this, "permissionService", permissionService);
|
PropertyCheck.mandatory(this, "permissionService", permissionService);
|
||||||
@@ -219,7 +218,7 @@ public class SOLRTrackingComponentImpl implements SOLRTrackingComponent
|
|||||||
{
|
{
|
||||||
if(enabled)
|
if(enabled)
|
||||||
{
|
{
|
||||||
List<AclChangeSet> changesets = solrDAO.getAclChangeSets(minAclChangeSetId, fromCommitTime, maxAclChangeSetId, toCommitTime, maxResults);
|
List<AclChangeSet> changesets = searchDAO.getAclChangeSets(minAclChangeSetId, fromCommitTime, maxAclChangeSetId, toCommitTime, maxResults);
|
||||||
return changesets;
|
return changesets;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -233,7 +232,7 @@ public class SOLRTrackingComponentImpl implements SOLRTrackingComponent
|
|||||||
{
|
{
|
||||||
if(enabled)
|
if(enabled)
|
||||||
{
|
{
|
||||||
List<Acl> acls = solrDAO.getAcls(aclChangeSetIds, minAclId, maxResults);
|
List<Acl> acls = searchDAO.getAcls(aclChangeSetIds, minAclId, maxResults);
|
||||||
return acls;
|
return acls;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -305,7 +304,7 @@ public class SOLRTrackingComponentImpl implements SOLRTrackingComponent
|
|||||||
List<Long> aclChangeSetIds = new ArrayList<Long>(1);
|
List<Long> aclChangeSetIds = new ArrayList<Long>(1);
|
||||||
aclChangeSetIds.add(aclChangeSetId);
|
aclChangeSetIds.add(aclChangeSetId);
|
||||||
|
|
||||||
List<Acl> acls = solrDAO.getAcls(aclChangeSetIds, null, 1024);
|
List<Acl> acls = searchDAO.getAcls(aclChangeSetIds, null, 1024);
|
||||||
for (Acl acl : acls)
|
for (Acl acl : acls)
|
||||||
{
|
{
|
||||||
tenantDomain = getAclTenant(acl.getId());
|
tenantDomain = getAclTenant(acl.getId());
|
||||||
@@ -347,7 +346,7 @@ public class SOLRTrackingComponentImpl implements SOLRTrackingComponent
|
|||||||
{
|
{
|
||||||
if(enabled)
|
if(enabled)
|
||||||
{
|
{
|
||||||
List<Transaction> txns = solrDAO.getTransactions(minTxnId, fromCommitTime, maxTxnId, toCommitTime, maxResults);
|
List<Transaction> txns = searchDAO.getTransactions(minTxnId, fromCommitTime, maxTxnId, toCommitTime, maxResults);
|
||||||
return txns;
|
return txns;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -392,7 +391,7 @@ public class SOLRTrackingComponentImpl implements SOLRTrackingComponent
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
List<Node> nodes = solrDAO.getNodes(nodeParameters, shardPropertQName, shardPropertyType);
|
List<Node> nodes = searchDAO.getNodes(nodeParameters, shardPropertQName, shardPropertyType);
|
||||||
|
|
||||||
for (Node node : nodes)
|
for (Node node : nodes)
|
||||||
{
|
{
|
||||||
|
@@ -4,6 +4,9 @@
|
|||||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||||
http://www.springframework.org/schema/beans/spring-beans.xsd">
|
http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||||
|
|
||||||
|
<!-- Required to import Enterprise-Only Search Subsystems (like "elasticsearch") -->
|
||||||
|
<import resource="classpath*:alfresco/enterprise/search-enterprise-context.xml" />
|
||||||
|
|
||||||
<!-- Core and miscellaneous bean definitions -->
|
<!-- Core and miscellaneous bean definitions -->
|
||||||
|
|
||||||
<!-- -->
|
<!-- -->
|
||||||
@@ -998,7 +1001,7 @@
|
|||||||
</list>
|
</list>
|
||||||
</property>
|
</property>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="solr" class="org.alfresco.repo.search.impl.solr.SolrChildApplicationContextFactory" parent="abstractPropertyBackedBean">
|
<bean id="solr" class="org.alfresco.repo.search.impl.solr.SolrChildApplicationContextFactory" parent="abstractPropertyBackedBean">
|
||||||
<property name="autoStart">
|
<property name="autoStart">
|
||||||
<value>false</value>
|
<value>false</value>
|
||||||
@@ -1291,16 +1294,16 @@
|
|||||||
</property>
|
</property>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="solrTrackingComponent" class="org.alfresco.repo.management.subsystems.SubsystemProxyFactory">
|
<bean id="searchTrackingComponent" class="org.alfresco.repo.management.subsystems.SubsystemProxyFactory">
|
||||||
<property name="sourceApplicationContextFactory">
|
<property name="sourceApplicationContextFactory">
|
||||||
<ref bean="Search" />
|
<ref bean="Search" />
|
||||||
</property>
|
</property>
|
||||||
<property name="sourceBeanName">
|
<property name="sourceBeanName">
|
||||||
<value>search.solrTrackingComponent</value>
|
<value>search.trackingComponent</value>
|
||||||
</property>
|
</property>
|
||||||
<property name="interfaces">
|
<property name="interfaces">
|
||||||
<list>
|
<list>
|
||||||
<value>org.alfresco.repo.solr.SOLRTrackingComponent</value>
|
<value>org.alfresco.repo.search.SearchTrackingComponent</value>
|
||||||
</list>
|
</list>
|
||||||
</property>
|
</property>
|
||||||
</bean>
|
</bean>
|
||||||
|
@@ -294,8 +294,8 @@
|
|||||||
<property name="controlDAO" ref="controlDAO"/>
|
<property name="controlDAO" ref="controlDAO"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="solrDAO" class="org.alfresco.repo.domain.solr.ibatis.SOLRDAOImpl" init-method="init">
|
<bean id="searchDAO" class="org.alfresco.repo.domain.solr.ibatis.SearchDAOImpl" init-method="init">
|
||||||
<property name="sqlSessionTemplate" ref="solrSqlSessionTemplate"/>
|
<property name="sqlSessionTemplate" ref="searchSqlSessionTemplate"/>
|
||||||
<property name="qNameDAO" ref="qnameDAO"/>
|
<property name="qNameDAO" ref="qnameDAO"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
|
@@ -52,7 +52,7 @@
|
|||||||
<constructor-arg index="0" ref="repoSqlSessionFactory"/>
|
<constructor-arg index="0" ref="repoSqlSessionFactory"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="solrSqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
|
<bean id="searchSqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
|
||||||
<constructor-arg index="0" ref="repoSqlSessionFactory"/>
|
<constructor-arg index="0" ref="repoSqlSessionFactory"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
|
@@ -323,7 +323,7 @@
|
|||||||
<bean id="cascadeUpdateAspect" class="org.alfresco.repo.node.CascadeUpdateAspect" init-method="init">
|
<bean id="cascadeUpdateAspect" class="org.alfresco.repo.node.CascadeUpdateAspect" init-method="init">
|
||||||
<property name="nodeService" ref="nodeService"/>
|
<property name="nodeService" ref="nodeService"/>
|
||||||
<property name="policyComponent" ref="policyComponent"/>
|
<property name="policyComponent" ref="policyComponent"/>
|
||||||
<property name="solrTrackingComponent" ref="solrTrackingComponent" />
|
<property name="searchTrackingComponent" ref="searchTrackingComponent" />
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
</beans>
|
</beans>
|
||||||
|
@@ -23,7 +23,7 @@
|
|||||||
<value>${solr.query.cmis.queryConsistency}</value>
|
<value>${solr.query.cmis.queryConsistency}</value>
|
||||||
</property>
|
</property>
|
||||||
<property name="nodeService" ref="NodeService"/>
|
<property name="nodeService" ref="NodeService"/>
|
||||||
<property name="solrDao" ref="solrDAO"/>
|
<property name="searchDao" ref="searchDAO"/>
|
||||||
<property name="hybridEnabled" value="${solr.query.hybrid.enabled}"/>
|
<property name="hybridEnabled" value="${solr.query.hybrid.enabled}"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
@@ -66,7 +66,7 @@
|
|||||||
<value>${solr.query.cmis.queryConsistency}</value>
|
<value>${solr.query.cmis.queryConsistency}</value>
|
||||||
</property>
|
</property>
|
||||||
<property name="nodeService" ref="NodeService"/>
|
<property name="nodeService" ref="NodeService"/>
|
||||||
<property name="solrDao" ref="solrDAO"/>
|
<property name="searchDao" ref="searchDAO"/>
|
||||||
<property name="hybridEnabled" value="${solr.query.hybrid.enabled}"/>
|
<property name="hybridEnabled" value="${solr.query.hybrid.enabled}"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
|
@@ -6,14 +6,14 @@
|
|||||||
http://www.springframework.org/schema/beans/spring-beans.xsd">
|
http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||||
<!-- SOLR Tracking -->
|
<!-- SOLR Tracking -->
|
||||||
|
|
||||||
<bean id="search.solrTrackingComponent" class="org.alfresco.repo.solr.SOLRTrackingComponentImpl" init-method="init">
|
<bean id="search.trackingComponent" class="org.alfresco.repo.solr.SOLRTrackingComponentImpl" init-method="init">
|
||||||
<property name="permissionService" ref="permissionService"/>
|
<property name="permissionService" ref="permissionService"/>
|
||||||
<property name="dictionaryService" ref="dictionaryService"/>
|
<property name="dictionaryService" ref="dictionaryService"/>
|
||||||
<property name="ownableService" ref="ownableService"/>
|
<property name="ownableService" ref="ownableService"/>
|
||||||
<property name="tenantService" ref="tenantService"/>
|
<property name="tenantService" ref="tenantService"/>
|
||||||
<property name="nodeDAO" ref="nodeDAO"/>
|
<property name="nodeDAO" ref="nodeDAO"/>
|
||||||
<property name="qnameDAO" ref="qnameDAO"/>
|
<property name="qnameDAO" ref="qnameDAO"/>
|
||||||
<property name="solrDAO" ref="solrDAO" />
|
<property name="searchDAO" ref="searchDAO" />
|
||||||
<property name="dictionaryDAO" ref="dictionaryDAO" />
|
<property name="dictionaryDAO" ref="dictionaryDAO" />
|
||||||
<property name="aclDAO" ref="aclDAO" />
|
<property name="aclDAO" ref="aclDAO" />
|
||||||
<property name="enabled">
|
<property name="enabled">
|
||||||
@@ -83,7 +83,7 @@
|
|||||||
<property name="queryConsistency">
|
<property name="queryConsistency">
|
||||||
<value>${solr.query.fts.queryConsistency}</value>
|
<value>${solr.query.fts.queryConsistency}</value>
|
||||||
</property>
|
</property>
|
||||||
<property name="solrDao" ref="solrDAO"/>
|
<property name="searchDao" ref="searchDAO"/>
|
||||||
<property name="hybridEnabled" value="${solr.query.hybrid.enabled}"/>
|
<property name="hybridEnabled" value="${solr.query.hybrid.enabled}"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
|
@@ -64,7 +64,7 @@ import org.junit.runners.Suite;
|
|||||||
org.alfresco.repo.domain.patch.AppliedPatchDAOTest.class,
|
org.alfresco.repo.domain.patch.AppliedPatchDAOTest.class,
|
||||||
org.alfresco.repo.domain.permissions.AclCrudDAOTest.class,
|
org.alfresco.repo.domain.permissions.AclCrudDAOTest.class,
|
||||||
org.alfresco.repo.domain.usage.UsageDAOTest.class,
|
org.alfresco.repo.domain.usage.UsageDAOTest.class,
|
||||||
org.alfresco.repo.domain.solr.SOLRDAOTest.class,
|
org.alfresco.repo.domain.solr.SearchDAOTest.class,
|
||||||
org.alfresco.repo.domain.tenant.TenantAdminDAOTest.class,
|
org.alfresco.repo.domain.tenant.TenantAdminDAOTest.class,
|
||||||
|
|
||||||
// REPO-1012 : run AuditDAOTest and PropertyValueCleanupTest near the end
|
// REPO-1012 : run AuditDAOTest and PropertyValueCleanupTest near the end
|
||||||
|
@@ -71,7 +71,7 @@ import org.junit.runners.Suite;
|
|||||||
org.alfresco.repo.domain.patch.AppliedPatchDAOTest.class,
|
org.alfresco.repo.domain.patch.AppliedPatchDAOTest.class,
|
||||||
org.alfresco.repo.domain.permissions.AclCrudDAOTest.class,
|
org.alfresco.repo.domain.permissions.AclCrudDAOTest.class,
|
||||||
org.alfresco.repo.domain.usage.UsageDAOTest.class,
|
org.alfresco.repo.domain.usage.UsageDAOTest.class,
|
||||||
org.alfresco.repo.domain.solr.SOLRDAOTest.class,
|
org.alfresco.repo.domain.solr.SearchDAOTest.class,
|
||||||
org.alfresco.repo.domain.tenant.TenantAdminDAOTest.class,
|
org.alfresco.repo.domain.tenant.TenantAdminDAOTest.class,
|
||||||
|
|
||||||
// REPO-1012 : run AuditDAOTest and PropertyValueCleanupTest near the end
|
// REPO-1012 : run AuditDAOTest and PropertyValueCleanupTest near the end
|
||||||
|
@@ -67,7 +67,7 @@ import org.springframework.context.ConfigurableApplicationContext;
|
|||||||
* @since 4.0
|
* @since 4.0
|
||||||
*/
|
*/
|
||||||
@Category({OwnJVMTestsCategory.class, DBTests.class})
|
@Category({OwnJVMTestsCategory.class, DBTests.class})
|
||||||
public class SOLRDAOTest extends TestCase
|
public class SearchDAOTest extends TestCase
|
||||||
{
|
{
|
||||||
private ConfigurableApplicationContext ctx = (ConfigurableApplicationContext) ApplicationContextHelper.getApplicationContext();
|
private ConfigurableApplicationContext ctx = (ConfigurableApplicationContext) ApplicationContextHelper.getApplicationContext();
|
||||||
|
|
||||||
@@ -77,13 +77,13 @@ public class SOLRDAOTest extends TestCase
|
|||||||
private TransactionService transactionService;
|
private TransactionService transactionService;
|
||||||
private NodeService nodeService;
|
private NodeService nodeService;
|
||||||
private AclDAO aclDaoComponent;
|
private AclDAO aclDaoComponent;
|
||||||
private SOLRDAO solrDAO;
|
private SearchDAO searchDAO;
|
||||||
private NodeDAO nodeDAO;
|
private NodeDAO nodeDAO;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setUp() throws Exception
|
public void setUp() throws Exception
|
||||||
{
|
{
|
||||||
solrDAO = (SOLRDAO)ctx.getBean("solrDAO");
|
searchDAO = (SearchDAO)ctx.getBean("searchDAO");
|
||||||
nodeDAO = (NodeDAO)ctx.getBean("nodeDAO");
|
nodeDAO = (NodeDAO)ctx.getBean("nodeDAO");
|
||||||
authenticationComponent = (AuthenticationComponent)ctx.getBean("authenticationComponent");
|
authenticationComponent = (AuthenticationComponent)ctx.getBean("authenticationComponent");
|
||||||
|
|
||||||
@@ -103,7 +103,7 @@ public class SOLRDAOTest extends TestCase
|
|||||||
@Override
|
@Override
|
||||||
public List<Node> execute() throws Throwable
|
public List<Node> execute() throws Throwable
|
||||||
{
|
{
|
||||||
return solrDAO.getNodes(nodeParameters, null, null);
|
return searchDAO.getNodes(nodeParameters, null, null);
|
||||||
}
|
}
|
||||||
}, true);
|
}, true);
|
||||||
}
|
}
|
||||||
@@ -115,7 +115,7 @@ public class SOLRDAOTest extends TestCase
|
|||||||
@Override
|
@Override
|
||||||
public List<Acl> execute() throws Throwable
|
public List<Acl> execute() throws Throwable
|
||||||
{
|
{
|
||||||
return solrDAO.getAcls(aclChangeSetIds, minAclId, maxResults);
|
return searchDAO.getAcls(aclChangeSetIds, minAclId, maxResults);
|
||||||
}
|
}
|
||||||
}, true);
|
}, true);
|
||||||
}
|
}
|
||||||
@@ -130,7 +130,7 @@ public class SOLRDAOTest extends TestCase
|
|||||||
@Override
|
@Override
|
||||||
public List<Transaction> execute() throws Throwable
|
public List<Transaction> execute() throws Throwable
|
||||||
{
|
{
|
||||||
return solrDAO.getTransactions(minTxnId, fromCommitTime, maxTxnId, toCommitTime, maxResults);
|
return searchDAO.getTransactions(minTxnId, fromCommitTime, maxTxnId, toCommitTime, maxResults);
|
||||||
}
|
}
|
||||||
}, true);
|
}, true);
|
||||||
}
|
}
|
||||||
@@ -145,7 +145,7 @@ public class SOLRDAOTest extends TestCase
|
|||||||
@Override
|
@Override
|
||||||
public List<AclChangeSet> execute() throws Throwable
|
public List<AclChangeSet> execute() throws Throwable
|
||||||
{
|
{
|
||||||
return solrDAO.getAclChangeSets(minAclChangeSetId, fromCommitTime, maxAclChangeSetId, toCommitTime, maxResults);
|
return searchDAO.getAclChangeSets(minAclChangeSetId, fromCommitTime, maxAclChangeSetId, toCommitTime, maxResults);
|
||||||
}
|
}
|
||||||
}, true);
|
}, true);
|
||||||
}
|
}
|
||||||
@@ -449,7 +449,7 @@ public class SOLRDAOTest extends TestCase
|
|||||||
|
|
||||||
List<Long> aclChangeSetIds = new ArrayList<Long>();
|
List<Long> aclChangeSetIds = new ArrayList<Long>();
|
||||||
aclChangeSetIds.add(aclProps.getAclChangeSetId());
|
aclChangeSetIds.add(aclProps.getAclChangeSetId());
|
||||||
List<Acl> acls = solrDAO.getAcls(aclChangeSetIds, null, 1000);
|
List<Acl> acls = searchDAO.getAcls(aclChangeSetIds, null, 1000);
|
||||||
assertTrue("Shared Acl should be found by solrDAO so that it can be indexed", containsAclId(acls, sharedAclId));
|
assertTrue("Shared Acl should be found by solrDAO so that it can be indexed", containsAclId(acls, sharedAclId));
|
||||||
}
|
}
|
||||||
finally
|
finally
|
@@ -37,7 +37,7 @@ import java.util.List;
|
|||||||
|
|
||||||
import org.alfresco.model.ContentModel;
|
import org.alfresco.model.ContentModel;
|
||||||
import org.alfresco.repo.domain.node.Node;
|
import org.alfresco.repo.domain.node.Node;
|
||||||
import org.alfresco.repo.domain.solr.SOLRDAO;
|
import org.alfresco.repo.domain.solr.SearchDAO;
|
||||||
import org.alfresco.repo.search.impl.lucene.LuceneQueryLanguageSPI;
|
import org.alfresco.repo.search.impl.lucene.LuceneQueryLanguageSPI;
|
||||||
import org.alfresco.repo.search.impl.lucene.SolrJSONResultSet;
|
import org.alfresco.repo.search.impl.lucene.SolrJSONResultSet;
|
||||||
import org.alfresco.repo.search.impl.querymodel.QueryModelException;
|
import org.alfresco.repo.search.impl.querymodel.QueryModelException;
|
||||||
@@ -68,7 +68,7 @@ public class DbOrIndexSwitchingQueryLanguageTest
|
|||||||
private @Mock LuceneQueryLanguageSPI indexQueryLang;
|
private @Mock LuceneQueryLanguageSPI indexQueryLang;
|
||||||
private @Mock SolrJSONResultSet indexResults;
|
private @Mock SolrJSONResultSet indexResults;
|
||||||
private @Mock ResultSet dbResults;
|
private @Mock ResultSet dbResults;
|
||||||
private @Mock SOLRDAO solrDAO;
|
private @Mock SearchDAO solrDAO;
|
||||||
private List<Node> changedNodes;
|
private List<Node> changedNodes;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
@@ -77,7 +77,7 @@ public class DbOrIndexSwitchingQueryLanguageTest
|
|||||||
queryLang = new DbOrIndexSwitchingQueryLanguage();
|
queryLang = new DbOrIndexSwitchingQueryLanguage();
|
||||||
queryLang.setDbQueryLanguage(dbQueryLang);
|
queryLang.setDbQueryLanguage(dbQueryLang);
|
||||||
queryLang.setIndexQueryLanguage(indexQueryLang);
|
queryLang.setIndexQueryLanguage(indexQueryLang);
|
||||||
queryLang.setSolrDao(solrDAO);
|
queryLang.setSearchDao(solrDAO);
|
||||||
searchParameters = new SearchParameters();
|
searchParameters = new SearchParameters();
|
||||||
changedNodes = new ArrayList<>();
|
changedNodes = new ArrayList<>();
|
||||||
|
|
||||||
|
@@ -45,9 +45,10 @@ import org.alfresco.repo.domain.node.Node;
|
|||||||
import org.alfresco.repo.domain.node.NodeDAO;
|
import org.alfresco.repo.domain.node.NodeDAO;
|
||||||
import org.alfresco.repo.domain.qname.QNameDAO;
|
import org.alfresco.repo.domain.qname.QNameDAO;
|
||||||
import org.alfresco.repo.node.db.DbNodeServiceImpl;
|
import org.alfresco.repo.node.db.DbNodeServiceImpl;
|
||||||
|
import org.alfresco.repo.search.SearchTrackingComponent;
|
||||||
|
import org.alfresco.repo.search.SearchTrackingComponent.NodeMetaDataQueryCallback;
|
||||||
|
import org.alfresco.repo.search.SearchTrackingComponent.NodeQueryCallback;
|
||||||
import org.alfresco.repo.security.authentication.AuthenticationComponent;
|
import org.alfresco.repo.security.authentication.AuthenticationComponent;
|
||||||
import org.alfresco.repo.solr.SOLRTrackingComponent.NodeMetaDataQueryCallback;
|
|
||||||
import org.alfresco.repo.solr.SOLRTrackingComponent.NodeQueryCallback;
|
|
||||||
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.ServiceRegistry;
|
import org.alfresco.service.ServiceRegistry;
|
||||||
@@ -95,7 +96,7 @@ public class SOLRTrackingComponentTest extends BaseSpringTest
|
|||||||
private NodeDAO nodeDAO;
|
private NodeDAO nodeDAO;
|
||||||
private QNameDAO qnameDAO;
|
private QNameDAO qnameDAO;
|
||||||
private DictionaryDAO dictionaryDAO;
|
private DictionaryDAO dictionaryDAO;
|
||||||
private SOLRTrackingComponent solrTrackingComponent;
|
private SearchTrackingComponent solrTrackingComponent;
|
||||||
private DbNodeServiceImpl dbNodeService;
|
private DbNodeServiceImpl dbNodeService;
|
||||||
|
|
||||||
private StoreRef storeRef;
|
private StoreRef storeRef;
|
||||||
@@ -108,7 +109,7 @@ public class SOLRTrackingComponentTest extends BaseSpringTest
|
|||||||
transactionService = serviceRegistry.getTransactionService();
|
transactionService = serviceRegistry.getTransactionService();
|
||||||
txnHelper = transactionService.getRetryingTransactionHelper();
|
txnHelper = transactionService.getRetryingTransactionHelper();
|
||||||
|
|
||||||
solrTrackingComponent = (SOLRTrackingComponent) applicationContext.getBean("solrTrackingComponent");
|
solrTrackingComponent = (SearchTrackingComponent) applicationContext.getBean("searchTrackingComponent");
|
||||||
nodeDAO = (NodeDAO)applicationContext.getBean("nodeDAO");
|
nodeDAO = (NodeDAO)applicationContext.getBean("nodeDAO");
|
||||||
qnameDAO = (QNameDAO) applicationContext.getBean("qnameDAO");
|
qnameDAO = (QNameDAO) applicationContext.getBean("qnameDAO");
|
||||||
dictionaryDAO = (DictionaryDAO)applicationContext.getBean("dictionaryDAO");
|
dictionaryDAO = (DictionaryDAO)applicationContext.getBean("dictionaryDAO");
|
||||||
@@ -208,7 +209,7 @@ public class SOLRTrackingComponentTest extends BaseSpringTest
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Call {@link SOLRTrackingComponent#getTransactions(Long, Long, Long, Long, int)} in a transaction
|
* Call {@link SearchTrackingComponent#getTransactions(Long, Long, Long, Long, int)} in a transaction
|
||||||
*/
|
*/
|
||||||
private List<Transaction> getTransactions(
|
private List<Transaction> getTransactions(
|
||||||
final Long minTxnId, final Long fromCommitTime,
|
final Long minTxnId, final Long fromCommitTime,
|
||||||
@@ -227,7 +228,7 @@ public class SOLRTrackingComponentTest extends BaseSpringTest
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Call {@link SOLRTrackingComponent#getNodes(NodeParameters, NodeQueryCallback)} in a transaction
|
* Call {@link SearchTrackingComponent#getNodes(NodeParameters, NodeQueryCallback)} in a transaction
|
||||||
*/
|
*/
|
||||||
private void getNodes(final NodeParameters nodeParameters, final SOLRTest bt)
|
private void getNodes(final NodeParameters nodeParameters, final SOLRTest bt)
|
||||||
{
|
{
|
||||||
@@ -249,7 +250,7 @@ public class SOLRTrackingComponentTest extends BaseSpringTest
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Call {@link SOLRTrackingComponent#getAcls(List, Long, int)} in a transaction
|
* Call {@link SearchTrackingComponent#getAcls(List, Long, int)} in a transaction
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
private List<Acl> getAcls(final List<Long> aclChangeSetIds, final Long minAclId, final int maxResults)
|
private List<Acl> getAcls(final List<Long> aclChangeSetIds, final Long minAclId, final int maxResults)
|
||||||
@@ -266,7 +267,7 @@ public class SOLRTrackingComponentTest extends BaseSpringTest
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Call {@link SOLRTrackingComponent#getAclChangeSets(Long, Long, Long, Long, int)} in a transaction
|
* Call {@link SearchTrackingComponent#getAclChangeSets(Long, Long, Long, Long, int)} in a transaction
|
||||||
*/
|
*/
|
||||||
private List<AclChangeSet> getAclChangeSets(
|
private List<AclChangeSet> getAclChangeSets(
|
||||||
final Long minAclChangeSetId, final Long fromCommitTime,
|
final Long minAclChangeSetId, final Long fromCommitTime,
|
||||||
|
Reference in New Issue
Block a user