diff --git a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/providers/AbstractScopedMap.java b/cms-plugin-framework/src/main/java/org/gcube/application/cms/caches/AbstractScopedMap.java similarity index 96% rename from geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/providers/AbstractScopedMap.java rename to cms-plugin-framework/src/main/java/org/gcube/application/cms/caches/AbstractScopedMap.java index d45b1ac..71fda42 100644 --- a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/providers/AbstractScopedMap.java +++ b/cms-plugin-framework/src/main/java/org/gcube/application/cms/caches/AbstractScopedMap.java @@ -1,4 +1,4 @@ -package org.gcube.application.geoportal.service.engine.providers; +package org.gcube.application.cms.caches; import lombok.NonNull; import lombok.RequiredArgsConstructor; diff --git a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/providers/Engine.java b/cms-plugin-framework/src/main/java/org/gcube/application/cms/caches/Engine.java similarity index 76% rename from geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/providers/Engine.java rename to cms-plugin-framework/src/main/java/org/gcube/application/cms/caches/Engine.java index 2ee19c3..d31f1e9 100644 --- a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/providers/Engine.java +++ b/cms-plugin-framework/src/main/java/org/gcube/application/cms/caches/Engine.java @@ -1,4 +1,4 @@ -package org.gcube.application.geoportal.service.engine.providers; +package org.gcube.application.cms.caches; import org.gcube.application.geoportal.common.model.rest.ConfigurationException; diff --git a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/providers/TTLObject.java b/cms-plugin-framework/src/main/java/org/gcube/application/cms/caches/TTLObject.java similarity index 78% rename from geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/providers/TTLObject.java rename to cms-plugin-framework/src/main/java/org/gcube/application/cms/caches/TTLObject.java index db226d5..a8f2105 100644 --- a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/providers/TTLObject.java +++ b/cms-plugin-framework/src/main/java/org/gcube/application/cms/caches/TTLObject.java @@ -1,4 +1,4 @@ -package org.gcube.application.geoportal.service.engine.providers; +package org.gcube.application.cms.caches; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/AbstractPlugin.java b/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/AbstractPlugin.java new file mode 100644 index 0000000..19f48e2 --- /dev/null +++ b/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/AbstractPlugin.java @@ -0,0 +1,23 @@ +package org.gcube.application.cms.plugins; + +import org.gcube.application.cms.plugins.model.PluginDescriptor; +import org.gcube.application.cms.plugins.reports.DocumentHandlingReport; +import org.gcube.application.cms.plugins.requests.BaseExecutionRequest; +import org.gcube.application.geoportal.common.model.profile.HandlerDeclaration; +import org.gcube.application.geoportal.common.model.profile.Profile; + +import java.util.List; + +public abstract class AbstractPlugin implements Plugin{ + + + + + + protected HandlerDeclaration getConfigurationFromProfile(Profile profile){ + return getMultipleDeclarationsFromProfile(profile).get(0); + } + protected List getMultipleDeclarationsFromProfile(Profile p){ + return p.getHandlersMap().get(getDescriptor().getId()); + } +} diff --git a/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/IndexerPluginInterface.java b/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/IndexerPluginInterface.java new file mode 100644 index 0000000..8c5822b --- /dev/null +++ b/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/IndexerPluginInterface.java @@ -0,0 +1,10 @@ +package org.gcube.application.cms.plugins; + +import org.gcube.application.cms.plugins.reports.IndexDocumentReport; +import org.gcube.application.cms.plugins.requests.IndexDocumentRequest; + +public interface IndexerPluginInterface extends InitializablePlugin{ + + public IndexDocumentReport index(IndexDocumentRequest request); + +} diff --git a/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/model/PluginDescriptor.java b/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/model/PluginDescriptor.java index 698deae..9f6358c 100644 --- a/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/model/PluginDescriptor.java +++ b/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/model/PluginDescriptor.java @@ -14,6 +14,8 @@ public class PluginDescriptor { public static class BaseTypes{ public static final String LIFECYCLE_MANAGER="LifecycleManagement"; public static final String MATERIALIZER="Materializer"; + public static final String INDEXER="Indexer"; + } @NonNull diff --git a/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/reports/IndexDocumentReport.java b/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/reports/IndexDocumentReport.java new file mode 100644 index 0000000..a294be0 --- /dev/null +++ b/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/reports/IndexDocumentReport.java @@ -0,0 +1,7 @@ +package org.gcube.application.cms.plugins.reports; + +import org.gcube.application.cms.plugins.requests.BaseExecutionRequest; +import org.gcube.application.cms.plugins.requests.IndexDocumentRequest; + +public class IndexDocumentReport extends DocumentHandlingReport { +} diff --git a/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/requests/IndexDocumentRequest.java b/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/requests/IndexDocumentRequest.java new file mode 100644 index 0000000..30ef577 --- /dev/null +++ b/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/requests/IndexDocumentRequest.java @@ -0,0 +1,5 @@ +package org.gcube.application.cms.plugins.requests; + +public class IndexDocumentRequest extends BaseExecutionRequest{ + +} 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 72f6615..364f156 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 @@ -1,6 +1,7 @@ package org.gcube.application.geoportal.service.engine.providers; import lombok.extern.slf4j.Slf4j; +import org.gcube.application.cms.caches.AbstractScopedMap; 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; @@ -8,7 +9,7 @@ import org.gcube.application.geoportal.service.model.internal.db.MongoConnection import org.gcube.application.geoportal.common.model.rest.ConfigurationException; @Slf4j -public class MongoClientProvider extends AbstractScopedMap{ +public class MongoClientProvider extends AbstractScopedMap { public MongoClientProvider() { super("MongoClient cache"); 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 98f74a6..f4240a7 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 @@ -1,6 +1,7 @@ package org.gcube.application.geoportal.service.engine.providers; import lombok.extern.slf4j.Slf4j; +import org.gcube.application.cms.caches.AbstractScopedMap; import org.gcube.application.cms.plugins.InitializablePlugin; import org.gcube.application.cms.plugins.LifecycleManager; import org.gcube.application.cms.plugins.Plugin; @@ -17,7 +18,6 @@ import org.reflections.util.FilterBuilder; import java.util.HashMap; import java.util.Map; -import java.util.function.Consumer; @Slf4j public class PluginManager extends AbstractScopedMap> implements PluginManagerInterface { 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 07104a2..adf36ce 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,11 +1,12 @@ package org.gcube.application.geoportal.service.engine.providers; +import org.gcube.application.cms.caches.AbstractScopedMap; import org.gcube.application.geoportal.service.engine.postgis.PostgisDBManager; import org.gcube.application.geoportal.common.model.rest.ConfigurationException; import java.sql.SQLException; -public class PostgisConnectionProvider extends AbstractScopedMap{ +public class PostgisConnectionProvider extends AbstractScopedMap { public PostgisConnectionProvider() { 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 9110333..7be49c7 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 @@ -2,6 +2,7 @@ package org.gcube.application.geoportal.service.engine.providers; import com.fasterxml.jackson.core.JsonProcessingException; import lombok.extern.slf4j.Slf4j; +import org.gcube.application.cms.caches.AbstractScopedMap; import org.gcube.application.geoportal.common.model.profile.Profile; import org.gcube.application.geoportal.common.utils.Files; import org.gcube.application.geoportal.common.model.rest.ConfigurationException; 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 de57e35..0664cee 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 @@ -2,6 +2,7 @@ package org.gcube.application.geoportal.service.engine.providers; import lombok.extern.slf4j.Slf4j; +import org.gcube.application.cms.caches.AbstractScopedMap; import org.gcube.application.geoportal.common.utils.StorageUtils; import org.gcube.application.geoportal.common.model.rest.ConfigurationException; 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 71362cb..c20217b 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,5 +1,6 @@ package org.gcube.application.geoportal.service.engine.providers; +import org.gcube.application.cms.caches.Engine; import org.gcube.application.geoportal.common.model.rest.ConfigurationException; import org.gcube.common.storagehub.client.dsl.StorageHubClient; diff --git a/geoportal-service/src/test/java/org/gcube/application/geoportal/service/DummyProfiledDocumentTest.java b/geoportal-service/src/test/java/org/gcube/application/geoportal/service/DummyProfiledDocumentTest.java index 7008b87..b82ed46 100644 --- a/geoportal-service/src/test/java/org/gcube/application/geoportal/service/DummyProfiledDocumentTest.java +++ b/geoportal-service/src/test/java/org/gcube/application/geoportal/service/DummyProfiledDocumentTest.java @@ -131,7 +131,7 @@ public class DummyProfiledDocumentTest extends AbstractProfiledDocumentsTests{ assertTrue(fs.getMaterializations().size()>0); - for(Object matObj : wrapper.getByPath("$..fileset."+RegisteredFileSet.MATERIALIZATIONS,List.class).get(0)){ + for(Object matObj : wrapper.getByPath("$..[?(@."+ Materialization.TYPE +" == '"+GCubeSDILayer.GCUBE_SDY_LAYER_TYPE+"' )]")){ GCubeSDILayer layer = Serialization.convert(matObj, GCubeSDILayer.class); System.out.println("Checking Layer : "+layer); assertTrue(layer.getType().equals(GCubeSDILayer.GCUBE_SDY_LAYER_TYPE)); @@ -140,17 +140,14 @@ public class DummyProfiledDocumentTest extends AbstractProfiledDocumentsTests{ assertTrue(layer.getBBox()!=null); } - // Checking platform info - for(Object platformObj : wrapper.getByPath("$..[?(@."+ Materialization.TYPE +" == '"+GCubeSDILayer.GCUBE_SDY_LAYER_TYPE+"' )]")){ + // Checking platform info GeoServer + for(Object platformObj : wrapper.getByPath("$..[?(@."+ Materialization.TYPE +" == 'GeoServer' )]")){ Document platform=Serialization.asDocument(platformObj); - assertTrue(platform.containsKey("_type")); - if(platform.get("_type").equals("GeoServer")){ assertTrue(platform.containsKey("layerName")); assertTrue(platform.containsKey("workspace")); assertTrue(platform.containsKey("storeName")); assertTrue(platform.containsKey("persistencePath")); assertTrue(platform.get("files",List.class).size()==2); - } } 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 ed6bd10..80c81e8 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,7 +1,7 @@ package org.gcube.application.geoportal.service.engine.caches; import lombok.extern.slf4j.Slf4j; -import org.gcube.application.geoportal.service.engine.providers.AbstractScopedMap; +import org.gcube.application.cms.caches.AbstractScopedMap; import org.gcube.application.geoportal.common.model.rest.ConfigurationException; import java.time.LocalDateTime;