mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-10-08 14:51:49 +00:00
Compare commits
29 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
8d790ed1cb | ||
|
87c7bd2877 | ||
|
9125f889b0 | ||
|
2fb74d2691 | ||
|
d671162dae | ||
|
bfaa629da7 | ||
|
719d73a558 | ||
|
a2aa867f3f | ||
|
8d745c536a | ||
|
b0f4c21ae3 | ||
|
72494e34fa | ||
|
792b7024ea | ||
|
40a1371f0d | ||
|
c22c47e63f | ||
|
232299d42d | ||
|
aca7969849 | ||
|
4ab2bbd3d6 | ||
|
f68f02372d | ||
|
9b0eedc8c1 | ||
|
f164dedcee | ||
|
9cdaa0a265 | ||
|
ef034e596b | ||
|
1251081a69 | ||
|
2d16eb6f42 | ||
|
e577134875 | ||
|
510eadd565 | ||
|
187646895c | ||
|
f9515e336f | ||
|
828dd20576 |
@@ -7,7 +7,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.alfresco</groupId>
|
<groupId>org.alfresco</groupId>
|
||||||
<artifactId>alfresco-community-repo-amps</artifactId>
|
<artifactId>alfresco-community-repo-amps</artifactId>
|
||||||
<version>23.6.0.20</version>
|
<version>23.6.0.29</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<modules>
|
<modules>
|
||||||
|
@@ -7,7 +7,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.alfresco</groupId>
|
<groupId>org.alfresco</groupId>
|
||||||
<artifactId>alfresco-governance-services-community-parent</artifactId>
|
<artifactId>alfresco-governance-services-community-parent</artifactId>
|
||||||
<version>23.6.0.20</version>
|
<version>23.6.0.29</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<modules>
|
<modules>
|
||||||
|
@@ -7,7 +7,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.alfresco</groupId>
|
<groupId>org.alfresco</groupId>
|
||||||
<artifactId>alfresco-governance-services-automation-community-repo</artifactId>
|
<artifactId>alfresco-governance-services-automation-community-repo</artifactId>
|
||||||
<version>23.6.0.20</version>
|
<version>23.6.0.29</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
@@ -7,7 +7,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.alfresco</groupId>
|
<groupId>org.alfresco</groupId>
|
||||||
<artifactId>alfresco-governance-services-community-parent</artifactId>
|
<artifactId>alfresco-governance-services-community-parent</artifactId>
|
||||||
<version>23.6.0.20</version>
|
<version>23.6.0.29</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<modules>
|
<modules>
|
||||||
|
@@ -15,6 +15,13 @@
|
|||||||
<parameter property="end" jdbcType="BIGINT" javaType="java.lang.Long"/>
|
<parameter property="end" jdbcType="BIGINT" javaType="java.lang.Long"/>
|
||||||
</parameterMap>
|
</parameterMap>
|
||||||
|
|
||||||
|
<parameterMap id="parameter_NodeIdsWhichReferenceContentUrl" type="map">
|
||||||
|
<parameter property="contentUrlShort" jdbcType="VARCHAR" javaType="java.lang.String"/>
|
||||||
|
<parameter property="contentUrlCrc" jdbcType="BIGINT" javaType="java.lang.Long"/>
|
||||||
|
<parameter property="localName" jdbcType="VARCHAR" javaType="java.lang.String"/>
|
||||||
|
<parameter property="uri" jdbcType="VARCHAR" javaType="java.lang.String"/>
|
||||||
|
</parameterMap>
|
||||||
|
|
||||||
<resultMap id="result_NodeRefEntity" type="org.alfresco.module.org_alfresco_module_rm.query.NodeRefEntity">
|
<resultMap id="result_NodeRefEntity" type="org.alfresco.module.org_alfresco_module_rm.query.NodeRefEntity">
|
||||||
<result property="row" column="row" jdbcType="BIGINT" javaType="java.lang.Long"/>
|
<result property="row" column="row" jdbcType="BIGINT" javaType="java.lang.Long"/>
|
||||||
<result property="protocol" column="protocol" jdbcType="VARCHAR" javaType="java.lang.String"/>
|
<result property="protocol" column="protocol" jdbcType="VARCHAR" javaType="java.lang.String"/>
|
||||||
@@ -55,18 +62,21 @@
|
|||||||
|
|
||||||
<!-- Get list of node ids which reference given content url -->
|
<!-- Get list of node ids which reference given content url -->
|
||||||
<select id="select_NodeIdsWhichReferenceContentUrl"
|
<select id="select_NodeIdsWhichReferenceContentUrl"
|
||||||
parameterType="ContentUrl"
|
parameterMap="parameter_NodeIdsWhichReferenceContentUrl"
|
||||||
resultMap="result_NodeIds">
|
resultMap="result_NodeIds">
|
||||||
select
|
select
|
||||||
p.node_id
|
p.node_id
|
||||||
from
|
from
|
||||||
alf_content_url cu
|
alf_content_url cu
|
||||||
LEFT OUTER JOIN alf_content_data cd ON (cd.content_url_id = cu.id)
|
left outer join alf_content_data cd ON (cd.content_url_id = cu.id)
|
||||||
LEFT OUTER JOIN alf_node_properties p ON (p.long_value = cd.id)
|
left outer join alf_node_properties p ON (p.long_value = cd.id)
|
||||||
WHERE
|
left outer join alf_qname q ON (q.id = p.qname_id)
|
||||||
content_url_short = #{contentUrlShort} and
|
left outer join alf_namespace n ON (n.id = q.ns_id)
|
||||||
content_url_crc = #{contentUrlCrc}
|
where
|
||||||
|
cu.content_url_short = ? and
|
||||||
|
cu.content_url_crc = ? and
|
||||||
|
q.local_name = ? and
|
||||||
|
n.uri = ?
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="select_RecordFoldersWithSchedules"
|
<select id="select_RecordFoldersWithSchedules"
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.alfresco</groupId>
|
<groupId>org.alfresco</groupId>
|
||||||
<artifactId>alfresco-governance-services-community-repo-parent</artifactId>
|
<artifactId>alfresco-governance-services-community-repo-parent</artifactId>
|
||||||
<version>23.6.0.20</version>
|
<version>23.6.0.29</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
|
@@ -27,7 +27,6 @@
|
|||||||
|
|
||||||
package org.alfresco.module.org_alfresco_module_rm.query;
|
package org.alfresco.module.org_alfresco_module_rm.query;
|
||||||
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@@ -36,6 +35,11 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import org.apache.commons.logging.Log;
|
||||||
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
import org.mybatis.spring.SqlSessionTemplate;
|
||||||
|
|
||||||
|
import org.alfresco.model.ContentModel;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel;
|
import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel;
|
||||||
import org.alfresco.repo.domain.contentdata.ContentUrlEntity;
|
import org.alfresco.repo.domain.contentdata.ContentUrlEntity;
|
||||||
import org.alfresco.repo.domain.node.NodeDAO;
|
import org.alfresco.repo.domain.node.NodeDAO;
|
||||||
@@ -47,9 +51,6 @@ import org.alfresco.service.cmr.repository.InvalidNodeRefException;
|
|||||||
import org.alfresco.service.cmr.repository.NodeRef;
|
import org.alfresco.service.cmr.repository.NodeRef;
|
||||||
import org.alfresco.service.namespace.QName;
|
import org.alfresco.service.namespace.QName;
|
||||||
import org.alfresco.util.Pair;
|
import org.alfresco.util.Pair;
|
||||||
import org.apache.commons.logging.Log;
|
|
||||||
import org.apache.commons.logging.LogFactory;
|
|
||||||
import org.mybatis.spring.SqlSessionTemplate;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Records management query DAO implementation
|
* Records management query DAO implementation
|
||||||
@@ -89,7 +90,8 @@ public class RecordsManagementQueryDAOImpl implements RecordsManagementQueryDAO,
|
|||||||
protected TenantService tenantService;
|
protected TenantService tenantService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param sqlSessionTemplate SQL session template
|
* @param sqlSessionTemplate
|
||||||
|
* SQL session template
|
||||||
*/
|
*/
|
||||||
public final void setSqlSessionTemplate(SqlSessionTemplate sqlSessionTemplate)
|
public final void setSqlSessionTemplate(SqlSessionTemplate sqlSessionTemplate)
|
||||||
{
|
{
|
||||||
@@ -97,7 +99,8 @@ public class RecordsManagementQueryDAOImpl implements RecordsManagementQueryDAO,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param qnameDAO qname DAO
|
* @param qnameDAO
|
||||||
|
* qname DAO
|
||||||
*/
|
*/
|
||||||
public final void setQnameDAO(QNameDAO qnameDAO)
|
public final void setQnameDAO(QNameDAO qnameDAO)
|
||||||
{
|
{
|
||||||
@@ -173,7 +176,8 @@ public class RecordsManagementQueryDAOImpl implements RecordsManagementQueryDAO,
|
|||||||
/**
|
/**
|
||||||
* Get a set of node reference which reference the provided content URL
|
* Get a set of node reference which reference the provided content URL
|
||||||
*
|
*
|
||||||
* @param String contentUrl content URL
|
* @param String
|
||||||
|
* contentUrl content URL
|
||||||
* @return Set<NodeRef> set of nodes that reference the provided content URL
|
* @return Set<NodeRef> set of nodes that reference the provided content URL
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
@@ -188,13 +192,19 @@ public class RecordsManagementQueryDAOImpl implements RecordsManagementQueryDAO,
|
|||||||
ContentUrlEntity contentUrlEntity = new ContentUrlEntity();
|
ContentUrlEntity contentUrlEntity = new ContentUrlEntity();
|
||||||
contentUrlEntity.setContentUrl(contentUrl.toLowerCase());
|
contentUrlEntity.setContentUrl(contentUrl.toLowerCase());
|
||||||
|
|
||||||
|
Map<String, Object> params = new HashMap<>(4);
|
||||||
|
params.put("contentUrlShort", contentUrlEntity.getContentUrlShort());
|
||||||
|
params.put("contentUrlCrc", contentUrlEntity.getContentUrlCrc());
|
||||||
|
params.put("localName", ContentModel.PROP_CONTENT.getLocalName());
|
||||||
|
params.put("uri", ContentModel.PROP_CONTENT.getNamespaceURI());
|
||||||
|
|
||||||
if (logger.isDebugEnabled())
|
if (logger.isDebugEnabled())
|
||||||
{
|
{
|
||||||
logger.debug("Executing query " + SELECT_NODE_IDS_WHICH_REFERENCE_CONTENT_URL);
|
logger.debug("Executing query " + SELECT_NODE_IDS_WHICH_REFERENCE_CONTENT_URL);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get all the node ids which reference the given content url
|
// Get all the node ids which reference the given content url
|
||||||
List<Long> nodeIds = template.selectList(SELECT_NODE_IDS_WHICH_REFERENCE_CONTENT_URL, contentUrlEntity);
|
List<Long> nodeIds = template.selectList(SELECT_NODE_IDS_WHICH_REFERENCE_CONTENT_URL, params);
|
||||||
|
|
||||||
if (logger.isDebugEnabled())
|
if (logger.isDebugEnabled())
|
||||||
{
|
{
|
||||||
@@ -289,7 +299,8 @@ public class RecordsManagementQueryDAOImpl implements RecordsManagementQueryDAO,
|
|||||||
/**
|
/**
|
||||||
* @see org.alfresco.module.org_alfresco_module_rm.query.RecordsManagementQueryDAO#getPropertyStringValueEntity(String stringValue)
|
* @see org.alfresco.module.org_alfresco_module_rm.query.RecordsManagementQueryDAO#getPropertyStringValueEntity(String stringValue)
|
||||||
*/
|
*/
|
||||||
public PropertyStringValueEntity getPropertyStringValueEntity(String stringValue){
|
public PropertyStringValueEntity getPropertyStringValueEntity(String stringValue)
|
||||||
|
{
|
||||||
|
|
||||||
PropertyStringValueEntity propertyStringValueEntity = new PropertyStringValueEntity();
|
PropertyStringValueEntity propertyStringValueEntity = new PropertyStringValueEntity();
|
||||||
propertyStringValueEntity.setValue(stringValue);
|
propertyStringValueEntity.setValue(stringValue);
|
||||||
|
@@ -7,7 +7,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.alfresco</groupId>
|
<groupId>org.alfresco</groupId>
|
||||||
<artifactId>alfresco-governance-services-community-repo-parent</artifactId>
|
<artifactId>alfresco-governance-services-community-repo-parent</artifactId>
|
||||||
<version>23.6.0.20</version>
|
<version>23.6.0.29</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
@@ -7,7 +7,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.alfresco</groupId>
|
<groupId>org.alfresco</groupId>
|
||||||
<artifactId>alfresco-community-repo</artifactId>
|
<artifactId>alfresco-community-repo</artifactId>
|
||||||
<version>23.6.0.20</version>
|
<version>23.6.0.29</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<modules>
|
<modules>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.alfresco</groupId>
|
<groupId>org.alfresco</groupId>
|
||||||
<artifactId>alfresco-community-repo-amps</artifactId>
|
<artifactId>alfresco-community-repo-amps</artifactId>
|
||||||
<version>23.6.0.20</version>
|
<version>23.6.0.29</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
|
@@ -7,7 +7,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.alfresco</groupId>
|
<groupId>org.alfresco</groupId>
|
||||||
<artifactId>alfresco-community-repo</artifactId>
|
<artifactId>alfresco-community-repo</artifactId>
|
||||||
<version>23.6.0.20</version>
|
<version>23.6.0.29</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
@@ -7,7 +7,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.alfresco</groupId>
|
<groupId>org.alfresco</groupId>
|
||||||
<artifactId>alfresco-community-repo</artifactId>
|
<artifactId>alfresco-community-repo</artifactId>
|
||||||
<version>23.6.0.20</version>
|
<version>23.6.0.29</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
|
@@ -7,7 +7,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.alfresco</groupId>
|
<groupId>org.alfresco</groupId>
|
||||||
<artifactId>alfresco-community-repo</artifactId>
|
<artifactId>alfresco-community-repo</artifactId>
|
||||||
<version>23.6.0.20</version>
|
<version>23.6.0.29</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
@@ -9,6 +9,6 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.alfresco</groupId>
|
<groupId>org.alfresco</groupId>
|
||||||
<artifactId>alfresco-community-repo-packaging</artifactId>
|
<artifactId>alfresco-community-repo-packaging</artifactId>
|
||||||
<version>23.6.0.20</version>
|
<version>23.6.0.29</version>
|
||||||
</parent>
|
</parent>
|
||||||
</project>
|
</project>
|
||||||
|
@@ -7,7 +7,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.alfresco</groupId>
|
<groupId>org.alfresco</groupId>
|
||||||
<artifactId>alfresco-community-repo-packaging</artifactId>
|
<artifactId>alfresco-community-repo-packaging</artifactId>
|
||||||
<version>23.6.0.20</version>
|
<version>23.6.0.29</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
|
@@ -7,7 +7,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.alfresco</groupId>
|
<groupId>org.alfresco</groupId>
|
||||||
<artifactId>alfresco-community-repo</artifactId>
|
<artifactId>alfresco-community-repo</artifactId>
|
||||||
<version>23.6.0.20</version>
|
<version>23.6.0.29</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<modules>
|
<modules>
|
||||||
|
@@ -6,7 +6,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.alfresco</groupId>
|
<groupId>org.alfresco</groupId>
|
||||||
<artifactId>alfresco-community-repo-packaging</artifactId>
|
<artifactId>alfresco-community-repo-packaging</artifactId>
|
||||||
<version>23.6.0.20</version>
|
<version>23.6.0.29</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<modules>
|
<modules>
|
||||||
|
@@ -7,7 +7,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.alfresco</groupId>
|
<groupId>org.alfresco</groupId>
|
||||||
<artifactId>alfresco-community-repo-tests</artifactId>
|
<artifactId>alfresco-community-repo-tests</artifactId>
|
||||||
<version>23.6.0.20</version>
|
<version>23.6.0.29</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<organization>
|
<organization>
|
||||||
|
@@ -9,7 +9,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.alfresco</groupId>
|
<groupId>org.alfresco</groupId>
|
||||||
<artifactId>alfresco-community-repo-tests</artifactId>
|
<artifactId>alfresco-community-repo-tests</artifactId>
|
||||||
<version>23.6.0.20</version>
|
<version>23.6.0.29</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<developers>
|
<developers>
|
||||||
|
@@ -9,7 +9,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.alfresco</groupId>
|
<groupId>org.alfresco</groupId>
|
||||||
<artifactId>alfresco-community-repo-tests</artifactId>
|
<artifactId>alfresco-community-repo-tests</artifactId>
|
||||||
<version>23.6.0.20</version>
|
<version>23.6.0.29</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<developers>
|
<developers>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.alfresco</groupId>
|
<groupId>org.alfresco</groupId>
|
||||||
<artifactId>alfresco-community-repo-tests</artifactId>
|
<artifactId>alfresco-community-repo-tests</artifactId>
|
||||||
<version>23.6.0.20</version>
|
<version>23.6.0.29</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
|
@@ -9,7 +9,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.alfresco</groupId>
|
<groupId>org.alfresco</groupId>
|
||||||
<artifactId>alfresco-community-repo-tests</artifactId>
|
<artifactId>alfresco-community-repo-tests</artifactId>
|
||||||
<version>23.6.0.20</version>
|
<version>23.6.0.29</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<developers>
|
<developers>
|
||||||
|
@@ -7,7 +7,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.alfresco</groupId>
|
<groupId>org.alfresco</groupId>
|
||||||
<artifactId>alfresco-community-repo-packaging</artifactId>
|
<artifactId>alfresco-community-repo-packaging</artifactId>
|
||||||
<version>23.6.0.20</version>
|
<version>23.6.0.29</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
|
30
pom.xml
30
pom.xml
@@ -2,7 +2,7 @@
|
|||||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<artifactId>alfresco-community-repo</artifactId>
|
<artifactId>alfresco-community-repo</artifactId>
|
||||||
<version>23.6.0.20</version>
|
<version>23.6.0.29</version>
|
||||||
<packaging>pom</packaging>
|
<packaging>pom</packaging>
|
||||||
<name>Alfresco Community Repo Parent</name>
|
<name>Alfresco Community Repo Parent</name>
|
||||||
|
|
||||||
@@ -51,14 +51,14 @@
|
|||||||
<dependency.alfresco-server-root.version>7.0.1</dependency.alfresco-server-root.version>
|
<dependency.alfresco-server-root.version>7.0.1</dependency.alfresco-server-root.version>
|
||||||
<dependency.activiti-engine.version>5.23.0</dependency.activiti-engine.version>
|
<dependency.activiti-engine.version>5.23.0</dependency.activiti-engine.version>
|
||||||
<dependency.activiti.version>5.23.0</dependency.activiti.version>
|
<dependency.activiti.version>5.23.0</dependency.activiti.version>
|
||||||
<dependency.alfresco-transform-core.version>5.2.2-A.1</dependency.alfresco-transform-core.version>
|
<dependency.alfresco-transform-core.version>5.2.2</dependency.alfresco-transform-core.version>
|
||||||
<dependency.alfresco-transform-service.version>4.2.2-A.1</dependency.alfresco-transform-service.version>
|
<dependency.alfresco-transform-service.version>4.2.2</dependency.alfresco-transform-service.version>
|
||||||
<dependency.alfresco-greenmail.version>7.0</dependency.alfresco-greenmail.version>
|
<dependency.alfresco-greenmail.version>7.0</dependency.alfresco-greenmail.version>
|
||||||
<dependency.acs-event-model.version>0.0.33</dependency.acs-event-model.version>
|
<dependency.acs-event-model.version>0.0.33</dependency.acs-event-model.version>
|
||||||
|
|
||||||
<dependency.aspectj.version>1.9.22.1</dependency.aspectj.version>
|
<dependency.aspectj.version>1.9.22.1</dependency.aspectj.version>
|
||||||
<dependency.spring.version>6.2.8</dependency.spring.version>
|
<dependency.spring.version>6.2.11</dependency.spring.version>
|
||||||
<dependency.spring-security.version>6.3.9</dependency.spring-security.version>
|
<dependency.spring-security.version>6.4.11</dependency.spring-security.version>
|
||||||
<dependency.antlr.version>3.5.3</dependency.antlr.version>
|
<dependency.antlr.version>3.5.3</dependency.antlr.version>
|
||||||
<dependency.jackson.version>2.17.2</dependency.jackson.version>
|
<dependency.jackson.version>2.17.2</dependency.jackson.version>
|
||||||
<dependency.cxf.version>4.1.2</dependency.cxf.version>
|
<dependency.cxf.version>4.1.2</dependency.cxf.version>
|
||||||
@@ -81,7 +81,7 @@
|
|||||||
<dependency.slf4j.version>2.0.16</dependency.slf4j.version>
|
<dependency.slf4j.version>2.0.16</dependency.slf4j.version>
|
||||||
<dependency.log4j.version>2.23.1</dependency.log4j.version>
|
<dependency.log4j.version>2.23.1</dependency.log4j.version>
|
||||||
<dependency.groovy.version>3.0.22</dependency.groovy.version>
|
<dependency.groovy.version>3.0.22</dependency.groovy.version>
|
||||||
<dependency.tika.version>2.9.2</dependency.tika.version>
|
<dependency.tika.version>3.2.3</dependency.tika.version>
|
||||||
<dependency.truezip.version>7.7.10</dependency.truezip.version>
|
<dependency.truezip.version>7.7.10</dependency.truezip.version>
|
||||||
<dependency.poi.version>5.4.1</dependency.poi.version>
|
<dependency.poi.version>5.4.1</dependency.poi.version>
|
||||||
<dependency.jboss.logging.version>3.5.0.Final</dependency.jboss.logging.version>
|
<dependency.jboss.logging.version>3.5.0.Final</dependency.jboss.logging.version>
|
||||||
@@ -113,7 +113,7 @@
|
|||||||
<dependency.jakarta-json-path.version>2.9.0</dependency.jakarta-json-path.version>
|
<dependency.jakarta-json-path.version>2.9.0</dependency.jakarta-json-path.version>
|
||||||
<dependency.json-smart.version>2.5.2</dependency.json-smart.version>
|
<dependency.json-smart.version>2.5.2</dependency.json-smart.version>
|
||||||
<alfresco.googledrive.version>4.1.0</alfresco.googledrive.version>
|
<alfresco.googledrive.version>4.1.0</alfresco.googledrive.version>
|
||||||
<alfresco.aos-module.version>3.3.0</alfresco.aos-module.version>
|
<alfresco.aos-module.version>3.4.0-A.1</alfresco.aos-module.version>
|
||||||
<alfresco.api-explorer.version>23.4.0</alfresco.api-explorer.version> <!-- Also in alfresco-enterprise-share -->
|
<alfresco.api-explorer.version>23.4.0</alfresco.api-explorer.version> <!-- Also in alfresco-enterprise-share -->
|
||||||
|
|
||||||
<alfresco.maven-plugin.version>2.2.0</alfresco.maven-plugin.version>
|
<alfresco.maven-plugin.version>2.2.0</alfresco.maven-plugin.version>
|
||||||
@@ -154,7 +154,7 @@
|
|||||||
<connection>scm:git:https://github.com/Alfresco/alfresco-community-repo.git</connection>
|
<connection>scm:git:https://github.com/Alfresco/alfresco-community-repo.git</connection>
|
||||||
<developerConnection>scm:git:https://github.com/Alfresco/alfresco-community-repo.git</developerConnection>
|
<developerConnection>scm:git:https://github.com/Alfresco/alfresco-community-repo.git</developerConnection>
|
||||||
<url>https://github.com/Alfresco/alfresco-community-repo</url>
|
<url>https://github.com/Alfresco/alfresco-community-repo</url>
|
||||||
<tag>23.6.0.20</tag>
|
<tag>23.6.0.29</tag>
|
||||||
</scm>
|
</scm>
|
||||||
|
|
||||||
<distributionManagement>
|
<distributionManagement>
|
||||||
@@ -170,6 +170,12 @@
|
|||||||
|
|
||||||
<dependencyManagement>
|
<dependencyManagement>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
<!-- v1.10 has 0BSD license it must be consulted with Legal -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.tukaani</groupId>
|
||||||
|
<artifactId>xz</artifactId>
|
||||||
|
<version>1.9</version>
|
||||||
|
</dependency>
|
||||||
<!-- Jakarta... -->
|
<!-- Jakarta... -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>jakarta.xml.bind</groupId>
|
<groupId>jakarta.xml.bind</groupId>
|
||||||
@@ -1132,16 +1138,10 @@
|
|||||||
<exclude>jakarta.xml.soap:jakarta.xml.soap-api:(, 2.0.1)</exclude>
|
<exclude>jakarta.xml.soap:jakarta.xml.soap-api:(, 2.0.1)</exclude>
|
||||||
<exclude>jakarta.jws:jakarta.jws-api:(, 3.0.0)</exclude>
|
<exclude>jakarta.jws:jakarta.jws-api:(, 3.0.0)</exclude>
|
||||||
<!-- Enforce ban bouncycastle dependencies other than specified under <includes> section-->
|
<!-- Enforce ban bouncycastle dependencies other than specified under <includes> section-->
|
||||||
<exclude>org.bouncycastle</exclude>
|
<exclude>org.bouncycastle:(,1.81)</exclude>
|
||||||
<!-- Enforce one version of Jaxb-->
|
<!-- Enforce one version of Jaxb-->
|
||||||
<exclude>com.sun.xml.bind</exclude>
|
<exclude>com.sun.xml.bind</exclude>
|
||||||
</excludes>
|
</excludes>
|
||||||
<includes>
|
|
||||||
<include>org.bouncycastle:bcprov-jdk18on:[1.78.1,)</include>
|
|
||||||
<include>org.bouncycastle:bcmail-jdk18on:[1.78.1,)</include>
|
|
||||||
<include>org.bouncycastle:bcpkix-jdk18on:[1.78.1,)</include>
|
|
||||||
<include>org.bouncycastle:bcutil-jdk18on:[1.78.1,)</include>
|
|
||||||
</includes>
|
|
||||||
</bannedDependencies>
|
</bannedDependencies>
|
||||||
</rules>
|
</rules>
|
||||||
<fail>true</fail>
|
<fail>true</fail>
|
||||||
|
@@ -7,7 +7,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.alfresco</groupId>
|
<groupId>org.alfresco</groupId>
|
||||||
<artifactId>alfresco-community-repo</artifactId>
|
<artifactId>alfresco-community-repo</artifactId>
|
||||||
<version>23.6.0.20</version>
|
<version>23.6.0.29</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
@@ -40,7 +40,6 @@
|
|||||||
"items":
|
"items":
|
||||||
[
|
[
|
||||||
<#list results as row>
|
<#list results as row>
|
||||||
<#if row.item.hasPermission("Read")>
|
|
||||||
{
|
{
|
||||||
"type": "${row.item.typeShort}",
|
"type": "${row.item.typeShort}",
|
||||||
"parentType": "${row.item.parentTypeShort!""}",
|
"parentType": "${row.item.parentTypeShort!""}",
|
||||||
@@ -76,7 +75,6 @@
|
|||||||
"nodeRef": "${row.item.nodeRef}"<#if row.selectable?exists>,
|
"nodeRef": "${row.item.nodeRef}"<#if row.selectable?exists>,
|
||||||
"selectable" : ${row.selectable?string}</#if>
|
"selectable" : ${row.selectable?string}</#if>
|
||||||
}<#if row_has_next>,</#if>
|
}<#if row_has_next>,</#if>
|
||||||
</#if>
|
|
||||||
</#list>
|
</#list>
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@@ -7,7 +7,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.alfresco</groupId>
|
<groupId>org.alfresco</groupId>
|
||||||
<artifactId>alfresco-community-repo</artifactId>
|
<artifactId>alfresco-community-repo</artifactId>
|
||||||
<version>23.6.0.20</version>
|
<version>23.6.0.29</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
File diff suppressed because it is too large
Load Diff
@@ -2,7 +2,7 @@
|
|||||||
* #%L
|
* #%L
|
||||||
* Alfresco Repository
|
* Alfresco Repository
|
||||||
* %%
|
* %%
|
||||||
* Copyright (C) 2005 - 2016 Alfresco Software Limited
|
* Copyright (C) 2005 - 2025 Alfresco Software Limited
|
||||||
* %%
|
* %%
|
||||||
* This file is part of the Alfresco software.
|
* This file is part of the Alfresco software.
|
||||||
* If the software was purchased under a paid Alfresco license, the terms of
|
* If the software was purchased under a paid Alfresco license, the terms of
|
||||||
@@ -36,8 +36,7 @@ import org.alfresco.service.cmr.repository.datatype.DefaultTypeConverter;
|
|||||||
import org.alfresco.service.namespace.QName;
|
import org.alfresco.service.namespace.QName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class holding properties associated with the <b>sys:referenceable</b> aspect.
|
* Class holding properties associated with the <b>sys:referenceable</b> aspect. This aspect is common enough to warrant direct inclusion on the <b>Node</b> entity.
|
||||||
* This aspect is common enough to warrant direct inclusion on the <b>Node</b> entity.
|
|
||||||
*
|
*
|
||||||
* @author Derek Hulley
|
* @author Derek Hulley
|
||||||
* @since 3.4
|
* @since 3.4
|
||||||
@@ -87,10 +86,8 @@ public class ReferenceablePropertiesEntity
|
|||||||
/**
|
/**
|
||||||
* Adds all {@link ContentModel#ASPECT_REFERENCEABLE referencable} properties.
|
* Adds all {@link ContentModel#ASPECT_REFERENCEABLE referencable} properties.
|
||||||
*/
|
*/
|
||||||
public static void addReferenceableProperties(Node node, Map<QName, Serializable> properties)
|
public static void addReferenceableProperties(Long nodeId, NodeRef nodeRef, Map<QName, Serializable> properties)
|
||||||
{
|
{
|
||||||
Long nodeId = node.getId();
|
|
||||||
NodeRef nodeRef = node.getNodeRef();
|
|
||||||
properties.put(ContentModel.PROP_STORE_PROTOCOL, nodeRef.getStoreRef().getProtocol());
|
properties.put(ContentModel.PROP_STORE_PROTOCOL, nodeRef.getStoreRef().getProtocol());
|
||||||
properties.put(ContentModel.PROP_STORE_IDENTIFIER, nodeRef.getStoreRef().getIdentifier());
|
properties.put(ContentModel.PROP_STORE_IDENTIFIER, nodeRef.getStoreRef().getIdentifier());
|
||||||
properties.put(ContentModel.PROP_NODE_UUID, nodeRef.getId());
|
properties.put(ContentModel.PROP_NODE_UUID, nodeRef.getId());
|
||||||
|
@@ -2,7 +2,7 @@
|
|||||||
* #%L
|
* #%L
|
||||||
* Alfresco Repository
|
* Alfresco Repository
|
||||||
* %%
|
* %%
|
||||||
* Copyright (C) 2005 - 2023 Alfresco Software Limited
|
* Copyright (C) 2005 - 2025 Alfresco Software Limited
|
||||||
* %%
|
* %%
|
||||||
* This file is part of the Alfresco software.
|
* This file is part of the Alfresco software.
|
||||||
* If the software was purchased under a paid Alfresco license, the terms of
|
* If the software was purchased under a paid Alfresco license, the terms of
|
||||||
@@ -39,8 +39,10 @@ import org.alfresco.service.namespace.QName;
|
|||||||
/**
|
/**
|
||||||
* Encapsulates events occurred in a single transaction.
|
* Encapsulates events occurred in a single transaction.
|
||||||
*
|
*
|
||||||
* @param <REF> entity (e.g. node, child association, peer association) reference type
|
* @param <REF>
|
||||||
* @param <RES> entity resource type
|
* entity (e.g. node, child association, peer association) reference type
|
||||||
|
* @param <RES>
|
||||||
|
* entity resource type
|
||||||
*/
|
*/
|
||||||
public abstract class EventConsolidator<REF extends EntityRef, RES extends Resource>
|
public abstract class EventConsolidator<REF extends EntityRef, RES extends Resource>
|
||||||
{
|
{
|
||||||
@@ -90,23 +92,31 @@ public abstract class EventConsolidator<REF extends EntityRef, RES extends Resou
|
|||||||
/**
|
/**
|
||||||
* Builds and returns the {@link RepoEvent} instance.
|
* Builds and returns the {@link RepoEvent} instance.
|
||||||
*
|
*
|
||||||
* @param eventInfo the object holding the event information
|
* @param eventInfo
|
||||||
|
* the object holding the event information
|
||||||
* @return the {@link RepoEvent} instance
|
* @return the {@link RepoEvent} instance
|
||||||
*/
|
*/
|
||||||
public RepoEvent<DataAttributes<RES>> getRepoEvent(EventInfo eventInfo)
|
public RepoEvent<DataAttributes<RES>> getRepoEvent(EventInfo eventInfo)
|
||||||
|
{
|
||||||
|
final RepoEvent.Builder<DataAttributes<RES>> builder = RepoEvent.builder();
|
||||||
|
|
||||||
|
configureRepoEventBuilder(builder, eventInfo);
|
||||||
|
|
||||||
|
return builder.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void configureRepoEventBuilder(RepoEvent.Builder<DataAttributes<RES>> builder, EventInfo eventInfo)
|
||||||
{
|
{
|
||||||
EventType eventType = getDerivedEvent();
|
EventType eventType = getDerivedEvent();
|
||||||
|
|
||||||
DataAttributes<RES> eventData = buildEventData(eventInfo, resource, eventType);
|
DataAttributes<RES> eventData = buildEventData(eventInfo, resource, eventType);
|
||||||
|
|
||||||
return RepoEvent.<DataAttributes<RES>>builder()
|
builder.setId(eventInfo.getId())
|
||||||
.setId(eventInfo.getId())
|
|
||||||
.setSource(eventInfo.getSource())
|
.setSource(eventInfo.getSource())
|
||||||
.setTime(eventInfo.getTimestamp())
|
.setTime(eventInfo.getTimestamp())
|
||||||
.setType(eventType.getType())
|
.setType(eventType.getType())
|
||||||
.setData(eventData)
|
.setData(eventData)
|
||||||
.setDataschema(EventJSONSchema.getSchemaV1(eventType))
|
.setDataschema(EventJSONSchema.getSchemaV1(eventType));
|
||||||
.build();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -114,7 +124,7 @@ public abstract class EventConsolidator<REF extends EntityRef, RES extends Resou
|
|||||||
*/
|
*/
|
||||||
protected DataAttributes<RES> buildEventData(EventInfo eventInfo, RES resource, EventType eventType)
|
protected DataAttributes<RES> buildEventData(EventInfo eventInfo, RES resource, EventType eventType)
|
||||||
{
|
{
|
||||||
return EventData.<RES>builder()
|
return EventData.<RES> builder()
|
||||||
.setEventGroupId(eventInfo.getTxnId())
|
.setEventGroupId(eventInfo.getTxnId())
|
||||||
.setResource(resource)
|
.setResource(resource)
|
||||||
.build();
|
.build();
|
||||||
|
@@ -2,7 +2,7 @@
|
|||||||
* #%L
|
* #%L
|
||||||
* Alfresco Repository
|
* Alfresco Repository
|
||||||
* %%
|
* %%
|
||||||
* Copyright (C) 2005 - 2016 Alfresco Software Limited
|
* Copyright (C) 2005 - 2025 Alfresco Software Limited
|
||||||
* %%
|
* %%
|
||||||
* This file is part of the Alfresco software.
|
* This file is part of the Alfresco software.
|
||||||
* If the software was purchased under a paid Alfresco license, the terms of
|
* If the software was purchased under a paid Alfresco license, the terms of
|
||||||
@@ -28,8 +28,10 @@ package org.alfresco.repo.node.getchildren;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import org.alfresco.repo.domain.node.NodeEntity;
|
import org.alfresco.repo.domain.node.AuditablePropertiesEntity;
|
||||||
import org.alfresco.repo.domain.node.NodePropertyEntity;
|
import org.alfresco.repo.domain.node.NodePropertyEntity;
|
||||||
|
import org.alfresco.service.cmr.repository.NodeRef;
|
||||||
|
import org.alfresco.service.cmr.repository.StoreRef;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Filterable/Sortable Node Entity
|
* Filterable/Sortable Node Entity
|
||||||
@@ -42,12 +44,17 @@ import org.alfresco.repo.domain.node.NodePropertyEntity;
|
|||||||
public class FilterSortNodeEntity
|
public class FilterSortNodeEntity
|
||||||
{
|
{
|
||||||
private Long id; // node id
|
private Long id; // node id
|
||||||
|
private String nodeUuid;
|
||||||
|
private Long typeQNameId;
|
||||||
|
|
||||||
private NodeEntity node;
|
private AuditablePropertiesEntity auditablePropertiesEntity;
|
||||||
private NodePropertyEntity prop1;
|
private NodePropertyEntity prop1;
|
||||||
private NodePropertyEntity prop2;
|
private NodePropertyEntity prop2;
|
||||||
private NodePropertyEntity prop3;
|
private NodePropertyEntity prop3;
|
||||||
|
|
||||||
|
private String storeProtocol;
|
||||||
|
private String storeIdentifier;
|
||||||
|
|
||||||
// Supplemental query-related parameters
|
// Supplemental query-related parameters
|
||||||
private Long parentNodeId;
|
private Long parentNodeId;
|
||||||
private Long prop1qnameId;
|
private Long prop1qnameId;
|
||||||
@@ -80,6 +87,26 @@ public class FilterSortNodeEntity
|
|||||||
this.id = id;
|
this.id = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getNodeUuid()
|
||||||
|
{
|
||||||
|
return nodeUuid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNodeUuid(String nodeUuid)
|
||||||
|
{
|
||||||
|
this.nodeUuid = nodeUuid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getTypeQNameId()
|
||||||
|
{
|
||||||
|
return typeQNameId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTypeQNameId(Long typeQNameId)
|
||||||
|
{
|
||||||
|
this.typeQNameId = typeQNameId;
|
||||||
|
}
|
||||||
|
|
||||||
public String getPattern()
|
public String getPattern()
|
||||||
{
|
{
|
||||||
return pattern;
|
return pattern;
|
||||||
@@ -93,22 +120,21 @@ public class FilterSortNodeEntity
|
|||||||
do
|
do
|
||||||
{
|
{
|
||||||
idx = s.indexOf(escapeChar, offset);
|
idx = s.indexOf(escapeChar, offset);
|
||||||
if(idx != -1)
|
if (idx != -1)
|
||||||
{
|
{
|
||||||
sb.append(s.substring(offset, idx));
|
sb.append(s.substring(offset, idx));
|
||||||
sb.append("\\");
|
sb.append("\\");
|
||||||
sb.append(escapeChar);
|
sb.append(escapeChar);
|
||||||
offset = idx + 1;
|
offset = idx + 1;
|
||||||
}
|
}
|
||||||
}
|
} while (idx != -1);
|
||||||
while(idx != -1);
|
|
||||||
sb.append(s.substring(offset));
|
sb.append(s.substring(offset));
|
||||||
return sb.toString();
|
return sb.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPattern(String pattern)
|
public void setPattern(String pattern)
|
||||||
{
|
{
|
||||||
if(pattern != null)
|
if (pattern != null)
|
||||||
{
|
{
|
||||||
// escape the '%' character with '\' (standard SQL escape character)
|
// escape the '%' character with '\' (standard SQL escape character)
|
||||||
pattern = escape(pattern, '%');
|
pattern = escape(pattern, '%');
|
||||||
@@ -137,6 +163,16 @@ public class FilterSortNodeEntity
|
|||||||
this.namePropertyQNameId = namePropertyQNameId;
|
this.namePropertyQNameId = namePropertyQNameId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public AuditablePropertiesEntity getAuditablePropertiesEntity()
|
||||||
|
{
|
||||||
|
return auditablePropertiesEntity;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAuditablePropertiesEntity(AuditablePropertiesEntity auditablePropertiesEntity)
|
||||||
|
{
|
||||||
|
this.auditablePropertiesEntity = auditablePropertiesEntity;
|
||||||
|
}
|
||||||
|
|
||||||
public NodePropertyEntity getProp1()
|
public NodePropertyEntity getProp1()
|
||||||
{
|
{
|
||||||
return prop1;
|
return prop1;
|
||||||
@@ -167,14 +203,24 @@ public class FilterSortNodeEntity
|
|||||||
this.prop3 = prop3;
|
this.prop3 = prop3;
|
||||||
}
|
}
|
||||||
|
|
||||||
public NodeEntity getNode()
|
public String getStoreProtocol()
|
||||||
{
|
{
|
||||||
return node;
|
return storeProtocol;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setNode(NodeEntity childNode)
|
public void setStoreProtocol(String storeProtocol)
|
||||||
{
|
{
|
||||||
this.node = childNode;
|
this.storeProtocol = storeProtocol;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getStoreIdentifier()
|
||||||
|
{
|
||||||
|
return storeIdentifier;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStoreIdentifier(String storeIdentifier)
|
||||||
|
{
|
||||||
|
this.storeIdentifier = storeIdentifier;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Supplemental query-related parameters
|
// Supplemental query-related parameters
|
||||||
@@ -258,4 +304,9 @@ public class FilterSortNodeEntity
|
|||||||
{
|
{
|
||||||
this.isPrimary = isPrimary;
|
this.isPrimary = isPrimary;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public NodeRef createNodeRef()
|
||||||
|
{
|
||||||
|
return new NodeRef(new StoreRef(storeProtocol, storeIdentifier), nodeUuid);
|
||||||
|
}
|
||||||
}
|
}
|
@@ -2,7 +2,7 @@
|
|||||||
* #%L
|
* #%L
|
||||||
* Alfresco Repository
|
* Alfresco Repository
|
||||||
* %%
|
* %%
|
||||||
* Copyright (C) 2005 - 2016 Alfresco Software Limited
|
* Copyright (C) 2005 - 2025 Alfresco Software Limited
|
||||||
* %%
|
* %%
|
||||||
* This file is part of the Alfresco software.
|
* This file is part of the Alfresco software.
|
||||||
* If the software was purchased under a paid Alfresco license, the terms of
|
* If the software was purchased under a paid Alfresco license, the terms of
|
||||||
@@ -38,13 +38,16 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import org.apache.commons.logging.Log;
|
||||||
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
import org.springframework.extensions.surf.util.I18NUtil;
|
||||||
|
|
||||||
import org.alfresco.error.AlfrescoRuntimeException;
|
import org.alfresco.error.AlfrescoRuntimeException;
|
||||||
import org.alfresco.model.ContentModel;
|
import org.alfresco.model.ContentModel;
|
||||||
import org.alfresco.query.CannedQueryParameters;
|
import org.alfresco.query.CannedQueryParameters;
|
||||||
import org.alfresco.query.CannedQuerySortDetails;
|
import org.alfresco.query.CannedQuerySortDetails;
|
||||||
import org.alfresco.query.CannedQuerySortDetails.SortOrder;
|
import org.alfresco.query.CannedQuerySortDetails.SortOrder;
|
||||||
import org.alfresco.repo.domain.node.AuditablePropertiesEntity;
|
import org.alfresco.repo.domain.node.AuditablePropertiesEntity;
|
||||||
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.node.NodeEntity;
|
import org.alfresco.repo.domain.node.NodeEntity;
|
||||||
import org.alfresco.repo.domain.node.NodePropertyEntity;
|
import org.alfresco.repo.domain.node.NodePropertyEntity;
|
||||||
@@ -69,15 +72,11 @@ import org.alfresco.service.namespace.QName;
|
|||||||
import org.alfresco.util.AlfrescoCollator;
|
import org.alfresco.util.AlfrescoCollator;
|
||||||
import org.alfresco.util.Pair;
|
import org.alfresco.util.Pair;
|
||||||
import org.alfresco.util.ParameterCheck;
|
import org.alfresco.util.ParameterCheck;
|
||||||
import org.apache.commons.logging.Log;
|
|
||||||
import org.apache.commons.logging.LogFactory;
|
|
||||||
import org.springframework.extensions.surf.util.I18NUtil;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* GetChildren canned query
|
* GetChildren canned query
|
||||||
*
|
*
|
||||||
* To get paged list of children of a parent node filtered by child type.
|
* To get paged list of children of a parent node filtered by child type. Also optionally filtered and/or sorted by one or more properties (up to three).
|
||||||
* Also optionally filtered and/or sorted by one or more properties (up to three).
|
|
||||||
*
|
*
|
||||||
* @author janv
|
* @author janv
|
||||||
* @since 4.0
|
* @since 4.0
|
||||||
@@ -100,7 +99,6 @@ public class GetChildrenCannedQuery extends AbstractCannedQueryPermissions<NodeR
|
|||||||
|
|
||||||
public static final QName FILTER_QNAME_NODE_IS_PRIMARY = QName.createQName("", "IS_PRIMARY");
|
public static final QName FILTER_QNAME_NODE_IS_PRIMARY = QName.createQName("", "IS_PRIMARY");
|
||||||
|
|
||||||
|
|
||||||
private NodeDAO nodeDAO;
|
private NodeDAO nodeDAO;
|
||||||
private QNameDAO qnameDAO;
|
private QNameDAO qnameDAO;
|
||||||
private CannedQueryDAO cannedQueryDAO;
|
private CannedQueryDAO cannedQueryDAO;
|
||||||
@@ -135,8 +133,8 @@ public class GetChildrenCannedQuery extends AbstractCannedQueryPermissions<NodeR
|
|||||||
}
|
}
|
||||||
|
|
||||||
// TODO refactor (only apply post query if sorted - as above)
|
// TODO refactor (only apply post query if sorted - as above)
|
||||||
GetChildrenCannedQueryParams paramBean = (GetChildrenCannedQueryParams)params.getParameterBean();
|
GetChildrenCannedQueryParams paramBean = (GetChildrenCannedQueryParams) params.getParameterBean();
|
||||||
if ((paramBean.getFilterProps()!= null) && (paramBean.getFilterProps().size() > 0))
|
if ((paramBean.getFilterProps() != null) && (paramBean.getFilterProps().size() > 0))
|
||||||
{
|
{
|
||||||
applyPostQueryPermissions = true;
|
applyPostQueryPermissions = true;
|
||||||
}
|
}
|
||||||
@@ -163,7 +161,7 @@ public class GetChildrenCannedQuery extends AbstractCannedQueryPermissions<NodeR
|
|||||||
Long start = (logger.isDebugEnabled() ? System.currentTimeMillis() : null);
|
Long start = (logger.isDebugEnabled() ? System.currentTimeMillis() : null);
|
||||||
|
|
||||||
// Get parameters
|
// Get parameters
|
||||||
GetChildrenCannedQueryParams paramBean = (GetChildrenCannedQueryParams)parameters.getParameterBean();
|
GetChildrenCannedQueryParams paramBean = (GetChildrenCannedQueryParams) parameters.getParameterBean();
|
||||||
|
|
||||||
// Get parent node
|
// Get parent node
|
||||||
NodeRef parentRef = paramBean.getParentRef();
|
NodeRef parentRef = paramBean.getParentRef();
|
||||||
@@ -192,8 +190,8 @@ public class GetChildrenCannedQuery extends AbstractCannedQueryPermissions<NodeR
|
|||||||
|
|
||||||
// Get sort details
|
// Get sort details
|
||||||
CannedQuerySortDetails sortDetails = parameters.getSortDetails();
|
CannedQuerySortDetails sortDetails = parameters.getSortDetails();
|
||||||
@SuppressWarnings({ "unchecked", "rawtypes" })
|
@SuppressWarnings({"unchecked", "rawtypes"})
|
||||||
final List<Pair<QName, SortOrder>> sortPairs = (List)sortDetails.getSortPairs();
|
final List<Pair<QName, SortOrder>> sortPairs = (List) sortDetails.getSortPairs();
|
||||||
|
|
||||||
if (filterProps.size() > 0)
|
if (filterProps.size() > 0)
|
||||||
{
|
{
|
||||||
@@ -203,9 +201,9 @@ public class GetChildrenCannedQuery extends AbstractCannedQueryPermissions<NodeR
|
|||||||
for (FilterProp filter : filterProps)
|
for (FilterProp filter : filterProps)
|
||||||
{
|
{
|
||||||
if ((filter instanceof FilterPropBoolean) &&
|
if ((filter instanceof FilterPropBoolean) &&
|
||||||
((FilterPropBoolean)filter).getPropName().equals(FILTER_QNAME_NODE_IS_PRIMARY))
|
((FilterPropBoolean) filter).getPropName().equals(FILTER_QNAME_NODE_IS_PRIMARY))
|
||||||
{
|
{
|
||||||
isPrimary = ((FilterPropBoolean)filter).getPropVal();
|
isPrimary = ((FilterPropBoolean) filter).getPropVal();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
idx++;
|
idx++;
|
||||||
@@ -223,7 +221,7 @@ public class GetChildrenCannedQuery extends AbstractCannedQueryPermissions<NodeR
|
|||||||
for (Pair<QName, SortOrder> sort : sortPairs)
|
for (Pair<QName, SortOrder> sort : sortPairs)
|
||||||
{
|
{
|
||||||
QName sortQName = sort.getFirst();
|
QName sortQName = sort.getFirst();
|
||||||
if(! sortFilterProps.contains(sortQName))
|
if (!sortFilterProps.contains(sortQName))
|
||||||
{
|
{
|
||||||
sortFilterProps.add(sortQName);
|
sortFilterProps.add(sortQName);
|
||||||
}
|
}
|
||||||
@@ -231,7 +229,7 @@ public class GetChildrenCannedQuery extends AbstractCannedQueryPermissions<NodeR
|
|||||||
for (FilterProp filter : filterProps)
|
for (FilterProp filter : filterProps)
|
||||||
{
|
{
|
||||||
QName filterQName = filter.getPropName();
|
QName filterQName = filter.getPropName();
|
||||||
if(! sortFilterProps.contains(filterQName))
|
if (!sortFilterProps.contains(filterQName))
|
||||||
{
|
{
|
||||||
sortFilterProps.add(filterQName);
|
sortFilterProps.add(filterQName);
|
||||||
}
|
}
|
||||||
@@ -241,12 +239,11 @@ public class GetChildrenCannedQuery extends AbstractCannedQueryPermissions<NodeR
|
|||||||
|
|
||||||
if (filterSortPropCnt > MAX_FILTER_SORT_PROPS)
|
if (filterSortPropCnt > MAX_FILTER_SORT_PROPS)
|
||||||
{
|
{
|
||||||
throw new AlfrescoRuntimeException("GetChildren: exceeded maximum number filter/sort properties: (max="+MAX_FILTER_SORT_PROPS+", actual="+filterSortPropCnt);
|
throw new AlfrescoRuntimeException("GetChildren: exceeded maximum number filter/sort properties: (max=" + MAX_FILTER_SORT_PROPS + ", actual=" + filterSortPropCnt);
|
||||||
}
|
}
|
||||||
|
|
||||||
filterSortPropCnt = setFilterSortParams(sortFilterProps, params);
|
filterSortPropCnt = setFilterSortParams(sortFilterProps, params);
|
||||||
|
|
||||||
|
|
||||||
List<NodeRef> result = new ArrayList<>(0);
|
List<NodeRef> result = new ArrayList<>(0);
|
||||||
|
|
||||||
try
|
try
|
||||||
@@ -286,7 +283,7 @@ public class GetChildrenCannedQuery extends AbstractCannedQueryPermissions<NodeR
|
|||||||
// TODO, check that we should be tied to the content model in this way. Perhaps a configurable property
|
// TODO, check that we should be tied to the content model in this way. Perhaps a configurable property
|
||||||
// name against which compare the pattern?
|
// name against which compare the pattern?
|
||||||
Pair<Long, QName> nameQName = qnameDAO.getQName(ContentModel.PROP_NAME);
|
Pair<Long, QName> nameQName = qnameDAO.getQName(ContentModel.PROP_NAME);
|
||||||
if(nameQName == null)
|
if (nameQName == null)
|
||||||
{
|
{
|
||||||
throw new AlfrescoRuntimeException("Unable to determine qname id of name property");
|
throw new AlfrescoRuntimeException("Unable to determine qname id of name property");
|
||||||
}
|
}
|
||||||
@@ -312,7 +309,7 @@ public class GetChildrenCannedQuery extends AbstractCannedQueryPermissions<NodeR
|
|||||||
|
|
||||||
if (startSort != null)
|
if (startSort != null)
|
||||||
{
|
{
|
||||||
logger.debug("Post-query sort: "+children.size()+" in "+(System.currentTimeMillis()-startSort)+" msecs");
|
logger.debug("Post-query sort: " + children.size() + " in " + (System.currentTimeMillis() - startSort) + " msecs");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -342,7 +339,7 @@ public class GetChildrenCannedQuery extends AbstractCannedQueryPermissions<NodeR
|
|||||||
{
|
{
|
||||||
if (start != null)
|
if (start != null)
|
||||||
{
|
{
|
||||||
logger.debug("Base query "+(filterSortPropCnt > 0 ? "(sort=y, perms=n)" : "(sort=n, perms=y)")+": "+result.size()+" in "+(System.currentTimeMillis()-start)+" msecs");
|
logger.debug("Base query " + (filterSortPropCnt > 0 ? "(sort=y, perms=n)" : "(sort=n, perms=y)") + ": " + result.size() + " in " + (System.currentTimeMillis() - start) + " msecs");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -385,14 +382,14 @@ public class GetChildrenCannedQuery extends AbstractCannedQueryPermissions<NodeR
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
// belts and braces
|
// belts and braces
|
||||||
throw new AlfrescoRuntimeException("GetChildren: unexpected - cannot set sort parameter: "+cnt);
|
throw new AlfrescoRuntimeException("GetChildren: unexpected - cannot set sort parameter: " + cnt);
|
||||||
}
|
}
|
||||||
|
|
||||||
propCnt++;
|
propCnt++;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
logger.warn("Skipping filter/sort param - cannot find: "+filterSortProp);
|
logger.warn("Skipping filter/sort param - cannot find: " + filterSortProp);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -443,7 +440,7 @@ public class GetChildrenCannedQuery extends AbstractCannedQueryPermissions<NodeR
|
|||||||
Object pv1 = null;
|
Object pv1 = null;
|
||||||
Object pv2 = null;
|
Object pv2 = null;
|
||||||
|
|
||||||
QName sortPropQName = (QName)sortProps.get(0).getFirst();
|
QName sortPropQName = (QName) sortProps.get(0).getFirst();
|
||||||
boolean sortAscending = (sortProps.get(0).getSecond() == SortOrder.ASCENDING);
|
boolean sortAscending = (sortProps.get(0).getSecond() == SortOrder.ASCENDING);
|
||||||
|
|
||||||
FilterSortNode node1 = node1In;
|
FilterSortNode node1 = node1In;
|
||||||
@@ -462,7 +459,7 @@ public class GetChildrenCannedQuery extends AbstractCannedQueryPermissions<NodeR
|
|||||||
|
|
||||||
if (pv1 == null)
|
if (pv1 == null)
|
||||||
{
|
{
|
||||||
if(pv2 == null && sortProps.size() > 1)
|
if (pv2 == null && sortProps.size() > 1)
|
||||||
{
|
{
|
||||||
return compareImpl(node1In, node2In, sortProps.subList(1, sortProps.size()));
|
return compareImpl(node1In, node2In, sortProps.subList(1, sortProps.size()));
|
||||||
}
|
}
|
||||||
@@ -478,32 +475,32 @@ public class GetChildrenCannedQuery extends AbstractCannedQueryPermissions<NodeR
|
|||||||
|
|
||||||
if (pv1 instanceof String)
|
if (pv1 instanceof String)
|
||||||
{
|
{
|
||||||
result = collator.compare((String)pv1, (String)pv2); // TODO use collation keys (re: performance)
|
result = collator.compare((String) pv1, (String) pv2); // TODO use collation keys (re: performance)
|
||||||
}
|
}
|
||||||
else if (pv1 instanceof Date)
|
else if (pv1 instanceof Date)
|
||||||
{
|
{
|
||||||
result = (((Date)pv1).compareTo((Date)pv2));
|
result = (((Date) pv1).compareTo((Date) pv2));
|
||||||
}
|
}
|
||||||
else if (pv1 instanceof Long)
|
else if (pv1 instanceof Long)
|
||||||
{
|
{
|
||||||
result = (((Long)pv1).compareTo((Long)pv2));
|
result = (((Long) pv1).compareTo((Long) pv2));
|
||||||
}
|
}
|
||||||
else if (pv1 instanceof Integer)
|
else if (pv1 instanceof Integer)
|
||||||
{
|
{
|
||||||
result = (((Integer)pv1).compareTo((Integer)pv2));
|
result = (((Integer) pv1).compareTo((Integer) pv2));
|
||||||
}
|
}
|
||||||
else if (pv1 instanceof QName)
|
else if (pv1 instanceof QName)
|
||||||
{
|
{
|
||||||
result = (((QName)pv1).compareTo((QName)pv2));
|
result = (((QName) pv1).compareTo((QName) pv2));
|
||||||
}
|
}
|
||||||
else if (pv1 instanceof Boolean)
|
else if (pv1 instanceof Boolean)
|
||||||
{
|
{
|
||||||
result = (((Boolean)pv1).compareTo((Boolean)pv2));
|
result = (((Boolean) pv1).compareTo((Boolean) pv2));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// TODO other comparisons
|
// TODO other comparisons
|
||||||
throw new RuntimeException("Unsupported sort type: "+pv1.getClass().getName());
|
throw new RuntimeException("Unsupported sort type: " + pv1.getClass().getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((result == 0) && (sortProps.size() > 1))
|
if ((result == 0) && (sortProps.size() > 1))
|
||||||
@@ -555,10 +552,10 @@ public class GetChildrenCannedQuery extends AbstractCannedQueryPermissions<NodeR
|
|||||||
{
|
{
|
||||||
if ((filterProp instanceof FilterPropString) && (propVal instanceof String))
|
if ((filterProp instanceof FilterPropString) && (propVal instanceof String))
|
||||||
{
|
{
|
||||||
String val = (String)propVal;
|
String val = (String) propVal;
|
||||||
String filter = (String)filterProp.getPropVal();
|
String filter = (String) filterProp.getPropVal();
|
||||||
|
|
||||||
switch ((FilterTypeString)filterProp.getFilterType())
|
switch ((FilterTypeString) filterProp.getFilterType())
|
||||||
{
|
{
|
||||||
case STARTSWITH:
|
case STARTSWITH:
|
||||||
if (val.startsWith(filter))
|
if (val.startsWith(filter))
|
||||||
@@ -615,8 +612,8 @@ public class GetChildrenCannedQuery extends AbstractCannedQueryPermissions<NodeR
|
|||||||
|
|
||||||
if ((filterProp instanceof FilterPropBoolean) && (propVal instanceof Boolean))
|
if ((filterProp instanceof FilterPropBoolean) && (propVal instanceof Boolean))
|
||||||
{
|
{
|
||||||
Boolean val = (Boolean)propVal;
|
Boolean val = (Boolean) propVal;
|
||||||
Boolean filter = (Boolean)filterProp.getPropVal();
|
Boolean filter = (Boolean) filterProp.getPropVal();
|
||||||
|
|
||||||
return (val == filter);
|
return (val == filter);
|
||||||
}
|
}
|
||||||
@@ -649,7 +646,7 @@ public class GetChildrenCannedQuery extends AbstractCannedQueryPermissions<NodeR
|
|||||||
|
|
||||||
if (start != null)
|
if (start != null)
|
||||||
{
|
{
|
||||||
logger.debug("Post-query perms: "+ret.size()+" in "+(System.currentTimeMillis()-start)+" msecs");
|
logger.debug("Post-query perms: " + ret.size() + " in " + (System.currentTimeMillis() - start) + " msecs");
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
@@ -663,7 +660,7 @@ public class GetChildrenCannedQuery extends AbstractCannedQueryPermissions<NodeR
|
|||||||
|
|
||||||
if (start != null)
|
if (start != null)
|
||||||
{
|
{
|
||||||
logger.trace("Pre-load: "+nodeRefs.size()+" in "+(System.currentTimeMillis()-start)+" msecs");
|
logger.trace("Pre-load: " + nodeRefs.size() + " in " + (System.currentTimeMillis() - start) + " msecs");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -697,7 +694,7 @@ public class GetChildrenCannedQuery extends AbstractCannedQueryPermissions<NodeR
|
|||||||
@Override
|
@Override
|
||||||
public boolean handle(FilterSortNode node)
|
public boolean handle(FilterSortNode node)
|
||||||
{
|
{
|
||||||
if(include(node))
|
if (include(node))
|
||||||
{
|
{
|
||||||
children.add(node);
|
children.add(node);
|
||||||
}
|
}
|
||||||
@@ -709,7 +706,7 @@ public class GetChildrenCannedQuery extends AbstractCannedQueryPermissions<NodeR
|
|||||||
protected boolean include(FilterSortNode node)
|
protected boolean include(FilterSortNode node)
|
||||||
{
|
{
|
||||||
// filter, if needed
|
// filter, if needed
|
||||||
return(!applyFilter || includeFilter(node.getPropVals(), filterProps)) && includeAspects(node.getNodeRef(), inclusiveAspects, exclusiveAspects);
|
return (!applyFilter || includeFilter(node.getPropVals(), filterProps)) && includeAspects(node.getNodeRef(), inclusiveAspects, exclusiveAspects);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -731,7 +728,7 @@ public class GetChildrenCannedQuery extends AbstractCannedQueryPermissions<NodeR
|
|||||||
@Override
|
@Override
|
||||||
public boolean handle(NodeRef nodeRef)
|
public boolean handle(NodeRef nodeRef)
|
||||||
{
|
{
|
||||||
if(include(nodeRef))
|
if (include(nodeRef))
|
||||||
{
|
{
|
||||||
rawResult.add(tenantService.getBaseName(nodeRef));
|
rawResult.add(tenantService.getBaseName(nodeRef));
|
||||||
}
|
}
|
||||||
@@ -777,7 +774,8 @@ public class GetChildrenCannedQuery extends AbstractCannedQueryPermissions<NodeR
|
|||||||
if (results.size() >= BATCH_SIZE)
|
if (results.size() >= BATCH_SIZE)
|
||||||
{
|
{
|
||||||
// batch
|
// batch
|
||||||
preloadFilterSort();
|
preloadNodes();
|
||||||
|
filterSort();
|
||||||
}
|
}
|
||||||
|
|
||||||
results.add(result);
|
results.add(result);
|
||||||
@@ -790,24 +788,27 @@ public class GetChildrenCannedQuery extends AbstractCannedQueryPermissions<NodeR
|
|||||||
if (results.size() >= 0)
|
if (results.size() >= 0)
|
||||||
{
|
{
|
||||||
// finish batch
|
// finish batch
|
||||||
preloadFilterSort();
|
preloadNodes();
|
||||||
|
filterSort();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void preloadFilterSort()
|
private void preloadNodes()
|
||||||
{
|
{
|
||||||
List<NodeRef> nodeRefs = new ArrayList<>(results.size());
|
List<NodeRef> nodeRefs = new ArrayList<>(results.size());
|
||||||
for (FilterSortNodeEntity result : results)
|
for (FilterSortNodeEntity result : results)
|
||||||
{
|
{
|
||||||
nodeRefs.add(result.getNode().getNodeRef());
|
nodeRefs.add(result.createNodeRef());
|
||||||
}
|
}
|
||||||
|
|
||||||
preload(nodeRefs);
|
preload(nodeRefs);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void filterSort()
|
||||||
|
{
|
||||||
for (FilterSortNodeEntity result : results)
|
for (FilterSortNodeEntity result : results)
|
||||||
{
|
{
|
||||||
Node node = result.getNode();
|
NodeRef nodeRef = result.createNodeRef();
|
||||||
NodeRef nodeRef = node.getNodeRef();
|
|
||||||
|
|
||||||
Map<NodePropertyKey, NodePropertyValue> propertyValues = new HashMap<NodePropertyKey, NodePropertyValue>(3);
|
Map<NodePropertyKey, NodePropertyValue> propertyValues = new HashMap<NodePropertyKey, NodePropertyValue>(3);
|
||||||
|
|
||||||
@@ -832,7 +833,7 @@ public class GetChildrenCannedQuery extends AbstractCannedQueryPermissions<NodeR
|
|||||||
Map<QName, Serializable> propVals = nodePropertyHelper.convertToPublicProperties(propertyValues);
|
Map<QName, Serializable> propVals = nodePropertyHelper.convertToPublicProperties(propertyValues);
|
||||||
|
|
||||||
// Add referenceable / spoofed properties (including spoofed name if null)
|
// Add referenceable / spoofed properties (including spoofed name if null)
|
||||||
ReferenceablePropertiesEntity.addReferenceableProperties(node, propVals);
|
ReferenceablePropertiesEntity.addReferenceableProperties(result.getId(), nodeRef, propVals);
|
||||||
|
|
||||||
// special cases
|
// special cases
|
||||||
|
|
||||||
@@ -841,12 +842,12 @@ public class GetChildrenCannedQuery extends AbstractCannedQueryPermissions<NodeR
|
|||||||
{
|
{
|
||||||
if (entry.getValue() instanceof MLText)
|
if (entry.getValue() instanceof MLText)
|
||||||
{
|
{
|
||||||
propVals.put(entry.getKey(), DefaultTypeConverter.INSTANCE.convert(String.class, (MLText)entry.getValue()));
|
propVals.put(entry.getKey(), DefaultTypeConverter.INSTANCE.convert(String.class, (MLText) entry.getValue()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ContentData (eg. cm:content.size, cm:content.mimetype)
|
// ContentData (eg. cm:content.size, cm:content.mimetype)
|
||||||
ContentData contentData = (ContentData)propVals.get(ContentModel.PROP_CONTENT);
|
ContentData contentData = (ContentData) propVals.get(ContentModel.PROP_CONTENT);
|
||||||
if (contentData != null)
|
if (contentData != null)
|
||||||
{
|
{
|
||||||
propVals.put(SORT_QNAME_CONTENT_SIZE, contentData.getSize());
|
propVals.put(SORT_QNAME_CONTENT_SIZE, contentData.getSize());
|
||||||
@@ -854,7 +855,7 @@ public class GetChildrenCannedQuery extends AbstractCannedQueryPermissions<NodeR
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Auditable props (eg. cm:creator, cm:created, cm:modifier, cm:modified, ...)
|
// Auditable props (eg. cm:creator, cm:created, cm:modifier, cm:modified, ...)
|
||||||
AuditablePropertiesEntity auditableProps = node.getAuditableProperties();
|
AuditablePropertiesEntity auditableProps = result.getAuditablePropertiesEntity();
|
||||||
if (auditableProps != null)
|
if (auditableProps != null)
|
||||||
{
|
{
|
||||||
for (Map.Entry<QName, Serializable> entry : auditableProps.getAuditableProperties().entrySet())
|
for (Map.Entry<QName, Serializable> entry : auditableProps.getAuditableProperties().entrySet())
|
||||||
@@ -864,7 +865,7 @@ public class GetChildrenCannedQuery extends AbstractCannedQueryPermissions<NodeR
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Node type
|
// Node type
|
||||||
Long nodeTypeQNameId = node.getTypeQNameId();
|
Long nodeTypeQNameId = result.getTypeQNameId();
|
||||||
if (nodeTypeQNameId != null)
|
if (nodeTypeQNameId != null)
|
||||||
{
|
{
|
||||||
Pair<Long, QName> pair = qnameDAO.getQName(nodeTypeQNameId);
|
Pair<Long, QName> pair = qnameDAO.getQName(nodeTypeQNameId);
|
||||||
|
@@ -133,6 +133,14 @@
|
|||||||
<resultMap id="result_FilterSortNode" type="FilterSortNode">
|
<resultMap id="result_FilterSortNode" type="FilterSortNode">
|
||||||
|
|
||||||
<id property="id" column="id" jdbcType="BIGINT" javaType="java.lang.Long"/>
|
<id property="id" column="id" jdbcType="BIGINT" javaType="java.lang.Long"/>
|
||||||
|
<result property="nodeUuid" column="uuid" jdbcType="VARCHAR" javaType="java.lang.String"/>
|
||||||
|
<result property="typeQNameId" column="type_qname_id" jdbcType="BIGINT" javaType="java.lang.Long"/>
|
||||||
|
|
||||||
|
<result property="auditablePropertiesEntity.auditCreator" column="audit_creator" jdbcType="VARCHAR" javaType="java.lang.String"/>
|
||||||
|
<result property="auditablePropertiesEntity.auditCreated" column="audit_created" jdbcType="VARCHAR" javaType="java.lang.String"/>
|
||||||
|
<result property="auditablePropertiesEntity.auditModifier" column="audit_modifier" jdbcType="VARCHAR" javaType="java.lang.String"/>
|
||||||
|
<result property="auditablePropertiesEntity.auditModified" column="audit_modified" jdbcType="VARCHAR" javaType="java.lang.String"/>
|
||||||
|
<result property="auditablePropertiesEntity.auditAccessed" column="audit_accessed" jdbcType="VARCHAR" javaType="java.lang.String"/>
|
||||||
|
|
||||||
<result property="prop1.nodeId" column="prop1_node_id" jdbcType="BIGINT" javaType="java.lang.Long"/>
|
<result property="prop1.nodeId" column="prop1_node_id" jdbcType="BIGINT" javaType="java.lang.Long"/>
|
||||||
<result property="prop1.key.qnameId" column="prop1_qname_id" jdbcType="BIGINT" javaType="java.lang.Long"/>
|
<result property="prop1.key.qnameId" column="prop1_qname_id" jdbcType="BIGINT" javaType="java.lang.Long"/>
|
||||||
@@ -170,7 +178,8 @@
|
|||||||
<result property="prop3.value.doubleValue" column="prop3_double_value" jdbcType="FLOAT" javaType="java.lang.Double"/>
|
<result property="prop3.value.doubleValue" column="prop3_double_value" jdbcType="FLOAT" javaType="java.lang.Double"/>
|
||||||
<result property="prop3.value.stringValue" column="prop3_string_value" jdbcType="VARCHAR" javaType="java.lang.String"/>
|
<result property="prop3.value.stringValue" column="prop3_string_value" jdbcType="VARCHAR" javaType="java.lang.String"/>
|
||||||
|
|
||||||
<association property="node" resultMap="alfresco.node.result_Node"/>
|
<result property="storeProtocol" column="protocol" jdbcType="VARCHAR" javaType="java.lang.String"/>
|
||||||
|
<result property="storeIdentifier" column="identifier" jdbcType="VARCHAR" javaType="java.lang.String"/>
|
||||||
|
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
@@ -972,8 +981,8 @@
|
|||||||
</select>
|
</select>
|
||||||
|
|
||||||
<!-- GetChildren - with explicit prop filtering and/or sorting -->
|
<!-- GetChildren - with explicit prop filtering and/or sorting -->
|
||||||
<select id="select_GetChildrenCannedQueryWithProps" parameterType="FilterSortNode" resultMap="result_FilterSortNode">
|
<select id="select_GetChildrenCannedQueryWithProps" parameterType="FilterSortNode" resultMap="result_FilterSortNode" flushCache="true">
|
||||||
select
|
select distinct
|
||||||
childNode.id as id,
|
childNode.id as id,
|
||||||
childNode.version as version,
|
childNode.version as version,
|
||||||
childStore.id as store_id,
|
childStore.id as store_id,
|
||||||
@@ -1067,9 +1076,6 @@
|
|||||||
#{item}
|
#{item}
|
||||||
</foreach>
|
</foreach>
|
||||||
</if>
|
</if>
|
||||||
<if test="prop1qnameId == null and auditableProps == false">
|
|
||||||
<include refid="alfresco.node.select_ChildAssoc_OrderBy"/>
|
|
||||||
</if>
|
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<!-- GetChildren - with no explicit sorting (or prop filtering) - note: still filtered by child type (and optionally primary or secondary) -->
|
<!-- GetChildren - with no explicit sorting (or prop filtering) - note: still filtered by child type (and optionally primary or secondary) -->
|
||||||
|
Reference in New Issue
Block a user