mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-10-08 14:51:49 +00:00
Compare commits
9 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
a9ea867a73 | ||
|
4094dab7e1 | ||
|
1c5833c0e2 | ||
|
2e1f943390 | ||
|
71c6f21687 | ||
|
a48d7c2cdd | ||
|
e186f9737a | ||
|
97e71f77f9 | ||
|
38d61e9cf6 |
@@ -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>25.1.0.71</version>
|
<version>25.1.1.3</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>25.1.0.71</version>
|
<version>25.1.1.3</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>25.1.0.71</version>
|
<version>25.1.1.3</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>25.1.0.71</version>
|
<version>25.1.1.3</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<modules>
|
<modules>
|
||||||
|
@@ -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>25.1.0.71</version>
|
<version>25.1.1.3</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
# Version label
|
# Version label
|
||||||
version.major=25
|
version.major=25
|
||||||
version.minor=1
|
version.minor=1
|
||||||
version.revision=0
|
version.revision=1
|
||||||
version.label=
|
version.label=
|
||||||
|
|
||||||
# Edition label
|
# Edition label
|
||||||
|
@@ -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>25.1.0.71</version>
|
<version>25.1.1.3</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>25.1.0.71</version>
|
<version>25.1.1.3</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>25.1.0.71</version>
|
<version>25.1.1.3</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>25.1.0.71</version>
|
<version>25.1.1.3</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>25.1.0.71</version>
|
<version>25.1.1.3</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>25.1.0.71</version>
|
<version>25.1.1.3</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>25.1.0.71</version>
|
<version>25.1.1.3</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>25.1.0.71</version>
|
<version>25.1.1.3</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>25.1.0.71</version>
|
<version>25.1.1.3</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>25.1.0.71</version>
|
<version>25.1.1.3</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>25.1.0.71</version>
|
<version>25.1.1.3</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>25.1.0.71</version>
|
<version>25.1.1.3</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>25.1.0.71</version>
|
<version>25.1.1.3</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>25.1.0.71</version>
|
<version>25.1.1.3</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>25.1.0.71</version>
|
<version>25.1.1.3</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>25.1.0.71</version>
|
<version>25.1.1.3</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
|
6
pom.xml
6
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>25.1.0.71</version>
|
<version>25.1.1.3</version>
|
||||||
<packaging>pom</packaging>
|
<packaging>pom</packaging>
|
||||||
<name>Alfresco Community Repo Parent</name>
|
<name>Alfresco Community Repo Parent</name>
|
||||||
|
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
<properties>
|
<properties>
|
||||||
<acs.version.major>25</acs.version.major>
|
<acs.version.major>25</acs.version.major>
|
||||||
<acs.version.minor>1</acs.version.minor>
|
<acs.version.minor>1</acs.version.minor>
|
||||||
<acs.version.revision>0</acs.version.revision>
|
<acs.version.revision>1</acs.version.revision>
|
||||||
<acs.version.label />
|
<acs.version.label />
|
||||||
<amp.min.version>${acs.version.major}.0.0</amp.min.version>
|
<amp.min.version>${acs.version.major}.0.0</amp.min.version>
|
||||||
|
|
||||||
@@ -155,7 +155,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>25.1.0.71</tag>
|
<tag>25.1.1.3</tag>
|
||||||
</scm>
|
</scm>
|
||||||
|
|
||||||
<distributionManagement>
|
<distributionManagement>
|
||||||
|
@@ -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>25.1.0.71</version>
|
<version>25.1.1.3</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>25.1.0.71</version>
|
<version>25.1.1.3</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
@@ -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
|
||||||
@@ -31,6 +31,7 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import org.alfresco.repo.action.ParameterDefinitionImpl;
|
import org.alfresco.repo.action.ParameterDefinitionImpl;
|
||||||
|
import org.alfresco.repo.action.access.ActionAccessRestriction;
|
||||||
import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback;
|
import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback;
|
||||||
import org.alfresco.service.cmr.action.Action;
|
import org.alfresco.service.cmr.action.Action;
|
||||||
import org.alfresco.service.cmr.action.ParameterDefinition;
|
import org.alfresco.service.cmr.action.ParameterDefinition;
|
||||||
@@ -65,7 +66,8 @@ public class AddFeaturesActionExecuter extends ActionExecuterAbstractBase
|
|||||||
/**
|
/**
|
||||||
* Set the node service
|
* Set the node service
|
||||||
*
|
*
|
||||||
* @param nodeService the node service
|
* @param nodeService
|
||||||
|
* the node service
|
||||||
*/
|
*/
|
||||||
public void setNodeService(NodeService nodeService)
|
public void setNodeService(NodeService nodeService)
|
||||||
{
|
{
|
||||||
@@ -75,7 +77,8 @@ public class AddFeaturesActionExecuter extends ActionExecuterAbstractBase
|
|||||||
/**
|
/**
|
||||||
* Set the transaction service
|
* Set the transaction service
|
||||||
*
|
*
|
||||||
* @param transactionService the transaction service
|
* @param transactionService
|
||||||
|
* the transaction service
|
||||||
*/
|
*/
|
||||||
public void setTransactionService(TransactionService transactionService)
|
public void setTransactionService(TransactionService transactionService)
|
||||||
{
|
{
|
||||||
@@ -99,8 +102,7 @@ public class AddFeaturesActionExecuter extends ActionExecuterAbstractBase
|
|||||||
if (this.nodeService.exists(actionedUponNodeRef))
|
if (this.nodeService.exists(actionedUponNodeRef))
|
||||||
{
|
{
|
||||||
transactionService.getRetryingTransactionHelper().doInTransaction(
|
transactionService.getRetryingTransactionHelper().doInTransaction(
|
||||||
new RetryingTransactionCallback<Void>()
|
new RetryingTransactionCallback<Void>() {
|
||||||
{
|
|
||||||
public Void execute() throws Throwable
|
public Void execute() throws Throwable
|
||||||
{
|
{
|
||||||
Map<QName, Serializable> properties = new HashMap<QName, Serializable>();
|
Map<QName, Serializable> properties = new HashMap<QName, Serializable>();
|
||||||
@@ -114,6 +116,7 @@ public class AddFeaturesActionExecuter extends ActionExecuterAbstractBase
|
|||||||
|
|
||||||
// Build the aspect details
|
// Build the aspect details
|
||||||
Map<String, Serializable> paramValues = ruleAction.getParameterValues();
|
Map<String, Serializable> paramValues = ruleAction.getParameterValues();
|
||||||
|
removeActionContextParameter(paramValues);
|
||||||
for (Map.Entry<String, Serializable> entry : paramValues.entrySet())
|
for (Map.Entry<String, Serializable> entry : paramValues.entrySet())
|
||||||
{
|
{
|
||||||
if (entry.getKey().equals(PARAM_ASPECT_NAME) == true)
|
if (entry.getKey().equals(PARAM_ASPECT_NAME) == true)
|
||||||
@@ -133,8 +136,7 @@ public class AddFeaturesActionExecuter extends ActionExecuterAbstractBase
|
|||||||
nodeService.addAspect(actionedUponNodeRef, aspectQName, properties);
|
nodeService.addAspect(actionedUponNodeRef, aspectQName, properties);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
});
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -147,4 +149,11 @@ public class AddFeaturesActionExecuter extends ActionExecuterAbstractBase
|
|||||||
paramList.add(new ParameterDefinitionImpl(PARAM_ASPECT_NAME, DataTypeDefinition.QNAME, true, getParamDisplayLabel(PARAM_ASPECT_NAME), false, "ac-aspects"));
|
paramList.add(new ParameterDefinitionImpl(PARAM_ASPECT_NAME, DataTypeDefinition.QNAME, true, getParamDisplayLabel(PARAM_ASPECT_NAME), false, "ac-aspects"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove actionContext from the parameter values to declassify as an adhoc property
|
||||||
|
*/
|
||||||
|
private void removeActionContextParameter(Map<String, Serializable> paramValues)
|
||||||
|
{
|
||||||
|
paramValues.remove(ActionAccessRestriction.ACTION_CONTEXT_PARAM_NAME);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -542,10 +542,7 @@ public class EventGenerator extends AbstractLifecycleBean implements Initializin
|
|||||||
@Override
|
@Override
|
||||||
protected void onShutdown(ApplicationEvent applicationEvent)
|
protected void onShutdown(ApplicationEvent applicationEvent)
|
||||||
{
|
{
|
||||||
if (eventSender != null)
|
// NOOP
|
||||||
{
|
|
||||||
eventSender.destroy();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected class EventTransactionListener extends TransactionListenerAdapter
|
protected class EventTransactionListener extends TransactionListenerAdapter
|
||||||
|
@@ -52,7 +52,7 @@ public interface EventSender
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* It's called when the application context is closing, allowing {@link org.alfresco.repo.event2.EventGenerator} to perform cleanup operations.
|
* It's called when the bean instance is destroyed, allowing to perform cleanup operations.
|
||||||
*/
|
*/
|
||||||
default void destroy()
|
default void destroy()
|
||||||
{
|
{
|
||||||
|
@@ -25,15 +25,16 @@
|
|||||||
*/
|
*/
|
||||||
package org.alfresco.repo.event2;
|
package org.alfresco.repo.event2;
|
||||||
|
|
||||||
|
import java.util.Optional;
|
||||||
|
import java.util.concurrent.Executor;
|
||||||
import jakarta.annotation.Nonnull;
|
import jakarta.annotation.Nonnull;
|
||||||
import org.alfresco.util.PropertyCheck;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.beans.factory.config.AbstractFactoryBean;
|
import org.springframework.beans.factory.config.AbstractFactoryBean;
|
||||||
import org.springframework.core.env.PropertyResolver;
|
import org.springframework.core.env.PropertyResolver;
|
||||||
|
|
||||||
import java.util.Optional;
|
import org.alfresco.util.PropertyCheck;
|
||||||
import java.util.concurrent.Executor;
|
|
||||||
|
|
||||||
public class EventSenderFactoryBean extends AbstractFactoryBean<EventSender>
|
public class EventSenderFactoryBean extends AbstractFactoryBean<EventSender>
|
||||||
{
|
{
|
||||||
@@ -155,4 +156,13 @@ public class EventSenderFactoryBean extends AbstractFactoryBean<EventSender>
|
|||||||
{
|
{
|
||||||
return event2MessageProducer;
|
return event2MessageProducer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void destroyInstance(EventSender eventSender)
|
||||||
|
{
|
||||||
|
if (eventSender != null)
|
||||||
|
{
|
||||||
|
eventSender.destroy();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
@@ -37,6 +37,7 @@ import org.alfresco.service.cmr.repository.NodeRef;
|
|||||||
import org.alfresco.service.transaction.TransactionService;
|
import org.alfresco.service.transaction.TransactionService;
|
||||||
import org.alfresco.transform.config.CoreFunction;
|
import org.alfresco.transform.config.CoreFunction;
|
||||||
import org.alfresco.util.PropertyCheck;
|
import org.alfresco.util.PropertyCheck;
|
||||||
|
import com.google.common.util.concurrent.ThreadFactoryBuilder;
|
||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
import org.apache.commons.logging.LogFactory;
|
import org.apache.commons.logging.LogFactory;
|
||||||
import org.springframework.beans.factory.InitializingBean;
|
import org.springframework.beans.factory.InitializingBean;
|
||||||
@@ -46,6 +47,7 @@ import java.util.HashMap;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.concurrent.ExecutorService;
|
import java.util.concurrent.ExecutorService;
|
||||||
import java.util.concurrent.Executors;
|
import java.util.concurrent.Executors;
|
||||||
|
import java.util.concurrent.ThreadFactory;
|
||||||
|
|
||||||
import static org.alfresco.model.ContentModel.PROP_CONTENT;
|
import static org.alfresco.model.ContentModel.PROP_CONTENT;
|
||||||
import static org.alfresco.transform.common.RequestParamMap.DIRECT_ACCESS_URL;
|
import static org.alfresco.transform.common.RequestParamMap.DIRECT_ACCESS_URL;
|
||||||
@@ -68,6 +70,7 @@ public class LocalTransformClient implements TransformClient, InitializingBean
|
|||||||
private ContentService contentService;
|
private ContentService contentService;
|
||||||
private RenditionService2Impl renditionService2;
|
private RenditionService2Impl renditionService2;
|
||||||
private boolean directAccessUrlEnabled;
|
private boolean directAccessUrlEnabled;
|
||||||
|
private int threadPoolSize;
|
||||||
|
|
||||||
private ExecutorService executorService;
|
private ExecutorService executorService;
|
||||||
private ThreadLocal<LocalTransform> transform = new ThreadLocal<>();
|
private ThreadLocal<LocalTransform> transform = new ThreadLocal<>();
|
||||||
@@ -97,6 +100,11 @@ public class LocalTransformClient implements TransformClient, InitializingBean
|
|||||||
this.directAccessUrlEnabled = directAccessUrlEnabled;
|
this.directAccessUrlEnabled = directAccessUrlEnabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setThreadPoolSize(int threadPoolSize)
|
||||||
|
{
|
||||||
|
this.threadPoolSize = threadPoolSize;
|
||||||
|
}
|
||||||
|
|
||||||
public void setExecutorService(ExecutorService executorService)
|
public void setExecutorService(ExecutorService executorService)
|
||||||
{
|
{
|
||||||
this.executorService = executorService;
|
this.executorService = executorService;
|
||||||
@@ -110,9 +118,11 @@ public class LocalTransformClient implements TransformClient, InitializingBean
|
|||||||
PropertyCheck.mandatory(this, "contentService", contentService);
|
PropertyCheck.mandatory(this, "contentService", contentService);
|
||||||
PropertyCheck.mandatory(this, "renditionService2", renditionService2);
|
PropertyCheck.mandatory(this, "renditionService2", renditionService2);
|
||||||
PropertyCheck.mandatory(this, "directAccessUrlEnabled", directAccessUrlEnabled);
|
PropertyCheck.mandatory(this, "directAccessUrlEnabled", directAccessUrlEnabled);
|
||||||
|
PropertyCheck.mandatory(this, "threadPoolSize", threadPoolSize);
|
||||||
if (executorService == null)
|
if (executorService == null)
|
||||||
{
|
{
|
||||||
executorService = Executors.newCachedThreadPool();
|
ThreadFactory threadFactory = new ThreadFactoryBuilder().setNameFormat("local-transform-%d").build();
|
||||||
|
executorService = Executors.newFixedThreadPool(threadPoolSize, threadFactory);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -82,6 +82,7 @@
|
|||||||
<property name="contentService" ref="contentService" />
|
<property name="contentService" ref="contentService" />
|
||||||
<property name="renditionService2" ref="renditionService2" />
|
<property name="renditionService2" ref="renditionService2" />
|
||||||
<property name="directAccessUrlEnabled" value="${local.transform.directAccessUrl.enabled}"/>
|
<property name="directAccessUrlEnabled" value="${local.transform.directAccessUrl.enabled}"/>
|
||||||
|
<property name="threadPoolSize" value="${local.transform.threadPoolSize}" />
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="synchronousTransformClient" parent="localSynchronousTransformClient" />
|
<bean id="synchronousTransformClient" parent="localSynchronousTransformClient" />
|
||||||
|
@@ -1351,6 +1351,9 @@ restApi.directAccessUrl.defaultExpiryTimeInSec=30
|
|||||||
# Controls whether direct access url URLs may be used in transforms.
|
# Controls whether direct access url URLs may be used in transforms.
|
||||||
local.transform.directAccessUrl.enabled=true
|
local.transform.directAccessUrl.enabled=true
|
||||||
|
|
||||||
|
# Controls size of thread pool used for transforms.
|
||||||
|
local.transform.threadPoolSize=8
|
||||||
|
|
||||||
# Creates additional indexes on alf_node and alf_transaction. Recommended for large repositories.
|
# Creates additional indexes on alf_node and alf_transaction. Recommended for large repositories.
|
||||||
system.new-node-transaction-indexes.ignored=true
|
system.new-node-transaction-indexes.ignored=true
|
||||||
|
|
||||||
|
@@ -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,14 @@ package org.alfresco.repo.action.executer;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
||||||
|
import org.junit.Before;
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.springframework.extensions.surf.util.I18NUtil;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import org.alfresco.model.ContentModel;
|
import org.alfresco.model.ContentModel;
|
||||||
import org.alfresco.repo.action.ActionImpl;
|
import org.alfresco.repo.action.ActionImpl;
|
||||||
|
import org.alfresco.repo.action.access.ActionAccessRestriction;
|
||||||
import org.alfresco.repo.security.authentication.AuthenticationComponent;
|
import org.alfresco.repo.security.authentication.AuthenticationComponent;
|
||||||
import org.alfresco.service.cmr.action.ActionDefinition;
|
import org.alfresco.service.cmr.action.ActionDefinition;
|
||||||
import org.alfresco.service.cmr.action.ParameterDefinition;
|
import org.alfresco.service.cmr.action.ParameterDefinition;
|
||||||
@@ -39,10 +45,6 @@ import org.alfresco.service.cmr.repository.StoreRef;
|
|||||||
import org.alfresco.service.namespace.QName;
|
import org.alfresco.service.namespace.QName;
|
||||||
import org.alfresco.util.BaseSpringTest;
|
import org.alfresco.util.BaseSpringTest;
|
||||||
import org.alfresco.util.GUID;
|
import org.alfresco.util.GUID;
|
||||||
import org.junit.Before;
|
|
||||||
import org.junit.Test;
|
|
||||||
import org.springframework.extensions.surf.util.I18NUtil;
|
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add features action execution test
|
* Add features action execution test
|
||||||
@@ -52,36 +54,31 @@ import org.springframework.transaction.annotation.Transactional;
|
|||||||
@Transactional
|
@Transactional
|
||||||
public class AddFeaturesActionExecuterTest extends BaseSpringTest
|
public class AddFeaturesActionExecuterTest extends BaseSpringTest
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* Id used to identify the test action created
|
||||||
|
*/
|
||||||
|
private final static String ID = GUID.generate();
|
||||||
/**
|
/**
|
||||||
* The node service
|
* The node service
|
||||||
*/
|
*/
|
||||||
private NodeService nodeService;
|
private NodeService nodeService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The store reference
|
* The store reference
|
||||||
*/
|
*/
|
||||||
private StoreRef testStoreRef;
|
private StoreRef testStoreRef;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The root node reference
|
* The root node reference
|
||||||
*/
|
*/
|
||||||
private NodeRef rootNodeRef;
|
private NodeRef rootNodeRef;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The test node reference
|
* The test node reference
|
||||||
*/
|
*/
|
||||||
private NodeRef nodeRef;
|
private NodeRef nodeRef;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The add features action executer
|
* The add features action executer
|
||||||
*/
|
*/
|
||||||
private AddFeaturesActionExecuter executer;
|
private AddFeaturesActionExecuter executer;
|
||||||
|
|
||||||
/**
|
|
||||||
* Id used to identify the test action created
|
|
||||||
*/
|
|
||||||
private final static String ID = GUID.generate();
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called at the begining of all tests
|
* Called at the begining of all tests
|
||||||
*/
|
*/
|
||||||
@@ -161,4 +158,20 @@ public class AddFeaturesActionExecuterTest extends BaseSpringTest
|
|||||||
I18NUtil.setLocale(Locale.getDefault());
|
I18NUtil.setLocale(Locale.getDefault());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test check actionContext param is removed from adhoc properties
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void testCheckActionContext()
|
||||||
|
{
|
||||||
|
// Execute the action
|
||||||
|
ActionImpl action = new ActionImpl(null, ID, AddFeaturesActionExecuter.NAME, null);
|
||||||
|
action.setParameterValue(ActionAccessRestriction.ACTION_CONTEXT_PARAM_NAME, ActionAccessRestriction.V1_ACTION_CONTEXT);
|
||||||
|
action.setParameterValue(AddFeaturesActionExecuter.PARAM_ASPECT_NAME, ContentModel.ASPECT_CLASSIFIABLE);
|
||||||
|
this.executer.execute(action, this.nodeRef);
|
||||||
|
|
||||||
|
// Ensure the actionContext parameter has been removed
|
||||||
|
assertFalse(nodeService.getProperties(this.nodeRef).containsKey(QName.createQName(ActionAccessRestriction.ACTION_CONTEXT_PARAM_NAME)));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user