mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-10-08 14:51:49 +00:00
Compare commits
37 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
aacaa62ff9 | ||
|
371bd1543d | ||
|
4cb16f046f | ||
|
2fb7de9ace | ||
|
ed972c79d7 | ||
|
0f3e2dc4cc | ||
|
4e7d0ccae3 | ||
|
1b5636a339 | ||
|
164ce720af | ||
|
258738e3dd | ||
|
fefd937c89 | ||
|
91f9467a99 | ||
|
97b1515f7c | ||
|
7f235f1e2b | ||
|
109bdeee0f | ||
|
7c97f49574 | ||
|
2088b8b553 | ||
|
280a873cb6 | ||
|
9683c18448 | ||
|
21b36a7100 | ||
|
96481daae1 | ||
|
7ef573699b | ||
|
a000df7ceb | ||
|
4a22735120 | ||
|
94d84799be | ||
|
754776e30c | ||
|
28b8bb85e4 | ||
|
4910028d51 | ||
|
75d0825295 | ||
|
964cedaebd | ||
|
2bda7d7231 | ||
|
82d316d802 | ||
|
1840d1056d | ||
|
334e8c84df | ||
|
24309cf4b6 | ||
|
2d28742a94 | ||
|
d6503ac1de |
@@ -7,7 +7,7 @@
|
||||
<parent>
|
||||
<groupId>org.alfresco</groupId>
|
||||
<artifactId>alfresco-community-repo-amps</artifactId>
|
||||
<version>25.3.0.40</version>
|
||||
<version>25.3.0.52</version>
|
||||
</parent>
|
||||
|
||||
<modules>
|
||||
|
@@ -7,7 +7,7 @@
|
||||
<parent>
|
||||
<groupId>org.alfresco</groupId>
|
||||
<artifactId>alfresco-governance-services-community-parent</artifactId>
|
||||
<version>25.3.0.40</version>
|
||||
<version>25.3.0.52</version>
|
||||
</parent>
|
||||
|
||||
<modules>
|
||||
|
@@ -7,7 +7,7 @@
|
||||
<parent>
|
||||
<groupId>org.alfresco</groupId>
|
||||
<artifactId>alfresco-governance-services-automation-community-repo</artifactId>
|
||||
<version>25.3.0.40</version>
|
||||
<version>25.3.0.52</version>
|
||||
</parent>
|
||||
|
||||
<build>
|
||||
|
@@ -7,7 +7,7 @@
|
||||
<parent>
|
||||
<groupId>org.alfresco</groupId>
|
||||
<artifactId>alfresco-governance-services-community-parent</artifactId>
|
||||
<version>25.3.0.40</version>
|
||||
<version>25.3.0.52</version>
|
||||
</parent>
|
||||
|
||||
<modules>
|
||||
|
@@ -15,6 +15,13 @@
|
||||
<parameter property="end" jdbcType="BIGINT" javaType="java.lang.Long"/>
|
||||
</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">
|
||||
<result property="row" column="row" jdbcType="BIGINT" javaType="java.lang.Long"/>
|
||||
<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 -->
|
||||
<select id="select_NodeIdsWhichReferenceContentUrl"
|
||||
parameterType="ContentUrl"
|
||||
parameterMap="parameter_NodeIdsWhichReferenceContentUrl"
|
||||
resultMap="result_NodeIds">
|
||||
select
|
||||
p.node_id
|
||||
from
|
||||
alf_content_url cu
|
||||
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)
|
||||
WHERE
|
||||
content_url_short = #{contentUrlShort} and
|
||||
content_url_crc = #{contentUrlCrc}
|
||||
|
||||
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_qname q ON (q.id = p.qname_id)
|
||||
left outer join alf_namespace n ON (n.id = q.ns_id)
|
||||
where
|
||||
cu.content_url_short = ? and
|
||||
cu.content_url_crc = ? and
|
||||
q.local_name = ? and
|
||||
n.uri = ?
|
||||
</select>
|
||||
|
||||
<select id="select_RecordFoldersWithSchedules"
|
||||
|
@@ -8,7 +8,7 @@
|
||||
<parent>
|
||||
<groupId>org.alfresco</groupId>
|
||||
<artifactId>alfresco-governance-services-community-repo-parent</artifactId>
|
||||
<version>25.3.0.40</version>
|
||||
<version>25.3.0.52</version>
|
||||
</parent>
|
||||
|
||||
<properties>
|
||||
|
@@ -39,6 +39,7 @@ 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.repo.domain.contentdata.ContentUrlEntity;
|
||||
import org.alfresco.repo.domain.node.NodeDAO;
|
||||
@@ -191,13 +192,19 @@ public class RecordsManagementQueryDAOImpl implements RecordsManagementQueryDAO,
|
||||
ContentUrlEntity contentUrlEntity = new ContentUrlEntity();
|
||||
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())
|
||||
{
|
||||
logger.debug("Executing query " + SELECT_NODE_IDS_WHICH_REFERENCE_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())
|
||||
{
|
||||
|
@@ -7,7 +7,7 @@
|
||||
<parent>
|
||||
<groupId>org.alfresco</groupId>
|
||||
<artifactId>alfresco-governance-services-community-repo-parent</artifactId>
|
||||
<version>25.3.0.40</version>
|
||||
<version>25.3.0.52</version>
|
||||
</parent>
|
||||
|
||||
<build>
|
||||
|
@@ -7,7 +7,7 @@
|
||||
<parent>
|
||||
<groupId>org.alfresco</groupId>
|
||||
<artifactId>alfresco-community-repo</artifactId>
|
||||
<version>25.3.0.40</version>
|
||||
<version>25.3.0.52</version>
|
||||
</parent>
|
||||
|
||||
<modules>
|
||||
|
@@ -8,7 +8,7 @@
|
||||
<parent>
|
||||
<groupId>org.alfresco</groupId>
|
||||
<artifactId>alfresco-community-repo-amps</artifactId>
|
||||
<version>25.3.0.40</version>
|
||||
<version>25.3.0.52</version>
|
||||
</parent>
|
||||
|
||||
<properties>
|
||||
|
@@ -7,7 +7,7 @@
|
||||
<parent>
|
||||
<groupId>org.alfresco</groupId>
|
||||
<artifactId>alfresco-community-repo</artifactId>
|
||||
<version>25.3.0.40</version>
|
||||
<version>25.3.0.52</version>
|
||||
</parent>
|
||||
|
||||
<dependencies>
|
||||
|
@@ -7,7 +7,7 @@
|
||||
<parent>
|
||||
<groupId>org.alfresco</groupId>
|
||||
<artifactId>alfresco-community-repo</artifactId>
|
||||
<version>25.3.0.40</version>
|
||||
<version>25.3.0.52</version>
|
||||
</parent>
|
||||
|
||||
<properties>
|
||||
|
@@ -7,7 +7,7 @@
|
||||
<parent>
|
||||
<groupId>org.alfresco</groupId>
|
||||
<artifactId>alfresco-community-repo</artifactId>
|
||||
<version>25.3.0.40</version>
|
||||
<version>25.3.0.52</version>
|
||||
</parent>
|
||||
|
||||
<dependencies>
|
||||
|
@@ -9,6 +9,6 @@
|
||||
<parent>
|
||||
<groupId>org.alfresco</groupId>
|
||||
<artifactId>alfresco-community-repo-packaging</artifactId>
|
||||
<version>25.3.0.40</version>
|
||||
<version>25.3.0.52</version>
|
||||
</parent>
|
||||
</project>
|
||||
|
@@ -7,7 +7,7 @@
|
||||
<parent>
|
||||
<groupId>org.alfresco</groupId>
|
||||
<artifactId>alfresco-community-repo-packaging</artifactId>
|
||||
<version>25.3.0.40</version>
|
||||
<version>25.3.0.52</version>
|
||||
</parent>
|
||||
|
||||
<properties>
|
||||
|
@@ -7,7 +7,7 @@
|
||||
<parent>
|
||||
<groupId>org.alfresco</groupId>
|
||||
<artifactId>alfresco-community-repo</artifactId>
|
||||
<version>25.3.0.40</version>
|
||||
<version>25.3.0.52</version>
|
||||
</parent>
|
||||
|
||||
<modules>
|
||||
|
@@ -6,7 +6,7 @@
|
||||
<parent>
|
||||
<groupId>org.alfresco</groupId>
|
||||
<artifactId>alfresco-community-repo-packaging</artifactId>
|
||||
<version>25.3.0.40</version>
|
||||
<version>25.3.0.52</version>
|
||||
</parent>
|
||||
|
||||
<modules>
|
||||
|
@@ -7,7 +7,7 @@
|
||||
<parent>
|
||||
<groupId>org.alfresco</groupId>
|
||||
<artifactId>alfresco-community-repo-tests</artifactId>
|
||||
<version>25.3.0.40</version>
|
||||
<version>25.3.0.52</version>
|
||||
</parent>
|
||||
|
||||
<organization>
|
||||
|
@@ -9,7 +9,7 @@
|
||||
<parent>
|
||||
<groupId>org.alfresco</groupId>
|
||||
<artifactId>alfresco-community-repo-tests</artifactId>
|
||||
<version>25.3.0.40</version>
|
||||
<version>25.3.0.52</version>
|
||||
</parent>
|
||||
|
||||
<developers>
|
||||
|
@@ -9,7 +9,7 @@
|
||||
<parent>
|
||||
<groupId>org.alfresco</groupId>
|
||||
<artifactId>alfresco-community-repo-tests</artifactId>
|
||||
<version>25.3.0.40</version>
|
||||
<version>25.3.0.52</version>
|
||||
</parent>
|
||||
|
||||
<developers>
|
||||
|
@@ -8,7 +8,7 @@
|
||||
<parent>
|
||||
<groupId>org.alfresco</groupId>
|
||||
<artifactId>alfresco-community-repo-tests</artifactId>
|
||||
<version>25.3.0.40</version>
|
||||
<version>25.3.0.52</version>
|
||||
</parent>
|
||||
|
||||
<properties>
|
||||
|
@@ -9,7 +9,7 @@
|
||||
<parent>
|
||||
<groupId>org.alfresco</groupId>
|
||||
<artifactId>alfresco-community-repo-tests</artifactId>
|
||||
<version>25.3.0.40</version>
|
||||
<version>25.3.0.52</version>
|
||||
</parent>
|
||||
|
||||
<developers>
|
||||
|
@@ -7,7 +7,7 @@
|
||||
<parent>
|
||||
<groupId>org.alfresco</groupId>
|
||||
<artifactId>alfresco-community-repo-packaging</artifactId>
|
||||
<version>25.3.0.40</version>
|
||||
<version>25.3.0.52</version>
|
||||
</parent>
|
||||
|
||||
<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">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>alfresco-community-repo</artifactId>
|
||||
<version>25.3.0.40</version>
|
||||
<version>25.3.0.52</version>
|
||||
<packaging>pom</packaging>
|
||||
<name>Alfresco Community Repo Parent</name>
|
||||
|
||||
@@ -51,14 +51,14 @@
|
||||
<dependency.alfresco-server-root.version>7.0.2</dependency.alfresco-server-root.version>
|
||||
<dependency.activiti-engine.version>5.23.0</dependency.activiti-engine.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-service.version>4.2.2-A.1</dependency.alfresco-transform-service.version>
|
||||
<dependency.alfresco-transform-core.version>5.2.2</dependency.alfresco-transform-core.version>
|
||||
<dependency.alfresco-transform-service.version>4.2.2</dependency.alfresco-transform-service.version>
|
||||
<dependency.alfresco-greenmail.version>7.1</dependency.alfresco-greenmail.version>
|
||||
<dependency.acs-event-model.version>1.0.9</dependency.acs-event-model.version>
|
||||
<dependency.acs-event-model.version>1.0.11</dependency.acs-event-model.version>
|
||||
|
||||
<dependency.aspectj.version>1.9.22.1</dependency.aspectj.version>
|
||||
<dependency.spring.version>6.2.8</dependency.spring.version>
|
||||
<dependency.spring-security.version>6.3.9</dependency.spring-security.version>
|
||||
<dependency.spring.version>6.2.11</dependency.spring.version>
|
||||
<dependency.spring-security.version>6.4.11</dependency.spring-security.version>
|
||||
<dependency.antlr.version>3.5.3</dependency.antlr.version>
|
||||
<dependency.jackson.version>2.17.2</dependency.jackson.version>
|
||||
<dependency.cxf.version>4.1.2</dependency.cxf.version>
|
||||
@@ -82,7 +82,7 @@
|
||||
<dependency.slf4j.version>2.0.16</dependency.slf4j.version>
|
||||
<dependency.log4j.version>2.25.1</dependency.log4j.version>
|
||||
<dependency.groovy.version>3.0.25</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.poi.version>5.4.0</dependency.poi.version>
|
||||
<dependency.jboss.logging.version>3.5.0.Final</dependency.jboss.logging.version>
|
||||
@@ -154,7 +154,7 @@
|
||||
<connection>scm:git:https://github.com/Alfresco/alfresco-community-repo.git</connection>
|
||||
<developerConnection>scm:git:https://github.com/Alfresco/alfresco-community-repo.git</developerConnection>
|
||||
<url>https://github.com/Alfresco/alfresco-community-repo</url>
|
||||
<tag>25.3.0.40</tag>
|
||||
<tag>25.3.0.52</tag>
|
||||
</scm>
|
||||
|
||||
<distributionManagement>
|
||||
@@ -170,6 +170,12 @@
|
||||
|
||||
<dependencyManagement>
|
||||
<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... -->
|
||||
<dependency>
|
||||
<groupId>jakarta.xml.bind</groupId>
|
||||
@@ -1125,16 +1131,10 @@
|
||||
<exclude>jakarta.xml.soap:jakarta.xml.soap-api:(, 2.0.1)</exclude>
|
||||
<exclude>jakarta.jws:jakarta.jws-api:(, 3.0.0)</exclude>
|
||||
<!-- 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-->
|
||||
<exclude>com.sun.xml.bind</exclude>
|
||||
</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>
|
||||
</rules>
|
||||
<fail>true</fail>
|
||||
|
@@ -7,7 +7,7 @@
|
||||
<parent>
|
||||
<groupId>org.alfresco</groupId>
|
||||
<artifactId>alfresco-community-repo</artifactId>
|
||||
<version>25.3.0.40</version>
|
||||
<version>25.3.0.52</version>
|
||||
</parent>
|
||||
|
||||
<dependencies>
|
||||
|
@@ -40,7 +40,6 @@
|
||||
"items":
|
||||
[
|
||||
<#list results as row>
|
||||
<#if row.item.hasPermission("Read")>
|
||||
{
|
||||
"type": "${row.item.typeShort}",
|
||||
"parentType": "${row.item.parentTypeShort!""}",
|
||||
@@ -76,7 +75,6 @@
|
||||
"nodeRef": "${row.item.nodeRef}"<#if row.selectable?exists>,
|
||||
"selectable" : ${row.selectable?string}</#if>
|
||||
}<#if row_has_next>,</#if>
|
||||
</#if>
|
||||
</#list>
|
||||
]
|
||||
}
|
||||
|
@@ -7,7 +7,7 @@
|
||||
<parent>
|
||||
<groupId>org.alfresco</groupId>
|
||||
<artifactId>alfresco-community-repo</artifactId>
|
||||
<version>25.3.0.40</version>
|
||||
<version>25.3.0.52</version>
|
||||
</parent>
|
||||
|
||||
<dependencies>
|
||||
|
@@ -2066,7 +2066,7 @@ public abstract class AbstractNodeDAOImpl implements NodeDAO, BatchingDAO
|
||||
|
||||
Node node = getNodeNotNull(nodeId, false);
|
||||
// Handle sys:referenceable
|
||||
ReferenceablePropertiesEntity.addReferenceableProperties(node, props);
|
||||
ReferenceablePropertiesEntity.addReferenceableProperties(node.getId(), node.getNodeRef(), props);
|
||||
// Handle sys:localized
|
||||
LocalizedPropertiesEntity.addLocalizedProperties(localeDAO, node, props);
|
||||
// Handle cm:auditable
|
||||
|
@@ -86,10 +86,8 @@ public class ReferenceablePropertiesEntity
|
||||
/**
|
||||
* 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_IDENTIFIER, nodeRef.getStoreRef().getIdentifier());
|
||||
properties.put(ContentModel.PROP_NODE_UUID, nodeRef.getId());
|
||||
|
@@ -2,7 +2,7 @@
|
||||
* #%L
|
||||
* Alfresco Repository
|
||||
* %%
|
||||
* Copyright (C) 2005 - 2023 Alfresco Software Limited
|
||||
* Copyright (C) 2005 - 2025 Alfresco Software Limited
|
||||
* %%
|
||||
* This file is part of the Alfresco software.
|
||||
* If the software was purchased under a paid Alfresco license, the terms of
|
||||
@@ -97,19 +97,26 @@ public abstract class EventConsolidator<REF extends EntityRef, RES extends Resou
|
||||
* @return the {@link RepoEvent} instance
|
||||
*/
|
||||
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();
|
||||
|
||||
DataAttributes<RES> eventData = buildEventData(eventInfo, resource, eventType);
|
||||
|
||||
return RepoEvent.<DataAttributes<RES>> builder()
|
||||
.setId(eventInfo.getId())
|
||||
builder.setId(eventInfo.getId())
|
||||
.setSource(eventInfo.getSource())
|
||||
.setTime(eventInfo.getTimestamp())
|
||||
.setType(eventType.getType())
|
||||
.setData(eventData)
|
||||
.setDataschema(EventJSONSchema.getSchemaV1(eventType))
|
||||
.build();
|
||||
.setDataschema(EventJSONSchema.getSchemaV1(eventType));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -28,8 +28,10 @@ package org.alfresco.repo.node.getchildren;
|
||||
import java.util.List;
|
||||
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.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.service.cmr.repository.StoreRef;
|
||||
|
||||
/**
|
||||
* Filterable/Sortable Node Entity
|
||||
@@ -42,12 +44,17 @@ import org.alfresco.repo.domain.node.NodePropertyEntity;
|
||||
public class FilterSortNodeEntity
|
||||
{
|
||||
private Long id; // node id
|
||||
private String nodeUuid;
|
||||
private Long typeQNameId;
|
||||
|
||||
private NodeEntity node;
|
||||
private AuditablePropertiesEntity auditablePropertiesEntity;
|
||||
private NodePropertyEntity prop1;
|
||||
private NodePropertyEntity prop2;
|
||||
private NodePropertyEntity prop3;
|
||||
|
||||
private String storeProtocol;
|
||||
private String storeIdentifier;
|
||||
|
||||
// Supplemental query-related parameters
|
||||
private Long parentNodeId;
|
||||
private Long prop1qnameId;
|
||||
@@ -80,6 +87,26 @@ public class FilterSortNodeEntity
|
||||
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()
|
||||
{
|
||||
return pattern;
|
||||
@@ -136,6 +163,16 @@ public class FilterSortNodeEntity
|
||||
this.namePropertyQNameId = namePropertyQNameId;
|
||||
}
|
||||
|
||||
public AuditablePropertiesEntity getAuditablePropertiesEntity()
|
||||
{
|
||||
return auditablePropertiesEntity;
|
||||
}
|
||||
|
||||
public void setAuditablePropertiesEntity(AuditablePropertiesEntity auditablePropertiesEntity)
|
||||
{
|
||||
this.auditablePropertiesEntity = auditablePropertiesEntity;
|
||||
}
|
||||
|
||||
public NodePropertyEntity getProp1()
|
||||
{
|
||||
return prop1;
|
||||
@@ -166,14 +203,24 @@ public class FilterSortNodeEntity
|
||||
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
|
||||
@@ -257,4 +304,9 @@ public class FilterSortNodeEntity
|
||||
{
|
||||
this.isPrimary = isPrimary;
|
||||
}
|
||||
|
||||
public NodeRef createNodeRef()
|
||||
{
|
||||
return new NodeRef(new StoreRef(storeProtocol, storeIdentifier), nodeUuid);
|
||||
}
|
||||
}
|
||||
|
@@ -48,7 +48,6 @@ import org.alfresco.query.CannedQueryParameters;
|
||||
import org.alfresco.query.CannedQuerySortDetails;
|
||||
import org.alfresco.query.CannedQuerySortDetails.SortOrder;
|
||||
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.NodeEntity;
|
||||
import org.alfresco.repo.domain.node.NodePropertyEntity;
|
||||
@@ -775,7 +774,8 @@ public class GetChildrenCannedQuery extends AbstractCannedQueryPermissions<NodeR
|
||||
if (results.size() >= BATCH_SIZE)
|
||||
{
|
||||
// batch
|
||||
preloadFilterSort();
|
||||
preloadNodes();
|
||||
filterSort();
|
||||
}
|
||||
|
||||
results.add(result);
|
||||
@@ -788,24 +788,27 @@ public class GetChildrenCannedQuery extends AbstractCannedQueryPermissions<NodeR
|
||||
if (results.size() >= 0)
|
||||
{
|
||||
// finish batch
|
||||
preloadFilterSort();
|
||||
preloadNodes();
|
||||
filterSort();
|
||||
}
|
||||
}
|
||||
|
||||
private void preloadFilterSort()
|
||||
private void preloadNodes()
|
||||
{
|
||||
List<NodeRef> nodeRefs = new ArrayList<>(results.size());
|
||||
for (FilterSortNodeEntity result : results)
|
||||
{
|
||||
nodeRefs.add(result.getNode().getNodeRef());
|
||||
nodeRefs.add(result.createNodeRef());
|
||||
}
|
||||
|
||||
preload(nodeRefs);
|
||||
}
|
||||
|
||||
private void filterSort()
|
||||
{
|
||||
for (FilterSortNodeEntity result : results)
|
||||
{
|
||||
Node node = result.getNode();
|
||||
NodeRef nodeRef = node.getNodeRef();
|
||||
NodeRef nodeRef = result.createNodeRef();
|
||||
|
||||
Map<NodePropertyKey, NodePropertyValue> propertyValues = new HashMap<NodePropertyKey, NodePropertyValue>(3);
|
||||
|
||||
@@ -830,7 +833,7 @@ public class GetChildrenCannedQuery extends AbstractCannedQueryPermissions<NodeR
|
||||
Map<QName, Serializable> propVals = nodePropertyHelper.convertToPublicProperties(propertyValues);
|
||||
|
||||
// Add referenceable / spoofed properties (including spoofed name if null)
|
||||
ReferenceablePropertiesEntity.addReferenceableProperties(node, propVals);
|
||||
ReferenceablePropertiesEntity.addReferenceableProperties(result.getId(), nodeRef, propVals);
|
||||
|
||||
// special cases
|
||||
|
||||
@@ -852,7 +855,7 @@ public class GetChildrenCannedQuery extends AbstractCannedQueryPermissions<NodeR
|
||||
}
|
||||
|
||||
// Auditable props (eg. cm:creator, cm:created, cm:modifier, cm:modified, ...)
|
||||
AuditablePropertiesEntity auditableProps = node.getAuditableProperties();
|
||||
AuditablePropertiesEntity auditableProps = result.getAuditablePropertiesEntity();
|
||||
if (auditableProps != null)
|
||||
{
|
||||
for (Map.Entry<QName, Serializable> entry : auditableProps.getAuditableProperties().entrySet())
|
||||
@@ -862,7 +865,7 @@ public class GetChildrenCannedQuery extends AbstractCannedQueryPermissions<NodeR
|
||||
}
|
||||
|
||||
// Node type
|
||||
Long nodeTypeQNameId = node.getTypeQNameId();
|
||||
Long nodeTypeQNameId = result.getTypeQNameId();
|
||||
if (nodeTypeQNameId != null)
|
||||
{
|
||||
Pair<Long, QName> pair = qnameDAO.getQName(nodeTypeQNameId);
|
||||
|
@@ -133,7 +133,15 @@
|
||||
<resultMap id="result_FilterSortNode" type="FilterSortNode">
|
||||
|
||||
<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.key.qnameId" column="prop1_qname_id" jdbcType="BIGINT" javaType="java.lang.Long"/>
|
||||
<result property="prop1.key.localeId" column="prop1_locale_id" jdbcType="BIGINT" javaType="java.lang.Long"/>
|
||||
@@ -169,9 +177,9 @@
|
||||
<result property="prop3.value.floatValue" column="prop3_float_value" jdbcType="FLOAT" javaType="java.lang.Float"/>
|
||||
<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"/>
|
||||
|
||||
<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 id="result_ArchivedNodes" type="ArchivedNodes">
|
||||
@@ -972,8 +980,8 @@
|
||||
</select>
|
||||
|
||||
<!-- GetChildren - with explicit prop filtering and/or sorting -->
|
||||
<select id="select_GetChildrenCannedQueryWithProps" parameterType="FilterSortNode" resultMap="result_FilterSortNode">
|
||||
select
|
||||
<select id="select_GetChildrenCannedQueryWithProps" parameterType="FilterSortNode" resultMap="result_FilterSortNode" flushCache="true">
|
||||
select distinct
|
||||
childNode.id as id,
|
||||
childNode.version as version,
|
||||
childStore.id as store_id,
|
||||
@@ -989,7 +997,7 @@
|
||||
childNode.audit_created as audit_created,
|
||||
childNode.audit_modifier as audit_modifier,
|
||||
childNode.audit_modified as audit_modified,
|
||||
childNode.audit_accessed as audit_accessed
|
||||
childNode.audit_accessed as audit_accessed
|
||||
<if test="prop1qnameId != null">
|
||||
, prop1.node_id as prop1_node_id,
|
||||
prop1.qname_id as prop1_qname_id,
|
||||
@@ -1067,9 +1075,6 @@
|
||||
#{item}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="prop1qnameId == null and auditableProps == false">
|
||||
<include refid="alfresco.node.select_ChildAssoc_OrderBy"/>
|
||||
</if>
|
||||
</select>
|
||||
|
||||
<!-- 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