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/06/06 14:57:39 UTC

[incubator-streampipes] 02/02: [STREAMPIPES-145] Cleanup client model, move pipeline models to streampipes-model

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

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

commit 636abefe2ead11b309535ccd78cbd61d7117127e
Author: Dominik Riemer <ri...@fzi.de>
AuthorDate: Sat Jun 6 16:57:16 2020 +0200

    [STREAMPIPES-145] Cleanup client model, move pipeline models to streampipes-model
---
 pom.xml                                            |   1 +
 .../backend/StreamPipesBackendApplication.java     |  11 +-
 .../master/management/GuessManagement.java         |   2 +-
 .../container/master/rest/GuessResource.java       |   4 +-
 .../container/worker/rest/GuessResource.java       |   4 +-
 .../connect/rest/AbstractContainerResource.java    |   2 +-
 streampipes-model-client/pom.xml                   |  52 ++++++-
 .../client/messages/AppInstallationMessage.java    |   2 +
 .../model/client/messages/ErrorMessage.java        |   3 +
 .../model/client/messages/Notifications.java       |  38 +-----
 .../messages/ProaSenseNotificationMessage.java     | 113 ---------------
 .../model/client/messages/SetupStatusMessage.java  |   2 +
 .../model/client/messages/SuccessMessage.java      |   3 +
 .../model/client/messages/SuccessMessageLd.java    |  42 ------
 .../apache/streampipes/model/client/user/Role.java |   7 +-
 .../apache/streampipes/model/client/user/User.java |  31 +----
 .../streampipes/model/client/util/DatasetUtil.java |  32 -----
 .../pom.xml                                        |  29 ++--
 .../model/shared}/annotation/TsIgnore.java         |   4 +-
 .../model/shared}/annotation/TsModel.java          |   4 +-
 .../streampipes/model/shared/message}/Message.java |   2 +-
 .../model/shared/message}/Notification.java        |   2 +-
 .../model/shared/message}/NotificationType.java    |   2 +-
 streampipes-model/pom.xml                          |   9 +-
 .../org/apache/streampipes/model/AdapterType.java  |   2 +-
 .../streampipes/model/DataProcessorType.java       |   2 +-
 .../org/apache/streampipes/model/DataSinkType.java |   2 +-
 .../apache/streampipes/model}/ErrorMessageLd.java  |   2 +-
 .../org/apache/streampipes/model}/MessageLd.java   |   2 +-
 .../apache/streampipes/model}/NotificationLd.java  |   2 +-
 .../apache/streampipes/model}/VirtualSensor.java   |   4 +-
 .../model/base/AbstractStreamPipesEntity.java      |   2 +-
 .../model/base/UnnamedStreamPipesEntity.java       |   2 +-
 .../model/graph/DataSourceDescription.java         |   2 +-
 .../pipeline/DataSetModificationMessage.java       |   4 +-
 .../model}/pipeline/ElementComposition.java        |   2 +-
 .../streampipes/model}/pipeline/Pipeline.java      |  13 +-
 .../model}/pipeline/PipelineCategory.java          |   2 +-
 .../pipeline/PipelineElementRecommendation.java    |   2 +-
 .../PipelineElementRecommendationMessage.java      |   2 +-
 .../model}/pipeline/PipelineElementStatus.java     |   2 +-
 .../model}/pipeline/PipelineModification.java      |   2 +-
 .../PipelineModificationErrorDescription.java      |   2 +-
 .../pipeline/PipelineModificationMessage.java      |   6 +-
 .../model}/pipeline/PipelineOperationStatus.java   |   2 +-
 .../model}/pipeline/PipelineStatusMessage.java     |   2 +-
 .../model}/pipeline/PipelineStatusMessageType.java |   2 +-
 .../ContainerProvidedOptionsParameterRequest.java  |   2 +-
 .../model/staticproperty/StaticProperty.java       |   2 +-
 .../org/apache/streampipes/model/user/User.java    |  77 -----------
 .../performance/pipeline/PipelineGenerator.java    |   4 +-
 .../manager/data/PipelineGraphBuilder.java         |   2 +-
 .../manager/endpoint/EndpointItemParser.java       |   4 +-
 .../manager/execution/http/GraphSubmitter.java     |   4 +-
 .../manager/execution/http/HttpRequestBuilder.java |   2 +-
 .../manager/execution/http/PipelineExecutor.java   |   8 +-
 .../execution/http/PipelineStorageService.java     |   2 +-
 .../execution/status/PipelineStatusManager.java    |   2 +-
 .../manager/matching/DataSetGroundingSelector.java |   2 +-
 .../matching/PipelineVerificationHandler.java      |   6 +-
 .../monitoring/runtime/PipelineObserver.java       |   4 +-
 .../monitoring/runtime/PipelineStreamReplacer.java |   2 +-
 .../monitoring/runtime/SepStoppedMonitoring.java   |   2 +-
 .../SepStoppedMonitoringPipelineBuilder.java       |   4 +-
 .../monitoring/runtime/SimilarStreamFinder.java    |   2 +-
 .../streampipes/manager/operations/Operations.java |  14 +-
 .../manager/recommender/ElementRecommender.java    |   6 +-
 .../remote/ContainerProvidedOptionsHandler.java    |   2 +-
 .../setup/CacheInitializationInstallationStep.java |   2 +-
 .../manager/setup/CouchDbInstallationStep.java     |   2 +-
 .../setup/EmpireInitializerInstallationStep.java   |   2 +-
 .../manager/setup/InstallationStep.java            |   2 +-
 .../streampipes/manager/setup/Installer.java       |   2 +-
 .../setup/PipelineElementInstallationStep.java     |   2 +-
 .../setup/UserRegistrationInstallationStep.java    |   2 +-
 .../streampipes/manager/storage/UserService.java   |  30 +---
 .../manager/template/PipelineGenerator.java        |   6 +-
 .../template/PipelineTemplateGenerator.java        |   2 +-
 .../PipelineTemplateInvocationGenerator.java       |   2 +-
 .../PipelineTemplateInvocationHandler.java         |   4 +-
 .../manager/util/PipelineVerificationUtils.java    |   2 +-
 .../manager/verification/ElementVerifier.java      |   6 +-
 .../verification/messages/VerificationError.java   |   2 +-
 .../verification/messages/VerificationResult.java  |   4 +-
 .../verification/messages/VerificationWarning.java |   2 +-
 .../verification/structure/AbstractVerifier.java   |   2 +-
 .../verification/structure/GeneralVerifier.java    |   2 +-
 .../streampipes/manager/matching/v2/TestUtils.java |   2 +-
 .../streampipes/manager/pipeline/StopPipeline.java |   2 +-
 .../manager/pipeline/TestPipelineExecution.java    |   2 +-
 .../manager/pipeline/TestPipelineStorage.java      |   2 +-
 .../org/apache/streampipes/rest/api/IPipeline.java |   2 +-
 .../rest/impl/AbstractRestInterface.java           |   6 +-
 .../streampipes/rest/impl/Authentication.java      |   2 +-
 .../rest/impl/ContainerProvidedOptions.java        |   2 +-
 .../apache/streampipes/rest/impl/Deployment.java   |   2 +-
 .../rest/impl/InternalPipelineTemplates.java       |   2 +-
 .../streampipes/rest/impl/PipelineCategory.java    |   2 +-
 .../rest/impl/PipelineElementImport.java           |   6 +-
 .../streampipes/rest/impl/PipelineTemplate.java    |   2 +-
 .../rest/impl/PipelineWithUserResource.java        |  36 ++---
 .../rest/impl/SemanticEventConsumer.java           |   4 +-
 .../rest/impl/SemanticEventProcessingAgent.java    |   2 +-
 .../rest/impl/SemanticEventProducer.java           |   4 +-
 .../streampipes/rest/impl/VirtualSensor.java       |   4 +-
 .../rest/impl/datalake/DataLakeResourceV3.java     |   8 +-
 .../impl/nouser/PipelineElementImportNoUser.java   |   6 +-
 .../rest/management/PipelineManagement.java        |   8 +-
 .../serializers/json/GsonSerializer.java           |   2 +-
 .../apache/streampipes/serializers/json/Utils.java |   2 +-
 .../jsonld/CustomAnnotationProvider.java           |  23 +---
 .../storage/api/IPipelineCategoryStorage.java      |   2 +-
 .../api/IPipelineElementConnectionStorage.java     |   2 +-
 .../streampipes/storage/api/IPipelineStorage.java  |   4 +-
 .../couchdb/impl/ConnectionStorageImpl.java        |   2 +-
 .../couchdb/impl/PipelineCategoryStorageImpl.java  |   2 +-
 .../storage/couchdb/impl/PipelineStorageImpl.java  |   4 +-
 .../model/grounding/JmsTransportProtocol.ts        |  17 +++
 .../model/grounding/KafkaTransportProtocol.ts      |  17 +++
 ui/src/app/core-model/gen/streampipes-model.ts     | 152 +++++++++++++++++++--
 .../pipeline-assembly.component.css                |  17 +++
 .../pipeline-element-icon-stand.component.css      |  17 +++
 .../pipeline-element.component.css                 |  17 +++
 .../components/pipeline/pipeline.component.css     |  17 +++
 ui/src/app/editor-v2/editor.component.css          |  17 +++
 125 files changed, 529 insertions(+), 588 deletions(-)

diff --git a/pom.xml b/pom.xml
index a602ffe..7438bc6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -867,6 +867,7 @@
         <module>streampipes-container-base</module>
         <module>streampipes-messaging-mqtt</module>
         <module>streampipes-maven-plugin</module>
+        <module>streampipes-model-shared</module>
     </modules>
 
     <profiles>
diff --git a/streampipes-backend/src/main/java/org/apache/streampipes/backend/StreamPipesBackendApplication.java b/streampipes-backend/src/main/java/org/apache/streampipes/backend/StreamPipesBackendApplication.java
index 1907e9d..5c6ddbc 100644
--- a/streampipes-backend/src/main/java/org/apache/streampipes/backend/StreamPipesBackendApplication.java
+++ b/streampipes-backend/src/main/java/org/apache/streampipes/backend/StreamPipesBackendApplication.java
@@ -20,6 +20,10 @@ package org.apache.streampipes.backend;
 import org.apache.shiro.web.env.EnvironmentLoaderListener;
 import org.apache.shiro.web.servlet.OncePerRequestFilter;
 import org.apache.shiro.web.servlet.ShiroFilter;
+import org.apache.streampipes.app.file.export.application.AppFileExportApplication;
+import org.apache.streampipes.manager.operations.Operations;
+import org.apache.streampipes.model.pipeline.PipelineOperationStatus;
+import org.apache.streampipes.rest.notifications.NotificationListener;
 import org.glassfish.jersey.servlet.ServletContainer;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -31,15 +35,10 @@ import org.springframework.boot.web.servlet.ServletRegistrationBean;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
-import org.apache.streampipes.app.file.export.application.AppFileExportApplication;
-import org.apache.streampipes.manager.operations.Operations;
-import org.apache.streampipes.model.client.pipeline.PipelineOperationStatus;
-import org.apache.streampipes.rest.notifications.NotificationListener;
-
-import java.util.List;
 
 import javax.annotation.PreDestroy;
 import javax.servlet.ServletContextListener;
+import java.util.List;
 
 @Configuration
 @EnableAutoConfiguration
diff --git a/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/management/GuessManagement.java b/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/management/GuessManagement.java
index 8fd569e..ad5744a 100644
--- a/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/management/GuessManagement.java
+++ b/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/management/GuessManagement.java
@@ -24,7 +24,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.apache.streampipes.connect.adapter.exception.AdapterException;
 import org.apache.streampipes.connect.adapter.exception.ParseException;
-import org.apache.streampipes.model.client.messages.ErrorMessageLd;
+import org.apache.streampipes.model.ErrorMessageLd;
 import org.apache.streampipes.model.connect.adapter.AdapterDescription;
 import org.apache.streampipes.model.connect.guess.GuessSchema;
 import org.apache.streampipes.rest.shared.util.JsonLdUtils;
diff --git a/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/rest/GuessResource.java b/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/rest/GuessResource.java
index 3021d88..bb4be28 100644
--- a/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/rest/GuessResource.java
+++ b/streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/rest/GuessResource.java
@@ -67,10 +67,10 @@ public class GuessResource extends AbstractContainerResource {
           return ok(result);
       } catch (ParseException e) {
           logger.error("Error while parsing events: ", e);
-          return ok(Notifications.errorLd(e.getMessage()));
+          return ok(Notifications.error(e.getMessage()));
       } catch (Exception e) {
           logger.error("Error while guess schema for AdapterDescription: " + s, e);
-          return ok(Notifications.errorLd(e.getMessage()));
+          return ok(Notifications.error(e.getMessage()));
       }
 
   }
diff --git a/streampipes-connect-container-worker/src/main/java/org/apache/streampipes/connect/container/worker/rest/GuessResource.java b/streampipes-connect-container-worker/src/main/java/org/apache/streampipes/connect/container/worker/rest/GuessResource.java
index 5f4ff65..9d5dc78 100644
--- a/streampipes-connect-container-worker/src/main/java/org/apache/streampipes/connect/container/worker/rest/GuessResource.java
+++ b/streampipes-connect-container-worker/src/main/java/org/apache/streampipes/connect/container/worker/rest/GuessResource.java
@@ -65,10 +65,10 @@ public class GuessResource extends AbstractContainerResource {
           return ok(result);
       } catch (ParseException e) {
           logger.error("Error while parsing events: ", e);
-          return ok(Notifications.errorLd(e.getMessage()));
+          return ok(Notifications.error(e.getMessage()));
       } catch (Exception e) {
           logger.error("Error while guess schema for AdapterDescription: " + s, e);
-          return ok(Notifications.errorLd(e.getMessage()));
+          return ok(Notifications.error(e.getMessage()));
       }
 
   }
diff --git a/streampipes-connect-container/src/main/java/org/apache/streampipes/connect/rest/AbstractContainerResource.java b/streampipes-connect-container/src/main/java/org/apache/streampipes/connect/rest/AbstractContainerResource.java
index 9cca91b..275b8a3 100644
--- a/streampipes-connect-container/src/main/java/org/apache/streampipes/connect/rest/AbstractContainerResource.java
+++ b/streampipes-connect-container/src/main/java/org/apache/streampipes/connect/rest/AbstractContainerResource.java
@@ -18,7 +18,7 @@
 
 package org.apache.streampipes.connect.rest;
 
-import org.apache.streampipes.model.client.messages.Message;
+import org.apache.streampipes.model.shared.message.Message;
 
 import javax.ws.rs.core.Response;
 
diff --git a/streampipes-model-client/pom.xml b/streampipes-model-client/pom.xml
index 75e2be6..95fdcc1 100644
--- a/streampipes-model-client/pom.xml
+++ b/streampipes-model-client/pom.xml
@@ -31,10 +31,60 @@
 		<!-- StreamPipes dependencies -->
 		<dependency>
 			<groupId>org.apache.streampipes</groupId>
-			<artifactId>streampipes-model</artifactId>
+			<artifactId>streampipes-model-shared</artifactId>
 			<version>0.67.0-SNAPSHOT</version>
 		</dependency>
 
 		<!-- External dependencies -->
+		<dependency>
+			<groupId>com.google.code.gson</groupId>
+			<artifactId>gson</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.commons</groupId>
+			<artifactId>commons-lang3</artifactId>
+		</dependency>
 	</dependencies>
+
+<!--	<build>-->
+<!--		<plugins>-->
+<!--			<plugin>-->
+<!--				<groupId>cz.habarta.typescript-generator</groupId>-->
+<!--				<artifactId>typescript-generator-maven-plugin</artifactId>-->
+<!--				<version>2.23.603</version>-->
+<!--				<executions>-->
+<!--					<execution>-->
+<!--						<id>generate</id>-->
+<!--						<goals>-->
+<!--							<goal>generate</goal>-->
+<!--						</goals>-->
+<!--						<phase>process-classes</phase>-->
+<!--					</execution>-->
+<!--				</executions>-->
+<!--				<configuration>-->
+<!--					<jsonLibrary>jackson2</jsonLibrary>-->
+<!--					<classesWithAnnotations>-->
+<!--						<annotation>org.apache.streampipes.model.shared.annotation.TsModel</annotation>-->
+<!--					</classesWithAnnotations>-->
+<!--					<excludePropertyAnnotations>-->
+<!--						<annotation>org.apache.streampipes.model.shared.annotation.TsIgnore</annotation>-->
+<!--					</excludePropertyAnnotations>-->
+<!--					<excludeClasses>-->
+<!--						<class>io.fogsy.empire.core.empire.SupportsRdfId</class>-->
+<!--						<class>java.io.Serializable</class>-->
+<!--					</excludeClasses>-->
+<!--					<outputKind>module</outputKind>-->
+<!--					<outputFileType>implementationFile</outputFileType>-->
+<!--					<outputKind>module</outputKind>-->
+<!--					<disableTaggedUnions>false</disableTaggedUnions>-->
+<!--					<mapClasses>asClasses</mapClasses>-->
+<!--					<sortDeclarations>true</sortDeclarations>-->
+<!--					<tsNoCheck>true</tsNoCheck>-->
+<!--					<extensions>-->
+<!--						<extension>cz.habarta.typescript.generator.ext.JsonDeserializationExtension</extension>-->
+<!--					</extensions>-->
+<!--				</configuration>-->
+<!--			</plugin>-->
+<!--		</plugins>-->
+<!--	</build>-->
 </project>
\ No newline at end of file
diff --git a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/messages/AppInstallationMessage.java b/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/messages/AppInstallationMessage.java
index ff0a175..8064938 100644
--- a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/messages/AppInstallationMessage.java
+++ b/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/messages/AppInstallationMessage.java
@@ -18,6 +18,8 @@
 
 package org.apache.streampipes.model.client.messages;
 
+import org.apache.streampipes.model.shared.message.Message;
+
 import java.util.List;
 
 public class AppInstallationMessage {
diff --git a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/messages/ErrorMessage.java b/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/messages/ErrorMessage.java
index fc3db99..17be66d 100644
--- a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/messages/ErrorMessage.java
+++ b/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/messages/ErrorMessage.java
@@ -18,6 +18,9 @@
 
 package org.apache.streampipes.model.client.messages;
 
+import org.apache.streampipes.model.shared.message.Message;
+import org.apache.streampipes.model.shared.message.Notification;
+
 import java.util.List;
 
 public class ErrorMessage extends Message {
diff --git a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/messages/Notifications.java b/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/messages/Notifications.java
index 3f86e51..f87ffb0 100644
--- a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/messages/Notifications.java
+++ b/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/messages/Notifications.java
@@ -18,6 +18,9 @@
 
 package org.apache.streampipes.model.client.messages;
 
+import org.apache.streampipes.model.shared.message.Notification;
+import org.apache.streampipes.model.shared.message.NotificationType;
+
 public class Notifications {
 
 	public static Notification create(NotificationType type)
@@ -60,39 +63,4 @@ public class Notifications {
 		return new ErrorMessage(new Notification(type.name(), type.description(), info));
 	}
 
-	//JsonLD
-	public static NotificationLd createLd(NotificationType type, String info)
-	{
-		return new NotificationLd(type.name(), type.description(), info);
-	}
-
-	public static SuccessMessageLd successLd(NotificationType type)
-	{
-		return new SuccessMessageLd(new NotificationLd(type.name(), type.description()));
-	}
-
-	public static SuccessMessageLd successLd(NotificationType type, String info)
-	{
-		return new SuccessMessageLd(new NotificationLd(type.name(), type.description(), info));
-	}
-
-	public static SuccessMessageLd successLd(String message)
-	{
-		return new SuccessMessageLd(new NotificationLd(message, ""));
-	}
-
-	public static ErrorMessageLd errorLd(NotificationType type)
-	{
-		return new ErrorMessageLd(new NotificationLd(type.name(), type.description()));
-	}
-
-	public static ErrorMessageLd errorLd(String message)
-	{
-		return new ErrorMessageLd(new NotificationLd(message, ""));
-	}
-
-	public static ErrorMessageLd errorLd(NotificationType type, String info)
-	{
-		return new ErrorMessageLd(new NotificationLd(type.name(), type.description(), info));
-	}
 }
diff --git a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/messages/ProaSenseNotificationMessage.java b/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/messages/ProaSenseNotificationMessage.java
deleted file mode 100644
index 5506cf6..0000000
--- a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/messages/ProaSenseNotificationMessage.java
+++ /dev/null
@@ -1,113 +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.client.messages;
-
-import java.util.UUID;
-
-import org.apache.commons.lang.RandomStringUtils;
-
-import com.google.gson.annotations.SerializedName;
-
-public class ProaSenseNotificationMessage {
-
-	private @SerializedName("_id") String id;
-    private @SerializedName("_rev") String rev;
-    
-	private String notificationId;
-	private String targetedUser;
-	private String title;
-	private long timestamp;
-	private String description;
-	private boolean read;
-	
-	public ProaSenseNotificationMessage(String title, long creationDate, String description, String targetedUser) {
-		this.notificationId = RandomStringUtils.randomAlphanumeric(10);
-		this.id = UUID.randomUUID().toString();
-		this.targetedUser = targetedUser;
-		this.title = title;
-		this.timestamp = creationDate;
-		this.description = description;
-		this.read = false;
-	}
-
-	public String getTitle() {
-		return title;
-	}
-
-	public void setTitle(String title) {
-		this.title = title;
-	}
-
-	public long getTimestamp() {
-		return timestamp;
-	}
-
-	public void setTimestamp(long timestamp) {
-		this.timestamp = timestamp;
-	}
-
-	public String getDescription() {
-		return description;
-	}
-
-	public void setDescription(String description) {
-		this.description = description;
-	}
-
-	public boolean isRead() {
-		return read;
-	}
-
-	public void setRead(boolean read) {
-		this.read = read;
-	}
-
-	public String getNotificationId() {
-		return notificationId;
-	}
-
-	public void setNotificationId(String notificationId) {
-		this.notificationId = notificationId;
-	}
-
-	public String getTargetedUser() {
-		return targetedUser;
-	}
-
-	public void setTargetedUser(String targetedUser) {
-		this.targetedUser = targetedUser;
-	}
-
-	public String getId() {
-		return id;
-	}
-
-	public void setId(String id) {
-		this.id = id;
-	}
-
-	public String getRev() {
-		return rev;
-	}
-
-	public void setRev(String rev) {
-		this.rev = rev;
-	}
-		
-}
diff --git a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/messages/SetupStatusMessage.java b/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/messages/SetupStatusMessage.java
index 8f4c997..40e86fa 100644
--- a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/messages/SetupStatusMessage.java
+++ b/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/messages/SetupStatusMessage.java
@@ -17,6 +17,8 @@
  */
 package org.apache.streampipes.model.client.messages;
 
+import org.apache.streampipes.model.shared.message.Message;
+
 import java.util.List;
 
 public class SetupStatusMessage {
diff --git a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/messages/SuccessMessage.java b/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/messages/SuccessMessage.java
index 7e89a64..cad938c 100644
--- a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/messages/SuccessMessage.java
+++ b/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/messages/SuccessMessage.java
@@ -18,6 +18,9 @@
 
 package org.apache.streampipes.model.client.messages;
 
+import org.apache.streampipes.model.shared.message.Message;
+import org.apache.streampipes.model.shared.message.Notification;
+
 import java.util.List;
 
 public class SuccessMessage extends Message {
diff --git a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/messages/SuccessMessageLd.java b/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/messages/SuccessMessageLd.java
deleted file mode 100644
index 1078a97..0000000
--- a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/messages/SuccessMessageLd.java
+++ /dev/null
@@ -1,42 +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.client.messages;
-
-import io.fogsy.empire.annotations.Namespaces;
-import io.fogsy.empire.annotations.RdfsClass;
-import org.apache.streampipes.vocabulary.StreamPipes;
-
-import java.util.List;
-
-@Namespaces({StreamPipes.NS_PREFIX, StreamPipes.NS})
-@RdfsClass(StreamPipes.SUCCESS_MESSAGE)
-public class SuccessMessageLd extends MessageLd {
-
-	public SuccessMessageLd(NotificationLd... notifications) {
-		super(true, notifications);
-	}
-
-	public SuccessMessageLd(List<NotificationLd> notifications) {
-		super(true, notifications.toArray(new NotificationLd[0]));
-	}
-
-	public SuccessMessageLd(String elementName, List<NotificationLd> notifications) {
-		super(true, notifications, elementName);
-	}
-}
diff --git a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/user/Role.java b/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/user/Role.java
index 5d8bfa7..da1f2d2 100644
--- a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/user/Role.java
+++ b/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/user/Role.java
@@ -19,6 +19,11 @@
 package org.apache.streampipes.model.client.user;
 
 public enum Role {
-SYSTEM_ADMINISTRATOR, MANAGER, OPERATOR, DIMENSION_OPERATOR, USER_DEMO, BUSINESS_ANALYST
+  SYSTEM_ADMINISTRATOR,
+  MANAGER,
+  OPERATOR,
+  DIMENSION_OPERATOR,
+  USER_DEMO,
+  BUSINESS_ANALYST
 
 }
diff --git a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/user/User.java b/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/user/User.java
index 123354c..fa59f73 100644
--- a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/user/User.java
+++ b/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/user/User.java
@@ -19,23 +19,17 @@
 package org.apache.streampipes.model.client.user;
 
 import com.google.gson.annotations.SerializedName;
-import org.apache.streampipes.model.client.pipeline.Pipeline;
 
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Set;
 
-import javax.persistence.Entity;
-
-@Entity
 public class User {
 
 	private @SerializedName("_id") String userId;
 	protected @SerializedName("_rev") String rev;
 	protected String email;
 	private String password;
-		
-	private List<Pipeline> pipelines;
 	
 	private List<Element> ownSources;
 	private List<Element> ownSepas;
@@ -53,13 +47,12 @@ public class User {
 		this.hideTutorial = false;
 	}
 	
-	public User(String email, String password, Set<Role> roles, List<Pipeline> pipelines, List<Element> ownSources, List<Element> ownSepas, List<Element> ownActions) {
+	public User(String email, String password, Set<Role> roles, List<Element> ownSources, List<Element> ownSepas, List<Element> ownActions) {
 		super();
 		this.email = email;
 		
 		this.password = password;
 		this.roles = roles;
-		this.pipelines = pipelines;
 		
 		this.ownSources = ownSources;
 		this.ownSepas = ownSepas;
@@ -73,9 +66,7 @@ public class User {
 		this.email = email;
 		this.password = password;
 		this.roles = roles;
-		
-		this.pipelines = new ArrayList<>();
-		
+
 		this.ownActions = new ArrayList<>();
 		this.ownSepas = new ArrayList<>();
 		this.ownSources = new ArrayList<>();
@@ -119,24 +110,6 @@ public class User {
 		this.userId = userId;
 	}
 
-
-	public List<Pipeline> getPipelines() {
-		return pipelines;
-	}
-
-	public void setPipelines(List<Pipeline> pipelines) {
-		this.pipelines = pipelines;
-	}
-
-	public void addOwnPipeline(Pipeline pipeline) {
-		if (this.pipelines == null) this.pipelines = new ArrayList<>();
-		this.pipelines.add(pipeline);
-	}
-
-	public void deletePipeline(String pipelineId) {
-		pipelines.remove(pipelineId);
-	}
-
 	public List<Element> getOwnSources() {
 		return ownSources;
 	}
diff --git a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/util/DatasetUtil.java b/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/util/DatasetUtil.java
deleted file mode 100644
index 277b4f1..0000000
--- a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/util/DatasetUtil.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.model.client.util;
-
-import org.apache.streampipes.model.SpDataSet;
-import org.apache.streampipes.model.SpDataStream;
-
-public class DatasetUtil {
-// TODO delete
-  public static SpDataStream asStream(SpDataStream seq) {
-    if (seq instanceof SpDataStream) return (SpDataStream) seq;
-    else {
-      return new SpDataStream((SpDataSet) seq);
-    }
-  }
-
-}
diff --git a/streampipes-model-client/pom.xml b/streampipes-model-shared/pom.xml
similarity index 52%
copy from streampipes-model-client/pom.xml
copy to streampipes-model-shared/pom.xml
index 75e2be6..541f27d 100644
--- a/streampipes-model-client/pom.xml
+++ b/streampipes-model-shared/pom.xml
@@ -1,3 +1,4 @@
+<?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
@@ -16,25 +17,17 @@
   ~
   -->
 
-<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">
-	<modelVersion>4.0.0</modelVersion>
-	<parent>
-		<groupId>org.apache.streampipes</groupId>
-		<artifactId>streampipes-parent</artifactId>
-		<version>0.67.0-SNAPSHOT</version>
-	</parent>
+<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.67.0-SNAPSHOT</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
 
-	<artifactId>streampipes-model-client</artifactId>
-	<packaging>jar</packaging>
+    <artifactId>streampipes-model-shared</artifactId>
 
-	<dependencies>
-		<!-- StreamPipes dependencies -->
-		<dependency>
-			<groupId>org.apache.streampipes</groupId>
-			<artifactId>streampipes-model</artifactId>
-			<version>0.67.0-SNAPSHOT</version>
-		</dependency>
 
-		<!-- External dependencies -->
-	</dependencies>
 </project>
\ No newline at end of file
diff --git a/streampipes-model/src/main/java/org/apache/streampipes/model/annotation/TsIgnore.java b/streampipes-model-shared/src/main/java/org/apache/streampipes/model/shared/annotation/TsIgnore.java
similarity index 93%
rename from streampipes-model/src/main/java/org/apache/streampipes/model/annotation/TsIgnore.java
rename to streampipes-model-shared/src/main/java/org/apache/streampipes/model/shared/annotation/TsIgnore.java
index 25a63b8..1e7fe47 100644
--- a/streampipes-model/src/main/java/org/apache/streampipes/model/annotation/TsIgnore.java
+++ b/streampipes-model-shared/src/main/java/org/apache/streampipes/model/shared/annotation/TsIgnore.java
@@ -1,4 +1,4 @@
-package org.apache.streampipes.model.annotation;/*
+/*
  * 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.
@@ -16,5 +16,7 @@ package org.apache.streampipes.model.annotation;/*
  *
  */
 
+package org.apache.streampipes.model.shared.annotation;
+
 public @interface TsIgnore {
 }
diff --git a/streampipes-model/src/main/java/org/apache/streampipes/model/annotation/TsModel.java b/streampipes-model-shared/src/main/java/org/apache/streampipes/model/shared/annotation/TsModel.java
similarity index 93%
rename from streampipes-model/src/main/java/org/apache/streampipes/model/annotation/TsModel.java
rename to streampipes-model-shared/src/main/java/org/apache/streampipes/model/shared/annotation/TsModel.java
index 3c1e6d3..efb4f8f 100644
--- a/streampipes-model/src/main/java/org/apache/streampipes/model/annotation/TsModel.java
+++ b/streampipes-model-shared/src/main/java/org/apache/streampipes/model/shared/annotation/TsModel.java
@@ -1,4 +1,4 @@
-package org.apache.streampipes.model.annotation;/*
+/*
  * 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.
@@ -16,5 +16,7 @@ package org.apache.streampipes.model.annotation;/*
  *
  */
 
+package org.apache.streampipes.model.shared.annotation;
+
 public @interface TsModel {
 }
diff --git a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/messages/Message.java b/streampipes-model-shared/src/main/java/org/apache/streampipes/model/shared/message/Message.java
similarity index 97%
rename from streampipes-model-client/src/main/java/org/apache/streampipes/model/client/messages/Message.java
rename to streampipes-model-shared/src/main/java/org/apache/streampipes/model/shared/message/Message.java
index 895ba93..d7058b2 100644
--- a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/messages/Message.java
+++ b/streampipes-model-shared/src/main/java/org/apache/streampipes/model/shared/message/Message.java
@@ -16,7 +16,7 @@
  *
  */
 
-package org.apache.streampipes.model.client.messages;
+package org.apache.streampipes.model.shared.message;
 
 import java.util.ArrayList;
 import java.util.Arrays;
diff --git a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/messages/Notification.java b/streampipes-model-shared/src/main/java/org/apache/streampipes/model/shared/message/Notification.java
similarity index 97%
rename from streampipes-model-client/src/main/java/org/apache/streampipes/model/client/messages/Notification.java
rename to streampipes-model-shared/src/main/java/org/apache/streampipes/model/shared/message/Notification.java
index 38f3902..ac37f9e 100644
--- a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/messages/Notification.java
+++ b/streampipes-model-shared/src/main/java/org/apache/streampipes/model/shared/message/Notification.java
@@ -16,7 +16,7 @@
  *
  */
 
-package org.apache.streampipes.model.client.messages;
+package org.apache.streampipes.model.shared.message;
 
 public class Notification {
 
diff --git a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/messages/NotificationType.java b/streampipes-model-shared/src/main/java/org/apache/streampipes/model/shared/message/NotificationType.java
similarity index 98%
rename from streampipes-model-client/src/main/java/org/apache/streampipes/model/client/messages/NotificationType.java
rename to streampipes-model-shared/src/main/java/org/apache/streampipes/model/shared/message/NotificationType.java
index e96067c..896ba48 100644
--- a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/messages/NotificationType.java
+++ b/streampipes-model-shared/src/main/java/org/apache/streampipes/model/shared/message/NotificationType.java
@@ -16,7 +16,7 @@
  *
  */
 
-package org.apache.streampipes.model.client.messages;
+package org.apache.streampipes.model.shared.message;
 
 public enum NotificationType {
 	STORAGE_SUCCESS("Success", "Entity successfully stored"), 
diff --git a/streampipes-model/pom.xml b/streampipes-model/pom.xml
index 5987518..68e6eb5 100644
--- a/streampipes-model/pom.xml
+++ b/streampipes-model/pom.xml
@@ -35,6 +35,11 @@
         </dependency>
         <dependency>
             <groupId>org.apache.streampipes</groupId>
+            <artifactId>streampipes-model-shared</artifactId>
+            <version>0.67.0-SNAPSHOT</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.streampipes</groupId>
             <artifactId>streampipes-logging</artifactId>
             <version>0.67.0-SNAPSHOT</version>
         </dependency>
@@ -99,10 +104,10 @@
                 <configuration>
                     <jsonLibrary>jackson2</jsonLibrary>
                     <classesWithAnnotations>
-                        <annotation>org.apache.streampipes.model.annotation.TsModel</annotation>
+                        <annotation>org.apache.streampipes.model.shared.annotation.TsModel</annotation>
                     </classesWithAnnotations>
                     <excludePropertyAnnotations>
-                        <annotation>org.apache.streampipes.model.annotation.TsIgnore</annotation>
+                        <annotation>org.apache.streampipes.model.shared.annotation.TsIgnore</annotation>
                     </excludePropertyAnnotations>
                     <excludeClasses>
                         <class>io.fogsy.empire.core.empire.SupportsRdfId</class>
diff --git a/streampipes-model/src/main/java/org/apache/streampipes/model/AdapterType.java b/streampipes-model/src/main/java/org/apache/streampipes/model/AdapterType.java
index e64c450..3ab4cf4 100644
--- a/streampipes-model/src/main/java/org/apache/streampipes/model/AdapterType.java
+++ b/streampipes-model/src/main/java/org/apache/streampipes/model/AdapterType.java
@@ -20,7 +20,7 @@ package org.apache.streampipes.model;
 import com.fasterxml.jackson.annotation.JsonCreator;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.databind.JsonNode;
-import org.apache.streampipes.model.annotation.TsModel;
+import org.apache.streampipes.model.shared.annotation.TsModel;
 
 @TsModel
 @JsonFormat(shape = JsonFormat.Shape.OBJECT)
diff --git a/streampipes-model/src/main/java/org/apache/streampipes/model/DataProcessorType.java b/streampipes-model/src/main/java/org/apache/streampipes/model/DataProcessorType.java
index a12275b..b673f69 100644
--- a/streampipes-model/src/main/java/org/apache/streampipes/model/DataProcessorType.java
+++ b/streampipes-model/src/main/java/org/apache/streampipes/model/DataProcessorType.java
@@ -21,7 +21,7 @@ package org.apache.streampipes.model;
 import com.fasterxml.jackson.annotation.JsonCreator;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.databind.JsonNode;
-import org.apache.streampipes.model.annotation.TsModel;
+import org.apache.streampipes.model.shared.annotation.TsModel;
 
 @TsModel
 @JsonFormat(shape = JsonFormat.Shape.OBJECT)
diff --git a/streampipes-model/src/main/java/org/apache/streampipes/model/DataSinkType.java b/streampipes-model/src/main/java/org/apache/streampipes/model/DataSinkType.java
index a8a213e..a5a346c 100644
--- a/streampipes-model/src/main/java/org/apache/streampipes/model/DataSinkType.java
+++ b/streampipes-model/src/main/java/org/apache/streampipes/model/DataSinkType.java
@@ -21,7 +21,7 @@ package org.apache.streampipes.model;
 import com.fasterxml.jackson.annotation.JsonCreator;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.databind.JsonNode;
-import org.apache.streampipes.model.annotation.TsModel;
+import org.apache.streampipes.model.shared.annotation.TsModel;
 
 @TsModel
 @JsonFormat(shape = JsonFormat.Shape.OBJECT)
diff --git a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/messages/ErrorMessageLd.java b/streampipes-model/src/main/java/org/apache/streampipes/model/ErrorMessageLd.java
similarity index 96%
rename from streampipes-model-client/src/main/java/org/apache/streampipes/model/client/messages/ErrorMessageLd.java
rename to streampipes-model/src/main/java/org/apache/streampipes/model/ErrorMessageLd.java
index cb35b57..46d5ea0 100644
--- a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/messages/ErrorMessageLd.java
+++ b/streampipes-model/src/main/java/org/apache/streampipes/model/ErrorMessageLd.java
@@ -16,7 +16,7 @@
  *
  */
 
-package org.apache.streampipes.model.client.messages;
+package org.apache.streampipes.model;
 
 import io.fogsy.empire.annotations.Namespaces;
 import io.fogsy.empire.annotations.RdfsClass;
diff --git a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/messages/MessageLd.java b/streampipes-model/src/main/java/org/apache/streampipes/model/MessageLd.java
similarity index 98%
rename from streampipes-model-client/src/main/java/org/apache/streampipes/model/client/messages/MessageLd.java
rename to streampipes-model/src/main/java/org/apache/streampipes/model/MessageLd.java
index 3d6faf8..f8231cf 100644
--- a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/messages/MessageLd.java
+++ b/streampipes-model/src/main/java/org/apache/streampipes/model/MessageLd.java
@@ -16,7 +16,7 @@
  *
  */
 
-package org.apache.streampipes.model.client.messages;
+package org.apache.streampipes.model;
 
 import org.apache.commons.lang.RandomStringUtils;
 import io.fogsy.empire.annotations.Namespaces;
diff --git a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/messages/NotificationLd.java b/streampipes-model/src/main/java/org/apache/streampipes/model/NotificationLd.java
similarity index 98%
rename from streampipes-model-client/src/main/java/org/apache/streampipes/model/client/messages/NotificationLd.java
rename to streampipes-model/src/main/java/org/apache/streampipes/model/NotificationLd.java
index 027d3e9..131c59f 100644
--- a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/messages/NotificationLd.java
+++ b/streampipes-model/src/main/java/org/apache/streampipes/model/NotificationLd.java
@@ -16,7 +16,7 @@
  *
  */
 
-package org.apache.streampipes.model.client.messages;
+package org.apache.streampipes.model;
 
 import org.apache.commons.lang.RandomStringUtils;
 import io.fogsy.empire.annotations.Namespaces;
diff --git a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/VirtualSensor.java b/streampipes-model/src/main/java/org/apache/streampipes/model/VirtualSensor.java
similarity index 91%
rename from streampipes-model-client/src/main/java/org/apache/streampipes/model/client/VirtualSensor.java
rename to streampipes-model/src/main/java/org/apache/streampipes/model/VirtualSensor.java
index cd8b219..177cdb3 100644
--- a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/VirtualSensor.java
+++ b/streampipes-model/src/main/java/org/apache/streampipes/model/VirtualSensor.java
@@ -16,9 +16,9 @@
  *
  */
 
-package org.apache.streampipes.model.client;
+package org.apache.streampipes.model;
 
-import org.apache.streampipes.model.client.pipeline.ElementComposition;
+import org.apache.streampipes.model.pipeline.ElementComposition;
 
 public class VirtualSensor extends ElementComposition {
 
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 85119fb..b060ad3 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
@@ -25,7 +25,7 @@ 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 org.apache.streampipes.model.annotation.TsModel;
+import org.apache.streampipes.model.shared.annotation.TsModel;
 import org.apache.streampipes.vocabulary.*;
 
 import java.io.Serializable;
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 68ac6bc..9b64300 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
@@ -22,7 +22,7 @@ package org.apache.streampipes.model.base;
 import com.fasterxml.jackson.annotation.JsonSubTypes;
 import io.fogsy.empire.annotations.RdfId;
 import io.fogsy.empire.annotations.RdfProperty;
-import org.apache.streampipes.model.annotation.TsIgnore;
+import org.apache.streampipes.model.shared.annotation.TsIgnore;
 import org.apache.streampipes.model.connect.guess.DomainPropertyProbability;
 import org.apache.streampipes.model.connect.guess.DomainPropertyProbabilityList;
 import org.apache.streampipes.model.connect.guess.GuessSchema;
diff --git a/streampipes-model/src/main/java/org/apache/streampipes/model/graph/DataSourceDescription.java b/streampipes-model/src/main/java/org/apache/streampipes/model/graph/DataSourceDescription.java
index e793829..86aa075 100644
--- a/streampipes-model/src/main/java/org/apache/streampipes/model/graph/DataSourceDescription.java
+++ b/streampipes-model/src/main/java/org/apache/streampipes/model/graph/DataSourceDescription.java
@@ -21,7 +21,7 @@ package org.apache.streampipes.model.graph;
 import io.fogsy.empire.annotations.RdfProperty;
 import io.fogsy.empire.annotations.RdfsClass;
 import org.apache.streampipes.model.SpDataStream;
-import org.apache.streampipes.model.annotation.TsModel;
+import org.apache.streampipes.model.shared.annotation.TsModel;
 import org.apache.streampipes.model.base.NamedStreamPipesEntity;
 import org.apache.streampipes.model.util.Cloner;
 import org.apache.streampipes.vocabulary.StreamPipes;
diff --git a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/pipeline/DataSetModificationMessage.java b/streampipes-model/src/main/java/org/apache/streampipes/model/pipeline/DataSetModificationMessage.java
similarity index 93%
rename from streampipes-model-client/src/main/java/org/apache/streampipes/model/client/pipeline/DataSetModificationMessage.java
rename to streampipes-model/src/main/java/org/apache/streampipes/model/pipeline/DataSetModificationMessage.java
index 1ec0dfa..2eb362b 100644
--- a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/pipeline/DataSetModificationMessage.java
+++ b/streampipes-model/src/main/java/org/apache/streampipes/model/pipeline/DataSetModificationMessage.java
@@ -15,9 +15,9 @@
  * limitations under the License.
  *
  */
-package org.apache.streampipes.model.client.pipeline;
+package org.apache.streampipes.model.pipeline;
 
-import org.apache.streampipes.model.client.messages.Message;
+import org.apache.streampipes.model.shared.message.Message;
 import org.apache.streampipes.model.grounding.EventGrounding;
 
 public class DataSetModificationMessage extends Message {
diff --git a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/pipeline/ElementComposition.java b/streampipes-model/src/main/java/org/apache/streampipes/model/pipeline/ElementComposition.java
similarity index 97%
rename from streampipes-model-client/src/main/java/org/apache/streampipes/model/client/pipeline/ElementComposition.java
rename to streampipes-model/src/main/java/org/apache/streampipes/model/pipeline/ElementComposition.java
index 5291e73..4ef9b56 100644
--- a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/pipeline/ElementComposition.java
+++ b/streampipes-model/src/main/java/org/apache/streampipes/model/pipeline/ElementComposition.java
@@ -16,7 +16,7 @@
  *
  */
 
-package org.apache.streampipes.model.client.pipeline;
+package org.apache.streampipes.model.pipeline;
 
 import org.apache.streampipes.model.SpDataStream;
 import org.apache.streampipes.model.graph.DataProcessorInvocation;
diff --git a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/pipeline/Pipeline.java b/streampipes-model/src/main/java/org/apache/streampipes/model/pipeline/Pipeline.java
similarity index 94%
rename from streampipes-model-client/src/main/java/org/apache/streampipes/model/client/pipeline/Pipeline.java
rename to streampipes-model/src/main/java/org/apache/streampipes/model/pipeline/Pipeline.java
index 75c989c..1ecbaad 100644
--- a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/pipeline/Pipeline.java
+++ b/streampipes-model/src/main/java/org/apache/streampipes/model/pipeline/Pipeline.java
@@ -16,19 +16,21 @@
  *
  */
 
-package org.apache.streampipes.model.client.pipeline;
+package org.apache.streampipes.model.pipeline;
 
+import com.fasterxml.jackson.annotation.JsonProperty;
 import com.google.gson.annotations.SerializedName;
 import org.apache.streampipes.model.graph.DataSinkInvocation;
-
-import java.util.ArrayList;
-import java.util.List;
+import org.apache.streampipes.model.shared.annotation.TsModel;
 
 import javax.persistence.CascadeType;
 import javax.persistence.Entity;
 import javax.persistence.OneToOne;
+import java.util.ArrayList;
+import java.util.List;
 
 @Entity
+@TsModel
 public class Pipeline extends ElementComposition {
 
   @OneToOne(cascade = CascadeType.ALL)
@@ -96,7 +98,7 @@ public class Pipeline extends ElementComposition {
     this.createdByUser = createdByUser;
   }
 
-
+  @JsonProperty("_id")
   public String getPipelineId() {
     return pipelineId;
   }
@@ -105,6 +107,7 @@ public class Pipeline extends ElementComposition {
     this.pipelineId = pipelineId;
   }
 
+  @JsonProperty("_rev")
   public String getRev() {
     return rev;
   }
diff --git a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/pipeline/PipelineCategory.java b/streampipes-model/src/main/java/org/apache/streampipes/model/pipeline/PipelineCategory.java
similarity index 97%
rename from streampipes-model-client/src/main/java/org/apache/streampipes/model/client/pipeline/PipelineCategory.java
rename to streampipes-model/src/main/java/org/apache/streampipes/model/pipeline/PipelineCategory.java
index 4fffb84..b5599bd 100644
--- a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/pipeline/PipelineCategory.java
+++ b/streampipes-model/src/main/java/org/apache/streampipes/model/pipeline/PipelineCategory.java
@@ -16,7 +16,7 @@
  *
  */
 
-package org.apache.streampipes.model.client.pipeline;
+package org.apache.streampipes.model.pipeline;
 
 import com.google.gson.annotations.SerializedName;
 
diff --git a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/pipeline/PipelineElementRecommendation.java b/streampipes-model/src/main/java/org/apache/streampipes/model/pipeline/PipelineElementRecommendation.java
similarity index 97%
rename from streampipes-model-client/src/main/java/org/apache/streampipes/model/client/pipeline/PipelineElementRecommendation.java
rename to streampipes-model/src/main/java/org/apache/streampipes/model/pipeline/PipelineElementRecommendation.java
index 73212d2..d0b019e 100644
--- a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/pipeline/PipelineElementRecommendation.java
+++ b/streampipes-model/src/main/java/org/apache/streampipes/model/pipeline/PipelineElementRecommendation.java
@@ -16,7 +16,7 @@
  *
  */
 
-package org.apache.streampipes.model.client.pipeline;
+package org.apache.streampipes.model.pipeline;
 
 public class PipelineElementRecommendation {
 
diff --git a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/pipeline/PipelineElementRecommendationMessage.java b/streampipes-model/src/main/java/org/apache/streampipes/model/pipeline/PipelineElementRecommendationMessage.java
similarity index 97%
rename from streampipes-model-client/src/main/java/org/apache/streampipes/model/client/pipeline/PipelineElementRecommendationMessage.java
rename to streampipes-model/src/main/java/org/apache/streampipes/model/pipeline/PipelineElementRecommendationMessage.java
index c1e42a7..48eb35f 100644
--- a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/pipeline/PipelineElementRecommendationMessage.java
+++ b/streampipes-model/src/main/java/org/apache/streampipes/model/pipeline/PipelineElementRecommendationMessage.java
@@ -16,7 +16,7 @@
  *
  */
 
-package org.apache.streampipes.model.client.pipeline;
+package org.apache.streampipes.model.pipeline;
 
 import java.util.ArrayList;
 import java.util.List;
diff --git a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/pipeline/PipelineElementStatus.java b/streampipes-model/src/main/java/org/apache/streampipes/model/pipeline/PipelineElementStatus.java
similarity index 96%
rename from streampipes-model-client/src/main/java/org/apache/streampipes/model/client/pipeline/PipelineElementStatus.java
rename to streampipes-model/src/main/java/org/apache/streampipes/model/pipeline/PipelineElementStatus.java
index 6943fb8..cc7e661 100644
--- a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/pipeline/PipelineElementStatus.java
+++ b/streampipes-model/src/main/java/org/apache/streampipes/model/pipeline/PipelineElementStatus.java
@@ -16,7 +16,7 @@
  *
  */
 
-package org.apache.streampipes.model.client.pipeline;
+package org.apache.streampipes.model.pipeline;
 
 public class PipelineElementStatus {
 
diff --git a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/pipeline/PipelineModification.java b/streampipes-model/src/main/java/org/apache/streampipes/model/pipeline/PipelineModification.java
similarity index 98%
rename from streampipes-model-client/src/main/java/org/apache/streampipes/model/client/pipeline/PipelineModification.java
rename to streampipes-model/src/main/java/org/apache/streampipes/model/pipeline/PipelineModification.java
index cb825ec..898d372 100644
--- a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/pipeline/PipelineModification.java
+++ b/streampipes-model/src/main/java/org/apache/streampipes/model/pipeline/PipelineModification.java
@@ -16,7 +16,7 @@
  *
  */
 
-package org.apache.streampipes.model.client.pipeline;
+package org.apache.streampipes.model.pipeline;
 
 import org.apache.streampipes.model.SpDataStream;
 import org.apache.streampipes.model.output.OutputStrategy;
diff --git a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/pipeline/PipelineModificationErrorDescription.java b/streampipes-model/src/main/java/org/apache/streampipes/model/pipeline/PipelineModificationErrorDescription.java
similarity index 95%
rename from streampipes-model-client/src/main/java/org/apache/streampipes/model/client/pipeline/PipelineModificationErrorDescription.java
rename to streampipes-model/src/main/java/org/apache/streampipes/model/pipeline/PipelineModificationErrorDescription.java
index 4d4cefb..4a987a7 100644
--- a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/pipeline/PipelineModificationErrorDescription.java
+++ b/streampipes-model/src/main/java/org/apache/streampipes/model/pipeline/PipelineModificationErrorDescription.java
@@ -16,7 +16,7 @@
  *
  */
 
-package org.apache.streampipes.model.client.pipeline;
+package org.apache.streampipes.model.pipeline;
 
 public class PipelineModificationErrorDescription {
 
diff --git a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/pipeline/PipelineModificationMessage.java b/streampipes-model/src/main/java/org/apache/streampipes/model/pipeline/PipelineModificationMessage.java
similarity index 91%
rename from streampipes-model-client/src/main/java/org/apache/streampipes/model/client/pipeline/PipelineModificationMessage.java
rename to streampipes-model/src/main/java/org/apache/streampipes/model/pipeline/PipelineModificationMessage.java
index adf2ec6..4989993 100644
--- a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/pipeline/PipelineModificationMessage.java
+++ b/streampipes-model/src/main/java/org/apache/streampipes/model/pipeline/PipelineModificationMessage.java
@@ -16,13 +16,15 @@
  *
  */
 
-package org.apache.streampipes.model.client.pipeline;
+package org.apache.streampipes.model.pipeline;
 
-import org.apache.streampipes.model.client.messages.Message;
+import org.apache.streampipes.model.shared.message.Message;
+import org.apache.streampipes.model.shared.annotation.TsModel;
 
 import java.util.ArrayList;
 import java.util.List;
 
+@TsModel
 public class PipelineModificationMessage extends Message {
 
 	/**
diff --git a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/pipeline/PipelineOperationStatus.java b/streampipes-model/src/main/java/org/apache/streampipes/model/pipeline/PipelineOperationStatus.java
similarity index 97%
rename from streampipes-model-client/src/main/java/org/apache/streampipes/model/client/pipeline/PipelineOperationStatus.java
rename to streampipes-model/src/main/java/org/apache/streampipes/model/pipeline/PipelineOperationStatus.java
index 8c03e94..4f4a1d0 100644
--- a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/pipeline/PipelineOperationStatus.java
+++ b/streampipes-model/src/main/java/org/apache/streampipes/model/pipeline/PipelineOperationStatus.java
@@ -16,7 +16,7 @@
  *
  */
 
-package org.apache.streampipes.model.client.pipeline;
+package org.apache.streampipes.model.pipeline;
 
 import java.util.ArrayList;
 import java.util.List;
diff --git a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/pipeline/PipelineStatusMessage.java b/streampipes-model/src/main/java/org/apache/streampipes/model/pipeline/PipelineStatusMessage.java
similarity index 96%
rename from streampipes-model-client/src/main/java/org/apache/streampipes/model/client/pipeline/PipelineStatusMessage.java
rename to streampipes-model/src/main/java/org/apache/streampipes/model/pipeline/PipelineStatusMessage.java
index 5dfd2c9..f09b3c9 100644
--- a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/pipeline/PipelineStatusMessage.java
+++ b/streampipes-model/src/main/java/org/apache/streampipes/model/pipeline/PipelineStatusMessage.java
@@ -16,7 +16,7 @@
  *
  */
 
-package org.apache.streampipes.model.client.pipeline;
+package org.apache.streampipes.model.pipeline;
 
 public class PipelineStatusMessage {
 
diff --git a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/pipeline/PipelineStatusMessageType.java b/streampipes-model/src/main/java/org/apache/streampipes/model/pipeline/PipelineStatusMessageType.java
similarity index 96%
rename from streampipes-model-client/src/main/java/org/apache/streampipes/model/client/pipeline/PipelineStatusMessageType.java
rename to streampipes-model/src/main/java/org/apache/streampipes/model/pipeline/PipelineStatusMessageType.java
index 66f9762..da1a406 100644
--- a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/pipeline/PipelineStatusMessageType.java
+++ b/streampipes-model/src/main/java/org/apache/streampipes/model/pipeline/PipelineStatusMessageType.java
@@ -16,7 +16,7 @@
  *
  */
 
-package org.apache.streampipes.model.client.pipeline;
+package org.apache.streampipes.model.pipeline;
 
 public enum PipelineStatusMessageType {
 
diff --git a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/runtime/ContainerProvidedOptionsParameterRequest.java b/streampipes-model/src/main/java/org/apache/streampipes/model/runtime/ContainerProvidedOptionsParameterRequest.java
similarity index 97%
rename from streampipes-model-client/src/main/java/org/apache/streampipes/model/client/runtime/ContainerProvidedOptionsParameterRequest.java
rename to streampipes-model/src/main/java/org/apache/streampipes/model/runtime/ContainerProvidedOptionsParameterRequest.java
index 759dc08..ced86d5 100644
--- a/streampipes-model-client/src/main/java/org/apache/streampipes/model/client/runtime/ContainerProvidedOptionsParameterRequest.java
+++ b/streampipes-model/src/main/java/org/apache/streampipes/model/runtime/ContainerProvidedOptionsParameterRequest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  *
  */
-package org.apache.streampipes.model.client.runtime;
+package org.apache.streampipes.model.runtime;
 
 import org.apache.streampipes.model.SpDataStream;
 import org.apache.streampipes.model.staticproperty.StaticProperty;
diff --git a/streampipes-model/src/main/java/org/apache/streampipes/model/staticproperty/StaticProperty.java b/streampipes-model/src/main/java/org/apache/streampipes/model/staticproperty/StaticProperty.java
index 95ba91f..6a512fa 100644
--- a/streampipes-model/src/main/java/org/apache/streampipes/model/staticproperty/StaticProperty.java
+++ b/streampipes-model/src/main/java/org/apache/streampipes/model/staticproperty/StaticProperty.java
@@ -21,7 +21,7 @@ package org.apache.streampipes.model.staticproperty;
 import com.fasterxml.jackson.annotation.JsonSubTypes;
 import io.fogsy.empire.annotations.RdfProperty;
 import io.fogsy.empire.annotations.RdfsClass;
-import org.apache.streampipes.model.annotation.TsModel;
+import org.apache.streampipes.model.shared.annotation.TsModel;
 import org.apache.streampipes.model.base.UnnamedStreamPipesEntity;
 import org.apache.streampipes.vocabulary.RDFS;
 import org.apache.streampipes.vocabulary.SO;
diff --git a/streampipes-model/src/main/java/org/apache/streampipes/model/user/User.java b/streampipes-model/src/main/java/org/apache/streampipes/model/user/User.java
deleted file mode 100644
index 01342f2..0000000
--- a/streampipes-model/src/main/java/org/apache/streampipes/model/user/User.java
+++ /dev/null
@@ -1,77 +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.user;
-
-import java.util.List;
-
-public class User {
-
-	private String firstName;
-	private String lastName;
-	
-	private String email;
-	
-	private List<String> roles;
-	
-	private String slackUserName;
-
-	
-	public String getFirstName() {
-		return firstName;
-	}
-
-	public void setFirstName(String firstName) {
-		this.firstName = firstName;
-	}
-
-	public String getLastName() {
-		return lastName;
-	}
-
-	public void setLastName(String lastName) {
-		this.lastName = lastName;
-	}
-
-	public String getEmail() {
-		return email;
-	}
-
-	public void setEmail(String email) {
-		this.email = email;
-	}
-
-	public List<String> getRoles() {
-		return roles;
-	}
-
-	public void setRoles(List<String> roles) {
-		this.roles = roles;
-	}
-
-	public String getSlackUserName() {
-		return slackUserName;
-	}
-
-	public void setSlackUserName(String slackUserName) {
-		this.slackUserName = slackUserName;
-	}
-	
-	
-	
-}
diff --git a/streampipes-performance-tests/src/main/java/org/apache/streampipes/performance/pipeline/PipelineGenerator.java b/streampipes-performance-tests/src/main/java/org/apache/streampipes/performance/pipeline/PipelineGenerator.java
index c22c44e..596cf18 100644
--- a/streampipes-performance-tests/src/main/java/org/apache/streampipes/performance/pipeline/PipelineGenerator.java
+++ b/streampipes-performance-tests/src/main/java/org/apache/streampipes/performance/pipeline/PipelineGenerator.java
@@ -23,8 +23,8 @@ import org.apache.streampipes.commons.exceptions.RemoteServerNotAccessibleExcept
 import org.apache.streampipes.manager.matching.PipelineVerificationHandler;
 import org.apache.streampipes.model.SpDataStream;
 import org.apache.streampipes.model.client.exception.InvalidConnectionException;
-import org.apache.streampipes.model.client.pipeline.Pipeline;
-import org.apache.streampipes.model.client.pipeline.PipelineModificationMessage;
+import org.apache.streampipes.model.pipeline.Pipeline;
+import org.apache.streampipes.model.pipeline.PipelineModificationMessage;
 import org.apache.streampipes.model.graph.DataProcessorDescription;
 import org.apache.streampipes.model.graph.DataProcessorInvocation;
 import org.apache.streampipes.model.graph.DataSinkDescription;
diff --git a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/data/PipelineGraphBuilder.java b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/data/PipelineGraphBuilder.java
index 6b718bf..a83c125 100644
--- a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/data/PipelineGraphBuilder.java
+++ b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/data/PipelineGraphBuilder.java
@@ -20,7 +20,7 @@ package org.apache.streampipes.manager.data;
 
 import org.apache.streampipes.model.base.InvocableStreamPipesEntity;
 import org.apache.streampipes.model.base.NamedStreamPipesEntity;
-import org.apache.streampipes.model.client.pipeline.Pipeline;
+import org.apache.streampipes.model.pipeline.Pipeline;
 
 import java.util.ArrayList;
 import java.util.List;
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 96dfd04..e92b271 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
@@ -18,8 +18,8 @@
 package org.apache.streampipes.manager.endpoint;
 
 import org.apache.streampipes.manager.operations.Operations;
-import org.apache.streampipes.model.client.messages.Message;
-import org.apache.streampipes.model.client.messages.NotificationType;
+import org.apache.streampipes.model.shared.message.Message;
+import org.apache.streampipes.model.shared.message.NotificationType;
 import org.apache.streampipes.model.client.messages.Notifications;
 
 import java.io.IOException;
diff --git a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/execution/http/GraphSubmitter.java b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/execution/http/GraphSubmitter.java
index 2e28811..c6572e8 100644
--- a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/execution/http/GraphSubmitter.java
+++ b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/execution/http/GraphSubmitter.java
@@ -22,8 +22,8 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.apache.streampipes.model.SpDataSet;
 import org.apache.streampipes.model.base.InvocableStreamPipesEntity;
-import org.apache.streampipes.model.client.pipeline.PipelineElementStatus;
-import org.apache.streampipes.model.client.pipeline.PipelineOperationStatus;
+import org.apache.streampipes.model.pipeline.PipelineElementStatus;
+import org.apache.streampipes.model.pipeline.PipelineOperationStatus;
 
 import java.util.List;
 import java.util.Optional;
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 4f03b45..3b248f2 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
@@ -28,7 +28,7 @@ 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.client.pipeline.PipelineElementStatus;
+import org.apache.streampipes.model.pipeline.PipelineElementStatus;
 import org.apache.streampipes.serializers.jsonld.JsonLdTransformer;
 
 import java.io.IOException;
diff --git a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/execution/http/PipelineExecutor.java b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/execution/http/PipelineExecutor.java
index 8e91220..60a3e07 100644
--- a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/execution/http/PipelineExecutor.java
+++ b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/execution/http/PipelineExecutor.java
@@ -24,10 +24,10 @@ import org.apache.streampipes.manager.execution.status.SepMonitoringManager;
 import org.apache.streampipes.manager.util.TemporaryGraphStorage;
 import org.apache.streampipes.model.SpDataSet;
 import org.apache.streampipes.model.base.InvocableStreamPipesEntity;
-import org.apache.streampipes.model.client.pipeline.Pipeline;
-import org.apache.streampipes.model.client.pipeline.PipelineOperationStatus;
-import org.apache.streampipes.model.client.pipeline.PipelineStatusMessage;
-import org.apache.streampipes.model.client.pipeline.PipelineStatusMessageType;
+import org.apache.streampipes.model.pipeline.Pipeline;
+import org.apache.streampipes.model.pipeline.PipelineOperationStatus;
+import org.apache.streampipes.model.pipeline.PipelineStatusMessage;
+import org.apache.streampipes.model.pipeline.PipelineStatusMessageType;
 import org.apache.streampipes.model.graph.DataProcessorInvocation;
 import org.apache.streampipes.model.graph.DataSinkInvocation;
 import org.apache.streampipes.model.staticproperty.SecretStaticProperty;
diff --git a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/execution/http/PipelineStorageService.java b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/execution/http/PipelineStorageService.java
index ecf4649..e0fc07e 100644
--- a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/execution/http/PipelineStorageService.java
+++ b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/execution/http/PipelineStorageService.java
@@ -22,7 +22,7 @@ import org.apache.streampipes.manager.data.PipelineGraph;
 import org.apache.streampipes.manager.data.PipelineGraphBuilder;
 import org.apache.streampipes.manager.matching.InvocationGraphBuilder;
 import org.apache.streampipes.model.base.InvocableStreamPipesEntity;
-import org.apache.streampipes.model.client.pipeline.Pipeline;
+import org.apache.streampipes.model.pipeline.Pipeline;
 import org.apache.streampipes.model.graph.DataProcessorInvocation;
 import org.apache.streampipes.model.graph.DataSinkInvocation;
 import org.apache.streampipes.model.staticproperty.SecretStaticProperty;
diff --git a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/execution/status/PipelineStatusManager.java b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/execution/status/PipelineStatusManager.java
index 6518294..f5b012b 100644
--- a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/execution/status/PipelineStatusManager.java
+++ b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/execution/status/PipelineStatusManager.java
@@ -23,7 +23,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.streampipes.model.client.pipeline.PipelineStatusMessage;
+import org.apache.streampipes.model.pipeline.PipelineStatusMessage;
 
 public class PipelineStatusManager {
 
diff --git a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/matching/DataSetGroundingSelector.java b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/matching/DataSetGroundingSelector.java
index 9225db9..ea40eeb 100644
--- a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/matching/DataSetGroundingSelector.java
+++ b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/matching/DataSetGroundingSelector.java
@@ -21,7 +21,7 @@ import org.apache.commons.lang.RandomStringUtils;
 import org.apache.streampipes.config.backend.BackendConfig;
 import org.apache.streampipes.manager.util.TopicGenerator;
 import org.apache.streampipes.model.SpDataSet;
-import org.apache.streampipes.model.client.pipeline.DataSetModificationMessage;
+import org.apache.streampipes.model.pipeline.DataSetModificationMessage;
 import org.apache.streampipes.model.grounding.EventGrounding;
 import org.apache.streampipes.model.grounding.KafkaTransportProtocol;
 import org.apache.streampipes.model.grounding.TransportFormat;
diff --git a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/matching/PipelineVerificationHandler.java b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/matching/PipelineVerificationHandler.java
index cbf2d20..94dcbb7 100644
--- a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/matching/PipelineVerificationHandler.java
+++ b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/matching/PipelineVerificationHandler.java
@@ -32,9 +32,9 @@ import org.apache.streampipes.model.base.InvocableStreamPipesEntity;
 import org.apache.streampipes.model.base.NamedStreamPipesEntity;
 import org.apache.streampipes.model.client.connection.Connection;
 import org.apache.streampipes.model.client.exception.InvalidConnectionException;
-import org.apache.streampipes.model.client.pipeline.Pipeline;
-import org.apache.streampipes.model.client.pipeline.PipelineModification;
-import org.apache.streampipes.model.client.pipeline.PipelineModificationMessage;
+import org.apache.streampipes.model.pipeline.Pipeline;
+import org.apache.streampipes.model.pipeline.PipelineModification;
+import org.apache.streampipes.model.pipeline.PipelineModificationMessage;
 import org.apache.streampipes.model.constants.PropertySelectorConstants;
 import org.apache.streampipes.model.graph.DataProcessorInvocation;
 import org.apache.streampipes.model.output.CustomOutputStrategy;
diff --git a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/monitoring/runtime/PipelineObserver.java b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/monitoring/runtime/PipelineObserver.java
index 044b1ed..16c8708 100644
--- a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/monitoring/runtime/PipelineObserver.java
+++ b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/monitoring/runtime/PipelineObserver.java
@@ -19,8 +19,8 @@
 package org.apache.streampipes.manager.monitoring.runtime;
 
 import org.apache.streampipes.manager.execution.status.PipelineStatusManager;
-import org.apache.streampipes.model.client.pipeline.PipelineStatusMessage;
-import org.apache.streampipes.model.client.pipeline.PipelineStatusMessageType;
+import org.apache.streampipes.model.pipeline.PipelineStatusMessage;
+import org.apache.streampipes.model.pipeline.PipelineStatusMessageType;
 
 public class PipelineObserver {
 
diff --git a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/monitoring/runtime/PipelineStreamReplacer.java b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/monitoring/runtime/PipelineStreamReplacer.java
index e478c4f..f0c34de 100644
--- a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/monitoring/runtime/PipelineStreamReplacer.java
+++ b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/monitoring/runtime/PipelineStreamReplacer.java
@@ -20,7 +20,7 @@ package org.apache.streampipes.manager.monitoring.runtime;
 
 import org.apache.streampipes.manager.operations.Operations;
 import org.apache.streampipes.model.SpDataStream;
-import org.apache.streampipes.model.client.pipeline.Pipeline;
+import org.apache.streampipes.model.pipeline.Pipeline;
 import org.apache.streampipes.model.graph.DataProcessorInvocation;
 import org.apache.streampipes.model.graph.DataSourceDescription;
 import org.apache.streampipes.model.schema.EventProperty;
diff --git a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/monitoring/runtime/SepStoppedMonitoring.java b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/monitoring/runtime/SepStoppedMonitoring.java
index 3f3651c..2e3301a 100644
--- a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/monitoring/runtime/SepStoppedMonitoring.java
+++ b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/monitoring/runtime/SepStoppedMonitoring.java
@@ -28,7 +28,7 @@ import org.apache.streampipes.manager.operations.Operations;
 import org.apache.streampipes.messaging.InternalEventProcessor;
 import org.apache.streampipes.messaging.kafka.SpKafkaConsumer;
 import org.apache.streampipes.model.SpDataStream;
-import org.apache.streampipes.model.client.pipeline.Pipeline;
+import org.apache.streampipes.model.pipeline.Pipeline;
 import org.apache.streampipes.model.graph.DataSourceDescription;
 import org.apache.streampipes.storage.couchdb.impl.PipelineStorageImpl;
 
diff --git a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/monitoring/runtime/SepStoppedMonitoringPipelineBuilder.java b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/monitoring/runtime/SepStoppedMonitoringPipelineBuilder.java
index ba157de..27de528 100644
--- a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/monitoring/runtime/SepStoppedMonitoringPipelineBuilder.java
+++ b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/monitoring/runtime/SepStoppedMonitoringPipelineBuilder.java
@@ -27,8 +27,8 @@ import org.apache.streampipes.manager.operations.Operations;
 import org.apache.streampipes.model.SpDataSet;
 import org.apache.streampipes.model.SpDataStream;
 import org.apache.streampipes.model.base.NamedStreamPipesEntity;
-import org.apache.streampipes.model.client.pipeline.Pipeline;
-import org.apache.streampipes.model.client.pipeline.PipelineModificationMessage;
+import org.apache.streampipes.model.pipeline.Pipeline;
+import org.apache.streampipes.model.pipeline.PipelineModificationMessage;
 import org.apache.streampipes.model.graph.DataProcessorDescription;
 import org.apache.streampipes.model.graph.DataProcessorInvocation;
 import org.apache.streampipes.model.graph.DataSinkDescription;
diff --git a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/monitoring/runtime/SimilarStreamFinder.java b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/monitoring/runtime/SimilarStreamFinder.java
index f9faf2a..07b99e7 100644
--- a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/monitoring/runtime/SimilarStreamFinder.java
+++ b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/monitoring/runtime/SimilarStreamFinder.java
@@ -19,7 +19,7 @@
 package org.apache.streampipes.manager.monitoring.runtime;
 
 import org.apache.streampipes.model.SpDataStream;
-import org.apache.streampipes.model.client.pipeline.Pipeline;
+import org.apache.streampipes.model.pipeline.Pipeline;
 import org.apache.streampipes.model.graph.DataSourceDescription;
 import org.apache.streampipes.model.quality.MeasurementCapability;
 import org.apache.streampipes.model.quality.MeasurementObject;
diff --git a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/operations/Operations.java b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/operations/Operations.java
index 4da9998..7db8712 100644
--- a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/operations/Operations.java
+++ b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/operations/Operations.java
@@ -38,13 +38,13 @@ import org.apache.streampipes.model.SpDataSet;
 import org.apache.streampipes.model.SpDataStream;
 import org.apache.streampipes.model.client.endpoint.RdfEndpoint;
 import org.apache.streampipes.model.client.endpoint.RdfEndpointItem;
-import org.apache.streampipes.model.client.messages.Message;
-import org.apache.streampipes.model.client.pipeline.DataSetModificationMessage;
-import org.apache.streampipes.model.client.pipeline.Pipeline;
-import org.apache.streampipes.model.client.pipeline.PipelineElementRecommendationMessage;
-import org.apache.streampipes.model.client.pipeline.PipelineModificationMessage;
-import org.apache.streampipes.model.client.pipeline.PipelineOperationStatus;
-import org.apache.streampipes.model.client.runtime.ContainerProvidedOptionsParameterRequest;
+import org.apache.streampipes.model.shared.message.Message;
+import org.apache.streampipes.model.pipeline.DataSetModificationMessage;
+import org.apache.streampipes.model.pipeline.Pipeline;
+import org.apache.streampipes.model.pipeline.PipelineElementRecommendationMessage;
+import org.apache.streampipes.model.pipeline.PipelineModificationMessage;
+import org.apache.streampipes.model.pipeline.PipelineOperationStatus;
+import org.apache.streampipes.model.runtime.ContainerProvidedOptionsParameterRequest;
 import org.apache.streampipes.model.staticproperty.Option;
 import org.apache.streampipes.model.template.PipelineTemplateDescription;
 import org.apache.streampipes.model.template.PipelineTemplateInvocation;
diff --git a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/recommender/ElementRecommender.java b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/recommender/ElementRecommender.java
index 5bdabe4..d409d77 100644
--- a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/recommender/ElementRecommender.java
+++ b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/recommender/ElementRecommender.java
@@ -30,9 +30,9 @@ import org.apache.streampipes.model.base.InvocableStreamPipesEntity;
 import org.apache.streampipes.model.base.NamedStreamPipesEntity;
 import org.apache.streampipes.model.client.exception.InvalidConnectionException;
 import org.apache.streampipes.model.client.matching.MatchingResultMessage;
-import org.apache.streampipes.model.client.pipeline.Pipeline;
-import org.apache.streampipes.model.client.pipeline.PipelineElementRecommendation;
-import org.apache.streampipes.model.client.pipeline.PipelineElementRecommendationMessage;
+import org.apache.streampipes.model.pipeline.Pipeline;
+import org.apache.streampipes.model.pipeline.PipelineElementRecommendation;
+import org.apache.streampipes.model.pipeline.PipelineElementRecommendationMessage;
 import org.apache.streampipes.model.graph.DataProcessorDescription;
 import org.apache.streampipes.model.graph.DataProcessorInvocation;
 import org.apache.streampipes.model.graph.DataSinkDescription;
diff --git a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/remote/ContainerProvidedOptionsHandler.java b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/remote/ContainerProvidedOptionsHandler.java
index 45157df..59ac20c 100644
--- a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/remote/ContainerProvidedOptionsHandler.java
+++ b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/remote/ContainerProvidedOptionsHandler.java
@@ -21,7 +21,7 @@ import com.google.gson.JsonSyntaxException;
 import org.apache.http.client.fluent.Request;
 import org.apache.http.client.fluent.Response;
 import org.apache.http.entity.ContentType;
-import org.apache.streampipes.model.client.runtime.ContainerProvidedOptionsParameterRequest;
+import org.apache.streampipes.model.runtime.ContainerProvidedOptionsParameterRequest;
 import org.apache.streampipes.model.runtime.RuntimeOptionsRequest;
 import org.apache.streampipes.model.runtime.RuntimeOptionsResponse;
 import org.apache.streampipes.model.staticproperty.Option;
diff --git a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/setup/CacheInitializationInstallationStep.java b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/setup/CacheInitializationInstallationStep.java
index b565628..f54022d 100644
--- a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/setup/CacheInitializationInstallationStep.java
+++ b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/setup/CacheInitializationInstallationStep.java
@@ -17,7 +17,7 @@
  */
 package org.apache.streampipes.manager.setup;
 
-import org.apache.streampipes.model.client.messages.Message;
+import org.apache.streampipes.model.shared.message.Message;
 import org.apache.streampipes.model.client.messages.Notifications;
 import org.apache.streampipes.storage.api.IPipelineElementDescriptionStorageCache;
 import org.apache.streampipes.storage.management.StorageDispatcher;
diff --git a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/setup/CouchDbInstallationStep.java b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/setup/CouchDbInstallationStep.java
index fac9eb8..c6dc9d5 100644
--- a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/setup/CouchDbInstallationStep.java
+++ b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/setup/CouchDbInstallationStep.java
@@ -19,7 +19,7 @@
 package org.apache.streampipes.manager.setup;
 
 import org.apache.streampipes.model.client.endpoint.RdfEndpoint;
-import org.apache.streampipes.model.client.messages.Message;
+import org.apache.streampipes.model.shared.message.Message;
 import org.apache.streampipes.model.client.messages.Notifications;
 import org.apache.streampipes.storage.couchdb.impl.RdfEndpointStorageImpl;
 import org.apache.streampipes.storage.couchdb.utils.Utils;
diff --git a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/setup/EmpireInitializerInstallationStep.java b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/setup/EmpireInitializerInstallationStep.java
index 6e8bbf6..577a20e 100644
--- a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/setup/EmpireInitializerInstallationStep.java
+++ b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/setup/EmpireInitializerInstallationStep.java
@@ -17,7 +17,7 @@
  */
 package org.apache.streampipes.manager.setup;
 
-import org.apache.streampipes.model.client.messages.Message;
+import org.apache.streampipes.model.shared.message.Message;
 import org.apache.streampipes.model.client.messages.Notifications;
 import org.apache.streampipes.storage.management.StorageDispatcher;
 
diff --git a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/setup/InstallationStep.java b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/setup/InstallationStep.java
index 8bfcff5..5e6b694 100644
--- a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/setup/InstallationStep.java
+++ b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/setup/InstallationStep.java
@@ -18,7 +18,7 @@
 
 package org.apache.streampipes.manager.setup;
 
-import org.apache.streampipes.model.client.messages.Message;
+import org.apache.streampipes.model.shared.message.Message;
 
 import java.util.List;
 
diff --git a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/setup/Installer.java b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/setup/Installer.java
index b907090..95b2aa0 100644
--- a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/setup/Installer.java
+++ b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/setup/Installer.java
@@ -19,7 +19,7 @@
 package org.apache.streampipes.manager.setup;
 
 import org.apache.streampipes.config.backend.BackendConfig;
-import org.apache.streampipes.model.client.messages.Message;
+import org.apache.streampipes.model.shared.message.Message;
 import org.apache.streampipes.model.client.messages.SetupStatusMessage;
 import org.apache.streampipes.model.client.setup.InitialSettings;
 
diff --git a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/setup/PipelineElementInstallationStep.java b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/setup/PipelineElementInstallationStep.java
index 6fa21f8..fb554e0 100644
--- a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/setup/PipelineElementInstallationStep.java
+++ b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/setup/PipelineElementInstallationStep.java
@@ -21,7 +21,7 @@ import org.apache.streampipes.manager.endpoint.EndpointItemParser;
 import org.apache.streampipes.manager.operations.Operations;
 import org.apache.streampipes.model.client.endpoint.RdfEndpoint;
 import org.apache.streampipes.model.client.endpoint.RdfEndpointItem;
-import org.apache.streampipes.model.client.messages.Message;
+import org.apache.streampipes.model.shared.message.Message;
 import org.apache.streampipes.model.client.messages.Notifications;
 
 import java.util.ArrayList;
diff --git a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/setup/UserRegistrationInstallationStep.java b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/setup/UserRegistrationInstallationStep.java
index 232a95a..4c50a3a 100644
--- a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/setup/UserRegistrationInstallationStep.java
+++ b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/setup/UserRegistrationInstallationStep.java
@@ -18,7 +18,7 @@
 
 package org.apache.streampipes.manager.setup;
 
-import org.apache.streampipes.model.client.messages.Message;
+import org.apache.streampipes.model.shared.message.Message;
 import org.apache.streampipes.model.client.messages.Notifications;
 import org.apache.streampipes.model.client.user.Role;
 import org.apache.streampipes.model.client.user.User;
diff --git a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/storage/UserService.java b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/storage/UserService.java
index 1c45a53..c388461 100644
--- a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/storage/UserService.java
+++ b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/storage/UserService.java
@@ -20,7 +20,7 @@ package org.apache.streampipes.manager.storage;
 
 import org.lightcouch.CouchDbClient;
 import org.apache.streampipes.commons.exceptions.ElementNotFoundException;
-import org.apache.streampipes.model.client.pipeline.Pipeline;
+import org.apache.streampipes.model.pipeline.Pipeline;
 import org.apache.streampipes.model.client.user.User;
 import org.apache.streampipes.storage.api.INoSqlStorage;
 import org.apache.streampipes.storage.api.IUserStorage;
@@ -39,19 +39,6 @@ public class UserService {
     this.userStorage = userStorage;
   }
 
-  public List<Pipeline> getPublicPipelines(String username) {
-    List<Pipeline> pipelines = new ArrayList<>();
-    userStorage()
-            .getAllUsers()
-            .stream()
-            .map(u -> u.getPipelines()
-                    .stream()
-                    .filter(p -> p.isPublicElement())
-                    .collect(Collectors.toList()))
-            .forEach(pipelines::addAll);
-    return pipelines;
-  }
-
   public List<Pipeline> getOwnPipelines(String email) {
     return StorageDispatcher.INSTANCE.getNoSqlStore().getPipelineStorageAPI().getAllPipelines().stream().filter(p -> p
             .getCreatedByUser()
@@ -113,21 +100,6 @@ public class UserService {
     userStorage.updateUser(user);
   }
 
-  /**
-   * Remove pipeline reference from user.
-   *
-   * @param username
-   * @param pipelineId
-   */
-
-  public void deleteOwnPipeline(String username, String pipelineId) {
-    if (checkUser(username)) {
-      User user = userStorage.getUser(username);
-      user.deletePipeline(pipelineId);
-      userStorage.updateUser(user);
-    }
-  }
-
   public void deleteOwnAction(String username, String actionId) {
     if (checkUser(username)) {
       User user = userStorage.getUser(username);
diff --git a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/template/PipelineGenerator.java b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/template/PipelineGenerator.java
index deb495a..4e0e4fc 100644
--- a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/template/PipelineGenerator.java
+++ b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/template/PipelineGenerator.java
@@ -24,9 +24,9 @@ import org.apache.streampipes.model.SpDataSet;
 import org.apache.streampipes.model.SpDataStream;
 import org.apache.streampipes.model.base.InvocableStreamPipesEntity;
 import org.apache.streampipes.model.client.exception.InvalidConnectionException;
-import org.apache.streampipes.model.client.pipeline.DataSetModificationMessage;
-import org.apache.streampipes.model.client.pipeline.Pipeline;
-import org.apache.streampipes.model.client.pipeline.PipelineModificationMessage;
+import org.apache.streampipes.model.pipeline.DataSetModificationMessage;
+import org.apache.streampipes.model.pipeline.Pipeline;
+import org.apache.streampipes.model.pipeline.PipelineModificationMessage;
 import org.apache.streampipes.model.graph.DataProcessorInvocation;
 import org.apache.streampipes.model.graph.DataSinkInvocation;
 import org.apache.streampipes.model.template.BoundPipelineElement;
diff --git a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/template/PipelineTemplateGenerator.java b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/template/PipelineTemplateGenerator.java
index 3cc2f2e..205dd51 100644
--- a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/template/PipelineTemplateGenerator.java
+++ b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/template/PipelineTemplateGenerator.java
@@ -26,7 +26,7 @@ import org.apache.streampipes.manager.template.instances.*;
 import org.apache.streampipes.model.SpDataSet;
 import org.apache.streampipes.model.SpDataStream;
 import org.apache.streampipes.model.base.InvocableStreamPipesEntity;
-import org.apache.streampipes.model.client.pipeline.DataSetModificationMessage;
+import org.apache.streampipes.model.pipeline.DataSetModificationMessage;
 import org.apache.streampipes.model.graph.DataProcessorDescription;
 import org.apache.streampipes.model.graph.DataProcessorInvocation;
 import org.apache.streampipes.model.graph.DataSinkDescription;
diff --git a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/template/PipelineTemplateInvocationGenerator.java b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/template/PipelineTemplateInvocationGenerator.java
index 5a3bd7b..089d232 100644
--- a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/template/PipelineTemplateInvocationGenerator.java
+++ b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/template/PipelineTemplateInvocationGenerator.java
@@ -18,7 +18,7 @@
 package org.apache.streampipes.manager.template;
 
 import org.apache.streampipes.model.SpDataStream;
-import org.apache.streampipes.model.client.pipeline.Pipeline;
+import org.apache.streampipes.model.pipeline.Pipeline;
 import org.apache.streampipes.model.staticproperty.StaticProperty;
 import org.apache.streampipes.model.template.PipelineTemplateDescription;
 import org.apache.streampipes.model.template.PipelineTemplateInvocation;
diff --git a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/template/PipelineTemplateInvocationHandler.java b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/template/PipelineTemplateInvocationHandler.java
index a5ef5dc..3128552 100644
--- a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/template/PipelineTemplateInvocationHandler.java
+++ b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/template/PipelineTemplateInvocationHandler.java
@@ -19,8 +19,8 @@ package org.apache.streampipes.manager.template;
 
 import org.apache.streampipes.manager.operations.Operations;
 import org.apache.streampipes.model.base.InvocableStreamPipesEntity;
-import org.apache.streampipes.model.client.pipeline.Pipeline;
-import org.apache.streampipes.model.client.pipeline.PipelineOperationStatus;
+import org.apache.streampipes.model.pipeline.Pipeline;
+import org.apache.streampipes.model.pipeline.PipelineOperationStatus;
 import org.apache.streampipes.model.staticproperty.StaticProperty;
 import org.apache.streampipes.model.template.PipelineTemplateDescription;
 import org.apache.streampipes.model.template.PipelineTemplateInvocation;
diff --git a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/util/PipelineVerificationUtils.java b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/util/PipelineVerificationUtils.java
index 5dbc1b4..dec61f5 100644
--- a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/util/PipelineVerificationUtils.java
+++ b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/util/PipelineVerificationUtils.java
@@ -20,7 +20,7 @@ package org.apache.streampipes.manager.util;
 
 import org.apache.streampipes.commons.exceptions.NoSepaInPipelineException;
 import org.apache.streampipes.model.base.InvocableStreamPipesEntity;
-import org.apache.streampipes.model.client.pipeline.Pipeline;
+import org.apache.streampipes.model.pipeline.Pipeline;
 
 import java.util.ArrayList;
 import java.util.List;
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 2594359..b26d24b 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
@@ -30,9 +30,9 @@ 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.client.messages.ErrorMessage;
-import org.apache.streampipes.model.client.messages.Message;
-import org.apache.streampipes.model.client.messages.Notification;
-import org.apache.streampipes.model.client.messages.NotificationType;
+import org.apache.streampipes.model.shared.message.Message;
+import org.apache.streampipes.model.shared.message.Notification;
+import org.apache.streampipes.model.shared.message.NotificationType;
 import org.apache.streampipes.model.client.messages.SuccessMessage;
 import org.apache.streampipes.serializers.jsonld.JsonLdTransformer;
 import org.apache.streampipes.storage.api.IPipelineElementDescriptionStorageCache;
diff --git a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/verification/messages/VerificationError.java b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/verification/messages/VerificationError.java
index 7fb7da9..1f1a2ce 100644
--- a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/verification/messages/VerificationError.java
+++ b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/verification/messages/VerificationError.java
@@ -18,7 +18,7 @@
 
 package org.apache.streampipes.manager.verification.messages;
 
-import org.apache.streampipes.model.client.messages.NotificationType;
+import org.apache.streampipes.model.shared.message.NotificationType;
 
 public class VerificationError extends VerificationResult{
 	
diff --git a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/verification/messages/VerificationResult.java b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/verification/messages/VerificationResult.java
index fb17c24..844bb15 100644
--- a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/verification/messages/VerificationResult.java
+++ b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/verification/messages/VerificationResult.java
@@ -18,8 +18,8 @@
 
 package org.apache.streampipes.manager.verification.messages;
 
-import org.apache.streampipes.model.client.messages.Notification;
-import org.apache.streampipes.model.client.messages.NotificationType;
+import org.apache.streampipes.model.shared.message.Notification;
+import org.apache.streampipes.model.shared.message.NotificationType;
 
 public abstract class VerificationResult {
 
diff --git a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/verification/messages/VerificationWarning.java b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/verification/messages/VerificationWarning.java
index b3b5e0b..7472803 100644
--- a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/verification/messages/VerificationWarning.java
+++ b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/verification/messages/VerificationWarning.java
@@ -18,7 +18,7 @@
 
 package org.apache.streampipes.manager.verification.messages;
 
-import org.apache.streampipes.model.client.messages.NotificationType;
+import org.apache.streampipes.model.shared.message.NotificationType;
 
 public class VerificationWarning extends VerificationResult {
 
diff --git a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/verification/structure/AbstractVerifier.java b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/verification/structure/AbstractVerifier.java
index 66363e0..3732b8b 100644
--- a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/verification/structure/AbstractVerifier.java
+++ b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/verification/structure/AbstractVerifier.java
@@ -24,7 +24,7 @@ import java.util.List;
 import org.apache.streampipes.manager.verification.messages.VerificationError;
 import org.apache.streampipes.manager.verification.messages.VerificationResult;
 import org.apache.streampipes.manager.verification.messages.VerificationWarning;
-import org.apache.streampipes.model.client.messages.NotificationType;
+import org.apache.streampipes.model.shared.message.NotificationType;
 
 public abstract class AbstractVerifier implements Verifier {
 
diff --git a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/verification/structure/GeneralVerifier.java b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/verification/structure/GeneralVerifier.java
index aba2b6c..e4f9aea 100644
--- a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/verification/structure/GeneralVerifier.java
+++ b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/verification/structure/GeneralVerifier.java
@@ -21,7 +21,7 @@ package org.apache.streampipes.manager.verification.structure;
 import java.util.List;
 
 import org.apache.streampipes.manager.verification.messages.VerificationResult;
-import org.apache.streampipes.model.client.messages.NotificationType;
+import org.apache.streampipes.model.shared.message.NotificationType;
 import org.apache.streampipes.model.base.NamedStreamPipesEntity;
 
 public class GeneralVerifier<T extends NamedStreamPipesEntity> extends AbstractVerifier {
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 8a89e75..3e98e9d 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
@@ -22,7 +22,7 @@ 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.client.pipeline.Pipeline;
+import org.apache.streampipes.model.pipeline.Pipeline;
 import org.apache.streampipes.model.SpDataStream;
 import org.apache.streampipes.model.grounding.JmsTransportProtocol;
 import org.apache.streampipes.model.grounding.KafkaTransportProtocol;
diff --git a/streampipes-pipeline-management/src/test/java/org/apache/streampipes/manager/pipeline/StopPipeline.java b/streampipes-pipeline-management/src/test/java/org/apache/streampipes/manager/pipeline/StopPipeline.java
index 72f17df..c781fb3 100644
--- a/streampipes-pipeline-management/src/test/java/org/apache/streampipes/manager/pipeline/StopPipeline.java
+++ b/streampipes-pipeline-management/src/test/java/org/apache/streampipes/manager/pipeline/StopPipeline.java
@@ -19,7 +19,7 @@
 package org.apache.streampipes.manager.pipeline;
 
 import org.apache.streampipes.manager.operations.Operations;
-import org.apache.streampipes.model.client.pipeline.Pipeline;
+import org.apache.streampipes.model.pipeline.Pipeline;
 import org.apache.streampipes.storage.management.StorageDispatcher;
 
 public class StopPipeline {
diff --git a/streampipes-pipeline-management/src/test/java/org/apache/streampipes/manager/pipeline/TestPipelineExecution.java b/streampipes-pipeline-management/src/test/java/org/apache/streampipes/manager/pipeline/TestPipelineExecution.java
index b30ef9f..22ba23c 100644
--- a/streampipes-pipeline-management/src/test/java/org/apache/streampipes/manager/pipeline/TestPipelineExecution.java
+++ b/streampipes-pipeline-management/src/test/java/org/apache/streampipes/manager/pipeline/TestPipelineExecution.java
@@ -19,7 +19,7 @@
 package org.apache.streampipes.manager.pipeline;
 
 import org.apache.streampipes.manager.operations.Operations;
-import org.apache.streampipes.model.client.pipeline.Pipeline;
+import org.apache.streampipes.model.pipeline.Pipeline;
 import org.apache.streampipes.storage.management.StorageDispatcher;
 
 public class TestPipelineExecution {
diff --git a/streampipes-pipeline-management/src/test/java/org/apache/streampipes/manager/pipeline/TestPipelineStorage.java b/streampipes-pipeline-management/src/test/java/org/apache/streampipes/manager/pipeline/TestPipelineStorage.java
index f0a47e6..6a239d8 100644
--- a/streampipes-pipeline-management/src/test/java/org/apache/streampipes/manager/pipeline/TestPipelineStorage.java
+++ b/streampipes-pipeline-management/src/test/java/org/apache/streampipes/manager/pipeline/TestPipelineStorage.java
@@ -21,7 +21,7 @@ package org.apache.streampipes.manager.pipeline;
 import com.google.common.base.Charsets;
 import com.google.common.io.Resources;
 import org.apache.streampipes.manager.operations.Operations;
-import org.apache.streampipes.model.client.pipeline.Pipeline;
+import org.apache.streampipes.model.pipeline.Pipeline;
 import org.apache.streampipes.serializers.json.Utils;
 
 import java.io.IOException;
diff --git a/streampipes-rest/src/main/java/org/apache/streampipes/rest/api/IPipeline.java b/streampipes-rest/src/main/java/org/apache/streampipes/rest/api/IPipeline.java
index 2492cb2..14a1292 100644
--- a/streampipes-rest/src/main/java/org/apache/streampipes/rest/api/IPipeline.java
+++ b/streampipes-rest/src/main/java/org/apache/streampipes/rest/api/IPipeline.java
@@ -19,7 +19,7 @@
 package org.apache.streampipes.rest.api;
 
 
-import org.apache.streampipes.model.client.pipeline.Pipeline;
+import org.apache.streampipes.model.pipeline.Pipeline;
 
 import javax.ws.rs.core.Response;
 
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 b99c2b2..37c7057 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
@@ -34,9 +34,9 @@ import org.apache.streampipes.manager.storage.UserManagementService;
 import org.apache.streampipes.manager.storage.UserService;
 import org.apache.streampipes.model.base.NamedStreamPipesEntity;
 import org.apache.streampipes.model.client.messages.ErrorMessage;
-import org.apache.streampipes.model.client.messages.Message;
-import org.apache.streampipes.model.client.messages.Notification;
-import org.apache.streampipes.model.client.messages.NotificationType;
+import org.apache.streampipes.model.shared.message.Message;
+import org.apache.streampipes.model.shared.message.Notification;
+import org.apache.streampipes.model.shared.message.NotificationType;
 import org.apache.streampipes.model.client.messages.SuccessMessage;
 import org.apache.streampipes.serializers.json.GsonSerializer;
 import org.apache.streampipes.serializers.jsonld.JsonLdTransformer;
diff --git a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/Authentication.java b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/Authentication.java
index 139ad84..60789ad 100644
--- a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/Authentication.java
+++ b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/Authentication.java
@@ -25,7 +25,7 @@ import org.apache.shiro.subject.Subject;
 import org.apache.streampipes.config.backend.BackendConfig;
 import org.apache.streampipes.manager.storage.UserManagementService;
 import org.apache.streampipes.model.client.messages.ErrorMessage;
-import org.apache.streampipes.model.client.messages.NotificationType;
+import org.apache.streampipes.model.shared.message.NotificationType;
 import org.apache.streampipes.model.client.messages.Notifications;
 import org.apache.streampipes.model.client.messages.SuccessMessage;
 import org.apache.streampipes.model.client.user.RegistrationData;
diff --git a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/ContainerProvidedOptions.java b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/ContainerProvidedOptions.java
index db742c9..771744c 100644
--- a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/ContainerProvidedOptions.java
+++ b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/ContainerProvidedOptions.java
@@ -18,7 +18,7 @@
 package org.apache.streampipes.rest.impl;
 
 import org.apache.streampipes.manager.operations.Operations;
-import org.apache.streampipes.model.client.runtime.ContainerProvidedOptionsParameterRequest;
+import org.apache.streampipes.model.runtime.ContainerProvidedOptionsParameterRequest;
 import org.apache.streampipes.rest.shared.annotation.GsonWithIds;
 
 import javax.ws.rs.Consumes;
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 5d03c14..b32a2e9 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
@@ -28,7 +28,7 @@ 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.client.messages.Message;
+import org.apache.streampipes.model.shared.message.Message;
 import org.apache.streampipes.model.client.messages.Notifications;
 import org.apache.streampipes.model.graph.DataSinkDescription;
 import org.apache.streampipes.model.graph.DataSourceDescription;
diff --git a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/InternalPipelineTemplates.java b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/InternalPipelineTemplates.java
index 3660383..12435d5 100644
--- a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/InternalPipelineTemplates.java
+++ b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/InternalPipelineTemplates.java
@@ -22,7 +22,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.apache.streampipes.manager.operations.Operations;
 import org.apache.streampipes.model.SpDataStream;
-import org.apache.streampipes.model.client.pipeline.PipelineOperationStatus;
+import org.apache.streampipes.model.pipeline.PipelineOperationStatus;
 import org.apache.streampipes.model.graph.DataProcessorDescription;
 import org.apache.streampipes.model.graph.DataSinkDescription;
 import org.apache.streampipes.model.graph.DataSourceDescription;
diff --git a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/PipelineCategory.java b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/PipelineCategory.java
index 60a20e3..6cde7c1 100644
--- a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/PipelineCategory.java
+++ b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/PipelineCategory.java
@@ -42,7 +42,7 @@ public class PipelineCategory extends AbstractRestInterface {
 	
 	@POST
 	@Produces(MediaType.APPLICATION_JSON)
-	public Response addCategory(@PathParam("username") String username, org.apache.streampipes.model.client.pipeline.PipelineCategory pipelineCategory) {
+	public Response addCategory(@PathParam("username") String username, org.apache.streampipes.model.pipeline.PipelineCategory pipelineCategory) {
 		boolean success = getPipelineCategoryStorage()
 				.addPipelineCategory(pipelineCategory);
 		if (success) return ok(Notifications.success("Category successfully stored. "));
diff --git a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/PipelineElementImport.java b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/PipelineElementImport.java
index 832e6f3..5cf3160 100644
--- a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/PipelineElementImport.java
+++ b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/PipelineElementImport.java
@@ -27,9 +27,9 @@ import org.apache.streampipes.manager.assets.AssetManager;
 import org.apache.streampipes.manager.endpoint.EndpointItemParser;
 import org.apache.streampipes.manager.operations.Operations;
 import org.apache.streampipes.manager.storage.UserService;
-import org.apache.streampipes.model.client.messages.Message;
-import org.apache.streampipes.model.client.messages.Notification;
-import org.apache.streampipes.model.client.messages.NotificationType;
+import org.apache.streampipes.model.shared.message.Message;
+import org.apache.streampipes.model.shared.message.Notification;
+import org.apache.streampipes.model.shared.message.NotificationType;
 import org.apache.streampipes.model.client.messages.Notifications;
 import org.apache.streampipes.storage.api.IPipelineElementDescriptionStorage;
 import org.apache.streampipes.storage.api.IPipelineElementDescriptionStorageCache;
diff --git a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/PipelineTemplate.java b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/PipelineTemplate.java
index e39d9dd..143ed53 100644
--- a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/PipelineTemplate.java
+++ b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/PipelineTemplate.java
@@ -21,7 +21,7 @@ import org.apache.streampipes.manager.operations.Operations;
 import org.apache.streampipes.model.SpDataSet;
 import org.apache.streampipes.model.SpDataStream;
 import org.apache.streampipes.model.SpDataStreamContainer;
-import org.apache.streampipes.model.client.pipeline.PipelineOperationStatus;
+import org.apache.streampipes.model.pipeline.PipelineOperationStatus;
 import org.apache.streampipes.model.graph.DataSourceDescription;
 import org.apache.streampipes.model.template.PipelineTemplateDescription;
 import org.apache.streampipes.model.template.PipelineTemplateDescriptionContainer;
diff --git a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/PipelineWithUserResource.java b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/PipelineWithUserResource.java
index 9ebeebb..27b9bc4 100644
--- a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/PipelineWithUserResource.java
+++ b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/PipelineWithUserResource.java
@@ -19,40 +19,29 @@
 package org.apache.streampipes.rest.impl;
 
 import com.google.gson.JsonSyntaxException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.apache.streampipes.commons.exceptions.NoMatchingFormatException;
-import org.apache.streampipes.commons.exceptions.NoMatchingJsonSchemaException;
-import org.apache.streampipes.commons.exceptions.NoMatchingProtocolException;
-import org.apache.streampipes.commons.exceptions.NoMatchingSchemaException;
-import org.apache.streampipes.commons.exceptions.NoSuitableSepasAvailableException;
-import org.apache.streampipes.commons.exceptions.RemoteServerNotAccessibleException;
+import org.apache.streampipes.commons.exceptions.*;
 import org.apache.streampipes.manager.execution.status.PipelineStatusManager;
 import org.apache.streampipes.manager.operations.Operations;
 import org.apache.streampipes.model.SpDataSet;
 import org.apache.streampipes.model.client.exception.InvalidConnectionException;
-import org.apache.streampipes.model.client.messages.Notification;
-import org.apache.streampipes.model.client.messages.NotificationType;
+import org.apache.streampipes.model.shared.message.Notification;
+import org.apache.streampipes.model.shared.message.NotificationType;
 import org.apache.streampipes.model.client.messages.Notifications;
 import org.apache.streampipes.model.client.messages.SuccessMessage;
-import org.apache.streampipes.model.client.pipeline.Pipeline;
-import org.apache.streampipes.model.client.pipeline.PipelineOperationStatus;
+import org.apache.streampipes.model.pipeline.Pipeline;
+import org.apache.streampipes.model.pipeline.PipelineOperationStatus;
 import org.apache.streampipes.rest.api.IPipeline;
 import org.apache.streampipes.rest.management.PipelineManagement;
 import org.apache.streampipes.rest.shared.annotation.GsonWithIds;
+import org.apache.streampipes.rest.shared.annotation.JacksonSerialized;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
-import java.util.Date;
-import java.util.UUID;
-
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
+import javax.ws.rs.*;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
+import java.util.Date;
+import java.util.UUID;
 
 @Path("/v2/users/{username}/pipelines")
 public class PipelineWithUserResource extends AbstractRestInterface implements IPipeline {
@@ -209,7 +198,8 @@ public class PipelineWithUserResource extends AbstractRestInterface implements I
     @Path("/update")
     @POST
     @Produces(MediaType.APPLICATION_JSON)
-    @GsonWithIds
+    @Consumes(MediaType.APPLICATION_JSON)
+    @JacksonSerialized
     public Response update(Pipeline pipeline, @PathParam("username") String username) {
         try {
             return ok(Operations.validatePipeline(pipeline, true, username));
diff --git a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/SemanticEventConsumer.java b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/SemanticEventConsumer.java
index aec4833..4a5df92 100644
--- a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/SemanticEventConsumer.java
+++ b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/SemanticEventConsumer.java
@@ -19,8 +19,8 @@
 package org.apache.streampipes.rest.impl;
 
 import org.apache.shiro.authz.annotation.RequiresAuthentication;
-import org.apache.streampipes.model.client.messages.Notification;
-import org.apache.streampipes.model.client.messages.NotificationType;
+import org.apache.streampipes.model.shared.message.Notification;
+import org.apache.streampipes.model.shared.message.NotificationType;
 import org.apache.streampipes.model.client.messages.Notifications;
 import org.apache.streampipes.model.graph.DataSinkDescription;
 import org.apache.streampipes.model.graph.DataSinkInvocation;
diff --git a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/SemanticEventProcessingAgent.java b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/SemanticEventProcessingAgent.java
index 9fa9d12..950dc7d 100644
--- a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/SemanticEventProcessingAgent.java
+++ b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/SemanticEventProcessingAgent.java
@@ -19,7 +19,7 @@
 package org.apache.streampipes.rest.impl;
 
 import org.apache.shiro.authz.annotation.RequiresAuthentication;
-import org.apache.streampipes.model.client.messages.NotificationType;
+import org.apache.streampipes.model.shared.message.NotificationType;
 import org.apache.streampipes.model.client.messages.Notifications;
 import org.apache.streampipes.model.graph.DataProcessorDescription;
 import org.apache.streampipes.model.graph.DataProcessorInvocation;
diff --git a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/SemanticEventProducer.java b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/SemanticEventProducer.java
index d31d0bf..afa6d64 100644
--- a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/SemanticEventProducer.java
+++ b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/SemanticEventProducer.java
@@ -19,8 +19,8 @@
 package org.apache.streampipes.rest.impl;
 
 import org.apache.shiro.authz.annotation.RequiresAuthentication;
-import org.apache.streampipes.model.client.messages.Notification;
-import org.apache.streampipes.model.client.messages.NotificationType;
+import org.apache.streampipes.model.shared.message.Notification;
+import org.apache.streampipes.model.shared.message.NotificationType;
 import org.apache.streampipes.model.client.messages.Notifications;
 import org.apache.streampipes.model.graph.DataSourceDescription;
 import org.apache.streampipes.rest.api.IPipelineElement;
diff --git a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/VirtualSensor.java b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/VirtualSensor.java
index f43034c..b3fec56 100644
--- a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/VirtualSensor.java
+++ b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/VirtualSensor.java
@@ -18,7 +18,7 @@
 
 package org.apache.streampipes.rest.impl;
 
-import org.apache.streampipes.model.client.messages.NotificationType;
+import org.apache.streampipes.model.shared.message.NotificationType;
 import org.apache.streampipes.serializers.json.Utils;
 import org.apache.streampipes.rest.api.IVirtualSensor;
 
@@ -40,7 +40,7 @@ public class VirtualSensor extends AbstractRestInterface implements IVirtualSens
 	@Produces(MediaType.APPLICATION_JSON)
 	@Override
 	public Response addVirtualSensor(@PathParam("username") String username, String virtualSensorDescription) {
-		org.apache.streampipes.model.client.VirtualSensor vs = Utils.getGson().fromJson(virtualSensorDescription, org.apache.streampipes.model.client.VirtualSensor.class);
+		org.apache.streampipes.model.VirtualSensor vs = Utils.getGson().fromJson(virtualSensorDescription, org.apache.streampipes.model.VirtualSensor.class);
 		//vs.setPipelineId(UUID.randomUUID().toString());
 		vs.setCreatedBy(username);
 		getPipelineStorage().storeVirtualSensor(username, vs);
diff --git a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/datalake/DataLakeResourceV3.java b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/datalake/DataLakeResourceV3.java
index 846c577..ed5a765 100644
--- a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/datalake/DataLakeResourceV3.java
+++ b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/datalake/DataLakeResourceV3.java
@@ -18,8 +18,7 @@
 
 package org.apache.streampipes.rest.impl.datalake;
 
-import com.google.gson.Gson;
-import org.apache.streampipes.model.client.messages.Notification;
+import org.apache.streampipes.model.shared.message.Notification;
 import org.apache.streampipes.model.datalake.DataLakeMeasure;
 import org.apache.streampipes.rest.impl.AbstractRestInterface;
 import org.apache.streampipes.rest.impl.datalake.model.DataResult;
@@ -28,15 +27,10 @@ import org.apache.streampipes.rest.impl.datalake.model.PageResult;
 import org.apache.streampipes.rest.shared.annotation.GsonWithIds;
 import org.apache.streampipes.rest.shared.annotation.JsonLdSerialized;
 import org.apache.streampipes.rest.shared.util.SpMediaType;
-import org.influxdb.InfluxDB;
-import org.influxdb.dto.Point;
 
 import java.io.IOException;
 import java.text.ParseException;
-import java.util.ArrayList;
 import java.util.List;
-import java.util.Map;
-import java.util.concurrent.TimeUnit;
 
 import javax.ws.rs.*;
 import javax.ws.rs.core.Context;
diff --git a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/nouser/PipelineElementImportNoUser.java b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/nouser/PipelineElementImportNoUser.java
index 91dd6fd..6aa39f5 100644
--- a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/nouser/PipelineElementImportNoUser.java
+++ b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/nouser/PipelineElementImportNoUser.java
@@ -22,9 +22,9 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.apache.streampipes.manager.endpoint.EndpointItemParser;
 import org.apache.streampipes.manager.storage.UserService;
-import org.apache.streampipes.model.client.messages.Message;
-import org.apache.streampipes.model.client.messages.Notification;
-import org.apache.streampipes.model.client.messages.NotificationType;
+import org.apache.streampipes.model.shared.message.Message;
+import org.apache.streampipes.model.shared.message.Notification;
+import org.apache.streampipes.model.shared.message.NotificationType;
 import org.apache.streampipes.rest.impl.AbstractRestInterface;
 import org.apache.streampipes.storage.api.IPipelineElementDescriptionStorageCache;
 
diff --git a/streampipes-rest/src/main/java/org/apache/streampipes/rest/management/PipelineManagement.java b/streampipes-rest/src/main/java/org/apache/streampipes/rest/management/PipelineManagement.java
index e2f929a..6bd2085 100644
--- a/streampipes-rest/src/main/java/org/apache/streampipes/rest/management/PipelineManagement.java
+++ b/streampipes-rest/src/main/java/org/apache/streampipes/rest/management/PipelineManagement.java
@@ -19,10 +19,10 @@
 package org.apache.streampipes.rest.management;
 
 import org.apache.streampipes.manager.operations.Operations;
-import org.apache.streampipes.model.client.messages.Notification;
-import org.apache.streampipes.model.client.messages.NotificationType;
-import org.apache.streampipes.model.client.pipeline.Pipeline;
-import org.apache.streampipes.model.client.pipeline.PipelineOperationStatus;
+import org.apache.streampipes.model.shared.message.Notification;
+import org.apache.streampipes.model.shared.message.NotificationType;
+import org.apache.streampipes.model.pipeline.Pipeline;
+import org.apache.streampipes.model.pipeline.PipelineOperationStatus;
 import org.apache.streampipes.rest.impl.AbstractRestInterface;
 
 import javax.ws.rs.core.Response;
diff --git a/streampipes-serializers/src/main/java/org/apache/streampipes/serializers/json/GsonSerializer.java b/streampipes-serializers/src/main/java/org/apache/streampipes/serializers/json/GsonSerializer.java
index 70c6ca2..2b4636d 100644
--- a/streampipes-serializers/src/main/java/org/apache/streampipes/serializers/json/GsonSerializer.java
+++ b/streampipes-serializers/src/main/java/org/apache/streampipes/serializers/json/GsonSerializer.java
@@ -23,7 +23,7 @@ import com.google.gson.FieldAttributes;
 import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
 import org.apache.streampipes.model.*;
-import org.apache.streampipes.model.client.messages.Message;
+import org.apache.streampipes.model.shared.message.Message;
 import org.apache.streampipes.model.connect.adapter.*;
 import org.apache.streampipes.model.connect.rules.schema.CreateNestedRuleDescription;
 import org.apache.streampipes.model.connect.rules.schema.DeleteRuleDescription;
diff --git a/streampipes-serializers/src/main/java/org/apache/streampipes/serializers/json/Utils.java b/streampipes-serializers/src/main/java/org/apache/streampipes/serializers/json/Utils.java
index bd5a4db..6303303 100644
--- a/streampipes-serializers/src/main/java/org/apache/streampipes/serializers/json/Utils.java
+++ b/streampipes-serializers/src/main/java/org/apache/streampipes/serializers/json/Utils.java
@@ -20,7 +20,7 @@ package org.apache.streampipes.serializers.json;
 
 import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
-import org.apache.streampipes.model.client.messages.Message;
+import org.apache.streampipes.model.shared.message.Message;
 import org.apache.streampipes.model.client.ontology.Range;
 
 
diff --git a/streampipes-serializers/src/main/java/org/apache/streampipes/serializers/jsonld/CustomAnnotationProvider.java b/streampipes-serializers/src/main/java/org/apache/streampipes/serializers/jsonld/CustomAnnotationProvider.java
index 8370ef1..6c8e35d 100644
--- a/streampipes-serializers/src/main/java/org/apache/streampipes/serializers/jsonld/CustomAnnotationProvider.java
+++ b/streampipes-serializers/src/main/java/org/apache/streampipes/serializers/jsonld/CustomAnnotationProvider.java
@@ -24,10 +24,6 @@ import org.apache.streampipes.model.SpDataSet;
 import org.apache.streampipes.model.SpDataStream;
 import org.apache.streampipes.model.SpDataStreamContainer;
 import org.apache.streampipes.model.base.StreamPipesJsonLdContainer;
-import org.apache.streampipes.model.client.messages.ErrorMessageLd;
-import org.apache.streampipes.model.client.messages.MessageLd;
-import org.apache.streampipes.model.client.messages.NotificationLd;
-import org.apache.streampipes.model.client.messages.SuccessMessageLd;
 import org.apache.streampipes.model.connect.adapter.*;
 import org.apache.streampipes.model.connect.grounding.FormatDescription;
 import org.apache.streampipes.model.connect.grounding.FormatDescriptionList;
@@ -51,19 +47,8 @@ import org.apache.streampipes.model.dashboard.DashboardWidgetModel;
 import org.apache.streampipes.model.dashboard.VisualizablePipeline;
 import org.apache.streampipes.model.datalake.DataExplorerWidgetModel;
 import org.apache.streampipes.model.datalake.DataLakeMeasure;
-import org.apache.streampipes.model.graph.DataProcessorDescription;
-import org.apache.streampipes.model.graph.DataProcessorInvocation;
-import org.apache.streampipes.model.graph.DataSinkDescription;
-import org.apache.streampipes.model.graph.DataSinkInvocation;
-import org.apache.streampipes.model.graph.DataSourceDescription;
-import org.apache.streampipes.model.grounding.EventGrounding;
-import org.apache.streampipes.model.grounding.JmsTransportProtocol;
-import org.apache.streampipes.model.grounding.KafkaTransportProtocol;
-import org.apache.streampipes.model.grounding.MqttTransportProtocol;
-import org.apache.streampipes.model.grounding.SimpleTopicDefinition;
-import org.apache.streampipes.model.grounding.TransportFormat;
-import org.apache.streampipes.model.grounding.TransportProtocol;
-import org.apache.streampipes.model.grounding.WildcardTopicDefinition;
+import org.apache.streampipes.model.graph.*;
+import org.apache.streampipes.model.grounding.*;
 import org.apache.streampipes.model.monitoring.ElementStatusInfoSettings;
 import org.apache.streampipes.model.output.*;
 import org.apache.streampipes.model.quality.*;
@@ -187,10 +172,6 @@ public class CustomAnnotationProvider implements EmpireAnnotationProvider {
             AddValueTransformationRuleDescription.class,
             AddValueTransformationRuleDescription.class,
             PropertyRenameRule.class,
-            ErrorMessageLd.class,
-            SuccessMessageLd.class,
-            MessageLd.class,
-            NotificationLd.class,
             AddTimestampRuleDescription.class,
             PropertyRenameRule.class,
             TimestampTranfsformationRuleDescription.class,
diff --git a/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/IPipelineCategoryStorage.java b/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/IPipelineCategoryStorage.java
index 90c876d..a9e6326 100644
--- a/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/IPipelineCategoryStorage.java
+++ b/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/IPipelineCategoryStorage.java
@@ -20,7 +20,7 @@ package org.apache.streampipes.storage.api;
 
 import java.util.List;
 
-import org.apache.streampipes.model.client.pipeline.PipelineCategory;
+import org.apache.streampipes.model.pipeline.PipelineCategory;
 
 public interface IPipelineCategoryStorage {
 
diff --git a/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/IPipelineElementConnectionStorage.java b/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/IPipelineElementConnectionStorage.java
index 21be40b..8e5f4db 100644
--- a/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/IPipelineElementConnectionStorage.java
+++ b/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/IPipelineElementConnectionStorage.java
@@ -19,7 +19,7 @@
 package org.apache.streampipes.storage.api;
 
 import org.apache.streampipes.model.client.connection.Connection;
-import org.apache.streampipes.model.client.pipeline.PipelineElementRecommendation;
+import org.apache.streampipes.model.pipeline.PipelineElementRecommendation;
 
 import java.util.List;
 
diff --git a/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/IPipelineStorage.java b/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/IPipelineStorage.java
index a617a8a..2bf7a8e 100644
--- a/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/IPipelineStorage.java
+++ b/streampipes-storage-api/src/main/java/org/apache/streampipes/storage/api/IPipelineStorage.java
@@ -18,8 +18,8 @@
 
 package org.apache.streampipes.storage.api;
 
-import org.apache.streampipes.model.client.VirtualSensor;
-import org.apache.streampipes.model.client.pipeline.Pipeline;
+import org.apache.streampipes.model.VirtualSensor;
+import org.apache.streampipes.model.pipeline.Pipeline;
 
 import java.util.List;
 
diff --git a/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/ConnectionStorageImpl.java b/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/ConnectionStorageImpl.java
index 9b80598..c7839c9 100644
--- a/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/ConnectionStorageImpl.java
+++ b/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/ConnectionStorageImpl.java
@@ -25,7 +25,7 @@ import com.google.gson.JsonObject;
 import com.google.gson.JsonParser;
 import org.apache.http.client.fluent.Request;
 import org.apache.streampipes.model.client.connection.Connection;
-import org.apache.streampipes.model.client.pipeline.PipelineElementRecommendation;
+import org.apache.streampipes.model.pipeline.PipelineElementRecommendation;
 import org.apache.streampipes.storage.api.IPipelineElementConnectionStorage;
 import org.apache.streampipes.storage.couchdb.dao.AbstractDao;
 import org.apache.streampipes.storage.couchdb.utils.Utils;
diff --git a/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/PipelineCategoryStorageImpl.java b/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/PipelineCategoryStorageImpl.java
index 3480d94..3008f31 100644
--- a/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/PipelineCategoryStorageImpl.java
+++ b/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/PipelineCategoryStorageImpl.java
@@ -18,7 +18,7 @@
 
 package org.apache.streampipes.storage.couchdb.impl;
 
-import org.apache.streampipes.model.client.pipeline.PipelineCategory;
+import org.apache.streampipes.model.pipeline.PipelineCategory;
 import org.apache.streampipes.storage.api.IPipelineCategoryStorage;
 import org.apache.streampipes.storage.couchdb.dao.AbstractDao;
 import org.apache.streampipes.storage.couchdb.utils.Utils;
diff --git a/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/PipelineStorageImpl.java b/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/PipelineStorageImpl.java
index 6d7be96..95de6ae 100644
--- a/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/PipelineStorageImpl.java
+++ b/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/PipelineStorageImpl.java
@@ -21,8 +21,8 @@ package org.apache.streampipes.storage.couchdb.impl;
 import com.google.gson.JsonArray;
 import com.google.gson.JsonElement;
 import com.google.gson.JsonObject;
-import org.apache.streampipes.model.client.pipeline.Pipeline;
-import org.apache.streampipes.model.client.VirtualSensor;
+import org.apache.streampipes.model.pipeline.Pipeline;
+import org.apache.streampipes.model.VirtualSensor;
 import org.apache.streampipes.storage.api.IPipelineStorage;
 import org.apache.streampipes.storage.couchdb.dao.AbstractDao;
 import org.apache.streampipes.storage.couchdb.utils.Utils;
diff --git a/ui/src/app/connect/model/grounding/JmsTransportProtocol.ts b/ui/src/app/connect/model/grounding/JmsTransportProtocol.ts
index e69de29..41ecef0 100644
--- a/ui/src/app/connect/model/grounding/JmsTransportProtocol.ts
+++ b/ui/src/app/connect/model/grounding/JmsTransportProtocol.ts
@@ -0,0 +1,17 @@
+/*
+ * 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.
+ *
+ */
\ No newline at end of file
diff --git a/ui/src/app/connect/model/grounding/KafkaTransportProtocol.ts b/ui/src/app/connect/model/grounding/KafkaTransportProtocol.ts
index e69de29..41ecef0 100644
--- a/ui/src/app/connect/model/grounding/KafkaTransportProtocol.ts
+++ b/ui/src/app/connect/model/grounding/KafkaTransportProtocol.ts
@@ -0,0 +1,17 @@
+/*
+ * 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.
+ *
+ */
\ No newline at end of file
diff --git a/ui/src/app/core-model/gen/streampipes-model.ts b/ui/src/app/core-model/gen/streampipes-model.ts
index c6d9930..23b2805 100644
--- a/ui/src/app/core-model/gen/streampipes-model.ts
+++ b/ui/src/app/core-model/gen/streampipes-model.ts
@@ -1,10 +1,28 @@
+/*
+ * 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.
+ *
+ */
+
 /* tslint:disable */
 /* eslint-disable */
 // @ts-nocheck
-// Generated using typescript-generator version 2.23.603 on 2020-06-06 13:05:16.
+// Generated using typescript-generator version 2.23.603 on 2020-06-06 16:48:25.
 
 export class AbstractStreamPipesEntity {
-    "@class": "org.apache.streampipes.model.base.NamedStreamPipesEntity" | "org.apache.streampipes.model.graph.DataSourceDescription" | "org.apache.streampipes.model.SpDataStream" | "org.apache.streampipes.model.SpDataSet" | "org.apache.streampipes.model.connect.grounding.ProtocolDescription" | "org.apache.streampipes.model.connect.adapter.AdapterDescription" | "org.apache.streampipes.model.connect.adapter.AdapterSetDescription" | "org.apache.streampipes.model.connect.adapter.GenericAdap [...]
+    "@class": "org.apache.streampipes.model.base.NamedStreamPipesEntity" | "org.apache.streampipes.model.graph.DataSourceDescription" | "org.apache.streampipes.model.SpDataStream" | "org.apache.streampipes.model.SpDataSet" | "org.apache.streampipes.model.base.InvocableStreamPipesEntity" | "org.apache.streampipes.model.graph.DataProcessorInvocation" | "org.apache.streampipes.model.graph.DataSinkInvocation" | "org.apache.streampipes.model.connect.grounding.ProtocolDescription" | "org.apach [...]
 
     static fromData(data: AbstractStreamPipesEntity, target?: AbstractStreamPipesEntity): AbstractStreamPipesEntity {
         if (!data) {
@@ -189,7 +207,7 @@ export class Accuracy extends EventPropertyQualityDefinition {
 }
 
 export class NamedStreamPipesEntity extends AbstractStreamPipesEntity {
-    "@class": "org.apache.streampipes.model.base.NamedStreamPipesEntity" | "org.apache.streampipes.model.graph.DataSourceDescription" | "org.apache.streampipes.model.SpDataStream" | "org.apache.streampipes.model.SpDataSet" | "org.apache.streampipes.model.connect.grounding.ProtocolDescription" | "org.apache.streampipes.model.connect.adapter.AdapterDescription" | "org.apache.streampipes.model.connect.adapter.AdapterSetDescription" | "org.apache.streampipes.model.connect.adapter.GenericAdap [...]
+    "@class": "org.apache.streampipes.model.base.NamedStreamPipesEntity" | "org.apache.streampipes.model.graph.DataSourceDescription" | "org.apache.streampipes.model.SpDataStream" | "org.apache.streampipes.model.SpDataSet" | "org.apache.streampipes.model.base.InvocableStreamPipesEntity" | "org.apache.streampipes.model.graph.DataProcessorInvocation" | "org.apache.streampipes.model.graph.DataSinkInvocation" | "org.apache.streampipes.model.connect.grounding.ProtocolDescription" | "org.apach [...]
     appId: string;
     applicationLinks: ApplicationLink[];
     connectedTo: string[];
@@ -1116,6 +1134,25 @@ export class DomainStaticProperty extends StaticProperty {
     }
 }
 
+export class ElementComposition {
+    description: string;
+    name: string;
+    sepas: DataProcessorInvocation[];
+    streams: SpDataStreamUnion[];
+
+    static fromData(data: ElementComposition, target?: ElementComposition): ElementComposition {
+        if (!data) {
+            return data;
+        }
+        const instance = target || new ElementComposition();
+        instance.sepas = __getCopyArrayFn(DataProcessorInvocation.fromData)(data.sepas);
+        instance.streams = __getCopyArrayFn(SpDataStream.fromDataUnion)(data.streams);
+        instance.name = data.name;
+        instance.description = data.description;
+        return instance;
+    }
+}
+
 export class ElementStatusInfoSettings extends UnnamedStreamPipesEntity {
     "@class": "org.apache.streampipes.model.monitoring.ElementStatusInfoSettings";
     elementIdentifier: string;
@@ -1524,9 +1561,9 @@ export class GenericAdapterSetDescription extends AdapterSetDescription implemen
         }
         const instance = target || new GenericAdapterSetDescription();
         super.fromData(data, instance);
-        instance.protocolDescription = ProtocolDescription.fromData(data.protocolDescription);
-        instance.formatDescription = FormatDescription.fromData(data.formatDescription);
         instance.eventSchema = EventSchema.fromData(data.eventSchema);
+        instance.formatDescription = FormatDescription.fromData(data.formatDescription);
+        instance.protocolDescription = ProtocolDescription.fromData(data.protocolDescription);
         return instance;
     }
 }
@@ -1797,6 +1834,23 @@ export class MeasurementRange extends EventPropertyQualityDefinition {
     }
 }
 
+export class Message {
+    elementName: string;
+    notifications: Notification[];
+    success: boolean;
+
+    static fromData(data: Message, target?: Message): Message {
+        if (!data) {
+            return data;
+        }
+        const instance = target || new Message();
+        instance.success = data.success;
+        instance.elementName = data.elementName;
+        instance.notifications = __getCopyArrayFn(Notification.fromData)(data.notifications);
+        return instance;
+    }
+}
+
 export class MoveRuleDescription extends SchemaTransformationRuleDescription {
     "@class": "org.apache.streampipes.model.connect.rules.schema.MoveRuleDescription";
     newRuntimeKey: string;
@@ -1829,6 +1883,23 @@ export class MqttTransportProtocol extends TransportProtocol {
     }
 }
 
+export class Notification {
+    additionalInformation: string;
+    description: string;
+    title: string;
+
+    static fromData(data: Notification, target?: Notification): Notification {
+        if (!data) {
+            return data;
+        }
+        const instance = target || new Notification();
+        instance.title = data.title;
+        instance.description = data.description;
+        instance.additionalInformation = data.additionalInformation;
+        return instance;
+    }
+}
+
 export class OneOfStaticProperty extends SelectionStaticProperty {
     "@class": "org.apache.streampipes.model.staticproperty.OneOfStaticProperty" | "org.apache.streampipes.model.staticproperty.RuntimeResolvableOneOfStaticProperty";
 
@@ -1871,6 +1942,71 @@ export class Option extends UnnamedStreamPipesEntity {
     }
 }
 
+export class Pipeline extends ElementComposition {
+    _id: string;
+    _rev: string;
+    actions: DataSinkInvocation[];
+    createdAt: number;
+    createdByUser: string;
+    pipelineCategories: string[];
+    publicElement: boolean;
+    running: boolean;
+    startedAt: number;
+
+    static fromData(data: Pipeline, target?: Pipeline): Pipeline {
+        if (!data) {
+            return data;
+        }
+        const instance = target || new Pipeline();
+        super.fromData(data, instance);
+        instance.actions = __getCopyArrayFn(DataSinkInvocation.fromData)(data.actions);
+        instance.running = data.running;
+        instance.startedAt = data.startedAt;
+        instance.createdAt = data.createdAt;
+        instance.publicElement = data.publicElement;
+        instance.createdByUser = data.createdByUser;
+        instance.pipelineCategories = __getCopyArrayFn(__identity<string>())(data.pipelineCategories);
+        instance._id = data._id;
+        instance._rev = data._rev;
+        return instance;
+    }
+}
+
+export class PipelineModification {
+    domId: string;
+    elementId: string;
+    inputStreams: SpDataStreamUnion[];
+    outputStrategies: OutputStrategyUnion[];
+    staticProperties: StaticPropertyUnion[];
+
+    static fromData(data: PipelineModification, target?: PipelineModification): PipelineModification {
+        if (!data) {
+            return data;
+        }
+        const instance = target || new PipelineModification();
+        instance.domId = data.domId;
+        instance.elementId = data.elementId;
+        instance.staticProperties = __getCopyArrayFn(StaticProperty.fromDataUnion)(data.staticProperties);
+        instance.outputStrategies = __getCopyArrayFn(OutputStrategy.fromDataUnion)(data.outputStrategies);
+        instance.inputStreams = __getCopyArrayFn(SpDataStream.fromDataUnion)(data.inputStreams);
+        return instance;
+    }
+}
+
+export class PipelineModificationMessage extends Message {
+    pipelineModifications: PipelineModification[];
+
+    static fromData(data: PipelineModificationMessage, target?: PipelineModificationMessage): PipelineModificationMessage {
+        if (!data) {
+            return data;
+        }
+        const instance = target || new PipelineModificationMessage();
+        super.fromData(data, instance);
+        instance.pipelineModifications = __getCopyArrayFn(PipelineModification.fromData)(data.pipelineModifications);
+        return instance;
+    }
+}
+
 export class PipelineTemplateDescription extends NamedStreamPipesEntity {
     "@class": "org.apache.streampipes.model.template.PipelineTemplateDescription";
     boundTo: BoundPipelineElement[];
@@ -1885,9 +2021,9 @@ export class PipelineTemplateDescription extends NamedStreamPipesEntity {
         const instance = target || new PipelineTemplateDescription();
         super.fromData(data, instance);
         instance.boundTo = __getCopyArrayFn(BoundPipelineElement.fromData)(data.boundTo);
-        instance.pipelineTemplateName = data.pipelineTemplateName;
-        instance.pipelineTemplateId = data.pipelineTemplateId;
         instance.pipelineTemplateDescription = data.pipelineTemplateDescription;
+        instance.pipelineTemplateId = data.pipelineTemplateId;
+        instance.pipelineTemplateName = data.pipelineTemplateName;
         return instance;
     }
 }
@@ -2232,8 +2368,8 @@ export class SpDataSet extends SpDataStream {
         instance.supportedGrounding = EventGrounding.fromData(data.supportedGrounding);
         instance.datasetInvocationId = data.datasetInvocationId;
         instance.correspondingPipeline = data.correspondingPipeline;
-        instance.actualTopicName = data.actualTopicName;
         instance.brokerHostname = data.brokerHostname;
+        instance.actualTopicName = data.actualTopicName;
         return instance;
     }
 }
diff --git a/ui/src/app/editor-v2/components/pipeline-assembly/pipeline-assembly.component.css b/ui/src/app/editor-v2/components/pipeline-assembly/pipeline-assembly.component.css
index e69de29..41ecef0 100644
--- a/ui/src/app/editor-v2/components/pipeline-assembly/pipeline-assembly.component.css
+++ b/ui/src/app/editor-v2/components/pipeline-assembly/pipeline-assembly.component.css
@@ -0,0 +1,17 @@
+/*
+ * 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.
+ *
+ */
\ No newline at end of file
diff --git a/ui/src/app/editor-v2/components/pipeline-element-icon-stand/pipeline-element-icon-stand.component.css b/ui/src/app/editor-v2/components/pipeline-element-icon-stand/pipeline-element-icon-stand.component.css
index e69de29..41ecef0 100644
--- a/ui/src/app/editor-v2/components/pipeline-element-icon-stand/pipeline-element-icon-stand.component.css
+++ b/ui/src/app/editor-v2/components/pipeline-element-icon-stand/pipeline-element-icon-stand.component.css
@@ -0,0 +1,17 @@
+/*
+ * 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.
+ *
+ */
\ No newline at end of file
diff --git a/ui/src/app/editor-v2/components/pipeline-element/pipeline-element.component.css b/ui/src/app/editor-v2/components/pipeline-element/pipeline-element.component.css
index e69de29..41ecef0 100644
--- a/ui/src/app/editor-v2/components/pipeline-element/pipeline-element.component.css
+++ b/ui/src/app/editor-v2/components/pipeline-element/pipeline-element.component.css
@@ -0,0 +1,17 @@
+/*
+ * 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.
+ *
+ */
\ No newline at end of file
diff --git a/ui/src/app/editor-v2/components/pipeline/pipeline.component.css b/ui/src/app/editor-v2/components/pipeline/pipeline.component.css
index e69de29..41ecef0 100644
--- a/ui/src/app/editor-v2/components/pipeline/pipeline.component.css
+++ b/ui/src/app/editor-v2/components/pipeline/pipeline.component.css
@@ -0,0 +1,17 @@
+/*
+ * 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.
+ *
+ */
\ No newline at end of file
diff --git a/ui/src/app/editor-v2/editor.component.css b/ui/src/app/editor-v2/editor.component.css
index e69de29..41ecef0 100644
--- a/ui/src/app/editor-v2/editor.component.css
+++ b/ui/src/app/editor-v2/editor.component.css
@@ -0,0 +1,17 @@
+/*
+ * 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.
+ *
+ */
\ No newline at end of file