private Task addBypassToResourcesServlet() { return new ArrayDelegateTask("Add delegateResourceVoter to ResourcesServlet.", new NodeExistsDelegateTask("", "/server/filters/servlets/ResourcesServlet", new NodeExistsDelegateTask("", "/server/filters/servlets/ResourcesServlet/bypasses", new WarnTask("", "DelegateResourceVoter couldn't be installed since there is already a bypass defined for ResourcesServlet."), new ArrayDelegateTask("", new CreateNodeTask("", "/server/filters/servlets/ResourcesServlet", "bypasses", NodeTypes.ContentNode.NAME), new CreateNodeTask("", "/server/filters/servlets/ResourcesServlet/bypasses", "bypassWhenNotInResourceFilter", NodeTypes.ContentNode.NAME), new NewPropertyTask("", "/server/filters/servlets/ResourcesServlet/bypasses/bypassWhenNotInResourceFilter", "class", "info.magnolia.module.resources.DelegateResourceVoter"), new NewPropertyTask("", "/server/filters/servlets/ResourcesServlet/bypasses/bypassWhenNotInResourceFilter", "not", true))))); }
public AddMailTemplateTask(String templateName, String description, String from, String subject, String templatePath, String type) { super("Mail template", "Adds the " + templateName + " " + description + ".", new CreateNodeTask(null, null, RepositoryConstants.CONFIG, "/modules/mail/config/templatesConfiguration", templateName, NodeTypes.ContentNode.NAME), new NewPropertyTask(null, null, RepositoryConstants.CONFIG, "/modules/mail/config/templatesConfiguration/" + templateName, "from", from), new NewPropertyTask(null, null, RepositoryConstants.CONFIG, "/modules/mail/config/templatesConfiguration/" + templateName, "subject", subject), new NewPropertyTask(null, null, RepositoryConstants.CONFIG, "/modules/mail/config/templatesConfiguration/" + templateName, "templateFile", templatePath), new NewPropertyTask(null, null, RepositoryConstants.CONFIG, "/modules/mail/config/templatesConfiguration/" + templateName, "type", type)); } }
@Test public void testExecute() throws RepositoryException, TaskExecutionException { // GIVEN session.getRootNode().addNode("someParent"); Task task = new CreateNodeTask("name", "/someParent", "someNode", NodeTypes.ContentNode.NAME); // WHEN task.execute(installContext); // THEN assertTrue("Node was created", session.nodeExists("/someParent/someNode")); assertEquals("Create node 'config:/someParent/someNode'.", task.getDescription()); } }
@Test public void repositoryIsNotClusteredButClusterMaster() throws Exception { // GIVEN Session websiteSession = MgnlContext.getJCRSession(RepositoryConstants.CONFIG); given(context.getJCRSession(RepositoryConstants.CONFIG)).willReturn(websiteSession); Task task = new CreateNodeTask("", "", RepositoryConstants.CONFIG, "/", "test", NodeTypes.ContentNode.NAME); given(delta.getTasks()).willReturn(Lists.newArrayList(task)); // WHEN ModuleDefinition moduleDefinition = new ModuleDefinition(RepositoryConstants.CONFIG, Version.parseVersion("2.3.4"), null, null); ModuleManagerImpl moduleManager = newTestModuleManager(moduleVersionHandlers); moduleManager.applyDeltas(moduleDefinition, Lists.newArrayList(delta), context); // THEN assertThat(websiteSession.hasPendingChanges(), is(false)); }
@Test public void repositoryIsClusteredAndClusterMaster() throws Exception { // GIVEN Session websiteSession = MgnlContext.getJCRSession(RepositoryConstants.WEBSITE); given(context.getJCRSession(RepositoryConstants.WEBSITE)).willReturn(websiteSession); Task task = new CreateNodeTask("", "", RepositoryConstants.WEBSITE, "/", "test", NodeTypes.ContentNode.NAME); given(delta.getTasks()).willReturn(Lists.newArrayList(task)); // WHEN ModuleDefinition moduleDefinition = new ModuleDefinition(RepositoryConstants.WEBSITE, Version.parseVersion("2.3.4"), null, null); ModuleManagerImpl moduleManager = newTestModuleManager(moduleVersionHandlers); moduleManager.applyDeltas(moduleDefinition, Lists.newArrayList(delta), context); // THEN assertThat(websiteSession.hasPendingChanges(), is(false)); }
new CreateNodeTask(null, null, RepositoryConstants.CONFIG, "/", "server", NodeTypes.Content.NAME)), new CreateNodeTask(null, null, RepositoryConstants.CONFIG, "/", "modules", NodeTypes.Content.NAME)), new CreateNodeTask("Adds system folder node to users workspace", "Add system realm folder /system to users workspace.", RepositoryConstants.USERS, "/", Realm.REALM_SYSTEM.getName(), NodeTypes.Folder.NAME), new CreateNodeTask("Adds admin folder node to users workspace", "Add magnolia realm folder /admin to users workspace.", RepositoryConstants.USERS, "/", Realm.REALM_ADMIN.getName(), NodeTypes.Folder.NAME),
@Before public void setUp() throws Exception { ComponentsTestUtil.setInstance(SystemContext.class, createStrictMock(SystemContext.class)); super.setUp(); moduleRegistry = Components.getComponent(ModuleRegistry.class); repositoryManager = Components.getComponent(RepositoryManager.class); ComponentsTestUtil.setInstance(VersionManager.class, new VersionManager(Components.getComponent(SystemContext.class), Components.getComponent(RepositoryManager.class), Components.getComponent(CopyUtil.class))); moduleDefinitionReader = mock(ModuleDefinitionReader.class); context = mock(InstallContextImpl.class); websiteSession = MgnlContext.getJCRSession(RepositoryConstants.WEBSITE); given(context.getJCRSession(anyString())).willAnswer(new Answer<Session>() { @Override public Session answer(InvocationOnMock invocation) throws Throwable { return invocation.getArguments()[0].toString().equals(RepositoryConstants.WEBSITE) ? websiteSession : mock(Session.class); } }); ModuleVersionHandler moduleVersionHandler = mock(ModuleVersionHandler.class); delta = mock(Delta.class); Task task = new CreateNodeTask("", "", RepositoryConstants.WEBSITE, "/", "test", NodeTypes.ContentNode.NAME); given(delta.getTasks()).willReturn(newArrayList(task)); moduleDefinition = new ModuleDefinition("website", Version.parseVersion("2.3.4"), null, null); moduleVersionHandlers = newHashMap(); moduleVersionHandlers.put("abc", moduleVersionHandler); TestUtil.shuntLog(); }
new NodeExistsDelegateTask("", "", RepositoryConstants.CONFIG, "/modules/rssaggregator/apps/rssAggregator/subApps/config/formDefinitions/main/tabs/main/fields/", null, new ArrayDelegateTask("Add field fetcherClass to config.", new CreateNodeTask(RepositoryConstants.CONFIG, "/modules/rssaggregator/apps/rssAggregator/subApps/config/formDefinitions/main/tabs/main/fields/", "fetcherClass", NodeTypes.ContentNode.NAME), new SetPropertyTask(RepositoryConstants.CONFIG, "/modules/rssaggregator/apps/rssAggregator/subApps/config/formDefinitions/main/tabs/main/fields/fetcherClass/", "class", "info.magnolia.ui.form.field.definition.TextFieldDefinition"))), new NodeExistsDelegateTask("", "", RepositoryConstants.CONFIG, "/modules/rssaggregator/apps/rssAggregator/subApps/detail/editor/form/tabs/scheduleTab/fields/", null, new ArrayDelegateTask("Add field fetcherClass to agregateConfig.", new CreateNodeTask(RepositoryConstants.CONFIG, "/modules/rssaggregator/apps/rssAggregator/subApps/detail/editor/form/tabs/scheduleTab/fields/", "fetcherClass", NodeTypes.ContentNode.NAME), new SetPropertyTask(RepositoryConstants.CONFIG, "/modules/rssaggregator/apps/rssAggregator/subApps/detail/editor/form/tabs/scheduleTab/fields/fetcherClass/", "class", "info.magnolia.ui.form.field.definition.TextFieldDefinition"))) )));
.addTask(new CreateNodeTask("Add renameContact to contact actionBar section", "", RepositoryConstants.CONFIG, "/modules/contacts/apps/contacts/subApps/browser/actionbar/sections/contact/groups/editActions/items", "renameContact", NodeTypes.Content.NAME)) .addTask(new OrderNodeAfterTask("Move renameContact action to proper location", "Move it to after editContact", RepositoryConstants.CONFIG, "/modules/contacts/apps/contacts/subApps/browser/actionbar/sections/contact/groups/editActions/items/renameContact", "editContact")) .addTask(new CreateNodeTask("Add renameContact to contactDeleted actionBar section", "", RepositoryConstants.CONFIG, "/modules/contacts/apps/contacts/subApps/browser/actionbar/sections/deletedContact/groups/editActions/items", "renameContact", NodeTypes.Content.NAME)) .addTask(new OrderNodeAfterTask("Move renameContact action to proper location", "Move it to after editContact", RepositoryConstants.CONFIG, "/modules/contacts/apps/contacts/subApps/browser/actionbar/sections/deletedContact/groups/editActions/items/renameContact", "editContact"))
new MoveNodeTask("Move categoryFeeds node", "Move categoryFeeds node to categorization module", "config", "/modules/adminInterface/virtualURIMapping/categoryFeeds", "/modules/categorization/virtualURIMapping/categoryFeeds", false), new ArrayDelegateTask("Move categoryFeeds node", "Move categoryFeeds node to categorization module", new CreateNodeTask("Create node", "Create virtualURIMapping node in categorization module", "config", "/modules/categorization", "virtualURIMapping", NodeTypes.Content.NAME), new MoveNodeTask("Move categoryFeeds node", "Move categoryFeeds node to categorization module", "config", "/modules/adminInterface/virtualURIMapping/categoryFeeds", "/modules/categorization/virtualURIMapping/categoryFeeds", false)))));
.addTask(new CreateNodeTask("Add renameAsset to asset actionBar section", "", RepositoryConstants.CONFIG, "/modules/dam/apps/assets/subApps/browser/actionbar/sections/asset/groups/editActions/items", "renameAsset", NodeTypes.Content.NAME)) .addTask(new OrderNodeAfterTask("Move renameAsset action to proper location", "Move it to after editAsset", RepositoryConstants.CONFIG, "/modules/dam/apps/assets/subApps/browser/actionbar/sections/asset/groups/editActions/items/renameAsset", "editAsset")) .addTask(new CreateNodeTask("Add renameAsset to assetDeleted actionBar section", "", RepositoryConstants.CONFIG, "/modules/dam/apps/assets/subApps/browser/actionbar/sections/deletedAsset/groups/editActions/items", "renameAsset", NodeTypes.Content.NAME)) .addTask(new OrderNodeAfterTask("Move renameAsset action to proper location", "Move it to after editAsset", RepositoryConstants.CONFIG, "/modules/dam/apps/assets/subApps/browser/actionbar/sections/deletedAsset/groups/editActions/items/renameAsset", "editAsset"))