Skip to content

Commit 2f9ef38

Browse files
authored
Merge pull request #578 from hansenmc/CoRB-4.5.0
Corb 2.5.2
2 parents 45d461e + 5974e76 commit 2f9ef38

File tree

5 files changed

+40
-44
lines changed

5 files changed

+40
-44
lines changed

examples/corb2-project/build.gradle

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
/*
2-
* This buildscript shows how corb dependencies can be easily declared and then a Gradle configuration named
3-
* "corb". This configuration is then used as the classpath for CorbTask, which is an extension of Gradle's
4-
* JavaExec task that exposes the corb options as task attributes. The CorbTask will apply any corb options set via
5-
* task attributes, project properties, or System properties.
2+
* This build script shows how CoRB dependencies can be easily declared and then a Gradle configuration named "corb".
3+
* This configuration is then used as the classpath for CorbTask, which is an extension of Gradle's JavaExec task that
4+
* exposes the CoRB options as task attributes.
5+
* The CorbTask will apply any corb options set via task attributes, project properties, or System properties.
66
*/
77

88
/*
@@ -12,25 +12,20 @@
1212
*/
1313
buildscript {
1414
repositories {
15-
jcenter()
16-
// Needed for corb dependency: XCC
17-
maven { url "http://developer.marklogic.com/maven2/" }
15+
jcenter()
1816
}
1917
dependencies {
20-
//Needed for CorbTask to dynamicaly generate properties from CORB Options class
21-
classpath 'com.marklogic:marklogic-corb:2.4.5'
18+
//Needed for CorbTask to dynamically generate properties from CORB Options class
19+
classpath "com.marklogic:marklogic-corb:${corbVersion}"
2220
}
2321
}
2422

2523
plugins {
26-
id "com.marklogic.ml-gradle" version "4.0.4"
24+
id "com.marklogic.ml-gradle" version "4.1.0"
2725
}
2826

2927
repositories {
3028
jcenter()
31-
32-
// Needed for corb dependency: XCC
33-
maven { url "http://developer.marklogic.com/maven2/" }
3429
}
3530

3631
configurations {
@@ -42,7 +37,7 @@ configurations {
4237

4338
dependencies {
4439
// required to run CoRB2
45-
corb 'com.marklogic:marklogic-corb:2.4.5'
40+
corb "com.marklogic:marklogic-corb:${corbVersion}"
4641
// optional
4742
//corb 'org.jasypt:jasypt:1.9.2' // would be necessary to leverage JasyptDecrypter
4843
}

examples/corb2-project/gradle.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
corbVersion=2.5.2
12
mlHost=localhost
23
mlAppName=corb2-project
34
mlRestPort=8140
Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
11
xquery version "1.0-ml";
2-
32
declare variable $URI external;
4-
53
xdmp:log("Calling Corb transform on URI: " || $URI)
Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,4 @@
11
xquery version "1.0-ml";
2-
3-
(:
4-
Sample query that returns all URIs.
5-
:)
6-
7-
let $uris := cts:uris((), (), cts:and-query(()))
8-
9-
return (count($uris), $uris)
2+
(: Sample query that returns all URIs :)
3+
let $uris := cts:uris("", (), cts:true-query())
4+
return (count($uris), $uris)

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

Lines changed: 27 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -4,40 +4,40 @@ import org.gradle.api.Task
44
import org.gradle.api.tasks.JavaExec
55
import org.gradle.api.tasks.TaskAction
66

7-
import com.marklogic.appdeployer.AppConfig
7+
import java.lang.reflect.Modifier
88

99
class CorbTask extends JavaExec {
1010

1111
def corbOptions = [:]
1212

1313
//default CORB option list
1414
private static String[] DEFAULT_CORB_OPTIONS = "BATCH-SIZE,BATCH-URI-DELIM,\
15-
COLLECTION-NAME,COMMAND,COMMAND-FILE,COMMAND-FILE-POLL-INTERVAL,CONNECTION_POLICY,CONTENT_SOURCE_POOL,\
15+
COLLECTION-NAME,COMMAND,COMMAND-FILE,COMMAND-FILE-POLL-INTERVAL,CONNECTION-POLICY,CONTENT-SOURCE-POOL,\
1616
DECRYPTER,DISK-QUEUE,DISK-QUEUE-MAX-IN-MEMORY-SIZE,DISK-QUEUE-TEMP-DIR,\
1717
ERROR-FILE-NAME,EXIT-CODE-NO-URIS,EXPORT_FILE_AS_ZIP,\
1818
EXPORT-FILE-BOTTOM-CONTENT,EXPORT-FILE-DIR,EXPORT-FILE-HEADER-LINE-COUNT,\
1919
EXPORT-FILE-NAME,EXPORT-FILE-PART-EXT,\
2020
EXPORT-FILE-SORT,EXPORT-FILE-SORT-COMPARATOR,\
2121
EXPORT-FILE-TOP-CONTENT,EXPORT-FILE-URI-TO-PATH,\
22-
FAIL-ON-ERROR,INSTALL,INIT-MODULE,INIT-TASK,JASYPT-PROPERTIES-FILE,JOB_NAME,JOB_SERVER_PORT,\
23-
LOADER_BASE64_ENCODE,LOADER_PATH,LOADER_SET_URIS_BATCH_REF,LOADER_USE_ENVELOPE,LOADER_VARIABLE,\
24-
MAX_OPTS_FROM_MODULE,METADATA,METADATA_TO_PROCESS_MODULE,\
25-
METRICS_COLLECTIONS,METRICS_DATABASE,METRICS_LOG_LEVEL,METRICS_MODULE,\
26-
METRICS_NUM_FAILED_TRANSACTIONS,METRICS_NUM_SLOW_TRANSACTIONS,METRICS_ROOT,METRICS_SYNC_FREQUENCY,\
27-
ML_LOG_LEVELS,MODULES-DATABASE,MODULE-ROOT,\
22+
FAIL-ON-ERROR,INSTALL,INIT-MODULE,INIT-TASK,JASYPT-PROPERTIES-FILE,JOB-NAME,JOB-SERVER-PORT,\
23+
LOADER-BASE64-ENCODE,LOADER-PATH,LOADER-SET-URIS-BATCH-REF,LOADER-USE-ENVELOPE,LOADER-VARIABLE,\
24+
MAX-OPTS-FROM-MODULE,METADATA,METADATA-TO-PROCESS-MODULE,\
25+
METRICS-COLLECTIONS,METRICS-DATABASE,METRICS-LOG-LEVEL,METRICS-MODULE,\
26+
METRICS-NUM-FAILED-TRANSACTIONS,METRICS-NUM-SLOW-TRANSACTIONS,METRICS-ROOT,METRICS-SYNC-FREQUENCY,\
27+
ML-LOG-LEVELS,MODULES-DATABASE,MODULE-ROOT,\
2828
NUM-TPS-FOR-ETC,OPTIONS-FILE,\
29-
POST_BATCH_MINIMUM_COUNT,POST-BATCH-MODULE,POST-BATCH-TASK,POST-BATCH-XQUERY-MODULE,\
30-
PRE_BATCH_MINIMUM_COUNT,PRE-BATCH-MODULE,PRE-BATCH-TASK,PRE-BATCH-XQUERY-MODULE,PRE_POST_BATCH_ALWAYS_EXECUTE,\
29+
POST-BATCH-MINIMUM-COUNT,POST-BATCH-MODULE,POST-BATCH-TASK,POST-BATCH-XQUERY-MODULE,\
30+
PRE-BATCH-MINIMUM-COUNT,PRE-BATCH-MODULE,PRE-BATCH-TASK,PRE-BATCH-XQUERY-MODULE,PRE-POST-BATCH-ALWAYS-EXECUTE,\
3131
PRIVATE-KEY-ALGORITHM,PRIVATE-KEY-FILE,\
3232
PROCESS-MODULE,PROCESS-TASK,\
3333
QUERY-RETRY-LIMIT,QUERY-RETRY-INTERVAL,QUERY-RETRY-ERROR-CODES,QUERY-RETRY-ERROR-MESSAGE\
3434
SSL-CIPHER-SUITES,SSL-CONFIG-CLASS,SSL-ENABLED-PROTOCOLS,SSL-KEY-PASSWORD,\
3535
SSL-KEYSTORE,SSL-KEYSTORE-PASSWORD,SSL-KEYSTORE-TYPE,SSL-PROPERTIES-FILE,\
36-
TEMP_DIR,THREAD-COUNT,\
37-
URIS_BATCH_REF,URIS-FILE,URIS-LOADER,URIS-MODULE,URIS_REDACTED,URIS-REPLACE-PATTERN,URIS_TOTAL_COUNT,\
38-
XCC_CONNECTION_RETRY_LIMIT,XCC-CONNECTION-RETRY-INTERVAL,XCC_CONNECTION_HOST_RETRY_LIMIT,XCC-CONNECTION-URI,\
39-
XCC-DBNAME,XCC-HOSTNAME,XCC_HTTPCOMPLIANT,XCC-PASSWORD,XCC-PORT,XCC_PROTOCOL,XCC_TIME_ZONE,XCC-USERNAME,\
40-
XML-FILE,XML_METADATA,XML-NODE,XML_SCHEMA,XML_TEMP_DIR,ZIP_FILE\
36+
TEMP-DIR,THREAD-COUNT,\
37+
URIS_BATCH_REF,URIS-FILE,URIS-LOADER,URIS-MODULE,URIS-REDACTED,URIS-REPLACE-PATTERN,URIS-TOTAL-COUNT,\
38+
XCC-CONNECTION-RETRY-LIMIT,XCC-CONNECTION-RETRY-INTERVAL,XCC-CONNECTION-HOST-RETRY-LIMIT,XCC-CONNECTION-URI,XCC-DBNAME,\
39+
XCC-HOSTNAME,XCC-HTTPCOMPLIANT,XCC-PASSWORD,XCC-PORT,XCC-PROTOCOL,XCC-TIME-ZONE,XCC-URL-ENCODE-COMPONENTS,XCC-USERNAME,\
40+
XML-FILE,XML-METADATA,XML-NODE,XML-SCHEMA,XML-TEMP-DIR,ZIP-FILE\
4141
XQUERY-MODULE".tokenize(',')
4242

4343
CorbTask() {
@@ -46,7 +46,10 @@ XQUERY-MODULE".tokenize(',')
4646
try {
4747
optionNames = Class.forName("com.marklogic.developer.corb.Options", true, Thread.currentThread().contextClassLoader)
4848
.declaredFields
49-
.findAll { !it.synthetic }.collect { it.get(null) }
49+
.findAll { (it.getModifiers() & (Modifier.PROTECTED | Modifier.PRIVATE)) == 0 &&
50+
String.class.equals(it.getType()) &&
51+
!it.synthetic }
52+
.collect { it.get(null) }
5053
} catch (ClassNotFoundException ex) {}
5154

5255
//Augment with member variables and a mapping of CoRB2 Options
@@ -174,10 +177,14 @@ XQUERY-MODULE".tokenize(',')
174177
this.metaClass.getProperties().collectEntries {
175178
String corbOptionKey = CORB_PROPERTY_PREFIX + it.name.capitalize()
176179
//evaluate whether a value is set and the name matches the corbOptions key pattern
177-
if (corbOptions[corbOptionKey] && this[it.name]) {
178-
[(corbOptions[corbOptionKey]): this[it.name] ]
179-
} else {
180-
[:]
180+
try {
181+
if (corbOptions[corbOptionKey] && this[it.name]) {
182+
[(corbOptions[corbOptionKey]): this[it.name] ]
183+
} else {
184+
[:]
185+
}
186+
} catch (groovy.lang.GroovyRuntimeException ex) {
187+
return [:]
181188
}
182189
}
183190
}

0 commit comments

Comments
 (0)