Skip to content

Commit ff44c32

Browse files
committed
Ensure that only public String fields are accessed, avoiding IllegalAccessExceptions for protected or private
Add the new XML-URL-ENCODE-COMPNENTS option correct the other option names to be kebab-case where they are (still works, since regex splits on - or _, but better to be more precise) remove unused import for AppConfig
1 parent 2fe283e commit ff44c32

File tree

1 file changed

+19
-16
lines changed

1 file changed

+19
-16
lines changed

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

Lines changed: 19 additions & 16 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

0 commit comments

Comments
 (0)