diff --git a/dnet-ariadneplus-graphdb-publisher/src/main/java/eu/dnetlib/ariadneplus/graphdb/GraphDBClient.java b/dnet-ariadneplus-graphdb-publisher/src/main/java/eu/dnetlib/ariadneplus/graphdb/GraphDBClient.java index 38a8b59..0923ff2 100644 --- a/dnet-ariadneplus-graphdb-publisher/src/main/java/eu/dnetlib/ariadneplus/graphdb/GraphDBClient.java +++ b/dnet-ariadneplus-graphdb-publisher/src/main/java/eu/dnetlib/ariadneplus/graphdb/GraphDBClient.java @@ -196,7 +196,7 @@ public class GraphDBClient { } - public long feedProvenance(final String datasourceApi) throws AriadnePlusPublisherException { + public long feedProvenance(final String datasource, final String datasourceApi) throws AriadnePlusPublisherException { try { log.debug("init connection to graphDBServerUrl " + this.graphDBServerUrl); @@ -209,13 +209,14 @@ public class GraphDBClient { IRI IS_API_OF = factory.createIRI(PROVENANCE_NS, "isApiOf"); IRI INSERTED_IN_DATE = factory.createIRI(PROVENANCE_NS, "insertedInDate"); IRI rApi = factory.createIRI(getGraphDBBaseURI(), datasourceApi); - Statement stmApi = factory.createStatement(rApi, IS_API_OF, factory.createLiteral(datasourceApi)); + Statement stmApi = factory.createStatement(rApi, IS_API_OF, factory.createLiteral(datasource)); LocalDateTime now = LocalDateTime.now(); Statement stmInsertedDate = factory.createStatement(rApi, INSERTED_IN_DATE, factory.createLiteral(now.toString())); IRI datasourceApisGraph = factory.createIRI(getGraphDBBaseURI(), "datasourceApis"); try (RepositoryConnection con = repository.getConnection()) { con.begin(); log.debug("Adding stmt " + stmApi.toString() + " into graph " + datasourceApisGraph.toString()); + con.remove(rApi, INSERTED_IN_DATE, null, datasourceApisGraph); con.add(stmApi, datasourceApisGraph); log.debug("Adding stmt " + stmInsertedDate.toString() + " into graph " + datasourceApisGraph.toString()); con.add(stmInsertedDate, datasourceApisGraph); diff --git a/dnet-ariadneplus-graphdb-publisher/src/main/java/eu/dnetlib/ariadneplus/publisher/AriadnePlusPublisherController.java b/dnet-ariadneplus-graphdb-publisher/src/main/java/eu/dnetlib/ariadneplus/publisher/AriadnePlusPublisherController.java index a4c536b..283e862 100644 --- a/dnet-ariadneplus-graphdb-publisher/src/main/java/eu/dnetlib/ariadneplus/publisher/AriadnePlusPublisherController.java +++ b/dnet-ariadneplus-graphdb-publisher/src/main/java/eu/dnetlib/ariadneplus/publisher/AriadnePlusPublisherController.java @@ -39,11 +39,11 @@ public class AriadnePlusPublisherController { } @RequestMapping(value = "/feedProvenance", method = RequestMethod.POST) - public void feedProvenance(@RequestParam final String datasourceApi, @RequestParam(required = false) String ariadneplusTarget) throws AriadnePlusPublisherException { + public void feedProvenance(@RequestParam final String datasource, @RequestParam final String datasourceApi, @RequestParam(required = false) String ariadneplusTarget) throws AriadnePlusPublisherException { if (ariadneplusTarget==null) { ariadneplusTarget = DEFAULT_TARGET_ENDPOINT; } - getAriadnePlusPublisherHelper().feedProvenance(datasourceApi, getTarget(ariadneplusTarget)); + getAriadnePlusPublisherHelper().feedProvenance(datasource, datasourceApi, getTarget(ariadneplusTarget)); } @RequestMapping(value = "/dropDatasourceApisPartitionInfo", method = RequestMethod.POST) diff --git a/dnet-ariadneplus-graphdb-publisher/src/main/java/eu/dnetlib/ariadneplus/publisher/AriadnePlusPublisherHelper.java b/dnet-ariadneplus-graphdb-publisher/src/main/java/eu/dnetlib/ariadneplus/publisher/AriadnePlusPublisherHelper.java index eb06930..3f71692 100644 --- a/dnet-ariadneplus-graphdb-publisher/src/main/java/eu/dnetlib/ariadneplus/publisher/AriadnePlusPublisherHelper.java +++ b/dnet-ariadneplus-graphdb-publisher/src/main/java/eu/dnetlib/ariadneplus/publisher/AriadnePlusPublisherHelper.java @@ -35,10 +35,10 @@ public class AriadnePlusPublisherHelper { } - public void feedProvenance(final String datasourceApi, final AriadnePlusTargets target) throws AriadnePlusPublisherException { + public void feedProvenance(final String datasource, final String datasourceApi, final AriadnePlusTargets target) throws AriadnePlusPublisherException { switch(target){ case GRAPHDB: - feedProvenance(datasourceApi); + feedProvenance(datasource, datasourceApi); break; default: throw new AriadnePlusPublisherException("Target "+target+" not supported yet"); } @@ -72,10 +72,10 @@ public class AriadnePlusPublisherHelper { graphDBClient.feed(record); } - private void feedProvenance(final String datasourceApi) throws AriadnePlusPublisherException { - log.debug("Feed Provenance " + datasourceApi); + private void feedProvenance(final String datasource, final String datasourceApi) throws AriadnePlusPublisherException { + log.debug("Feed Provenance " + datasource + " - " + datasourceApi); GraphDBClient graphDBClient = this.graphdbClientFactory.getGraphDBClient(); - graphDBClient.feedProvenance(datasourceApi); + graphDBClient.feedProvenance(datasource, datasourceApi); } private void dropDatasourceApisPartitionInfo(final String datasourceApi) throws AriadnePlusPublisherException { @@ -87,8 +87,7 @@ public class AriadnePlusPublisherHelper { private long unpublishGraphDB(final String datasourceInterface) { log.info("Unpublishing from graphdb "+datasourceInterface); GraphDBClient graphDBClient = this.graphdbClientFactory.getGraphDBClient(); - long deletedTriples = graphDBClient.drop(datasourceInterface); - log.info("# triples deleted for "+datasourceInterface+": "+deletedTriples); - return deletedTriples; + + return 0; } } diff --git a/dnet-ariadneplus/src/main/java/eu/dnetlib/ariadneplus/workflows/nodes/PublishGraphDBJobNode.java b/dnet-ariadneplus/src/main/java/eu/dnetlib/ariadneplus/workflows/nodes/PublishGraphDBJobNode.java index b73deb8..7904184 100644 --- a/dnet-ariadneplus/src/main/java/eu/dnetlib/ariadneplus/workflows/nodes/PublishGraphDBJobNode.java +++ b/dnet-ariadneplus/src/main/java/eu/dnetlib/ariadneplus/workflows/nodes/PublishGraphDBJobNode.java @@ -46,6 +46,7 @@ public class PublishGraphDBJobNode extends AsyncJobNode { private String publisherEndpoint; private String datasourceInterface; + private String datasource; //for parallel requests to the publisher endpoint private int nThreads = 5; @@ -178,6 +179,9 @@ public class PublishGraphDBJobNode extends AsyncJobNode { String datasourceInterfaceValue = getDatasourceInterface(); log.info("feeding provenance for datasourceInterface " + datasourceInterfaceValue); params.add(new BasicNameValuePair("datasourceApi", datasourceInterfaceValue)); + String datasourceValue = getDatasource(); + log.info("feeding provenance for datasource " + datasourceValue); + params.add(new BasicNameValuePair("datasource", datasourceValue)); UrlEncodedFormEntity ent = new UrlEncodedFormEntity(params, "UTF-8"); post.setEntity(ent); responsePFPOST = client.execute(post); @@ -256,4 +260,14 @@ public class PublishGraphDBJobNode extends AsyncJobNode { token.setProgressProvider(new ResultsetProgressProvider(token.getEnv().getAttribute(getEprParam(), ResultSet.class), this.resultSetClient)); } + + public String getDatasource() { + return datasource; + } + + + public void setDatasource(String datasource) { + this.datasource = datasource; + } + } diff --git a/dnet-ariadneplus/src/main/resources/eu/dnetlib/ariadneplus/workflows/repo-hi/x3m_aggregation_wf.xml.st b/dnet-ariadneplus/src/main/resources/eu/dnetlib/ariadneplus/workflows/repo-hi/x3m_aggregation_wf.xml.st index fb3ef67..75ed3ab 100644 --- a/dnet-ariadneplus/src/main/resources/eu/dnetlib/ariadneplus/workflows/repo-hi/x3m_aggregation_wf.xml.st +++ b/dnet-ariadneplus/src/main/resources/eu/dnetlib/ariadneplus/workflows/repo-hi/x3m_aggregation_wf.xml.st @@ -105,9 +105,10 @@ - - - + + + + diff --git a/dnet-ariadneplus/src/main/resources/eu/dnetlib/bootstrap/profiles/workflows/graphdb_template.xml b/dnet-ariadneplus/src/main/resources/eu/dnetlib/bootstrap/profiles/workflows/graphdb_template.xml index edab252..1f1e054 100644 --- a/dnet-ariadneplus/src/main/resources/eu/dnetlib/bootstrap/profiles/workflows/graphdb_template.xml +++ b/dnet-ariadneplus/src/main/resources/eu/dnetlib/bootstrap/profiles/workflows/graphdb_template.xml @@ -9,10 +9,11 @@ + - http://localhost:8080/ariadneplus/publish + http://localhost:8080/ariadneplus/publish @@ -31,6 +32,7 @@ +