Dear All,
I am confused on the concept Activity in JCR. By the introduction of it, it
uses to record some changes on the session and that could be used to reused in
other workspaces.
I try to build a simple demo to check the function of Activity, but it failed.
Attaching my code here, please give me some guide. Thanks.
//create a Activity node
Node activity = vm.getActivity();
if (null == activity) {
activity = vm.createActivity("test_act_default_3333");
}
System.out.println(activity.getUUID());
Node root = adminSession.getRootNode();
Node testNode = root.addNode("test");
testNode.addMixin("mix:versionable");
adminSession.save();
vm.setActivity(activity);//set activity and begin to record the changes
vm.checkout("/test");
testNode.addNode("test_sub1");
testNode.addNode("test_sub2");
adminSession.save();
vm.setActivity(null);// stop the activity and the activity should
contains the addition of two child nodes.
vm.checkin("/test");
After above code, I try to reuse the activity in another workspace 'test'.
Session test_session = rep.login(new SimpleCredentials("admin",
"admin".toCharArray()), "test");
//Create a similar root node here
Node root = test_session.getRootNode();
Node testNode = root.addNode("test");
testNode.addMixin("mix:versionable");
test_session.save();
VersionManagerImpl vm =
(VersionManagerImpl)adminSession.getWorkspace().getVersionManager();
String uuid_act = "6047919f-2740-426c-ba91-94c1cc60e4bd";//this is UUID
of activity node previously created.
Node activity_node = test_session.getNodeByUUID(uuid_act);
NodeIterator nit = vm.merge(activity_node);//merge, but there is no
anything changes to be taken effect.
It is really appreciated if any suggestion is received. Thanks.
Best regards,
Young