(plugin);
}
+ public static ProxyBuilder>
+ profiledModel(String profileID, Class customModel ) {
+ ProjectsInterfacePlugin plugin=new ProjectsInterfacePlugin(profileID);
+ plugin.setProfiledModel(customModel);
+ return new ProxyBuilderImpl>(plugin);
+ }
- public static ProxyBuilder concessioni() {
- return new ProxyBuilderImpl(concessioni_plugin);
+ public static > ProxyBuilder
+ profiledModel(String profileID, Class customModel ,Class customClient) {
+ ProjectsInterfacePlugin plugin=new ProjectsInterfacePlugin(profileID);
+ plugin.setProfiledModel(customModel);
+ plugin.setCustomClientImplementation(customClient);
+ return new ProxyBuilderImpl(plugin);
}
- public static ProxyBuilder mongoConcessioni(){
- return new ProxyBuilderImpl(mongo_concessioni_plugin);
- }
-
- public static ProxyBuilder statefulMongoConcessioni(){
- return new ProxyBuilderImpl(stateful_mongo_concessioni_plugin);
- }
-
-
@Override
public Exception convert(Exception fault, ProxyConfig, ?> config) {
return fault;
@@ -82,5 +77,31 @@ public abstract class GeoportalAbstractPlugin implements Plugin{
}
-
+
+
+ //******** LEGACY
+ public static ProxyBuilder concessioni() {
+ return new ProxyBuilderImpl(concessioni_plugin);
+ }
+
+ public static ProxyBuilder mongoConcessioni(){
+ return new ProxyBuilderImpl(mongo_concessioni_plugin);
+ }
+
+ public static ProxyBuilder statefulMongoConcessioni(){
+ return new ProxyBuilderImpl(stateful_mongo_concessioni_plugin);
+ }
+
+ //** LEGACY
+
+ @Deprecated
+ private static ConcessioniPlugin concessioni_plugin=new ConcessioniPlugin();
+ @Deprecated
+ private static MongoConcessioniPlugin mongo_concessioni_plugin=new MongoConcessioniPlugin();
+ @Deprecated
+ private static StatefulMongoConcessioniPlugin stateful_mongo_concessioni_plugin=new StatefulMongoConcessioniPlugin();
+
+
+
+
}
diff --git a/geoportal-client/src/main/java/org/gcube/application/geoportal/client/ProjectsPlugin.java b/geoportal-client/src/main/java/org/gcube/application/geoportal/client/ProjectsInterfacePlugin.java
similarity index 72%
rename from geoportal-client/src/main/java/org/gcube/application/geoportal/client/ProjectsPlugin.java
rename to geoportal-client/src/main/java/org/gcube/application/geoportal/client/ProjectsInterfacePlugin.java
index 0b23e97..c620e1c 100644
--- a/geoportal-client/src/main/java/org/gcube/application/geoportal/client/ProjectsPlugin.java
+++ b/geoportal-client/src/main/java/org/gcube/application/geoportal/client/ProjectsInterfacePlugin.java
@@ -10,6 +10,7 @@ import lombok.RequiredArgsConstructor;
import lombok.Setter;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
+import org.gcube.application.geoportal.common.model.document.ProfiledDocument;
import org.gcube.application.geoportal.common.rest.InterfaceConstants;
import org.gcube.application.geoportal.common.rest.ProfiledDocumentsI;
import org.gcube.common.calls.jaxrs.GcubeService;
@@ -18,29 +19,30 @@ import org.gcube.common.clients.config.ProxyConfig;
import org.gcube.common.clients.delegates.ProxyDelegate;
import org.w3c.dom.Node;
-import java.lang.reflect.InvocationTargetException;
-
@Slf4j
@RequiredArgsConstructor
-public class ProjectsPlugin extends GeoportalAbstractPlugin{
+public class ProjectsInterfacePlugin extends GeoportalAbstractPlugin>{
@NonNull
private String profileID;
@Setter
- private Class extends AbstractProfiledDocumentClient>>
- customClientImplementation=DefaultProfiledDocuments.class;
+ private Class customClientImplementation;
+ //=DefaultProfiledDocuments.class;
+
+ @Setter
+ private Class profiledModel;
@Override
public Exception convert(Exception fault, ProxyConfig, ?> config) {
return fault;
}
-
- @SneakyThrows
+
+ @SneakyThrows //no such constructor
@Override
- public ProfiledDocumentsI newProxy(ProxyDelegate delegate) {
- return customClientImplementation.getConstructor(ProxyDelegate.class,String.class).
- newInstance(delegate,profileID);
+ public ProfiledDocumentsI newProxy(ProxyDelegate delegate) {
+ return customClientImplementation.getConstructor(ProxyDelegate.class,String.class,Class.class).
+ newInstance(delegate,profileID,profiledModel);
}
@Override
diff --git a/geoportal-client/src/test/java/org/gcube/application/geoportal/clients/ProfiledDocumentsTest.java b/geoportal-client/src/test/java/org/gcube/application/geoportal/clients/ProfiledDocumentsTest.java
index 4e6708d..0842877 100644
--- a/geoportal-client/src/test/java/org/gcube/application/geoportal/clients/ProfiledDocumentsTest.java
+++ b/geoportal-client/src/test/java/org/gcube/application/geoportal/clients/ProfiledDocumentsTest.java
@@ -1,23 +1,64 @@
package org.gcube.application.geoportal.clients;
+import com.fasterxml.jackson.databind.ser.std.StdKeySerializers;
+import org.gcube.application.geoportal.client.DefaultProfiledDocumentsClient;
import org.gcube.application.geoportal.common.model.document.ProfiledDocument;
-import org.gcube.application.geoportal.common.rest.MongoConcessioni;
+import org.gcube.application.geoportal.common.model.rest.Configuration;
+import org.gcube.application.geoportal.common.model.rest.QueryRequest;
import org.gcube.application.geoportal.common.rest.ProfiledDocumentsI;
import org.junit.Test;
-import static org.gcube.application.geoportal.client.GeoportalAbstractPlugin.mongoConcessioni;
-import static org.gcube.application.geoportal.client.GeoportalAbstractPlugin.profiledDocuments;
+import java.rmi.RemoteException;
+import java.util.concurrent.atomic.AtomicLong;
-public class ProfiledDocumentsTest extends BasicVreTests{
+import static junit.framework.TestCase.assertTrue;
+import static org.gcube.application.geoportal.client.GeoportalAbstractPlugin.*;
+public class ProfiledDocumentsTest> extends BasicVreTests{
- private ProfiledDocumentsI client=
- profiledDocuments("profiledConcessioni").build();
+ protected String getProfileID(){return "profiledConcessioni";}
- @Test
- public void getConfiguration() throws Exception {
- System.out.println(client.getConfiguration());
+ protected C getClient(){
+ return (C) profiledModel(getProfileID(),ProfiledDocument.class,DefaultProfiledDocumentsClient.class).build();
}
+ @Test
+ public void getConfiguration() throws Exception {
+ ProfiledDocumentsI client = (ProfiledDocumentsI) getClient();
+ Configuration config=client.getConfiguration();
+ System.out.println("Configuration is "+ config);
+ }
+
+
+ @Test
+ public void list() throws Exception {
+ ProfiledDocumentsI client = (ProfiledDocumentsI) getClient();
+ AtomicLong counter=new AtomicLong(0);
+ client.query(new QueryRequest()).forEachRemaining( M -> counter.incrementAndGet());
+ System.out.println("Found "+counter.get()+" elements");
+ System.out.println("Getting JSON ");
+ System.out.println(client.queryForJSON(new QueryRequest()));
+ }
+
+ @Test
+ public void scanStatusByID() throws Exception {
+ ProfiledDocumentsI client = (ProfiledDocumentsI) getClient();
+ AtomicLong counter=new AtomicLong(0);
+ client.query(new QueryRequest()).forEachRemaining( m -> {
+ System.out.print(counter.incrementAndGet()+ ", ID : "+m.get_id());
+ try {
+ M proj=client.getById(m.get_id());
+ System.out.println("... OK.. STATUS : "+proj.getLifecycleInformation());
+ } catch (RemoteException e) {
+ System.err.println(" Error with "+m.get_id());
+ System.err.println(e);
+ System.out.println("... ERRR !!!!");
+ }
+ });
+ }
+
+
+
+
}
diff --git a/geoportal-client/src/test/java/org/gcube/application/geoportal/clients/ProfiledDocumentsTests.java b/geoportal-client/src/test/java/org/gcube/application/geoportal/clients/ProfiledDocumentsTests.java
deleted file mode 100644
index 257c845..0000000
--- a/geoportal-client/src/test/java/org/gcube/application/geoportal/clients/ProfiledDocumentsTests.java
+++ /dev/null
@@ -1,4 +0,0 @@
-package org.gcube.application.geoportal.clients;
-
-public class ProfiledDocumentsTests {
-}
diff --git a/geoportal-client/src/test/java/org/gcube/application/geoportal/clients/StatefulClientTests.java b/geoportal-client/src/test/java/org/gcube/application/geoportal/clients/legacy/StatefulClientTests.java
similarity index 96%
rename from geoportal-client/src/test/java/org/gcube/application/geoportal/clients/StatefulClientTests.java
rename to geoportal-client/src/test/java/org/gcube/application/geoportal/clients/legacy/StatefulClientTests.java
index 07bac9a..6ca1c57 100644
--- a/geoportal-client/src/test/java/org/gcube/application/geoportal/clients/StatefulClientTests.java
+++ b/geoportal-client/src/test/java/org/gcube/application/geoportal/clients/legacy/StatefulClientTests.java
@@ -1,4 +1,4 @@
-package org.gcube.application.geoportal.clients;
+package org.gcube.application.geoportal.clients.legacy;
import static org.gcube.application.geoportal.client.GeoportalAbstractPlugin.statefulMongoConcessioni;
import static org.junit.Assert.*;
@@ -11,6 +11,7 @@ import java.io.FileNotFoundException;
import org.gcube.application.cms.tests.model.concessioni.TestConcessioniModel;
import org.gcube.application.geoportal.client.legacy.ConcessioniManagerI;
import org.gcube.application.geoportal.client.utils.Serialization;
+import org.gcube.application.geoportal.clients.BasicVreTests;
import org.gcube.application.geoportal.common.model.legacy.*;
import org.gcube.application.geoportal.common.model.legacy.report.ValidationReport.ValidationStatus;
import org.gcube.application.geoportal.common.model.rest.TempFile;
@@ -19,7 +20,7 @@ import org.gcube.contentmanagement.blobstorage.transport.backend.RemoteBackendEx
import org.junit.Test;
-public class StatefulClientTests extends BasicVreTests{
+public class StatefulClientTests extends BasicVreTests {
diff --git a/geoportal-client/src/test/java/org/gcube/application/geoportal/clients/StatelessClientTests.java b/geoportal-client/src/test/java/org/gcube/application/geoportal/clients/legacy/StatelessClientTests.java
similarity index 98%
rename from geoportal-client/src/test/java/org/gcube/application/geoportal/clients/StatelessClientTests.java
rename to geoportal-client/src/test/java/org/gcube/application/geoportal/clients/legacy/StatelessClientTests.java
index 32f9ae2..45a45ef 100644
--- a/geoportal-client/src/test/java/org/gcube/application/geoportal/clients/StatelessClientTests.java
+++ b/geoportal-client/src/test/java/org/gcube/application/geoportal/clients/legacy/StatelessClientTests.java
@@ -1,4 +1,4 @@
-package org.gcube.application.geoportal.clients;
+package org.gcube.application.geoportal.clients.legacy;
import static org.gcube.application.geoportal.client.GeoportalAbstractPlugin.mongoConcessioni;
import static org.junit.Assert.*;
@@ -18,6 +18,7 @@ import org.gcube.application.cms.tests.model.concessioni.TestConcessioniModel;
import org.gcube.application.cms.tests.model.concessioni.TestConcessioniQueries;
import org.gcube.application.geoportal.client.utils.Queries;
import org.gcube.application.geoportal.client.utils.Serialization;
+import org.gcube.application.geoportal.clients.BasicVreTests;
import org.gcube.application.geoportal.common.model.legacy.*;
import org.gcube.application.geoportal.common.model.legacy.Concessione.Paths;
import org.gcube.application.geoportal.common.model.legacy.report.ValidationReport.ValidationStatus;
@@ -29,7 +30,7 @@ import org.gcube.application.geoportal.common.utils.Files;
import org.gcube.application.geoportal.common.utils.StorageUtils;
import org.junit.Test;
-public class StatelessClientTests extends BasicVreTests{
+public class StatelessClientTests extends BasicVreTests {
private MongoConcessioni client=mongoConcessioni().build();
diff --git a/geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/configuration/Index.java b/geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/configuration/Index.java
new file mode 100644
index 0000000..bfa32b3
--- /dev/null
+++ b/geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/configuration/Index.java
@@ -0,0 +1,6 @@
+package org.gcube.application.geoportal.common.model.configuration;
+
+import org.bson.Document;
+
+public class Index extends Document {
+}
diff --git a/geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/rest/Configuration.java b/geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/rest/Configuration.java
index 029618a..792e4e3 100644
--- a/geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/rest/Configuration.java
+++ b/geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/rest/Configuration.java
@@ -1,15 +1,35 @@
package org.gcube.application.geoportal.common.model.rest;
+import com.sun.tools.jdeps.Archive;
+import lombok.AllArgsConstructor;
import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.bson.Document;
+import org.gcube.application.geoportal.common.model.configuration.Index;
+import javax.xml.bind.annotation.XmlRootElement;
+import java.time.LocalDateTime;
+import java.util.List;
+
+@XmlRootElement
@Data
-public class Configuration {
+@AllArgsConstructor
+@NoArgsConstructor
+public class Configuration{
- // Index (postgis + layer) Configuration
- public PostgisIndexDescriptor index;
+ public static String PROFILE_ID="profile_id";
+ public static String CONTEXT = "context";
+ public static String LAST_UPDATED_TIME = "";
+
+ public static String INDEXES = "indexes";
+ public static String ARCHIVES = "archives";
+ private String profile_id;
+ private String context;
+ private LocalDateTime lastUpdatedTime;
+
+ private List indexes;
+ private List archives;
- // Mongo DB Configuration
- // TBD
}
diff --git a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/model/internal/faults/ConfigurationException.java b/geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/rest/ConfigurationException.java
similarity index 93%
rename from geoportal-service/src/main/java/org/gcube/application/geoportal/service/model/internal/faults/ConfigurationException.java
rename to geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/rest/ConfigurationException.java
index 7a76d91..d2516d5 100644
--- a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/model/internal/faults/ConfigurationException.java
+++ b/geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/rest/ConfigurationException.java
@@ -1,4 +1,4 @@
-package org.gcube.application.geoportal.service.model.internal.faults;
+package org.gcube.application.geoportal.common.model.rest;
public class ConfigurationException extends Exception {
diff --git a/geoportal-common/src/main/java/org/gcube/application/geoportal/common/rest/ProfiledDocumentsI.java b/geoportal-common/src/main/java/org/gcube/application/geoportal/common/rest/ProfiledDocumentsI.java
index 424e9f8..5ea209f 100644
--- a/geoportal-common/src/main/java/org/gcube/application/geoportal/common/rest/ProfiledDocumentsI.java
+++ b/geoportal-common/src/main/java/org/gcube/application/geoportal/common/rest/ProfiledDocumentsI.java
@@ -12,6 +12,8 @@ import java.util.Iterator;
public interface ProfiledDocumentsI {
+ public Class
getManagedClass();
+
// CRUD
public P createNew(Document toCreate)throws RemoteException;
public P getById(String id) throws RemoteException;
diff --git a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/WorkspaceManager.java b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/WorkspaceManager.java
index 9f3fd69..049ecdf 100644
--- a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/WorkspaceManager.java
+++ b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/WorkspaceManager.java
@@ -2,11 +2,10 @@ package org.gcube.application.geoportal.service.engine;
import lombok.*;
import lombok.extern.slf4j.Slf4j;
-import org.gcube.application.geoportal.common.faults.PathException;
import org.gcube.application.geoportal.common.model.document.RegisteredFile;
import org.gcube.application.geoportal.common.model.legacy.WorkspaceContent;
import org.gcube.application.geoportal.common.utils.Files;
-import org.gcube.application.geoportal.service.model.internal.faults.ConfigurationException;
+import org.gcube.application.geoportal.common.model.rest.ConfigurationException;
import org.gcube.common.storagehub.client.dsl.FileContainer;
import org.gcube.common.storagehub.client.dsl.FolderContainer;
import org.gcube.common.storagehub.client.dsl.StorageHubClient;
diff --git a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/ConcessioniMongoManager.java b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/ConcessioniMongoManager.java
index 3ef0936..046adf6 100644
--- a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/ConcessioniMongoManager.java
+++ b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/ConcessioniMongoManager.java
@@ -12,6 +12,7 @@ import org.gcube.application.geoportal.common.faults.StorageException;
import org.gcube.application.geoportal.common.model.legacy.*;
import org.gcube.application.geoportal.common.model.legacy.report.ValidationReport;
import org.gcube.application.geoportal.common.model.legacy.report.ValidationReport.ValidationStatus;
+import org.gcube.application.geoportal.common.model.rest.ConfigurationException;
import org.gcube.application.geoportal.common.model.rest.QueryRequest;
import org.gcube.application.geoportal.common.model.rest.TempFile;
import org.gcube.application.geoportal.common.utils.Files;
diff --git a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/MongoManager.java b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/MongoManager.java
index 728d0ba..75ba0d7 100644
--- a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/MongoManager.java
+++ b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/MongoManager.java
@@ -1,8 +1,6 @@
package org.gcube.application.geoportal.service.engine.mongo;
-import com.mongodb.Block;
-import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
@@ -15,7 +13,7 @@ import org.bson.types.ObjectId;
import org.gcube.application.geoportal.common.model.rest.QueryRequest;
import org.gcube.application.geoportal.service.engine.ImplementationProvider;
import org.gcube.application.geoportal.service.model.internal.db.Mongo;
-import org.gcube.application.geoportal.service.model.internal.faults.ConfigurationException;
+import org.gcube.application.geoportal.common.model.rest.ConfigurationException;
import static com.mongodb.client.model.Filters.eq;
import static com.mongodb.client.model.Sorts.ascending;
diff --git a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/MongoManagerI.java b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/MongoManagerI.java
index e653f92..61d7094 100644
--- a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/MongoManagerI.java
+++ b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/MongoManagerI.java
@@ -4,15 +4,14 @@ import com.fasterxml.jackson.core.JsonProcessingException;
import org.bson.Document;
import org.gcube.application.cms.plugins.faults.StepException;
import org.gcube.application.geoportal.common.faults.StorageException;
+import org.gcube.application.geoportal.common.model.rest.Configuration;
import org.gcube.application.geoportal.common.model.rest.QueryRequest;
import org.gcube.application.geoportal.common.model.rest.RegisterFileSetRequest;
-import org.gcube.application.geoportal.common.model.rest.TempFile;
-import org.gcube.application.geoportal.service.model.internal.faults.ConfigurationException;
+import org.gcube.application.geoportal.common.model.rest.ConfigurationException;
import org.gcube.application.geoportal.service.model.internal.faults.DeletionException;
import org.gcube.common.storagehub.model.exceptions.StorageHubException;
import java.io.IOException;
-import java.util.List;
public interface MongoManagerI {
@@ -41,4 +40,6 @@ public interface MongoManagerI {
public T registerFileSet(String id, RegisterFileSetRequest request) throws ConfigurationException, StorageHubException, StorageException, StepException, JsonProcessingException, DeletionException;
public T deleteFileSet(String id, String destination, Boolean force) throws ConfigurationException, StorageHubException, StorageException, StepException, JsonProcessingException, DeletionException;
+
+ public Configuration getConfiguration()throws ConfigurationException;
}
diff --git a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/ProfiledMongoManager.java b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/ProfiledMongoManager.java
index 79c2543..38318cc 100644
--- a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/ProfiledMongoManager.java
+++ b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/ProfiledMongoManager.java
@@ -19,6 +19,7 @@ import org.gcube.application.geoportal.common.model.legacy.Concessione;
import org.gcube.application.geoportal.common.model.profile.Field;
import org.gcube.application.geoportal.common.model.profile.HandlerDeclaration;
import org.gcube.application.geoportal.common.model.profile.Profile;
+import org.gcube.application.geoportal.common.model.rest.Configuration;
import org.gcube.application.geoportal.common.model.rest.QueryRequest;
import org.gcube.application.geoportal.common.model.rest.RegisterFileSetRequest;
import org.gcube.application.geoportal.common.model.rest.TempFile;
@@ -26,7 +27,7 @@ import org.gcube.application.geoportal.common.model.JSONPathWrapper;
import org.gcube.application.geoportal.common.utils.StorageUtils;
import org.gcube.application.geoportal.service.engine.ImplementationProvider;
import org.gcube.application.geoportal.service.engine.WorkspaceManager;
-import org.gcube.application.geoportal.service.model.internal.faults.ConfigurationException;
+import org.gcube.application.geoportal.common.model.rest.ConfigurationException;
import org.gcube.application.geoportal.service.model.internal.faults.DeletionException;
import org.gcube.application.cms.serialization.Serialization;
import org.gcube.application.geoportal.service.utils.UserUtils;
@@ -339,9 +340,13 @@ public class ProfiledMongoManager extends MongoManager implements MongoManagerI<
return convert(replace(asDocumentWithId(doc),new ObjectId(id),getCollectionName()),ProfiledDocument.class);
}
-
-
-
+ @Override
+ public Configuration getConfiguration() throws ConfigurationException {
+ log.debug("Asking configuration for {} in {} ",profile.getId(), UserUtils.getCurrent().getContext());
+ Configuration toReturn= manager.getCurrentConfiguration();
+ log.debug("Returning current configuration {}",toReturn);
+ return toReturn;
+ }
private ExecutionReport step(ProfiledDocument theDocument,String step,Document callParameters) throws StepException {
diff --git a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/postgis/PostgisDBManager.java b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/postgis/PostgisDBManager.java
index 571c84e..cfec895 100644
--- a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/postgis/PostgisDBManager.java
+++ b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/postgis/PostgisDBManager.java
@@ -6,9 +6,8 @@ import org.gcube.application.geoportal.common.model.legacy.BBOX;
import org.gcube.application.geoportal.common.model.rest.DatabaseConnection;
import org.gcube.application.geoportal.service.engine.ImplementationProvider;
import org.gcube.application.geoportal.service.model.internal.db.PostgisTable;
-import org.gcube.application.geoportal.service.model.internal.faults.ConfigurationException;
+import org.gcube.application.geoportal.common.model.rest.ConfigurationException;
import org.gcube.application.geoportal.service.model.internal.faults.DataParsingException;
-import org.gcube.application.geoportal.service.utils.ISUtils;
import java.sql.*;
import java.util.regex.Matcher;
diff --git a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/postgis/PostgisIndex.java b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/postgis/PostgisIndex.java
index ad8534b..d572ee6 100644
--- a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/postgis/PostgisIndex.java
+++ b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/postgis/PostgisIndex.java
@@ -10,7 +10,7 @@ import org.gcube.application.geoportal.service.model.internal.db.DBConstants;
import org.gcube.application.geoportal.service.model.internal.db.PostgisTable;
import org.gcube.application.geoportal.service.model.internal.db.PostgisTable.Field;
import org.gcube.application.geoportal.service.model.internal.db.PostgisTable.FieldType;
-import org.gcube.application.geoportal.service.model.internal.faults.ConfigurationException;
+import org.gcube.application.geoportal.common.model.rest.ConfigurationException;
import org.gcube.application.geoportal.service.model.internal.faults.PublishException;
import org.gcube.application.geoportal.service.model.internal.faults.SDIInteractionException;
import org.gcube.application.cms.serialization.Serialization;
diff --git a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/providers/AbstractScopedMap.java b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/providers/AbstractScopedMap.java
index f154040..d45b1ac 100644
--- a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/providers/AbstractScopedMap.java
+++ b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/providers/AbstractScopedMap.java
@@ -6,7 +6,7 @@ import lombok.Setter;
import lombok.Synchronized;
import lombok.extern.slf4j.Slf4j;
import org.gcube.application.geoportal.common.utils.ContextUtils;
-import org.gcube.application.geoportal.service.model.internal.faults.ConfigurationException;
+import org.gcube.application.geoportal.common.model.rest.ConfigurationException;
import java.time.LocalDateTime;
diff --git a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/providers/Engine.java b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/providers/Engine.java
index 0f17b8d..2ee19c3 100644
--- a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/providers/Engine.java
+++ b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/providers/Engine.java
@@ -1,6 +1,6 @@
package org.gcube.application.geoportal.service.engine.providers;
-import org.gcube.application.geoportal.service.model.internal.faults.ConfigurationException;
+import org.gcube.application.geoportal.common.model.rest.ConfigurationException;
public interface Engine {
diff --git a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/providers/MongoClientProvider.java b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/providers/MongoClientProvider.java
index 215e811..72f6615 100644
--- a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/providers/MongoClientProvider.java
+++ b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/providers/MongoClientProvider.java
@@ -5,7 +5,7 @@ import org.gcube.application.geoportal.service.ServiceConstants;
import org.gcube.application.geoportal.service.engine.ImplementationProvider;
import org.gcube.application.geoportal.service.model.internal.db.Mongo;
import org.gcube.application.geoportal.service.model.internal.db.MongoConnection;
-import org.gcube.application.geoportal.service.model.internal.faults.ConfigurationException;
+import org.gcube.application.geoportal.common.model.rest.ConfigurationException;
@Slf4j
public class MongoClientProvider extends AbstractScopedMap{
diff --git a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/providers/PluginManager.java b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/providers/PluginManager.java
index bf2f9ad..65d77a9 100644
--- a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/providers/PluginManager.java
+++ b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/providers/PluginManager.java
@@ -7,7 +7,7 @@ import org.gcube.application.cms.plugins.faults.InitializationException;
import org.gcube.application.cms.plugins.faults.ShutDownException;
import org.gcube.application.cms.plugins.reports.InitializationReport;
import org.gcube.application.geoportal.common.utils.ContextUtils;
-import org.gcube.application.geoportal.service.model.internal.faults.ConfigurationException;
+import org.gcube.application.geoportal.common.model.rest.ConfigurationException;
import org.reflections.Reflections;
import org.reflections.util.ConfigurationBuilder;
@@ -15,7 +15,6 @@ import org.reflections.util.FilterBuilder;
import java.util.HashMap;
import java.util.Map;
-import java.util.ServiceLoader;
@Slf4j
public class PluginManager extends AbstractScopedMap