Merge branch 'DEVELOP' of ssh://git.eclipse.org:29418/openk-usermodules/org.eclipse.openk-usermodules.gridFailureInformation.backend into SI-71-ZyklischerJob-Holen-veroeffentlichter-Meldungen
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/config/DmzExportSchedulerConfig.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/config/DmzExportSchedulerConfig.java
new file mode 100644
index 0000000..a0051a5
--- /dev/null
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/config/DmzExportSchedulerConfig.java
@@ -0,0 +1,38 @@
+package org.eclipse.openk.gridfailureinformation.config;
+
+import lombok.extern.log4j.Log4j2;
+import org.eclipse.openk.gridfailureinformation.service.ExportService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.scheduling.annotation.Scheduled;
+
+@Log4j2
+@Configuration
+@EnableScheduling
+@ConditionalOnProperty(prefix = "export-to-dmz", name = "enabled", havingValue = "true", matchIfMissing = false)
+public class DmzExportSchedulerConfig {
+
+ private static final String SCHEDULER_NAME = "DmzExport-Scheduler";
+
+ @Autowired
+ ExportService exportService;
+
+ @Value("${export-to-dmz.cron}")
+ private String cronExpression;
+
+ @Bean
+ public void logConfigLDmzExport() {
+
+ }
+
+ @Scheduled(cron = "${export-to-dmz.cron}")
+ public void scheduleTaskDmzExport() {
+ log.info("Executing" + SCHEDULER_NAME + " task: Exporting FailureInformations with Status 'published' to DMZ" );
+ exportService.exportFailureInformationsToDMZ();
+ log.info("Finished " + SCHEDULER_NAME + " task: Exporting FailureInformations with Status 'published' to DMZ");
+ }
+}
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/repository/FailureInformationRepository.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/repository/FailureInformationRepository.java
index a18eede..bfbb4e3 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/repository/FailureInformationRepository.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/repository/FailureInformationRepository.java
@@ -35,6 +35,8 @@
List<TblFailureInformation> findByUuidIn(List<UUID> uuidList);
+ List<TblFailureInformation> findByPublicationStatus(String publicationStatus);
+
Optional<TblFailureInformation> findByObjectReferenceExternalSystem(String extRef );
@Query("select fi from TblFailureInformation fi where fi.tblFailureInformationCondensed.uuid = :uuid")
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/ExportService.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/ExportService.java
index 7c68a89..a4eb66c 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/ExportService.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/ExportService.java
@@ -7,6 +7,7 @@
import org.eclipse.openk.gridfailureinformation.config.rabbitMq.RabbitMqChannel;
import org.eclipse.openk.gridfailureinformation.config.rabbitMq.RabbitMqConfig;
import org.eclipse.openk.gridfailureinformation.config.rabbitMq.RabbitMqProperties;
+import org.eclipse.openk.gridfailureinformation.constants.Constants;
import org.eclipse.openk.gridfailureinformation.exceptions.InternalServerErrorException;
import org.eclipse.openk.gridfailureinformation.exceptions.NotFoundException;
import org.eclipse.openk.gridfailureinformation.mapper.FailureInformationMapper;
@@ -169,6 +170,27 @@
return true;
}
+ public boolean exportFailureInformationsToDMZ(){
+
+ // Holen der in die DMZ zu exportierenden FailureInfos
+ List<TblFailureInformation> tblFailureInfosVeroeffentlicht = failureInformationRepository
+ .findByPublicationStatus(Constants.PUB_STATUS_VEROEFFENTLICHT);
+
+ List<FailureInformationDto> failureInfoDtossVeroeffentlicht = tblFailureInfosVeroeffentlicht.stream()
+ .map( failureInformationMapper::toFailureInformationDto )
+ .collect(Collectors.toList());
+
+ // wohin damit? Frontend-Service, an den die Störungsinformationen geposted werden fehlt noch
+ try{
+ // Aufruf Frontend-Service
+ return true;
+ }
+ catch(Exception e){
+ return false;
+ }
+
+ }
+
private boolean isChannelAlreadyPublished(String targetChannel, TblFailureInformation existingTblFailureInfo) {
List<TblFailureInformationPublicationChannel> publicationChannelList = publicationChannelRepository.findByTblFailureInformation(existingTblFailureInfo);
diff --git a/gfsBackendService/src/main/resources/application.yml b/gfsBackendService/src/main/resources/application.yml
index 43020f3..f05dd3c 100644
--- a/gfsBackendService/src/main/resources/application.yml
+++ b/gfsBackendService/src/main/resources/application.yml
@@ -109,6 +109,10 @@
distribution-group-publisher:
name: Veröffentlicher
distribution-text: Bitte anpassen
+
+export-to-dmz:
+ enabled: true
+ cron: 0 */1 * ? * *
---
spring:
diff --git a/gfsBackendService/src/main/resources/application_localdev.yml b/gfsBackendService/src/main/resources/application_localdev.yml
index 296a749..c6ce471 100644
--- a/gfsBackendService/src/main/resources/application_localdev.yml
+++ b/gfsBackendService/src/main/resources/application_localdev.yml
@@ -108,6 +108,10 @@
name: Veröffentlicher
distribution-text: Bitte anpassen
+export-to-dmz:
+ enabled: true
+ cron: 0 */1 * ? * *
+
---
spring: