You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@streampipes.apache.org by ri...@apache.org on 2020/12/30 12:45:27 UTC

[incubator-streampipes] 04/04: [STREAMPIPES-269] Isolate empire dependencies, bump empire version to 1.9.14

This is an automated email from the ASF dual-hosted git repository.

riemer pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/incubator-streampipes.git

commit 806a67412612dc2ee485ea33a6829515bfc4d746
Author: Dominik Riemer <ri...@fzi.de>
AuthorDate: Wed Dec 30 13:45:10 2020 +0100

    [STREAMPIPES-269] Isolate empire dependencies, bump empire version to 1.9.14
---
 pom.xml                                            | 21 +++++++++++--
 streampipes-code-generation/pom.xml                |  4 +++
 .../connect/management/AdapterUtilsTest.java       |  2 +-
 .../api/AbstractPipelineElementResource.java       |  6 ++--
 .../api/DataSourcePipelineElementResource.java     |  4 +--
 .../api/InvocablePipelineElementResource.java      | 14 ++++-----
 .../container/init/DeclarersSingleton.java         | 16 ++--------
 streampipes-model/pom.xml                          | 12 ++++----
 .../java/org/apache/streampipes/model/Tuple2.java  | 34 ++++++++++++----------
 .../model/base/AbstractStreamPipesEntity.java      | 27 ++++++++++++-----
 .../model/base/NamedStreamPipesEntity.java         | 17 -----------
 .../model/base/UnnamedStreamPipesEntity.java       | 17 -----------
 .../apache/streampipes/model/util/ModelUtils.java  | 14 ---------
 .../matching/output/ListOutputSchemaGenerator.java |  4 +--
 .../matching/output/PropertyDuplicateRemover.java  |  8 ++---
 .../streampipes/manager/matching/v2/TestUtils.java | 16 +++++-----
 .../streampipes/rest/util/JsonLdUtilsTest.java     |  2 +-
 .../streampipes/sdk/helpers/EpProperties.java      |  1 -
 streampipes-serializers-jsonld/pom.xml             |  4 +++
 .../serializers/jsonld/JsonLdUtils.java            | 21 ++++++++-----
 streampipes-storage-api/pom.xml                    |  8 +++++
 .../storage/couchdb/dao/AbstractDao.java           |  6 ++--
 .../storage/couchdb/dao/PersistCommand.java        |  8 ++---
 23 files changed, 124 insertions(+), 142 deletions(-)

diff --git a/pom.xml b/pom.xml
index ea8dd23..4d6d0bb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -49,14 +49,14 @@
         <commons-logging.version>1.2</commons-logging.version>
         <consul-client.version>1.3.9</consul-client.version>
         <elasticsearch.version>6.6.2</elasticsearch.version>
-        <empire-rdf4j.version>1.9.13</empire-rdf4j.version>
+        <empire-rdf4j.version>1.9.14</empire-rdf4j.version>
         <flink.version>1.9.1</flink.version>
         <fogsy-qudt.version>1.0</fogsy-qudt.version>
         <fst.version>2.56</fst.version>
         <geojson-jackson.version>1.8</geojson-jackson.version>
         <guava.version>27.1-jre</guava.version>
         <hibernate-validator.version>6.1.5.Final</hibernate-validator.version>
-        <httpclient.version>4.5.10</httpclient.version>
+        <httpclient.version>4.5.13</httpclient.version>
         <httpcore.version>4.4.9</httpcore.version>
         <httpcore-osgi.version>4.4.9</httpcore-osgi.version>
         <influxdb.version>2.16</influxdb.version>
@@ -89,7 +89,7 @@
         <okhttp.version>3.12.2</okhttp.version>
         <plexus-component-annotations.version>1.6</plexus-component-annotations.version>
         <plexus-utils.version>3.0.22</plexus-utils.version>
-        <rdf4j.version>3.1.0</rdf4j.version>
+        <rdf4j.version>3.5.0</rdf4j.version>
         <rendersnake.version>1.8</rendersnake.version>
         <retrofit.version>2.5.0</retrofit.version>
         <shiro.version>1.2.3</shiro.version>
@@ -476,6 +476,11 @@
             </dependency>
             <dependency>
                 <groupId>org.eclipse.rdf4j</groupId>
+                <artifactId>rdf4j-query</artifactId>
+                <version>${rdf4j.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.eclipse.rdf4j</groupId>
                 <artifactId>rdf4j-queryresultio-api</artifactId>
                 <version>${rdf4j.version}</version>
             </dependency>
@@ -491,6 +496,11 @@
             </dependency>
             <dependency>
                 <groupId>org.eclipse.rdf4j</groupId>
+                <artifactId>rdf4j-repository-api</artifactId>
+                <version>${rdf4j.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.eclipse.rdf4j</groupId>
                 <artifactId>rdf4j-repository-manager</artifactId>
                 <version>${rdf4j.version}</version>
             </dependency>
@@ -736,6 +746,11 @@
             </dependency>
             <dependency>
                 <groupId>io.fogsy</groupId>
+                <artifactId>empire-api</artifactId>
+                <version>${empire-rdf4j.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>io.fogsy</groupId>
                 <artifactId>empire-core</artifactId>
                 <version>${empire-rdf4j.version}</version>
             </dependency>
diff --git a/streampipes-code-generation/pom.xml b/streampipes-code-generation/pom.xml
index c595808..c8c2ef4 100644
--- a/streampipes-code-generation/pom.xml
+++ b/streampipes-code-generation/pom.xml
@@ -60,6 +60,10 @@
 
         <!-- External dependencies -->
         <dependency>
+            <groupId>commons-io</groupId>
+            <artifactId>commons-io</artifactId>
+        </dependency>
+        <dependency>
             <groupId>com.google.code.gson</groupId>
             <artifactId>gson</artifactId>
         </dependency>
diff --git a/streampipes-connect-container/src/test/java/org/streampipes/connect/management/AdapterUtilsTest.java b/streampipes-connect-container/src/test/java/org/streampipes/connect/management/AdapterUtilsTest.java
index 471bd89..aa4ca35 100644
--- a/streampipes-connect-container/src/test/java/org/streampipes/connect/management/AdapterUtilsTest.java
+++ b/streampipes-connect-container/src/test/java/org/streampipes/connect/management/AdapterUtilsTest.java
@@ -43,7 +43,7 @@ public class AdapterUtilsTest {
                         .withBody(expected)));
 
 
-        String result = AdapterUtils.stopPipeline(Mock.HOST + ":" + Mock.PORT + "/");
+        String result = AdapterUtils.stopPipeline(Mock.HOST + "/");
 
         assertEquals(expected, result);
 
diff --git a/streampipes-container/src/main/java/org/apache/streampipes/container/api/AbstractPipelineElementResource.java b/streampipes-container/src/main/java/org/apache/streampipes/container/api/AbstractPipelineElementResource.java
index 47c3a65..5b87557 100644
--- a/streampipes-container/src/main/java/org/apache/streampipes/container/api/AbstractPipelineElementResource.java
+++ b/streampipes-container/src/main/java/org/apache/streampipes/container/api/AbstractPipelineElementResource.java
@@ -20,7 +20,6 @@ package org.apache.streampipes.container.api;
 
 import com.google.common.base.Charsets;
 import com.google.common.io.Resources;
-import io.fogsy.empire.core.empire.SupportsRdfId;
 import org.apache.streampipes.commons.constants.GlobalStreamPipesConstants;
 import org.apache.streampipes.container.assets.AssetZipGenerator;
 import org.apache.streampipes.container.declarer.DataStreamDeclarer;
@@ -46,7 +45,6 @@ import javax.ws.rs.Produces;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 import java.io.IOException;
-import java.net.URI;
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -150,7 +148,7 @@ public abstract class AbstractPipelineElementResource<D extends Declarer<?>> {
       String originalId = desc.getElementId();
       String uri = DeclarersSingleton.getInstance().getBaseUri() + type + desc.getElementId();
       desc.setElementId(uri);
-      desc.setRdfId(new SupportsRdfId.URIKey(URI.create(uri)));
+      desc.setElementId(uri);
 
       // TODO remove after full internationalization support has been implemented
       if (desc.isIncludesLocales()) {
@@ -169,7 +167,7 @@ public abstract class AbstractPipelineElementResource<D extends Declarer<?>> {
                   + SLASH
                   + stream.getElementId();
           stream.setElementId(baseUri);
-          stream.setRdfId(new SupportsRdfId.URIKey(URI.create(baseUri)));
+          stream.setElementId(baseUri);
           // TODO remove after full internationalization support has been implemented
           if (stream.isIncludesLocales()) {
             try {
diff --git a/streampipes-container/src/main/java/org/apache/streampipes/container/api/DataSourcePipelineElementResource.java b/streampipes-container/src/main/java/org/apache/streampipes/container/api/DataSourcePipelineElementResource.java
index c6afdc1..1fd2c10 100644
--- a/streampipes-container/src/main/java/org/apache/streampipes/container/api/DataSourcePipelineElementResource.java
+++ b/streampipes-container/src/main/java/org/apache/streampipes/container/api/DataSourcePipelineElementResource.java
@@ -29,8 +29,6 @@ import org.apache.streampipes.model.SpDataSet;
 import org.apache.streampipes.model.SpDataStream;
 import org.apache.streampipes.model.graph.DataSourceDescription;
 import org.apache.streampipes.serializers.json.JacksonSerializer;
-import org.eclipse.rdf4j.repository.RepositoryException;
-import org.eclipse.rdf4j.rio.RDFParseException;
 
 import javax.ws.rs.*;
 import javax.ws.rs.core.MediaType;
@@ -106,7 +104,7 @@ public class DataSourcePipelineElementResource extends AbstractPipelineElementRe
           // TODO notify
         });
         return ok(new Response(runningInstanceId, true));
-      } catch (RDFParseException | RepositoryException | IOException | InstantiationException |
+      } catch (IOException | InstantiationException |
               IllegalAccessException e) {
         e.printStackTrace();
         return ok(new Response("", false, e.getMessage()));
diff --git a/streampipes-container/src/main/java/org/apache/streampipes/container/api/InvocablePipelineElementResource.java b/streampipes-container/src/main/java/org/apache/streampipes/container/api/InvocablePipelineElementResource.java
index 962fefb..5664a57 100644
--- a/streampipes-container/src/main/java/org/apache/streampipes/container/api/InvocablePipelineElementResource.java
+++ b/streampipes-container/src/main/java/org/apache/streampipes/container/api/InvocablePipelineElementResource.java
@@ -18,7 +18,6 @@
 
 package org.apache.streampipes.container.api;
 
-import com.fasterxml.jackson.core.JsonProcessingException;
 import org.apache.streampipes.commons.exceptions.SpRuntimeException;
 import org.apache.streampipes.container.declarer.Declarer;
 import org.apache.streampipes.container.declarer.InvocableDeclarer;
@@ -30,9 +29,6 @@ import org.apache.streampipes.model.runtime.RuntimeOptionsResponse;
 import org.apache.streampipes.model.staticproperty.Option;
 import org.apache.streampipes.sdk.extractor.AbstractParameterExtractor;
 import org.apache.streampipes.sdk.extractor.StaticPropertyExtractor;
-import org.apache.streampipes.serializers.json.JacksonSerializer;
-import org.eclipse.rdf4j.repository.RepositoryException;
-import org.eclipse.rdf4j.rio.RDFParseException;
 
 import javax.ws.rs.*;
 import javax.ws.rs.core.MediaType;
@@ -70,7 +66,7 @@ public abstract class InvocablePipelineElementResource<I extends InvocableStream
                 Response resp = RunningInstances.INSTANCE.getInvocation(runningInstanceId).invokeRuntime(graph);
                 return ok(resp);
             }
-        } catch (RDFParseException | RepositoryException | InstantiationException | IllegalAccessException e) {
+        } catch (InstantiationException | IllegalAccessException e) {
             e.printStackTrace();
             return ok(new Response(elementId, false, e.getMessage()));
         }
@@ -100,16 +96,18 @@ public abstract class InvocablePipelineElementResource<I extends InvocableStream
 
     @POST
     @Path("{elementId}/output")
-    public javax.ws.rs.core.Response fetchOutputStrategy(@PathParam("elementId") String elementId, String payload) {
+    @Produces(MediaType.APPLICATION_JSON)
+    @Consumes(MediaType.APPLICATION_JSON)
+    public javax.ws.rs.core.Response fetchOutputStrategy(@PathParam("elementId") String elementId, I runtimeOptionsRequest) {
         try {
-            I runtimeOptionsRequest = JacksonSerializer.getObjectMapper().readValue(payload, clazz);
+            //I runtimeOptionsRequest = JacksonSerializer.getObjectMapper().readValue(payload, clazz);
             ResolvesContainerProvidedOutputStrategy<I, P> resolvesOutput =
                     (ResolvesContainerProvidedOutputStrategy<I, P>)
                             getDeclarerById
                                     (elementId);
             return ok(resolvesOutput.resolveOutputStrategy
                     (runtimeOptionsRequest, getExtractor(runtimeOptionsRequest)));
-        } catch (SpRuntimeException | JsonProcessingException e) {
+        } catch (SpRuntimeException e) {
             e.printStackTrace();
             return ok(new Response(elementId, false));
         }
diff --git a/streampipes-container/src/main/java/org/apache/streampipes/container/init/DeclarersSingleton.java b/streampipes-container/src/main/java/org/apache/streampipes/container/init/DeclarersSingleton.java
index 31b6399..3ac7050 100644
--- a/streampipes-container/src/main/java/org/apache/streampipes/container/init/DeclarersSingleton.java
+++ b/streampipes-container/src/main/java/org/apache/streampipes/container/init/DeclarersSingleton.java
@@ -18,13 +18,7 @@
 
 package org.apache.streampipes.container.init;
 
-import org.eclipse.rdf4j.model.vocabulary.RDFS;
-import org.apache.streampipes.container.declarer.DataStreamDeclarer;
-import org.apache.streampipes.container.declarer.Declarer;
-import org.apache.streampipes.container.declarer.PipelineTemplateDeclarer;
-import org.apache.streampipes.container.declarer.SemanticEventConsumerDeclarer;
-import org.apache.streampipes.container.declarer.SemanticEventProcessingAgentDeclarer;
-import org.apache.streampipes.container.declarer.SemanticEventProducerDeclarer;
+import org.apache.streampipes.container.declarer.*;
 import org.apache.streampipes.dataformat.SpDataFormatFactory;
 import org.apache.streampipes.dataformat.SpDataFormatManager;
 import org.apache.streampipes.messaging.SpProtocolDefinitionFactory;
@@ -35,11 +29,7 @@ import org.apache.streampipes.model.util.Cloner;
 import org.apache.streampipes.vocabulary.StreamPipes;
 
 import java.net.URI;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 public class DeclarersSingleton {
@@ -126,7 +116,7 @@ public class DeclarersSingleton {
             .getRdfType()
             .stream()
             .map(URI::toString)
-            .filter(t -> !t.equals(RDFS.RESOURCE.stringValue()))
+            .filter(t -> !t.equals("http://www.w3.org/2000/01/rdf-schema#"))
             .filter(t -> !t.equals(StreamPipes.TRANSPORT_FORMAT))
             .findFirst()
             .get();
diff --git a/streampipes-model/pom.xml b/streampipes-model/pom.xml
index f7477b5..85eadf4 100644
--- a/streampipes-model/pom.xml
+++ b/streampipes-model/pom.xml
@@ -53,6 +53,10 @@
             <artifactId>jackson-annotations</artifactId>
         </dependency>
         <dependency>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-databind</artifactId>
+        </dependency>
+        <dependency>
             <groupId>com.google.code.gson</groupId>
             <artifactId>gson</artifactId>
         </dependency>
@@ -66,15 +70,11 @@
         </dependency>
         <dependency>
             <groupId>io.fogsy</groupId>
-            <artifactId>empire-annotations</artifactId>
+            <artifactId>empire-api</artifactId>
         </dependency>
         <dependency>
             <groupId>io.fogsy</groupId>
-            <artifactId>empire-core</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.httpcomponents</groupId>
-            <artifactId>httpclient-osgi</artifactId>
+            <artifactId>empire-annotations</artifactId>
         </dependency>
 
         <!-- Test dependencies -->
diff --git a/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/dao/PersistCommand.java b/streampipes-model/src/main/java/org/apache/streampipes/model/Tuple2.java
similarity index 54%
copy from streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/dao/PersistCommand.java
copy to streampipes-model/src/main/java/org/apache/streampipes/model/Tuple2.java
index 28d8315..11b783f 100644
--- a/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/dao/PersistCommand.java
+++ b/streampipes-model/src/main/java/org/apache/streampipes/model/Tuple2.java
@@ -15,28 +15,32 @@
  * limitations under the License.
  *
  */
-package org.apache.streampipes.storage.couchdb.dao;
+package org.apache.streampipes.model;
 
-import org.lightcouch.CouchDbClient;
-import org.lightcouch.Response;
-import org.mapdb.Fun;
+public class Tuple2<A, B> {
 
-import java.util.function.Supplier;
+  public final A a;
+  public final B b;
 
-public class PersistCommand<T> extends DbCommand<Fun.Tuple2<Boolean, String>, T> {
-
-  private T objectToPersist;
-
-  public PersistCommand(Supplier<CouchDbClient> couchDbClient, T objectToPersist, Class<T> clazz) {
-    super(couchDbClient, clazz);
-    this.objectToPersist = objectToPersist;
+  public Tuple2(A a, B b) {
+    this.a = a;
+    this.b = b;
   }
 
   @Override
-  protected Fun.Tuple2<Boolean, String> executeCommand(CouchDbClient couchDbClient) {
-    Response response = couchDbClient.save(objectToPersist);
+  public boolean equals(Object o) {
+    if (this == o) return true;
+    if (o == null || getClass() != o.getClass()) return false;
 
-    return new Fun.Tuple2<>(response.getError() == null, response.getId());
+    Tuple2<?, ?> tuple = (Tuple2<?, ?>) o;
+    if (!a.equals(tuple.a)) return false;
+    return b.equals(tuple.b);
+  }
 
+  @Override
+  public int hashCode() {
+    int result = a.hashCode();
+    result = 31 * result + b.hashCode();
+    return result;
   }
 }
diff --git a/streampipes-model/src/main/java/org/apache/streampipes/model/base/AbstractStreamPipesEntity.java b/streampipes-model/src/main/java/org/apache/streampipes/model/base/AbstractStreamPipesEntity.java
index 4d69519..a392f10 100644
--- a/streampipes-model/src/main/java/org/apache/streampipes/model/base/AbstractStreamPipesEntity.java
+++ b/streampipes-model/src/main/java/org/apache/streampipes/model/base/AbstractStreamPipesEntity.java
@@ -22,12 +22,14 @@ package org.apache.streampipes.model.base;
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonTypeInfo;
 import io.fogsy.empire.annotations.Namespaces;
-import io.fogsy.empire.core.empire.SupportsRdfId;
-import io.fogsy.empire.core.empire.annotation.SupportsRdfIdImpl;
+import io.fogsy.empire.annotations.RdfId;
+import io.fogsy.empire.annotations.RdfProperty;
+import io.fogsy.empire.api.SupportsRdfId;
 import org.apache.streampipes.model.shared.annotation.TsModel;
 import org.apache.streampipes.vocabulary.*;
 
 import java.io.Serializable;
+import java.net.URI;
 
 
 /**
@@ -43,25 +45,34 @@ public class AbstractStreamPipesEntity implements SupportsRdfId, Serializable {
 
 	private static final long serialVersionUID = -8593749314663582071L;
 
-	private transient SupportsRdfIdImpl myId;
-	
+	@RdfProperty(StreamPipes.HAS_URI)
+	@RdfId
+	protected String elementId;
+
 	AbstractStreamPipesEntity() {
-		myId = new SupportsRdfIdImpl();
+
 	}
 
 	@SuppressWarnings("rawtypes")
 	@Override
 	@JsonIgnore
 	public RdfKey getRdfId() {
-		return myId.getRdfId();
+		return new URIKey(URI.create(getElementId()));
 	}
 
-
 	@SuppressWarnings("rawtypes")
 	@Override
 	@JsonIgnore
 	public void setRdfId(RdfKey arg0) {
-		myId.setRdfId(arg0);	
+		this.elementId = arg0.toString();
+	}
+
+	public String getElementId() {
+		return elementId;
+	}
+
+	public void setElementId(String elementId) {
+		this.elementId = elementId;
 	}
 
 }
diff --git a/streampipes-model/src/main/java/org/apache/streampipes/model/base/NamedStreamPipesEntity.java b/streampipes-model/src/main/java/org/apache/streampipes/model/base/NamedStreamPipesEntity.java
index d1f5140..24e35ee 100644
--- a/streampipes-model/src/main/java/org/apache/streampipes/model/base/NamedStreamPipesEntity.java
+++ b/streampipes-model/src/main/java/org/apache/streampipes/model/base/NamedStreamPipesEntity.java
@@ -19,7 +19,6 @@
 package org.apache.streampipes.model.base;
 
 
-import io.fogsy.empire.annotations.RdfId;
 import io.fogsy.empire.annotations.RdfProperty;
 import org.apache.streampipes.model.ApplicationLink;
 import org.apache.streampipes.model.util.Cloner;
@@ -48,10 +47,6 @@ public abstract class NamedStreamPipesEntity extends AbstractStreamPipesEntity {
   @RdfProperty(StreamPipes.ICON_URL)
   private String iconUrl;
 
-  @RdfProperty(StreamPipes.HAS_URI)
-  @RdfId
-  protected String elementId;
-
   @RdfProperty(StreamPipes.HAS_APP_ID)
   private String appId;
 
@@ -163,14 +158,6 @@ public abstract class NamedStreamPipesEntity extends AbstractStreamPipesEntity {
     this.elementId = uri;
   }
 
-  public String getElementId() {
-    return elementId;
-  }
-
-  public void setElementId(String elementId) {
-    this.elementId = elementId;
-  }
-
   public void setDOM(String DOM) {
     this.DOM = DOM;
   }
@@ -235,8 +222,4 @@ public abstract class NamedStreamPipesEntity extends AbstractStreamPipesEntity {
     this.includedLocales = includedLocales;
   }
 
-  @Deprecated
-  public void changeElementId(String elementId) {
-    this.elementId = elementId;
-  }
 }
diff --git a/streampipes-model/src/main/java/org/apache/streampipes/model/base/UnnamedStreamPipesEntity.java b/streampipes-model/src/main/java/org/apache/streampipes/model/base/UnnamedStreamPipesEntity.java
index d86ae85..d365d36 100644
--- a/streampipes-model/src/main/java/org/apache/streampipes/model/base/UnnamedStreamPipesEntity.java
+++ b/streampipes-model/src/main/java/org/apache/streampipes/model/base/UnnamedStreamPipesEntity.java
@@ -19,11 +19,7 @@
 package org.apache.streampipes.model.base;
 
 
-import io.fogsy.empire.annotations.RdfId;
-import io.fogsy.empire.annotations.RdfProperty;
-import org.apache.streampipes.model.shared.annotation.TsIgnore;
 import org.apache.streampipes.model.util.RdfIdGenerator;
-import org.apache.streampipes.vocabulary.StreamPipes;
 
 /**
  * unnamed SEPA elements (that do not require any readable identifier)
@@ -32,12 +28,6 @@ public abstract class UnnamedStreamPipesEntity extends AbstractStreamPipesEntity
 
   private static final long serialVersionUID = 8051137255998890188L;
 
-  @RdfId
-  @RdfProperty(StreamPipes.HAS_ELEMENT_NAME)
-  @TsIgnore
-  private String elementId;
-
-
   public UnnamedStreamPipesEntity() {
     super();
     this.elementId = RdfIdGenerator.makeRdfId(this);
@@ -52,11 +42,4 @@ public abstract class UnnamedStreamPipesEntity extends AbstractStreamPipesEntity
     this.elementId = elementId;
   }
 
-  public String getElementId() {
-    return elementId;
-  }
-
-  public void setElementId(String elementId) {
-    this.elementId = elementId;
-  }
 }
diff --git a/streampipes-model/src/main/java/org/apache/streampipes/model/util/ModelUtils.java b/streampipes-model/src/main/java/org/apache/streampipes/model/util/ModelUtils.java
index dcbc314..3e20053 100644
--- a/streampipes-model/src/main/java/org/apache/streampipes/model/util/ModelUtils.java
+++ b/streampipes-model/src/main/java/org/apache/streampipes/model/util/ModelUtils.java
@@ -18,13 +18,6 @@
 
 package org.apache.streampipes.model.util;
 
-import org.eclipse.rdf4j.model.Model;
-import org.eclipse.rdf4j.rio.RDFFormat;
-import org.eclipse.rdf4j.rio.RDFHandlerException;
-import org.eclipse.rdf4j.rio.Rio;
-
-import java.io.ByteArrayOutputStream;
-import java.io.OutputStream;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
@@ -55,13 +48,6 @@ public class ModelUtils {
 		else return null;
 	}
 	
-	public static String asString(Model model) throws RDFHandlerException
-	{
-		OutputStream stream = new ByteArrayOutputStream();
-		Rio.write(model, stream, RDFFormat.JSONLD);
-		return stream.toString();
-	}
-	
 	public static List<Map<String, Object>> asList(Map<String, Object> map)
 	{
 		List<Map<String, Object>> result = new ArrayList<>();
diff --git a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/matching/output/ListOutputSchemaGenerator.java b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/matching/output/ListOutputSchemaGenerator.java
index 2fd3acb..5946d12 100644
--- a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/matching/output/ListOutputSchemaGenerator.java
+++ b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/matching/output/ListOutputSchemaGenerator.java
@@ -19,7 +19,6 @@
 package org.apache.streampipes.manager.matching.output;
 
 import org.apache.streampipes.commons.Utils;
-import io.fogsy.empire.core.empire.SupportsRdfId;
 import org.apache.streampipes.model.SpDataStream;
 import org.apache.streampipes.model.output.ListOutputStrategy;
 import org.apache.streampipes.model.output.OutputStrategy;
@@ -28,7 +27,6 @@ import org.apache.streampipes.model.schema.EventPropertyList;
 import org.apache.streampipes.model.schema.EventSchema;
 import org.apache.streampipes.sdk.helpers.Tuple2;
 
-import java.net.URI;
 import java.util.List;
 
 public class ListOutputSchemaGenerator extends OutputSchemaGenerator<ListOutputStrategy> {
@@ -60,7 +58,7 @@ public class ListOutputSchemaGenerator extends OutputSchemaGenerator<ListOutputS
     EventPropertyList list = new EventPropertyList();
     //list.setEventProperties(schemaProperties);
     list.setRuntimeName(propertyName);
-    list.setRdfId(new SupportsRdfId.URIKey(URI.create(schemaProperties.get(0).getRdfId() + "-list")));
+    list.setElementId(schemaProperties.get(0).getElementId() + "-list");
     EventSchema schema = new EventSchema();
     schema.setEventProperties(Utils.createList(list));
     return schema;
diff --git a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/matching/output/PropertyDuplicateRemover.java b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/matching/output/PropertyDuplicateRemover.java
index 4d1fcd3..6c05636 100644
--- a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/matching/output/PropertyDuplicateRemover.java
+++ b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/matching/output/PropertyDuplicateRemover.java
@@ -18,12 +18,10 @@
 
 package org.apache.streampipes.manager.matching.output;
 
-import io.fogsy.empire.core.empire.SupportsRdfId;
 import org.apache.streampipes.model.schema.EventProperty;
 import org.apache.streampipes.model.schema.EventPropertyNested;
 import org.apache.streampipes.model.schema.EventPropertyPrimitive;
 
-import java.net.URI;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -48,7 +46,7 @@ public class PropertyDuplicateRemover {
         if (newProperty instanceof EventPropertyPrimitive) {
           EventPropertyPrimitive primitive = (EventPropertyPrimitive) newProperty;
           newProperty = new EventPropertyPrimitive(primitive.getRuntimeType(), primitive.getRuntimeName() + i, "", primitive.getDomainProperties());
-          newProperty.setRdfId(new SupportsRdfId.URIKey(URI.create(primitive.getElementId() + i)));
+          newProperty.setElementId(primitive.getElementId() + i);
         }
         if (newProperty instanceof EventPropertyNested) {
           EventPropertyNested nested = (EventPropertyNested) newProperty;
@@ -61,7 +59,7 @@ public class PropertyDuplicateRemover {
               EventPropertyPrimitive thisPrimitive = (EventPropertyPrimitive) np;
               EventProperty newNested = new EventPropertyPrimitive(thisPrimitive.getRuntimeType(), thisPrimitive.getRuntimeName(), "", thisPrimitive.getDomainProperties());
               //newNested.setRdfId(new URIKey(URI.create("urn:fzi.de:sepa:" +UUID.randomUUID().toString())));
-              newNested.setRdfId(new SupportsRdfId.URIKey(URI.create(thisPrimitive.getElementId())));
+              newNested.setElementId(thisPrimitive.getElementId());
               nestedProperties.add(newNested);
             }
 
@@ -69,7 +67,7 @@ public class PropertyDuplicateRemover {
           newProperty = new EventPropertyNested(nested.getRuntimeName() + i, nestedProperties);
           //newProperty = new EventPropertyNested(nested.getPropertyName() +i, nested.getEventProperties());
           //newProperty.setRdfId(new URIKey(URI.create("urn:fzi.de:sepa:" +UUID.randomUUID().toString())));
-          newProperty.setRdfId(new SupportsRdfId.URIKey(URI.create(nested.getElementId() + i)));
+          newProperty.setElementId(nested.getElementId() + i);
         }
         i++;
       }
diff --git a/streampipes-pipeline-management/src/test/java/org/apache/streampipes/manager/matching/v2/TestUtils.java b/streampipes-pipeline-management/src/test/java/org/apache/streampipes/manager/matching/v2/TestUtils.java
index 3e98e9d..56dbc24 100644
--- a/streampipes-pipeline-management/src/test/java/org/apache/streampipes/manager/matching/v2/TestUtils.java
+++ b/streampipes-pipeline-management/src/test/java/org/apache/streampipes/manager/matching/v2/TestUtils.java
@@ -21,19 +21,17 @@ package org.apache.streampipes.manager.matching.v2;
 import org.apache.streampipes.container.declarer.EventStreamDeclarer;
 import org.apache.streampipes.container.declarer.SemanticEventProcessingAgentDeclarer;
 import org.apache.streampipes.container.declarer.SemanticEventProducerDeclarer;
-import io.fogsy.empire.core.empire.SupportsRdfId;
-import org.apache.streampipes.model.pipeline.Pipeline;
 import org.apache.streampipes.model.SpDataStream;
+import org.apache.streampipes.model.graph.DataProcessorDescription;
+import org.apache.streampipes.model.graph.DataProcessorInvocation;
+import org.apache.streampipes.model.graph.DataSourceDescription;
 import org.apache.streampipes.model.grounding.JmsTransportProtocol;
 import org.apache.streampipes.model.grounding.KafkaTransportProtocol;
 import org.apache.streampipes.model.grounding.TransportFormat;
 import org.apache.streampipes.model.grounding.TransportProtocol;
-import org.apache.streampipes.model.graph.DataSourceDescription;
-import org.apache.streampipes.model.graph.DataProcessorDescription;
-import org.apache.streampipes.model.graph.DataProcessorInvocation;
+import org.apache.streampipes.model.pipeline.Pipeline;
 import org.apache.streampipes.vocabulary.MessageFormat;
 
-import java.net.URI;
 import java.util.Arrays;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -58,11 +56,11 @@ public class TestUtils {
 	
 	public static Pipeline makePipeline(SemanticEventProducerDeclarer producer, EventStreamDeclarer stream, SemanticEventProcessingAgentDeclarer agent) {
 		DataSourceDescription dataSourceDescription = new DataSourceDescription(producer.declareModel());
-		dataSourceDescription.setRdfId(new SupportsRdfId.URIKey(URI.create("http://www.schema.org/test1")));
+		dataSourceDescription.setElementId("http://www.schema.org/test1");
 		SpDataStream offer = stream.declareModel(dataSourceDescription);
-		offer.setRdfId(new SupportsRdfId.URIKey(URI.create("http://www.schema.org/test2")));
+		offer.setElementId("http://www.schema.org/test2");
 		DataProcessorDescription requirement = (agent.declareModel());
-		requirement.setRdfId(new SupportsRdfId.URIKey(URI.create("http://www.schema.org/test3")));
+		requirement.setElementId("http://www.schema.org/test3");
 		Pipeline pipeline = new Pipeline();
 		SpDataStream offeredClientModel = offer;
 		offeredClientModel.setDOM("A");
diff --git a/streampipes-rest/src/test/java/org/apache/streampipes/rest/util/JsonLdUtilsTest.java b/streampipes-rest/src/test/java/org/apache/streampipes/rest/util/JsonLdUtilsTest.java
index 7ca7cd2..750340f 100644
--- a/streampipes-rest/src/test/java/org/apache/streampipes/rest/util/JsonLdUtilsTest.java
+++ b/streampipes-rest/src/test/java/org/apache/streampipes/rest/util/JsonLdUtilsTest.java
@@ -88,7 +88,7 @@ public class JsonLdUtilsTest {
     }
 
     @Test
-    public void jsonldSeriaulizing() {
+    public void jsonldSerializing() {
         StaticPropertyGroup group = new StaticPropertyGroup();
         group.setElementId("http://test");
         List<StaticProperty> staticProperties = new ArrayList<>();
diff --git a/streampipes-sdk/src/main/java/org/apache/streampipes/sdk/helpers/EpProperties.java b/streampipes-sdk/src/main/java/org/apache/streampipes/sdk/helpers/EpProperties.java
index 9e3fb18..49ad77b 100644
--- a/streampipes-sdk/src/main/java/org/apache/streampipes/sdk/helpers/EpProperties.java
+++ b/streampipes-sdk/src/main/java/org/apache/streampipes/sdk/helpers/EpProperties.java
@@ -29,7 +29,6 @@ import org.apache.streampipes.model.schema.QuantitativeValue;
 import org.apache.streampipes.sdk.utils.Datatypes;
 import org.apache.streampipes.vocabulary.SPSensor;
 import org.apache.streampipes.vocabulary.XSD;
-import org.eclipse.rdf4j.model.vocabulary.SP;
 
 import java.net.URI;
 import java.util.ArrayList;
diff --git a/streampipes-serializers-jsonld/pom.xml b/streampipes-serializers-jsonld/pom.xml
index 8b0430f..9b8195f 100644
--- a/streampipes-serializers-jsonld/pom.xml
+++ b/streampipes-serializers-jsonld/pom.xml
@@ -47,6 +47,10 @@
             <artifactId>empire-pinto</artifactId>
         </dependency>
         <dependency>
+            <groupId>org.apache.httpcomponents</groupId>
+            <artifactId>httpclient-osgi</artifactId>
+        </dependency>
+        <dependency>
             <groupId>org.eclipse.rdf4j</groupId>
             <artifactId>rdf4j-rio-api</artifactId>
         </dependency>
diff --git a/streampipes-serializers-jsonld/src/main/java/org/apache/streampipes/serializers/jsonld/JsonLdUtils.java b/streampipes-serializers-jsonld/src/main/java/org/apache/streampipes/serializers/jsonld/JsonLdUtils.java
index b117ca7..025719c 100644
--- a/streampipes-serializers-jsonld/src/main/java/org/apache/streampipes/serializers/jsonld/JsonLdUtils.java
+++ b/streampipes-serializers-jsonld/src/main/java/org/apache/streampipes/serializers/jsonld/JsonLdUtils.java
@@ -18,6 +18,7 @@
 package org.apache.streampipes.serializers.jsonld;
 
 import org.eclipse.rdf4j.model.Model;
+import org.eclipse.rdf4j.model.Statement;
 import org.eclipse.rdf4j.rio.RDFFormat;
 import org.eclipse.rdf4j.rio.RDFHandlerException;
 import org.eclipse.rdf4j.rio.RDFWriter;
@@ -35,13 +36,7 @@ public class JsonLdUtils {
     OutputStream stream = new ByteArrayOutputStream();
 
     RDFWriter writer = getRioWriter(stream);
-
-    Rio.write(model, writer);
-    return stream.toString();
-  }
-
-  private static RDFWriter getRioWriter(OutputStream stream) throws RDFHandlerException {
-    RDFWriter writer = Rio.createWriter(RDFFormat.JSONLD, stream);
+    writer.startRDF();
 
     writer.handleNamespace("sp", "https://streampipes.org/vocabulary/v1/");
     writer.handleNamespace("ssn", "http://purl.oclc.org/NET/ssnx/ssn#");
@@ -49,6 +44,18 @@ public class JsonLdUtils {
     writer.handleNamespace("empire", "urn:clarkparsia.com:empire:");
     writer.handleNamespace("spi", "urn:streampipes.org:spi:");
 
+    for(Statement st : model) {
+      writer.handleStatement(st);
+    }
+
+    writer.endRDF();
+
+    return stream.toString();
+  }
+
+  private static RDFWriter getRioWriter(OutputStream stream) throws RDFHandlerException {
+    RDFWriter writer = Rio.createWriter(RDFFormat.JSONLD, stream);
+
     writer.getWriterConfig().set(JSONLDSettings.JSONLD_MODE, JSONLDMode.COMPACT);
     writer.getWriterConfig().set(JSONLDSettings.OPTIMIZE, true);
     writer.getWriterConfig().set(BasicWriterSettings.PRETTY_PRINT, true);
diff --git a/streampipes-storage-api/pom.xml b/streampipes-storage-api/pom.xml
index 7ce54fe..fc92b16 100644
--- a/streampipes-storage-api/pom.xml
+++ b/streampipes-storage-api/pom.xml
@@ -41,5 +41,13 @@
         </dependency>
 
         <!-- External dependencies -->
+        <dependency>
+            <groupId>org.eclipse.rdf4j</groupId>
+            <artifactId>rdf4j-query</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.rdf4j</groupId>
+            <artifactId>rdf4j-repository-api</artifactId>
+        </dependency>
     </dependencies>
 </project>
\ No newline at end of file
diff --git a/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/dao/AbstractDao.java b/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/dao/AbstractDao.java
index 282fe7d..fc765f2 100644
--- a/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/dao/AbstractDao.java
+++ b/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/dao/AbstractDao.java
@@ -17,8 +17,8 @@
  */
 package org.apache.streampipes.storage.couchdb.dao;
 
+import org.apache.streampipes.model.Tuple2;
 import org.lightcouch.CouchDbClient;
-import org.mapdb.Fun;
 
 import java.util.List;
 import java.util.Optional;
@@ -34,8 +34,8 @@ public class AbstractDao<T> {
     this.clazz = clazz;
   }
 
-  public Fun.Tuple2<Boolean, String> persist(T objToPersist) {
-    DbCommand<Fun.Tuple2<Boolean, String>, T> cmd = new PersistCommand<>(couchDbClientSupplier,
+  public Tuple2<Boolean, String> persist(T objToPersist) {
+    DbCommand<Tuple2<Boolean, String>, T> cmd = new PersistCommand<>(couchDbClientSupplier,
             objToPersist,
             clazz);
     return cmd.execute();
diff --git a/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/dao/PersistCommand.java b/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/dao/PersistCommand.java
index 28d8315..4cf077d 100644
--- a/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/dao/PersistCommand.java
+++ b/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/dao/PersistCommand.java
@@ -17,13 +17,13 @@
  */
 package org.apache.streampipes.storage.couchdb.dao;
 
+import org.apache.streampipes.model.Tuple2;
 import org.lightcouch.CouchDbClient;
 import org.lightcouch.Response;
-import org.mapdb.Fun;
 
 import java.util.function.Supplier;
 
-public class PersistCommand<T> extends DbCommand<Fun.Tuple2<Boolean, String>, T> {
+public class PersistCommand<T> extends DbCommand<Tuple2<Boolean, String>, T> {
 
   private T objectToPersist;
 
@@ -33,10 +33,10 @@ public class PersistCommand<T> extends DbCommand<Fun.Tuple2<Boolean, String>, T>
   }
 
   @Override
-  protected Fun.Tuple2<Boolean, String> executeCommand(CouchDbClient couchDbClient) {
+  protected Tuple2<Boolean, String> executeCommand(CouchDbClient couchDbClient) {
     Response response = couchDbClient.save(objectToPersist);
 
-    return new Fun.Tuple2<>(response.getError() == null, response.getId());
+    return new Tuple2<>(response.getError() == null, response.getId());
 
   }
 }