diff --git a/sci-publications/src/main/java/org/scientificcms/publications/AbstractPublicationImExporter.java b/sci-publications/src/main/java/org/scientificcms/publications/AbstractPublicationImExporter.java new file mode 100644 index 0000000..d6375b0 --- /dev/null +++ b/sci-publications/src/main/java/org/scientificcms/publications/AbstractPublicationImExporter.java @@ -0,0 +1,42 @@ +package org.scientificcms.publications; + +import org.libreccm.imexport.AbstractEntityImExporter; + +import javax.inject.Inject; + +/** + * + * @author Jens Pelzetter + * @param The publication type. + */ +public abstract class AbstractPublicationImExporter + extends AbstractEntityImExporter { + + @Inject + private PublicationRepository publicationRepo; + + @Override + protected void saveImportedEntity(final Publication publication) { + publicationRepo.save(publication); + } + + @Override + protected T reloadEntity(final T publication) { + return publicationRepo + .findByIdAndType( + publication.getPublicationId(), + getEntityClass() + ) + .orElseThrow( + () -> new IllegalArgumentException( + String.format( + "No publication of type %s with ID %d found in " + + "the database.", + publication.getClass().getName(), + publication.getPublicationId() + ) + ) + ); + } + +} diff --git a/sci-publications/src/main/java/org/scientificcms/publications/AbstractPublicationWithPublisherImExporter.java b/sci-publications/src/main/java/org/scientificcms/publications/AbstractPublicationWithPublisherImExporter.java new file mode 100644 index 0000000..2c4335d --- /dev/null +++ b/sci-publications/src/main/java/org/scientificcms/publications/AbstractPublicationWithPublisherImExporter.java @@ -0,0 +1,28 @@ +package org.scientificcms.publications; + +import java.util.Set; + +import javax.annotation.PostConstruct; + +/** + * + * @author Jens Pelzetter + * @param Type of publication. + */ +public abstract class AbstractPublicationWithPublisherImExporter + extends AbstractPublicationImExporter { + + @Override + @PostConstruct + protected final void init() { + addRequiredEntities( + Set.of( + Publisher.class + ) + ); + initPublicationWithPublisherImExporter(); + } + + protected abstract void initPublicationWithPublisherImExporter(); + +} diff --git a/sci-publications/src/main/java/org/scientificcms/publications/AbstractUnPublishedImExporter.java b/sci-publications/src/main/java/org/scientificcms/publications/AbstractUnPublishedImExporter.java new file mode 100644 index 0000000..30319d0 --- /dev/null +++ b/sci-publications/src/main/java/org/scientificcms/publications/AbstractUnPublishedImExporter.java @@ -0,0 +1,24 @@ +package org.scientificcms.publications; + +import org.librecms.assets.Organization; + +import java.util.Set; + +/** + * + * @author Jens Pelzetter + * @param Subtype of {@link UnPublished}. + */ +public abstract class AbstractUnPublishedImExporter + extends AbstractPublicationImExporter { + + @Override + protected final void init() { + addRequiredEntities( + Set.of(Organization.class) + ); + } + + protected abstract void initUnPublishedImExporter(); + +} diff --git a/sci-publications/src/main/java/org/scientificcms/publications/ArticleInCollectedVolume.java b/sci-publications/src/main/java/org/scientificcms/publications/ArticleInCollectedVolume.java index d970e5b..91eecfc 100644 --- a/sci-publications/src/main/java/org/scientificcms/publications/ArticleInCollectedVolume.java +++ b/sci-publications/src/main/java/org/scientificcms/publications/ArticleInCollectedVolume.java @@ -1,8 +1,3 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ package org.scientificcms.publications; import com.fasterxml.jackson.annotation.JsonIdentityInfo; diff --git a/sci-publications/src/main/java/org/scientificcms/publications/ArticleInCollectedVolumeImExporter.java b/sci-publications/src/main/java/org/scientificcms/publications/ArticleInCollectedVolumeImExporter.java new file mode 100644 index 0000000..ac10cae --- /dev/null +++ b/sci-publications/src/main/java/org/scientificcms/publications/ArticleInCollectedVolumeImExporter.java @@ -0,0 +1,36 @@ +package org.scientificcms.publications; + +import org.libreccm.imexport.Processes; + +import java.util.Set; + +import javax.annotation.PostConstruct; +import javax.enterprise.context.RequestScoped; + +/** + * + * @author Jens Pelzetter + */ +@RequestScoped +@Processes(ArticleInCollectedVolume.class) +public class ArticleInCollectedVolumeImExporter +extends AbstractPublicationImExporter{ + + @Override + public Class getEntityClass() { + return ArticleInCollectedVolume.class; + } + + @Override + @PostConstruct + protected void init() { + addRequiredEntities( + Set.of( + CollectedVolume.class + ) + ); + } + + + +} diff --git a/sci-publications/src/main/java/org/scientificcms/publications/ArticleInJournal.java b/sci-publications/src/main/java/org/scientificcms/publications/ArticleInJournal.java index 93353fe..58945fa 100644 --- a/sci-publications/src/main/java/org/scientificcms/publications/ArticleInJournal.java +++ b/sci-publications/src/main/java/org/scientificcms/publications/ArticleInJournal.java @@ -1,8 +1,3 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ package org.scientificcms.publications; import com.fasterxml.jackson.annotation.JsonIdentityInfo; diff --git a/sci-publications/src/main/java/org/scientificcms/publications/ArticleInJournalImExporter.java b/sci-publications/src/main/java/org/scientificcms/publications/ArticleInJournalImExporter.java new file mode 100644 index 0000000..85feed4 --- /dev/null +++ b/sci-publications/src/main/java/org/scientificcms/publications/ArticleInJournalImExporter.java @@ -0,0 +1,34 @@ +package org.scientificcms.publications; + +import org.libreccm.imexport.Processes; + +import java.util.Set; + +import javax.annotation.PostConstruct; +import javax.enterprise.context.RequestScoped; + +/** + * + * @author Jens Pelzetter + */ +@RequestScoped +@Processes(ArticleInJournal.class) +public class ArticleInJournalImExporter + extends AbstractPublicationImExporter { + + @Override + public Class getEntityClass() { + return ArticleInJournal.class; + } + + @Override + @PostConstruct + protected void init() { + addRequiredEntities( + Set.of( + Journal.class + ) + ); + } + +} diff --git a/sci-publications/src/main/java/org/scientificcms/publications/AuthorshipImExporter.java b/sci-publications/src/main/java/org/scientificcms/publications/AuthorshipImExporter.java index 62df69c..f521297 100644 --- a/sci-publications/src/main/java/org/scientificcms/publications/AuthorshipImExporter.java +++ b/sci-publications/src/main/java/org/scientificcms/publications/AuthorshipImExporter.java @@ -18,6 +18,7 @@ import org.scientificcms.publications.contenttypes.WorkingPaperItem; import java.util.Objects; import java.util.Set; +import javax.annotation.PostConstruct; import javax.enterprise.context.RequestScoped; import javax.inject.Inject; import javax.persistence.EntityManager; @@ -37,6 +38,7 @@ public class AuthorshipImExporter private EntityManager entityManager; @Override + @PostConstruct protected void init() { addRequiredEntities( Set.of( diff --git a/sci-publications/src/main/java/org/scientificcms/publications/CollectedVolume.java b/sci-publications/src/main/java/org/scientificcms/publications/CollectedVolume.java index 4cf672a..6c04118 100644 --- a/sci-publications/src/main/java/org/scientificcms/publications/CollectedVolume.java +++ b/sci-publications/src/main/java/org/scientificcms/publications/CollectedVolume.java @@ -1,8 +1,3 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ package org.scientificcms.publications; import com.fasterxml.jackson.annotation.JsonIdentityInfo; diff --git a/sci-publications/src/main/java/org/scientificcms/publications/CollectedVolumeImExporter.java b/sci-publications/src/main/java/org/scientificcms/publications/CollectedVolumeImExporter.java new file mode 100644 index 0000000..5fef62c --- /dev/null +++ b/sci-publications/src/main/java/org/scientificcms/publications/CollectedVolumeImExporter.java @@ -0,0 +1,26 @@ +package org.scientificcms.publications; + +import org.libreccm.imexport.Processes; + +import javax.enterprise.context.RequestScoped; + +/** + * + * @author Jens Pelzetter + */ +@RequestScoped +@Processes(CollectedVolume.class) +public class CollectedVolumeImExporter + extends AbstractPublicationWithPublisherImExporter { + + @Override + public Class getEntityClass() { + return CollectedVolume.class; + } + + @Override + protected void initPublicationWithPublisherImExporter() { + // Nothing + } + +} diff --git a/sci-publications/src/main/java/org/scientificcms/publications/ExpertiseImExporter.java b/sci-publications/src/main/java/org/scientificcms/publications/ExpertiseImExporter.java new file mode 100644 index 0000000..b48c739 --- /dev/null +++ b/sci-publications/src/main/java/org/scientificcms/publications/ExpertiseImExporter.java @@ -0,0 +1,35 @@ +package org.scientificcms.publications; + +import org.libreccm.imexport.Processes; +import org.librecms.assets.Organization; + +import java.util.Set; + +import javax.annotation.PostConstruct; +import javax.enterprise.context.RequestScoped; + +/** + * + * @author Jens Pelzetter + */ +@RequestScoped +@Processes(Expertise.class) +public class ExpertiseImExporter + extends AbstractPublicationImExporter{ + + @Override + public Class getEntityClass() { + return Expertise.class; + } + + @Override + @PostConstruct + protected void init() { + addRequiredEntities( + Set.of( + Organization.class + ) + ); + } + +} diff --git a/sci-publications/src/main/java/org/scientificcms/publications/GreyLiteratureImExporter.java b/sci-publications/src/main/java/org/scientificcms/publications/GreyLiteratureImExporter.java new file mode 100644 index 0000000..a5fca4d --- /dev/null +++ b/sci-publications/src/main/java/org/scientificcms/publications/GreyLiteratureImExporter.java @@ -0,0 +1,28 @@ +package org.scientificcms.publications; + +import org.libreccm.imexport.Processes; + +import javax.annotation.PostConstruct; +import javax.enterprise.context.RequestScoped; + +/** + * + * @author Jens Pelzetter + */ +@RequestScoped +@Processes(GreyLiterature.class) +public class GreyLiteratureImExporter + extends AbstractUnPublishedImExporter { + + @Override + public Class getEntityClass() { + return GreyLiterature.class; + } + + @Override + @PostConstruct + protected void initUnPublishedImExporter() { + // Nothing + } + +} diff --git a/sci-publications/src/main/java/org/scientificcms/publications/InProceedingsImExporter.java b/sci-publications/src/main/java/org/scientificcms/publications/InProceedingsImExporter.java new file mode 100644 index 0000000..fbcbc26 --- /dev/null +++ b/sci-publications/src/main/java/org/scientificcms/publications/InProceedingsImExporter.java @@ -0,0 +1,34 @@ +package org.scientificcms.publications; + +import org.libreccm.imexport.Processes; + +import java.util.Set; + +import javax.annotation.PostConstruct; +import javax.enterprise.context.RequestScoped; + +/** + * + * @author Jens Pelzetter + */ +@RequestScoped +@Processes(InProceedings.class) +public class InProceedingsImExporter + extends AbstractPublicationImExporter { + + @Override + public Class getEntityClass() { + return InProceedings.class; + } + + @Override + @PostConstruct + protected void init() { + addRequiredEntities( + Set.of( + Proceedings.class + ) + ); + } + +} diff --git a/sci-publications/src/main/java/org/scientificcms/publications/InternetArticleImExporter.java b/sci-publications/src/main/java/org/scientificcms/publications/InternetArticleImExporter.java new file mode 100644 index 0000000..f318957 --- /dev/null +++ b/sci-publications/src/main/java/org/scientificcms/publications/InternetArticleImExporter.java @@ -0,0 +1,31 @@ +package org.scientificcms.publications; + +import org.librecms.assets.Organization; + +import java.util.Set; + +import javax.annotation.PostConstruct; + +/** + * + * @author Jens Pelzetter + */ +public class InternetArticleImExporter + extends AbstractPublicationImExporter { + + @Override + public Class getEntityClass() { + return InternetArticle.class; + } + + @Override + @PostConstruct + protected void init() { + addRequiredEntities( + Set.of( + Organization.class + ) + ); + } + +} diff --git a/sci-publications/src/main/java/org/scientificcms/publications/Journal.java b/sci-publications/src/main/java/org/scientificcms/publications/Journal.java index 8a378eb..5ba9b41 100644 --- a/sci-publications/src/main/java/org/scientificcms/publications/Journal.java +++ b/sci-publications/src/main/java/org/scientificcms/publications/Journal.java @@ -9,6 +9,7 @@ import com.fasterxml.jackson.annotation.JsonIdentityInfo; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.ObjectIdGenerators; import org.hibernate.envers.Audited; +import org.libreccm.imexport.Exportable; import org.libreccm.l10n.LocalizedString; import java.io.Serializable; @@ -56,7 +57,7 @@ import static org.scientificcms.publications.SciPublicationsConstants.*; resolver = JournalIdResolver.class, property = "uuid" ) -public class Journal implements Serializable { +public class Journal implements Exportable, Serializable { private static final long serialVersionUID = 1L; diff --git a/sci-publications/src/main/java/org/scientificcms/publications/JournalImExporter.java b/sci-publications/src/main/java/org/scientificcms/publications/JournalImExporter.java new file mode 100644 index 0000000..146d688 --- /dev/null +++ b/sci-publications/src/main/java/org/scientificcms/publications/JournalImExporter.java @@ -0,0 +1,54 @@ +package org.scientificcms.publications; + +import org.libreccm.imexport.AbstractEntityImExporter; +import org.libreccm.imexport.Processes; + +import java.util.Objects; + +import javax.annotation.PostConstruct; +import javax.enterprise.context.RequestScoped; +import javax.inject.Inject; + +/** + * + * @author Jens Pelzetter + */ +@RequestScoped +@Processes(Journal.class) +public class JournalImExporter + extends AbstractEntityImExporter { + + @Inject + private JournalRepository journalRepo; + + @Override + public Class getEntityClass() { + return Journal.class; + } + + @PostConstruct + @Override + protected void init() { + // Nothing + } + + @Override + protected void saveImportedEntity(final Journal journal) { + journalRepo.save(journal); + } + + @Override + protected Journal reloadEntity(final Journal journal) { + return journalRepo + .findById(Objects.requireNonNull(journal.getJournalId())) + .orElseThrow( + () -> new IllegalArgumentException( + String.format( + "No Journal with ID %d found in the database.", + journal.getJournalId() + ) + ) + ); + } + +} diff --git a/sci-publications/src/main/java/org/scientificcms/publications/MonographImExporter.java b/sci-publications/src/main/java/org/scientificcms/publications/MonographImExporter.java new file mode 100644 index 0000000..f0a5c39 --- /dev/null +++ b/sci-publications/src/main/java/org/scientificcms/publications/MonographImExporter.java @@ -0,0 +1,28 @@ +package org.scientificcms.publications; + +import org.libreccm.imexport.Processes; + +import javax.annotation.PostConstruct; +import javax.enterprise.context.RequestScoped; + +/** + * + * @author Jens Pelzetter + */ +@RequestScoped +@Processes(Monograph.class) +public class MonographImExporter + extends AbstractPublicationWithPublisherImExporter { + + @Override + public Class getEntityClass() { + return Monograph.class; + } + + @Override + @PostConstruct + protected void initPublicationWithPublisherImExporter() { + // Nothing + } + +} diff --git a/sci-publications/src/main/java/org/scientificcms/publications/ProceedingsImExporter.java b/sci-publications/src/main/java/org/scientificcms/publications/ProceedingsImExporter.java new file mode 100644 index 0000000..7d8914c --- /dev/null +++ b/sci-publications/src/main/java/org/scientificcms/publications/ProceedingsImExporter.java @@ -0,0 +1,28 @@ +package org.scientificcms.publications; + +import org.librecms.assets.Organization; + +import java.util.Set; + +/** + * + * @author Jens Pelzetter + */ +public class ProceedingsImExporter + extends AbstractPublicationWithPublisherImExporter { + + @Override + public Class getEntityClass() { + return Proceedings.class; + } + + @Override + protected void initPublicationWithPublisherImExporter() { + addRequiredEntities( + Set.of( + Organization.class + ) + ); + } + +} diff --git a/sci-publications/src/main/java/org/scientificcms/publications/Publication.java b/sci-publications/src/main/java/org/scientificcms/publications/Publication.java index 59965a0..f7b8fec 100644 --- a/sci-publications/src/main/java/org/scientificcms/publications/Publication.java +++ b/sci-publications/src/main/java/org/scientificcms/publications/Publication.java @@ -11,6 +11,7 @@ import com.fasterxml.jackson.annotation.ObjectIdGenerators; import org.hibernate.annotations.NamedQueries; import org.hibernate.annotations.NamedQuery; import org.hibernate.envers.Audited; +import org.libreccm.imexport.Exportable; import org.libreccm.l10n.LocalizedString; import java.io.Serializable; @@ -101,7 +102,7 @@ import static org.scientificcms.publications.SciPublicationsConstants.*; resolver = PublicationIdResolver.class, property = "uuid" ) -public class Publication implements Serializable { +public class Publication implements Exportable, Serializable { private static final long serialVersionUID = 1L; diff --git a/sci-publications/src/main/java/org/scientificcms/publications/PublicationWithPublisher.java b/sci-publications/src/main/java/org/scientificcms/publications/PublicationWithPublisher.java index 334ef7a..9b9248c 100644 --- a/sci-publications/src/main/java/org/scientificcms/publications/PublicationWithPublisher.java +++ b/sci-publications/src/main/java/org/scientificcms/publications/PublicationWithPublisher.java @@ -7,8 +7,6 @@ package org.scientificcms.publications; import com.fasterxml.jackson.annotation.JsonIdentityInfo; import com.fasterxml.jackson.annotation.JsonIdentityReference; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.ObjectIdGenerator; import com.fasterxml.jackson.annotation.ObjectIdGenerators; import org.hibernate.envers.Audited; import org.libreccm.l10n.LocalizedString; diff --git a/sci-publications/src/main/java/org/scientificcms/publications/Publisher.java b/sci-publications/src/main/java/org/scientificcms/publications/Publisher.java index 93c06be..343eda4 100644 --- a/sci-publications/src/main/java/org/scientificcms/publications/Publisher.java +++ b/sci-publications/src/main/java/org/scientificcms/publications/Publisher.java @@ -9,6 +9,7 @@ import com.fasterxml.jackson.annotation.JsonIdentityInfo; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.ObjectIdGenerators; import org.hibernate.envers.Audited; +import org.libreccm.imexport.Exportable; import java.io.Serializable; import java.util.ArrayList; @@ -51,7 +52,7 @@ import static org.scientificcms.publications.SciPublicationsConstants.*; resolver = PublisherIdResolver.class, property = "uuid" ) -public class Publisher implements Serializable { +public class Publisher implements Exportable, Serializable { private static final long serialVersionUID = 1L; diff --git a/sci-publications/src/main/java/org/scientificcms/publications/PublisherImExporter.java b/sci-publications/src/main/java/org/scientificcms/publications/PublisherImExporter.java new file mode 100644 index 0000000..b0a6db0 --- /dev/null +++ b/sci-publications/src/main/java/org/scientificcms/publications/PublisherImExporter.java @@ -0,0 +1,51 @@ +package org.scientificcms.publications; + +import org.libreccm.imexport.AbstractEntityImExporter; +import org.libreccm.imexport.Processes; + +import javax.annotation.PostConstruct; +import javax.enterprise.context.RequestScoped; +import javax.inject.Inject; + +/** + * + * @author Jens Pelzetter + */ +@RequestScoped +@Processes(Publisher.class) +public class PublisherImExporter extends AbstractEntityImExporter { + + @Inject + private PublisherRepository publisherRepo; + + @Override + public Class getEntityClass() { + return Publisher.class; + } + + @Override + @PostConstruct + protected void init() { + // Nothing + } + + @Override + protected void saveImportedEntity(final Publisher publisher) { + publisherRepo.save(publisher); + } + + @Override + protected Publisher reloadEntity(final Publisher publisher) { + return publisherRepo + .findById(publisher.getPublisherId()) + .orElseThrow( + () -> new IllegalArgumentException( + String.format( + "No Publisher with ID %d found in the database.", + publisher.getPublisherId() + ) + ) + ); + } + +} diff --git a/sci-publications/src/main/java/org/scientificcms/publications/Series.java b/sci-publications/src/main/java/org/scientificcms/publications/Series.java index b743800..43bb812 100644 --- a/sci-publications/src/main/java/org/scientificcms/publications/Series.java +++ b/sci-publications/src/main/java/org/scientificcms/publications/Series.java @@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonIdentityInfo; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.ObjectIdGenerators; import org.hibernate.envers.Audited; +import org.libreccm.imexport.Exportable; import org.libreccm.l10n.LocalizedString; import java.io.Serializable; @@ -50,7 +51,7 @@ import static org.scientificcms.publications.SciPublicationsConstants.*; resolver = SeriesIdResolver.class, property = "uuid" ) -public class Series implements Serializable { +public class Series implements Exportable, Serializable { private static final long serialVersionUID = 1L; diff --git a/sci-publications/src/main/java/org/scientificcms/publications/SeriesImExporter.java b/sci-publications/src/main/java/org/scientificcms/publications/SeriesImExporter.java new file mode 100644 index 0000000..6aec517 --- /dev/null +++ b/sci-publications/src/main/java/org/scientificcms/publications/SeriesImExporter.java @@ -0,0 +1,53 @@ +package org.scientificcms.publications; + +import org.libreccm.imexport.AbstractEntityImExporter; +import org.libreccm.imexport.Processes; + +import java.util.Objects; + +import javax.annotation.PostConstruct; +import javax.enterprise.context.RequestScoped; +import javax.inject.Inject; + +/** + * + * @author Jens Pelzetter + */ +@RequestScoped +@Processes(Series.class) +public class SeriesImExporter extends AbstractEntityImExporter { + + @Inject + private SeriesRepository seriesRepo; + + @Override + public Class getEntityClass() { + return Series.class; + } + + @Override + @PostConstruct + protected void init() { + // Nothing + } + + @Override + protected void saveImportedEntity(final Series series) { + seriesRepo.save(series); + } + + @Override + protected Series reloadEntity(final Series series) { + return seriesRepo + .findById(Objects.requireNonNull(series).getSeriesId()) + .orElseThrow( + () -> new IllegalArgumentException( + String.format( + "No Series with ID %d found in the database.", + series.getSeriesId() + ) + ) + ); + } + +} diff --git a/sci-publications/src/main/java/org/scientificcms/publications/TalkImExporter.java b/sci-publications/src/main/java/org/scientificcms/publications/TalkImExporter.java new file mode 100644 index 0000000..6f0f1f8 --- /dev/null +++ b/sci-publications/src/main/java/org/scientificcms/publications/TalkImExporter.java @@ -0,0 +1,27 @@ +package org.scientificcms.publications; + +import org.libreccm.imexport.Processes; + +import javax.annotation.PostConstruct; +import javax.enterprise.context.RequestScoped; + +/** + * + * @author Jens Pelzetter + */ +@RequestScoped +@Processes(Talk.class) +public class TalkImExporter extends AbstractPublicationImExporter { + + @Override + public Class getEntityClass() { + return Talk.class; + } + + @Override + @PostConstruct + protected void init() { + // Nothing + } + +} diff --git a/sci-publications/src/main/java/org/scientificcms/publications/VolumeInSeriesImExporter.java b/sci-publications/src/main/java/org/scientificcms/publications/VolumeInSeriesImExporter.java index b735f3b..06d0ade 100644 --- a/sci-publications/src/main/java/org/scientificcms/publications/VolumeInSeriesImExporter.java +++ b/sci-publications/src/main/java/org/scientificcms/publications/VolumeInSeriesImExporter.java @@ -18,6 +18,7 @@ import org.scientificcms.publications.contenttypes.WorkingPaperItem; import java.util.Objects; import java.util.Set; +import javax.annotation.PostConstruct; import javax.enterprise.context.RequestScoped; import javax.inject.Inject; import javax.persistence.EntityManager; @@ -37,6 +38,7 @@ public class VolumeInSeriesImExporter private EntityManager entityManager; @Override + @PostConstruct protected void init() { addRequiredEntities( Set.of( diff --git a/sci-publications/src/main/java/org/scientificcms/publications/WorkingPaper.java b/sci-publications/src/main/java/org/scientificcms/publications/WorkingPaper.java index 7da4f0a..6b111ef 100644 --- a/sci-publications/src/main/java/org/scientificcms/publications/WorkingPaper.java +++ b/sci-publications/src/main/java/org/scientificcms/publications/WorkingPaper.java @@ -1,8 +1,3 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ package org.scientificcms.publications; import com.fasterxml.jackson.annotation.JsonIdentityInfo; diff --git a/sci-publications/src/main/java/org/scientificcms/publications/WorkingPaperImExporter.java b/sci-publications/src/main/java/org/scientificcms/publications/WorkingPaperImExporter.java new file mode 100644 index 0000000..efb405f --- /dev/null +++ b/sci-publications/src/main/java/org/scientificcms/publications/WorkingPaperImExporter.java @@ -0,0 +1,28 @@ +package org.scientificcms.publications; + +import org.libreccm.imexport.Processes; + +import javax.enterprise.context.RequestScoped; + +/** + * + * @author Jens Pelzetter + */ +@RequestScoped +@Processes(WorkingPaper.class) +public class WorkingPaperImExporter + extends AbstractUnPublishedImExporter{ + + @Override + public Class getEntityClass() { + return WorkingPaper.class; + } + + @Override + protected void initUnPublishedImExporter() { + // Nothing + } + + + +} diff --git a/sci-publications/src/main/java/org/scientificcms/publications/assets/CollectedVolumeAsset.java b/sci-publications/src/main/java/org/scientificcms/publications/assets/CollectedVolumeAsset.java index 8d84827..4f9bffd 100644 --- a/sci-publications/src/main/java/org/scientificcms/publications/assets/CollectedVolumeAsset.java +++ b/sci-publications/src/main/java/org/scientificcms/publications/assets/CollectedVolumeAsset.java @@ -1,5 +1,6 @@ package org.scientificcms.publications.assets; +import com.fasterxml.jackson.annotation.JsonIdentityReference; import org.hibernate.envers.Audited; import org.librecms.assets.AssetType; import org.librecms.contentsection.Asset; @@ -48,6 +49,7 @@ public class CollectedVolumeAsset CascadeType.REFRESH }) @JoinColumn(name = "COLLECTED_VOLUME_ID") + @JsonIdentityReference(alwaysAsId = true) private CollectedVolume collectedVolume; @Override diff --git a/sci-publications/src/main/java/org/scientificcms/publications/assets/JournalAsset.java b/sci-publications/src/main/java/org/scientificcms/publications/assets/JournalAsset.java index b907dc2..0817d9d 100644 --- a/sci-publications/src/main/java/org/scientificcms/publications/assets/JournalAsset.java +++ b/sci-publications/src/main/java/org/scientificcms/publications/assets/JournalAsset.java @@ -6,6 +6,7 @@ package org.scientificcms.publications.assets; +import com.fasterxml.jackson.annotation.JsonIdentityReference; import org.hibernate.envers.Audited; import org.librecms.assets.AssetType; import org.librecms.contentsection.Asset; @@ -53,6 +54,7 @@ public class JournalAsset extends Asset { CascadeType.REFRESH }) @JoinColumn(name = "JOURNAL_ID") + @JsonIdentityReference(alwaysAsId = true) private Journal journal; public Journal getJournal() { diff --git a/sci-publications/src/main/java/org/scientificcms/publications/assets/ProceedingsAsset.java b/sci-publications/src/main/java/org/scientificcms/publications/assets/ProceedingsAsset.java index f8463c9..a2544de 100644 --- a/sci-publications/src/main/java/org/scientificcms/publications/assets/ProceedingsAsset.java +++ b/sci-publications/src/main/java/org/scientificcms/publications/assets/ProceedingsAsset.java @@ -1,5 +1,6 @@ package org.scientificcms.publications.assets; +import com.fasterxml.jackson.annotation.JsonIdentityReference; import org.hibernate.envers.Audited; import org.librecms.assets.AssetType; import org.librecms.contentsection.Asset; @@ -48,6 +49,7 @@ public class ProceedingsAsset CascadeType.REFRESH }) @JoinColumn(name = "PROCEEDINGS_ID") + @JsonIdentityReference(alwaysAsId = true) private Proceedings proceedings; @Override diff --git a/sci-publications/src/main/java/org/scientificcms/publications/assets/PublisherAsset.java b/sci-publications/src/main/java/org/scientificcms/publications/assets/PublisherAsset.java index d2213cd..4c02ac0 100644 --- a/sci-publications/src/main/java/org/scientificcms/publications/assets/PublisherAsset.java +++ b/sci-publications/src/main/java/org/scientificcms/publications/assets/PublisherAsset.java @@ -1,5 +1,6 @@ package org.scientificcms.publications.assets; +import com.fasterxml.jackson.annotation.JsonIdentityReference; import org.hibernate.envers.Audited; import org.librecms.assets.AssetType; import org.librecms.contentsection.Asset; @@ -48,6 +49,7 @@ public class PublisherAsset extends Asset { CascadeType.REFRESH }) @JoinColumn(name = "PUBLISHER_ID") + @JsonIdentityReference(alwaysAsId = true) private Publisher publisher; public Publisher getPublisher() { diff --git a/sci-publications/src/main/java/org/scientificcms/publications/assets/SeriesAsset.java b/sci-publications/src/main/java/org/scientificcms/publications/assets/SeriesAsset.java index fcd46cd..b4e6aad 100644 --- a/sci-publications/src/main/java/org/scientificcms/publications/assets/SeriesAsset.java +++ b/sci-publications/src/main/java/org/scientificcms/publications/assets/SeriesAsset.java @@ -5,6 +5,7 @@ */ package org.scientificcms.publications.assets; +import com.fasterxml.jackson.annotation.JsonIdentityReference; import org.hibernate.envers.Audited; import org.librecms.assets.AssetType; import org.librecms.contentsection.Asset; @@ -51,6 +52,7 @@ public class SeriesAsset extends Asset { CascadeType.REFRESH }) @JoinColumn(name = "SERIES_ID") + @JsonIdentityReference(alwaysAsId = true) private Series series; public Series getSeries() { diff --git a/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/ProceedingsItem.java b/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/ProceedingsItem.java index 5b901a9..76cfbd8 100644 --- a/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/ProceedingsItem.java +++ b/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/ProceedingsItem.java @@ -1,8 +1,3 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ package org.scientificcms.publications.contenttypes; import org.librecms.contenttypes.ContentTypeDescription; diff --git a/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/PublicationItem.java b/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/PublicationItem.java index 77b7a43..3b3f95d 100644 --- a/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/PublicationItem.java +++ b/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/PublicationItem.java @@ -1,10 +1,6 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ package org.scientificcms.publications.contenttypes; +import com.fasterxml.jackson.annotation.JsonIdentityReference; import org.hibernate.envers.Audited; import org.librecms.contentsection.ContentItem; import org.scientificcms.publications.Publication; @@ -49,6 +45,7 @@ public class PublicationItem extends ContentItem { fetch = FetchType.LAZY, targetEntity = Publication.class ) + @JsonIdentityReference(alwaysAsId = true) private T publication; public T getPublication() {