diff --git a/NOTICE.txt b/NOTICE.txt index 109cfc1ac..dd592d8ee 100644 --- a/NOTICE.txt +++ b/NOTICE.txt @@ -1,4 +1,4 @@ -MarkLogic® Content Pump 12.0 +Progress® MarkLogic® Content Pump 12.0.1 Copyright © 2011-2025 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved. @@ -10,10 +10,10 @@ Unless required by applicable law or agreed to in writing, software distributed To the extent required by the applicable open-source license, a complete machine-readable copy of the source code corresponding to such code is available upon request. This offer is valid to anyone in receipt of this information and shall expire three years following the date of the final distribution of this product version by Progress Software Corporation. To obtain such source code, send an email to Legal-thirdpartyreview@progress.com. Please specify the product and version for which you are requesting source code. -The following software may be included in MarkLogic® Content Pump 12.0 -(last updated July 14, 2025): ------------------------------------------------------------------------- +The following software may be included in Progress® MarkLogic® Content Pump 12.0.1 (last updated November 24, 2025): + Third Party Components avro 1.11.4 (Apache-2.0) @@ -444,7 +444,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND Common Licenses -This section shows the text of common third-party licenses used by MarkLogic® Content Pump v12.0: +This section shows the text of common third-party licenses used by Progress® MarkLogic® Content Pump v12.0.1: Apache License 2.0 (Apache-2.0) https://spdx.org/licenses/Apache-2.0.html diff --git a/README.md b/README.md index 9228064ac..9bac39beb 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,11 @@ The MarkLogic Connector for Hadoop is an extension to Hadoop’s MapReduce frame ## Release Notes -### What's New in mlcp 12.0 +### What's New in mlcp 12.0.1 + +- No new updates + +### What's New in mlcp 12.0.0 - Replaced the commons-csv-marklogic library with the standard Apache Commons CSV library for improved compatibility and maintainability - Upgraded commons-csv and commons-io libraries to the latest stable versions. diff --git a/pom.xml b/pom.xml index 146d61d0d..c19c090f7 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.marklogic mlcp - 12.0 + 12.0.1 MarkLogic Content Pump MarkLogic Content Pump https://github.com/marklogic/marklogic-contentpump @@ -17,7 +17,7 @@ - 12.0 + 12.0.1 ${versionString} 3.4.0 2.17.1 diff --git a/src/lib/marklogic-xcc-12.0.jar b/src/lib/marklogic-xcc-12.0.1.jar similarity index 90% rename from src/lib/marklogic-xcc-12.0.jar rename to src/lib/marklogic-xcc-12.0.1.jar index d3427148d..16610c835 100644 Binary files a/src/lib/marklogic-xcc-12.0.jar and b/src/lib/marklogic-xcc-12.0.1.jar differ diff --git a/src/main/java/com/marklogic/contentpump/InputType.java b/src/main/java/com/marklogic/contentpump/InputType.java index c22fe12d9..82d3e97d1 100644 --- a/src/main/java/com/marklogic/contentpump/InputType.java +++ b/src/main/java/com/marklogic/contentpump/InputType.java @@ -249,6 +249,10 @@ public void applyConfigOptions(Configuration conf, CommandLine cmdline) ContentSource cs; String[] outputHosts = conf.getStrings(MarkLogicConstants.OUTPUT_HOST); + if (outputHosts == null || outputHosts.length == 0) { + throw new IllegalArgumentException(MarkLogicConstants.OUTPUT_HOST + + " is not specified."); + } int hostIdx = 0; while (hostIdx < outputHosts.length) { try { diff --git a/src/main/java/com/marklogic/contentpump/RDFReader.java b/src/main/java/com/marklogic/contentpump/RDFReader.java index 51facf1e2..c2cd0d09a 100644 --- a/src/main/java/com/marklogic/contentpump/RDFReader.java +++ b/src/main/java/com/marklogic/contentpump/RDFReader.java @@ -546,8 +546,13 @@ public void initExistingMapPerms() throws IOException { ResultSequence result = null; ContentSource cs; try { + String[] hosts = conf.getStrings(MarkLogicConstants.OUTPUT_HOST); + if (hosts == null || hosts.length == 0) { + throw new IllegalArgumentException(MarkLogicConstants.OUTPUT_HOST + + " is not specified."); + } cs = InternalUtilities.getOutputContentSource(conf, - conf.getStrings(MarkLogicConstants.OUTPUT_HOST)[0]); + hosts[0]); session = cs.newSession(); RequestOptions options = new RequestOptions(); options.setDefaultXQueryVersion("1.0-ml"); diff --git a/src/main/java/com/marklogic/contentpump/ThreadManager.java b/src/main/java/com/marklogic/contentpump/ThreadManager.java index e1c097d07..490df8b36 100644 --- a/src/main/java/com/marklogic/contentpump/ThreadManager.java +++ b/src/main/java/com/marklogic/contentpump/ThreadManager.java @@ -556,6 +556,10 @@ public void run() { } } String[] hosts = conf.getStrings(MarkLogicConstants.OUTPUT_HOST); + if (hosts == null || hosts.length == 0) { + throw new IllegalArgumentException(MarkLogicConstants.OUTPUT_HOST + + " is not specified."); + } for (String host : hosts) { try { ContentSource cs = InternalUtilities. diff --git a/src/main/java/com/marklogic/contentpump/TransformOutputFormat.java b/src/main/java/com/marklogic/contentpump/TransformOutputFormat.java index a7f8b20ae..9c49df25e 100644 --- a/src/main/java/com/marklogic/contentpump/TransformOutputFormat.java +++ b/src/main/java/com/marklogic/contentpump/TransformOutputFormat.java @@ -75,6 +75,10 @@ private LinkedMapWritable getMimetypesMap() throws IOException { return mimetypeMap; } String[] hosts = conf.getStrings(OUTPUT_HOST); + if (hosts == null || hosts.length == 0) { + throw new IllegalArgumentException(OUTPUT_HOST + + " is not specified."); + } Session session = null; ResultSequence result = null; diff --git a/src/main/java/com/marklogic/contentpump/utilities/PermissionUtil.java b/src/main/java/com/marklogic/contentpump/utilities/PermissionUtil.java index 976c5f62e..f5ade4050 100644 --- a/src/main/java/com/marklogic/contentpump/utilities/PermissionUtil.java +++ b/src/main/java/com/marklogic/contentpump/utilities/PermissionUtil.java @@ -79,8 +79,13 @@ public static List getDefaultPermissions(Configuration conf, ResultSequence result = null; ContentSource cs; try { + String[] hosts = conf.getStrings(MarkLogicConstants.OUTPUT_HOST); + if (hosts == null || hosts.length == 0) { + throw new IllegalArgumentException(MarkLogicConstants.OUTPUT_HOST + + " is not specified."); + } cs = InternalUtilities.getOutputContentSource(conf, - conf.getStrings(MarkLogicConstants.OUTPUT_HOST)[0]); + hosts[0]); session = cs.newSession(); RequestOptions options = new RequestOptions(); diff --git a/src/main/java/com/marklogic/mapreduce/ContentOutputFormat.java b/src/main/java/com/marklogic/mapreduce/ContentOutputFormat.java index 9a9500307..26a5fd7f5 100644 --- a/src/main/java/com/marklogic/mapreduce/ContentOutputFormat.java +++ b/src/main/java/com/marklogic/mapreduce/ContentOutputFormat.java @@ -224,6 +224,10 @@ public void checkOutputSpecs( TextArrayWritable hostArray = null; if (restrictHosts) { String[] outputHosts = conf.getStrings(OUTPUT_HOST); + if (outputHosts == null || outputHosts.length == 0) { + throw new IllegalArgumentException(OUTPUT_HOST + + " is not specified."); + } hostArray = new TextArrayWritable(outputHosts); } else { String outputHost = cs.getConnectionProvider().getHostName(); diff --git a/src/main/java/com/marklogic/mapreduce/utilities/InternalUtilities.java b/src/main/java/com/marklogic/mapreduce/utilities/InternalUtilities.java index b2a66f23e..7e1d2311d 100644 --- a/src/main/java/com/marklogic/mapreduce/utilities/InternalUtilities.java +++ b/src/main/java/com/marklogic/mapreduce/utilities/InternalUtilities.java @@ -104,11 +104,12 @@ public class InternalUtilities implements MarkLogicConstants { */ public static ContentSource getInputContentSource(Configuration conf) throws URISyntaxException, XccConfigException, IOException { - String host = conf.getStrings(INPUT_HOST)[0]; - if (host == null || host.isEmpty()) { + String[] hosts = conf.getStrings(INPUT_HOST); + if (hosts == null || hosts.length == 0) { throw new IllegalArgumentException(INPUT_HOST + " is not specified."); } + String host = hosts[0]; return getInputContentSource(conf, host); }