Merge branch 'DEVELOP' of ssh://git.eclipse.org:29418/openk-usermodules/org.eclipse.openk-usermodules.gridFailureInformation.backend into SI-295_VerteilerGruppen
diff --git a/addressImport/src/main/resources/application.yml b/addressImport/src/main/resources/application.yml
index 8d462de..16a5aff 100644
--- a/addressImport/src/main/resources/application.yml
+++ b/addressImport/src/main/resources/application.yml
@@ -13,8 +13,8 @@
 spring:
   datasource:
     url: jdbc:postgresql://entopticadirx:5432/GridFailureInfoDevServer
-    username: gfi_service
-    password: gfi_service
+    username: ${GFI_DB_USERNAME}
+    password: ${GFI_DB_PASSWORD}
 
 server:
   max-http-header-size: 262144
@@ -55,7 +55,6 @@
 
 spring:
   profiles: test
-
   datasource:
     url: jdbc:h2:mem:test;DB_CLOSE_DELAY=-1
 jpa:
@@ -93,8 +92,8 @@
   profiles: qserver
   datasource:
     url: jdbc:postgresql://localhost:5432/GridFailureInfoQaServer
-    username: gfi_service
-    password: gfi_service
+    username: ${GFI_DB_USERNAME}
+    password: ${GFI_DB_PASSWORD}
 
 server:
   port: 9164
diff --git a/addressImport/src/main/resources/application_localdev.yml b/addressImport/src/main/resources/application_localdev.yml
index 1d714c5..8efd5b6 100644
--- a/addressImport/src/main/resources/application_localdev.yml
+++ b/addressImport/src/main/resources/application_localdev.yml
@@ -13,8 +13,8 @@
 spring:
   datasource:
     url: jdbc:postgresql://entopticadirx:5432/GridFailureInfoDevelop
-    username: gfi_service
-    password: gfi_service
+    username: ${GFI_DB_USERNAME}
+    password: ${GFI_DB_PASSWORD}
 
 utm:
   zoneNumber: 32
@@ -72,5 +72,5 @@
   profiles: dev-db
   datasource:
     url: jdbc:postgresql://entopticadirx:5432/GridFailureInfoDevServer
-    username: gfi_service
-    password: gfi_service
\ No newline at end of file
+    username: ${GFI_DB_USERNAME}
+    password: ${GFI_DB_PASSWORD}
\ No newline at end of file
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/GfiGrid.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/GfiGrid.java
index 3d8d943..b4bc353 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/GfiGrid.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/GfiGrid.java
@@ -20,10 +20,7 @@
 import org.eclipse.openk.gridfailureinformation.bpmn.base.ProcessGrid;
 import org.eclipse.openk.gridfailureinformation.bpmn.base.ProcessTask;
 import org.eclipse.openk.gridfailureinformation.bpmn.base.tasks.DecisionTask;
-import org.eclipse.openk.gridfailureinformation.bpmn.impl.tasks.DecideFailureInfoCanceled;
-import org.eclipse.openk.gridfailureinformation.bpmn.impl.tasks.DecideFailureInfoPlanned;
-import org.eclipse.openk.gridfailureinformation.bpmn.impl.tasks.ShortcutTask;
-import org.eclipse.openk.gridfailureinformation.bpmn.impl.tasks.UIStoreFailureInformationTask;
+import org.eclipse.openk.gridfailureinformation.bpmn.impl.tasks.*;
 import org.springframework.stereotype.Component;
 
 import static org.eclipse.openk.gridfailureinformation.bpmn.base.tasks.DecisionTask.OutputPort.NO;
@@ -56,6 +53,12 @@
         ProcessTask publishMessage = register( QUALIFIED,
                 new UIStoreFailureInformationTask( "State QUALIFIED UI Task", true));
 
+        DecisionTask decideUpdated = new DecideFailureInfoUpdated();
+        ProcessTask storeEditStatusUpdated = new ShortcutTask( UPDATED );
+
+        ProcessTask completedEndpoint = register( COMPLETED,
+                new UIStoreFailureInformationTask( "State COMPETED UI Task", true));
+
         //Connect
 
         //Geplante Meldung?
@@ -71,6 +74,13 @@
         //Meldung storniert?
         decideCanceled.connectOutputTo( YES, storeEditStatusCanceled ); //Status nicht speichern da sonst doppelt, -> nächster Porzessschritt
         decideCanceled.connectOutputTo( NO, storeEditStatusQualified ); //Status nicht speichern da sonst doppelt, -> nächster Porzessschritt
+
+        storeEditStatusQualified.connectOutputTo(publishMessage);
+        publishMessage.connectOutputTo(decideUpdated);
+        decideUpdated.connectOutputTo(YES, storeEditStatusUpdated);
+        decideUpdated.connectOutputTo(NO, completedEndpoint);
+
+        storeEditStatusUpdated.connectOutputTo(qualifyMessage);
     }
 
 }
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/tasks/DecideFailureInfoUpdated.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/tasks/DecideFailureInfoUpdated.java
new file mode 100644
index 0000000..11538aa
--- /dev/null
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/tasks/DecideFailureInfoUpdated.java
@@ -0,0 +1,52 @@
+/*
+ *******************************************************************************
+ * Copyright (c) 2018 Contributors to the Eclipse Foundation
+ *
+ * See the NOTICE file(s) distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *******************************************************************************
+ */
+
+package org.eclipse.openk.gridfailureinformation.bpmn.impl.tasks;
+
+import lombok.extern.log4j.Log4j2;
+import org.eclipse.openk.gridfailureinformation.bpmn.base.ProcessException;
+import org.eclipse.openk.gridfailureinformation.bpmn.base.ProcessState;
+import org.eclipse.openk.gridfailureinformation.bpmn.base.tasks.DecisionTask;
+import org.eclipse.openk.gridfailureinformation.bpmn.impl.GfiProcessState;
+import org.eclipse.openk.gridfailureinformation.bpmn.impl.GfiProcessSubject;
+import org.eclipse.openk.gridfailureinformation.exceptions.InternalServerErrorException;
+
+@Log4j2
+public class DecideFailureInfoUpdated extends DecisionTask<GfiProcessSubject> {
+
+    public DecideFailureInfoUpdated() {
+        super("Decision: Ist die Störungsinformation aktualisiert?");
+    }
+
+    @Override
+    public OutputPort decide(GfiProcessSubject subject) throws ProcessException {
+        ProcessState newState = subject.getProcessHelper().getProcessStateFromStatusUuid(
+                subject.getFailureInformationDto().getStatusInternId());
+
+        String loggerOutput1 = "Decide: ";
+
+        if (newState == GfiProcessState.UPDATED) {
+            log.debug(loggerOutput1 + getDescription() + "\" -> Firing YES");
+            return OutputPort.YES;
+        } else if (newState == GfiProcessState.COMPLETED) {
+            log.debug(loggerOutput1 + getDescription() + "\" -> Firing NO");
+            return OutputPort.NO;
+        } else {
+            throw new ProcessException(this.getDescription() + ": Invalid status request:" + newState,
+                    new InternalServerErrorException("invalid.status.request"));
+        }
+    }
+
+}
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/tasks/UIStoreFailureInformationTask.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/tasks/UIStoreFailureInformationTask.java
index bc2e329..310c0d2 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/tasks/UIStoreFailureInformationTask.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/tasks/UIStoreFailureInformationTask.java
@@ -35,7 +35,9 @@
 
     @Override
     protected void onLeaveStep(GfiProcessSubject subject) throws ProcessException {
-        subject.getProcessHelper().storeFailureFromViewModel(subject.getFailureInformationDto());
+        subject.setFailureInformationDto(  // store and refresh the dto in the subject
+            subject.getProcessHelper().storeFailureFromViewModel(subject.getFailureInformationDto())
+        );
     }
 
     @Override
@@ -51,7 +53,7 @@
     @Override
     protected void onStayInTask(GfiProcessSubject subject) throws ProcessException {
         FailureInformationDto failureInformationDto = subject.getProcessHelper().storeFailureFromViewModel(subject.getFailureInformationDto());
-        subject.setFailureInformationDto(failureInformationDto);
+        subject.setFailureInformationDto(failureInformationDto); // store and refresh the dto in the subject
     }
 
     private boolean detectStateChanged( GfiProcessSubject subject ) {
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/controller/AddressController.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/controller/AddressController.java
index 02990aa..3e1778f 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/controller/AddressController.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/controller/AddressController.java
@@ -38,6 +38,15 @@
     @Autowired
     private AddressService addressService;
 
+    @Secured({"ROLE_GRID-FAILURE-ADMIN", "ROLE_GRID-FAILURE-READER", "ROLE_GRID-FAILURE-CREATOR", "ROLE_GRID-FAILURE-QUALIFIER", "ROLE_GRID-FAILURE-PUBLISHER"})
+    @ApiOperation(value = "Anzeigen aller Addressen nach Sparte (optional)")
+    @ApiResponses(value = {@ApiResponse(code = 200, message = "Erfolgreich durchgeführt")})
+    @GetMapping
+    public List<AddressDto> getAddresses(
+            @RequestParam("branch") Optional<String> branch) {
+        return addressService.getAddresses(branch);
+    }
+
     @GetMapping("/{uuid}")
     @Secured({"ROLE_GRID-FAILURE-ADMIN", "ROLE_GRID-FAILURE-READER", "ROLE_GRID-FAILURE-CREATOR", "ROLE_GRID-FAILURE-QUALIFIER", "ROLE_GRID-FAILURE-PUBLISHER"})
     @ApiOperation(value = "Anzeigen einer bestimmten Adresse")
@@ -49,60 +58,60 @@
         return addressService.getAdressByUuid(uuid);
     }
 
-    @ApiOperation(value = "Anzeige aller PLZs")
+    @ApiOperation(value = "Anzeige aller PLZs nach Sparte (optional)")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "Erfolgreich durchgeführt")})
     @GetMapping("/postcodes")
     @Secured({"ROLE_GRID-FAILURE-ADMIN", "ROLE_GRID-FAILURE-READER", "ROLE_GRID-FAILURE-CREATOR", "ROLE_GRID-FAILURE-QUALIFIER", "ROLE_GRID-FAILURE-PUBLISHER"})
-    public List<String> findAllPostCodes() {
-        return addressService.getPostcodes();
+    public List<String> findAllPostCodes(@RequestParam("branch") Optional<String> branch) {
+        return addressService.getPostcodes(branch);
     }
 
-
-    @ApiOperation(value = "Anzeige eines Orte nach Postleitzahl")
+    @ApiOperation(value = "Anzeige aller Orte nach Postleitzahl und Sparte (optional)")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "Erfolgreich durchgeführt")})
     @GetMapping("/communities/{postcode}")
     @Secured({"ROLE_GRID-FAILURE-ADMIN", "ROLE_GRID-FAILURE-READER", "ROLE_GRID-FAILURE-CREATOR", "ROLE_GRID-FAILURE-QUALIFIER", "ROLE_GRID-FAILURE-PUBLISHER"})
-    public List<String> findAllCommunitiesByPostcode(@PathVariable String postcode) {
-        return addressService.getCommunities(postcode);
+    public List<String> findAllCommunitiesByPostcode(
+            @PathVariable String postcode,
+            @RequestParam("branch") Optional<String> branch) {
+        return addressService.getCommunities(postcode, branch);
     }
 
-
-    @ApiOperation(value = "Anzeige Ortsteile nach Postleitzahl und Ort")
+    @ApiOperation(value = "Anzeige Ortsteile nach Postleitzahl und Ort und Sparte (optional)")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "Erfolgreich durchgeführt")})
     @GetMapping("/districts")
     @Secured({"ROLE_GRID-FAILURE-ADMIN", "ROLE_GRID-FAILURE-READER", "ROLE_GRID-FAILURE-CREATOR", "ROLE_GRID-FAILURE-QUALIFIER", "ROLE_GRID-FAILURE-PUBLISHER"})
     public List<String> findDistricts(
             @RequestParam("postcode") String postcode,
-            @RequestParam("community") String community
+            @RequestParam("community") String community,
+            @RequestParam("branch") Optional<String> branch
     ) {
-        return addressService.getDistricts(postcode, community);
+        return addressService.getDistricts(postcode, community, branch);
     }
 
-
-    @ApiOperation(value = "Anzeige Strassen nach Postleitzahl und Ort und Ortsteil (optional)")
+    @ApiOperation(value = "Anzeige Strassen nach Postleitzahl und Ort und Ortsteil (optional) und Sparte (optional)")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "Erfolgreich durchgeführt")})
     @GetMapping("/streets")
     @Secured({"ROLE_GRID-FAILURE-ADMIN", "ROLE_GRID-FAILURE-READER", "ROLE_GRID-FAILURE-CREATOR", "ROLE_GRID-FAILURE-QUALIFIER", "ROLE_GRID-FAILURE-PUBLISHER"})
     public List<String> findStreets(
             @RequestParam("postcode") String postcode,
             @RequestParam("community") String community,
-            @RequestParam("district") Optional<String> district
+            @RequestParam("district") Optional<String> district,
+            @RequestParam("branch") Optional<String> branch
     ) {
-        return addressService.getStreets(postcode, community, district);
+        return addressService.getStreets(postcode, community, district, branch);
     }
 
-
-
-    @ApiOperation(value = "Anzeige Strassen nach Postleitzahl und Ort und Strasse")
+    @ApiOperation(value = "Anzeige Hausnummern nach Postleitzahl und Ort und Strasse und Sparte (optional)")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "Erfolgreich durchgeführt")})
     @GetMapping("/housenumbers")
     @Secured({"ROLE_GRID-FAILURE-ADMIN", "ROLE_GRID-FAILURE-READER", "ROLE_GRID-FAILURE-CREATOR", "ROLE_GRID-FAILURE-QUALIFIER", "ROLE_GRID-FAILURE-PUBLISHER"})
     public List<HousenumberUuidDto> findHousenumbers(
             @RequestParam("postcode") String postcode,
             @RequestParam("community") String community,
-            @RequestParam("street") String street
+            @RequestParam("street") String street,
+            @RequestParam("branch") Optional<String> branch
     ) {
-        return addressService.getHousenumbers(postcode, community, street);
+        return addressService.getHousenumbers(postcode, community, street, branch);
     }
 
 }
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/controller/ExpectedReasonController.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/controller/ExpectedReasonController.java
index 8108a0c..bf0dca6 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/controller/ExpectedReasonController.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/controller/ExpectedReasonController.java
@@ -24,9 +24,11 @@
 import org.springframework.security.access.annotation.Secured;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.List;
+import java.util.Optional;
 
 @Log4j2
 @RestController
@@ -40,7 +42,10 @@
     @ApiOperation(value = "Anzeigen aller erwarteten Gründe")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "Erfolgreich durchgeführt")})
     @GetMapping
-    public List<ExpectedReasonDto> findExpectedReasonsTexts() { return expectedReasonService.getExpectedReasons();  }
+    public List<ExpectedReasonDto> findExpectedReasonsTexts(
+            @RequestParam("branch") Optional<String> branch)  {
+        return expectedReasonService.getExpectedReasons(branch);  
+    }
 
 
 
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/mapper/ExpectedReasonMapper.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/mapper/ExpectedReasonMapper.java
index 6ed0b64..65af0ed 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/mapper/ExpectedReasonMapper.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/mapper/ExpectedReasonMapper.java
@@ -17,6 +17,8 @@
 import org.eclipse.openk.gridfailureinformation.model.RefExpectedReason;
 import org.eclipse.openk.gridfailureinformation.viewmodel.ExpectedReasonDto;
 import org.mapstruct.Mapper;
+import org.mapstruct.Mapping;
+import org.mapstruct.Mappings;
 import org.mapstruct.ReportingPolicy;
 
 @Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE)
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/model/RefExpectedReason.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/model/RefExpectedReason.java
index 3ad5526..0a737f6 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/model/RefExpectedReason.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/model/RefExpectedReason.java
@@ -30,4 +30,5 @@
     private UUID uuid;
     private String text;
     private String description;
+    private String branches;
 }
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/repository/AddressRepository.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/repository/AddressRepository.java
index b4bf64b..b35e28f 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/repository/AddressRepository.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/repository/AddressRepository.java
@@ -34,21 +34,62 @@
 
     List<TblAddress> findByStationId(String stationId);
 
+    List<TblAddress> findByPowerConnection(Boolean powerConnection);
+    List<TblAddress> findByWaterConnection(Boolean waterConnection);
+    List<TblAddress> findByGasConnection(Boolean gasConnection);
+
     @Query("select distinct a.postcode from TblAddress a")
     List<String> findAllPostcodes();
+    @Query("select distinct a.postcode from TblAddress a where powerConnection = true")
+    List<String> findAllPostcodesForPower();
+    @Query("select distinct a.postcode from TblAddress a where gasConnection = true")
+    List<String> findAllPostcodesForGas();
+    @Query("select distinct a.postcode from TblAddress a where waterConnection = true")
+    List<String> findAllPostcodesForWater();
 
     @Query("select distinct a.community from TblAddress a where postcode = :postcode")
     List<String> findCommunitiesByPostcode(@Param("postcode") String postcode);
+    @Query("select distinct a.community from TblAddress a where postcode = :postcode and powerConnection = true")
+    List<String> findCommunitiesByPostcodeForPowerConnections(@Param("postcode") String postcode);
+    @Query("select distinct a.community from TblAddress a where postcode = :postcode and gasConnection = true")
+    List<String> findCommunitiesByPostcodeForGasConnections(@Param("postcode") String postcode);
+    @Query("select distinct a.community from TblAddress a where postcode = :postcode and waterConnection = true")
+    List<String> findCommunitiesByPostcodeForWaterConnections(@Param("postcode") String postcode);
 
     @Query("select distinct a.district from TblAddress a where postcode = :postcode and community = :community")
     List<String> findDistrictsByPostcodeAndCommunity(@Param("postcode") String postcode, @Param("community") String community);
+    @Query("select distinct a.district from TblAddress a where postcode = :postcode and community = :community and powerConnection = true")
+    List<String> findDistrictsByPostcodeAndCommunityForPower(@Param("postcode") String postcode, @Param("community") String community);
+    @Query("select distinct a.district from TblAddress a where postcode = :postcode and community = :community and gasConnection = true")
+    List<String> findDistrictsByPostcodeAndCommunityForGas(@Param("postcode") String postcode, @Param("community") String community);
+    @Query("select distinct a.district from TblAddress a where postcode = :postcode and community = :community and waterConnection = true")
+    List<String> findDistrictsByPostcodeAndCommunityForWater(@Param("postcode") String postcode, @Param("community") String community);
 
     @Query("select distinct a.street from TblAddress a where postcode = :postcode and community = :community")
     List<String> findStreetsByPostcodeAndCommunity(@Param("postcode") String postcode, @Param("community") String community);
+    @Query("select distinct a.street from TblAddress a where postcode = :postcode and community = :community and powerConnection = true")
+    List<String> findStreetsByPostcodeAndCommunityForPower(@Param("postcode") String postcode, @Param("community") String community);
+    @Query("select distinct a.street from TblAddress a where postcode = :postcode and community = :community and gasConnection = true")
+    List<String> findStreetsByPostcodeAndCommunityForGas(@Param("postcode") String postcode, @Param("community") String community);
+    @Query("select distinct a.street from TblAddress a where postcode = :postcode and community = :community and waterConnection = true")
+    List<String> findStreetsByPostcodeAndCommunityForWater(@Param("postcode") String postcode, @Param("community") String community);
 
     @Query("select distinct a.street from TblAddress a where postcode = :postcode and community = :community and district = :district")
     List<String> findStreetsByPostcodeAndCommunityAndDistrict(@Param("postcode") String postcode, @Param("community") String community, @Param("district") String district);
+    @Query("select distinct a.street from TblAddress a where postcode = :postcode and community = :community and district = :district and powerConnection = true")
+    List<String> findStreetsByPostcodeAndCommunityAndDistrictForPower(@Param("postcode") String postcode, @Param("community") String community, @Param("district") String district);
+    @Query("select distinct a.street from TblAddress a where postcode = :postcode and community = :community and district = :district and gasConnection = true")
+    List<String> findStreetsByPostcodeAndCommunityAndDistrictForGas(@Param("postcode") String postcode, @Param("community") String community, @Param("district") String district);
+    @Query("select distinct a.street from TblAddress a where postcode = :postcode and community = :community and district = :district and waterConnection = true")
+    List<String> findStreetsByPostcodeAndCommunityAndDistrictForWater(@Param("postcode") String postcode, @Param("community") String community, @Param("district") String district);
 
     List<TblAddress> findByPostcodeAndCommunityAndStreet(String postcode, String community, String street);
+    @Query("select a from TblAddress a where postcode = :postcode and community = :community and street = :street and powerConnection = true")
+    List<TblAddress> findByPostcodeAndCommunityAndStreetForPower(String postcode, String community, String street);
+    @Query("select a from TblAddress a where postcode = :postcode and community = :community and street = :street and gasConnection = true")
+    List<TblAddress> findByPostcodeAndCommunityAndStreetForGas(String postcode, String community, String street);
+    @Query("select a from TblAddress a where postcode = :postcode and community = :community and street = :street and waterConnection = true")
+    List<TblAddress> findByPostcodeAndCommunityAndStreetForWater(String postcode, String community, String street);
+
 
 }
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/repository/ExpectedReasonRepository.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/repository/ExpectedReasonRepository.java
index 75b2458..e7a7c5a 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/repository/ExpectedReasonRepository.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/repository/ExpectedReasonRepository.java
@@ -15,8 +15,11 @@
 
 package org.eclipse.openk.gridfailureinformation.repository;
 
+import org.eclipse.openk.gridfailureinformation.model.RefBranch;
 import org.eclipse.openk.gridfailureinformation.model.RefExpectedReason;
 import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
 import org.springframework.stereotype.Repository;
 
 import java.util.List;
@@ -29,4 +32,7 @@
     List<RefExpectedReason> findAll();
 
     Optional<RefExpectedReason> findByUuid(UUID uuid);
+
+    @Query("select er from RefExpectedReason er where ',' || branches || ',' like '%,' || :branch || ',%' ")
+    List<RefExpectedReason> findByBranch(@Param("branch") String branch);
 }
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/AddressService.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/AddressService.java
index 30bd331..5b5f947 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/AddressService.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/AddressService.java
@@ -11,7 +11,7 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *******************************************************************************
-*/
+ */
 package org.eclipse.openk.gridfailureinformation.service;
 
 import org.eclipse.openk.gridfailureinformation.exceptions.NotFoundException;
@@ -39,16 +39,32 @@
     private AddressMapper addressMapper;
 
     private static HousenumberUuidDto toHousenumberUuid(TblAddress tblAddress) {
-        HousenumberUuidDto housenumberUuidDto =  new HousenumberUuidDto();
+        HousenumberUuidDto housenumberUuidDto = new HousenumberUuidDto();
         housenumberUuidDto.setHousenumber(tblAddress.getHousenumber());
         housenumberUuidDto.setUuid(tblAddress.getUuid());
         return housenumberUuidDto;
     }
 
-    public List<AddressDto> getAddresses() {
+    public List<AddressDto> getAddresses(Optional<String> branchOpt) {
+        List<TblAddress> addressList;
+        String branch = branchOpt.orElseGet(String::new);
 
-        return addressRepository.findAll().stream()
-                .map( addressMapper::toAddressDto )
+        switch (branch) {
+            case "S":
+                addressList = addressRepository.findByPowerConnection(true);
+                break;
+            case "G":
+                addressList = addressRepository.findByGasConnection(true);
+                break;
+            case "W":
+                addressList = addressRepository.findByWaterConnection(true);
+                break;
+            default:
+                addressList = addressRepository.findAll();
+        }
+
+        return addressList.stream()
+                .map(addressMapper::toAddressDto)
                 .collect(Collectors.toList());
     }
 
@@ -58,36 +74,130 @@
         return addressMapper.toAddressDto(tblAddress);
     }
 
-    public List<String> getPostcodes(){
-        return addressRepository.findAllPostcodes();
-    }
+    public List<String> getPostcodes(Optional<String> branchOpt) {
+        List<String> postcodeList;
+        String branch = branchOpt.orElseGet(String::new);
 
-    public List<String> getCommunities(String postcode) {
-        return addressRepository.findCommunitiesByPostcode(postcode);
-    }
-
-    public List<String> getDistricts(String postcode, String community) {
-            return addressRepository.findDistrictsByPostcodeAndCommunity(postcode, community);
-    }
-
-    public List<String> getStreets(String postcode, String community, Optional<String> district) {
-
-        if(!district.isPresent()){
-            return addressRepository.findStreetsByPostcodeAndCommunity(postcode, community);
+        switch (branch) {
+            case "S":
+                postcodeList = addressRepository.findAllPostcodesForPower();
+                break;
+            case "G":
+                postcodeList = addressRepository.findAllPostcodesForGas();
+                break;
+            case "W":
+                postcodeList = addressRepository.findAllPostcodesForWater();
+                break;
+            default:
+                postcodeList = addressRepository.findAllPostcodes();
         }
-        else{
-            return addressRepository.findStreetsByPostcodeAndCommunityAndDistrict(postcode, community, district.get());
-        }
+
+        return postcodeList;
     }
 
-    public List<HousenumberUuidDto> getHousenumbers(String postcode, String community, String street) {
+    public List<String> getCommunities(String postcode, Optional<String> branchOpt) {
+        List<String> communityList;
+        String branch = branchOpt.orElseGet(String::new);
 
-        return addressRepository.findByPostcodeAndCommunityAndStreet(postcode, community, street)
+        switch (branch) {
+            case "S":
+                communityList = addressRepository.findCommunitiesByPostcodeForPowerConnections(postcode);
+                break;
+            case "G":
+                communityList = addressRepository.findCommunitiesByPostcodeForGasConnections(postcode);
+                break;
+            case "W":
+                communityList = addressRepository.findCommunitiesByPostcodeForWaterConnections(postcode);
+                break;
+            default:
+                communityList = addressRepository.findCommunitiesByPostcode(postcode);
+        }
+
+        return communityList;
+    }
+
+    public List<String> getDistricts(String postcode, String community, Optional<String> branchOpt) {
+        List<String> districtList;
+        String branch = branchOpt.orElseGet(String::new);
+
+        switch (branch) {
+            case "S":
+                districtList = addressRepository.findDistrictsByPostcodeAndCommunityForPower(postcode, community);
+                break;
+            case "G":
+                districtList = addressRepository.findDistrictsByPostcodeAndCommunityForGas(postcode, community);
+                break;
+            case "W":
+                districtList = addressRepository.findDistrictsByPostcodeAndCommunityForWater(postcode, community);
+                break;
+            default:
+                districtList = addressRepository.findDistrictsByPostcodeAndCommunity(postcode, community);
+        }
+        return districtList;
+    }
+
+    public List<String> getStreets(String postcode, String community, Optional<String> district, Optional<String> branchOpt) {
+        List<String> streetList;
+        String branch = branchOpt.orElseGet(String::new);
+
+        if (!district.isPresent()) {
+            switch (branch) {
+                case "S":
+                    streetList = addressRepository.findStreetsByPostcodeAndCommunityForPower(postcode, community);
+                    break;
+                case "G":
+                    streetList = addressRepository.findStreetsByPostcodeAndCommunityForGas(postcode, community);
+                    break;
+                case "W":
+                    streetList = addressRepository.findStreetsByPostcodeAndCommunityForWater(postcode, community);
+                    break;
+                default:
+                    streetList = addressRepository.findStreetsByPostcodeAndCommunity(postcode, community);
+            }
+            return streetList;
+        } else {
+            switch (branch) {
+                case "S":
+                    streetList = addressRepository.findStreetsByPostcodeAndCommunityAndDistrictForPower(postcode, community, district.get());
+                    break;
+                case "G":
+                    streetList = addressRepository.findStreetsByPostcodeAndCommunityAndDistrictForGas(postcode, community, district.get());
+                    break;
+                case "W":
+                    streetList = addressRepository.findStreetsByPostcodeAndCommunityAndDistrictForWater(postcode, community, district.get());
+                    break;
+                default:
+                    streetList = addressRepository.findStreetsByPostcodeAndCommunityAndDistrict(postcode, community, district.get());
+            }
+            return streetList;
+        }
+
+    }
+
+    public List<HousenumberUuidDto> getHousenumbers(String postcode, String community, String street, Optional<String> branchOpt) {
+        List<TblAddress> addressListList;
+        String branch = branchOpt.orElseGet(String::new);
+
+        switch (branch) {
+            case "S":
+                addressListList = addressRepository.findByPostcodeAndCommunityAndStreetForPower(postcode, community, street);
+                break;
+            case "G":
+                addressListList = addressRepository.findByPostcodeAndCommunityAndStreetForGas(postcode, community, street);
+                break;
+            case "W":
+                addressListList = addressRepository.findByPostcodeAndCommunityAndStreetForWater(postcode, community, street);
+                break;
+            default:
+                addressListList = addressRepository.findByPostcodeAndCommunityAndStreet(postcode, community, street);
+        }
+        return addressListList
                 .stream()
                 .map(AddressService::toHousenumberUuid)
                 .collect(collectingAndThen(toCollection(() -> new TreeSet<>(Comparator.comparing(HousenumberUuidDto::getHousenumber))),
                         ArrayList::new));
 
+
     }
 
 
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/ExpectedReasonService.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/ExpectedReasonService.java
index 684e0a0..a58be97 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/ExpectedReasonService.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/ExpectedReasonService.java
@@ -15,12 +15,15 @@
 package org.eclipse.openk.gridfailureinformation.service;
 
 import org.eclipse.openk.gridfailureinformation.mapper.ExpectedReasonMapper;
+import org.eclipse.openk.gridfailureinformation.model.RefBranch;
+import org.eclipse.openk.gridfailureinformation.repository.BranchRepository;
 import org.eclipse.openk.gridfailureinformation.repository.ExpectedReasonRepository;
 import org.eclipse.openk.gridfailureinformation.viewmodel.ExpectedReasonDto;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
+import java.util.Optional;
 import java.util.stream.Collectors;
 
 @Service
@@ -32,12 +35,19 @@
     @Autowired
     private ExpectedReasonMapper expectedReasonMapper;
 
+    @Autowired
+    BranchRepository branchRepository;
 
-    public List<ExpectedReasonDto> getExpectedReasons() {
-
-        return expectedReasonRepository.findAll().stream()
-                .map( expectedReasonMapper::toExpectedReasonDto )
-                .collect(Collectors.toList());
+    public List<ExpectedReasonDto> getExpectedReasons(Optional<String> branchOpt) {
+        if (branchOpt.isPresent()) {
+            return expectedReasonRepository.findByBranch(branchOpt.get()).stream()
+                    .map(expectedReasonMapper::toExpectedReasonDto)
+                    .collect(Collectors.toList());
+        } else {
+            return expectedReasonRepository.findAll().stream()
+                    .map( expectedReasonMapper::toExpectedReasonDto )
+                    .collect(Collectors.toList());
+        }
     }
 
 }
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/viewmodel/ExpectedReasonDto.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/viewmodel/ExpectedReasonDto.java
index 03d1f0d..4e2042d 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/viewmodel/ExpectedReasonDto.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/viewmodel/ExpectedReasonDto.java
@@ -26,4 +26,5 @@
     private UUID uuid;
     private String text;
     private String description;
+    private String branches;
 }
diff --git a/gfsBackendService/src/main/resources/application.yml b/gfsBackendService/src/main/resources/application.yml
index 5789a12..08fcda5 100644
--- a/gfsBackendService/src/main/resources/application.yml
+++ b/gfsBackendService/src/main/resources/application.yml
@@ -14,15 +14,15 @@
 spring:
   datasource:
     url: jdbc:postgresql://entopticadirx:5432/GridFailureInfoDevServer
-    username: gfi_service
-    password: gfi_service
+    username: ${GFI_DB_USERNAME}
+    password: ${GFI_DB_PASSWORD}
   flyway:
     enabled: false
   rabbitmq:
     host: entdockergss
     port: 5672
-    username: guest
-    password: guest
+    username: ${GFI_RABBITMQ_USERNAME}
+    password: ${GFI_RABBITMQ_PASSWORD}
     queuename: failureImportQueue
     routingkey: failureImportChannel.failureImportKey
     exchangename: failureImportChannel
@@ -79,17 +79,16 @@
   profiles: test
   datasource:
     url: jdbc:h2:mem:test;DB_CLOSE_DELAY=-1
-
-rabbitmq:
-  listener:
-    simple:
-      auto-startup: false
-jpa:
-  hibernate:
-    ddl-auto: create
-  show-sql: true
-flyway:
-  enabled: false
+  rabbitmq:
+    listener:
+      simple:
+        auto-startup: false
+  jpa:
+    hibernate:
+      ddl-auto: create
+    show-sql: true
+  flyway:
+    enabled: false
 
 jwt:
   tokenHeader: Authorization
@@ -104,15 +103,18 @@
 
 spring:
   profiles: testCors
+  datasource:
+    url: jdbc:h2:mem:test;DB_CLOSE_DELAY=-1
+  rabbitmq:
+    listener:
+      simple:
+        auto-startup: false
 
-datasource:
-  url: jdbc:h2:mem:test;DB_CLOSE_DELAY=-1
 flyway:
   enabled: false
 
 cors:
   corsEnabled: true
-
 ---
 
 spring:
@@ -156,15 +158,15 @@
   profiles: qserver
   datasource:
     url: jdbc:postgresql://localhost:5432/GridFailureInfoQaServer
-    username: gfi_service
-    password: gfi_service
+    username: ${GFI_DB_USERNAME}
+    password: ${GFI_DB_PASSWORD}
   flyway:
     enabled: false
   rabbitmq:
     host: localhost
     port: 5672
-    username: guest
-    password: guest
+    username: ${GFI_RABBITMQ_USERNAME}
+    password: ${GFI_RABBITMQ_PASSWORD}
     queuename: failureImportQueue
     routingkey: failureImportChannel.failureImportKey
     exchangename: failureImportChannel
diff --git a/gfsBackendService/src/main/resources/application_localdev.yml b/gfsBackendService/src/main/resources/application_localdev.yml
index 560af0d..9a3c583 100644
--- a/gfsBackendService/src/main/resources/application_localdev.yml
+++ b/gfsBackendService/src/main/resources/application_localdev.yml
@@ -14,15 +14,15 @@
 spring:
   datasource:
     url: jdbc:postgresql://entopticadirx:5432/GridFailureInfoDevelop
-    username: gfi_service
-    password: gfi_service
+    username: ${GFI_DB_USERNAME}
+    password: ${GFI_DB_PASSWORD}
   flyway:
     enabled: false
   rabbitmq:
     host: entdockergss
     port: 5672
-    username: guest
-    password: guest
+    username: ${GFI_RABBITMQ_USERNAME}
+    password: ${GFI_RABBITMQ_PASSWORD}
     queuename: failureImportQueueLocalDev
     routingkey: failureImportChannelLocalDev.failureImportKeyLocalDev
     exchangename: failureImportChannel
@@ -77,5 +77,5 @@
   profiles: dev-db
   datasource:
     url: jdbc:postgresql://entopticadirx:5432/GridFailureInfoDevServer
-    username: gfi_service
-    password: gfi_service
\ No newline at end of file
+    username: ${GFI_DB_USERNAME}
+    password: ${GFI_DB_PASSWORD}
\ No newline at end of file
diff --git a/gfsBackendService/src/main/resources/db/migration/V0_25__CREATE_GFI_DB.sql b/gfsBackendService/src/main/resources/db/migration/V0_25__CREATE_GFI_DB.sql
new file mode 100644
index 0000000..e04e480
--- /dev/null
+++ b/gfsBackendService/src/main/resources/db/migration/V0_25__CREATE_GFI_DB.sql
@@ -0,0 +1,737 @@
+-----------------------------------------------------------------------------------
+-- *******************************************************************************
+-- * Copyright (c) 2019 Contributors to the Eclipse Foundation
+-- *
+-- * See the NOTICE file(s) distributed with this work for additional
+-- * information regarding copyright ownership.
+-- *
+-- * This program and the accompanying materials are made available under the
+-- * terms of the Eclipse Public License v. 2.0 which is available at
+-- * http://www.eclipse.org/legal/epl-2.0.
+-- *
+-- * SPDX-License-Identifier: EPL-2.0
+-- *******************************************************************************
+-----------------------------------------------------------------------------------
+-- CREATE ROLE GFI_SERVICE LOGIN
+-- NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
+-- ALTER ROLE GFI_SERVICE with password 'gfi_service';
+
+DROP TABLE IF EXISTS public.VERSION CASCADE;
+DROP TABLE IF EXISTS public.TBL_FAILURE_INFORMATION CASCADE;
+DROP SEQUENCE IF EXISTS public.TBL_FAILURE_INFORMATION_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_STATUS CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_STATUS_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_BRANCH CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_BRANCH_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_FAILURE_CLASSIFICATION CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_FAILURE_CLASSIFICATION_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_FAILURE_TYPE CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_FAILURE_TYPE_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_RADIUS CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_RADIUS_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_EXPECTED_REASON CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_EXPECTED_REASON_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_IMPORT_DATA CASCADE;
+DROP SEQUENCE IF EXISTS public.TBL_IMPORT_DATA_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_DISTRIBUTION_GROUP_MEMBER CASCADE;
+DROP SEQUENCE IF EXISTS public.TBL_DISTRIBUTION_GROUP_MEMBER_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_DISTRIBUTION_GROUP CASCADE;
+DROP SEQUENCE IF EXISTS public.TBL_DISTRIBUTION_GROUP_ID_SEQ;
+
+
+DROP TABLE IF EXISTS public.TBL_DISTRIBUTION_GROUP_MEMBER CASCADE;
+DROP SEQUENCE IF EXISTS public.TBL_DISTRIBUTION_GROUP_MEMBER_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_DISTRIBUTION_GROUP CASCADE;
+DROP SEQUENCE IF EXISTS public.TBL_DISTRIBUTION_GROUP_ID_SEQ;
+
+-- ---------------------------------------------
+-- TABLE VERSION
+-- ---------------------------------------------
+CREATE TABLE public.VERSION
+(
+  ID integer NOT NULL,
+  VERSION character varying(50) NOT NULL,
+  CONSTRAINT REF_VERSION_PKEY PRIMARY KEY (id)
+);
+
+ALTER TABLE public.VERSION
+  OWNER TO GFI_SERVICE;
+GRANT ALL ON TABLE public.VERSION TO GFI_SERVICE;
+
+INSERT INTO public.VERSION (ID, VERSION) VALUES ( 1, '00-DEV' );
+
+-- ---------------------------------------------
+-- TABLE REF_STATUS
+-- ---------------------------------------------
+CREATE SEQUENCE public.ref_status_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.ref_status_id_seq
+  OWNER TO GFI_SERVICE;
+
+CREATE TABLE public.REF_STATUS
+(
+  ID integer NOT NULL  DEFAULT nextval('REF_STATUS_ID_SEQ'::regclass),
+  UUID uuid NOT NULL,
+  STATUS character varying(50) NOT NULL,
+  IS_INTERNAL boolean NOT NULL,
+  IS_EXTERNAL boolean NOT NULL,
+  CONSTRAINT REF_STATUS_PKEY PRIMARY KEY (id)
+);
+
+ALTER TABLE public.REF_STATUS
+  OWNER TO GFI_SERVICE;
+GRANT ALL ON TABLE public.REF_STATUS TO GFI_SERVICE;
+
+INSERT INTO public.REF_STATUS (ID, UUID, STATUS, IS_INTERNAL, IS_EXTERNAL) VALUES (1, 'acabc8f6-2cf3-485a-a4f8-68d178c7df45', 'neu', TRUE, FALSE );
+INSERT INTO public.REF_STATUS (ID, UUID, STATUS, IS_INTERNAL, IS_EXTERNAL) VALUES (2, 'f2e44dc5-d30c-4128-86bb-d3d5fc766b61', 'geplant', TRUE, TRUE );
+INSERT INTO public.REF_STATUS (ID, UUID, STATUS, IS_INTERNAL, IS_EXTERNAL) VALUES (3, '23fc0254-cc3d-4371-97ad-54ef733008ae', 'angelegt', TRUE, FALSE );
+INSERT INTO public.REF_STATUS (ID, UUID, STATUS, IS_INTERNAL, IS_EXTERNAL) VALUES (4, '74a4ca78-7268-11ea-bc55-0242ac130003', 'storniert', TRUE, FALSE );
+INSERT INTO public.REF_STATUS (ID, UUID, STATUS, IS_INTERNAL, IS_EXTERNAL) VALUES (5, '7264e572-eae9-4cca-be05-af6b0d081247', 'qualifiziert', TRUE, FALSE );
+INSERT INTO public.REF_STATUS (ID, UUID, STATUS, IS_INTERNAL, IS_EXTERNAL) VALUES (6, '9374219a-7419-4b72-899d-cd0576d85cdb', 'aktualisiert', TRUE, TRUE );
+INSERT INTO public.REF_STATUS (ID, UUID, STATUS, IS_INTERNAL, IS_EXTERNAL) VALUES (7, '8c333345-5c3c-41ed-9de4-323045f64259', 'abgeschlossen', TRUE, TRUE );
+
+
+-- ---------------------------------------------
+-- TABLE REF_FAILURE_CLASSIFICATION
+-- ---------------------------------------------
+CREATE SEQUENCE public.ref_failure_classification_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.ref_failure_classification_id_seq
+  OWNER TO GFI_SERVICE;
+
+CREATE TABLE public.REF_FAILURE_CLASSIFICATION
+(
+  ID integer NOT NULL  DEFAULT nextval('REF_FAILURE_CLASSIFICATION_ID_SEQ'::regclass),
+  UUID uuid NOT NULL,
+  CLASSIFICATION character varying(50) NOT NULL,
+  DESCRIPTION character varying(255) NULL,
+  CONSTRAINT REF_FAILURE_CLASSIFICATION_PKEY PRIMARY KEY (id)
+);
+
+ALTER TABLE public.REF_FAILURE_CLASSIFICATION
+  OWNER TO GFI_SERVICE;
+GRANT ALL ON TABLE public.REF_FAILURE_CLASSIFICATION TO GFI_SERVICE;
+
+INSERT INTO public.REF_FAILURE_CLASSIFICATION (UUID, CLASSIFICATION, DESCRIPTION) VALUES ( '9255fb79-c57a-4448-a69c-5d57994f0c91', 'Störung', NULL );
+INSERT INTO public.REF_FAILURE_CLASSIFICATION (UUID, CLASSIFICATION, DESCRIPTION) VALUES ( '8ec1e144-5230-4d43-a3df-f62dd64bb855', 'geplante Maßnahme', NULL );
+
+
+-- ---------------------------------------------
+-- TABLE REF_FAILURE_TYPE
+-- ---------------------------------------------
+CREATE SEQUENCE public.ref_failure_type_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.ref_failure_type_id_seq
+  OWNER TO GFI_SERVICE;
+
+CREATE TABLE public.REF_FAILURE_TYPE
+(
+  ID integer NOT NULL DEFAULT nextval('REF_FAILURE_TYPE_ID_SEQ'::regclass),
+  UUID uuid NOT NULL,
+  TYPE character varying(50) NOT NULL,
+  DESCRIPTION character varying(255) NULL,
+  CONSTRAINT REF_FAILURE_TYPE_PKEY PRIMARY KEY (id)
+);
+
+ALTER TABLE public.REF_FAILURE_TYPE
+  OWNER TO GFI_SERVICE;
+GRANT ALL ON TABLE public.REF_FAILURE_TYPE TO GFI_SERVICE;
+
+
+INSERT INTO public.REF_FAILURE_TYPE (UUID, TYPE, DESCRIPTION) VALUES ( '44a2aaed-8910-4116-b0c4-0855f8d3c28d', 'Information', NULL );
+INSERT INTO public.REF_FAILURE_TYPE (UUID, TYPE, DESCRIPTION) VALUES ( '94e880c4-3127-47d5-aaee-5f778462ab0c', 'zu veröffentlichende Meldung', 'Standardwert' );
+INSERT INTO public.REF_FAILURE_TYPE (UUID, TYPE, DESCRIPTION) VALUES ( '658245bd-bdc4-47dd-bc90-0336f9471410', 'unterlagerte Störung', 'nicht zu veröffentlichen' );
+
+-- ---------------------------------------------
+-- TABLE REF_BRANCH
+-- ---------------------------------------------
+CREATE SEQUENCE public.ref_branch_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.ref_branch_id_seq
+  OWNER TO GFI_SERVICE;
+
+CREATE TABLE public.REF_BRANCH
+(
+  ID integer NOT NULL DEFAULT nextval('REF_BRANCH_ID_SEQ'::regclass),
+  UUID uuid NOT NULL,
+  NAME character varying(50) NOT NULL,
+  DESCRIPTION character varying(255),
+  COLOR_CODE character varying(20),
+  CONSTRAINT REF_BRANCH_PKEY PRIMARY KEY (id)
+);
+
+ALTER TABLE public.REF_BRANCH
+  OWNER TO GFI_SERVICE;
+GRANT ALL ON TABLE public.REF_BRANCH TO GFI_SERVICE;
+
+INSERT INTO public.ref_branch(uuid, name, description, color_code) VALUES ('535b4beb-9b17-4247-bb8b-26bd01b48f9a', 'S', 'Strom', '#fc6042');
+INSERT INTO public.ref_branch(uuid, name, description, color_code) VALUES ('d41f54e5-c4df-440e-b334-40e8f3a6854a', 'G', 'Gas', '#fdea64');
+INSERT INTO public.ref_branch(uuid, name, description, color_code) VALUES ('62c6d361-96a0-41cc-bda1-4e58ad16f21a', 'F', 'Fernwärme', '#2cc990');
+INSERT INTO public.ref_branch(uuid, name, description, color_code) VALUES ('d8d93e0e-5c8c-4ab8-9625-f820de55ee7c', 'W', 'Wasser', '#2c82c9');
+INSERT INTO public.ref_branch(uuid, name, description, color_code) VALUES ('7d4907fb-cb3f-4a4f-93e9-839052e76894', 'TK', 'Telekommunikation', '#ff33cc');
+INSERT INTO public.ref_branch(uuid, name, description, color_code) VALUES ('014c4a2a-3cf1-4d28-af70-4573722bceb0', 'ST', 'Sekundärtechnik', '#9933ff');
+INSERT INTO public.ref_branch(uuid, name, description, color_code) VALUES ('8fb3c764-8fb5-11ea-bc55-0242ac130003', 'OS', 'ohne Sparte', '#ffffff');
+
+
+-- ---------------------------------------------
+-- TABLE REF_EXPECTED_REASON
+-- ---------------------------------------------
+CREATE SEQUENCE public.ref_expected_reason_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.ref_expected_reason_id_seq
+  OWNER TO GFI_SERVICE;
+
+CREATE TABLE public.REF_EXPECTED_REASON
+(
+  ID integer NOT NULL DEFAULT nextval('REF_EXPECTED_REASON_ID_SEQ'::regclass),
+  UUID uuid NOT NULL,
+  TEXT character varying(100) NOT NULL,
+  DESCRIPTION character varying(255) NULL,
+  BRANCHES character varying(100) NOT NULL,
+  CONSTRAINT REF_EXPECTED_REASON_PKEY PRIMARY KEY (id)
+);
+
+ALTER TABLE public.REF_EXPECTED_REASON
+  OWNER TO GFI_SERVICE;
+GRANT ALL ON TABLE public.REF_EXPECTED_REASON TO GFI_SERVICE;
+
+INSERT INTO public.ref_expected_reason(uuid, text, description, branches) VALUES ('27a07918-6aa0-11ea-bc55-0242ac130003', 'Defekt technische Anlage', 'Dies ist die Beschreibung für: Defekt technische Anlage', 'S,G,W');
+INSERT INTO public.ref_expected_reason(uuid, text, description, branches) VALUES ('27a07c42-6aa0-11ea-bc55-0242ac130003', 'Kabelfehler Mittelspannung', 'Dies ist die Beschreibung für: Kabelfehler Mittelspannung', 'S');
+INSERT INTO public.ref_expected_reason(uuid, text, description, branches) VALUES ('27a07d50-6aa0-11ea-bc55-0242ac130003', 'Kabelfehler Niederspannung', 'Dies ist die Beschreibung für: Kabelfehler Niederspannung', 'S');
+INSERT INTO public.ref_expected_reason(uuid, text, description, branches) VALUES ('27a07e22-6aa0-11ea-bc55-0242ac130003', 'Leitung beschädigt', 'Dies ist die Beschreibung für: Leitung beschädigt', 'G,W');
+INSERT INTO public.ref_expected_reason(uuid, text, description, branches) VALUES ('27a07eea-6aa0-11ea-bc55-0242ac130003', 'noch nicht bekannt', 'Dies ist die Beschreibung für: noch nicht bekannt', 'S,G,W,TK,ST');
+INSERT INTO public.ref_expected_reason(uuid, text, description, branches) VALUES ('27a07fbc-6aa0-11ea-bc55-0242ac130003', 'Wasserrohrbruch', 'Dies ist die Beschreibung für: Wasserrohrbruch', 'W');
+INSERT INTO public.ref_expected_reason(uuid, text, description, branches) VALUES ('27a08160-6aa0-11ea-bc55-0242ac130003', 'Überregionale Störung', 'Dies ist die Beschreibung für: Überregionale Störung', 'G,W,TK,ST');
+
+-- ---------------------------------------------
+-- TABLE REF_RADIUS
+-- ---------------------------------------------
+CREATE SEQUENCE public.ref_radius_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.ref_radius_id_seq
+  OWNER TO GFI_SERVICE;
+
+CREATE TABLE public.REF_RADIUS
+(
+  ID integer NOT NULL DEFAULT nextval('REF_RADIUS_ID_SEQ'::regclass),
+  UUID uuid NOT NULL,
+  RADIUS integer NOT NULL,
+  CONSTRAINT REF_RADIUS_PKEY PRIMARY KEY (id)
+);
+
+ALTER TABLE public.REF_RADIUS
+  OWNER TO GFI_SERVICE;
+GRANT ALL ON TABLE public.REF_RADIUS TO GFI_SERVICE;
+
+INSERT INTO public.REF_RADIUS(uuid, radius) VALUES ('36671000-6aa6-11ea-bc55-0242ac130003', 50);
+INSERT INTO public.REF_RADIUS(uuid, radius) VALUES ('366712a8-6aa6-11ea-bc55-0242ac130003', 100);
+INSERT INTO public.REF_RADIUS(uuid, radius) VALUES ('366713c0-6aa6-11ea-bc55-0242ac130003', 250);
+INSERT INTO public.REF_RADIUS(uuid, radius) VALUES ('3667150a-6aa6-11ea-bc55-0242ac130003', 500);
+INSERT INTO public.REF_RADIUS(uuid, radius) VALUES ('36671780-6aa6-11ea-bc55-0242ac130003', 1000);
+INSERT INTO public.REF_RADIUS(uuid, radius) VALUES ('3667187a-6aa6-11ea-bc55-0242ac130003', 1500);
+INSERT INTO public.REF_RADIUS(uuid, radius) VALUES ('36671ad2-6aa6-11ea-bc55-0242ac130003', 2000);
+
+-- ---------------------------------------------
+-- TABLE TBL_FAILURE_INFORMATION
+-- ---------------------------------------------
+CREATE SEQUENCE public.tbl_failure_information_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_failure_information_id_seq
+  OWNER TO GFI_SERVICE;
+
+CREATE TABLE public.TBL_FAILURE_INFORMATION
+(
+  ID integer NOT NULL DEFAULT nextval('TBL_FAILURE_INFORMATION_ID_SEQ'::regclass),
+  UUID uuid NOT NULL,
+  VERSION_NUMBER integer NOT NULL,
+  FK_REF_FAILURE_CLASSIFICATION integer,
+  FK_REF_FAILURE_TYPE integer,
+  TITLE character varying(255) NULL,
+  DESCRIPTION character varying(255) NULL,
+  RESPONSIBILITY character varying(255),
+  INTERN_EXTERN character varying(1),
+  FK_REF_STATUS_INTERN integer NOT NULL,
+  FK_REF_STATUS_EXTERN integer NOT NULL,
+  FK_REF_BRANCH integer NOT NULL,
+  VOLTAGE_LEVEL character varying(2),
+  PRESSURE_LEVEL character varying(2),
+  FAILURE_BEGIN timestamp NOT NULL,
+  FAILURE_END_PLANNED timestamp,
+  FAILURE_END_RESUPPLIED timestamp,
+  INTERNAL_REMARK character varying(1024),
+  POSTCODE character varying(30),
+  CITY character varying(255),
+  DISTRICT character varying(255),
+  STREET character varying(255),
+  HOUSENUMBER character varying(30),
+  STATION_ID character varying (30),
+  STATION_DESCRIPTION character varying (255),
+  STATION_COORDS character varying (255),
+  FK_REF_RADIUS integer,
+  LONGITUDE numeric(9,6),
+  LATITUDE numeric(9,6),
+  FK_TBL_FAILURE_INFORMATION_CONDENSED integer,
+  CONDENSED boolean,
+  CONDENSED_COUNT integer,
+  OBJECT_REFERENCE_EXTERNAL_SYSTEM character varying (255),
+  PUBLICATION_STATUS character varying (40),
+  PUBLICATION_FREETEXT character varying (1024),
+  FK_REF_EXPECTED_REASON integer,
+  CREATE_DATE timestamp without time zone NOT NULL,
+  CREATE_USER character varying(100) NOT NULL,
+  MOD_DATE timestamp without time zone NOT NULL,
+  MOD_USER character varying(100),
+  CONSTRAINT TBL_FAILURE_INFORMATION_PKEY PRIMARY KEY (id),
+    CONSTRAINT TBL_FAIL_INF__FCLASS_FKEY FOREIGN KEY (FK_REF_FAILURE_CLASSIFICATION)
+           REFERENCES public.REF_FAILURE_CLASSIFICATION (ID) MATCH SIMPLE
+           ON UPDATE NO ACTION ON DELETE NO ACTION,
+    CONSTRAINT TBL_FAIL_INF_FTYPE_FKEY FOREIGN KEY (FK_REF_FAILURE_TYPE)
+           REFERENCES public.REF_FAILURE_TYPE (ID) MATCH SIMPLE
+           ON UPDATE NO ACTION ON DELETE NO ACTION,
+    CONSTRAINT TBL_FAIL_INF_STATUSINT_FKEY FOREIGN KEY (FK_REF_STATUS_INTERN)
+           REFERENCES public.REF_STATUS (ID) MATCH SIMPLE
+           ON UPDATE NO ACTION ON DELETE NO ACTION,
+    CONSTRAINT TBL_FAIL_INF__STATUSEXT_FKEY FOREIGN KEY (FK_REF_STATUS_EXTERN)
+           REFERENCES public.REF_STATUS (ID) MATCH SIMPLE
+           ON UPDATE NO ACTION ON DELETE NO ACTION,
+    CONSTRAINT TBL_FAIL_INF__BRANCH_ID_FKEY FOREIGN KEY (FK_REF_BRANCH)
+           REFERENCES public.REF_BRANCH (ID) MATCH SIMPLE
+           ON UPDATE NO ACTION ON DELETE NO ACTION,
+    CONSTRAINT TBL_FAIL_INF__EXPREASON_FKEY FOREIGN KEY (FK_REF_EXPECTED_REASON)
+           REFERENCES public.REF_EXPECTED_REASON (ID) MATCH SIMPLE
+           ON UPDATE NO ACTION ON DELETE NO ACTION
+);
+
+ALTER TABLE public.TBL_FAILURE_INFORMATION
+  OWNER TO GFI_SERVICE;
+GRANT ALL ON TABLE public.TBL_FAILURE_INFORMATION TO GFI_SERVICE;
+
+INSERT INTO public.tbl_failure_information(UUID, VERSION_NUMBER, FK_REF_FAILURE_CLASSIFICATION, FK_REF_FAILURE_TYPE, TITLE, DESCRIPTION,  RESPONSIBILITY, INTERN_EXTERN, FK_REF_STATUS_INTERN, FK_REF_STATUS_EXTERN, FK_REF_BRANCH, VOLTAGE_LEVEL, PRESSURE_LEVEL, FAILURE_BEGIN, FAILURE_END_PLANNED, FAILURE_END_RESUPPLIED, INTERNAL_REMARK, POSTCODE, CITY, DISTRICT, STREET, HOUSENUMBER, STATION_ID, STATION_DESCRIPTION, STATION_COORDS, FK_REF_RADIUS, LONGITUDE, LATITUDE, OBJECT_REFERENCE_EXTERNAL_SYSTEM, PUBLICATION_STATUS, PUBLICATION_FREETEXT, FK_REF_EXPECTED_REASON, CONDENSED, CONDENSED_COUNT, FK_TBL_FAILURE_INFORMATION_CONDENSED, CREATE_DATE, CREATE_USER, MOD_DATE, MOD_USER)
+VALUES ('6432a9c9-0384-44af-9bb8-34f2878d7b49',3, 1, 1, 'Stromausfall Murr', 'Es gibt einen Stromausfall im Bereich Murr/Westbezirk', 'Rolf Rudis', 'I', 1, 1, 1, 'NS', null, '2021-01-19 00:00:00', '2021-01-22 00:00:00', '2021-01-22 12:00:00',  'Der Bagger grub zu tief', '71711', 'Murr', 'Westbezirk', 'Ferdinand-Porsche-Straße', '2', '52863a', 'Trafo 1', '124,2323', 2, 9.247952, 48.955700, 'Link - extenes System', 'veröffentlicht', 'Freitext für die Veröffentlichung: Defekt an Trafostation', 1, false, 0, null, '2020-01-22 15:32:15', 'SCRIPT', '2020-01-24 08:02:44', 'SCRIPT');
+
+INSERT INTO public.tbl_failure_information(UUID, VERSION_NUMBER, FK_REF_FAILURE_CLASSIFICATION, FK_REF_FAILURE_TYPE, TITLE, DESCRIPTION,  RESPONSIBILITY, INTERN_EXTERN, FK_REF_STATUS_INTERN, FK_REF_STATUS_EXTERN, FK_REF_BRANCH, VOLTAGE_LEVEL, PRESSURE_LEVEL, FAILURE_BEGIN, FAILURE_END_PLANNED, FAILURE_END_RESUPPLIED, INTERNAL_REMARK, POSTCODE, CITY, DISTRICT, STREET, HOUSENUMBER, STATION_ID, STATION_DESCRIPTION, STATION_COORDS, FK_REF_RADIUS, LONGITUDE, LATITUDE, OBJECT_REFERENCE_EXTERNAL_SYSTEM, PUBLICATION_STATUS, PUBLICATION_FREETEXT, FK_REF_EXPECTED_REASON, CONDENSED, CONDENSED_COUNT, FK_TBL_FAILURE_INFORMATION_CONDENSED, CREATE_DATE, CREATE_USER, MOD_DATE, MOD_USER)
+VALUES ('37aef635-d0d4-4c47-ac25-c0d16c29e35c', 1, 2, 2, 'Gasleck Oldenburg', 'Es gibt ein Gasleck in Oldenburg', 'Bernd Britzel', 'E', 2, 2, 3, 'NS', 'HD', '2021-05-19 00:00:00', '2021-05-22 00:00:00', '2021-05-22 12:00:00', 'HD betroffen', '26133', 'Oldenburg', null, 'Cloppenburger Str.', '302', '1234863-b234', 'ertf', '124,2323', 4, 8.210150, 53.111820, 'Link - extenes System', 'nicht veröffentlicht', 'Freitext: Eine Gasleitung wurde beschädigt', 4, false, 0, null, '2020-02-03 15:15:15', 'SCRIPT', '2020-02-24 20:08:41', 'SCRIPT');
+
+
+-- ---------------------------------------------
+-- TABLE TBL_DISTRIBUTION_GROUP
+-- ---------------------------------------------
+CREATE SEQUENCE public.TBL_DISTRIBUTION_GROUP_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.TBL_DISTRIBUTION_GROUP_ID_SEQ
+  OWNER TO GFI_SERVICE;
+
+
+CREATE TABLE public.TBL_DISTRIBUTION_GROUP
+(
+  ID integer NOT NULL DEFAULT nextval('TBL_DISTRIBUTION_GROUP_ID_SEQ'::regclass),
+  UUID uuid NOT NULL,
+  NAME character varying(255),
+  DISTRIBUTION_TEXT character varying(2048),
+  CONSTRAINT TBL_DISTRIBUTION_GROUP_PKEY PRIMARY KEY (id)
+);
+
+ALTER TABLE public.TBL_DISTRIBUTION_GROUP
+  OWNER TO GFI_SERVICE;
+GRANT ALL ON TABLE public.TBL_DISTRIBUTION_GROUP TO GFI_SERVICE;
+
+INSERT INTO public.tbl_distribution_group(UUID, NAME, DISTRIBUTION_TEXT)
+VALUES('5f5017fe-887a-11ea-bc55-0242ac130003', 'Verteiler technisch - intern', 'Liebe Kollegen ....');
+
+INSERT INTO public.tbl_distribution_group(UUID, NAME, DISTRIBUTION_TEXT)
+VALUES('5f502046-887a-11ea-bc55-0242ac130003', 'Verteiler fachlich - intern', 'Sehr geehrte Kollegen ....');
+
+-- ---------------------------------------------
+-- TABLE TBL_DISTRIBUTION_GROUP_MEMBER
+-- ---------------------------------------------
+CREATE SEQUENCE public.TBL_DISTRIBUTION_GROUP_MEMBER_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.TBL_DISTRIBUTION_GROUP_MEMBER_ID_SEQ
+  OWNER TO GFI_SERVICE;
+
+CREATE TABLE public.TBL_DISTRIBUTION_GROUP_MEMBER
+(
+  ID integer NOT NULL DEFAULT nextval('TBL_DISTRIBUTION_GROUP_MEMBER_ID_SEQ'::regclass),
+  UUID uuid NOT NULL,
+  FK_TBL_DISTRIBUTION_GROUP integer NOT NULL,
+  CONTACT_ID uuid NOT NULL,
+  CONSTRAINT TBL_DISTRIBUTION_GROUP_MEMBER_PKEY PRIMARY KEY (id),
+  CONSTRAINT TBL_DIS_GRP_MEM__DIS_GRP_FKEY FOREIGN KEY (FK_TBL_DISTRIBUTION_GROUP)
+         REFERENCES public.TBL_DISTRIBUTION_GROUP (ID) MATCH SIMPLE
+         ON UPDATE NO ACTION ON DELETE NO ACTION
+    );
+
+ALTER TABLE public.TBL_DISTRIBUTION_GROUP_MEMBER
+  OWNER TO GFI_SERVICE;
+GRANT ALL ON TABLE public.TBL_DISTRIBUTION_GROUP_MEMBER TO GFI_SERVICE;
+
+
+INSERT INTO public.tbl_distribution_group_member(UUID, FK_TBL_DISTRIBUTION_GROUP, CONTACT_ID)
+VALUES('5f5021a4-887a-11ea-bc55-0242ac130003', 1, 'ae3f2ec1-ccc5-4269-a48f-dd40e37fa14e' );
+
+INSERT INTO public.tbl_distribution_group_member(UUID, FK_TBL_DISTRIBUTION_GROUP, CONTACT_ID)
+VALUES('5f50228a-887a-11ea-bc55-0242ac130003', 1, '7782179b-fb79-4370-8f71-f4c71470d006' );
+
+INSERT INTO public.tbl_distribution_group_member(UUID, FK_TBL_DISTRIBUTION_GROUP, CONTACT_ID)
+VALUES('14dcac8c-887f-11ea-bc55-0242ac130003', 1, 'fa3d981b-a7d6-4965-a623-cdbc69404153' );
+
+INSERT INTO public.tbl_distribution_group_member(UUID, FK_TBL_DISTRIBUTION_GROUP, CONTACT_ID)
+VALUES('14dcaef8-887f-11ea-bc55-0242ac130003', 2, 'c862d604-5766-43d6-a7e8-a4bac2bd01e1');
+
+INSERT INTO public.tbl_distribution_group_member(UUID, FK_TBL_DISTRIBUTION_GROUP, CONTACT_ID)
+VALUES('14dcaffc-887f-11ea-bc55-0242ac130003', 2, '8fe41b90-d10c-4a70-8fde-0990286ad3c6');
+
+
+-- ----------------------------------------------------------------------------
+-- ----------------------------------------------------------------------------
+-- HISTORY-TABLES
+-- ----------------------------------------------------------------------------
+-- ----------------------------------------------------------------------------
+
+
+-- PUBLIC.HTBL_FAILURE_INFORMATION Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_FAILURE_INFORMATION;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_FAILURE_INFORMATION_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_FAILURE_INFORMATION_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_FAILURE_INFORMATION_ID_SEQ
+  OWNER TO gfi_service;
+
+CREATE TABLE PUBLIC.HTBL_FAILURE_INFORMATION
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_FAILURE_INFORMATION_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  UUID uuid,
+  VERSION_NUMBER integer,
+  FK_REF_FAILURE_CLASSIFICATION integer,
+  FK_REF_FAILURE_TYPE integer,
+  TITLE character varying(255) NULL,
+  DESCRIPTION character varying(255) NULL,
+  RESPONSIBILITY character varying (255),
+  INTERN_EXTERN character varying (1),
+  FK_REF_STATUS_INTERN integer,
+  FK_REF_STATUS_EXTERN integer,
+  FK_REF_BRANCH integer,
+  VOLTAGE_LEVEL character varying (2),
+  PRESSURE_LEVEL character varying (2),
+  FAILURE_BEGIN timestamp without time zone,
+  FAILURE_END_PLANNED timestamp without time zone,
+  FAILURE_END_RESUPPLIED timestamp without time zone,
+  INTERNAL_REMARK character varying (1024),
+  POSTCODE character varying (30),
+  CITY character varying (255),
+  DISTRICT character varying (255),
+  STREET character varying (255),
+  HOUSENUMBER character varying (30),
+  STATION_ID character varying (30),
+  STATION_DESCRIPTION character varying (255),
+  STATION_COORDS character varying (255),
+  FK_REF_RADIUS integer,
+  LONGITUDE numeric(9,6),
+  LATITUDE numeric(9,6),
+  FK_TBL_FAILURE_INFORMATION_CONDENSED integer,
+  CONDENSED boolean,
+  CONDENSED_COUNT integer,
+  OBJECT_REFERENCE_EXTERNAL_SYSTEM character varying (255),
+  PUBLICATION_STATUS character varying (40),
+  PUBLICATION_FREETEXT character varying (1024),
+  FK_REF_EXPECTED_REASON integer,
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_FAILURE_INFORMATION_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_FAILURE_INFORMATION
+  OWNER TO gfi_service;
+GRANT ALL ON TABLE PUBLIC.HTBL_FAILURE_INFORMATION TO gfi_service;
+
+INSERT INTO public.htbl_failure_information(HACTION, HDATE, HUSER, ID, UUID, VERSION_NUMBER, FK_REF_FAILURE_CLASSIFICATION, FK_REF_FAILURE_TYPE, TITLE, DESCRIPTION, RESPONSIBILITY, INTERN_EXTERN, FK_REF_STATUS_INTERN, FK_REF_STATUS_EXTERN, FK_REF_BRANCH, VOLTAGE_LEVEL, PRESSURE_LEVEL, FAILURE_BEGIN, FAILURE_END_PLANNED, FAILURE_END_RESUPPLIED, INTERNAL_REMARK, POSTCODE, CITY, DISTRICT, STREET, HOUSENUMBER, STATION_ID, STATION_DESCRIPTION, STATION_COORDS, FK_REF_RADIUS, LONGITUDE, LATITUDE, OBJECT_REFERENCE_EXTERNAL_SYSTEM, PUBLICATION_STATUS, PUBLICATION_FREETEXT, FK_REF_EXPECTED_REASON, FK_TBL_FAILURE_INFORMATION_CONDENSED, CONDENSED, CONDENSED_COUNT, CREATE_DATE, CREATE_USER, MOD_DATE, MOD_USER)
+VALUES (1, '2020-03-13 00:00:00', 'SCRIPT', 1, '6432a9c9-0384-44af-9bb8-34f2878d7b49', 1, 1, 1, 'Stromausfall Murr', 'Es gibt einen Stromausfall im Bereich Murr/Westbezirk', 'Rolf Rudis', 'I', 1, 1, 1, 'NS', null, '2021-01-19 00:00:00', '2021-01-22 00:00:00', '2021-01-22 12:00:00', 'Der Bagger grub zu tief', '71711', 'Murr', 'Westbezirk', 'Ferdinand-Porsche-Straße', '2', '52863a', 'Trafo 1', '124,2323', 2, 9.247952, 48.955700, 'Link - extenes System', 'veröffentlicht', 'Freitext für die Veröffentlichung: Defekt an Trafostation', 1, null, false, 0, '2020-01-22 15:32:15', 'SCRIPT', '2020-01-24 08:02:44', 'SCRIPT');
+
+INSERT INTO public.htbl_failure_information(HACTION, HDATE, HUSER, ID, UUID, VERSION_NUMBER, FK_REF_FAILURE_CLASSIFICATION, FK_REF_FAILURE_TYPE, TITLE, DESCRIPTION, RESPONSIBILITY, INTERN_EXTERN, FK_REF_STATUS_INTERN, FK_REF_STATUS_EXTERN, FK_REF_BRANCH, VOLTAGE_LEVEL, PRESSURE_LEVEL, FAILURE_BEGIN, FAILURE_END_PLANNED, FAILURE_END_RESUPPLIED, INTERNAL_REMARK, POSTCODE, CITY, DISTRICT, STREET, HOUSENUMBER, STATION_ID, STATION_DESCRIPTION, STATION_COORDS, FK_REF_RADIUS, LONGITUDE, LATITUDE, OBJECT_REFERENCE_EXTERNAL_SYSTEM, PUBLICATION_STATUS, PUBLICATION_FREETEXT, FK_REF_EXPECTED_REASON, FK_TBL_FAILURE_INFORMATION_CONDENSED, CONDENSED, CONDENSED_COUNT, CREATE_DATE, CREATE_USER, MOD_DATE, MOD_USER)
+VALUES (2, '2020-03-13 00:00:00', 'SCRIPT', 2, '37aef635-d0d4-4c47-ac25-c0d16c29e35c', 1, 2, 2, 'Gasleck Oldenburg', 'Es gibt ein Gasleck in Oldenburg', 'Bernd Britzel', 'E', 2, 2, 3, 'NS', 'HD', '2021-05-19 00:00:00', '2021-05-22 00:00:00', '2021-05-22 12:00:00', 'HD betroffen', '26133', 'Oldenburg', null, 'Cloppenburger Str.', '302', '1234863-b234', 'ertf', '124,2323', 4, 8.210150, 53.111820, 'Link - extenes System', 'nicht veröffentlicht', 'Freitext: Eine Gasleitung wurde beschädigt', 4, null, false, 0, '2020-02-03 15:15:15', 'SCRIPT', '2020-02-24 20:08:41', 'SCRIPT');
+
+
+-- ----------------------------------------------------------------------------
+-- ----------------------------------------------------------------------------
+-- Tables ADDRESSIMPORT
+-- ----------------------------------------------------------------------------
+-- ----------------------------------------------------------------------------
+
+/*DROP TABLE IF EXISTS public.TBL_ADDRESS CASCADE;
+DROP SEQUENCE IF EXISTS public.TBL_ADDRESS_ID_SEQ;*/
+
+-- ---------------------------------------------
+-- TABLE TBL_ADDRESS
+-- ---------------------------------------------
+/*CREATE SEQUENCE public.TBL_ADDRESS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.TBL_ADDRESS_ID_SEQ
+  OWNER TO GFI_SERVICE;
+
+CREATE TABLE public.TBL_ADDRESS
+(
+  ID integer NOT NULL DEFAULT nextval('TBL_ADDRESS_ID_SEQ'::regclass),
+  UUID uuid NOT NULL,
+  SDOX1 numeric(9,2) NOT NULL,
+  SDOY1 numeric(10,2) NOT NULL,
+  G3EFID numeric,
+  POSTCODE character varying(30),
+  COMMUNITY character varying(255),
+  DISTRICT character varying(255),
+  STREET character varying(255),
+  HOUSENUMBER character varying(30),
+  WATER_CONNECTION boolean,
+  WATER_GROUP character varying(255),
+  GAS_CONNECTION boolean,
+  GAS_GROUP character varying(255),
+  POWER_CONNECTION boolean,
+  STATION_ID character varying(30),
+  LONGITUDE numeric(9,6),
+  LATITUDE numeric(9,6),
+  CONSTRAINT TBL_ADDRESS_PKEY PRIMARY KEY (id)
+);
+
+ALTER TABLE public.TBL_ADDRESS
+  OWNER TO GFI_SERVICE;
+GRANT ALL ON TABLE public.TBL_ADDRESS TO GFI_SERVICE;
+
+CREATE INDEX idx_tbl_address_g3efid ON public.TBL_ADDRESS ( G3EFID );
+CREATE INDEX idx_tbl_address_postcode ON public.TBL_ADDRESS ( POSTCODE );
+CREATE INDEX idx_tbl_address_community ON public.TBL_ADDRESS ( COMMUNITY );
+CREATE INDEX idx_tbl_address_district ON public.TBL_ADDRESS ( DISTRICT );
+CREATE INDEX idx_tbl_address_street ON public.TBL_ADDRESS ( STREET );
+CREATE INDEX idx_tbl_address_station_id ON public.TBL_ADDRESS ( STATION_ID );*/
+
+
+-- ---------------------------------------------
+-- TABLE TBL_STATION
+-- ---------------------------------------------
+
+/*DROP TABLE IF EXISTS public.TBL_STATION CASCADE;
+DROP SEQUENCE IF EXISTS public.TBL_STATION_ID_SEQ;
+
+CREATE SEQUENCE public.TBL_STATION_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.TBL_STATION_ID_SEQ
+  OWNER TO GFI_SERVICE;
+
+CREATE TABLE public.TBL_STATION
+(
+  ID integer NOT NULL DEFAULT nextval('TBL_STATION_ID_SEQ'::regclass),
+  UUID uuid NOT NULL,
+  SDOX1 numeric(9,2) NOT NULL,
+  SDOY1 numeric(10,2) NOT NULL,
+  G3EFID numeric,
+  STATION_ID character varying(30),
+  STATION_NAME character varying(255),
+  LONGITUDE numeric(9,6),
+  LATITUDE numeric(9,6),
+  CONSTRAINT TBL_STATION_PKEY PRIMARY KEY (id)
+);
+
+ALTER TABLE public.TBL_STATION
+  OWNER TO GFI_SERVICE;
+GRANT ALL ON TABLE public.TBL_STATION TO GFI_SERVICE;
+
+CREATE INDEX idx_tbl_station_g3efid ON public.TBL_STATION ( G3EFID );
+CREATE INDEX idx_tbl_station_station_id ON public.TBL_STATION ( STATION_ID );
+*/
+
+-- ----------------------------------------------------------------------------
+-- ----------------------------------------------------------------------------
+-- TRIGGER
+-- ----------------------------------------------------------------------------
+-- ----------------------------------------------------------------------------
+
+
+-- PUBLIC.TBL_FAILURE_INFORMATION INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_FAILURE_INFORMATION_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_FAILURE_INFORMATION (
+						  ID,UUID,VERSION_NUMBER,FK_REF_FAILURE_CLASSIFICATION,FK_REF_FAILURE_TYPE,TITLE,DESCRIPTION,RESPONSIBILITY,INTERN_EXTERN,FK_REF_STATUS_INTERN,FK_REF_STATUS_EXTERN,FK_REF_BRANCH,VOLTAGE_LEVEL,PRESSURE_LEVEL,FAILURE_BEGIN,FAILURE_END_PLANNED,FAILURE_END_RESUPPLIED,INTERNAL_REMARK,POSTCODE,CITY,DISTRICT,STREET,HOUSENUMBER,STATION_ID,STATION_DESCRIPTION,STATION_COORDS,FK_REF_RADIUS,LONGITUDE,LATITUDE,FK_TBL_FAILURE_INFORMATION_CONDENSED,CONDENSED,CONDENSED_COUNT,OBJECT_REFERENCE_EXTERNAL_SYSTEM,PUBLICATION_STATUS,PUBLICATION_FREETEXT,FK_REF_EXPECTED_REASON,CREATE_DATE,CREATE_USER,MOD_DATE,MOD_USER,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.UUID,NEW.VERSION_NUMBER,NEW.FK_REF_FAILURE_CLASSIFICATION,NEW.FK_REF_FAILURE_TYPE,NEW.TITLE,NEW.DESCRIPTION,NEW.RESPONSIBILITY,NEW.INTERN_EXTERN,NEW.FK_REF_STATUS_INTERN,NEW.FK_REF_STATUS_EXTERN,NEW.FK_REF_BRANCH,NEW.VOLTAGE_LEVEL,NEW.PRESSURE_LEVEL,NEW.FAILURE_BEGIN,NEW.FAILURE_END_PLANNED,NEW.FAILURE_END_RESUPPLIED,NEW.INTERNAL_REMARK,NEW.POSTCODE,NEW.CITY,NEW.DISTRICT,NEW.STREET,NEW.HOUSENUMBER,NEW.STATION_ID,NEW.STATION_DESCRIPTION,NEW.STATION_COORDS,NEW.FK_REF_RADIUS,NEW.LONGITUDE,NEW.LATITUDE,NEW.FK_TBL_FAILURE_INFORMATION_CONDENSED,NEW.CONDENSED,NEW.CONDENSED_COUNT,NEW.OBJECT_REFERENCE_EXTERNAL_SYSTEM,NEW.PUBLICATION_STATUS,NEW.PUBLICATION_FREETEXT,NEW.FK_REF_EXPECTED_REASON,NEW.CREATE_DATE,NEW.CREATE_USER,NEW.MOD_DATE,NEW.MOD_USER,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_FAILURE_INFORMATION_INSERT_TRG()
+  OWNER TO gfi_service;
+
+
+DROP TRIGGER IF EXISTS TBL_FAILURE_INFORMATION_INSERT_TRG ON PUBLIC.TBL_FAILURE_INFORMATION;
+
+CREATE TRIGGER TBL_FAILURE_INFORMATION_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_FAILURE_INFORMATION
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_FAILURE_INFORMATION_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_FAILURE_INFORMATION UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_FAILURE_INFORMATION_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_FAILURE_INFORMATION (
+						  ID,UUID,VERSION_NUMBER,FK_REF_FAILURE_CLASSIFICATION,FK_REF_FAILURE_TYPE,TITLE,DESCRIPTION,RESPONSIBILITY,INTERN_EXTERN,FK_REF_STATUS_INTERN,FK_REF_STATUS_EXTERN,FK_REF_BRANCH,VOLTAGE_LEVEL,PRESSURE_LEVEL,FAILURE_BEGIN,FAILURE_END_PLANNED,FAILURE_END_RESUPPLIED,INTERNAL_REMARK,POSTCODE,CITY,DISTRICT,STREET,HOUSENUMBER,STATION_ID,STATION_DESCRIPTION,STATION_COORDS,FK_REF_RADIUS,LONGITUDE,LATITUDE,FK_TBL_FAILURE_INFORMATION_CONDENSED,CONDENSED,CONDENSED_COUNT,OBJECT_REFERENCE_EXTERNAL_SYSTEM,PUBLICATION_STATUS,PUBLICATION_FREETEXT,FK_REF_EXPECTED_REASON,CREATE_DATE,CREATE_USER,MOD_DATE,MOD_USER,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.UUID,NEW.VERSION_NUMBER,NEW.FK_REF_FAILURE_CLASSIFICATION,NEW.FK_REF_FAILURE_TYPE,NEW.TITLE,NEW.DESCRIPTION,NEW.RESPONSIBILITY,NEW.INTERN_EXTERN,NEW.FK_REF_STATUS_INTERN,NEW.FK_REF_STATUS_EXTERN,NEW.FK_REF_BRANCH,NEW.VOLTAGE_LEVEL,NEW.PRESSURE_LEVEL,NEW.FAILURE_BEGIN,NEW.FAILURE_END_PLANNED,NEW.FAILURE_END_RESUPPLIED,NEW.INTERNAL_REMARK,NEW.POSTCODE,NEW.CITY,NEW.DISTRICT,NEW.STREET,NEW.HOUSENUMBER,NEW.STATION_ID,NEW.STATION_DESCRIPTION,NEW.STATION_COORDS,NEW.FK_REF_RADIUS,NEW.LONGITUDE,NEW.LATITUDE,NEW.FK_TBL_FAILURE_INFORMATION_CONDENSED,NEW.CONDENSED,NEW.CONDENSED_COUNT,NEW.OBJECT_REFERENCE_EXTERNAL_SYSTEM,NEW.PUBLICATION_STATUS,NEW.PUBLICATION_FREETEXT,NEW.FK_REF_EXPECTED_REASON,NEW.CREATE_DATE,NEW.CREATE_USER,NEW.MOD_DATE,NEW.MOD_USER,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_FAILURE_INFORMATION_UPDATE_TRG()
+  OWNER TO gfi_service;
+
+DROP TRIGGER IF EXISTS TBL_FAILURE_INFORMATION_UPDATE_TRG ON PUBLIC.TBL_FAILURE_INFORMATION;
+
+CREATE TRIGGER TBL_FAILURE_INFORMATION_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_FAILURE_INFORMATION
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_FAILURE_INFORMATION_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_FAILURE_INFORMATION DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_FAILURE_INFORMATION_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_FAILURE_INFORMATION (
+
+						  ID,UUID,VERSION_NUMBER,FK_REF_FAILURE_CLASSIFICATION,FK_REF_FAILURE_TYPE,TITLE,DESCRIPTION,RESPONSIBILITY,INTERN_EXTERN,FK_REF_STATUS_INTERN,FK_REF_STATUS_EXTERN,FK_REF_BRANCH,VOLTAGE_LEVEL,PRESSURE_LEVEL,FAILURE_BEGIN,FAILURE_END_PLANNED,FAILURE_END_RESUPPLIED,INTERNAL_REMARK,POSTCODE,CITY,DISTRICT,STREET,HOUSENUMBER,STATION_ID,STATION_DESCRIPTION,STATION_COORDS,FK_REF_RADIUS,LONGITUDE,LATITUDE,FK_TBL_FAILURE_INFORMATION_CONDENSED,CONDENSED,CONDENSED_COUNT,OBJECT_REFERENCE_EXTERNAL_SYSTEM,PUBLICATION_STATUS,PUBLICATION_FREETEXT,FK_REF_EXPECTED_REASON,CREATE_DATE,CREATE_USER,MOD_DATE,MOD_USER,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.UUID,OLD.VERSION_NUMBER,OLD.FK_REF_FAILURE_CLASSIFICATION,OLD.FK_REF_FAILURE_TYPE,OLD.TITLE,OLD.DESCRIPTION,OLD.RESPONSIBILITY,OLD.INTERN_EXTERN,OLD.FK_REF_STATUS_INTERN,OLD.FK_REF_STATUS_EXTERN,OLD.FK_REF_BRANCH,OLD.VOLTAGE_LEVEL,OLD.PRESSURE_LEVEL,OLD.FAILURE_BEGIN,OLD.FAILURE_END_PLANNED,OLD.FAILURE_END_RESUPPLIED,OLD.INTERNAL_REMARK,OLD.POSTCODE,OLD.CITY,OLD.DISTRICT,OLD.STREET,OLD.HOUSENUMBER,OLD.STATION_ID,OLD.STATION_DESCRIPTION,OLD.STATION_COORDS,OLD.FK_REF_RADIUS,OLD.LONGITUDE,OLD.LATITUDE,OLD.FK_TBL_FAILURE_INFORMATION_CONDENSED,OLD.CONDENSED,OLD.CONDENSED_COUNT,OLD.OBJECT_REFERENCE_EXTERNAL_SYSTEM,OLD.PUBLICATION_STATUS,OLD.PUBLICATION_FREETEXT,OLD.FK_REF_EXPECTED_REASON,OLD.CREATE_DATE,OLD.CREATE_USER,OLD.MOD_DATE,OLD.MOD_USER,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_FAILURE_INFORMATION_DELETE_TRG()
+  OWNER TO gfi_service;
+
+DROP TRIGGER IF EXISTS TBL_FAILURE_INFORMATION_DELETE_TRG ON PUBLIC.TBL_FAILURE_INFORMATION;
+
+CREATE TRIGGER TBL_FAILURE_INFORMATION_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_FAILURE_INFORMATION
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_FAILURE_INFORMATION_DELETE_TRG();
+
diff --git a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/DecideFailureInfoCanceledTest.java b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/DecideFailureInfoCanceledTest.java
index 55c073c..31468a7 100644
--- a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/DecideFailureInfoCanceledTest.java
+++ b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/DecideFailureInfoCanceledTest.java
@@ -14,6 +14,7 @@
 import org.eclipse.openk.gridfailureinformation.support.MockDataHelper;
 import org.eclipse.openk.gridfailureinformation.viewmodel.FailureInformationDto;
 import org.junit.jupiter.api.Test;
+import org.mockito.stubbing.Answer;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
@@ -63,10 +64,13 @@
         when(processHelper.getProcessStateFromStatusUuid(any( UUID.class ))).thenReturn(GfiProcessState.CANCELED);
         when(statusRepository.findByUuid(any( UUID.class ))).thenReturn(Optional.of(refStatus));
         when(failureInformationRepository.findByUuid(any(UUID.class))).thenReturn(Optional.of(fiTbl));
-        when(failureInformationRepository.save(any(TblFailureInformation.class))).thenReturn(fiTbl);
         when(stationRepository.findByStationId(anyString())).thenReturn(Optional.of(tblStation));
         when(addressRepository.findByStationId(anyString())).thenReturn(addressList);
-
+        when( processHelper.storeFailureFromViewModel(any(FailureInformationDto.class)))
+                .then((Answer<FailureInformationDto>) invocation -> {
+                    Object[] args = invocation.getArguments();
+                    return (FailureInformationDto) args[0];
+                });
         FailureInformationDto savedDto = failureInformationService.updateFailureInfo(fiDto);
         //TODO verify CANCELED
         assertEquals(fiDto.getUuid(), savedDto.getUuid());
@@ -87,10 +91,13 @@
         when(processHelper.getProcessStateFromStatusUuid(any( UUID.class ))).thenReturn(GfiProcessState.QUALIFIED);
         when(statusRepository.findByUuid(any( UUID.class ))).thenReturn(Optional.of(refStatus));
         when(failureInformationRepository.findByUuid(any(UUID.class))).thenReturn(Optional.of(fiTbl));
-        when(failureInformationRepository.save(any(TblFailureInformation.class))).thenReturn(fiTbl);
         when(stationRepository.findByStationId(anyString())).thenReturn(Optional.of(tblStation));
         when(addressRepository.findByStationId(anyString())).thenReturn(addressList);
-
+        when( processHelper.storeFailureFromViewModel(any(FailureInformationDto.class)))
+                .then((Answer<FailureInformationDto>) invocation -> {
+                    Object[] args = invocation.getArguments();
+                    return (FailureInformationDto) args[0];
+                });
         FailureInformationDto savedDto = failureInformationService.updateFailureInfo(fiDto);
         //TODO verify Qualified
         assertEquals(fiDto.getUuid(), savedDto.getUuid());
diff --git a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/DecideFailureInfoUpdatedTest.java b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/DecideFailureInfoUpdatedTest.java
new file mode 100644
index 0000000..55538ca
--- /dev/null
+++ b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/bpmn/impl/DecideFailureInfoUpdatedTest.java
@@ -0,0 +1,116 @@
+package org.eclipse.openk.gridfailureinformation.bpmn.impl;
+
+import org.eclipse.openk.gridfailureinformation.bpmn.impl.tasks.ProcessHelper;
+import org.eclipse.openk.gridfailureinformation.config.TestConfiguration;
+import org.eclipse.openk.gridfailureinformation.model.RefStatus;
+import org.eclipse.openk.gridfailureinformation.model.TblAddress;
+import org.eclipse.openk.gridfailureinformation.model.TblFailureInformation;
+import org.eclipse.openk.gridfailureinformation.model.TblStation;
+import org.eclipse.openk.gridfailureinformation.repository.AddressRepository;
+import org.eclipse.openk.gridfailureinformation.repository.FailureInformationRepository;
+import org.eclipse.openk.gridfailureinformation.repository.StationRepository;
+import org.eclipse.openk.gridfailureinformation.repository.StatusRepository;
+import org.eclipse.openk.gridfailureinformation.service.FailureInformationService;
+import org.eclipse.openk.gridfailureinformation.support.MockDataHelper;
+import org.eclipse.openk.gridfailureinformation.viewmodel.FailureInformationDto;
+import org.junit.jupiter.api.Test;
+import org.mockito.stubbing.Answer;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
+import org.springframework.boot.test.mock.mockito.MockBean;
+import org.springframework.test.context.ContextConfiguration;
+
+import java.util.List;
+import java.util.Optional;
+import java.util.UUID;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.Mockito.when;
+
+@DataJpaTest
+@ContextConfiguration(classes = {TestConfiguration.class})
+public class DecideFailureInfoUpdatedTest {
+
+    @Qualifier("myFailureInformationService")
+    @Autowired
+    private FailureInformationService failureInformationService;
+
+    @MockBean
+    private ProcessHelper processHelper;
+    @MockBean
+    private StatusRepository statusRepository;
+    @MockBean
+    private FailureInformationRepository failureInformationRepository;
+    @MockBean
+    private StationRepository stationRepository;
+    @MockBean
+    private AddressRepository addressRepository;
+
+    @Test
+    public void shouldCall_DecideFailureInfoUpdated_Result_Updated() {
+        RefStatus refStatus = MockDataHelper.mockRefStatus();
+        refStatus.setId(GfiProcessState.QUALIFIED.getStatusValue());
+        refStatus.setStatus("qualified");
+
+        FailureInformationDto fiDto = MockDataHelper.mockFailureInformationDto();
+        UUID statusUpdated = UUID.randomUUID();
+        fiDto.setStatusInternId(statusUpdated);
+
+        TblFailureInformation fiTbl = MockDataHelper.mockTblFailureInformation();
+        fiTbl.setId(777L);
+        TblStation tblStation = MockDataHelper.mockTblStation();
+        List<TblAddress> addressList = MockDataHelper.mockTblAddressList();
+
+        when(processHelper.getProcessStateFromStatusUuid(any( UUID.class ))).thenReturn(GfiProcessState.UPDATED);
+        when(statusRepository.findByUuid(any( UUID.class ))).thenReturn(Optional.of(refStatus));
+        when(failureInformationRepository.findByUuid(any(UUID.class))).thenReturn(Optional.of(fiTbl));
+        when(stationRepository.findByStationId(anyString())).thenReturn(Optional.of(tblStation));
+        when(addressRepository.findByStationId(anyString())).thenReturn(addressList);
+        when( processHelper.storeFailureFromViewModel(any(FailureInformationDto.class)))
+                .then((Answer<FailureInformationDto>) invocation -> {
+                    Object[] args = invocation.getArguments();
+                    return (FailureInformationDto) args[0];
+                });
+
+        FailureInformationDto savedDto = failureInformationService.updateFailureInfo(fiDto);
+
+        assertEquals(fiDto.getUuid(), savedDto.getUuid());
+        assertEquals(statusUpdated, fiDto.getStatusInternId());
+    }
+
+    @Test
+    public void shouldCall_DecideFailureInfoUpdated_Result_Completed() {
+        RefStatus refStatus = MockDataHelper.mockRefStatus();
+        refStatus.setId(GfiProcessState.QUALIFIED.getStatusValue());
+        refStatus.setStatus("qualified");
+
+        FailureInformationDto fiDto = MockDataHelper.mockFailureInformationDto();
+        UUID statusCompleted = UUID.randomUUID();
+        fiDto.setStatusInternId(statusCompleted);
+
+        TblFailureInformation fiTbl = MockDataHelper.mockTblFailureInformation();
+        fiTbl.setId(777L);
+        TblStation tblStation = MockDataHelper.mockTblStation();
+        List<TblAddress> addressList = MockDataHelper.mockTblAddressList();
+
+        when(processHelper.getProcessStateFromStatusUuid(any( UUID.class ))).thenReturn(GfiProcessState.COMPLETED);
+        when(statusRepository.findByUuid(any( UUID.class ))).thenReturn(Optional.of(refStatus));
+        when(failureInformationRepository.findByUuid(any(UUID.class))).thenReturn(Optional.of(fiTbl));
+        when(stationRepository.findByStationId(anyString())).thenReturn(Optional.of(tblStation));
+        when(addressRepository.findByStationId(anyString())).thenReturn(addressList);
+        when( processHelper.storeFailureFromViewModel(any(FailureInformationDto.class)))
+                .then((Answer<FailureInformationDto>) invocation -> {
+                    Object[] args = invocation.getArguments();
+                    return (FailureInformationDto) args[0];
+                });
+
+        FailureInformationDto savedDto = failureInformationService.updateFailureInfo(fiDto);
+
+        assertEquals(fiDto.getUuid(), savedDto.getUuid());
+        assertEquals(statusCompleted, fiDto.getStatusInternId());
+    }
+
+}
diff --git a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/controller/AddressControllerTest.java b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/controller/AddressControllerTest.java
index 75a8287..9b1108e 100644
--- a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/controller/AddressControllerTest.java
+++ b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/controller/AddressControllerTest.java
@@ -49,45 +49,97 @@
 
     @Test
     public void shouldReturnPostCodes() throws Exception {
+        Optional<String> branchOptional = Optional.empty();
         List<String> postcodes = MockDataHelper.mockPostCodes();
-        when(addressService.getPostcodes()).thenReturn(postcodes);
+        when(addressService.getPostcodes(branchOptional)).thenReturn(postcodes);
 
         mockMvc.perform(get("/addresses/postcodes"))
                 .andExpect(status().is2xxSuccessful())
                 .andExpect(content().contentType(MediaType.APPLICATION_JSON));
 
-        verify(addressService, times(1)).getPostcodes();
+        verify(addressService, times(1)).getPostcodes(branchOptional);
+    }
+
+    @Test
+    public void shouldReturnPostCodesForBranch() throws Exception {
+        String branch = "B";
+        Optional<String> branchOptional = Optional.of(branch);
+        List<String> postcodes = MockDataHelper.mockPostCodes();
+        when(addressService.getPostcodes(branchOptional)).thenReturn(postcodes);
+
+        mockMvc.perform(get("/addresses/postcodes?branch=" + branch))
+                .andExpect(status().is2xxSuccessful())
+                .andExpect(content().contentType(MediaType.APPLICATION_JSON));
+
+        verify(addressService, times(1)).getPostcodes(branchOptional);
     }
 
     @Test
     public void shouldReturnCommunities() throws Exception {
         String postcode = "71111";
+        Optional<String> branchOptional = Optional.empty();
         List<String> strings = MockDataHelper.mockStringList();
-        when(addressService.getCommunities(postcode)).thenReturn(strings);
+        when(addressService.getCommunities(postcode, branchOptional)).thenReturn(strings);
 
         mockMvc.perform(get("/addresses/communities/" + postcode))
                 .andExpect(status().is2xxSuccessful())
                 .andExpect(content().contentType(MediaType.APPLICATION_JSON));
 
-        verify(addressService, times(1)).getCommunities(postcode);
+        verify(addressService, times(1)).getCommunities(postcode, branchOptional);
+    }
+
+    @Test
+    public void shouldReturnCommunitiesForBranch() throws Exception {
+        String branch = "B";
+        String postcode = "71111";
+        Optional<String> branchOptional = Optional.of(branch);
+        List<String> strings = MockDataHelper.mockStringList();
+        when(addressService.getCommunities(postcode, branchOptional)).thenReturn(strings);
+
+        mockMvc.perform(get("/addresses/communities/" + postcode + "?branch=" + branch))
+                .andExpect(status().is2xxSuccessful())
+                .andExpect(content().contentType(MediaType.APPLICATION_JSON));
+
+        verify(addressService, times(1)).getCommunities(postcode, branchOptional);
     }
 
     @Test
     public void shouldReturnDistricts() throws Exception {
         String postcode = "71111";
         String community = "com1";
+        Optional<String> branchOptional = Optional.empty();
         List<String> strings = MockDataHelper.mockStringList();
-        when(addressService.getDistricts(postcode, community)).thenReturn(strings);
+        when(addressService.getDistricts(postcode, community, branchOptional)).thenReturn(strings);
 
         mockMvc.perform(
-                    get("/addresses/districts")
-                    .param("postcode", postcode)
-                    .param("community", community)
-                )
+                get("/addresses/districts")
+                        .param("postcode", postcode)
+                        .param("community", community)
+        )
                 .andExpect(status().is2xxSuccessful())
                 .andExpect(content().contentType(MediaType.APPLICATION_JSON));
 
-        verify(addressService, times(1)).getDistricts(postcode, community);
+        verify(addressService, times(1)).getDistricts(postcode, community, branchOptional);
+    }
+
+    @Test
+    public void shouldReturnDistrictsForBranch() throws Exception {
+        String postcode = "71111";
+        String community = "com1";
+        String branch = "B";
+        Optional<String> branchOptional = Optional.of(branch);
+        List<String> strings = MockDataHelper.mockStringList();
+        when(addressService.getDistricts(postcode, community, branchOptional)).thenReturn(strings);
+
+        mockMvc.perform(
+                get("/addresses/districts?branch=" + branch)
+                        .param("postcode", postcode)
+                        .param("community", community)
+        )
+                .andExpect(status().is2xxSuccessful())
+                .andExpect(content().contentType(MediaType.APPLICATION_JSON));
+
+        verify(addressService, times(1)).getDistricts(postcode, community, branchOptional);
     }
 
     @Test
@@ -95,8 +147,9 @@
         String postcode = "71111";
         String community = "com1";
         Optional<String> district = Optional.of("district1");
+        Optional<String> branchOptional = Optional.empty();
         List<String> strings = MockDataHelper.mockStringList();
-        when(addressService.getStreets(postcode, community, district)).thenReturn(strings);
+        when(addressService.getStreets(postcode, community, district, branchOptional)).thenReturn(strings);
 
         mockMvc.perform(
                     get("/addresses/streets")
@@ -107,7 +160,29 @@
                 .andExpect(status().is2xxSuccessful())
                 .andExpect(content().contentType(MediaType.APPLICATION_JSON));
 
-        verify(addressService, times(1)).getStreets(postcode, community, district);
+        verify(addressService, times(1)).getStreets(postcode, community, district, branchOptional);
+    }
+
+    @Test
+    public void shouldReturnStreetsForBranch() throws Exception {
+        String postcode = "71111";
+        String community = "com1";
+        String branch = "B";
+        Optional<String> district = Optional.of("district1");
+        Optional<String> branchOptional = Optional.of(branch);
+        List<String> strings = MockDataHelper.mockStringList();
+        when(addressService.getStreets(postcode, community, district, branchOptional)).thenReturn(strings);
+
+        mockMvc.perform(
+                get("/addresses/streets?branch=" + branch)
+                        .param("postcode", postcode)
+                        .param("community", community)
+                        .param("district", "district1")
+        )
+                .andExpect(status().is2xxSuccessful())
+                .andExpect(content().contentType(MediaType.APPLICATION_JSON));
+
+        verify(addressService, times(1)).getStreets(postcode, community, district, branchOptional);
     }
 
     @Test
@@ -115,8 +190,9 @@
         String postcode = "71111";
         String community = "com1";
         String street = "street1";
+        Optional<String> branchOptional = Optional.empty();
         List<HousenumberUuidDto> housenumberUuidDtos = MockDataHelper.mockHousnumberUuidList();
-        when(addressService.getHousenumbers(postcode, community, street)).thenReturn(housenumberUuidDtos);
+        when(addressService.getHousenumbers(postcode, community, street, branchOptional)).thenReturn(housenumberUuidDtos);
 
         mockMvc.perform(
                 get("/addresses/housenumbers")
@@ -127,6 +203,28 @@
                 .andExpect(status().is2xxSuccessful())
                 .andExpect(content().contentType(MediaType.APPLICATION_JSON));
 
-        verify(addressService, times(1)).getHousenumbers(postcode, community, street);
+        verify(addressService, times(1)).getHousenumbers(postcode, community, street, branchOptional);
+    }
+
+    @Test
+    public void shouldReturnHousenumbersForBranch() throws Exception {
+        String postcode = "71111";
+        String community = "com1";
+        String street = "street1";
+        String branch = "B";
+        Optional<String> branchOptional = Optional.of(branch);
+        List<HousenumberUuidDto> housenumberUuidDtos = MockDataHelper.mockHousnumberUuidList();
+        when(addressService.getHousenumbers(postcode, community, street, branchOptional)).thenReturn(housenumberUuidDtos);
+
+        mockMvc.perform(
+                get("/addresses/housenumbers?branch=" + branch)
+                        .param("postcode", postcode)
+                        .param("community", community)
+                        .param("street", street)
+        )
+                .andExpect(status().is2xxSuccessful())
+                .andExpect(content().contentType(MediaType.APPLICATION_JSON));
+
+        verify(addressService, times(1)).getHousenumbers(postcode, community, street, branchOptional);
     }
 }
\ No newline at end of file
diff --git a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/controller/ExpectedReasonControllerTest.java b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/controller/ExpectedReasonControllerTest.java
index 08954d8..a5093f0 100644
--- a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/controller/ExpectedReasonControllerTest.java
+++ b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/controller/ExpectedReasonControllerTest.java
@@ -28,6 +28,7 @@
 import org.springframework.test.web.servlet.MockMvc;
 
 import java.util.List;
+import java.util.Optional;
 
 import static org.mockito.Mockito.when;
 import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
@@ -48,8 +49,9 @@
 
     @Test
     public void shouldReturnExpectedReasons() throws Exception {
+        Optional<String> branchOptional = Optional.empty();
         List<ExpectedReasonDto> expectedReasonDtoList = MockDataHelper.mockExpectedReasonDtoList();
-        when(expectedReasonService.getExpectedReasons()).thenReturn(expectedReasonDtoList);
+        when(expectedReasonService.getExpectedReasons(branchOptional)).thenReturn(expectedReasonDtoList);
 
         mockMvc.perform(get("/expected-reasons"))
                 .andExpect(status().is2xxSuccessful())
diff --git a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/service/AddressServiceTest.java b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/service/AddressServiceTest.java
index 7cdd870..80de866 100644
--- a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/service/AddressServiceTest.java
+++ b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/service/AddressServiceTest.java
@@ -46,9 +46,58 @@
 
     @Test
     public void shouldGetAllAddresses() {
+        Optional<String> branchOptional = Optional.empty();
         List<TblAddress> addresses = MockDataHelper.mockAddressList();
         when(addressRepository.findAll()).thenReturn(addresses);
-        List<AddressDto> addressesDtoList = addressService.getAddresses();
+        List<AddressDto> addressesDtoList = addressService.getAddresses(branchOptional);
+
+        assertEquals(addressesDtoList.size(), addresses.size());
+        assertEquals(2, addressesDtoList.size());
+        assertEquals(addressesDtoList.get(1).getUuid(), addresses.get(1).getUuid());
+    }
+
+    @Test
+    public void shouldGetAddressesForPower() {
+        Optional<String> branchOptional = Optional.of("S");
+        List<TblAddress> addresses = MockDataHelper.mockAddressList();
+        when(addressRepository.findByPowerConnection(true)).thenReturn(addresses);
+        List<AddressDto> addressesDtoList = addressService.getAddresses(branchOptional);
+
+        assertEquals(addressesDtoList.size(), addresses.size());
+        assertEquals(2, addressesDtoList.size());
+        assertEquals(addressesDtoList.get(1).getUuid(), addresses.get(1).getUuid());
+    }
+
+    @Test
+    public void shouldGetAddressesForWater() {
+        Optional<String> branchOptional = Optional.of("W");
+        List<TblAddress> addresses = MockDataHelper.mockAddressList();
+        when(addressRepository.findByWaterConnection(true)).thenReturn(addresses);
+        List<AddressDto> addressesDtoList = addressService.getAddresses(branchOptional);
+
+        assertEquals(addressesDtoList.size(), addresses.size());
+        assertEquals(2, addressesDtoList.size());
+        assertEquals(addressesDtoList.get(1).getUuid(), addresses.get(1).getUuid());
+    }
+
+    @Test
+    public void shouldGetAddressesForGas() {
+        Optional<String> branchOptional = Optional.of("G");
+        List<TblAddress> addresses = MockDataHelper.mockAddressList();
+        when(addressRepository.findByGasConnection(true)).thenReturn(addresses);
+        List<AddressDto> addressesDtoList = addressService.getAddresses(branchOptional);
+
+        assertEquals(addressesDtoList.size(), addresses.size());
+        assertEquals(2, addressesDtoList.size());
+        assertEquals(addressesDtoList.get(1).getUuid(), addresses.get(1).getUuid());
+    }
+
+    @Test
+    public void shouldGetAllAddressesForOtherBranches() {
+        Optional<String> branchOptional = Optional.of("XXX");
+        List<TblAddress> addresses = MockDataHelper.mockAddressList();
+        when(addressRepository.findAll()).thenReturn(addresses);
+        List<AddressDto> addressesDtoList = addressService.getAddresses(branchOptional);
 
         assertEquals(addressesDtoList.size(), addresses.size());
         assertEquals(2, addressesDtoList.size());
@@ -57,9 +106,63 @@
 
     @Test
     public void shouldGetPostcodes() {
+        Optional<String> branchOptional = Optional.empty();
         List<String> strings = MockDataHelper.mockStringList();
         when(addressRepository.findAllPostcodes()).thenReturn(strings);
-        List<String> postCodes = addressService.getPostcodes();
+
+        List<String> postCodes = addressService.getPostcodes(branchOptional);
+
+        assertEquals(postCodes.size(), strings.size());
+        assertEquals(2, postCodes.size());
+        assertEquals(postCodes.get(1), strings.get(1));
+    }
+
+    @Test
+    public void shouldGetPostcodesForPower() {
+        Optional<String> branchOptional = Optional.of("S");
+        List<String> strings = MockDataHelper.mockStringList();
+        when(addressRepository.findAllPostcodesForPower()).thenReturn(strings);
+
+        List<String> postCodes = addressService.getPostcodes(branchOptional);
+
+        assertEquals(postCodes.size(), strings.size());
+        assertEquals(2, postCodes.size());
+        assertEquals(postCodes.get(1), strings.get(1));
+    }
+
+    @Test
+    public void shouldGetPostcodesForGas() {
+        Optional<String> branchOptional = Optional.of("G");
+        List<String> strings = MockDataHelper.mockStringList();
+        when(addressRepository.findAllPostcodesForGas()).thenReturn(strings);
+
+        List<String> postCodes = addressService.getPostcodes(branchOptional);
+
+        assertEquals(postCodes.size(), strings.size());
+        assertEquals(2, postCodes.size());
+        assertEquals(postCodes.get(1), strings.get(1));
+    }
+
+    @Test
+    public void shouldGetPostcodesForWater() {
+        Optional<String> branchOptional = Optional.of("W");
+        List<String> strings = MockDataHelper.mockStringList();
+        when(addressRepository.findAllPostcodesForWater()).thenReturn(strings);
+
+        List<String> postCodes = addressService.getPostcodes(branchOptional);
+
+        assertEquals(postCodes.size(), strings.size());
+        assertEquals(2, postCodes.size());
+        assertEquals(postCodes.get(1), strings.get(1));
+    }
+
+    @Test
+    public void shouldGetPostcodesForOtherBranches() {
+        Optional<String> branchOptional = Optional.of("TK");
+        List<String> strings = MockDataHelper.mockStringList();
+        when(addressRepository.findAllPostcodes()).thenReturn(strings);
+
+        List<String> postCodes = addressService.getPostcodes(branchOptional);
 
         assertEquals(postCodes.size(), strings.size());
         assertEquals(2, postCodes.size());
@@ -69,9 +172,62 @@
     @Test
     public void shouldGetCommunities() {
         String postcode = "12345";
+        Optional<String> branchOptional = Optional.empty();
         List<String> strings = MockDataHelper.mockStringList();
         when(addressRepository.findCommunitiesByPostcode(postcode)).thenReturn(strings);
-        List<String> communities = addressService.getCommunities(postcode);
+        List<String> communities = addressService.getCommunities(postcode, branchOptional);
+
+        assertEquals(communities.size(), strings.size());
+        assertEquals(2, communities.size());
+        assertEquals(communities.get(1), strings.get(1));
+    }
+
+    @Test
+    public void shouldGetCommunitiesForPower() {
+        String postcode = "12345";
+        Optional<String> branchOptional = Optional.of("S");
+        List<String> strings = MockDataHelper.mockStringList();
+        when(addressRepository.findCommunitiesByPostcodeForPowerConnections(postcode)).thenReturn(strings);
+        List<String> communities = addressService.getCommunities(postcode, branchOptional);
+
+        assertEquals(communities.size(), strings.size());
+        assertEquals(2, communities.size());
+        assertEquals(communities.get(1), strings.get(1));
+    }
+
+    @Test
+    public void shouldGetCommunitiesForGas() {
+        String postcode = "12345";
+        Optional<String> branchOptional = Optional.of("G");
+        List<String> strings = MockDataHelper.mockStringList();
+        when(addressRepository.findCommunitiesByPostcodeForGasConnections(postcode)).thenReturn(strings);
+        List<String> communities = addressService.getCommunities(postcode, branchOptional);
+
+        assertEquals(communities.size(), strings.size());
+        assertEquals(2, communities.size());
+        assertEquals(communities.get(1), strings.get(1));
+    }
+
+    @Test
+    public void shouldGetCommunitiesForWater() {
+        String postcode = "12345";
+        Optional<String> branchOptional = Optional.of("W");
+        List<String> strings = MockDataHelper.mockStringList();
+        when(addressRepository.findCommunitiesByPostcodeForWaterConnections(postcode)).thenReturn(strings);
+        List<String> communities = addressService.getCommunities(postcode, branchOptional);
+
+        assertEquals(communities.size(), strings.size());
+        assertEquals(2, communities.size());
+        assertEquals(communities.get(1), strings.get(1));
+    }
+
+    @Test
+    public void shouldGetCommunitiesForOtherBranches() {
+        String postcode = "12345";
+        Optional<String> branchOptional = Optional.of("ST");
+        List<String> strings = MockDataHelper.mockStringList();
+        when(addressRepository.findCommunitiesByPostcode(postcode)).thenReturn(strings);
+        List<String> communities = addressService.getCommunities(postcode, branchOptional);
 
         assertEquals(communities.size(), strings.size());
         assertEquals(2, communities.size());
@@ -82,9 +238,66 @@
     public void shouldGetDistricts() {
         String postcode = "12345";
         String community = "com1";
+        Optional<String> branchOptional = Optional.empty();
         List<String> strings = MockDataHelper.mockStringList();
         when(addressRepository.findDistrictsByPostcodeAndCommunity(postcode, community)).thenReturn(strings);
-        List<String> districts = addressService.getDistricts(postcode, community);
+        List<String> districts = addressService.getDistricts(postcode, community, branchOptional);
+
+        assertEquals(districts.size(), strings.size());
+        assertEquals(2, districts.size());
+        assertEquals(districts.get(1), strings.get(1));
+    }
+
+    @Test
+    public void shouldGetDistrictsForPower() {
+        String postcode = "12345";
+        String community = "com1";
+        Optional<String> branchOptional = Optional.of("S");
+        List<String> strings = MockDataHelper.mockStringList();
+        when(addressRepository.findDistrictsByPostcodeAndCommunityForPower(postcode, community)).thenReturn(strings);
+        List<String> districts = addressService.getDistricts(postcode, community, branchOptional);
+
+        assertEquals(districts.size(), strings.size());
+        assertEquals(2, districts.size());
+        assertEquals(districts.get(1), strings.get(1));
+    }
+
+    @Test
+    public void shouldGetDistrictsForGas() {
+        String postcode = "12345";
+        String community = "com1";
+        Optional<String> branchOptional = Optional.of("G");
+        List<String> strings = MockDataHelper.mockStringList();
+        when(addressRepository.findDistrictsByPostcodeAndCommunityForGas(postcode, community)).thenReturn(strings);
+        List<String> districts = addressService.getDistricts(postcode, community, branchOptional);
+
+        assertEquals(districts.size(), strings.size());
+        assertEquals(2, districts.size());
+        assertEquals(districts.get(1), strings.get(1));
+    }
+
+    @Test
+    public void shouldGetDistrictsForWater() {
+        String postcode = "12345";
+        String community = "com1";
+        Optional<String> branchOptional = Optional.of("W");
+        List<String> strings = MockDataHelper.mockStringList();
+        when(addressRepository.findDistrictsByPostcodeAndCommunityForWater(postcode, community)).thenReturn(strings);
+        List<String> districts = addressService.getDistricts(postcode, community, branchOptional);
+
+        assertEquals(districts.size(), strings.size());
+        assertEquals(2, districts.size());
+        assertEquals(districts.get(1), strings.get(1));
+    }
+
+    @Test
+    public void shouldGetDistrictsForOtherBranches() {
+        String postcode = "12345";
+        String community = "com1";
+        Optional<String> branchOptional = Optional.of("TK");
+        List<String> strings = MockDataHelper.mockStringList();
+        when(addressRepository.findDistrictsByPostcodeAndCommunity(postcode, community)).thenReturn(strings);
+        List<String> districts = addressService.getDistricts(postcode, community, branchOptional);
 
         assertEquals(districts.size(), strings.size());
         assertEquals(2, districts.size());
@@ -96,12 +309,85 @@
         String postcode = "12345";
         String community = "com1";
         String street = "street1";
+        Optional<String> branchOptional = Optional.empty();
         List<HousenumberUuidDto> housenumberUuids = MockDataHelper.mockHousnumberUuidList();
         List<TblAddress> tblAddresses = MockDataHelper.mockAddressList();
 
         when(addressRepository.findByPostcodeAndCommunityAndStreet(postcode, community, street)).thenReturn(tblAddresses);
 
-        List<HousenumberUuidDto> housenumbers = addressService.getHousenumbers(postcode, community, street);
+        List<HousenumberUuidDto> housenumbers = addressService.getHousenumbers(postcode, community, street, branchOptional);
+
+        assertEquals(housenumbers.size(), housenumberUuids.size());
+        assertEquals(2, housenumbers.size());
+        assertEquals(housenumbers.get(1).getHousenumber(), housenumberUuids.get(1).getHousenumber());
+    }
+
+    @Test
+    public void shouldGetHousenumbersForPower() {
+        String postcode = "12345";
+        String community = "com1";
+        String street = "street1";
+        Optional<String> branchOptional = Optional.of("S");
+        List<HousenumberUuidDto> housenumberUuids = MockDataHelper.mockHousnumberUuidList();
+        List<TblAddress> tblAddresses = MockDataHelper.mockAddressList();
+
+        when(addressRepository.findByPostcodeAndCommunityAndStreetForPower(postcode, community, street)).thenReturn(tblAddresses);
+
+        List<HousenumberUuidDto> housenumbers = addressService.getHousenumbers(postcode, community, street, branchOptional);
+
+        assertEquals(housenumbers.size(), housenumberUuids.size());
+        assertEquals(2, housenumbers.size());
+        assertEquals(housenumbers.get(1).getHousenumber(), housenumberUuids.get(1).getHousenumber());
+    }
+
+    @Test
+    public void shouldGetHousenumbersForGas() {
+        String postcode = "12345";
+        String community = "com1";
+        String street = "street1";
+        Optional<String> branchOptional = Optional.of("G");
+        List<HousenumberUuidDto> housenumberUuids = MockDataHelper.mockHousnumberUuidList();
+        List<TblAddress> tblAddresses = MockDataHelper.mockAddressList();
+
+        when(addressRepository.findByPostcodeAndCommunityAndStreetForGas(postcode, community, street)).thenReturn(tblAddresses);
+
+        List<HousenumberUuidDto> housenumbers = addressService.getHousenumbers(postcode, community, street, branchOptional);
+
+        assertEquals(housenumbers.size(), housenumberUuids.size());
+        assertEquals(2, housenumbers.size());
+        assertEquals(housenumbers.get(1).getHousenumber(), housenumberUuids.get(1).getHousenumber());
+    }
+
+    @Test
+    public void shouldGetHousenumbersForWater() {
+        String postcode = "12345";
+        String community = "com1";
+        String street = "street1";
+        Optional<String> branchOptional = Optional.of("W");
+        List<HousenumberUuidDto> housenumberUuids = MockDataHelper.mockHousnumberUuidList();
+        List<TblAddress> tblAddresses = MockDataHelper.mockAddressList();
+
+        when(addressRepository.findByPostcodeAndCommunityAndStreetForWater(postcode, community, street)).thenReturn(tblAddresses);
+
+        List<HousenumberUuidDto> housenumbers = addressService.getHousenumbers(postcode, community, street, branchOptional);
+
+        assertEquals(housenumbers.size(), housenumberUuids.size());
+        assertEquals(2, housenumbers.size());
+        assertEquals(housenumbers.get(1).getHousenumber(), housenumberUuids.get(1).getHousenumber());
+    }
+
+    @Test
+    public void shouldGetHousenumbersForOtherBranches() {
+        String postcode = "12345";
+        String community = "com1";
+        String street = "street1";
+        Optional<String> branchOptional = Optional.of("S");
+        List<HousenumberUuidDto> housenumberUuids = MockDataHelper.mockHousnumberUuidList();
+        List<TblAddress> tblAddresses = MockDataHelper.mockAddressList();
+
+        when(addressRepository.findByPostcodeAndCommunityAndStreetForPower(postcode, community, street)).thenReturn(tblAddresses);
+
+        List<HousenumberUuidDto> housenumbers = addressService.getHousenumbers(postcode, community, street, branchOptional);
 
         assertEquals(housenumbers.size(), housenumberUuids.size());
         assertEquals(2, housenumbers.size());
@@ -113,9 +399,70 @@
         String postcode = "12345";
         String community = "com1";
         Optional<String> district = Optional.empty();
+        Optional<String> branchOptional = Optional.empty();
         List<String> strings = MockDataHelper.mockStringList();
         when(addressRepository.findStreetsByPostcodeAndCommunity(postcode, community)).thenReturn(strings);
-        List<String> streets = addressService.getStreets(postcode, community, district);
+        List<String> streets = addressService.getStreets(postcode, community, district, branchOptional);
+
+        assertEquals(streets.size(), strings.size());
+        assertEquals(2, streets.size());
+        assertEquals(streets.get(1), strings.get(1));
+    }
+
+    @Test
+    public void shouldGetStreetsWithoutDistrictsForPower() {
+        String postcode = "12345";
+        String community = "com1";
+        Optional<String> district = Optional.empty();
+        Optional<String> branchOptional = Optional.of("S");
+        List<String> strings = MockDataHelper.mockStringList();
+        when(addressRepository.findStreetsByPostcodeAndCommunityForPower(postcode, community)).thenReturn(strings);
+        List<String> streets = addressService.getStreets(postcode, community, district, branchOptional);
+
+        assertEquals(streets.size(), strings.size());
+        assertEquals(2, streets.size());
+        assertEquals(streets.get(1), strings.get(1));
+    }
+
+    @Test
+    public void shouldGetStreetsWithoutDistrictsForGas() {
+        String postcode = "12345";
+        String community = "com1";
+        Optional<String> district = Optional.empty();
+        Optional<String> branchOptional = Optional.of("G");
+        List<String> strings = MockDataHelper.mockStringList();
+        when(addressRepository.findStreetsByPostcodeAndCommunityForGas(postcode, community)).thenReturn(strings);
+        List<String> streets = addressService.getStreets(postcode, community, district, branchOptional);
+
+        assertEquals(streets.size(), strings.size());
+        assertEquals(2, streets.size());
+        assertEquals(streets.get(1), strings.get(1));
+    }
+
+    @Test
+    public void shouldGetStreetsWithoutDistrictsForWater() {
+        String postcode = "12345";
+        String community = "com1";
+        Optional<String> district = Optional.empty();
+        Optional<String> branchOptional = Optional.of("W");
+        List<String> strings = MockDataHelper.mockStringList();
+        when(addressRepository.findStreetsByPostcodeAndCommunityForWater(postcode, community)).thenReturn(strings);
+        List<String> streets = addressService.getStreets(postcode, community, district, branchOptional);
+
+        assertEquals(streets.size(), strings.size());
+        assertEquals(2, streets.size());
+        assertEquals(streets.get(1), strings.get(1));
+    }
+
+    @Test
+    public void shouldGetStreetsWithoutDistrictsForOther() {
+        String postcode = "12345";
+        String community = "com1";
+        Optional<String> district = Optional.empty();
+        Optional<String> branchOptional = Optional.of("TK");
+        List<String> strings = MockDataHelper.mockStringList();
+        when(addressRepository.findStreetsByPostcodeAndCommunity(postcode, community)).thenReturn(strings);
+        List<String> streets = addressService.getStreets(postcode, community, district, branchOptional);
 
         assertEquals(streets.size(), strings.size());
         assertEquals(2, streets.size());
@@ -128,9 +475,74 @@
         String community = "com1";
         String district = "test1";
         Optional<String> optionalDistrict = Optional.of("test1");
+        Optional<String> branchOptional = Optional.empty();
         List<String> strings = MockDataHelper.mockStringList();
         when(addressRepository.findStreetsByPostcodeAndCommunityAndDistrict(postcode, community, district)).thenReturn(strings);
-        List<String> streets = addressService.getStreets(postcode, community, optionalDistrict);
+        List<String> streets = addressService.getStreets(postcode, community, optionalDistrict, branchOptional);
+
+        assertEquals(streets.size(), strings.size());
+        assertEquals(2, streets.size());
+        assertEquals(streets.get(1), strings.get(1));
+    }
+
+    @Test
+    public void shouldGetStreetsWithDistrictsForPower() {
+        String postcode = "12345";
+        String community = "com1";
+        String district = "test1";
+        Optional<String> optionalDistrict = Optional.of("test1");
+        Optional<String> branchOptional = Optional.of("S");
+        List<String> strings = MockDataHelper.mockStringList();
+        when(addressRepository.findStreetsByPostcodeAndCommunityAndDistrictForPower(postcode, community, district)).thenReturn(strings);
+        List<String> streets = addressService.getStreets(postcode, community, optionalDistrict, branchOptional);
+
+        assertEquals(streets.size(), strings.size());
+        assertEquals(2, streets.size());
+        assertEquals(streets.get(1), strings.get(1));
+    }
+
+    @Test
+    public void shouldGetStreetsWithDistrictsForGas() {
+        String postcode = "12345";
+        String community = "com1";
+        String district = "test1";
+        Optional<String> optionalDistrict = Optional.of("test1");
+        Optional<String> branchOptional = Optional.of("G");
+        List<String> strings = MockDataHelper.mockStringList();
+        when(addressRepository.findStreetsByPostcodeAndCommunityAndDistrictForGas(postcode, community, district)).thenReturn(strings);
+        List<String> streets = addressService.getStreets(postcode, community, optionalDistrict, branchOptional);
+
+        assertEquals(streets.size(), strings.size());
+        assertEquals(2, streets.size());
+        assertEquals(streets.get(1), strings.get(1));
+    }
+
+    @Test
+    public void shouldGetStreetsWithDistrictsForWater() {
+        String postcode = "12345";
+        String community = "com1";
+        String district = "test1";
+        Optional<String> optionalDistrict = Optional.of("test1");
+        Optional<String> branchOptional = Optional.of("W");
+        List<String> strings = MockDataHelper.mockStringList();
+        when(addressRepository.findStreetsByPostcodeAndCommunityAndDistrictForWater(postcode, community, district)).thenReturn(strings);
+        List<String> streets = addressService.getStreets(postcode, community, optionalDistrict, branchOptional);
+
+        assertEquals(streets.size(), strings.size());
+        assertEquals(2, streets.size());
+        assertEquals(streets.get(1), strings.get(1));
+    }
+
+    @Test
+    public void shouldGetStreetsWithDistrictsForOtherBranches() {
+        String postcode = "12345";
+        String community = "com1";
+        String district = "test1";
+        Optional<String> optionalDistrict = Optional.of("test1");
+        Optional<String> branchOptional = Optional.of("XYZ");
+        List<String> strings = MockDataHelper.mockStringList();
+        when(addressRepository.findStreetsByPostcodeAndCommunityAndDistrict(postcode, community, district)).thenReturn(strings);
+        List<String> streets = addressService.getStreets(postcode, community, optionalDistrict, branchOptional);
 
         assertEquals(streets.size(), strings.size());
         assertEquals(2, streets.size());
diff --git a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/service/ExpectedReasonServiceTest.java b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/service/ExpectedReasonServiceTest.java
index 47d0590..7b38e5c 100644
--- a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/service/ExpectedReasonServiceTest.java
+++ b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/service/ExpectedReasonServiceTest.java
@@ -14,22 +14,26 @@
  */
 package org.eclipse.openk.gridfailureinformation.service;
 
-        import org.eclipse.openk.gridfailureinformation.config.TestConfiguration;
-        import org.eclipse.openk.gridfailureinformation.model.RefExpectedReason;
-        import org.eclipse.openk.gridfailureinformation.repository.ExpectedReasonRepository;
-        import org.eclipse.openk.gridfailureinformation.support.MockDataHelper;
-        import org.eclipse.openk.gridfailureinformation.viewmodel.ExpectedReasonDto;
-        import org.junit.jupiter.api.Test;
-        import org.springframework.beans.factory.annotation.Autowired;
-        import org.springframework.beans.factory.annotation.Qualifier;
-        import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
-        import org.springframework.boot.test.mock.mockito.MockBean;
-        import org.springframework.test.context.ContextConfiguration;
+import org.eclipse.openk.gridfailureinformation.config.TestConfiguration;
+import org.eclipse.openk.gridfailureinformation.model.RefBranch;
+import org.eclipse.openk.gridfailureinformation.model.RefExpectedReason;
+import org.eclipse.openk.gridfailureinformation.repository.BranchRepository;
+import org.eclipse.openk.gridfailureinformation.repository.ExpectedReasonRepository;
+import org.eclipse.openk.gridfailureinformation.support.MockDataHelper;
+import org.eclipse.openk.gridfailureinformation.viewmodel.ExpectedReasonDto;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
+import org.springframework.boot.test.mock.mockito.MockBean;
+import org.springframework.test.context.ContextConfiguration;
 
-        import java.util.List;
+import java.util.List;
+import java.util.Optional;
 
-        import static org.junit.jupiter.api.Assertions.assertEquals;
-        import static org.mockito.Mockito.when;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.when;
 
 //@RunWith(SpringRunner.class)
 @DataJpaTest
@@ -43,11 +47,31 @@
     @MockBean
     private ExpectedReasonRepository expectedReasonRepository;
 
+    @MockBean
+    private BranchRepository branchRepository;
+
     @Test
-    public void shouldGetRadiiProperly() {
+    public void shouldGetExpectedReasonsProperly() {
+        Optional<String> branchOptional = Optional.empty();
         List<RefExpectedReason> mockRefExpectedReasonList = MockDataHelper.mockRefExpectedReasonList();
         when(expectedReasonRepository.findAll()).thenReturn(mockRefExpectedReasonList);
-        List<ExpectedReasonDto> expectedReasons = expectedReasonService.getExpectedReasons();
+        List<ExpectedReasonDto> expectedReasons = expectedReasonService.getExpectedReasons(branchOptional);
+
+        assertEquals(expectedReasons.size(), mockRefExpectedReasonList.size());
+        assertEquals(2, expectedReasons.size());
+        assertEquals(expectedReasons.get(1).getUuid(), mockRefExpectedReasonList.get(1).getUuid());
+    }
+
+    @Test
+    public void shouldGetExpectedReasonsForBranch() {
+        Optional<String> branchOptional = Optional.of("S");
+        RefBranch mockBranch = MockDataHelper.mockRefBranch();
+
+        List<RefExpectedReason> mockRefExpectedReasonList = MockDataHelper.mockRefExpectedReasonList();
+
+        when(branchRepository.findByName(any(String.class))).thenReturn(Optional.of(mockBranch));
+        when(expectedReasonRepository.findByBranch(any(String.class))).thenReturn(mockRefExpectedReasonList);
+        List<ExpectedReasonDto> expectedReasons = expectedReasonService.getExpectedReasons(branchOptional);
 
         assertEquals(expectedReasons.size(), mockRefExpectedReasonList.size());
         assertEquals(2, expectedReasons.size());
diff --git a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/support/MockDataHelper.java b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/support/MockDataHelper.java
index c4035b9..cd2d05d 100644
--- a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/support/MockDataHelper.java
+++ b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/support/MockDataHelper.java
@@ -710,6 +710,8 @@
         expectedReasonDto1.setUuid(UUID.fromString("cd22ff10-6cde-11ea-bc55-0242ac130003"));
         expectedReasonDto1.setDescription("Beschreibung Rohrbruch");
         expectedReasonDto1.setDescription("Rohrbruch");
+        expectedReasonDto1.setBranches("S");
+
 
         return expectedReasonDto1;
     }
@@ -720,6 +722,7 @@
         expectedReasonDto2.setUuid(UUID.fromString("cd23015e-6cde-11ea-bc55-0242ac130003"));
         expectedReasonDto2.setDescription("Beschreibung Alles kaputt!");
         expectedReasonDto2.setText("Alles kaputt!");
+        expectedReasonDto2.setBranches("S,G,W");
 
         return expectedReasonDto2;
     }
@@ -741,6 +744,7 @@
         refExpectedReason1.setUuid(UUID.fromString("cd230532-6cde-11ea-bc55-0242ac130003"));
         refExpectedReason1.setDescription("Beschreibung Kabelfehler Hochspannung");
         refExpectedReason1.setText("Kabelfehler Hochspannung");
+        refExpectedReason1.setBranches("W");
 
         return refExpectedReason1;
     }
@@ -751,6 +755,7 @@
         refExpectedReason2.setUuid(UUID.fromString("cd23062c-6cde-11ea-bc55-0242ac130003"));
         refExpectedReason2.setDescription("Beschreibung Rohrleitung beschädigt");
         refExpectedReason2.setText("Rohrleitung beschädigt");
+        refExpectedReason2.setBranches("S,G,W,TK");
 
         return refExpectedReason2;
     }
diff --git a/scripts/setUserPassAsEnvVariablesLinux.sh b/scripts/setUserPassAsEnvVariablesLinux.sh
new file mode 100644
index 0000000..e91a6f6
--- /dev/null
+++ b/scripts/setUserPassAsEnvVariablesLinux.sh
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+### IMPORTANT: REPLACE THE USERNAMES AND THE PASSWORDS WITH THE RIGHT ONE
+# DB
+export GFI_DB_USERNAME=mock_user
+export GFI_DB_PASSWORD=mock_password
+
+# RABBITMQ
+export GFI_RABBITMQ_USERNAME=mock_user
+export GFI_RABBITMQ_PASSWORD=mock_password
+
+# STOERUNGSAUSKUNFT
+export GFI_STOERUNGSAUSKUNFT_USERNAME=mock_user
+export GFI_STOERUNGSAUSKUNFT_PASSWORD=mock_password
\ No newline at end of file
diff --git a/scripts/setUserPassAsEnvVariablesWindows.bat b/scripts/setUserPassAsEnvVariablesWindows.bat
new file mode 100644
index 0000000..0726240
--- /dev/null
+++ b/scripts/setUserPassAsEnvVariablesWindows.bat
@@ -0,0 +1,13 @@
+REM IMPORTANT: REPLACE THE USERNAMES AND THE PASSWORDS WITH THE RIGHT ONE
+
+REM DB
+setx GFI_DB_USERNAME "mock_user" /M
+setx GFI_DB_PASSWORD "mock_password" /M
+
+REM RABBITMQ
+setx GFI_RABBITMQ_USERNAME "mock_user" /M
+setx GFI_RABBITMQ_PASSWORD "mock_password" /M
+
+REM STOERUNGSAUSKUNFT
+setx GFI_STOERUNGSAUSKUNFT_USERNAME "mock_user" /M
+setx GFI_STOERUNGSAUSKUNFT_PASSWORD "mock_password" /M
\ No newline at end of file
diff --git a/stoerungsauskunftInterface/Dockerfile_DevServer b/stoerungsauskunftInterface/Dockerfile_DevServer
index b80d97a..5bf6220 100644
--- a/stoerungsauskunftInterface/Dockerfile_DevServer
+++ b/stoerungsauskunftInterface/Dockerfile_DevServer
@@ -1,4 +1,4 @@
 FROM openjdk:8-jre-alpine
-COPY /target/grid-failure-information.backend.test-import-service.jar /usr/src/cbd/
+COPY /target/grid-failure-information.backend.stoerungsauskunft-interface.jar /usr/src/cbd/
 WORKDIR usr/src/cbd
-CMD ["java", "-jar", "-Dspring.profiles.active=devserver", "grid-failure-information.backend.test-import-service.jar"]
\ No newline at end of file
+CMD ["java", "-jar", "-Dspring.profiles.active=devserver", "grid-failure-information.backend.stoerungsauskunft-interface.jar"]
\ No newline at end of file
diff --git a/stoerungsauskunftInterface/Dockerfile_DevServerUnsecure b/stoerungsauskunftInterface/Dockerfile_DevServerUnsecure
index fae2690..d4e3719 100644
--- a/stoerungsauskunftInterface/Dockerfile_DevServerUnsecure
+++ b/stoerungsauskunftInterface/Dockerfile_DevServerUnsecure
@@ -1,4 +1,4 @@
 FROM openjdk:8-jre-alpine
-COPY /target/grid-failure-information.backend.test-import-service.jar /usr/src/cbd/
+COPY /target/grid-failure-information.backend.stoerungsauskunft-interface.jar /usr/src/cbd/
 WORKDIR usr/src/cbd
-CMD ["java", "-jar", "-Dspring.profiles.active=devserver-unsecure", "grid-failure-information.backend.test-import-service.jar"]
\ No newline at end of file
+CMD ["java", "-jar", "-Dspring.profiles.active=devserver-unsecure", "grid-failure-information.backend.stoerungsauskunft-interface.jar"]
\ No newline at end of file
diff --git a/stoerungsauskunftInterface/pom.xml b/stoerungsauskunftInterface/pom.xml
index a5c941f..2cb49a1 100644
--- a/stoerungsauskunftInterface/pom.xml
+++ b/stoerungsauskunftInterface/pom.xml
@@ -9,9 +9,9 @@
 		<relativePath/> <!-- lookup parent from repository -->
 	</parent>
 	<groupId>org.eclipse.openk</groupId>
-	<artifactId>grid-failure-information.backend.test-import-service</artifactId>
+	<artifactId>grid-failure-information.backend.stoerungsauskunft-interface</artifactId>
 	<version>0.0.1-SNAPSHOT</version>
-	<name>grid-failure-information.TestImportService</name>
+	<name>grid-failure-information.stoerungsauskunft-interface</name>
 	<description>Grid-Failure-Information Project for openKONSEQUENZ</description>
 
 	<properties>
diff --git a/stoerungsauskunftInterface/sonar-project.properties b/stoerungsauskunftInterface/sonar-project.properties
index c12ddec..472e2a0 100644
--- a/stoerungsauskunftInterface/sonar-project.properties
+++ b/stoerungsauskunftInterface/sonar-project.properties
@@ -10,10 +10,10 @@
  
 sonar.sourceEncoding=UTF-8
 sonar.sources=src/main
-sonar.exclusions=**/model/*.java,**/viewmodel/*.java
+sonar.exclusions=**/model/*.java,**/viewmodel/*.java,**/dtos/*.java
 sonar.tests=src/test
 #sonar.test.inclusions=**/*.spec.ts
-sonar.test.exclusions=**/model/**,**/viewmodel/**
+sonar.test.exclusions=**/model/**,**/viewmodel/**,**/dtos/*.java
 #sonar.ts.tslintconfigpath=tslint.json
 
 sonar.typescript.lcov.reportPaths=coverage/lcov.info
\ No newline at end of file
diff --git a/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/StoerungsaulkunftInterfaceApplication.java b/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/StoerungsaulkunftInterfaceApplication.java
similarity index 69%
rename from stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/StoerungsaulkunftInterfaceApplication.java
rename to stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/StoerungsaulkunftInterfaceApplication.java
index 9146959..02f6814 100644
--- a/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/StoerungsaulkunftInterfaceApplication.java
+++ b/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/StoerungsaulkunftInterfaceApplication.java
@@ -1,17 +1,15 @@
-package org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface;
+package org.eclipse.openk.gridfailureinformation.stoerauskunftinterface;
 
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.cloud.openfeign.EnableFeignClients;
-import springfox.documentation.swagger2.annotations.EnableSwagger2;
 
 @SpringBootApplication
-@EnableSwagger2
 @EnableFeignClients
 public class StoerungsaulkunftInterfaceApplication {
 
 	public static void main(String[] args) {
-		SpringApplication.run(StoerungsaulkunftInterfaceApplication.class, args);
+		SpringApplication.run(StoerungsaulkunftInterfaceApplication.class);
 	}
 
 }
diff --git a/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/api/StoerungsauskunftApi.java b/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/api/StoerungsauskunftApi.java
similarity index 80%
rename from stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/api/StoerungsauskunftApi.java
rename to stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/api/StoerungsauskunftApi.java
index 0986831..03f6a39 100644
--- a/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/api/StoerungsauskunftApi.java
+++ b/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/api/StoerungsauskunftApi.java
@@ -12,10 +12,10 @@
  * SPDX-License-Identifier: EPL-2.0
  *******************************************************************************
 */
-package org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.api;
+package org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.api;
 
-import org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.dtos.StoerungsauskunftOutage;
-import org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.dtos.StoerungsauskunftUserNotification;
+import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.dtos.StoerungsauskunftOutage;
+import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.dtos.StoerungsauskunftUserNotification;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
diff --git a/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/config/EventProducerConfig.java b/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/config/EventProducerConfig.java
similarity index 96%
rename from stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/config/EventProducerConfig.java
rename to stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/config/EventProducerConfig.java
index 1874882..80740b9 100644
--- a/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/config/EventProducerConfig.java
+++ b/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/config/EventProducerConfig.java
@@ -1,4 +1,4 @@
-package org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.config;
+package org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.config;
 
 import lombok.extern.log4j.Log4j2;
 import org.springframework.amqp.core.Binding;
diff --git a/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/config/FeignClientConfig.java b/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/config/FeignClientConfig.java
similarity index 87%
rename from stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/config/FeignClientConfig.java
rename to stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/config/FeignClientConfig.java
index 7b49c30..c14210f 100644
--- a/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/config/FeignClientConfig.java
+++ b/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/config/FeignClientConfig.java
@@ -1,4 +1,4 @@
-package org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.config;
+package org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.config;
 
 import feign.RequestInterceptor;
 import feign.auth.BasicAuthRequestInterceptor;
diff --git a/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/config/ImportSchedulerConfig.java b/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/config/ImportSchedulerConfig.java
similarity index 88%
rename from stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/config/ImportSchedulerConfig.java
rename to stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/config/ImportSchedulerConfig.java
index a40e949..665d4a7 100644
--- a/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/config/ImportSchedulerConfig.java
+++ b/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/config/ImportSchedulerConfig.java
@@ -1,7 +1,7 @@
-package org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.config;
+package org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.config;
 
 import lombok.extern.log4j.Log4j2;
-import org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.service.ImportExportService;
+import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.service.ImportExportService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
diff --git a/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/config/SwaggerConfig.java b/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/config/SwaggerConfig.java
new file mode 100644
index 0000000..085d1a2
--- /dev/null
+++ b/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/config/SwaggerConfig.java
@@ -0,0 +1,35 @@
+package org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.config;
+
+import lombok.extern.log4j.Log4j2;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Profile;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spring.web.paths.RelativePathProvider;
+import springfox.documentation.spring.web.plugins.Docket;
+import springfox.documentation.swagger2.annotations.EnableSwagger2;
+
+import javax.servlet.ServletContext;
+
+@Log4j2
+@Configuration
+@EnableSwagger2
+@Profile("!prod")
+public class SwaggerConfig {
+
+    @Value("${swagger.baseUrl}")
+    public String baseUrl;
+    @Value("${swagger.proxyUrl}")
+    public String proxyUrl;
+
+    @Bean
+    public Docket api(ServletContext servletContext) {
+        return new Docket(DocumentationType.SWAGGER_2).pathProvider(new RelativePathProvider(servletContext) {
+            @Override
+            public String getApplicationBasePath() {
+                return baseUrl + super.getApplicationBasePath();
+            }
+        }).host(proxyUrl);
+    }
+}
diff --git a/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/constants/Constants.java b/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/constants/Constants.java
similarity index 90%
rename from stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/constants/Constants.java
rename to stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/constants/Constants.java
index 194be72..af6215c 100644
--- a/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/constants/Constants.java
+++ b/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/constants/Constants.java
@@ -12,7 +12,7 @@
  * SPDX-License-Identifier: EPL-2.0
  *******************************************************************************
 */
-package org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.constants;
+package org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.constants;
 
 public final class Constants {
 
diff --git a/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/controller/ImportExportController.java b/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/controller/ImportExportController.java
similarity index 84%
rename from stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/controller/ImportExportController.java
rename to stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/controller/ImportExportController.java
index 85163a9..3906ba7 100644
--- a/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/controller/ImportExportController.java
+++ b/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/controller/ImportExportController.java
@@ -12,16 +12,16 @@
  * SPDX-License-Identifier: EPL-2.0
  *******************************************************************************
  */
-package org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.controller;
+package org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.controller;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiResponse;
 import io.swagger.annotations.ApiResponses;
 import lombok.extern.log4j.Log4j2;
-import org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.dtos.ForeignFailureMessageDto;
-import org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.mapper.StoerungsauskunftMapper;
-import org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.service.ImportExportService;
+import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.dtos.ForeignFailureMessageDto;
+import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.mapper.StoerungsauskunftMapper;
+import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.service.ImportExportService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.*;
diff --git a/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/dtos/ForeignFailureDataDto.java b/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/dtos/ForeignFailureDataDto.java
similarity index 96%
rename from stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/dtos/ForeignFailureDataDto.java
rename to stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/dtos/ForeignFailureDataDto.java
index 6fde7c2..6dde6af 100644
--- a/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/dtos/ForeignFailureDataDto.java
+++ b/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/dtos/ForeignFailureDataDto.java
@@ -12,7 +12,7 @@
  * SPDX-License-Identifier: EPL-2.0
  *******************************************************************************
  */
-package org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.dtos;
+package org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.dtos;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonProperty;
diff --git a/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/dtos/ForeignFailureMessageDto.java b/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/dtos/ForeignFailureMessageDto.java
similarity index 93%
rename from stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/dtos/ForeignFailureMessageDto.java
rename to stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/dtos/ForeignFailureMessageDto.java
index fa97fc6..8e95545 100644
--- a/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/dtos/ForeignFailureMessageDto.java
+++ b/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/dtos/ForeignFailureMessageDto.java
@@ -12,7 +12,7 @@
  * SPDX-License-Identifier: EPL-2.0
  *******************************************************************************
  */
-package org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.dtos;
+package org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.dtos;
 
 import lombok.Data;
 
diff --git a/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/dtos/StoerungsauskunftOutage.java b/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/dtos/StoerungsauskunftOutage.java
similarity index 87%
rename from stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/dtos/StoerungsauskunftOutage.java
rename to stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/dtos/StoerungsauskunftOutage.java
index aa9d828..2be5bde 100644
--- a/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/dtos/StoerungsauskunftOutage.java
+++ b/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/dtos/StoerungsauskunftOutage.java
@@ -1,4 +1,4 @@
-package org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.dtos;
+package org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.dtos;
 
 import lombok.Data;
 
diff --git a/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/dtos/StoerungsauskunftUserNotification.java b/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/dtos/StoerungsauskunftUserNotification.java
similarity index 86%
rename from stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/dtos/StoerungsauskunftUserNotification.java
rename to stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/dtos/StoerungsauskunftUserNotification.java
index efdf834..e9c3567 100644
--- a/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/dtos/StoerungsauskunftUserNotification.java
+++ b/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/dtos/StoerungsauskunftUserNotification.java
@@ -1,4 +1,4 @@
-package org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.dtos;
+package org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.dtos;
 
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import lombok.Data;
diff --git a/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/exceptions/InternalServerErrorException.java b/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/exceptions/InternalServerErrorException.java
similarity index 90%
rename from stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/exceptions/InternalServerErrorException.java
rename to stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/exceptions/InternalServerErrorException.java
index b618cd3..bbb64e0 100644
--- a/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/exceptions/InternalServerErrorException.java
+++ b/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/exceptions/InternalServerErrorException.java
@@ -12,7 +12,7 @@
  * SPDX-License-Identifier: EPL-2.0
  *******************************************************************************
  */
-package org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.exceptions;
+package org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.exceptions;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/mapper/StoerungsauskunftMapper.java b/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/mapper/StoerungsauskunftMapper.java
similarity index 88%
rename from stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/mapper/StoerungsauskunftMapper.java
rename to stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/mapper/StoerungsauskunftMapper.java
index 340ba57..995d473 100644
--- a/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/mapper/StoerungsauskunftMapper.java
+++ b/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/mapper/StoerungsauskunftMapper.java
@@ -12,11 +12,11 @@
  * SPDX-License-Identifier: EPL-2.0
  *******************************************************************************
  */
-package org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.mapper;
+package org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.mapper;
 
-import org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.dtos.ForeignFailureDataDto;
-import org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.dtos.StoerungsauskunftOutage;
-import org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.dtos.StoerungsauskunftUserNotification;
+import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.dtos.ForeignFailureDataDto;
+import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.dtos.StoerungsauskunftOutage;
+import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.dtos.StoerungsauskunftUserNotification;
 import org.mapstruct.*;
 
 import java.math.BigDecimal;
diff --git a/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/service/ImportExportService.java b/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/service/ImportExportService.java
similarity index 66%
rename from stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/service/ImportExportService.java
rename to stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/service/ImportExportService.java
index a70377b..94d41c5 100644
--- a/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/service/ImportExportService.java
+++ b/stoerungsauskunftInterface/src/main/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/service/ImportExportService.java
@@ -11,20 +11,20 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  *******************************************************************************
-*/
-package org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.service;
+ */
+package org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.service;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
 import feign.Response;
 import lombok.extern.log4j.Log4j2;
-import org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.api.StoerungsauskunftApi;
-import org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.constants.Constants;
-import org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.dtos.ForeignFailureDataDto;
-import org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.dtos.ForeignFailureMessageDto;
-import org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.dtos.StoerungsauskunftOutage;
-import org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.dtos.StoerungsauskunftUserNotification;
-import org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.exceptions.InternalServerErrorException;
-import org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.mapper.StoerungsauskunftMapper;
+import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.api.StoerungsauskunftApi;
+import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.constants.Constants;
+import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.dtos.ForeignFailureDataDto;
+import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.dtos.ForeignFailureMessageDto;
+import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.dtos.StoerungsauskunftOutage;
+import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.dtos.StoerungsauskunftUserNotification;
+import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.exceptions.InternalServerErrorException;
+import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.mapper.StoerungsauskunftMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
@@ -63,7 +63,7 @@
         }
     }
 
-    private ForeignFailureMessageDto createForeignFailureMessageDto(StoerungsauskunftUserNotification userNotification){
+    private ForeignFailureMessageDto createForeignFailureMessageDto(StoerungsauskunftUserNotification userNotification) {
         ForeignFailureMessageDto foreignFailureMessageDto = new ForeignFailureMessageDto();
         foreignFailureMessageDto.setMetaId(userNotification.getId());
         foreignFailureMessageDto.setSource(Constants.SRC_STOERUNGSAUSKUNFT_DE);
@@ -79,17 +79,17 @@
         return foreignFailureDataDto;
     }
 
-    public void  pushForeignFailure(ForeignFailureMessageDto foreignFailureMessageDto) {
+    public void pushForeignFailure(ForeignFailureMessageDto foreignFailureMessageDto) {
 
         try {
-                failureImportChannel.send(
-                        MessageBuilder.withPayload(
-                                objectMapper.writeValueAsString(foreignFailureMessageDto.getPayload()))
-                        .setHeader("metaId", foreignFailureMessageDto.getMetaId())
-                        .setHeader("description", foreignFailureMessageDto.getDescription())
-                        .setHeader("source", foreignFailureMessageDto.getSource())
-                        .build());
-
+            failureImportChannel.send(
+                    MessageBuilder.withPayload(
+                            objectMapper.writeValueAsString(foreignFailureMessageDto.getPayload()))
+                            .setHeader("metaId", foreignFailureMessageDto.getMetaId())
+                            .setHeader("description", foreignFailureMessageDto.getDescription())
+                            .setHeader("source", foreignFailureMessageDto.getSource())
+                            .build());
+            log.info("Succesfully imported message from stoerungsauskunft.de with metaId: " + foreignFailureMessageDto.getMetaId());
         } catch (Exception e) {
             log.debug(e.getMessage(), e);
             throw new InternalServerErrorException("could.not.push.message");
@@ -97,7 +97,7 @@
 
     }
 
-    public void exportStoerungsauskunftOutage(ForeignFailureMessageDto foreignFailureMessageDto){
+    public void exportStoerungsauskunftOutage(ForeignFailureMessageDto foreignFailureMessageDto) {
 
         ForeignFailureDataDto messageDtoPayload = foreignFailureMessageDto.getPayload();
         StoerungsauskunftOutage stoerungsauskunftOutageExport = stoerungsauskunftMapper.toStoerungsauskunftOutage(messageDtoPayload);
@@ -112,9 +112,10 @@
 
         Response response = stoerungsauskunftApi.postOutage(stoerungsauskunftOutageExportList);
         if (response.status() >= 400) {
-            log.error("Error while trying to post message to störungsauskunft.de with metaId: " + foreignFailureMessageDto.getMetaId());
+            log.error("Error while trying to post message to stoerungsauskunft.de with metaId: " + foreignFailureMessageDto.getMetaId());
             throw new InternalServerErrorException("could.not.post.message.to.external.service");
         }
+        log.info("Succesfully posted message to stoerungsauskunft.de with metaId: " + foreignFailureMessageDto.getMetaId());
     }
 
 }
diff --git a/stoerungsauskunftInterface/src/main/resources/application.yml b/stoerungsauskunftInterface/src/main/resources/application.yml
index 51a33ee..800a9d0 100644
--- a/stoerungsauskunftInterface/src/main/resources/application.yml
+++ b/stoerungsauskunftInterface/src/main/resources/application.yml
@@ -13,15 +13,15 @@
 spring:
   datasource:
     url: jdbc:postgresql://entopticadirx:5432/GridFailureInfoDevServer
-    username: gfi_service
-    password: gfi_service
+    username: ${GFI_DB_USERNAME}
+    password: ${GFI_DB_PASSWORD}
   flyway:
     enabled: false
   rabbitmq:
     host: entdockergss
     port: 5672
-    username: guest
-    password: guest
+    username: ${GFI_RABBITMQ_USERNAME}
+    password: ${GFI_RABBITMQ_PASSWORD}
     queuename: failureImportQueue
     routingkey: failureImportChannel.failureImportKey
     exchangename: failureImportChannel
@@ -49,31 +49,33 @@
 
 stoerungsauskunft:
   apiUrl: https://stage-api-operator.stoerungsauskunft.de/api/v1.0/
-  user: ewr
-  password: 538c00054e564bdbb4eab3418570ae20
+  user: ${GFI_STOERUNGSAUSKUNFT_USERNAME}
+  password: ${GFI_STOERUNGSAUSKUNFT_PASSWORD}
   scheduling-import:
     enabled: false
     cron: 0 */15 * ? * *
 
+swagger:
+  baseUrl:
+  proxyUrl:
+
 ---
 
 spring:
   profiles: test
 
-  datasource:
-    url: jdbc:h2:mem:test;DB_CLOSE_DELAY=-1
-jpa:
-  hibernate:
-    ddl-auto: create
-  show-sql: true
-flyway:
-  enabled: false
-
 jwt:
   tokenHeader: Authorization
   useStaticJwt: true
   staticJwt: eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJIYlI3Z2pobmE2eXJRZnZJTWhUSV9tY2g3ZmtTQWVFX3hLTjBhZVl0bjdjIn0.eyJqdGkiOiI5MGI0NGFkOC1iYjlmLTQ1MzktYTQwYy0yYjQyZTNkNjNiOGEiLCJleHAiOjE1Nzg2NTU3OTUsIm5iZiI6MCwiaWF0IjoxNTc4NjU1NDk1LCJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjgwODAvYXV0aC9yZWFsbXMvRWxvZ2Jvb2siLCJhdWQiOiJlbG9nYm9vay1iYWNrZW5kIiwic3ViIjoiODYyNjY5NmYtZjFhMi00ZGI1LTkyZWYtZTlhMjQ2Njg1YTU0IiwidHlwIjoiQmVhcmVyIiwiYXpwIjoiZWxvZ2Jvb2stYmFja2VuZCIsImF1dGhfdGltZSI6MCwic2Vzc2lvbl9zdGF0ZSI6IjJmMWIzODE5LWZjNjQtNDEzNC1iNWQxLWY3ZWY4NzU5NDBkNCIsImFjciI6IjEiLCJhbGxvd2VkLW9yaWdpbnMiOlsiKiJdLCJyZWFsbV9hY2Nlc3MiOnsicm9sZXMiOlsia29uLWFkbWluIiwia29uLXdyaXRlciIsImtvbi1hY2Nlc3MiLCJrb24tcmVhZGVyIl19LCJyZXNvdXJjZV9hY2Nlc3MiOnt9LCJuYW1lIjoiVGVzdGVyRmlyc3RuYW1lX3J3YSBUZXN0ZXJMYXN0bmFtZV9yd2EiLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJ0ZXN0dXNlcl9yd2EiLCJnaXZlbl9uYW1lIjoiVGVzdGVyRmlyc3RuYW1lX3J3YSIsImZhbWlseV9uYW1lIjoiVGVzdGVyTGFzdG5hbWVfcndhIn0.DAYXuv4tKn8RXqO1jyttnD-tF4nShUBQyfe4bKbAiPAyY2x5YbAf3M4eXnLrGqo8-loGKldICC28bL0LaMA3KKkQEOfW5sfpGqoN6212vs89mOklt0TJYc5PMXwFgJ5WC_TKjdwq7-aaDafOEWehV0U1ut3s-94ovNYIEn29nzXm2W1ldoXJEq03F880jlysQ5zlRvGF7eXEEpFfI2URyyNQ2UWh0Ssfq-gOAt2pbF1u6prA5RfvUmZ3v1eu21YLGZtgqPqxb1l6odyH3ip15j_HdgnTeo52ymxuRUj65Mskme3V5ev2DitHI9vZgnpV8Idhb4TTWliBeGCOMfDFCg
 
+stoerungsauskunft:
+  apiUrl: https://stage-api-operator.stoerungsauskunft.de/api/v1.0/
+  user: userName
+  password: secPwd
+  scheduling-import:
+    enabled: true
+    cron: 0 */15 * ? * *
 ---
 
 spring:
@@ -90,7 +92,6 @@
 cors:
   corsEnabled: true
 
-
 ---
 
 spring:
@@ -111,17 +112,11 @@
 
 spring:
   profiles: qserver
-  datasource:
-    url: jdbc:postgresql://localhost:5432/GridFailureInfoQaServer
-    username: gfi_service
-    password: gfi_service
-  flyway:
-    enabled: false
   rabbitmq:
     host: entdockergss
     port: 5672
-    username: guest
-    password: guest
+    username: ${GFI_RABBITMQ_USERNAME}
+    password: ${GFI_RABBITMQ_PASSWORD}
     queuename: failureImportQueue
     routingkey: failureImportChannel.failureImportKey
     exchangename: failureImportChannel
@@ -138,13 +133,9 @@
   useStaticJwt: false
   staticJwt: eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJIYlI3Z2pobmE2eXJRZnZJTWhUSV9tY2g3ZmtTQWVFX3hLTjBhZVl0bjdjIn0.eyJqdGkiOiI5MGI0NGFkOC1iYjlmLTQ1MzktYTQwYy0yYjQyZTNkNjNiOGEiLCJleHAiOjE1Nzg2NTU3OTUsIm5iZiI6MCwiaWF0IjoxNTc4NjU1NDk1LCJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjgwODAvYXV0aC9yZWFsbXMvRWxvZ2Jvb2siLCJhdWQiOiJlbG9nYm9vay1iYWNrZW5kIiwic3ViIjoiODYyNjY5NmYtZjFhMi00ZGI1LTkyZWYtZTlhMjQ2Njg1YTU0IiwidHlwIjoiQmVhcmVyIiwiYXpwIjoiZWxvZ2Jvb2stYmFja2VuZCIsImF1dGhfdGltZSI6MCwic2Vzc2lvbl9zdGF0ZSI6IjJmMWIzODE5LWZjNjQtNDEzNC1iNWQxLWY3ZWY4NzU5NDBkNCIsImFjciI6IjEiLCJhbGxvd2VkLW9yaWdpbnMiOlsiKiJdLCJyZWFsbV9hY2Nlc3MiOnsicm9sZXMiOlsia29uLWFkbWluIiwia29uLXdyaXRlciIsImtvbi1hY2Nlc3MiLCJrb24tcmVhZGVyIl19LCJyZXNvdXJjZV9hY2Nlc3MiOnt9LCJuYW1lIjoiVGVzdGVyRmlyc3RuYW1lX3J3YSBUZXN0ZXJMYXN0bmFtZV9yd2EiLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJ0ZXN0dXNlcl9yd2EiLCJnaXZlbl9uYW1lIjoiVGVzdGVyRmlyc3RuYW1lX3J3YSIsImZhbWlseV9uYW1lIjoiVGVzdGVyTGFzdG5hbWVfcndhIn0.DAYXuv4tKn8RXqO1jyttnD-tF4nShUBQyfe4bKbAiPAyY2x5YbAf3M4eXnLrGqo8-loGKldICC28bL0LaMA3KKkQEOfW5sfpGqoN6212vs89mOklt0TJYc5PMXwFgJ5WC_TKjdwq7-aaDafOEWehV0U1ut3s-94ovNYIEn29nzXm2W1ldoXJEq03F880jlysQ5zlRvGF7eXEEpFfI2URyyNQ2UWh0Ssfq-gOAt2pbF1u6prA5RfvUmZ3v1eu21YLGZtgqPqxb1l6odyH3ip15j_HdgnTeo52ymxuRUj65Mskme3V5ev2DitHI9vZgnpV8Idhb4TTWliBeGCOMfDFCg
 
-services:
-  authNAuth:
-    name: authNAuthService
-
-authNAuthService:
-  ribbon:
-    listOfServers: http://localhost:8080
-
 cors:
-  corsEnabled: true
\ No newline at end of file
+  corsEnabled: true
+
+swagger:
+  baseUrl: /test-stoerungsauskunft-interface
+  proxyUrl:
\ No newline at end of file
diff --git a/stoerungsauskunftInterface/src/main/resources/application_localdev.yml b/stoerungsauskunftInterface/src/main/resources/application_localdev.yml
index 96095a4..f60e053 100644
--- a/stoerungsauskunftInterface/src/main/resources/application_localdev.yml
+++ b/stoerungsauskunftInterface/src/main/resources/application_localdev.yml
@@ -13,15 +13,15 @@
 spring:
   datasource:
     url: jdbc:postgresql://entopticadirx:5432/GridFailureInfoDevelop
-    username: gfi_service
-    password: gfi_service
+    username: ${GFI_DB_USERNAME}
+    password: ${GFI_DB_PASSWORD}
   flyway:
     enabled: false
   rabbitmq:
     host: entdockergss
     port: 5672
-    username: guest
-    password: guest
+    username: ${GFI_RABBITMQ_USERNAME}
+    password: ${GFI_RABBITMQ_PASSWORD}
     queuename: failureImportQueueLocalDev
     routingkey: failureImportChannelLocalDev.failureImportKeyLocalDev
     exchangename: failureImportChannel
@@ -66,25 +66,28 @@
 
 stoerungsauskunft:
   apiUrl: https://stage-api-operator.stoerungsauskunft.de/api/v1.0/
-  user: ewr
-  password: 538c00054e564bdbb4eab3418570ae20
+  user: ${GFI_STOERUNGSAUSKUNFT_USERNAME}
+  password: ${GFI_STOERUNGSAUSKUNFT_PASSWORD}
   scheduling-import:
     enabled: false
     cron: 0 */15 * ? * *
 
+swagger:
+  baseUrl:
+  proxyUrl:
 ---
 
 spring:
   profiles: dev-db
   datasource:
     url: jdbc:postgresql://entopticadirx:5432/GridFailureInfoDevServer
-    username: gfi_service
-    password: gfi_service
+    username: ${GFI_DB_USERNAME}
+    password: ${GFI_DB_PASSWORD}
   rabbitmq:
     host: entdockergss
     port: 5672
-    username: guest
-    password: guest
+    username: ${GFI_RABBITMQ_USERNAME}
+    password: ${GFI_RABBITMQ_PASSWORD}
     queuename: failureImportQueue
     routingkey: failureImportChannel.failureImportKey
     exchangename: failureImportChannel
\ No newline at end of file
diff --git a/stoerungsauskunftInterface/src/main/resources/logback-spring.xml b/stoerungsauskunftInterface/src/main/resources/logback-spring.xml
index 872db43..12c5a70 100644
--- a/stoerungsauskunftInterface/src/main/resources/logback-spring.xml
+++ b/stoerungsauskunftInterface/src/main/resources/logback-spring.xml
@@ -40,7 +40,6 @@
     <!-- LOG everything at INFO level -->
     <root level="info">
         <appender-ref ref="RollingFileStd"/>
-        <!--<appender-ref ref="RollingFileFeign"/>-->
         <appender-ref ref="Console"/>
     </root>
 
@@ -50,7 +49,7 @@
         <appender-ref ref="Console"/>
     </logger>
 
-    <logger name="org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.api.StoerungsauskunftApi" level="debug" additivity="false">
+    <logger name="org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.api.StoerungsauskunftApi" level="info" additivity="false">
         <appender-ref ref="RollingFileFeign"/>
     </logger>
 
diff --git a/stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/StoerungsaulkunftInterfaceApplicationTest.java b/stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/StoerungsaulkunftInterfaceApplicationTest.java
similarity index 73%
rename from stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/StoerungsaulkunftInterfaceApplicationTest.java
rename to stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/StoerungsaulkunftInterfaceApplicationTest.java
index 0e90a63..cbf2705 100644
--- a/stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/StoerungsaulkunftInterfaceApplicationTest.java
+++ b/stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/StoerungsaulkunftInterfaceApplicationTest.java
@@ -1,4 +1,4 @@
-package org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface;
+package org.eclipse.openk.gridfailureinformation.stoerauskunftinterface;
 
 import org.junit.jupiter.api.Test;
 import org.springframework.boot.test.context.SpringBootTest;
diff --git a/stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/config/ImportSchedulerConfigTest.java b/stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/config/ImportSchedulerConfigTest.java
similarity index 73%
rename from stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/config/ImportSchedulerConfigTest.java
rename to stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/config/ImportSchedulerConfigTest.java
index cd77b26..116646e 100644
--- a/stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/config/ImportSchedulerConfigTest.java
+++ b/stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/config/ImportSchedulerConfigTest.java
@@ -1,8 +1,8 @@
-package org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.config;
+package org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.config;
 
-import org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.StoerungsaulkunftInterfaceApplication;
-import org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.api.StoerungsauskunftApi;
-import org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.service.ImportExportService;
+import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.StoerungsaulkunftInterfaceApplication;
+import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.api.StoerungsauskunftApi;
+import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.service.ImportExportService;
 import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
diff --git a/stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/config/TestConfiguration.java b/stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/config/TestConfiguration.java
similarity index 80%
rename from stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/config/TestConfiguration.java
rename to stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/config/TestConfiguration.java
index 412d7e5..82e9080 100644
--- a/stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/config/TestConfiguration.java
+++ b/stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/config/TestConfiguration.java
@@ -12,13 +12,13 @@
  * SPDX-License-Identifier: EPL-2.0
  *******************************************************************************
  */
-package org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.config;
+package org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.config;
 
 
 import com.fasterxml.jackson.databind.ObjectMapper;
-import org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.StoerungsaulkunftInterfaceApplication;
-import org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.mapper.StoerungsauskunftMapperImpl;
-import org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.service.ImportExportService;
+import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.StoerungsaulkunftInterfaceApplication;
+import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.mapper.StoerungsauskunftMapperImpl;
+import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.service.ImportExportService;
 import org.mockito.Mockito;
 import org.springframework.boot.autoconfigure.domain.EntityScan;
 import org.springframework.boot.test.context.ConfigFileApplicationContextInitializer;
diff --git a/stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/controller/ImportExportControllerTest.java b/stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/controller/ImportExportControllerTest.java
similarity index 80%
rename from stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/controller/ImportExportControllerTest.java
rename to stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/controller/ImportExportControllerTest.java
index f37d3eb..0cc6f60 100644
--- a/stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/controller/ImportExportControllerTest.java
+++ b/stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/controller/ImportExportControllerTest.java
@@ -12,14 +12,14 @@
  * SPDX-License-Identifier: EPL-2.0
  *******************************************************************************
  */
-package org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.controller;
+package org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.controller;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
-import org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.StoerungsaulkunftInterfaceApplication;
-import org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.api.StoerungsauskunftApi;
-import org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.dtos.ForeignFailureMessageDto;
-import org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.service.ImportExportService;
-import org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.support.MockDataHelper;
+import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.StoerungsaulkunftInterfaceApplication;
+import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.api.StoerungsauskunftApi;
+import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.dtos.ForeignFailureMessageDto;
+import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.service.ImportExportService;
+import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.support.MockDataHelper;
 import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
diff --git a/stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/service/ImportExportServiceTest.java b/stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/service/ImportExportServiceTest.java
similarity index 82%
rename from stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/service/ImportExportServiceTest.java
rename to stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/service/ImportExportServiceTest.java
index 56456e6..3984fc2 100644
--- a/stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/service/ImportExportServiceTest.java
+++ b/stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/service/ImportExportServiceTest.java
@@ -12,19 +12,19 @@
  * SPDX-License-Identifier: EPL-2.0
  *******************************************************************************
  */
-package org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.service;
+package org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.service;
 
 import com.fasterxml.jackson.core.type.TypeReference;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import feign.Request;
 import feign.Response;
-import org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.StoerungsaulkunftInterfaceApplication;
-import org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.api.StoerungsauskunftApi;
-import org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.config.TestConfiguration;
-import org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.dtos.ForeignFailureMessageDto;
-import org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.dtos.StoerungsauskunftUserNotification;
-import org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.exceptions.InternalServerErrorException;
-import org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.support.MockDataHelper;
+import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.StoerungsaulkunftInterfaceApplication;
+import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.api.StoerungsauskunftApi;
+import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.config.TestConfiguration;
+import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.dtos.ForeignFailureMessageDto;
+import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.dtos.StoerungsauskunftUserNotification;
+import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.exceptions.InternalServerErrorException;
+import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.support.MockDataHelper;
 import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
diff --git a/stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/support/MockDataHelper.java b/stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/support/MockDataHelper.java
similarity index 87%
rename from stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/support/MockDataHelper.java
rename to stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/support/MockDataHelper.java
index 4c1aa32..397541e 100644
--- a/stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/support/MockDataHelper.java
+++ b/stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/support/MockDataHelper.java
@@ -12,11 +12,11 @@
  * SPDX-License-Identifier: EPL-2.0
  *******************************************************************************
  */
-package org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.support;
+package org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.support;
 
-import org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.constants.Constants;
-import org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.dtos.ForeignFailureDataDto;
-import org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.dtos.ForeignFailureMessageDto;
+import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.constants.Constants;
+import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.dtos.ForeignFailureDataDto;
+import org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.dtos.ForeignFailureMessageDto;
 
 import java.math.BigDecimal;
 import java.text.ParseException;
diff --git a/stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/util/ResourceLoaderBase.java b/stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/util/ResourceLoaderBase.java
similarity index 97%
rename from stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/util/ResourceLoaderBase.java
rename to stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/util/ResourceLoaderBase.java
index 9d0235d..eae956f 100644
--- a/stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/jobs/stoerauskunftinterface/util/ResourceLoaderBase.java
+++ b/stoerungsauskunftInterface/src/test/java/org/eclipse/openk/gridfailureinformation/stoerauskunftinterface/util/ResourceLoaderBase.java
@@ -13,7 +13,7 @@
  *******************************************************************************
 */
 
-package org.eclipse.openk.gridfailureinformation.jobs.stoerauskunftinterface.util;
+package org.eclipse.openk.gridfailureinformation.stoerauskunftinterface.util;
 
 import lombok.extern.log4j.Log4j2;
 import org.apache.commons.io.ByteOrderMark;
diff --git a/stoerungsauskunftInterface/src/test/resources/application.yml b/stoerungsauskunftInterface/src/test/resources/application.yml
index 3b22495..3416b7b 100644
--- a/stoerungsauskunftInterface/src/test/resources/application.yml
+++ b/stoerungsauskunftInterface/src/test/resources/application.yml
@@ -11,17 +11,11 @@
 #  SPDX-License-Identifier: EPL-2.0
 #  *******************************************************************************
 spring:
-  datasource:
-    url: jdbc:postgresql://entopticadirx:5432/GridFailureInfoDevServer
-    username: gfi_service
-    password: gfi_service
-  flyway:
-    enabled: false
   rabbitmq:
     host: entdockergss
     port: 5672
-    username: guest
-    password: guest
+    username: userName
+    password: secPwd
     queuename: failureImportQueue
     routingkey: failureImportChannel.failureImportKey
     exchangename: failureImportChannel
@@ -49,26 +43,21 @@
 
 stoerungsauskunft:
   apiUrl: https://stage-api-operator.stoerungsauskunft.de/api/v1.0/
-  user: ewr
-  password: 538c00054e564bdbb4eab3418570ae20
+  user: userName
+  password: secPwd
   scheduling-import:
     enabled: false
     cron: 0 */15 * ? * *
 
+swagger:
+  baseUrl:
+  proxyUrl:
+
 ---
 
 spring:
   profiles: test
 
-  datasource:
-    url: jdbc:h2:mem:test;DB_CLOSE_DELAY=-1
-jpa:
-  hibernate:
-    ddl-auto: create
-  show-sql: true
-flyway:
-  enabled: false
-
 jwt:
   tokenHeader: Authorization
   useStaticJwt: true
@@ -76,8 +65,8 @@
 
 stoerungsauskunft:
   apiUrl: https://stage-api-operator.stoerungsauskunft.de/api/v1.0/
-  user: ewr
-  password: 538c00054e564bdbb4eab3418570ae20
+  user: userName
+  password: secPwd
   scheduling-import:
     enabled: true
     cron: 0 */15 * ? * *
@@ -97,7 +86,6 @@
 cors:
   corsEnabled: true
 
-
 ---
 
 spring:
@@ -118,12 +106,6 @@
 
 spring:
   profiles: qserver
-  datasource:
-    url: jdbc:postgresql://localhost:5432/GridFailureInfoQaServer
-    username: gfi_service
-    password: gfi_service
-  flyway:
-    enabled: false
   rabbitmq:
     host: entdockergss
     port: 5672
@@ -145,13 +127,5 @@
   useStaticJwt: false
   staticJwt: eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJIYlI3Z2pobmE2eXJRZnZJTWhUSV9tY2g3ZmtTQWVFX3hLTjBhZVl0bjdjIn0.eyJqdGkiOiI5MGI0NGFkOC1iYjlmLTQ1MzktYTQwYy0yYjQyZTNkNjNiOGEiLCJleHAiOjE1Nzg2NTU3OTUsIm5iZiI6MCwiaWF0IjoxNTc4NjU1NDk1LCJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjgwODAvYXV0aC9yZWFsbXMvRWxvZ2Jvb2siLCJhdWQiOiJlbG9nYm9vay1iYWNrZW5kIiwic3ViIjoiODYyNjY5NmYtZjFhMi00ZGI1LTkyZWYtZTlhMjQ2Njg1YTU0IiwidHlwIjoiQmVhcmVyIiwiYXpwIjoiZWxvZ2Jvb2stYmFja2VuZCIsImF1dGhfdGltZSI6MCwic2Vzc2lvbl9zdGF0ZSI6IjJmMWIzODE5LWZjNjQtNDEzNC1iNWQxLWY3ZWY4NzU5NDBkNCIsImFjciI6IjEiLCJhbGxvd2VkLW9yaWdpbnMiOlsiKiJdLCJyZWFsbV9hY2Nlc3MiOnsicm9sZXMiOlsia29uLWFkbWluIiwia29uLXdyaXRlciIsImtvbi1hY2Nlc3MiLCJrb24tcmVhZGVyIl19LCJyZXNvdXJjZV9hY2Nlc3MiOnt9LCJuYW1lIjoiVGVzdGVyRmlyc3RuYW1lX3J3YSBUZXN0ZXJMYXN0bmFtZV9yd2EiLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJ0ZXN0dXNlcl9yd2EiLCJnaXZlbl9uYW1lIjoiVGVzdGVyRmlyc3RuYW1lX3J3YSIsImZhbWlseV9uYW1lIjoiVGVzdGVyTGFzdG5hbWVfcndhIn0.DAYXuv4tKn8RXqO1jyttnD-tF4nShUBQyfe4bKbAiPAyY2x5YbAf3M4eXnLrGqo8-loGKldICC28bL0LaMA3KKkQEOfW5sfpGqoN6212vs89mOklt0TJYc5PMXwFgJ5WC_TKjdwq7-aaDafOEWehV0U1ut3s-94ovNYIEn29nzXm2W1ldoXJEq03F880jlysQ5zlRvGF7eXEEpFfI2URyyNQ2UWh0Ssfq-gOAt2pbF1u6prA5RfvUmZ3v1eu21YLGZtgqPqxb1l6odyH3ip15j_HdgnTeo52ymxuRUj65Mskme3V5ev2DitHI9vZgnpV8Idhb4TTWliBeGCOMfDFCg
 
-services:
-  authNAuth:
-    name: authNAuthService
-
-authNAuthService:
-  ribbon:
-    listOfServers: http://localhost:8080
-
 cors:
   corsEnabled: true
\ No newline at end of file
diff --git a/testImportGridFailures/src/main/java/org/eclipse/openk/gridfailureinformation/jobs/importgridfailures/TestImportGridFailuresApplication.java b/testImportGridFailures/src/main/java/org/eclipse/openk/gridfailureinformation/jobs/importgridfailures/TestImportGridFailuresApplication.java
index 5e584c3..5e18d29 100644
--- a/testImportGridFailures/src/main/java/org/eclipse/openk/gridfailureinformation/jobs/importgridfailures/TestImportGridFailuresApplication.java
+++ b/testImportGridFailures/src/main/java/org/eclipse/openk/gridfailureinformation/jobs/importgridfailures/TestImportGridFailuresApplication.java
@@ -2,14 +2,12 @@
 
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
-import springfox.documentation.swagger2.annotations.EnableSwagger2;
 
 @SpringBootApplication
-@EnableSwagger2
 public class TestImportGridFailuresApplication {
 
 	public static void main(String[] args) {
-		SpringApplication.run(TestImportGridFailuresApplication.class, args);
+		SpringApplication.run(TestImportGridFailuresApplication.class);
 	}
 
 }
diff --git a/testImportGridFailures/src/main/java/org/eclipse/openk/gridfailureinformation/jobs/importgridfailures/config/SwaggerConfig.java b/testImportGridFailures/src/main/java/org/eclipse/openk/gridfailureinformation/jobs/importgridfailures/config/SwaggerConfig.java
new file mode 100644
index 0000000..609017a
--- /dev/null
+++ b/testImportGridFailures/src/main/java/org/eclipse/openk/gridfailureinformation/jobs/importgridfailures/config/SwaggerConfig.java
@@ -0,0 +1,35 @@
+package org.eclipse.openk.gridfailureinformation.jobs.importgridfailures.config;
+
+import lombok.extern.log4j.Log4j2;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Profile;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spring.web.paths.RelativePathProvider;
+import springfox.documentation.spring.web.plugins.Docket;
+import springfox.documentation.swagger2.annotations.EnableSwagger2;
+
+import javax.servlet.ServletContext;
+
+@Log4j2
+@Configuration
+@EnableSwagger2
+@Profile("!prod")
+public class SwaggerConfig {
+
+    @Value("${swagger.baseUrl}")
+    public String baseUrl;
+    @Value("${swagger.proxyUrl}")
+    public String proxyUrl;
+
+    @Bean
+    public Docket newsApi(ServletContext servletContext) {
+        return new Docket(DocumentationType.SWAGGER_2).pathProvider(new RelativePathProvider(servletContext) {
+            @Override
+            public String getApplicationBasePath() {
+                return baseUrl + super.getApplicationBasePath();
+            }
+        }).host(proxyUrl);
+    }
+}
diff --git a/testImportGridFailures/src/main/resources/application.properties b/testImportGridFailures/src/main/resources/application.properties
deleted file mode 100644
index 8b13789..0000000
--- a/testImportGridFailures/src/main/resources/application.properties
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/testImportGridFailures/src/main/resources/application.yml b/testImportGridFailures/src/main/resources/application.yml
index d8d2ebf..51237aa 100644
--- a/testImportGridFailures/src/main/resources/application.yml
+++ b/testImportGridFailures/src/main/resources/application.yml
@@ -13,15 +13,15 @@
 spring:
   datasource:
     url: jdbc:postgresql://entopticadirx:5432/GridFailureInfoDevServer
-    username: gfi_service
-    password: gfi_service
+    username: ${GFI_DB_USERNAME}
+    password: ${GFI_DB_PASSWORD}
   flyway:
     enabled: false
   rabbitmq:
     host: entdockergss
     port: 5672
-    username: guest
-    password: guest
+    username: ${GFI_RABBITMQ_USERNAME}
+    password: ${GFI_RABBITMQ_PASSWORD}
     queuename: failureImportQueue
     routingkey: failureImportChannel.failureImportKey
     exchangename: failureImportChannel
@@ -54,6 +54,10 @@
 cors:
   corsEnabled: false
 
+swagger:
+  baseUrl:
+  proxyUrl:
+
 ---
 
 spring:
@@ -112,15 +116,15 @@
   profiles: qserver
   datasource:
     url: jdbc:postgresql://localhost:5432/GridFailureInfoQaServer
-    username: gfi_service
-    password: gfi_service
+    username: ${GFI_DB_USERNAME}
+    password: ${GFI_DB_PASSWORD}
   flyway:
     enabled: false
   rabbitmq:
     host: localhost
     port: 5672
-    username: guest
-    password: guest
+    username: ${GFI_RABBITMQ_USERNAME}
+    password: ${GFI_RABBITMQ_PASSWORD}
     queuename: failureImportQueue
     routingkey: failureImportChannel.failureImportKey
     exchangename: failureImportChannel
@@ -146,4 +150,8 @@
     listOfServers: http://localhost:8080
 
 cors:
-  corsEnabled: true
\ No newline at end of file
+  corsEnabled: true
+
+swagger:
+  baseUrl: /testImporter
+  proxyUrl:
\ No newline at end of file
diff --git a/testImportGridFailures/src/main/resources/application_localdev.yml b/testImportGridFailures/src/main/resources/application_localdev.yml
index 79cf5d2..f3e2ee5 100644
--- a/testImportGridFailures/src/main/resources/application_localdev.yml
+++ b/testImportGridFailures/src/main/resources/application_localdev.yml
@@ -13,15 +13,15 @@
 spring:
   datasource:
     url: jdbc:postgresql://entopticadirx:5432/GridFailureInfoDevelop
-    username: gfi_service
-    password: gfi_service
+    username: ${GFI_DB_USERNAME}
+    password: ${GFI_DB_PASSWORD}
   flyway:
     enabled: false
   rabbitmq:
     host: entdockergss
     port: 5672
-    username: guest
-    password: guest
+    username: ${GFI_RABBITMQ_USERNAME}
+    password: ${GFI_RABBITMQ_PASSWORD}
     queuename: failureImportQueueLocalDev
     routingkey: failureImportChannelLocalDev.failureImportKeyLocalDev
     exchangename: failureImportChannel
@@ -62,11 +62,15 @@
 cors:
   corsEnabled: true
 
+swagger:
+  baseUrl:
+  proxyUrl:
+
 ---
 
 spring:
   profiles: dev-db
   datasource:
     url: jdbc:postgresql://entopticadirx:5432/GridFailureInfoDevServer
-    username: gfi_service
-    password: gfi_service
\ No newline at end of file
+    username: ${GFI_DB_USERNAME}
+    password: ${GFI_DB_PASSWORD}
\ No newline at end of file