diff --git a/.gitignore b/.gitignore
index b9745c75ff..00f0a7cf70 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,6 +6,7 @@
.project
.settings
.history
+*.bak
*.eml
*.iml
*.log*
@@ -16,6 +17,8 @@ build.local.properties
dist
explodedDeps
local.properties
+rebel.xml
+rebel-remote.xml
target
test-output
diff --git a/README.md b/README.md
index 2ce5ab2ae7..75eb0f843d 100644
--- a/README.md
+++ b/README.md
@@ -170,3 +170,10 @@ docker-compose up
> Be aware of the fact that the Share images can not be started independently from Repo
e.g. In order to start an instance of rm-enterprise-repo and rm-enterprise-share, the above command must be run in rm-enterprise-share after the images have been built.
+
+## Start the Docker images with jRebel in remote server mode
+
+If you have a license for jRebel then this can be used from the rm-community-share or rm-enterprise-share directories with:
+```
+docker-compose -f docker-compose.yml -f jrebel-docker-compose.yml --project-name agsdev up --build --force-recreate
+```
diff --git a/pom.xml b/pom.xml
index 4d26994883..a55c004395 100644
--- a/pom.xml
+++ b/pom.xml
@@ -592,6 +592,7 @@
quay.io
2.3.0
+ 1.19
@@ -1120,7 +1121,7 @@
org.apache.commons
commons-compress
- 1.18
+ ${apache-compress.version}
org.alfresco.maven.plugin
diff --git a/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/action-context.xml b/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/action-context.xml
index b471c996c0..477d319ef4 100644
--- a/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/action-context.xml
+++ b/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/action-context.xml
@@ -5,15 +5,6 @@
http://www.springframework.org/schema/beans/spring-beans.xsd">
-
-
-
-
- alfresco.module.org_alfresco_module_rm.messages.actions
-
-
-
-
diff --git a/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/module-context.xml b/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/module-context.xml
index d999b109d7..4ccba8a2a0 100644
--- a/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/module-context.xml
+++ b/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/module-context.xml
@@ -64,6 +64,7 @@
alfresco.module.org_alfresco_module_rm.messages.admin-service
alfresco.module.org_alfresco_module_rm.messages.records-management-service
alfresco.module.org_alfresco_module_rm.messages.action-service
+ alfresco.module.org_alfresco_module_rm.messages.actions
alfresco.module.org_alfresco_module_rm.messages.audit-service
alfresco.module.org_alfresco_module_rm.messages.rm-events
alfresco.module.org_alfresco_module_rm.messages.capability-service
diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/hold/HoldServiceImpl.java b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/hold/HoldServiceImpl.java
index 403d9a1c26..15293083b3 100644
--- a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/hold/HoldServiceImpl.java
+++ b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/hold/HoldServiceImpl.java
@@ -28,6 +28,7 @@
package org.alfresco.module.org_alfresco_module_rm.hold;
import static org.alfresco.model.ContentModel.ASPECT_LOCKABLE;
+import static org.alfresco.model.ContentModel.PROP_NAME;
import java.io.Serializable;
import java.util.ArrayList;
@@ -41,7 +42,6 @@ import java.util.Set;
import org.alfresco.error.AlfrescoRuntimeException;
import org.alfresco.model.ContentModel;
-import org.alfresco.module.org_alfresco_module_rm.RecordsManagementPolicies.BeforeFileRecord;
import org.alfresco.module.org_alfresco_module_rm.audit.RecordsManagementAuditService;
import org.alfresco.module.org_alfresco_module_rm.audit.event.AuditEvent;
import org.alfresco.module.org_alfresco_module_rm.capability.CapabilityService;
@@ -253,7 +253,6 @@ public class HoldServiceImpl extends ServiceBaseImpl
transactionalResourceHelper.getSet("frozen").add(frozenNode);
removeFreezeAspect(frozenNode, 1);
}
-
return null;
}
};
@@ -571,10 +570,14 @@ public class HoldServiceImpl extends ServiceBaseImpl
}
invokeBeforeDeleteHold(hold);
+
+ String holdName = (String) nodeService.getProperty(hold, PROP_NAME);
+ Set classQNames = getTypeAndApsects(hold);
+
// delete the hold node
nodeService.deleteNode(hold);
- //invokeOnDeleteHold(hold);
+ invokeOnDeleteHold(holdName, classQNames);
}
/**
@@ -902,12 +905,15 @@ public class HoldServiceImpl extends ServiceBaseImpl
/**
* Invoke onDeleteHold policy
*
- * @param nodeRef node reference
+ * @param holdName name of the hold
+ * @param classQNames hold types and aspects
*/
- protected void invokeOnDeleteHold(NodeRef nodeRef)
+ protected void invokeOnDeleteHold(String holdName, Set classQNames)
{
// execute policy for node type and aspects
- OnDeleteHoldPolicy policy = onDeleteHoldPolicyDelegate.get(getTypeAndApsects(nodeRef));
- policy.onDeleteHold(nodeRef);
+ OnDeleteHoldPolicy policy = onDeleteHoldPolicyDelegate.get(classQNames);
+ policy.onDeleteHold(holdName);
+
}
+
}
diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/hold/HoldServicePolicies.java b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/hold/HoldServicePolicies.java
index 062af9fcc4..177419ae4b 100644
--- a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/hold/HoldServicePolicies.java
+++ b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/hold/HoldServicePolicies.java
@@ -82,8 +82,8 @@ public interface HoldServicePolicies
/**
* Called when a hold is deleted.
*
- * @param hold node reference
+ * @param holdname name of the deleted hold
*/
- void onDeleteHold(NodeRef hold);
+ void onDeleteHold(String holdname);
}
}
diff --git a/rm-community/rm-community-repo/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/hold/CreateHoldTest.java b/rm-community/rm-community-repo/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/hold/CreateHoldTest.java
index 2814c075e4..e0821bbb40 100644
--- a/rm-community/rm-community-repo/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/hold/CreateHoldTest.java
+++ b/rm-community/rm-community-repo/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/hold/CreateHoldTest.java
@@ -39,9 +39,7 @@ import java.util.Set;
import org.alfresco.module.org_alfresco_module_rm.capability.Capability;
import org.alfresco.module.org_alfresco_module_rm.hold.HoldServicePolicies;
import org.alfresco.module.org_alfresco_module_rm.hold.HoldServicePolicies.BeforeCreateHoldPolicy;
-import org.alfresco.module.org_alfresco_module_rm.hold.HoldServicePolicies.BeforeDeleteHoldPolicy;
import org.alfresco.module.org_alfresco_module_rm.hold.HoldServicePolicies.OnCreateHoldPolicy;
-import org.alfresco.module.org_alfresco_module_rm.hold.HoldServicePolicies.OnDeleteHoldPolicy;
import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel;
import org.alfresco.module.org_alfresco_module_rm.role.Role;
import org.alfresco.module.org_alfresco_module_rm.test.util.BaseRMTestCase;
@@ -150,38 +148,43 @@ public class CreateHoldTest extends BaseRMTestCase implements BeforeCreateHoldPo
public void testPolicyNotificationForCreateHold() throws Exception
{
- doTestInTransaction(new Test()
+ doBehaviourDrivenTest(new BehaviourDrivenTest()
{
- private NodeRef hold;
+ BehaviourDefinition beforeCreateHoldBehaviour;
+ BehaviourDefinition onCreateHoldBehaviour;
- @Override
- public Void run()
+ public void given()
{
- BehaviourDefinition beforeCreateHoldBehaviour = policyComponent.bindClassBehaviour(
- HoldServicePolicies.BeforeCreateHoldPolicy.BEFORE_CREATE_HOLD, RecordsManagementModel.TYPE_HOLD_CONTAINER,
+ beforeCreateHoldBehaviour = policyComponent.bindClassBehaviour(HoldServicePolicies.BeforeCreateHoldPolicy.BEFORE_CREATE_HOLD,
+ RecordsManagementModel.TYPE_HOLD_CONTAINER,
new JavaBehaviour(CreateHoldTest.this, "beforeCreateHold", NotificationFrequency.EVERY_EVENT));
- BehaviourDefinition onCreateHoldBehaviour = policyComponent.bindClassBehaviour(
- HoldServicePolicies.OnCreateHoldPolicy.ON_CREATE_HOLD, RecordsManagementModel.TYPE_HOLD,
+ onCreateHoldBehaviour = policyComponent.bindClassBehaviour(HoldServicePolicies.OnCreateHoldPolicy.ON_CREATE_HOLD,
+ RecordsManagementModel.TYPE_HOLD,
new JavaBehaviour(CreateHoldTest.this, "onCreateHold", NotificationFrequency.EVERY_EVENT));
assertFalse(beforeCreateHoldFlag);
assertFalse(onCreateHoldFlag);
-
- // Create a hold
- hold = holdService.createHold(filePlan, generate(), generate(), generate());
-
- assertTrue(beforeCreateHoldFlag);
- assertTrue(onCreateHoldFlag);
-
- //clean up
- policyComponent.removeClassDefinition(beforeCreateHoldBehaviour);
- policyComponent.removeClassDefinition(onCreateHoldBehaviour);
-
- return null;
}
- }, getAdminUserName());
+ public void when()
+ {
+ // Create a hold
+ NodeRef hold = holdService.createHold(filePlan, generate(), generate(), generate());
+ }
+
+ public void then()
+ {
+ assertTrue(beforeCreateHoldFlag);
+ assertTrue(onCreateHoldFlag);
+ }
+
+ public void after()
+ {
+ policyComponent.removeClassDefinition(beforeCreateHoldBehaviour);
+ policyComponent.removeClassDefinition(onCreateHoldBehaviour);
+ }
+ });
}
diff --git a/rm-community/rm-community-repo/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/hold/DeleteHoldTest.java b/rm-community/rm-community-repo/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/hold/DeleteHoldTest.java
index 7ed6345177..7fc62fa4cb 100644
--- a/rm-community/rm-community-repo/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/hold/DeleteHoldTest.java
+++ b/rm-community/rm-community-repo/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/hold/DeleteHoldTest.java
@@ -27,13 +27,11 @@
package org.alfresco.module.org_alfresco_module_rm.test.integration.hold;
-import static org.alfresco.repo.security.authentication.AuthenticationUtil.getAdminUserName;
import static org.alfresco.util.GUID.generate;
import java.util.ArrayList;
import java.util.List;
-import org.alfresco.module.org_alfresco_module_rm.hold.HoldServicePolicies;
import org.alfresco.module.org_alfresco_module_rm.hold.HoldServicePolicies.BeforeDeleteHoldPolicy;
import org.alfresco.module.org_alfresco_module_rm.hold.HoldServicePolicies.OnDeleteHoldPolicy;
import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel;
@@ -251,39 +249,47 @@ public class DeleteHoldTest extends BaseRMTestCase implements BeforeDeleteHoldPo
public void testPolicyNotificationForDeleteHold() throws Exception
{
- doTestInTransaction(new Test()
+ doBehaviourDrivenTest(new BehaviourDrivenTest()
{
+ BehaviourDefinition beforeDeleteHoldBehaviour;
+ BehaviourDefinition onDeleteHoldBehaviour;
+ NodeRef hold;
- @Override
- public Void run()
+ public void given()
{
- BehaviourDefinition beforeDeleteHoldBehaviour = policyComponent.bindClassBehaviour(
- HoldServicePolicies.BeforeDeleteHoldPolicy.BEFORE_DELETE_HOLD, RecordsManagementModel.TYPE_HOLD,
+ beforeDeleteHoldBehaviour = policyComponent.bindClassBehaviour(BeforeDeleteHoldPolicy.BEFORE_DELETE_HOLD,
+ RecordsManagementModel.TYPE_HOLD,
new JavaBehaviour(DeleteHoldTest.this, "beforeDeleteHold", NotificationFrequency.EVERY_EVENT));
- BehaviourDefinition onDeleteHoldBehaviour = policyComponent.bindClassBehaviour(
- HoldServicePolicies.OnDeleteHoldPolicy.ON_DELETE_HOLD, RecordsManagementModel.TYPE_HOLD,
+ onDeleteHoldBehaviour = policyComponent.bindClassBehaviour(OnDeleteHoldPolicy.ON_DELETE_HOLD, RecordsManagementModel.TYPE_HOLD,
new JavaBehaviour(DeleteHoldTest.this, "onDeleteHold", NotificationFrequency.EVERY_EVENT));
- NodeRef hold = holdService.createHold(filePlan, generate(), generate(), generate());
+ // Create a hold
+ hold = holdService.createHold(filePlan, generate(), generate(), generate());
assertFalse(beforeDeleteHoldFlag);
- assertFalse(onDeleteHoldFlag);
+ assertFalse(beforeDeleteHoldFlag);
+ }
+ public void when()
+ {
// Delete the hold
holdService.deleteHold(hold);
- assertTrue(beforeDeleteHoldFlag);
- assertTrue(onDeleteHoldFlag);
-
- //clean up
- policyComponent.removeClassDefinition(beforeDeleteHoldBehaviour);
- policyComponent.removeClassDefinition(onDeleteHoldBehaviour);
-
- return null;
}
- }, getAdminUserName());
+ public void then()
+ {
+ assertTrue(beforeDeleteHoldFlag);
+ assertTrue(onDeleteHoldFlag);
+ }
+
+ public void after()
+ {
+ policyComponent.removeClassDefinition(beforeDeleteHoldBehaviour);
+ policyComponent.removeClassDefinition(onDeleteHoldBehaviour);
+ }
+ });
}
@@ -294,7 +300,7 @@ public class DeleteHoldTest extends BaseRMTestCase implements BeforeDeleteHoldPo
}
@Override
- public void onDeleteHold(NodeRef hold)
+ public void onDeleteHold(String holdName)
{
onDeleteHoldFlag = true;
}
diff --git a/rm-community/rm-community-repo/unit-test/java/org/alfresco/module/org_alfresco_module_rm/hold/HoldServiceImplUnitTest.java b/rm-community/rm-community-repo/unit-test/java/org/alfresco/module/org_alfresco_module_rm/hold/HoldServiceImplUnitTest.java
index 7326bd518a..15cf5f8bd1 100644
--- a/rm-community/rm-community-repo/unit-test/java/org/alfresco/module/org_alfresco_module_rm/hold/HoldServiceImplUnitTest.java
+++ b/rm-community/rm-community-repo/unit-test/java/org/alfresco/module/org_alfresco_module_rm/hold/HoldServiceImplUnitTest.java
@@ -314,7 +314,7 @@ public class HoldServiceImplUnitTest extends BaseUnitTest
{
// mocks for policies
doNothing().when(holdService).invokeBeforeDeleteHold(any());
- doNothing().when(holdService).invokeOnDeleteHold(any());
+ doNothing().when(holdService).invokeOnDeleteHold(any(), any());
// delete hold
holdService.deleteHold(hold);