diff --git a/smp-api/pom.xml b/smp-api/pom.xml
index b75507ffc0334c5b2ff3672498ef3992e97429d8..c88981896b5c8b6346724e20ff7160de552b1d01 100644
--- a/smp-api/pom.xml
+++ b/smp-api/pom.xml
@@ -23,6 +23,7 @@
 
     <artifactId>smp-api</artifactId>
     <name>smp-api</name>
+    <packaging>jar</packaging>
 
     <dependencies>
         <!-- Generated equals() methods need it in runtime -->
diff --git a/smp-docker/compose/tomcat-mysql-smp-sml/README.md b/smp-docker/compose/tomcat-mysql-smp-sml/README.md
new file mode 100755
index 0000000000000000000000000000000000000000..a95001d0751da623645f43b3d3ad345b503037e8
--- /dev/null
+++ b/smp-docker/compose/tomcat-mysql-smp-sml/README.md
@@ -0,0 +1,49 @@
+# Experiamental SMP docker image
+Purpose of compose plan is to startup fully functinal SMP environment for demo and testing. The plan contains 
+ - MySql database
+ - SML services
+ - CAS instance (EULOGIN)
+ - email server (inbucket)
+
+
+# Run environment
+docker-compose -f docker-compose.yml up -d 
+
+
+## SMP 
+url: http://localhost:8982/smp
+
+### MYSQL 
+Database client connection (for testing and debugging )
+url: jdbc:mysql://localhost:3908/smp
+Username: smp
+Password: smp
+
+### Volume (-v /opt/dockerdata/sml:/data)
+Mysql database files and tomcat configuration (and logs) can be externalized for experimenting with different SMP settings.
+
+
+## SML 
+url: http://localhost:8982/edelivery-sml/
+
+### MYSQL 
+Database client connection (for testing and debugging )
+url: jdbc:mysql://localhost:3908/sml
+Username: sml
+Password: sml
+
+## CAS - EULOGIN 
+url: https://localhost:7102/cas/login
+Users:
+ - user/123456
+ - smp/123456
+ - system/123456
+
+ To use eulogin add the following hostname mappings (Linux: /etc/hosts)
+ - 127.0.0.1 eulogin-mock-server
+ - 127.0.0.1 eulogin.protected.smp.local
+
+
+## Mail server
+url: http://172.19.0.2:9005/monitor 
+
diff --git a/smp-docker/compose/tomcat-mysql-smp-sml/docker-compose.yml b/smp-docker/compose/tomcat-mysql-smp-sml/docker-compose.yml
index 29724dc5598b2db50a870dbdc94c9ac9f5ad2a36..083c7be81c1644b77bb5dfa38fb8fd5117d136c5 100644
--- a/smp-docker/compose/tomcat-mysql-smp-sml/docker-compose.yml
+++ b/smp-docker/compose/tomcat-mysql-smp-sml/docker-compose.yml
@@ -12,6 +12,17 @@ services:
         ||smp.sso.cas.urlpath.login=login
         ||smp.sso.cas.token.validation.urlpath=laxValidate
         ||smp.sso.cas.callback.url=http://eulogin.protected.smp.local:8982/smp/ui/public/rest/security/cas
+        ||mail.smtp.host=mail-server.smp.local
+        ||mail.smtp.port=2500
+        ||smp.alert.user.login_failure.enabled=true
+        ||smp.alert.user.suspended.enabled=true
+        ||smp.alert.password.imminent_expiration.enabled=true
+        ||smp.alert.password.expired.enabled=true
+        ||smp.alert.accessToken.imminent_expiration.enabled=true
+        ||smp.alert.accessToken.expired.enabled=true
+        ||smp.alert.certificate.imminent_expiration.enabled=true
+        ||smp.alert.certificate.expired.enabled=true
+        ||smp.alert.accessToken.expired.enabled=true
 
     volumes:
       - ./properties/db-scripts:/tmp/custom-data/
@@ -32,4 +43,10 @@ services:
  # Map this folder to host to be able to change runtime data for manual testing!
  #       - ./eulogin/ecas-mock-server:/data/ecas-mock-server
     ports:
-      - "7102:7102"
\ No newline at end of file
+      - "7102:7102"
+
+  mail-service:
+    image: inbucket/inbucket:3.0.0
+    hostname: mail-server.smp.local
+    ports:
+      - "9005:9000"
\ No newline at end of file
diff --git a/smp-docker/compose/tomcat-mysql-smp-sml/properties/db-scripts/sml-mysql5innodb-data.sql b/smp-docker/compose/tomcat-mysql-smp-sml/properties/db-scripts/sml-mysql5innodb-data.sql
index fe8a92272f55bef576413b723d3aeca21c6359ca..7b6b00682297623b2a335cd6bc57d7f281a90768 100644
--- a/smp-docker/compose/tomcat-mysql-smp-sml/properties/db-scripts/sml-mysql5innodb-data.sql
+++ b/smp-docker/compose/tomcat-mysql-smp-sml/properties/db-scripts/sml-mysql5innodb-data.sql
@@ -45,8 +45,11 @@ INSERT INTO bdmsl_certificate_domain(certificate, crl_url,  is_root_ca, fk_subdo
 ('CN=rootCNIsa,OU=B4,O=DIGIT,L=Brussels,ST=BE,C=BE','',1, 3, NOW(), NOW(),1),
 ('CN=AdministratorSML,OU=B4,O=DIGIT,C=BE','',0, 2, NOW(), NOW(),1);
 
+INSERT INTO bdmsl_certificate (id, certificate_id, valid_from ,valid_until,created_on, last_updated_on ) VALUES
+(id, 'CN=SMP_TEST-PRE-SET-EXAMPLE,O=DIGITAL,C=BE:00000000000000000000000000000001',DATE_ADD(NOW(), INTERVAL -3 DAY),DATE_ADD(NOW(), INTERVAL 365 DAY), NOW(), NOW());
 
-
+INSERT INTO bdmsl_smp (smp_id, fk_certificate_id, fk_subdomain_id, endpoint_logical_address, endpoint_physical_address, created_on, last_updated_on ) VALUES
+('CEF-SMP-001', 1,1, 'http://localhost:8080/smp/','0.0.0.0',NOW(), NOW());
 
 
 
diff --git a/smp-docker/images/tomcat-mysql-smp-sml/bind/db.test.edelivery.local b/smp-docker/images/tomcat-mysql-smp-sml/bind/db.test.edelivery.local
index 006d3d0cd818d01d1d96081b7b5ee735aa71f5c9..b962adfa8e4b5c0f42dbcaed90ac2a1fb53ce021 100755
--- a/smp-docker/images/tomcat-mysql-smp-sml/bind/db.test.edelivery.local
+++ b/smp-docker/images/tomcat-mysql-smp-sml/bind/db.test.edelivery.local
@@ -12,3 +12,4 @@ test.edelivery.local	IN SOA	ns.test.edelivery.local. root.test.edelivery.local.
 $ORIGIN test.edelivery.local.
 $TTL 60	; 1 minute
 ns			A	127.0.0.1
+CEF-SMP-002.publisher	60	IN	CNAME	localhost.
\ No newline at end of file
diff --git a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/config/DatabaseProperties.java b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/config/DatabaseProperties.java
index b39f942c155aafa7ceee0e19b9deb27dfb58f68f..7331cfe880c0a35afd21a5798ae1fcfde1613419 100644
--- a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/config/DatabaseProperties.java
+++ b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/config/DatabaseProperties.java
@@ -4,6 +4,7 @@ import eu.europa.ec.edelivery.smp.data.model.DBConfiguration;
 import eu.europa.ec.edelivery.smp.data.ui.enums.SMPPropertyEnum;
 import eu.europa.ec.edelivery.smp.logging.SMPLogger;
 import eu.europa.ec.edelivery.smp.logging.SMPLoggerFactory;
+import eu.europa.ec.edelivery.smp.utils.PropertyUtils;
 
 import javax.persistence.EntityManager;
 import javax.persistence.TypedQuery;
@@ -26,29 +27,14 @@ public class DatabaseProperties extends Properties {
         List<DBConfiguration> lst = tq.getResultList();
         for (DBConfiguration dc : lst) {
             if (dc.getValue() != null) {
-                LOG.info("Database property: [{}] value: [{}]", dc.getProperty(),
-                        isSensitiveData(dc.getProperty()) ? "******" : dc.getValue());
-                setProperty(trim(dc.getProperty()), trim(dc.getValue()));
+                String prop =trim(dc.getProperty());
+                String value =trim(dc.getValue());
+                setProperty(prop, value);
+                LOG.info("Database property: [{}] value: [{}]", prop,PropertyUtils.getMaskedData(prop, value) );
             }
             lastUpdate = (lastUpdate == null || lastUpdate.isBefore(dc.getLastUpdatedOn())) ? dc.getLastUpdatedOn() : lastUpdate;
         }
     }
-
-    /**
-     * Return true for properties which must not be logged!
-     *
-     * @param property - value to validate if contains sensitive data
-     * @return true if data is sensitive, else return false
-     */
-    public boolean isSensitiveData(String property) {
-        Optional<SMPPropertyEnum> propOpt = SMPPropertyEnum.getByProperty(property);
-        if (propOpt.isPresent()) {
-            return propOpt.get().isEncrypted() || property.toLowerCase().contains(".password.decrypted");
-        }
-        LOG.warn("Database property [{}] is not recognized by the SMP!", property);
-        return false;
-    }
-
     public OffsetDateTime getLastUpdate() {
         return lastUpdate;
     }
diff --git a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/data/dao/ConfigurationDao.java b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/data/dao/ConfigurationDao.java
index 10db28feb0915cb50eeca54fad707c7637d8c42a..ef783dbb441c20bd3c43d83934f36a19408aa330 100644
--- a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/data/dao/ConfigurationDao.java
+++ b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/data/dao/ConfigurationDao.java
@@ -27,6 +27,7 @@ import eu.europa.ec.edelivery.smp.utils.SecurityUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.exception.ExceptionUtils;
 import org.springframework.context.ApplicationContext;
+import org.springframework.context.event.ContextRefreshedEvent;
 import org.springframework.context.event.ContextStartedEvent;
 import org.springframework.context.event.ContextStoppedEvent;
 import org.springframework.context.event.EventListener;
@@ -217,7 +218,7 @@ public class ConfigurationDao extends BaseDao<DBConfiguration> {
     /**
      * Application event when an {@code ApplicationContext} gets initialized or start
      */
-    @EventListener({ContextStartedEvent.class})
+    @EventListener({ContextRefreshedEvent.class})
     public void contextRefreshedEvent() {
         LOG.debug("Application context is initialized: triggered  refresh  to update all property listeners");
         setInitializedTime(OffsetDateTime.now());
diff --git a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/data/ui/enums/SMPPropertyEnum.java b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/data/ui/enums/SMPPropertyEnum.java
index 1f05006f49b2c5c556190ad17c56c92e25710f2a..a19fcba95657e2c739c35def5ef5766f01decd80 100644
--- a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/data/ui/enums/SMPPropertyEnum.java
+++ b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/data/ui/enums/SMPPropertyEnum.java
@@ -117,7 +117,7 @@ public enum SMPPropertyEnum {
     SSO_CAS_TOKEN_VALIDATION_PARAMS("smp.sso.cas.token.validation.params", "acceptStrengths:BASIC,CLIENT_CERT|assuranceLevel:TOP", "The CAS token validation key:value properties separated with '|'.Ex: 'acceptStrengths:BASIC,CLIENT_CERT|assuranceLevel:TOP'", false, false, true, MAP_STRING),
     SSO_CAS_TOKEN_VALIDATION_GROUPS("smp.sso.cas.token.validation.groups", "DIGIT_SMP|DIGIT_ADMIN", "'|' separated CAS groups user must belong to.", false, false, true, LIST_STRING),
 
-    MAIL_SERVER_HOST("mail.smtp.host", "mail.server.com", "Email server - configuration for submitting the emails.", false,false, false, STRING),
+    MAIL_SERVER_HOST("mail.smtp.host", "", "Email server - configuration for submitting the emails.", false,false, false, STRING),
     MAIL_SERVER_PORT("mail.smtp.port", "25", "Smtp mail port - configuration for submitting the emails.", false,false, false,INTEGER),
     MAIL_SERVER_PROTOCOL("mail.smtp.protocol", "smtp", "smtp mail protocol- configuration for submitting the emails.", false,false,false, STRING),
     MAIL_SERVER_USERNAME("mail.smtp.username", "", "smtp mail protocol- username for submitting the emails.", false,false,false, STRING),
diff --git a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/utils/PropertyUtils.java b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/utils/PropertyUtils.java
index 66406391c6d2afe5461aa12da07eedc4f875d1fa..d1b6f1e5cfb30fd80b6db778565cb93e56c5a39d 100644
--- a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/utils/PropertyUtils.java
+++ b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/utils/PropertyUtils.java
@@ -15,6 +15,7 @@ import java.io.File;
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.Arrays;
+import java.util.Optional;
 import java.util.regex.Pattern;
 import java.util.regex.PatternSyntaxException;
 import java.util.stream.Collectors;
@@ -24,6 +25,7 @@ import static org.apache.commons.lang3.StringUtils.*;
 public class PropertyUtils {
 
 
+    private static final String MASKED_VALUE = "*******";
     private static final SMPLogger LOG = SMPLoggerFactory.getLogger(PropertyUtils.class);
     private static final String REG_EXP_SEPARATOR = "\\|";
 
@@ -153,8 +155,33 @@ public class PropertyUtils {
             case STRING:
                 return value;
         }
-        // property va
-
         return null;
     }
+
+
+    /**
+     * Return true for properties with sensitive data. For example the property value must not be logged
+     * or returned via WS!
+     *
+     * @param property - value to validate if contains sensitive data
+     * @return true if data is sensitive, else return false
+     */
+    public static boolean isSensitiveData(String property) {
+        Optional<SMPPropertyEnum> propOpt = SMPPropertyEnum.getByProperty(trim(property));
+        if (propOpt.isPresent()) {
+            return propOpt.get().isEncrypted() || property.toLowerCase().contains(".password.decrypted");
+        }
+        LOG.warn("Database property [{}] is not recognized by the SMP!", property);
+        return false;
+    }
+
+    /**
+     * Method returns 'masked' value for sensitive property data
+     * @param property
+     * @param value
+     * @return masked value for sensitive properties. Else it returns value!
+     */
+    public static String getMaskedData(String property, String value) {
+        return isSensitiveData(property) ? MASKED_VALUE : value;
+    }
 }
diff --git a/smp-server-library/src/main/resources/alert-mail-templates/credential_suspended.ftl b/smp-server-library/src/main/resources/alert-mail-templates/credential_suspended.ftl
index 53c653cf13f909294c90fae482451d8e2fba56e6..bb9265e60840ce515396e1dd463aaed3d8a9720f 100644
--- a/smp-server-library/src/main/resources/alert-mail-templates/credential_suspended.ftl
+++ b/smp-server-library/src/main/resources/alert-mail-templates/credential_suspended.ftl
@@ -83,7 +83,7 @@
                                   <p><strong>Failed login attempt count:</strong> ${FAILED_LOGIN_ATTEMPT}</p>
                                   <p><strong>Last failed login time:</strong> ${LAST_LOGIN_FAILURE_DATETIME}</p>
                                   <p><strong>Suspended util</strong> ${SUSPENDED_UNTIL_DATETIME}</p>
-                                  <p><strong>Reporting time:</strong> ${REPORTING_TIME}</p>
+                                  <p><strong>Reporting time:</strong> ${REPORTING_DATETIME}</p>
                                   <p><strong>Alert level:</strong> ${ALERT_LEVEL}</p>
                                   <p><strong>Server name:</strong> ${SERVER_NAME}</p>
                                 </td>
diff --git a/smp-server-library/src/main/resources/alert-mail-templates/credential_verification_failed.ftl b/smp-server-library/src/main/resources/alert-mail-templates/credential_verification_failed.ftl
index 9f3de0870dd7c9758cc1b93f61a9fe22e63e89af..53e237aa622b4cfad2668bc3f3cca81807f4dec5 100644
--- a/smp-server-library/src/main/resources/alert-mail-templates/credential_verification_failed.ftl
+++ b/smp-server-library/src/main/resources/alert-mail-templates/credential_verification_failed.ftl
@@ -82,7 +82,7 @@
                                   <p><strong>Credential id:</strong> ${CREDENTIAL_ID}</p>
                                   <p><strong>Failed login attempt count:</strong> ${FAILED_LOGIN_ATTEMPT}</p>
                                   <p><strong>Last failed login time:</strong> ${LAST_LOGIN_FAILURE_DATETIME}</p>
-                                  <p><strong>Reporting time:</strong> ${REPORTING_TIME}</p>
+                                  <p><strong>Reporting time:</strong> ${REPORTING_DATETIME}</p>
                                   <p><strong>Alert level:</strong> ${ALERT_LEVEL}</p>
                                   <p><strong>Server name:</strong> ${SERVER_NAME}</p>
                                 </td>
diff --git a/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/utils/PropertyUtilsTest.java b/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/utils/PropertyUtilsTest.java
index 2a44831d7302b546788becc9151d88b89cf11540..cbfbf2d80f9f9b2e127d813611c43ca2f3da662c 100644
--- a/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/utils/PropertyUtilsTest.java
+++ b/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/utils/PropertyUtilsTest.java
@@ -10,6 +10,7 @@ import org.junit.Test;
 import org.junit.runner.RunWith;
 
 import java.io.File;
+import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
 import java.util.regex.Pattern;
@@ -21,6 +22,10 @@ import static org.junit.Assert.*;
 @RunWith(JUnitParamsRunner.class)
 public class PropertyUtilsTest {
 
+    private static final List<SMPPropertyEnum> SENSITIVE_PROPERTIES = Arrays.asList(
+
+            HTTP_PROXY_PASSWORD, KEYSTORE_PASSWORD, TRUSTSTORE_PASSWORD, KEYSTORE_PASSWORD_DECRYPTED, TRUSTSTORE_PASSWORD_DECRYPTED, MAIL_SERVER_PASSWORD);
+
     private static final Object[] testTypeValues() {
         return new Object[][]{
                 {STRING, "this is a string", true, true},
@@ -171,4 +176,21 @@ public class PropertyUtilsTest {
                 fail("Unknown property type");
         }
     }
+
+
+    @Test
+    public void testIsSensitiveData() {
+        for (SMPPropertyEnum smpPropertyEnum: SMPPropertyEnum.values()){
+            Assert.assertEquals(SENSITIVE_PROPERTIES.contains(smpPropertyEnum), PropertyUtils.isSensitiveData(smpPropertyEnum.getProperty()));
+        }
+    }
+
+    @Test
+    public void getMaskedData() {
+        String testValue = "TestValue";
+        for (SMPPropertyEnum smpPropertyEnum: SMPPropertyEnum.values()){
+            String expectedValue = SENSITIVE_PROPERTIES.contains(smpPropertyEnum)?"*******":testValue;
+            Assert.assertEquals(expectedValue, PropertyUtils.getMaskedData(smpPropertyEnum.getProperty(),testValue));
+        }
+    }
 }
\ No newline at end of file
diff --git a/smp-soapui-tests/groovy/mysql-4.1_integration_test_data.sql b/smp-soapui-tests/groovy/mysql-4.1_integration_test_data.sql
index b2cf07e7fb3fbc086cc8cbca5f604e40625d6ee7..669cadf52f0e7446f4a2abb6bd6bf8d5893ee786 100644
--- a/smp-soapui-tests/groovy/mysql-4.1_integration_test_data.sql
+++ b/smp-soapui-tests/groovy/mysql-4.1_integration_test_data.sql
@@ -1,51 +1,51 @@
-insert into SMP_USER (ID, USERNAME, PASSWORD, ACCESS_TOKEN_ID, ACCESS_TOKEN, ROLE, ACTIVE, CREATED_ON, LAST_UPDATED_ON) values (1, 'peppol_user', '$2a$10$.pqNZZ4fRDdNbLhNlnEYg.1/d4yAGpLDgeXpJFI0sw7.WtyKphFzu','peppol_user', '$2a$10$.pqNZZ4fRDdNbLhNlnEYg.1/d4yAGpLDgeXpJFI0sw7.WtyKphFzu', 'SMP_ADMIN', 1, NOW(), NOW());
-insert into SMP_USER (ID, USERNAME, PASSWORD, ACCESS_TOKEN_ID, ACCESS_TOKEN, ROLE, ACTIVE, CREATED_ON, LAST_UPDATED_ON) values (2, 'the_admin', '','the_admin', '', 'SMP_ADMIN', 1, NOW(), NOW());
-insert into SMP_USER (ID, USERNAME, PASSWORD, ACCESS_TOKEN_ID, ACCESS_TOKEN, ROLE, ACTIVE, CREATED_ON, LAST_UPDATED_ON) values (3, 'AdminSMP1TEST', '$2a$06$u6Hym7Zrbsf4gEIeAsJRceK.Kg7tei3kDypwucQQdky0lXOLCkrCO','AdminSMP1TEST', '$2a$06$u6Hym7Zrbsf4gEIeAsJRceK.Kg7tei3kDypwucQQdky0lXOLCkrCO', 'SMP_ADMIN', 1, NOW(), NOW());
-insert into SMP_USER (ID, USERNAME, PASSWORD, ACCESS_TOKEN_ID, ACCESS_TOKEN, ROLE, ACTIVE, CREATED_ON, LAST_UPDATED_ON) values (4, 'AdminSMP2TEST', '$2a$10$h8Q3Kjbs6ZrGkU6ditjNueINlJOMDJ/g/OKiqFZy32WmdhLjV5TAi','AdminSMP2TEST', '$2a$10$h8Q3Kjbs6ZrGkU6ditjNueINlJOMDJ/g/OKiqFZy32WmdhLjV5TAi', 'SMP_ADMIN', 1, NOW(), NOW());
-insert into SMP_USER (ID, USERNAME, PASSWORD, ACCESS_TOKEN_ID, ACCESS_TOKEN, ROLE, ACTIVE, CREATED_ON, LAST_UPDATED_ON) values (5, 'test', '','test', '',  'SMP_ADMIN', 1, NOW(), NOW());
-insert into SMP_USER (ID, USERNAME, PASSWORD, ACCESS_TOKEN_ID, ACCESS_TOKEN, ROLE, ACTIVE, CREATED_ON, LAST_UPDATED_ON) values (6, 'test1', '$2a$06$toKXJgjqQINZdjQqSao3NeWz2n1S64PFPhVU1e8gIHh4xdbwzy1Uy','test1', '$2a$06$toKXJgjqQINZdjQqSao3NeWz2n1S64PFPhVU1e8gIHh4xdbwzy1Uy', 'SMP_ADMIN', 1, NOW(), NOW());
-insert into SMP_USER (ID, USERNAME, PASSWORD, ACCESS_TOKEN_ID, ACCESS_TOKEN, ROLE, ACTIVE, CREATED_ON, LAST_UPDATED_ON) values (7, 'system', '$2a$06$FDmjewn/do3C219uysNm9.XG8mIn.ubHnMydAzC8lsv61HsRpOR36','system', '$2a$06$FDmjewn/do3C219uysNm9.XG8mIn.ubHnMydAzC8lsv61HsRpOR36', 'SYSTEM_ADMIN', 1, NOW(), NOW());
-insert into SMP_USER (ID, USERNAME, PASSWORD, ACCESS_TOKEN_ID, ACCESS_TOKEN, ROLE, ACTIVE, CREATED_ON, LAST_UPDATED_ON) values (8, 'smp', '$2a$06$FDmjewn/do3C219uysNm9.XG8mIn.ubHnMydAzC8lsv61HsRpOR36','smp', '$2a$06$FDmjewn/do3C219uysNm9.XG8mIn.ubHnMydAzC8lsv61HsRpOR36', 'SMP_ADMIN', 1, NOW(), NOW());
-insert into SMP_USER (ID, USERNAME, PASSWORD, ACCESS_TOKEN_ID, ACCESS_TOKEN, ROLE, ACTIVE, CREATED_ON, LAST_UPDATED_ON) values (9, 'user', '$2a$06$FDmjewn/do3C219uysNm9.XG8mIn.ubHnMydAzC8lsv61HsRpOR36','user', '$2a$06$FDmjewn/do3C219uysNm9.XG8mIn.ubHnMydAzC8lsv61HsRpOR36', 'SERVICE_GROUP_ADMIN', 1, NOW(), NOW());
-
-
-insert into SMP_USER (ID, USERNAME, PASSWORD, ROLE, ACTIVE, CREATED_ON, LAST_UPDATED_ON) values (10, 'EHEALTH_SMP_EC', '', 'SERVICE_GROUP_ADMIN', 1, NOW(), NOW());
+insert into SMP_USER (ID, EMAIL, USERNAME, PASSWORD, ACCESS_TOKEN_ID, ACCESS_TOKEN, ROLE, ACTIVE, CREATED_ON, LAST_UPDATED_ON) values (1, 'peppol_user@test-mail.eu','peppol_user', '$2a$10$.pqNZZ4fRDdNbLhNlnEYg.1/d4yAGpLDgeXpJFI0sw7.WtyKphFzu','peppol_user', '$2a$10$.pqNZZ4fRDdNbLhNlnEYg.1/d4yAGpLDgeXpJFI0sw7.WtyKphFzu', 'SMP_ADMIN', 1, NOW(), NOW());
+insert into SMP_USER (ID, EMAIL, USERNAME, PASSWORD, ACCESS_TOKEN_ID, ACCESS_TOKEN, ROLE, ACTIVE, CREATED_ON, LAST_UPDATED_ON) values (2, 'the_admin@test-mail.eu','the_admin', '','the_admin', '', 'SMP_ADMIN', 1, NOW(), NOW());
+insert into SMP_USER (ID, EMAIL, USERNAME, PASSWORD, ACCESS_TOKEN_ID, ACCESS_TOKEN, ROLE, ACTIVE, CREATED_ON, LAST_UPDATED_ON) values (3, 'AdminSMP1TEST@test-mail.eu','AdminSMP1TEST', '$2a$06$u6Hym7Zrbsf4gEIeAsJRceK.Kg7tei3kDypwucQQdky0lXOLCkrCO','AdminSMP1TEST', '$2a$06$u6Hym7Zrbsf4gEIeAsJRceK.Kg7tei3kDypwucQQdky0lXOLCkrCO', 'SMP_ADMIN', 1, NOW(), NOW());
+insert into SMP_USER (ID, EMAIL, USERNAME, PASSWORD, ACCESS_TOKEN_ID, ACCESS_TOKEN, ROLE, ACTIVE, CREATED_ON, LAST_UPDATED_ON) values (4, 'AdminSMP2TEST@test-mail.eu','AdminSMP2TEST', '$2a$10$h8Q3Kjbs6ZrGkU6ditjNueINlJOMDJ/g/OKiqFZy32WmdhLjV5TAi','AdminSMP2TEST', '$2a$10$h8Q3Kjbs6ZrGkU6ditjNueINlJOMDJ/g/OKiqFZy32WmdhLjV5TAi', 'SMP_ADMIN', 1, NOW(), NOW());
+insert into SMP_USER (ID, EMAIL, USERNAME, PASSWORD, ACCESS_TOKEN_ID, ACCESS_TOKEN, ROLE, ACTIVE, CREATED_ON, LAST_UPDATED_ON) values (5, 'test@test-mail.eu','test', '','test', '',  'SMP_ADMIN', 1, NOW(), NOW());
+insert into SMP_USER (ID, EMAIL, USERNAME, PASSWORD, ACCESS_TOKEN_ID, ACCESS_TOKEN, ROLE, ACTIVE, CREATED_ON, LAST_UPDATED_ON) values (6, 'test1@test-mail.eu','test1', '$2a$06$toKXJgjqQINZdjQqSao3NeWz2n1S64PFPhVU1e8gIHh4xdbwzy1Uy','test1', '$2a$06$toKXJgjqQINZdjQqSao3NeWz2n1S64PFPhVU1e8gIHh4xdbwzy1Uy', 'SMP_ADMIN', 1, NOW(), NOW());
+insert into SMP_USER (ID, EMAIL, USERNAME, PASSWORD, ACCESS_TOKEN_ID, ACCESS_TOKEN, ROLE, ACTIVE, CREATED_ON, LAST_UPDATED_ON) values (7, 'system@test-mail.eu','system', '$2a$06$FDmjewn/do3C219uysNm9.XG8mIn.ubHnMydAzC8lsv61HsRpOR36','system', '$2a$06$FDmjewn/do3C219uysNm9.XG8mIn.ubHnMydAzC8lsv61HsRpOR36', 'SYSTEM_ADMIN', 1, NOW(), NOW());
+insert into SMP_USER (ID, EMAIL, USERNAME, PASSWORD, ACCESS_TOKEN_ID, ACCESS_TOKEN, ROLE, ACTIVE, CREATED_ON, LAST_UPDATED_ON) values (8, 'smp@test-mail.eu','smp', '$2a$06$FDmjewn/do3C219uysNm9.XG8mIn.ubHnMydAzC8lsv61HsRpOR36','smp', '$2a$06$FDmjewn/do3C219uysNm9.XG8mIn.ubHnMydAzC8lsv61HsRpOR36', 'SMP_ADMIN', 1, NOW(), NOW());
+insert into SMP_USER (ID, EMAIL, USERNAME, PASSWORD, ACCESS_TOKEN_ID, ACCESS_TOKEN, ROLE, ACTIVE, CREATED_ON, LAST_UPDATED_ON) values (9, 'user@test-mail.eu','user', '$2a$06$FDmjewn/do3C219uysNm9.XG8mIn.ubHnMydAzC8lsv61HsRpOR36','user', '$2a$06$FDmjewn/do3C219uysNm9.XG8mIn.ubHnMydAzC8lsv61HsRpOR36', 'SERVICE_GROUP_ADMIN', 1, NOW(), NOW());
+
+
+insert into SMP_USER (ID, EMAIL, USERNAME, PASSWORD, ROLE, ACTIVE, CREATED_ON, LAST_UPDATED_ON) values (10,'EHEALTH_SMP_EC@test-mail.eu', 'EHEALTH_SMP_EC', '', 'SERVICE_GROUP_ADMIN', 1, NOW(), NOW());
 insert into SMP_CERTIFICATE (ID, CERTIFICATE_ID, VALID_FROM, VALID_TO, CREATED_ON, LAST_UPDATED_ON) values (10, 'CN=EHEALTH_SMP_EC,O=European Commission,C=BE:f71ee8b11cb3b787', date_add(NOW(),interval -1 year), date_add(NOW(),interval 1 year), NOW(), NOW());
 
-insert into SMP_USER (ID, USERNAME, PASSWORD, ROLE, ACTIVE, CREATED_ON, LAST_UPDATED_ON) values (11, 'EHEALTH_ż_ẞ_Ẅ_,O', '', 'SMP_ADMIN', 1, NOW(), NOW());
+insert into SMP_USER (ID, EMAIL, USERNAME, PASSWORD, ROLE, ACTIVE, CREATED_ON, LAST_UPDATED_ON) values (11,'EHEALTH_z_ẞ_W@test-mail.eu', 'EHEALTH_ż_ẞ_Ẅ_,O', '', 'SMP_ADMIN', 1, NOW(), NOW());
 insert into SMP_CERTIFICATE (ID, CERTIFICATE_ID, VALID_FROM, VALID_TO, CREATED_ON, LAST_UPDATED_ON) values (11, 'CN=EHEALTH_z_ẞ_W_,O=European_z_ẞ_W_Commission,C=BE:f71ee8b11cb3b787', null,null, NOW(), NOW());
 
-insert into SMP_USER (ID, USERNAME, PASSWORD, ROLE, ACTIVE, CREATED_ON, LAST_UPDATED_ON) values (12, 'EHEALTH_SMP_1000000007-1', '', 'SERVICE_GROUP_ADMIN', 1, NOW(), NOW());
+insert into SMP_USER (ID, EMAIL, USERNAME, PASSWORD, ROLE, ACTIVE, CREATED_ON, LAST_UPDATED_ON) values (12,'EHEALTH_SMP_1000000007-1@test-mail.eu', 'EHEALTH_SMP_1000000007-1', '', 'SERVICE_GROUP_ADMIN', 1, NOW(), NOW());
 insert into SMP_CERTIFICATE (ID, CERTIFICATE_ID, VALID_FROM, VALID_TO, CREATED_ON, LAST_UPDATED_ON) values (12, 'CN=EHEALTH_SMP_1000000007,O=DG-DIGIT,C=BE:000000000123ABCD', null,null, NOW(), NOW());
 
 
-insert into SMP_USER (ID, USERNAME, PASSWORD, ROLE, ACTIVE, CREATED_ON, LAST_UPDATED_ON) values (14, 'EHEALTH_SMP_1000000007-2', '', 'SMP_ADMIN', 1, NOW(), NOW());
+insert into SMP_USER (ID, EMAIL, USERNAME, PASSWORD, ROLE, ACTIVE, CREATED_ON, LAST_UPDATED_ON) values (14,'EHEALTH_SMP_1000000007-2@test-mail.eu', 'EHEALTH_SMP_1000000007-2', '', 'SMP_ADMIN', 1, NOW(), NOW());
 insert into SMP_CERTIFICATE (ID, CERTIFICATE_ID, VALID_FROM, VALID_TO, CREATED_ON, LAST_UPDATED_ON) values (14, 'CN=EHEALTH_SMP_1000000007,O=DG-DIGIT,C=BE', null,null, NOW(), NOW());
 
-insert into SMP_USER (ID, USERNAME, PASSWORD, ROLE, ACTIVE, CREATED_ON, LAST_UPDATED_ON) values (15, 'EHEALTH&SMP_EC', '', 'SMP_ADMIN', 1, NOW(), NOW());
+insert into SMP_USER (ID, EMAIL, USERNAME, PASSWORD, ROLE, ACTIVE, CREATED_ON, LAST_UPDATED_ON) values (15,'EHEALTH-SMP_EC@test-mail.eu', 'EHEALTH&SMP_EC', '', 'SMP_ADMIN', 1, NOW(), NOW());
 insert into SMP_CERTIFICATE (ID, CERTIFICATE_ID, VALID_FROM, VALID_TO, CREATED_ON, LAST_UPDATED_ON) values (15, 'CN=EHEALTH&SMP_EC,O=European&Commission,C=B&E:f71ee8b11cb3b787', null,null, NOW(), NOW());
 
-insert into SMP_USER (ID, USERNAME, PASSWORD, ROLE, ACTIVE, CREATED_ON, LAST_UPDATED_ON) values (16, 'EHEALTH_SMP_EC2', '', 'SMP_ADMIN', 1, NOW(), NOW());
+insert into SMP_USER (ID, EMAIL, USERNAME, PASSWORD, ROLE, ACTIVE, CREATED_ON, LAST_UPDATED_ON) values (16,'EHEALTH_SMP_EC2@test-mail.eu', 'EHEALTH_SMP_EC2', '', 'SMP_ADMIN', 1, NOW(), NOW());
 insert into SMP_CERTIFICATE (ID, CERTIFICATE_ID, VALID_FROM, VALID_TO, CREATED_ON, LAST_UPDATED_ON) values (16, 'CN=EHEALTH_SMP_EC,O=European Commission,C=BE:000000000000100f', null,null, NOW(), NOW());
 
-insert into SMP_USER (ID, USERNAME, PASSWORD, ROLE, ACTIVE, CREATED_ON, LAST_UPDATED_ON) values (17, 'SMP_1000000007-3', '', 'SMP_ADMIN', 1, NOW(), NOW());
+insert into SMP_USER (ID, EMAIL, USERNAME, PASSWORD, ROLE, ACTIVE, CREATED_ON, LAST_UPDATED_ON) values (17,'SMP_1000000007-3@test-mail.eu', 'SMP_1000000007-3', '', 'SMP_ADMIN', 1, NOW(), NOW());
 insert into SMP_CERTIFICATE (ID, CERTIFICATE_ID, VALID_FROM, VALID_TO, CREATED_ON, LAST_UPDATED_ON) values (17, 'CN=SMP_1000000007,O=DG-DIGIT,C=BE', null,null, NOW(), NOW());
 
-insert into SMP_USER (ID, USERNAME, PASSWORD, ROLE, ACTIVE, CREATED_ON, LAST_UPDATED_ON) values (18, 'SMP_1000000007-4', '', 'SMP_ADMIN', 1, NOW(), NOW());
+insert into SMP_USER (ID, EMAIL, USERNAME, PASSWORD, ROLE, ACTIVE, CREATED_ON, LAST_UPDATED_ON) values (18,'SMP_1000000007-4@test-mail.eu', 'SMP_1000000007-4', '', 'SMP_ADMIN', 1, NOW(), NOW());
 insert into SMP_CERTIFICATE (ID, CERTIFICATE_ID, VALID_FROM, VALID_TO, CREATED_ON, LAST_UPDATED_ON) values (18, 'CN=SMP_1000000007,O=DG-DIGIT,C=BE:000000000123ABCD', null,null, NOW(), NOW());
 
-insert into SMP_USER (ID, USERNAME, PASSWORD, ROLE, ACTIVE, CREATED_ON, LAST_UPDATED_ON) values (19, 'SMP_1000000181,O=DIGIT,C=DK:123456789', '$2a$10$v2d/2E99dWHBM2ipTIip1enyaRKBTi.Xj/Iz0K8g0gjHBWdKRsHaC', 'SMP_ADMIN', 1, NOW(), NOW());
+insert into SMP_USER (ID, EMAIL, USERNAME, PASSWORD, ROLE, ACTIVE, CREATED_ON, LAST_UPDATED_ON) values (19,'SMP_1000000181@test-mail.eu', 'SMP_1000000181,O=DIGIT,C=DK:123456789', '$2a$10$v2d/2E99dWHBM2ipTIip1enyaRKBTi.Xj/Iz0K8g0gjHBWdKRsHaC', 'SMP_ADMIN', 1, NOW(), NOW());
 insert into SMP_CERTIFICATE (ID, CERTIFICATE_ID, VALID_FROM, VALID_TO, CREATED_ON, LAST_UPDATED_ON) values (19, 'CN=SMP_1000000181,O=DIGIT,C=DK:123456789', null,null, NOW(), NOW());
 
-insert into SMP_USER (ID, USERNAME, PASSWORD, ROLE, ACTIVE, CREATED_ON, LAST_UPDATED_ON) values (20, 'red_gw', '', 'SERVICE_GROUP_ADMIN', 1, NOW(), NOW());
+insert into SMP_USER (ID, EMAIL, USERNAME, PASSWORD, ROLE, ACTIVE, CREATED_ON, LAST_UPDATED_ON) values (20,'red_gw@test-mail.eu', 'red_gw', '', 'SERVICE_GROUP_ADMIN', 1, NOW(), NOW());
 insert into SMP_CERTIFICATE (ID, CERTIFICATE_ID, VALID_FROM, VALID_TO, CREATED_ON, LAST_UPDATED_ON) values (20, 'CN=red_gw,O=eDelivery,C=BE:9792CE69BC89F14C', null,null, NOW(), NOW());
 
-insert into SMP_USER (ID, USERNAME, PASSWORD, ROLE, ACTIVE, CREATED_ON, LAST_UPDATED_ON) values (21, 'blue_gw', '', 'SERVICE_GROUP_ADMIN', 1, NOW(), NOW());
+insert into SMP_USER (ID, EMAIL, USERNAME, PASSWORD, ROLE, ACTIVE, CREATED_ON, LAST_UPDATED_ON) values (21,'blue_gw@test-mail.eu', 'blue_gw', '', 'SERVICE_GROUP_ADMIN', 1, NOW(), NOW());
 insert into SMP_CERTIFICATE (ID, CERTIFICATE_ID, VALID_FROM, VALID_TO, CREATED_ON, LAST_UPDATED_ON) values (21, 'CN=blue_gw,O=eDelivery,C=BE:e07b6b956330a19a', null,null, NOW(), NOW());
 
 -- insert domain
 insert into SMP_DOMAIN (ID, DOMAIN_CODE, SML_SUBDOMAIN, SML_SMP_ID, SIGNATURE_KEY_ALIAS, SML_CLIENT_KEY_ALIAS, SML_BLUE_COAT_AUTH,SML_REGISTERED, CREATED_ON, LAST_UPDATED_ON, SML_CLIENT_CERT_HEADER)
-values (1, 'domain','','CEF-SMP-002', 'sample_key','sample_key', 1,0, NOW(), NOW(),'sno=1&subject=CN=SMP_TEST-PRE-SET-EXAMPLE, OU=eDelivery, O=DIGITAL, C=BE&validfrom=Dec 6 17:41:42 2016 GMT&validto=Jul 9 23:59:00 2050 GMT&issuer=CN=rootCNTest,OU=B4,O=DIGIT,L=Brussels,ST=BE,C=BE');
+values (1, 'domain','','CEF-SMP-001', 'sample_key','sample_key', 1,1, NOW(), NOW(),'sno=1&subject=CN=SMP_TEST-PRE-SET-EXAMPLE, OU=eDelivery, O=DIGITAL, C=BE&validfrom=Dec 6 17:41:42 2016 GMT&validto=Jul 9 23:59:00 2050 GMT&issuer=CN=rootCNTest,OU=B4,O=DIGIT,L=Brussels,ST=BE,C=BE');
 
 insert into SMP_DOMAIN (ID, DOMAIN_CODE, SML_SUBDOMAIN, SML_SMP_ID, SIGNATURE_KEY_ALIAS, SML_BLUE_COAT_AUTH,SML_REGISTERED, CREATED_ON, LAST_UPDATED_ON) values (2, 'domainB','subdomain002', 'CEF-SMP-002','sample_key',1,0, CURRENT_TIMESTAMP(),CURRENT_TIMESTAMP());
 insert into SMP_DOMAIN (ID, DOMAIN_CODE, SML_SUBDOMAIN, SML_SMP_ID, SIGNATURE_KEY_ALIAS, SML_BLUE_COAT_AUTH,SML_REGISTERED, CREATED_ON, LAST_UPDATED_ON) values (3, 'domainC','subdomain003', 'CEF-SMP-003','sample_key',1,0, CURRENT_TIMESTAMP(),CURRENT_TIMESTAMP());
diff --git a/smp-spi/pom.xml b/smp-spi/pom.xml
index ead4a25ebaf238872c2df608177fc60f3b7ad327..d626978bb7f52e8bb27cf8928adb5cc59651b016 100644
--- a/smp-spi/pom.xml
+++ b/smp-spi/pom.xml
@@ -20,25 +20,16 @@
         <version>4.2-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
-
     <artifactId>smp-spi</artifactId>
     <name>smp-spi</name>
     <description>SMP Service provider interface (SPI). The SMP SPI is an application interface intended to be implemented or extended
         by a third party as library. The libraries must be added to SMP library directory and are loaded at startup.</description>
+    <packaging>jar</packaging>
     <dependencies>
-        <dependency>
-            <groupId>ch.qos.logback</groupId>
-            <artifactId>logback-classic</artifactId>
-        </dependency>
         <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-api</artifactId>
         </dependency>
-        <dependency>
-            <groupId>org.hamcrest</groupId>
-            <artifactId>hamcrest-junit</artifactId>
-            <scope>test</scope>
-        </dependency>
     </dependencies>
     <build>
         <plugins>