Merge branch 'DEVELOP' of ssh://git.eclipse.org:29418/openk-coremodules/org.eclipse.openk-coremodules.contactBaseData.backend into DEVELOP
diff --git a/deploy/db/02_create_tables_with_example_data.sql b/deploy/db/02_create_tables_with_example_data.sql
index 979a88e..a793812 100644
--- a/deploy/db/02_create_tables_with_example_data.sql
+++ b/deploy/db/02_create_tables_with_example_data.sql
@@ -103,20 +103,20 @@
   OWNER TO CBD_SERVICE;
 GRANT ALL ON TABLE public.TBL_CONTACT TO CBD_SERVICE;
 
-INSERT INTO public.TBL_CONTACT (UUID, CONTACT_TYPE, NOTE, ANONYMIZED) VALUES ( 'ae3f2ec1-ccc5-4269-a48f-dd40e37fa14e', 'COM', 'company 1 (id=1)', null );
-INSERT INTO public.TBL_CONTACT (UUID, CONTACT_TYPE, NOTE, ANONYMIZED) VALUES ( 'fc7f598b-0d51-46bb-9563-99851fe6a3ad', 'COM', 'company 2 (id=2)', null );
-INSERT INTO public.TBL_CONTACT (UUID, CONTACT_TYPE, NOTE, ANONYMIZED) VALUES ( '556b91be-6d57-432f-93ed-65604dd6e5cd', 'C_P', 'contact person 1 (id=3)', null );
-INSERT INTO public.TBL_CONTACT (UUID, CONTACT_TYPE, NOTE, ANONYMIZED) VALUES ( '116380e3-25c5-4179-b40a-8abebe10fe07', 'C_P', 'contact person 2 (id=4)', null );
-INSERT INTO public.TBL_CONTACT (UUID, CONTACT_TYPE, NOTE, ANONYMIZED) VALUES ( '7782179b-fb79-4370-8f71-f4c71470d006', 'I_P', 'internal person 1 (id=5)', null );
-INSERT INTO public.TBL_CONTACT (UUID, CONTACT_TYPE, NOTE, ANONYMIZED) VALUES ( '8963aa38-d021-4dc9-bd70-d3734ccd20c4', 'I_P', 'internal person 2 (id=6)', null );
-INSERT INTO public.TBL_CONTACT (UUID, CONTACT_TYPE, NOTE, ANONYMIZED) VALUES ( 'c862d604-5766-43d6-a7e8-a4bac2bd01e1', 'E_P', 'external person 1 (id=7)', null );
-INSERT INTO public.TBL_CONTACT (UUID, CONTACT_TYPE, NOTE, ANONYMIZED) VALUES ( 'fa3d981b-a7d6-4965-a623-cdbc69404153', 'E_P', 'external person 2 (id=8)', null );
-INSERT INTO public.TBL_CONTACT (UUID, CONTACT_TYPE, NOTE, ANONYMIZED) VALUES ( 'ceba21e9-e685-483b-840e-ad167860a696', 'COM', 'anonymous company A (id=9)', true );
-INSERT INTO public.TBL_CONTACT (UUID, CONTACT_TYPE, NOTE, ANONYMIZED) VALUES ( '7889c814-9752-4e4e-a9fe-b46f36a38ccd', 'COM', 'anonymous company B (id=10)', true );
-INSERT INTO public.TBL_CONTACT (UUID, CONTACT_TYPE, NOTE, ANONYMIZED) VALUES ( '618a01a3-f348-44cc-9ddd-c9df946b0212', 'C_P', 'anoymous contact person A1 (id=11)', true );
-INSERT INTO public.TBL_CONTACT (UUID, CONTACT_TYPE, NOTE, ANONYMIZED) VALUES ( '4ed82474-3878-457a-baef-c28b8e486f25', 'C_P', 'anoymous contact persion A2 (id=12)', true );
-INSERT INTO public.TBL_CONTACT (UUID, CONTACT_TYPE, NOTE, ANONYMIZED) VALUES ( '8fe41b90-d10c-4a70-8fde-0990286ad3c6', 'I_P', 'internal person 3 (id=13)', null );
-INSERT INTO public.TBL_CONTACT (UUID, CONTACT_TYPE, NOTE, ANONYMIZED) VALUES ( 'ab804610-d6a4-4803-a4a1-3f6cb742b2a4', 'I_P', 'internal person 4 (id=14)', null );
+INSERT INTO public.TBL_CONTACT (UUID, CONTACT_TYPE, NOTE, ANONYMIZED) VALUES ( 'ae3f2ec1-ccc5-4269-a48f-dd40e37fa14e', '4CO', 'company 1 (id=1)', null );
+INSERT INTO public.TBL_CONTACT (UUID, CONTACT_TYPE, NOTE, ANONYMIZED) VALUES ( 'fc7f598b-0d51-46bb-9563-99851fe6a3ad', '4CO', 'company 2 (id=2)', null );
+INSERT INTO public.TBL_CONTACT (UUID, CONTACT_TYPE, NOTE, ANONYMIZED) VALUES ( '556b91be-6d57-432f-93ed-65604dd6e5cd', '1CP', 'contact person 1 (id=3)', null );
+INSERT INTO public.TBL_CONTACT (UUID, CONTACT_TYPE, NOTE, ANONYMIZED) VALUES ( '116380e3-25c5-4179-b40a-8abebe10fe07', '1CP', 'contact person 2 (id=4)', null );
+INSERT INTO public.TBL_CONTACT (UUID, CONTACT_TYPE, NOTE, ANONYMIZED) VALUES ( '7782179b-fb79-4370-8f71-f4c71470d006', '3IP', 'internal person 1 (id=5)', null );
+INSERT INTO public.TBL_CONTACT (UUID, CONTACT_TYPE, NOTE, ANONYMIZED) VALUES ( '8963aa38-d021-4dc9-bd70-d3734ccd20c4', '3IP', 'internal person 2 (id=6)', null );
+INSERT INTO public.TBL_CONTACT (UUID, CONTACT_TYPE, NOTE, ANONYMIZED) VALUES ( 'c862d604-5766-43d6-a7e8-a4bac2bd01e1', '2EP', 'external person 1 (id=7)', null );
+INSERT INTO public.TBL_CONTACT (UUID, CONTACT_TYPE, NOTE, ANONYMIZED) VALUES ( 'fa3d981b-a7d6-4965-a623-cdbc69404153', '2EP', 'external person 2 (id=8)', null );
+INSERT INTO public.TBL_CONTACT (UUID, CONTACT_TYPE, NOTE, ANONYMIZED) VALUES ( 'ceba21e9-e685-483b-840e-ad167860a696', '4CO', 'anonymous company A (id=9)', true );
+INSERT INTO public.TBL_CONTACT (UUID, CONTACT_TYPE, NOTE, ANONYMIZED) VALUES ( '7889c814-9752-4e4e-a9fe-b46f36a38ccd', '4CO', 'anonymous company B (id=10)', true );
+INSERT INTO public.TBL_CONTACT (UUID, CONTACT_TYPE, NOTE, ANONYMIZED) VALUES ( '618a01a3-f348-44cc-9ddd-c9df946b0212', '1CP', 'anoymous contact person A1 (id=11)', true );
+INSERT INTO public.TBL_CONTACT (UUID, CONTACT_TYPE, NOTE, ANONYMIZED) VALUES ( '4ed82474-3878-457a-baef-c28b8e486f25', '1CP', 'anoymous contact persion A2 (id=12)', true );
+INSERT INTO public.TBL_CONTACT (UUID, CONTACT_TYPE, NOTE, ANONYMIZED) VALUES ( '8fe41b90-d10c-4a70-8fde-0990286ad3c6', '3IP', 'internal person 3 (id=13)', null );
+INSERT INTO public.TBL_CONTACT (UUID, CONTACT_TYPE, NOTE, ANONYMIZED) VALUES ( 'ab804610-d6a4-4803-a4a1-3f6cb742b2a4', '3IP', 'internal person 4 (id=14)', null );
 
 
 CREATE UNIQUE INDEX idx_tbl_contact_contact_type ON public.TBL_CONTACT  ( ID ASC );
@@ -483,7 +483,7 @@
    FK_SALUTATION_ID bigint,
    FK_REF_PERSON_TYPE_ID bigint,
    DEPARTMENT character varying(255),
-   UID character varying(255),
+   UID_IDENT character varying(255),
    USER_REF character varying(255),
    FK_CONTACT_ID bigint NOT NULL,
    CONSTRAINT TBL_INTERNAL_PERSON_PKEY PRIMARY KEY (ID),
@@ -501,13 +501,13 @@
   OWNER TO CBD_SERVICE;
 GRANT ALL ON TABLE public.TBL_INTERNAL_PERSON TO CBD_SERVICE;
 
-CREATE UNIQUE INDEX idx_tbl_internal_person_uid ON public.TBL_INTERNAL_PERSON ( UID ASC );
+CREATE UNIQUE INDEX idx_tbl_internal_person_uid ON public.TBL_INTERNAL_PERSON ( UID_IDENT ASC );
 CREATE UNIQUE INDEX idx_tbl_internal_person_user_ref ON public.TBL_INTERNAL_PERSON ( USER_REF ASC );
 
-INSERT INTO public.TBL_INTERNAL_PERSON (FIRST_NAME, LAST_NAME, TITLE, FK_SALUTATION_ID, FK_REF_PERSON_TYPE_ID, DEPARTMENT, UID, USER_REF, FK_CONTACT_ID) VALUES ( 'Pauline', 'Freudenberg', 'B.Sc.', 1, 1,'Abteilung Rechnungsstellung', '66cd78c3-6716-4ab3-b834-a199fc796b88', 'PFREUD',  5);
-INSERT INTO public.TBL_INTERNAL_PERSON (FIRST_NAME, LAST_NAME, TITLE, FK_SALUTATION_ID, FK_REF_PERSON_TYPE_ID, DEPARTMENT, UID, USER_REF, FK_CONTACT_ID) VALUES ( 'Bernhardt', 'Iffland', '', 2, 2,'Kreativ', '4124e4e7-3488-4492-bf39-75e6a23a1c1a', 'BIFFL', 6);
-INSERT INTO public.TBL_INTERNAL_PERSON (FIRST_NAME, LAST_NAME, TITLE, FK_SALUTATION_ID, FK_REF_PERSON_TYPE_ID, DEPARTMENT, UID, USER_REF, FK_CONTACT_ID) VALUES ( 'Horatio', 'Hornblower', 'Capt.', 1, 2,'Royal Navy', 'hhornblo', 'HORNB', 13);
-INSERT INTO public.TBL_INTERNAL_PERSON (FIRST_NAME, LAST_NAME, TITLE, FK_SALUTATION_ID, FK_REF_PERSON_TYPE_ID, DEPARTMENT, UID, USER_REF, FK_CONTACT_ID) VALUES ( 'Cornelius', 'Buckley', '', 1, 2,'Royal Navy', null, 'BUCKC', 14);
+INSERT INTO public.TBL_INTERNAL_PERSON (FIRST_NAME, LAST_NAME, TITLE, FK_SALUTATION_ID, FK_REF_PERSON_TYPE_ID, DEPARTMENT, UID_IDENT, USER_REF, FK_CONTACT_ID) VALUES ( 'Pauline', 'Freudenberg', 'B.Sc.', 1, 1,'Abteilung Rechnungsstellung', '66cd78c3-6716-4ab3-b834-a199fc796b88', 'PFREUD',  5);
+INSERT INTO public.TBL_INTERNAL_PERSON (FIRST_NAME, LAST_NAME, TITLE, FK_SALUTATION_ID, FK_REF_PERSON_TYPE_ID, DEPARTMENT, UID_IDENT, USER_REF, FK_CONTACT_ID) VALUES ( 'Bernhardt', 'Iffland', '', 2, 2,'Kreativ', '4124e4e7-3488-4492-bf39-75e6a23a1c1a', 'BIFFL', 6);
+INSERT INTO public.TBL_INTERNAL_PERSON (FIRST_NAME, LAST_NAME, TITLE, FK_SALUTATION_ID, FK_REF_PERSON_TYPE_ID, DEPARTMENT, UID_IDENT, USER_REF, FK_CONTACT_ID) VALUES ( 'Horatio', 'Hornblower', 'Capt.', 1, 2,'Royal Navy', 'hhornblo', 'HORNB', 13);
+INSERT INTO public.TBL_INTERNAL_PERSON (FIRST_NAME, LAST_NAME, TITLE, FK_SALUTATION_ID, FK_REF_PERSON_TYPE_ID, DEPARTMENT, UID_IDENT, USER_REF, FK_CONTACT_ID) VALUES ( 'Cornelius', 'Buckley', '', 1, 2,'Royal Navy', null, 'BUCKC', 14);
 -- ---------------------------------------------
 -- TABLE TBL_ASSIGNMENT_MODUL_CONTACT
 -- ---------------------------------------------
diff --git a/deploy/db/oracle/01_drop_db.sql b/deploy/db/oracle/01_drop_db.sql
new file mode 100644
index 0000000..9bd16e0
--- /dev/null
+++ b/deploy/db/oracle/01_drop_db.sql
@@ -0,0 +1,55 @@
+-----------------------------------------------------------------------------------
+-- *******************************************************************************
+-- * 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
+-- *******************************************************************************
+-----------------------------------------------------------------------------------
+
+DROP VIEW VW_DETAILED_CONTACT;
+DROP VIEW VW_GENERAL_CONTACT;
+
+DROP TABLE TBL_ASSIGNMENT_MODUL_CONTACT;
+DROP SEQUENCE TBL_ASSIGN_MODUL_CNTCT_ID_SEQ;
+
+DROP TABLE TBL_INTERNAL_PERSON;
+DROP SEQUENCE TBL_INTERNAL_PERSON_ID_SEQ;
+
+DROP TABLE TBL_EXTERNAL_PERSON;
+DROP SEQUENCE TBL_EXTERNAL_PERSON_ID_SEQ;
+
+DROP TABLE TBL_CONTACT_PERSON;
+DROP SEQUENCE TBL_CONTACT_PERSON_ID_SEQ;
+
+DROP TABLE TBL_COMPANY;
+DROP SEQUENCE TBL_COMPANY_ID_SEQ;
+
+DROP TABLE TBL_COMMUNICATION;
+DROP SEQUENCE TBL_COMMUNICATION_ID_SEQ;
+
+DROP TABLE TBL_ADDRESS;
+DROP SEQUENCE TBL_ADDRESS_ID_SEQ;
+
+DROP TABLE REF_SALUTATION;
+DROP SEQUENCE REF_SALUTATION_ID_SEQ;
+
+DROP TABLE REF_COMMUNICATION_TYPE;
+DROP SEQUENCE REF_COMMUNICATION_TYPE_ID_SEQ;
+
+DROP TABLE REF_PERSON_TYPE;
+DROP SEQUENCE REF_PERSON_TYPE_ID_SEQ;
+
+DROP TABLE REF_ADDRESS_TYPE;
+DROP SEQUENCE REF_ADDRESS_TYPE_ID_SEQ;
+
+DROP TABLE TBL_CONTACT;
+DROP SEQUENCE TBL_CONTACT_ID_SEQ;
+
+DROP TABLE VERSION;
diff --git a/deploy/db/oracle/02_create_tables_with_example_data.sql b/deploy/db/oracle/02_create_tables_with_example_data.sql
new file mode 100644
index 0000000..1c1531a
--- /dev/null
+++ b/deploy/db/oracle/02_create_tables_with_example_data.sql
@@ -0,0 +1,655 @@
+
+-- ---------------------------------------------
+-- TABLE VERSION
+-- ---------------------------------------------
+-- TABLE: PUBLIC.REF_VERSION
+CREATE TABLE VERSION
+(
+  "ID" INTEGER NOT NULL,
+  "VERSION" VARCHAR2(500) NOT NULL,
+  CONSTRAINT VERSION_PKEY PRIMARY KEY ("ID")
+);
+
+INSERT INTO VERSION (ID, VERSION) VALUES ( 1, '1.0-ORA' );
+
+
+-- ---------------------------------------------
+-- TABLE TBL_CONTACT
+-- ---------------------------------------------
+
+CREATE SEQUENCE TBL_CONTACT_ID_SEQ
+  INCREMENT BY 1;
+
+CREATE TABLE TBL_CONTACT
+(
+  "ID" INTEGER NOT NULL,
+  "UUID" RAW(16) NOT NULL,
+  "CONTACT_TYPE" VARCHAR2(3),
+  "NOTE" VARCHAR2(255),
+  "ANONYMIZED" NUMBER,
+  CONSTRAINT TBL_CONTACT_PKEY PRIMARY KEY ("ID")
+);
+
+CREATE OR REPLACE TRIGGER "TBL_CONTACT_BIR"
+BEFORE INSERT ON TBL_CONTACT
+FOR EACH ROW
+ WHEN (NEW."ID" IS NULL) BEGIN
+  SELECT TBL_CONTACT_ID_SEQ.NEXTVAL
+  INTO   :NEW."ID"
+  FROM   DUAL;
+END;
+/
+ALTER TRIGGER "TBL_CONTACT_BIR" ENABLE;
+
+
+INSERT INTO "TBL_CONTACT" ("UUID", "CONTACT_TYPE", "NOTE", "ANONYMIZED") VALUES ( hextoraw(replace('ae3f2ec1-ccc5-4269-a48f-dd40e37fa14e','-','')), '4CO', 'company 1 (id=1)', null );
+INSERT INTO "TBL_CONTACT" ("UUID", "CONTACT_TYPE", "NOTE", "ANONYMIZED") VALUES ( hextoraw(replace('fc7f598b-0d51-46bb-9563-99851fe6a3ad','-','')), '4CO', 'company 2 (id=2)', null );
+INSERT INTO "TBL_CONTACT" ("UUID", "CONTACT_TYPE", "NOTE", "ANONYMIZED") VALUES ( hextoraw(replace('556b91be-6d57-432f-93ed-65604dd6e5cd','-','')), '1CP', 'contact person 1 (id=3)', null );
+INSERT INTO "TBL_CONTACT" ("UUID", "CONTACT_TYPE", "NOTE", "ANONYMIZED") VALUES ( hextoraw(replace('116380e3-25c5-4179-b40a-8abebe10fe07','-','')), '1CP', 'contact person 2 (id=4)', null );
+INSERT INTO "TBL_CONTACT" ("UUID", "CONTACT_TYPE", "NOTE", "ANONYMIZED") VALUES ( hextoraw(replace('7782179b-fb79-4370-8f71-f4c71470d006','-','')), '3IP', 'internal person 1 (id=5)', null );
+INSERT INTO "TBL_CONTACT" ("UUID", "CONTACT_TYPE", "NOTE", "ANONYMIZED") VALUES ( hextoraw(replace('8963aa38-d021-4dc9-bd70-d3734ccd20c4','-','')), '3IP', 'internal person 2 (id=6)', null );
+INSERT INTO "TBL_CONTACT" ("UUID", "CONTACT_TYPE", "NOTE", "ANONYMIZED") VALUES ( hextoraw(replace('c862d604-5766-43d6-a7e8-a4bac2bd01e1','-','')), '2EP', 'external person 1 (id=7)', null );
+INSERT INTO "TBL_CONTACT" ("UUID", "CONTACT_TYPE", "NOTE", "ANONYMIZED") VALUES ( hextoraw(replace('fa3d981b-a7d6-4965-a623-cdbc69404153','-','')), '2EP', 'external person 2 (id=8)', null );
+INSERT INTO "TBL_CONTACT" ("UUID", "CONTACT_TYPE", "NOTE", "ANONYMIZED") VALUES ( hextoraw(replace('ceba21e9-e685-483b-840e-ad167860a696','-','')), '4CO', 'anonymous company A (id=9)', 1 );
+INSERT INTO "TBL_CONTACT" ("UUID", "CONTACT_TYPE", "NOTE", "ANONYMIZED") VALUES ( hextoraw(replace('7889c814-9752-4e4e-a9fe-b46f36a38ccd','-','')), '4CO', 'anonymous company B (id=10)', 1 );
+INSERT INTO "TBL_CONTACT" ("UUID", "CONTACT_TYPE", "NOTE", "ANONYMIZED") VALUES ( hextoraw(replace('618a01a3-f348-44cc-9ddd-c9df946b0212','-','')), '1CP', 'anoymous contact person A1 (id=11)', 1 );
+INSERT INTO "TBL_CONTACT" ("UUID", "CONTACT_TYPE", "NOTE", "ANONYMIZED") VALUES ( hextoraw(replace('4ed82474-3878-457a-baef-c28b8e486f25','-','')), '1CP', 'anoymous contact persion A2 (id=12)', 1 );
+INSERT INTO "TBL_CONTACT" ("UUID", "CONTACT_TYPE", "NOTE", "ANONYMIZED") VALUES ( hextoraw(replace('8fe41b90-d10c-4a70-8fde-0990286ad3c6','-','')), '3IP', 'internal person 3 (id=13)', null );
+INSERT INTO "TBL_CONTACT" ("UUID", "CONTACT_TYPE", "NOTE", "ANONYMIZED") VALUES ( hextoraw(replace('ab804610-d6a4-4803-a4a1-3f6cb742b2a4','-','')), '3IP', 'internal person 4 (id=14)', null );
+
+
+CREATE UNIQUE INDEX IDX_CNTCT_UUID ON TBL_CONTACT (UUID);
+CREATE INDEX IDX_CNTCT_ANONYM ON TBL_CONTACT (ANONYMIZED);
+
+
+-- ---------------------------------------------
+-- TABLE REF_ADDRESS_TYPE
+-- ---------------------------------------------
+CREATE SEQUENCE REF_ADDRESS_TYPE_ID_SEQ
+  INCREMENT BY 1;
+
+CREATE TABLE REF_ADDRESS_TYPE
+(
+  "ID" INTEGER NOT NULL,
+  "UUID" RAW(16) NOT NULL,
+  "TYPE" VARCHAR2(30),
+  "DESCRIPTION" VARCHAR2(255),
+  CONSTRAINT REF_ADDRESS_TYPE_PKEY PRIMARY KEY ("ID")
+);
+
+CREATE OR REPLACE TRIGGER "REF_ADDRESS_TYPE_BIR"
+BEFORE INSERT ON REF_ADDRESS_TYPE
+FOR EACH ROW
+ WHEN (NEW."ID" IS NULL) BEGIN
+  SELECT REF_ADDRESS_TYPE_ID_SEQ.NEXTVAL
+  INTO   :NEW."ID"
+  FROM   DUAL;
+END;
+/
+ALTER TRIGGER "REF_ADDRESS_TYPE_BIR" ENABLE;
+
+CREATE UNIQUE INDEX IDX_REF_ADDRESS_TYPE_UUID ON REF_ADDRESS_TYPE ( UUID ASC );
+
+INSERT INTO REF_ADDRESS_TYPE ("UUID", "TYPE", "DESCRIPTION") VALUES ( hextoraw(replace('3802e681-9396-434e-b19c-5fedcec40ba7','-','')), 'Geschäftsadresse', 'Adresse des Hauptfirmensitzes' );
+INSERT INTO REF_ADDRESS_TYPE ("UUID", "TYPE", "DESCRIPTION") VALUES ( hextoraw(replace('f43ed6ac-9e7a-40f6-acc9-ec6b73eebf79','-','')), 'Privatadresse', 'private Anschrift' );
+INSERT INTO REF_ADDRESS_TYPE ("UUID", "TYPE", "DESCRIPTION") VALUES ( hextoraw(replace('70fd0811-f674-4f3a-96a7-7ae29fc95188','-','')), 'Lieferadresse', 'Adresse für Lieferungen' );
+
+
+-- ---------------------------------------------
+-- TABLE REF_PERSON_TYPE
+-- ---------------------------------------------
+CREATE SEQUENCE REF_PERSON_TYPE_ID_SEQ
+  INCREMENT BY 1;
+
+CREATE TABLE REF_PERSON_TYPE
+(
+  "ID" INTEGER NOT NULL,
+  "UUID" RAW(16) NOT NULL,
+  "TYPE" VARCHAR2(30),
+  "DESCRIPTION" VARCHAR2(255),
+  CONSTRAINT REF_PERSON_TYPE_PKEY PRIMARY KEY (ID)
+);
+
+CREATE OR REPLACE TRIGGER "REF_PERSON_TYPE_BIR"
+BEFORE INSERT ON REF_PERSON_TYPE
+FOR EACH ROW
+ WHEN (NEW."ID" IS NULL) BEGIN
+  SELECT REF_PERSON_TYPE_ID_SEQ.NEXTVAL
+  INTO   :NEW."ID"
+  FROM   DUAL;
+END;
+/
+ALTER TRIGGER "REF_PERSON_TYPE_BIR" ENABLE;
+
+CREATE UNIQUE INDEX IDX_REF_PERSON_TYPE_UUID ON REF_PERSON_TYPE ( UUID ASC );
+
+INSERT INTO REF_PERSON_TYPE (UUID, TYPE, DESCRIPTION) VALUES ( hextoraw(replace('47ce68b7-6d44-453e-b421-19020fd791b5','-','')), 'Rechtsanwalt', '' );
+INSERT INTO REF_PERSON_TYPE (UUID, TYPE, DESCRIPTION) VALUES ( hextoraw(replace('a7522c72-14d0-4e9d-afe3-bfcb3ffbec10','-','')), 'Geschäftsführer', '' );
+INSERT INTO REF_PERSON_TYPE (UUID, TYPE, DESCRIPTION) VALUES ( hextoraw(replace('2eb4885e-7363-4918-90ed-b7d5d84cfd3f','-','')), 'Rechnungsempfänger', 'Person, der Rechnungen zukommen' );
+
+
+-- ---------------------------------------------
+-- TABLE REF_COMMUNICATION_TYPE
+-- ---------------------------------------------
+CREATE SEQUENCE REF_COMMUNICATION_TYPE_ID_SEQ
+   INCREMENT BY 1;
+
+
+CREATE TABLE REF_COMMUNICATION_TYPE
+(
+  "ID" INTEGER NOT NULL,
+  "UUID" RAW(16) NOT NULL,
+  "TYPE" VARCHAR2(30),
+  "DESCRIPTION" VARCHAR2(255),
+  "TYPE_EMAIL" NUMBER,
+  CONSTRAINT REF_COMMUNICATION_TYPE_PKEY PRIMARY KEY (ID)
+);
+
+CREATE OR REPLACE TRIGGER "REF_COMMUNICATION_TYPE_BIR"
+BEFORE INSERT ON REF_COMMUNICATION_TYPE
+FOR EACH ROW
+ WHEN (NEW."ID" IS NULL) BEGIN
+  SELECT REF_COMMUNICATION_TYPE_ID_SEQ.NEXTVAL
+  INTO   :NEW."ID"
+  FROM   DUAL;
+END;
+/
+ALTER TRIGGER "REF_COMMUNICATION_TYPE_BIR" ENABLE;
+
+
+CREATE UNIQUE INDEX idx_ref_comm_type_uuid ON REF_COMMUNICATION_TYPE ( UUID ASC );
+
+INSERT INTO REF_COMMUNICATION_TYPE (UUID, TYPE, DESCRIPTION, TYPE_EMAIL) VALUES ( hextoraw(replace('4757ca3a-72c2-4f13-a2f6-ce092e3eadf4','-','')), 'E-Mail', 'E-Mail Adresse', 1 );
+INSERT INTO REF_COMMUNICATION_TYPE (UUID, TYPE, DESCRIPTION, TYPE_EMAIL) VALUES ( hextoraw(replace('77028572-ff57-4c1d-999a-78fa3fcbc1cd','-','')), 'Festnetz', '', 0 );
+INSERT INTO REF_COMMUNICATION_TYPE (UUID, TYPE, DESCRIPTION, TYPE_EMAIL) VALUES ( hextoraw(replace('f7d5b343-00c2-4d7f-8e03-009aad3d90f7','-','')), 'Mobil', '', 0 );
+INSERT INTO REF_COMMUNICATION_TYPE (UUID, TYPE, DESCRIPTION, TYPE_EMAIL) VALUES ( hextoraw(replace('2bfe40f9-c4eb-4d2e-855f-6b0883912846','-','')), 'Fax', '', 0 );
+INSERT INTO REF_COMMUNICATION_TYPE (UUID, TYPE, DESCRIPTION, TYPE_EMAIL) VALUES ( hextoraw(replace('d00d1a61-c8e7-43b2-959f-66e986731441','-','')), 'WhatsApp', '', 0 );
+
+-- ---------------------------------------------
+-- TABLE REF_SALUTATION
+-- ---------------------------------------------
+CREATE SEQUENCE REF_SALUTATION_ID_SEQ
+  INCREMENT BY 1;
+
+CREATE TABLE REF_SALUTATION
+(
+  "ID" INTEGER NOT NULL,
+  "UUID" RAW(16) NOT NULL,
+  "TYPE" VARCHAR2(30),
+  "DESCRIPTION" VARCHAR2(255),
+  CONSTRAINT REF_SALUTATION_PKEY PRIMARY KEY (ID)
+);
+
+CREATE OR REPLACE TRIGGER "REF_SALUTATION_BIR"
+BEFORE INSERT ON REF_SALUTATION
+FOR EACH ROW
+ WHEN (NEW."ID" IS NULL) BEGIN
+  SELECT REF_SALUTATION_ID_SEQ.NEXTVAL
+  INTO   :NEW."ID"
+  FROM   DUAL;
+END;
+/
+ALTER TRIGGER "REF_SALUTATION_BIR" ENABLE;
+
+
+CREATE UNIQUE INDEX idx_ref_salutation_uuid ON REF_SALUTATION ( UUID ASC );
+
+INSERT INTO REF_SALUTATION (UUID, TYPE, DESCRIPTION) VALUES ( hextoraw(replace('90119f18-5562-425d-9a36-3dd58ea125e5','-','')), 'Herr', 'Anrede männlich' );
+INSERT INTO REF_SALUTATION (UUID, TYPE, DESCRIPTION) VALUES ( hextoraw(replace('4e873baa-e4f5-4585-8b16-2db8fac66538','-','')), 'Frau', 'Anrede weiblich' );
+
+
+-- ---------------------------------------------
+-- TABLE TBL_ADDRESS
+-- ---------------------------------------------
+CREATE SEQUENCE TBL_ADDRESS_ID_SEQ
+  INCREMENT BY 1;
+
+CREATE TABLE TBL_ADDRESS
+(
+  "ID" INTEGER NOT NULL,
+  "UUID" RAW(16) NOT NULL,
+  "FK_CONTACT_ID" INTEGER NOT NULL,
+  "FK_ADDRESS_TYPE" INTEGER,
+  "IS_MAIN_ADDRESS" NUMBER,
+  "POSTCODE" VARCHAR2(30),
+  "COMMUNITY" VARCHAR2(255),
+  "COMMUNITY_SUFFIX" VARCHAR2(255),
+  "STREET" VARCHAR2(255),
+  "HOUSENUMBER" VARCHAR2(30),
+  "WGS_84_ZONE" VARCHAR2(255),
+  "LATITUDE" VARCHAR2(255),
+  "LONGITUDE" VARCHAR2(255),
+  "URL_MAP" VARCHAR2(255),
+  "NOTE" VARCHAR2(255),
+
+  CONSTRAINT TBL_ADDRESS_PKEY PRIMARY KEY (ID),
+  CONSTRAINT TBL_ADDRESS__CONTACT_ID_FKEY FOREIGN KEY (FK_CONTACT_ID)
+      REFERENCES TBL_CONTACT(ID),
+  CONSTRAINT TBL_ADDRESS_ADDR_TYPE_FKEY FOREIGN KEY (FK_ADDRESS_TYPE)
+       REFERENCES REF_ADDRESS_TYPE (ID)
+);
+
+CREATE OR REPLACE TRIGGER "TBL_ADDRESS_BIR"
+BEFORE INSERT ON TBL_ADDRESS
+FOR EACH ROW
+ WHEN (NEW."ID" IS NULL) BEGIN
+  SELECT TBL_ADDRESS_ID_SEQ.NEXTVAL
+  INTO   :NEW."ID"
+  FROM   DUAL;
+END;
+/
+ALTER TRIGGER "TBL_ADDRESS_BIR" ENABLE;
+
+
+CREATE UNIQUE INDEX idx_tbl_address_uuid ON TBL_ADDRESS ( UUID ASC );
+
+INSERT INTO TBL_ADDRESS (UUID, FK_CONTACT_ID, FK_ADDRESS_TYPE, IS_MAIN_ADDRESS, POSTCODE, COMMUNITY, COMMUNITY_SUFFIX, STREET, HOUSENUMBER, WGS_84_ZONE, LATITUDE, LONGITUDE, URL_MAP, NOTE) VALUES ( hextoraw(replace('37e800fe-64f0-4834-8b83-8453cbb936a5','-','')), 2, 1, 1, '12345', 'Heringsdorf','', 'Flunderweg', '5', '', '53 NL', '3 WB','www.xyz', 'nur über Seeweg erreichbar');
+INSERT INTO TBL_ADDRESS (UUID, FK_CONTACT_ID, FK_ADDRESS_TYPE, IS_MAIN_ADDRESS, POSTCODE, COMMUNITY, COMMUNITY_SUFFIX, STREET, HOUSENUMBER, WGS_84_ZONE, LATITUDE, LONGITUDE, URL_MAP, NOTE) VALUES ( hextoraw(replace('8a1202ae-2532-474e-8367-a1f0e13e9fbd','-','')), 1, 2, 0, '67890', 'Stralsund','', 'Schollendamm', '18', '', '53 N', '2 WB','www.xyz', 'Hochwassergefahr');
+
+
+-- ---------------------------------------------
+-- TABLE TBL_COMMUNICATION
+-- ---------------------------------------------
+CREATE SEQUENCE TBL_COMMUNICATION_ID_SEQ
+  INCREMENT BY 1;
+
+CREATE TABLE TBL_COMMUNICATION
+(
+  "ID" INTEGER NOT NULL,
+  "UUID" RAW(16) NOT NULL,
+  "FK_CONTACT_ID" INTEGER NOT NULL,
+  "FK_COMMUNICATION_TYPE" INTEGER,
+  "COMMUNICATION_DATA" VARCHAR2(1024),
+  "NOTE" VARCHAR2(255),
+
+  CONSTRAINT TBL_COMMUNICATION_PKEY PRIMARY KEY (ID),
+  CONSTRAINT TBL_COMM__CONTACT_ID_FKEY FOREIGN KEY (FK_CONTACT_ID)
+      REFERENCES TBL_CONTACT(ID),
+  CONSTRAINT TBL_COMM__COMM_TYPE_ID_FKEY FOREIGN KEY (FK_COMMUNICATION_TYPE)
+       REFERENCES REF_COMMUNICATION_TYPE (ID)
+);
+
+CREATE OR REPLACE TRIGGER "TBL_COMMUNICATION_BIR"
+BEFORE INSERT ON TBL_COMMUNICATION
+FOR EACH ROW
+ WHEN (NEW."ID" IS NULL) BEGIN
+  SELECT TBL_COMMUNICATION_ID_SEQ.NEXTVAL
+  INTO   :NEW."ID"
+  FROM   DUAL;
+END;
+/
+ALTER TRIGGER "TBL_COMMUNICATION_BIR" ENABLE;
+
+
+CREATE UNIQUE INDEX idx_tbl_communication_uuid ON TBL_COMMUNICATION ( UUID ASC );
+
+INSERT INTO TBL_COMMUNICATION (UUID, FK_CONTACT_ID, FK_COMMUNICATION_TYPE, COMMUNICATION_DATA, NOTE) VALUES ( hextoraw(replace('25f6d7cc-b168-4dd5-a36d-6f14b2f956e9','-','')), 2, 2, 'bitte melden Sie sich bei uns', 'Info...');
+INSERT INTO TBL_COMMUNICATION (UUID, FK_CONTACT_ID, FK_COMMUNICATION_TYPE, COMMUNICATION_DATA, NOTE) VALUES ( hextoraw(replace('a5fa380e-8f33-4ea7-9416-e03d11b91cae','-','')), 1, 3, 'bitte melden zwecks Terminabstimmung', 'Info...');
+INSERT INTO TBL_COMMUNICATION (UUID, FK_CONTACT_ID, FK_COMMUNICATION_TYPE, COMMUNICATION_DATA, NOTE) VALUES ( hextoraw(replace('c0dcef80-ca07-48b7-a3ed-2c99c4388928','-','')), 1, 1, 'info@bigbang.com', 'Info...');
+INSERT INTO TBL_COMMUNICATION (UUID, FK_CONTACT_ID, FK_COMMUNICATION_TYPE, COMMUNICATION_DATA, NOTE) VALUES ( hextoraw(replace('d19d9e10-d2dd-4383-84ec-2fe96421c0a3','-','')), 2, 1, 'info@pharmapeekltd.com', 'Info...');
+INSERT INTO TBL_COMMUNICATION (UUID, FK_CONTACT_ID, FK_COMMUNICATION_TYPE, COMMUNICATION_DATA, NOTE) VALUES ( hextoraw(replace('234b63e4-d8db-48ab-899f-0320903c01af','-','')), 3, 1, 'reinbold.tab@pharmapeek.com', 'Info...');
+INSERT INTO TBL_COMMUNICATION (UUID, FK_CONTACT_ID, FK_COMMUNICATION_TYPE, COMMUNICATION_DATA, NOTE) VALUES ( hextoraw(replace('11e25c02-de00-430d-b6cd-f02f7c60e026','-','')), 5, 1, 'PaulineF@gmx.net', 'Info...');
+INSERT INTO TBL_COMMUNICATION (UUID, FK_CONTACT_ID, FK_COMMUNICATION_TYPE, COMMUNICATION_DATA, NOTE) VALUES ( hextoraw(replace('9ca29c3b-e189-4ce9-9401-15001c769627','-','')), 6, 1, 'mo@gmail.com', 'Info...');
+INSERT INTO TBL_COMMUNICATION (UUID, FK_CONTACT_ID, FK_COMMUNICATION_TYPE, COMMUNICATION_DATA, NOTE) VALUES ( hextoraw(replace('05505b1a-61df-45c0-b006-64165cbadfa2','-','')), 7, 1, 'MGruebelSport@fogger.mil', 'Info...');
+INSERT INTO TBL_COMMUNICATION (UUID, FK_CONTACT_ID, FK_COMMUNICATION_TYPE, COMMUNICATION_DATA, NOTE) VALUES ( hextoraw(replace('b52dabaf-d156-4fd0-a07c-510673112a15','-','')), 8, 1, 'Mini.osterbrink@yahoo.ie', 'Info...');
+
+-- ---------------------------------------------
+-- TABLE TBL_COMPANY
+-- ---------------------------------------------
+CREATE SEQUENCE TBL_COMPANY_ID_SEQ
+  INCREMENT BY 1;
+
+
+CREATE TABLE TBL_COMPANY
+(
+  "ID" INTEGER NOT NULL,
+  "COMPANY_NAME" VARCHAR2(255),
+  "COMPANY_TYPE" VARCHAR2(30),
+  "HR_NUMBER" VARCHAR2(255),
+  "FK_CONTACT_ID" INTEGER NOT NULL,
+  CONSTRAINT TBL_COMPANY_PKEY PRIMARY KEY (id),
+  CONSTRAINT TBL_COMPANY__CONTACT_ID_FKEY FOREIGN KEY (FK_CONTACT_ID)
+      REFERENCES TBL_CONTACT(ID)
+);
+
+CREATE OR REPLACE TRIGGER "TBL_COMPANY_BIR"
+BEFORE INSERT ON TBL_COMPANY
+FOR EACH ROW
+ WHEN (NEW."ID" IS NULL) BEGIN
+  SELECT TBL_COMPANY_ID_SEQ.NEXTVAL
+  INTO   :NEW."ID"
+  FROM   DUAL;
+END;
+/
+ALTER TRIGGER "TBL_COMPANY_BIR" ENABLE;
+
+
+INSERT INTO TBL_COMPANY (COMPANY_NAME, COMPANY_TYPE, HR_NUMBER, FK_CONTACT_ID) VALUES ( 'BigBang Logistic', 'Logistik', '123', 1 );
+INSERT INTO TBL_COMPANY (COMPANY_NAME, COMPANY_TYPE, HR_NUMBER, FK_CONTACT_ID) VALUES ( 'Pharma Peek', 'Pharma', '345', 2 );
+INSERT INTO TBL_COMPANY (COMPANY_NAME, COMPANY_TYPE, HR_NUMBER, FK_CONTACT_ID) VALUES ( '***', '***', null, 9 );
+INSERT INTO TBL_COMPANY (COMPANY_NAME, COMPANY_TYPE, HR_NUMBER, FK_CONTACT_ID) VALUES ( '***', '***', null, 10 );
+
+
+-- ---------------------------------------------
+-- TABLE TBL_CONTACT_PERSON
+-- ---------------------------------------------
+CREATE SEQUENCE TBL_CONTACT_PERSON_ID_SEQ
+  INCREMENT BY 1;
+
+
+CREATE TABLE TBL_CONTACT_PERSON
+(
+  "ID" INTEGER NOT NULL,
+  "FIRST_NAME" VARCHAR2(255),
+  "LAST_NAME" VARCHAR2(255),
+  "TITLE" VARCHAR2(255),
+  "FK_SALUTATION_ID" INTEGER,
+  "FK_REF_PERSON_TYPE_ID" INTEGER NULL,
+  "FK_CONTACT_ID" INTEGER NOT NULL,
+  "FK_COMPANY_ID" INTEGER NOT NULL,
+  CONSTRAINT TBL_CONTACT_PERSON_PKEY PRIMARY KEY (ID),
+  CONSTRAINT TBL_CP__CONTACT_ID_FKEY FOREIGN KEY (FK_CONTACT_ID)
+      REFERENCES TBL_CONTACT (ID),
+  CONSTRAINT TBL_CP__PERSON_TYPE_ID_FKEY FOREIGN KEY (FK_REF_PERSON_TYPE_ID)
+      REFERENCES REF_PERSON_TYPE (ID),
+  CONSTRAINT TBL_CP__SALUTATION_ID_FKEY FOREIGN KEY (FK_SALUTATION_ID)
+           REFERENCES REF_SALUTATION (ID),
+  CONSTRAINT TBL_CP__COMPANY_ID_FKEY FOREIGN KEY (FK_COMPANY_ID)
+       REFERENCES TBL_COMPANY (ID)
+);
+
+CREATE OR REPLACE TRIGGER "TBL_CONTACT_PERSON_BIR"
+BEFORE INSERT ON TBL_CONTACT_PERSON
+FOR EACH ROW
+ WHEN (NEW."ID" IS NULL) BEGIN
+  SELECT TBL_CONTACT_PERSON_ID_SEQ.NEXTVAL
+  INTO   :NEW."ID"
+  FROM   DUAL;
+END;
+/
+ALTER TRIGGER "TBL_CONTACT_PERSON_BIR" ENABLE;
+
+
+INSERT INTO TBL_CONTACT_PERSON (FIRST_NAME, LAST_NAME, TITLE, FK_SALUTATION_ID, FK_REF_PERSON_TYPE_ID, FK_CONTACT_ID, FK_COMPANY_ID) VALUES ( 'Tabea', 'Reinebold', 'Dr.', 2, 1, 3, 2);
+INSERT INTO TBL_CONTACT_PERSON (FIRST_NAME, LAST_NAME, TITLE, FK_SALUTATION_ID, FK_REF_PERSON_TYPE_ID, FK_CONTACT_ID, FK_COMPANY_ID) VALUES ( 'Jan', 'Wacker', '', 1, 1, 4, 2);
+INSERT INTO TBL_CONTACT_PERSON (FIRST_NAME, LAST_NAME, TITLE, FK_SALUTATION_ID, FK_REF_PERSON_TYPE_ID, FK_CONTACT_ID, FK_COMPANY_ID) VALUES ( '***', '***', null, null, null, 11, 3);
+INSERT INTO TBL_CONTACT_PERSON (FIRST_NAME, LAST_NAME, TITLE, FK_SALUTATION_ID, FK_REF_PERSON_TYPE_ID, FK_CONTACT_ID, FK_COMPANY_ID) VALUES ( '***', '***', null, null, null, 12, 2);
+
+-- ---------------------------------------------
+-- TABLE TBL_EXTERNAL_PERSON
+-- ---------------------------------------------
+CREATE SEQUENCE TBL_EXTERNAL_PERSON_ID_SEQ
+  INCREMENT BY 1;
+
+
+CREATE TABLE TBL_EXTERNAL_PERSON
+(
+  "ID" INTEGER NOT NULL,
+  "FIRST_NAME" VARCHAR2(255),
+  "LAST_NAME" VARCHAR2(255),
+  "TITLE" VARCHAR2(255),
+  "FK_SALUTATION_ID" INTEGER,
+  "FK_REF_PERSON_TYPE_ID" INTEGER,
+  "FK_CONTACT_ID" INTEGER NOT NULL,
+  CONSTRAINT TBL_EXTERNAL_PERSON_PKEY PRIMARY KEY (id),
+  CONSTRAINT TBL_EP__CONTACT_ID_FKEY FOREIGN KEY (FK_CONTACT_ID)
+       REFERENCES TBL_CONTACT (ID),
+  CONSTRAINT TBL_EP__SALUTATION_ID_FKEY FOREIGN KEY (FK_SALUTATION_ID)
+         REFERENCES REF_SALUTATION (ID),
+  CONSTRAINT TBL_EP__PERSON_TYPE_ID_FKEY FOREIGN KEY (FK_REF_PERSON_TYPE_ID)
+           REFERENCES REF_PERSON_TYPE (ID)
+);
+
+CREATE OR REPLACE TRIGGER "TBL_EXTERNAL_PERSON_BIR"
+BEFORE INSERT ON TBL_EXTERNAL_PERSON
+FOR EACH ROW
+ WHEN (NEW."ID" IS NULL) BEGIN
+  SELECT TBL_EXTERNAL_PERSON_ID_SEQ.NEXTVAL
+  INTO   :NEW."ID"
+  FROM   DUAL;
+END;
+/
+ALTER TRIGGER "TBL_EXTERNAL_PERSON_BIR" ENABLE;
+
+
+INSERT INTO TBL_EXTERNAL_PERSON (FIRST_NAME, LAST_NAME, TITLE, FK_SALUTATION_ID, FK_REF_PERSON_TYPE_ID, FK_CONTACT_ID) VALUES ( 'Monica', 'Grübel', 'Dipl.-Sportlehrerin', 2, 1, 7);
+INSERT INTO TBL_EXTERNAL_PERSON (FIRST_NAME, LAST_NAME, TITLE, FK_SALUTATION_ID, FK_REF_PERSON_TYPE_ID, FK_CONTACT_ID) VALUES ( 'Maurice', 'Fürstenberg', 'B.A.', 2, 2, 8);
+
+
+-- ---------------------------------------------
+-- TABLE TBL_INTERNAL_PERSON
+-- ---------------------------------------------
+CREATE SEQUENCE TBL_INTERNAL_PERSON_ID_SEQ
+  INCREMENT BY 1;
+
+CREATE TABLE TBL_INTERNAL_PERSON
+(
+   "ID" INTEGER NOT NULL,
+   "FIRST_NAME" VARCHAR2(255),
+   "LAST_NAME" VARCHAR2(255),
+   "TITLE" VARCHAR2(255),
+   "FK_SALUTATION_ID" INTEGER,
+   "FK_REF_PERSON_TYPE_ID" INTEGER,
+   "DEPARTMENT" VARCHAR2(255),
+   "UID_IDENT" VARCHAR2(255),
+   "USER_REF" VARCHAR2(255),
+   "FK_CONTACT_ID" INTEGER NOT NULL,
+   CONSTRAINT TBL_INTERNAL_PERSON_PKEY PRIMARY KEY (ID),
+   CONSTRAINT TBL_IP__CONTACT_ID_FKEY FOREIGN KEY (FK_CONTACT_ID)
+      REFERENCES TBL_CONTACT (ID),
+   CONSTRAINT TBL_IP__SALUTATION_ID_FKEY FOREIGN KEY (FK_SALUTATION_ID)
+         REFERENCES REF_SALUTATION (ID),
+   CONSTRAINT TBL_IP__PERSON_TYPE_ID_FKEY FOREIGN KEY (FK_REF_PERSON_TYPE_ID)
+         REFERENCES REF_PERSON_TYPE (ID)
+);
+
+CREATE OR REPLACE TRIGGER "TBL_INTERNAL_PERSON_BIR"
+BEFORE INSERT ON TBL_INTERNAL_PERSON
+FOR EACH ROW
+ WHEN (NEW."ID" IS NULL) BEGIN
+  SELECT TBL_INTERNAL_PERSON_ID_SEQ.NEXTVAL
+  INTO   :NEW."ID"
+  FROM   DUAL;
+END;
+/
+ALTER TRIGGER "TBL_INTERNAL_PERSON_BIR" ENABLE;
+
+
+CREATE UNIQUE INDEX idx_tbl_internal_person_uid ON TBL_INTERNAL_PERSON ( "UID_IDENT" ASC );
+CREATE UNIQUE INDEX idx_tbl_ip_user_ref ON TBL_INTERNAL_PERSON ( "USER_REF" ASC );
+
+INSERT INTO TBL_INTERNAL_PERSON ("FIRST_NAME", "LAST_NAME", "TITLE", "FK_SALUTATION_ID", "FK_REF_PERSON_TYPE_ID", "DEPARTMENT", "UID_IDENT", "USER_REF", "FK_CONTACT_ID") VALUES ( 'Pauline', 'Freudenberg', 'B.Sc.', 1, 1,'Abteilung Rechnungsstellung', '66cd78c3-6716-4ab3-b834-a199fc796b88', 'PFREUD',  5);
+INSERT INTO TBL_INTERNAL_PERSON ("FIRST_NAME", "LAST_NAME", "TITLE", "FK_SALUTATION_ID", "FK_REF_PERSON_TYPE_ID", "DEPARTMENT", "UID_IDENT", "USER_REF", "FK_CONTACT_ID") VALUES ( 'Bernhardt', 'Iffland', '', 2, 2,'Kreativ', '4124e4e7-3488-4492-bf39-75e6a23a1c1a', 'BIFFL', 6);
+INSERT INTO TBL_INTERNAL_PERSON ("FIRST_NAME", "LAST_NAME", "TITLE", "FK_SALUTATION_ID", "FK_REF_PERSON_TYPE_ID", "DEPARTMENT", "UID_IDENT", "USER_REF", "FK_CONTACT_ID") VALUES ( 'Horatio', 'Hornblower', 'Capt.', 1, 2,'Royal Navy', 'hhornblo', 'HORNB', 13);
+INSERT INTO TBL_INTERNAL_PERSON ("FIRST_NAME", "LAST_NAME", "TITLE", "FK_SALUTATION_ID", "FK_REF_PERSON_TYPE_ID", "DEPARTMENT", "UID_IDENT", "USER_REF", "FK_CONTACT_ID") VALUES ( 'Cornelius', 'Buckley', '', 1, 2,'Royal Navy', null, 'BUCKC', 14);
+-- ---------------------------------------------
+-- TABLE TBL_ASSIGNMENT_MODUL_CONTACT
+-- ---------------------------------------------
+CREATE SEQUENCE TBL_ASSIGN_MODUL_CNTCT_ID_SEQ
+  INCREMENT BY 1;
+
+
+CREATE TABLE TBL_ASSIGNMENT_MODUL_CONTACT
+(
+  "ID" INTEGER NOT NULL,
+  "UUID" RAW(16) NOT NULL,
+  "FK_CONTACT_ID" INTEGER NOT NULL,
+  "MODUL_NAME" VARCHAR2(255),
+  "ASSIGNMENT_DATE" timestamp,
+  "EXPIRING_DATE" timestamp,
+  "DELETION_LOCK_UNTIL" timestamp,
+  "ASSIGNMENT_NOTE" VARCHAR2(2048),
+  CONSTRAINT TBL_ASS_MOD_CONTACT_PKEY PRIMARY KEY (id),
+  CONSTRAINT TBL_ASS_MOD_CONTACT_ID_FKEY FOREIGN KEY (fk_contact_id)
+      REFERENCES TBL_CONTACT (ID)
+);
+
+CREATE OR REPLACE TRIGGER "TBL_ASSIGN_MODUL_CNTCT_BIR"
+BEFORE INSERT ON TBL_ASSIGNMENT_MODUL_CONTACT
+FOR EACH ROW
+ WHEN (NEW."ID" IS NULL) BEGIN
+  SELECT TBL_ASSIGN_MODUL_CNTCT_ID_SEQ.NEXTVAL
+  INTO   :NEW."ID"
+  FROM   DUAL;
+END;
+/
+ALTER TRIGGER "TBL_ASSIGN_MODUL_CNTCT_BIR" ENABLE;
+
+
+INSERT INTO tbl_assignment_modul_contact(uuid, fk_contact_id, modul_name, assignment_date, expiring_date, deletion_lock_until, assignment_note) VALUES ( hextoraw(replace('dfc2979c-40e3-11ea-b77f-2e728ce88125','-','')), 1, 'Betriebstagebuch', CURRENT_TIMESTAMP, null, null, 'seit Januar zugeordnet');
+INSERT INTO tbl_assignment_modul_contact(uuid, fk_contact_id, modul_name, assignment_date, expiring_date, deletion_lock_until, assignment_note) VALUES ( hextoraw(replace('4009bce2-40e5-11ea-b77f-2e728ce88125','-','')), 1, 'Störinfos', CURRENT_TIMESTAMP, null, null, 'seit Februar zugeordnet');
+
+-- -------------------------------------
+-- VIEWS -------------------------------
+-- -------------------------------------
+CREATE VIEW VW_GENERAL_CONTACT
+AS
+SELECT g.id,
+	c.uuid,
+	g.name,
+	c.contact_type,
+	g.fk_contact_id,
+	g.company_name,
+	g.company_type,
+	g.company_id,
+	g.fk_salutation_id,
+	g.fk_ref_person_type_id,
+	g.title,
+	g.first_name,
+	g.last_name,
+	g.department,
+	c.note,
+	c.anonymized
+FROM tbl_contact c
+JOIN (
+
+SELECT company.id,
+	company_name as name,
+	fk_contact_id,
+	company_name,
+	company_type,
+	cntct.uuid as company_id,
+	null as fk_salutation_id,
+	null as fk_ref_person_type_id,
+	null as title,
+	null as first_name,
+	null as last_name,
+	null as department
+FROM tbl_company company
+JOIN tbl_contact cntct ON company.fk_contact_id = cntct.id
+
+UNION
+
+SELECT p.id,
+	COALESCE(p.last_name, '')
+	|| CASE WHEN LENGTH(COALESCE(p.last_name, '')) > 0 AND LENGTH(COALESCE(p.first_name, '')) > 0 THEN ', ' ELSE '' END
+	|| COALESCE(p.first_name,'') || ' [' || COALESCE(c.company_name, '') || ']' as name,
+	p.fk_contact_id,
+	c.company_name,
+	c.company_type,
+	company_contact.uuid as company_id,
+	p.fk_salutation_id,
+	p.fk_ref_person_type_id,
+	p.title,
+	p.first_name,
+	p.last_name,
+	null as department
+FROM tbl_contact_person p
+JOIN tbl_company c ON c.id = p.fk_company_id
+JOIN tbl_contact company_contact ON c.fk_contact_id = company_contact.id
+
+UNION
+
+SELECT id,
+	COALESCE(last_name, '')
+	|| CASE WHEN LENGTH(COALESCE(last_name, '')) > 0 AND LENGTH(COALESCE(first_name, '')) > 0 THEN ', ' ELSE '' END
+	|| COALESCE(first_name, '') as name,
+	fk_contact_id,
+	null as company_name,
+	null as company_type,
+	null as company_id,
+	fk_salutation_id,
+	fk_ref_person_type_id,
+	title,
+	first_name,
+	last_name,
+	department
+FROM tbl_internal_person
+
+UNION
+
+SELECT id,
+	COALESCE(last_name, '')
+	|| CASE WHEN LENGTH(COALESCE(last_name, '')) > 0 AND LENGTH(COALESCE(first_name, '')) > 0 THEN ', ' ELSE '' END
+	|| COALESCE(first_name, '') as name,
+	fk_contact_id,
+	null as company_name,
+	null as company_type,
+	null as company_id,
+	fk_salutation_id,
+	fk_ref_person_type_id,
+	title,
+	first_name,
+	last_name,
+	null as department
+FROM tbl_external_person
+	) g
+ON g.fk_contact_id = c.ID;
+
+
+
+CREATE VIEW VW_DETAILED_CONTACT
+AS
+SELECT c.id,
+    c.uuid,
+	c.name,
+	c.contact_type,
+	c.fk_contact_id,
+	c.company_name,
+	c.company_type,
+	c.company_id,
+	c.anonymized,
+	s.uuid as salutation_uuid,
+	t.uuid as person_type_uuid,
+	c.title,
+	c.first_name,
+	c.last_name,
+	c.department,
+	c.note,
+	s.type as salutation_type,
+	t.type as person_type,
+	COALESCE(a.community, '') ||
+	        CASE WHEN LENGTH(COALESCE(a.street, '') || COALESCE(a.housenumber, '')) = 0 THEN '' ELSE ', ' END ||
+	        COALESCE(a.street, '') ||
+	        CASE WHEN LENGTH(COALESCE(a.housenumber, '')) = 0 THEN '' ELSE ' ' END ||
+	        COALESCE(a.housenumber, '') as main_address,
+	com.communication_data as email,
+
+	UPPER(
+        COALESCE(c.name, '') || '|@|'
+        || COALESCE(company_name, '') || '|@|'
+        || COALESCE(c.company_type, '') || '|@|'
+        || COALESCE(c.title, '') || '|@|'
+        || COALESCE(c.first_name, '') || '|@|'
+        || COALESCE(c.last_name, '') || '|@|'
+        || COALESCE(c.department, '') || '|@|'
+        || COALESCE(c.note, '') || '|@|'
+        || COALESCE(s.type, '') || '|@|'
+        || COALESCE(t.type, '') || '|@|'
+        || COALESCE(a.street, '') || '|@|'
+        || COALESCE(a.housenumber, '') || '|@|'
+        || COALESCE(a.community, '') || '|@|'
+        || COALESCE(com.communication_data, '')
+    )as searchfield
+FROM VW_GENERAL_CONTACT c
+LEFT OUTER JOIN ref_salutation s ON c.fk_salutation_id = s.id
+LEFT OUTER JOIN tbl_address a ON a.fk_contact_id = c.fk_contact_id and is_main_address = 1
+LEFT OUTER JOIN ref_person_type t ON c.fk_ref_person_type_id = t.id
+LEFT OUTER JOIN tbl_communication com ON (com.fk_contact_id = c.fk_contact_id )
+LEFT OUTER JOIN ref_communication_type rct ON (rct.id = com.fk_communication_type)
+WHERE COALESCE( rct.type_email, 1) = 1;
+
+
+
+
+
diff --git a/pom.xml b/pom.xml
index c4c715c..6b9eba3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -110,6 +110,21 @@
 			<scope>runtime</scope>
 		</dependency>
 		<dependency>
+			<groupId>com.oracle.database.jdbc</groupId>
+			<artifactId>ojdbc8</artifactId>
+			<version>19.6.0.0</version>
+		</dependency>
+		<dependency>
+			<groupId>com.oracle.database.jdbc</groupId>
+			<artifactId>ucp</artifactId>
+			<version>19.6.0.0</version>
+		</dependency>
+		<dependency>
+			<groupId>org.hibernate</groupId>
+			<artifactId>hibernate-core</artifactId>
+			<version>5.4.2.Final</version>
+		</dependency>
+		<dependency>
 			<groupId>org.projectlombok</groupId>
 			<artifactId>lombok</artifactId>
 			<version>${lombok.version}</version>
diff --git a/src/main/java/org/eclipse/openk/contactbasedata/config/OracleConfig.java b/src/main/java/org/eclipse/openk/contactbasedata/config/OracleConfig.java
new file mode 100644
index 0000000..9e6a688
--- /dev/null
+++ b/src/main/java/org/eclipse/openk/contactbasedata/config/OracleConfig.java
@@ -0,0 +1,60 @@
+package org.eclipse.openk.contactbasedata.config;
+
+import lombok.SneakyThrows;
+import lombok.extern.log4j.Log4j2;
+import oracle.ucp.jdbc.PoolDataSource;
+import oracle.ucp.jdbc.PoolDataSourceFactory;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+
+import javax.sql.DataSource;
+import java.sql.SQLException;
+
+@Log4j2
+@Configuration
+@ConditionalOnProperty(
+        value="spring.datasource.enable-oracle-configuration",
+        havingValue = "true",
+        matchIfMissing = false)
+public class OracleConfig {
+    @Value("${spring.datasource.url}")
+    private String url;
+    @Value("${spring.datasource.username}")
+    private String username;
+    @Value("${spring.datasource.password}")
+    private String password;
+    @Value("${oracle.ucp.minPoolSize}")
+    private String minPoolSize;
+
+    @Value("${oracle.ucp.maxPoolSize}")
+    private String maxPoolSize;
+
+    @Value("${spring.datasource.driver-class-name:oracle.jdbc.pool.OracleDataSource}")
+    private String driverClassName;
+
+    @SneakyThrows
+    @Bean(name = "OracleUniversalConnectionPool")
+    @Primary
+    public DataSource getDataSource() {
+        PoolDataSource pds = null;
+        try {
+            pds = PoolDataSourceFactory.getPoolDataSource();
+
+            pds.setConnectionFactoryClassName(driverClassName);
+            pds.setURL(url);
+            pds.setUser(username);
+            pds.setPassword(password);
+            pds.setMinPoolSize(Integer.valueOf(minPoolSize));
+            pds.setInitialPoolSize(10);
+            pds.setMaxPoolSize(Integer.valueOf(maxPoolSize));
+
+        } catch (SQLException ea) {
+            log.error("Error connecting to the database: " + ea.getMessage());
+        }
+
+        return pds;
+    }
+}
\ No newline at end of file
diff --git a/src/main/java/org/eclipse/openk/contactbasedata/mapper/InternalPersonMapper.java b/src/main/java/org/eclipse/openk/contactbasedata/mapper/InternalPersonMapper.java
index 8d57feb..46a3847 100644
--- a/src/main/java/org/eclipse/openk/contactbasedata/mapper/InternalPersonMapper.java
+++ b/src/main/java/org/eclipse/openk/contactbasedata/mapper/InternalPersonMapper.java
@@ -33,7 +33,8 @@
             @Mapping( source="refPersonType.uuid", target="personTypeUuid"),
             @Mapping( source="refPersonType.type", target="personType"),
             @Mapping( source="salutation.uuid", target="salutationUuid"),
-            @Mapping( source="salutation.type", target="salutationType")
+            @Mapping( source="salutation.type", target="salutationType"),
+            @Mapping( source="uidIdent", target="uid")
     })
     InternalPersonDto toInternalPersonDto(TblInternalPerson tblInternalPerson);
 
@@ -45,7 +46,8 @@
             @Mapping( source="personTypeUuid", target="refPersonType.uuid"),
             @Mapping( source="personType", target="refPersonType.type"),
             @Mapping( source="salutationUuid", target="salutation.uuid"),
-            @Mapping( source="salutationType", target="salutation.type")
+            @Mapping( source="salutationType", target="salutation.type"),
+            @Mapping( source="uid", target="uidIdent")
     })
     TblInternalPerson toTblInternalPerson(InternalPersonDto internalPersonDto);
 }
\ No newline at end of file
diff --git a/src/main/java/org/eclipse/openk/contactbasedata/model/TblAssignmentModulContact.java b/src/main/java/org/eclipse/openk/contactbasedata/model/TblAssignmentModulContact.java
index 472dfdd..bd81f8e 100644
--- a/src/main/java/org/eclipse/openk/contactbasedata/model/TblAssignmentModulContact.java
+++ b/src/main/java/org/eclipse/openk/contactbasedata/model/TblAssignmentModulContact.java
@@ -16,7 +16,14 @@
 
 import lombok.Data;
 
-import javax.persistence.*;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.SequenceGenerator;
 import java.util.Date;
 import java.util.UUID;
 
@@ -25,8 +32,8 @@
 public class TblAssignmentModulContact {
 
     @Id
-    @GeneratedValue(strategy = GenerationType.SEQUENCE,  generator = "tbl_assignment_modul_contact_id_seq")
-    @SequenceGenerator(name = "tbl_assignment_modul_contact_id_seq", sequenceName = "tbl_assignment_modul_contact_id_seq", allocationSize = 1)
+    @GeneratedValue(strategy = GenerationType.SEQUENCE,  generator = "TBL_ASSIGN_MODUL_CNTCT_ID_SEQ")
+    @SequenceGenerator(name = "TBL_ASSIGN_MODUL_CNTCT_ID_SEQ", sequenceName = "TBL_ASSIGN_MODUL_CNTCT_ID_SEQ", allocationSize = 1)
     @Column(name = "id", updatable = false)
     private Long id;
     private UUID uuid;
diff --git a/src/main/java/org/eclipse/openk/contactbasedata/model/TblInternalPerson.java b/src/main/java/org/eclipse/openk/contactbasedata/model/TblInternalPerson.java
index 70727bb..7423ae2 100644
--- a/src/main/java/org/eclipse/openk/contactbasedata/model/TblInternalPerson.java
+++ b/src/main/java/org/eclipse/openk/contactbasedata/model/TblInternalPerson.java
@@ -16,7 +16,15 @@
 
 import lombok.Data;
 
-import javax.persistence.*;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.OneToOne;
+import javax.persistence.SequenceGenerator;
 
 @Data
 @Entity
@@ -31,7 +39,7 @@
     private String lastName;
     private String title;
     private String department;
-    private String uid;
+    private String uidIdent;
     private String userRef;
 
 
diff --git a/src/main/java/org/eclipse/openk/contactbasedata/repository/InternalPersonRepository.java b/src/main/java/org/eclipse/openk/contactbasedata/repository/InternalPersonRepository.java
index b29aa5e..495604c 100644
--- a/src/main/java/org/eclipse/openk/contactbasedata/repository/InternalPersonRepository.java
+++ b/src/main/java/org/eclipse/openk/contactbasedata/repository/InternalPersonRepository.java
@@ -30,7 +30,7 @@
     Optional< TblInternalPerson > findByTblContactUuid(final UUID contactUuid);
 
     @Query( "select ip from TblInternalPerson ip where "+
-            "(COALESCE(:uid) is null or COALESCE(:uid) is not null AND ip.uid=:uid) AND " +
+            "(COALESCE(:uid) is null or COALESCE(:uid) is not null AND ip.uidIdent=:uid) AND " +
             "(COALESCE(:userRef) is null or COALESCE(:userRef) is not null AND ip.userRef=:userRef)")
     Page<TblInternalPerson> findByFilter(@Param( "uid") String uid,
                                          @Param( "userRef") String userRef,
@@ -38,7 +38,7 @@
 
     Page<TblInternalPerson> findByContact_anonymizedFalseOrContact_anonymizedIsNull(Pageable pageable); // NOSONAR fd 07.02.2020: Method name cannot be changed
 
-    List<TblInternalPerson> findByUidNotNull();
+    List<TblInternalPerson> findByUidIdentNotNull();
 
     List<TblInternalPerson> findByUserRefNotNull();
 }
diff --git a/src/main/java/org/eclipse/openk/contactbasedata/service/InternalPersonService.java b/src/main/java/org/eclipse/openk/contactbasedata/service/InternalPersonService.java
index 6cf8c54..0bf4e5f 100644
--- a/src/main/java/org/eclipse/openk/contactbasedata/service/InternalPersonService.java
+++ b/src/main/java/org/eclipse/openk/contactbasedata/service/InternalPersonService.java
@@ -107,7 +107,7 @@
         existingInternalPerson.setFirstName(internalPersonDto.getFirstName());
         existingInternalPerson.setTitle(internalPersonDto.getTitle());
         existingInternalPerson.setDepartment(internalPersonDto.getDepartment());
-        existingInternalPerson.setUid(internalPersonDto.getUid());
+        existingInternalPerson.setUidIdent(internalPersonDto.getUid());
         existingInternalPerson.setUserRef(internalPersonDto.getUserRef());
 
         setFromInternalPersonDto( existingInternalPerson, internalPersonDto );
diff --git a/src/main/java/org/eclipse/openk/contactbasedata/service/LdapService.java b/src/main/java/org/eclipse/openk/contactbasedata/service/LdapService.java
index 7aa035f..eb91580 100644
--- a/src/main/java/org/eclipse/openk/contactbasedata/service/LdapService.java
+++ b/src/main/java/org/eclipse/openk/contactbasedata/service/LdapService.java
@@ -2,7 +2,6 @@
 
 import lombok.extern.log4j.Log4j2;
 import org.apache.commons.lang.StringUtils;
-import org.eclipse.openk.contactbasedata.exceptions.NotFoundException;
 import org.eclipse.openk.contactbasedata.model.RefCommunicationType;
 import org.eclipse.openk.contactbasedata.model.TblCommunication;
 import org.eclipse.openk.contactbasedata.model.TblInternalPerson;
@@ -17,7 +16,12 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.*;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Optional;
+import java.util.UUID;
 import java.util.function.Function;
 import java.util.stream.Collectors;
 
@@ -75,10 +79,10 @@
 
     @Transactional
     public void synchronizeLDAP() {
-        List<TblInternalPerson> internalPersonList = internalPersonRepository.findByUidNotNull();
+        List<TblInternalPerson> internalPersonList = internalPersonRepository.findByUidIdentNotNull();
 
         Map<String, TblInternalPerson> uidToInternalPersonMap = internalPersonList.stream().collect(
-                Collectors.toMap(TblInternalPerson::getUid, Function.identity()));
+                Collectors.toMap(TblInternalPerson::getUidIdent, Function.identity()));
 
         List<LdapUser> allFoundLdapUsers = new ArrayList<>();
         List<TblInternalPerson> allNotExistingLdapUsers = new ArrayList<>();
@@ -119,7 +123,7 @@
 
     private void findExistingAndNotExistingLdapUsers(List<TblInternalPerson> internalPersonList, List<LdapUser> allFoundLdapUsers, List<TblInternalPerson> allNotExistingLdapUsers) {
         for (TblInternalPerson tblInternalPerson : internalPersonList) {
-            String uidTblInternalPerson = tblInternalPerson.getUid();
+            String uidTblInternalPerson = tblInternalPerson.getUidIdent();
             List<LdapUser> ldapUserByUIDResult = getLdapUserByUID(uidTblInternalPerson);
 
             if(ldapUserByUIDResult.isEmpty()){
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index ed49424..3b6dd93 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -12,9 +12,21 @@
 #  *******************************************************************************
 spring:
   datasource:
+## -> Postgres Configuration
     url: jdbc:postgresql://entopticadirx:5432/ContactBaseDataDevServer
     username: cbd_service
     password: cbd_service
+## -> END: Postgres Configuration
+
+## -> Oracle Configuration
+#    enable-oracle-configuration: true
+#    url: jdbc:oracle:thin:@LIDLORADB2.PTA.DE:1521:NAPDB00
+#    username: dietricf
+#    password: dietricf000
+#  jpa:
+#    database-platform: org.hibernate.dialect.Oracle10gDialect
+#    show-sql: false
+## -> END: Oracle Configuration 1
   flyway:
     enabled: false
   ldap:
@@ -24,6 +36,13 @@
     port: 10389
     urls: ldap://entopkon:10389
 
+# oracle config --------------
+oracle:
+  ucp:
+    minPoolSize: 2
+    maxPoolSize: 10
+# -----------------------------
+
 ldap-sync:
   attribute-mapping:
     uid: uid
@@ -83,13 +102,16 @@
   profiles: test
 
   datasource:
+    enable-oracle-configuration: false
     url: jdbc:h2:mem:test;DB_CLOSE_DELAY=-1
-jpa:
-  hibernate:
-    ddl-auto: create
-  show-sql: true
-flyway:
-  enabled: false
+  jpa:
+    database-platform:
+    hibernate:
+   #   ddl-auto: create
+    show-sql: false
+
+  flyway:
+    enabled: false
 
 ldap-sync:
   scheduling:
@@ -194,6 +216,7 @@
 spring:
   profiles: qserver
   datasource:
+    enable-oracle-configuration: false
     url: jdbc:postgresql://localhost:5432/contactBaseDataQa
     username: cbd_service
     password: cbd_service
diff --git a/src/main/resources/db/migration/V0_23__CREATE_CBD_DB.sql b/src/main/resources/db/migration/V0_23__CREATE_CBD_DB.sql
new file mode 100644
index 0000000..2b5d3f9
--- /dev/null
+++ b/src/main/resources/db/migration/V0_23__CREATE_CBD_DB.sql
@@ -0,0 +1,711 @@
+-----------------------------------------------------------------------------------
+-- *******************************************************************************
+-- * 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 CBD_SERVICE LOGIN
+-- NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
+-- ALTER ROLE CBD_SERVICE with password 'cbd_service';
+-- Insert new Columns into table REF_COMMUNICATION_TYPE ('EDITABLE, 'MAPPING_LDAP')
+
+-- ---------------------------------------------
+-- DROPS
+-- ---------------------------------------------
+DROP TABLE IF EXISTS public.VERSION CASCADE;
+
+DROP TABLE IF EXISTS public.TBL_ADDRESS CASCADE;
+DROP SEQUENCE IF EXISTS public.TBL_ADDRESS_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_COMMUNICATION CASCADE;
+DROP SEQUENCE IF EXISTS public.TBL_COMMUNICATION_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_CONTACT_PERSON CASCADE;
+DROP SEQUENCE IF EXISTS public.TBL_CONTACT_PERSON_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_COMPANY CASCADE;
+DROP SEQUENCE IF EXISTS public.TBL_COMPANY_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_EXTERNAL_PERSON CASCADE;
+DROP SEQUENCE IF EXISTS public.TBL_EXTERNAL_PERSON_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_INTERNAL_PERSON CASCADE;
+DROP SEQUENCE IF EXISTS public.TBL_INTERNAL_PERSON_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_CONTACT CASCADE;
+DROP SEQUENCE IF EXISTS public.TBL_CONTACT_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_ADDRESS_TYPE CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_ADDRESS_TYPE_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_PERSON_TYPE CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_PERSON_TYPE_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_COMMUNICATION_TYPE CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_COMMUNICATION_TYPE_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_SALUTATION CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_SALUTATION_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_ASSIGNMENT_MODUL_CONTACT CASCADE;
+DROP SEQUENCE IF EXISTS public.TBL_ASSIGNMENT_MODUL_CONTACT_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 CBD_SERVICE;
+GRANT ALL ON TABLE public.VERSION TO CBD_SERVICE;
+
+INSERT INTO public.VERSION (ID, VERSION) VALUES ( 1, '00-DEV' );
+
+
+-- ---------------------------------------------
+-- TABLE TBL_CONTACT
+-- ---------------------------------------------
+CREATE SEQUENCE public.tbl_contact_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_contact_id_seq
+  OWNER TO CBD_SERVICE;
+
+CREATE TABLE public.TBL_CONTACT
+(
+  ID bigint NOT NULL DEFAULT nextval('tbl_contact_id_seq'::regclass),
+  UUID uuid NOT NULL,
+  CONTACT_TYPE character varying(3),
+  NOTE character varying(255),
+  ANONYMIZED boolean,
+  CONSTRAINT TBL_CONTACT_PKEY PRIMARY KEY (ID)
+);
+
+
+
+ALTER TABLE public.TBL_CONTACT
+  OWNER TO CBD_SERVICE;
+GRANT ALL ON TABLE public.TBL_CONTACT TO CBD_SERVICE;
+
+INSERT INTO public.TBL_CONTACT (UUID, CONTACT_TYPE, NOTE, ANONYMIZED) VALUES ( 'ae3f2ec1-ccc5-4269-a48f-dd40e37fa14e', '4CO', 'company 1 (id=1)', null );
+INSERT INTO public.TBL_CONTACT (UUID, CONTACT_TYPE, NOTE, ANONYMIZED) VALUES ( 'fc7f598b-0d51-46bb-9563-99851fe6a3ad', '4CO', 'company 2 (id=2)', null );
+INSERT INTO public.TBL_CONTACT (UUID, CONTACT_TYPE, NOTE, ANONYMIZED) VALUES ( '556b91be-6d57-432f-93ed-65604dd6e5cd', '1CP', 'contact person 1 (id=3)', null );
+INSERT INTO public.TBL_CONTACT (UUID, CONTACT_TYPE, NOTE, ANONYMIZED) VALUES ( '116380e3-25c5-4179-b40a-8abebe10fe07', '1CP', 'contact person 2 (id=4)', null );
+INSERT INTO public.TBL_CONTACT (UUID, CONTACT_TYPE, NOTE, ANONYMIZED) VALUES ( '7782179b-fb79-4370-8f71-f4c71470d006', '3IP', 'internal person 1 (id=5)', null );
+INSERT INTO public.TBL_CONTACT (UUID, CONTACT_TYPE, NOTE, ANONYMIZED) VALUES ( '8963aa38-d021-4dc9-bd70-d3734ccd20c4', '3IP', 'internal person 2 (id=6)', null );
+INSERT INTO public.TBL_CONTACT (UUID, CONTACT_TYPE, NOTE, ANONYMIZED) VALUES ( 'c862d604-5766-43d6-a7e8-a4bac2bd01e1', '2EP', 'external person 1 (id=7)', null );
+INSERT INTO public.TBL_CONTACT (UUID, CONTACT_TYPE, NOTE, ANONYMIZED) VALUES ( 'fa3d981b-a7d6-4965-a623-cdbc69404153', '2EP', 'external person 2 (id=8)', null );
+INSERT INTO public.TBL_CONTACT (UUID, CONTACT_TYPE, NOTE, ANONYMIZED) VALUES ( 'ceba21e9-e685-483b-840e-ad167860a696', '4CO', 'anonymous company A (id=9)', true );
+INSERT INTO public.TBL_CONTACT (UUID, CONTACT_TYPE, NOTE, ANONYMIZED) VALUES ( '7889c814-9752-4e4e-a9fe-b46f36a38ccd', '4CO', 'anonymous company B (id=10)', true );
+INSERT INTO public.TBL_CONTACT (UUID, CONTACT_TYPE, NOTE, ANONYMIZED) VALUES ( '618a01a3-f348-44cc-9ddd-c9df946b0212', '1CP', 'anoymous contact person A1 (id=11)', true );
+INSERT INTO public.TBL_CONTACT (UUID, CONTACT_TYPE, NOTE, ANONYMIZED) VALUES ( '4ed82474-3878-457a-baef-c28b8e486f25', '1CP', 'anoymous contact persion A2 (id=12)', true );
+INSERT INTO public.TBL_CONTACT (UUID, CONTACT_TYPE, NOTE, ANONYMIZED) VALUES ( '8fe41b90-d10c-4a70-8fde-0990286ad3c6', '3IP', 'internal person 3 (id=13)', null );
+INSERT INTO public.TBL_CONTACT (UUID, CONTACT_TYPE, NOTE, ANONYMIZED) VALUES ( 'ab804610-d6a4-4803-a4a1-3f6cb742b2a4', '3IP', 'internal person 4 (id=14)', null );
+
+
+CREATE UNIQUE INDEX idx_tbl_contact_contact_type ON public.TBL_CONTACT  ( ID ASC );
+CREATE UNIQUE INDEX idx_cntct_uuid ON public.TBL_CONTACT (UUID);
+CREATE INDEX idx_cntct_anonym ON public.TBL_CONTACT (ANONYMIZED);
+
+
+-- ---------------------------------------------
+-- TABLE REF_ADDRESS_TYPE
+-- ---------------------------------------------
+CREATE SEQUENCE public.ref_address_type_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.ref_address_type_id_seq
+  OWNER TO CBD_SERVICE;
+
+CREATE TABLE public.REF_ADDRESS_TYPE
+(
+  ID bigint NOT NULL DEFAULT nextval('ref_address_type_id_seq'::regclass),
+  UUID uuid NOT NULL,
+  TYPE character varying(30),
+  DESCRIPTION character varying(255),
+  CONSTRAINT REF_ADDRESS_TYPE_PKEY PRIMARY KEY (ID)
+);
+
+ALTER TABLE public.REF_ADDRESS_TYPE
+  OWNER TO CBD_SERVICE;
+GRANT ALL ON TABLE public.REF_ADDRESS_TYPE TO CBD_SERVICE;
+
+CREATE UNIQUE INDEX idx_ref_address_type_uuid ON public.REF_ADDRESS_TYPE ( UUID ASC );
+
+INSERT INTO public.REF_ADDRESS_TYPE (UUID, TYPE, DESCRIPTION) VALUES ( '3802e681-9396-434e-b19c-5fedcec40ba7', 'Geschäftsadresse', 'Adresse des Hauptfirmensitzes' );
+INSERT INTO public.REF_ADDRESS_TYPE (UUID, TYPE, DESCRIPTION) VALUES ( 'f43ed6ac-9e7a-40f6-acc9-ec6b73eebf79', 'Privatadresse', 'private Anschrift' );
+INSERT INTO public.REF_ADDRESS_TYPE (UUID, TYPE, DESCRIPTION) VALUES ( '70fd0811-f674-4f3a-96a7-7ae29fc95188', 'Lieferadresse', 'Adresse für Lieferungen' );
+
+
+-- ---------------------------------------------
+-- TABLE REF_PERSON_TYPE
+-- ---------------------------------------------
+CREATE SEQUENCE public.ref_person_type_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.ref_person_type_id_seq
+  OWNER TO CBD_SERVICE;
+
+CREATE TABLE public.REF_PERSON_TYPE
+(
+  ID bigint NOT NULL DEFAULT nextval('ref_person_type_id_seq'::regclass),
+  UUID uuid NOT NULL,
+  TYPE character varying(30),
+  DESCRIPTION character varying(255),
+  CONSTRAINT REF_PERSON_TYPE_PKEY PRIMARY KEY (ID)
+);
+ALTER TABLE public.REF_PERSON_TYPE
+  OWNER TO CBD_SERVICE;
+GRANT ALL ON TABLE public.REF_PERSON_TYPE TO CBD_SERVICE;
+
+CREATE UNIQUE INDEX idx_ref_person_type_uuid ON public.REF_PERSON_TYPE ( UUID ASC );
+
+INSERT INTO public.REF_PERSON_TYPE (UUID, TYPE, DESCRIPTION) VALUES ( '47ce68b7-6d44-453e-b421-19020fd791b5', 'Rechtsanwalt', '' );
+INSERT INTO public.REF_PERSON_TYPE (UUID, TYPE, DESCRIPTION) VALUES ( 'a7522c72-14d0-4e9d-afe3-bfcb3ffbec10', 'Geschäftsführer', '' );
+INSERT INTO public.REF_PERSON_TYPE (UUID, TYPE, DESCRIPTION) VALUES ( '2eb4885e-7363-4918-90ed-b7d5d84cfd3f', 'Rechnungsempfänger', 'Person, der Rechnungen zukommen' );
+
+
+-- ---------------------------------------------
+-- TABLE REF_COMMUNICATION_TYPE
+-- ---------------------------------------------
+CREATE SEQUENCE public.ref_communication_type_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.ref_communication_type_id_seq
+  OWNER TO CBD_SERVICE;
+
+CREATE TABLE public.REF_COMMUNICATION_TYPE
+(
+  ID bigint NOT NULL DEFAULT nextval('ref_communication_type_id_seq'::regclass),
+  UUID uuid NOT NULL,
+  TYPE character varying(30),
+  DESCRIPTION character varying(255),
+  TYPE_EMAIL boolean,
+  CONSTRAINT REF_COMMUNICATION_TYPE_PKEY PRIMARY KEY (ID)
+);
+ALTER TABLE public.REF_COMMUNICATION_TYPE
+  OWNER TO CBD_SERVICE;
+GRANT ALL ON TABLE public.REF_COMMUNICATION_TYPE TO CBD_SERVICE;
+
+CREATE UNIQUE INDEX idx_ref_communication_type_uuid ON public.REF_COMMUNICATION_TYPE ( UUID ASC );
+
+INSERT INTO public.REF_COMMUNICATION_TYPE (UUID, TYPE, DESCRIPTION, TYPE_EMAIL) VALUES ( '4757ca3a-72c2-4f13-a2f6-ce092e3eadf4', 'E-Mail', 'E-Mail Adresse', true );
+INSERT INTO public.REF_COMMUNICATION_TYPE (UUID, TYPE, DESCRIPTION, TYPE_EMAIL) VALUES ( '77028572-ff57-4c1d-999a-78fa3fcbc1cd', 'Festnetz', '', false );
+INSERT INTO public.REF_COMMUNICATION_TYPE (UUID, TYPE, DESCRIPTION, TYPE_EMAIL) VALUES ( 'f7d5b343-00c2-4d7f-8e03-009aad3d90f7', 'Mobil', '', false );
+INSERT INTO public.REF_COMMUNICATION_TYPE (UUID, TYPE, DESCRIPTION, TYPE_EMAIL) VALUES ( '2bfe40f9-c4eb-4d2e-855f-6b0883912846', 'Fax', '', false );
+INSERT INTO public.REF_COMMUNICATION_TYPE (UUID, TYPE, DESCRIPTION, TYPE_EMAIL) VALUES ( 'd00d1a61-c8e7-43b2-959f-66e986731441', 'WhatsApp', '', false );
+
+-- ---------------------------------------------
+-- TABLE REF_SALUTATION
+-- ---------------------------------------------
+CREATE SEQUENCE public.ref_salutation_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.ref_salutation_id_seq
+  OWNER TO CBD_SERVICE;
+
+CREATE TABLE public.REF_SALUTATION
+(
+  ID bigint NOT NULL DEFAULT nextval('ref_salutation_id_seq'::regclass),
+  UUID uuid NOT NULL,
+  TYPE character varying(30),
+  DESCRIPTION character varying(255),
+  CONSTRAINT REF_SALUTATION_PKEY PRIMARY KEY (ID)
+);
+ALTER TABLE public.REF_SALUTATION
+  OWNER TO CBD_SERVICE;
+GRANT ALL ON TABLE public.REF_SALUTATION TO CBD_SERVICE;
+
+CREATE UNIQUE INDEX idx_ref_salutation_uuid ON public.REF_SALUTATION ( UUID ASC );
+
+INSERT INTO public.REF_SALUTATION (UUID, TYPE, DESCRIPTION) VALUES ( '90119f18-5562-425d-9a36-3dd58ea125e5', 'Herr', 'Anrede männlich' );
+INSERT INTO public.REF_SALUTATION (UUID, TYPE, DESCRIPTION) VALUES ( '4e873baa-e4f5-4585-8b16-2db8fac66538', 'Frau', 'Anrede weiblich' );
+
+
+-- ---------------------------------------------
+-- 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 CBD_SERVICE;
+
+CREATE TABLE public.TBL_ADDRESS
+(
+  ID bigint NOT NULL DEFAULT nextval('tbl_address_id_seq'::regclass),
+  UUID uuid NOT NULL,
+  FK_CONTACT_ID bigint NOT NULL,
+  FK_ADDRESS_TYPE bigint,
+  IS_MAIN_ADDRESS boolean,
+  POSTCODE character varying(30),
+  COMMUNITY character varying(255),
+  COMMUNITY_SUFFIX character varying(255),
+  STREET character varying(255),
+  HOUSENUMBER character varying(30),
+  WGS_84_ZONE character varying(255),
+  LATITUDE character varying(255),
+  LONGITUDE character varying(255),
+  URL_MAP character varying(255),
+  NOTE character varying(255),
+
+  CONSTRAINT TBL_ADDRESS_PKEY PRIMARY KEY (ID),
+  CONSTRAINT TBL_ADDRESS__CONTACT_ID_FKEY FOREIGN KEY (FK_CONTACT_ID)
+      REFERENCES public.TBL_CONTACT(ID) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION,
+  CONSTRAINT TBL_ADDRESS__ADDRESS_TYPE_ID_FKEY FOREIGN KEY (FK_ADDRESS_TYPE)
+       REFERENCES public.REF_ADDRESS_TYPE (ID) MATCH SIMPLE
+       ON UPDATE NO ACTION ON DELETE NO ACTION
+);
+ALTER TABLE public.TBL_ADDRESS
+  OWNER TO CBD_SERVICE;
+GRANT ALL ON TABLE public.TBL_ADDRESS TO CBD_SERVICE;
+
+CREATE UNIQUE INDEX idx_tbl_address_uuid ON public.TBL_ADDRESS ( UUID ASC );
+
+INSERT INTO public.TBL_ADDRESS (UUID, FK_CONTACT_ID, FK_ADDRESS_TYPE, IS_MAIN_ADDRESS, POSTCODE, COMMUNITY, COMMUNITY_SUFFIX, STREET, HOUSENUMBER, WGS_84_ZONE, LATITUDE, LONGITUDE, URL_MAP, NOTE) VALUES ( '37e800fe-64f0-4834-8b83-8453cbb936a5', 2, 1, true, '12345', 'Heringsdorf','', 'Flunderweg', '5', '', '53 NL', '3 WB','www.xyz', 'nur über Seeweg erreichbar');
+INSERT INTO public.TBL_ADDRESS (UUID, FK_CONTACT_ID, FK_ADDRESS_TYPE, IS_MAIN_ADDRESS, POSTCODE, COMMUNITY, COMMUNITY_SUFFIX, STREET, HOUSENUMBER, WGS_84_ZONE, LATITUDE, LONGITUDE, URL_MAP, NOTE) VALUES ( '8a1202ae-2532-474e-8367-a1f0e13e9fbd', 1, 2, false, '67890', 'Stralsund','', 'Schollendamm', '18', '', '53 N', '2 WB','www.xyz', 'Hochwassergefahr');
+
+
+-- ---------------------------------------------
+-- TABLE TBL_COMMUNICATION
+-- ---------------------------------------------
+CREATE SEQUENCE public.tbl_communication_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_communication_id_seq
+  OWNER TO CBD_SERVICE;
+
+CREATE TABLE public.TBL_COMMUNICATION
+(
+  ID bigint NOT NULL DEFAULT nextval('tbl_communication_id_seq'::regclass),
+  UUID uuid NOT NULL,
+  FK_CONTACT_ID bigint NOT NULL,
+  FK_COMMUNICATION_TYPE bigint,
+  COMMUNICATION_DATA character varying(1024),
+  NOTE character varying(255),
+
+  CONSTRAINT TBL_COMMUNICATION_PKEY PRIMARY KEY (ID),
+  CONSTRAINT TBL_COMMUNICATION__CONTACT_ID_FKEY FOREIGN KEY (FK_CONTACT_ID)
+      REFERENCES public.TBL_CONTACT(ID) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION,
+  CONSTRAINT TBL_COMMUNICATION__COMMUNICATION_TYPE_ID_FKEY FOREIGN KEY (FK_COMMUNICATION_TYPE)
+       REFERENCES public.REF_COMMUNICATION_TYPE (ID) MATCH SIMPLE
+       ON UPDATE NO ACTION ON DELETE NO ACTION
+);
+ALTER TABLE public.TBL_COMMUNICATION
+  OWNER TO CBD_SERVICE;
+GRANT ALL ON TABLE public.TBL_COMMUNICATION TO CBD_SERVICE;
+
+CREATE UNIQUE INDEX idx_tbl_communication_uuid ON public.TBL_COMMUNICATION ( UUID ASC );
+
+INSERT INTO public.TBL_COMMUNICATION (UUID, FK_CONTACT_ID, FK_COMMUNICATION_TYPE, COMMUNICATION_DATA, NOTE) VALUES ( '25f6d7cc-b168-4dd5-a36d-6f14b2f956e9', 2, 2, 'bitte melden Sie sich bei uns', 'Info...');
+INSERT INTO public.TBL_COMMUNICATION (UUID, FK_CONTACT_ID, FK_COMMUNICATION_TYPE, COMMUNICATION_DATA, NOTE) VALUES ( 'a5fa380e-8f33-4ea7-9416-e03d11b91cae', 1, 3, 'bitte melden zwecks Terminabstimmung', 'Info...');
+INSERT INTO public.TBL_COMMUNICATION (UUID, FK_CONTACT_ID, FK_COMMUNICATION_TYPE, COMMUNICATION_DATA, NOTE) VALUES ( 'c0dcef80-ca07-48b7-a3ed-2c99c4388928', 1, 1, 'info@bigbang.com', 'Info...');
+INSERT INTO public.TBL_COMMUNICATION (UUID, FK_CONTACT_ID, FK_COMMUNICATION_TYPE, COMMUNICATION_DATA, NOTE) VALUES ( 'd19d9e10-d2dd-4383-84ec-2fe96421c0a3', 2, 1, 'info@pharmapeekltd.com', 'Info...');
+INSERT INTO public.TBL_COMMUNICATION (UUID, FK_CONTACT_ID, FK_COMMUNICATION_TYPE, COMMUNICATION_DATA, NOTE) VALUES ( '234b63e4-d8db-48ab-899f-0320903c01af', 3, 1, 'reinbold.tab@pharmapeek.com', 'Info...');
+INSERT INTO public.TBL_COMMUNICATION (UUID, FK_CONTACT_ID, FK_COMMUNICATION_TYPE, COMMUNICATION_DATA, NOTE) VALUES ( '11e25c02-de00-430d-b6cd-f02f7c60e026', 5, 1, 'PaulineF@gmx.net', 'Info...');
+INSERT INTO public.TBL_COMMUNICATION (UUID, FK_CONTACT_ID, FK_COMMUNICATION_TYPE, COMMUNICATION_DATA, NOTE) VALUES ( '9ca29c3b-e189-4ce9-9401-15001c769627', 6, 1, 'mo@gmail.com', 'Info...');
+INSERT INTO public.TBL_COMMUNICATION (UUID, FK_CONTACT_ID, FK_COMMUNICATION_TYPE, COMMUNICATION_DATA, NOTE) VALUES ( '05505b1a-61df-45c0-b006-64165cbadfa2', 7, 1, 'MGruebelSport@fogger.mil', 'Info...');
+INSERT INTO public.TBL_COMMUNICATION (UUID, FK_CONTACT_ID, FK_COMMUNICATION_TYPE, COMMUNICATION_DATA, NOTE) VALUES ( 'b52dabaf-d156-4fd0-a07c-510673112a15', 8, 1, 'Mini.osterbrink@yahoo.ie', 'Info...');
+
+-- ---------------------------------------------
+-- TABLE TBL_COMPANY
+-- ---------------------------------------------
+CREATE SEQUENCE public.tbl_company_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_company_id_seq
+  OWNER TO CBD_SERVICE;
+
+
+CREATE TABLE public.TBL_COMPANY
+(
+  ID bigint NOT NULL DEFAULT nextval('tbl_company_id_seq'::regclass),
+  COMPANY_NAME character varying(255),
+  COMPANY_TYPE character varying(30),
+  HR_NUMBER character varying(255),
+  FK_CONTACT_ID bigint NOT NULL,
+  CONSTRAINT TBL_COMPANY_PKEY PRIMARY KEY (id),
+  CONSTRAINT TBL_COMPANY__CONTACT_ID_FKEY FOREIGN KEY (FK_CONTACT_ID)
+      REFERENCES public.TBL_CONTACT(ID) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+);
+ALTER TABLE public.TBL_COMPANY
+  OWNER TO CBD_SERVICE;
+GRANT ALL ON TABLE public.TBL_COMPANY TO CBD_SERVICE;
+
+INSERT INTO public.TBL_COMPANY (COMPANY_NAME, COMPANY_TYPE, HR_NUMBER, FK_CONTACT_ID) VALUES ( 'BigBang Logistic', 'Logistik', '123', 1 );
+INSERT INTO public.TBL_COMPANY (COMPANY_NAME, COMPANY_TYPE, HR_NUMBER, FK_CONTACT_ID) VALUES ( 'Pharma Peek', 'Pharma', '345', 2 );
+INSERT INTO public.TBL_COMPANY (COMPANY_NAME, COMPANY_TYPE, HR_NUMBER, FK_CONTACT_ID) VALUES ( '***', '***', null, 9 );
+INSERT INTO public.TBL_COMPANY (COMPANY_NAME, COMPANY_TYPE, HR_NUMBER, FK_CONTACT_ID) VALUES ( '***', '***', null, 10 );
+
+
+-- ---------------------------------------------
+-- TABLE TBL_CONTACT_PERSON
+-- ---------------------------------------------
+CREATE SEQUENCE public.tbl_contact_person_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_contact_person_id_seq
+  OWNER TO CBD_SERVICE;
+
+CREATE TABLE public.TBL_CONTACT_PERSON
+(
+  ID bigint NOT NULL DEFAULT nextval('tbl_contact_person_id_seq'::regclass),
+  FIRST_NAME character varying(255),
+  LAST_NAME character varying(255),
+  TITLE character varying(255),
+  FK_SALUTATION_ID bigint,
+  FK_REF_PERSON_TYPE_ID bigint NULL,
+  FK_CONTACT_ID bigint NOT NULL,
+  FK_COMPANY_ID bigint NOT NULL,
+  CONSTRAINT TBL_CONTACT_PERSON_PKEY PRIMARY KEY (ID),
+  CONSTRAINT TBL_CONTACT_PERSON__CONTACT_ID_FKEY FOREIGN KEY (FK_CONTACT_ID)
+      REFERENCES public.TBL_CONTACT (ID) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION,
+  CONSTRAINT TBL_CONTACT_PERSON__PERSON_TYPE_ID_FKEY FOREIGN KEY (FK_REF_PERSON_TYPE_ID)
+      REFERENCES public.REF_PERSON_TYPE (ID) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION,
+  CONSTRAINT TBL_CONTACT_PERSON__SALUTATION_ID_FKEY FOREIGN KEY (FK_SALUTATION_ID)
+           REFERENCES public.REF_SALUTATION (ID) MATCH SIMPLE
+           ON UPDATE NO ACTION ON DELETE NO ACTION,
+  CONSTRAINT TBL_CONTACT_PERSON__COMPANY_ID_FKEY FOREIGN KEY (FK_COMPANY_ID)
+       REFERENCES public.TBL_COMPANY (ID) MATCH SIMPLE
+       ON UPDATE NO ACTION ON DELETE NO ACTION
+);
+ALTER TABLE public.TBL_CONTACT_PERSON
+  OWNER TO CBD_SERVICE;
+GRANT ALL ON TABLE public.TBL_CONTACT_PERSON TO CBD_SERVICE;
+
+INSERT INTO public.TBL_CONTACT_PERSON (FIRST_NAME, LAST_NAME, TITLE, FK_SALUTATION_ID, FK_REF_PERSON_TYPE_ID, FK_CONTACT_ID, FK_COMPANY_ID) VALUES ( 'Tabea', 'Reinebold', 'Dr.', 2, 1, 3, 2);
+INSERT INTO public.TBL_CONTACT_PERSON (FIRST_NAME, LAST_NAME, TITLE, FK_SALUTATION_ID, FK_REF_PERSON_TYPE_ID, FK_CONTACT_ID, FK_COMPANY_ID) VALUES ( 'Jan', 'Wacker', '', 1, 1, 4, 2);
+INSERT INTO public.TBL_CONTACT_PERSON (FIRST_NAME, LAST_NAME, TITLE, FK_SALUTATION_ID, FK_REF_PERSON_TYPE_ID, FK_CONTACT_ID, FK_COMPANY_ID) VALUES ( '***', '***', null, null, null, 11, 3);
+INSERT INTO public.TBL_CONTACT_PERSON (FIRST_NAME, LAST_NAME, TITLE, FK_SALUTATION_ID, FK_REF_PERSON_TYPE_ID, FK_CONTACT_ID, FK_COMPANY_ID) VALUES ( '***', '***', null, null, null, 12, 2);
+
+-- ---------------------------------------------
+-- TABLE TBL_EXTERNAL_PERSON
+-- ---------------------------------------------
+CREATE SEQUENCE public.tbl_external_person_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_external_person_id_seq
+  OWNER TO CBD_SERVICE;
+
+CREATE TABLE public.TBL_EXTERNAL_PERSON
+(
+  ID bigint NOT NULL DEFAULT nextval('tbl_external_person_id_seq'::regclass),
+  FIRST_NAME character varying(255),
+  LAST_NAME character varying(255),
+  TITLE character varying(255),
+  FK_SALUTATION_ID bigint,
+  FK_REF_PERSON_TYPE_ID bigint,
+  FK_CONTACT_ID bigint NOT NULL,
+  CONSTRAINT TBL_EXTERNAL_PERSON_PKEY PRIMARY KEY (id),
+  CONSTRAINT TBL_EXTERNAL_PERSON__CONTACT_ID_FKEY FOREIGN KEY (FK_CONTACT_ID)
+       REFERENCES public.TBL_CONTACT (ID) MATCH SIMPLE
+       ON UPDATE NO ACTION ON DELETE NO ACTION,
+  CONSTRAINT TBL_EXTERNAL_PERSON__SALUTATION_ID_FKEY FOREIGN KEY (FK_SALUTATION_ID)
+         REFERENCES public.REF_SALUTATION (ID) MATCH SIMPLE
+         ON UPDATE NO ACTION ON DELETE NO ACTION,
+  CONSTRAINT TBL_EXTERNAL_PERSON__PERSON_TYPE_ID_FKEY FOREIGN KEY (FK_REF_PERSON_TYPE_ID)
+           REFERENCES public.REF_PERSON_TYPE (ID) MATCH SIMPLE
+           ON UPDATE NO ACTION ON DELETE NO ACTION
+);
+ALTER TABLE public.TBL_EXTERNAL_PERSON
+  OWNER TO CBD_SERVICE;
+GRANT ALL ON TABLE public.TBL_EXTERNAL_PERSON TO CBD_SERVICE;
+
+INSERT INTO public.TBL_EXTERNAL_PERSON (FIRST_NAME, LAST_NAME, TITLE, FK_SALUTATION_ID, FK_REF_PERSON_TYPE_ID, FK_CONTACT_ID) VALUES ( 'Monica', 'Grübel', 'Dipl.-Sportlehrerin', 2, 1, 7);
+INSERT INTO public.TBL_EXTERNAL_PERSON (FIRST_NAME, LAST_NAME, TITLE, FK_SALUTATION_ID, FK_REF_PERSON_TYPE_ID, FK_CONTACT_ID) VALUES ( 'Maurice', 'Fürstenberg', 'B.A.', 2, 2, 8);
+
+
+-- ---------------------------------------------
+-- TABLE TBL_INTERNAL_PERSON
+-- ---------------------------------------------
+CREATE SEQUENCE public.tbl_internal_person_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_internal_person_id_seq
+  OWNER TO CBD_SERVICE;
+CREATE TABLE public.TBL_INTERNAL_PERSON
+(
+   ID bigint NOT NULL DEFAULT nextval('tbl_internal_person_id_seq'::regclass),
+   FIRST_NAME character varying(255),
+   LAST_NAME character varying(255),
+   TITLE character varying(255),
+   FK_SALUTATION_ID bigint,
+   FK_REF_PERSON_TYPE_ID bigint,
+   DEPARTMENT character varying(255),
+   UID_IDENT character varying(255),
+   USER_REF character varying(255),
+   FK_CONTACT_ID bigint NOT NULL,
+   CONSTRAINT TBL_INTERNAL_PERSON_PKEY PRIMARY KEY (ID),
+   CONSTRAINT TBL_INTERNAL_PERSON__CONTACT_ID_FKEY FOREIGN KEY (FK_CONTACT_ID)
+      REFERENCES public.TBL_CONTACT (ID) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION,
+   CONSTRAINT TBL_INTERNAL_PERSON__SALUTATION_ID_FKEY FOREIGN KEY (FK_SALUTATION_ID)
+         REFERENCES public.REF_SALUTATION (ID) MATCH SIMPLE
+         ON UPDATE NO ACTION ON DELETE NO ACTION,
+   CONSTRAINT TBL_INTERNAL_PERSON__PERSON_TYPE_ID_FKEY FOREIGN KEY (FK_REF_PERSON_TYPE_ID)
+         REFERENCES public.REF_PERSON_TYPE (ID) MATCH SIMPLE
+         ON UPDATE NO ACTION ON DELETE NO ACTION
+);
+ALTER TABLE public.TBL_INTERNAL_PERSON
+  OWNER TO CBD_SERVICE;
+GRANT ALL ON TABLE public.TBL_INTERNAL_PERSON TO CBD_SERVICE;
+
+CREATE UNIQUE INDEX idx_tbl_internal_person_uid ON public.TBL_INTERNAL_PERSON ( UID_IDENT ASC );
+CREATE UNIQUE INDEX idx_tbl_internal_person_user_ref ON public.TBL_INTERNAL_PERSON ( USER_REF ASC );
+
+INSERT INTO public.TBL_INTERNAL_PERSON (FIRST_NAME, LAST_NAME, TITLE, FK_SALUTATION_ID, FK_REF_PERSON_TYPE_ID, DEPARTMENT, UID_IDENT, USER_REF, FK_CONTACT_ID) VALUES ( 'Pauline', 'Freudenberg', 'B.Sc.', 1, 1,'Abteilung Rechnungsstellung', '66cd78c3-6716-4ab3-b834-a199fc796b88', 'PFREUD',  5);
+INSERT INTO public.TBL_INTERNAL_PERSON (FIRST_NAME, LAST_NAME, TITLE, FK_SALUTATION_ID, FK_REF_PERSON_TYPE_ID, DEPARTMENT, UID_IDENT, USER_REF, FK_CONTACT_ID) VALUES ( 'Bernhardt', 'Iffland', '', 2, 2,'Kreativ', '4124e4e7-3488-4492-bf39-75e6a23a1c1a', 'BIFFL', 6);
+INSERT INTO public.TBL_INTERNAL_PERSON (FIRST_NAME, LAST_NAME, TITLE, FK_SALUTATION_ID, FK_REF_PERSON_TYPE_ID, DEPARTMENT, UID_IDENT, USER_REF, FK_CONTACT_ID) VALUES ( 'Horatio', 'Hornblower', 'Capt.', 1, 2,'Royal Navy', 'hhornblo', 'HORNB', 13);
+INSERT INTO public.TBL_INTERNAL_PERSON (FIRST_NAME, LAST_NAME, TITLE, FK_SALUTATION_ID, FK_REF_PERSON_TYPE_ID, DEPARTMENT, UID_IDENT, USER_REF, FK_CONTACT_ID) VALUES ( 'Cornelius', 'Buckley', '', 1, 2,'Royal Navy', null, 'BUCKC', 14);
+-- ---------------------------------------------
+-- TABLE TBL_ASSIGNMENT_MODUL_CONTACT
+-- ---------------------------------------------
+CREATE SEQUENCE public.TBL_ASSIGN_MODUL_CNTCT_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.TBL_ASSIGN_MODUL_CNTCT_ID_SEQ
+  OWNER TO CBD_SERVICE;
+
+CREATE TABLE public.TBL_ASSIGNMENT_MODUL_CONTACT
+(
+  id bigint NOT NULL DEFAULT nextval('TBL_ASSIGN_MODUL_CNTCT_ID_SEQ'::regclass),
+  uuid uuid NOT NULL,
+  fk_contact_id bigint NOT NULL,
+  modul_name character varying(255),
+  assignment_date timestamp,
+  expiring_date timestamp,
+  deletion_lock_until timestamp,
+  assignment_note character varying(2048),
+  CONSTRAINT tbl_assignment_modul_contact_pkey PRIMARY KEY (id),
+  CONSTRAINT tbl_assignment_modul_contact_id_fkey FOREIGN KEY (fk_contact_id)
+      REFERENCES public.tbl_contact (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_assignment_modul_contact
+  OWNER TO cbd_service;
+GRANT ALL ON TABLE public.tbl_assignment_modul_contact TO cbd_service;
+
+INSERT INTO public.tbl_assignment_modul_contact(uuid, fk_contact_id, modul_name, assignment_date, expiring_date, deletion_lock_until, assignment_note) VALUES ( 'dfc2979c-40e3-11ea-b77f-2e728ce88125', 1, 'Betriebstagebuch', '2020-01-19 10:23:54', '2021-01-19 00:00:00', '2021-01-19 00:00:00', 'seit Januar zugeordnet');
+INSERT INTO public.tbl_assignment_modul_contact(uuid, fk_contact_id, modul_name, assignment_date, expiring_date, deletion_lock_until, assignment_note) VALUES ( '4009bce2-40e5-11ea-b77f-2e728ce88125', 1, 'Störinfos', '2020-02-27 10:23:54', '2019-02-27 00:00:00', '2019-02-27 00:00:00', 'seit Februar zugeordnet');
+
+-- -------------------------------------
+-- VIEWS -------------------------------
+-- -------------------------------------
+DROP VIEW IF EXISTS VW_GENERAL_CONTACT CASCADE;
+
+CREATE VIEW VW_GENERAL_CONTACT
+AS
+SELECT g.id,
+	c.uuid,
+	g.name,
+	c.contact_type,
+	g.fk_contact_id,
+	g.company_name,
+	g.company_type,
+	g.company_id,
+	g.fk_salutation_id,
+	g.fk_ref_person_type_id,
+	g.title,
+	g.first_name,
+	g.last_name,
+	g.department,
+	c.note,
+	c.anonymized
+FROM tbl_contact c
+INNER JOIN (
+
+SELECT company.id,
+	company_name as name,
+	fk_contact_id,
+	company_name,
+	company_type,
+	cntct.uuid as company_id,
+	null as fk_salutation_id,
+	null as fk_ref_person_type_id,
+	null as title,
+	null as first_name,
+	null as last_name,
+	null as department
+FROM tbl_company company
+INNER JOIN tbl_contact cntct ON company.fk_contact_id = cntct.id
+
+UNION
+
+SELECT p.id,
+	COALESCE(p.last_name, '')
+	|| CASE WHEN COALESCE(p.last_name, '') <> '' AND COALESCE(p.first_name) <> '' THEN ', ' ELSE '' END
+	|| COALESCE(p.first_name,'') || ' [' || COALESCE(c.company_name, '') || ']' as name,
+	p.fk_contact_id,
+	c.company_name,
+	c.company_type,
+	company_contact.uuid as company_id,
+	p.fk_salutation_id,
+	p.fk_ref_person_type_id,
+	p.title,
+	p.first_name,
+	p.last_name,
+	null as department
+FROM tbl_contact_person p
+INNER JOIN tbl_company c ON c.id = p.fk_company_id
+INNER JOIN tbl_contact company_contact ON c.fk_contact_id = company_contact.id
+
+UNION
+
+SELECT id,
+	COALESCE(last_name, '')
+	|| CASE WHEN COALESCE(last_name, '') <> '' AND COALESCE(first_name) <> '' THEN ', ' ELSE '' END
+	|| COALESCE(first_name, '') as name,
+	fk_contact_id,
+	null as company_name,
+	null as company_type,
+	null as company_id,
+	fk_salutation_id,
+	fk_ref_person_type_id,
+	title,
+	first_name,
+	last_name,
+	department
+FROM tbl_internal_person
+
+UNION
+
+SELECT id,
+	COALESCE(last_name, '')
+	|| CASE WHEN COALESCE(last_name, '') <> '' AND COALESCE(first_name) <> '' THEN ', ' ELSE '' END
+	|| COALESCE(first_name, '') as name,
+	fk_contact_id,
+	null as company_name,
+	null as company_type,
+	null as company_id,
+	fk_salutation_id,
+	fk_ref_person_type_id,
+	title,
+	first_name,
+	last_name,
+	null as department
+FROM tbl_external_person
+	) g
+ON g.fk_contact_id = c.ID;
+
+ALTER VIEW public.VW_GENERAL_CONTACT
+  OWNER TO CBD_SERVICE;
+GRANT ALL ON TABLE public.VW_GENERAL_CONTACT TO CBD_SERVICE;
+
+
+DROP VIEW IF EXISTS VW_DETAILED_CONTACT;
+
+CREATE VIEW VW_DETAILED_CONTACT
+AS
+SELECT c.id,
+    c.uuid,
+	c.name,
+	c.contact_type,
+	c.fk_contact_id,
+	c.company_name,
+	c.company_type,
+	c.company_id,
+	c.anonymized,
+	s.uuid as salutation_uuid,
+	t.uuid as person_type_uuid,
+	c.title,
+	c.first_name,
+	c.last_name,
+	c.department,
+	c.note,
+	s.type as salutation_type,
+	t.type as person_type,
+	COALESCE(a.community, '') ||
+	        CASE WHEN COALESCE(a.street, '') || COALESCE(a.housenumber, '') = '' THEN '' ELSE ', ' END ||
+	        COALESCE(a.street, '') ||
+	        CASE WHEN COALESCE(a.housenumber, '') = '' THEN '' ELSE ' ' END ||
+	        COALESCE(a.housenumber, '') as main_address,
+	com.communication_data as email,
+
+	UPPER(
+        COALESCE(c.name, '') || '|@|'
+        || COALESCE(company_name, '') || '|@|'
+        || COALESCE(c.company_type, '') || '|@|'
+        || COALESCE(c.title, '') || '|@|'
+        || COALESCE(c.first_name, '') || '|@|'
+        || COALESCE(c.last_name, '') || '|@|'
+        || COALESCE(c.department, '') || '|@|'
+        || COALESCE(c.note, '') || '|@|'
+        || COALESCE(s.type, '') || '|@|'
+        || COALESCE(t.type, '') || '|@|'
+        || COALESCE(a.street, '') || '|@|'
+        || COALESCE(a.housenumber, '') || '|@|'
+        || COALESCE(a.community, '') || '|@|'
+        || COALESCE(com.communication_data, '')
+    )as searchfield
+FROM VW_GENERAL_CONTACT c
+LEFT OUTER JOIN ref_salutation s ON c.fk_salutation_id = s.id
+LEFT OUTER JOIN tbl_address a ON a.fk_contact_id = c.fk_contact_id and is_main_address = true
+LEFT OUTER JOIN ref_person_type t ON c.fk_ref_person_type_id = t.id
+LEFT OUTER JOIN tbl_communication com ON (com.fk_contact_id = c.fk_contact_id AND com.fk_communication_type =
+    (SELECT ct.id FROM ref_communication_type ct WHERE ct.type_email = true)) ;
+
+ALTER VIEW public.VW_DETAILED_CONTACT
+  OWNER TO CBD_SERVICE;
+GRANT ALL ON TABLE public.VW_DETAILED_CONTACT TO CBD_SERVICE;
+
+
+
+
diff --git a/src/test/java/org/eclipse/openk/contactbasedata/controller/AddressControllerTest.java b/src/test/java/org/eclipse/openk/contactbasedata/controller/AddressControllerTest.java
index 93936f8..03f8a35 100644
--- a/src/test/java/org/eclipse/openk/contactbasedata/controller/AddressControllerTest.java
+++ b/src/test/java/org/eclipse/openk/contactbasedata/controller/AddressControllerTest.java
@@ -34,13 +34,18 @@
 
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.when;
-import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
 
 @SpringBootTest(classes = ContactBaseDataApplication.class)
 @AutoConfigureMockMvc
-@ActiveProfiles("test") // Todo: Find a better way to configure the tests
-public class AddressControllerTest {
+@ActiveProfiles("test")
+class AddressControllerTest {
 
     @MockBean
     private AddressService addressService;
@@ -49,7 +54,7 @@
     private MockMvc mockMvc;
 
     @Test
-    public void shouldReturnAddressesForAContact() throws Exception {
+    void shouldReturnAddressesForAContact() throws Exception {
         List<AddressDto> listDtos = MockDataHelper.mockAddressDtoList();
 
         when(addressService.getAddressesByContactUuid(any(UUID.class))).thenReturn(listDtos);
@@ -60,7 +65,7 @@
     }
 
     @Test
-    public void shouldReturnSingleAddress() throws Exception {
+    void shouldReturnSingleAddress() throws Exception {
         AddressDto addressDto = MockDataHelper.mockAddressDto();
 
         when(addressService.getAddress(any(UUID.class), any(UUID.class))).thenReturn(addressDto);
@@ -72,7 +77,7 @@
 
 
     @Test
-    public void shouldInsertAddress() throws Exception {
+    void shouldInsertAddress() throws Exception {
         AddressDto addressDto = MockDataHelper.mockAddressDto();
         addressDto.setUuid(UUID.fromString("1ad98d00-3774-11ea-850d-2e728ce88125"));
         addressDto.setCommunity("Mullewapp");
@@ -118,7 +123,7 @@
 
 
     @Test
-    public void shouldUpdateAddress() throws Exception {
+    void shouldUpdateAddress() throws Exception {
 
         AddressDto addressDto = MockDataHelper.mockAddressDto();
         when( addressService.updateAddress(any(UUID.class), any(AddressDto.class))).thenReturn(addressDto);
@@ -130,7 +135,7 @@
     }
 
     @Test
-    public void shouldNotUpdateAddressDueToInvalidArgs() throws Exception {
+    void shouldNotUpdateAddressDueToInvalidArgs() throws Exception {
 
         AddressDto addressDto = MockDataHelper.mockAddressDto();
         addressDto.setAddressTypeUuid(null);
@@ -143,7 +148,7 @@
     }
 
     @Test
-    public void shouldNotUpdateAddress() throws Exception {
+    void shouldNotUpdateAddress() throws Exception {
 
         AddressDto addressDto = MockDataHelper.mockAddressDto();
         when( addressService.updateAddress(any(UUID.class), any(AddressDto.class))).thenReturn(addressDto);
@@ -155,7 +160,7 @@
     }
 
     @Test
-    public void shouldDeleteAddress() throws Exception {
+    void shouldDeleteAddress() throws Exception {
         mockMvc.perform(delete("/contacts/{contactUuid}/addresses/{addressUuid}", UUID.randomUUID(), UUID.randomUUID())
                 .contentType(MediaType.APPLICATION_JSON))
                 .andExpect(status().is2xxSuccessful());
diff --git a/src/test/java/org/eclipse/openk/contactbasedata/controller/AddressTypeControllerTest.java b/src/test/java/org/eclipse/openk/contactbasedata/controller/AddressTypeControllerTest.java
index 7c629aa..9a46c1f 100644
--- a/src/test/java/org/eclipse/openk/contactbasedata/controller/AddressTypeControllerTest.java
+++ b/src/test/java/org/eclipse/openk/contactbasedata/controller/AddressTypeControllerTest.java
@@ -34,13 +34,18 @@
 
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.when;
-import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
 
 @SpringBootTest(classes = ContactBaseDataApplication.class)
 @AutoConfigureMockMvc
-@ActiveProfiles("test") // Todo: Find a better way to configure the tests
-public class AddressTypeControllerTest {
+@ActiveProfiles("test")
+class AddressTypeControllerTest {
 
     @MockBean
     private AddressTypeService addressTypeService;
@@ -49,7 +54,7 @@
     private MockMvc mockMvc;
 
     @Test
-    public void shouldReturnAllAddressTypes() throws Exception {
+    void shouldReturnAllAddressTypes() throws Exception {
         List<AddressTypeDto> sds = MockDataHelper.mockAddressTypesDtos();
 
         when(addressTypeService.findAllAddressTypes()).thenReturn(sds);
@@ -60,7 +65,7 @@
     }
 
     @Test
-    public void shouldReturnSingleAddressType() throws Exception {
+    void shouldReturnSingleAddressType() throws Exception {
         AddressTypeDto addressTypeDto = MockDataHelper.mockAddressTypeDto();
 
         when(addressTypeService.getAddressTypeByUuid(any(UUID.class))).thenReturn(addressTypeDto);
@@ -71,7 +76,7 @@
     }
 
     @Test
-    public void shouldInsertAddressType() throws Exception {
+    void shouldInsertAddressType() throws Exception {
         AddressTypeDto addressTypeDto = MockDataHelper.mockAddressTypeDto();
         addressTypeDto.setType("Master");
         addressTypeDto.setDescription("of the universe");
@@ -87,7 +92,7 @@
     }
 
     @Test
-    public void shouldUpdateAddressType() throws Exception {
+    void shouldUpdateAddressType() throws Exception {
         AddressTypeDto addressTypeDto = MockDataHelper.mockAddressTypeDto();
         addressTypeDto.setUuid(UUID.randomUUID());
 
@@ -100,7 +105,7 @@
     }
 
     @Test
-    public void shouldNotUpdateAddressTypeDueToError() throws Exception {
+    void shouldNotUpdateAddressTypeDueToError() throws Exception {
         AddressTypeDto addressTypeDto = MockDataHelper.mockAddressTypeDto();
         addressTypeDto.setUuid(UUID.randomUUID());
 
@@ -114,7 +119,7 @@
     }
 
     @Test
-    public void shouldDeleteAddressType() throws Exception {
+    void shouldDeleteAddressType() throws Exception {
         mockMvc.perform(delete("/addressTypes/05ff2344-20a5-11ea-978f-2e728ce88125")
                 .contentType(MediaType.APPLICATION_JSON))
                 .andExpect(status().is2xxSuccessful());
diff --git a/src/test/java/org/eclipse/openk/contactbasedata/controller/AssignmentModulContactControllerTest.java b/src/test/java/org/eclipse/openk/contactbasedata/controller/AssignmentModulContactControllerTest.java
index 0729da2..8d47ac6 100644
--- a/src/test/java/org/eclipse/openk/contactbasedata/controller/AssignmentModulContactControllerTest.java
+++ b/src/test/java/org/eclipse/openk/contactbasedata/controller/AssignmentModulContactControllerTest.java
@@ -36,13 +36,18 @@
 
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.when;
-import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
 
 @SpringBootTest(classes = ContactBaseDataApplication.class)
 @AutoConfigureMockMvc
-@ActiveProfiles("test") // Todo: Find a better way to configure the tests
-public class AssignmentModulContactControllerTest {
+@ActiveProfiles("test")
+class AssignmentModulContactControllerTest {
 
     @MockBean
     private AssignmentModulContactService assignmentService;
@@ -51,7 +56,7 @@
     private MockMvc mockMvc;
 
     @Test
-    public void shouldReturnAssignmentsForAContact() throws Exception {
+    void shouldReturnAssignmentsForAContact() throws Exception {
         List<AssignmentModulContactDto> listDtos = MockDataHelper.mockAssignmentModulContactDtoList();
 
         when(assignmentService.getAssignments(any(UUID.class))).thenReturn(listDtos);
@@ -63,7 +68,7 @@
 
 
     @Test
-    public void shouldReturnAssignmentForAContact() throws Exception {
+    void shouldReturnAssignmentForAContact() throws Exception {
         AssignmentModulContactDto dto = MockDataHelper.mockAssignmentModulContactDto();
 
         when(assignmentService.getAssignment(any(UUID.class), any(UUID.class))).thenReturn(dto);
@@ -75,7 +80,7 @@
 
 
     @Test
-    public void shouldInsertAssignment() throws Exception {
+    void shouldInsertAssignment() throws Exception {
         AssignmentModulContactDto assignmentDto = MockDataHelper.mockAssignmentModulContactDto();
         assignmentDto.setUuid(UUID.fromString("394dce82-41af-11ea-b77f-2e728ce88125"));
         assignmentDto.setContactUuid(UUID.fromString("5b164ab2-41af-11ea-b77f-2e728ce88125"));
@@ -103,7 +108,7 @@
 
 
     @Test
-    public void shouldUpdateAssignment() throws Exception {
+    void shouldUpdateAssignment() throws Exception {
 
         AssignmentModulContactDto assignmentDto = MockDataHelper.mockAssignmentModulContactDto();
         when( assignmentService.updateAssignment(any(UUID.class), any(AssignmentModulContactDto.class))).thenReturn(assignmentDto);
@@ -113,9 +118,9 @@
                 .content(new ObjectMapper().writeValueAsString(assignmentDto)))
                 .andExpect(status().is2xxSuccessful());
     }
-//
+
     @Test
-    public void shouldNotUpdateAddress() throws Exception {
+    void shouldNotUpdateAddress() throws Exception {
 
         AssignmentModulContactDto assignmentDto = MockDataHelper.mockAssignmentModulContactDto();
         when( assignmentService.updateAssignment(any(UUID.class), any(AssignmentModulContactDto.class))).thenReturn(assignmentDto);
@@ -127,11 +132,9 @@
     }
 
     @Test
-    public void shouldDeleteAddress() throws Exception {
+    void shouldDeleteAddress() throws Exception {
         mockMvc.perform(delete("/contacts/{contactUuid}/assignments/{assignmentUuid}", UUID.randomUUID(), UUID.randomUUID())
                 .contentType(MediaType.APPLICATION_JSON))
                 .andExpect(status().is2xxSuccessful());
     }
-
-
 }
\ No newline at end of file
diff --git a/src/test/java/org/eclipse/openk/contactbasedata/controller/CommunicationControllerTest.java b/src/test/java/org/eclipse/openk/contactbasedata/controller/CommunicationControllerTest.java
index 9e91048..b7732f6 100644
--- a/src/test/java/org/eclipse/openk/contactbasedata/controller/CommunicationControllerTest.java
+++ b/src/test/java/org/eclipse/openk/contactbasedata/controller/CommunicationControllerTest.java
@@ -34,13 +34,18 @@
 
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.when;
-import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
 
 @SpringBootTest(classes = ContactBaseDataApplication.class)
 @AutoConfigureMockMvc
-@ActiveProfiles("test") // Todo: Find a better way to configure the tests
-public class CommunicationControllerTest {
+@ActiveProfiles("test")
+class CommunicationControllerTest {
 
     @MockBean
     private CommunicationService communicationService;
@@ -49,7 +54,7 @@
     private MockMvc mockMvc;
 
     @Test
-    public void shouldReturnCommunicationsForAContact() throws Exception {
+    void shouldReturnCommunicationsForAContact() throws Exception {
         List<CommunicationDto> listDtos = MockDataHelper.mockCommunicationDtoList();
 
         when(communicationService.getCommunicationsByContactUuid(any(UUID.class))).thenReturn(listDtos);
@@ -60,7 +65,7 @@
     }
 
     @Test
-    public void shouldReturnSingleCommunication() throws Exception {
+    void shouldReturnSingleCommunication() throws Exception {
         CommunicationDto communicationDto = MockDataHelper.mockCommunicationDto();
 
         when(communicationService.getCommunication(any(UUID.class), any(UUID.class))).thenReturn(communicationDto);
@@ -72,7 +77,7 @@
 
 
     @Test
-    public void shouldInsertCommunication() throws Exception {
+    void shouldInsertCommunication() throws Exception {
         CommunicationDto communicationDto = MockDataHelper.mockCommunicationDto();
         communicationDto.setUuid(UUID.fromString("498a1874-3c2c-11ea-b77f-2e728ce88125"));
 
@@ -97,7 +102,7 @@
 
 
     @Test
-    public void shouldUpdateCommunication() throws Exception {
+    void shouldUpdateCommunication() throws Exception {
 
         CommunicationDto communicationDto = MockDataHelper.mockCommunicationDto();
         when( communicationService.updateCommunication(any(UUID.class), any(CommunicationDto.class))).thenReturn(communicationDto);
@@ -109,7 +114,7 @@
     }
 
     @Test
-    public void shouldNotUpdateCommunication() throws Exception {
+    void shouldNotUpdateCommunication() throws Exception {
 
         CommunicationDto communicationDto = MockDataHelper.mockCommunicationDto();
         when( communicationService.updateCommunication(any(UUID.class), any(CommunicationDto.class))).thenReturn(communicationDto);
@@ -122,7 +127,7 @@
 
 
     @Test
-    public void shouldNotUpdateCommunicationBecauseOfInvalidArgs() throws Exception {
+    void shouldNotUpdateCommunicationBecauseOfInvalidArgs() throws Exception {
 
         CommunicationDto communicationDto = MockDataHelper.mockCommunicationDto();
         communicationDto.setCommunicationTypeUuid(null);
@@ -135,7 +140,7 @@
                 .andExpect(status().isBadRequest());
     }
     @Test
-    public void shouldDeleteCommunication() throws Exception {
+    void shouldDeleteCommunication() throws Exception {
         mockMvc.perform(delete("/contacts/{contactUuid}/communications/{communicationUuid}", UUID.randomUUID(), UUID.randomUUID())
                 .contentType(MediaType.APPLICATION_JSON))
                 .andExpect(status().is2xxSuccessful());
diff --git a/src/test/java/org/eclipse/openk/contactbasedata/controller/CompanyControllerTest.java b/src/test/java/org/eclipse/openk/contactbasedata/controller/CompanyControllerTest.java
index 1d47783..b2ef23b 100644
--- a/src/test/java/org/eclipse/openk/contactbasedata/controller/CompanyControllerTest.java
+++ b/src/test/java/org/eclipse/openk/contactbasedata/controller/CompanyControllerTest.java
@@ -39,14 +39,18 @@
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyBoolean;
 import static org.mockito.Mockito.when;
-import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
 
 
 @SpringBootTest(classes = ContactBaseDataApplication.class)
 @AutoConfigureMockMvc
-@ActiveProfiles("test") // Todo: Find a better way to configure the tests
-public class CompanyControllerTest {
+@ActiveProfiles("test")
+class CompanyControllerTest {
 
     @MockBean
     private CompanyService companyService;
@@ -56,7 +60,7 @@
 
 
     @Test
-    public void shouldReturnARequestedCompany() throws Exception {
+    void shouldReturnARequestedCompany() throws Exception {
         CompanyDto ep = MockDataHelper.mockCompanyDto();
 
         when(companyService.findCompany(any(UUID.class))).thenReturn(ep);
@@ -69,7 +73,7 @@
 
 
     @Test
-    public void shouldReturnAllCompany() throws Exception {
+    void shouldReturnAllCompany() throws Exception {
         Page<CompanyDto> epPage = MockDataHelper.mockCompanyDtoPage();
 
         when(companyService.findCompanies(anyBoolean(), any(Pageable.class))).thenReturn(epPage);
@@ -81,7 +85,7 @@
     }
 
     @Test
-    public void shouldUpdateCompany() throws Exception {
+    void shouldUpdateCompany() throws Exception {
         CompanyDto ep = MockDataHelper.mockCompanyDto();
 
         when( companyService.updateCompany(any(CompanyDto.class))).thenReturn(ep);
@@ -93,7 +97,7 @@
     }
 
     @Test
-    public void shouldNotUpdateCompanyDueToException() throws Exception {
+    void shouldNotUpdateCompanyDueToException() throws Exception {
         CompanyDto ep = MockDataHelper.mockCompanyDto();
 
         when( companyService.updateCompany(any(CompanyDto.class))).thenReturn(ep);
@@ -106,7 +110,7 @@
     }
 
     @Test
-    public void shouldInsertCompany() throws Exception {
+    void shouldInsertCompany() throws Exception {
         CompanyDto companyDto = MockDataHelper.mockCompanyDto();
 
         when( companyService.insertCompany(any(CompanyDto.class))).thenReturn(companyDto);
@@ -121,7 +125,7 @@
     }
 
     @Test
-    public void shouldReturnContactPerson() throws Exception {
+    void shouldReturnContactPerson() throws Exception {
         List<ContactPersonDto> contactPersonDtos = MockDataHelper.mockContactPersonDtos();
 
         when( companyService.findContactPersonsToCompany(any(UUID.class), anyBoolean())).thenReturn(contactPersonDtos);
diff --git a/src/test/java/org/eclipse/openk/contactbasedata/controller/ContactControllerTest.java b/src/test/java/org/eclipse/openk/contactbasedata/controller/ContactControllerTest.java
index d0e9300..fec4eae 100644
--- a/src/test/java/org/eclipse/openk/contactbasedata/controller/ContactControllerTest.java
+++ b/src/test/java/org/eclipse/openk/contactbasedata/controller/ContactControllerTest.java
@@ -36,14 +36,16 @@
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.when;
 import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
 
 
 
 @SpringBootTest(classes = ContactBaseDataApplication.class)
 @AutoConfigureMockMvc
-@ActiveProfiles("test") // Todo: Find a better way to configure the tests
-public class ContactControllerTest {
+@ActiveProfiles("test")
+class ContactControllerTest {
 
     @MockBean
     private ContactService contactService;
@@ -53,7 +55,7 @@
 
 
     @Test
-    public void shouldReturnAllContacts() throws Exception {
+    void shouldReturnAllContacts() throws Exception {
         Page<VwDetailedContact> retPage = MockDataHelper.mockVDetailedContactPage();
 
         when(contactService.findDetailedContacts(any(SearchContactsFilterParams.class), any(Pageable.class))).thenReturn(retPage);
@@ -65,7 +67,7 @@
     }
 
     @Test
-    public void shouldReturnSingleContactByUuid() throws Exception {
+    void shouldReturnSingleContactByUuid() throws Exception {
         VwDetailedContact vwDetailedContact = MockDataHelper.mockVDetailedContact();
 
         when(contactService.findDetailedContactByUuid(any(UUID.class))).thenReturn(vwDetailedContact);
diff --git a/src/test/java/org/eclipse/openk/contactbasedata/controller/ContactPersonControllerTest.java b/src/test/java/org/eclipse/openk/contactbasedata/controller/ContactPersonControllerTest.java
index 6a78eb7..8b1d73c 100644
--- a/src/test/java/org/eclipse/openk/contactbasedata/controller/ContactPersonControllerTest.java
+++ b/src/test/java/org/eclipse/openk/contactbasedata/controller/ContactPersonControllerTest.java
@@ -27,19 +27,26 @@
 import org.springframework.http.MediaType;
 import org.springframework.test.context.ActiveProfiles;
 import org.springframework.test.web.servlet.MockMvc;
+
 import java.util.UUID;
+
 import static org.hamcrest.Matchers.is;
 import static org.hamcrest.Matchers.not;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.when;
-import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
 
 
 @SpringBootTest(classes = ContactBaseDataApplication.class)
 @AutoConfigureMockMvc
-@ActiveProfiles("test") // Todo: Find a better way to configure the tests
-public class ContactPersonControllerTest {
+@ActiveProfiles("test")
+class ContactPersonControllerTest {
 
     @MockBean
     private ContactPersonService contactPersonService;
@@ -49,7 +56,7 @@
 
 
     @Test
-    public void shouldReturnARequestedContactPerson() throws Exception {
+    void shouldReturnARequestedContactPerson() throws Exception {
         ContactPersonDto cp = MockDataHelper.mockContactPersonDto();
 
         when(contactPersonService.findContactPerson(any(UUID.class))).thenReturn(cp);
@@ -61,7 +68,7 @@
     }
 
     @Test
-    public void shouldUpdateContactPerson() throws Exception {
+    void shouldUpdateContactPerson() throws Exception {
         ContactPersonDto cp = MockDataHelper.mockContactPersonDto();
 
         when( contactPersonService.updateContactPerson(any(ContactPersonDto.class))).thenReturn(cp);
@@ -73,7 +80,7 @@
     }
 
     @Test
-    public void shouldNotUpdateContactPersonDueToException() throws Exception {
+    void shouldNotUpdateContactPersonDueToException() throws Exception {
         ContactPersonDto cp = MockDataHelper.mockContactPersonDto();
 
         when( contactPersonService.updateContactPerson(any(ContactPersonDto.class))).thenReturn(cp);
@@ -86,7 +93,7 @@
     }
 
     @Test
-    public void shouldInsertContactPerson() throws Exception {
+    void shouldInsertContactPerson() throws Exception {
         ContactPersonDto cp = MockDataHelper.mockContactPersonDto();
 
         when( contactPersonService.insertContactPerson(any(ContactPersonDto.class))).thenReturn(cp);
@@ -101,7 +108,7 @@
     }
 
     @Test
-    public void shouldDeleteAddress() throws Exception {
+    void shouldDeleteAddress() throws Exception {
         mockMvc.perform(delete("/contact-persons/{contactUuid}", UUID.randomUUID(), UUID.randomUUID())
                 .contentType(MediaType.APPLICATION_JSON))
                 .andExpect(status().is2xxSuccessful());
diff --git a/src/test/java/org/eclipse/openk/contactbasedata/controller/ExternalPersonControllerTest.java b/src/test/java/org/eclipse/openk/contactbasedata/controller/ExternalPersonControllerTest.java
index e844db2..b86c676 100644
--- a/src/test/java/org/eclipse/openk/contactbasedata/controller/ExternalPersonControllerTest.java
+++ b/src/test/java/org/eclipse/openk/contactbasedata/controller/ExternalPersonControllerTest.java
@@ -37,14 +37,18 @@
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyBoolean;
 import static org.mockito.Mockito.when;
-import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
 
 
 @SpringBootTest(classes = ContactBaseDataApplication.class)
 @AutoConfigureMockMvc
-@ActiveProfiles("test") // Todo: Find a better way to configure the tests
-public class ExternalPersonControllerTest {
+@ActiveProfiles("test")
+class ExternalPersonControllerTest {
 
     @MockBean
     private ExternalPersonService externalPersonService;
@@ -54,7 +58,7 @@
 
 
     @Test
-    public void shouldReturnARequestedExtPerson() throws Exception {
+    void shouldReturnARequestedExtPerson() throws Exception {
         ExternalPersonDto ep = MockDataHelper.mockExternalPersonDto();
 
         when(externalPersonService.findExternalPerson(any(UUID.class))).thenReturn(ep);
@@ -67,7 +71,7 @@
 
 
     @Test
-    public void shouldReturnAllExtPerson() throws Exception {
+    void shouldReturnAllExtPerson() throws Exception {
         Page<ExternalPersonDto> epPage = MockDataHelper.mockExternalPersonDtoPage();
 
         when(externalPersonService.findExternalPersons(anyBoolean(), any(Pageable.class))).thenReturn(epPage);
@@ -79,7 +83,7 @@
     }
 
     @Test
-    public void shouldUpdateExtPerson() throws Exception {
+    void shouldUpdateExtPerson() throws Exception {
         ExternalPersonDto ep = MockDataHelper.mockExternalPersonDto();
 
         when( externalPersonService.updateExternalPerson(any(ExternalPersonDto.class))).thenReturn(ep);
@@ -91,7 +95,7 @@
     }
 
     @Test
-    public void shouldNotUpdateExtPersonDueToException() throws Exception {
+    void shouldNotUpdateExtPersonDueToException() throws Exception {
         ExternalPersonDto ep = MockDataHelper.mockExternalPersonDto();
 
         when( externalPersonService.updateExternalPerson(any(ExternalPersonDto.class))).thenReturn(ep);
@@ -104,7 +108,7 @@
     }
 
     @Test
-    public void shouldInsertExtPerson() throws Exception {
+    void shouldInsertExtPerson() throws Exception {
         ExternalPersonDto ep = MockDataHelper.mockExternalPersonDto();
 
         when( externalPersonService.insertExternalPerson(any(ExternalPersonDto.class))).thenReturn(ep);
diff --git a/src/test/java/org/eclipse/openk/contactbasedata/controller/InternalPersonControllerTest.java b/src/test/java/org/eclipse/openk/contactbasedata/controller/InternalPersonControllerTest.java
index 38e135b..f18259b 100644
--- a/src/test/java/org/eclipse/openk/contactbasedata/controller/InternalPersonControllerTest.java
+++ b/src/test/java/org/eclipse/openk/contactbasedata/controller/InternalPersonControllerTest.java
@@ -34,16 +34,22 @@
 
 import static org.hamcrest.Matchers.is;
 import static org.hamcrest.Matchers.not;
-import static org.mockito.ArgumentMatchers.*;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyBoolean;
+import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.Mockito.when;
-import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
 
 
 @SpringBootTest(classes = ContactBaseDataApplication.class)
 @AutoConfigureMockMvc
-@ActiveProfiles("test") // Todo: Find a better way to configure the tests
-public class InternalPersonControllerTest {
+@ActiveProfiles("test")
+class InternalPersonControllerTest {
 
     @MockBean
     private InternalPersonService internalPersonService;
@@ -53,7 +59,7 @@
 
 
     @Test
-    public void shouldReturnARequestedIntPerson() throws Exception {
+    void shouldReturnARequestedIntPerson() throws Exception {
         InternalPersonDto ip = MockDataHelper.mockInternalPersonDto();
 
         when(internalPersonService.findInternalPerson(any(UUID.class))).thenReturn(ip);
@@ -66,7 +72,7 @@
 
 
     @Test
-    public void shouldReturnAllIntPersons() throws Exception {
+    void shouldReturnAllIntPersons() throws Exception {
         Page<InternalPersonDto> ipPage = MockDataHelper.mockInternalPersonDtoPage();
 
         when(internalPersonService.findInternalPersons(anyBoolean(), anyString(), anyString(), any(Pageable.class))).thenReturn(ipPage);
@@ -78,7 +84,7 @@
     }
 
     @Test
-    public void shouldUpdateIntPerson() throws Exception {
+    void shouldUpdateIntPerson() throws Exception {
         InternalPersonDto ip = MockDataHelper.mockInternalPersonDto();
 
         when( internalPersonService.updateInternalPerson(any(InternalPersonDto.class))).thenReturn(ip);
@@ -90,7 +96,7 @@
     }
 
     @Test
-    public void shouldNotUpdateIntPersonDueToException() throws Exception {
+    void shouldNotUpdateIntPersonDueToException() throws Exception {
         InternalPersonDto ip = MockDataHelper.mockInternalPersonDto();
 
         when( internalPersonService.updateInternalPerson(any(InternalPersonDto.class))).thenReturn(ip);
@@ -103,7 +109,7 @@
     }
 
     @Test
-    public void shouldInsertIntPerson() throws Exception {
+    void shouldInsertIntPerson() throws Exception {
         InternalPersonDto ip = MockDataHelper.mockInternalPersonDto();
 
         when( internalPersonService.insertInternalPerson(any(InternalPersonDto.class))).thenReturn(ip);
diff --git a/src/test/java/org/eclipse/openk/contactbasedata/controller/PersonTypeControllerTest.java b/src/test/java/org/eclipse/openk/contactbasedata/controller/PersonTypeControllerTest.java
index d5acbec..c47e33a 100644
--- a/src/test/java/org/eclipse/openk/contactbasedata/controller/PersonTypeControllerTest.java
+++ b/src/test/java/org/eclipse/openk/contactbasedata/controller/PersonTypeControllerTest.java
@@ -34,13 +34,18 @@
 
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.when;
-import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
 
 @SpringBootTest(classes = ContactBaseDataApplication.class)
 @AutoConfigureMockMvc
-@ActiveProfiles("test") // Todo: Find a better way to configure the tests
-public class PersonTypeControllerTest {
+@ActiveProfiles("test")
+class PersonTypeControllerTest {
 
     @MockBean
     private PersonTypeService personTypeService;
@@ -49,7 +54,7 @@
     private MockMvc mockMvc;
 
     @Test
-    public void shouldReturnAllPersonTypes() throws Exception {
+    void shouldReturnAllPersonTypes() throws Exception {
         List<PersonTypeDto> sds = MockDataHelper.mockPersonTypesDtos();
 
         when(personTypeService.findAllPersonTypes()).thenReturn(sds);
@@ -60,7 +65,7 @@
     }
 
     @Test
-    public void shouldReturnSinglePersonType() throws Exception {
+    void shouldReturnSinglePersonType() throws Exception {
         PersonTypeDto personTypeDto = MockDataHelper.mockPersonTypeDto();
 
         when(personTypeService.getPersonTypeByUuid(any(UUID.class))).thenReturn(personTypeDto);
@@ -71,7 +76,7 @@
     }
 
     @Test
-    public void shouldInsertPersonType() throws Exception {
+    void shouldInsertPersonType() throws Exception {
         PersonTypeDto personTypeDto = MockDataHelper.mockPersonTypeDto();
         personTypeDto.setType("Master");
         personTypeDto.setDescription("of the universe");
@@ -87,7 +92,7 @@
     }
 
     @Test
-    public void shouldUpdatePersonType() throws Exception {
+    void shouldUpdatePersonType() throws Exception {
         PersonTypeDto personTypeDto = MockDataHelper.mockPersonTypeDto();
         personTypeDto.setUuid(UUID.randomUUID());
 
@@ -100,7 +105,7 @@
     }
 
     @Test
-    public void shouldNotUpdatePersonTypeDueToError() throws Exception {
+    void shouldNotUpdatePersonTypeDueToError() throws Exception {
         PersonTypeDto personTypeDto = MockDataHelper.mockPersonTypeDto();
         personTypeDto.setUuid(UUID.randomUUID());
 
@@ -114,7 +119,7 @@
     }
 
     @Test
-    public void shouldDeletePersonType() throws Exception {
+    void shouldDeletePersonType() throws Exception {
         mockMvc.perform(delete("/personTypes/05ff2344-20a5-11ea-978f-2e728ce88125")
                 .contentType(MediaType.APPLICATION_JSON))
                 .andExpect(status().is2xxSuccessful());
diff --git a/src/test/java/org/eclipse/openk/contactbasedata/controller/SalutationControllerTest.java b/src/test/java/org/eclipse/openk/contactbasedata/controller/SalutationControllerTest.java
index b743ca7..b413ba2 100644
--- a/src/test/java/org/eclipse/openk/contactbasedata/controller/SalutationControllerTest.java
+++ b/src/test/java/org/eclipse/openk/contactbasedata/controller/SalutationControllerTest.java
@@ -28,17 +28,24 @@
 import org.springframework.http.MediaType;
 import org.springframework.test.context.ActiveProfiles;
 import org.springframework.test.web.servlet.MockMvc;
+
 import java.util.List;
 import java.util.UUID;
+
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.when;
-import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
 
 @SpringBootTest(classes = ContactBaseDataApplication.class)
 @AutoConfigureMockMvc
-@ActiveProfiles("test") // Todo: Find a better way to configure the tests
-public class SalutationControllerTest {
+@ActiveProfiles("test")
+class SalutationControllerTest {
 
     @MockBean
     private SalutationService saluationService;
@@ -47,7 +54,7 @@
     private MockMvc mockMvc;
 
     @Test
-    public void shouldReturnAllSalutations() throws Exception {
+    void shouldReturnAllSalutations() throws Exception {
         List<SalutationDto> sds = MockDataHelper.mockSalutationsDtos();
 
         when(saluationService.findAllSalutations()).thenReturn(sds);
@@ -58,7 +65,7 @@
     }
 
     @Test
-    public void shouldReturnSingleSalutation() throws Exception {
+    void shouldReturnSingleSalutation() throws Exception {
         SalutationDto salutationDto = MockDataHelper.mockSalutationDto();
 
         when(saluationService.getSalutationByUuid(any(UUID.class))).thenReturn(salutationDto);
@@ -69,7 +76,7 @@
     }
 
     @Test
-    public void shouldInsertSalutation() throws Exception {
+    void shouldInsertSalutation() throws Exception {
         SalutationDto salutationDto = MockDataHelper.mockSalutationDto();
         salutationDto.setType("Master");
         salutationDto.setDescription("of the universe");
@@ -85,7 +92,7 @@
     }
 
     @Test
-    public void shouldUpdateSalutation() throws Exception {
+    void shouldUpdateSalutation() throws Exception {
         SalutationDto salutationDto = MockDataHelper.mockSalutationDto();
         salutationDto.setUuid(UUID.randomUUID());
 
@@ -98,7 +105,7 @@
     }
 
     @Test
-    public void shouldNotUpdateSalutationDueToError() throws Exception {
+    void shouldNotUpdateSalutationDueToError() throws Exception {
         SalutationDto salutationDto = MockDataHelper.mockSalutationDto();
         salutationDto.setUuid(UUID.randomUUID());
 
@@ -112,7 +119,7 @@
     }
 
     @Test
-    public void shouldDeleteSalutation() throws Exception {
+    void shouldDeleteSalutation() throws Exception {
         mockMvc.perform(delete("/salutations/05ff2344-20a5-11ea-978f-2e728ce88125")
                 .contentType(MediaType.APPLICATION_JSON))
                 .andExpect(status().is2xxSuccessful());
diff --git a/src/test/java/org/eclipse/openk/contactbasedata/service/AddressServiceTest.java b/src/test/java/org/eclipse/openk/contactbasedata/service/AddressServiceTest.java
index ff0bee5..92bc7b4 100644
--- a/src/test/java/org/eclipse/openk/contactbasedata/service/AddressServiceTest.java
+++ b/src/test/java/org/eclipse/openk/contactbasedata/service/AddressServiceTest.java
@@ -18,16 +18,13 @@
 import org.eclipse.openk.contactbasedata.exceptions.NotFoundException;
 import org.eclipse.openk.contactbasedata.exceptions.OperationDeniedException;
 import org.eclipse.openk.contactbasedata.model.RefAddressType;
-import org.eclipse.openk.contactbasedata.model.RefSalutation;
 import org.eclipse.openk.contactbasedata.model.TblAddress;
 import org.eclipse.openk.contactbasedata.model.TblContact;
 import org.eclipse.openk.contactbasedata.repository.AddressRepository;
 import org.eclipse.openk.contactbasedata.repository.AddressTypeRepository;
 import org.eclipse.openk.contactbasedata.repository.ContactRepository;
-import org.eclipse.openk.contactbasedata.repository.SalutationRepository;
 import org.eclipse.openk.contactbasedata.support.MockDataHelper;
 import org.eclipse.openk.contactbasedata.viewmodel.AddressDto;
-import org.eclipse.openk.contactbasedata.viewmodel.SalutationDto;
 import org.junit.jupiter.api.Test;
 import org.mockito.Mockito;
 import org.mockito.stubbing.Answer;
@@ -35,6 +32,7 @@
 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.ActiveProfiles;
 import org.springframework.test.context.ContextConfiguration;
 
 import java.util.List;
@@ -44,14 +42,17 @@
 import static org.hibernate.validator.internal.util.Contracts.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertThrows;
-import static org.mockito.ArgumentMatchers.*;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyBoolean;
+import static org.mockito.ArgumentMatchers.anyLong;
+import static org.mockito.ArgumentMatchers.isA;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.when;
 
 @DataJpaTest
 @ContextConfiguration(classes = {TestConfiguration.class})
-
-public class AddressServiceTest {
+@ActiveProfiles("test")
+class AddressServiceTest {
     @Qualifier("myAddressService")
     @Autowired
     private AddressService addressService;
@@ -66,17 +67,17 @@
     private AddressTypeRepository addressTypeRepository;
 
     @Test
-    public void shouldReturnAddressesByContactUuid() {
+    void shouldReturnAddressesByContactUuid() {
 
         List<TblAddress> listTblAddresses = MockDataHelper.mockTblAddressList();
         when(addressRepository.findByTblContactUuid( any(UUID.class)) ).thenReturn(listTblAddresses);
 
         List<AddressDto> dtoList = addressService.getAddressesByContactUuid(UUID.randomUUID());
-        assertEquals(dtoList.size(), 2 );
+        assertEquals(2, dtoList.size() );
     }
 
     @Test
-    public void shouldReturnAddressesByContactUuidAndAddressUuid() {
+    void shouldReturnAddressesByContactUuidAndAddressUuid() {
 
         TblAddress tblAddress = MockDataHelper.mockTblAddress();
         when(addressRepository.findByUuid( any(UUID.class)) ).thenReturn(Optional.of(tblAddress));
@@ -86,7 +87,7 @@
     }
 
     @Test
-    public void shouldUpdateAddress() {
+    void shouldUpdateAddress() {
         AddressDto addressDto = MockDataHelper.mockAddressDto();
         TblAddress tblAddress = MockDataHelper.mockTblAddress();
         TblContact tblContact = MockDataHelper.mockTblContact();
@@ -116,7 +117,7 @@
     }
 
     @Test
-    public void shouldNotUpdateAddress_Exception1() {
+    void shouldNotUpdateAddress_Exception1() {
         AddressDto addressDto = MockDataHelper.mockAddressDto();
         TblAddress tblAddress = MockDataHelper.mockTblAddress();
         TblContact tblContact = MockDataHelper.mockTblContact();
@@ -136,7 +137,7 @@
     }
 
     @Test
-    public void shouldNotUpdateAddress_Exception2() {
+    void shouldNotUpdateAddress_Exception2() {
         AddressDto addressDto = MockDataHelper.mockAddressDto();
         TblAddress tblAddress = MockDataHelper.mockTblAddress();
         TblContact tblContact = MockDataHelper.mockTblContact();
@@ -155,7 +156,7 @@
     }
 
     @Test
-    public void shouldNotUpdateAddress_Exception3() {
+    void shouldNotUpdateAddress_Exception3() {
         AddressDto addressDto = MockDataHelper.mockAddressDto();
         addressDto.setIsMainAddress(true);
         TblAddress tblAddress = MockDataHelper.mockTblAddress();
@@ -180,7 +181,7 @@
     }
 
     @Test
-    public void shouldInsertAddress() {
+    void shouldInsertAddress() {
         AddressDto addressDto = MockDataHelper.mockAddressDto();
         TblAddress tblAddress = MockDataHelper.mockTblAddress();
         TblContact tblContact = MockDataHelper.mockTblContact();
@@ -211,7 +212,7 @@
     }
 
     @Test
-    public void shouldNotInsertAddress_Exception_1() {
+    void shouldNotInsertAddress_Exception_1() {
         AddressDto addressDto = MockDataHelper.mockAddressDto();
         TblAddress tblAddress = MockDataHelper.mockTblAddress();
         TblContact tblContact = MockDataHelper.mockTblContact();
@@ -227,7 +228,7 @@
     }
 
     @Test
-    public void shouldNotInsertAddress_Exception_2() {
+    void shouldNotInsertAddress_Exception_2() {
         AddressDto addressDto = MockDataHelper.mockAddressDto();
         TblAddress tblAddress = MockDataHelper.mockTblAddress();
         TblContact tblContact = MockDataHelper.mockTblContact();
@@ -243,7 +244,7 @@
 
 
     @Test
-    public void shouldNotInsertAddress_Exception3() {
+    void shouldNotInsertAddress_Exception3() {
         AddressDto addressDto = MockDataHelper.mockAddressDto();
         addressDto.setIsMainAddress(true);
         TblAddress tblAddress = MockDataHelper.mockTblAddress();
@@ -261,7 +262,7 @@
 
 
     @Test
-    public void shouldDeleteAddress() {
+    void shouldDeleteAddress() {
         TblAddress tblAddress = MockDataHelper.mockTblAddress();
         TblContact tblContact = MockDataHelper.mockTblContact();
         tblAddress.setTblContact(tblContact);
diff --git a/src/test/java/org/eclipse/openk/contactbasedata/service/AddressTypeServiceTest.java b/src/test/java/org/eclipse/openk/contactbasedata/service/AddressTypeServiceTest.java
index fe46a15..292feb4 100644
--- a/src/test/java/org/eclipse/openk/contactbasedata/service/AddressTypeServiceTest.java
+++ b/src/test/java/org/eclipse/openk/contactbasedata/service/AddressTypeServiceTest.java
@@ -25,6 +25,7 @@
 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.ActiveProfiles;
 import org.springframework.test.context.ContextConfiguration;
 
 import java.util.List;
@@ -40,8 +41,8 @@
 
 @DataJpaTest
 @ContextConfiguration(classes = {TestConfiguration.class})
-
-public class AddressTypeServiceTest {
+@ActiveProfiles("test")
+class AddressTypeServiceTest {
     @Qualifier("myAddressTypeService")
     @Autowired
     private AddressTypeService addressTypeService;
@@ -50,19 +51,19 @@
     private AddressTypeRepository addressTypeRepository;
 
     @Test
-    public void shouldFindAllAddressTypesProperly() {
+    void shouldFindAllAddressTypesProperly() {
         List<RefAddressType> rs = MockDataHelper.mockRefAddressTypes();
         when(addressTypeRepository.findAll()).thenReturn(rs);
         List<AddressTypeDto> retVals = addressTypeService.findAllAddressTypes();
 
         assertEquals(rs.size(), retVals.size());
-        assertEquals(rs.size(), 2);
+        assertEquals(2, rs.size());
         assertEquals(rs.get(1).getUuid(), retVals.get(1).getUuid());
     }
 
 
     @Test
-    public void shouldReturnAddressTypeByUuid() {
+    void shouldReturnAddressTypeByUuid() {
 
         RefAddressType refAddressType = MockDataHelper.mockRefAddressType();
         refAddressType.setType("Testtyp");
@@ -74,7 +75,7 @@
     }
 
     @Test
-    public void shouldInsertAddressType(){
+    void shouldInsertAddressType(){
         RefAddressType refAddressType = MockDataHelper.mockRefAddressType();
 
         refAddressType.setUuid(UUID.fromString("1468275e-200b-11ea-978f-2e728ce88125"));
@@ -92,7 +93,7 @@
     }
 
     @Test
-    public void shouldUpdateAddressType() {
+    void shouldUpdateAddressType() {
 
         RefAddressType addressType = MockDataHelper.mockRefAddressType();
         addressType.setType("Viertadresse");
@@ -110,7 +111,7 @@
 
 
     @Test
-    public void shouldDeleteAddressType() {
+    void shouldDeleteAddressType() {
 
         RefAddressType addressType = MockDataHelper.mockRefAddressType();
 
diff --git a/src/test/java/org/eclipse/openk/contactbasedata/service/AssignmentModulContactServiceTest.java b/src/test/java/org/eclipse/openk/contactbasedata/service/AssignmentModulContactServiceTest.java
index 92b9a83..dc79e6e 100644
--- a/src/test/java/org/eclipse/openk/contactbasedata/service/AssignmentModulContactServiceTest.java
+++ b/src/test/java/org/eclipse/openk/contactbasedata/service/AssignmentModulContactServiceTest.java
@@ -29,6 +29,7 @@
 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.ActiveProfiles;
 import org.springframework.test.context.ContextConfiguration;
 
 import java.util.List;
@@ -38,14 +39,17 @@
 import static org.hibernate.validator.internal.util.Contracts.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertThrows;
-import static org.mockito.ArgumentMatchers.*;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyLong;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.ArgumentMatchers.isA;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.when;
 
 @DataJpaTest
 @ContextConfiguration(classes = {TestConfiguration.class})
-
-public class AssignmentModulContactServiceTest {
+@ActiveProfiles("test")
+class AssignmentModulContactServiceTest {
     @Qualifier("myAssignmentModulContactService")
     @Autowired
     private AssignmentModulContactService assignmentService;
@@ -58,18 +62,18 @@
 
 
     @Test
-    public void shouldReturnAssignmentsByContactUuid() {
+    void shouldReturnAssignmentsByContactUuid() {
 
         List<TblAssignmentModulContact> listTblAssignments = MockDataHelper.mockTblAssignmentsList();
         when(assignmentRepository.findByTblContactUuid( any(UUID.class)) ).thenReturn(listTblAssignments);
 
         List<AssignmentModulContactDto> tblAssignmentsList = assignmentService.getAssignments(UUID.randomUUID());
-        assertEquals(tblAssignmentsList.size(), 2 );
+        assertEquals(2, tblAssignmentsList.size() );
     }
 
 
     @Test
-    public void shouldReturnSingleAssignmentsByContactUuidAndAssignUuid() {
+    void shouldReturnSingleAssignmentsByContactUuidAndAssignUuid() {
         TblAssignmentModulContact tblAssignment = MockDataHelper.mockTblAssignmentModulContact();
         when(assignmentRepository.findByUuid(any(UUID.class)) ).thenReturn(Optional.of(tblAssignment));
 
@@ -86,7 +90,7 @@
                 assignmentService.getAssignment(assignmentDto.getContactUuid(), UUID.randomUUID()));
     }
     @Test
-    public void shouldUpdateAssignment() {
+    void shouldUpdateAssignment() {
         TblAssignmentModulContact tblAssignment = MockDataHelper.mockTblAssignmentModulContact();
         AssignmentModulContactDto assignmentDto = MockDataHelper.mockAssignmentModulContactDto();
         TblContact tblContact = MockDataHelper.mockTblContact();
@@ -109,7 +113,7 @@
     }
 
     @Test
-    public void shouldNotUpdateAssignment_Exception1() {
+    void shouldNotUpdateAssignment_Exception1() {
         TblAssignmentModulContact tblAssignment = MockDataHelper.mockTblAssignmentModulContact();
         AssignmentModulContactDto assignmentDto = MockDataHelper.mockAssignmentModulContactDto();
         TblContact tblContact = MockDataHelper.mockTblContact();
@@ -124,7 +128,7 @@
     }
 
     @Test
-    public void shouldNotUpdateAssignment_Exception2() {
+    void shouldNotUpdateAssignment_Exception2() {
         TblAssignmentModulContact tblAssignment = MockDataHelper.mockTblAssignmentModulContact();
         AssignmentModulContactDto assignmentDto = MockDataHelper.mockAssignmentModulContactDto();
         TblContact tblContact = MockDataHelper.mockTblContact();
@@ -139,7 +143,7 @@
     }
 
     @Test
-    public void shouldNotUpdateAssignment_Exception3() {
+    void shouldNotUpdateAssignment_Exception3() {
         TblAssignmentModulContact tblAssignment = MockDataHelper.mockTblAssignmentModulContact();
         AssignmentModulContactDto assignmentDto = MockDataHelper.mockAssignmentModulContactDto();
         TblContact tblContact = MockDataHelper.mockTblContact();
@@ -155,7 +159,7 @@
     }
 
     @Test
-    public void shouldInsertAssignment() {
+    void shouldInsertAssignment() {
         TblAssignmentModulContact tblAssignment = MockDataHelper.mockTblAssignmentModulContact();
         AssignmentModulContactDto assignmentDto = MockDataHelper.mockAssignmentModulContactDto();
         TblContact tblContact = MockDataHelper.mockTblContact();
@@ -179,7 +183,7 @@
     }
 
     @Test
-    public void shouldNotInsertAssignment_Exception_1() {
+    void shouldNotInsertAssignment_Exception_1() {
         TblAssignmentModulContact tblAssignment = MockDataHelper.mockTblAssignmentModulContact();
         AssignmentModulContactDto assignmentDto = MockDataHelper.mockAssignmentModulContactDto();
         TblContact tblContact = MockDataHelper.mockTblContact();
@@ -196,7 +200,7 @@
 
 
     @Test
-    public void shouldNotInsertAssignment_Exception_2() {
+    void shouldNotInsertAssignment_Exception_2() {
         TblAssignmentModulContact tblAssignment = MockDataHelper.mockTblAssignmentModulContact();
         AssignmentModulContactDto assignmentDto = MockDataHelper.mockAssignmentModulContactDto();
         TblContact tblContact = MockDataHelper.mockTblContact();
@@ -212,7 +216,7 @@
 
 
     @Test
-    public void shouldDeleteAssignment() {
+    void shouldDeleteAssignment() {
         TblAssignmentModulContact tblAssignment = MockDataHelper.mockTblAssignmentModulContact();
         TblContact tblContact = MockDataHelper.mockTblContact();
         tblAssignment.setTblContact(tblContact);
diff --git a/src/test/java/org/eclipse/openk/contactbasedata/service/AuthNAuthServiceTest.java b/src/test/java/org/eclipse/openk/contactbasedata/service/AuthNAuthServiceTest.java
index 27aba4b..f90378d 100644
--- a/src/test/java/org/eclipse/openk/contactbasedata/service/AuthNAuthServiceTest.java
+++ b/src/test/java/org/eclipse/openk/contactbasedata/service/AuthNAuthServiceTest.java
@@ -29,17 +29,21 @@
 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.ActiveProfiles;
 import org.springframework.test.context.ContextConfiguration;
 
 import java.util.List;
 
 import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.*;
+import static org.mockito.Mockito.anyString;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
 
 @DataJpaTest
 @ContextConfiguration(classes = {TestConfiguration.class})
-
-public class AuthNAuthServiceTest {
+@ActiveProfiles("test")
+class AuthNAuthServiceTest {
     private static final long MAIL_ID = 1L;
     private static final long TEL_ID = 2L;
 
@@ -60,7 +64,7 @@
     private CommunicationTypeRepository communicationTypeRepository;
 
     @Test
-    public void shouldSynchronizeAuthnAuthRunThrou1() {
+    void shouldSynchronizeAuthnAuthRunThrou1() {
         List<TblInternalPerson> internalPeople = MockDataHelper.mockTblInternalPersonPage().getContent();
         internalPeople.get(1).setUserRef("karlK");
         when(internalPersonRepository.saveAll(any( List.class ))).thenReturn(Lists.emptyList());
diff --git a/src/test/java/org/eclipse/openk/contactbasedata/service/CommunicationServiceTest.java b/src/test/java/org/eclipse/openk/contactbasedata/service/CommunicationServiceTest.java
index ac52b17..d4a8a78 100644
--- a/src/test/java/org/eclipse/openk/contactbasedata/service/CommunicationServiceTest.java
+++ b/src/test/java/org/eclipse/openk/contactbasedata/service/CommunicationServiceTest.java
@@ -17,8 +17,13 @@
 import org.eclipse.openk.contactbasedata.config.TestConfiguration;
 import org.eclipse.openk.contactbasedata.exceptions.NotFoundException;
 import org.eclipse.openk.contactbasedata.exceptions.OperationDeniedException;
-import org.eclipse.openk.contactbasedata.model.*;
-import org.eclipse.openk.contactbasedata.repository.*;
+import org.eclipse.openk.contactbasedata.model.RefCommunicationType;
+import org.eclipse.openk.contactbasedata.model.TblAddress;
+import org.eclipse.openk.contactbasedata.model.TblCommunication;
+import org.eclipse.openk.contactbasedata.model.TblContact;
+import org.eclipse.openk.contactbasedata.repository.CommunicationRepository;
+import org.eclipse.openk.contactbasedata.repository.CommunicationTypeRepository;
+import org.eclipse.openk.contactbasedata.repository.ContactRepository;
 import org.eclipse.openk.contactbasedata.support.MockDataHelper;
 import org.eclipse.openk.contactbasedata.viewmodel.CommunicationDto;
 import org.junit.jupiter.api.Test;
@@ -28,21 +33,26 @@
 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.ActiveProfiles;
 import org.springframework.test.context.ContextConfiguration;
+
 import java.util.List;
 import java.util.Optional;
 import java.util.UUID;
+
 import static org.hibernate.validator.internal.util.Contracts.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertThrows;
-import static org.mockito.ArgumentMatchers.*;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyLong;
+import static org.mockito.ArgumentMatchers.isA;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.when;
 
 @DataJpaTest
 @ContextConfiguration(classes = {TestConfiguration.class})
-
-public class CommunicationServiceTest {
+@ActiveProfiles("test")
+class CommunicationServiceTest {
     @Qualifier("myCommunicationService")
     @Autowired
     private CommunicationService communicationService;
@@ -57,17 +67,17 @@
     private CommunicationTypeRepository communicationTypeRepository;
 
     @Test
-    public void shouldReturnAddressesByContactUuid() {
+    void shouldReturnAddressesByContactUuid() {
 
         List<TblCommunication> listTblCommunications = MockDataHelper.mockTblCommunicationsList();
         when(communicationRepository.findByTblContactUuid( any(UUID.class)) ).thenReturn(listTblCommunications);
 
         List<CommunicationDto> dtoList = communicationService.getCommunicationsByContactUuid(UUID.randomUUID());
-        assertEquals(dtoList.size(), 2 );
+        assertEquals(2, dtoList.size() );
     }
 
     @Test
-    public void shouldReturnCommunicationsByContactUuidAndCommunicationUuid() {
+    void shouldReturnCommunicationsByContactUuidAndCommunicationUuid() {
 
         TblCommunication tblCommunication = MockDataHelper.mockTblCommunication();
         when(communicationRepository.findByUuid( any(UUID.class)) ).thenReturn(Optional.of(tblCommunication));
@@ -77,7 +87,7 @@
     }
 
     @Test
-    public void shouldUpdateCommunication() {
+    void shouldUpdateCommunication() {
         CommunicationDto communicationDto = MockDataHelper.mockCommunicationDto();
         TblCommunication tblCommunication = MockDataHelper.mockTblCommunication();
         TblContact tblContact = MockDataHelper.mockTblContact();
@@ -99,7 +109,7 @@
     }
 
     @Test
-    public void shouldNotUpdateCommunication_Exception1() {
+    void shouldNotUpdateCommunication_Exception1() {
         CommunicationDto communicationDto = MockDataHelper.mockCommunicationDto();
         TblCommunication tblCommunication = MockDataHelper.mockTblCommunication();
         TblContact tblContact = MockDataHelper.mockTblContact();
@@ -119,7 +129,7 @@
     }
 
     @Test
-    public void shouldNotUpdateCommunication_Exception2() {
+    void shouldNotUpdateCommunication_Exception2() {
         CommunicationDto communicationDto = MockDataHelper.mockCommunicationDto();
         TblCommunication tblCommunication = MockDataHelper.mockTblCommunication();
         TblContact tblContact = MockDataHelper.mockTblContact();
@@ -140,7 +150,7 @@
     }
 
     @Test
-    public void shouldNotUpdateCommunication_Exception3() {
+    void shouldNotUpdateCommunication_Exception3() {
         CommunicationDto communicationDto = MockDataHelper.mockCommunicationDto();
         TblCommunication tblCommunication = MockDataHelper.mockTblCommunication();
         TblContact tblContact = MockDataHelper.mockTblContact();
@@ -163,7 +173,7 @@
     }
 
     @Test
-    public void shouldInsertCommunication() {
+    void shouldInsertCommunication() {
         CommunicationDto communicationDto = MockDataHelper.mockCommunicationDto();
         TblCommunication tblCommunication = MockDataHelper.mockTblCommunication();
         TblContact tblContact = MockDataHelper.mockTblContact();
@@ -184,7 +194,7 @@
     }
 
     @Test
-    public void shouldNotInsertCommunication_Exception_1() {
+    void shouldNotInsertCommunication_Exception_1() {
         CommunicationDto communicationDto = MockDataHelper.mockCommunicationDto();
         TblCommunication tblCommunication = MockDataHelper.mockTblCommunication();
         TblContact tblContact = MockDataHelper.mockTblContact();
@@ -200,7 +210,7 @@
     }
 
     @Test
-    public void shouldNotInsertCommunication_Exception_2() {
+    void shouldNotInsertCommunication_Exception_2() {
         CommunicationDto communicationDto = MockDataHelper.mockCommunicationDto();
         TblCommunication tblCommunication = MockDataHelper.mockTblCommunication();
         TblContact tblContact = MockDataHelper.mockTblContact();
@@ -216,7 +226,7 @@
 
 
     @Test
-    public void shouldNotInsertCommunication_Exception3() {
+    void shouldNotInsertCommunication_Exception3() {
         CommunicationDto communicationDto = MockDataHelper.mockCommunicationDto();
         TblCommunication tblCommunication = MockDataHelper.mockTblCommunication();
         RefCommunicationType refCommunicationType = MockDataHelper.mockRefCommunicationType();
@@ -234,7 +244,7 @@
 
 
     @Test
-    public void shouldDeleteCommunication() {
+    void shouldDeleteCommunication() {
         TblCommunication tblCommunication = MockDataHelper.mockTblCommunication();
         TblContact tblContact = MockDataHelper.mockTblContact();
         tblCommunication.setTblContact(tblContact);
diff --git a/src/test/java/org/eclipse/openk/contactbasedata/service/CommunicationTypeServiceTest.java b/src/test/java/org/eclipse/openk/contactbasedata/service/CommunicationTypeServiceTest.java
index 1121c09..6e641b3 100644
--- a/src/test/java/org/eclipse/openk/contactbasedata/service/CommunicationTypeServiceTest.java
+++ b/src/test/java/org/eclipse/openk/contactbasedata/service/CommunicationTypeServiceTest.java
@@ -16,18 +16,16 @@
 
 import org.eclipse.openk.contactbasedata.config.TestConfiguration;
 import org.eclipse.openk.contactbasedata.model.RefCommunicationType;
-import org.eclipse.openk.contactbasedata.model.RefSalutation;
 import org.eclipse.openk.contactbasedata.repository.CommunicationTypeRepository;
-import org.eclipse.openk.contactbasedata.repository.SalutationRepository;
 import org.eclipse.openk.contactbasedata.support.MockDataHelper;
 import org.eclipse.openk.contactbasedata.viewmodel.CommunicationTypeDto;
-import org.eclipse.openk.contactbasedata.viewmodel.SalutationDto;
 import org.junit.jupiter.api.Test;
 import org.mockito.Mockito;
 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.ActiveProfiles;
 import org.springframework.test.context.ContextConfiguration;
 
 import java.util.List;
@@ -43,8 +41,8 @@
 
 @DataJpaTest
 @ContextConfiguration(classes = {TestConfiguration.class})
-
-public class CommunicationTypeServiceTest {
+@ActiveProfiles("test")
+class CommunicationTypeServiceTest {
     @Qualifier("myCommunicationTypeService")
     @Autowired
     private CommunicationTypeService communicationTypeService;
@@ -53,19 +51,19 @@
     private CommunicationTypeRepository communicationTypeRepository;
 
     @Test
-    public void shouldFindAllCommunicationTypes() {
+    void shouldFindAllCommunicationTypes() {
         List<RefCommunicationType> rct = MockDataHelper.mockRefCommunicationTypeList();
         when(communicationTypeRepository.findAll()).thenReturn(rct);
         List<CommunicationTypeDto> retVals = communicationTypeService.findCommunicationTypes();
 
         assertEquals(rct.size(), retVals.size());
-        assertEquals(rct.size(), 3);
+        assertEquals(3, rct.size());
         assertEquals(rct.get(1).getUuid(), retVals.get(1).getUuid());
     }
 
 
     @Test
-    public void shouldReturnCommunicationTypeByUuid() {
+    void shouldReturnCommunicationTypeByUuid() {
 
         RefCommunicationType rct = MockDataHelper.mockRefCommunicationType();
         rct.setType("Testtyp");
@@ -77,7 +75,7 @@
     }
 
     @Test
-    public void shouldInsertCommunicationType(){
+    void shouldInsertCommunicationType(){
         RefCommunicationType rfc = MockDataHelper.mockRefCommunicationType();
 
         rfc.setUuid(UUID.fromString("b1a9b6de-3129-11ea-978f-2e728ce88125"));
@@ -95,7 +93,7 @@
     }
 
     @Test
-    public void shouldUpdateCommunicationType() {
+    void shouldUpdateCommunicationType() {
 
         RefCommunicationType rfc = MockDataHelper.mockRefCommunicationType();
         rfc.setType("Rauchzeichen");
@@ -113,7 +111,7 @@
 
 
     @Test
-    public void shouldDeleteCommunicationType() {
+    void shouldDeleteCommunicationType() {
 
         RefCommunicationType rft = MockDataHelper.mockRefCommunicationType();
 
diff --git a/src/test/java/org/eclipse/openk/contactbasedata/service/CompanyServiceTest.java b/src/test/java/org/eclipse/openk/contactbasedata/service/CompanyServiceTest.java
index fb6d18e..533e7d6 100644
--- a/src/test/java/org/eclipse/openk/contactbasedata/service/CompanyServiceTest.java
+++ b/src/test/java/org/eclipse/openk/contactbasedata/service/CompanyServiceTest.java
@@ -33,20 +33,26 @@
 import org.springframework.boot.test.mock.mockito.MockBean;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
+import org.springframework.test.context.ActiveProfiles;
 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.*;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.*;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
 
 @DataJpaTest
 @ContextConfiguration(classes = {TestConfiguration.class})
-
-public class CompanyServiceTest {
+@ActiveProfiles("test")
+class CompanyServiceTest {
     @Qualifier("myCompanyService")
     @Autowired
     private CompanyService companyService;
@@ -64,7 +70,7 @@
     private PersonTypeRepository personTypeRepository;
 
     @Test
-    public void shouldFindACompanyProperly() {
+    void shouldFindACompanyProperly() {
         TblCompany ep = MockDataHelper.mockCompany();
         when(companyRepository.findByTblContactUuid(any(UUID.class))).thenReturn(Optional.of(ep));
         CompanyDto dto = companyService.findCompany(UUID.randomUUID());
@@ -74,7 +80,7 @@
 
 
     @Test
-    public void shouldFindSeveralCompaniesProperly() {
+    void shouldFindSeveralCompaniesProperly() {
         Page<TblCompany> page1 = MockDataHelper.mockCompanyPage();
         Page<TblCompany> page2 = MockDataHelper.mockCompanyPage();
         when(companyRepository.findAll(any(Pageable.class))).thenReturn(page1);
@@ -91,14 +97,14 @@
                 .findByContact_anonymizedFalseOrContact_anonymizedIsNull(any(Pageable.class));
     }
     @Test
-    public void shouldThrowInErrorCaseWithCompany() {
+    void shouldThrowInErrorCaseWithCompany() {
         TblCompany ep = MockDataHelper.mockCompany();
         when(companyRepository.findByTblContactUuid(any(UUID.class))).thenReturn(Optional.empty());
         assertThrows(NotFoundException.class, () -> companyService.findCompany(UUID.randomUUID()));
     }
 
     @Test
-    public void shouldUpdateCompany() {
+    void shouldUpdateCompany() {
         CompanyDto epDto = MockDataHelper.mockCompanyDto();
         TblCompany epTbl = MockDataHelper.mockCompany();
         when(companyRepository.findByTblContactUuid(any(UUID.class))).thenReturn(Optional.of(epTbl));
@@ -122,7 +128,7 @@
     }
 
     @Test
-    public void shouldNotUpdateCompany_Exception1() {
+    void shouldNotUpdateCompany_Exception1() {
         CompanyDto epDto = MockDataHelper.mockCompanyDto();
         TblCompany epTbl = MockDataHelper.mockCompany();
         when(companyRepository.findByTblContactUuid(any(UUID.class))).thenReturn(Optional.empty());
@@ -141,7 +147,7 @@
     }
 
     @Test
-    public void shouldInsertCompany() {
+    void shouldInsertCompany() {
         CompanyDto epDto = MockDataHelper.mockCompanyDto();
         epDto.setContactUuid(null);
 
@@ -165,7 +171,7 @@
     }
 
     @Test
-    public void findContactPersonsToCompanyWithSuccess() {
+    void findContactPersonsToCompanyWithSuccess() {
         TblCompany company = MockDataHelper.mockCompany();
         company.setContactPersons( MockDataHelper.mockTblContactPersons());
         company.getContactPersons().get(1).getContact().setAnonymized(true);
@@ -180,7 +186,7 @@
 
 
     @Test
-    public void findContactPersonsToCompanyWithException() {
+    void findContactPersonsToCompanyWithException() {
         when(companyRepository.findByTblContactUuid(any(UUID.class))).thenReturn(Optional.empty());
         assertThrows( NotFoundException.class, ()-> companyService.findContactPersonsToCompany(UUID.randomUUID(), false));
     }
diff --git a/src/test/java/org/eclipse/openk/contactbasedata/service/ContactAnonymizerServiceTest.java b/src/test/java/org/eclipse/openk/contactbasedata/service/ContactAnonymizerServiceTest.java
index 60906b5..5062700 100644
--- a/src/test/java/org/eclipse/openk/contactbasedata/service/ContactAnonymizerServiceTest.java
+++ b/src/test/java/org/eclipse/openk/contactbasedata/service/ContactAnonymizerServiceTest.java
@@ -18,24 +18,34 @@
 import org.eclipse.openk.contactbasedata.constants.Constants;
 import org.eclipse.openk.contactbasedata.model.TblContact;
 import org.eclipse.openk.contactbasedata.support.MockDataHelper;
-import org.eclipse.openk.contactbasedata.viewmodel.*;
+import org.eclipse.openk.contactbasedata.viewmodel.AddressDto;
+import org.eclipse.openk.contactbasedata.viewmodel.CommunicationDto;
+import org.eclipse.openk.contactbasedata.viewmodel.CompanyDto;
+import org.eclipse.openk.contactbasedata.viewmodel.ContactPersonDto;
+import org.eclipse.openk.contactbasedata.viewmodel.ExternalPersonDto;
+import org.eclipse.openk.contactbasedata.viewmodel.InternalPersonDto;
 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.ActiveProfiles;
 import org.springframework.test.context.ContextConfiguration;
 
 import java.util.ArrayList;
 import java.util.List;
 import java.util.UUID;
 
-import static org.junit.jupiter.api.Assertions.*;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotEquals;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.mockito.Mockito.when;
 
 @DataJpaTest
 @ContextConfiguration(classes = {TestConfiguration.class})
-public class ContactAnonymizerServiceTest {
+@ActiveProfiles("test")
+class ContactAnonymizerServiceTest {
     @Qualifier("myContactAnonymizerService")
     @Autowired
     private ContactAnonymizerService contactAnonymizerService;
@@ -62,7 +72,7 @@
     private CommunicationService communicationService;
 
     @Test
-    public void shouldAnonymizeInternalPerson() {
+    void shouldAnonymizeInternalPerson() {
         UUID theContactUuid = UUID.randomUUID();
         TblContact tblIntPers = MockDataHelper.mockTblContact();
         tblIntPers.setUuid(theContactUuid);
@@ -95,7 +105,7 @@
     }
 
     @Test
-    public void shouldAnonymizeExternalPerson() {
+    void shouldAnonymizeExternalPerson() {
         UUID theContactUuid = UUID.randomUUID();
         TblContact tblExtPers = MockDataHelper.mockTblContact();
         tblExtPers.setUuid(theContactUuid);
@@ -126,7 +136,7 @@
 
 
     @Test
-    public void shouldAnonymizeCompany() {
+    void shouldAnonymizeCompany() {
         UUID theContactUuid = UUID.randomUUID();
         TblContact tblCompany = MockDataHelper.mockTblContact();
         tblCompany.setUuid(theContactUuid);
diff --git a/src/test/java/org/eclipse/openk/contactbasedata/service/ContactPersonServiceTest.java b/src/test/java/org/eclipse/openk/contactbasedata/service/ContactPersonServiceTest.java
index ef3a722..640c5e7 100644
--- a/src/test/java/org/eclipse/openk/contactbasedata/service/ContactPersonServiceTest.java
+++ b/src/test/java/org/eclipse/openk/contactbasedata/service/ContactPersonServiceTest.java
@@ -16,8 +16,16 @@
 
 import org.eclipse.openk.contactbasedata.config.TestConfiguration;
 import org.eclipse.openk.contactbasedata.exceptions.NotFoundException;
-import org.eclipse.openk.contactbasedata.model.*;
-import org.eclipse.openk.contactbasedata.repository.*;
+import org.eclipse.openk.contactbasedata.model.RefPersonType;
+import org.eclipse.openk.contactbasedata.model.RefSalutation;
+import org.eclipse.openk.contactbasedata.model.TblCompany;
+import org.eclipse.openk.contactbasedata.model.TblContact;
+import org.eclipse.openk.contactbasedata.model.TblContactPerson;
+import org.eclipse.openk.contactbasedata.repository.CompanyRepository;
+import org.eclipse.openk.contactbasedata.repository.ContactPersonRepository;
+import org.eclipse.openk.contactbasedata.repository.ContactRepository;
+import org.eclipse.openk.contactbasedata.repository.PersonTypeRepository;
+import org.eclipse.openk.contactbasedata.repository.SalutationRepository;
 import org.eclipse.openk.contactbasedata.support.MockDataHelper;
 import org.eclipse.openk.contactbasedata.viewmodel.ContactPersonDto;
 import org.junit.jupiter.api.Test;
@@ -27,10 +35,15 @@
 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.ActiveProfiles;
 import org.springframework.test.context.ContextConfiguration;
+
 import java.util.Optional;
 import java.util.UUID;
-import static org.junit.jupiter.api.Assertions.*;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.isA;
 import static org.mockito.Mockito.times;
@@ -38,8 +51,8 @@
 
 @DataJpaTest
 @ContextConfiguration(classes = {TestConfiguration.class})
-
-public class ContactPersonServiceTest {
+@ActiveProfiles("test")
+class ContactPersonServiceTest {
     @Qualifier("myContactPersonService")
     @Autowired
     private ContactPersonService contactPersonService;
@@ -60,7 +73,7 @@
     private CompanyRepository companyRepository;
 
     @Test
-    public void shouldFindAContactPersonProperly() {
+    void shouldFindAContactPersonProperly() {
         TblContactPerson cp = MockDataHelper.mockTblContactPerson();
         when(contactPersonRepository.findByTblContactUuid(any(UUID.class))).thenReturn(Optional.of(cp));
         ContactPersonDto dto = contactPersonService.findContactPerson(UUID.randomUUID());
@@ -69,14 +82,14 @@
     }
 
     @Test
-    public void shouldThrowNotFoundErrorContactPerson() {
+    void shouldThrowNotFoundErrorContactPerson() {
         TblContactPerson cp = MockDataHelper.mockTblContactPerson();
         when(contactPersonRepository.findByTblContactUuid(any(UUID.class))).thenReturn(Optional.empty());
         assertThrows(NotFoundException.class, () -> contactPersonService.findContactPerson(UUID.randomUUID()));
     }
 
     @Test
-    public void shouldUpdateContactPerson() {
+    void shouldUpdateContactPerson() {
         ContactPersonDto cpDto = MockDataHelper.mockContactPersonDto();
         TblContactPerson cpTbl = MockDataHelper.mockTblContactPerson();
 
@@ -109,7 +122,7 @@
 
 
     @Test
-    public void shouldNotUpdateContactPerson_Exception1() {
+    void shouldNotUpdateContactPerson_Exception1() {
         ContactPersonDto epDto = MockDataHelper.mockContactPersonDto();
         TblContactPerson cpTbl = MockDataHelper.mockTblContactPerson();
         when(contactPersonRepository.findByTblContactUuid(any(UUID.class))).thenReturn(Optional.empty());
@@ -128,7 +141,7 @@
     }
 
     @Test
-    public void shouldNotUpdateContactPerson_Exception2() {
+    void shouldNotUpdateContactPerson_Exception2() {
         ContactPersonDto cpDto = MockDataHelper.mockContactPersonDto();
         TblContactPerson cpTbl = MockDataHelper.mockTblContactPerson();
         when(contactPersonRepository.findByTblContactUuid(any(UUID.class))).thenReturn(Optional.of(cpTbl));
@@ -148,7 +161,7 @@
 
 
     @Test
-    public void shouldInsertContactPerson() {
+    void shouldInsertContactPerson() {
         ContactPersonDto cpDto = MockDataHelper.mockContactPersonDto();
         cpDto.setContactUuid(null);
         RefSalutation refSalutation = MockDataHelper.mockRefSalutation();
@@ -181,7 +194,7 @@
     }
     
     @Test
-    public void shouldDeleteContactPerson() {
+    void shouldDeleteContactPerson() {
         TblContactPerson tblContactPerson = MockDataHelper.mockTblContactPerson();
         TblContact tblContact = MockDataHelper.mockTblContact();
         tblContactPerson.setContact(tblContact);
diff --git a/src/test/java/org/eclipse/openk/contactbasedata/service/ContactServiceTest.java b/src/test/java/org/eclipse/openk/contactbasedata/service/ContactServiceTest.java
index c8d9cb4..65623b4 100644
--- a/src/test/java/org/eclipse/openk/contactbasedata/service/ContactServiceTest.java
+++ b/src/test/java/org/eclipse/openk/contactbasedata/service/ContactServiceTest.java
@@ -27,6 +27,7 @@
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.PageRequest;
 import org.springframework.data.domain.Pageable;
+import org.springframework.test.context.ActiveProfiles;
 import org.springframework.test.context.ContextConfiguration;
 
 import java.util.Date;
@@ -34,14 +35,16 @@
 import java.util.UUID;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.mockito.ArgumentMatchers.*;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyBoolean;
+import static org.mockito.ArgumentMatchers.isNull;
 import static org.mockito.Mockito.when;
 
 //@RunWith(SpringRunner.class)
 @DataJpaTest
 @ContextConfiguration(classes = {TestConfiguration.class})
-
-public class ContactServiceTest {
+@ActiveProfiles("test")
+class ContactServiceTest {
     @Qualifier("myContactService")
     @Autowired
     private ContactService contactService;
@@ -50,7 +53,7 @@
     private DetailedContactRepository detailedContactRepository;
 
     @Test
-    public void shouldFindDetailedContactsProperly() {
+    void shouldFindDetailedContactsProperly() {
         Page<VwDetailedContact> mockPaged = MockDataHelper.mockVDetailedContactPage();
         when(detailedContactRepository.findByFilter(isNull(), isNull(), isNull(), isNull(),
                 anyBoolean(), any( Date.class), anyBoolean(), anyBoolean(), anyBoolean(), any(Pageable.class))).thenReturn(mockPaged);
@@ -62,7 +65,7 @@
     }
 
     @Test
-    public void shouldFindSingleDetailedContactProperly() {
+    void shouldFindSingleDetailedContactProperly() {
         VwDetailedContact mockContact = MockDataHelper.mockVDetailedContact();
         when(detailedContactRepository.findByUuid(any(UUID.class))).thenReturn(Optional.of(mockContact));
 
diff --git a/src/test/java/org/eclipse/openk/contactbasedata/service/ExternalPersonServiceTest.java b/src/test/java/org/eclipse/openk/contactbasedata/service/ExternalPersonServiceTest.java
index 0bfe889..952d758 100644
--- a/src/test/java/org/eclipse/openk/contactbasedata/service/ExternalPersonServiceTest.java
+++ b/src/test/java/org/eclipse/openk/contactbasedata/service/ExternalPersonServiceTest.java
@@ -34,19 +34,25 @@
 import org.springframework.boot.test.mock.mockito.MockBean;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
+import org.springframework.test.context.ActiveProfiles;
 import org.springframework.test.context.ContextConfiguration;
 
 import java.util.Optional;
 import java.util.UUID;
 
-import static org.junit.jupiter.api.Assertions.*;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.*;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
 
 @DataJpaTest
 @ContextConfiguration(classes = {TestConfiguration.class})
-
-public class ExternalPersonServiceTest {
+@ActiveProfiles("test")
+class ExternalPersonServiceTest {
     @Qualifier("myExternalPersonService")
     @Autowired
     private ExternalPersonService externalPersonService;
@@ -64,7 +70,7 @@
     private PersonTypeRepository personTypeRepository;
 
     @Test
-    public void shouldFindAnExternalPersonProperly() {
+    void shouldFindAnExternalPersonProperly() {
         TblExternalPerson ep = MockDataHelper.mockExternalPerson();
         when(externalPersonRepository.findByTblContactUuid(any(UUID.class))).thenReturn(Optional.of(ep));
         ExternalPersonDto dto = externalPersonService.findExternalPerson(UUID.randomUUID());
@@ -73,7 +79,7 @@
     }
 
     @Test
-    public void shouldFindSeveralExternalPersonsProperly() {
+    void shouldFindSeveralExternalPersonsProperly() {
         Page<TblExternalPerson> page1 = MockDataHelper.mockExternalPersonPage();
         Page<TblExternalPerson> page2 = MockDataHelper.mockExternalPersonPage();
         when(externalPersonRepository.findAll(any(Pageable.class))).thenReturn(page1);
@@ -91,14 +97,14 @@
     }
 
     @Test
-    public void shouldThrowInErrorCaseWithExternalPerson() {
+    void shouldThrowInErrorCaseWithExternalPerson() {
         TblExternalPerson ep = MockDataHelper.mockExternalPerson();
         when(externalPersonRepository.findByTblContactUuid(any(UUID.class))).thenReturn(Optional.empty());
         assertThrows(NotFoundException.class, () -> externalPersonService.findExternalPerson(UUID.randomUUID()));
     }
 
     @Test
-    public void shouldUpdateExternalPerson() {
+    void shouldUpdateExternalPerson() {
         ExternalPersonDto epDto = MockDataHelper.mockExternalPersonDto();
         TblExternalPerson epTbl = MockDataHelper.mockExternalPerson();
         when(externalPersonRepository.findByTblContactUuid(any(UUID.class))).thenReturn(Optional.of(epTbl));
@@ -125,7 +131,7 @@
     }
 
     @Test
-    public void shouldNotUpdateExternalPerson_Exception1() {
+    void shouldNotUpdateExternalPerson_Exception1() {
         ExternalPersonDto epDto = MockDataHelper.mockExternalPersonDto();
         TblExternalPerson epTbl = MockDataHelper.mockExternalPerson();
         when(externalPersonRepository.findByTblContactUuid(any(UUID.class))).thenReturn(Optional.empty());
@@ -144,7 +150,7 @@
     }
 
     @Test
-    public void shouldNotUpdateExternalPerson_Exception2() {
+    void shouldNotUpdateExternalPerson_Exception2() {
         ExternalPersonDto epDto = MockDataHelper.mockExternalPersonDto();
         TblExternalPerson epTbl = MockDataHelper.mockExternalPerson();
         when(externalPersonRepository.findByTblContactUuid(any(UUID.class))).thenReturn(Optional.of(epTbl));
@@ -162,7 +168,7 @@
         assertThrows( NotFoundException.class, () -> externalPersonService.updateExternalPerson(epDto));
     }
     @Test
-    public void shouldNotUpdateExternalPerson_Exception3() {
+    void shouldNotUpdateExternalPerson_Exception3() {
         ExternalPersonDto epDto = MockDataHelper.mockExternalPersonDto();
         TblExternalPerson epTbl = MockDataHelper.mockExternalPerson();
         when(externalPersonRepository.findByTblContactUuid(any(UUID.class))).thenReturn(Optional.of(epTbl));
@@ -181,7 +187,7 @@
     }
 
     @Test
-    public void shouldInsertExternalPerson() {
+    void shouldInsertExternalPerson() {
         ExternalPersonDto epDto = MockDataHelper.mockExternalPersonDto();
         epDto.setContactUuid(null);
         RefSalutation refSalutation = MockDataHelper.mockRefSalutation();
diff --git a/src/test/java/org/eclipse/openk/contactbasedata/service/InternalPersonServiceTest.java b/src/test/java/org/eclipse/openk/contactbasedata/service/InternalPersonServiceTest.java
index b40b879..5475968 100644
--- a/src/test/java/org/eclipse/openk/contactbasedata/service/InternalPersonServiceTest.java
+++ b/src/test/java/org/eclipse/openk/contactbasedata/service/InternalPersonServiceTest.java
@@ -34,20 +34,25 @@
 import org.springframework.boot.test.mock.mockito.MockBean;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
+import org.springframework.test.context.ActiveProfiles;
 import org.springframework.test.context.ContextConfiguration;
 
 import java.util.Optional;
 import java.util.UUID;
 
-import static org.junit.jupiter.api.Assertions.*;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyString;
-import static org.mockito.Mockito.*;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
 
 @DataJpaTest
 @ContextConfiguration(classes = {TestConfiguration.class})
-
-public class InternalPersonServiceTest {
+@ActiveProfiles("test")
+class InternalPersonServiceTest {
     @Qualifier("myInternalPersonService")
     @Autowired
     private InternalPersonService internalPersonService;
@@ -65,7 +70,7 @@
     private PersonTypeRepository personTypeRepository;
 
     @Test
-    public void shouldFindAnInternalPersonProperly() {
+    void shouldFindAnInternalPersonProperly() {
         TblInternalPerson ip = MockDataHelper.mockInternalPerson();
         when(internalPersonRepository.findByTblContactUuid(any(UUID.class))).thenReturn(Optional.of(ip));
         InternalPersonDto dto = internalPersonService.findInternalPerson(UUID.randomUUID());
@@ -74,7 +79,7 @@
     }
 
     @Test
-    public void shouldFindAllInternalPersons() {
+    void shouldFindAllInternalPersons() {
         Page<TblInternalPerson> ipPage = MockDataHelper.mockTblInternalPersonPage();
         when(internalPersonRepository.findAll(any(Pageable.class))).thenReturn(ipPage);
         when(internalPersonRepository.findByFilter(anyString(), anyString(), any(Pageable.class))).thenReturn(ipPage);
@@ -91,14 +96,14 @@
     }
 
     @Test
-    public void shouldThrowInErrorCaseWithInternalPerson() {
+    void shouldThrowInErrorCaseWithInternalPerson() {
         TblInternalPerson ip = MockDataHelper.mockInternalPerson();
         when(internalPersonRepository.findByTblContactUuid(any(UUID.class))).thenReturn(Optional.empty());
         assertThrows(NotFoundException.class, () -> internalPersonService.findInternalPerson(UUID.randomUUID()));
     }
 
     @Test
-    public void shouldUpdateInternalPerson() {
+    void shouldUpdateInternalPerson() {
         InternalPersonDto ipDto = MockDataHelper.mockInternalPersonDto();
         TblInternalPerson ipTbl = MockDataHelper.mockInternalPerson();
         when(internalPersonRepository.findByTblContactUuid(any(UUID.class))).thenReturn(Optional.of(ipTbl));
@@ -122,13 +127,13 @@
         assertEquals(ipTbl.getTitle(), savedDto.getTitle());
         assertEquals(ipTbl.getUserRef(), savedDto.getUserRef());
         assertEquals(ipTbl.getDepartment(), savedDto.getDepartment());
-        assertEquals(ipTbl.getUid(), savedDto.getUid());
+        assertEquals(ipTbl.getUidIdent(), savedDto.getUid());
         assertEquals(ipTbl.getRefPersonType().getUuid(), savedDto.getPersonTypeUuid());
         assertEquals(ipTbl.getSalutation().getUuid(), savedDto.getSalutationUuid());
     }
 
     @Test
-    public void shouldNotUpdateInternalPerson_Exception1() {
+    void shouldNotUpdateInternalPerson_Exception1() {
         InternalPersonDto ipDto = MockDataHelper.mockInternalPersonDto();
         TblInternalPerson ipTbl = MockDataHelper.mockInternalPerson();
         when(internalPersonRepository.findByTblContactUuid(any(UUID.class))).thenReturn(Optional.empty());
@@ -147,7 +152,7 @@
     }
 
     @Test
-    public void shouldNotUpdateInternalPerson_Exception2() {
+    void shouldNotUpdateInternalPerson_Exception2() {
         InternalPersonDto epDto = MockDataHelper.mockInternalPersonDto();
         TblInternalPerson epTbl = MockDataHelper.mockInternalPerson();
         when(internalPersonRepository.findByTblContactUuid(any(UUID.class))).thenReturn(Optional.of(epTbl));
@@ -165,7 +170,7 @@
         assertThrows( NotFoundException.class, () -> internalPersonService.updateInternalPerson(epDto));
     }
     @Test
-    public void shouldNotUpdateInternalPerson_Exception3() {
+    void shouldNotUpdateInternalPerson_Exception3() {
         InternalPersonDto ipDto = MockDataHelper.mockInternalPersonDto();
         TblInternalPerson ipTbl = MockDataHelper.mockInternalPerson();
         when(internalPersonRepository.findByTblContactUuid(any(UUID.class))).thenReturn(Optional.of(ipTbl));
@@ -184,7 +189,7 @@
     }
 
     @Test
-    public void shouldInsertInternalPerson() {
+    void shouldInsertInternalPerson() {
         InternalPersonDto ipDto = MockDataHelper.mockInternalPersonDto();
         ipDto.setContactUuid(null);
         RefSalutation refSalutation = MockDataHelper.mockRefSalutation();
diff --git a/src/test/java/org/eclipse/openk/contactbasedata/service/LdapServiceTest.java b/src/test/java/org/eclipse/openk/contactbasedata/service/LdapServiceTest.java
index 1e03724..8ddd9eb 100644
--- a/src/test/java/org/eclipse/openk/contactbasedata/service/LdapServiceTest.java
+++ b/src/test/java/org/eclipse/openk/contactbasedata/service/LdapServiceTest.java
@@ -33,6 +33,7 @@
 import org.springframework.boot.test.mock.mockito.MockBean;
 import org.springframework.ldap.core.LdapTemplate;
 import org.springframework.ldap.query.LdapQuery;
+import org.springframework.test.context.ActiveProfiles;
 import org.springframework.test.context.ContextConfiguration;
 
 import java.util.ArrayList;
@@ -45,8 +46,8 @@
 
 @DataJpaTest
 @ContextConfiguration(classes = {TestConfiguration.class})
-
-public class LdapServiceTest {
+@ActiveProfiles("test")
+class LdapServiceTest {
     private static final long MAIL_ID = 1L;
     private static final long TEL_ID = 2L;
 
@@ -70,14 +71,14 @@
     private LdapTemplate ldapTemplate;
 
     @Test
-    public void shouldSynchronizeLDAPRunThrou1() {
+    void shouldSynchronizeLDAPRunThrou1() {
         when(internalPersonRepository.saveAll(any( List.class ))).thenReturn(Lists.emptyList());
         List<TblInternalPerson> internalPeople = MockDataHelper.mockTblInternalPersonPage().getContent();
-        when( internalPersonRepository.findByUidNotNull() ).thenReturn(internalPeople);
+        when( internalPersonRepository.findByUidIdentNotNull() ).thenReturn(internalPeople);
 
         List<LdapUser> ldapUserList = new ArrayList<>(1);
         LdapUser ldapUser = MockDataHelper.mockLdapUser();
-        ldapUser.setUid(internalPeople.get(0).getUid());
+        ldapUser.setUid(internalPeople.get(0).getUidIdent());
         ldapUserList.add( ldapUser );
         // users are found
         when( ldapTemplate.search(any(LdapQuery.class), any(LdapUserAttributesMapper.class))).thenReturn( ldapUserList );
@@ -101,11 +102,11 @@
     }
 
     @Test
-    public void shouldSynchronizeLDAPRunThrou2() {
+    void shouldSynchronizeLDAPRunThrou2() {
 
         when(internalPersonRepository.saveAll(any( List.class ))).thenReturn(Lists.emptyList());
         List<TblInternalPerson> internalPeople = MockDataHelper.mockTblInternalPersonPage().getContent();
-        when( internalPersonRepository.findByUidNotNull() ).thenReturn(internalPeople);
+        when( internalPersonRepository.findByUidIdentNotNull() ).thenReturn(internalPeople);
 
         // users are not found
         when( ldapTemplate.search(any(LdapQuery.class), any(LdapUserAttributesMapper.class))).thenReturn( Lists.emptyList() );
@@ -123,14 +124,14 @@
     }
 
     @Test
-    public void shouldFindExistingAndNotExistingLdapUsers1() throws Exception {
+    void shouldFindExistingAndNotExistingLdapUsers1() throws Exception {
         List<TblInternalPerson> internalPeople = MockDataHelper.mockTblInternalPersonPage().getContent();
         List<LdapUser> ldapUsers = new ArrayList<>();
         List<TblInternalPerson> allNotExistingLdapUsers = new ArrayList<>();
 
         List<LdapUser> ldapUserList = new ArrayList<>(1);
         LdapUser ldapUser = MockDataHelper.mockLdapUser();
-        ldapUser.setUid(internalPeople.get(0).getUid());
+        ldapUser.setUid(internalPeople.get(0).getUidIdent());
         ldapUserList.add( ldapUser );
         // users are always found
         when( ldapTemplate.search(any(LdapQuery.class), any(LdapUserAttributesMapper.class))).thenReturn( ldapUserList );
@@ -144,7 +145,7 @@
     }
 
     @Test
-    public void shouldFindExistingAndNotExistingLdapUsers2() throws Exception {
+    void shouldFindExistingAndNotExistingLdapUsers2() throws Exception {
         List<TblInternalPerson> internalPeople = MockDataHelper.mockTblInternalPersonPage().getContent();
         List<LdapUser> ldapUsers = new ArrayList<>();
         List<TblInternalPerson> allNotExistingLdapUsers = new ArrayList<>();
@@ -160,14 +161,14 @@
 
 
     @Test
-    public void shouldFindExistingAndNotExistingLdapUsers3() throws Exception {
+    void shouldFindExistingAndNotExistingLdapUsers3() throws Exception {
         List<TblInternalPerson> internalPeople = MockDataHelper.mockTblInternalPersonPage().getContent();
         List<LdapUser> ldapUsers = new ArrayList<>();
         List<TblInternalPerson> allNotExistingLdapUsers = new ArrayList<>();
 
         List<LdapUser> ldapUserList = new ArrayList<>(1);
         LdapUser ldapUser = MockDataHelper.mockLdapUser();
-        ldapUser.setUid(internalPeople.get(0).getUid());
+        ldapUser.setUid(internalPeople.get(0).getUidIdent());
         ldapUserList.add( ldapUser );
         ldapUserList.add( new LdapUser());
         // too much users are found
diff --git a/src/test/java/org/eclipse/openk/contactbasedata/service/PersonTypeServiceTest.java b/src/test/java/org/eclipse/openk/contactbasedata/service/PersonTypeServiceTest.java
index d6484a1..d0e07ff 100644
--- a/src/test/java/org/eclipse/openk/contactbasedata/service/PersonTypeServiceTest.java
+++ b/src/test/java/org/eclipse/openk/contactbasedata/service/PersonTypeServiceTest.java
@@ -25,6 +25,7 @@
 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.ActiveProfiles;
 import org.springframework.test.context.ContextConfiguration;
 
 import java.util.List;
@@ -40,8 +41,8 @@
 
 @DataJpaTest
 @ContextConfiguration(classes = {TestConfiguration.class})
-
-public class PersonTypeServiceTest {
+@ActiveProfiles("test")
+class PersonTypeServiceTest {
     @Qualifier("myPersonTypeService")
     @Autowired
     private PersonTypeService personTypeService;
@@ -50,19 +51,19 @@
     private PersonTypeRepository personTypeRepository;
 
     @Test
-    public void shouldFindAllPersonTypesProperly() {
+    void shouldFindAllPersonTypesProperly() {
         List<RefPersonType> rs = MockDataHelper.mockRefPersonTypes();
         when(personTypeRepository.findAll()).thenReturn(rs);
         List<PersonTypeDto> retVals = personTypeService.findAllPersonTypes();
 
         assertEquals(rs.size(), retVals.size());
-        assertEquals(rs.size(), 2);
+        assertEquals(2, rs.size());
         assertEquals(rs.get(1).getUuid(), retVals.get(1).getUuid());
     }
 
 
     @Test
-    public void shouldReturnPersonTypeByUuid() {
+    void shouldReturnPersonTypeByUuid() {
 
         RefPersonType refPersonType = MockDataHelper.mockRefPersonType();
         refPersonType.setType("Testtyp");
@@ -74,7 +75,7 @@
     }
 
     @Test
-    public void shouldInsertPersonType(){
+    void shouldInsertPersonType(){
         RefPersonType refPersonType = MockDataHelper.mockRefPersonType();
 
         refPersonType.setUuid(UUID.fromString("1468275e-200b-11ea-978f-2e728ce88125"));
@@ -92,7 +93,7 @@
     }
 
     @Test
-    public void shouldUpdatePersonType() {
+    void shouldUpdatePersonType() {
 
         RefPersonType personType = MockDataHelper.mockRefPersonType();
         personType.setType("Kein schöner Mensch");
@@ -110,7 +111,7 @@
 
 
     @Test
-    public void shouldDeletePersonType() {
+    void shouldDeletePersonType() {
 
         RefPersonType personType = MockDataHelper.mockRefPersonType();
 
diff --git a/src/test/java/org/eclipse/openk/contactbasedata/service/SalutationServiceTest.java b/src/test/java/org/eclipse/openk/contactbasedata/service/SalutationServiceTest.java
index 99f20d1..52c2257 100644
--- a/src/test/java/org/eclipse/openk/contactbasedata/service/SalutationServiceTest.java
+++ b/src/test/java/org/eclipse/openk/contactbasedata/service/SalutationServiceTest.java
@@ -25,8 +25,8 @@
 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.ActiveProfiles;
 import org.springframework.test.context.ContextConfiguration;
-import org.springframework.util.Assert;
 
 import java.util.List;
 import java.util.Optional;
@@ -34,7 +34,6 @@
 
 import static org.hibernate.validator.internal.util.Contracts.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.isA;
 import static org.mockito.Mockito.times;
@@ -42,8 +41,8 @@
 
 @DataJpaTest
 @ContextConfiguration(classes = {TestConfiguration.class})
-
-public class SalutationServiceTest {
+@ActiveProfiles("test")
+class SalutationServiceTest {
     @Qualifier("mySalutationService")
     @Autowired
     private SalutationService salutationService;
@@ -52,19 +51,19 @@
     private SalutationRepository salutationRepository;
 
     @Test
-    public void shouldFindAllSalutationsProperly() {
+    void shouldFindAllSalutationsProperly() {
         List<RefSalutation> rs = MockDataHelper.mockRefSalutations();
         when(salutationRepository.findAll()).thenReturn(rs);
         List<SalutationDto> retVals = salutationService.findAllSalutations();
 
         assertEquals(rs.size(), retVals.size());
-        assertEquals(rs.size(), 2);
+        assertEquals(2, rs.size());
         assertEquals(rs.get(1).getUuid(), retVals.get(1).getUuid());
     }
 
 
     @Test
-    public void shouldReturnSalutationByUuid() {
+    void shouldReturnSalutationByUuid() {
 
         RefSalutation refSalutation = MockDataHelper.mockRefSalutation();
         refSalutation.setType("Testtyp");
@@ -76,7 +75,7 @@
     }
 
     @Test
-    public void shouldInsertSalutation(){
+    void shouldInsertSalutation(){
         RefSalutation refSalutation = MockDataHelper.mockRefSalutation();
 
         refSalutation.setUuid(UUID.fromString("1468275e-200b-11ea-978f-2e728ce88125"));
@@ -94,7 +93,7 @@
     }
 
     @Test
-    public void shouldUpdateSalutation() {
+    void shouldUpdateSalutation() {
 
         RefSalutation salutation = MockDataHelper.mockRefSalutation();
         salutation.setType("Moin Frau");
@@ -112,7 +111,7 @@
 
 
     @Test
-    public void shouldDeleteSalutation() {
+    void shouldDeleteSalutation() {
 
         RefSalutation salutation = MockDataHelper.mockRefSalutation();
 
diff --git a/src/test/java/org/eclipse/openk/contactbasedata/service/VersionServiceTest.java b/src/test/java/org/eclipse/openk/contactbasedata/service/VersionServiceTest.java
index 271bc11..f92e798 100644
--- a/src/test/java/org/eclipse/openk/contactbasedata/service/VersionServiceTest.java
+++ b/src/test/java/org/eclipse/openk/contactbasedata/service/VersionServiceTest.java
@@ -21,12 +21,12 @@
 import org.eclipse.openk.contactbasedata.support.MockDataHelper;
 import org.eclipse.openk.contactbasedata.viewmodel.VersionDto;
 import org.junit.jupiter.api.Test;
-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.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.ActiveProfiles;
+import org.springframework.test.context.ContextConfiguration;
 
 import java.util.Optional;
 
@@ -34,11 +34,11 @@
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.when;
 
-//@RunWith(SpringRunner.class)
+
 @DataJpaTest
 @ContextConfiguration(classes = {TestConfiguration.class})
-
-public class VersionServiceTest {
+@ActiveProfiles("test")
+class VersionServiceTest {
     @Qualifier("myVersionService")
     @Autowired
     private VersionService versionService;
@@ -47,7 +47,7 @@
     private VersionRepository versionRepository;
 
     @Test
-    public void shouldGetVersionProperly() {
+    void shouldGetVersionProperly() {
         Version mockVersion = MockDataHelper.mockVersion();
         when(versionRepository.findById(any(Long.class))).thenReturn(Optional.of(mockVersion));
         VersionDto versionDto = versionService.getVersion();
@@ -56,7 +56,7 @@
     }
 
     @Test
-    public void shouldGetVersionCorrectlyInErrorCase() {
+    void shouldGetVersionCorrectlyInErrorCase() {
         when(versionRepository.findById(any(Long.class))).thenReturn(Optional.empty());
         VersionDto versionDto = versionService.getVersion();
         assertEquals(Constants.DB_VERSION_NOT_PRESENT, versionDto.getDbVersion() );
diff --git a/src/test/java/org/eclipse/openk/contactbasedata/service/util/LdapUserAttributesMapperTest.java b/src/test/java/org/eclipse/openk/contactbasedata/service/util/LdapUserAttributesMapperTest.java
index 7f31a76..117fc86 100644
--- a/src/test/java/org/eclipse/openk/contactbasedata/service/util/LdapUserAttributesMapperTest.java
+++ b/src/test/java/org/eclipse/openk/contactbasedata/service/util/LdapUserAttributesMapperTest.java
@@ -18,14 +18,14 @@
 import static org.mockito.Mockito.when;
 
 @SpringBootTest(classes = ContactBaseDataApplication.class)
-@ActiveProfiles("test") // Todo: Find a better way to configure the tests
-public class LdapUserAttributesMapperTest {
+@ActiveProfiles("test")
+class LdapUserAttributesMapperTest {
 
     @Autowired
     LdapUserAttributesMapper ldapUserAttributesMapper;
 
     @Test
-    public void shouldMapFromAttributesCorrectly() throws NamingException {
+    void shouldMapFromAttributesCorrectly() throws NamingException {
         Attributes attributes = Mockito.mock(Attributes.class);
 
         String[] fields = {"uid", "cn", "sn", "givenname", "title", "mail", "department", "phone"};
@@ -48,7 +48,7 @@
     }
 
     @Test
-    public void shouldMapFromAttributesEmpty() throws NamingException {
+    void shouldMapFromAttributesEmpty() throws NamingException {
         Attributes attributes = Mockito.mock(Attributes.class);
 
         String[] fields = {"uid", "cn", "sn", "givenname", "title", "mail", "department", "phone"};
diff --git a/src/test/java/org/eclipse/openk/contactbasedata/support/MockDataHelper.java b/src/test/java/org/eclipse/openk/contactbasedata/support/MockDataHelper.java
index 8ce842f..a5a7e92 100644
--- a/src/test/java/org/eclipse/openk/contactbasedata/support/MockDataHelper.java
+++ b/src/test/java/org/eclipse/openk/contactbasedata/support/MockDataHelper.java
@@ -15,8 +15,35 @@
 package org.eclipse.openk.contactbasedata.support;
 
 import org.eclipse.openk.contactbasedata.constants.Constants;
-import org.eclipse.openk.contactbasedata.model.*;
-import org.eclipse.openk.contactbasedata.viewmodel.*;
+import org.eclipse.openk.contactbasedata.model.KeyCloakUser;
+import org.eclipse.openk.contactbasedata.model.RefAddressType;
+import org.eclipse.openk.contactbasedata.model.RefCommunicationType;
+import org.eclipse.openk.contactbasedata.model.RefPersonType;
+import org.eclipse.openk.contactbasedata.model.RefSalutation;
+import org.eclipse.openk.contactbasedata.model.TblAddress;
+import org.eclipse.openk.contactbasedata.model.TblAssignmentModulContact;
+import org.eclipse.openk.contactbasedata.model.TblCommunication;
+import org.eclipse.openk.contactbasedata.model.TblCompany;
+import org.eclipse.openk.contactbasedata.model.TblContact;
+import org.eclipse.openk.contactbasedata.model.TblContactPerson;
+import org.eclipse.openk.contactbasedata.model.TblExternalPerson;
+import org.eclipse.openk.contactbasedata.model.TblInternalPerson;
+import org.eclipse.openk.contactbasedata.model.Version;
+import org.eclipse.openk.contactbasedata.model.VwDetailedContact;
+import org.eclipse.openk.contactbasedata.viewmodel.AddressDto;
+import org.eclipse.openk.contactbasedata.viewmodel.AddressTypeDto;
+import org.eclipse.openk.contactbasedata.viewmodel.AssignmentModulContactDto;
+import org.eclipse.openk.contactbasedata.viewmodel.CommunicationDto;
+import org.eclipse.openk.contactbasedata.viewmodel.CommunicationTypeDto;
+import org.eclipse.openk.contactbasedata.viewmodel.CompanyDto;
+import org.eclipse.openk.contactbasedata.viewmodel.ContactDto;
+import org.eclipse.openk.contactbasedata.viewmodel.ContactPersonDto;
+import org.eclipse.openk.contactbasedata.viewmodel.ExternalPersonDto;
+import org.eclipse.openk.contactbasedata.viewmodel.InternalPersonDto;
+import org.eclipse.openk.contactbasedata.viewmodel.LdapUser;
+import org.eclipse.openk.contactbasedata.viewmodel.PersonTypeDto;
+import org.eclipse.openk.contactbasedata.viewmodel.SalutationDto;
+import org.eclipse.openk.contactbasedata.viewmodel.VersionDto;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.PageImpl;
 import org.springframework.data.domain.Pageable;
@@ -24,7 +51,11 @@
 import javax.naming.NamingException;
 import javax.naming.directory.Attribute;
 import java.sql.Date;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.UUID;
 
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
@@ -391,7 +422,7 @@
         i.setLastName("Weinbrenner");
         i.setTitle("Freiherr");
         i.setDepartment("Forschung");
-        i.setUid("111-777");
+        i.setUidIdent("111-777");
         i.setUserRef("WWEINB");
         i.setRefPersonType(mockRefPersonType());
         i.setSalutation(mockRefSalutation());
@@ -447,7 +478,7 @@
         ip2.setLastName("Alter");
         ip2.setTitle("Dr.");
         ip2.setDepartment("Geschäftsführung");
-        ip2.setUid("333-999");
+        ip2.setUidIdent("333-999");
         ip2.setUserRef("FALTER");
         ip2.getContact().setNote("Gründer");
 
diff --git a/src/test/resouces/application.yml b/src/test/resouces/application.yml
index c95f067..266525d 100644
--- a/src/test/resouces/application.yml
+++ b/src/test/resouces/application.yml
@@ -14,12 +14,12 @@
   datasource:
     url: jdbc:h2:mem:test;DB_CLOSE_DELAY=-1
 
-jpa:
-  hibernate:
-    ddl-auto: create
-  show-sql: true
-flyway:
-  enabled: false
+  jpa:
+    hibernate:
+      ddl-auto: create
+    show-sql: true
+  flyway:
+    enabled: false
 
 jwt:
   tokenHeader: accessToken