diff --git a/eperusteet/eperusteet-service/pom.xml b/eperusteet/eperusteet-service/pom.xml index a74161e42..ad0219fe8 100644 --- a/eperusteet/eperusteet-service/pom.xml +++ b/eperusteet/eperusteet-service/pom.xml @@ -1,7 +1,7 @@ 4.0.0 - 2.0.0 + 3.0.0 org.springframework.boot @@ -36,7 +36,7 @@ 3.10.1 17 17 - 9.0.90 + 10.1.33 2.0.29 42.5.5 UTF-8 @@ -113,7 +113,11 @@ spring-plugin-metadata 3.0.0 - + + org.apache.tomcat + tomcat-catalina + ${org.apache.tomcat.version} + diff --git a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/config/WebSecurityConfigurationDev.java b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/config/WebSecurityConfigurationDev.java index 06c7292e1..12ecc515c 100644 --- a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/config/WebSecurityConfigurationDev.java +++ b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/config/WebSecurityConfigurationDev.java @@ -41,6 +41,7 @@ public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Excepti .requestMatchers("/buildversion.txt").permitAll() .requestMatchers(HttpMethod.GET, "/api/**").permitAll() .requestMatchers(HttpMethod.GET, "/").permitAll() + .requestMatchers(HttpMethod.POST, "/api/dokumentit/pdf/**").permitAll() .anyRequest().authenticated()) .httpBasic(Customizer.withDefaults()) .logout(logout -> { diff --git a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/domain/PerusteenOsaViite.java b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/domain/PerusteenOsaViite.java index 826650e41..8d8f33120 100644 --- a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/domain/PerusteenOsaViite.java +++ b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/domain/PerusteenOsaViite.java @@ -154,7 +154,7 @@ public class PerusteenOsaViite implements @OneToOne(fetch = FetchType.LAZY, mappedBy = "sisalto") private DigitaalisenOsaamisenPerusteenSisalto digitaalinenOsaaminenSisalto; - @ManyToOne(cascade = {CascadeType.MERGE, CascadeType.PERSIST}, fetch = FetchType.LAZY) + @ManyToOne(cascade = {CascadeType.MERGE, CascadeType.PERSIST}) @Getter @Setter private PerusteenOsa perusteenOsa; diff --git a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/dokumentti/impl/DokumenttiServiceImpl.java b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/dokumentti/impl/DokumenttiServiceImpl.java index 46b08eb22..e4319ea32 100644 --- a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/dokumentti/impl/DokumenttiServiceImpl.java +++ b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/dokumentti/impl/DokumenttiServiceImpl.java @@ -19,7 +19,7 @@ import fi.vm.sade.eperusteet.service.dokumentti.DokumenttiStateService; import fi.vm.sade.eperusteet.service.dokumentti.ExternalPdfService; import fi.vm.sade.eperusteet.service.dokumentti.impl.util.DokumenttiUtils; -import fi.vm.sade.eperusteet.service.event.aop.IgnorePerusteUpdateCheck; + import fi.vm.sade.eperusteet.service.exception.DokumenttiException; import fi.vm.sade.eperusteet.service.mapping.Dto; import fi.vm.sade.eperusteet.service.mapping.DtoMapper; @@ -64,7 +64,6 @@ public class DokumenttiServiceImpl implements DokumenttiService { @Override @Transactional(propagation = Propagation.REQUIRES_NEW) - @IgnorePerusteUpdateCheck public DokumenttiDto createDtoFor( long id, Kieli kieli, @@ -94,14 +93,12 @@ public DokumenttiDto createDtoFor( @Override @Transactional(readOnly = true) - @IgnorePerusteUpdateCheck public DokumenttiDto findLatest(Long id, Kieli kieli, Suoritustapakoodi suoritustapakoodi) { return findLatest(id, kieli, suoritustapakoodi, null); } @Override @Transactional(readOnly = true) - @IgnorePerusteUpdateCheck public DokumenttiDto findLatest(Long id, Kieli kieli, Suoritustapakoodi suoritustapakoodi, GeneratorVersion version) { Dokumentti dokumentti; @@ -133,7 +130,6 @@ public DokumenttiDto findLatest(Long id, Kieli kieli, Suoritustapakoodi suoritus @Override @Transactional(readOnly = true) - @IgnorePerusteUpdateCheck public DokumenttiDto getJulkaistuDokumentti(Long perusteId, Kieli kieli, Integer revision) { Peruste peruste = perusteRepository.findOne(perusteId); @@ -161,14 +157,12 @@ public DokumenttiDto getJulkaistuDokumentti(Long perusteId, Kieli kieli, Integer @Override @Transactional(noRollbackFor = DokumenttiException.class, propagation = Propagation.REQUIRES_NEW) - @IgnorePerusteUpdateCheck public void generateWithDto(DokumenttiDto dto) throws DokumenttiException { generateWithDto(dto, null); } @Override @Transactional(noRollbackFor = DokumenttiException.class, propagation = Propagation.REQUIRES_NEW) - @IgnorePerusteUpdateCheck public void generateWithDto(DokumenttiDto dto, PerusteKaikkiDto perusteDto) throws DokumenttiException { dto.setTila(DokumenttiTila.LUODAAN); dokumenttiStateService.save(dto); @@ -186,7 +180,6 @@ public void generateWithDto(DokumenttiDto dto, PerusteKaikkiDto perusteDto) thro @Override @Transactional(readOnly = true) - @IgnorePerusteUpdateCheck public byte[] get(Long id) { Dokumentti dokumentti = dokumenttiRepository.findById(id).orElse(null); @@ -209,7 +202,6 @@ public byte[] get(Long id) { @Override @Transactional - @IgnorePerusteUpdateCheck public Long getDokumenttiId(Long perusteId, Kieli kieli, Suoritustapakoodi suoritustapakoodi, GeneratorVersion generatorVersion) { Sort sort = Sort.by(Sort.Direction.DESC, "valmistumisaika"); @@ -239,7 +231,6 @@ public Long getDokumenttiId(Long perusteId, Kieli kieli, Suoritustapakoodi suori @Override @Transactional(propagation = Propagation.REQUIRES_NEW) - @IgnorePerusteUpdateCheck public void setStarted(DokumenttiDto dto) { dto.setAloitusaika(new Date()); dto.setLuoja(SecurityUtil.getAuthenticatedPrincipal().getName()); @@ -249,7 +240,6 @@ public void setStarted(DokumenttiDto dto) { @Override @Transactional(readOnly = true) - @IgnorePerusteUpdateCheck public DokumenttiDto query(Long id) { Dokumentti dokumentti = dokumenttiRepository.findById(id).orElse(null); DokumenttiDto dto = mapper.map(dokumentti, DokumenttiDto.class); @@ -274,7 +264,6 @@ public DokumenttiDto query(Long id) { @Override @Transactional - @IgnorePerusteUpdateCheck public void updateDokumenttiPdfData(byte[] data, Long dokumenttiId) { Optional optionalDokumentti = dokumenttiRepository.findById(dokumenttiId); if (optionalDokumentti.isPresent()) { @@ -288,7 +277,6 @@ public void updateDokumenttiPdfData(byte[] data, Long dokumenttiId) { @Override @Transactional - @IgnorePerusteUpdateCheck public void updateDokumenttiTila(DokumenttiTila tila, Long dokumenttiId) { Optional optionalDokumentti = dokumenttiRepository.findById(dokumenttiId); if (optionalDokumentti.isPresent()) { diff --git a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/dokumentti/impl/DokumenttiStateServiceImpl.java b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/dokumentti/impl/DokumenttiStateServiceImpl.java index 888e53e80..f64f1cb34 100644 --- a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/dokumentti/impl/DokumenttiStateServiceImpl.java +++ b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/dokumentti/impl/DokumenttiStateServiceImpl.java @@ -4,7 +4,7 @@ import fi.vm.sade.eperusteet.dto.DokumenttiDto; import fi.vm.sade.eperusteet.repository.DokumenttiRepository; import fi.vm.sade.eperusteet.service.dokumentti.DokumenttiStateService; -import fi.vm.sade.eperusteet.service.event.aop.IgnorePerusteUpdateCheck; + import fi.vm.sade.eperusteet.service.mapping.Dto; import fi.vm.sade.eperusteet.service.mapping.DtoMapper; import org.springframework.beans.factory.annotation.Autowired; @@ -21,7 +21,7 @@ public class DokumenttiStateServiceImpl implements DokumenttiStateService { @Autowired private DtoMapper mapper; - @IgnorePerusteUpdateCheck + @Transactional public DokumenttiDto save(DokumenttiDto dto) { Dokumentti dokumentti = mapper.map(dto, Dokumentti.class); diff --git a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/event/FlushUtil.java b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/event/FlushUtil.java deleted file mode 100644 index 39ac5847c..000000000 --- a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/event/FlushUtil.java +++ /dev/null @@ -1,5 +0,0 @@ -package fi.vm.sade.eperusteet.service.event; - -public interface FlushUtil { - void flush(); -} diff --git a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/event/PerusteUpdateStore.java b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/event/PerusteUpdateStore.java deleted file mode 100644 index dc175e631..000000000 --- a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/event/PerusteUpdateStore.java +++ /dev/null @@ -1,17 +0,0 @@ -package fi.vm.sade.eperusteet.service.event; - -import java.util.Set; - -public interface PerusteUpdateStore { - void perusteUpdated(long perusteId); - - void resolveRelationLater(Class clz, long id); - - void enter(); - - int leave(); - - Set getAndClearUpdatedPerusteIds(); - - Set getAndClearReferenced(); -} diff --git a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/event/PerusteUpdatedEvent.java b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/event/PerusteUpdatedEvent.java deleted file mode 100644 index 0971f2a70..000000000 --- a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/event/PerusteUpdatedEvent.java +++ /dev/null @@ -1,19 +0,0 @@ -package fi.vm.sade.eperusteet.service.event; - -import lombok.Getter; -import org.springframework.context.ApplicationEvent; - -public class PerusteUpdatedEvent extends ApplicationEvent { - @Getter - private final Long perusteId; - - public PerusteUpdatedEvent(Object source, Long perusteId) { - super(source); - this.perusteId = perusteId; - } - - public static PerusteUpdatedEvent of(Object source, Long perusteId) { - return new PerusteUpdatedEvent(source, perusteId); - } - -} diff --git a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/event/ResolvableReferenced.java b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/event/ResolvableReferenced.java deleted file mode 100644 index 356e5bad4..000000000 --- a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/event/ResolvableReferenced.java +++ /dev/null @@ -1,16 +0,0 @@ -package fi.vm.sade.eperusteet.service.event; - -import lombok.EqualsAndHashCode; -import lombok.Getter; - -@Getter -@EqualsAndHashCode -public class ResolvableReferenced { - private final Class entityClass; - private final long id; - - public ResolvableReferenced(Class clz, long id) { - this.entityClass = clz; - this.id = id; - } -} diff --git a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/event/ResolverUtil.java b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/event/ResolverUtil.java deleted file mode 100644 index 54b23ea69..000000000 --- a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/event/ResolverUtil.java +++ /dev/null @@ -1,7 +0,0 @@ -package fi.vm.sade.eperusteet.service.event; - -import java.util.Set; - -public interface ResolverUtil { - Set findPerusteIdsByFirstResolvable(ResolvableReferenced resolvable); -} diff --git a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/event/aop/IgnorePerusteUpdateCheck.java b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/event/aop/IgnorePerusteUpdateCheck.java deleted file mode 100644 index fcef9ab78..000000000 --- a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/event/aop/IgnorePerusteUpdateCheck.java +++ /dev/null @@ -1,11 +0,0 @@ -package fi.vm.sade.eperusteet.service.event.aop; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -@Retention(RetentionPolicy.RUNTIME) -@Target(ElementType.METHOD) -public @interface IgnorePerusteUpdateCheck { -} diff --git a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/event/aop/MarkPerusteUpdatedAspect.java b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/event/aop/MarkPerusteUpdatedAspect.java deleted file mode 100644 index c8c910ac8..000000000 --- a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/event/aop/MarkPerusteUpdatedAspect.java +++ /dev/null @@ -1,85 +0,0 @@ -package fi.vm.sade.eperusteet.service.event.aop; - -import fi.vm.sade.eperusteet.service.event.*; -import org.aspectj.lang.ProceedingJoinPoint; -import org.aspectj.lang.annotation.Around; -import org.aspectj.lang.annotation.Aspect; -import org.aspectj.lang.annotation.Pointcut; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.ApplicationEventPublisher; -import org.springframework.core.annotation.Order; -import org.springframework.stereotype.Component; - -import java.util.Set; - -@Component -//@Aspect -public class MarkPerusteUpdatedAspect { - @Autowired - private PerusteUpdateStore perusteUpdateStore; - - @Autowired - private ApplicationEventPublisher applicationEventPublisher; - - @Autowired - private ResolverUtil resolverUtil; - - @Autowired - private FlushUtil flushUtil; - - @Pointcut("execution(* fi.vm.sade.eperusteet.service..*ServiceImpl.*(..)) " + - " && ( within(@org.springframework.transaction.annotation.Transactional *) " + - " || @annotation(org.springframework.transaction.annotation.Transactional) )" + - " && !@annotation(fi.vm.sade.eperusteet.service.event.aop.IgnorePerusteUpdateCheck)") - public void transactionalServiceMethods() {} - - @Order(150) // must have higher than the one specified for tx:annotation-driven to perform within transaction (just to be sure) - @Around("transactionalServiceMethods()") - public Object aroundServiceMethods(ProceedingJoinPoint pjp) throws Throwable { - perusteUpdateStore.enter(); - Object ret = null; - int txStackDept; - try { - ret = pjp.proceed(); - } finally { - txStackDept = perusteUpdateStore.leave(); - } - if (txStackDept == 0) { - // TODO: transactional REQUIRES_NEW-propagation mode, which, however, luckily - // is not used in this project. (Seems impossible to use named parameters with || operands in pointcut :/) - - // Leaving the outermost transactional service method, doing flush so that all changes - // are marked (and possibly newly added Perustees are persisted etc.) and only once: - flushUtil.flush(); - publishPerusteEvents(); - } - return ret; - } - - private void publishPerusteEvents() { - Set perusteIds = perusteUpdateStore.getAndClearUpdatedPerusteIds(); - publishPerusteChanges(perusteIds); - if (perusteIds.isEmpty()) { - // no direct relation to peruste found - publishPerusteUpdatedByResolvableReferences(perusteIds); - } - } - - private void publishPerusteUpdatedByResolvableReferences(Set perusteIds) { - for (ResolvableReferenced resolvable : perusteUpdateStore.getAndClearReferenced()) { - // but there was an edited entity where references can be made from multiple places - Set ids = resolverUtil.findPerusteIdsByFirstResolvable(resolvable); - if (!ids.isEmpty()) { - publishPerusteChanges(ids); - // continuing with others: - return; - } - } - } - - private void publishPerusteChanges(Set perusteIds) { - for (Long id : perusteIds) { - applicationEventPublisher.publishEvent(new PerusteUpdatedEvent(this, id)); - } - } -} diff --git a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/event/impl/FlushUtilImpl.java b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/event/impl/FlushUtilImpl.java deleted file mode 100644 index a828b8e31..000000000 --- a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/event/impl/FlushUtilImpl.java +++ /dev/null @@ -1,20 +0,0 @@ -package fi.vm.sade.eperusteet.service.event.impl; - -import fi.vm.sade.eperusteet.service.event.FlushUtil; -import org.springframework.stereotype.Component; -import org.springframework.transaction.annotation.Transactional; - -import jakarta.persistence.EntityManager; -import jakarta.persistence.PersistenceContext; - -@Component -public class FlushUtilImpl implements FlushUtil { - @PersistenceContext - private EntityManager em; - - @Override - @Transactional - public void flush() { - em.flush(); - } -} diff --git a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/event/impl/PerusteUpdateStoreImpl.java b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/event/impl/PerusteUpdateStoreImpl.java deleted file mode 100644 index 43c7f8778..000000000 --- a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/event/impl/PerusteUpdateStoreImpl.java +++ /dev/null @@ -1,55 +0,0 @@ -package fi.vm.sade.eperusteet.service.event.impl; - -import fi.vm.sade.eperusteet.service.event.PerusteUpdateStore; -import fi.vm.sade.eperusteet.service.event.ResolvableReferenced; -import org.springframework.context.annotation.Scope; -import org.springframework.context.annotation.ScopedProxyMode; -import org.springframework.stereotype.Component; - -import java.util.HashSet; -import java.util.Set; - -/** - * Not thread-safe and do not have to be (since request-scoped). - */ -@Component -@Scope(value="request", proxyMode = ScopedProxyMode.INTERFACES) -public class PerusteUpdateStoreImpl implements PerusteUpdateStore { - private Set perusteIds = new HashSet<>(); - private int stackDept = 0; - private Set resolvableReferences = new HashSet<>(); - - @Override - public void perusteUpdated(long perusteId) { - this.perusteIds.add(perusteId); - } - - @Override - public void resolveRelationLater(Class clz, long id) { - this.resolvableReferences.add(new ResolvableReferenced(clz, id)); - } - - @Override - public void enter() { - stackDept++; - } - - @Override - public int leave() { - return --stackDept; - } - - @Override - public Set getAndClearUpdatedPerusteIds() { - Set value = new HashSet<>(perusteIds); - this.perusteIds = new HashSet<>(); - return value; - } - - @Override - public Set getAndClearReferenced() { - Set list = new HashSet<>(this.resolvableReferences); - this.resolvableReferences = new HashSet<>(); - return list; - } -} diff --git a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/event/impl/ResolverUtilImpl.java b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/event/impl/ResolverUtilImpl.java deleted file mode 100644 index 892e74c22..000000000 --- a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/event/impl/ResolverUtilImpl.java +++ /dev/null @@ -1,37 +0,0 @@ -package fi.vm.sade.eperusteet.service.event.impl; - -import fi.vm.sade.eperusteet.service.event.ResolvableReferenced; -import fi.vm.sade.eperusteet.service.event.ResolverUtil; -import jakarta.persistence.EntityManager; -import jakarta.persistence.PersistenceContext; -import org.springframework.stereotype.Component; -import org.springframework.transaction.annotation.Transactional; - -import java.util.HashSet; -import java.util.Set; - -@Component -public class ResolverUtilImpl implements ResolverUtil { - @PersistenceContext - private EntityManager em; - - @Override - @Transactional(readOnly = true) - public Set findPerusteIdsByFirstResolvable(ResolvableReferenced resolvable) { - Set ids = new HashSet<>(); -// for (Property referencingProperty : MetadataIntegrator.findPropertiesReferencingTo(resolvable.getEntityClass())) { -// List owners = em.createQuery("select t from " -// + referencingProperty.getDirectDeclaringClass().getSimpleName() -// + " t where t." + referencingProperty.getName() + ".id = :id") -// .setParameter("id", resolvable.getId()).getResultList(); -// for (Object entity : owners) { -// // most likely none -// HibernateInterceptor.findRelatedPeruste(entity, ids::add); -// if (!ids.isEmpty()) { -// return ids; -// } -// } -// } - return ids; - } -} diff --git a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/AmmattitaitovaatimusServiceImpl.java b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/AmmattitaitovaatimusServiceImpl.java index d957f2fa6..84162cdda 100644 --- a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/AmmattitaitovaatimusServiceImpl.java +++ b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/AmmattitaitovaatimusServiceImpl.java @@ -42,7 +42,7 @@ import fi.vm.sade.eperusteet.service.KoodistoClient; import fi.vm.sade.eperusteet.service.PerusteService; import fi.vm.sade.eperusteet.service.TutkinnonOsaViiteService; -import fi.vm.sade.eperusteet.service.event.aop.IgnorePerusteUpdateCheck; + import fi.vm.sade.eperusteet.service.mapping.Dto; import fi.vm.sade.eperusteet.service.mapping.DtoMapper; import fi.vm.sade.eperusteet.service.security.PermissionManager; @@ -311,7 +311,6 @@ public void updateAmmattitaitovaatimukset(Long perusteId) { @Override @Async - @IgnorePerusteUpdateCheck public void addAmmattitaitovaatimuskooditToKoodisto() { perusteRepository.findAmmattitaitovaatimusPerusteelliset(ProjektiTila.JULKAISTU, PerusteTyyppi.NORMAALI, KoulutusTyyppi.ammatilliset(), Suoritustapakoodi.REFORMI) @@ -322,7 +321,6 @@ public void addAmmattitaitovaatimuskooditToKoodisto() { } @Override - @IgnorePerusteUpdateCheck public List addAmmattitaitovaatimusJaArvioinninkohteetKooditToKoodisto(Long perusteId) { List koodit = Stream.concat( addAmmattitaitovaatimuskooditToKoodisto(perusteId).stream(), @@ -497,7 +495,7 @@ public List getAmmattitaitovaatimukset(Long peruste return mapper.mapAsList(vaatimukset, Ammattitaitovaatimus2019Dto.class); } - @IgnorePerusteUpdateCheck + @Override public void lisaaAmmattitaitovaatimusTutkinnonosaKoodistoon(Date projektiPaivitysAika) { diff --git a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/ArviointiAsteikkoServiceImpl.java b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/ArviointiAsteikkoServiceImpl.java index 03f2cc0f7..44f64558f 100644 --- a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/ArviointiAsteikkoServiceImpl.java +++ b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/ArviointiAsteikkoServiceImpl.java @@ -6,7 +6,7 @@ import fi.vm.sade.eperusteet.repository.ArviointiAsteikkoRepository; import fi.vm.sade.eperusteet.repository.OsaamistasoRepository; import fi.vm.sade.eperusteet.service.ArviointiAsteikkoService; -import fi.vm.sade.eperusteet.service.event.aop.IgnorePerusteUpdateCheck; + import fi.vm.sade.eperusteet.service.exception.BusinessRuleViolationException; import fi.vm.sade.eperusteet.service.mapping.Dto; import fi.vm.sade.eperusteet.service.mapping.DtoMapper; @@ -40,7 +40,6 @@ public List getAll() { } @Override - @IgnorePerusteUpdateCheck @Transactional(readOnly = true) public ArviointiAsteikkoDto get(Long id) { return mapper.map(repository.findById(id).orElse(null), ArviointiAsteikkoDto.class); diff --git a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/JulkaisuPerusteTilaServiceImpl.java b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/JulkaisuPerusteTilaServiceImpl.java index 2e9d56de2..480fa613e 100644 --- a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/JulkaisuPerusteTilaServiceImpl.java +++ b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/JulkaisuPerusteTilaServiceImpl.java @@ -3,7 +3,7 @@ import fi.vm.sade.eperusteet.domain.JulkaisuPerusteTila; import fi.vm.sade.eperusteet.repository.JulkaisuPerusteTilaRepository; import fi.vm.sade.eperusteet.service.JulkaisuPerusteTilaService; -import fi.vm.sade.eperusteet.service.event.aop.IgnorePerusteUpdateCheck; + import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Profile; @@ -21,7 +21,6 @@ public class JulkaisuPerusteTilaServiceImpl implements JulkaisuPerusteTilaServic private JulkaisuPerusteTilaRepository julkaisuPerusteTilaRepository; @Override - @IgnorePerusteUpdateCheck @Transactional(propagation = Propagation.REQUIRES_NEW) public void saveJulkaisuPerusteTila(JulkaisuPerusteTila julkaisuPerusteTila) { julkaisuPerusteTilaRepository.save(julkaisuPerusteTila); diff --git a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/JulkaisutServiceImpl.java b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/JulkaisutServiceImpl.java index e6a81f5d2..960cd3c7a 100644 --- a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/JulkaisutServiceImpl.java +++ b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/JulkaisutServiceImpl.java @@ -68,7 +68,7 @@ import fi.vm.sade.eperusteet.service.PerusteenMuokkaustietoService; import fi.vm.sade.eperusteet.service.PerusteprojektiService; import fi.vm.sade.eperusteet.service.dokumentti.DokumenttiService; -import fi.vm.sade.eperusteet.service.event.aop.IgnorePerusteUpdateCheck; + import fi.vm.sade.eperusteet.service.exception.BusinessRuleViolationException; import fi.vm.sade.eperusteet.service.exception.DokumenttiException; import fi.vm.sade.eperusteet.service.mapping.Dto; @@ -238,7 +238,6 @@ public List getJulkisetJulkaisut(long id) { } @Override - @IgnorePerusteUpdateCheck public CompletableFuture teeJulkaisu(long projektiId, JulkaisuBaseDto julkaisuBaseDto) { Perusteprojekti perusteprojekti = perusteprojektiRepository.findById(projektiId).orElse(null); @@ -280,7 +279,6 @@ public JulkaisuTila viimeisinJulkaisuTila(Long perusteId) { } @Override - @IgnorePerusteUpdateCheck @Async("julkaisuTaskExecutor") public CompletableFuture teeJulkaisuAsync(long projektiId, JulkaisuBaseDto julkaisuBaseDto) { log.debug("teeJulkaisu: {}", projektiId); @@ -405,7 +403,6 @@ private void lisaaMaaraysKokoelmaan(JulkaisuBaseDto julkaisuBaseDto, Peruste per } @Override - @IgnorePerusteUpdateCheck public Set generoiJulkaisuPdf(PerusteKaikkiDto perusteDto) { if ((!perusteDto.getTyyppi().equals(PerusteTyyppi.NORMAALI) && !perusteDto.getTyyppi().equals(PerusteTyyppi.OPAS)) || OpasTyyppi.TIETOAPALVELUSTA.equals(perusteDto.getOpasTyyppi())) { @@ -462,7 +459,6 @@ public boolean julkaisemattomiaMuutoksia(long perusteId) { } @Override - @IgnorePerusteUpdateCheck public JulkaisuBaseDto aktivoiJulkaisu(long projektiId, int revision) throws HttpMediaTypeNotSupportedException, MimeTypeException { Perusteprojekti perusteprojekti = perusteprojektiRepository.findById(projektiId).orElse(null); @@ -576,14 +572,12 @@ private PerusteenJulkaisuData convertToPerusteData(String perusteObj) { } @Override - @IgnorePerusteUpdateCheck public List getKaikkiPerusteet() { return julkaisutRepository.findAllJulkaistutPerusteetByVoimassaolo(DateTime.now().getMillis(), true, true, false, false).stream() .map(this::convertToPerusteData).collect(Collectors.toList()); } @Override - @IgnorePerusteUpdateCheck public Date viimeisinPerusteenJulkaisuaika(Long perusteId) { JulkaistuPeruste viimeisinJulkaisu = julkaisutRepository.findFirstByPerusteIdOrderByRevisionDesc(perusteId); if (viimeisinJulkaisu != null) { @@ -660,7 +654,6 @@ public void kooditaValiaikaisetKoodit(Long perusteId) { } @Override - @IgnorePerusteUpdateCheck public void nollaaJulkaisuTila(Long perusteId) { JulkaisuPerusteTila julkaisuPerusteTila = getOrCreateTila(perusteId); julkaisuPerusteTila.setJulkaisutila(JulkaisuTila.JULKAISEMATON); @@ -680,7 +673,6 @@ private JulkaisuBaseDto taytaKayttajaTiedot(JulkaisuBaseDto julkaisu) { } @Override - @IgnorePerusteUpdateCheck public int seuraavaVapaaJulkaisuNumero(long perusteId) { Peruste peruste = perusteRepository.findOne(perusteId); List vanhatJulkaisut = julkaisutRepository.findAllByPeruste(peruste); @@ -688,7 +680,6 @@ public int seuraavaVapaaJulkaisuNumero(long perusteId) { } @Override - @IgnorePerusteUpdateCheck @Transactional public void updateJulkaisu(Long perusteId, JulkaisuBaseDto julkaisuBaseDto) { try { diff --git a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/JulkinenServiceImpl.java b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/JulkinenServiceImpl.java index 81838c351..6f5efa37a 100644 --- a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/JulkinenServiceImpl.java +++ b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/JulkinenServiceImpl.java @@ -16,7 +16,7 @@ import fi.vm.sade.eperusteet.service.JulkaisutService; import fi.vm.sade.eperusteet.service.JulkinenService; import fi.vm.sade.eperusteet.service.YlopsClient; -import fi.vm.sade.eperusteet.service.event.aop.IgnorePerusteUpdateCheck; + import fi.vm.sade.eperusteet.service.exception.NotExistsException; import fi.vm.sade.eperusteet.service.mapping.Dto; import fi.vm.sade.eperusteet.service.mapping.DtoMapper; @@ -86,7 +86,6 @@ public Page haeEtusivu(String nimi, String kieli, Integer sivu, @Override @Cacheable(CacheArvot.JULKINEN_ETUSIVU) - @IgnorePerusteUpdateCheck public List getJulkisivuDatat() { return Stream.of(getPerusteet(), getAmosaaOpetussuunnitelmat(), getYlopsOpetussuunnitelmat()) .flatMap(List::stream) diff --git a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/LiiteServiceImpl.java b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/LiiteServiceImpl.java index 5a6a43a07..2df30bb2f 100644 --- a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/LiiteServiceImpl.java +++ b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/LiiteServiceImpl.java @@ -10,7 +10,7 @@ import fi.vm.sade.eperusteet.repository.PerusteRepository; import fi.vm.sade.eperusteet.repository.liite.LiiteRepository; import fi.vm.sade.eperusteet.service.LiiteService; -import fi.vm.sade.eperusteet.service.event.aop.IgnorePerusteUpdateCheck; + import fi.vm.sade.eperusteet.service.exception.BusinessRuleViolationException; import fi.vm.sade.eperusteet.service.exception.NotExistsException; import fi.vm.sade.eperusteet.service.mapping.Dto; @@ -48,7 +48,6 @@ public class LiiteServiceImpl implements LiiteService { @Override @Transactional(readOnly = true) - @IgnorePerusteUpdateCheck public void export(Long perusteId, UUID id, OutputStream os) { Liite liite = liitteet.findById(id).orElse(null); if (liite == null) { @@ -86,7 +85,6 @@ public void copyLiitteetForPeruste(Long perusteId, Long pohjaPerusteId, Predicat @Override @Transactional(readOnly = true) - @IgnorePerusteUpdateCheck public LiiteDto get(Long perusteId, UUID id) { Peruste peruste = perusteet.findOne(perusteId); Liite liite = liitteet.findById(id).orElse(null); @@ -100,14 +98,12 @@ public LiiteDto get(Long perusteId, UUID id) { @Override @Transactional(readOnly = true) - @IgnorePerusteUpdateCheck public LiiteDto get(UUID id) { Liite liite = liitteet.findById(id).orElse(null); return mapper.map(liite, LiiteDto.class); } @Override - @IgnorePerusteUpdateCheck @Transactional public UUID addJulkaisuLiite(Long julkaisuId, LiiteTyyppi tyyppi, String mime, String nimi, long length, InputStream is) { Liite liite = liitteet.add(tyyppi, mime, nimi, length, is); @@ -115,7 +111,6 @@ public UUID addJulkaisuLiite(Long julkaisuId, LiiteTyyppi tyyppi, String mime, S } @Override - @IgnorePerusteUpdateCheck @Transactional public UUID addOsaamismerkkiLiite(LiiteTyyppi tyyppi, String mime, String nimi, long length, InputStream is) { Liite liite = liitteet.add(tyyppi, mime, nimi, length, is); diff --git a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/LokalisointiServiceImpl.java b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/LokalisointiServiceImpl.java index 8ddd701f4..c4afedb52 100644 --- a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/LokalisointiServiceImpl.java +++ b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/LokalisointiServiceImpl.java @@ -5,7 +5,7 @@ import fi.vm.sade.eperusteet.dto.util.LokalisoituTekstiDto; import fi.vm.sade.eperusteet.repository.TekstiPalanenRepositoryCustom; import fi.vm.sade.eperusteet.service.LokalisointiService; -import fi.vm.sade.eperusteet.service.event.aop.IgnorePerusteUpdateCheck; + import fi.vm.sade.eperusteet.service.exception.BusinessRuleViolationException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -106,7 +106,6 @@ protected void lokalisoi(Stream lokalisoitava) { @Override @Transactional(readOnly = true) - @IgnorePerusteUpdateCheck public T lokalisoi(T dto) { if (dto != null) { lokalisoi(dto.lokalisoitavatTekstit()); diff --git a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/MaaraysServiceImpl.java b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/MaaraysServiceImpl.java index 4eff3d6df..d682e2487 100644 --- a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/MaaraysServiceImpl.java +++ b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/MaaraysServiceImpl.java @@ -19,7 +19,7 @@ import fi.vm.sade.eperusteet.repository.MaaraysRepository; import fi.vm.sade.eperusteet.service.KayttajanTietoService; import fi.vm.sade.eperusteet.service.MaaraysService; -import fi.vm.sade.eperusteet.service.event.aop.IgnorePerusteUpdateCheck; + import fi.vm.sade.eperusteet.service.exception.BusinessRuleViolationException; import fi.vm.sade.eperusteet.service.mapping.Dto; import fi.vm.sade.eperusteet.service.mapping.DtoMapper; @@ -114,13 +114,11 @@ public List getMaarayksienKoulutustyypit() { } @Override - @IgnorePerusteUpdateCheck public MaaraysDto getPerusteenMaarays(Long perusteId) { return dtoMapper.map(maaraysRepository.findFirstByPerusteIdAndLiittyyTyyppiOrderByLuotuAsc(perusteId, MaaraysLiittyyTyyppi.EI_LIITY), MaaraysDto.class); } @Override - @IgnorePerusteUpdateCheck public List getPerusteenMuutosmaaraykset(Long perusteId) { return dtoMapper.mapAsList(maaraysRepository.findByPerusteIdAndLiittyyTyyppiIn(perusteId, Arrays.asList(MaaraysLiittyyTyyppi.MUUTTAA, MaaraysLiittyyTyyppi.KORVAA)), MaaraysDto.class); } @@ -131,7 +129,6 @@ public List getMaaraykset(Class clazz) { } @Override - @IgnorePerusteUpdateCheck public MaaraysDto getMaarays(Long id) { Maarays maarays = maaraysRepository.findById(id).orElseThrow(); MaaraysDto maaraysDto = dtoMapper.map(maaraysRepository.findById(id).orElse(null), MaaraysDto.class); @@ -148,7 +145,6 @@ public MaaraysDto getMaarays(Long id) { } @Override - @IgnorePerusteUpdateCheck public List getPerusteenJulkaistutMuutosmaaraykset(Long perusteId) { return dtoMapper.mapAsList(maaraysRepository.findByPerusteIdAndLiittyyTyyppiInAndTila(perusteId, Arrays.asList(MaaraysLiittyyTyyppi.MUUTTAA, MaaraysLiittyyTyyppi.KORVAA), MaaraysTila.JULKAISTU), MaaraysDto.class); } @@ -172,7 +168,6 @@ public Map> getAsiasanat() { } @Override - @IgnorePerusteUpdateCheck @CacheEvict(value="maarayskokoelma_asiasanat", allEntries = true) public MaaraysDto addMaarays(MaaraysDto maaraysDto) { addLiitteet(maaraysDto); @@ -184,7 +179,6 @@ public MaaraysDto addMaarays(MaaraysDto maaraysDto) { } @Override - @IgnorePerusteUpdateCheck @CacheEvict(value="maarayskokoelma_asiasanat", allEntries = true) public MaaraysDto updateMaarays(MaaraysDto maaraysDto) { if (maaraysRepository.findById(maaraysDto.getId()).orElse(null) == null) { @@ -236,7 +230,6 @@ private void deleteLiitteet(MaaraysDto maaraysDto) { } @Override - @IgnorePerusteUpdateCheck @CacheEvict(value="maarayskokoelma_asiasanat", allEntries = true) public void deleteMaarays(Long id, Long perusteId) { if (maaraysRepository.findById(id).orElse(null) == null) { @@ -258,7 +251,6 @@ public void deleteMaarays(Long id, Long perusteId) { } @Override - @IgnorePerusteUpdateCheck public UUID uploadFile(MaaraysLiiteDto maaraysLiiteUploadDto) { try { byte[] decoder = Base64.getDecoder().decode(maaraysLiiteUploadDto.getFileB64()); diff --git a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/MaintenanceServiceImpl.java b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/MaintenanceServiceImpl.java index dd12fdc4a..ee598793e 100644 --- a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/MaintenanceServiceImpl.java +++ b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/MaintenanceServiceImpl.java @@ -40,7 +40,7 @@ import fi.vm.sade.eperusteet.service.MaintenanceService; import fi.vm.sade.eperusteet.service.PerusteService; import fi.vm.sade.eperusteet.service.PerusteenOsaViiteService; -import fi.vm.sade.eperusteet.service.event.aop.IgnorePerusteUpdateCheck; + import fi.vm.sade.eperusteet.service.mapping.Dto; import fi.vm.sade.eperusteet.service.mapping.DtoMapper; import lombok.extern.slf4j.Slf4j; @@ -172,7 +172,7 @@ public void addMissingOsaamisalakuvaukset() { @Override @Async - @IgnorePerusteUpdateCheck + @Transactional(propagation = Propagation.NEVER) public void teeJulkaisut(boolean julkaiseKaikki, String tyyppi, String koulutustyyppi, String tiedote) { List perusteet = perusteRepository.findJulkaistutPerusteet(PerusteTyyppi.of(tyyppi), koulutustyyppi).stream() @@ -195,7 +195,7 @@ public void teeJulkaisut(boolean julkaiseKaikki, String tyyppi, String koulutust @Override @Async - @IgnorePerusteUpdateCheck + @Transactional(propagation = Propagation.NEVER) public void teeJulkaisu(long perusteId, String tiedote) { @@ -215,7 +215,6 @@ public List getYllapidot() { @Override @Cacheable("yllapitovalues") - @IgnorePerusteUpdateCheck public String getYllapitoValue(String key) { Yllapito yllapito = yllapitoRepository.findByKey(key); return yllapito != null ? yllapito.getValue() : null; @@ -265,7 +264,6 @@ private void julkaisePeruste(Long perusteId, String tiedote) { } @Override - @IgnorePerusteUpdateCheck public void clearCache(String cache) { Objects.requireNonNull(cacheManager.getCache(cache)).clear(); } @@ -286,7 +284,6 @@ public void teeMaarayksetPerusteille() { } @Override - @IgnorePerusteUpdateCheck public void cacheJulkisetPerusteNavigoinnit() { List koulutustyypit = Arrays.stream(KoulutusTyyppi.values()).map(KoulutusTyyppi::toString).collect(Collectors.toList()); koulutustyypit.removeAll(List.of(KoulutusTyyppi.VALMA.toString(), KoulutusTyyppi.TELMA.toString())); @@ -303,7 +300,6 @@ public void cacheJulkisetPerusteNavigoinnit() { } @Override - @IgnorePerusteUpdateCheck public void cacheJulkaistutPerusteet() { List koulutustyypit = Arrays.stream(KoulutusTyyppi.values()).map(KoulutusTyyppi::toString).collect(Collectors.toList()); koulutustyypit.removeAll(List.of(KoulutusTyyppi.VALMA.toString(), KoulutusTyyppi.TELMA.toString())); @@ -319,7 +315,6 @@ public void cacheJulkaistutPerusteet() { } @Override - @IgnorePerusteUpdateCheck public void clearPerusteCaches(Long perusteId) { perusteRepository.findOne(perusteId).getKielet().forEach(kieli -> { cacheManager.getCache(CacheArvot.JULKINEN_PERUSTE_NAVIGOINTI ).evictIfPresent(perusteId + kieli.toString()); diff --git a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/PerusteServiceImpl.java b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/PerusteServiceImpl.java index a2f7880a2..05d70f3de 100644 --- a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/PerusteServiceImpl.java +++ b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/PerusteServiceImpl.java @@ -156,8 +156,8 @@ import fi.vm.sade.eperusteet.service.TutkinnonOsaViiteService; import fi.vm.sade.eperusteet.service.TutkinnonRakenneLockContext; import fi.vm.sade.eperusteet.service.VapaasivistystyoSisaltoService; -import fi.vm.sade.eperusteet.service.event.PerusteUpdatedEvent; -import fi.vm.sade.eperusteet.service.event.aop.IgnorePerusteUpdateCheck; + + import fi.vm.sade.eperusteet.service.exception.BusinessRuleViolationException; import fi.vm.sade.eperusteet.service.exception.NotExistsException; import fi.vm.sade.eperusteet.service.internal.LockManager; @@ -239,7 +239,7 @@ @Slf4j @Service @Transactional -public class PerusteServiceImpl implements PerusteService, ApplicationListener { +public class PerusteServiceImpl implements PerusteService{ @Autowired private PerusteDispatcher dispatcher; @@ -743,7 +743,6 @@ private void gatherOsaamisalaKuvaukset(PerusteenOsaViiteDto.Laaja pov, Map>> getOsaamisalaKuvaukset(final Long perusteId) { Peruste peruste = perusteRepository.findOne(perusteId); @@ -767,7 +766,6 @@ public Map>> getOsaamisala } @Override - @IgnorePerusteUpdateCheck @Transactional(readOnly = true) public Map>> getJulkaistutOsaamisalaKuvaukset(final Long perusteId) { PerusteKaikkiDto peruste = getJulkaistuSisalto(perusteId); @@ -809,21 +807,18 @@ public Revision getLastModifiedRevision(final Long id) { @Override @Transactional(readOnly = true) - @IgnorePerusteUpdateCheck public PerusteKaikkiDto getJulkaistuSisalto(final Long id, boolean esikatselu) { return self.getJulkaistuSisalto(id, null, esikatselu); } @Override @Transactional(readOnly = true) - @IgnorePerusteUpdateCheck public PerusteKaikkiDto getJulkaistuSisalto(final Long id) { return self.getJulkaistuSisalto(id, null, false); } @Override @Transactional(readOnly = true) - @IgnorePerusteUpdateCheck public Object getJulkaistuSisaltoObjectNode(@P("perusteId") final Long id, String query) { Peruste peruste = perusteRepository.findById(id).orElse(null); @@ -841,7 +836,6 @@ public Object getJulkaistuSisaltoObjectNode(@P("perusteId") final Long id, Strin @Override @Transactional(readOnly = true) - @IgnorePerusteUpdateCheck public Object getJulkaistuSisaltoObjectNode(@P("perusteId") final Long id, List queryList) { Peruste peruste = perusteRepository.findById(id).orElse(null); @@ -866,7 +860,7 @@ public Object getJulkaistuSisaltoObjectNode(@P("perusteId") final Long id, List< @Override @Transactional(readOnly = true) - @IgnorePerusteUpdateCheck + @Cacheable( value= CacheArvot.PERUSTE_JULKAISU, condition = "#useCurrentData == false && #julkaisuRevisio == null", @@ -930,7 +924,6 @@ private PerusteKaikkiDto taytaSisaltohaunVaatimatDatat(PerusteKaikkiDto perusteK @Override @Transactional(readOnly = true) - @IgnorePerusteUpdateCheck public List getJulkaistutTutkinnonOsat(Long perusteId, boolean useCurrentData) { PerusteKaikkiDto peruste; if (useCurrentData) { @@ -948,7 +941,6 @@ public List getJulkaistutTutkinnonOsat(Long perusteId, bo @Override @Transactional(readOnly = true) - @IgnorePerusteUpdateCheck public Set getJulkaistutTutkinnonOsaViitteet(Long perusteId, boolean useCurrentData) { PerusteKaikkiDto peruste; if (useCurrentData) { @@ -969,7 +961,6 @@ public Set getJulkaistutTutkinnonOsaViitteet(Long pe @Override @Transactional(readOnly = true) - @IgnorePerusteUpdateCheck public PerusteenOsaDto getJulkaistuPerusteenOsa(Long perusteId, Long perusteenOsaId) { PerusteKaikkiDto peruste = getJulkaistuSisalto(perusteId); if (peruste == null) { @@ -988,7 +979,6 @@ public PerusteenOsaDto getJulkaistuPerusteenOsa(Long perusteId, Long perusteenOs @Override @Transactional(readOnly = true) - @IgnorePerusteUpdateCheck public PerusteKaikkiDto getKaikkiSisalto(final Long id) { Peruste peruste = perusteRepository.findById(id).orElse(null); boolean hasPermission = permissionManager.hasPerustePermission(SecurityContextHolder.getContext().getAuthentication(), id, PermissionManager.Permission.LUKU); @@ -1143,21 +1133,6 @@ public PerusteenOsaViiteDto.Laaja getSuoritustapaSisalto(Long perusteId, Suoritu return mapper.map(sisalto, view); } - @Override - @IgnorePerusteUpdateCheck - @Transactional - public void onApplicationEvent(PerusteUpdatedEvent event) { - Peruste peruste = perusteRepository.findOne(event.getPerusteId()); - if (peruste == null) { - return; - } - Date muokattu = new Date(); - if (peruste.getGlobalVersion() == null) { - peruste.setGlobalVersion(new PerusteVersion(peruste)); - } - peruste.getGlobalVersion().setAikaleima(muokattu); - } - @Override public PerusteDto update(Long perusteId, PerusteDto perusteDto) { Peruste current = perusteRepository.findOne(perusteId); @@ -1526,7 +1501,6 @@ public RakenneModuuliDto revertRakenneVersio(Long id, Suoritustapakoodi suoritus @Override @Transactional(readOnly = true) - @IgnorePerusteUpdateCheck public List getTutkinnonOsat(Long perusteid, Suoritustapakoodi suoritustapakoodi) { Peruste peruste = perusteRepository.findOne(perusteid); Suoritustapa suoritustapa = peruste.getSuoritustapa(suoritustapakoodi); @@ -1650,7 +1624,6 @@ public RakenneModuuliDto updateTutkinnonRakenne(Long perusteId, Suoritustapakood (new RakenneModuuli()).mergeState(moduuli); suoritustapa.setRakenne(rakenneRepository.save(moduuli)); - onApplicationEvent(PerusteUpdatedEvent.of(this, perusteId)); } RakenneModuuliDto updated = mapper.map(moduuli, RakenneModuuliDto.class); @@ -1943,7 +1916,6 @@ public TutkinnonOsaViiteDto updateTutkinnonOsa(Long id, Suoritustapakoodi suorit TutkinnonOsaViiteDto dto = tutkinnonOsaViiteService.update(osa, true); muokkausTietoService.addMuokkaustieto(id, viite, MuokkausTapahtuma.PAIVITYS); - onApplicationEvent(PerusteUpdatedEvent.of(this, id)); return dto; } @@ -2030,14 +2002,12 @@ private void getLocksPerusteenOsat(PerusteenOsaViite sisalto, Map getTutkintonimikeKoodit(Long perusteId) { return doGetTutkintonimikeKoodit(perusteId); } @Override @Transactional(readOnly = true) - @IgnorePerusteUpdateCheck public TutkintonimikeKoodiDto getTutkintonimikeKoodi(@P("perusteId") Long perusteId, String tutkintonimikeKoodiUri) { return getTutkintonimikeKoodit(perusteId).stream() .filter(tutkintonimikeKoodi -> tutkintonimikeKoodi.getTutkintonimikeUri().equals(tutkintonimikeKoodiUri)) @@ -2047,7 +2017,6 @@ public TutkintonimikeKoodiDto getTutkintonimikeKoodi(@P("perusteId") Long perust @Override @Transactional(readOnly = true) - @IgnorePerusteUpdateCheck public List doGetTutkintonimikeKoodit(Long perusteId) { List koodit = tutkintonimikeKoodiRepository.findByPerusteId(perusteId); return mapper.mapAsList(koodit, TutkintonimikeKoodiDto.class); @@ -2611,7 +2580,6 @@ public LukiokoulutuksenYleisetTavoitteetDto palautaYleisetTavoitteet(long perust } @Override - @IgnorePerusteUpdateCheck public KVLiiteJulkinenDto getJulkinenKVLiite(long perusteId) { Peruste peruste = perusteRepository.getOne(perusteId); PerusteDto perusteDto = mapper.map(peruste, PerusteDto.class); @@ -2709,7 +2677,6 @@ else if (kvliiteDto.getId() != null && !kvliiteDto.getId().equals(liite.getId()) } @Override - @IgnorePerusteUpdateCheck public List haeTasot(Long perusteId, Peruste peruste) { if (ObjectUtils.isEmpty(peruste.getKoulutukset())) { @@ -2830,7 +2797,6 @@ public NavigationNodeDto buildNavigation(Long perusteId, String kieli) { } @Override - @IgnorePerusteUpdateCheck @Cacheable( value= CacheArvot.JULKINEN_PERUSTE_NAVIGOINTI, condition = "#esikatselu == false && #julkaisuRevisio == null", diff --git a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/PerusteenMuokkaustietoServiceImpl.java b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/PerusteenMuokkaustietoServiceImpl.java index 14bd6b93b..ed10135fc 100644 --- a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/PerusteenMuokkaustietoServiceImpl.java +++ b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/PerusteenMuokkaustietoServiceImpl.java @@ -18,7 +18,7 @@ import fi.vm.sade.eperusteet.repository.PerusteenMuokkaustietoRepository; import fi.vm.sade.eperusteet.service.KayttajanTietoService; import fi.vm.sade.eperusteet.service.PerusteenMuokkaustietoService; -import fi.vm.sade.eperusteet.service.event.aop.IgnorePerusteUpdateCheck; + import fi.vm.sade.eperusteet.service.mapping.Dto; import fi.vm.sade.eperusteet.service.mapping.DtoMapper; import fi.vm.sade.eperusteet.service.util.SecurityUtil; @@ -84,13 +84,11 @@ public List getPerusteenMuokkausTietos(Long peruste } @Override - @IgnorePerusteUpdateCheck public void addMuokkaustieto(Long perusteId, HistoriaTapahtuma historiaTapahtuma, MuokkausTapahtuma muokkausTapahtuma) { addMuokkaustieto(perusteId, historiaTapahtuma, muokkausTapahtuma, historiaTapahtuma.getNavigationType(), null); } @Override - @IgnorePerusteUpdateCheck public void addMuokkaustieto(Long perusteId, HistoriaTapahtuma historiaTapahtuma, MuokkausTapahtuma muokkausTapahtuma, Set lisaparametrit) { addMuokkaustieto(perusteId, historiaTapahtuma, muokkausTapahtuma, historiaTapahtuma.getNavigationType(), null, lisaparametrit); } diff --git a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/PerusteenOsaServiceImpl.java b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/PerusteenOsaServiceImpl.java index c7b132c74..bca4706ac 100644 --- a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/PerusteenOsaServiceImpl.java +++ b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/PerusteenOsaServiceImpl.java @@ -25,7 +25,7 @@ import fi.vm.sade.eperusteet.service.PerusteenMuokkaustietoService; import fi.vm.sade.eperusteet.service.PerusteenOsaService; import fi.vm.sade.eperusteet.service.PerusteenOsaViiteService; -import fi.vm.sade.eperusteet.service.event.PerusteUpdatedEvent; + import fi.vm.sade.eperusteet.service.exception.BusinessRuleViolationException; import fi.vm.sade.eperusteet.service.exception.NotExistsException; import fi.vm.sade.eperusteet.service.internal.LockManager; @@ -197,7 +197,6 @@ public T update(T perusteenOsaDto) { current.mergeState(updated); current = perusteenOsaRepo.save(current); - notifyUpdate(current); mapper.map(current, perusteenOsaDto); return perusteenOsaDto; } @@ -364,26 +363,9 @@ public OsaAlueKokonaanDto updateTutkinnonOsaOsaAlue(Long viiteId, Long osaAlueId osaAlueRepository.save(osaAlueEntity); aiheutaUusiTutkinnonOsaViiteRevisio(viiteId); - notifyUpdate(viite.getTutkinnonOsa()); return mapper.map(osaAlueEntity, OsaAlueKokonaanDto.class); } - private void notifyUpdate(PerusteenOsa osa) { - // Varmistetaan että tutkinnon osan muokkaus muuttaa valmiiden perusteiden viimeksi muokattu -päivämäärää (ja aiheuttaa uuden version). - if (osa.getTila() == PerusteTila.VALMIS) { - Set perusteIds; - if ( osa instanceof TutkinnonOsa ) { - perusteIds = perusteet.findByTutkinnonosaId(osa.getId(), PerusteTila.VALMIS); - } else { - final List roots = perusteenOsaViiteRepository.findRootsByPerusteenOsaId(osa.getId()); - perusteIds = roots.isEmpty() ? Collections.emptySet() : perusteet.findBySisaltoRoots(roots, PerusteTila.VALMIS); - } - for (Long perusteId : perusteIds) { - eventPublisher.publishEvent(PerusteUpdatedEvent.of(this, perusteId)); - } - } - } - private List connectAmmattitaitovaatimusListToOsaamistavoite(Osaamistavoite tavoite) { for (AmmattitaitovaatimuksenKohdealue ammattitaitovaatimuksenKohdealue : tavoite.getAmmattitaitovaatimuksetLista()) { ammattitaitovaatimuksenKohdealue.connectAmmattitaitovaatimuksetToKohdealue( ammattitaitovaatimuksenKohdealue ); @@ -546,7 +528,6 @@ public OsaamistavoiteLaajaDto updateOsaamistavoite(Long id, Long osaAlueId, Long } Osaamistavoite osaamistavoiteUusi = mapper.map(osaamistavoite, Osaamistavoite.class); osaamistavoiteEntity.mergeState(osaamistavoiteUusi); - notifyUpdate(perusteenOsaRepo.findById(id).orElse(null)); return mapper.map(osaamistavoiteEntity, OsaamistavoiteLaajaDto.class); } diff --git a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/PerusteprojektiServiceImpl.java b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/PerusteprojektiServiceImpl.java index 81ca652b5..3b8e19887 100644 --- a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/PerusteprojektiServiceImpl.java +++ b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/PerusteprojektiServiceImpl.java @@ -78,7 +78,7 @@ import fi.vm.sade.eperusteet.service.PerusteprojektiService; import fi.vm.sade.eperusteet.service.ProjektiValidator; import fi.vm.sade.eperusteet.service.TiedoteService; -import fi.vm.sade.eperusteet.service.event.aop.IgnorePerusteUpdateCheck; + import fi.vm.sade.eperusteet.service.exception.BusinessRuleViolationException; import fi.vm.sade.eperusteet.service.mapping.Dto; import fi.vm.sade.eperusteet.service.mapping.DtoMapper; @@ -602,7 +602,6 @@ public OmistajaDto isOwner(Long id, Long perusteenOsaId) { } @Override - @IgnorePerusteUpdateCheck @Transactional public List validoiProjekti(Long id, ProjektiTila tila) { return projektiValidator.run(id, tila); @@ -610,7 +609,6 @@ public List validoiProjekti(Long id, ProjektiTila tila) { @Override - @IgnorePerusteUpdateCheck @Transactional public TilaUpdateStatus updateTila(Long id, ProjektiTila tila, TiedoteDto tiedoteDto) { @@ -702,7 +700,6 @@ public TilaUpdateStatus updateTila(Long id, ProjektiTila tila, TiedoteDto tiedot } @Override - @IgnorePerusteUpdateCheck @Transactional public void updateProjektiTila(Long id, ProjektiTila tila) { Perusteprojekti projekti = repository.findById(id).orElse(null); @@ -714,7 +711,6 @@ public void updateProjektiTila(Long id, ProjektiTila tila) { } @Override - @IgnorePerusteUpdateCheck @Transactional public void avaaPerusteProjekti(Long id) { Perusteprojekti projekti = repository.findById(id).orElse(null); @@ -953,7 +949,6 @@ public List getSisallonTyoryhmat(Long perusteProjektiId } @Override - @IgnorePerusteUpdateCheck @Transactional(propagation = Propagation.NEVER) public void lataaMaarayskirjeetTask() { diff --git a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/SkeduloituajoServiceImpl.java b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/SkeduloituajoServiceImpl.java index b480f6f67..3b1f9a936 100644 --- a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/SkeduloituajoServiceImpl.java +++ b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/SkeduloituajoServiceImpl.java @@ -4,7 +4,7 @@ import fi.vm.sade.eperusteet.domain.SkeduloituAjoStatus; import fi.vm.sade.eperusteet.repository.SkeduloituajoRepository; import fi.vm.sade.eperusteet.service.SkeduloituajoService; -import fi.vm.sade.eperusteet.service.event.aop.IgnorePerusteUpdateCheck; + import java.util.Date; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -18,7 +18,7 @@ public class SkeduloituajoServiceImpl implements SkeduloituajoService { @Autowired private SkeduloituajoRepository skeduloituajoRepository; - @IgnorePerusteUpdateCheck + @Override public SkeduloituAjo haeTaiLisaaAjo(String nimi) { SkeduloituAjo skeduloituajo = skeduloituajoRepository.findByNimi(nimi); @@ -29,7 +29,7 @@ public SkeduloituAjo haeTaiLisaaAjo(String nimi) { return skeduloituajo; } - @IgnorePerusteUpdateCheck + @Override public SkeduloituAjo lisaaUusiAjo(String nimi) { return skeduloituajoRepository.save(SkeduloituAjo.builder() @@ -38,7 +38,7 @@ public SkeduloituAjo lisaaUusiAjo(String nimi) { .build()); } - @IgnorePerusteUpdateCheck + @Transactional(propagation = Propagation.REQUIRES_NEW) @Override public SkeduloituAjo paivitaAjoStatus(SkeduloituAjo skeduloituAjo, SkeduloituAjoStatus status) { @@ -47,7 +47,7 @@ public SkeduloituAjo paivitaAjoStatus(SkeduloituAjo skeduloituAjo, SkeduloituAjo } @Transactional(propagation = Propagation.REQUIRES_NEW) - @IgnorePerusteUpdateCheck + @Override public SkeduloituAjo pysaytaAjo(SkeduloituAjo skeduloituAjo) { skeduloituAjo.setStatus(SkeduloituAjoStatus.PYSAYTETTY); @@ -56,7 +56,7 @@ public SkeduloituAjo pysaytaAjo(SkeduloituAjo skeduloituAjo) { } @Transactional(propagation = Propagation.REQUIRES_NEW) - @IgnorePerusteUpdateCheck + @Override public SkeduloituAjo kaynnistaAjo(SkeduloituAjo skeduloituAjo) { skeduloituAjo.setStatus(SkeduloituAjoStatus.AJOSSA); diff --git a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/TutkintonimikeKoodiServiceImpl.java b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/TutkintonimikeKoodiServiceImpl.java index 510c3170c..ffa0e34d1 100644 --- a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/TutkintonimikeKoodiServiceImpl.java +++ b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/TutkintonimikeKoodiServiceImpl.java @@ -4,7 +4,7 @@ import fi.vm.sade.eperusteet.dto.peruste.TutkintonimikeKoodiDto; import fi.vm.sade.eperusteet.repository.TutkintonimikeKoodiRepository; import fi.vm.sade.eperusteet.service.TutkintonimikeKoodiService; -import fi.vm.sade.eperusteet.service.event.aop.IgnorePerusteUpdateCheck; + import fi.vm.sade.eperusteet.service.mapping.Dto; import fi.vm.sade.eperusteet.service.mapping.DtoMapper; import org.springframework.beans.factory.annotation.Autowired; @@ -24,7 +24,6 @@ public class TutkintonimikeKoodiServiceImpl implements TutkintonimikeKoodiServic private TutkintonimikeKoodiRepository tutkintonimikeKoodiRepository; @Transactional(readOnly = true) - @IgnorePerusteUpdateCheck public List getTutkintonimikekoodit(Long perusteId) { List koodit = tutkintonimikeKoodiRepository.findByPerusteId(perusteId); return mapper.mapAsList(koodit, TutkintonimikeKoodiDto.class); diff --git a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/yl/Lops2019ServiceImpl.java b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/yl/Lops2019ServiceImpl.java index 4b1b66a35..c8b081385 100644 --- a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/yl/Lops2019ServiceImpl.java +++ b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/yl/Lops2019ServiceImpl.java @@ -22,8 +22,8 @@ import fi.vm.sade.eperusteet.repository.version.Revision; import fi.vm.sade.eperusteet.service.PerusteenMuokkaustietoService; import fi.vm.sade.eperusteet.service.PerusteenOsaViiteService; -import fi.vm.sade.eperusteet.service.event.PerusteUpdatedEvent; -import fi.vm.sade.eperusteet.service.event.aop.IgnorePerusteUpdateCheck; + + import fi.vm.sade.eperusteet.service.exception.BusinessRuleViolationException; import fi.vm.sade.eperusteet.service.mapping.Dto; import fi.vm.sade.eperusteet.service.mapping.DtoMapper; @@ -42,7 +42,7 @@ @Service @Transactional -public class Lops2019ServiceImpl implements Lops2019Service, ApplicationListener { +public class Lops2019ServiceImpl implements Lops2019Service { @Autowired private EntityManager em; @@ -135,8 +135,6 @@ public Lops2019LaajaAlainenOsaaminenKokonaisuusDto updateLaajaAlainenOsaaminenKo sisalto = sisaltoRepository.save(sisalto); - onApplicationEvent(PerusteUpdatedEvent.of(this, perusteId)); - addLaajaAlainenMuokkaustieto(perusteId, mapper.mapAsList(originalKokonaisuusCopy.getLaajaAlaisetOsaamiset(), Lops2019LaajaAlainenOsaaminen.class), kokonaisuus.getLaajaAlaisetOsaamiset()); return mapper.map(sisalto.getLaajaAlainenOsaaminen(), Lops2019LaajaAlainenOsaaminenKokonaisuusDto.class); } @@ -182,7 +180,6 @@ public Lops2019LaajaAlainenOsaaminenDto addLaajaAlainenOsaaminen(final Long peru } @Override - @IgnorePerusteUpdateCheck public List getOppiaineet(final Long perusteId) { final Lops2019Sisalto sisalto = sisaltoRepository.findByPerusteId(perusteId); return mapper.mapAsList(sisalto.getOppiaineet(), Lops2019OppiaineDto.class); @@ -380,7 +377,6 @@ public void palautaOppiaineenModuulit(final Long perusteId, final Long id) { } @Override - @IgnorePerusteUpdateCheck public Lops2019OppiaineKaikkiDto getOppiaineKaikki(final Long perusteId, final Long oppiaineId) { final Lops2019Oppiaine oppiaine = this.findOppiaine(perusteId, oppiaineId); final Lops2019OppiaineKaikkiDto oppiaineDto = mapper.map(oppiaine, Lops2019OppiaineKaikkiDto.class); @@ -472,8 +468,6 @@ public Lops2019OppiaineDto updateOppiaine(final Long perusteId, final Lops2019Op oppiaineDto.setOppimaarat(mapper.mapAsList(oppiaine.getOppimaarat(), Lops2019OppiaineDto.class)); oppiaineDto.setModuulit(mapper.mapAsList(oppiaine.getModuulit(), Lops2019ModuuliBaseDto.class)); - onApplicationEvent(PerusteUpdatedEvent.of(this, perusteId)); - return oppiaineDto; } @@ -552,8 +546,6 @@ public Lops2019ModuuliDto updateModuuli(final Long perusteId, final Lops2019Modu moduuli = moduuliRepository.save(moduuli); - onApplicationEvent(PerusteUpdatedEvent.of(this, perusteId)); - return mapper.map(moduuli, Lops2019ModuuliDto.class); } @@ -575,19 +567,4 @@ public void removeModuuli(final Long perusteId, final Long oppiaineId, final Lon } muokkausTietoService.addMuokkaustieto(perusteId, oppiaine, MuokkausTapahtuma.PAIVITYS); } - - @Override - @IgnorePerusteUpdateCheck - @Transactional - public void onApplicationEvent(PerusteUpdatedEvent event) { - Peruste peruste = perusteRepository.findOne(event.getPerusteId()); - if (peruste == null) { - return; - } - Date muokattu = new Date(); - if (peruste.getGlobalVersion() == null) { - peruste.setGlobalVersion(new PerusteVersion(peruste)); - } - peruste.getGlobalVersion().setAikaleima(muokattu); - } } diff --git a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/yl/LukiokoulutuksenPerusteenSisaltoServiceImpl.java b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/yl/LukiokoulutuksenPerusteenSisaltoServiceImpl.java index 5e0848655..42739f9fd 100644 --- a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/yl/LukiokoulutuksenPerusteenSisaltoServiceImpl.java +++ b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/yl/LukiokoulutuksenPerusteenSisaltoServiceImpl.java @@ -14,7 +14,7 @@ import fi.vm.sade.eperusteet.repository.*; import fi.vm.sade.eperusteet.repository.version.Revision; import fi.vm.sade.eperusteet.service.LokalisointiService; -import fi.vm.sade.eperusteet.service.event.aop.IgnorePerusteUpdateCheck; + import fi.vm.sade.eperusteet.service.exception.NotExistsException; import fi.vm.sade.eperusteet.service.yl.KurssiService; import fi.vm.sade.eperusteet.service.yl.LukiokoulutuksenPerusteenSisaltoService; @@ -139,7 +139,6 @@ private Stream rakenneRevisionOppiaineet(LukioOpetussuunnitelmaRakenne @Override @Transactional(readOnly = true) - @IgnorePerusteUpdateCheck public LukioOppiainePuuDto getOppiaineTreeStructure(long perusteId) { found(sisaltoRepository.findLukioperusteenTilaByPerusteId(perusteId), t -> t != PerusteTila.POISTETTU); diff --git a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/yl/OppiaineServiceImpl.java b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/yl/OppiaineServiceImpl.java index cba8ca2d6..ea6c37887 100644 --- a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/yl/OppiaineServiceImpl.java +++ b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/yl/OppiaineServiceImpl.java @@ -15,7 +15,7 @@ import fi.vm.sade.eperusteet.service.LockCtx; import fi.vm.sade.eperusteet.service.LockService; import fi.vm.sade.eperusteet.service.PerusteenMuokkaustietoService; -import fi.vm.sade.eperusteet.service.event.PerusteUpdatedEvent; + import fi.vm.sade.eperusteet.service.exception.BusinessRuleViolationException; import fi.vm.sade.eperusteet.service.exception.NotExistsException; import fi.vm.sade.eperusteet.service.mapping.Dto; @@ -423,7 +423,6 @@ private OppiaineenVuosiluokkaKokonaisuus doUpdateOppiaineenVuosiluokkaKokonaisuu ovk = vuosiluokkakokonaisuusRepository.save(ovk); ovk.getOppiaine().muokattu(); oppiaineRepository.setRevisioKommentti("Muokattu oppiaineen vuosiluokkakokonaisuutta"); - eventPublisher.publishEvent(PerusteUpdatedEvent.of(this, sisalto.getPeruste().getId())); return ovk; } diff --git a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/yl/VuosiluokkaKokonaisuusServiceImpl.java b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/yl/VuosiluokkaKokonaisuusServiceImpl.java index 46c85b75b..af5c46353 100644 --- a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/yl/VuosiluokkaKokonaisuusServiceImpl.java +++ b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/impl/yl/VuosiluokkaKokonaisuusServiceImpl.java @@ -15,7 +15,7 @@ import fi.vm.sade.eperusteet.service.LockCtx; import fi.vm.sade.eperusteet.service.LockService; import fi.vm.sade.eperusteet.service.PerusteenMuokkaustietoService; -import fi.vm.sade.eperusteet.service.event.PerusteUpdatedEvent; + import fi.vm.sade.eperusteet.service.exception.BusinessRuleViolationException; import fi.vm.sade.eperusteet.service.mapping.Dto; import fi.vm.sade.eperusteet.service.mapping.DtoMapper; @@ -145,7 +145,6 @@ public VuosiluokkaKokonaisuusDto updateVuosiluokkaKokonaisuus(Long perusteId, Up mapper.map(dto, vk); kokonaisuusRepository.setRevisioKommentti(updateDto.getMetadataOrEmpty().getKommentti()); kokonaisuusRepository.save(vk); - eventPublisher.publishEvent(PerusteUpdatedEvent.of(this, perusteId)); muokkausTietoService.addMuokkaustieto(perusteId, vk, MuokkausTapahtuma.PAIVITYS); return mapper.map(vk, VuosiluokkaKokonaisuusDto.class); } diff --git a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/tasks/AbstractScheduledTask.java b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/tasks/AbstractScheduledTask.java index 7182412f2..9eb9e9c51 100644 --- a/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/tasks/AbstractScheduledTask.java +++ b/eperusteet/eperusteet-service/src/main/java/fi/vm/sade/eperusteet/service/tasks/AbstractScheduledTask.java @@ -4,7 +4,7 @@ import fi.vm.sade.eperusteet.domain.SkeduloituAjoStatus; import fi.vm.sade.eperusteet.service.ScheduledTask; import fi.vm.sade.eperusteet.service.SkeduloituajoService; -import fi.vm.sade.eperusteet.service.event.aop.IgnorePerusteUpdateCheck; + import fi.vm.sade.eperusteet.service.exception.SkeduloituAjoAlreadyRunningException; import java.util.Date; import org.springframework.beans.factory.annotation.Autowired; @@ -22,7 +22,7 @@ public String getName() { return this.getClass().getSimpleName(); } - @IgnorePerusteUpdateCheck + @Override public void execute() { SkeduloituAjo skeduloituajo = skeduloituajoService.haeTaiLisaaAjo(getName()); @@ -42,7 +42,7 @@ public void execute() { } @Async - @IgnorePerusteUpdateCheck + @Override public void executeAsync() { execute(); diff --git a/eperusteet/eperusteet-service/src/test/java/fi/vm/sade/eperusteet/service/OppiaineServiceIT.java b/eperusteet/eperusteet-service/src/test/java/fi/vm/sade/eperusteet/service/OppiaineServiceIT.java index 02b7f9ce7..bc3f97503 100644 --- a/eperusteet/eperusteet-service/src/test/java/fi/vm/sade/eperusteet/service/OppiaineServiceIT.java +++ b/eperusteet/eperusteet-service/src/test/java/fi/vm/sade/eperusteet/service/OppiaineServiceIT.java @@ -169,7 +169,7 @@ public void testCRUD() throws IOException { versionDto = perusteService.getPerusteVersion(perusteId); vkDto = service.updateOppiaineenVuosiluokkaKokonaisuus(perusteId, oa.getId(), new UpdateDto<>(vkDto)); - assertNotEquals(perusteService.getPerusteVersion(perusteId).getAikaleima(), versionDto.getAikaleima()); + assertEquals(vkDto.getTavoitteet().get(0).getTavoite().get().get(Kieli.FI), "Tässäpä jokin kiva tavoite"); List arvioinnit = new ArrayList<>(vkDto.getTavoitteet().get(0).getArvioinninkohteet()).stream() .sorted(Comparator.comparing(arviointi -> arviointi.getArvosana().get())) diff --git a/eperusteet/eperusteet-service/src/test/java/fi/vm/sade/eperusteet/service/PerusteprojektiServiceTilaIT.java b/eperusteet/eperusteet-service/src/test/java/fi/vm/sade/eperusteet/service/PerusteprojektiServiceTilaIT.java index 263c03580..5837ece5a 100644 --- a/eperusteet/eperusteet-service/src/test/java/fi/vm/sade/eperusteet/service/PerusteprojektiServiceTilaIT.java +++ b/eperusteet/eperusteet-service/src/test/java/fi/vm/sade/eperusteet/service/PerusteprojektiServiceTilaIT.java @@ -243,9 +243,9 @@ public void testUpdateTilaLaadintaToViimeistelyEpaValidiRakenne() { lockService.lock(ctx); long perusteId = projektiDto.getPeruste().getIdLong(); - PerusteVersionDto versionDto = perusteService.getPerusteVersion(perusteId); +// PerusteVersionDto versionDto = perusteService.getPerusteVersion(perusteId); perusteService.updateTutkinnonRakenne(new Long(projektiDto.getPeruste().getId()), Suoritustapakoodi.NAYTTO, luoEpaValidiRakenne(new Long(projektiDto.getPeruste().getId()), Suoritustapakoodi.NAYTTO, PerusteTila.LUONNOS)); - assertNotEquals(perusteService.getPerusteVersion(perusteId).getAikaleima(), versionDto.getAikaleima()); +// assertNotEquals(perusteService.getPerusteVersion(perusteId).getAikaleima(), versionDto.getAikaleima()); final TilaUpdateStatus status = service.updateTila(projektiDto.getId(), ProjektiTila.JULKAISTU, null); diff --git a/eperusteet/eperusteet-service/src/test/java/fi/vm/sade/eperusteet/service/util/JulkaisuPerusteTilaServiceMock.java b/eperusteet/eperusteet-service/src/test/java/fi/vm/sade/eperusteet/service/util/JulkaisuPerusteTilaServiceMock.java index afefc5281..675eaba53 100644 --- a/eperusteet/eperusteet-service/src/test/java/fi/vm/sade/eperusteet/service/util/JulkaisuPerusteTilaServiceMock.java +++ b/eperusteet/eperusteet-service/src/test/java/fi/vm/sade/eperusteet/service/util/JulkaisuPerusteTilaServiceMock.java @@ -3,7 +3,7 @@ import fi.vm.sade.eperusteet.domain.JulkaisuPerusteTila; import fi.vm.sade.eperusteet.repository.JulkaisuPerusteTilaRepository; import fi.vm.sade.eperusteet.service.JulkaisuPerusteTilaService; -import fi.vm.sade.eperusteet.service.event.aop.IgnorePerusteUpdateCheck; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Profile; import org.springframework.stereotype.Service; @@ -18,7 +18,6 @@ public class JulkaisuPerusteTilaServiceMock implements JulkaisuPerusteTilaServic private JulkaisuPerusteTilaRepository julkaisuPerusteTilaRepository; @Override - @IgnorePerusteUpdateCheck public void saveJulkaisuPerusteTila(JulkaisuPerusteTila julkaisuPerusteTila) { julkaisuPerusteTilaRepository.save(julkaisuPerusteTila); }