diff --git a/.gitignore b/.gitignore index 091c2073..df8e593e 100644 --- a/.gitignore +++ b/.gitignore @@ -7,7 +7,7 @@ *.iws *.java-version *~ -/**/*.sh +/**/ssh_tunnel_*.sh /**/my_application.properties .vscode .classpath diff --git a/apps/dnet-is-application/src/main/java/eu/dnetlib/is/importer/ContextImporter.java b/apps/dnet-is-application/src/main/java/eu/dnetlib/is/importer/ContextImporter.java index 1d5d758d..f6c7e624 100644 --- a/apps/dnet-is-application/src/main/java/eu/dnetlib/is/importer/ContextImporter.java +++ b/apps/dnet-is-application/src/main/java/eu/dnetlib/is/importer/ContextImporter.java @@ -1,15 +1,13 @@ package eu.dnetlib.is.importer; import java.io.IOException; -import java.io.StringReader; import org.apache.commons.lang3.BooleanUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.dom4j.Document; import org.dom4j.DocumentException; +import org.dom4j.DocumentHelper; import org.dom4j.Node; -import org.dom4j.io.SAXReader; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -44,9 +42,9 @@ public class ContextImporter { private static final Log log = LogFactory.getLog(ContextImporter.class); public void loadFromOldProfile(final String xml) throws DocumentException, IOException { - final SAXReader reader = new SAXReader(); - final Document doc = reader.read(new StringReader(xml)); - doc.selectNodes("//context").forEach(this::saveContext); + DocumentHelper.parseText(xml) + .selectNodes("//context") + .forEach(this::saveContext); } private void saveContext(final Node node) { diff --git a/apps/dnet-is-application/src/main/java/eu/dnetlib/is/importer/ImporterController.java b/apps/dnet-is-application/src/main/java/eu/dnetlib/is/importer/ImporterController.java index 04b4aed2..43f91d47 100644 --- a/apps/dnet-is-application/src/main/java/eu/dnetlib/is/importer/ImporterController.java +++ b/apps/dnet-is-application/src/main/java/eu/dnetlib/is/importer/ImporterController.java @@ -24,6 +24,12 @@ import eu.dnetlib.is.vocabulary.model.Vocabulary; @RequestMapping("/api/import") public class ImporterController extends AbstractDnetController { + // EXAMPLE: + // find ./VocabularyDSResourceType/ -name "*.xml" -exec curl -X POST "http://localhost:8280/api/import/vocabulary" -H "accept: */*" -H + // "Content-Type: text/plain" --data-binary @{} \; + // find ./DedupConfigurationDSResources/ -name "*.xml" -exec curl -X POST "http://localhost:8280/api/import/resource" -H "accept: */*" + // -H "Content-Type: text/plain" --data-binary @{} \; + @Autowired private ContextImporter contextImporter; @@ -51,6 +57,7 @@ public class ImporterController extends AbstractDnetController { }) public String importResource(final HttpServletRequest request) throws Exception { final String xml = IOUtils.toString(request.getInputStream(), StandardCharsets.UTF_8); + return oldProfilesImporter.importSimpleResource(xml); } diff --git a/apps/dnet-is-application/src/main/java/eu/dnetlib/is/importer/OldProfilesImporter.java b/apps/dnet-is-application/src/main/java/eu/dnetlib/is/importer/OldProfilesImporter.java index 7bf6b1ef..f24885da 100644 --- a/apps/dnet-is-application/src/main/java/eu/dnetlib/is/importer/OldProfilesImporter.java +++ b/apps/dnet-is-application/src/main/java/eu/dnetlib/is/importer/OldProfilesImporter.java @@ -1,6 +1,5 @@ package eu.dnetlib.is.importer; -import java.io.StringReader; import java.util.Date; import javax.transaction.Transactional; @@ -8,8 +7,8 @@ import javax.transaction.Transactional; import org.apache.commons.lang3.StringUtils; import org.dom4j.Document; import org.dom4j.DocumentException; +import org.dom4j.DocumentHelper; import org.dom4j.Node; -import org.dom4j.io.SAXReader; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -41,10 +40,9 @@ public class OldProfilesImporter { @Transactional public String importSimpleResource(final String xml) throws InformationServiceException { - final SAXReader reader = new SAXReader(); try { - final Document doc = reader.read(new StringReader(xml)); + final Document doc = DocumentHelper.parseText(xml); final String id = StringUtils.substringBefore(doc.valueOf("//RESOURCE_IDENTIFIER/@value"), "_"); final Date now = new Date(); @@ -70,8 +68,9 @@ public class OldProfilesImporter { resContent = XmlIndenter.indent(doc.selectSingleNode("//*[local-name() = 'stylesheet']")); } else { final String code = doc.valueOf("//SCRIPT/CODE").trim(); + try { - final Document xsltDoc = reader.read(new StringReader(code)); + final Document xsltDoc = DocumentHelper.parseText(code); res.setType("transformation_rule_xslt"); resContent = XmlIndenter.indent(xsltDoc); } catch (final DocumentException e) { @@ -109,8 +108,7 @@ public class OldProfilesImporter { @Transactional public Vocabulary importVocabulary(final String xml) throws Exception { - final SAXReader reader = new SAXReader(); - final Document doc = reader.read(new StringReader(xml)); + final Document doc = DocumentHelper.parseText(xml); final Vocabulary voc = new Vocabulary(); final String vocId = doc.valueOf("//VOCABULARY_NAME/@code"); diff --git a/libs/dnet-is-common/src/main/resources/import_scripts/loadVocs.sh b/libs/dnet-is-common/src/main/resources/import_scripts/loadVocs.sh new file mode 100644 index 00000000..50b61760 --- /dev/null +++ b/libs/dnet-is-common/src/main/resources/import_scripts/loadVocs.sh @@ -0,0 +1,6 @@ +#!/bin/sh + +find ./VocabularyDSResourceType/ -name "*.xml" -exec curl -X POST "http://localhost:8280/api/import/vocabulary" -H "accept: */*" -H "Content-Type: text/plain" --data-binary @{} \; + + +find ./DedupConfigurationDSResources/ -name "*.xml" -exec curl -X POST "http://localhost:8280/api/import/resource" -H "accept: */*" -H "Content-Type: text/plain" --data-binary @{} \;