Skip to content

Commit 5158955

Browse files
author
Rob Rudin
committed
#162 Now using CommandMapBuilder from ml-app-deployer
1 parent 14c260f commit 5158955

File tree

2 files changed

+33
-206
lines changed

2 files changed

+33
-206
lines changed

src/main/groovy/com/marklogic/gradle/MarkLogicPlugin.groovy

Lines changed: 23 additions & 205 deletions
Original file line numberDiff line numberDiff line change
@@ -1,60 +1,11 @@
11
package com.marklogic.gradle
22

3-
import com.marklogic.appdeployer.command.clusters.ModifyLocalClusterCommand
4-
import com.marklogic.appdeployer.command.databases.DeployOtherDatabasesCommand
5-
import com.marklogic.appdeployer.command.forests.DeployCustomForestsCommand
6-
import com.marklogic.gradle.task.cluster.AddHostTask
7-
import com.marklogic.gradle.task.cluster.ModifyClusterTask
8-
import com.marklogic.gradle.task.cluster.RemoveHostTask
9-
import com.marklogic.gradle.task.databases.DeleteCollectionTask
10-
import com.marklogic.gradle.task.es.GenerateModelArtifactsTask
11-
import com.marklogic.gradle.task.forests.DeployCustomForestsTask
12-
import com.marklogic.gradle.task.groups.SetTraceEventsTask
13-
import com.marklogic.gradle.task.qconsole.ExportWorkspacesTask
14-
import com.marklogic.gradle.task.qconsole.ImportWorkspacesTask
15-
import com.marklogic.gradle.task.shell.ShellTask
16-
import com.marklogic.gradle.task.tasks.WaitForTaskServerTask
17-
import com.sun.jersey.core.spi.component.ProviderServices
18-
import org.gradle.api.Plugin
19-
import org.gradle.api.Project
20-
import org.slf4j.LoggerFactory
21-
223
import com.marklogic.appdeployer.AppConfig
234
import com.marklogic.appdeployer.AppDeployer
245
import com.marklogic.appdeployer.DefaultAppConfigFactory
256
import com.marklogic.appdeployer.command.Command
267
import com.marklogic.appdeployer.command.CommandContext
27-
import com.marklogic.appdeployer.command.alert.DeployAlertActionsCommand
28-
import com.marklogic.appdeployer.command.alert.DeployAlertConfigsCommand
29-
import com.marklogic.appdeployer.command.alert.DeployAlertRulesCommand
30-
import com.marklogic.appdeployer.command.appservers.DeployOtherServersCommand
31-
import com.marklogic.appdeployer.command.appservers.UpdateRestApiServersCommand
32-
import com.marklogic.appdeployer.command.cpf.DeployCpfConfigsCommand
33-
import com.marklogic.appdeployer.command.cpf.DeployDomainsCommand
34-
import com.marklogic.appdeployer.command.cpf.DeployPipelinesCommand
35-
import com.marklogic.appdeployer.command.databases.DeployContentDatabasesCommand
36-
import com.marklogic.appdeployer.command.databases.DeploySchemasDatabaseCommand
37-
import com.marklogic.appdeployer.command.databases.DeployTriggersDatabaseCommand
38-
import com.marklogic.appdeployer.command.flexrep.DeployConfigsCommand
39-
import com.marklogic.appdeployer.command.flexrep.DeployFlexrepCommand
40-
import com.marklogic.appdeployer.command.flexrep.DeployTargetsCommand
41-
import com.marklogic.appdeployer.command.forests.ConfigureForestReplicasCommand
42-
import com.marklogic.appdeployer.command.groups.DeployGroupsCommand
43-
import com.marklogic.appdeployer.command.mimetypes.DeployMimetypesCommand
44-
import com.marklogic.appdeployer.command.modules.LoadModulesCommand
45-
import com.marklogic.appdeployer.command.restapis.DeployRestApiServersCommand
46-
import com.marklogic.appdeployer.command.schemas.LoadSchemasCommand
47-
import com.marklogic.appdeployer.command.security.DeployAmpsCommand
48-
import com.marklogic.appdeployer.command.security.DeployCertificateAuthoritiesCommand
49-
import com.marklogic.appdeployer.command.security.DeployCertificateTemplatesCommand
50-
import com.marklogic.appdeployer.command.security.DeployExternalSecurityCommand
51-
import com.marklogic.appdeployer.command.security.DeployPrivilegesCommand
52-
import com.marklogic.appdeployer.command.security.DeployProtectedCollectionsCommand
53-
import com.marklogic.appdeployer.command.security.DeployRolesCommand
54-
import com.marklogic.appdeployer.command.security.DeployUsersCommand
55-
import com.marklogic.appdeployer.command.tasks.DeployScheduledTasksCommand
56-
import com.marklogic.appdeployer.command.triggers.DeployTriggersCommand
57-
import com.marklogic.appdeployer.command.viewschemas.DeployViewSchemasCommand
8+
import com.marklogic.appdeployer.command.CommandMapBuilder
589
import com.marklogic.appdeployer.impl.SimpleAppDeployer
5910
import com.marklogic.gradle.task.DeleteModuleTimestampsFileTask
6011
import com.marklogic.gradle.task.DeployAppTask
@@ -64,60 +15,32 @@ import com.marklogic.gradle.task.admin.InitTask
6415
import com.marklogic.gradle.task.admin.InstallAdminTask
6516
import com.marklogic.gradle.task.alert.DeleteAllAlertConfigsTask
6617
import com.marklogic.gradle.task.alert.DeployAlertingTask
67-
import com.marklogic.gradle.task.client.CreateResourceTask
68-
import com.marklogic.gradle.task.client.CreateTransformTask
69-
import com.marklogic.gradle.task.client.LoadModulesTask
70-
import com.marklogic.gradle.task.client.PrepareRestApiDependenciesTask
71-
import com.marklogic.gradle.task.client.WatchTask
72-
import com.marklogic.gradle.task.cluster.DisableSslFipsTask
73-
import com.marklogic.gradle.task.cluster.EnableSslFipsTask
74-
import com.marklogic.gradle.task.cluster.RestartClusterTask
18+
import com.marklogic.gradle.task.client.*
19+
import com.marklogic.gradle.task.cluster.*
7520
import com.marklogic.gradle.task.cpf.DeployCpfTask
7621
import com.marklogic.gradle.task.cpf.LoadDefaultPipelinesTask
77-
import com.marklogic.gradle.task.databases.ClearContentDatabaseTask
78-
import com.marklogic.gradle.task.databases.ClearModulesDatabaseTask
79-
import com.marklogic.gradle.task.databases.ClearSchemasDatabaseTask
80-
import com.marklogic.gradle.task.databases.ClearTriggersDatabaseTask
81-
import com.marklogic.gradle.task.databases.DeployDatabasesTask
82-
import com.marklogic.gradle.task.databases.MergeContentDatabaseTask
83-
import com.marklogic.gradle.task.databases.MergeDatabaseTask
84-
import com.marklogic.gradle.task.databases.ReindexContentDatabaseTask
85-
import com.marklogic.gradle.task.databases.ReindexDatabaseTask
86-
import com.marklogic.gradle.task.databases.SetContentUpdatesAllowedTask
87-
import com.marklogic.gradle.task.flexrep.DeleteAllFlexrepConfigsTask
88-
import com.marklogic.gradle.task.flexrep.DeployFlexrepAtPathTask
89-
import com.marklogic.gradle.task.flexrep.DeployFlexrepTask
90-
import com.marklogic.gradle.task.flexrep.DisableAllFlexrepTargetsTask
91-
import com.marklogic.gradle.task.flexrep.EnableAllFlexrepTargetsTask
22+
import com.marklogic.gradle.task.databases.*
23+
import com.marklogic.gradle.task.es.GenerateModelArtifactsTask
24+
import com.marklogic.gradle.task.flexrep.*
9225
import com.marklogic.gradle.task.forests.ConfigureForestReplicasTask
9326
import com.marklogic.gradle.task.forests.DeleteForestReplicasTask
27+
import com.marklogic.gradle.task.forests.DeployCustomForestsTask
9428
import com.marklogic.gradle.task.forests.DeployForestReplicasTask
9529
import com.marklogic.gradle.task.groups.DeployGroupsTask
30+
import com.marklogic.gradle.task.groups.SetTraceEventsTask
9631
import com.marklogic.gradle.task.mimetypes.DeployMimetypesTask
32+
import com.marklogic.gradle.task.qconsole.ExportWorkspacesTask
33+
import com.marklogic.gradle.task.qconsole.ImportWorkspacesTask
9734
import com.marklogic.gradle.task.scaffold.GenerateScaffoldTask
9835
import com.marklogic.gradle.task.schemas.LoadSchemasTask
99-
import com.marklogic.gradle.task.security.DeployAmpsTask
100-
import com.marklogic.gradle.task.security.DeployCertificateAuthoritiesTask
101-
import com.marklogic.gradle.task.security.DeployCertificateTemplatesTask
102-
import com.marklogic.gradle.task.security.DeployExternalSecurityTask
103-
import com.marklogic.gradle.task.security.DeployPrivilegesTask
104-
import com.marklogic.gradle.task.security.DeployProtectedCollectionsTask
105-
import com.marklogic.gradle.task.security.DeployRolesTask
106-
import com.marklogic.gradle.task.security.DeploySecurityTask
107-
import com.marklogic.gradle.task.security.DeployUsersTask
108-
import com.marklogic.gradle.task.security.UndeployAmpsTask
109-
import com.marklogic.gradle.task.security.UndeployCertificateTemplatesTask
110-
import com.marklogic.gradle.task.security.UndeployExternalSecurityTask
111-
import com.marklogic.gradle.task.security.UndeployPrivilegesTask
112-
import com.marklogic.gradle.task.security.UndeployProtectedCollectionsTask
113-
import com.marklogic.gradle.task.security.UndeployRolesTask
114-
import com.marklogic.gradle.task.security.UndeploySecurityTask
115-
import com.marklogic.gradle.task.security.UndeployUsersTask
36+
import com.marklogic.gradle.task.security.*
11637
import com.marklogic.gradle.task.servers.DeployServersTask
11738
import com.marklogic.gradle.task.servers.UndeployOtherServersTask
39+
import com.marklogic.gradle.task.shell.ShellTask
11840
import com.marklogic.gradle.task.tasks.DeleteAllTasksTask
11941
import com.marklogic.gradle.task.tasks.DeployTasksTask
12042
import com.marklogic.gradle.task.tasks.UndeployTasksTask
43+
import com.marklogic.gradle.task.tasks.WaitForTaskServerTask
12144
import com.marklogic.gradle.task.trigger.DeployTriggersTask
12245
import com.marklogic.gradle.task.viewschemas.DeployViewSchemasTask
12346
import com.marklogic.mgmt.DefaultManageConfigFactory
@@ -126,6 +49,10 @@ import com.marklogic.mgmt.ManageConfig
12649
import com.marklogic.mgmt.admin.AdminConfig
12750
import com.marklogic.mgmt.admin.AdminManager
12851
import com.marklogic.mgmt.admin.DefaultAdminConfigFactory
52+
import com.sun.jersey.core.spi.component.ProviderServices
53+
import org.gradle.api.Plugin
54+
import org.gradle.api.Project
55+
import org.slf4j.LoggerFactory
12956

13057
import java.util.logging.Level
13158
import java.util.logging.Logger
@@ -306,121 +233,12 @@ class MarkLogicPlugin implements Plugin<Project> {
306233
* ext block.
307234
*/
308235
AppDeployer newAppDeployer(Project project, CommandContext context) {
309-
List<Command> commands = new ArrayList<Command>()
310-
311-
// Security
312-
List<Command> securityCommands = new ArrayList<Command>()
313-
securityCommands.add(new DeployRolesCommand())
314-
securityCommands.add(new DeployUsersCommand())
315-
securityCommands.add(new DeployAmpsCommand())
316-
securityCommands.add(new DeployCertificateTemplatesCommand())
317-
securityCommands.add(new DeployCertificateAuthoritiesCommand())
318-
securityCommands.add(new DeployExternalSecurityCommand())
319-
securityCommands.add(new DeployPrivilegesCommand())
320-
securityCommands.add(new DeployProtectedCollectionsCommand())
321-
project.extensions.add("mlSecurityCommands", securityCommands)
322-
commands.addAll(securityCommands)
323-
324-
// Cluster
325-
List<Command> clusterCommands = new ArrayList<Command>()
326-
clusterCommands.add(new ModifyLocalClusterCommand())
327-
project.extensions.add("mlClusterCommands", clusterCommands)
328-
commands.addAll(clusterCommands)
329-
330-
// Databases
331-
List<Command> dbCommands = new ArrayList<Command>()
332-
dbCommands.add(new DeployContentDatabasesCommand())
333-
dbCommands.add(new DeployTriggersDatabaseCommand())
334-
dbCommands.add(new DeploySchemasDatabaseCommand())
335-
dbCommands.add(new DeployOtherDatabasesCommand())
336-
project.extensions.add("mlDatabaseCommands", dbCommands)
337-
commands.addAll(dbCommands)
338-
339-
// Schemas
340-
LoadSchemasCommand lsc = new LoadSchemasCommand()
341-
project.extensions.add("mlLoadSchemasCommand", lsc)
342-
commands.add(lsc)
343-
344-
// REST API instance creation
345-
commands.add(new DeployRestApiServersCommand())
346-
347-
// App servers
348-
List<Command> serverCommands = new ArrayList<Command>()
349-
serverCommands.add(new DeployOtherServersCommand())
350-
serverCommands.add(new UpdateRestApiServersCommand())
351-
project.extensions.add("mlServerCommands", serverCommands)
352-
commands.addAll(serverCommands)
353-
354-
// Modules
355-
LoadModulesCommand lmc = new LoadModulesCommand()
356-
project.extensions.add("mlLoadModulesCommand", lmc)
357-
commands.add(lmc)
358-
359-
// Alerting
360-
List<Command> alertCommands = new ArrayList<Command>()
361-
alertCommands.add(new DeployAlertConfigsCommand())
362-
alertCommands.add(new DeployAlertActionsCommand())
363-
alertCommands.add(new DeployAlertRulesCommand())
364-
project.extensions.add("mlAlertCommands", alertCommands)
365-
commands.addAll(alertCommands)
366-
367-
// CPF
368-
List<Command> cpfCommands = new ArrayList<Command>()
369-
cpfCommands.add(new DeployCpfConfigsCommand())
370-
cpfCommands.add(new DeployDomainsCommand())
371-
cpfCommands.add(new DeployPipelinesCommand())
372-
project.extensions.add("mlCpfCommands", cpfCommands)
373-
commands.addAll(cpfCommands)
374-
375-
// Flexrep
376-
List<Command> flexrepCommands = new ArrayList<Command>()
377-
flexrepCommands.add(new DeployConfigsCommand())
378-
flexrepCommands.add(new DeployTargetsCommand())
379-
flexrepCommands.add(new DeployFlexrepCommand())
380-
project.extensions.add("mlFlexrepCommands", flexrepCommands)
381-
commands.addAll(flexrepCommands)
382-
383-
// Groups
384-
List<Command> groupCommands = new ArrayList<Command>()
385-
groupCommands.add(new DeployGroupsCommand())
386-
project.extensions.add("mlGroupCommands", groupCommands)
387-
commands.addAll(groupCommands)
388-
389-
List<Command> mimetypeCommands = new ArrayList<Command>()
390-
mimetypeCommands.add(new DeployMimetypesCommand())
391-
project.extensions.add("mlMimetypeCommands", mimetypeCommands)
392-
commands.addAll(mimetypeCommands)
393-
394-
// Forests
395-
List<Command> forestCommands = new ArrayList<Command>()
396-
forestCommands.add(new DeployCustomForestsCommand())
397-
project.extensions.add("mlForestCommands", forestCommands)
398-
commands.addAll(forestCommands)
399-
400-
// Forest replicas
401-
List<Command> replicaCommands = new ArrayList<Command>()
402-
replicaCommands.add(new ConfigureForestReplicasCommand())
403-
project.extensions.add("mlForestReplicaCommands", replicaCommands)
404-
commands.addAll(replicaCommands)
405-
406-
// Tasks
407-
List<Command> taskCommands = new ArrayList<Command>()
408-
taskCommands.add(new DeployScheduledTasksCommand())
409-
project.extensions.add("mlTaskCommands", taskCommands)
410-
commands.addAll(taskCommands)
411-
412-
// Triggers
413-
List<Command> triggerCommands = new ArrayList<Command>()
414-
triggerCommands.add(new DeployTriggersCommand())
415-
project.extensions.add("mlTriggerCommands", triggerCommands)
416-
commands.addAll(triggerCommands)
417-
418-
// SQL Views
419-
List<Command> viewCommands = new ArrayList<Command>()
420-
viewCommands.add(new DeployViewSchemasCommand())
421-
project.extensions.add("mlViewCommands", viewCommands)
422-
commands.addAll(viewCommands)
423-
236+
Map<String, List<Command>> commandMap = new CommandMapBuilder().buildCommandMap();
237+
List<Command> commands = new ArrayList<>();
238+
for (String name : commandMap.keySet()) {
239+
project.extensions.add(name, commandMap.get(name));
240+
commands.addAll(commandMap.get(name));
241+
}
424242
SimpleAppDeployer deployer = new SimpleAppDeployer(context.getManageClient(), context.getAdminManager())
425243
deployer.setCommands(commands)
426244
return deployer

src/main/groovy/com/marklogic/gradle/task/client/WatchTask.groovy

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.marklogic.gradle.task.client
22

3+
import com.marklogic.appdeployer.AppDeployer
4+
import com.marklogic.appdeployer.impl.SimpleAppDeployer
35
import org.gradle.api.tasks.TaskAction
46

57
import com.marklogic.appdeployer.command.modules.LoadModulesCommand
@@ -22,7 +24,14 @@ class WatchTask extends MarkLogicTask {
2224

2325
@TaskAction
2426
void watchModules() {
25-
LoadModulesCommand command = getProject().property("mlLoadModulesCommand")
27+
LoadModulesCommand command = null
28+
AppDeployer d = getAppDeployer()
29+
if (d instanceof SimpleAppDeployer) {
30+
command = d.getCommand("LoadModulesCommand")
31+
}
32+
if (command == null) {
33+
command = new LoadModulesCommand()
34+
}
2635

2736
ModulesLoader loader = command.getModulesLoader()
2837
if (loader == null) {

0 commit comments

Comments
 (0)