1 |
|
|
2 |
|
|
3 |
|
|
4 |
|
|
5 |
|
|
6 |
|
|
7 |
|
|
8 |
|
|
9 |
|
|
10 |
|
|
11 |
|
|
12 |
|
|
13 |
|
|
14 |
|
|
15 |
|
|
16 |
|
|
17 |
|
|
18 |
|
|
19 |
|
|
20 |
|
|
21 |
|
|
22 |
|
|
23 |
|
|
24 |
|
|
25 |
|
|
26 |
|
|
27 |
|
|
28 |
|
|
29 |
|
|
30 |
|
|
31 |
|
|
32 |
|
|
33 |
|
|
34 |
|
package info.magnolia.module.googlesitemap.setup; |
35 |
|
|
36 |
|
import info.magnolia.cms.security.Permission; |
37 |
|
import info.magnolia.jcr.util.NodeTypes; |
38 |
|
import info.magnolia.module.DefaultModuleVersionHandler; |
39 |
|
import info.magnolia.module.InstallContext; |
40 |
|
import info.magnolia.module.delta.AddPermissionTask; |
41 |
|
import info.magnolia.module.delta.ArrayDelegateTask; |
42 |
|
import info.magnolia.module.delta.BootstrapSingleModuleResource; |
43 |
|
import info.magnolia.module.delta.BootstrapSingleResourceAndOrderBefore; |
44 |
|
import info.magnolia.module.delta.CheckAndModifyPropertyValueTask; |
45 |
|
import info.magnolia.module.delta.DeltaBuilder; |
46 |
|
import info.magnolia.module.delta.NewPropertyTask; |
47 |
|
import info.magnolia.module.delta.NodeExistsDelegateTask; |
48 |
|
import info.magnolia.module.delta.OrderNodeAfterTask; |
49 |
|
import info.magnolia.module.delta.OrderNodeBeforeTask; |
50 |
|
import info.magnolia.module.delta.PartialBootstrapTask; |
51 |
|
import info.magnolia.module.delta.RemoveNodeTask; |
52 |
|
import info.magnolia.module.delta.RemovePropertyTask; |
53 |
|
import info.magnolia.module.delta.SetPropertyTask; |
54 |
|
import info.magnolia.module.delta.SetupModuleRepositoriesTask; |
55 |
|
import info.magnolia.module.delta.Task; |
56 |
|
import info.magnolia.module.googlesitemap.GoogleSiteMapConfiguration; |
57 |
|
import info.magnolia.module.googlesitemap.app.field.transformer.SiteMapTransformer; |
58 |
|
import info.magnolia.module.googlesitemap.app.subapp.sitemapdetail.contentviews.formatter.FolderNameColumnFormatter; |
59 |
|
import info.magnolia.module.googlesitemap.setup.for2_1.Register21NodeTypeTask; |
60 |
|
import info.magnolia.module.googlesitemap.setup.for2_1.RenameSiteMapeSitePagesPropertyName; |
61 |
|
import info.magnolia.module.googlesitemap.setup.for2_1.UpdatePropertyNamesAndNodeStructure; |
62 |
|
import info.magnolia.module.googlesitemap.setup.migration.Removei18nKeysInSiteMapMigrationTask; |
63 |
|
import info.magnolia.module.googlesitemap.setup.migration.SiteMapDefinitionMigrationTask; |
64 |
|
import info.magnolia.module.googlesitemap.setup.migration.SiteMapDialogMigrationTask; |
65 |
|
import info.magnolia.module.inplacetemplating.setup.TemplatesInstallTask; |
66 |
|
import info.magnolia.repository.RepositoryConstants; |
67 |
|
import info.magnolia.ui.contentapp.ContentApp; |
68 |
|
import info.magnolia.ui.contentapp.setup.for5_3.ContentAppMigrationTask; |
69 |
|
import info.magnolia.ui.framework.setup.AddIsPublishedRuleToAllDeactivateActionsTask; |
70 |
|
import info.magnolia.ui.framework.setup.SetWritePermissionForActionsTask; |
71 |
|
|
72 |
|
import java.util.ArrayList; |
73 |
|
import java.util.Arrays; |
74 |
|
import java.util.List; |
75 |
|
|
76 |
|
|
77 |
|
|
78 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (14) |
Complexity: 2 |
Complexity Density: 0.17 |
|
79 |
|
public class GoogleSiteMapVersionHandler extends DefaultModuleVersionHandler { |
80 |
|
|
81 |
|
protected static final String GOOGLESITEMAP_APP_BROWSER_ACTIONS = "/modules/google-sitemap/apps/siteMaps/subApps/browser/actions/"; |
82 |
|
protected static final String GOOGLESITEMAP_APP_PAGES_ACTIONS = "/modules/google-sitemap/apps/siteMaps/subApps/pages/actions/"; |
83 |
|
protected static final String GOOGLESITEMAP_APP_VIRTUALURI_ACTIONS = "/modules/google-sitemap/apps/siteMaps/subApps/virtualURI/actions/"; |
84 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (6) |
Complexity: 1 |
Complexity Density: 0.17 |
|
85 |
4 |
public GoogleSiteMapVersionHandler() {... |
86 |
4 |
register(DeltaBuilder.update("1.2.1", "") |
87 |
|
.addTask(new RemoveNodeTask("Obsolete folder: templates", "Templates folder has to be removed", "config", "/modules/google-sitemap/templates")) |
88 |
|
.addTask(new RemoveNodeTask("Obsolete folder: dialog", "Dialogs folder has to be removed", "config", "/modules/google-sitemap/dialogs")) |
89 |
|
.addTask(new RemoveNodeTask("Obsolete SiteMap site sample definition", "", "website", "google-sitemap")) |
90 |
|
.addTask(new BootstrapSingleModuleResource("SiteMap new Config", "Setup Config", "config.modules.google-sitemap.config.xml")) |
91 |
|
.addTask(new BootstrapSingleModuleResource("SiteMap new Template", "Setup Template", "config.modules.google-sitemap.templates.xml"))); |
92 |
|
|
93 |
4 |
register(DeltaBuilder.update("2.0", "") |
94 |
|
.addTask(new SiteMapDefinitionMigrationTask("Migrate M4.5 site map definition into the new App", "", RepositoryConstants.WEBSITE, "/")) |
95 |
|
.addTask(new SiteMapDialogMigrationTask("Migrate M4.5 dialog definition", "Create the new M5 dialog definition. Add actions, tabs and fields definition", "google-sitemap")) |
96 |
|
.addTask(new BootstrapSingleResourceAndOrderBefore("Bootstrap tab", "Bootstrap site map properties tab", |
97 |
|
"/mgnl-bootstrap/google-sitemap/dialogs/config.modules.google-sitemap.dialogs.components.content.siteComponentTab.form.tabs.siteMap.xml", "tabSites")) |
98 |
|
.addTask(new BootstrapSingleModuleResource("SiteMap app", "Add SiteMap app", "app/config.modules.google-sitemap.apps.xml")) |
99 |
|
.addTask(new BootstrapSingleModuleResource("SiteMap app App Launcher", "Add SiteMap app to App Launcher", "app/config.modules.ui-admincentral.config.appLauncherLayout.groups.manage.apps.siteMaps.xml")) |
100 |
|
.addTask(new BootstrapSingleModuleResource("Field Types", "Install new field types", "fieldtypes/config.modules.google-sitemap.fieldTypes.xml")) |
101 |
|
.addTask(new BootstrapSingleModuleResource("Repository Mapping", "Add Google SiteMap worksapce mapping", "config/config.server.URI2RepositoryMapping.mappings.sitemaps.xml")) |
102 |
|
.addTask(new BootstrapSingleModuleResource("Virtual URI Mapping", "Add Google SiteMap virtual URI mapping", "virtualurimappings/config.modules.google-sitemap.virtualURIMapping.xml")) |
103 |
|
.addTask(new SetupModuleRepositoriesTask()) |
104 |
|
.addTask(new AddPermissionTask("Anonymous permissions for the new workspace", "", "anonymous", "googleSitemaps", "/", Permission.READ, true)) |
105 |
|
|
106 |
|
.addTask(new NewPropertyTask("Add default value transformer", "Set a transformer that display the default field value in case the stored value is null", RepositoryConstants.CONFIG, "/modules/google-sitemap/dialogs/generic/controls/googleSiteMapTab/form/tabs/tabGoogleSitemapProps/fields/googleSitemapPriority", "transformerClass", SiteMapTransformer.class.getName())) |
107 |
|
.addTask(new NewPropertyTask("Add default value transformer", "Set a transformer that display the default field value in case the stored value is null", RepositoryConstants.CONFIG, "/modules/google-sitemap/dialogs/generic/controls/googleSiteMapTab/form/tabs/tabGoogleSitemapProps/fields/googleSitemapChangefreq", "transformerClass", SiteMapTransformer.class.getName())) |
108 |
|
.addTask(new NewPropertyTask("Add default value transformer", "Set a transformer that display the default field value in case the stored value is null", RepositoryConstants.CONFIG, "/modules/google-sitemap/dialogs/generic/controls/googleVirtualUriMapTab/form/tabs/tabGoogleSitemapProps/fields/googleSitemapPriority", "transformerClass", SiteMapTransformer.class.getName())) |
109 |
|
.addTask(new NewPropertyTask("Add default value transformer", "Set a transformer that display the default field value in case the stored value is null", RepositoryConstants.CONFIG, "/modules/google-sitemap/dialogs/generic/controls/googleVirtualUriMapTab/form/tabs/tabGoogleSitemapProps/fields/googleSitemapChangefreq", "transformerClass", SiteMapTransformer.class.getName())) |
110 |
|
|
111 |
|
.addTask(new NodeExistsDelegateTask("Remove area definition from the pages templates", "Remove areas definition in /modules/google-sitemap/templates/pages/siteMapsConfiguration/areas", RepositoryConstants.CONFIG, "/modules/google-sitemap/templates/pages/siteMapsConfiguration/areas", |
112 |
|
new RemoveNodeTask("", "", RepositoryConstants.CONFIG, "/modules/google-sitemap/templates/pages/siteMapsConfiguration/areas"))) |
113 |
|
.addTask(new NodeExistsDelegateTask("Remove components definition from templates", "Remove areas definition in /modules/google-sitemap/templates/components", RepositoryConstants.CONFIG, "/modules/google-sitemap/templates/components", |
114 |
|
new RemoveNodeTask("", "", RepositoryConstants.CONFIG, "/modules/google-sitemap/templates/components"))) |
115 |
|
|
116 |
|
.addTask(new Removei18nKeysInSiteMapMigrationTask("google-sitemap", "Remove M4.5 i18n support")) |
117 |
|
.addTask(new NodeExistsDelegateTask("Reorder Sitemaps in MANAGE group", "This reorders the Sitemaps app before Configuration in the Manage group of the applauncher.", RepositoryConstants.CONFIG, "/modules/ui-admincentral/config/appLauncherLayout/groups/manage/apps/configuration", |
118 |
|
new OrderNodeBeforeTask("", "", RepositoryConstants.CONFIG, "/modules/ui-admincentral/config/appLauncherLayout/groups/manage/apps/siteMaps", "configuration"))) |
119 |
|
.addTask(new CheckAndModifyPropertyValueTask("Set Page template not visible", "", RepositoryConstants.CONFIG, "/modules/google-sitemap/templates/pages/siteMapsConfiguration", "visible", "true", "false"))); |
120 |
|
|
121 |
4 |
register(DeltaBuilder.update("2.0.1", "") |
122 |
|
.addTask(new RemoveNodeTask("Remove dialog", "Remove obsolete dialog.", RepositoryConstants.CONFIG, "/modules/google-sitemap/dialogs/pages")) |
123 |
|
.addTask(new ArrayDelegateTask("Rename property", "Rename property [workspace] to [targetWorkspace].", |
124 |
|
new RemovePropertyTask("", "", RepositoryConstants.CONFIG, "/modules/google-sitemap/dialogs/components/content/siteComponentTab/form/tabs/tabSites/fields/sites/field", "workspace"), |
125 |
|
new SetPropertyTask("", RepositoryConstants.CONFIG, "/modules/google-sitemap/dialogs/components/content/siteComponentTab/form/tabs/tabSites/fields/sites/field", "targetWorkspace", RepositoryConstants.WEBSITE))) |
126 |
|
.addTask(new RemovePropertyTask("Remove unused property", "Remove unused property called identifier.", RepositoryConstants.CONFIG, "/modules/google-sitemap/dialogs/components/content/siteComponentTab/form/tabs/tabSites/fields/sites/field", "identifier")) |
127 |
|
.addTask(new RemovePropertyTask("Remove unused property", "Remove unused property called dialog.", RepositoryConstants.CONFIG, "/modules/google-sitemap/templates/pages/siteMapsConfiguration", "dialog")) |
128 |
|
.addTask(new RemovePropertyTask("Remove unused property", "Remove unused property called sitemapType.", RepositoryConstants.CONFIG, "/modules/google-sitemap/templates/pages/siteMapsConfiguration", "sitemapType")) |
129 |
|
); |
130 |
4 |
register(DeltaBuilder.update("2.1", "") |
131 |
|
.addTask(new ContentAppMigrationTask("/modules/google-sitemap"))); |
132 |
|
|
133 |
4 |
register(DeltaBuilder.update("2.2", "") |
134 |
|
.addTask(new Register21NodeTypeTask("Register new nodeType definition", "", GoogleSiteMapConfiguration.WORKSPACE, Arrays.asList(NodeTypes.Page.NAME))) |
135 |
|
.addTask(new RenameSiteMapeSitePagesPropertyName("Rename Sitemap Website properties", "", RepositoryConstants.WEBSITE)) |
136 |
|
.addTask(new UpdatePropertyNamesAndNodeStructure("Rename Sitemap properties", "")) |
137 |
|
.addTask(new NodeExistsDelegateTask("Bootstrap new siteMap dialogs definition", "", RepositoryConstants.CONFIG, "/modules/google-sitemap/dialogs/components/content/siteComponentTab/form/tabs/siteMap", |
138 |
|
new ArrayDelegateTask("", |
139 |
|
new RemoveNodeTask("", "/modules/google-sitemap/dialogs/components/content/siteComponentTab/form/tabs/siteMap"), |
140 |
|
new BootstrapSingleModuleResource("", "", "dialogs/config.modules.google-sitemap.dialogs.components.content.siteComponentTab.form.tabs.siteMap.xml") |
141 |
|
))) |
142 |
|
.addTask(new NodeExistsDelegateTask("Bootstrap new tabSites dialogs definition", "", RepositoryConstants.CONFIG, "/modules/google-sitemap/dialogs/components/content/siteComponentTab/form/tabs/tabSites", |
143 |
|
new ArrayDelegateTask("", |
144 |
|
new RemoveNodeTask("", "/modules/google-sitemap/dialogs/components/content/siteComponentTab/form/tabs/tabSites"), |
145 |
|
new BootstrapSingleModuleResource("", "", "dialogs/config.modules.google-sitemap.dialogs.components.content.siteComponentTab.form.tabs.tabSites.xml") |
146 |
|
))) |
147 |
|
.addTask(new NodeExistsDelegateTask("Bootstrap new generic dialogs definition", "", RepositoryConstants.CONFIG, "/modules/google-sitemap/dialogs/generic", |
148 |
|
new ArrayDelegateTask("", |
149 |
|
new RemoveNodeTask("", "/modules/google-sitemap/dialogs/generic"), |
150 |
|
new BootstrapSingleModuleResource("", "", "dialogs/config.modules.google-sitemap.dialogs.generic.xml") |
151 |
|
))) |
152 |
|
.addTask(new BootstrapSingleModuleResource("Bootstrap new tabDefaultValue dialogs definition", "", "dialogs/config.modules.google-sitemap.dialogs.components.content.siteComponentTab.form.tabs.tabDefaultValue.xml")) |
153 |
|
.addTask(new OrderNodeAfterTask("order tabs", "/modules/google-sitemap/dialogs/components/content/siteComponentTab/form/tabs/tabSites", "siteMap")) |
154 |
|
.addTask(new OrderNodeAfterTask("order tabs", "/modules/google-sitemap/dialogs/components/content/siteComponentTab/form/tabs/tabDefaultValue", "tabSites")) |
155 |
|
.addTask(new CheckAndModifyPropertyValueTask("/modules/google-sitemap/apps/siteMaps/subApps/browser/workbench/contentViews/list/columns/name", "propertyName", "displayName", "mgnl:googleSiteMapDisplayName")) |
156 |
|
.addTask(new CheckAndModifyPropertyValueTask("/modules/google-sitemap/apps/siteMaps/subApps/browser/workbench/contentViews/list/columns/name", "formatterClass", "info.magnolia.module.googlesitemap.app.subapp.sitemapdetail.formatter.FolderNameColumnFormatter", FolderNameColumnFormatter.class.getName())) |
157 |
|
.addTask(new CheckAndModifyPropertyValueTask("/modules/google-sitemap/apps/siteMaps", "appClass", "info.magnolia.module.googlesitemap.app.GoogleSiteMapApp", ContentApp.class.getName())) |
158 |
|
|
159 |
|
.addTask(new NodeExistsDelegateTask("Bootstrap new sub app Pages definition", "", RepositoryConstants.CONFIG, "/modules/google-sitemap/apps/siteMaps/subApps/pages", |
160 |
|
new ArrayDelegateTask("", |
161 |
|
new RemoveNodeTask("", "/modules/google-sitemap/apps/siteMaps/subApps/pages"), |
162 |
|
new PartialBootstrapTask("", "/mgnl-bootstrap/google-sitemap/app/config.modules.google-sitemap.apps.xml", "/apps/siteMaps/subApps/pages"), |
163 |
|
new OrderNodeAfterTask("order tabs", "/modules/google-sitemap/apps/siteMaps/subApps/pages", "browser") |
164 |
|
))) |
165 |
|
|
166 |
|
.addTask(new NodeExistsDelegateTask("Bootstrap new sub app VirtualUri definition", "", RepositoryConstants.CONFIG, "/modules/google-sitemap/apps/siteMaps/subApps/virtualURI", |
167 |
|
new ArrayDelegateTask("", |
168 |
|
new RemoveNodeTask("", "/modules/google-sitemap/apps/siteMaps/subApps/virtualURI"), |
169 |
|
new PartialBootstrapTask("", "/mgnl-bootstrap/google-sitemap/app/config.modules.google-sitemap.apps.xml", "/apps/siteMaps/subApps/virtualURI"), |
170 |
|
new OrderNodeAfterTask("order tabs", "/modules/google-sitemap/apps/siteMaps/subApps/virtualURI", "pages") |
171 |
|
))) |
172 |
|
.addTask(new SetWritePermissionForActionsTask(GOOGLESITEMAP_APP_BROWSER_ACTIONS, new String[] { "addFolder", "editFolder", "addSiteMap", "delete", "editSiteMap", "import", "restorePreviousVersion", "confirmDeleteSiteMap", "editSiteEntries", "editVirtualUris", "activate", "deactivate", "activateDeleted" })) |
173 |
|
.addTask(new SetWritePermissionForActionsTask(GOOGLESITEMAP_APP_PAGES_ACTIONS, new String[] { "editSitemapEntry" })) |
174 |
|
.addTask(new SetWritePermissionForActionsTask(GOOGLESITEMAP_APP_VIRTUALURI_ACTIONS, new String[] { "editSitemapEntry" })) |
175 |
|
.addTask(new BootstrapSingleModuleResource("Bootstrap new config values", "", "config.modules.google-sitemap.config.xml")) |
176 |
|
.addTask(new PartialBootstrapTask("", "/mgnl-bootstrap/google-sitemap/fieldtypes/config.modules.google-sitemap.fieldTypes.xml", "/fieldTypes/siteMapSelect"))); |
177 |
|
|
178 |
4 |
register(DeltaBuilder.update("2.2.2", "") |
179 |
|
.addTask(new AddIsPublishedRuleToAllDeactivateActionsTask("", "/modules/google-sitemap/apps/")) |
180 |
|
); |
181 |
|
} |
182 |
|
|
183 |
|
|
184 |
|
|
185 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (6) |
Complexity: 1 |
Complexity Density: 0.17 |
|
186 |
1 |
@Override... |
187 |
|
protected List<Task> getExtraInstallTasks(InstallContext ctx) { |
188 |
1 |
final List<Task> tasks = new ArrayList<Task>(); |
189 |
1 |
tasks.add(new TemplatesInstallTask("/sitemap/.*\\.ftl", true)); |
190 |
1 |
tasks.add(new AddPermissionTask("Anonymous permissions for the new workspace", "", "anonymous", "googleSitemaps", "/", Permission.READ, true)); |
191 |
1 |
tasks.add(new NodeExistsDelegateTask("Reorder Sitemaps in MANAGE group", "This reorders the Sitemaps app before Configuration in the Manage group of the applauncher.", RepositoryConstants.CONFIG, "/modules/ui-admincentral/config/appLauncherLayout/groups/manage/apps/configuration", |
192 |
|
new OrderNodeBeforeTask("", "", RepositoryConstants.CONFIG, "/modules/ui-admincentral/config/appLauncherLayout/groups/manage/apps/siteMaps", "configuration"))); |
193 |
1 |
tasks.add(new Register21NodeTypeTask("Register new nodeType definition", "", GoogleSiteMapConfiguration.WORKSPACE, Arrays.asList(NodeTypes.Page.NAME))); |
194 |
1 |
return tasks; |
195 |
|
} |
196 |
|
} |