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:23 UTC

[incubator-streampipes] branch dev updated (bba1ac8 -> 806a674)

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

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


    from bba1ac8  [STREAMPIPES-268] Bump Spring Boot version to 2.4.1 and Spring version to 5.3.2
     new 919486f  [STREAMPIPES-269] Use JSON for container-core serialization
     new 3914cf4  [STREAMPIPES-269] Split streampipes-serializers into separate modules for JSON and JSON-LD serialization
     new f020e2a  [STREAMPIPES-269] Remove JSON-LD serializer from container modules
     new 806a674  [STREAMPIPES-269] Isolate empire dependencies, bump empire version to 1.9.14

The 4 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 pom.xml                                            |  24 ++-
 .../backend/StreamPipesResourceConfig.java         |   1 +
 streampipes-code-generation/pom.xml                |   9 ++
 streampipes-commons/pom.xml                        |   8 -
 .../java/org/apache/streampipes/commons/Utils.java |  36 -----
 .../master/management/AdapterMasterManagement.java |  15 +-
 .../container/master/rest/SourcesResource.java     |  33 ++--
 .../connect/container/worker/utils/Utils.java      |  38 +----
 streampipes-connect-container/pom.xml              |   2 +-
 .../connect/init/AdapterContainerConfig.java       |   4 +-
 .../connect/management/AdapterDeserializer.java    |  41 -----
 .../connect/management/AdapterUtilsTest.java       |   2 +-
 .../utils/ConnectContainerResourceTest.java        | 175 ---------------------
 streampipes-connect/pom.xml                        |   2 +-
 .../extensions/ExtensionsResourceConfig.java       |   9 +-
 .../PipelineElementContainerResourceConfig.java    |  19 +--
 streampipes-container/pom.xml                      |   8 +-
 ...t.java => AbstractPipelineElementResource.java} | 118 +++++++-------
 ...a => DataProcessorPipelineElementResource.java} |  10 +-
 ...t.java => DataSinkPipelineElementResource.java} |  50 +-----
 ...java => DataSourcePipelineElementResource.java} |  53 +++----
 ....java => InvocablePipelineElementResource.java} |  56 +++----
 ...t.java => PipelineElementTemplateResource.java} |   5 +-
 .../container/init/DeclarersSingleton.java         |  16 +-
 .../container/transform/Transformer.java           |  49 ------
 .../streampipes/container/util/DeclarerUtils.java  |  46 ------
 .../apache/streampipes/container/util/Util.java    |  13 --
 .../org/streampipes/container/util/UtilTest.java   |  46 ------
 streampipes-model/pom.xml                          |  12 +-
 .../org/apache/streampipes/model/Response.java     |  30 ++--
 .../java/org/apache/streampipes/model}/Tuple2.java |   2 +-
 .../model/base/AbstractStreamPipesEntity.java      |  27 +++-
 .../model/base/NamedStreamPipesEntity.java         |  17 --
 .../model/base/UnnamedStreamPipesEntity.java       |  17 --
 .../apache/streampipes/model/util/ModelUtils.java  |  14 --
 .../org/apache/streampipes/model/ResponseTest.java |  45 ------
 streampipes-pipeline-management/pom.xml            |   5 +
 .../manager/endpoint/EndpointItemFetcher.java      |  14 +-
 .../manager/endpoint/EndpointItemParser.java       |  20 ++-
 .../manager/execution/http/HttpRequestBuilder.java |  27 ++--
 .../matching/output/ListOutputSchemaGenerator.java |   4 +-
 .../matching/output/PropertyDuplicateRemover.java  |   8 +-
 .../manager/verification/ElementVerifier.java      |  22 ++-
 .../manager/verification/SepVerifier.java          |   5 +-
 .../verification/extractor/TypeExtractor.java      |  63 ++++----
 .../streampipes/manager/matching/v2/TestUtils.java |  16 +-
 streampipes-rest-shared/pom.xml                    |   2 +-
 .../rest/shared/annotation/JsonLdSerialized.java   |  30 ----
 .../rest/shared/annotation/RdfRootElement.java     |  32 ----
 .../streampipes/rest/shared/util/SpMediaType.java  |   5 +-
 streampipes-rest/pom.xml                           |  10 ++
 .../rest/impl/AbstractRestInterface.java           |  16 +-
 .../apache/streampipes/rest/impl/Deployment.java   |  32 ++--
 .../rest}/serializer/JsonLdProvider.java           |   4 +-
 .../apache/streampipes/rest}/util/JsonLdUtils.java |   7 +-
 .../streampipes/rest}/util/JsonLdUtilsTest.java    |   4 +-
 .../streampipes/sdk/helpers/EpProperties.java      |   1 -
 .../pom.xml                                        |  13 +-
 .../serializers/json/AdapterSerializer.java        |   0
 .../serializers/json/AdapterTypeAdapter.java       |   0
 .../serializers/json/EcTypeAdapter.java            |   0
 .../serializers/json/EpaTypeAdapter.java           |   0
 .../serializers/json/GsonSerializer.java           |   0
 .../serializers/json/JacksonSerializer.java        |   0
 .../serializers/json/JsonLdSerializer.java         |   0
 .../serializers/json/PeTypeAdapter.java            |   0
 .../json/ProcessingElementSerializer.java          |   0
 .../serializers/json/RangeSerializer.java          |  34 ++--
 .../json/RuntimeTypeAdapterFactory.java            |   0
 .../json/TransformationRuleSerializer.java         |   0
 .../serializers/json/UriSerializer.java            |   0
 .../apache/streampipes/serializers/json/Utils.java |   0
 .../pom.xml                                        |  20 ++-
 .../jsonld/CustomAnnotationProvider.java           |   0
 .../serializers/jsonld/JsonLdTransformer.java      |   0
 .../serializers/jsonld/JsonLdUtils.java            |  52 ++----
 .../serializers/jsonld/RdfTransformer.java         |   0
 streampipes-storage-api/pom.xml                    |   8 +
 streampipes-storage-couchdb/pom.xml                |   2 +-
 .../storage/couchdb/dao/AbstractDao.java           |   6 +-
 .../storage/couchdb/dao/PersistCommand.java        |   8 +-
 streampipes-storage-rdf4j/pom.xml                  |   2 +-
 82 files changed, 419 insertions(+), 1105 deletions(-)
 delete mode 100644 streampipes-connect-container/src/main/java/org/apache/streampipes/connect/management/AdapterDeserializer.java
 delete mode 100644 streampipes-connect-container/src/test/java/org/streampipes/connect/utils/ConnectContainerResourceTest.java
 rename streampipes-container/src/main/java/org/apache/streampipes/container/api/{Element.java => AbstractPipelineElementResource.java} (78%)
 rename streampipes-container/src/main/java/org/apache/streampipes/container/api/{SepaElement.java => DataProcessorPipelineElementResource.java} (91%)
 rename streampipes-container/src/main/java/org/apache/streampipes/container/api/{SecElement.java => DataSinkPipelineElementResource.java} (54%)
 rename streampipes-container/src/main/java/org/apache/streampipes/container/api/{SepElement.java => DataSourcePipelineElementResource.java} (70%)
 rename streampipes-container/src/main/java/org/apache/streampipes/container/api/{InvocableElement.java => InvocablePipelineElementResource.java} (65%)
 rename streampipes-container/src/main/java/org/apache/streampipes/container/api/{PipelineTemplateElement.java => PipelineElementTemplateResource.java} (91%)
 delete mode 100644 streampipes-container/src/main/java/org/apache/streampipes/container/transform/Transformer.java
 delete mode 100644 streampipes-container/src/main/java/org/apache/streampipes/container/util/DeclarerUtils.java
 delete mode 100644 streampipes-container/src/test/java/org/streampipes/container/util/UtilTest.java
 copy {streampipes-sdk/src/main/java/org/apache/streampipes/sdk/helpers => streampipes-model/src/main/java/org/apache/streampipes/model}/Tuple2.java (96%)
 delete mode 100644 streampipes-model/src/test/java/org/apache/streampipes/model/ResponseTest.java
 delete mode 100644 streampipes-rest-shared/src/main/java/org/apache/streampipes/rest/shared/annotation/JsonLdSerialized.java
 delete mode 100644 streampipes-rest-shared/src/main/java/org/apache/streampipes/rest/shared/annotation/RdfRootElement.java
 rename {streampipes-rest-shared/src/main/java/org/apache/streampipes/rest/shared => streampipes-rest/src/main/java/org/apache/streampipes/rest}/serializer/JsonLdProvider.java (96%)
 rename {streampipes-rest-shared/src/main/java/org/apache/streampipes/rest/shared => streampipes-rest/src/main/java/org/apache/streampipes/rest}/util/JsonLdUtils.java (91%)
 rename {streampipes-rest-shared/src/test/java/org/apache/streampipes/rest/shared => streampipes-rest/src/test/java/org/apache/streampipes/rest}/util/JsonLdUtilsTest.java (97%)
 copy {streampipes-serializers => streampipes-serializers-json}/pom.xml (81%)
 rename {streampipes-serializers => streampipes-serializers-json}/src/main/java/org/apache/streampipes/serializers/json/AdapterSerializer.java (100%)
 rename {streampipes-serializers => streampipes-serializers-json}/src/main/java/org/apache/streampipes/serializers/json/AdapterTypeAdapter.java (100%)
 rename {streampipes-serializers => streampipes-serializers-json}/src/main/java/org/apache/streampipes/serializers/json/EcTypeAdapter.java (100%)
 rename {streampipes-serializers => streampipes-serializers-json}/src/main/java/org/apache/streampipes/serializers/json/EpaTypeAdapter.java (100%)
 rename {streampipes-serializers => streampipes-serializers-json}/src/main/java/org/apache/streampipes/serializers/json/GsonSerializer.java (100%)
 rename {streampipes-serializers => streampipes-serializers-json}/src/main/java/org/apache/streampipes/serializers/json/JacksonSerializer.java (100%)
 rename {streampipes-serializers => streampipes-serializers-json}/src/main/java/org/apache/streampipes/serializers/json/JsonLdSerializer.java (100%)
 rename {streampipes-serializers => streampipes-serializers-json}/src/main/java/org/apache/streampipes/serializers/json/PeTypeAdapter.java (100%)
 rename {streampipes-serializers => streampipes-serializers-json}/src/main/java/org/apache/streampipes/serializers/json/ProcessingElementSerializer.java (100%)
 rename {streampipes-serializers => streampipes-serializers-json}/src/main/java/org/apache/streampipes/serializers/json/RangeSerializer.java (67%)
 rename {streampipes-serializers => streampipes-serializers-json}/src/main/java/org/apache/streampipes/serializers/json/RuntimeTypeAdapterFactory.java (100%)
 rename {streampipes-serializers => streampipes-serializers-json}/src/main/java/org/apache/streampipes/serializers/json/TransformationRuleSerializer.java (100%)
 rename {streampipes-serializers => streampipes-serializers-json}/src/main/java/org/apache/streampipes/serializers/json/UriSerializer.java (100%)
 rename {streampipes-serializers => streampipes-serializers-json}/src/main/java/org/apache/streampipes/serializers/json/Utils.java (100%)
 rename {streampipes-serializers => streampipes-serializers-jsonld}/pom.xml (72%)
 rename {streampipes-serializers => streampipes-serializers-jsonld}/src/main/java/org/apache/streampipes/serializers/jsonld/CustomAnnotationProvider.java (100%)
 rename {streampipes-serializers => streampipes-serializers-jsonld}/src/main/java/org/apache/streampipes/serializers/jsonld/JsonLdTransformer.java (100%)
 copy streampipes-commons/src/main/java/org/apache/streampipes/commons/Utils.java => streampipes-serializers-jsonld/src/main/java/org/apache/streampipes/serializers/jsonld/JsonLdUtils.java (74%)
 rename {streampipes-serializers => streampipes-serializers-jsonld}/src/main/java/org/apache/streampipes/serializers/jsonld/RdfTransformer.java (100%)


[incubator-streampipes] 03/04: [STREAMPIPES-269] Remove JSON-LD serializer from container modules

Posted by ri...@apache.org.
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 f020e2a02f1b7a52cdc8797684545b8065b80e99
Author: Dominik Riemer <ri...@fzi.de>
AuthorDate: Tue Dec 29 22:29:29 2020 +0100

    [STREAMPIPES-269] Remove JSON-LD serializer from container modules
---
 .../backend/StreamPipesResourceConfig.java         |   1 +
 streampipes-commons/pom.xml                        |   8 -
 .../java/org/apache/streampipes/commons/Utils.java |  36 -----
 .../master/management/AdapterMasterManagement.java |  15 +-
 .../connect/init/AdapterContainerConfig.java       |   4 +-
 .../connect/management/AdapterDeserializer.java    |  41 -----
 .../utils/ConnectContainerResourceTest.java        | 175 ---------------------
 .../extensions/ExtensionsResourceConfig.java       |   1 -
 .../PipelineElementContainerResourceConfig.java    |   2 -
 .../api/DataSourcePipelineElementResource.java     |   3 +-
 streampipes-rest-shared/pom.xml                    |   5 -
 .../rest/shared/annotation/JsonLdSerialized.java   |  30 ----
 .../rest/shared/annotation/RdfRootElement.java     |  32 ----
 .../rest/impl/AbstractRestInterface.java           |   6 +-
 .../apache/streampipes/rest/impl/Deployment.java   |  32 ++--
 .../rest}/serializer/JsonLdProvider.java           |   4 +-
 .../apache/streampipes/rest}/util/JsonLdUtils.java |   7 +-
 .../streampipes/rest}/util/JsonLdUtilsTest.java    |   2 +-
 streampipes-serializers-json/pom.xml               |  17 ++
 streampipes-serializers-jsonld/pom.xml             |  25 +++
 .../serializers/jsonld/JsonLdUtils.java            |  33 +---
 21 files changed, 72 insertions(+), 407 deletions(-)

diff --git a/streampipes-backend/src/main/java/org/apache/streampipes/backend/StreamPipesResourceConfig.java b/streampipes-backend/src/main/java/org/apache/streampipes/backend/StreamPipesResourceConfig.java
index 6b921a9..0a62a4d 100644
--- a/streampipes-backend/src/main/java/org/apache/streampipes/backend/StreamPipesResourceConfig.java
+++ b/streampipes-backend/src/main/java/org/apache/streampipes/backend/StreamPipesResourceConfig.java
@@ -30,6 +30,7 @@ import org.apache.streampipes.rest.impl.datalake.DataLakeWidgetResource;
 import org.apache.streampipes.rest.impl.nouser.FileServingResource;
 import org.apache.streampipes.rest.impl.nouser.PipelineElementImportNoUser;
 import org.apache.streampipes.rest.impl.nouser.PipelineNoUserResource;
+import org.apache.streampipes.rest.serializer.JsonLdProvider;
 import org.apache.streampipes.rest.shared.serializer.*;
 import org.glassfish.jersey.media.multipart.MultiPartFeature;
 import org.glassfish.jersey.server.ResourceConfig;
diff --git a/streampipes-commons/pom.xml b/streampipes-commons/pom.xml
index a7bae77..1c700f6 100644
--- a/streampipes-commons/pom.xml
+++ b/streampipes-commons/pom.xml
@@ -43,13 +43,5 @@
             <groupId>ch.qos.logback</groupId>
             <artifactId>logback-classic</artifactId>
         </dependency>
-        <dependency>
-            <groupId>org.eclipse.rdf4j</groupId>
-            <artifactId>rdf4j-rio-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.eclipse.rdf4j</groupId>
-            <artifactId>rdf4j-model</artifactId>
-        </dependency>
     </dependencies>
 </project>
\ No newline at end of file
diff --git a/streampipes-commons/src/main/java/org/apache/streampipes/commons/Utils.java b/streampipes-commons/src/main/java/org/apache/streampipes/commons/Utils.java
index f245b1e..a94e612 100644
--- a/streampipes-commons/src/main/java/org/apache/streampipes/commons/Utils.java
+++ b/streampipes-commons/src/main/java/org/apache/streampipes/commons/Utils.java
@@ -19,17 +19,7 @@
 package org.apache.streampipes.commons;
 
 import org.apache.commons.lang.RandomStringUtils;
-import org.eclipse.rdf4j.model.Model;
-import org.eclipse.rdf4j.rio.RDFFormat;
-import org.eclipse.rdf4j.rio.RDFHandlerException;
-import org.eclipse.rdf4j.rio.RDFWriter;
-import org.eclipse.rdf4j.rio.Rio;
-import org.eclipse.rdf4j.rio.helpers.BasicWriterSettings;
-import org.eclipse.rdf4j.rio.helpers.JSONLDMode;
-import org.eclipse.rdf4j.rio.helpers.JSONLDSettings;
 
-import java.io.ByteArrayOutputStream;
-import java.io.OutputStream;
 import java.net.URI;
 import java.util.ArrayList;
 import java.util.Collections;
@@ -56,30 +46,4 @@ public class Utils {
     return RandomStringUtils.randomAlphabetic(10);
   }
 
-  public static String asString(Model model) throws RDFHandlerException {
-    OutputStream stream = new ByteArrayOutputStream();
-
-    RDFWriter writer = Utils.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.handleNamespace("sp", "https://streampipes.org/vocabulary/v1/");
-    writer.handleNamespace("ssn", "http://purl.oclc.org/NET/ssnx/ssn#");
-    writer.handleNamespace("xsd", "http://www.w3.org/2001/XMLSchema#");
-    writer.handleNamespace("empire", "urn:clarkparsia.com:empire:");
-    writer.handleNamespace("spi", "urn:streampipes.org:spi:");
-
-    writer.getWriterConfig().set(JSONLDSettings.JSONLD_MODE, JSONLDMode.COMPACT);
-    writer.getWriterConfig().set(JSONLDSettings.OPTIMIZE, true);
-    writer.getWriterConfig().set(BasicWriterSettings.PRETTY_PRINT, true);
-
-    return writer;
-  }
-
 }
diff --git a/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/management/AdapterMasterManagement.java b/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/management/AdapterMasterManagement.java
index c99f6b0..37e1686 100644
--- a/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/management/AdapterMasterManagement.java
+++ b/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/management/AdapterMasterManagement.java
@@ -20,8 +20,6 @@ package org.apache.streampipes.connect.container.master.management;
 
 import org.apache.http.client.fluent.Form;
 import org.apache.http.client.fluent.Request;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 import org.apache.streampipes.connect.adapter.GroundingService;
 import org.apache.streampipes.connect.adapter.exception.AdapterException;
 import org.apache.streampipes.connect.config.ConnectContainerConfig;
@@ -32,8 +30,9 @@ import org.apache.streampipes.model.connect.adapter.AdapterStreamDescription;
 import org.apache.streampipes.model.connect.worker.ConnectWorkerContainer;
 import org.apache.streampipes.model.grounding.EventGrounding;
 import org.apache.streampipes.model.util.Cloner;
-import org.apache.streampipes.rest.shared.util.JsonLdUtils;
 import org.apache.streampipes.storage.couchdb.impl.AdapterStorageImpl;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.io.IOException;
 import java.util.List;
@@ -205,14 +204,4 @@ public class AdapterMasterManagement {
     return ad instanceof AdapterStreamDescription;
   }
 
-  private static <T> String toJsonLd(T object) {
-    JsonLdUtils.toJsonLD(object);
-    String s = JsonLdUtils.toJsonLD(object);
-
-    if (s == null) {
-      LOG.error("Could not serialize Object " + object + " into json ld");
-    }
-
-    return s;
-  }
 }
diff --git a/streampipes-connect-container/src/main/java/org/apache/streampipes/connect/init/AdapterContainerConfig.java b/streampipes-connect-container/src/main/java/org/apache/streampipes/connect/init/AdapterContainerConfig.java
index 0af1f5f..02a7f33 100644
--- a/streampipes-connect-container/src/main/java/org/apache/streampipes/connect/init/AdapterContainerConfig.java
+++ b/streampipes-connect-container/src/main/java/org/apache/streampipes/connect/init/AdapterContainerConfig.java
@@ -18,11 +18,10 @@
 
 package org.apache.streampipes.connect.init;
 
-import org.glassfish.jersey.server.ResourceConfig;
 import org.apache.streampipes.rest.shared.serializer.GsonClientModelProvider;
 import org.apache.streampipes.rest.shared.serializer.GsonWithIdProvider;
 import org.apache.streampipes.rest.shared.serializer.GsonWithoutIdProvider;
-import org.apache.streampipes.rest.shared.serializer.JsonLdProvider;
+import org.glassfish.jersey.server.ResourceConfig;
 
 public abstract class AdapterContainerConfig extends ResourceConfig {
 
@@ -30,6 +29,5 @@ public abstract class AdapterContainerConfig extends ResourceConfig {
     register(GsonWithIdProvider.class);
     register(GsonWithoutIdProvider.class);
     register(GsonClientModelProvider.class);
-    register(JsonLdProvider.class);
   }
 }
diff --git a/streampipes-connect-container/src/main/java/org/apache/streampipes/connect/management/AdapterDeserializer.java b/streampipes-connect-container/src/main/java/org/apache/streampipes/connect/management/AdapterDeserializer.java
deleted file mode 100644
index 37ed6c4..0000000
--- a/streampipes-connect-container/src/main/java/org/apache/streampipes/connect/management/AdapterDeserializer.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.streampipes.connect.management;
-
-import org.apache.streampipes.connect.adapter.exception.AdapterException;
-import org.apache.streampipes.model.connect.adapter.*;
-import org.apache.streampipes.rest.shared.util.JsonLdUtils;
-
-public class AdapterDeserializer {
-
-    public static AdapterDescription getAdapterDescription(String jsonld) throws AdapterException {
-        if (jsonld.contains("SpecificAdapterSetDescription")) {
-            return JsonLdUtils.fromJsonLd(jsonld, SpecificAdapterSetDescription.class);
-        } else if (jsonld.contains("SpecificAdapterStreamDescription")) {
-            return JsonLdUtils.fromJsonLd(jsonld, SpecificAdapterStreamDescription.class);
-        } else if (jsonld.contains("GenericAdapterSetDescription")) {
-            return JsonLdUtils.fromJsonLd(jsonld, GenericAdapterSetDescription.class);
-        } else if (jsonld.contains("GenericAdapterStreamDescription")) {
-            return JsonLdUtils.fromJsonLd(jsonld, GenericAdapterStreamDescription.class);
-        } else {
-            throw new AdapterException("Adapter type not registerd");
-        }
-
-    }
-}
diff --git a/streampipes-connect-container/src/test/java/org/streampipes/connect/utils/ConnectContainerResourceTest.java b/streampipes-connect-container/src/test/java/org/streampipes/connect/utils/ConnectContainerResourceTest.java
deleted file mode 100644
index 1a9ac65..0000000
--- a/streampipes-connect-container/src/test/java/org/streampipes/connect/utils/ConnectContainerResourceTest.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.streampipes.connect.utils;
-
-import static com.jayway.restassured.RestAssured.given;
-import static org.hamcrest.core.IsEqual.equalTo;
-
-import com.jayway.restassured.response.Response;
-import com.jayway.restassured.response.ValidatableResponseOptions;
-import org.eclipse.jetty.server.Server;
-import org.glassfish.jersey.server.ResourceConfig;
-import org.apache.streampipes.connect.rest.AbstractContainerResource;
-import org.apache.streampipes.rest.shared.serializer.GsonClientModelProvider;
-import org.apache.streampipes.rest.shared.serializer.GsonWithIdProvider;
-import org.apache.streampipes.rest.shared.serializer.GsonWithoutIdProvider;
-import org.apache.streampipes.rest.shared.serializer.JsonLdProvider;
-import org.apache.streampipes.rest.shared.util.JsonLdUtils;
-
-import java.net.URI;
-
-import javax.ws.rs.core.UriBuilder;
-
-public abstract class ConnectContainerResourceTest {
-
-    protected static final String ERROR_MESSAGE = "error";
-
-    protected Server getMasterServer(AbstractContainerResource resource) {
-        return getServer(resource, "http://localhost:8099");
-    }
-
-    protected Server getWorkerServer(AbstractContainerResource resource) {
-        return getServer(resource, "http://localhost:8099");
-
-    }
-
-    private Server getServer(AbstractContainerResource resource, String url) {
-
-         ResourceConfig config = new ResourceConfig()
-                .register(GsonWithIdProvider.class)
-                .register(GsonWithoutIdProvider.class)
-                .register(GsonClientModelProvider.class)
-                .register(JsonLdProvider.class)
-                .register(resource);
-
-        URI baseUri = UriBuilder
-                .fromUri(url)
-                .build();
-
-        //TODO after ref
-        // return JettyHttpContainerFactory.createServer(baseUri, config);
-        return null;
-    }
-
-
-    protected abstract String getApi();
-
-    protected <T> T getJsonLdSucessRequest(String route, Class<T> clazz) {
-        return getJsonLdSucessRequest(route, clazz, "");
-
-    }
-
-    protected <T> T getJsonLdSucessRequest(String route, Class<T> clazz, String rootElement) {
-        Response response = given().contentType("application/ld+json")
-                .when()
-                .get(getApi() + route);
-
-        response.then()
-                .statusCode(200);
-
-        String resultString = response.body().print();
-
-        T resultObject;
-        if ("".equals(rootElement)) {
-            resultObject = JsonLdUtils.fromJsonLd(resultString, clazz);
-        } else {
-            resultObject = JsonLdUtils.fromJsonLd(resultString, clazz, rootElement);
-        }
-
-        return resultObject;
-
-    }
-
-    protected void getJsonLdFailRequest(String route) {
-        given().contentType("application/ld+json")
-                .when()
-                .get(getApi() + route)
-                .then()
-                .statusCode(500);
-
-    }
-
-    protected  void deleteJsonLdSucessRequest(String route) {
-        Response response = given().contentType("application/ld+json")
-                .when()
-                .delete(getApi() + route);
-
-        response.then()
-                .statusCode(200);
-    }
-
-    protected  void deleteJsonLdFailRequest(String route) {
-        Response response = given().contentType("application/ld+json")
-                .when()
-                .delete(getApi() + route);
-
-        response.then()
-                .statusCode(500);
-    }
-
-    protected ValidatableResponseOptions postJsonLdSuccessRequest(String data, String route, String responseMessage) {
-        return  postJsonLdRequest(data, route)
-                .body("success", equalTo(true))
-                .body("notifications[0].title", equalTo(responseMessage));
-    }
-
-    protected ValidatableResponseOptions postJsonLdFailRequest(String data, String route) {
-        return  postJsonLdFailRequest(data, route, ERROR_MESSAGE);
-    }
-
-    protected ValidatableResponseOptions postJsonLdFailRequest(String data, String route, String errorMessage) {
-        return  postJsonLdRequest(data, route)
-                .body("success", equalTo(false))
-                .body("notifications[0].title", equalTo(errorMessage));
-    }
-    protected ValidatableResponseOptions postJsonLdRequest(String data, String route) {
-        return given().contentType("application/ld+json")
-                .body(data)
-                .when()
-                .post(getApi() + route)
-                .then()
-                .assertThat()
-                .statusCode(200);
-    }
-
-    protected ValidatableResponseOptions postJsonSuccessRequest(String data, String route, String responseMessage) {
-        return  postJsonRequest(data, route)
-                .body("success", equalTo(true))
-                .body("notifications[0].title", equalTo(responseMessage));
-    }
-
-    protected ValidatableResponseOptions postJsonFailRequest(String data, String route) {
-        return  postJsonFailRequest(data, route, ERROR_MESSAGE);
-    }
-
-    protected ValidatableResponseOptions postJsonFailRequest(String data, String route, String errorMessage) {
-        return  postJsonRequest(data, route)
-                .body("success", equalTo(false))
-                .body("notifications[0].title", equalTo(errorMessage));
-    }
-    protected ValidatableResponseOptions postJsonRequest(String data, String route) {
-        return given().contentType("application/json")
-                .body(data)
-                .when()
-                .post(getApi() + route)
-                .then()
-                .assertThat()
-                .statusCode(200);
-    }
-}
diff --git a/streampipes-container-extensions/src/main/java/org/apache/streampipes/container/extensions/ExtensionsResourceConfig.java b/streampipes-container-extensions/src/main/java/org/apache/streampipes/container/extensions/ExtensionsResourceConfig.java
index 0c48ef4..f595dd1 100644
--- a/streampipes-container-extensions/src/main/java/org/apache/streampipes/container/extensions/ExtensionsResourceConfig.java
+++ b/streampipes-container-extensions/src/main/java/org/apache/streampipes/container/extensions/ExtensionsResourceConfig.java
@@ -43,7 +43,6 @@ public class ExtensionsResourceConfig extends ResourceConfig {
         register(GsonWithIdProvider.class);
         register(GsonWithoutIdProvider.class);
         register(GsonClientModelProvider.class);
-        register(JsonLdProvider.class);
         register(JacksonSerializationProvider.class);
     }
 }
diff --git a/streampipes-container-standalone/src/main/java/org/apache/streampipes/container/standalone/init/PipelineElementContainerResourceConfig.java b/streampipes-container-standalone/src/main/java/org/apache/streampipes/container/standalone/init/PipelineElementContainerResourceConfig.java
index 022a2c0..69ef3a9 100644
--- a/streampipes-container-standalone/src/main/java/org/apache/streampipes/container/standalone/init/PipelineElementContainerResourceConfig.java
+++ b/streampipes-container-standalone/src/main/java/org/apache/streampipes/container/standalone/init/PipelineElementContainerResourceConfig.java
@@ -19,7 +19,6 @@ package org.apache.streampipes.container.standalone.init;
 
 import org.apache.streampipes.container.api.*;
 import org.apache.streampipes.rest.shared.serializer.JacksonSerializationProvider;
-import org.apache.streampipes.rest.shared.serializer.JsonLdProvider;
 import org.glassfish.jersey.server.ResourceConfig;
 import org.springframework.stereotype.Component;
 
@@ -33,7 +32,6 @@ public class PipelineElementContainerResourceConfig extends ResourceConfig {
     register(WelcomePage.class);
     register(PipelineElementTemplateResource.class);
 
-    register(JsonLdProvider.class);
     register(JacksonSerializationProvider.class);
   }
 }
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 549e205..c6afdc1 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
@@ -28,7 +28,6 @@ import org.apache.streampipes.model.Response;
 import org.apache.streampipes.model.SpDataSet;
 import org.apache.streampipes.model.SpDataStream;
 import org.apache.streampipes.model.graph.DataSourceDescription;
-import org.apache.streampipes.rest.shared.util.SpMediaType;
 import org.apache.streampipes.serializers.json.JacksonSerializer;
 import org.eclipse.rdf4j.repository.RepositoryException;
 import org.eclipse.rdf4j.rio.RDFParseException;
@@ -49,7 +48,7 @@ public class DataSourcePipelineElementResource extends AbstractPipelineElementRe
 
   @GET
   @Path("{sourceId}/{streamId}")
-  @Produces({MediaType.APPLICATION_JSON, SpMediaType.JSONLD})
+  @Produces(MediaType.APPLICATION_JSON)
   public javax.ws.rs.core.Response getDescription(@PathParam("sourceId") String sourceId, @PathParam("streamId") String streamId) {
     Optional<SpDataStream> stream = getStreamBySourceId(sourceId, streamId);
     if (stream.isPresent()) {
diff --git a/streampipes-rest-shared/pom.xml b/streampipes-rest-shared/pom.xml
index 42d11e7..b478757 100644
--- a/streampipes-rest-shared/pom.xml
+++ b/streampipes-rest-shared/pom.xml
@@ -45,11 +45,6 @@
 			<artifactId>streampipes-serializers-json</artifactId>
 			<version>0.68.0-SNAPSHOT</version>
 		</dependency>
-		<dependency>
-			<groupId>org.apache.streampipes</groupId>
-			<artifactId>streampipes-serializers-jsonld</artifactId>
-			<version>0.68.0-SNAPSHOT</version>
-		</dependency>
 
 		<!-- External dependencies -->
 		<dependency>
diff --git a/streampipes-rest-shared/src/main/java/org/apache/streampipes/rest/shared/annotation/JsonLdSerialized.java b/streampipes-rest-shared/src/main/java/org/apache/streampipes/rest/shared/annotation/JsonLdSerialized.java
deleted file mode 100644
index 0e851d6..0000000
--- a/streampipes-rest-shared/src/main/java/org/apache/streampipes/rest/shared/annotation/JsonLdSerialized.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.streampipes.rest.shared.annotation;
-
-import javax.ws.rs.NameBinding;
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-@NameBinding
-@Target({ElementType.TYPE, ElementType.METHOD})
-@Retention(RetentionPolicy.RUNTIME)
-public @interface JsonLdSerialized {
-}
diff --git a/streampipes-rest-shared/src/main/java/org/apache/streampipes/rest/shared/annotation/RdfRootElement.java b/streampipes-rest-shared/src/main/java/org/apache/streampipes/rest/shared/annotation/RdfRootElement.java
deleted file mode 100644
index 573d13d..0000000
--- a/streampipes-rest-shared/src/main/java/org/apache/streampipes/rest/shared/annotation/RdfRootElement.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.streampipes.rest.shared.annotation;
-
-import javax.ws.rs.NameBinding;
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-@NameBinding
-@Target({ElementType.TYPE, ElementType.METHOD})
-@Retention(RetentionPolicy.RUNTIME)
-public @interface RdfRootElement {
-    String value();
-}
diff --git a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/AbstractRestInterface.java b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/AbstractRestInterface.java
index cbab8c3..f44dd57 100644
--- a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/AbstractRestInterface.java
+++ b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/AbstractRestInterface.java
@@ -22,7 +22,6 @@ import io.fogsy.empire.core.empire.annotation.InvalidRdfException;
 import org.apache.http.client.ClientProtocolException;
 import org.apache.shiro.SecurityUtils;
 import org.apache.shiro.authc.AuthenticationException;
-import org.apache.streampipes.commons.Utils;
 import org.apache.streampipes.manager.endpoint.HttpJsonParser;
 import org.apache.streampipes.manager.storage.UserManagementService;
 import org.apache.streampipes.manager.storage.UserService;
@@ -32,6 +31,7 @@ import org.apache.streampipes.model.message.Notification;
 import org.apache.streampipes.model.message.*;
 import org.apache.streampipes.serializers.json.GsonSerializer;
 import org.apache.streampipes.serializers.jsonld.JsonLdTransformer;
+import org.apache.streampipes.serializers.jsonld.JsonLdUtils;
 import org.apache.streampipes.storage.api.*;
 import org.apache.streampipes.storage.management.StorageDispatcher;
 import org.apache.streampipes.storage.management.StorageManager;
@@ -49,7 +49,7 @@ public abstract class AbstractRestInterface {
 
   protected <T> String toJsonLd(T object) {
     try {
-      return Utils.asString(new JsonLdTransformer().toJsonLd(object));
+      return JsonLdUtils.asString(new JsonLdTransformer().toJsonLd(object));
     } catch (RDFHandlerException | IllegalArgumentException
             | IllegalAccessException | SecurityException | InvocationTargetException
             | ClassNotFoundException | InvalidRdfException e) {
@@ -61,7 +61,7 @@ public abstract class AbstractRestInterface {
 
   protected <T> String toJsonLd(String rootElementUri, T object) {
     try {
-      return Utils.asString(new JsonLdTransformer(rootElementUri).toJsonLd(object));
+      return JsonLdUtils.asString(new JsonLdTransformer(rootElementUri).toJsonLd(object));
     } catch (IllegalAccessException | InvocationTargetException | InvalidRdfException | ClassNotFoundException e) {
       return toJson(constructErrorMessage(new Notification(NotificationType.UNKNOWN_ERROR.title(),
               NotificationType.UNKNOWN_ERROR.description(),
diff --git a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/Deployment.java b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/Deployment.java
index 3d9e968..952faf8 100644
--- a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/Deployment.java
+++ b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/Deployment.java
@@ -18,36 +18,30 @@
 
 package org.apache.streampipes.rest.impl;
 
-import org.eclipse.rdf4j.rio.RDFHandlerException;
-import org.glassfish.jersey.media.multipart.FormDataParam;
+import io.fogsy.empire.core.empire.annotation.InvalidRdfException;
 import org.apache.streampipes.codegeneration.api.CodeGenerator;
-import org.apache.streampipes.commons.Utils;
 import org.apache.streampipes.commons.exceptions.SepaParseException;
-import io.fogsy.empire.core.empire.annotation.InvalidRdfException;
 import org.apache.streampipes.manager.operations.Operations;
 import org.apache.streampipes.model.base.NamedStreamPipesEntity;
 import org.apache.streampipes.model.client.deployment.DeploymentConfiguration;
 import org.apache.streampipes.model.client.deployment.ElementType;
-import org.apache.streampipes.model.message.Message;
-import org.apache.streampipes.model.message.Notifications;
+import org.apache.streampipes.model.graph.DataProcessorDescription;
 import org.apache.streampipes.model.graph.DataSinkDescription;
 import org.apache.streampipes.model.graph.DataSourceDescription;
-import org.apache.streampipes.model.graph.DataProcessorDescription;
-import org.apache.streampipes.serializers.jsonld.JsonLdTransformer;
+import org.apache.streampipes.model.message.Message;
+import org.apache.streampipes.model.message.Notifications;
 import org.apache.streampipes.serializers.json.GsonSerializer;
+import org.apache.streampipes.serializers.jsonld.JsonLdTransformer;
+import org.apache.streampipes.serializers.jsonld.JsonLdUtils;
 import org.apache.streampipes.storage.management.StorageManager;
+import org.eclipse.rdf4j.rio.RDFHandlerException;
+import org.glassfish.jersey.media.multipart.FormDataParam;
 
-import java.io.File;
-import java.lang.reflect.InvocationTargetException;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.WebApplicationException;
+import javax.ws.rs.*;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
+import java.io.File;
+import java.lang.reflect.InvocationTargetException;
 
 
 @Path("/v2/users/{username}/deploy")
@@ -99,7 +93,7 @@ public class Deployment extends AbstractRestInterface {
         DataSourceDescription sep = new DataSourceDescription(GsonSerializer.getGsonWithIds().fromJson(model, DataSourceDescription.class));
         try {
             Message message =
-                    Operations.verifyAndAddElement(Utils.asString(new JsonLdTransformer().toJsonLd(sep)), username, true, true);
+                    Operations.verifyAndAddElement(JsonLdUtils.asString(new JsonLdTransformer().toJsonLd(sep)), username, true, true);
             return ok(message);
         } catch (RDFHandlerException | IllegalAccessException
                 | IllegalArgumentException | InvocationTargetException
@@ -166,7 +160,7 @@ public class Deployment extends AbstractRestInterface {
         NamedStreamPipesEntity element = getElement(deploymentConfig, model);
 
         try {
-            return Response.ok(Utils.asString(new JsonLdTransformer().toJsonLd(element))).build();
+            return Response.ok(JsonLdUtils.asString(new JsonLdTransformer().toJsonLd(element))).build();
         } catch (RDFHandlerException | IllegalAccessException
                 | IllegalArgumentException | InvocationTargetException
                 | SecurityException | ClassNotFoundException
diff --git a/streampipes-rest-shared/src/main/java/org/apache/streampipes/rest/shared/serializer/JsonLdProvider.java b/streampipes-rest/src/main/java/org/apache/streampipes/rest/serializer/JsonLdProvider.java
similarity index 96%
rename from streampipes-rest-shared/src/main/java/org/apache/streampipes/rest/shared/serializer/JsonLdProvider.java
rename to streampipes-rest/src/main/java/org/apache/streampipes/rest/serializer/JsonLdProvider.java
index 6c5ab5f..eac1243 100644
--- a/streampipes-rest-shared/src/main/java/org/apache/streampipes/rest/shared/serializer/JsonLdProvider.java
+++ b/streampipes-rest/src/main/java/org/apache/streampipes/rest/serializer/JsonLdProvider.java
@@ -15,10 +15,10 @@
  * limitations under the License.
  *
  */
-package org.apache.streampipes.rest.shared.serializer;
+package org.apache.streampipes.rest.serializer;
 
 import org.apache.commons.io.IOUtils;
-import org.apache.streampipes.rest.shared.util.JsonLdUtils;
+import org.apache.streampipes.rest.util.JsonLdUtils;
 import org.apache.streampipes.rest.shared.util.SpMediaType;
 import org.apache.streampipes.serializers.jsonld.JsonLdTransformer;
 
diff --git a/streampipes-rest-shared/src/main/java/org/apache/streampipes/rest/shared/util/JsonLdUtils.java b/streampipes-rest/src/main/java/org/apache/streampipes/rest/util/JsonLdUtils.java
similarity index 91%
rename from streampipes-rest-shared/src/main/java/org/apache/streampipes/rest/shared/util/JsonLdUtils.java
rename to streampipes-rest/src/main/java/org/apache/streampipes/rest/util/JsonLdUtils.java
index f26cf9d..6097504 100644
--- a/streampipes-rest-shared/src/main/java/org/apache/streampipes/rest/shared/util/JsonLdUtils.java
+++ b/streampipes-rest/src/main/java/org/apache/streampipes/rest/util/JsonLdUtils.java
@@ -16,10 +16,9 @@
  *
  */
 
-package org.apache.streampipes.rest.shared.util;
+package org.apache.streampipes.rest.util;
 
 import io.fogsy.empire.core.empire.annotation.InvalidRdfException;
-import org.apache.streampipes.commons.Utils;
 import org.apache.streampipes.model.base.AbstractStreamPipesEntity;
 import org.apache.streampipes.model.base.StreamPipesJsonLdContainer;
 import org.apache.streampipes.serializers.jsonld.JsonLdTransformer;
@@ -39,10 +38,10 @@ public class JsonLdUtils {
         JsonLdTransformer jsonLdTransformer = new JsonLdTransformer();
         try {
             if (o instanceof List) {
-                return Utils.asString(createJsonLdContainer(jsonLdTransformer,
+                return org.apache.streampipes.serializers.jsonld.JsonLdUtils.asString(createJsonLdContainer(jsonLdTransformer,
                         (List<? extends AbstractStreamPipesEntity>) o));
             } else {
-                return Utils.asString(jsonLdTransformer.toJsonLd(o));
+                return org.apache.streampipes.serializers.jsonld.JsonLdUtils.asString(jsonLdTransformer.toJsonLd(o));
             }
         } catch (IllegalAccessException | InvocationTargetException | InvalidRdfException | ClassNotFoundException e) {
             logger.error("Could not serialize JsonLd", e);
diff --git a/streampipes-rest-shared/src/test/java/org/apache/streampipes/rest/shared/util/JsonLdUtilsTest.java b/streampipes-rest/src/test/java/org/apache/streampipes/rest/util/JsonLdUtilsTest.java
similarity index 98%
rename from streampipes-rest-shared/src/test/java/org/apache/streampipes/rest/shared/util/JsonLdUtilsTest.java
rename to streampipes-rest/src/test/java/org/apache/streampipes/rest/util/JsonLdUtilsTest.java
index 892282c..7ca7cd2 100644
--- a/streampipes-rest-shared/src/test/java/org/apache/streampipes/rest/shared/util/JsonLdUtilsTest.java
+++ b/streampipes-rest/src/test/java/org/apache/streampipes/rest/util/JsonLdUtilsTest.java
@@ -16,7 +16,7 @@
  *
  */
 
-package org.apache.streampipes.rest.shared.util;
+package org.apache.streampipes.rest.util;
 
 import org.apache.streampipes.model.staticproperty.FreeTextStaticProperty;
 import org.apache.streampipes.model.staticproperty.StaticProperty;
diff --git a/streampipes-serializers-json/pom.xml b/streampipes-serializers-json/pom.xml
index ad6f919..ca6c6da 100644
--- a/streampipes-serializers-json/pom.xml
+++ b/streampipes-serializers-json/pom.xml
@@ -1,4 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one or more
+  ~ contributor license agreements.  See the NOTICE file distributed with
+  ~ this work for additional information regarding copyright ownership.
+  ~ The ASF licenses this file to You under the Apache License, Version 2.0
+  ~ (the "License"); you may not use this file except in compliance with
+  ~ the License.  You may obtain a copy of the License at
+  ~
+  ~    http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  ~
+  -->
 <project xmlns="http://maven.apache.org/POM/4.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
diff --git a/streampipes-serializers-jsonld/pom.xml b/streampipes-serializers-jsonld/pom.xml
index 9d4d495..8b0430f 100644
--- a/streampipes-serializers-jsonld/pom.xml
+++ b/streampipes-serializers-jsonld/pom.xml
@@ -1,4 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one or more
+  ~ contributor license agreements.  See the NOTICE file distributed with
+  ~ this work for additional information regarding copyright ownership.
+  ~ The ASF licenses this file to You under the Apache License, Version 2.0
+  ~ (the "License"); you may not use this file except in compliance with
+  ~ the License.  You may obtain a copy of the License at
+  ~
+  ~    http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  ~
+  -->
 <project xmlns="http://maven.apache.org/POM/4.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
@@ -29,6 +46,14 @@
             <groupId>io.fogsy</groupId>
             <artifactId>empire-pinto</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.eclipse.rdf4j</groupId>
+            <artifactId>rdf4j-rio-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.rdf4j</groupId>
+            <artifactId>rdf4j-model</artifactId>
+        </dependency>
     </dependencies>
 
 
diff --git a/streampipes-commons/src/main/java/org/apache/streampipes/commons/Utils.java b/streampipes-serializers-jsonld/src/main/java/org/apache/streampipes/serializers/jsonld/JsonLdUtils.java
similarity index 74%
copy from streampipes-commons/src/main/java/org/apache/streampipes/commons/Utils.java
copy to streampipes-serializers-jsonld/src/main/java/org/apache/streampipes/serializers/jsonld/JsonLdUtils.java
index f245b1e..b117ca7 100644
--- a/streampipes-commons/src/main/java/org/apache/streampipes/commons/Utils.java
+++ b/streampipes-serializers-jsonld/src/main/java/org/apache/streampipes/serializers/jsonld/JsonLdUtils.java
@@ -15,10 +15,8 @@
  * limitations under the License.
  *
  */
+package org.apache.streampipes.serializers.jsonld;
 
-package org.apache.streampipes.commons;
-
-import org.apache.commons.lang.RandomStringUtils;
 import org.eclipse.rdf4j.model.Model;
 import org.eclipse.rdf4j.rio.RDFFormat;
 import org.eclipse.rdf4j.rio.RDFHandlerException;
@@ -30,42 +28,18 @@ import org.eclipse.rdf4j.rio.helpers.JSONLDSettings;
 
 import java.io.ByteArrayOutputStream;
 import java.io.OutputStream;
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-public class Utils {
 
-  public static List<URI> createURI(String... uris) {
-    List<URI> result = new ArrayList<>();
-    for (String uri : uris) {
-      result.add(URI.create(uri));
-    }
-    return result;
-  }
-
-  @SafeVarargs
-  public static <T> List<T> createList(T... objects) {
-    List<T> result = new ArrayList<>();
-    Collections.addAll(result, objects);
-    return result;
-  }
-
-  public static String getRandomString() {
-    return RandomStringUtils.randomAlphabetic(10);
-  }
+public class JsonLdUtils {
 
   public static String asString(Model model) throws RDFHandlerException {
     OutputStream stream = new ByteArrayOutputStream();
 
-    RDFWriter writer = Utils.getRioWriter(stream);
+    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);
 
@@ -81,5 +55,4 @@ public class Utils {
 
     return writer;
   }
-
 }


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

Posted by ri...@apache.org.
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());
 
   }
 }


[incubator-streampipes] 02/04: [STREAMPIPES-269] Split streampipes-serializers into separate modules for JSON and JSON-LD serialization

Posted by ri...@apache.org.
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 3914cf4b6c44f2b83e80ca6e9fdceea7bb4a8067
Author: Dominik Riemer <ri...@fzi.de>
AuthorDate: Tue Dec 29 20:55:28 2020 +0100

    [STREAMPIPES-269] Split streampipes-serializers into separate modules for JSON and JSON-LD serialization
---
 pom.xml                                            |  3 +-
 streampipes-code-generation/pom.xml                |  5 ++
 .../connect/container/worker/utils/Utils.java      | 38 ++-------------
 streampipes-connect-container/pom.xml              |  2 +-
 streampipes-connect/pom.xml                        |  2 +-
 streampipes-container/pom.xml                      |  2 +-
 .../api/DataSourcePipelineElementResource.java     |  9 ++--
 .../container/transform/Transformer.java           | 49 --------------------
 .../streampipes/container/util/DeclarerUtils.java  | 46 ------------------
 .../org/streampipes/container/util/UtilTest.java   | 46 ------------------
 .../org/apache/streampipes/model/ResponseTest.java | 45 ------------------
 streampipes-pipeline-management/pom.xml            |  5 ++
 streampipes-rest-shared/pom.xml                    |  7 ++-
 streampipes-rest/pom.xml                           | 10 ++++
 .../rest/impl/AbstractRestInterface.java           | 10 ----
 streampipes-serializers-json/pom.xml               | 34 ++++++++++++++
 .../serializers/json/AdapterSerializer.java        |  0
 .../serializers/json/AdapterTypeAdapter.java       |  0
 .../serializers/json/EcTypeAdapter.java            |  0
 .../serializers/json/EpaTypeAdapter.java           |  0
 .../serializers/json/GsonSerializer.java           |  0
 .../serializers/json/JacksonSerializer.java        |  0
 .../serializers/json/JsonLdSerializer.java         |  0
 .../serializers/json/PeTypeAdapter.java            |  0
 .../json/ProcessingElementSerializer.java          |  0
 .../serializers/json/RangeSerializer.java          | 34 +++++++-------
 .../json/RuntimeTypeAdapterFactory.java            |  0
 .../json/TransformationRuleSerializer.java         |  0
 .../serializers/json/UriSerializer.java            |  0
 .../apache/streampipes/serializers/json/Utils.java |  0
 streampipes-serializers-jsonld/pom.xml             | 35 ++++++++++++++
 .../jsonld/CustomAnnotationProvider.java           |  0
 .../serializers/jsonld/JsonLdTransformer.java      |  0
 .../serializers/jsonld/RdfTransformer.java         |  0
 streampipes-serializers/pom.xml                    | 54 ----------------------
 streampipes-storage-couchdb/pom.xml                |  2 +-
 streampipes-storage-rdf4j/pom.xml                  |  2 +-
 37 files changed, 127 insertions(+), 313 deletions(-)

diff --git a/pom.xml b/pom.xml
index a37efc4..ea8dd23 100644
--- a/pom.xml
+++ b/pom.xml
@@ -870,7 +870,6 @@
         <module>streampipes-rest</module>
         <module>streampipes-rest-shared</module>
         <module>streampipes-sdk</module>
-        <module>streampipes-serializers</module>
         <module>streampipes-storage-api</module>
         <module>streampipes-storage-management</module>
         <module>streampipes-storage-couchdb</module>
@@ -893,6 +892,8 @@
         <module>streampipes-maven-plugin</module>
         <module>streampipes-model-shared</module>
         <module>streampipes-container-extensions</module>
+        <module>streampipes-serializers-jsonld</module>
+        <module>streampipes-serializers-json</module>
     </modules>
 
     <profiles>
diff --git a/streampipes-code-generation/pom.xml b/streampipes-code-generation/pom.xml
index 86c7c65..c595808 100644
--- a/streampipes-code-generation/pom.xml
+++ b/streampipes-code-generation/pom.xml
@@ -52,6 +52,11 @@
             <artifactId>streampipes-sdk</artifactId>
             <version>0.68.0-SNAPSHOT</version>
         </dependency>
+        <dependency>
+            <groupId>org.apache.streampipes</groupId>
+            <artifactId>streampipes-serializers-json</artifactId>
+            <version>0.68.0-SNAPSHOT</version>
+        </dependency>
 
         <!-- External dependencies -->
         <dependency>
diff --git a/streampipes-connect-container-worker/src/test/java/org/apache/streampipes/connect/container/worker/utils/Utils.java b/streampipes-connect-container-worker/src/test/java/org/apache/streampipes/connect/container/worker/utils/Utils.java
index b995a31..2b2b467 100644
--- a/streampipes-connect-container-worker/src/test/java/org/apache/streampipes/connect/container/worker/utils/Utils.java
+++ b/streampipes-connect-container-worker/src/test/java/org/apache/streampipes/connect/container/worker/utils/Utils.java
@@ -18,44 +18,15 @@
 
 package org.apache.streampipes.connect.container.worker.utils;
 
-import io.fogsy.empire.core.empire.annotation.InvalidRdfException;
-import org.apache.streampipes.model.connect.adapter.*;
-import org.apache.streampipes.serializers.jsonld.JsonLdTransformer;
-import org.apache.streampipes.vocabulary.StreamPipes;
+import org.apache.streampipes.model.connect.adapter.AdapterSetDescription;
+import org.apache.streampipes.model.connect.adapter.AdapterStreamDescription;
+import org.apache.streampipes.model.connect.adapter.GenericAdapterSetDescription;
+import org.apache.streampipes.model.connect.adapter.GenericAdapterStreamDescription;
 
-import java.lang.reflect.InvocationTargetException;
 import java.util.ArrayList;
 
 public class Utils {
 
-    public static String getMinimalStreamAdapterJsonLD() {
-        return getMinimalAdapterJsonLD(new GenericAdapterStreamDescription(), StreamPipes.GENERIC_ADAPTER_SET_DESCRIPTION);
-    }
-
-    public static String getMinimalSetAdapterJsonLD() {
-        return getMinimalAdapterJsonLD(new GenericAdapterSetDescription(), StreamPipes.GENERIC_ADAPTER_SET_DESCRIPTION);
-    }
-
-    private static String getMinimalAdapterJsonLD(AdapterDescription asd, String rootElement) {
-        String id = "http://t.de/";
-        asd.setUri(id);
-        asd.setId(id);
-
-        JsonLdTransformer jsonLdTransformer = new JsonLdTransformer(rootElement);
-
-        try {
-            return org.apache.streampipes.commons.Utils.asString(jsonLdTransformer.toJsonLd(asd));
-        } catch (IllegalAccessException | InvocationTargetException | ClassNotFoundException e) {
-            e.printStackTrace();
-        }
-        catch (InvalidRdfException e) {
-            e.printStackTrace();
-        }
-
-        return "";
-    }
-
-
     public static AdapterStreamDescription getMinimalStreamAdapter() {
         AdapterStreamDescription result = new GenericAdapterStreamDescription();
         String id = "http://t.de/";
@@ -74,5 +45,4 @@ public class Utils {
 
         return result;
     }
-
 }
diff --git a/streampipes-connect-container/pom.xml b/streampipes-connect-container/pom.xml
index ec1bd33..3e01d2f 100644
--- a/streampipes-connect-container/pom.xml
+++ b/streampipes-connect-container/pom.xml
@@ -51,7 +51,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.streampipes</groupId>
-            <artifactId>streampipes-serializers</artifactId>
+            <artifactId>streampipes-serializers-json</artifactId>
             <version>0.68.0-SNAPSHOT</version>
         </dependency>
 
diff --git a/streampipes-connect/pom.xml b/streampipes-connect/pom.xml
index d3a9c6d..cf12739 100755
--- a/streampipes-connect/pom.xml
+++ b/streampipes-connect/pom.xml
@@ -96,7 +96,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.streampipes</groupId>
-            <artifactId>streampipes-serializers</artifactId>
+            <artifactId>streampipes-serializers-json</artifactId>
             <version>0.68.0-SNAPSHOT</version>
         </dependency>
 
diff --git a/streampipes-container/pom.xml b/streampipes-container/pom.xml
index eeea910..be63f52 100644
--- a/streampipes-container/pom.xml
+++ b/streampipes-container/pom.xml
@@ -47,7 +47,7 @@
 		</dependency>
 		<dependency>
 			<groupId>org.apache.streampipes</groupId>
-			<artifactId>streampipes-serializers</artifactId>
+			<artifactId>streampipes-serializers-json</artifactId>
 			<version>0.68.0-SNAPSHOT</version>
 		</dependency>
 		<dependency>
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 8b1722c..549e205 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
@@ -24,13 +24,12 @@ import org.apache.streampipes.container.declarer.DataStreamDeclarer;
 import org.apache.streampipes.container.declarer.SemanticEventProducerDeclarer;
 import org.apache.streampipes.container.init.DeclarersSingleton;
 import org.apache.streampipes.container.init.RunningDatasetInstances;
-import org.apache.streampipes.container.transform.Transformer;
 import org.apache.streampipes.model.Response;
 import org.apache.streampipes.model.SpDataSet;
 import org.apache.streampipes.model.SpDataStream;
 import org.apache.streampipes.model.graph.DataSourceDescription;
 import org.apache.streampipes.rest.shared.util.SpMediaType;
-import org.apache.streampipes.vocabulary.StreamPipes;
+import org.apache.streampipes.serializers.json.JacksonSerializer;
 import org.eclipse.rdf4j.repository.RepositoryException;
 import org.eclipse.rdf4j.rio.RDFParseException;
 
@@ -83,8 +82,8 @@ public class DataSourcePipelineElementResource extends AbstractPipelineElementRe
 
   @POST
   @Path("{sourceId}/{streamId}")
-  @Produces({MediaType.APPLICATION_JSON, SpMediaType.JSONLD})
-  @Consumes({MediaType.APPLICATION_JSON, SpMediaType.JSONLD})
+  @Produces(MediaType.APPLICATION_JSON)
+  @Consumes(MediaType.APPLICATION_JSON)
   public javax.ws.rs.core.Response invokeRuntime(@PathParam("sourceId") String sourceId, @PathParam("streamId") String streamId, String
           payload) {
     SemanticEventProducerDeclarer declarer = getDeclarerById(sourceId);
@@ -100,7 +99,7 @@ public class DataSourcePipelineElementResource extends AbstractPipelineElementRe
 
     if (streamDeclarer.isPresent()) {
       try {
-        SpDataSet dataSet = Transformer.fromJsonLd(SpDataSet.class, payload, StreamPipes.DATA_SET);
+        SpDataSet dataSet = JacksonSerializer.getObjectMapper().readValue(payload, SpDataSet.class);
         String runningInstanceId = dataSet.getDatasetInvocationId();
         RunningDatasetInstances.INSTANCE.add(runningInstanceId, dataSet, (DataSetDeclarer) streamDeclarer.get().getClass().newInstance());
         RunningDatasetInstances.INSTANCE.getInvocation(runningInstanceId).invokeRuntime(dataSet, ()
diff --git a/streampipes-container/src/main/java/org/apache/streampipes/container/transform/Transformer.java b/streampipes-container/src/main/java/org/apache/streampipes/container/transform/Transformer.java
deleted file mode 100644
index 04120fd..0000000
--- a/streampipes-container/src/main/java/org/apache/streampipes/container/transform/Transformer.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.streampipes.container.transform;
-
-import io.fogsy.empire.core.empire.annotation.InvalidRdfException;
-import org.apache.streampipes.serializers.jsonld.JsonLdTransformer;
-import org.eclipse.rdf4j.model.Model;
-import org.eclipse.rdf4j.repository.RepositoryException;
-import org.eclipse.rdf4j.rio.RDFParseException;
-import org.eclipse.rdf4j.rio.UnsupportedRDFormatException;
-
-import java.io.IOException;
-import java.lang.reflect.InvocationTargetException;
-
-public class Transformer {
-
-	public static <T> Model toJsonLd(T element) throws IllegalAccessException,
-					IllegalArgumentException, InvocationTargetException, SecurityException, ClassNotFoundException, InvalidRdfException
-	{
-		return new JsonLdTransformer().toJsonLd(element);
-	}
-	
-	public static <T> T fromJsonLd(Class<T> destination, String json) throws RDFParseException, UnsupportedRDFormatException, IOException, RepositoryException
-	{
-		return new JsonLdTransformer().fromJsonLd(json, destination);
-	}
-
-	public static <T> T fromJsonLd(Class<T> destination, String json, String rootElement) throws RDFParseException,
-					UnsupportedRDFormatException, IOException, RepositoryException
-	{
-		return new JsonLdTransformer(rootElement).fromJsonLd(json, destination);
-	}
-}
diff --git a/streampipes-container/src/main/java/org/apache/streampipes/container/util/DeclarerUtils.java b/streampipes-container/src/main/java/org/apache/streampipes/container/util/DeclarerUtils.java
deleted file mode 100644
index 71716df..0000000
--- a/streampipes-container/src/main/java/org/apache/streampipes/container/util/DeclarerUtils.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.streampipes.container.util;
-
-import java.io.IOException;
-import java.net.URL;
-
-import org.eclipse.rdf4j.repository.RepositoryException;
-import org.eclipse.rdf4j.rio.RDFParseException;
-import org.eclipse.rdf4j.rio.UnsupportedRDFormatException;
-
-import com.google.common.base.Charsets;
-import com.google.common.io.Resources;
-
-import org.apache.streampipes.commons.exceptions.SepaParseException;
-import org.apache.streampipes.serializers.jsonld.JsonLdTransformer;
-
-public class DeclarerUtils {
-
-	public static <T> T descriptionFromResources(URL resourceUrl, Class<T> destination) throws SepaParseException
-	{
-		try {
-			return new JsonLdTransformer().fromJsonLd(Resources.toString(resourceUrl, Charsets.UTF_8), destination);
-		} catch (RDFParseException | UnsupportedRDFormatException
-				| RepositoryException | IOException e) {
-			e.printStackTrace();
-			throw new SepaParseException();
-		}
-	}
-}
diff --git a/streampipes-container/src/test/java/org/streampipes/container/util/UtilTest.java b/streampipes-container/src/test/java/org/streampipes/container/util/UtilTest.java
deleted file mode 100644
index 69dcb1e..0000000
--- a/streampipes-container/src/test/java/org/streampipes/container/util/UtilTest.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.streampipes.container.util;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
-
-import org.junit.Test;
-import org.apache.streampipes.model.Response;
-
-public class UtilTest {
-
-    @Test
-    public void fromResponseStringSuccessTest() {
-        Response expected = new Response("id", true);
-        String dataString = expected.toString();
-
-        Response result = Util.fromResponseString(dataString);
-
-        assertEquals(expected, result);
-    }
-
-    @Test
-    public void fromResponseStringFailTest() {
-        String data = "{\"bl\":1}";
-        Response result = Util.fromResponseString(data);
-
-        assertNull(result);
-    }
-}
\ No newline at end of file
diff --git a/streampipes-model/src/test/java/org/apache/streampipes/model/ResponseTest.java b/streampipes-model/src/test/java/org/apache/streampipes/model/ResponseTest.java
deleted file mode 100644
index 2fb0369..0000000
--- a/streampipes-model/src/test/java/org/apache/streampipes/model/ResponseTest.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.streampipes.model;
-
-import org.junit.Test;
-
-import static org.junit.Assert.*;
-
-public class ResponseTest {
-
-    @Test
-    public void toStringWithMessageTest() {
-        Response resp = new Response("id", true);
-
-        String result = resp.toString();
-
-        assertEquals("{\"success\":true,\"elementId\":\"id\",\"optionalMessage\":\"\"}", result);
-    }
-
-    @Test
-    public void toStringWithoutMessageTest() {
-        Response resp = new Response("id", false, "error");
-
-        String result = resp.toString();
-
-        assertEquals("{\"success\":false,\"elementId\":\"id\",\"optionalMessage\":\"error\"}", result);
-
-    }
-}
\ No newline at end of file
diff --git a/streampipes-pipeline-management/pom.xml b/streampipes-pipeline-management/pom.xml
index 9800aa8..d9444f2 100644
--- a/streampipes-pipeline-management/pom.xml
+++ b/streampipes-pipeline-management/pom.xml
@@ -94,6 +94,11 @@
         </dependency>
         <dependency>
             <groupId>org.apache.streampipes</groupId>
+            <artifactId>streampipes-serializers-json</artifactId>
+            <version>0.68.0-SNAPSHOT</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.streampipes</groupId>
             <artifactId>streampipes-storage-management</artifactId>
             <version>0.68.0-SNAPSHOT</version>
         </dependency>
diff --git a/streampipes-rest-shared/pom.xml b/streampipes-rest-shared/pom.xml
index 586786b..42d11e7 100644
--- a/streampipes-rest-shared/pom.xml
+++ b/streampipes-rest-shared/pom.xml
@@ -42,7 +42,12 @@
 		</dependency>
 		<dependency>
 			<groupId>org.apache.streampipes</groupId>
-			<artifactId>streampipes-serializers</artifactId>
+			<artifactId>streampipes-serializers-json</artifactId>
+			<version>0.68.0-SNAPSHOT</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.streampipes</groupId>
+			<artifactId>streampipes-serializers-jsonld</artifactId>
 			<version>0.68.0-SNAPSHOT</version>
 		</dependency>
 
diff --git a/streampipes-rest/pom.xml b/streampipes-rest/pom.xml
index 51441f6..f698cd8 100644
--- a/streampipes-rest/pom.xml
+++ b/streampipes-rest/pom.xml
@@ -72,6 +72,16 @@
         </dependency>
         <dependency>
             <groupId>org.apache.streampipes</groupId>
+            <artifactId>streampipes-serializers-json</artifactId>
+            <version>0.68.0-SNAPSHOT</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.streampipes</groupId>
+            <artifactId>streampipes-serializers-jsonld</artifactId>
+            <version>0.68.0-SNAPSHOT</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.streampipes</groupId>
             <artifactId>streampipes-user-management</artifactId>
             <version>0.68.0-SNAPSHOT</version>
         </dependency>
diff --git a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/AbstractRestInterface.java b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/AbstractRestInterface.java
index 066708f..cbab8c3 100644
--- a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/AbstractRestInterface.java
+++ b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/AbstractRestInterface.java
@@ -27,7 +27,6 @@ import org.apache.streampipes.manager.endpoint.HttpJsonParser;
 import org.apache.streampipes.manager.storage.UserManagementService;
 import org.apache.streampipes.manager.storage.UserService;
 import org.apache.streampipes.model.base.AbstractStreamPipesEntity;
-import org.apache.streampipes.model.base.NamedStreamPipesEntity;
 import org.apache.streampipes.model.base.StreamPipesJsonLdContainer;
 import org.apache.streampipes.model.message.Notification;
 import org.apache.streampipes.model.message.*;
@@ -36,11 +35,7 @@ import org.apache.streampipes.serializers.jsonld.JsonLdTransformer;
 import org.apache.streampipes.storage.api.*;
 import org.apache.streampipes.storage.management.StorageDispatcher;
 import org.apache.streampipes.storage.management.StorageManager;
-import org.apache.streampipes.storage.rdf4j.util.Transformer;
-import org.eclipse.rdf4j.repository.RepositoryException;
 import org.eclipse.rdf4j.rio.RDFHandlerException;
-import org.eclipse.rdf4j.rio.RDFParseException;
-import org.eclipse.rdf4j.rio.UnsupportedRDFormatException;
 
 import javax.ws.rs.core.Response;
 import java.io.IOException;
@@ -125,11 +120,6 @@ public abstract class AbstractRestInterface {
     return HttpJsonParser.getContentFromUrl(uri, mediaType);
   }
 
-  protected <T extends NamedStreamPipesEntity> T parseObjectContent(Class<T> clazz, String payload)
-          throws RDFParseException, UnsupportedRDFormatException, RepositoryException, IOException {
-    return Transformer.fromJsonLd(clazz, payload);
-  }
-
   protected Response constructSuccessMessage(Notification... notifications) {
     return statusMessage(new SuccessMessage(notifications));
   }
diff --git a/streampipes-serializers-json/pom.xml b/streampipes-serializers-json/pom.xml
new file mode 100644
index 0000000..ad6f919
--- /dev/null
+++ b/streampipes-serializers-json/pom.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>streampipes-parent</artifactId>
+        <groupId>org.apache.streampipes</groupId>
+        <version>0.68.0-SNAPSHOT</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>streampipes-serializers-json</artifactId>
+
+    <dependencies>
+        <!-- StreamPipes dependencies -->
+        <dependency>
+            <groupId>org.apache.streampipes</groupId>
+            <artifactId>streampipes-model</artifactId>
+            <version>0.68.0-SNAPSHOT</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.streampipes</groupId>
+            <artifactId>streampipes-model-client</artifactId>
+            <version>0.68.0-SNAPSHOT</version>
+        </dependency>
+
+        <!-- External dependencies -->
+        <dependency>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-databind</artifactId>
+        </dependency>
+    </dependencies>
+
+</project>
\ No newline at end of file
diff --git a/streampipes-serializers/src/main/java/org/apache/streampipes/serializers/json/AdapterSerializer.java b/streampipes-serializers-json/src/main/java/org/apache/streampipes/serializers/json/AdapterSerializer.java
similarity index 100%
rename from streampipes-serializers/src/main/java/org/apache/streampipes/serializers/json/AdapterSerializer.java
rename to streampipes-serializers-json/src/main/java/org/apache/streampipes/serializers/json/AdapterSerializer.java
diff --git a/streampipes-serializers/src/main/java/org/apache/streampipes/serializers/json/AdapterTypeAdapter.java b/streampipes-serializers-json/src/main/java/org/apache/streampipes/serializers/json/AdapterTypeAdapter.java
similarity index 100%
rename from streampipes-serializers/src/main/java/org/apache/streampipes/serializers/json/AdapterTypeAdapter.java
rename to streampipes-serializers-json/src/main/java/org/apache/streampipes/serializers/json/AdapterTypeAdapter.java
diff --git a/streampipes-serializers/src/main/java/org/apache/streampipes/serializers/json/EcTypeAdapter.java b/streampipes-serializers-json/src/main/java/org/apache/streampipes/serializers/json/EcTypeAdapter.java
similarity index 100%
rename from streampipes-serializers/src/main/java/org/apache/streampipes/serializers/json/EcTypeAdapter.java
rename to streampipes-serializers-json/src/main/java/org/apache/streampipes/serializers/json/EcTypeAdapter.java
diff --git a/streampipes-serializers/src/main/java/org/apache/streampipes/serializers/json/EpaTypeAdapter.java b/streampipes-serializers-json/src/main/java/org/apache/streampipes/serializers/json/EpaTypeAdapter.java
similarity index 100%
rename from streampipes-serializers/src/main/java/org/apache/streampipes/serializers/json/EpaTypeAdapter.java
rename to streampipes-serializers-json/src/main/java/org/apache/streampipes/serializers/json/EpaTypeAdapter.java
diff --git a/streampipes-serializers/src/main/java/org/apache/streampipes/serializers/json/GsonSerializer.java b/streampipes-serializers-json/src/main/java/org/apache/streampipes/serializers/json/GsonSerializer.java
similarity index 100%
rename from streampipes-serializers/src/main/java/org/apache/streampipes/serializers/json/GsonSerializer.java
rename to streampipes-serializers-json/src/main/java/org/apache/streampipes/serializers/json/GsonSerializer.java
diff --git a/streampipes-serializers/src/main/java/org/apache/streampipes/serializers/json/JacksonSerializer.java b/streampipes-serializers-json/src/main/java/org/apache/streampipes/serializers/json/JacksonSerializer.java
similarity index 100%
rename from streampipes-serializers/src/main/java/org/apache/streampipes/serializers/json/JacksonSerializer.java
rename to streampipes-serializers-json/src/main/java/org/apache/streampipes/serializers/json/JacksonSerializer.java
diff --git a/streampipes-serializers/src/main/java/org/apache/streampipes/serializers/json/JsonLdSerializer.java b/streampipes-serializers-json/src/main/java/org/apache/streampipes/serializers/json/JsonLdSerializer.java
similarity index 100%
rename from streampipes-serializers/src/main/java/org/apache/streampipes/serializers/json/JsonLdSerializer.java
rename to streampipes-serializers-json/src/main/java/org/apache/streampipes/serializers/json/JsonLdSerializer.java
diff --git a/streampipes-serializers/src/main/java/org/apache/streampipes/serializers/json/PeTypeAdapter.java b/streampipes-serializers-json/src/main/java/org/apache/streampipes/serializers/json/PeTypeAdapter.java
similarity index 100%
rename from streampipes-serializers/src/main/java/org/apache/streampipes/serializers/json/PeTypeAdapter.java
rename to streampipes-serializers-json/src/main/java/org/apache/streampipes/serializers/json/PeTypeAdapter.java
diff --git a/streampipes-serializers/src/main/java/org/apache/streampipes/serializers/json/ProcessingElementSerializer.java b/streampipes-serializers-json/src/main/java/org/apache/streampipes/serializers/json/ProcessingElementSerializer.java
similarity index 100%
rename from streampipes-serializers/src/main/java/org/apache/streampipes/serializers/json/ProcessingElementSerializer.java
rename to streampipes-serializers-json/src/main/java/org/apache/streampipes/serializers/json/ProcessingElementSerializer.java
diff --git a/streampipes-serializers/src/main/java/org/apache/streampipes/serializers/json/RangeSerializer.java b/streampipes-serializers-json/src/main/java/org/apache/streampipes/serializers/json/RangeSerializer.java
similarity index 67%
rename from streampipes-serializers/src/main/java/org/apache/streampipes/serializers/json/RangeSerializer.java
rename to streampipes-serializers-json/src/main/java/org/apache/streampipes/serializers/json/RangeSerializer.java
index 2ffb65f..f6fc5a3 100644
--- a/streampipes-serializers/src/main/java/org/apache/streampipes/serializers/json/RangeSerializer.java
+++ b/streampipes-serializers-json/src/main/java/org/apache/streampipes/serializers/json/RangeSerializer.java
@@ -35,23 +35,23 @@ import java.lang.reflect.Type;
 
 public class RangeSerializer implements JsonSerializer<Range>, JsonDeserializer<Range> {
 
-	public JsonElement serialize(Range src, Type typeOfSrc, JsonSerializationContext context) {
-        
-    	return context.serialize(src, src.getClass());
-
-    }
- 
-    public Range deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context)
-        throws JsonParseException {
-       
-    	JsonObject jsonObject = json.getAsJsonObject();
-        String rangeType = jsonObject.get("rangeType").getAsString();
- 
-        RangeType rt = RangeType.valueOf(rangeType);
-		if (rt == RangeType.ENUMERATION) return context.deserialize(jsonObject, EnumeratedRange.class);
-		else if (rt == RangeType.QUANTITATIVE_VALUE) return context.deserialize(jsonObject, QuantitativeValueRange.class);
-		else return context.deserialize(jsonObject, PrimitiveRange.class);
-    }
+  public JsonElement serialize(Range src, Type typeOfSrc, JsonSerializationContext context) {
+
+    return context.serialize(src, src.getClass());
+
+  }
+
+  public Range deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context)
+          throws JsonParseException {
+
+    JsonObject jsonObject = json.getAsJsonObject();
+    String rangeType = jsonObject.get("rangeType").getAsString();
+
+    RangeType rt = RangeType.valueOf(rangeType);
+    if (rt == RangeType.ENUMERATION) return context.deserialize(jsonObject, EnumeratedRange.class);
+    else if (rt == RangeType.QUANTITATIVE_VALUE) return context.deserialize(jsonObject, QuantitativeValueRange.class);
+    else return context.deserialize(jsonObject, PrimitiveRange.class);
+  }
 
 }
 
diff --git a/streampipes-serializers/src/main/java/org/apache/streampipes/serializers/json/RuntimeTypeAdapterFactory.java b/streampipes-serializers-json/src/main/java/org/apache/streampipes/serializers/json/RuntimeTypeAdapterFactory.java
similarity index 100%
rename from streampipes-serializers/src/main/java/org/apache/streampipes/serializers/json/RuntimeTypeAdapterFactory.java
rename to streampipes-serializers-json/src/main/java/org/apache/streampipes/serializers/json/RuntimeTypeAdapterFactory.java
diff --git a/streampipes-serializers/src/main/java/org/apache/streampipes/serializers/json/TransformationRuleSerializer.java b/streampipes-serializers-json/src/main/java/org/apache/streampipes/serializers/json/TransformationRuleSerializer.java
similarity index 100%
rename from streampipes-serializers/src/main/java/org/apache/streampipes/serializers/json/TransformationRuleSerializer.java
rename to streampipes-serializers-json/src/main/java/org/apache/streampipes/serializers/json/TransformationRuleSerializer.java
diff --git a/streampipes-serializers/src/main/java/org/apache/streampipes/serializers/json/UriSerializer.java b/streampipes-serializers-json/src/main/java/org/apache/streampipes/serializers/json/UriSerializer.java
similarity index 100%
rename from streampipes-serializers/src/main/java/org/apache/streampipes/serializers/json/UriSerializer.java
rename to streampipes-serializers-json/src/main/java/org/apache/streampipes/serializers/json/UriSerializer.java
diff --git a/streampipes-serializers/src/main/java/org/apache/streampipes/serializers/json/Utils.java b/streampipes-serializers-json/src/main/java/org/apache/streampipes/serializers/json/Utils.java
similarity index 100%
rename from streampipes-serializers/src/main/java/org/apache/streampipes/serializers/json/Utils.java
rename to streampipes-serializers-json/src/main/java/org/apache/streampipes/serializers/json/Utils.java
diff --git a/streampipes-serializers-jsonld/pom.xml b/streampipes-serializers-jsonld/pom.xml
new file mode 100644
index 0000000..9d4d495
--- /dev/null
+++ b/streampipes-serializers-jsonld/pom.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>streampipes-parent</artifactId>
+        <groupId>org.apache.streampipes</groupId>
+        <version>0.68.0-SNAPSHOT</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>streampipes-serializers-jsonld</artifactId>
+
+    <dependencies>
+        <!-- StreamPipes dependencies -->
+        <dependency>
+            <groupId>org.apache.streampipes</groupId>
+            <artifactId>streampipes-model</artifactId>
+            <version>0.68.0-SNAPSHOT</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.streampipes</groupId>
+            <artifactId>streampipes-model-client</artifactId>
+            <version>0.68.0-SNAPSHOT</version>
+        </dependency>
+
+        <!-- External dependencies -->
+        <dependency>
+            <groupId>io.fogsy</groupId>
+            <artifactId>empire-pinto</artifactId>
+        </dependency>
+    </dependencies>
+
+
+</project>
\ No newline at end of file
diff --git a/streampipes-serializers/src/main/java/org/apache/streampipes/serializers/jsonld/CustomAnnotationProvider.java b/streampipes-serializers-jsonld/src/main/java/org/apache/streampipes/serializers/jsonld/CustomAnnotationProvider.java
similarity index 100%
rename from streampipes-serializers/src/main/java/org/apache/streampipes/serializers/jsonld/CustomAnnotationProvider.java
rename to streampipes-serializers-jsonld/src/main/java/org/apache/streampipes/serializers/jsonld/CustomAnnotationProvider.java
diff --git a/streampipes-serializers/src/main/java/org/apache/streampipes/serializers/jsonld/JsonLdTransformer.java b/streampipes-serializers-jsonld/src/main/java/org/apache/streampipes/serializers/jsonld/JsonLdTransformer.java
similarity index 100%
rename from streampipes-serializers/src/main/java/org/apache/streampipes/serializers/jsonld/JsonLdTransformer.java
rename to streampipes-serializers-jsonld/src/main/java/org/apache/streampipes/serializers/jsonld/JsonLdTransformer.java
diff --git a/streampipes-serializers/src/main/java/org/apache/streampipes/serializers/jsonld/RdfTransformer.java b/streampipes-serializers-jsonld/src/main/java/org/apache/streampipes/serializers/jsonld/RdfTransformer.java
similarity index 100%
rename from streampipes-serializers/src/main/java/org/apache/streampipes/serializers/jsonld/RdfTransformer.java
rename to streampipes-serializers-jsonld/src/main/java/org/apache/streampipes/serializers/jsonld/RdfTransformer.java
diff --git a/streampipes-serializers/pom.xml b/streampipes-serializers/pom.xml
deleted file mode 100644
index e2df8de..0000000
--- a/streampipes-serializers/pom.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one or more
-  ~ contributor license agreements.  See the NOTICE file distributed with
-  ~ this work for additional information regarding copyright ownership.
-  ~ The ASF licenses this file to You under the Apache License, Version 2.0
-  ~ (the "License"); you may not use this file except in compliance with
-  ~ the License.  You may obtain a copy of the License at
-  ~
-  ~    http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License.
-  ~
-  -->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <artifactId>streampipes-parent</artifactId>
-        <groupId>org.apache.streampipes</groupId>
-        <version>0.68.0-SNAPSHOT</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>streampipes-serializers</artifactId>
-    <dependencies>
-        <!-- StreamPipes dependencies -->
-        <dependency>
-            <groupId>org.apache.streampipes</groupId>
-            <artifactId>streampipes-model</artifactId>
-            <version>0.68.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.streampipes</groupId>
-            <artifactId>streampipes-model-client</artifactId>
-            <version>0.68.0-SNAPSHOT</version>
-        </dependency>
-
-        <!-- External dependencies -->
-        <dependency>
-            <groupId>io.fogsy</groupId>
-            <artifactId>empire-pinto</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.fasterxml.jackson.core</groupId>
-            <artifactId>jackson-databind</artifactId>
-        </dependency>
-    </dependencies>
-
-
-</project>
\ No newline at end of file
diff --git a/streampipes-storage-couchdb/pom.xml b/streampipes-storage-couchdb/pom.xml
index 7d19771..1d8124b 100644
--- a/streampipes-storage-couchdb/pom.xml
+++ b/streampipes-storage-couchdb/pom.xml
@@ -46,7 +46,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.streampipes</groupId>
-            <artifactId>streampipes-serializers</artifactId>
+            <artifactId>streampipes-serializers-json</artifactId>
             <version>0.68.0-SNAPSHOT</version>
         </dependency>
         <dependency>
diff --git a/streampipes-storage-rdf4j/pom.xml b/streampipes-storage-rdf4j/pom.xml
index e0b711f..faf15dc 100644
--- a/streampipes-storage-rdf4j/pom.xml
+++ b/streampipes-storage-rdf4j/pom.xml
@@ -46,7 +46,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.streampipes</groupId>
-            <artifactId>streampipes-serializers</artifactId>
+            <artifactId>streampipes-serializers-jsonld</artifactId>
             <version>0.68.0-SNAPSHOT</version>
         </dependency>
         <dependency>


[incubator-streampipes] 01/04: [STREAMPIPES-269] Use JSON for container-core serialization

Posted by ri...@apache.org.
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 919486ff1d3477b720b2adac29b36a95a9444ea4
Author: Dominik Riemer <ri...@fzi.de>
AuthorDate: Tue Dec 29 20:01:34 2020 +0100

    [STREAMPIPES-269] Use JSON for container-core serialization
---
 .../container/master/rest/SourcesResource.java     |  33 ++----
 .../extensions/ExtensionsResourceConfig.java       |   8 +-
 .../PipelineElementContainerResourceConfig.java    |  21 ++--
 streampipes-container/pom.xml                      |   6 ++
 ...t.java => AbstractPipelineElementResource.java} | 112 ++++++++++-----------
 ...a => DataProcessorPipelineElementResource.java} |  10 +-
 ...t.java => DataSinkPipelineElementResource.java} |  50 +--------
 ...java => DataSourcePipelineElementResource.java} |  53 ++++------
 ....java => InvocablePipelineElementResource.java} |  46 ++++-----
 ...t.java => PipelineElementTemplateResource.java} |   5 +-
 .../apache/streampipes/container/util/Util.java    |  13 ---
 .../org/apache/streampipes/model/Response.java     |  30 +++---
 .../manager/endpoint/EndpointItemFetcher.java      |  14 +--
 .../manager/endpoint/EndpointItemParser.java       |  20 ++--
 .../manager/execution/http/HttpRequestBuilder.java |  27 +++--
 .../manager/verification/ElementVerifier.java      |  22 ++--
 .../manager/verification/SepVerifier.java          |   5 +-
 .../verification/extractor/TypeExtractor.java      |  63 ++++++------
 .../streampipes/rest/shared/util/SpMediaType.java  |   5 +-
 19 files changed, 227 insertions(+), 316 deletions(-)

diff --git a/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/rest/SourcesResource.java b/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/rest/SourcesResource.java
index cb9ab94..7318bc2 100644
--- a/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/rest/SourcesResource.java
+++ b/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/rest/SourcesResource.java
@@ -18,28 +18,18 @@
 
 package org.apache.streampipes.connect.container.master.rest;
 
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 import org.apache.streampipes.connect.adapter.exception.AdapterException;
-import org.apache.streampipes.connect.config.ConnectContainerConfig;
 import org.apache.streampipes.connect.container.master.management.SourcesManagement;
 import org.apache.streampipes.connect.rest.AbstractContainerResource;
 import org.apache.streampipes.model.SpDataSet;
-import org.apache.streampipes.model.message.Notifications;
 import org.apache.streampipes.model.graph.DataSourceDescription;
+import org.apache.streampipes.model.message.Notifications;
 import org.apache.streampipes.rest.shared.annotation.GsonWithIds;
-import org.apache.streampipes.rest.shared.annotation.JsonLdSerialized;
-import org.apache.streampipes.rest.shared.util.JsonLdUtils;
-import org.apache.streampipes.rest.shared.util.SpMediaType;
-import org.apache.streampipes.vocabulary.StreamPipes;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
+import org.apache.streampipes.rest.shared.annotation.JacksonSerialized;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.ws.rs.*;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 
@@ -73,8 +63,8 @@ public class SourcesResource extends AbstractContainerResource {
 
     @GET
     @Path("/{id}")
-    @JsonLdSerialized
-    @Produces(SpMediaType.JSONLD)
+    @JacksonSerialized
+    @Produces(MediaType.APPLICATION_JSON)
     public Response getAdapterDataSource(@PathParam("id") String id) {
 
         try {
@@ -92,9 +82,9 @@ public class SourcesResource extends AbstractContainerResource {
     @Consumes(MediaType.APPLICATION_JSON)
     @Path("/{streamId}/streams")
     @Produces(MediaType.APPLICATION_JSON)
-    public Response addAdapter(@PathParam("streamId") String elementId, String dataSetSet, @PathParam("username") String username) {
-
-        SpDataSet dataSet = JsonLdUtils.fromJsonLd(dataSetSet, SpDataSet.class, StreamPipes.DATA_SET);
+    public Response addAdapter(@PathParam("streamId") String elementId,
+                               @PathParam("username") String username,
+                               SpDataSet dataSet) {
 
         String responseMessage = "Instance of data set " + dataSet.getUri() + " successfully started";
 
@@ -105,7 +95,6 @@ public class SourcesResource extends AbstractContainerResource {
             return ok(Notifications.error("Could not set data set instance: " + dataSet.getUri()));
         }
 
-
         return ok(Notifications.success(responseMessage));
     }
 
diff --git a/streampipes-container-extensions/src/main/java/org/apache/streampipes/container/extensions/ExtensionsResourceConfig.java b/streampipes-container-extensions/src/main/java/org/apache/streampipes/container/extensions/ExtensionsResourceConfig.java
index ec7e364..0c48ef4 100644
--- a/streampipes-container-extensions/src/main/java/org/apache/streampipes/container/extensions/ExtensionsResourceConfig.java
+++ b/streampipes-container-extensions/src/main/java/org/apache/streampipes/container/extensions/ExtensionsResourceConfig.java
@@ -27,11 +27,11 @@ import org.springframework.stereotype.Component;
 @Component
 public class ExtensionsResourceConfig extends ResourceConfig {
     public ExtensionsResourceConfig() {
-        register(SecElement.class);
-        register(SepaElement.class);
-        register(SepElement.class);
+        register(DataSinkPipelineElementResource.class);
+        register(DataProcessorPipelineElementResource.class);
+        register(DataSourcePipelineElementResource.class);
         register(WelcomePage.class);
-        register(PipelineTemplateElement.class);
+        register(PipelineElementTemplateResource.class);
 
         //register(WelcomePageWorker.class);
         register(GuessResource.class);
diff --git a/streampipes-container-standalone/src/main/java/org/apache/streampipes/container/standalone/init/PipelineElementContainerResourceConfig.java b/streampipes-container-standalone/src/main/java/org/apache/streampipes/container/standalone/init/PipelineElementContainerResourceConfig.java
index 3c1e6d2..022a2c0 100644
--- a/streampipes-container-standalone/src/main/java/org/apache/streampipes/container/standalone/init/PipelineElementContainerResourceConfig.java
+++ b/streampipes-container-standalone/src/main/java/org/apache/streampipes/container/standalone/init/PipelineElementContainerResourceConfig.java
@@ -17,24 +17,23 @@
  */
 package org.apache.streampipes.container.standalone.init;
 
+import org.apache.streampipes.container.api.*;
+import org.apache.streampipes.rest.shared.serializer.JacksonSerializationProvider;
+import org.apache.streampipes.rest.shared.serializer.JsonLdProvider;
 import org.glassfish.jersey.server.ResourceConfig;
 import org.springframework.stereotype.Component;
-import org.apache.streampipes.container.api.Element;
-import org.apache.streampipes.container.api.InvocableElement;
-import org.apache.streampipes.container.api.PipelineTemplateElement;
-import org.apache.streampipes.container.api.SecElement;
-import org.apache.streampipes.container.api.SepElement;
-import org.apache.streampipes.container.api.SepaElement;
-import org.apache.streampipes.container.api.WelcomePage;
 
 @Component
 public class PipelineElementContainerResourceConfig extends ResourceConfig {
 
   public PipelineElementContainerResourceConfig() {
-    register(SecElement.class);
-    register(SepaElement.class);
-    register(SepElement.class);
+    register(DataSinkPipelineElementResource.class);
+    register(DataProcessorPipelineElementResource.class);
+    register(DataSourcePipelineElementResource.class);
     register(WelcomePage.class);
-    register(PipelineTemplateElement.class);
+    register(PipelineElementTemplateResource.class);
+
+    register(JsonLdProvider.class);
+    register(JacksonSerializationProvider.class);
   }
 }
diff --git a/streampipes-container/pom.xml b/streampipes-container/pom.xml
index adad46d..eeea910 100644
--- a/streampipes-container/pom.xml
+++ b/streampipes-container/pom.xml
@@ -50,6 +50,12 @@
 			<artifactId>streampipes-serializers</artifactId>
 			<version>0.68.0-SNAPSHOT</version>
 		</dependency>
+		<dependency>
+			<groupId>org.apache.streampipes</groupId>
+			<artifactId>streampipes-rest-shared</artifactId>
+			<version>0.68.0-SNAPSHOT</version>
+		</dependency>
+
 
 		<!-- External dependencies -->
 		<dependency>
diff --git a/streampipes-container/src/main/java/org/apache/streampipes/container/api/Element.java b/streampipes-container/src/main/java/org/apache/streampipes/container/api/AbstractPipelineElementResource.java
similarity index 80%
rename from streampipes-container/src/main/java/org/apache/streampipes/container/api/Element.java
rename to streampipes-container/src/main/java/org/apache/streampipes/container/api/AbstractPipelineElementResource.java
index fb5b91b..47c3a65 100644
--- a/streampipes-container/src/main/java/org/apache/streampipes/container/api/Element.java
+++ b/streampipes-container/src/main/java/org/apache/streampipes/container/api/AbstractPipelineElementResource.java
@@ -21,8 +21,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 io.fogsy.empire.core.empire.annotation.InvalidRdfException;
-import org.apache.streampipes.commons.Utils;
 import org.apache.streampipes.commons.constants.GlobalStreamPipesConstants;
 import org.apache.streampipes.container.assets.AssetZipGenerator;
 import org.apache.streampipes.container.declarer.DataStreamDeclarer;
@@ -30,7 +28,6 @@ import org.apache.streampipes.container.declarer.Declarer;
 import org.apache.streampipes.container.declarer.SemanticEventProducerDeclarer;
 import org.apache.streampipes.container.init.DeclarersSingleton;
 import org.apache.streampipes.container.locales.LabelGenerator;
-import org.apache.streampipes.container.transform.Transformer;
 import org.apache.streampipes.model.SpDataStream;
 import org.apache.streampipes.model.base.ConsumableStreamPipesEntity;
 import org.apache.streampipes.model.base.NamedStreamPipesEntity;
@@ -40,11 +37,15 @@ import org.apache.streampipes.model.graph.DataSourceDescription;
 import org.apache.streampipes.model.grounding.EventGrounding;
 import org.apache.streampipes.model.grounding.TransportFormat;
 import org.apache.streampipes.model.grounding.TransportProtocol;
-import org.eclipse.rdf4j.model.Model;
-import org.eclipse.rdf4j.rio.RDFHandlerException;
+import org.apache.streampipes.rest.shared.util.SpMediaType;
 
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
 import java.io.IOException;
-import java.lang.reflect.InvocationTargetException;
 import java.net.URI;
 import java.net.URL;
 import java.util.ArrayList;
@@ -52,39 +53,30 @@ import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
+public abstract class AbstractPipelineElementResource<D extends Declarer<?>> {
 
-public abstract class Element<D extends Declarer> {
-  public Element() {
-  }
-
-  protected abstract Map<String, D> getElementDeclarers();
+  protected final String DATA_PROCESSOR_PREFIX = "sepa";
+  protected final String DATA_SINK_PREFIX = "sec";
+  protected final String DATA_SOURCE_PREFIX = "sep";
+  private static final String SLASH = "/";
 
   @GET
   @Path("{id}")
   @Produces(MediaType.APPLICATION_JSON)
-  public String getDescription(@PathParam("id") String elementId) {
-    return getJsonLd(elementId);
+  public NamedStreamPipesEntity getDescription(@PathParam("id") String elementId) {
+    return prepareElement(elementId);
   }
 
   @GET
   @Path("{id}/assets")
-  @Produces("application/zip")
+  @Produces(SpMediaType.APPLICATION_ZIP)
   public Response getAssets(@PathParam("id") String elementId) {
     List<String> includedAssets = getDeclarerById(elementId).declareModel().getIncludedAssets();
     try {
-      return Response
-              .ok()
-              .entity(new AssetZipGenerator(elementId, includedAssets).makeZip())
-              .build();
+      return ok(new AssetZipGenerator(elementId, includedAssets).makeZip());
     } catch (IOException e) {
       e.printStackTrace();
-      return Response.status(500).build();
+      return serverError();
     }
   }
 
@@ -93,10 +85,7 @@ public abstract class Element<D extends Declarer> {
   @Produces("image/png")
   public Response getIconAsset(@PathParam("id") String elementId) throws IOException {
     URL iconUrl = Resources.getResource(makeIconPath(elementId));
-    return Response
-            .ok()
-            .entity(Resources.toByteArray(iconUrl))
-            .build();
+    return ok(Resources.toByteArray(iconUrl));
   }
 
   @GET
@@ -107,13 +96,12 @@ public abstract class Element<D extends Declarer> {
     return Resources.toString(documentationUrl, Charsets.UTF_8);
   }
 
-  protected String getJsonLd(String id) {
-    NamedStreamPipesEntity elem = rewrite(getById(id));
-    return toJsonLd(elem);
+  protected NamedStreamPipesEntity prepareElement(String id) {
+    return rewrite(getById(id));
   }
 
-  protected String getJsonLd(NamedStreamPipesEntity desc, String appendix) {
-    return toJsonLd(rewrite(desc, appendix));
+  protected NamedStreamPipesEntity prepareElement(NamedStreamPipesEntity desc, String appendix) {
+    return rewrite(desc, appendix);
   }
 
   protected D getDeclarerById(String id) {
@@ -150,18 +138,18 @@ public abstract class Element<D extends Declarer> {
       String type = "";
 
       if (desc instanceof DataProcessorDescription) {
-        type = "sepa/";
+        type = DATA_PROCESSOR_PREFIX + SLASH;
       } else if (desc instanceof DataSourceDescription) {
-        type = "sep/";
+        type = DATA_SOURCE_PREFIX + SLASH;
       } else if (desc instanceof DataSinkDescription) {
-        type = "sec/";
+        type = DATA_SINK_PREFIX + SLASH;
       } else if (desc instanceof SpDataStream) {
-        type = "sep/" + appendix + "/";
+        type = DATA_SOURCE_PREFIX + SLASH + appendix + SLASH;
       }
 
-      String originalId = desc.getUri();
-      String uri = DeclarersSingleton.getInstance().getBaseUri() + type + desc.getUri();
-      desc.setUri(uri);
+      String originalId = desc.getElementId();
+      String uri = DeclarersSingleton.getInstance().getBaseUri() + type + desc.getElementId();
+      desc.setElementId(uri);
       desc.setRdfId(new SupportsRdfId.URIKey(URI.create(uri)));
 
       // TODO remove after full internationalization support has been implemented
@@ -178,9 +166,9 @@ public abstract class Element<D extends Declarer> {
           String baseUri = DeclarersSingleton.getInstance().getBaseUri()
                   + type
                   + originalId
-                  + "/"
-                  + stream.getUri();
-          stream.setUri(baseUri);
+                  + SLASH
+                  + stream.getElementId();
+          stream.setElementId(baseUri);
           stream.setRdfId(new SupportsRdfId.URIKey(URI.create(baseUri)));
           // TODO remove after full internationalization support has been implemented
           if (stream.isIncludesLocales()) {
@@ -219,19 +207,6 @@ public abstract class Element<D extends Declarer> {
     return grounding;
   }
 
-  protected String toJsonLd(NamedStreamPipesEntity namedElement) {
-    if (namedElement != null) {
-      Model rdfModel;
-      try {
-        rdfModel = Transformer.toJsonLd(namedElement);
-        return Utils.asString(rdfModel);
-      } catch (IllegalAccessException | InvocationTargetException | ClassNotFoundException | InvalidRdfException | RDFHandlerException e) {
-        e.printStackTrace();
-      }
-    }
-    return "{}";
-  }
-
   private String makeIconPath(String elementId) {
     return makePath(elementId, GlobalStreamPipesConstants.STD_ICON_NAME);
   }
@@ -241,6 +216,27 @@ public abstract class Element<D extends Declarer> {
   }
 
   private String makePath(String elementId, String assetAppendix) {
-    return elementId + "/" + assetAppendix;
+    return elementId + SLASH + assetAppendix;
+  }
+
+  protected <T> Response ok(T entity) {
+    return Response
+            .ok()
+            .entity(entity)
+            .build();
+  }
+
+  protected Response clientError() {
+    return Response
+            .status(400)
+            .build();
   }
+
+  protected Response serverError() {
+    return Response
+            .status(500)
+            .build();
+  }
+
+  protected abstract Map<String, D> getElementDeclarers();
 }
diff --git a/streampipes-container/src/main/java/org/apache/streampipes/container/api/SepaElement.java b/streampipes-container/src/main/java/org/apache/streampipes/container/api/DataProcessorPipelineElementResource.java
similarity index 91%
rename from streampipes-container/src/main/java/org/apache/streampipes/container/api/SepaElement.java
rename to streampipes-container/src/main/java/org/apache/streampipes/container/api/DataProcessorPipelineElementResource.java
index bd3b3be..cf65524 100644
--- a/streampipes-container/src/main/java/org/apache/streampipes/container/api/SepaElement.java
+++ b/streampipes-container/src/main/java/org/apache/streampipes/container/api/DataProcessorPipelineElementResource.java
@@ -27,15 +27,14 @@ import org.apache.streampipes.model.grounding.KafkaTransportProtocol;
 import org.apache.streampipes.model.grounding.TransportProtocol;
 import org.apache.streampipes.sdk.extractor.ProcessingElementParameterExtractor;
 
-import java.util.Map;
-
 import javax.ws.rs.Path;
+import java.util.Map;
 
 @Path("/sepa")
-public class SepaElement extends InvocableElement<DataProcessorInvocation,
+public class DataProcessorPipelineElementResource extends InvocablePipelineElementResource<DataProcessorInvocation,
         SemanticEventProcessingAgentDeclarer, ProcessingElementParameterExtractor> {
 
-    public SepaElement() {
+    public DataProcessorPipelineElementResource() {
 
         super(DataProcessorInvocation.class);
     }
@@ -47,7 +46,7 @@ public class SepaElement extends InvocableElement<DataProcessorInvocation,
 
     @Override
     protected String getInstanceId(String uri, String elementId) {
-        return Util.getInstanceId(uri, "sepa", elementId);
+        return Util.getInstanceId(uri, DATA_PROCESSOR_PREFIX, elementId);
     }
 
     @Override
@@ -59,7 +58,6 @@ public class SepaElement extends InvocableElement<DataProcessorInvocation,
     protected DataProcessorInvocation createGroundingDebugInformation(DataProcessorInvocation graph) {
         graph.getInputStreams().forEach(is -> {
            modifyGrounding(is.getEventGrounding());
-
         });
 
         modifyGrounding(graph.getOutputStream().getEventGrounding());
diff --git a/streampipes-container/src/main/java/org/apache/streampipes/container/api/SecElement.java b/streampipes-container/src/main/java/org/apache/streampipes/container/api/DataSinkPipelineElementResource.java
similarity index 54%
rename from streampipes-container/src/main/java/org/apache/streampipes/container/api/SecElement.java
rename to streampipes-container/src/main/java/org/apache/streampipes/container/api/DataSinkPipelineElementResource.java
index 864823d..19ae988 100644
--- a/streampipes-container/src/main/java/org/apache/streampipes/container/api/SecElement.java
+++ b/streampipes-container/src/main/java/org/apache/streampipes/container/api/DataSinkPipelineElementResource.java
@@ -18,31 +18,22 @@
 
 package org.apache.streampipes.container.api;
 
-import org.apache.streampipes.container.declarer.InvocableDeclarer;
 import org.apache.streampipes.container.declarer.SemanticEventConsumerDeclarer;
 import org.apache.streampipes.container.init.DeclarersSingleton;
-import org.apache.streampipes.container.init.RunningInstances;
 import org.apache.streampipes.container.util.Util;
-import org.apache.streampipes.model.base.NamedStreamPipesEntity;
 import org.apache.streampipes.model.graph.DataSinkInvocation;
 import org.apache.streampipes.model.grounding.KafkaTransportProtocol;
 import org.apache.streampipes.model.grounding.TransportProtocol;
 import org.apache.streampipes.sdk.extractor.DataSinkParameterExtractor;
 
-import java.util.Map;
-
-import javax.ws.rs.GET;
 import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
+import java.util.Map;
 
 @Path("/sec")
-public class SecElement extends InvocableElement<DataSinkInvocation,
+public class DataSinkPipelineElementResource extends InvocablePipelineElementResource<DataSinkInvocation,
         SemanticEventConsumerDeclarer, DataSinkParameterExtractor> {
 
-    public SecElement() {
+    public DataSinkPipelineElementResource() {
         super(DataSinkInvocation.class);
     }
 
@@ -53,7 +44,7 @@ public class SecElement extends InvocableElement<DataSinkInvocation,
 
     @Override
     protected String getInstanceId(String uri, String elementId) {
-        return Util.getInstanceId(uri, "sec", elementId);
+        return Util.getInstanceId(uri, DATA_SINK_PREFIX, elementId);
     }
 
     @Override
@@ -74,37 +65,4 @@ public class SecElement extends InvocableElement<DataSinkInvocation,
 
         return graph;
     }
-
-    @GET
-    @Path("{elementId}/{runningInstanceId}")
-    @Produces(MediaType.TEXT_HTML)
-    public Response getHtml(@PathParam("elementId") String elementId, @PathParam("runningInstanceId") String runningInstanceId) {
-
-        InvocableDeclarer runningInstance = RunningInstances.INSTANCE.getInvocation(runningInstanceId);
-        NamedStreamPipesEntity description = RunningInstances.INSTANCE.getDescription(runningInstanceId);
-
-        if (runningInstance != null && runningInstance instanceof SemanticEventConsumerDeclarer && description != null
-                && description instanceof DataSinkInvocation) {
-
-            SemanticEventConsumerDeclarer instanceDeclarer = (SemanticEventConsumerDeclarer) runningInstance;
-            DataSinkInvocation desctionDeclarer = (DataSinkInvocation) description;
-
-            // TODO was previous getHtml, do we still need the whole method?
-            return getResponse("HTML removed");
-
-
-        } else {
-            return getResponse("Error in element " + elementId);
-       }
-    }
-
-    private Response getResponse(String text) {
-        return Response.ok() //200
-                    .entity(text)
-                    .header("Access-Control-Allow-Origin", "*")
-                    .header("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT")
-                    .header("Access-Control-Allow-Credentials", "false")
-                    .header("Access-Control-Max-Age", "60")
-                    .allow("OPTIONS").build();
-    }
 }
diff --git a/streampipes-container/src/main/java/org/apache/streampipes/container/api/SepElement.java b/streampipes-container/src/main/java/org/apache/streampipes/container/api/DataSourcePipelineElementResource.java
similarity index 75%
rename from streampipes-container/src/main/java/org/apache/streampipes/container/api/SepElement.java
rename to streampipes-container/src/main/java/org/apache/streampipes/container/api/DataSourcePipelineElementResource.java
index 0d3c0f0..8b1722c 100644
--- a/streampipes-container/src/main/java/org/apache/streampipes/container/api/SepElement.java
+++ b/streampipes-container/src/main/java/org/apache/streampipes/container/api/DataSourcePipelineElementResource.java
@@ -18,8 +18,6 @@
 
 package org.apache.streampipes.container.api;
 
-import org.eclipse.rdf4j.repository.RepositoryException;
-import org.eclipse.rdf4j.rio.RDFParseException;
 import org.apache.streampipes.container.assets.AssetZipGenerator;
 import org.apache.streampipes.container.declarer.DataSetDeclarer;
 import org.apache.streampipes.container.declarer.DataStreamDeclarer;
@@ -27,28 +25,23 @@ import org.apache.streampipes.container.declarer.SemanticEventProducerDeclarer;
 import org.apache.streampipes.container.init.DeclarersSingleton;
 import org.apache.streampipes.container.init.RunningDatasetInstances;
 import org.apache.streampipes.container.transform.Transformer;
-import org.apache.streampipes.container.util.Util;
 import org.apache.streampipes.model.Response;
 import org.apache.streampipes.model.SpDataSet;
 import org.apache.streampipes.model.SpDataStream;
 import org.apache.streampipes.model.graph.DataSourceDescription;
+import org.apache.streampipes.rest.shared.util.SpMediaType;
 import org.apache.streampipes.vocabulary.StreamPipes;
+import org.eclipse.rdf4j.repository.RepositoryException;
+import org.eclipse.rdf4j.rio.RDFParseException;
 
+import javax.ws.rs.*;
+import javax.ws.rs.core.MediaType;
 import java.io.IOException;
 import java.util.Map;
 import java.util.Optional;
 
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
-
 @Path("/sep")
-public class SepElement extends Element<SemanticEventProducerDeclarer> {
+public class DataSourcePipelineElementResource extends AbstractPipelineElementResource<SemanticEventProducerDeclarer> {
 
   @Override
   protected Map<String, SemanticEventProducerDeclarer> getElementDeclarers() {
@@ -57,14 +50,13 @@ public class SepElement extends Element<SemanticEventProducerDeclarer> {
 
   @GET
   @Path("{sourceId}/{streamId}")
-  @Consumes(MediaType.APPLICATION_JSON)
-  @Produces(MediaType.APPLICATION_JSON)
-  public String getDescription(@PathParam("sourceId") String sourceId, @PathParam("streamId") String streamId) {
+  @Produces({MediaType.APPLICATION_JSON, SpMediaType.JSONLD})
+  public javax.ws.rs.core.Response getDescription(@PathParam("sourceId") String sourceId, @PathParam("streamId") String streamId) {
     Optional<SpDataStream> stream = getStreamBySourceId(sourceId, streamId);
     if (stream.isPresent()) {
-      return getJsonLd(stream.get(), getById(sourceId).getUri());
+      return ok(prepareElement(stream.get(), getById(sourceId).getUri()));
     } else {
-      return "{}";
+      return clientError();
     }
   }
 
@@ -74,12 +66,9 @@ public class SepElement extends Element<SemanticEventProducerDeclarer> {
   public javax.ws.rs.core.Response getAssets(@PathParam("sourceId") String sourceId, @PathParam
           ("streamId") String streamId) {
     try {
-      return javax.ws.rs.core.Response
-              .ok()
-              .entity(new AssetZipGenerator(streamId,
+      return ok(new AssetZipGenerator(streamId,
                       getStreamBySourceId(sourceId, streamId).get()
-                      .getIncludedAssets()).makeZip())
-              .build();
+                      .getIncludedAssets()).makeZip());
     } catch (IOException e) {
       e.printStackTrace();
       return javax.ws.rs.core.Response.status(500).build();
@@ -94,9 +83,9 @@ public class SepElement extends Element<SemanticEventProducerDeclarer> {
 
   @POST
   @Path("{sourceId}/{streamId}")
-  @Consumes(MediaType.APPLICATION_JSON)
-  @Produces(MediaType.APPLICATION_JSON)
-  public String invokeRuntime(@PathParam("sourceId") String sourceId, @PathParam("streamId") String streamId, String
+  @Produces({MediaType.APPLICATION_JSON, SpMediaType.JSONLD})
+  @Consumes({MediaType.APPLICATION_JSON, SpMediaType.JSONLD})
+  public javax.ws.rs.core.Response invokeRuntime(@PathParam("sourceId") String sourceId, @PathParam("streamId") String streamId, String
           payload) {
     SemanticEventProducerDeclarer declarer = getDeclarerById(sourceId);
 
@@ -118,21 +107,21 @@ public class SepElement extends Element<SemanticEventProducerDeclarer> {
                 -> {
           // TODO notify
         });
-        return Util.toResponseString(new Response(runningInstanceId, true));
+        return ok(new Response(runningInstanceId, true));
       } catch (RDFParseException | RepositoryException | IOException | InstantiationException |
               IllegalAccessException e) {
         e.printStackTrace();
-        return Util.toResponseString(new Response("", false, e.getMessage()));
+        return ok(new Response("", false, e.getMessage()));
       }
     }
-    return Util.toResponseString("", false, "Could not find the element with id: " + "");
+    return ok(new Response("", false, "Could not find the element with id: " + ""));
 
   }
 
   @DELETE
   @Path("{sourceId}/{streamId}/{runningInstanceId}")
   @Produces(MediaType.APPLICATION_JSON)
-  public String detach(@PathParam("runningInstanceId") String runningInstanceId) {
+  public javax.ws.rs.core.Response detach(@PathParam("runningInstanceId") String runningInstanceId) {
 
     DataSetDeclarer runningInstance = RunningDatasetInstances.INSTANCE.getInvocation(runningInstanceId);
 
@@ -143,9 +132,9 @@ public class SepElement extends Element<SemanticEventProducerDeclarer> {
         RunningDatasetInstances.INSTANCE.remove(runningInstanceId);
       }
 
-      return Util.toResponseString(resp);
+      return ok(resp);
     }
 
-    return Util.toResponseString(runningInstanceId, false, "Could not find the running instance with id: " + runningInstanceId);
+    return ok(new Response(runningInstanceId, false, "Could not find the running instance with id: " + runningInstanceId));
   }
 }
diff --git a/streampipes-container/src/main/java/org/apache/streampipes/container/api/InvocableElement.java b/streampipes-container/src/main/java/org/apache/streampipes/container/api/InvocablePipelineElementResource.java
similarity index 71%
rename from streampipes-container/src/main/java/org/apache/streampipes/container/api/InvocableElement.java
rename to streampipes-container/src/main/java/org/apache/streampipes/container/api/InvocablePipelineElementResource.java
index 4eaed84..962fefb 100644
--- a/streampipes-container/src/main/java/org/apache/streampipes/container/api/InvocableElement.java
+++ b/streampipes-container/src/main/java/org/apache/streampipes/container/api/InvocablePipelineElementResource.java
@@ -23,8 +23,6 @@ import org.apache.streampipes.commons.exceptions.SpRuntimeException;
 import org.apache.streampipes.container.declarer.Declarer;
 import org.apache.streampipes.container.declarer.InvocableDeclarer;
 import org.apache.streampipes.container.init.RunningInstances;
-import org.apache.streampipes.container.transform.Transformer;
-import org.apache.streampipes.container.util.Util;
 import org.apache.streampipes.model.Response;
 import org.apache.streampipes.model.base.InvocableStreamPipesEntity;
 import org.apache.streampipes.model.runtime.RuntimeOptionsRequest;
@@ -32,38 +30,34 @@ 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.GsonSerializer;
 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;
-import java.io.IOException;
 import java.util.List;
 import java.util.Map;
 
-public abstract class InvocableElement<I extends InvocableStreamPipesEntity, D extends Declarer,
-        P extends AbstractParameterExtractor<I>> extends Element<D> {
+public abstract class InvocablePipelineElementResource<I extends InvocableStreamPipesEntity, D extends Declarer<?>,
+        P extends AbstractParameterExtractor<I>> extends AbstractPipelineElementResource<D> {
 
     protected abstract Map<String, D> getElementDeclarers();
     protected abstract String getInstanceId(String uri, String elementId);
 
     protected Class<I> clazz;
 
-    public InvocableElement(Class<I> clazz) {
+    public InvocablePipelineElementResource(Class<I> clazz) {
         this.clazz = clazz;
     }
 
     @POST
     @Path("{elementId}")
-    @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    public String invokeRuntime(@PathParam("elementId") String elementId, String payload) {
+    @Consumes(MediaType.APPLICATION_JSON)
+    public javax.ws.rs.core.Response invokeRuntime(@PathParam("elementId") String elementId, I graph) {
 
         try {
-            I graph = Transformer.fromJsonLd(clazz, payload);
-
             if (isDebug()) {
               graph = createGroundingDebugInformation(graph);
             }
@@ -74,22 +68,23 @@ public abstract class InvocableElement<I extends InvocableStreamPipesEntity, D e
                 String runningInstanceId = getInstanceId(graph.getElementId(), elementId);
                 RunningInstances.INSTANCE.add(runningInstanceId, graph, declarer.getClass().newInstance());
                 Response resp = RunningInstances.INSTANCE.getInvocation(runningInstanceId).invokeRuntime(graph);
-                return Util.toResponseString(resp);
+                return ok(resp);
             }
-        } catch (RDFParseException | IOException | RepositoryException | InstantiationException | IllegalAccessException e) {
+        } catch (RDFParseException | RepositoryException | InstantiationException | IllegalAccessException e) {
             e.printStackTrace();
-            return Util.toResponseString(new Response(elementId, false, e.getMessage()));
+            return ok(new Response(elementId, false, e.getMessage()));
         }
 
-        return Util.toResponseString(elementId, false, "Could not find the element with id: " + elementId);
+        return ok(new Response(elementId, false, "Could not find the element with id: " + elementId));
     }
 
     @POST
     @Path("{elementId}/configurations")
-    public String fetchConfigurations(@PathParam("elementId") String elementId, String payload) {
+    @Produces(MediaType.APPLICATION_JSON)
+    @Consumes(MediaType.APPLICATION_JSON)
+    public javax.ws.rs.core.Response fetchConfigurations(@PathParam("elementId") String elementId,
+                                                         RuntimeOptionsRequest runtimeOptionsRequest) {
 
-        RuntimeOptionsRequest runtimeOptionsRequest = GsonSerializer.getGsonWithIds().fromJson(payload,
-                RuntimeOptionsRequest.class);
         ResolvesContainerProvidedOptions resolvesOptions = (ResolvesContainerProvidedOptions) getDeclarerById(elementId);
 
         List<Option> availableOptions =
@@ -100,24 +95,23 @@ public abstract class InvocableElement<I extends InvocableStreamPipesEntity, D e
                         runtimeOptionsRequest.getAppId()
                 ));
 
-        return GsonSerializer.getGsonWithIds().toJson(new RuntimeOptionsResponse(runtimeOptionsRequest,
-                availableOptions));
+        return ok(new RuntimeOptionsResponse(runtimeOptionsRequest, availableOptions));
     }
 
     @POST
     @Path("{elementId}/output")
-    public String fetchOutputStrategy(@PathParam("elementId") String elementId, String payload) {
+    public javax.ws.rs.core.Response fetchOutputStrategy(@PathParam("elementId") String elementId, String payload) {
         try {
             I runtimeOptionsRequest = JacksonSerializer.getObjectMapper().readValue(payload, clazz);
             ResolvesContainerProvidedOutputStrategy<I, P> resolvesOutput =
                     (ResolvesContainerProvidedOutputStrategy<I, P>)
                             getDeclarerById
                                     (elementId);
-            return JacksonSerializer.getObjectMapper().writeValueAsString(resolvesOutput.resolveOutputStrategy
+            return ok(resolvesOutput.resolveOutputStrategy
                     (runtimeOptionsRequest, getExtractor(runtimeOptionsRequest)));
         } catch (SpRuntimeException | JsonProcessingException e) {
             e.printStackTrace();
-            return Util.toResponseString(elementId, false);
+            return ok(new Response(elementId, false));
         }
     }
 
@@ -126,7 +120,7 @@ public abstract class InvocableElement<I extends InvocableStreamPipesEntity, D e
     @DELETE
     @Path("{elementId}/{runningInstanceId}")
     @Produces(MediaType.APPLICATION_JSON)
-    public String detach(@PathParam("elementId") String elementId, @PathParam("runningInstanceId") String runningInstanceId) {
+    public javax.ws.rs.core.Response detach(@PathParam("elementId") String elementId, @PathParam("runningInstanceId") String runningInstanceId) {
 
         InvocableDeclarer runningInstance = RunningInstances.INSTANCE.getInvocation(runningInstanceId);
 
@@ -137,10 +131,10 @@ public abstract class InvocableElement<I extends InvocableStreamPipesEntity, D e
                 RunningInstances.INSTANCE.remove(runningInstanceId);
             }
 
-            return Util.toResponseString(resp);
+            return ok(resp);
         }
 
-        return Util.toResponseString(elementId, false, "Could not find the running instance with id: " + runningInstanceId);
+        return ok(new Response(elementId, false, "Could not find the running instance with id: " + runningInstanceId));
     }
 
     protected abstract P getExtractor(I graph);
diff --git a/streampipes-container/src/main/java/org/apache/streampipes/container/api/PipelineTemplateElement.java b/streampipes-container/src/main/java/org/apache/streampipes/container/api/PipelineElementTemplateResource.java
similarity index 91%
rename from streampipes-container/src/main/java/org/apache/streampipes/container/api/PipelineTemplateElement.java
rename to streampipes-container/src/main/java/org/apache/streampipes/container/api/PipelineElementTemplateResource.java
index b19ce32..1dfb5f8 100644
--- a/streampipes-container/src/main/java/org/apache/streampipes/container/api/PipelineTemplateElement.java
+++ b/streampipes-container/src/main/java/org/apache/streampipes/container/api/PipelineElementTemplateResource.java
@@ -20,12 +20,11 @@ package org.apache.streampipes.container.api;
 import org.apache.streampipes.container.declarer.PipelineTemplateDeclarer;
 import org.apache.streampipes.container.init.DeclarersSingleton;
 
-import java.util.Map;
-
 import javax.ws.rs.Path;
+import java.util.Map;
 
 @Path("/template")
-public class PipelineTemplateElement extends Element<PipelineTemplateDeclarer> {
+public class PipelineElementTemplateResource extends AbstractPipelineElementResource<PipelineTemplateDeclarer> {
 
   @Override
   protected Map<String, PipelineTemplateDeclarer> getElementDeclarers() {
diff --git a/streampipes-container/src/main/java/org/apache/streampipes/container/util/Util.java b/streampipes-container/src/main/java/org/apache/streampipes/container/util/Util.java
index 5b39877..0761f12 100644
--- a/streampipes-container/src/main/java/org/apache/streampipes/container/util/Util.java
+++ b/streampipes-container/src/main/java/org/apache/streampipes/container/util/Util.java
@@ -34,10 +34,6 @@ public class Util {
                 + Slash, "");
     }
 
-    public static String toResponseString(String elementId, boolean success) {
-        return toResponseString(elementId, success, "");
-    }
-
     public static Response fromResponseString(String s) {
         Gson gson = new Gson();
         Response result = gson.fromJson(s, Response.class);
@@ -49,13 +45,4 @@ public class Util {
         }
 
     }
-
-    public static String toResponseString(String elementId, boolean success, String optionalMessage) {
-        return new Response(elementId, success, optionalMessage).toString();
-    }
-
-    public static String toResponseString(Response response) {
-        Gson gson = new Gson();
-        return gson.toJson(response);
-    }
 }
diff --git a/streampipes-model/src/main/java/org/apache/streampipes/model/Response.java b/streampipes-model/src/main/java/org/apache/streampipes/model/Response.java
index 6300477..c1a8fa0 100644
--- a/streampipes-model/src/main/java/org/apache/streampipes/model/Response.java
+++ b/streampipes-model/src/main/java/org/apache/streampipes/model/Response.java
@@ -18,15 +18,15 @@
 
 package org.apache.streampipes.model;
 
-import com.google.gson.Gson;
-
 public class Response {
 
 	private Boolean success;
-	
 	private String elementId;
-	
 	private String optionalMessage;
+
+	public Response() {
+
+	}
 	
 	public Response(String elementId, boolean success)
 	{
@@ -52,6 +52,18 @@ public class Response {
 		return optionalMessage;
 	}
 
+	public void setSuccess(Boolean success) {
+		this.success = success;
+	}
+
+	public void setElementId(String elementId) {
+		this.elementId = elementId;
+	}
+
+	public void setOptionalMessage(String optionalMessage) {
+		this.optionalMessage = optionalMessage;
+	}
+
 	@Override
 	public int hashCode() {
 		final int prime = 31;
@@ -81,15 +93,7 @@ public class Response {
 				return false;
 		} else if (!optionalMessage.equals(other.optionalMessage))
 			return false;
-		if (success != other.success)
-			return false;
-		return true;
+		return success == other.success;
 	}
 
-
-	@Override
-	public String toString() {
-		Gson gson = new Gson();
-		return gson.toJson(this);
-	}
 }
diff --git a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/endpoint/EndpointItemFetcher.java b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/endpoint/EndpointItemFetcher.java
index c93c936..9986b15 100644
--- a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/endpoint/EndpointItemFetcher.java
+++ b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/endpoint/EndpointItemFetcher.java
@@ -18,21 +18,20 @@
 
 package org.apache.streampipes.manager.endpoint;
 
-import com.google.gson.Gson;
-import com.google.gson.reflect.TypeToken;
+import com.fasterxml.jackson.core.type.TypeReference;
 import org.apache.http.client.fluent.Request;
 import org.apache.http.message.BasicHeader;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 import org.apache.streampipes.model.client.endpoint.RdfEndpoint;
 import org.apache.streampipes.model.client.endpoint.RdfEndpointItem;
+import org.apache.streampipes.serializers.json.JacksonSerializer;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
+import javax.ws.rs.core.MediaType;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
 
-import javax.ws.rs.core.MediaType;
-
 public class EndpointItemFetcher {
     Logger logger = LoggerFactory.getLogger(EndpointItemFetcher.class);
 
@@ -52,11 +51,12 @@ public class EndpointItemFetcher {
         try {
             String result = Request.Get(e.getEndpointUrl())
                     .addHeader(new BasicHeader("Accept", MediaType.APPLICATION_JSON))
+                    .connectTimeout(1000)
                     .execute()
                     .returnContent()
                     .asString();
 
-            return new Gson().fromJson(result, new TypeToken<List<RdfEndpointItem>>(){}.getType());
+            return JacksonSerializer.getObjectMapper().readValue(result, new TypeReference<List<RdfEndpointItem>>() {});
         } catch (IOException e1) {
             logger.warn("Processing Element Descriptions could not be fetched from RDF endpoint: " + e.getEndpointUrl());
             return new ArrayList<>();
diff --git a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/endpoint/EndpointItemParser.java b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/endpoint/EndpointItemParser.java
index 51befc5..eeb49e7 100644
--- a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/endpoint/EndpointItemParser.java
+++ b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/endpoint/EndpointItemParser.java
@@ -17,23 +17,23 @@
  */
 package org.apache.streampipes.manager.endpoint;
 
+import org.apache.http.client.fluent.Request;
 import org.apache.streampipes.manager.operations.Operations;
 import org.apache.streampipes.model.message.Message;
 import org.apache.streampipes.model.message.NotificationType;
 import org.apache.streampipes.model.message.Notifications;
 
+import javax.ws.rs.core.MediaType;
 import java.io.IOException;
-import java.net.URI;
-import java.net.URISyntaxException;
 import java.net.URLDecoder;
 
 public class EndpointItemParser {
 
-  public Message parseAndAddEndpointItem(String uri, String username, boolean publicElement,
+  public Message parseAndAddEndpointItem(String url, String username, boolean publicElement,
                                          boolean refreshCache) {
     try {
-      uri = URLDecoder.decode(uri, "UTF-8");
-      String payload = parseURIContent(uri, null);
+      url = URLDecoder.decode(url, "UTF-8");
+      String payload = parseURIContent(url);
       return Operations.verifyAndAddElement(payload, username, publicElement, refreshCache);
     } catch (Exception e) {
       e.printStackTrace();
@@ -42,8 +42,12 @@ public class EndpointItemParser {
     }
   }
 
-  private String parseURIContent(String payload, String mediaType) throws URISyntaxException, IOException {
-    URI uri = new URI(payload);
-    return HttpJsonParser.getContentFromUrl(uri, mediaType);
+  private String parseURIContent(String url) throws IOException {
+    return Request
+            .Get(url)
+            .addHeader("Accept", MediaType.APPLICATION_JSON)
+            .execute()
+            .returnContent()
+            .asString();
   }
 }
diff --git a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/execution/http/HttpRequestBuilder.java b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/execution/http/HttpRequestBuilder.java
index 3b248f2..2077607 100644
--- a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/execution/http/HttpRequestBuilder.java
+++ b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/execution/http/HttpRequestBuilder.java
@@ -18,25 +18,22 @@
 
 package org.apache.streampipes.manager.execution.http;
 
-import com.google.gson.Gson;
 import com.google.gson.JsonSyntaxException;
-import org.apache.http.client.ClientProtocolException;
 import org.apache.http.client.fluent.Request;
 import org.apache.http.client.fluent.Response;
 import org.apache.http.entity.ContentType;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.apache.streampipes.commons.Utils;
 import org.apache.streampipes.model.base.NamedStreamPipesEntity;
 import org.apache.streampipes.model.pipeline.PipelineElementStatus;
-import org.apache.streampipes.serializers.jsonld.JsonLdTransformer;
+import org.apache.streampipes.serializers.json.JacksonSerializer;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.io.IOException;
 
 public class HttpRequestBuilder {
 
-  private NamedStreamPipesEntity payload;
-  private String belongsTo;
+  private final NamedStreamPipesEntity payload;
+  private final String belongsTo;
 
   private final static Logger LOG = LoggerFactory.getLogger(HttpRequestBuilder.class);
 
@@ -48,9 +45,9 @@ public class HttpRequestBuilder {
   public PipelineElementStatus invoke() {
     LOG.info("Invoking element: " + belongsTo);
     try {
-      String jsonLd = jsonLd();
+      String jsonDocument = toJson();
       Response httpResp =
-              Request.Post(belongsTo).bodyString(jsonLd, ContentType.APPLICATION_JSON).connectTimeout(10000).execute();
+              Request.Post(belongsTo).bodyString(jsonDocument, ContentType.APPLICATION_JSON).connectTimeout(10000).execute();
       return handleResponse(httpResp);
     } catch (Exception e) {
       LOG.error(e.getMessage());
@@ -68,14 +65,16 @@ public class HttpRequestBuilder {
     }
   }
 
-  private PipelineElementStatus handleResponse(Response httpResp) throws JsonSyntaxException, ClientProtocolException, IOException {
+  private PipelineElementStatus handleResponse(Response httpResp) throws JsonSyntaxException, IOException {
     String resp = httpResp.returnContent().asString();
-    org.apache.streampipes.model.Response streamPipesResp = new Gson().fromJson(resp, org.apache.streampipes.model.Response.class);
+    org.apache.streampipes.model.Response streamPipesResp = JacksonSerializer
+            .getObjectMapper()
+            .readValue(resp, org.apache.streampipes.model.Response.class);
     return convert(streamPipesResp);
   }
 
-  private String jsonLd() throws Exception {
-    return Utils.asString(new JsonLdTransformer().toJsonLd(payload));
+  private String toJson() throws Exception {
+    return JacksonSerializer.getObjectMapper().writeValueAsString(payload);
   }
 
   private PipelineElementStatus convert(org.apache.streampipes.model.Response response) {
diff --git a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/verification/ElementVerifier.java b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/verification/ElementVerifier.java
index c760f0c..292f870 100644
--- a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/verification/ElementVerifier.java
+++ b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/verification/ElementVerifier.java
@@ -18,9 +18,7 @@
 
 package org.apache.streampipes.manager.verification;
 
-import org.eclipse.rdf4j.repository.RepositoryException;
-import org.eclipse.rdf4j.rio.RDFParseException;
-import org.eclipse.rdf4j.rio.UnsupportedRDFormatException;
+import com.fasterxml.jackson.core.JsonProcessingException;
 import org.apache.streampipes.commons.exceptions.SepaParseException;
 import org.apache.streampipes.manager.storage.UserManagementService;
 import org.apache.streampipes.manager.storage.UserService;
@@ -29,14 +27,13 @@ import org.apache.streampipes.manager.verification.messages.VerificationResult;
 import org.apache.streampipes.manager.verification.structure.GeneralVerifier;
 import org.apache.streampipes.manager.verification.structure.Verifier;
 import org.apache.streampipes.model.base.NamedStreamPipesEntity;
-import org.apache.streampipes.model.message.ErrorMessage;
-import org.apache.streampipes.model.message.Message;
-import org.apache.streampipes.model.message.Notification;
-import org.apache.streampipes.model.message.NotificationType;
-import org.apache.streampipes.model.message.SuccessMessage;
-import org.apache.streampipes.serializers.jsonld.JsonLdTransformer;
+import org.apache.streampipes.model.message.*;
+import org.apache.streampipes.serializers.json.JacksonSerializer;
 import org.apache.streampipes.storage.api.IPipelineElementDescriptionStorageCache;
 import org.apache.streampipes.storage.management.StorageManager;
+import org.eclipse.rdf4j.repository.RepositoryException;
+import org.eclipse.rdf4j.rio.RDFParseException;
+import org.eclipse.rdf4j.rio.UnsupportedRDFormatException;
 
 import java.io.IOException;
 import java.util.ArrayList;
@@ -110,8 +107,7 @@ public abstract class ElementVerifier<T extends NamedStreamPipesEntity> {
   public Message verifyAndUpdate(String username) throws SepaParseException {
     try {
       this.elementDescription = transform();
-    } catch (RDFParseException | UnsupportedRDFormatException
-            | RepositoryException | IOException e) {
+    } catch (JsonProcessingException e) {
       return new ErrorMessage(NotificationType.UNKNOWN_ERROR.uiNotification());
     }
     verify();
@@ -165,7 +161,7 @@ public abstract class ElementVerifier<T extends NamedStreamPipesEntity> {
     return !validationResults.stream().anyMatch(validator -> (validator instanceof VerificationError));
   }
 
-  protected T transform() throws RDFParseException, UnsupportedRDFormatException, RepositoryException, IOException {
-    return new JsonLdTransformer().fromJsonLd(graphData, elementClass);
+  protected T transform() throws JsonProcessingException {
+    return JacksonSerializer.getObjectMapper().readValue(graphData, elementClass);
   }
 }
diff --git a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/verification/SepVerifier.java b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/verification/SepVerifier.java
index 74d90ba..14da852 100644
--- a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/verification/SepVerifier.java
+++ b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/verification/SepVerifier.java
@@ -18,7 +18,6 @@
 
 package org.apache.streampipes.manager.verification;
 
-import org.apache.streampipes.commons.exceptions.SepaParseException;
 import org.apache.streampipes.manager.assets.AssetManager;
 import org.apache.streampipes.model.SpDataStream;
 import org.apache.streampipes.model.graph.DataSourceDescription;
@@ -27,10 +26,8 @@ import java.io.IOException;
 
 public class SepVerifier extends ElementVerifier<DataSourceDescription> {
 
-  public SepVerifier(String graphData)
-          throws SepaParseException {
+  public SepVerifier(String graphData) {
     super(graphData, DataSourceDescription.class);
-    // TODO Auto-generated constructor stub
   }
 
   @Override
diff --git a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/verification/extractor/TypeExtractor.java b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/verification/extractor/TypeExtractor.java
index 5f3472c..7ec4697 100644
--- a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/verification/extractor/TypeExtractor.java
+++ b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/verification/extractor/TypeExtractor.java
@@ -18,72 +18,65 @@
 
 package org.apache.streampipes.manager.verification.extractor;
 
-import org.eclipse.rdf4j.model.Model;
-import org.eclipse.rdf4j.model.Statement;
-import org.eclipse.rdf4j.model.vocabulary.RDF;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.node.ObjectNode;
 import org.apache.streampipes.commons.exceptions.SepaParseException;
 import org.apache.streampipes.manager.verification.ElementVerifier;
 import org.apache.streampipes.manager.verification.SecVerifier;
 import org.apache.streampipes.manager.verification.SepVerifier;
 import org.apache.streampipes.manager.verification.SepaVerifier;
-import org.apache.streampipes.vocabulary.StreamPipes;
+import org.apache.streampipes.model.graph.DataProcessorDescription;
+import org.apache.streampipes.model.graph.DataSinkDescription;
+import org.apache.streampipes.model.graph.DataSourceDescription;
+import org.apache.streampipes.serializers.json.JacksonSerializer;
 
-import java.util.List;
-import java.util.Optional;
 import java.util.logging.Logger;
-import java.util.stream.Collectors;
 
 public class TypeExtractor {
 
 	private static final Logger logger = Logger.getAnonymousLogger();
 
-	private String graphData;
+	private String pipelineElementDescription;
 	
-	public TypeExtractor(String graphData)
-	{
-		this.graphData = graphData;
+	public TypeExtractor(String pipelineElementDescription) {
+		this.pipelineElementDescription = pipelineElementDescription;
+
 	}
 	
-	public ElementVerifier<?> getTypeVerifier() throws SepaParseException
-	{
-		List<Statement> typeDefinitions = getModel().stream().filter(stmt -> stmt.getPredicate().equals(RDF.TYPE)).collect(Collectors.toList());
-		typeDefinitions.forEach(typeDef -> typeDef.getObject());
-		return getTypeDef(typeDefinitions.stream().filter(stmt -> 
-			((stmt.getObject().toString().equals(ec())) || 
-			(stmt.getObject().toString().equals(epa())) ||
-			(stmt.getObject().toString().equals(ep())))).findFirst());
+	public ElementVerifier<?> getTypeVerifier() throws SepaParseException {
+		try {
+			ObjectNode jsonNode = JacksonSerializer.getObjectMapper().readValue(this.pipelineElementDescription, ObjectNode.class);
+			String jsonClassName = jsonNode.get("@class").asText();
+			return getTypeDef(jsonClassName);
+		} catch (JsonProcessingException e) {
+			throw new SepaParseException();
+		}
 	}
 
-	private ElementVerifier<?> getTypeDef(Optional<Statement> typeStatement) throws SepaParseException {
-		if (!typeStatement.isPresent()) throw new SepaParseException();
-		else 
-		{
-			Statement stmt = typeStatement.get();
-			if (stmt.getObject().toString().equals(ep())) { logger.info("Detected type sep"); return new SepVerifier(graphData); }
-			else if (stmt.getObject().toString().equals(epa())) { logger.info("Detected type sepa"); return new SepaVerifier(graphData); }
-			else if (stmt.getObject().toString().equals(ec())) { logger.info("Detected type sec"); return new SecVerifier(graphData); }
+	private ElementVerifier<?> getTypeDef(String jsonClassName) throws SepaParseException {
+		if (jsonClassName == null) {
+			throw new SepaParseException();
+		} else {
+			if (jsonClassName.equals(ep())) { logger.info("Detected type sep"); return new SepVerifier(pipelineElementDescription); }
+			else if (jsonClassName.equals(epa())) { logger.info("Detected type sepa"); return new SepaVerifier(pipelineElementDescription); }
+			else if (jsonClassName.equals(ec())) { logger.info("Detected type sec"); return new SecVerifier(pipelineElementDescription); }
 			else throw new SepaParseException();
 		}
 	}
 	
-	private Model getModel() throws SepaParseException
-	{
-		return StatementBuilder.extractStatements(graphData);
-	}
-	
 	private static final String ep()
 	{
-		return StreamPipes.DATA_SOURCE_DESCRIPTION;
+		return DataSourceDescription.class.getCanonicalName();
 	}
 	
 	private static final String epa()
 	{
-		return StreamPipes.DATA_PROCESSOR_DESCRIPTION;
+		return DataProcessorDescription.class.getCanonicalName();
 	}
 	
 	private static final String ec()
 	{
-		return StreamPipes.DATA_SINK_DESCRIPTION;
+		return DataSinkDescription.class.getCanonicalName();
 	}
 	
 }
diff --git a/streampipes-rest-shared/src/main/java/org/apache/streampipes/rest/shared/util/SpMediaType.java b/streampipes-rest-shared/src/main/java/org/apache/streampipes/rest/shared/util/SpMediaType.java
index dc11779..a036956 100644
--- a/streampipes-rest-shared/src/main/java/org/apache/streampipes/rest/shared/util/SpMediaType.java
+++ b/streampipes-rest-shared/src/main/java/org/apache/streampipes/rest/shared/util/SpMediaType.java
@@ -22,6 +22,9 @@ import javax.ws.rs.core.MediaType;
 public class SpMediaType {
 
   public static final String JSONLD = "application/ld+json";
-
   public static final MediaType JSONLD_TYPE = new MediaType("application", "ld+json");
+
+  public static final String APPLICATION_ZIP = "application/zip";
+  public static final MediaType APPLICATION_ZIP_TYPE = new MediaType("application", "zip");
+
 }