diff --git a/api/pom.xml b/api/pom.xml
index ef7b32b3..e0242a4d 100644
--- a/api/pom.xml
+++ b/api/pom.xml
@@ -3,7 +3,7 @@
vocabulary-parent
org.gbif.vocabulary
- 1.0.8-SNAPSHOT
+ 1.0.9-SNAPSHOT
4.0.0
diff --git a/core/pom.xml b/core/pom.xml
index 7398b507..e3c93d27 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -5,7 +5,7 @@
org.gbif.vocabulary
vocabulary-parent
- 1.0.8-SNAPSHOT
+ 1.0.9-SNAPSHOT
core
diff --git a/model/pom.xml b/model/pom.xml
index 793ccdba..42f62b4a 100644
--- a/model/pom.xml
+++ b/model/pom.xml
@@ -5,7 +5,7 @@
org.gbif.vocabulary
vocabulary-parent
- 1.0.8-SNAPSHOT
+ 1.0.9-SNAPSHOT
model
diff --git a/pom.xml b/pom.xml
index 09d8800a..264a9a2c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -11,7 +11,7 @@
org.gbif.vocabulary
vocabulary-parent
pom
- 1.0.8-SNAPSHOT
+ 1.0.9-SNAPSHOT
core
diff --git a/tools/pom.xml b/tools/pom.xml
index 26267e0f..c269147a 100644
--- a/tools/pom.xml
+++ b/tools/pom.xml
@@ -3,7 +3,7 @@
vocabulary-parent
org.gbif.vocabulary
- 1.0.8-SNAPSHOT
+ 1.0.9-SNAPSHOT
4.0.0
diff --git a/vocabulary-cli/pom.xml b/vocabulary-cli/pom.xml
index a531eb97..7b91609d 100644
--- a/vocabulary-cli/pom.xml
+++ b/vocabulary-cli/pom.xml
@@ -3,7 +3,7 @@
vocabulary-parent
org.gbif.vocabulary
- 1.0.8-SNAPSHOT
+ 1.0.9-SNAPSHOT
4.0.0
diff --git a/vocabulary-importer/README.md b/vocabulary-importer/README.md
index 7c94ff39..bcc7c026 100644
--- a/vocabulary-importer/README.md
+++ b/vocabulary-importer/README.md
@@ -94,12 +94,10 @@ This tool can be run via command line by sending these params:
* *--csvDelimiter, -d (Optional)*
Delimiter of the CSV files for concepts and hidden labels. If not specified it uses a comma (",").
- Note that some delimiters may need to be escaped for Java, e.g.: \\\\|
* *--listDelimiter, -ld (Optional)*
- Delimiter to specify multiple values in the alternative labels. If not specified it uses a pipe ("|").
- Note that some delimiters may need to be escaped for Java, e.g.: \\\\|
+ Delimiter to specify multiple values in the alternative labels. If not specified it uses a pipe ("|")
* *--apiUrl, -a*
diff --git a/vocabulary-importer/pom.xml b/vocabulary-importer/pom.xml
index 4e347a31..e9363fc7 100644
--- a/vocabulary-importer/pom.xml
+++ b/vocabulary-importer/pom.xml
@@ -3,12 +3,12 @@
org.gbif.vocabulary
vocabulary-parent
- 1.0.8-SNAPSHOT
+ 1.0.9-SNAPSHOT
4.0.0
vocabulary-importer
- 1.0.8-SNAPSHOT
+ 1.0.9-SNAPSHOT
${project.parent.basedir}
diff --git a/vocabulary-importer/src/main/java/org/gbif/vocabulary/importer/Fields.java b/vocabulary-importer/src/main/java/org/gbif/vocabulary/importer/Fields.java
index ff068b28..e79c8811 100644
--- a/vocabulary-importer/src/main/java/org/gbif/vocabulary/importer/Fields.java
+++ b/vocabulary-importer/src/main/java/org/gbif/vocabulary/importer/Fields.java
@@ -28,5 +28,5 @@ public class Fields {
static final String TAGS = "TAGS";
static final List CONCEPT_FIELDS =
- Arrays.asList(CONCEPT, PARENT, SAME_AS_URIS, EXTERNAL_DEFINITIONS);
+ Arrays.asList(CONCEPT, PARENT, SAME_AS_URIS, EXTERNAL_DEFINITIONS, TAGS);
}
diff --git a/vocabulary-importer/src/main/java/org/gbif/vocabulary/importer/VocabularyImporter.java b/vocabulary-importer/src/main/java/org/gbif/vocabulary/importer/VocabularyImporter.java
index f3da85a0..b95d34ff 100644
--- a/vocabulary-importer/src/main/java/org/gbif/vocabulary/importer/VocabularyImporter.java
+++ b/vocabulary-importer/src/main/java/org/gbif/vocabulary/importer/VocabularyImporter.java
@@ -46,6 +46,7 @@
import java.util.Optional;
import java.util.Set;
import java.util.function.Function;
+import java.util.regex.Pattern;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@@ -566,7 +567,8 @@ private ConceptData parseConceptFields(
if (headersIndexes.containsKey(SAME_AS_URIS)
&& !Strings.isNullOrEmpty(values[headersIndexes.get(SAME_AS_URIS)])) {
Set sameAsUris = new HashSet<>();
- String[] urisValues = values[headersIndexes.get(SAME_AS_URIS)].split(listDelimiter);
+ String[] urisValues =
+ values[headersIndexes.get(SAME_AS_URIS)].split(Pattern.quote(listDelimiter));
for (String uri : urisValues) {
try {
sameAsUris.add(URI.create(uri.trim()));
@@ -582,7 +584,8 @@ private ConceptData parseConceptFields(
if (headersIndexes.containsKey(EXTERNAL_DEFINITIONS)
&& !Strings.isNullOrEmpty(values[headersIndexes.get(SAME_AS_URIS)])) {
Set externalDefinitions = new HashSet<>();
- String[] externalDefsValues = values[headersIndexes.get(SAME_AS_URIS)].split(listDelimiter);
+ String[] externalDefsValues =
+ values[headersIndexes.get(SAME_AS_URIS)].split(Pattern.quote(listDelimiter));
for (String definition : externalDefsValues) {
try {
externalDefinitions.add(URI.create(definition.trim()));
@@ -597,7 +600,7 @@ private ConceptData parseConceptFields(
// tags
if (headersIndexes.containsKey(TAGS)
&& !Strings.isNullOrEmpty(values[headersIndexes.get(TAGS)])) {
- String[] tagsValues = values[headersIndexes.get(TAGS)].split(listDelimiter);
+ String[] tagsValues = values[headersIndexes.get(TAGS)].split(Pattern.quote(listDelimiter));
conceptData.tags =
Arrays.stream(tagsValues)
.filter(s -> !Strings.isNullOrEmpty(s))
@@ -628,7 +631,7 @@ private static List