From a4e90a9f64ccbceaad3c94052c80232b314bd026 Mon Sep 17 00:00:00 2001 From: Fabio Sinibaldi Date: Fri, 4 Feb 2022 17:45:47 +0100 Subject: [PATCH] Clients by model and custom client --- .../cms/plugins/LifecycleManager.java | 4 + .../plugins/ConcessioniLifeCycleManager.java | 7 ++ geoportal-client/pom.xml | 6 ++ .../client/DefaultProfiledDocuments.java | 36 --------- ...va => DefaultProfiledDocumentsClient.java} | 11 ++- .../client/GeoportalAbstractPlugin.java | 73 ++++++++++++------- ...ugin.java => ProjectsInterfacePlugin.java} | 22 +++--- .../clients/ProfiledDocumentsTest.java | 59 ++++++++++++--- .../clients/ProfiledDocumentsTests.java | 4 - .../{ => legacy}/StatefulClientTests.java | 5 +- .../{ => legacy}/StatelessClientTests.java | 5 +- .../common/model/configuration/Index.java | 6 ++ .../common/model/rest/Configuration.java | 30 ++++++-- .../model/rest}/ConfigurationException.java | 2 +- .../common/rest/ProfiledDocumentsI.java | 2 + .../service/engine/WorkspaceManager.java | 3 +- .../engine/mongo/ConcessioniMongoManager.java | 1 + .../service/engine/mongo/MongoManager.java | 4 +- .../service/engine/mongo/MongoManagerI.java | 7 +- .../engine/mongo/ProfiledMongoManager.java | 13 +++- .../engine/postgis/PostgisDBManager.java | 3 +- .../service/engine/postgis/PostgisIndex.java | 2 +- .../engine/providers/AbstractScopedMap.java | 2 +- .../service/engine/providers/Engine.java | 2 +- .../engine/providers/MongoClientProvider.java | 2 +- .../engine/providers/PluginManager.java | 3 +- .../providers/PostgisConnectionProvider.java | 2 +- .../engine/providers/ProfileMapCache.java | 2 +- .../providers/StorageClientProvider.java | 2 +- .../engine/providers/StorageHubProvider.java | 2 +- .../service/rest/ProfiledDocuments.java | 5 +- .../geoportal/service/utils/ISUtils.java | 2 +- .../resources/examples/Configuration.json | 22 ++++++ .../resources/examples/centroids_index.json | 19 +++++ .../src/main/resources/examples/layer.json | 13 ++++ .../geoportal/service/MongoTests.java | 3 +- .../geoportal/service/StorageTests.java | 2 +- .../service/engine/caches/Caches.java | 6 +- .../service/engine/caches/DummyCache.java | 3 +- .../engine/materialization/SDITests.java | 2 +- 40 files changed, 262 insertions(+), 137 deletions(-) delete mode 100644 geoportal-client/src/main/java/org/gcube/application/geoportal/client/DefaultProfiledDocuments.java rename geoportal-client/src/main/java/org/gcube/application/geoportal/client/{AbstractProfiledDocumentClient.java => DefaultProfiledDocumentsClient.java} (97%) rename geoportal-client/src/main/java/org/gcube/application/geoportal/client/{ProjectsPlugin.java => ProjectsInterfacePlugin.java} (72%) delete mode 100644 geoportal-client/src/test/java/org/gcube/application/geoportal/clients/ProfiledDocumentsTests.java rename geoportal-client/src/test/java/org/gcube/application/geoportal/clients/{ => legacy}/StatefulClientTests.java (96%) rename geoportal-client/src/test/java/org/gcube/application/geoportal/clients/{ => legacy}/StatelessClientTests.java (98%) create mode 100644 geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/configuration/Index.java rename {geoportal-service/src/main/java/org/gcube/application/geoportal/service/model/internal/faults => geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/rest}/ConfigurationException.java (93%) create mode 100644 geoportal-service/src/main/resources/examples/Configuration.json create mode 100644 geoportal-service/src/main/resources/examples/centroids_index.json create mode 100644 geoportal-service/src/main/resources/examples/layer.json diff --git a/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/LifecycleManager.java b/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/LifecycleManager.java index ad59b66..88f3adb 100644 --- a/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/LifecycleManager.java +++ b/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/LifecycleManager.java @@ -4,6 +4,9 @@ import org.gcube.application.cms.plugins.faults.StepException; import org.gcube.application.cms.plugins.reports.ExecutionReport; import org.gcube.application.cms.plugins.requests.StepExecutionRequest; import org.gcube.application.geoportal.common.model.document.ProfiledDocument; +import org.gcube.application.geoportal.common.model.rest.Configuration; +import org.gcube.application.geoportal.common.model.rest.ConfigurationException; + public interface LifecycleManager extends InitializablePlugin{ @@ -11,4 +14,5 @@ public interface LifecycleManager extends InitializablePlugin{ public ExecutionReport performStep(StepExecutionRequest request)throws StepException; + public Configuration getCurrentConfiguration() throws ConfigurationException; } diff --git a/concessioni-lifecycle/src/main/java/org/gcube/application/cms/concessioni/plugins/ConcessioniLifeCycleManager.java b/concessioni-lifecycle/src/main/java/org/gcube/application/cms/concessioni/plugins/ConcessioniLifeCycleManager.java index 3eda95e..9ebedb5 100644 --- a/concessioni-lifecycle/src/main/java/org/gcube/application/cms/concessioni/plugins/ConcessioniLifeCycleManager.java +++ b/concessioni-lifecycle/src/main/java/org/gcube/application/cms/concessioni/plugins/ConcessioniLifeCycleManager.java @@ -17,6 +17,8 @@ import org.gcube.application.cms.plugins.reports.InitializationReport; import org.gcube.application.cms.plugins.requests.StepExecutionRequest; import org.gcube.application.geoportal.common.model.document.*; import org.gcube.application.geoportal.common.model.legacy.report.ConstraintCheck; +import org.gcube.application.geoportal.common.model.rest.Configuration; +import org.gcube.application.geoportal.common.model.rest.ConfigurationException; @Slf4j public class ConcessioniLifeCycleManager implements LifecycleManager { @@ -90,6 +92,11 @@ public class ConcessioniLifeCycleManager implements LifecycleManager { return report; } + @Override + public Configuration getCurrentConfiguration() throws ConfigurationException { + return null; + } + @Override public PluginDescriptor getDescriptor() { return DESCRIPTOR; diff --git a/geoportal-client/pom.xml b/geoportal-client/pom.xml index 394240e..b6065f8 100644 --- a/geoportal-client/pom.xml +++ b/geoportal-client/pom.xml @@ -95,6 +95,12 @@ + + org.gcube.application.cms + concessioni-model + + + \ No newline at end of file diff --git a/geoportal-client/src/main/java/org/gcube/application/geoportal/client/DefaultProfiledDocuments.java b/geoportal-client/src/main/java/org/gcube/application/geoportal/client/DefaultProfiledDocuments.java deleted file mode 100644 index 45966e8..0000000 --- a/geoportal-client/src/main/java/org/gcube/application/geoportal/client/DefaultProfiledDocuments.java +++ /dev/null @@ -1,36 +0,0 @@ -package org.gcube.application.geoportal.client; - - -import lombok.NonNull; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.bson.Document; -import org.gcube.application.geoportal.common.model.document.ProfiledDocument; -import org.gcube.application.geoportal.common.model.legacy.Concessione; -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.rest.ProfiledDocumentsI; -import org.gcube.common.clients.Call; -import org.gcube.common.clients.delegates.ProxyDelegate; - -import javax.ws.rs.client.Entity; -import javax.ws.rs.client.WebTarget; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; -import java.rmi.RemoteException; -import java.util.Iterator; - -@Slf4j -public class DefaultProfiledDocuments extends AbstractProfiledDocumentClient { - - - public DefaultProfiledDocuments(@NonNull ProxyDelegate delegate, @NonNull String profileID) { - super(delegate, profileID); - } - - @Override - protected Class getManagedClass() { - return ProfiledDocument.class; - } -} diff --git a/geoportal-client/src/main/java/org/gcube/application/geoportal/client/AbstractProfiledDocumentClient.java b/geoportal-client/src/main/java/org/gcube/application/geoportal/client/DefaultProfiledDocumentsClient.java similarity index 97% rename from geoportal-client/src/main/java/org/gcube/application/geoportal/client/AbstractProfiledDocumentClient.java rename to geoportal-client/src/main/java/org/gcube/application/geoportal/client/DefaultProfiledDocumentsClient.java index 0e2c004..57989d8 100644 --- a/geoportal-client/src/main/java/org/gcube/application/geoportal/client/AbstractProfiledDocumentClient.java +++ b/geoportal-client/src/main/java/org/gcube/application/geoportal/client/DefaultProfiledDocumentsClient.java @@ -27,14 +27,19 @@ import java.util.Iterator; @RequiredArgsConstructor @Slf4j -public abstract class AbstractProfiledDocumentClient implements ProfiledDocumentsI { +public class DefaultProfiledDocumentsClient implements ProfiledDocumentsI { @NonNull protected final ProxyDelegate delegate; @NonNull protected final String profileID; + @NonNull + protected final Class managedClass; - protected abstract Class getManagedClass(); + + public Class getManagedClass() { + return managedClass; + } @Override public T createNew(Document toCreate) throws RemoteException { @@ -142,7 +147,7 @@ public abstract class AbstractProfiledDocumentClient try { log.debug("Querying profile {}  for {}",profileID,request); Call call = endpoint -> { - return check(endpoint.path(profileID).path(InterfaceConstants.Methods.CONFIGURATION_PATH). + return check(endpoint.path(profileID).path(InterfaceConstants.Methods.QUERY_PATH). request(MediaType.APPLICATION_JSON).get(), String.class); }; return delegate.make(call); diff --git a/geoportal-client/src/main/java/org/gcube/application/geoportal/client/GeoportalAbstractPlugin.java b/geoportal-client/src/main/java/org/gcube/application/geoportal/client/GeoportalAbstractPlugin.java index bce5b47..2e833f4 100644 --- a/geoportal-client/src/main/java/org/gcube/application/geoportal/client/GeoportalAbstractPlugin.java +++ b/geoportal-client/src/main/java/org/gcube/application/geoportal/client/GeoportalAbstractPlugin.java @@ -5,8 +5,8 @@ import javax.ws.rs.client.WebTarget; import org.gcube.application.geoportal.client.legacy.ConcessioniManagerI; import org.gcube.application.geoportal.client.legacy.ConcessioniPlugin; import org.gcube.application.geoportal.client.legacy.MongoConcessioniPlugin; -import org.gcube.application.geoportal.client.legacy.StatefulMongoConcessioni; import org.gcube.application.geoportal.client.legacy.StatefulMongoConcessioniPlugin; +import org.gcube.application.geoportal.common.model.document.ProfiledDocument; import org.gcube.application.geoportal.common.rest.ConcessioniI; import org.gcube.application.geoportal.common.rest.InterfaceConstants; import org.gcube.application.geoportal.common.rest.MongoConcessioni; @@ -22,39 +22,34 @@ import lombok.AllArgsConstructor; public abstract class GeoportalAbstractPlugin implements Plugin{ - - private static ConcessioniPlugin concessioni_plugin=new ConcessioniPlugin(); - - private static MongoConcessioniPlugin mongo_concessioni_plugin=new MongoConcessioniPlugin(); - - private static StatefulMongoConcessioniPlugin stateful_mongo_concessioni_plugin=new StatefulMongoConcessioniPlugin(); - public static ProxyBuilder profiledDocuments(String profileID) { - ProjectsPlugin plugin=new ProjectsPlugin(profileID); - return new ProxyBuilderImpl(plugin); + + public static ProxyBuilder> profiledDocuments(String profileID) { + ProjectsInterfacePlugin plugin=new ProjectsInterfacePlugin(profileID); + return new ProxyBuilderImpl>(plugin); } - public static ProxyBuilder profiledDocuments(String profileID, - Class> customClient) { - ProjectsPlugin plugin=new ProjectsPlugin(profileID); + public static > ProxyBuilder profiledDocuments(String profileID, Class customClient) { + ProjectsInterfacePlugin plugin=new ProjectsInterfacePlugin(profileID); plugin.setCustomClientImplementation(customClient); - return new ProxyBuilderImpl(plugin); + return new ProxyBuilderImpl(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> - 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>{ diff --git a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/providers/PostgisConnectionProvider.java b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/providers/PostgisConnectionProvider.java index 26a2e9c..07104a2 100644 --- a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/providers/PostgisConnectionProvider.java +++ b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/providers/PostgisConnectionProvider.java @@ -1,7 +1,7 @@ package org.gcube.application.geoportal.service.engine.providers; import org.gcube.application.geoportal.service.engine.postgis.PostgisDBManager; -import org.gcube.application.geoportal.service.model.internal.faults.ConfigurationException; +import org.gcube.application.geoportal.common.model.rest.ConfigurationException; import java.sql.SQLException; diff --git a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/providers/ProfileMapCache.java b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/providers/ProfileMapCache.java index 17c079a..9110333 100644 --- a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/providers/ProfileMapCache.java +++ b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/providers/ProfileMapCache.java @@ -4,7 +4,7 @@ import com.fasterxml.jackson.core.JsonProcessingException; import lombok.extern.slf4j.Slf4j; import org.gcube.application.geoportal.common.model.profile.Profile; 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.application.cms.serialization.Serialization; import java.io.IOException; diff --git a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/providers/StorageClientProvider.java b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/providers/StorageClientProvider.java index a205727..de57e35 100644 --- a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/providers/StorageClientProvider.java +++ b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/providers/StorageClientProvider.java @@ -3,7 +3,7 @@ package org.gcube.application.geoportal.service.engine.providers; import lombok.extern.slf4j.Slf4j; import org.gcube.application.geoportal.common.utils.StorageUtils; -import org.gcube.application.geoportal.service.model.internal.faults.ConfigurationException; +import org.gcube.application.geoportal.common.model.rest.ConfigurationException; @Slf4j public class StorageClientProvider extends AbstractScopedMap { diff --git a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/providers/StorageHubProvider.java b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/providers/StorageHubProvider.java index 29aaef1..71362cb 100644 --- a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/providers/StorageHubProvider.java +++ b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/providers/StorageHubProvider.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; import org.gcube.common.storagehub.client.dsl.StorageHubClient; public class StorageHubProvider implements Engine { diff --git a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/rest/ProfiledDocuments.java b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/rest/ProfiledDocuments.java index b158404..f0e9863 100644 --- a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/rest/ProfiledDocuments.java +++ b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/rest/ProfiledDocuments.java @@ -9,7 +9,7 @@ import org.gcube.application.geoportal.common.rest.InterfaceConstants; import org.gcube.application.geoportal.common.model.rest.RegisterFileSetRequest; import org.gcube.application.geoportal.common.model.rest.StepExecutionRequest; import org.gcube.application.geoportal.service.engine.mongo.ProfiledMongoManager; -import org.gcube.application.geoportal.service.model.internal.faults.ConfigurationException; +import org.gcube.application.geoportal.common.model.rest.ConfigurationException; import org.gcube.application.cms.serialization.Serialization; import javax.ws.rs.*; @@ -39,8 +39,7 @@ public class ProfiledDocuments { @Override protected Configuration run() throws Exception, WebApplicationException { - //manager.getConfiguration(); - throw new Exception("Implement This Method"); + return manager.getConfiguration(); } }.execute().getResult(); } diff --git a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/utils/ISUtils.java b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/utils/ISUtils.java index d880f92..87214c6 100644 --- a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/utils/ISUtils.java +++ b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/utils/ISUtils.java @@ -3,7 +3,7 @@ package org.gcube.application.geoportal.service.utils; import org.gcube.application.geoportal.common.model.rest.DatabaseConnection; import org.gcube.application.geoportal.service.ServiceConstants; 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; import org.gcube.common.encryption.encrypter.StringEncrypter; import org.gcube.common.resources.gcore.ServiceEndpoint; import org.gcube.common.resources.gcore.ServiceEndpoint.AccessPoint; diff --git a/geoportal-service/src/main/resources/examples/Configuration.json b/geoportal-service/src/main/resources/examples/Configuration.json new file mode 100644 index 0000000..2929295 --- /dev/null +++ b/geoportal-service/src/main/resources/examples/Configuration.json @@ -0,0 +1,22 @@ +{ + "profile_id": "..", + "context" : "...", + "last_updated" : "", + + + "indexes" : [ + {"_type" : "GIS-CENTROIDS"}, + {"_type" : "TEXT-INDEX"}, + {"_type" : "GEONETWORK-CATALOG"}, + {"_type" : "CKAN-CATALOG"} + ], + + "archives" : [ + {"_type" : "WS-STORAGE", + "folder_id" : "..." + }, + {"_type" : "DOCUMENT-STORE-COLLECTION", + "count" : 10000, + "collection_name" : "...."} + ] +} \ No newline at end of file diff --git a/geoportal-service/src/main/resources/examples/centroids_index.json b/geoportal-service/src/main/resources/examples/centroids_index.json new file mode 100644 index 0000000..00f0f52 --- /dev/null +++ b/geoportal-service/src/main/resources/examples/centroids_index.json @@ -0,0 +1,19 @@ +{"_type" : "GIS-CENTROIDS", + "platform" : {"type": "GeoServer", + "ogc_links" : [ + {"wms": ""},{"wfs": ""},{"csw": ""} + ], + "is-coordinates" : {} + }, + + "centroids_layer" : {"":".."}, + + "cross_filtering_layers" : [ + {"" : "..", + "link" : [ + {"source_field" : "..", + "target_field" : "..", + "target_layer_name" : ""} + ]} + ] +} \ No newline at end of file diff --git a/geoportal-service/src/main/resources/examples/layer.json b/geoportal-service/src/main/resources/examples/layer.json new file mode 100644 index 0000000..dd12d3e --- /dev/null +++ b/geoportal-service/src/main/resources/examples/layer.json @@ -0,0 +1,13 @@ +{ + "ogc_links" : [ + {"wms":""},{"wfs": ""},{"csw": ""} + ], + "platform_info" : [ + {"_type" : "Geoserver", + "layername" : "...", + "workspace" : ""}, + {"_type" : "GeoNetwork", + "layerID" : 0, + "layerUUID" : ".."} + ] +} \ No newline at end of file diff --git a/geoportal-service/src/test/java/org/gcube/application/geoportal/service/MongoTests.java b/geoportal-service/src/test/java/org/gcube/application/geoportal/service/MongoTests.java index 0c3a363..2e2f317 100644 --- a/geoportal-service/src/test/java/org/gcube/application/geoportal/service/MongoTests.java +++ b/geoportal-service/src/test/java/org/gcube/application/geoportal/service/MongoTests.java @@ -2,7 +2,6 @@ package org.gcube.application.geoportal.service; import com.fasterxml.jackson.core.JsonProcessingException; import com.mongodb.Block; -import com.mongodb.MongoClient; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import com.mongodb.client.model.Projections; @@ -12,7 +11,7 @@ import org.gcube.application.geoportal.service.engine.ImplementationProvider; import org.gcube.application.geoportal.service.engine.mongo.MongoManager; import org.gcube.application.geoportal.service.engine.providers.MongoClientProvider; 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 org.junit.BeforeClass; import org.junit.Test; diff --git a/geoportal-service/src/test/java/org/gcube/application/geoportal/service/StorageTests.java b/geoportal-service/src/test/java/org/gcube/application/geoportal/service/StorageTests.java index 3088782..574799f 100644 --- a/geoportal-service/src/test/java/org/gcube/application/geoportal/service/StorageTests.java +++ b/geoportal-service/src/test/java/org/gcube/application/geoportal/service/StorageTests.java @@ -4,7 +4,7 @@ import org.gcube.application.cms.tests.TokenSetter; import org.gcube.application.geoportal.common.utils.StorageUtils; import org.gcube.application.geoportal.service.engine.ImplementationProvider; import org.gcube.application.geoportal.service.engine.providers.StorageClientProvider; -import org.gcube.application.geoportal.service.model.internal.faults.ConfigurationException; +import org.gcube.application.geoportal.common.model.rest.ConfigurationException; import java.io.IOException; diff --git a/geoportal-service/src/test/java/org/gcube/application/geoportal/service/engine/caches/Caches.java b/geoportal-service/src/test/java/org/gcube/application/geoportal/service/engine/caches/Caches.java index bb75222..bbcfc01 100644 --- a/geoportal-service/src/test/java/org/gcube/application/geoportal/service/engine/caches/Caches.java +++ b/geoportal-service/src/test/java/org/gcube/application/geoportal/service/engine/caches/Caches.java @@ -1,6 +1,5 @@ package org.gcube.application.geoportal.service.engine.caches; -import ch.qos.logback.core.net.SyslogOutputStream; import com.mongodb.MongoWaitQueueFullException; import lombok.extern.slf4j.Slf4j; import org.gcube.application.cms.tests.TokenSetter; @@ -10,9 +9,7 @@ import org.gcube.application.geoportal.common.utils.StorageUtils; import org.gcube.application.geoportal.service.BasicServiceTestUnit; import org.gcube.application.geoportal.service.engine.ImplementationProvider; import org.gcube.application.geoportal.service.engine.mongo.ConcessioniMongoManager; -import org.gcube.application.geoportal.service.engine.providers.AbstractScopedMap; -import org.gcube.application.geoportal.service.engine.providers.TTLObject; -import org.gcube.application.geoportal.service.model.internal.faults.ConfigurationException; +import org.gcube.application.geoportal.common.model.rest.ConfigurationException; import org.junit.Test; import java.io.File; @@ -21,7 +18,6 @@ import java.time.Duration; import java.time.Instant; import java.time.LocalDateTime; import java.time.temporal.ChronoUnit; -import java.time.temporal.TemporalUnit; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; diff --git a/geoportal-service/src/test/java/org/gcube/application/geoportal/service/engine/caches/DummyCache.java b/geoportal-service/src/test/java/org/gcube/application/geoportal/service/engine/caches/DummyCache.java index b8040b2..ed6bd10 100644 --- a/geoportal-service/src/test/java/org/gcube/application/geoportal/service/engine/caches/DummyCache.java +++ b/geoportal-service/src/test/java/org/gcube/application/geoportal/service/engine/caches/DummyCache.java @@ -1,9 +1,8 @@ package org.gcube.application.geoportal.service.engine.caches; -import lombok.NonNull; import lombok.extern.slf4j.Slf4j; import org.gcube.application.geoportal.service.engine.providers.AbstractScopedMap; -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/test/java/org/gcube/application/geoportal/service/engine/materialization/SDITests.java b/geoportal-service/src/test/java/org/gcube/application/geoportal/service/engine/materialization/SDITests.java index e21b416..70639d3 100644 --- a/geoportal-service/src/test/java/org/gcube/application/geoportal/service/engine/materialization/SDITests.java +++ b/geoportal-service/src/test/java/org/gcube/application/geoportal/service/engine/materialization/SDITests.java @@ -10,7 +10,7 @@ import org.gcube.application.geoportal.common.model.legacy.GeoServerContent; import org.gcube.application.geoportal.common.model.legacy.LayerConcessione; import org.gcube.application.geoportal.common.utils.Files; import org.gcube.application.geoportal.service.engine.postgis.PostgisIndex; -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.SDIInteractionException; import org.gcube.application.cms.serialization.Serialization; import org.junit.Assert;