From 88dd08b31e701f295ace2bfac07db0655a72b387 Mon Sep 17 00:00:00 2001 From: "fabio.sinibaldi" Date: Thu, 14 Mar 2019 18:07:56 +0000 Subject: [PATCH] git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/data-publishing/gCat-Feeder-Suite@178595 82a268e6-3cf1-43bd-a215-b396298e98cf --- catalogue-plugin-framework/pom.xml | 2 +- .../model/CataloguePluginDescriptor.java | 16 +- .../model/faults/PublicationException.java | 38 ++++ ckan-controller-plugin/.classpath | 36 ++++ ckan-controller-plugin/.project | 23 ++ .../org.eclipse.core.resources.prefs | 6 + .../.settings/org.eclipse.jdt.core.prefs | 5 + .../.settings/org.eclipse.m2e.core.prefs | 4 + ckan-controller-plugin/pom.xml | 24 +++ .../catalogues/ckan/CKANController.java | 203 ++++++++++++++++++ .../catalogues/ckan/CkanPlugin.java | 23 ++ .../target/classes/META-INF/MANIFEST.MF | 5 + .../ckan-controller-plugin/pom.properties | 7 + .../ckan-controller-plugin/pom.xml | 24 +++ .../catalogues/ckan/CKANController.class | Bin 0 -> 8701 bytes .../catalogues/ckan/CkanPlugin.class | Bin 0 -> 1553 bytes .../utils/GCubeAuthorizationFilter.java | 27 +++ .../gCatFeeder/utils/TokenUtils.java | 9 + pom.xml | 56 +++-- 19 files changed, 487 insertions(+), 21 deletions(-) create mode 100644 catalogue-plugin-framework/src/main/java/org/gcube/data/publishing/gCatFeeder/catalogues/model/faults/PublicationException.java create mode 100644 ckan-controller-plugin/.classpath create mode 100644 ckan-controller-plugin/.project create mode 100644 ckan-controller-plugin/.settings/org.eclipse.core.resources.prefs create mode 100644 ckan-controller-plugin/.settings/org.eclipse.jdt.core.prefs create mode 100644 ckan-controller-plugin/.settings/org.eclipse.m2e.core.prefs create mode 100644 ckan-controller-plugin/pom.xml create mode 100644 ckan-controller-plugin/src/main/java/org/gcube/data/publishing/gCatFeeder/catalogues/ckan/CKANController.java create mode 100644 ckan-controller-plugin/src/main/java/org/gcube/data/publishing/gCatFeeder/catalogues/ckan/CkanPlugin.java create mode 100644 ckan-controller-plugin/target/classes/META-INF/MANIFEST.MF create mode 100644 ckan-controller-plugin/target/classes/META-INF/maven/org.gcube.data-publishing.gCat-Feeder/ckan-controller-plugin/pom.properties create mode 100644 ckan-controller-plugin/target/classes/META-INF/maven/org.gcube.data-publishing.gCat-Feeder/ckan-controller-plugin/pom.xml create mode 100644 ckan-controller-plugin/target/classes/org/gcube/data/publishing/gCatFeeder/catalogues/ckan/CKANController.class create mode 100644 ckan-controller-plugin/target/classes/org/gcube/data/publishing/gCatFeeder/catalogues/ckan/CkanPlugin.class create mode 100644 commons/src/main/java/org/gcube/data/publishing/gCatFeeder/utils/GCubeAuthorizationFilter.java diff --git a/catalogue-plugin-framework/pom.xml b/catalogue-plugin-framework/pom.xml index 3f9219a..be278e1 100644 --- a/catalogue-plugin-framework/pom.xml +++ b/catalogue-plugin-framework/pom.xml @@ -6,7 +6,7 @@ 1.0.0-SNAPSHOT catalogue-plugin-framework - + org.projectlombok lombok diff --git a/catalogue-plugin-framework/src/main/java/org/gcube/data/publishing/gCatFeeder/catalogues/model/CataloguePluginDescriptor.java b/catalogue-plugin-framework/src/main/java/org/gcube/data/publishing/gCatFeeder/catalogues/model/CataloguePluginDescriptor.java index af0f9bf..0b225d5 100644 --- a/catalogue-plugin-framework/src/main/java/org/gcube/data/publishing/gCatFeeder/catalogues/model/CataloguePluginDescriptor.java +++ b/catalogue-plugin-framework/src/main/java/org/gcube/data/publishing/gCatFeeder/catalogues/model/CataloguePluginDescriptor.java @@ -1,9 +1,17 @@ package org.gcube.data.publishing.gCatFeeder.catalogues.model; +import lombok.Getter; +import lombok.NonNull; +import lombok.RequiredArgsConstructor; +import lombok.Setter; + +@RequiredArgsConstructor +@Getter +@Setter public class CataloguePluginDescriptor { - public CataloguePluginDescriptor() { - // TODO Auto-generated constructor stub - } - + @NonNull + private String id; + + } diff --git a/catalogue-plugin-framework/src/main/java/org/gcube/data/publishing/gCatFeeder/catalogues/model/faults/PublicationException.java b/catalogue-plugin-framework/src/main/java/org/gcube/data/publishing/gCatFeeder/catalogues/model/faults/PublicationException.java new file mode 100644 index 0000000..d7e17bb --- /dev/null +++ b/catalogue-plugin-framework/src/main/java/org/gcube/data/publishing/gCatFeeder/catalogues/model/faults/PublicationException.java @@ -0,0 +1,38 @@ +package org.gcube.data.publishing.gCatFeeder.catalogues.model.faults; + +public class PublicationException extends Exception { + + /** + * + */ + private static final long serialVersionUID = -2113773348645295768L; + + public PublicationException() { + super(); + // TODO Auto-generated constructor stub + } + + public PublicationException(String message, Throwable cause, boolean enableSuppression, + boolean writableStackTrace) { + super(message, cause, enableSuppression, writableStackTrace); + // TODO Auto-generated constructor stub + } + + public PublicationException(String message, Throwable cause) { + super(message, cause); + // TODO Auto-generated constructor stub + } + + public PublicationException(String message) { + super(message); + // TODO Auto-generated constructor stub + } + + public PublicationException(Throwable cause) { + super(cause); + // TODO Auto-generated constructor stub + } + + + +} diff --git a/ckan-controller-plugin/.classpath b/ckan-controller-plugin/.classpath new file mode 100644 index 0000000..fae1a2b --- /dev/null +++ b/ckan-controller-plugin/.classpath @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ckan-controller-plugin/.project b/ckan-controller-plugin/.project new file mode 100644 index 0000000..29e74b7 --- /dev/null +++ b/ckan-controller-plugin/.project @@ -0,0 +1,23 @@ + + + ckan-controller-plugin + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + + diff --git a/ckan-controller-plugin/.settings/org.eclipse.core.resources.prefs b/ckan-controller-plugin/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..29abf99 --- /dev/null +++ b/ckan-controller-plugin/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,6 @@ +eclipse.preferences.version=1 +encoding//src/main/java=UTF-8 +encoding//src/main/resources=UTF-8 +encoding//src/test/java=UTF-8 +encoding//src/test/resources=UTF-8 +encoding/=UTF-8 diff --git a/ckan-controller-plugin/.settings/org.eclipse.jdt.core.prefs b/ckan-controller-plugin/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..714351a --- /dev/null +++ b/ckan-controller-plugin/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,5 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/ckan-controller-plugin/.settings/org.eclipse.m2e.core.prefs b/ckan-controller-plugin/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..f897a7f --- /dev/null +++ b/ckan-controller-plugin/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/ckan-controller-plugin/pom.xml b/ckan-controller-plugin/pom.xml new file mode 100644 index 0000000..b69b1db --- /dev/null +++ b/ckan-controller-plugin/pom.xml @@ -0,0 +1,24 @@ + + 4.0.0 + + org.gcube.data-publishing.gCat-Feeder + gCat-Feeder-Suite + 1.0.0-SNAPSHOT + + ckan-controller-plugin + ckan-controller-plugin + controller plugin for gCat-Feeder aimed to publish metadata to CKAN catalogue + + + + + org.gcube.data-publishing.gCat-Feeder + catalogue-plugin-framework + [1.0.0-SNAPSHOT,2.0.0-SNAPSHOT) + + + + + + + \ No newline at end of file diff --git a/ckan-controller-plugin/src/main/java/org/gcube/data/publishing/gCatFeeder/catalogues/ckan/CKANController.java b/ckan-controller-plugin/src/main/java/org/gcube/data/publishing/gCatFeeder/catalogues/ckan/CKANController.java new file mode 100644 index 0000000..0585358 --- /dev/null +++ b/ckan-controller-plugin/src/main/java/org/gcube/data/publishing/gCatFeeder/catalogues/ckan/CKANController.java @@ -0,0 +1,203 @@ +package org.gcube.data.publishing.gCatFeeder.catalogues.ckan; + +import java.net.URL; +import java.util.Iterator; + +import javax.ws.rs.client.Client; +import javax.ws.rs.client.ClientBuilder; +import javax.ws.rs.client.Entity; +import javax.ws.rs.core.Response; + +import org.gcube.data.publishing.gCatFeeder.catalogues.CatalogueController; +import org.gcube.data.publishing.gCatFeeder.catalogues.model.PublishReport; +import org.gcube.data.publishing.gCatFeeder.catalogues.model.faults.ControllerInstantiationFault; +import org.gcube.data.publishing.gCatFeeder.catalogues.model.faults.PublicationException; +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.utils.GCubeAuthorizationFilter; +import org.gcube.data.publishing.gCatFeeder.utils.TokenUtils; +import org.glassfish.jersey.client.ClientConfig; +import org.glassfish.jersey.client.ClientProperties; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; + +import lombok.extern.slf4j.Slf4j; + +@Slf4j +public class CKANController implements CatalogueController { + + private static ObjectMapper mapper=new ObjectMapper(); + + + + private static final String PUBLISH_ITEM="catalogue-ws/rest/api/items/create"; + private static final String PUBLSIH_RESOURCE="catalogue-ws/rest/api/resources/create"; + + private String hostname=null; + private String customToken=null; + private final int maxAttempts=3; + + public CKANController(CatalogueInstanceDescriptor instance) throws ControllerInstantiationFault { + try{ + log.trace("Instantiating controller towards {} ",instance); + URL url=new URL(instance.getUrl()); + this.hostname=url.getHost(); + this.customToken=instance.getCustomToken(); + }catch(Throwable t) { + throw new ControllerInstantiationFault("Unable to instantiate CKAN controller. ",t); + } + } + + + /** + * Expected structure + * + * { "item" : "", + * "resources" : [ + * "", + * "", + * ....] + * } + * + * NB serialized resources are updated with "package_id" set as the published item id + * + * + */ + @Override + public PublishReport publishItem(CatalogueFormatData toPublish) throws WrongObjectFormatException { + //Get serialized format + log.debug("Publishing {} ",toPublish); + String serialized=toPublish.toCatalogueFormat(); + String toResetToken=TokenUtils.getCurrentToken(); + + if(customToken!=null) { + log.debug("Custom token found.. Setting it.."); + TokenUtils.setToken(customToken); + } + + + try { + log.debug("Checking serialized structure.. "); + JsonNode node=mapper.readTree(serialized); + String item=node.path("item").asText(); + String itemResp=publishItem(item); + String itemUrl=getPublishedUrl(itemResp); + log.info("Published item {} ",itemUrl); + if(node.has("resources")) { + log.debug("Publishing resources.."); + JsonNode resourcesNode=node.path("resources"); + String itemId=getId(itemResp); + log.debug("Setting package id {} ",itemId); + Iterator it=resourcesNode.iterator(); + while(it.hasNext()) { + JsonNode res=it.next(); + ((ObjectNode)res).put("package_id",itemId); + String resResp=publishResource(res.asText()); + String resUrl=getPublishedUrl(resResp); + log.info("Published resource {} ",resUrl); + } + } + + return new PublishReport(true, itemUrl); + + }catch(PublicationException e) { + log.error("Unable to Publish ",e); + return new PublishReport(false, e.getMessage()); + }catch(Throwable t) { + throw new WrongObjectFormatException("Unable to parse Serialized object.",t); + }finally { + TokenUtils.setToken(toResetToken); + } + } + + + + private String publishItem(String jsonItem) throws PublicationException { + String urlString="http://"+hostname+":80/"+PUBLISH_ITEM; + String respString=null; + int attemptCounter=0; + while(respString==null&&attemptCounter=300) { + throw new PublicationException("RESP STATUS IS "+resp.getStatus()+". Message : "+resp.readEntity(String.class)); + }else { + try { + String respString=resp.readEntity(String.class); + if(!mapper.readTree(respString).path("success").asBoolean()) + throw new PublicationException("Error : response is "+respString); + return respString; + }catch(PublicationException e) { + throw e; + }catch(Throwable t) { + throw new PublicationException("Unable to check response ",t); + } + } + } + + private static String getId(String publishResponse) { + try { + return mapper.readTree(publishResponse).path("result").path("id").asText(); + } catch (Throwable t) { + t.printStackTrace(); + throw new RuntimeException("FAILED Parsing of "+publishResponse); + } + } + + private static String getPublishedUrl(String publishResponse) { + try { + Iterator iterator=mapper.readTree(publishResponse).path("result").path("extras").elements(); + while(iterator.hasNext()) { + JsonNode node=iterator.next(); + if(node.path("key").asText().equals("Item URL")) + return node.path("value").asText(); + } + return "N/A"; + } catch (Throwable t) { + t.printStackTrace(); + throw new RuntimeException("FAILED Parsing of "+publishResponse); + } + } + + private static Client getWebClient() { + return ClientBuilder.newClient(new ClientConfig().register(GCubeAuthorizationFilter.class)) + .property(ClientProperties.SUPPRESS_HTTP_COMPLIANCE_VALIDATION, true); + } + + +} diff --git a/ckan-controller-plugin/src/main/java/org/gcube/data/publishing/gCatFeeder/catalogues/ckan/CkanPlugin.java b/ckan-controller-plugin/src/main/java/org/gcube/data/publishing/gCatFeeder/catalogues/ckan/CkanPlugin.java new file mode 100644 index 0000000..bb1b958 --- /dev/null +++ b/ckan-controller-plugin/src/main/java/org/gcube/data/publishing/gCatFeeder/catalogues/ckan/CkanPlugin.java @@ -0,0 +1,23 @@ +package org.gcube.data.publishing.gCatFeeder.catalogues.ckan; + +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; + +public class CkanPlugin implements CataloguePlugin{ + + @Override + public CataloguePluginDescriptor getDescriptor() { + return new CataloguePluginDescriptor("CKAN"); + } + + @Override + public CKANController instantiateController(CatalogueInstanceDescriptor desc) + throws ControllerInstantiationFault { + return new CKANController(desc); + } + + + +} diff --git a/ckan-controller-plugin/target/classes/META-INF/MANIFEST.MF b/ckan-controller-plugin/target/classes/META-INF/MANIFEST.MF new file mode 100644 index 0000000..e2601c5 --- /dev/null +++ b/ckan-controller-plugin/target/classes/META-INF/MANIFEST.MF @@ -0,0 +1,5 @@ +Manifest-Version: 1.0 +Built-By: fabio +Build-Jdk: 1.8.0_201 +Created-By: Maven Integration for Eclipse + diff --git a/ckan-controller-plugin/target/classes/META-INF/maven/org.gcube.data-publishing.gCat-Feeder/ckan-controller-plugin/pom.properties b/ckan-controller-plugin/target/classes/META-INF/maven/org.gcube.data-publishing.gCat-Feeder/ckan-controller-plugin/pom.properties new file mode 100644 index 0000000..43cea8e --- /dev/null +++ b/ckan-controller-plugin/target/classes/META-INF/maven/org.gcube.data-publishing.gCat-Feeder/ckan-controller-plugin/pom.properties @@ -0,0 +1,7 @@ +#Generated by Maven Integration for Eclipse +#Thu Mar 14 17:51:18 CET 2019 +version=1.0.0-SNAPSHOT +groupId=org.gcube.data-publishing.gCat-Feeder +m2e.projectName=ckan-controller-plugin +m2e.projectLocation=/home/fabio/workspaces/DEV/gCat-Feeder-Suite/ckan-controller-plugin +artifactId=ckan-controller-plugin diff --git a/ckan-controller-plugin/target/classes/META-INF/maven/org.gcube.data-publishing.gCat-Feeder/ckan-controller-plugin/pom.xml b/ckan-controller-plugin/target/classes/META-INF/maven/org.gcube.data-publishing.gCat-Feeder/ckan-controller-plugin/pom.xml new file mode 100644 index 0000000..b69b1db --- /dev/null +++ b/ckan-controller-plugin/target/classes/META-INF/maven/org.gcube.data-publishing.gCat-Feeder/ckan-controller-plugin/pom.xml @@ -0,0 +1,24 @@ + + 4.0.0 + + org.gcube.data-publishing.gCat-Feeder + gCat-Feeder-Suite + 1.0.0-SNAPSHOT + + ckan-controller-plugin + ckan-controller-plugin + controller plugin for gCat-Feeder aimed to publish metadata to CKAN catalogue + + + + + org.gcube.data-publishing.gCat-Feeder + catalogue-plugin-framework + [1.0.0-SNAPSHOT,2.0.0-SNAPSHOT) + + + + + + + \ No newline at end of file diff --git a/ckan-controller-plugin/target/classes/org/gcube/data/publishing/gCatFeeder/catalogues/ckan/CKANController.class b/ckan-controller-plugin/target/classes/org/gcube/data/publishing/gCatFeeder/catalogues/ckan/CKANController.class new file mode 100644 index 0000000000000000000000000000000000000000..7d78483afdbb3baa1fdd9f0132674f1e5b6b5608 GIT binary patch literal 8701 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 OR-J{#a!Bq9H2gn@b!FB7 literal 0 HcmV?d00001 diff --git a/ckan-controller-plugin/target/classes/org/gcube/data/publishing/gCatFeeder/catalogues/ckan/CkanPlugin.class b/ckan-controller-plugin/target/classes/org/gcube/data/publishing/gCatFeeder/catalogues/ckan/CkanPlugin.class new file mode 100644 index 0000000000000000000000000000000000000000..c3e6317eaeb9521c2b9f8283d8978005815e3a70 GIT binary patch literal 1553 zcmc(f-EPw`6vzK=yQT{r9f6MT!5ECRlgQ2P%7>~z1zNRDDw@GL#-mR5U)O7;4 z+dC#KT-OP_!BDrmdFgs8qO!Mirt30@6%Ul;O1NR5qR{sRh5OO|yJ%;ed6UvSF%{(e zY0EAi1&}*L1u zbO9bPY+qbL^#d8w)ns^mQAPT{1wVTsc~x2_7#>$~6St`Jy)cP9(UJP$*YcM1L| entry: requestContext.getHeaders()){ + rc.getHeaders().put(entry.getKey(), Collections.singletonList((Object)entry.getValue())); + } + } + } +} diff --git a/commons/src/main/java/org/gcube/data/publishing/gCatFeeder/utils/TokenUtils.java b/commons/src/main/java/org/gcube/data/publishing/gCatFeeder/utils/TokenUtils.java index fef0c82..32e4e7c 100644 --- a/commons/src/main/java/org/gcube/data/publishing/gCatFeeder/utils/TokenUtils.java +++ b/commons/src/main/java/org/gcube/data/publishing/gCatFeeder/utils/TokenUtils.java @@ -1,5 +1,14 @@ package org.gcube.data.publishing.gCatFeeder.utils; +import org.gcube.common.authorization.library.provider.SecurityTokenProvider; + public class TokenUtils { + public static void setToken(String token) { + SecurityTokenProvider.instance.set(token); + } + + public static String getCurrentToken() { + return SecurityTokenProvider.instance.get(); + } } diff --git a/pom.xml b/pom.xml index 624a86f..2c07fb9 100644 --- a/pom.xml +++ b/pom.xml @@ -12,14 +12,15 @@ pom gCat-Feeder Suite gCat-Feeder Suite of components : service, plugin framework, plugins - - - - gCat-Feeder - collectors-plugin-framework - DataMinerAlgorithmsCrawler - commons - catalogue-plugin-framework + + + + gCat-Feeder + collectors-plugin-framework + DataMinerAlgorithmsCrawler + commons + catalogue-plugin-framework + ckan-controller-plugin @@ -33,11 +34,34 @@ - - - - - + + + + + + + org.gcube.core + common-generic-clients + + + + org.gcube.core + common-gcube-calls + + + + + org.glassfish.jersey.core + jersey-client + + + + + org.glassfish.jersey.media + jersey-media-json-jackson + + + ch.qos.logback logback-classic 1.0.13 @@ -50,7 +74,7 @@ 4.12 test - - - + + + \ No newline at end of file