diff --git a/DataMinerAlgorithmsCrawler/src/main/java/org/gcube/data/publishing/gCatFeeder/collectors/dm/Constants.java b/DataMinerAlgorithmsCrawler/src/main/java/org/gcube/data/publishing/gCatFeeder/collectors/dm/Constants.java index 79b68ac..c93e1e4 100644 --- a/DataMinerAlgorithmsCrawler/src/main/java/org/gcube/data/publishing/gCatFeeder/collectors/dm/Constants.java +++ b/DataMinerAlgorithmsCrawler/src/main/java/org/gcube/data/publishing/gCatFeeder/collectors/dm/Constants.java @@ -4,4 +4,18 @@ public class Constants { public static final String GCAT_TYPE="GCAT"; + public static final String PLUGIN_ID="DATAMINER_ALGORITHMS_COLLECTOR"; + + public static final String ENVIRONMENT_PROPERTIES_BASE=PLUGIN_ID+"."; + + + // ENVIRONMENT EXPECTED PARAMETERS + public static final String GUI_BASE_URL=ENVIRONMENT_PROPERTIES_BASE+"GUI_BASE_URL"; + + public static final String DEFAULT_AUTHOR=ENVIRONMENT_PROPERTIES_BASE+"DEFAULT_AUTHOR"; + + public static final String DEFAULT_MAINTAINER=ENVIRONMENT_PROPERTIES_BASE+"DEFAULT_MAINTAINER"; + + public static final String VISIBILITY=ENVIRONMENT_PROPERTIES_BASE+"VISIBILITY"; + } diff --git a/DataMinerAlgorithmsCrawler/src/main/java/org/gcube/data/publishing/gCatFeeder/collectors/dm/DMAlgorithmsInfoCollector.java b/DataMinerAlgorithmsCrawler/src/main/java/org/gcube/data/publishing/gCatFeeder/collectors/dm/DMAlgorithmsInfoCollector.java index 754aa1c..fb0aca9 100644 --- a/DataMinerAlgorithmsCrawler/src/main/java/org/gcube/data/publishing/gCatFeeder/collectors/dm/DMAlgorithmsInfoCollector.java +++ b/DataMinerAlgorithmsCrawler/src/main/java/org/gcube/data/publishing/gCatFeeder/collectors/dm/DMAlgorithmsInfoCollector.java @@ -2,6 +2,7 @@ package org.gcube.data.publishing.gCatFeeder.collectors.dm; import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Set; import org.gcube.data.analysis.dataminermanagercl.server.DataMinerService; @@ -11,6 +12,7 @@ import org.gcube.data.analysis.dataminermanagercl.shared.process.OperatorCategor import org.gcube.data.analysis.dataminermanagercl.shared.process.OperatorsClassification; import org.gcube.data.publishing.gCatFeeder.collectors.dm.model.InternalAlgorithmDescriptor; import org.gcube.data.publishing.gCatFeeder.collectors.dm.model.InternalAlgorithmDescriptor.Parameter; +import org.gcube.data.publishing.gCatFeeder.model.EnvironmentConfiguration; import org.gcube.data.publishing.gCatfeeder.collectors.DataCollector; import org.gcube.data.publishing.gCatfeeder.collectors.model.faults.CollectorFault; @@ -19,6 +21,13 @@ import lombok.extern.slf4j.Slf4j; @Slf4j public class DMAlgorithmsInfoCollector implements DataCollector { + private Map env=null; + + + public void setEnvironmentConfiguration(EnvironmentConfiguration envConfig) { + this.env=envConfig.getCurrentConfiguration(); + } + @Override public Set collect() throws CollectorFault { @@ -70,8 +79,8 @@ public class DMAlgorithmsInfoCollector implements DataCollector parameters=new HashSet<>(); + private String guiLink; + private String wpsLink; + + private String visibility; private List tags=new ArrayList<>(); diff --git a/DataMinerAlgorithmsCrawler/src/main/java/org/gcube/data/publishing/gCatFeeder/collectors/dm/model/ckan/CkanResource.java b/DataMinerAlgorithmsCrawler/src/main/java/org/gcube/data/publishing/gCatFeeder/collectors/dm/model/ckan/CkanResource.java index b825395..83d5353 100644 --- a/DataMinerAlgorithmsCrawler/src/main/java/org/gcube/data/publishing/gCatFeeder/collectors/dm/model/ckan/CkanResource.java +++ b/DataMinerAlgorithmsCrawler/src/main/java/org/gcube/data/publishing/gCatFeeder/collectors/dm/model/ckan/CkanResource.java @@ -2,6 +2,9 @@ package org.gcube.data.publishing.gCatFeeder.collectors.dm.model.ckan; public class CkanResource { + private String name; + private String url; + private String description; } diff --git a/DataMinerAlgorithmsCrawler/src/main/java/org/gcube/data/publishing/gCatFeeder/collectors/dm/model/ckan/GCatModel.java b/DataMinerAlgorithmsCrawler/src/main/java/org/gcube/data/publishing/gCatFeeder/collectors/dm/model/ckan/GCatModel.java index ebe340d..2b0309f 100644 --- a/DataMinerAlgorithmsCrawler/src/main/java/org/gcube/data/publishing/gCatFeeder/collectors/dm/model/ckan/GCatModel.java +++ b/DataMinerAlgorithmsCrawler/src/main/java/org/gcube/data/publishing/gCatFeeder/collectors/dm/model/ckan/GCatModel.java @@ -3,6 +3,7 @@ package org.gcube.data.publishing.gCatFeeder.collectors.dm.model.ckan; import java.io.ByteArrayOutputStream; import java.util.ArrayList; +import org.gcube.data.publishing.gCatFeeder.collectors.dm.DataMinerCollectorProperties; import org.gcube.data.publishing.gCatFeeder.collectors.dm.model.InternalAlgorithmDescriptor; import org.gcube.data.publishing.gCatFeeder.collectors.dm.model.InternalAlgorithmDescriptor.Parameter; import org.gcube.data.publishing.gCatFeeder.model.CatalogueFormatData; @@ -40,7 +41,9 @@ public class GCatModel implements CatalogueFormatData { for(String tag:desc.getTags()) { item.getTags().add(fixTag(tag)); } - item.getExtras().add(new CKanExtraField("system", "Algorithm")); + item.getExtras().add(new CKanExtraField("system", DataMinerCollectorProperties.getProperty(DataMinerCollectorProperties.CKAN_RESOURCE_TYPE))); + + item.setVisibility(desc.getVisibility()); // TODO ADD PARAMETERS for(Parameter param: desc.getParameters()) @@ -50,7 +53,6 @@ public class GCatModel implements CatalogueFormatData { ((param.getValue()!=null&&!param.getValue().isEmpty())?"default : "+param.getValue():""), param.getDescription()))); - // TODO ADD RESOURCES } diff --git a/DataMinerAlgorithmsCrawler/src/main/resources/org/gcube/data/publishing/gCatFeeder/collectors/dm/config.properties b/DataMinerAlgorithmsCrawler/src/main/resources/org/gcube/data/publishing/gCatFeeder/collectors/dm/config.properties index 9a4f29a..be33c1e 100644 --- a/DataMinerAlgorithmsCrawler/src/main/resources/org/gcube/data/publishing/gCatFeeder/collectors/dm/config.properties +++ b/DataMinerAlgorithmsCrawler/src/main/resources/org/gcube/data/publishing/gCatFeeder/collectors/dm/config.properties @@ -1 +1,2 @@ -default_author=gianpaolo.coro \ No newline at end of file +default_author=gianpaolo.coro +gui_param_name=OperatorId \ No newline at end of file diff --git a/DataMinerAlgorithmsCrawler/src/main/resources/org/gcube/data/publishing/gCatFeeder/collectors/dm/profile.xml b/DataMinerAlgorithmsCrawler/src/main/resources/org/gcube/data/publishing/gCatFeeder/collectors/dm/profile.xml index 6f4da99..f06bc8f 100644 --- a/DataMinerAlgorithmsCrawler/src/main/resources/org/gcube/data/publishing/gCatFeeder/collectors/dm/profile.xml +++ b/DataMinerAlgorithmsCrawler/src/main/resources/org/gcube/data/publishing/gCatFeeder/collectors/dm/profile.xml @@ -1,8 +1,14 @@ - + Input Parameter String false - Input parameter expected for the execution of the algorithm - + Input parameter expected for the execution of the process + + + Output Parameter + String + false + Output parameter expected from the execution of the process + \ No newline at end of file diff --git a/catalogue-plugin-framework/src/main/java/org/gcube/data/publishing/gCatFeeder/catalogues/CataloguePlugin.java b/catalogue-plugin-framework/src/main/java/org/gcube/data/publishing/gCatFeeder/catalogues/CataloguePlugin.java index c0cff67..304ee4c 100644 --- a/catalogue-plugin-framework/src/main/java/org/gcube/data/publishing/gCatFeeder/catalogues/CataloguePlugin.java +++ b/catalogue-plugin-framework/src/main/java/org/gcube/data/publishing/gCatFeeder/catalogues/CataloguePlugin.java @@ -3,6 +3,7 @@ package org.gcube.data.publishing.gCatFeeder.catalogues; import org.gcube.data.publishing.gCatFeeder.catalogues.model.CataloguePluginDescriptor; import org.gcube.data.publishing.gCatFeeder.catalogues.model.faults.ControllerInstantiationFault; import org.gcube.data.publishing.gCatFeeder.model.CatalogueInstanceDescriptor; +import org.gcube.data.publishing.gCatFeeder.model.EnvironmentConfiguration; public interface CataloguePlugin { @@ -14,4 +15,7 @@ public interface CataloguePlugin { public void init() throws Exception; public void initInScope() throws Exception; + + public void setEnvironmentConfiguration(EnvironmentConfiguration env); + } diff --git a/collectors-plugin-framework/src/main/java/org/gcube/data/publishing/gCatfeeder/collectors/CollectorPlugin.java b/collectors-plugin-framework/src/main/java/org/gcube/data/publishing/gCatfeeder/collectors/CollectorPlugin.java index 557918c..5893d1a 100644 --- a/collectors-plugin-framework/src/main/java/org/gcube/data/publishing/gCatfeeder/collectors/CollectorPlugin.java +++ b/collectors-plugin-framework/src/main/java/org/gcube/data/publishing/gCatfeeder/collectors/CollectorPlugin.java @@ -4,6 +4,7 @@ import java.util.Set; import org.gcube.data.publishing.gCatFeeder.model.CatalogueFormatData; import org.gcube.data.publishing.gCatFeeder.model.ControllerConfiguration; +import org.gcube.data.publishing.gCatFeeder.model.EnvironmentConfiguration; import org.gcube.data.publishing.gCatfeeder.collectors.model.CustomData; import org.gcube.data.publishing.gCatfeeder.collectors.model.PluginDescriptor; import org.gcube.data.publishing.gCatfeeder.collectors.model.faults.CatalogueNotSupportedException; @@ -26,4 +27,7 @@ public interface CollectorPlugin{ public void init() throws Exception; public void initInScope() throws Exception; + + + public void setEnvironmentConfiguration(EnvironmentConfiguration env); } diff --git a/commons/src/main/java/org/gcube/data/publishing/gCatFeeder/model/EnvironmentConfiguration.java b/commons/src/main/java/org/gcube/data/publishing/gCatFeeder/model/EnvironmentConfiguration.java new file mode 100644 index 0000000..f319fd6 --- /dev/null +++ b/commons/src/main/java/org/gcube/data/publishing/gCatFeeder/model/EnvironmentConfiguration.java @@ -0,0 +1,9 @@ +package org.gcube.data.publishing.gCatFeeder.model; + +import java.util.Map; + +public interface EnvironmentConfiguration { + + public Map getCurrentConfiguration(); + +} diff --git a/commons/src/main/java/org/gcube/data/publishing/gCatFeeder/utils/ISUtils.java b/commons/src/main/java/org/gcube/data/publishing/gCatFeeder/utils/ISUtils.java index ffc8941..2ffe28b 100644 --- a/commons/src/main/java/org/gcube/data/publishing/gCatFeeder/utils/ISUtils.java +++ b/commons/src/main/java/org/gcube/data/publishing/gCatFeeder/utils/ISUtils.java @@ -6,6 +6,7 @@ import static org.gcube.resources.discovery.icclient.ICFactory.queryFor; import java.util.List; import org.gcube.common.resources.gcore.GCoreEndpoint; +import org.gcube.common.resources.gcore.GenericResource; import org.gcube.common.resources.gcore.ServiceEndpoint; import org.gcube.resources.discovery.client.api.DiscoveryClient; import org.gcube.resources.discovery.client.queries.api.SimpleQuery; @@ -45,4 +46,18 @@ public class ISUtils { return client.submit(query); } + + public static List queryForGenericResources(String name,String secondaryType) { + log.debug("Querying for Generic Resource [Name : {} , SecondaryType : {}, currentScope : {} ]",secondaryType,name,ContextUtils.getCurrentScope()); + + + SimpleQuery query =queryFor(GenericResource.class); + query.addCondition("$resource/Profile/SecondaryType/text() eq '"+secondaryType+"'") + .addCondition("$resource/Profile/Name/text() eq '"+name+"'"); + // .setResult("$resource/Profile/AccessPoint"); + + DiscoveryClient client = clientFor(GenericResource.class); + return client.submit(query); + + } } diff --git a/gCat-Controller/src/main/java/org/gcube/data/publishing/gCataFeeder/catalogues/gCat/GCatPlugin.java b/gCat-Controller/src/main/java/org/gcube/data/publishing/gCataFeeder/catalogues/gCat/GCatPlugin.java index 19dcec6..ddb535d 100644 --- a/gCat-Controller/src/main/java/org/gcube/data/publishing/gCataFeeder/catalogues/gCat/GCatPlugin.java +++ b/gCat-Controller/src/main/java/org/gcube/data/publishing/gCataFeeder/catalogues/gCat/GCatPlugin.java @@ -5,6 +5,7 @@ import org.gcube.data.publishing.gCatFeeder.catalogues.CataloguePlugin; import org.gcube.data.publishing.gCatFeeder.catalogues.model.CataloguePluginDescriptor; import org.gcube.data.publishing.gCatFeeder.catalogues.model.faults.ControllerInstantiationFault; import org.gcube.data.publishing.gCatFeeder.model.CatalogueInstanceDescriptor; +import org.gcube.data.publishing.gCatFeeder.model.EnvironmentConfiguration; public class GCatPlugin implements CataloguePlugin { @@ -31,4 +32,10 @@ public class GCatPlugin implements CataloguePlugin { } + + @Override + public void setEnvironmentConfiguration(EnvironmentConfiguration env) { + // TODO Auto-generated method stub + + } } diff --git a/gCat-Controller/src/test/java/org/gcube/data/publishing/gCatFeeder/catalogues/gCat/Interactions.java b/gCat-Controller/src/test/java/org/gcube/data/publishing/gCatFeeder/catalogues/gCat/Interactions.java index 5c5e0b8..6d4d6bb 100644 --- a/gCat-Controller/src/test/java/org/gcube/data/publishing/gCatFeeder/catalogues/gCat/Interactions.java +++ b/gCat-Controller/src/test/java/org/gcube/data/publishing/gCatFeeder/catalogues/gCat/Interactions.java @@ -71,6 +71,12 @@ public class Interactions extends BaseCataloguePluginTest{ } + @Test + public void testDM() throws CatalogueInteractionException, WrongObjectFormatException, PublicationException, InternalConversionException, ControllerInstantiationFault { + Assume.assumeTrue(isTestInfrastructureEnabled()); + publish(getController(),"full-algorithm.json"); + } + @Test(expected=WrongObjectFormatException.class) public void empties() throws CatalogueInteractionException, WrongObjectFormatException, PublicationException, ControllerInstantiationFault, InternalConversionException { Assume.assumeTrue(isTestInfrastructureEnabled()); diff --git a/gCat-Controller/target/classes/META-INF/maven/org.gcube.data-publishing.gCat-Feeder/gCat-Controller/pom.properties b/gCat-Controller/target/classes/META-INF/maven/org.gcube.data-publishing.gCat-Feeder/gCat-Controller/pom.properties index 5182116..32b7891 100644 --- a/gCat-Controller/target/classes/META-INF/maven/org.gcube.data-publishing.gCat-Feeder/gCat-Controller/pom.properties +++ b/gCat-Controller/target/classes/META-INF/maven/org.gcube.data-publishing.gCat-Feeder/gCat-Controller/pom.properties @@ -1,5 +1,5 @@ #Generated by Maven Integration for Eclipse -#Mon Apr 01 15:14:16 CEST 2019 +#Tue Apr 02 17:12:53 CEST 2019 version=1.0.0-SNAPSHOT groupId=org.gcube.data-publishing.gCat-Feeder m2e.projectName=gCat-Controller diff --git a/gCat-Controller/target/classes/org/gcube/data/publishing/gCataFeeder/catalogues/gCat/GCatPlugin.class b/gCat-Controller/target/classes/org/gcube/data/publishing/gCataFeeder/catalogues/gCat/GCatPlugin.class index 9c4ec64..b12b64f 100644 Binary files a/gCat-Controller/target/classes/org/gcube/data/publishing/gCataFeeder/catalogues/gCat/GCatPlugin.class and b/gCat-Controller/target/classes/org/gcube/data/publishing/gCataFeeder/catalogues/gCat/GCatPlugin.class differ diff --git a/gCat-Controller/target/test-classes/org/gcube/data/publishing/gCatFeeder/catalogues/gCat/Interactions.class b/gCat-Controller/target/test-classes/org/gcube/data/publishing/gCatFeeder/catalogues/gCat/Interactions.class index 5a2ec98..351c626 100644 Binary files a/gCat-Controller/target/test-classes/org/gcube/data/publishing/gCatFeeder/catalogues/gCat/Interactions.class and b/gCat-Controller/target/test-classes/org/gcube/data/publishing/gCatFeeder/catalogues/gCat/Interactions.class differ diff --git a/gCat-Feeder/src/main/java/org/gcube/data/publishing/gCatFeeder/service/GCatFeeder.java b/gCat-Feeder/src/main/java/org/gcube/data/publishing/gCatFeeder/service/GCatFeeder.java index e7d80e5..4d57240 100644 --- a/gCat-Feeder/src/main/java/org/gcube/data/publishing/gCatFeeder/service/GCatFeeder.java +++ b/gCat-Feeder/src/main/java/org/gcube/data/publishing/gCatFeeder/service/GCatFeeder.java @@ -3,6 +3,7 @@ package org.gcube.data.publishing.gCatFeeder.service; import javax.inject.Singleton; import javax.ws.rs.ApplicationPath; +import org.gcube.data.publishing.gCatFeeder.model.EnvironmentConfiguration; import org.gcube.data.publishing.gCatFeeder.service.engine.CatalogueControllersManager; import org.gcube.data.publishing.gCatFeeder.service.engine.CollectorsManager; import org.gcube.data.publishing.gCatFeeder.service.engine.ConnectionManager; @@ -17,6 +18,7 @@ import org.gcube.data.publishing.gCatFeeder.service.engine.impl.CollectorsManage import org.gcube.data.publishing.gCatFeeder.service.engine.impl.ExecutionManagerImpl; import org.gcube.data.publishing.gCatFeeder.service.engine.impl.FeederEngineImpl; import org.gcube.data.publishing.gCatFeeder.service.engine.impl.InfrastructureUtilsImpl; +import org.gcube.data.publishing.gCatFeeder.service.engine.impl.LiveEnvironmentConfiguration; import org.gcube.data.publishing.gCatFeeder.service.engine.impl.LocalConfigurationImpl; import org.gcube.data.publishing.gCatFeeder.service.engine.impl.persistence.ConnectionManagerImpl; import org.gcube.data.publishing.gCatFeeder.service.engine.impl.persistence.PersistenceManagerImpl; @@ -44,6 +46,8 @@ public class GCatFeeder extends ResourceConfig{ bind(PersistenceManagerImpl.class).to(PersistenceManager.class); bind(ConnectionManagerImpl.class).to(ConnectionManager.class).in(Singleton.class); bind(LocalConfigurationImpl.class).to(LocalConfiguration.class).in(Singleton.class); + bind(LiveEnvironmentConfiguration.class).to(EnvironmentConfiguration.class); + } }; register(binder); diff --git a/gCat-Feeder/src/main/java/org/gcube/data/publishing/gCatFeeder/service/engine/Infrastructure.java b/gCat-Feeder/src/main/java/org/gcube/data/publishing/gCatFeeder/service/engine/Infrastructure.java index e4229a4..d06a262 100644 --- a/gCat-Feeder/src/main/java/org/gcube/data/publishing/gCatFeeder/service/engine/Infrastructure.java +++ b/gCat-Feeder/src/main/java/org/gcube/data/publishing/gCatFeeder/service/engine/Infrastructure.java @@ -1,5 +1,7 @@ package org.gcube.data.publishing.gCatFeeder.service.engine; +import java.util.Map; + import org.gcube.data.publishing.gCatFeeder.service.engine.impl.persistence.DatabaseConnectionDescriptor; public interface Infrastructure { @@ -19,4 +21,7 @@ public interface Infrastructure { // public DatabaseConnectionDescriptor queryForDatabase(String category,String name) throws InternalError; + + + public Map getEnvironmentConfigurationParameters(); } diff --git a/gCat-Feeder/src/main/java/org/gcube/data/publishing/gCatFeeder/service/engine/impl/ExecutionTask.java b/gCat-Feeder/src/main/java/org/gcube/data/publishing/gCatFeeder/service/engine/impl/ExecutionTask.java index df4064b..3cbfd36 100644 --- a/gCat-Feeder/src/main/java/org/gcube/data/publishing/gCatFeeder/service/engine/impl/ExecutionTask.java +++ b/gCat-Feeder/src/main/java/org/gcube/data/publishing/gCatFeeder/service/engine/impl/ExecutionTask.java @@ -13,6 +13,7 @@ import org.gcube.data.publishing.gCatFeeder.catalogues.model.faults.PublicationE import org.gcube.data.publishing.gCatFeeder.catalogues.model.faults.WrongObjectFormatException; import org.gcube.data.publishing.gCatFeeder.model.CatalogueFormatData; import org.gcube.data.publishing.gCatFeeder.model.CatalogueInstanceDescriptor; +import org.gcube.data.publishing.gCatFeeder.model.EnvironmentConfiguration; import org.gcube.data.publishing.gCatFeeder.model.InternalConversionException; import org.gcube.data.publishing.gCatFeeder.service.engine.CatalogueControllersManager; import org.gcube.data.publishing.gCatFeeder.service.engine.CollectorsManager; @@ -51,6 +52,9 @@ public class ExecutionTask implements Runnable { private Storage storage; + + private EnvironmentConfiguration environmentConfiguration; + public ExecutionTask(ExecutionDescriptor desc) { super(); this.request=desc; @@ -110,6 +114,10 @@ public class ExecutionTask implements Runnable { } + public void setEnvironmentConfiguration(EnvironmentConfiguration environmentConfiguration) { + this.environmentConfiguration = environmentConfiguration; + } + @Override public void run() { try { @@ -186,6 +194,7 @@ public class ExecutionTask implements Runnable { log.debug("Looking for catalogue instance .."); CatalogueRetriever retriever=collectorPlugin.getRetrieverByCatalogueType(cataloguePluginId); CatalogueInstanceDescriptor instanceDescriptor=retriever.getInstance(); + cataloguePlugin.setEnvironmentConfiguration(environmentConfiguration); CatalogueController controller=cataloguePlugin.instantiateController(instanceDescriptor); controller.configure(collectorPlugin.getPublisherControllerConfiguration(cataloguePluginId)); @@ -252,6 +261,7 @@ public class ExecutionTask implements Runnable { // * COLLECT DATA log.info("Starting collector {} ",collectorId); CollectorPlugin collectorPlugin=collectors.getPluginById(collectorId); + collectorPlugin.setEnvironmentConfiguration(environmentConfiguration); DataCollector collector=collectorPlugin.getCollector(); log.info("Collecting data.."); Set collectedData=collector.collect(); diff --git a/gCat-Feeder/src/main/java/org/gcube/data/publishing/gCatFeeder/service/engine/impl/InfrastructureUtilsImpl.java b/gCat-Feeder/src/main/java/org/gcube/data/publishing/gCatFeeder/service/engine/impl/InfrastructureUtilsImpl.java index ecd77b3..edafe06 100644 --- a/gCat-Feeder/src/main/java/org/gcube/data/publishing/gCatFeeder/service/engine/impl/InfrastructureUtilsImpl.java +++ b/gCat-Feeder/src/main/java/org/gcube/data/publishing/gCatFeeder/service/engine/impl/InfrastructureUtilsImpl.java @@ -3,8 +3,17 @@ package org.gcube.data.publishing.gCatFeeder.service.engine.impl; import static org.gcube.resources.discovery.icclient.ICFactory.clientFor; import static org.gcube.resources.discovery.icclient.ICFactory.queryFor; +import java.util.HashMap; import java.util.List; +import java.util.Map; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.xpath.XPath; +import javax.xml.xpath.XPathExpression; +import javax.xml.xpath.XPathExpressionException; +import javax.xml.xpath.XPathFactory; import org.gcube.common.resources.gcore.ServiceEndpoint; import org.gcube.common.resources.gcore.ServiceEndpoint.AccessPoint; @@ -12,16 +21,47 @@ import org.gcube.data.publishing.gCatFeeder.service.engine.Infrastructure; import org.gcube.data.publishing.gCatFeeder.service.engine.impl.persistence.DatabaseConnectionDescriptor; import org.gcube.data.publishing.gCatFeeder.utils.CommonUtils; import org.gcube.data.publishing.gCatFeeder.utils.ContextUtils; +import org.gcube.data.publishing.gCatFeeder.utils.ISUtils; import org.gcube.data.publishing.gCatFeeder.utils.TokenUtils; import org.gcube.resources.discovery.client.api.DiscoveryClient; import org.gcube.resources.discovery.client.queries.api.SimpleQuery; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.w3c.dom.Element; +import org.w3c.dom.NodeList; public class InfrastructureUtilsImpl implements Infrastructure { private static final Logger log= LoggerFactory.getLogger(InfrastructureUtilsImpl.class); + private static DocumentBuilder builder; + private static DocumentBuilderFactory factory; + private static XPathFactory xPathfactory; + private static XPath xpath; + private static XPathExpression expr; + + + static { + + factory= DocumentBuilderFactory.newInstance(); + xPathfactory = XPathFactory.newInstance(); + xpath = xPathfactory.newXPath(); + + + + + try { + builder= factory.newDocumentBuilder(); + expr= xpath.compile("string(/bookstore/book/title/@lang)"); + } catch (ParserConfigurationException | XPathExpressionException e) { + throw new RuntimeException("Unable to initialize Controller"); + } + + } + + + + @Override public String getCurrentToken() { return TokenUtils.getCurrentToken(); @@ -91,4 +131,17 @@ public class InfrastructureUtilsImpl implements Infrastructure { return toReturn; } + + @Override + public Map getEnvironmentConfigurationParameters() { + HashMap toReturn=new HashMap<>(); + Element root=(Element) ISUtils.queryForGenericResources("gcat-feeder", "configuration").get(0).profile().body().getChildNodes().item(0); + NodeList parameters=root.getChildNodes(); + for(int i=0;i getCurrentConfiguration() { + return infra.getEnvironmentConfigurationParameters(); + } + +} diff --git a/gCat-Feeder/src/test/java/org/gcube/data/publishing/gCatFeeder/service/BaseTest.java b/gCat-Feeder/src/test/java/org/gcube/data/publishing/gCatFeeder/service/BaseTest.java index 92d224d..8f829a4 100644 --- a/gCat-Feeder/src/test/java/org/gcube/data/publishing/gCatFeeder/service/BaseTest.java +++ b/gCat-Feeder/src/test/java/org/gcube/data/publishing/gCatFeeder/service/BaseTest.java @@ -22,13 +22,11 @@ import org.gcube.data.publishing.gCatFeeder.service.engine.impl.CatalogueControl import org.gcube.data.publishing.gCatFeeder.service.engine.impl.CollectorsManagerImpl; import org.gcube.data.publishing.gCatFeeder.service.engine.impl.ExecutionManagerImpl; import org.gcube.data.publishing.gCatFeeder.service.engine.impl.FeederEngineImpl; -import org.gcube.data.publishing.gCatFeeder.service.engine.impl.InfrastructureUtilsImpl; import org.gcube.data.publishing.gCatFeeder.service.engine.impl.LocalConfigurationImpl; import org.gcube.data.publishing.gCatFeeder.service.engine.impl.persistence.ConnectionManagerImpl; import org.gcube.data.publishing.gCatFeeder.service.engine.impl.persistence.PersistenceManagerImpl; import org.gcube.data.publishing.gCatFeeder.service.engine.impl.persistence.StorageImpl; import org.gcube.data.publishing.gCatFeeder.service.mockups.InfrastructureMockup; -import org.gcube.data.publishing.gCatFeeder.service.mockups.PersistenceManagerMock; import org.gcube.data.publishing.gCatFeeder.service.mockups.StorageMockup; import org.glassfish.hk2.utilities.binding.AbstractBinder; import org.glassfish.jersey.test.JerseyTest; diff --git a/gCat-Feeder/src/test/java/org/gcube/data/publishing/gCatFeeder/service/mockups/FakeCataloguePlugin.java b/gCat-Feeder/src/test/java/org/gcube/data/publishing/gCatFeeder/service/mockups/FakeCataloguePlugin.java index ec4b24a..ad5f5ff 100644 --- a/gCat-Feeder/src/test/java/org/gcube/data/publishing/gCatFeeder/service/mockups/FakeCataloguePlugin.java +++ b/gCat-Feeder/src/test/java/org/gcube/data/publishing/gCatFeeder/service/mockups/FakeCataloguePlugin.java @@ -11,6 +11,7 @@ import org.gcube.data.publishing.gCatFeeder.catalogues.model.faults.WrongObjectF import org.gcube.data.publishing.gCatFeeder.model.CatalogueFormatData; import org.gcube.data.publishing.gCatFeeder.model.CatalogueInstanceDescriptor; import org.gcube.data.publishing.gCatFeeder.model.ControllerConfiguration; +import org.gcube.data.publishing.gCatFeeder.model.EnvironmentConfiguration; import org.gcube.data.publishing.gCatFeeder.service.TestCommon; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -68,4 +69,10 @@ public class FakeCataloguePlugin implements CataloguePlugin { }catch(InterruptedException e) {} } + + @Override + public void setEnvironmentConfiguration(EnvironmentConfiguration env) { + // TODO Auto-generated method stub + + } } diff --git a/gCat-Feeder/src/test/java/org/gcube/data/publishing/gCatFeeder/service/mockups/FakeCollectorPlugin.java b/gCat-Feeder/src/test/java/org/gcube/data/publishing/gCatFeeder/service/mockups/FakeCollectorPlugin.java index 80f7ff0..2df2e3b 100644 --- a/gCat-Feeder/src/test/java/org/gcube/data/publishing/gCatFeeder/service/mockups/FakeCollectorPlugin.java +++ b/gCat-Feeder/src/test/java/org/gcube/data/publishing/gCatFeeder/service/mockups/FakeCollectorPlugin.java @@ -8,6 +8,7 @@ import java.util.Set; import org.gcube.data.publishing.gCatFeeder.model.CatalogueFormatData; import org.gcube.data.publishing.gCatFeeder.model.CatalogueInstanceDescriptor; import org.gcube.data.publishing.gCatFeeder.model.ControllerConfiguration; +import org.gcube.data.publishing.gCatFeeder.model.EnvironmentConfiguration; import org.gcube.data.publishing.gCatFeeder.service.TestCommon; import org.gcube.data.publishing.gCatfeeder.collectors.CatalogueRetriever; import org.gcube.data.publishing.gCatfeeder.collectors.CollectorPlugin; @@ -109,4 +110,10 @@ public class FakeCollectorPlugin implements CollectorPlugin { }catch(InterruptedException e) {} } + + @Override + public void setEnvironmentConfiguration(EnvironmentConfiguration env) { + // TODO Auto-generated method stub + + } } diff --git a/gCat-Feeder/src/test/java/org/gcube/data/publishing/gCatFeeder/service/mockups/InfrastructureMockup.java b/gCat-Feeder/src/test/java/org/gcube/data/publishing/gCatFeeder/service/mockups/InfrastructureMockup.java index dc5f0e1..309b031 100644 --- a/gCat-Feeder/src/test/java/org/gcube/data/publishing/gCatFeeder/service/mockups/InfrastructureMockup.java +++ b/gCat-Feeder/src/test/java/org/gcube/data/publishing/gCatFeeder/service/mockups/InfrastructureMockup.java @@ -1,6 +1,8 @@ package org.gcube.data.publishing.gCatFeeder.service.mockups; import java.sql.SQLException; +import java.util.Collections; +import java.util.Map; import org.gcube.data.publishing.gCatFeeder.service.BaseTest; import org.gcube.data.publishing.gCatFeeder.service.engine.impl.InfrastructureUtilsImpl; @@ -81,6 +83,13 @@ public class InfrastructureMockup extends InfrastructureUtilsImpl { return toEncrypt; } + @Override + public Map getEnvironmentConfigurationParameters() { + if(BaseTest.isTestInfrastructureEnabled()) + return super.getEnvironmentConfigurationParameters(); + else return Collections.emptyMap(); + } + @Override public DatabaseConnectionDescriptor queryForDatabase(String category, String name) throws InternalError { diff --git a/test-commons/target/classes/META-INF/maven/org.gcube.data-publishing.gCat-Feeder/test-commons/pom.properties b/test-commons/target/classes/META-INF/maven/org.gcube.data-publishing.gCat-Feeder/test-commons/pom.properties index 5a2b3a1..33787e0 100644 --- a/test-commons/target/classes/META-INF/maven/org.gcube.data-publishing.gCat-Feeder/test-commons/pom.properties +++ b/test-commons/target/classes/META-INF/maven/org.gcube.data-publishing.gCat-Feeder/test-commons/pom.properties @@ -1,5 +1,5 @@ #Generated by Maven Integration for Eclipse -#Mon Apr 01 15:14:17 CEST 2019 +#Tue Apr 02 17:12:52 CEST 2019 version=1.0.0-SNAPSHOT groupId=org.gcube.data-publishing.gCat-Feeder m2e.projectName=test-commons