Skip to content

Commit 7b1a89e

Browse files
committed
#321 Can now list all supported properties
1 parent e1886af commit 7b1a89e

File tree

2 files changed

+45
-6
lines changed

2 files changed

+45
-6
lines changed

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

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,8 @@ class MarkLogicPlugin implements Plugin<Project> {
152152
project.task("mlCreateTransform", type: CreateTransformTask, group: devGroup, description: "Create a new transform in the modules transforms directory; use -PtransformName and -PtransformType to set the transform name and type (xqy, xsl, or sjs)")
153153
project.task("mlExportResources", type: ExportResourcesTask, group: devGroup, description: "Export resources based on a properties file specified via -PpropertiesFile, -Pprefix, or -Pregex; use -PincludeTypes to select resource types to export via a comma-delimited string; use -PexportPath to specify where to export resources to")
154154
project.task("mlPrepareRestApiDependencies", type: PrepareRestApiDependenciesTask, group: devGroup, dependsOn: project.configurations["mlRestApi"], description: "Downloads (if necessary) and unzips in the build directory all mlRestApi dependencies")
155+
project.task("mlPrintCommands", type: PrintCommandsTask, group: devGroup, description: "Print information about each command used by mlDeploy and mlUndeploy")
156+
project.task("mlPrintProperties", type: PrintPropertiesTask, group: devGroup, description: "Print all of the properties supported by ml-gradle")
155157
project.task("mlPrintTokens", type: PrintTokensTask, group: devGroup, description: "Print the customTokens map on the mlAppConfig object (typically for debugging purposes)")
156158
project.task("mlNewProject", type: NewProjectTask, group: devGroup, description: "Run a wizard for creating a new project, which includes running mlScaffold")
157159
project.task("mlNewAmp", type: NewAmpTask, group: devGroup, description: "Generate a new amp resource file. " + newResourceMessage)
@@ -253,9 +255,6 @@ class MarkLogicPlugin implements Plugin<Project> {
253255
String triggerGroup = "ml-gradle Trigger"
254256
project.task("mlDeployTriggers", type: DeployTriggersTask, group: triggerGroup, description: "Deploy each trigger, updating it if it exists, in the configuration directory")
255257

256-
String generalGroup = "ml-gradle General"
257-
project.task("mlPrintCommands", type: PrintCommandsTask, group: generalGroup, description: "Print information about each command used by mlDeploy and mlUndeploy")
258-
259258
String shellGroup = "ml-gradle Shell"
260259
project.task("mlShell", type: ShellTask, group: shellGroup, description: "Run groovysh with MarkLogic-specific support built in")
261260

@@ -320,14 +319,20 @@ class MarkLogicPlugin implements Plugin<Project> {
320319
}
321320

322321
void initializeAppDeployerObjects(Project project) {
323-
AdminConfig adminConfig = new DefaultAdminConfigFactory(new ProjectPropertySource(project)).newAdminConfig()
322+
DefaultAdminConfigFactory adminConfigFactory = new DefaultAdminConfigFactory(new ProjectPropertySource(project))
323+
project.extensions.add("mlAdminConfigFactory", adminConfigFactory)
324+
AdminConfig adminConfig = adminConfigFactory.newAdminConfig()
324325
project.extensions.add("mlAdminConfig", adminConfig)
325326

326327
ProjectPropertySource propertySource = new ProjectPropertySource(project);
327-
AppConfig appConfig = new DefaultAppConfigFactory(propertySource).newAppConfig()
328+
DefaultAppConfigFactory appConfigFactory = new DefaultAppConfigFactory(propertySource)
329+
project.extensions.add("mlAppConfigFactory", appConfigFactory)
330+
AppConfig appConfig = appConfigFactory.newAppConfig()
328331
project.extensions.add("mlAppConfig", appConfig)
329332

330-
ManageConfig manageConfig = new DefaultManageConfigFactory(new ProjectPropertySource(project)).newManageConfig()
333+
DefaultManageConfigFactory manageConfigFactory = new DefaultManageConfigFactory(new ProjectPropertySource(project))
334+
project.extensions.add("mlManageConfigFactory", manageConfigFactory)
335+
ManageConfig manageConfig = manageConfigFactory.newManageConfig()
331336
project.extensions.add("mlManageConfig", manageConfig)
332337

333338
ManageClient manageClient = new ManageClient(manageConfig)
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package com.marklogic.gradle.task
2+
3+
import com.marklogic.appdeployer.DefaultAppConfigFactory
4+
import com.marklogic.mgmt.DefaultManageConfigFactory
5+
import com.marklogic.mgmt.admin.DefaultAdminConfigFactory
6+
import org.gradle.api.tasks.TaskAction
7+
8+
class PrintPropertiesTask extends MarkLogicTask {
9+
10+
@TaskAction
11+
void printProperties() {
12+
DefaultManageConfigFactory manageConfigFactory = getProject().property("mlManageConfigFactory")
13+
println "\nManage server connection properties"
14+
for (String name : new TreeSet<>(manageConfigFactory.getPropertyConsumerMap().keySet())) {
15+
println " - " + name
16+
}
17+
18+
DefaultAdminConfigFactory adminConfigFactory = getProject().property("mlAdminConfigFactory")
19+
println "\nAdmin server connection properties"
20+
for (String name : new TreeSet<>(adminConfigFactory.getPropertyConsumerMap().keySet())) {
21+
println " - " + name
22+
}
23+
24+
DefaultAppConfigFactory appConfigFactory = getProject().property("mlAppConfigFactory")
25+
println "\nApplication properties"
26+
for (String name : new TreeSet<>(appConfigFactory.getPropertyConsumerMap().keySet())) {
27+
println " - " + name
28+
}
29+
30+
println "\nThe Manage server connection properties, Admin server connection properties, and " +
31+
"application properties are listed above, with each set in alphabetical order. \nFor a list of " +
32+
"all properties with documentation, see https://github.com/marklogic-community/ml-gradle/wiki/Property-reference ."
33+
}
34+
}

0 commit comments

Comments
 (0)