Merge branch 'DEVELOP'
diff --git a/SAMO-Interface/src/main/java/org/eclipse/openk/gridfailureinformation/samointerface/dtos/ForeignFailureDataDto.java b/SAMO-Interface/src/main/java/org/eclipse/openk/gridfailureinformation/samointerface/dtos/ForeignFailureDataDto.java
index fb596bf..0733732 100644
--- a/SAMO-Interface/src/main/java/org/eclipse/openk/gridfailureinformation/samointerface/dtos/ForeignFailureDataDto.java
+++ b/SAMO-Interface/src/main/java/org/eclipse/openk/gridfailureinformation/samointerface/dtos/ForeignFailureDataDto.java
@@ -30,6 +30,14 @@
@Data
public class ForeignFailureDataDto implements Serializable {
+ private boolean isAutopublish;
+
+ private boolean isOnceOnlyImport;
+
+ private boolean isExcludeEquals;
+
+ private boolean isExcludeAlreadyEdited;
+
@NotNull
private boolean isPlanned;
diff --git a/SAMO-Interface/src/main/java/org/eclipse/openk/gridfailureinformation/samointerface/service/ImportService.java b/SAMO-Interface/src/main/java/org/eclipse/openk/gridfailureinformation/samointerface/service/ImportService.java
index e652684..b8a7acf 100644
--- a/SAMO-Interface/src/main/java/org/eclipse/openk/gridfailureinformation/samointerface/service/ImportService.java
+++ b/SAMO-Interface/src/main/java/org/eclipse/openk/gridfailureinformation/samointerface/service/ImportService.java
@@ -24,6 +24,7 @@
import org.eclipse.openk.gridfailureinformation.samointerface.exceptions.InternalServerErrorException;
import org.eclipse.openk.gridfailureinformation.samointerface.mapper.SAMOMapper;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.messaging.MessageChannel;
@@ -45,6 +46,15 @@
@Autowired
SAMOMapper samoMapper;
+ @Value("${gridFailureInformation.autopublish:false}")
+ private boolean autopublish;
+ @Value("${gridFailureInformation.onceOnlyImport:false}")
+ private boolean onceOnlyImport;
+ @Value("${gridFailureInformation.excludeEquals:true}")
+ private boolean excludeEquals;
+ @Value("${gridFailureInformation.excludeAlreadyEdited:true}")
+ private boolean excludeAlreadyEdited;
+
public void importSAMOOutage(String samoOutageJson) {
try {
SAMOOutage samoOutage = objectMapper.readValue(samoOutageJson, SAMOOutage.class);
@@ -69,6 +79,10 @@
private ForeignFailureDataDto createForeignFailureData(SAMOOutage samoOutage) {
ForeignFailureDataDto foreignFailureDataDto = samoMapper.toForeignFailureDataDto(samoOutage);
+ foreignFailureDataDto.setAutopublish(autopublish);
+ foreignFailureDataDto.setOnceOnlyImport(onceOnlyImport);
+ foreignFailureDataDto.setExcludeEquals(excludeEquals);
+ foreignFailureDataDto.setExcludeAlreadyEdited(excludeAlreadyEdited);
foreignFailureDataDto.setBranch(Constants.BRANCH_ELECTRICITY); //fixme klärung: logik einbauen
foreignFailureDataDto.setPlanned(false); //fixme klärung
return foreignFailureDataDto;
diff --git a/SAMO-Interface/src/main/resources/application.yml b/SAMO-Interface/src/main/resources/application.yml
index 824c904..fba97c3 100644
--- a/SAMO-Interface/src/main/resources/application.yml
+++ b/SAMO-Interface/src/main/resources/application.yml
@@ -46,6 +46,12 @@
directory: /opt/transfer/SAMOInterfaceDEVsftpTest/
fileFilter: '*.json'
cron: 0/10 * * ? * * # Check for new file in directory every 'cron' time
+
+gridFailureInformation:
+ autopublish: false
+ onceOnlyImport: false
+ excludeEquals: true
+ excludeAlreadyEdited: false
---
spring:
diff --git a/SAMO-Interface/src/main/resources/application_localdev.yml b/SAMO-Interface/src/main/resources/application_localdev.yml
index cc1bc56..35c8064 100644
--- a/SAMO-Interface/src/main/resources/application_localdev.yml
+++ b/SAMO-Interface/src/main/resources/application_localdev.yml
@@ -36,7 +36,10 @@
tracking-modes: cookie
gridFailureInformation:
- maxListSize: 2000
+ autopublish: false
+ onceOnlyImport: false
+ excludeEquals: true
+ excludeAlreadyEdited: true
logging.level.org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.api.StoerauskunftApi: DEBUG
diff --git a/SARIS-Interface/sonar-project.properties b/SARIS-Interface/sonar-project.properties
index 7e18aae..525d25e 100644
--- a/SARIS-Interface/sonar-project.properties
+++ b/SARIS-Interface/sonar-project.properties
@@ -10,10 +10,10 @@
sonar.sourceEncoding=UTF-8
sonar.sources=src/main
-sonar.exclusions=**/model/*.java,**/viewmodel/*.java,**/dtos/*.java, **/RabbitMqConfig.java
+sonar.exclusions=**/model/*.java,**/viewmodel/*.java,**/dtos/*.java, **/RabbitMqConfig.java, **/WebServiceMessageSenderWithAuth.java
sonar.tests=src/test
#sonar.test.inclusions=**/*.spec.ts
-sonar.test.exclusions=**/model/**,**/viewmodel/**,**/dtos/*.java, **/RabbitMqConfig.java
+sonar.test.exclusions=**/model/**,**/viewmodel/**,**/dtos/*.java, **/RabbitMqConfig.java, **/WebServiceMessageSenderWithAuth.java
#sonar.ts.tslintconfigpath=tslint.json
sonar.typescript.lcov.reportPaths=coverage/lcov.info
\ No newline at end of file
diff --git a/SARIS-Interface/src/main/java/org/eclipse/openk/gridfailureinformation/sarisinterface/config/ImportSchedulerConfig.java b/SARIS-Interface/src/main/java/org/eclipse/openk/gridfailureinformation/sarisinterface/config/ImportSchedulerConfig.java
index e744cf3..6b278b6 100644
--- a/SARIS-Interface/src/main/java/org/eclipse/openk/gridfailureinformation/sarisinterface/config/ImportSchedulerConfig.java
+++ b/SARIS-Interface/src/main/java/org/eclipse/openk/gridfailureinformation/sarisinterface/config/ImportSchedulerConfig.java
@@ -26,7 +26,7 @@
private String cronExpression;
@Bean
- public void logConfigLdap() {
+ public void logConfigScheduler() {
log.info(SCHEDULER_NAME + " is enabled with cron expression: " + cronExpression);
}
diff --git a/SARIS-Interface/src/main/java/org/eclipse/openk/gridfailureinformation/sarisinterface/config/rabbitMq/RabbitMqConfig.java b/SARIS-Interface/src/main/java/org/eclipse/openk/gridfailureinformation/sarisinterface/config/rabbitmq/RabbitMqConfig.java
similarity index 95%
rename from SARIS-Interface/src/main/java/org/eclipse/openk/gridfailureinformation/sarisinterface/config/rabbitMq/RabbitMqConfig.java
rename to SARIS-Interface/src/main/java/org/eclipse/openk/gridfailureinformation/sarisinterface/config/rabbitmq/RabbitMqConfig.java
index 5884433..2dd2644 100644
--- a/SARIS-Interface/src/main/java/org/eclipse/openk/gridfailureinformation/sarisinterface/config/rabbitMq/RabbitMqConfig.java
+++ b/SARIS-Interface/src/main/java/org/eclipse/openk/gridfailureinformation/sarisinterface/config/rabbitmq/RabbitMqConfig.java
@@ -1,4 +1,4 @@
-package org.eclipse.openk.gridfailureinformation.sarisinterface.config.rabbitMq;
+package org.eclipse.openk.gridfailureinformation.sarisinterface.config.rabbitmq;
import lombok.Data;
import lombok.extern.log4j.Log4j2;
@@ -32,7 +32,7 @@
private RabbitTemplate rabbitTemplate;
@Autowired
- private RabbitMqProperties rabbitMqProperties;
+ private org.eclipse.openk.gridfailureinformation.sarisinterface.config.rabbitmq.RabbitMqProperties rabbitMqProperties;
@Bean
public MessageChannel failureImportChannel() {
diff --git a/SARIS-Interface/src/main/java/org/eclipse/openk/gridfailureinformation/sarisinterface/config/rabbitMq/RabbitMqProperties.java b/SARIS-Interface/src/main/java/org/eclipse/openk/gridfailureinformation/sarisinterface/config/rabbitmq/RabbitMqProperties.java
similarity index 97%
rename from SARIS-Interface/src/main/java/org/eclipse/openk/gridfailureinformation/sarisinterface/config/rabbitMq/RabbitMqProperties.java
rename to SARIS-Interface/src/main/java/org/eclipse/openk/gridfailureinformation/sarisinterface/config/rabbitmq/RabbitMqProperties.java
index cac6c93..a129a1a 100644
--- a/SARIS-Interface/src/main/java/org/eclipse/openk/gridfailureinformation/sarisinterface/config/rabbitMq/RabbitMqProperties.java
+++ b/SARIS-Interface/src/main/java/org/eclipse/openk/gridfailureinformation/sarisinterface/config/rabbitmq/RabbitMqProperties.java
@@ -1,4 +1,4 @@
-package org.eclipse.openk.gridfailureinformation.sarisinterface.config.rabbitMq;
+package org.eclipse.openk.gridfailureinformation.sarisinterface.config.rabbitmq;
import lombok.Getter;
import lombok.Setter;
diff --git a/SARIS-Interface/src/main/java/org/eclipse/openk/gridfailureinformation/sarisinterface/constants/Constants.java b/SARIS-Interface/src/main/java/org/eclipse/openk/gridfailureinformation/sarisinterface/constants/Constants.java
index 3ca592e..bc05ff9 100644
--- a/SARIS-Interface/src/main/java/org/eclipse/openk/gridfailureinformation/sarisinterface/constants/Constants.java
+++ b/SARIS-Interface/src/main/java/org/eclipse/openk/gridfailureinformation/sarisinterface/constants/Constants.java
@@ -13,9 +13,6 @@
*******************************************************************************
*/
package org.eclipse.openk.gridfailureinformation.sarisinterface.constants;
-
-import org.apache.tomcat.jni.OS;
-
public final class Constants {
public static final String SRC_SARIS = "SARIS";
diff --git a/SARIS-Interface/src/main/java/org/eclipse/openk/gridfailureinformation/sarisinterface/controller/ImportController.java b/SARIS-Interface/src/main/java/org/eclipse/openk/gridfailureinformation/sarisinterface/controller/ImportController.java
index 02ab067..bb064ac 100644
--- a/SARIS-Interface/src/main/java/org/eclipse/openk/gridfailureinformation/sarisinterface/controller/ImportController.java
+++ b/SARIS-Interface/src/main/java/org/eclipse/openk/gridfailureinformation/sarisinterface/controller/ImportController.java
@@ -26,7 +26,10 @@
import org.eclipse.openk.gridfailureinformation.sarisinterface.wsdl.ViewGeplanteVU;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseStatus;
+import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@@ -50,8 +53,8 @@
@ResponseStatus(HttpStatus.OK)
public void importUserNotification() {
importService.importForeignFailures(Constants.SARIS_ELECTRICITY_BRANCH_ID);
- importService.importForeignFailures(Constants.SARIS_GAS_BRANCH_ID);
- importService.importForeignFailures(Constants.SARIS_WATER_BRANCH_ID);
+ /*importService.importForeignFailures(Constants.SARIS_GAS_BRANCH_ID);
+ importService.importForeignFailures(Constants.SARIS_WATER_BRANCH_ID);*/
}
@GetMapping("/response-test")
diff --git a/SARIS-Interface/src/main/java/org/eclipse/openk/gridfailureinformation/sarisinterface/dtos/ForeignFailureDataDto.java b/SARIS-Interface/src/main/java/org/eclipse/openk/gridfailureinformation/sarisinterface/dtos/ForeignFailureDataDto.java
index 4f4b79e..2202cbf 100644
--- a/SARIS-Interface/src/main/java/org/eclipse/openk/gridfailureinformation/sarisinterface/dtos/ForeignFailureDataDto.java
+++ b/SARIS-Interface/src/main/java/org/eclipse/openk/gridfailureinformation/sarisinterface/dtos/ForeignFailureDataDto.java
@@ -32,6 +32,12 @@
private boolean isAutopublish;
+ private boolean isOnceOnlyImport;
+
+ private boolean isExcludeEquals;
+
+ private boolean isExcludeAlreadyEdited;
+
@NotNull
private boolean isPlanned;
diff --git a/SARIS-Interface/src/main/java/org/eclipse/openk/gridfailureinformation/sarisinterface/service/ImportService.java b/SARIS-Interface/src/main/java/org/eclipse/openk/gridfailureinformation/sarisinterface/service/ImportService.java
index 7b28384..a77ce54 100644
--- a/SARIS-Interface/src/main/java/org/eclipse/openk/gridfailureinformation/sarisinterface/service/ImportService.java
+++ b/SARIS-Interface/src/main/java/org/eclipse/openk/gridfailureinformation/sarisinterface/service/ImportService.java
@@ -16,9 +16,9 @@
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.log4j.Log4j2;
+import org.eclipse.openk.gridfailureinformation.sarisinterface.constants.Constants;
import org.eclipse.openk.gridfailureinformation.sarisinterface.dtos.ForeignFailureDataDto;
import org.eclipse.openk.gridfailureinformation.sarisinterface.dtos.ForeignFailureMessageDto;
-import org.eclipse.openk.gridfailureinformation.sarisinterface.constants.Constants;
import org.eclipse.openk.gridfailureinformation.sarisinterface.exceptions.InternalServerErrorException;
import org.eclipse.openk.gridfailureinformation.sarisinterface.mapper.SARISMapper;
import org.eclipse.openk.gridfailureinformation.sarisinterface.wsdl.ArrayOfViewGeplanteVU;
@@ -59,16 +59,24 @@
@Value("${gridFailureInformation.autopublish:false}")
private boolean autopublish;
+ @Value("${gridFailureInformation.onceOnlyImport:false}")
+ private boolean onceOnlyImport;
+ @Value("${gridFailureInformation.excludeEquals:true}")
+ private boolean excludeEquals;
+ @Value("${gridFailureInformation.excludeAlreadyEdited:true}")
+ private boolean excludeAlreadyEdited;
public void importForeignFailures(int sarisSparteId) {
-// GetAktuelleGVUsInfoAllgemeinResponse sarisResponse = sarisWebservice.getAktuelleGVU(sarisSparteId, false);
+// GetAktuelleGVUsInfoAllgemeinResponse sarisResponse = sarisWebservice.getAktuelleGVU(sarisSparteId, false);
- GetAktuelleGVUsInfoAllgemeinResponse sarisResponse = getMockedSarisResponse("sarisRealMockResponse.xml");
+ GetAktuelleGVUsInfoAllgemeinResponse sarisResponse = getMockedSarisResponse("sarisRealMockResponse.xml");
- ArrayOfViewGeplanteVU getAktuelleGVUsInfoAllgemeinResult = sarisResponse.getGetAktuelleGVUsInfoAllgemeinResult();
+ ArrayOfViewGeplanteVU getAktuelleGVUsInfoAllgemeinResult =
+ sarisResponse.getGetAktuelleGVUsInfoAllgemeinResult();
if (getAktuelleGVUsInfoAllgemeinResult != null) {
- List<ViewGeplanteVU> viewGeplanteVU = sarisResponse.getGetAktuelleGVUsInfoAllgemeinResult().getViewGeplanteVU();
+ List<ViewGeplanteVU> viewGeplanteVU =
+ sarisResponse.getGetAktuelleGVUsInfoAllgemeinResult().getViewGeplanteVU();
List<ForeignFailureMessageDto> messageDtoList = new ArrayList<>();
for (ViewGeplanteVU geplanteVU : viewGeplanteVU) {
@@ -108,6 +116,9 @@
ForeignFailureDataDto foreignFailureDataDto = sarisMapper.toForeignFailureDataDto(viewGeplanteVU);
foreignFailureDataDto.setPlanned(true);
foreignFailureDataDto.setAutopublish(autopublish);
+ foreignFailureDataDto.setOnceOnlyImport(onceOnlyImport);
+ foreignFailureDataDto.setExcludeEquals(excludeEquals);
+ foreignFailureDataDto.setExcludeAlreadyEdited(excludeAlreadyEdited);
return foreignFailureDataDto;
}
diff --git a/SARIS-Interface/src/main/java/org/eclipse/openk/gridfailureinformation/sarisinterface/service/WebServiceMessageSenderWithAuth.java b/SARIS-Interface/src/main/java/org/eclipse/openk/gridfailureinformation/sarisinterface/service/WebServiceMessageSenderWithAuth.java
index c0e5ac4..a243544 100644
--- a/SARIS-Interface/src/main/java/org/eclipse/openk/gridfailureinformation/sarisinterface/service/WebServiceMessageSenderWithAuth.java
+++ b/SARIS-Interface/src/main/java/org/eclipse/openk/gridfailureinformation/sarisinterface/service/WebServiceMessageSenderWithAuth.java
@@ -1,15 +1,11 @@
package org.eclipse.openk.gridfailureinformation.sarisinterface.service;
import lombok.extern.log4j.Log4j2;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.stereotype.Service;
import org.springframework.ws.transport.http.HttpUrlConnectionMessageSender;
import java.io.IOException;
import java.net.HttpURLConnection;
+import java.nio.charset.StandardCharsets;
import java.util.Base64;
@Log4j2
@@ -29,9 +25,8 @@
throws IOException {
Base64.Encoder enc = Base64.getEncoder();
String userpassword = user +":"+ password;
- String encodedAuthorization = enc.encodeToString(userpassword.getBytes());
- connection.setRequestProperty("Authorization", "Basic " + encodedAuthorization);
-
+ String encodedAuthorization = enc.encodeToString(userpassword.getBytes(StandardCharsets.UTF_8));
+ connection.setRequestProperty("Authorization", "Basic " + encodedAuthorization); // NOSONAR Basic Authorization is used on the server side of this interface
super.prepareConnection(connection);
}
}
diff --git a/SARIS-Interface/src/main/resources/Stoerungenservice.wsdl b/SARIS-Interface/src/main/resources/Stoerungenservice.wsdl
index f08b388..a4960ca 100644
--- a/SARIS-Interface/src/main/resources/Stoerungenservice.wsdl
+++ b/SARIS-Interface/src/main/resources/Stoerungenservice.wsdl
@@ -1,5 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
-<wsdl:definitions xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://tempuri.org/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s1="http://tempuri.org/AbstractTypes" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" targetNamespace="http://tempuri.org/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+<wsdl:definitions xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://tempuri.org/"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
+ targetNamespace="http://tempuri.org/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<wsdl:types>
<s:schema elementFormDefault="qualified" targetNamespace="http://tempuri.org/">
<s:element name="GetAktuelleGVUsInfoAllgemein">
diff --git a/SARIS-Interface/src/main/resources/application.yml b/SARIS-Interface/src/main/resources/application.yml
index a3eef9e..566947e 100644
--- a/SARIS-Interface/src/main/resources/application.yml
+++ b/SARIS-Interface/src/main/resources/application.yml
@@ -53,10 +53,11 @@
month: 2
year: 2020
-
-
gridFailureInformation:
autopublish: false
+ onceOnlyImport: false
+ excludeEquals: true
+ excludeAlreadyEdited: true
security.endpoint:
user: ${GFI_MANUAL_ENDPOINTS_USERNAME}
diff --git a/SARIS-Interface/src/main/resources/application_localdev.yml b/SARIS-Interface/src/main/resources/application_localdev.yml
index 221bef8..3eb7c08 100644
--- a/SARIS-Interface/src/main/resources/application_localdev.yml
+++ b/SARIS-Interface/src/main/resources/application_localdev.yml
@@ -55,9 +55,14 @@
scheduling-import:
enabled: false
cron: 0 */15 * ? * *
+ testIntegration:
+ day: 11
+ month: 2
+ year: 2020
gridFailureInformation:
autopublish: false
+ onceOnlyImport: false
security.endpoint:
user: ${GFI_MANUAL_ENDPOINTS_USERNAME}
@@ -78,6 +83,10 @@
# importkey: sitImportExchange.failureImportKey_localdev_simon
# Importkanal
- importExchange: sitImportExchange
- importQueue: sitImportQueue
- importkey: sitImportExchange.failureImportKey
+# importExchange: sitImportExchange
+# importQueue: sitImportQueue
+# importkey: sitImportExchange.failureImportKey
+
+ importExchange: sitImportExchange_localdev
+ importQueue: sitImportQueue_localdev
+ importkey: sitImportExchange.failureImportKey_localdev
\ No newline at end of file
diff --git a/SARIS-Interface/src/main/resources/countries.wsdl b/SARIS-Interface/src/main/resources/countries.wsdl
deleted file mode 100644
index 8b56dcc..0000000
--- a/SARIS-Interface/src/main/resources/countries.wsdl
+++ /dev/null
@@ -1,72 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:sch="http://spring.io/guides/gs-producing-web-service" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://spring.io/guides/gs-producing-web-service" targetNamespace="http://spring.io/guides/gs-producing-web-service">
- <wsdl:types>
- <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://spring.io/guides/gs-producing-web-service">
-
- <xs:element name="getCountryRequest">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="name" type="xs:string"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="getCountryResponse">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="country" type="tns:country"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
-
- <xs:complexType name="country">
- <xs:sequence>
- <xs:element name="name" type="xs:string"/>
- <xs:element name="population" type="xs:int"/>
- <xs:element name="capital" type="xs:string"/>
- <xs:element name="currency" type="tns:currency"/>
- </xs:sequence>
- </xs:complexType>
-
- <xs:simpleType name="currency">
- <xs:restriction base="xs:string">
- <xs:enumeration value="GBP"/>
- <xs:enumeration value="EUR"/>
- <xs:enumeration value="PLN"/>
- </xs:restriction>
- </xs:simpleType>
-</xs:schema>
- </wsdl:types>
- <wsdl:message name="getCountryResponse">
- <wsdl:part element="tns:getCountryResponse" name="getCountryResponse">
- </wsdl:part>
- </wsdl:message>
- <wsdl:message name="getCountryRequest">
- <wsdl:part element="tns:getCountryRequest" name="getCountryRequest">
- </wsdl:part>
- </wsdl:message>
- <wsdl:portType name="CountriesPort">
- <wsdl:operation name="getCountry">
- <wsdl:input message="tns:getCountryRequest" name="getCountryRequest">
- </wsdl:input>
- <wsdl:output message="tns:getCountryResponse" name="getCountryResponse">
- </wsdl:output>
- </wsdl:operation>
- </wsdl:portType>
- <wsdl:binding name="CountriesPortSoap11" type="tns:CountriesPort">
- <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
- <wsdl:operation name="getCountry">
- <soap:operation soapAction=""/>
- <wsdl:input name="getCountryRequest">
- <soap:body use="literal"/>
- </wsdl:input>
- <wsdl:output name="getCountryResponse">
- <soap:body use="literal"/>
- </wsdl:output>
- </wsdl:operation>
- </wsdl:binding>
- <wsdl:service name="CountriesPortService">
- <wsdl:port binding="tns:CountriesPortSoap11" name="CountriesPortSoap11">
- <soap:address location="http://localhost:8080/ws"/>
- </wsdl:port>
- </wsdl:service>
-</wsdl:definitions>
\ No newline at end of file
diff --git a/SARIS-Interface/src/test/java/org/eclipse/openk/gridfailureinformation/sarisinterface/config/TestConfiguration.java b/SARIS-Interface/src/test/java/org/eclipse/openk/gridfailureinformation/sarisinterface/config/TestConfiguration.java
index 68162c0..f30151a 100644
--- a/SARIS-Interface/src/test/java/org/eclipse/openk/gridfailureinformation/sarisinterface/config/TestConfiguration.java
+++ b/SARIS-Interface/src/test/java/org/eclipse/openk/gridfailureinformation/sarisinterface/config/TestConfiguration.java
@@ -18,7 +18,7 @@
import com.fasterxml.jackson.databind.ObjectMapper;
import com.rabbitmq.client.Channel;
import org.eclipse.openk.gridfailureinformation.sarisinterface.SarisInterfaceApplication;
-import org.eclipse.openk.gridfailureinformation.sarisinterface.config.rabbitMq.RabbitMqConfig;
+import org.eclipse.openk.gridfailureinformation.sarisinterface.config.rabbitmq.RabbitMqConfig;
import org.eclipse.openk.gridfailureinformation.sarisinterface.mapper.SARISMapperImpl;
import org.springframework.amqp.rabbit.annotation.EnableRabbit;
import org.springframework.amqp.rabbit.connection.Connection;
@@ -29,7 +29,6 @@
import org.springframework.boot.test.context.ConfigFileApplicationContextInitializer;
import org.springframework.context.annotation.Bean;
import org.springframework.messaging.MessageChannel;
-import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.TestPropertySource;
diff --git a/SARIS-Interface/src/test/java/org/eclipse/openk/gridfailureinformation/sarisinterface/controller/ImportControllerTest.java b/SARIS-Interface/src/test/java/org/eclipse/openk/gridfailureinformation/sarisinterface/controller/ImportControllerTest.java
index 375b766..da52550 100644
--- a/SARIS-Interface/src/test/java/org/eclipse/openk/gridfailureinformation/sarisinterface/controller/ImportControllerTest.java
+++ b/SARIS-Interface/src/test/java/org/eclipse/openk/gridfailureinformation/sarisinterface/controller/ImportControllerTest.java
@@ -19,6 +19,7 @@
import org.eclipse.openk.gridfailureinformation.sarisinterface.service.ImportService;
import org.eclipse.openk.gridfailureinformation.sarisinterface.service.SarisWebservice;
import org.eclipse.openk.gridfailureinformation.sarisinterface.support.MockDataHelper;
+import org.eclipse.openk.gridfailureinformation.sarisinterface.wsdl.GetAktuelleGVUsInfoAllgemeinResponse;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
@@ -29,9 +30,11 @@
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.web.servlet.MockMvc;
+import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
@@ -69,4 +72,31 @@
verify(importService, times(0)).importForeignFailures(anyInt());
}
+
+ @Test
+ @WithMockUser(value = "mockedUser")
+ public void shouldCallResponseTest() throws Exception {
+
+ GetAktuelleGVUsInfoAllgemeinResponse mockedSarisResponse = MockDataHelper.getMockedSarisResponse(
+ "sarisRealMockResponse.xml");
+
+ when(sarisWebservice.getAktuelleGVU(anyInt(), anyBoolean())).thenReturn(mockedSarisResponse);
+
+ mockMvc.perform(get("/saris/response-test"))
+ .andExpect(status().is2xxSuccessful());
+
+ verify(sarisWebservice, times(1)).getAktuelleGVU( anyInt(), anyBoolean());
+ }
+
+ @Test
+ @WithMockUser(value = "mockedUser")
+ public void shouldCallResponseTest2() throws Exception {
+
+ when(sarisWebservice.getAktuelleGVU(anyInt(), anyBoolean())).thenReturn(new GetAktuelleGVUsInfoAllgemeinResponse());
+
+ mockMvc.perform(get("/saris/response-test"))
+ .andExpect(status().is2xxSuccessful());
+
+ verify(sarisWebservice, times(1)).getAktuelleGVU( anyInt(), anyBoolean());
+ }
}
\ No newline at end of file
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/ImportService.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/ImportService.java
index 98cfb1e..204b858 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/ImportService.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/ImportService.java
@@ -14,6 +14,8 @@
*/
package org.eclipse.openk.gridfailureinformation.service;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.log4j.Log4j2;
import org.apache.commons.lang.StringUtils;
import org.eclipse.openk.gridfailureinformation.bpmn.impl.GfiProcessState;
@@ -32,11 +34,13 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.Assert;
import org.springframework.validation.annotation.Validated;
import java.math.BigDecimal;
import java.util.LinkedList;
import java.util.List;
+import java.util.Objects;
import java.util.Optional;
import java.util.UUID;
@@ -72,6 +76,9 @@
@Autowired
ProcessHelper processHelper;
+ @Autowired
+ ObjectMapper objectMapper;
+
public boolean validateAndImport(ImportDataDto importDataDto) {
ForeignFailureDataDto foreignFailureDataDto = importDataValidator.readSafeForeignFailureInfo(importDataDto);
@@ -107,7 +114,8 @@
}
FailureInformationDto retVal = failureInformationService.insertFailureInfo(failureInformationDto, gfiProcessState);
- log.info("External failure information [MetaId: " + importDataDto.getMetaId() + "] from " + importDataDto.getSource() + " imported (inserted).");
+ log.info("External failure information [MetaId: " + importDataDto.getMetaId() + "] from "
+ + importDataDto.getSource() + " imported (inserted).");
if (foreignFailureDataDto.isAutopublish()) {
failureInformationService.insertPublicationChannelForFailureInfo(retVal.getUuid(), Constants.PUBLICATION_CHANNEL_OWNDMZ, true);
@@ -117,6 +125,13 @@
return retVal;
} else {
+ if (foreignFailureDataDto.isOnceOnlyImport()) {
+ log.debug("External failure information [MetaId: " + importDataDto.getMetaId() + "] from "
+ + importDataDto.getSource() + " won't be imported because it has already been imported" +
+ " once and flag isOnceOnlyImport is true.");
+ return null;
+ }
+
UUID statusInternIdExistingDto = existingDto.getStatusInternId();
//When status of already existing failureinformation completed or canceled do not update but log it.
@@ -128,8 +143,32 @@
return null;
}
+ FailureInformationDto existingDtoClone = null;
+ try {
+ existingDtoClone = objectMapper
+ .readValue(objectMapper.writeValueAsString(existingDto), FailureInformationDto.class);
+ } catch (JsonProcessingException e) {
+ log.error("Error parsing object (JSON)", e);
+ }
+
FailureInformationDto updatedDto = setUpdateFromForeignDto(importDataDto, foreignFailureDataDto, existingDto);
+ //Is the content of the new failureinformation different compared to the already existing one
+ if (foreignFailureDataDto.isExcludeEquals() && updatedDto.equals(existingDtoClone)){
+ log.debug("External failure information [MetaId: " + importDataDto.getMetaId() + "] from "
+ + importDataDto.getSource() + " hasn't changed, no update will be executed.");
+ return null;
+ }
+
+
+ Assert.notNull(existingDtoClone, "existingDtoClone was null");
+ //Don't update if the failureinformation was already edited by an user
+ if (foreignFailureDataDto.isExcludeAlreadyEdited() && !Objects.equals(updatedDto.getModUser(), existingDtoClone.getModUser())){
+ log.debug("External failure information [MetaId: " + importDataDto.getMetaId() + "] from "
+ + importDataDto.getSource() + " has already been edited in SIT by an user, no update will be executed.");
+ return null;
+ }
+
if(!foreignFailureDataDto.isAutopublish() && statusInternIdExistingDto.equals(
statusService.getStatusFromId(GfiProcessState.QUALIFIED.getStatusValue()).getUuid()
)) {
@@ -138,8 +177,9 @@
);
} else {
if (foreignFailureDataDto.isAutopublish()) {
- processHelper.resetPublishedStateForChannels(updatedDto);
- log.info("Autopublish for external failure information [" + importDataDto.getMetaId() + "] from " + importDataDto.getSource() + " is true, current status remains unchanged.");
+ processHelper.resetPublishedStateForChannels(updatedDto); //FIXME richtig?
+ log.info("Autopublish for external failure information [MetaId: " + importDataDto.getMetaId() + "] from "
+ + importDataDto.getSource() + " is true, current status remains unchanged.");
}
}
@@ -156,11 +196,13 @@
setFromForeignDto(importDataDto, foreignFailureDataDto, failureInformationDto);
failureInformationDto.setCreateUser(importDataDto.getSource());
+ failureInformationDto.setModUser(importDataDto.getSource());
return failureInformationDto;
}
private FailureInformationDto setUpdateFromForeignDto(ImportDataDto importDataDto, ForeignFailureDataDto foreignFailureDataDto, FailureInformationDto failureInformationDto) {
setFromForeignDto(importDataDto, foreignFailureDataDto, failureInformationDto);
+ failureInformationDto.setModUser(importDataDto.getSource());
return failureInformationDto;
}
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/viewmodel/FailureInformationDto.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/viewmodel/FailureInformationDto.java
index 11ae178..529ae1d 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/viewmodel/FailureInformationDto.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/viewmodel/FailureInformationDto.java
@@ -17,12 +17,15 @@
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
+import org.apache.commons.lang.builder.EqualsBuilder;
+import org.apache.commons.lang.builder.HashCodeBuilder;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
+import java.util.Objects;
import java.util.UUID;
@Data
@@ -102,4 +105,21 @@
private List<ArrayList<BigDecimal>> addressPolygonPoints;
private List<UUID> stationIds;
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+
+ if (!(o instanceof FailureInformationDto)) return false;
+
+ FailureInformationDto that = (FailureInformationDto) o;
+
+ return new EqualsBuilder().append(isPlanned, that.isPlanned).append(uuid, that.uuid).append(title,
+ that.title).append(description, that.description).append(versionNumber, that.versionNumber).append(responsibility, that.responsibility).append(voltageLevel, that.voltageLevel).append(pressureLevel, that.pressureLevel).append(failureBegin, that.failureBegin).append(failureEndPlanned, that.failureEndPlanned).append(failureEndResupplied, that.failureEndResupplied).append(internalRemark, that.internalRemark).append(postcode, that.postcode).append(city, that.city).append(district, that.district).append(street, that.street).append(housenumber, that.housenumber).append(stationId, that.stationId).append(stationDescription, that.stationDescription).append(stationCoords, that.stationCoords).append(freetextPostcode, that.freetextPostcode).append(freetextCity, that.freetextCity).append(freetextDistrict, that.freetextDistrict).append(longitude, that.longitude).append(latitude, that.latitude).append(objectReferenceExternalSystem, that.objectReferenceExternalSystem).append(publicationStatus, that.publicationStatus).append(publicationFreetext, that.publicationFreetext).append(condensed, that.condensed).append(condensedCount, that.condensedCount).append(faultLocationArea, that.faultLocationArea).append(createUser, that.createUser).append(modUser, that.modUser).append(failureClassificationId, that.failureClassificationId).append(failureClassification, that.failureClassification).append(failureTypeId, that.failureTypeId).append(failureType, that.failureType).append(statusInternId, that.statusInternId).append(statusIntern, that.statusIntern).append(statusExtern, that.statusExtern).append(branchId, that.branchId).append(branch, that.branch).append(branchDescription, that.branchDescription).append(radiusId, that.radiusId).append(radius, that.radius).append(expectedReasonId, that.expectedReasonId).append(expectedReasonText, that.expectedReasonText).append(failureInformationCondensedId, that.failureInformationCondensedId).append(addressPolygonPoints, that.addressPolygonPoints).append(stationIds, that.stationIds).isEquals();
+ }
+
+ @Override
+ public int hashCode() {
+ return new HashCodeBuilder(17, 37).append(uuid).append(title).append(description).append(versionNumber).append(responsibility).append(voltageLevel).append(pressureLevel).append(failureBegin).append(failureEndPlanned).append(failureEndResupplied).append(internalRemark).append(postcode).append(city).append(district).append(street).append(housenumber).append(stationId).append(stationDescription).append(stationCoords).append(freetextPostcode).append(freetextCity).append(freetextDistrict).append(longitude).append(latitude).append(objectReferenceExternalSystem).append(publicationStatus).append(publicationFreetext).append(condensed).append(condensedCount).append(faultLocationArea).append(createUser).append(modUser).append(failureClassificationId).append(failureClassification).append(isPlanned).append(failureTypeId).append(failureType).append(statusInternId).append(statusIntern).append(statusExtern).append(branchId).append(branch).append(branchDescription).append(radiusId).append(radius).append(expectedReasonId).append(expectedReasonText).append(failureInformationCondensedId).append(addressPolygonPoints).append(stationIds).toHashCode();
+ }
}
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/viewmodel/ForeignFailureDataDto.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/viewmodel/ForeignFailureDataDto.java
index a1846d3..1971e55 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/viewmodel/ForeignFailureDataDto.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/viewmodel/ForeignFailureDataDto.java
@@ -32,6 +32,12 @@
private boolean isAutopublish;
+ private boolean isOnceOnlyImport;
+
+ private boolean isExcludeEquals;
+
+ private boolean isExcludeAlreadyEdited;
+
@NotNull
private boolean isPlanned;