diff --git a/ccm-sci-publications/lib/JabRef-2.9.jar b/ccm-sci-publications/lib/JabRef-2.9.jar deleted file mode 100644 index 3166765d0..000000000 Binary files a/ccm-sci-publications/lib/JabRef-2.9.jar and /dev/null differ diff --git a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/SciPublicationsInitializer.java b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/SciPublicationsInitializer.java index 6abd2c295..c1cc129e0 100644 --- a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/SciPublicationsInitializer.java +++ b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/SciPublicationsInitializer.java @@ -35,13 +35,13 @@ public class SciPublicationsInitializer extends CompoundInitializer { super.init(e); DomainObjectFactory.registerInstantiator( - SciPublications.BASE_DATA_OBJECT_TYPE, - new ACSObjectInstantiator() { - + SciPublications.BASE_DATA_OBJECT_TYPE, new ACSObjectInstantiator() { @Override public DomainObject doNewInstance(final DataObject dataObject) { return new SciPublications(dataObject); } + }); } + } diff --git a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ImporterCli.java b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ImporterCli.java index 0fff6ab28..2ad1de229 100644 --- a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ImporterCli.java +++ b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ImporterCli.java @@ -67,6 +67,7 @@ public class ImporterCli extends Program { @Override protected void doRun(final CommandLine cmdLine) { + try { final PrintWriter writer = new PrintWriter(System.out); final PrintWriter errWriter = new PrintWriter(System.err); @@ -100,6 +101,9 @@ public class ImporterCli extends Program { errWriter.flush(); writer.flush(); + } catch(Exception ex) { + ex.printStackTrace(System.err); + } } protected void importFile(final File file, final boolean pretend, final boolean publish) { @@ -143,11 +147,12 @@ public class ImporterCli extends Program { try { report = importer.importPublications(data, pretend, publish); } catch (SciPublicationsImportException ex) { + errWriter.printf("Import failed:\n"); - errWriter.printf("%s: %s\n", ex.getClass().getName(), ex.getMessage()); + errWriter.printf("%s: %s\n", ex.getClass().getName(), ex.getMessage()); ex.printStackTrace(errWriter); errWriter.flush(); - writer.flush(); + writer.flush(); return; } diff --git a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/bibtex/BibTeXPublicationsImporter.java b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/bibtex/BibTeXPublicationsImporter.java index 8bf76de76..66cbe3fb7 100644 --- a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/bibtex/BibTeXPublicationsImporter.java +++ b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/bibtex/BibTeXPublicationsImporter.java @@ -23,7 +23,7 @@ public class BibTeXPublicationsImporter implements SciPublicationsImporter { } catch (MimeTypeParseException ex) { LOGGER.warn("Failed to create MimeType for PublicationFormat." + "Using null mimetype instead. Cause: ", ex); - return new PublicationFormat("RIS", null, "RIS"); + return new PublicationFormat("BibTeX", null, "bib"); } } diff --git a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/RisConverter.java b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/RisConverter.java index eddc61853..f5502b7a2 100644 --- a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/RisConverter.java +++ b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/RisConverter.java @@ -11,7 +11,7 @@ import com.arsdigita.cms.scipublications.importer.util.ImporterUtil; * @version $Id$ */ public interface RisConverter { - + /** * Converts a RIS dataset for a publiction of the type supported by the converter to an instance of SciPublication. * An implementation of this method is also responsible for publishing the publication item created (if diff --git a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/RisConverters.java b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/RisConverters.java index 4c4f96e87..034fd14d8 100644 --- a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/RisConverters.java +++ b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/RisConverters.java @@ -1,12 +1,9 @@ package com.arsdigita.cms.scipublications.importer.ris; -import com.arsdigita.cms.contenttypes.Publication; import com.arsdigita.cms.scipublications.imexporter.ris.RisType; -import com.arsdigita.cms.scipublications.importer.SciPublicationsImportException; -import com.arsdigita.cms.scipublications.importer.report.ImportReport; import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport; import com.arsdigita.cms.scipublications.importer.util.ImporterUtil; -import java.util.HashMap; +import java.util.EnumMap; import java.util.Map; import java.util.ServiceLoader; import org.apache.log4j.Logger; @@ -20,7 +17,7 @@ import org.apache.log4j.Logger; public class RisConverters { private static final Logger LOGGER = Logger.getLogger(RisConverters.class); - private Map converters = new HashMap(); + private Map converters = new EnumMap(RisType.class); /** * The constructor loads all available implementations of the @@ -60,8 +57,8 @@ public class RisConverters { * @param importerUtil * @param pretend * @param publishNewItems - * @return - * @throws SciPublicationsImportException + * @return + * @throws RisConverterException */ public PublicationImportReport convert(final RisDataset dataset, final ImporterUtil importerUtil, @@ -77,13 +74,13 @@ public class RisConverters { } converter = converter.getClass().newInstance(); - + return converter.convert(dataset, importerUtil, pretend, publishNewItems); } catch (InstantiationException ex) { throw new RisConverterException("Converter instantiation failed.", ex); } catch (IllegalAccessException ex) { throw new RisConverterException("Converter instantiation failed.", ex); - } + } } } diff --git a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/RisImporterConfig_parameter.properties.properties b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/RisImporterConfig_parameter.properties similarity index 100% rename from ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/RisImporterConfig_parameter.properties.properties rename to ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/RisImporterConfig_parameter.properties diff --git a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/RisParser.java b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/RisParser.java index 42c283c39..92b8dbe6d 100644 --- a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/RisParser.java +++ b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/RisParser.java @@ -82,7 +82,7 @@ public class RisParser { } return new RisFieldValue(fieldName, tokens[1]); - } else if ((tokens.length == 1) && RisField.ER.toString().equals(tokens[0])) { + } else if ((tokens.length == 1) && (tokens[0] != null) && tokens[0].startsWith(RisField.ER.toString())) { return new RisFieldValue(RisField.ER, ""); } else { return new RisFieldValue(null, line); diff --git a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/converters/AbstractRisConverter.java b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/converters/AbstractRisConverter.java index 8e42eb499..8222cea3a 100644 --- a/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/converters/AbstractRisConverter.java +++ b/ccm-sci-publications/src/com/arsdigita/cms/scipublications/importer/ris/converters/AbstractRisConverter.java @@ -8,6 +8,7 @@ import com.arsdigita.cms.scipublications.importer.report.PublicationImportReport import com.arsdigita.cms.scipublications.importer.ris.RisConverter; import com.arsdigita.cms.scipublications.importer.ris.RisDataset; import com.arsdigita.cms.scipublications.importer.ris.RisImporter; +import com.arsdigita.cms.scipublications.importer.ris.converters.utils.RisFieldUtil; import com.arsdigita.cms.scipublications.importer.util.ImporterUtil; import com.arsdigita.kernel.Kernel; import java.math.BigDecimal; @@ -38,6 +39,12 @@ public abstract class AbstractRisConverter { - + @Override protected Monograph createPublication(final boolean pretend) { if (pretend) { @@ -46,9 +45,7 @@ public class EbookConverter extends AbstractRisConverter 200) { + name = name.substring(0, 200); + } + publication.setName(name); } report.setTitle(title); } + + private String normalizeString(final String str) { + if (str == null) { + return "null"; + } + return str.replace("ä", "ae").replace("ö", "oe").replace("ü", "ue"). + replace( + "Ä", "Ae").replace("Ü", "Ue").replace("Ö", "Oe").replace("ß", + "ss"). + replace(" ", "-"). + replaceAll("[^a-zA-Z0-9\\-]", "").toLowerCase().trim(); + } + public void processField(final RisDataset dataset, final RisField field,