Skip to content

Commit 3258639

Browse files
author
Rob Rudin
committed
#149 Not setting default params when doing a COPY
1 parent 4ec255e commit 3258639

File tree

2 files changed

+82
-58
lines changed

2 files changed

+82
-58
lines changed

examples/mlcp-project/build.gradle

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ buildscript {
1010
mavenLocal()
1111
}
1212
dependencies {
13-
classpath "com.marklogic:ml-gradle:2.4.0"
13+
classpath "com.marklogic:ml-gradle:2.5.0"
1414
}
1515
}
1616

@@ -119,3 +119,21 @@ task exportSampleData(type: com.marklogic.gradle.task.MlcpTask) {
119119
output_file_path = "data/export"
120120
collection_filter = "sample-import"
121121
}
122+
123+
/**
124+
* Example of a COPY task. In this case, MlcpTask won't populate host/port/username/password, since the arguments have
125+
* different names for a COPY, and it's not clear what their values should default to.
126+
*/
127+
task copySampleData(type: com.marklogic.gradle.task.MlcpTask) {
128+
description = "Copy the sample data from the app-specific database to Documents"
129+
classpath = configurations.mlcp
130+
command = "COPY"
131+
input_host = mlHost
132+
input_port = Integer.parseInt(mlRestPort)
133+
input_username = mlUsername
134+
input_password = mlPassword
135+
output_host = mlHost
136+
output_port = 8000
137+
output_username = mlUsername
138+
output_password = mlPassword
139+
}

src/main/groovy/com/marklogic/gradle/task/MlcpTask.groovy

Lines changed: 63 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -20,71 +20,77 @@ import com.marklogic.appdeployer.AppConfig
2020
*/
2121
class MlcpTask extends JavaExec {
2222

23-
@Delegate MlcpBean mlcpBean = new MlcpBean();
24-
25-
public Logger getLogger() {
26-
return Logging.getLogger(MlcpTask.class)
27-
}
28-
29-
@TaskAction
30-
@Override
31-
public void exec() {
32-
setMain("com.marklogic.contentpump.ContentPump")
33-
AppConfig config = getProject().property("mlAppConfig")
34-
35-
List<String> newArgs = new ArrayList<>()
36-
newArgs.add(command)
37-
38-
mlcpBean.properties.each { prop, val ->
39-
def propVal
40-
if (val) {
41-
switch (prop) {
42-
case "host":
43-
propVal = (val ? val : config.getHost())
44-
break
45-
case "port":
46-
propVal = (val ? val : 8000)
47-
break
48-
case "username":
49-
propVal = (val ? val : config.getRestAdminUsername())
50-
break
51-
case ["class", "logger", "command", "password"]:
52-
// skip for now
53-
return
54-
default:
55-
propVal = val
56-
break
57-
}
58-
59-
newArgs.add("-" + prop);
60-
newArgs.add(String.valueOf(propVal));
61-
}
62-
}
63-
64-
// Ensure connection arguments are present
65-
if (!newArgs.contains("-host")) {
66-
newArgs.add("-host")
67-
newArgs.add(config.getHost())
23+
@Delegate
24+
MlcpBean mlcpBean = new MlcpBean();
25+
26+
public Logger getLogger() {
27+
return Logging.getLogger(MlcpTask.class)
28+
}
29+
30+
@TaskAction
31+
@Override
32+
public void exec() {
33+
setMain("com.marklogic.contentpump.ContentPump")
34+
AppConfig config = getProject().property("mlAppConfig")
35+
36+
List<String> newArgs = new ArrayList<>()
37+
newArgs.add(command)
38+
39+
mlcpBean.properties.each { prop, val ->
40+
def propVal
41+
if (val) {
42+
switch (prop) {
43+
case "host":
44+
propVal = (val ? val : config.getHost())
45+
break
46+
case "port":
47+
propVal = (val ? val : 8000)
48+
break
49+
case "username":
50+
propVal = (val ? val : config.getRestAdminUsername())
51+
break
52+
case ["class", "logger", "command", "password"]:
53+
// skip for now
54+
return
55+
default:
56+
propVal = val
57+
break
58+
}
59+
60+
newArgs.add("-" + prop);
61+
newArgs.add(String.valueOf(propVal));
62+
}
6863
}
69-
if (!newArgs.contains("-port")) {
70-
newArgs.add("-port")
71-
newArgs.add("8000")
72-
}
73-
if (!newArgs.contains("-username")) {
74-
newArgs.add("-username")
75-
newArgs.add(config.getRestAdminUsername())
64+
65+
// Ensure connection arguments are present, but not if a COPY
66+
boolean isCopy = "COPY".equals(command)
67+
if (!isCopy) {
68+
if (!newArgs.contains("-host")) {
69+
newArgs.add("-host")
70+
newArgs.add(config.getHost())
71+
}
72+
if (!newArgs.contains("-port")) {
73+
newArgs.add("-port")
74+
newArgs.add("8000")
75+
}
76+
if (!newArgs.contains("-username")) {
77+
newArgs.add("-username")
78+
newArgs.add(config.getRestAdminUsername())
79+
}
7680
}
7781

7882
println "mlcp arguments, excluding password: " + newArgs
7983

80-
newArgs.add("-password")
81-
newArgs.add(password ? password : config.getRestAdminPassword())
84+
if (!isCopy) {
85+
newArgs.add("-password")
86+
newArgs.add(password ? password : config.getRestAdminPassword())
87+
}
8288

8389
// Include any args that a user has configured via the args parameter of the Gradle task
8490
newArgs.addAll(getArgs())
8591

86-
setArgs(newArgs)
92+
setArgs(newArgs)
8793

88-
super.exec()
89-
}
94+
super.exec()
95+
}
9096
}

0 commit comments

Comments
 (0)