diff --git a/smp-angular/src/app/service-group-search/service-group-search-ro.model.ts b/smp-angular/src/app/service-group-search/service-group-search-ro.model.ts
index f20d01a53d4aa8c52d24b9375f98f98f4b915b8f..7c52053e0f0bad86674e8ec52738df3ff34ae807 100644
--- a/smp-angular/src/app/service-group-search/service-group-search-ro.model.ts
+++ b/smp-angular/src/app/service-group-search/service-group-search-ro.model.ts
@@ -4,5 +4,7 @@ import {SearchTableEntity} from "../common/search-table/search-table-entity.mode
 export interface ServiceGroupSearchRo extends SearchTableEntity {
   participantIdentifier: string;
   participantScheme: string;
+  domainCode?:string;
+  resourceDefUrlSegment?:string;
   serviceMetadata: Array<ServiceMetadataSearchRo>;
 }
diff --git a/smp-angular/src/app/service-group-search/service-group-search.component.ts b/smp-angular/src/app/service-group-search/service-group-search.component.ts
index 8b37f78ae72747f0276ee99760cd75d95a5a0fce..00b295dd048230a27b6ea46882e34ec5f6638ccc 100644
--- a/smp-angular/src/app/service-group-search/service-group-search.component.ts
+++ b/smp-angular/src/app/service-group-search/service-group-search.component.ts
@@ -16,6 +16,8 @@ import {HttpClient} from '@angular/common/http';
 import {SmpConstants} from "../smp.constants";
 import {GlobalLookups} from "../common/global-lookups";
 import {SearchTableComponent} from "../common/search-table/search-table.component";
+import {ServiceGroupSearchRo} from "./service-group-search-ro.model";
+import {ServiceMetadataSearchRo} from "./service-metadata-search-ro.model";
 
 @Component({
   moduleId: module.id,
@@ -96,14 +98,22 @@ export class ServiceGroupSearchComponent implements OnInit, AfterViewInit, After
     this.initColumns();
   }
 
-  createServiceGroupURL(row: any) {
-    return encodeURIComponent((!row.participantScheme ? '' : row.participantScheme) + '::' + row.participantIdentifier);
+  createServiceGroupURL(row: ServiceGroupSearchRo) {
+
+    return (!row?.domainCode? "" : row.domainCode+ '/')
+          + (!row?.resourceDefUrlSegment?"" : row.resourceDefUrlSegment + '/')
+          + encodeURIComponent((!row.participantScheme ? '' : row.participantScheme) + '::' + row.participantIdentifier);
   }
 
-  createServiceMetadataURL(row: any, rowSMD: any) {
-    return encodeURIComponent((!row.participantScheme ? '' : row.participantScheme) + '::' + row.participantIdentifier) + '/services/' + encodeURIComponent((!rowSMD.documentIdentifierScheme ? '' : rowSMD.documentIdentifierScheme) + '::' + rowSMD.documentIdentifier);
+  createServiceMetadataURL(row: ServiceGroupSearchRo, rowSMD: ServiceMetadataSearchRo) {
+
+    return this.createServiceGroupURL(row)
+            + '/' + rowSMD.subresourceDefUrlSegment + '/'
+            + encodeURIComponent((!rowSMD.documentIdentifierScheme ? '' : rowSMD.documentIdentifierScheme) + '::' + rowSMD.documentIdentifier);
   }
 
+
+
   details(row: any) {
     this.serviceGroupSearchController.showDetails(row);
 
diff --git a/smp-angular/src/app/service-group-search/service-metadata-search-ro.model.ts b/smp-angular/src/app/service-group-search/service-metadata-search-ro.model.ts
index d6260aa78e784f02c4b08b7469819e42568d2511..ddee88c859d41cc239682e91e6970cb01b56b305 100644
--- a/smp-angular/src/app/service-group-search/service-metadata-search-ro.model.ts
+++ b/smp-angular/src/app/service-group-search/service-metadata-search-ro.model.ts
@@ -4,5 +4,6 @@ export interface ServiceMetadataSearchRo extends SearchTableEntity {
   documentIdentifier: string;
   documentIdentifierScheme: string;
   smlSubdomain: string;
+  subresourceDefUrlSegment?:string;
   domainCode: string;
 }
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 7b6b00682297623b2a335cd6bc57d7f281a90768..65e713cd6f27ef953c288162c33a405bad67dc9e 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
@@ -30,26 +30,20 @@ insert into bdmsl_configuration(property, value, description, created_on, last_u
 ('sml.property.refresh.cronJobExpression','5 */1 * * * *','Properies update', NOW(), NOW());   
 
 
-
 insert into bdmsl_subdomain(subdomain_id, subdomain_name,dns_zone, description, participant_id_regexp, dns_record_types, smp_url_schemas, created_on, last_updated_on) values
-(1, 'test.edelivery.local', 'test.edelivery.local','Test domain', '^.*$','all','all', NOW(), NOW()),
-(2, 'ehealth.test.edelivery.local','test.edelivery.local','Domain for eHealth ','^.*$','all','all',NOW(), NOW()),
-(3, 'isaitb.test.edelivery.local','test.edelivery.local','Domain for isaitb ','^.*$','all','all',NOW(), NOW()),
-(4, 'peppol.test.edelivery.local', 'test.edelivery.local','Domain for OpenPeppol ', '^((((0002|0007|0009|0037|0060|0088|0096|0097|0106|0135|0142|9901|9902|9904|9905|9906|9907|9908|9909|9910|9912|9913|9914|9915|9916|9917|9918|9919|9920|9921|9922|9923|9924|9925|9926|9927|9928|9929|9930|9931|9932|9933|9934|9935|9936|9937|9938|9939|9940|9941|9942|9943|9944|9945|9946|9947|9948|9949|9950|9951|9952|9953|9954|9955|9956|9957|0184):).*)|(\\*))$','all','all', NOW(), NOW());
+(1, 'domain-01.test.edelivery.local','test.edelivery.local','Domain for no trestriction ','^.*$','all','all', NOW(), NOW()),
+(2, 'domain-02.test.edelivery.local', 'test.edelivery.local','Domain for with party id restriction', '^((((0002|0007|0009|0037|0060|0088|0096|0097|0106|0135|0142|9901|9902|9904|9905|9906|9907|9908|9909|9910|9912|9913|9914|9915|9916|9917|9918|9919|9920|9921|9922|9923|9924|9925|9926|9927|9928|9929|9930|9931|9932|9933|9934|9935|9936|9937|9938|9939|9940|9941|9942|9943|9944|9945|9946|9947|9948|9949|9950|9951|9952|9953|9954|9955|9956|9957|0184):).*)|(\\*))$','all','all',  NOW(), NOW());
 
 
-INSERT INTO bdmsl_certificate_domain(certificate, crl_url,  is_root_ca, fk_subdomain_id, created_on, last_updated_on, is_admin) VALUES
-('CN=unsecure_root,O=delete_in_production,C=only_for_testing','',1, 2, NOW(), NOW(),1),
-('CN=unsecure_root_testTeam,O=delete_in_production,C=only_for_testing','',1, 2, NOW(), NOW(),1),
-('CN=rootCNTest,OU=B4,O=DIGIT,L=Brussels,ST=BE,C=BE','',1, 1, NOW(), NOW(),0),
-('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_domain(truststore_alias, certificate, crl_url,  is_root_ca, fk_subdomain_id, created_on, last_updated_on, is_admin) VALUES
+('CN=smp_domain_01', 'CN=smp_domain_01,O=digit,C=eu','',0, 1, NOW(), NOW(),1),
+('CN=smp_domain_02','CN=smp_domain_02,O=digit,C=eu','',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());
+(1, 'CN=smp_domain_01,O=digit,C=eu:0000000000000000000000006443d8a8',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());
+('DOMI-SMP-001 ', 1,1, 'http://localhost:8080/smp/','0.0.0.0',NOW(), NOW());
 
 
 
diff --git a/smp-docker/compose/tomcat-mysql-smp-sml/runCompose.sh b/smp-docker/compose/tomcat-mysql-smp-sml/runCompose.sh
index 580e77db3030daebb3c335318c5d8f49a266b05a..dbc70a61c93fc09fbae2415de91d96d08cf204f6 100755
--- a/smp-docker/compose/tomcat-mysql-smp-sml/runCompose.sh
+++ b/smp-docker/compose/tomcat-mysql-smp-sml/runCompose.sh
@@ -1,9 +1,9 @@
 #!/bin/bash
 
 WORKING_DIR="$(dirname $0)"
-SML_INIT_DATABASE="../../../smp-webapp/src/main/smp-setup/database-scripts/mysql5innodb.ddl"
-SML_INIT_DATABASE_DATA="../../../smp-webapp/src/main/smp-setup/database-scripts/mysql5innodb-data.sql"
-SML_INIT_DATABASE_DATA="../../../smp-soapui-tests/groovy/mysql-4.1_integration_test_data.sql"
+SMP_INIT_DATABASE="../../../smp-webapp/src/main/smp-setup/database-scripts/mysql5innodb.ddl"
+#SMP_INIT_DATABASE_DATA="../../../smp-webapp/src/main/smp-setup/database-scripts/mysql5innodb-data.sql"
+SMP_INIT_DATABASE_DATA="../../../smp-soapui-tests/groovy/mysql-4.1_integration_test_data.sql"
 # soap ui data
 PREFIX="smp-sml-tomcat-mysql"
 SMP_VERSION=
@@ -14,7 +14,7 @@ while getopts i:v: option
 do
   case "${option}"
   in
-    i) SML_INIT_DATABASE_DATA=${OPTARG};;
+    i) SMP_INIT_DATABASE_DATA=${OPTARG};;
     v) SMP_VERSION=${OPTARG};;
   esac
 done
@@ -40,9 +40,9 @@ then
 fi
 
 # create  database init script from l
-cp   "${SML_INIT_DATABASE}" ./properties/db-scripts/mysql5innodb.ddl
-cp   "${SML_INIT_DATABASE_DATA}" ./properties/db-scripts/mysql5innodb-data.sql
-
+cp   "${SMP_INIT_DATABASE}" ./properties/db-scripts/mysql5innodb.ddl
+cp   "${SMP_INIT_DATABASE_DATA}" ./properties/db-scripts/mysql5innodb-data.sql
+cp
 
 
 function clearOldContainers {
@@ -52,12 +52,8 @@ function clearOldContainers {
 }
 
 
-#
-# Always delete shared-status-folder else weblogic will start to quick!
-# because statuses are sync over shared-status-folder folders and it could contain status from previous run.
-
 export SMP_VERSION="${SMP_VERSION}"
-echo "Clear old containser"
+echo "Clear old containers"
 clearOldContainers
 # start " 
 echo "Start compose"
diff --git a/smp-docker/images/build-docker-images.sh b/smp-docker/images/build-docker-images.sh
index 7893de78151867b422cab249f9199db56aa0d1ec..b2cc519fb97c7b1330a74beadb8cc596eeeabd0b 100755
--- a/smp-docker/images/build-docker-images.sh
+++ b/smp-docker/images/build-docker-images.sh
@@ -199,9 +199,9 @@ validateAndPrepareArtefacts() {
 # build docker images
 # -----------------------------------------------------------------------------
 buildImages() {
-  #buildOracleDatabaseImage
-  #buildWebLogicOracleImages12
-  #buildWebLogicOracleImages14
+  buildOracleDatabaseImage
+  buildWebLogicOracleImages12
+  buildWebLogicOracleImages14
   buildTomcatMysqlImages
   buildUtils
 }
diff --git a/smp-docker/images/shared-artefacts/sml-mysql5innodb-data.sql b/smp-docker/images/shared-artefacts/sml-mysql5innodb-data.sql
index 886595706018257a30380428c0461636d1c8590b..2b5f16a1ba38b2004c1758baba1c2f0ea9ffbf0f 100644
--- a/smp-docker/images/shared-artefacts/sml-mysql5innodb-data.sql
+++ b/smp-docker/images/shared-artefacts/sml-mysql5innodb-data.sql
@@ -35,7 +35,6 @@ insert into bdmsl_subdomain(subdomain_id, subdomain_name,dns_zone, description,
 (1, 'domain-01.test.edelivery.local','test.edelivery.local','Domain for no trestriction ','^.*$','all','all', NOW(), NOW()),
 (2, 'domain-02.test.edelivery.local', 'test.edelivery.local','Domain for with party id restriction', '^((((0002|0007|0009|0037|0060|0088|0096|0097|0106|0135|0142|9901|9902|9904|9905|9906|9907|9908|9909|9910|9912|9913|9914|9915|9916|9917|9918|9919|9920|9921|9922|9923|9924|9925|9926|9927|9928|9929|9930|9931|9932|9933|9934|9935|9936|9937|9938|9939|9940|9941|9942|9943|9944|9945|9946|9947|9948|9949|9950|9951|9952|9953|9954|9955|9956|9957|0184):).*)|(\\*))$','all','all',  NOW(), NOW());
 
-
 INSERT INTO bdmsl_certificate_domain(truststore_alias, certificate, crl_url,  is_root_ca, fk_subdomain_id, created_on, last_updated_on, is_admin) VALUES
 ('CN=smp_domain_01', 'CN=smp_domain_01,O=digit,C=eu','',0, 1, NOW(), NOW(),1),
 ('CN=smp_domain_02','CN=smp_domain_02,O=digit,C=eu','',0, 2, NOW(), NOW(),1);
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 b962adfa8e4b5c0f42dbcaed90ac2a1fb53ce021..e8584a632178ca715fcaf5177738c3648d4e1d21 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,4 +12,7 @@ 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
+DOMI-SMP-001.publisher.domain-01	60	IN	CNAME	localhost.
+B-b12b56f8cc8aa86c50e853568602d46c.iso6523-actorid-upis.domain-01	60	IN	CNAME	DOMI-SMP-001.publisher.domain-01.test.edelivery.local.
+XLUSTCNMQBBUURV46W66WAOZFI7AATDWKLJEETXSUDRXJX4QAHDA.iso6523-actorid-upis.domain-01	60	IN	NAPTR	100 10 "U" "Meta:SMP" "!.*!http://localhost:8080/smp/!" .
+
diff --git a/smp-resource-extensions/oasis-smp-spi/src/main/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceGroup10Handler.java b/smp-resource-extensions/oasis-smp-spi/src/main/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceGroup10Handler.java
index 27194d82883dfff3a9687fb635dbdbfe8b3833de..e21d9e8ee14a399ce3e81dd07614b486baef0511 100644
--- a/smp-resource-extensions/oasis-smp-spi/src/main/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceGroup10Handler.java
+++ b/smp-resource-extensions/oasis-smp-spi/src/main/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceGroup10Handler.java
@@ -6,6 +6,7 @@ import eu.europa.ec.dynamicdiscovery.exception.TechnicalException;
 import eu.europa.ec.dynamicdiscovery.exception.XmlInvalidAgainstSchemaException;
 import eu.europa.ec.smp.spi.api.SmpDataServiceApi;
 import eu.europa.ec.smp.spi.api.SmpIdentifierServiceApi;
+import eu.europa.ec.smp.spi.api.SmpXmlSignatureApi;
 import eu.europa.ec.smp.spi.api.model.RequestData;
 import eu.europa.ec.smp.spi.api.model.ResourceIdentifier;
 import eu.europa.ec.smp.spi.api.model.ResponseData;
@@ -46,7 +47,8 @@ public class OasisSMPServiceGroup10Handler extends AbstractOasisSMPHandler {
 
     final OasisSMP10ServiceGroupReader serviceGroupReader;
 
-    public OasisSMPServiceGroup10Handler(SmpDataServiceApi smpDataApi, SmpIdentifierServiceApi smpIdentifierApi) {
+    public OasisSMPServiceGroup10Handler(SmpDataServiceApi smpDataApi,
+                                         SmpIdentifierServiceApi smpIdentifierApi) {
         this.smpDataApi = smpDataApi;
         this.smpIdentifierApi = smpIdentifierApi;
         serviceGroupReader = new OasisSMP10ServiceGroupReader();
@@ -114,10 +116,15 @@ public class OasisSMPServiceGroup10Handler extends AbstractOasisSMPHandler {
 
     public URI buildSMPURLForParticipantAndDocumentIdentifier(ResourceIdentifier resourceIdentifier, ResourceIdentifier subresourceIdentifier) throws ResourceException {
         LOG.debug("Build SMP url for participant identifier: [{}] and document identifier [{}].", resourceIdentifier, subresourceIdentifier);
+
+
         String pathSegment = smpDataApi.getURIPathSegmentForSubresource(OasisSMPServiceMetadata10.RESOURCE_IDENTIFIER);
         String baseUrl = smpDataApi.getResourceUrl();
         String urlEncodedFormatParticipant = smpIdentifierApi.getURLEncodedResourceIdentifier(resourceIdentifier);
         String urlEncodedFormatDocument = smpIdentifierApi.getURLEncodedSubresourceIdentifier(subresourceIdentifier);
+
+        LOG.debug("Build SMP url from base path [{}], participant identifier: [{}] and document identifier [{}].",
+                baseUrl, urlEncodedFormatParticipant, urlEncodedFormatDocument);
         try {
             return new URIBuilder(baseUrl)
                     .appendPathSegments(urlEncodedFormatParticipant)
diff --git a/smp-resource-extensions/oasis-smp-spi/src/main/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceGroup20Handler.java b/smp-resource-extensions/oasis-smp-spi/src/main/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceGroup20Handler.java
index a72f118b84e4018458b29d73ca2fe4bad60be4c0..45fd0aa991ba7263b771f731d3647a424a333d45 100644
--- a/smp-resource-extensions/oasis-smp-spi/src/main/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceGroup20Handler.java
+++ b/smp-resource-extensions/oasis-smp-spi/src/main/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceGroup20Handler.java
@@ -6,28 +6,32 @@ import eu.europa.ec.dynamicdiscovery.exception.TechnicalException;
 import eu.europa.ec.dynamicdiscovery.exception.XmlInvalidAgainstSchemaException;
 import eu.europa.ec.smp.spi.api.SmpDataServiceApi;
 import eu.europa.ec.smp.spi.api.SmpIdentifierServiceApi;
+import eu.europa.ec.smp.spi.api.SmpXmlSignatureApi;
 import eu.europa.ec.smp.spi.api.model.RequestData;
 import eu.europa.ec.smp.spi.api.model.ResourceIdentifier;
 import eu.europa.ec.smp.spi.api.model.ResponseData;
-import eu.europa.ec.smp.spi.def.OasisSMPServiceMetadata10;
+import eu.europa.ec.smp.spi.converter.ServiceMetadata10Converter;
+import eu.europa.ec.smp.spi.def.OasisSMPServiceMetadata20;
 import eu.europa.ec.smp.spi.exceptions.ResourceException;
+import eu.europa.ec.smp.spi.exceptions.SignatureException;
 import gen.eu.europa.ec.ddc.api.smp20.ServiceGroup;
 import gen.eu.europa.ec.ddc.api.smp20.aggregate.ServiceReference;
 import gen.eu.europa.ec.ddc.api.smp20.basic.ID;
 import gen.eu.europa.ec.ddc.api.smp20.basic.ParticipantID;
+import gen.eu.europa.ec.ddc.api.smp20.basic.SMPVersionID;
 import org.apache.commons.lang3.exception.ExceptionUtils;
-import org.apache.hc.core5.net.URIBuilder;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Component;
+import org.w3c.dom.Document;
 
+import javax.xml.transform.TransformerException;
 import java.io.BufferedInputStream;
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.InputStream;
-import java.net.URI;
-import java.net.URISyntaxException;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
@@ -40,13 +44,17 @@ public class OasisSMPServiceGroup20Handler extends AbstractOasisSMPHandler {
     private static final Logger LOG = LoggerFactory.getLogger(OasisSMPServiceGroup20Handler.class);
 
     final SmpDataServiceApi smpDataApi;
+    final SmpXmlSignatureApi signatureApi;
     final SmpIdentifierServiceApi smpIdentifierApi;
     final OasisSMP20ServiceGroupReader reader;
 
 
-    public OasisSMPServiceGroup20Handler(SmpDataServiceApi smpDataApi, SmpIdentifierServiceApi smpIdentifierApi) {
+    public OasisSMPServiceGroup20Handler(SmpDataServiceApi smpDataApi,
+                                         SmpIdentifierServiceApi smpIdentifierApi,
+                                         SmpXmlSignatureApi signatureApi) {
         this.smpDataApi = smpDataApi;
         this.smpIdentifierApi = smpIdentifierApi;
+        this.signatureApi = signatureApi;
         this.reader = new OasisSMP20ServiceGroupReader();
     }
 
@@ -56,6 +64,8 @@ public class OasisSMPServiceGroup20Handler extends AbstractOasisSMPHandler {
 
 
         ServiceGroup serviceGroup = new ServiceGroup();
+        serviceGroup.setSMPVersionID(new SMPVersionID());
+        serviceGroup.getSMPVersionID().setValue("2.0");
         serviceGroup.setParticipantID(new ParticipantID());
         serviceGroup.getParticipantID().setValue(identifier.getValue());
         serviceGroup.getParticipantID().setSchemeID(identifier.getScheme());
@@ -85,11 +95,14 @@ public class OasisSMPServiceGroup20Handler extends AbstractOasisSMPHandler {
         serviceGroup.getServiceReferences().clear();
         serviceGroup.getServiceReferences().addAll(buildReferences(identifier));
 
-        try {
-            reader.serializeNative(serviceGroup, responseData.getOutputStream(), false);
-        } catch (TechnicalException e) {
-            throw new ResourceException(PARSE_ERROR, "Can not marshal extension for service group: [" + identifier + "]. Error: " + ExceptionUtils.getRootCauseMessage(e), e);
 
+        try {
+            Document doc = reader.objectToDocument(serviceGroup);
+            signatureApi.createEnvelopedSignature(resourceData, doc.getDocumentElement(), Collections.emptyList());
+            ServiceMetadata10Converter.serialize(doc, responseData.getOutputStream());
+        } catch (SignatureException | TechnicalException | TransformerException e) {
+            throw new ResourceException(PROCESS_ERROR, "Error occurred while signing the service group 2.0 message!: ["
+                    + identifier + "]. Error: " + ExceptionUtils.getRootCauseMessage(e), e);
         }
     }
 
@@ -97,7 +110,8 @@ public class OasisSMPServiceGroup20Handler extends AbstractOasisSMPHandler {
     private List<ServiceReference> buildReferences(ResourceIdentifier resourceIdentifier) {
         LOG.debug("Build build References identifier [{}].", resourceIdentifier);
         // get subresource identifiers for document type
-        List<ResourceIdentifier> subResourceIdentifier = smpDataApi.getSubResourceIdentifiers(resourceIdentifier, OasisSMPServiceMetadata10.RESOURCE_IDENTIFIER);
+        List<ResourceIdentifier> subResourceIdentifier = smpDataApi.getSubResourceIdentifiers(resourceIdentifier,
+                OasisSMPServiceMetadata20.RESOURCE_IDENTIFIER);
         List<ServiceReference> referenceIds = new ArrayList<>();
         for (ResourceIdentifier subresId : subResourceIdentifier) {
             ServiceReference reference = new ServiceReference();
@@ -110,22 +124,6 @@ public class OasisSMPServiceGroup20Handler extends AbstractOasisSMPHandler {
         return referenceIds;
     }
 
-    public URI buildSMPURLForParticipantAndDocumentIdentifier(ResourceIdentifier resourceIdentifier, ResourceIdentifier subresourceIdentifier) throws ResourceException {
-        LOG.debug("Build SMP url for participant identifier: [{}] and document identifier [{}].", resourceIdentifier, subresourceIdentifier);
-        String pathSegment = smpDataApi.getURIPathSegmentForSubresource(OasisSMPServiceMetadata10.RESOURCE_IDENTIFIER);
-        String baseUrl = smpDataApi.getResourceUrl();
-        String urlEncodedFormatParticipant = smpIdentifierApi.getURLEncodedResourceIdentifier(resourceIdentifier);
-        String urlEncodedFormatDocument = smpIdentifierApi.getURLEncodedSubresourceIdentifier(subresourceIdentifier);
-        try {
-            return new URIBuilder(baseUrl)
-                    .appendPathSegments(urlEncodedFormatParticipant)
-                    .appendPathSegments(pathSegment)
-                    .appendPathSegments(urlEncodedFormatDocument).build();
-        } catch (URISyntaxException e) {
-            throw new ResourceException(INTERNAL_ERROR, "Can not build SMP document URL path! " + ExceptionUtils.getMessage(e), e);
-        }
-    }
-
 
     @Override
     public void storeResource(RequestData resourceData, ResponseData responseData) throws ResourceException {
diff --git a/smp-resource-extensions/oasis-smp-spi/src/main/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceMetadata20Handler.java b/smp-resource-extensions/oasis-smp-spi/src/main/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceMetadata20Handler.java
index d74138b964e8b23087977d2583a4f889051da322..b2c3260b4594ac51e5b63473d5c0e18c2d93c3f6 100644
--- a/smp-resource-extensions/oasis-smp-spi/src/main/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceMetadata20Handler.java
+++ b/smp-resource-extensions/oasis-smp-spi/src/main/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceMetadata20Handler.java
@@ -15,8 +15,11 @@ import eu.europa.ec.smp.spi.exceptions.ResourceException;
 import eu.europa.ec.smp.spi.exceptions.SignatureException;
 import eu.europa.ec.smp.spi.validation.ServiceMetadata20Validator;
 import gen.eu.europa.ec.ddc.api.smp20.ServiceMetadata;
-import gen.eu.europa.ec.ddc.api.smp20.basic.ParticipantID;
-import gen.eu.europa.ec.ddc.api.smp20.basic.ServiceID;
+import gen.eu.europa.ec.ddc.api.smp20.aggregate.Certificate;
+import gen.eu.europa.ec.ddc.api.smp20.aggregate.Endpoint;
+import gen.eu.europa.ec.ddc.api.smp20.aggregate.Process;
+import gen.eu.europa.ec.ddc.api.smp20.aggregate.ProcessMetadata;
+import gen.eu.europa.ec.ddc.api.smp20.basic.*;
 import org.apache.commons.lang3.exception.ExceptionUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -29,6 +32,7 @@ import java.io.BufferedInputStream;
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.time.OffsetDateTime;
 import java.util.Collections;
 import java.util.List;
 
@@ -64,12 +68,64 @@ public class OasisSMPServiceMetadata20Handler extends AbstractOasisSMPHandler {
         ResourceIdentifier subresourceIdentifier = getSubresourceIdentifier(resourceData);
 
         ServiceMetadata serviceMetadata = new ServiceMetadata();
+        serviceMetadata.setSMPVersionID(new SMPVersionID());
+        serviceMetadata.getSMPVersionID().setValue("2.0");
         serviceMetadata.setParticipantID(new ParticipantID());
         serviceMetadata.getParticipantID().setValue(identifier.getValue());
         serviceMetadata.getParticipantID().setSchemeID(identifier.getScheme());
         serviceMetadata.setServiceID(new ServiceID());
-        serviceMetadata.getParticipantID().setValue(subresourceIdentifier.getValue());
-        serviceMetadata.getParticipantID().setSchemeID(subresourceIdentifier.getScheme());
+        serviceMetadata.getServiceID().setValue(subresourceIdentifier.getValue());
+        serviceMetadata.getServiceID().setSchemeID(subresourceIdentifier.getScheme());
+        ProcessMetadata processMetadata = new ProcessMetadata();
+        serviceMetadata.getProcessMetadatas().add(processMetadata);
+        Process process = new Process();
+        process.setID(new ID());
+        process.getID().setValue("Service");
+        process.getID().setSchemeID("service-namespace");
+        processMetadata.getProcesses().add(process);
+        Endpoint endpoint = new Endpoint();
+        endpoint.setExpirationDate(new ExpirationDate());
+        endpoint.setActivationDate(new ActivationDate());
+        endpoint.getExpirationDate().setValue(OffsetDateTime.now().plusYears(1));
+        endpoint.getActivationDate().setValue(OffsetDateTime.now().minusDays(1));
+        endpoint.setAddressURI(new AddressURI());
+        endpoint.getAddressURI().setValue("http://test.ap.local/msh");
+        endpoint.setTransportProfileID(new TransportProfileID());
+        endpoint.getTransportProfileID().setValue("bdxr-transport-ebms3-as4-v1p0");
+        Certificate certEnc = new Certificate();
+        certEnc.setExpirationDate(new ExpirationDate());
+        certEnc.setActivationDate(new ActivationDate());
+        certEnc.getExpirationDate().setValue(OffsetDateTime.now().plusYears(1));
+        certEnc.getActivationDate().setValue(OffsetDateTime.now().minusDays(1));
+        certEnc.setSubject(new Subject());
+        certEnc.setIssuer(new Issuer());
+        certEnc.setTypeCode(new TypeCode());
+        certEnc.setContentBinaryObject(new ContentBinaryObject());
+        certEnc.getSubject().setValue("CN=test-ap-enc,OU=edelivery,O=digit,C=EU");
+        certEnc.getIssuer().setValue("CN=test-ap-enc,OU=edelivery,O=digit,C=EU");
+        certEnc.getTypeCode().setValue("encryption");
+        certEnc.getContentBinaryObject().setValue("Put the real certificate data here".getBytes());
+        certEnc.getContentBinaryObject().setMimeCode("application/base64");
+
+        Certificate certSig = new Certificate();
+        certSig.setExpirationDate(new ExpirationDate());
+        certSig.setActivationDate(new ActivationDate());
+        certSig.getExpirationDate().setValue(OffsetDateTime.now().plusYears(1));
+        certSig.getActivationDate().setValue(OffsetDateTime.now().minusDays(1));
+        certSig.setTypeCode(new TypeCode());
+        certSig.setContentBinaryObject(new ContentBinaryObject());
+        certSig.setSubject(new Subject());
+        certSig.setIssuer(new Issuer());
+        certSig.getSubject().setValue("CN=test-ap-signature,OU=edelivery,O=digit,C=EU");
+        certSig.getIssuer().setValue("CN=test-ap-signature,OU=edelivery,O=digit,C=EU");
+        certSig.getTypeCode().setValue("signature");
+        certSig.getContentBinaryObject().setValue("Put the real certificate data here".getBytes());
+        certSig.getContentBinaryObject().setMimeCode("application/base64");
+        endpoint.getCertificates().add(certEnc);
+        endpoint.getCertificates().add(certSig);
+        processMetadata.getEndpoints().add(endpoint);
+
+
         try {
             reader.serializeNative(serviceMetadata, responseData.getOutputStream(), true);
         } catch (TechnicalException e) {
diff --git a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/conversion/DBResourceDefToResourceDefinitionROConverter.java b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/conversion/DBResourceDefToResourceDefinitionROConverter.java
index 86796da78e4a1c74ab10d29ad569e51819ca1a25..0f57a0856a5f9d900257edfc3a6e30fca4583a67 100644
--- a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/conversion/DBResourceDefToResourceDefinitionROConverter.java
+++ b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/conversion/DBResourceDefToResourceDefinitionROConverter.java
@@ -37,6 +37,8 @@ public class DBResourceDefToResourceDefinitionROConverter implements Converter<D
             List<SubresourceDefinitionRO> resourceDefinitionROList = source.getSubresources().stream().map(resourceDef ->
                     conversionService.convert(resourceDef, SubresourceDefinitionRO.class)
             ).collect(Collectors.toList());
+
+
             target.getSubresourceDefinitions().addAll(resourceDefinitionROList);
         } catch (IllegalAccessException | InvocationTargetException e) {
             LOG.error("Error occurred while converting DBResourceDef", e);
diff --git a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/data/ui/ServiceGroupSearchRO.java b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/data/ui/ServiceGroupSearchRO.java
index 9c1e43716d7f24d20751fd72d693aa911e0a81eb..b6b5cf802200ba5febe7215e0d039dd48f80ea2d 100644
--- a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/data/ui/ServiceGroupSearchRO.java
+++ b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/data/ui/ServiceGroupSearchRO.java
@@ -16,6 +16,9 @@ public class ServiceGroupSearchRO extends BaseRO {
 
     private static final long serialVersionUID = 9008583888835630016L;
     private Long id;
+
+    private String domainCode;
+    private String resourceDefUrlSegment;
     private String participantIdentifier;
     private String participantScheme;
     private List<ServiceMetadataRO> lstServiceMetadata = new ArrayList<>();
@@ -45,6 +48,22 @@ public class ServiceGroupSearchRO extends BaseRO {
         this.participantScheme = participantScheme;
     }
 
+    public String getDomainCode() {
+        return domainCode;
+    }
+
+    public void setDomainCode(String domainCode) {
+        this.domainCode = domainCode;
+    }
+
+    public String getResourceDefUrlSegment() {
+        return resourceDefUrlSegment;
+    }
+
+    public void setResourceDefUrlSegment(String resourceDefUrlSegment) {
+        this.resourceDefUrlSegment = resourceDefUrlSegment;
+    }
+
     public List<ServiceMetadataRO> getServiceMetadata() {
         return lstServiceMetadata;
     }
diff --git a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/data/ui/ServiceMetadataRO.java b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/data/ui/ServiceMetadataRO.java
index 53583629da4ed758c99532bc9a02e1b9ad7b9fc3..d123ba8114d1f7383d7dde9bfde374caa6891cb4 100644
--- a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/data/ui/ServiceMetadataRO.java
+++ b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/data/ui/ServiceMetadataRO.java
@@ -17,6 +17,8 @@ public class ServiceMetadataRO extends BaseRO {
     String documentIdentifierScheme;
     String smlSubdomain;
     String domainCode;
+
+    String subresourceDefUrlSegment;
     private int xmlContentStatus = EntityROStatus.PERSISTED.getStatusNumber();
     String xmlContent;
 
@@ -36,6 +38,14 @@ public class ServiceMetadataRO extends BaseRO {
         this.documentIdentifier = documentIdentifier;
     }
 
+    public String getSubresourceDefUrlSegment() {
+        return subresourceDefUrlSegment;
+    }
+
+    public void setSubresourceDefUrlSegment(String subresourceDefUrlSegment) {
+        this.subresourceDefUrlSegment = subresourceDefUrlSegment;
+    }
+
     public String getDocumentIdentifierScheme() {
 
         return StringUtils.isEmpty(documentIdentifierScheme)?null: documentIdentifierScheme;
diff --git a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/resource/ResolvedData.java b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/resource/ResolvedData.java
index 4166412177d44222972a7f9d545ec2c4776b0241..c073edd9e53cbb4441ae696fda3ecd5428e4f09d 100644
--- a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/resource/ResolvedData.java
+++ b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/resource/ResolvedData.java
@@ -1,6 +1,7 @@
 package eu.europa.ec.edelivery.smp.services.resource;
 
 import eu.europa.ec.edelivery.smp.data.model.DBDomain;
+import eu.europa.ec.edelivery.smp.data.model.DBGroup;
 import eu.europa.ec.edelivery.smp.data.model.doc.DBResource;
 import eu.europa.ec.edelivery.smp.data.model.doc.DBSubresource;
 import eu.europa.ec.edelivery.smp.data.model.ext.DBResourceDef;
@@ -9,6 +10,7 @@ import eu.europa.ec.edelivery.smp.data.model.ext.DBSubresourceDef;
 public class ResolvedData {
     boolean resolved;
     DBDomain domain;
+    DBGroup group;
     DBResourceDef resourceDef;
     DBSubresourceDef subResourceDef;
     DBResource resource;
@@ -61,4 +63,12 @@ public class ResolvedData {
     public void setResolved(boolean resolved) {
         this.resolved = resolved;
     }
+
+    public DBGroup getGroup() {
+        return group;
+    }
+
+    public void setGroup(DBGroup group) {
+        this.group = group;
+    }
 }
diff --git a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/resource/ResourceHandlerService.java b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/resource/ResourceHandlerService.java
index ed8d673ef9b5e7d6e16d4515e8f09bb57463d893..cd1eb50d472efe1f779a04289f3fb7ec695efc8e 100644
--- a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/resource/ResourceHandlerService.java
+++ b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/resource/ResourceHandlerService.java
@@ -1,7 +1,10 @@
 package eu.europa.ec.edelivery.smp.services.resource;
 
 
+import eu.europa.ec.edelivery.smp.data.dao.GroupDao;
 import eu.europa.ec.edelivery.smp.data.dao.ResourceMemberDao;
+import eu.europa.ec.edelivery.smp.data.model.DBDomain;
+import eu.europa.ec.edelivery.smp.data.model.DBGroup;
 import eu.europa.ec.edelivery.smp.data.model.doc.DBDocument;
 import eu.europa.ec.edelivery.smp.data.model.doc.DBDocumentVersion;
 import eu.europa.ec.edelivery.smp.data.model.doc.DBResource;
@@ -13,6 +16,7 @@ import eu.europa.ec.edelivery.smp.exceptions.ErrorCode;
 import eu.europa.ec.edelivery.smp.exceptions.SMPRuntimeException;
 import eu.europa.ec.edelivery.smp.logging.SMPLogger;
 import eu.europa.ec.edelivery.smp.logging.SMPLoggerFactory;
+import eu.europa.ec.edelivery.smp.services.SMLIntegrationService;
 import eu.europa.ec.edelivery.smp.services.spi.data.SpiResponseData;
 import eu.europa.ec.edelivery.smp.servlet.ResourceRequest;
 import eu.europa.ec.edelivery.smp.servlet.ResourceResponse;
@@ -44,10 +48,15 @@ public class ResourceHandlerService extends AbstractResourceHandler {
 
     final ResourceMemberDao resourceMemberDao;
 
+    final GroupDao groupDao;
+    final SMLIntegrationService integrationService;
+
     public ResourceHandlerService(List<ResourceDefinitionSpi> resourceDefinitionSpiList, ResourceStorage resourceStorage,
-                                  ResourceMemberDao resourceMemberDao) {
+                                  ResourceMemberDao resourceMemberDao, GroupDao groupDao,SMLIntegrationService integrationService) {
         super(resourceDefinitionSpiList, resourceStorage);
         this.resourceMemberDao = resourceMemberDao;
+        this.groupDao = groupDao;
+        this.integrationService = integrationService;
     }
 
     public void readResource(ResourceRequest resourceRequest,
@@ -94,6 +103,7 @@ public class ResourceHandlerService extends AbstractResourceHandler {
 
         ResolvedData resolvedData = resourceRequest.getResolvedData();
         DBResource resource = resolvedData.getResource();
+        DBDomain domain = resolvedData.getDomain();
         ResourceHandlerSpi handlerSpi = getResourceHandler(resolvedData.getResourceDef());
 
         boolean isNewResource = resource.getId() == null;
@@ -141,8 +151,18 @@ public class ResourceHandlerService extends AbstractResourceHandler {
         DBResource managedResource = resourceStorage.addDocumentVersionForResource(resource, documentVersion);
 
         if (isNewResource) {
-            resourceRequest.getOwnerHttpParameter();
             resourceMemberDao.setAdminMemberShip(user, managedResource);
+            if (managedResource.getGroup() == null) {
+
+                if (resolvedData.getGroup() != null) {
+                    managedResource.setGroup(resolvedData.getGroup());
+                } else {
+                    // if group is empty add first group from domain
+                    List<DBGroup> groupList = groupDao.getAllGroupsForDomain(domain);
+                    managedResource.setGroup(groupList.get(0));
+                }
+            }
+            integrationService.registerParticipant(managedResource, domain);
         }
     }
 
@@ -211,6 +231,7 @@ public class ResourceHandlerService extends AbstractResourceHandler {
         // locate the resource handler
         ResolvedData resolvedData = resourceRequest.getResolvedData();
         DBResource resource = resolvedData.getResource();
+        integrationService.unregisterParticipant(resource, resolvedData.domain);
         resourceStorage.deleteResource(resource);
     }
 
diff --git a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/resource/ResourceService.java b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/resource/ResourceService.java
index 1b658fb1bad0dff5f622c54419c3429a8f00fd75..9a01a2a4de7cc51fd84fba071fc8ee84e17bf178 100644
--- a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/resource/ResourceService.java
+++ b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/resource/ResourceService.java
@@ -127,8 +127,6 @@ public class ResourceService {
         } else if (isNotBlank(owner)) {
             LOG.warn("Owner [{}] is given for existing resource [{}]. The owner parameter is ignored!", owner, resolvedData.getResource());
         }
-
-
         resourceHandlerService.createResource(ownerUser, resourceRequest, resourceResponse);
     }
 
diff --git a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/ui/UIServiceGroupSearchService.java b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/ui/UIServiceGroupSearchService.java
index 2f1092e35459f261276086e42c58c0f69e65e6bc..30c51c1876bc92222e7aeec453842c5b5a641e77 100644
--- a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/ui/UIServiceGroupSearchService.java
+++ b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/ui/UIServiceGroupSearchService.java
@@ -4,7 +4,6 @@ import eu.europa.ec.edelivery.smp.data.dao.BaseDao;
 import eu.europa.ec.edelivery.smp.data.dao.DomainDao;
 import eu.europa.ec.edelivery.smp.data.dao.ResourceDao;
 import eu.europa.ec.edelivery.smp.data.dao.UserDao;
-import eu.europa.ec.edelivery.smp.data.model.DBDomain;
 import eu.europa.ec.edelivery.smp.data.model.doc.DBResource;
 import eu.europa.ec.edelivery.smp.data.model.user.DBUser;
 import eu.europa.ec.edelivery.smp.data.ui.ServiceGroupSearchRO;
@@ -92,16 +91,16 @@ public class UIServiceGroupSearchService extends UIServiceBase<DBResource, Servi
         ServiceGroupSearchRO serviceGroupRo = new ServiceGroupSearchRO();
 
         serviceGroupRo.setId(resource.getId());
+        serviceGroupRo.setDomainCode(resource.getDomainResourceDef().getDomain().getDomainCode());
+        serviceGroupRo.setResourceDefUrlSegment(resource.getDomainResourceDef().getResourceDef().getUrlSegment());
         serviceGroupRo.setParticipantIdentifier(resource.getIdentifierValue());
         serviceGroupRo.setParticipantScheme(resource.getIdentifierScheme());
-        DBDomain domain = resource.getDomainResourceDef().getDomain();
 
         resource.getSubresources().forEach(subresource -> {
             ServiceMetadataRO smdro = new ServiceMetadataRO();
+            smdro.setSubresourceDefUrlSegment(subresource.getSubresourceDef().getUrlSegment());
             smdro.setDocumentIdentifier(subresource.getIdentifierValue());
             smdro.setDocumentIdentifierScheme(subresource.getIdentifierScheme());
-            smdro.setDomainCode(domain.getDomainCode());
-            smdro.setSmlSubdomain(domain.getSmlSubdomain());
             serviceGroupRo.getServiceMetadata().add(smdro);
 
         });
diff --git a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/utils/SmpUrlBuilder.java b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/utils/SmpUrlBuilder.java
index 0e564f7b2e09e8b66b4d5ff2a355f8cd8d3cfe37..3d48b811c06d2889e4c2afab2f4f0774a8115bdc 100644
--- a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/utils/SmpUrlBuilder.java
+++ b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/utils/SmpUrlBuilder.java
@@ -131,7 +131,7 @@ public class SmpUrlBuilder {
     public UriComponentsBuilder getSMPUrlBuilder() {
 
         UriComponentsBuilder uriBuilder = ServletUriComponentsBuilder.fromCurrentRequestUri();
-        uriBuilder = uriBuilder.replacePath(getUrlContext());
+       // uriBuilder = uriBuilder.replacePath(getUrlContext());
         return uriBuilder;
     }
 
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 154f5797879c55553207aca2a963ddcfb55ac2cc..b560056ed099d2b01f6dada215524eee387471cb 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
@@ -37,7 +37,7 @@ insert into SMP_CERTIFICATE (ID, CERTIFICATE_ID, SUBJECT, ISSUER, SERIALNUMBER,V
 
 
 insert into SMP_DOMAIN (ID, DOMAIN_CODE, VISIBILITY, SML_SUBDOMAIN, SML_SMP_ID, SIGNATURE_KEY_ALIAS, SML_CLIENT_KEY_ALIAS, SML_CLIENT_CERT_AUTH,SML_REGISTERED, CREATED_ON, LAST_UPDATED_ON) values
-(1, 'testdomain','PUBLIC', 'test-domain', 'CEF-SMP-002','sample_key','smp_domain_01',1,0, NOW(),  NOW());
+(1, 'testdomain','PUBLIC', 'test-domain', 'DOMI-SMP-001','sample_key','smp_domain_01',1,1, NOW(),  NOW());
 
 insert into SMP_EXTENSION ( ID, IDENTIFIER,  IMPLEMENTATION_NAME, NAME, VERSION, DESCRIPTION, CREATED_ON, LAST_UPDATED_ON) values
 (1, 'edelivery-oasis-smp-extension',  'OasisSMPExtension','Oasis SMP 1.0 and 2.0','1.0', 'Oasis SMP 1.0 and 2.0 extension',  NOW(),  NOW());
@@ -57,8 +57,8 @@ insert into SMP_GROUP (ID, FK_DOMAIN_ID, NAME, VISIBILITY, CREATED_ON, LAST_UPDA
 
 insert into SMP_DOCUMENT (ID, CURRENT_VERSION, MIME_TYPE, NAME,CREATED_ON, LAST_UPDATED_ON) values
 (1, 1, 'text/xml', 'service-group', NOW(),  NOW()),
-(2, 1, 'text/xml', 'service-metadta', NOW(),  NOW()),
-(3, 0, 'text/xml', 'service-metadta', NOW(),  NOW())
+(2, 1, 'text/xml', 'service-metadata', NOW(),  NOW()),
+(3, 0, 'text/xml', 'service-metadata', NOW(),  NOW())
 ;
 
 insert into SMP_DOCUMENT_VERSION (ID, FK_DOCUMENT_ID, VERSION, DOCUMENT_CONTENT, CREATED_ON, LAST_UPDATED_ON) values
@@ -66,27 +66,7 @@ insert into SMP_DOCUMENT_VERSION (ID, FK_DOCUMENT_ID, VERSION, DOCUMENT_CONTENT,
 (2,2,  1, '<ServiceMetadata xmlns="http://docs.oasis-open.org/bdxr/ns/SMP/2016/05"><Redirect href="http://localhost:8080/url"><CertificateUID/></Redirect></ServiceMetadata>' , NOW(),  NOW());
 
 insert into SMP_RESOURCE ( ID, FK_GROUP_ID, FK_DOCUMENT_ID, FK_DOREDEF_ID,  IDENTIFIER_SCHEME, IDENTIFIER_VALUE, SML_REGISTERED, VISIBILITY, CREATED_ON, LAST_UPDATED_ON) values
-(1, 1, 1, 1, 'iso6523-actorid-upis', '0088:777002abzz777', 0, 'PUBLIC', NOW(),  NOW()),
-(2, 1, 3, 1, 'iso6523-actorid-upis', '0088:01', 0, 'PUBLIC', NOW(),  NOW()),
-(3, 1, 1, 1, 'iso6523-actorid-upis', '0088:02', 0, 'PUBLIC', NOW(),  NOW()),
-(4, 1, 1, 1, 'iso6523-actorid-upis', '0088:03', 0, 'PUBLIC', NOW(),  NOW()),
-(5, 1, 1, 1, 'iso6523-actorid-upis', '0088:04', 0, 'PUBLIC', NOW(),  NOW()),
-(6, 1, 1, 1, 'iso6523-actorid-upis', '0088:05', 0, 'PUBLIC', NOW(),  NOW()),
-(7, 1, 1, 1, 'iso6523-actorid-upis', '0088:06', 0, 'PUBLIC', NOW(),  NOW()),
-(8, 1, 1, 1, 'iso6523-actorid-upis', '0088:07', 0, 'PUBLIC', NOW(),  NOW()),
-(9, 1, 1, 1, 'iso6523-actorid-upis', '0088:08', 0, 'PUBLIC', NOW(),  NOW()),
-(10, 1, 1, 1, 'iso6523-actorid-upis', '0088:09', 0, 'PUBLIC', NOW(),  NOW()),
-(11, 1, 1, 1, 'iso6523-actorid-upis', '0088:10', 0, 'PUBLIC', NOW(),  NOW()),
-(12, 1, 1, 1, 'iso6523-actorid-upis', '0088:11', 0, 'PUBLIC', NOW(),  NOW()),
-(13, 1, 1, 1, 'iso6523-actorid-upis', '0088:12', 0, 'PUBLIC', NOW(),  NOW()),
-(14, 1, 1, 1, 'iso6523-actorid-upis', '0088:13', 0, 'PUBLIC', NOW(),  NOW()),
-(15, 1, 1, 1, 'iso6523-actorid-upis', '0088:14', 0, 'PUBLIC', NOW(),  NOW()),
-(16, 1, 1, 1, 'iso6523-actorid-upis', '0088:15', 0, 'PUBLIC', NOW(),  NOW()),
-(17, 1, 1, 1, 'iso6523-actorid-upis', '0088:16', 0, 'PUBLIC', NOW(),  NOW()),
-(18, 1, 1, 1, 'iso6523-actorid-upis', '0088:17', 0, 'PUBLIC', NOW(),  NOW()),
-(19, 1, 1, 1, 'iso6523-actorid-upis', '0088:18', 0, 'PUBLIC', NOW(),  NOW()),
-(20, 1, 1, 1, 'iso6523-actorid-upis', '0088:19', 0, 'PUBLIC', NOW(),  NOW())
-;
+(1, 1, 1, 1, 'iso6523-actorid-upis', '0088:777002abzz777', 1, 'PUBLIC', NOW(),  NOW());
 
 insert into SMP_SUBRESOURCE (ID, FK_RESOURCE_ID,FK_SUREDEF_ID, FK_DOCUMENT_ID, IDENTIFIER_VALUE, IDENTIFIER_SCHEME, CREATED_ON, LAST_UPDATED_ON) values
 (1, 1, 1, 2, 'service-value', 'service-schema', NOW(),  NOW());
@@ -95,11 +75,7 @@ insert into SMP_SUBRESOURCE (ID, FK_RESOURCE_ID,FK_SUREDEF_ID, FK_DOCUMENT_ID, I
 (2, 1, 1, 2, 'service-value2', 'service-schema2', NOW(),  NOW());
 
 insert into SMP_RESOURCE_MEMBER (ID, FK_RESOURCE_ID, FK_USER_ID, MEMBERSHIP_ROLE, CREATED_ON, LAST_UPDATED_ON) values
-(1, 1, 2, 'ADMIN', NOW(),  NOW()),
-(2, 2, 1, 'ADMIN', NOW(),  NOW()),
-(3, 3, 2, 'ADMIN', NOW(),  NOW()),
-(4, 4, 2, 'ADMIN', NOW(),  NOW()),
-(5, 5, 2, 'ADMIN', NOW(),  NOW())
+(1, 1, 2, 'ADMIN', NOW(),  NOW())
 ;
 
 insert into SMP_GROUP_MEMBER (ID, FK_GROUP_ID, FK_USER_ID, MEMBERSHIP_ROLE, CREATED_ON, LAST_UPDATED_ON) values
diff --git a/smp-soapui-tests/pom.xml b/smp-soapui-tests/pom.xml
index e44b97afa51147ed3c9e026a8241535dfcc83fb9..9a2cb0bb5e9eeb8e0db466f5a6682ecf6f94ec47 100644
--- a/smp-soapui-tests/pom.xml
+++ b/smp-soapui-tests/pom.xml
@@ -115,7 +115,7 @@ has its own groovy library -->
                             <soapuiProperties>
                                 <property>
                                     <name>soapui.scripting.library</name>
-                                    <value>${basedir}/src/main/groovy</value>
+                                    <value>${basedir}/src/main/java</value>
                                 </property>
                                 <property>
                                     <name>soapui.logroot</name>
diff --git a/smp-webapp/src/main/java/eu/europa/ec/edelivery/smp/controllers/ResourceController.java b/smp-webapp/src/main/java/eu/europa/ec/edelivery/smp/controllers/ResourceController.java
index 8ef0a2e85569f72fa3cc28d4dcfba053e4ed80d3..eeae04b83acef920876b61f5d5ecd32d3e2a9ad0 100644
--- a/smp-webapp/src/main/java/eu/europa/ec/edelivery/smp/controllers/ResourceController.java
+++ b/smp-webapp/src/main/java/eu/europa/ec/edelivery/smp/controllers/ResourceController.java
@@ -171,8 +171,6 @@ public class ResourceController {
         }
     }
 
-
-
     protected ResourceResponse fromServletResponse(HttpServletResponse httpRes) {
         ResourceResponse resourceResponse = new ResourceResponse(httpRes);
         // try to open the output stream
diff --git a/smp-webapp/src/main/smp-setup/database-scripts/mysql5innodb-data.sql b/smp-webapp/src/main/smp-setup/database-scripts/mysql5innodb-data.sql
index 2097540b3f00a0433ea2aea6e2ac7f06a2092134..8e5224b6739df102b3386bc3209fd486a58d2ef7 100644
--- a/smp-webapp/src/main/smp-setup/database-scripts/mysql5innodb-data.sql
+++ b/smp-webapp/src/main/smp-setup/database-scripts/mysql5innodb-data.sql
@@ -8,7 +8,7 @@ insert into SMP_CREDENTIAL (ID, FK_USER_ID, CREDENTIAL_ACTIVE, CREDENTIAL_NAME,
 
 
 insert into SMP_DOMAIN (ID, DOMAIN_CODE, VISIBILITY, SML_SUBDOMAIN, SML_SMP_ID, SIGNATURE_KEY_ALIAS, SML_CLIENT_KEY_ALIAS, SML_CLIENT_CERT_AUTH,SML_REGISTERED, CREATED_ON, LAST_UPDATED_ON) values
-(1, 'testdomain','PUBLIC', 'test-domain', 'DOMI-SMP-001','sample_key','smp_domain_01',1,0, NOW(),  NOW());
+(1, 'testdomain','PUBLIC', 'test-domain', 'DOMI-SMP-001','sample_key','smp_domain_01',1,1, NOW(),  NOW());
 insert into SMP_GROUP (ID, FK_DOMAIN_ID, NAME, VISIBILITY, CREATED_ON, LAST_UPDATED_ON) values
 (1, 1, 'Test group', 'PUBLIC', NOW(),  NOW());
 
@@ -37,7 +37,7 @@ insert into SMP_DOCUMENT_VERSION (ID, FK_DOCUMENT_ID, VERSION, DOCUMENT_CONTENT,
 (2,2,  1, '<ServiceMetadata xmlns="http://docs.oasis-open.org/bdxr/ns/SMP/2016/05"><Redirect href="http://localhost:8080/url"><CertificateUID/></Redirect></ServiceMetadata>' , NOW(),  NOW());
 
 insert into SMP_RESOURCE ( ID, FK_GROUP_ID, FK_DOCUMENT_ID, FK_DOREDEF_ID,  IDENTIFIER_SCHEME, IDENTIFIER_VALUE, SML_REGISTERED, VISIBILITY, CREATED_ON, LAST_UPDATED_ON) values
-(1, 1, 1, 1, 'iso6523-actorid-upis', '0088:777002abzz777', 0, 'PUBLIC', NOW(),  NOW());
+(1, 1, 1, 1, 'iso6523-actorid-upis', '0088:777002abzz777', 1, 'PUBLIC', NOW(),  NOW());
 
 insert into SMP_SUBRESOURCE (ID, FK_RESOURCE_ID,FK_SUREDEF_ID, FK_DOCUMENT_ID, IDENTIFIER_VALUE, IDENTIFIER_SCHEME, CREATED_ON, LAST_UPDATED_ON) values
 (1, 1, 1, 2, 'service-value', 'service-schema', NOW(),  NOW());