From b6138da7ab93b98ea3528094f8270a4dee535b6b Mon Sep 17 00:00:00 2001 From: amentis Date: Fri, 5 Apr 2024 13:16:22 +0300 Subject: [PATCH 1/4] multiplicity on description template fix bug --- .../model/persist/DescriptionPersist.java | 19 +++++++++++-------- .../description/DescriptionServiceImpl.java | 2 +- .../DescriptionTemplateServiceImpl.java | 6 +++--- .../ui/dmp/overview/dmp-overview.component.ts | 2 +- 4 files changed, 16 insertions(+), 13 deletions(-) diff --git a/dmp-backend/core/src/main/java/eu/eudat/model/persist/DescriptionPersist.java b/dmp-backend/core/src/main/java/eu/eudat/model/persist/DescriptionPersist.java index 254112460..5fceccdf4 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/model/persist/DescriptionPersist.java +++ b/dmp-backend/core/src/main/java/eu/eudat/model/persist/DescriptionPersist.java @@ -14,6 +14,7 @@ import eu.eudat.model.persist.descriptionproperties.PropertyDefinitionPersist; import eu.eudat.query.DescriptionQuery; import eu.eudat.query.DmpDescriptionTemplateQuery; import gr.cite.tools.data.query.QueryFactory; +import gr.cite.tools.validation.ValidatorFactory; import gr.cite.tools.validation.specification.Specification; import org.springframework.beans.factory.config.ConfigurableBeanFactory; import org.springframework.context.MessageSource; @@ -25,7 +26,6 @@ import javax.management.InvalidApplicationException; import java.util.Arrays; import java.util.List; import java.util.UUID; -import java.util.stream.Collectors; public class DescriptionPersist { @@ -157,13 +157,16 @@ public class DescriptionPersist { private final TenantEntityManager entityManager; private final XmlHandlingService xmlHandlingService; private final QueryFactory queryFactory; + private final ValidatorFactory validatorFactory; - protected DescriptionPersistValidator(ConventionService conventionService, ErrorThesaurusProperties errors, MessageSource messageSource, TenantEntityManager entityManager, XmlHandlingService xmlHandlingService, QueryFactory queryFactory) { + + protected DescriptionPersistValidator(ConventionService conventionService, ErrorThesaurusProperties errors, MessageSource messageSource, TenantEntityManager entityManager, XmlHandlingService xmlHandlingService, QueryFactory queryFactory, ValidatorFactory validatorFactory) { super(conventionService, errors); this.messageSource = messageSource; this.entityManager = entityManager; this.xmlHandlingService = xmlHandlingService; this.queryFactory = queryFactory; + this.validatorFactory = validatorFactory; } @Override @@ -220,12 +223,12 @@ public class DescriptionPersist { .failOn(DescriptionPersist._properties).failWith(messageSource.getMessage("Validation_Required", new Object[]{DescriptionPersist._properties}, LocaleContextHolder.getLocale())), this.spec() .must(() -> this.isDescriptionTemplateMaxMultiplicityValid(finalDmpBlueprintEntity, item.getDmpId(), item.getDmpDescriptionTemplateId(), this.isValidGuid(item.getId()))) - .failOn(DescriptionPersist._descriptionTemplateId).failWith(messageSource.getMessage("Validation.InvalidDescriptionTemplateMultiplicity", new Object[]{DescriptionPersist._descriptionTemplateId}, LocaleContextHolder.getLocale())) -// this.refSpec() -// .iff(() -> !this.isNull(item.getProperties())) -// .on(DescriptionPersist._properties) -// .over(item.getProperties()) -// .using(() -> this.validatorFactory.validator(PropertyDefinitionPersist.PropertyDefinitionPersistValidator.class).setStatus(item.getStatus()).withDefinition(definition)) + .failOn(DescriptionPersist._descriptionTemplateId).failWith(messageSource.getMessage("Validation.InvalidDescriptionTemplateMultiplicity", new Object[]{DescriptionPersist._descriptionTemplateId}, LocaleContextHolder.getLocale())), + this.refSpec() + .iff(() -> item.getStatus() == DescriptionStatus.Finalized) + .on(DescriptionPersist._properties) + .over(item.getProperties()) + .using(() -> this.validatorFactory.validator(PropertyDefinitionPersist.PropertyDefinitionPersistValidator.class).setStatus(item.getStatus()).withDefinition(definition)) // this.navSpec() // .iff(() -> !this.isNull(item.getTags())) // .on(DescriptionPersist._tags) diff --git a/dmp-backend/core/src/main/java/eu/eudat/service/description/DescriptionServiceImpl.java b/dmp-backend/core/src/main/java/eu/eudat/service/description/DescriptionServiceImpl.java index c14b9db33..8bdf334c0 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/service/description/DescriptionServiceImpl.java +++ b/dmp-backend/core/src/main/java/eu/eudat/service/description/DescriptionServiceImpl.java @@ -813,7 +813,7 @@ public class DescriptionServiceImpl implements DescriptionService { if (descriptionTemplateEntity == null) throw new MyNotFoundException(messageSource.getMessage("General_ItemNotFound", new Object[]{data.getDescriptionTemplateId(), DescriptionTemplate.class.getSimpleName()}, LocaleContextHolder.getLocale())); persist.setLabel(data.getLabel()); - persist.setStatus(data.getStatus()); + persist.setStatus(DescriptionStatus.Finalized); persist.setDescription(data.getDescription()); persist.setDescriptionTemplateId(data.getDescriptionTemplateId()); persist.setDmpId(data.getDmpId()); diff --git a/dmp-backend/core/src/main/java/eu/eudat/service/descriptiontemplate/DescriptionTemplateServiceImpl.java b/dmp-backend/core/src/main/java/eu/eudat/service/descriptiontemplate/DescriptionTemplateServiceImpl.java index bc7c086ba..39c5e0624 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/service/descriptiontemplate/DescriptionTemplateServiceImpl.java +++ b/dmp-backend/core/src/main/java/eu/eudat/service/descriptiontemplate/DescriptionTemplateServiceImpl.java @@ -333,14 +333,14 @@ public class DescriptionTemplateServiceImpl implements DescriptionTemplateServic if (!this.conventionService.isListNullOrEmpty(persist.getFieldSets())) { data.setFieldSets(new ArrayList<>()); for (FieldSetPersist fieldSetPersist : persist.getFieldSets()) { - data.getFieldSets().add(this.buildFieldSetEntity(fieldSetPersist)); + data.getFieldSets().add(this.buildFieldSetEntity(fieldSetPersist, persist.getMultiplicity())); } } return data; } - private @NotNull FieldSetEntity buildFieldSetEntity(FieldSetPersist persist) throws InvalidApplicationException { + private @NotNull FieldSetEntity buildFieldSetEntity(FieldSetPersist persist, Boolean multiplicity) throws InvalidApplicationException { FieldSetEntity data = new FieldSetEntity(); if (persist == null) return data; @@ -352,7 +352,7 @@ public class DescriptionTemplateServiceImpl implements DescriptionTemplateServic data.setNumbering(persist.getNumbering()); data.setAdditionalInformation(persist.getAdditionalInformation()); data.setExtendedDescription(persist.getExtendedDescription()); - if (persist.getMultiplicity() != null) + if (persist.getMultiplicity() != null && multiplicity) data.setMultiplicity(this.buildMultiplicityEntity(persist.getMultiplicity())); data.setHasCommentField(persist.getHasCommentField()); diff --git a/dmp-frontend/src/app/ui/dmp/overview/dmp-overview.component.ts b/dmp-frontend/src/app/ui/dmp/overview/dmp-overview.component.ts index 5387f9885..7876d0801 100644 --- a/dmp-frontend/src/app/ui/dmp/overview/dmp-overview.component.ts +++ b/dmp-frontend/src/app/ui/dmp/overview/dmp-overview.component.ts @@ -125,7 +125,7 @@ export class DmpOverviewComponent extends BaseComponent implements OnInit { this.dmp.descriptions = data.descriptions.filter(x => x.isActive === IsActive.Active && x.status !== DescriptionStatus.Canceled); } } - this.dmp.entityDois = data.entityDois.filter(x => x.isActive === IsActive.Active); + if (data.entityDois && data.entityDois.length > 0) this.dmp.entityDois = data.entityDois.filter(x => x.isActive === IsActive.Active); this.selectedBlueprint = data.blueprint; this.researchers = this.referenceService.getReferencesForTypes(this.dmp?.dmpReferences, [this.referenceTypeService.getResearcherReferenceType()]); if (!this.hasDoi()) { From 42af117718cc331d6a4d741144732f13abfbf8e5 Mon Sep 17 00:00:00 2001 From: amandilaras Date: Fri, 5 Apr 2024 13:32:07 +0300 Subject: [PATCH 2/4] update Dockerfile --- dmp-backend/Dockerfile | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/dmp-backend/Dockerfile b/dmp-backend/Dockerfile index 4d939cb6c..055b89a1b 100644 --- a/dmp-backend/Dockerfile +++ b/dmp-backend/Dockerfile @@ -10,12 +10,11 @@ ENV server_username=$MAVEN_ACCOUNT_USR ENV server_password=$MAVEN_ACCOUNT_PSW COPY pom.xml /build/ -#COPY data /build/data/ -#COPY elastic /build/elastic/ -#COPY logging /build/logging/ -#COPY queryable /build/queryable/ +COPY core /build/core/ COPY web /build/web/ -RUN rm -f /build/web/src/main/resources/config/*-dev.yml +COPY settings.xml /root/.m2/settings.xml +RUN rm -f /build/web/src/main/resources/config/*-devel.yml +RUN rm -f /build/annotation-web/src/main/resources/logging/*.xml WORKDIR /build/ @@ -31,7 +30,9 @@ WORKDIR /app ARG PROFILE ARG REVISION +ENV SERVER_PORT=8080 +EXPOSE ${SERVER_PORT} COPY --from=build-stage /build/web/target/web-${REVISION}.jar /app.jar -ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom" ,"-Dspring.profiles.active=${PROFILE}","-jar","/app.jar"] \ No newline at end of file +ENTRYPOINT ["java","-Dspring.config.additional-location=file:/config/","-Djava.security.egd=file:/dev/./urandom" ,"-Dspring.profiles.active=${PROFILE}","-jar","/app.jar"] \ No newline at end of file From 9f99f622ef2e3b844329b89cd8e50b91c3168e02 Mon Sep 17 00:00:00 2001 From: amandilaras Date: Fri, 5 Apr 2024 13:35:13 +0300 Subject: [PATCH 3/4] try remove revision --- dmp-backend/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dmp-backend/Dockerfile b/dmp-backend/Dockerfile index 055b89a1b..d5478fa12 100644 --- a/dmp-backend/Dockerfile +++ b/dmp-backend/Dockerfile @@ -19,9 +19,9 @@ RUN rm -f /build/annotation-web/src/main/resources/logging/*.xml WORKDIR /build/ #RUN mvn package -q -RUN mvn -Drevision=${REVISION} -DdevProfileUrl=${DEV_PROFILE_URL} -P${PROFILE} dependency:go-offline +RUN mvn -DdevProfileUrl=${DEV_PROFILE_URL} -P${PROFILE} dependency:go-offline # Build project -RUN mvn -Drevision=${REVISION} -DdevProfileUrl=${DEV_PROFILE_URL} -P${PROFILE} clean package +RUN mvn -DdevProfileUrl=${DEV_PROFILE_URL} -P${PROFILE} clean package ######################################## Run Stage ######################################## FROM eclipse-temurin:21-jre-alpine From 2cc9d2bee04a74831fad91fcadf94c9305c54c10 Mon Sep 17 00:00:00 2001 From: amandilaras Date: Fri, 5 Apr 2024 14:11:15 +0300 Subject: [PATCH 4/4] revert --- dmp-backend/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dmp-backend/Dockerfile b/dmp-backend/Dockerfile index d5478fa12..055b89a1b 100644 --- a/dmp-backend/Dockerfile +++ b/dmp-backend/Dockerfile @@ -19,9 +19,9 @@ RUN rm -f /build/annotation-web/src/main/resources/logging/*.xml WORKDIR /build/ #RUN mvn package -q -RUN mvn -DdevProfileUrl=${DEV_PROFILE_URL} -P${PROFILE} dependency:go-offline +RUN mvn -Drevision=${REVISION} -DdevProfileUrl=${DEV_PROFILE_URL} -P${PROFILE} dependency:go-offline # Build project -RUN mvn -DdevProfileUrl=${DEV_PROFILE_URL} -P${PROFILE} clean package +RUN mvn -Drevision=${REVISION} -DdevProfileUrl=${DEV_PROFILE_URL} -P${PROFILE} clean package ######################################## Run Stage ######################################## FROM eclipse-temurin:21-jre-alpine