You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@streampipes.apache.org by wi...@apache.org on 2020/10/02 13:38:40 UTC

[incubator-streampipes] branch edge-extensions updated (1cfe528 -> ccafe81)

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

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


    from 1cfe528  preliminary modifaction of endpoint
     add 6fc805f  [STREAMPIPES-145] Add new serialization layer, add initial skeleton of new Angular-based editor module
     add 1da937d  [STREAMPIPES-145] Add pipeline assembly component, move pipeline services to editor module
     add 53a561e  [STREAMPIPES-145] Add pipeline component
     add 1d4dcad  [STREAMPIPES-145] Add pipeline handling
     add 636abef  [STREAMPIPES-145] Cleanup client model, move pipeline models to streampipes-model
     add b5adaca  [STREAMPIPES-145] Improve serialization
     add b675bf4  [STREAMPIPES-145] Add pipeline element options
     add b632949  [STREAMPIPES-145] Add tooltips to assembly
     add 6e85d52  [STREAMPIPES-145] Add dialog template
     add 45df2ef  [STREAMPIPES-145] Add customize option in pipeline-element-options
     add d13546e  [STREAMPIPES-145] Improve layout of customize dialog
     add c1b477a  [STREAMPIPES-145] Refactor static property rendering
     add 77e2040  [STREAMPIPES-145] Refactor serialization layer in connect module
     add 2b2cd3c  [STREAMPIPES-145] Add reusable dialog components
     add 3c3fdec  [STREAMPIPES-145] Improve data injection to dialogs
     add c2f4e9f  [STREAMPIPES-145] Move dialog templates to core-ui module
     add a011635  [STREAMPIPES-145] Migrate pipeline validation handling
     add d2c63f9  [STREAMPIPES-145] Migrate pipeline start dialog
     add 2bcad07  [STREAMPIPES-145] Migrate pipeline element recommender
     add 0e46ddd  [STREAMPIPES-145] Migrate compatible elements dialog
     add 2335c84  [STREAMPIPES-145] Migrate delete dialog
     add cd2cd03  [STREAMPIPES-145] Migrate pipeline cache
     add 6ae26c1  [STREAMPIPES-145] Migrate help dialog
     add b9db613  [STREAMPIPES-145] Fix bug in cache handling of pipeline elements
     add 4bb7253  [STREAMPIPES-145] Migrate pipeline element documentation module
     add 8f53927  [STREAMPIPES-145] Use migrated editor module as default
     add dbcca29  [STREAMPIPES-145] Migrate pipeline element filter
     add 1879d46  [STREAMPIPES-145] Sort pipeline elements by name
     add af46865  [STREAMPIPES-145] Fix bug in pipeline element recommender
     add 2396bde  [STREAMPIPES-145] Add options to tabs overview
     add e00001c  [STREAMPIPES-145] Migrate matching error dialog
     add 05fd8c4  [STREAMPIPES-145] Fix bug in JSON serializer
     add f4e6550  [STREAMPIPES-145] Migrate welcome dialog
     add 931507c  [STREAMPIPES-145] Optimize imports
     add 145fbda  [STREAMPIPES-145] Migrate tutorial dialog
     add acd0f37  [STREAMPIPES-145] Improve form validation of static properties
     add 932113b  [STREAMPIPES-145] Migrate secret static property
     add a40f638  [STREAMPIPES-166] Add color picker static property to SDK
     add 02c2dd9  [STREAMPIPES-145] Migrate color picker static property
     add bc4239b  [STREAMPIPES-145] Remove obsolete components from StreamPipes Connect
     add ea24afd  [STREAMPIPES-145] Remove protocol component from StreamPipes Connect
     add 5b522e9  [STREAMPIPES-145] Remove RDFmapper from StreamPipes Connect
     add 2ea4889  [STREAMPIPES-145] Switch serialization format of worker registration
     add 85c826a  [STREAMPIPES-145] Migrate runtime-resolvable static property
     add 0c25839  [STREAMPIPES-145] Migrate guess schema component in StreamPipes Connect
     add fb1c6da  Merge branch 'dev' into STREAMPIPES-145
     add ad82ba7  [STREAMPIPES-145] Add slider to FreeTextStaticPropertyRenderer
     add d33365c  [STREAMPIPES-145] Migrate text editor
     add db5372f  [STREAMPIPES-145] Migrate code input static property
     add 28a4777  [STREAMPIPES-145] Move edit event property dialog
     add afb52bc  [STREAMPIPES-145] Move event property dialog
     add 5a22947  [STREAMPIPES-145] Fix module import statements
     add c6cdc93  Merge branch 'STREAMPIPES-145' of github.com:apache/incubator-streampipes into STREAMPIPES-145
     add d0d3bd4  [STREAMPIPES-145] Create edit timestamp component
     add 79144ae  [STREAMPIPES-145] Add integer as possible data type
     add 2c7776e  [STREAMPIPES-145] Refactor edit timestamp property
     add 7e75d05  [STREAMPIPES-145] Fix unit transformation
     add 650e25a  [STREAMPIPES-145] Add edit data type component
     add 57f8b19  [STREAMPIPES-145] Moved edit event property sub components
     add 8c916b1  [STREAMPIPES-145] Rename unit transformation component
     add c68ad2f  [STREAMPIPES-145] unit transformation just for numerical values
     add b296abe  [STREAMPIPES-145] Fix edit event property list
     add 88971ec  Merge branch 'STREAMPIPES-145' of github.com:apache/incubator-streampipes into STREAMPIPES-145
     add c6440ad  [STREAMPIPES-145] Add tooltip to pipeline element overview
     add bb6e9d0  [STREAMPIPES-145] Improve form validation
     add 1c328ff  [STREAMPIPES-145] Migrate CustomOutputStrategy
     add 6571665  [STREAMPIPES-145] Migrate user-defined output strategy
     add 3791c49  [STREAMPIPES-145] Restrict output strategy rendering to customizable output strategies
     add 85f35de  [STREAMPIPES-145] Fix bug in pipeline element cache
     add fd3639a  [STREAMPIPES-145] Add restrictedEditMode
     add dcfeecc  [STREAMPIPES-145] Migrate recommended filter
     add cb60a2e  [STREAMPIPES-145] Fix bug in mapping property selection
     add 13d0644  [STREAMPIPES-145] Migrate static property alternatives
     add e5d0e76  [STREAMPIPES-145] Fix CSS bug in welcome screen
     add c0e14a2  [STREAMPIPES-145] Migrate interactive editor tour
     add 7a87138  [STREAMPIPES-145] Improve dialog layout
     add db90e07  [STREAMPIPES-145] Improve layout of editor module
     add c2deee5  [STREAMPIPES-145] Fix bug in pipeline element filter
     add 0771d3a  [STREAMPIPES-145] Minor UI improvements
     add 4969fa8  [STREAMPIPES-145] Add documentation feature to customize dialog
     add f968392  [STREAMPIPES-145] Fix bug in pipeine assembly options
     add 2214749  [STREAMPIPES-145] Change serializer of dashboard models
     add bd19fda  [STREAMPIPES-178] Migrate pipeline view to Angular
     add e9ffdac  [STREAMPIPES-177] Migrate pipeline details view from AngularJS to Angular
     add d0d2a73  [STREAMPIPES-145] Fix bug in pipeline modification feature
     add f500ca2  Fix load empty pipeline cache
     add 2006d3c  Fix persisting of labels in data explorer
     add eec32b9  Add sp_internal_label to dropdown in line chart
     add b9cefaf  Change order of label in line chart
     add 7ee9296  Fix column selection in table view
     add 61d3c0f  Add search and sort to table widget
     add a321a1b  Fix table layout in data explorer
     add a74fcaa  Merge branch 'dev' into STREAMPIPES-145
     add 087b609  [STREAMPIPES-145] Fix data sets in editor
     add 9a86406  [STREAMPIPES-145] Improve CSS theming
     add dda5f01  [STREAMPIPES-145] Modify dialog text of mixed source alert
     add 54ffc86  [STREAMPIPES-145] Remove old editor module
     add 7b622d1  Remove AppLinks module
     add 716849f  [STREAMPIPES-190] Migrate pipeline element installation from AngularJS to Angular
     add a9ec6a0  Remove beta ribbon from connect and added to data explorer
     add 94b1423  Add class annotation to transformation rules
     add d5cdb8f  Fix add timestamp rule
     add a2bc6d7  Working on add transformation rule
     add 18d8add  Fix add static propty rule in schema editor
     add 35874b1  Fix add nested property rule
     add cab0320  Merge branch 'STREAMPIPES-145' of github.com:apache/incubator-streampipes into STREAMPIPES-145
     add 82f3335  [STREAMPIPES-191] Integrate pipeline element update into pipeline element installation view
     add e965177  [STREAMPIPES-191] Remove MyElements view
     add eaac6e3  [hotfix] Fix bug in data explorer
     add f826e40  [STREAMPIPES-79] Use new Jackson serializer and server-generated models in data explorer view
     add 15d0c62  Fix present exceptions of connenct worker in ui
     add 1265561  Fix Image Upload adapter and image preview
     add fd3e0e6  Merge branch 'STREAMPIPES-145' of github.com:apache/incubator-streampipes into STREAMPIPES-145
     add 50a6a74  Merge branch 'STREAMPIPES-145' of github.com:apache/incubator-streampipes into STREAMPIPES-145
     add 7faa21d  [STREAMPIPES-79] Improve add widget dialog in data explorer
     add 4ac7033  [STREAMPIPES-79] Improve layout of time selection
     add 2376a17  [STREAMPIPES-79] Improve grid layout of data explorer
     add 160696b  Fix configuration of event format in connect
     add 587f210  Remove select static properties component
     add 5c50ba2  Merge branch 'STREAMPIPES-145' of github.com:apache/incubator-streampipes into STREAMPIPES-145
     add 8f8b5bf  Merge branch 'STREAMPIPES-145' of github.com:apache/incubator-streampipes into STREAMPIPES-145
     add 84ab957  [STREAMPIPES-79] Modify gridster item layout
     add 6e393f1  [STREAMPIPES-79] Improve layout of data explorer widget settings
     add a49b053  [STREAMPIPES-79] Automatically resize data explorer widgets
     add 8478a5f  [STREAMPIPES-185] add consul service and config registration in python wrapper
     add 1fa62ca  [STREAMPIPES-185] some minor changes to consul registration and refactoring
     add c76570e  [STREAMPIPES-187] initial work on rest endpoints
     add 86a7c35  updates to python wrapper README
     add bcfbfdb  [STREAMPIPES-187] defined api endpoint stubs
     add 67ca8d0  [STREAMPIPES-185][hotfix] remove print command
     add b2ac9a0  [STREAMPIPES-187] add template for welcome page
     add cf0423b  [hotfix] consolidated consul config and service registration
     add 8d0a842  Add apache headers to python wrapper
     add d27265d  Merge branch 'dev' into STREAMPIPES-145
     add 1dc49f5  [STREAMPIPES-79] Cleanup data explorer module
     add fdc9bdd  [STREAMPIPES-193] Migrate login module to Angular
     add e0e444d  [STREAMPIPES-193] Migrate core modules to Angular
     add 4f8ec90  [STREAMPIPES-193] Add router to standalone dashboard
     add 83d25c5  [STREAMPIPES-193] Remove AngularJS dependencies from package.json
     add d36f6a6  [STREAMPIPES-193] Add guards
     add 57c3042  [STREAMPIPES-193] Show current router state in toolbar
     add 265fb38  [STREAMPIPES-193] Fix layout bug in pipeline details view
     add be26f97  [hotfix] some minor renamings
     add e39021b  [hotfix] Use Maven install goal to ensure rat license check on every commit
     add 6269512  [hotfix] Add missing license headers
     add 86dbbde  Merge branch 'dev' of https://github.com/apache/incubator-streampipes into dev
     add b618b85  [hotfix] updated setup.py and README.md
     add ab05ed7  [STREAMPIPES-194] remove widget icon from being rendered
     add 7970dc2  [hotfix] version update, removed point at end of description
     add 22d488f  [hotfix] change button style of pipeline element endpoint items
     add 4a16d18  [STREAMPIPES-195] add default constructur and getter/setter for rev attribute
     add 1445691  Merge branch 'dev' into STREAMPIPES-193
     add c71badc  [STREAMPIPES-193] Migrate state navigation to Angular router
     add ff779b5  [STREAMPIPES-193] Migrate loading bar, minor bug fixes to get rid of AngularJS imports
     add d393e05  [STREAMPIPES-193] Fix appearance of feedback component
     add e050d9f  [STREAMPIPES-193] Fix minor layout bug in pipeline element installation module
     add 5bfdfda  [STREAMPIPES-193] Fix notification icon in iconbar
     add 8a9a740  [STREAMPIPES-193] Migrate prebuild steps
     add 103d84d  [STREAMPIPES-193] Fix automatic start of pipelines
     add fe32862  [STREAMPIPES-193] Fix pipeline update feature
     add 0471e4a  [STREAMPIPES-193] Add minor layout improvements
     add 81993b5  [STREAMPIPES-193] Remove obsolete dependencies
     add 511e695  [STREAMPIPES-193] Upgrade Angular to v10
     add ca2b011  [hotfix] Remove pipeline from cache after storage
     add 57ca59c  [hotfix] Pipeline validation also catches unconfigured pipeline elements
     add a850854  [STREAMPIPES-193] display version info in toolbar
     add 18bc42e  Merge branch 'STREAMPIPES-193' of github.com:apache/incubator-streampipes into STREAMPIPES-193
     add 462164c  [hotfix] Add default font to global settings
     add 045eb2e  [STREAMPIPES-193] Improve home screen and remove old screenshots
     add 74493ed  [STREAMPIPES-193] Update gitignore
     add 4c07b97  [STREAMPIPES-174] switch to waitress for serving, fixed some minors
     add 54f0e41  [STREAMPIPES-174] remove illegal character
     add 931a0ea  [hotfix] removed duplicate entry
     add fd9f1e3  Merge branch 'dev' into STREAMPIPES-193
     add 6e1e942  [STREAMPIPES-193] Remove obsolete import, add missing license header
     add 1394674  [hotfix] Fix category filter in StreamPipes Connect
     add 0e0c1b6  [STREAMPIPES-145] Fix runtime-resolvable static property renderer
     add 8b32afa  [STREAMPIPES-198] set background of progress bar to grey color
     add a8d9f3c  Merge branch 'dev' of github.com:apache/incubator-streampipes into dev
     add 87cb764  [STREAMPIPES-99] Fix adapter template download and upload
     add 185415b  [STREAMPIPES-199] Improve pipeline storage dialog
     add 7b1b7f3  [STREAMPIPES-132] Add minor improvements to JS evaluation component
     add de0a649  [STREAMPIPES-199][ui] remove advanced settings option from setup
     add 0ad9a1c  [STREAMPIPES-199][backend] remove external service config from initial settings
     add 9153ca1  Merge remote-tracking branch 'refs/remotes/origin/dev' into dev
     add 47f4aeb  Merge branch 'dev' of github.com:apache/incubator-streampipes into dev
     add bef3921  [STREAMPIPES-205] Make pipeline element search case-insensitive
     add 9b8dcdf  [STREAMPIPES-173] Use standard disclaimer over WIP disclaimer
     add e78e096  [hotfix] fixed typo
     add 084a8ad  [hotfix] fix header
     add 043b6de  [STREAMPIPES-203] Add more options to pipeline element installation view
     add 00c02c9  [hotfix] Fix bug in adapter filter
     add 1cd61bd  [STREAMPIPES-202] Fix bug in customize dialog
     add 7696f33  [hotfix] fix typo
     add af4ca2e  Merge remote-tracking branch 'refs/remotes/origin/dev' into dev
     add 435670f  Merge branch 'dev' of github.com:apache/incubator-streampipes into dev
     add 0c28a39  [hotfix] Use slide-in dialog for AddVisualizationDialog
     add 32a3e72  [STREAMPIPES-201] Improve setup view
     add 48a56ae  [hotfix] Add loading screen to Connect module
     add 1d7ba82  [hotfix] Add padding to version info view
     add a292124  [hotfix] Add loading screen to notification view
     add beeb46f  [hotfix] Fix bug in FileResource
     add 81adbc4  [STREAMPIPES-207][WIP] Fix image widget in data explorer
     add c495a1b  [STREAMPIPES-206] Remove tson-ld serializer and service
     add 486c80c  [STREAMPIPES-206] Cleanup imports in Connect UI module
     add 6a9f58a  [STREAMPIPES-206] Remove deprecated UI models
     add b3ab9f8  [STREAMPIPES-206] Remove obsolete UI dependencies
     add 6c7f689  [STREAMPIPES-206] Move static property renderer to core-ui module
     add f74a60c  [STREAMPIPES-206] Reorganize connect module according to layout of other modules
     add 4364b6d  [STREAMPIPES-206] Optimize module imports
     add 9d300db  [hotfix] Fix pipeline element runtime info
     add 33d5265  [hotfix] Cleanup dependencies
     add 67def69  [hotfix] Fix button in endpoint installation dialog
     add b3ad5a6  Remove unused funcitonalities in data explorer overview
     add 6e75899  Merge branch 'dev' of github.com:apache/incubator-streampipes into dev
     add 89ab19e  Merge branch 'dev' of github.com:apache/incubator-streampipes into dev
     add 746cbf8  [hotfix] Fix bug in horizontal rendering of static property groups
     add dd39bfa  [STREAMPIPES-208] Add mapping property support for collections to SDK and UI
     add ad6e73c  [STREAMPIPES-200] Add custom typography to theming provider
     add 44fc413  [hotfix] Use smaller font size for dialog titles
     add f348f96  Working on new image visualization for data explorer
     add 6d74083  Fix image bar
     add 8c4e0c8  Remove css form html code in image bar
     add 5d380e9  [STREAMPIPES-107] Fix image widget in data explorer
     add ecb4672  Merge branch 'dev' of github.com:apache/incubator-streampipes into dev
     add 65d911c  Merge branch 'dev' of github.com:apache/incubator-streampipes into dev
     add ede35f8  Fix image labeling app
     add dfe2499  Merge branch 'dev' of github.com:apache/incubator-streampipes into dev
     add ca99e64  [STREAMPIPES-208] Use mapping properties and groups in collections
     add 6bde071  Change behaviour of coco files in image labeler
     add c3f9afa  Set @class in cloner for options in the UI
     add 1a9c3b3  [STREAMPIPES-213] Enable user to delete data in data lake
     add 34adf6c  Add apache header to new datalake configuration
     add 53d444f  start to make a responsive canvas for the data explorer
     add 8d50b41  Merge branch 'dev' of github.com:apache/incubator-streampipes into dev
     add 7b79466  [hotfix] Fix unexpected delay while closing the element customization dialog
     add 14f1860  Add datalake index to widget in data explorer
     add 44d0574  Merge branch 'dev' of github.com:apache/incubator-streampipes into dev
     add 53f242b  [hotfix] adjust size of setup window
     add acb6379  Merge branch 'dev' of github.com:apache/incubator-streampipes into dev
     add 277bc6b  [hotfix] Improve pipeline validation, disable pipeline modification dialog for uncompleted pipeline elements
     add 192490e  [hotfix] Improve pipeline element recommendation
     add 825c45b  [hotfix] edit installation description to fit to new options
     add 6823144  [hotfix] some minor edits including naming connect adapters as part of extensions
     add 599bee8  [hotfix] use master repo as reference for installer
     add fcb3603  [hotfix] use master repo as reference for installer
     add 82582b6  Merge branch 'dev' of github.com:apache/incubator-streampipes into dev
     add 79e2c5e  [STREAMPIPES-210] Add serialization hints to static property extractor in dashboard
     add 29272fb  [hotfix] add new streampipes overview in README
     add d89b76a  Merge remote-tracking branch 'refs/remotes/origin/dev' into dev
     add 27bfb0e  Merge branch 'dev' of github.com:apache/incubator-streampipes into dev
     add 0b3086d  [STREAMPIPES-218] Always show config icon in pipeline editor
     add 8d5a296  [hotfix] remove visible link
     add 5100ab1  Merge remote-tracking branch 'refs/remotes/origin/dev' into dev
     add c5e4c67  Merge branch 'dev' of github.com:apache/incubator-streampipes into dev
     add cccdfb4  [STREAMPIPES-130] Add max.request.size to Kafka producer config
     add b3007db  [hotfix] Update Nginx config
     add 0256b7e  Fix websocket for SSL deployment
     add 2fe7020  [hotfix] Change semantic types for numbers in data explorer
     add 8028baa  [STREAMPIPES-215] Properly filter pipeline element types in icon stand
     add 9683528  Merge branch 'dev' of github.com:apache/incubator-streampipes into dev
     add 15894f0  [STREAMPIPES-214] Fix pipeline element filter
     add cec7c5d  Merge branch 'dev' of github.com:apache/incubator-streampipes into dev
     add 026764b  [STREAMPIPES-219] Refresh button in Data Explorer is not working
     add 68566cd  Deactivated apps for release
     add 5f4f2f9  [maven-release-plugin] prepare branch rel/VERSION
     add 79b1591  [maven-release-plugin] prepare for next development iteration
     add a20d55f  [STREAMPIPES-220] Add builder method for requiredFloatParameters, fix render issue in mat-slider
     add 7f875f3  [STREAMPIPES-221] Update maven archetypes for pipeline elements
     add e4fb7af  [STREAMPIPES-221] Update README
     add d4326a3  [STREAMPIPES-221] fixed some minor
     add 2dcc9c2  [hotfix] Remove warnings from Connect rest endpoints
     add 1c0b360  [STREAMPIPES-222] Upgrade Spring and Spring Boot to latest versions
     add 50cf1f8  [hotfix] Remove Jersey warnings from pipeline element container
     add 23ca38a  [hotfix] Resolve dependency convergence issues
     add 4592458  Streampipes master container
     add 8639936  Merge pull request #25 from ajaybhat/topic/STREAMPIPES-173
     add 455ab85  [STREAMPIPES-167] place only needed IntelliJ run configs
     add f9aaded  [STREAMPIPES-173] remove outdated kafka rest env variables
     add a115c5e  [STREAMPIPES-232] Build and push Docker images on rel/** branches
     add 43bf478  Merge remote-tracking branch 'refs/remotes/origin/dev' into dev
     add 7c19e23  [hotfix] update version to 0.68.0-SNAPSHOT
     add a76708b  [hotfix] update validation docker-compose.yml
     add bf5e026  [hotfix] Add production environment for Angular
     add ec1cc16  [hotfix] Add angular environment config
     add 62e0be4  [STREAMPIPES-174] clean up requirements.txt
     add a1d1c4d  Merge branch 'dev' of github.com:apache/incubator-streampipes into dev
     add f44dd00  [hotfix] Fix layout bug in setup page
     add c589e62  [hotfix] add fix docker network name for release validation
     add fb0b075  Merge branch 'dev' of github.com:apache/incubator-streampipes into dev
     add d93e48d  [STREAMPIPES-233] Make visualizations independent of pipeline element id
     add 80b45f0  [hotfix] Fix bug in shepherd service, remove console output
     add 50fc389  Add extensions run configurations
     add 9b58335  [hotfix] Fix CSS layout bug in pipeline element recommendation
     add 6461cc7  [hotfix] Fix layout bug in pipeline overview
     add d6f0f9d  Merge branch 'dev' of github.com:apache/incubator-streampipes into dev
     add 3e79366  [hotfix] add run config for all-pipeline-elements-flink
     add 797411f  [hotfix] update pipeline element section
     add 95340c8  [hotfix] Show error if runtime info is not available
     add 53c3d7c  [hotfix] Fix placeholder in free text static property renderer
     add 94ef078  [hotfix] Add radio group around oneof static property renderer
     add 4711b9b  [hotfix] Remove license texts of licenses that are not mentioned in LICENSE
     add af1cd97  Remove unused dashboard widget
     add 20b4e09  [STREAMPIPES-235] Add html font format only option as freetext static property
     add 3402027  Merge remote-tracking branch 'refs/remotes/origin/dev' into dev
     add 32e71e0  Merge branch 'dev' of github.com:apache/incubator-streampipes into dev
     add f545b26  [STREAMPIPES-242] Mqtt adapter next button can not be clicked
     add fff1f84  [hotfix] add timestamp as header
     add 0c9a551  [STREAMPIPES-145] Add update emitter to mapping properties
     add 637fc7a  [hotfix] Fix TransformOutput generators
     add 6ab56c5  Merge remote-tracking branch 'refs/remotes/origin/dev' into dev
     add 4f3db5d  [STREAMPIPES-217] Harmonize file management for pipeline elements and adapters
     add 86f3f1c  [STREAMPIPES-217] Add additional file extensions to SDK
     add b6586c9  [STREAMPIPES-217] Add delete feature to file management
     add 54d29f2  [STREAMPIPES-217] Remove obsolete file resources and views
     add 722dc11  Merge branch 'dev' of github.com:apache/incubator-streampipes into dev
     new 1281d90  [hotfix] update branch with latest changes from dev
     add 93b7df1  [hotfix] Fix bug that caused pipeline element recommender to crash
     add 6ee742d  [hotfix] Improve loading of remote static properties
     add 70309e0  Merge branch 'dev' of github.com:apache/incubator-streampipes into dev
     add 6ec413b  [STREAMPIPES-217] Improve file upload behaviour
     add 535cf08  [hotfix] Make pipeline table sortable
     add e3b82fe  [hotfix] Fix bug that prevented historical notifications from loading
     add 6543820  Fix CSV export for missing columns in database
     add 1973024  Add grouping to maps dashboard widget
     add 161d5b0  Fix table of content link
     new c281844  Merge branch 'dev' into edge-extensions
     new 1f5959f  update branch with dev changes
     add 8a53355  Add release notes for upcoming version
     add b762769  [STREAMPIPES-246] Remove obsolete module streampipes-app-file-export
     add 0821dae  [STREAMPIPES-247] Fix bug that caused alternative static properties to be validated incorrectly
     add 5714f20  [hotfix] Properly reload pipeline element recommendations
     new ccafe81  Merge branch 'dev' into edge-extensions

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


Summary of changes:
 .github/workflows/build.yml                        |    3 +-
 .gitignore                                         |    6 +-
 .idea/runConfigurations/AggregationFlinkInit.xml   |   15 -
 .../Apache_StreamPipes___Connect_Master.xml        |   15 -
 .../Apache_StreamPipes___Core.xml                  |   21 -
 .idea/runConfigurations/BrokersJvmInit.xml         |   14 -
 .idea/runConfigurations/ConnectAdapterInit.xml     |   17 -
 .idea/runConfigurations/DatabasesFlinkInit.xml     |   16 -
 .idea/runConfigurations/DatabasesJvmInit.xml       |   14 -
 .idea/runConfigurations/EnricherFlinkInit.xml      |   15 -
 .idea/runConfigurations/EnricherJvmInit.xml        |   14 -
 .idea/runConfigurations/FiltersJvmInit.xml         |   15 -
 .idea/runConfigurations/FiltersSiddhiInit.xml      |   15 -
 .idea/runConfigurations/GeoFlinkInit.xml           |   15 -
 .idea/runConfigurations/GeoJvmInit.xml             |   14 -
 .idea/runConfigurations/ImageProcessingJvmInit.xml |   14 -
 .../PatternDetectionFlinkInit.xml                  |   15 -
 .idea/runConfigurations/SinksInternalJvmInit.xml   |   22 -
 .../SinksNotificationsJvmInit.xml                  |   23 -
 .idea/runConfigurations/StatisticsFlinkInit.xml    |   15 -
 .idea/runConfigurations/TestMiningFlinkInit.xml    |   15 -
 .idea/runConfigurations/TestMiningJvmInit.xml      |   14 -
 .../runConfigurations/TransformationFlinkInit.xml  |   15 -
 .idea/runConfigurations/TransformationJvmInit.xml  |   14 -
 .idea/runConfigurations/VehicleSimulatorInit.xml   |   16 -
 .idea/runConfigurations/WatertankSimulatorInit.xml |   16 -
 .../all_pipeline_elements_flink.xml                |   15 +
 .../all_pipeline_elements_jvm.xml                  |   21 +
 .idea/runConfigurations/backend.xml                |   18 +
 .idea/runConfigurations/connect_adapters.xml       |   17 +
 .idea/runConfigurations/connect_master.xml         |   16 +
 .../processors_aggregation_flink.xml               |   15 +
 .../processors_enricher_flink.xml                  |   15 +
 .../runConfigurations/processors_enricher_jvm.xml  |   14 +
 .idea/runConfigurations/processors_filters_jvm.xml |   14 +
 .../processors_filters_siddhi.xml                  |   14 +
 .idea/runConfigurations/processors_geo_flink.xml   |   15 +
 .idea/runConfigurations/processors_geo_jvm.xml     |   14 +
 .../processors_imageprocessing_jvm.xml             |   14 +
 .../processors_pattern_detection_flink.xml         |   15 +
 .../processors_statistics_flink.xml                |   15 +
 .../processors_textmining_flink.xml                |   15 +
 .../processors_textmining_jvm.xml                  |   14 +
 .../processors_transformation_flink.xml            |   15 +
 .../processors_transformation_jvm.xml              |   14 +
 .idea/runConfigurations/sinks_brokers_jvm.xml      |   14 +
 .idea/runConfigurations/sinks_databases_flink.xml  |   16 +
 .idea/runConfigurations/sinks_databases_jvm.xml    |   14 +
 .idea/runConfigurations/sinks_internal_jvm.xml     |   22 +
 .../runConfigurations/sinks_notifications_jvm.xml  |   23 +
 .../sources_vehicle_simulator_jvm.xml              |   16 +
 .../sources_watertank_simulator_jvm.xml            |   16 +
 .idea/runConfigurations/ui.xml                     |    9 +
 DISCLAIMER                                         |    5 +
 DISCLAIMER-WIP                                     |    8 -
 README.md                                          |   50 +-
 RELEASE_NOTES.md                                   |   98 +-
 .../README.md                                      |   18 +-
 .../pom.xml                                        |    2 +-
 .../META-INF/maven/archetype-metadata.xml          |   20 +-
 .../src/main/resources/archetype-resources/pom.xml |    4 +-
 .../archetype-resources/src/main/java/Init.java    |   55 +
 .../src/main/java/config/Config.java               |   56 +-
 .../src/main/java/config/ConfigKeys.java           |    7 +-
 .../src/main/java/main/Init.java                   |   57 -
 .../__packageName__/__classNamePrefix__.java       |   13 +-
 .../__classNamePrefix__Controller.java             |   23 +-
 .../__classNamePrefix__Parameters.java             |    2 -
 .../__classNamePrefix__Program.java                |    9 +-
 .../documentation.md                               |   20 +-
 .../icon.png                                       |  Bin 4836 -> 13563 bytes
 .../strings.en                                     |    2 +-
 .../README.md                                      |   18 +-
 .../pom.xml                                        |    2 +-
 .../META-INF/maven/archetype-metadata.xml          |   19 +-
 .../src/main/resources/archetype-resources/pom.xml |    4 +-
 .../archetype-resources/src/main/java/Init.java    |   54 +
 .../src/main/java/config/Config.java               |   41 +-
 .../src/main/java/config/ConfigKeys.java           |    4 +-
 .../src/main/java/main/Init.java                   |   58 -
 .../__packageName__/__classNamePrefix__.java       |   20 +-
 .../__classNamePrefix__Controller.java             |   15 +-
 .../__classNamePrefix__Parameters.java             |    3 +-
 .../documentation.md                               |   20 +-
 .../icon.png                                       |  Bin 4836 -> 13563 bytes
 .../strings.en                                     |    2 +-
 .../streampipes-archetype-pe-sinks-flink/README.md |   18 +-
 .../streampipes-archetype-pe-sinks-flink/pom.xml   |    2 +-
 .../META-INF/maven/archetype-metadata.xml          |   15 +-
 .../src/main/resources/archetype-resources/pom.xml |    4 +-
 .../archetype-resources/src/main/java/Init.java    |   53 +
 .../src/main/java/config/Config.java               |   55 +-
 .../src/main/java/config/ConfigKeys.java           |    6 +-
 .../src/main/java/main/Init.java                   |   62 -
 .../__classNamePrefix__Controller.java             |   20 +-
 .../__classNamePrefix__Parameters.java             |   24 +-
 .../__classNamePrefix__Program.java                |    5 +
 .../documentation.md                               |   19 +-
 .../__package__.pe.sink.__packageName__/icon.png   |  Bin 4836 -> 13563 bytes
 .../__package__.pe.sink.__packageName__/strings.en |   12 +-
 .../streampipes-archetype-pe-sinks-jvm/README.md   |   18 +-
 .../streampipes-archetype-pe-sinks-jvm/pom.xml     |    2 +-
 .../META-INF/maven/archetype-metadata.xml          |   17 +-
 .../src/main/resources/archetype-resources/pom.xml |    4 +-
 .../archetype-resources/src/main/java/Init.java    |   53 +
 .../src/main/java/config/Config.java               |   41 +-
 .../src/main/java/config/ConfigKeys.java           |    2 -
 .../src/main/java/main/Init.java                   |   61 -
 .../sink/__packageName__/__classNamePrefix__.java  |   23 +-
 .../__classNamePrefix__Controller.java             |   19 +-
 .../__classNamePrefix__Parameters.java             |   24 +-
 .../documentation.md                               |   19 +-
 .../__package__.pe.sink.__packageName__/icon.png   |  Bin 4836 -> 13563 bytes
 .../__package__.pe.sink.__packageName__/strings.en |   12 +-
 .../streampipes-archetype-pe-sources/README.md     |   18 +-
 .../streampipes-archetype-pe-sources/pom.xml       |    2 +-
 .../META-INF/maven/archetype-metadata.xml          |   13 +-
 .../main/resources/archetype-resources/Dockerfile  |    7 +-
 .../resources/archetype-resources/development/env  |    3 +-
 .../src/main/resources/archetype-resources/pom.xml |    4 +-
 .../archetype-resources/src/main/java/Init.java    |   37 +
 .../src/main/java/config/Config.java               |   40 +-
 .../src/main/java/config/ConfigKeys.java           |    4 +-
 .../src/main/java/main/Init.java                   |   38 -
 .../main/java/pe/__packageName__/DataSource.java   |   41 -
 .../__packageName__/__classNamePrefix__Stream.java |   52 -
 .../java/pe/source.__packageName__/DataSource.java |   41 +
 .../__classNamePrefix__Stream.java                 |   74 +
 .../documentation.md                               |   34 +
 .../__package__.pe.source.__packageName__/icon.png |  Bin 0 -> 13563 bytes
 .../strings.en                                     |    2 +
 docker-compose.yml                                 |   30 +-
 licenses/BSD_2-Clause                              |   14 -
 licenses/CDDL_1.0                                  |   83 -
 licenses/CDDL_1.1                                  |   88 -
 licenses/CDDL_LICENSE_1.1                          |   90 -
 licenses/EPL_1.0                                   |   83 -
 licenses/EPL_2.0                                   |   81 -
 licenses/Eclipse_Distribution_License_v1.0         |   11 -
 pom.xml                                            |   28 +-
 streampipes-app-file-export/pom.xml                |   73 -
 .../app/file/export/ElasticsearchAppData.java      |   83 -
 .../app/file/export/ElasticsearchConfig.java       |   60 -
 .../app/file/export/api/IElasticsearch.java        |   36 -
 .../application/AppFileExportApplication.java      |   30 -
 .../app/file/export/converter/JsonConverter.java   |   65 -
 .../app/file/export/impl/Elasticsearch.java        |  320 ---
 .../app/file/export/model/IndexInfo.java           |   45 -
 streampipes-backend/pom.xml                        |   29 +-
 .../backend/StreamPipesBackendApplication.java     |   18 +-
 .../backend/StreamPipesResourceConfig.java         |   43 +-
 streampipes-code-generation/pom.xml                |    8 +-
 streampipes-commons/pom.xml                        |    2 +-
 streampipes-config/pom.xml                         |    4 +-
 streampipes-connect-container-master/pom.xml       |   19 +-
 .../init/AdapterMasterContainerResourceConfig.java |   18 +-
 .../master/management/FileManagement.java          |   79 -
 .../master/management/GuessManagement.java         |   69 +-
 .../master/management/SourcesManagement.java       |    1 +
 .../master/management/WorkerRestClient.java        |   32 +-
 .../container/master/rest/AdapterResource.java     |   49 +-
 .../master/rest/AdapterTemplateResource.java       |   47 +-
 .../container/master/rest/DescriptionResource.java |   27 +-
 .../container/master/rest/FileResource.java        |  114 -
 .../container/master/rest/GuessResource.java       |   53 +-
 .../master/rest/RuntimeResolvableResource.java     |   21 +-
 .../container/master/rest/SourcesResource.java     |    3 +-
 .../master/rest/WorkerAdministrationResource.java  |   17 +-
 streampipes-connect-container-worker/pom.xml       |    4 +-
 .../init/AdapterWorkerContainerResourceConfig.java |   14 +-
 .../worker/management/FileManagement.java          |   89 -
 .../worker/management/MasterRestClient.java        |   10 +-
 .../container/worker/rest/FileResource.java        |  106 -
 .../container/worker/rest/GuessResource.java       |   24 +-
 .../worker/rest/RuntimeResolvableResource.java     |   47 +-
 .../container/worker/rest/WorkerResource.java      |   63 +-
 streampipes-connect-container/pom.xml              |   12 +-
 .../connect/rest/AbstractContainerResource.java    |    9 +-
 streampipes-connect/pom.xml                        |   30 +-
 .../streampipes/connect/adapter/Adapter.java       |    4 +-
 .../adapter/exception/WorkerAdapterException.java  |   40 +
 .../TransformSchemaAdapterPipelineElement.java     |    2 +-
 .../elements/TransformStreamAdapterElement.java    |    4 +-
 streampipes-container-base/pom.xml                 |   12 +-
 streampipes-container-embedded/pom.xml             |    4 +-
 streampipes-container-standalone/pom.xml           |    6 +-
 .../PipelineElementContainerResourceConfig.java    |    2 -
 streampipes-container/pom.xml                      |   10 +-
 .../container/api/InvocableElement.java            |   34 +-
 .../container/html/model/Description.java          |    9 +
 .../html/page/WelcomePageGeneratorImpl.java        |    6 +-
 streampipes-dataformat-cbor/pom.xml                |    6 +-
 streampipes-dataformat-fst/pom.xml                 |    6 +-
 streampipes-dataformat-json/pom.xml                |    6 +-
 streampipes-dataformat-smile/pom.xml               |    6 +-
 streampipes-dataformat/pom.xml                     |    4 +-
 streampipes-logging/pom.xml                        |    2 +-
 streampipes-maven-plugin/pom.xml                   |    6 +-
 streampipes-measurement-units/pom.xml              |    4 +-
 streampipes-messaging-jms/pom.xml                  |    4 +-
 streampipes-messaging-kafka/pom.xml                |    4 +-
 .../kafka/config/ProducerConfigFactory.java        |    3 +
 streampipes-messaging-mqtt/pom.xml                 |    4 +-
 streampipes-messaging/pom.xml                      |    4 +-
 streampipes-model-client/pom.xml                   |   56 +-
 .../streampipes/model/client/VirtualSensor.java    |   52 -
 .../model/client/endpoint/RdfEndpoint.java         |    4 +
 .../model/client/endpoint/RdfEndpointItem.java     |    9 +
 .../model/client/file/FileMetadata.java            |    2 +
 .../client/matching/MatchingResultMessage.java     |    3 +
 .../client/messages/AppInstallationMessage.java    |   61 -
 .../model/client/messages/ErrorMessage.java        |   36 -
 .../model/client/messages/ErrorMessageLd.java      |   46 -
 .../streampipes/model/client/messages/Message.java |   88 -
 .../model/client/messages/MessageLd.java           |  136 -
 .../model/client/messages/Notification.java        |   71 -
 .../model/client/messages/NotificationLd.java      |  110 -
 .../model/client/messages/NotificationType.java    |   93 -
 .../model/client/messages/Notifications.java       |   98 -
 .../messages/ProaSenseNotificationMessage.java     |  113 -
 .../model/client/messages/SetupStatusMessage.java  |   73 -
 .../model/client/messages/SuccessMessage.java      |   40 -
 .../model/client/messages/SuccessMessageLd.java    |   42 -
 .../pipeline/DataSetModificationMessage.java       |   50 -
 .../model/client/pipeline/ElementComposition.java  |   79 -
 .../model/client/pipeline/Pipeline.java            |  148 -
 .../model/client/pipeline/PipelineCategory.java    |   74 -
 .../pipeline/PipelineElementRecommendation.java    |   79 -
 .../PipelineElementRecommendationMessage.java      |   69 -
 .../client/pipeline/PipelineElementStatus.java     |   54 -
 .../client/pipeline/PipelineModification.java      |   94 -
 .../PipelineModificationErrorDescription.java      |   42 -
 .../pipeline/PipelineModificationMessage.java      |   70 -
 .../client/pipeline/PipelineOperationStatus.java   |   93 -
 .../client/pipeline/PipelineStatusMessage.java     |   64 -
 .../client/pipeline/PipelineStatusMessageType.java |   46 -
 .../ContainerProvidedOptionsParameterRequest.java  |   84 -
 .../model/client/setup/InitialSettings.java        |   42 +-
 .../streampipes/model/client/user/Element.java     |    5 +-
 .../apache/streampipes/model/client/user/Role.java |    7 +-
 .../client/user/ShiroAuthenticationRequest.java    |    4 +
 .../apache/streampipes/model/client/user/User.java |   38 +-
 .../streampipes/model/client/util/DatasetUtil.java |   32 -
 streampipes-model-shared/pom.xml                   |   31 +
 .../model/shared/annotation/TsIgnore.java          |   22 +
 .../model/shared/annotation/TsModel.java           |   22 +
 streampipes-model/pom.xml                          |  174 +-
 .../org/apache/streampipes/model/AdapterType.java  |   16 +
 .../streampipes/model/DataProcessorType.java       |   15 +
 .../org/apache/streampipes/model/DataSinkType.java |   16 +
 .../apache/streampipes/model/ErrorMessageLd.java   |   46 +
 .../org/apache/streampipes/model/MessageLd.java    |  136 +
 .../apache/streampipes/model/NotificationLd.java   |  110 +
 .../org/apache/streampipes/model/SpDataSet.java    |    3 +-
 .../org/apache/streampipes/model/SpDataStream.java |   14 +-
 .../apache/streampipes/model/VirtualSensor.java    |   52 +
 .../model/base/AbstractStreamPipesEntity.java      |   13 +-
 .../model/base/ConsumableStreamPipesEntity.java    |    5 +-
 .../model/base/InvocableStreamPipesEntity.java     |   60 +-
 .../model/base/StreamPipesJsonLdContainer.java     |   10 +-
 .../model/base/UnnamedStreamPipesEntity.java       |   11 +-
 .../streampipes/model/connect/ListDescription.java |   56 -
 .../model/connect/adapter/AdapterDescription.java  |   20 +-
 .../connect/adapter/AdapterDescriptionList.java    |    2 +
 .../connect/adapter/AdapterSetDescription.java     |    5 +
 .../connect/adapter/AdapterStreamDescription.java  |    5 +
 .../adapter/GenericAdapterSetDescription.java      |    2 +
 .../adapter/GenericAdapterStreamDescription.java   |    2 +
 .../adapter/SpecificAdapterSetDescription.java     |    2 +
 .../adapter/SpecificAdapterStreamDescription.java  |    2 +
 .../model/connect/grounding/FormatDescription.java |    7 +-
 .../connect/grounding/FormatDescriptionList.java   |    2 +
 .../connect/grounding/ProtocolDescription.java     |    7 +-
 .../connect/grounding/ProtocolDescriptionList.java |    2 +
 .../model/connect/guess/GuessSchema.java           |    2 +
 .../rules/Schema/CreateNestedRuleDescription.java  |   56 -
 .../rules/Schema/DeleteRuleDescription.java        |   57 -
 .../connect/rules/Schema/MoveRuleDescription.java  |   71 -
 .../rules/Schema/RenameRuleDescription.java        |   70 -
 .../SchemaTransformationRuleDescription.java       |   33 -
 .../EventRateTransformationRuleDescription.java    |   66 -
 ...oveDuplicatesTransformationRuleDescription.java |   53 -
 .../StreamTransformationRuleDescription.java       |   33 -
 .../rules/TransformationRuleDescription.java       |   29 +
 .../rules/schema/CreateNestedRuleDescription.java  |   56 +
 .../rules/schema/DeleteRuleDescription.java        |   57 +
 .../connect/rules/schema/MoveRuleDescription.java  |   71 +
 .../rules/schema/RenameRuleDescription.java        |   70 +
 .../SchemaTransformationRuleDescription.java       |   34 +
 .../EventRateTransformationRuleDescription.java    |   66 +
 ...oveDuplicatesTransformationRuleDescription.java |   53 +
 .../StreamTransformationRuleDescription.java       |   37 +
 .../value/TimestampTransformationRuleMode.java     |    1 +
 .../value/ValueTransformationRuleDescription.java  |    7 +
 .../model/dashboard/DashboardEntity.java           |   14 +-
 .../model/dashboard/DashboardModel.java            |   11 +-
 .../model/dashboard/DashboardWidgetModel.java      |   21 +
 .../model/dashboard/DashboardWidgetSettings.java   |   13 +-
 .../model/dashboard/VisualizablePipeline.java      |   12 +
 .../model/graph/DataProcessorDescription.java      |    5 +-
 .../model/graph/DataProcessorInvocation.java       |   22 +-
 .../model/graph/DataSinkDescription.java           |    5 +-
 .../model/graph/DataSinkInvocation.java            |   20 +-
 .../model/graph/DataSourceDescription.java         |    9 +-
 .../model/grounding/EventGrounding.java            |   13 +-
 .../model/grounding/KafkaTransportProtocol.java    |   18 +
 .../model/grounding/TopicDefinition.java           |    5 +
 .../model/grounding/TransportProtocol.java         |   26 +-
 .../model/message/DataSetModificationMessage.java  |   51 +
 .../streampipes/model/message/ErrorMessage.java    |   43 +
 .../apache/streampipes/model/message/Message.java  |  102 +
 .../streampipes/model/message/Notification.java    |   75 +
 .../model/message/NotificationType.java            |   93 +
 .../streampipes/model/message/Notifications.java   |   63 +
 .../model/message/PipelineModificationMessage.java |   72 +
 .../model/message/PipelineStatusMessage.java       |   67 +
 .../model/message/PipelineStatusMessageType.java   |   46 +
 .../model/message/SetupStatusMessage.java          |   73 +
 .../streampipes/model/message/SuccessMessage.java  |   43 +
 .../org/apache/streampipes/model/node/Node.java    |    3 +
 .../streampipes/model/node/NodeBrokerInfo.java     |    3 +
 .../apache/streampipes/model/node/NodeInfo.java    |    3 +
 .../streampipes/model/node/NodeMetadata.java       |    3 +
 .../streampipes/model/node/NodeResources.java      |    2 +
 .../model/node/resources/hardware/CPU.java         |    3 +
 .../model/node/resources/hardware/DISK.java        |    3 +
 .../model/node/resources/hardware/GPU.java         |    3 +
 .../node/resources/hardware/HardwareResource.java  |    2 +
 .../model/node/resources/hardware/MEM.java         |    3 +
 .../AccessibleSensorActuatorResource.java          |    2 +
 .../model/node/resources/software/Cuda.java        |    3 +
 .../model/node/resources/software/Docker.java      |    3 +
 .../node/resources/software/SoftwareResource.java  |    3 +
 .../streampipes/model/output/OutputStrategy.java   |   18 +-
 .../model/pipeline/ElementComposition.java         |   79 +
 .../streampipes/model/pipeline/Pipeline.java       |  152 ++
 .../model/pipeline/PipelineCategory.java           |   80 +
 .../pipeline/PipelineElementRecommendation.java    |   79 +
 .../PipelineElementRecommendationMessage.java      |   72 +
 .../model/pipeline/PipelineElementStatus.java      |   54 +
 .../model/pipeline/PipelineModification.java       |   94 +
 .../PipelineModificationErrorDescription.java      |   42 +
 .../model/pipeline/PipelineOperationStatus.java    |   96 +
 .../quality/EventPropertyQualityDefinition.java    |    7 +
 .../quality/EventStreamQualityDefinition.java      |    5 +
 .../model/quality/MeasurementProperty.java         |    7 +-
 .../ContainerProvidedOptionsParameterRequest.java  |   84 +
 .../model/runtime/RuntimeOptionsRequest.java       |   15 +-
 .../model/runtime/RuntimeOptionsResponse.java      |    7 +-
 .../streampipes/model/schema/EventProperty.java    |   15 +-
 .../model/schema/ValueSpecification.java           |    5 +
 .../model/staticproperty/FileStaticProperty.java   |   16 +
 .../staticproperty/FreeTextStaticProperty.java     |   12 +
 .../model/staticproperty/MappingProperty.java      |   13 +-
 .../model/staticproperty/MappingPropertyNary.java  |    5 +-
 .../model/staticproperty/OneOfStaticProperty.java  |    4 +
 .../RuntimeResolvableAnyStaticProperty.java        |    3 +-
 .../RuntimeResolvableOneOfStaticProperty.java      |    3 +-
 .../staticproperty/SelectionStaticProperty.java    |   12 +-
 .../model/staticproperty/StaticProperty.java       |   27 +
 .../org/apache/streampipes/model/user/User.java    |   77 -
 .../org/apache/streampipes/model/util/Cloner.java  |    2 +
 .../streampipes/model/util/RdfIdGenerator.java     |   32 +
 .../connect/adapter/AdapterDescriptionTest.java    |    6 +-
 .../development/env                                |    2 +-
 streampipes-node-controller-container/pom.xml      |   14 +-
 .../management/pe/PipelineElementManager.java      |    2 +-
 streampipes-performance-tests/pom.xml              |   10 +-
 .../performance/pipeline/PipelineGenerator.java    |    4 +-
 streampipes-pipeline-management/pom.xml            |   34 +-
 .../manager/data/PipelineGraphBuilder.java         |    2 +-
 .../manager/endpoint/EndpointItemParser.java       |    6 +-
 .../manager/execution/http/GraphSubmitter.java     |   86 +-
 .../manager/execution/http/HttpRequestBuilder.java |    2 +-
 .../manager/execution/http/PipelineExecutor.java   |    8 +-
 .../execution/http/PipelineStorageService.java     |    2 +-
 .../execution/status/PipelineStatusManager.java    |    2 +-
 .../streampipes/manager/file/FileManager.java      |    3 +-
 .../manager/matching/ConnectionStorageHandler.java |   51 +
 .../manager/matching/ConnectionValidator.java      |   76 +
 .../manager/matching/DataSetGroundingSelector.java |    2 +-
 .../manager/matching/InvocationGraphBuilder.java   |    3 +-
 .../matching/PipelineVerificationHandler.java      |  182 +-
 .../AbstractRequirementsSelectorGenerator.java     |   33 +
 .../EmptyRequirementsSelectorGenerator.java        |   47 +
 .../mapping/MappingPropertyCalculator.java         |   62 +
 .../mapping/RequirementsSelectorGenerator.java     |   57 +
 .../RequirementsSelectorGeneratorFactory.java      |   39 +
 .../CustomTransformOutputSchemaGenerator.java      |   12 +-
 .../output/TransformOutputSchemaGenerator.java     |   43 +-
 .../v2/mapping/MappingPropertyCalculator.java      |   62 -
 .../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 |   18 +-
 .../manager/recommender/ElementRecommender.java    |   20 +-
 .../remote/ContainerProvidedOptionsHandler.java    |   45 +-
 .../setup/CacheInitializationInstallationStep.java |    4 +-
 .../manager/setup/CouchDbInstallationStep.java     |    4 +-
 .../setup/EmpireInitializerInstallationStep.java   |    4 +-
 .../manager/setup/InstallationConfiguration.java   |   23 -
 .../manager/setup/InstallationStep.java            |    2 +-
 .../streampipes/manager/setup/Installer.java       |    4 +-
 .../setup/PipelineElementInstallationStep.java     |    4 +-
 .../setup/UserRegistrationInstallationStep.java    |    4 +-
 .../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      |   10 +-
 .../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 +-
 streampipes-rest-shared/pom.xml                    |   10 +-
 .../rest/shared/annotation/JacksonSerialized.java  |   30 +
 .../shared/serializer/GsonClientModelProvider.java |    7 +
 .../rest/shared/serializer/GsonJerseyProvider.java |   91 +-
 .../rest/shared/serializer/GsonWithIdProvider.java |   11 +-
 .../shared/serializer/GsonWithoutIdProvider.java   |   11 +-
 .../serializer/JacksonSerializationProvider.java   |   62 +
 .../rest/shared/serializer/JsonJerseyProvider.java |  111 +
 .../rest/shared/serializer/JsonLdProvider.java     |   11 +-
 .../streampipes/rest/shared/util/JsonLdUtils.java  |   25 +-
 .../streampipes/rest/shared/util/SpMediaType.java  |    4 +
 streampipes-rest/pom.xml                           |   18 +-
 .../org/apache/streampipes/rest/api/IPipeline.java |    2 +-
 .../streampipes/rest/api/IPipelineElementFile.java |    7 +-
 .../rest/api/dashboard/IVisualizablePipeline.java  |    2 +
 .../rest/impl/AbstractRestInterface.java           |   55 +-
 .../streampipes/rest/impl/Authentication.java      |    8 +-
 .../rest/impl/ContainerProvidedOptions.java        |    8 +-
 .../apache/streampipes/rest/impl/Deployment.java   |    4 +-
 .../rest/impl/InternalPipelineTemplates.java       |    2 +-
 .../apache/streampipes/rest/impl/Notification.java |    2 +-
 .../streampipes/rest/impl/OntologyContext.java     |    2 +-
 .../streampipes/rest/impl/OntologyKnowledge.java   |    2 +-
 .../rest/impl/OntologyPipelineElement.java         |   49 +-
 .../streampipes/rest/impl/PipelineCategory.java    |   16 +-
 .../rest/impl/PipelineElementCategory.java         |   19 +-
 .../streampipes/rest/impl/PipelineElementFile.java |   42 +-
 .../rest/impl/PipelineElementImport.java           |   49 +-
 .../rest/impl/PipelineElementRuntimeInfo.java      |    6 +-
 .../streampipes/rest/impl/PipelineTemplate.java    |    2 +-
 .../rest/impl/PipelineWithUserResource.java        |   76 +-
 .../apache/streampipes/rest/impl/RdfEndpoint.java  |   69 +-
 .../rest/impl/SemanticEventConsumer.java           |   49 +-
 .../rest/impl/SemanticEventProcessingAgent.java    |   58 +-
 .../rest/impl/SemanticEventProducer.java           |   54 +-
 .../org/apache/streampipes/rest/impl/Setup.java    |    7 +-
 .../org/apache/streampipes/rest/impl/User.java     |    3 +-
 .../streampipes/rest/impl/VirtualSensor.java       |    4 +-
 .../streampipes/rest/impl/dashboard/Dashboard.java |   32 +-
 .../rest/impl/dashboard/DashboardWidget.java       |   33 +-
 .../rest/impl/dashboard/VisualizablePipeline.java  |   46 +-
 .../rest/impl/datalake/DataLakeDashboard.java      |   30 +-
 .../rest/impl/datalake/DataLakeManagementV3.java   |   33 +-
 .../impl/datalake/DataLakeNoUserResourceV3.java    |   15 +-
 .../rest/impl/datalake/DataLakeResourceV3.java     |   30 +-
 .../rest/impl/datalake/DataLakeWidgetResource.java |   25 +-
 .../impl/nouser/PipelineElementImportNoUser.java   |   40 +-
 .../rest/management/PipelineManagement.java        |    8 +-
 streampipes-sdk/pom.xml                            |    8 +-
 .../apache/streampipes/sdk/StaticProperties.java   |   39 +-
 ...AbstractConfigurablePipelineElementBuilder.java |  161 +-
 .../builder/AbstractProcessingElementBuilder.java  |    2 +-
 .../sdk/extractor/AbstractParameterExtractor.java  |   60 +-
 .../sdk/extractor/StaticPropertyExtractor.java     |    5 +
 .../streampipes/sdk/helpers/CodeLanguage.java      |    4 +-
 .../streampipes/sdk/helpers/EpRequirements.java    |    5 +
 .../apache/streampipes/sdk/helpers/Filetypes.java  |   42 +
 .../sdk/helpers/RequirementsSelector.java          |   36 +
 streampipes-serializers/pom.xml                    |   10 +-
 .../serializers/json/GsonSerializer.java           |   14 +-
 .../serializers/json/JacksonSerializer.java        |   34 +
 .../apache/streampipes/serializers/json/Utils.java |    2 +-
 .../jsonld/CustomAnnotationProvider.java           |   33 +-
 streampipes-sources/pom.xml                        |    4 +-
 streampipes-storage-api/pom.xml                    |    6 +-
 .../storage/api/IPipelineCategoryStorage.java      |    2 +-
 .../api/IPipelineElementConnectionStorage.java     |    2 +-
 .../api/IPipelineElementDescriptionStorage.java    |    7 +-
 .../streampipes/storage/api/IPipelineStorage.java  |    4 +-
 streampipes-storage-couchdb/pom.xml                |   12 +-
 .../couchdb/impl/ConnectionStorageImpl.java        |    2 +-
 .../couchdb/impl/PipelineCategoryStorageImpl.java  |    2 +-
 .../storage/couchdb/impl/PipelineStorageImpl.java  |    4 +-
 streampipes-storage-management/pom.xml             |    8 +-
 streampipes-storage-rdf4j/pom.xml                  |   12 +-
 .../rdf4j/impl/PipelineElementStorageRequests.java |   24 +-
 streampipes-test-utils/pom.xml                     |    4 +-
 streampipes-user-management/pom.xml                |    6 +-
 streampipes-vocabulary/pom.xml                     |    2 +-
 .../apache/streampipes/vocabulary/StreamPipes.java |    6 +
 streampipes-wrapper-distributed/pom.xml            |    8 +-
 streampipes-wrapper-flink/pom.xml                  |    4 +-
 streampipes-wrapper-kafka-streams/pom.xml          |    4 +-
 streampipes-wrapper-python/README.md               |   75 +-
 streampipes-wrapper-python/pom.xml                 |    6 +-
 streampipes-wrapper-python/requirements.txt        |    9 +-
 streampipes-wrapper-python/setup.py                |   12 +-
 streampipes-wrapper-python/streampipes/api.py      |   70 -
 .../streampipes/api/__init__.py                    |   16 +
 .../streampipes/api/resources/__init__.py          |   16 +
 .../streampipes/api/resources/base.py              |  129 +
 .../streampipes/api/resources/dummy.py             |   32 +
 .../streampipes/api/resources/processor.py         |   34 +
 .../streampipes/api/resources/welcome.py           |   45 +
 streampipes-wrapper-python/streampipes/api/rest.py |   49 +
 .../streampipes/api/templates/index.html           |   50 +
 .../streampipes/base/__init__.py                   |   16 +
 .../streampipes/base/banner.py                     |   26 +
 .../streampipes/configuration.py                   |   31 -
 streampipes-wrapper-python/streampipes/core.py     |   36 +-
 streampipes-wrapper-python/streampipes/declarer.py |   60 +
 streampipes-wrapper-python/streampipes/helper.py   |   28 -
 streampipes-wrapper-python/streampipes/manager.py  |   29 +-
 .../streampipes/model/__init__.py                  |   16 +
 .../streampipes/model/config_item.py               |   35 +
 .../streampipes/model/pipeline_element_config.py   |   96 +
 .../streampipes/submitter.py                       |   40 +
 .../streampipes/utils/__init__.py                  |   16 +
 .../streampipes/utils/register.py                  |   71 +
 streampipes-wrapper-siddhi/pom.xml                 |    4 +-
 streampipes-wrapper-spark/pom.xml                  |    8 +-
 streampipes-wrapper-standalone/pom.xml             |    4 +-
 streampipes-wrapper/pom.xml                        |   10 +-
 ui/{browserslist => .browserslistrc}               |    0
 ui/.gitignore                                      |    5 +-
 ui/angular.json                                    |   16 +-
 ui/deployment/app-routing.module.mst               |   70 +
 ui/deployment/app.module.mst                       |   77 -
 ui/deployment/appng5.module.mst                    |   58 +-
 ui/deployment/base-navigation.component.mst        |  102 +
 ui/deployment/dev/config.yml                       |    2 +-
 ui/deployment/home.service.mst                     |    6 +-
 ui/deployment/modules.yml                          |  124 +-
 ui/deployment/prebuild.js                          |   16 +-
 ui/deployment/rel/config.yml                       |    2 +-
 ui/deployment/state.config.mst                     |  183 --
 ui/deployment/toolbar.controller.mst               |  267 --
 ui/deployment/version.service.mst                  |   30 -
 ui/nginx_config/default.conf                       |   25 -
 ui/nginx_config/ssl.conf                           |   43 +-
 ui/package.json                                    |  126 +-
 ui/src/app/NS/XS.service.ts                        |   24 +-
 .../already-configured.can-activate.guard.ts       |   43 +
 .../_guards/auth.can-activate-children.guard.ts    |   58 +
 .../_guards/base-configured.can-activate.guard.ts  |   52 +
 .../app/_guards/configured.can-activate.guard.ts   |   40 +
 ui/src/app/_guards/logged-in.can-activate.guard.ts |   58 +
 ui/src/app/add/add.component.html                  |  114 +
 ui/src/app/add/add.component.scss                  |   40 +
 ui/src/app/add/add.component.ts                    |  195 ++
 ui/src/app/add/add.controller.ts                   |  219 --
 ui/src/app/add/add.html                            |  103 -
 ui/src/app/add/add.module.ts                       |   62 +-
 .../endpoint-item/endpoint-item.component.html     |   71 +
 .../endpoint-item/endpoint-item.component.scss     |   37 +
 .../endpoint-item/endpoint-item.component.ts       |  119 +
 .../add-endpoint/add-endpoint.component.html       |   62 +
 .../add-endpoint/add-endpoint.component.scss       |   19 +
 .../dialogs/add-endpoint/add-endpoint.component.ts |   78 +
 .../add-endpoint/add-endpoint.controller.ts        |   78 -
 .../dialogs/add-endpoint/add-endpoint.tmpl.html    |   67 -
 .../endpoint-installation.component.html           |   51 +
 .../endpoint-installation.component.scss           |   19 +
 .../endpoint-installation.component.ts             |  126 +
 .../endpoint-installation.controller.ts            |  128 -
 .../endpoint-installation.tmpl.html                |   60 -
 ui/src/app/add/endpoint-item.tmpl.html             |   77 -
 ui/src/app/add/filter/order-by.pipe.ts             |   41 +
 .../pipeline-element-installation-status.pipe.ts   |   35 +
 .../app/add/filter/pipeline-element-name.pipe.ts   |   34 +
 .../app/add/filter/pipeline-element-type.pipe.ts   |   34 +
 ui/src/app/add/services/add.service.ts             |   49 +
 ui/src/app/animation.ts                            |   47 +
 .../app-asset-monitoring.module.ts                 |    5 -
 .../dashboard-overview.component.html              |    2 +-
 .../app-image-labeling.component.html              |    6 +-
 .../app-image-labeling.component.ts                |   54 +-
 .../app/app-overview/app-overview.component.html   |    8 +-
 ui/src/app/app-overview/app-overview.component.ts  |   21 +-
 ui/src/app/app-overview/app-overview.module.ts     |    5 -
 ui/src/app/app-routing.module.ts                   |   78 +
 .../app-transport-monitoring.module.ts             |    5 -
 ui/src/app/app.component.html                      |   21 +
 ui/src/app/app.component.ts                        |   37 +
 ui/src/app/applinks/applinks.controller.ts         |   48 -
 ui/src/app/applinks/applinks.module.ts             |   27 -
 ui/src/app/applinks/applinks.tmpl.html             |   65 -
 .../app/configuration/configuration.component.html |    6 +-
 ui/src/app/configuration/configuration.module.ts   |   58 +-
 .../datalake-configuration.component.css}          |    0
 .../datalake-configuration.component.html          |   36 +
 .../datalake-configuration.component.ts            |   57 +
 .../configuration/shared/configuration.service.ts  |    9 +-
 .../adapter-description.component.css              |    0
 .../adapter-description.component.html             |   68 +
 .../adapter-description.component.ts               |  132 +
 .../data-marketplace.component.css                 |   84 +
 .../data-marketplace.component.html                |  101 +
 .../data-marketplace/data-marketplace.component.ts |  234 ++
 .../format-component/format.component.css          |    0
 .../format-component/format.component.html         |   21 +
 .../format-component/format.component.ts           |   72 +
 .../connect/{ => components}/format-form/csv.ts    |    0
 .../format-form/format-form.component.css          |    0
 .../format-form/format-form.component.html         |    0
 .../format-form/format-form.component.ts           |   81 +
 .../connect/{ => components}/format-form/format.ts |    0
 .../connect/{ => components}/format-form/json.ts   |    0
 .../format-list.component.css                      |    0
 .../format-list.component.html                     |    0
 .../format-list-component/format-list.component.ts |   59 +
 .../new-adapter/new-adapter.component.css          |    0
 .../new-adapter/new-adapter.component.html         |  253 ++
 .../new-adapter/new-adapter.component.ts           |  392 +++
 .../pipeline-element-runtime-info.component.html   |   50 +
 .../pipeline-element-runtime-info.component.scss}  |    0
 .../pipeline-element-runtime-info.component.ts     |  107 +
 .../event-property-row.component.css               |    0
 .../event-property-row.component.html              |    0
 .../event-property-row.component.ts                |  186 ++
 .../event-schema-preview.component.css             |    0
 .../event-schema-preview.component.html            |    0
 .../event-schema-preview.component.ts              |   29 +
 .../event-schema/event-schema.component.css        |    0
 .../event-schema/event-schema.component.html       |    0
 .../event-schema/event-schema.component.ts         |  188 ++
 ui/src/app/connect/connect.component.ts            |    6 +-
 ui/src/app/connect/connect.module.ts               |  175 +-
 ui/src/app/connect/connect.service.ts              |   43 -
 .../adapter-description.component.html             |   75 -
 .../adapter-description.component.ts               |  132 -
 .../adapter-export-dialog.component.css            |   45 -
 .../adapter-export-dialog.component.ts             |   70 -
 .../adapter-export/adapter-export-dialog.html      |   46 -
 .../adapter-upload-dialog.component.ts             |   97 -
 .../adapter-upload/adapter-upload-dialog.html      |   56 -
 .../data-marketplace.component.css                 |  117 -
 .../data-marketplace.component.html                |  116 -
 .../data-marketplace/data-marketplace.component.ts |  230 --
 .../data-marketplace/data-marketplace.service.ts   |  225 --
 ui/src/app/connect/data-marketplace/filter.pipe.ts |   44 -
 .../adapter-export-dialog.component.scss           |   31 +
 .../adapter-export-dialog.component.ts             |   54 +
 .../adapter-export/adapter-export-dialog.html      |   34 +
 .../adapter-started-dialog.component.html          |   65 +
 .../adapter-started-dialog.component.scss          |   19 +
 .../adapter-started-dialog.component.ts            |  130 +
 .../adapter-upload-dialog.component.scss           |   20 +
 .../adapter-upload-dialog.component.ts             |   64 +
 .../adapter-upload/adapter-upload-dialog.html      |   47 +
 .../edit-data-type/edit-data-type.component.css    |   20 +
 .../edit-data-type/edit-data-type.component.html   |   25 +
 .../edit-data-type/edit-data-type.component.ts     |   43 +
 .../edit-event-property-list.component.css}        |    0
 .../edit-event-property-list.component.html        |   21 +
 .../edit-event-property-list.component.ts          |   32 +
 .../edit-event-property-primitive.component.css    |   21 +
 .../edit-event-property-primitive.component.html   |   44 +
 .../edit-event-property-primitive.component.ts     |   59 +
 .../edit-timestamp-property.component.css          |   23 +
 .../edit-timestamp-property.component.html         |   46 +
 .../edit-timestamp-property.component.ts           |   38 +
 .../edit-unit-transformation.component.css}        |    0
 .../edit-unit-transformation.component.html        |   49 +
 .../edit-unit-transformation.component.ts          |  137 +
 .../edit-event-property.component.css}             |    0
 .../edit-event-property.component.html             |   72 +
 .../edit-event-property.component.ts               |  149 +
 .../file-management/file-management.component.html |   43 -
 .../file-management/file-management.component.ts   |   94 -
 .../file-management/service/filerest.service.ts    |   74 -
 ui/src/app/connect/filter/filter.pipe.ts           |   40 +
 ui/src/app/connect/filter/timestamp.pipe.ts        |    6 +-
 .../connect/format-component/format.component.html |   21 -
 .../connect/format-component/format.component.ts   |   72 -
 .../connect/format-form/format-form.component.ts   |   81 -
 .../format-list-component/format-list.component.ts |   59 -
 .../app/connect/model/AlternativeStaticProperty.ts |   37 -
 .../connect/model/AlternativesStaticProperty.ts    |   35 -
 ui/src/app/connect/model/AnyStaticProperty.ts      |   23 -
 ui/src/app/connect/model/ApplicationLink.ts        |   51 -
 ui/src/app/connect/model/BoundPipelineElement.ts   |   40 -
 .../app/connect/model/CollectionStaticProperty.ts  |   41 -
 .../app/connect/model/ColorPickerStaticProperty.ts |   33 -
 .../model/{message => }/ConfigurationInfo.ts       |    0
 .../app/connect/model/DataProcessorInvocation.ts   |   47 -
 ui/src/app/connect/model/DataSetDescription.ts     |   46 -
 ui/src/app/connect/model/DataSinkInvocation.ts     |   36 -
 ui/src/app/connect/model/DataStreamContainer.ts    |   37 -
 ui/src/app/connect/model/DataStreamDescription.ts  |   46 -
 ui/src/app/connect/model/FileStaticProperty.ts     |   56 -
 ui/src/app/connect/model/FreeTextStaticProperty.ts |   43 -
 ui/src/app/connect/model/GroupStaticProperty.ts    |   40 -
 .../connect/model/InvocableStreamPipesEntity.ts    |   43 -
 ui/src/app/connect/model/MappingPropertyNary.ts    |   42 -
 ui/src/app/connect/model/MappingPropertyUnary.ts   |   43 -
 ui/src/app/connect/model/NamedStreamPipesEntity.ts |   46 -
 ui/src/app/connect/model/OneOfStaticProperty.ts    |   23 -
 ui/src/app/connect/model/Option.ts                 |   44 -
 .../connect/model/PipelineTemplateDescription.ts   |   51 -
 .../model/PipelineTemplateDescriptionContainer.ts  |   37 -
 .../connect/model/PipelineTemplateInvocation.ts    |   46 -
 .../model/RuntimeResolvableAnyStaticProperty.ts    |   32 -
 .../model/RuntimeResolvableOneOfStaticProperty.ts  |   34 -
 ui/src/app/connect/model/SecretStaticProperty.ts   |   41 -
 .../app/connect/model/SelectionStaticProperty.ts   |   43 -
 ui/src/app/connect/model/StaticProperty.ts         |   60 -
 .../rules => }/TimestampTransformationRuleMode.ts  |    0
 ui/src/app/connect/model/URI.ts                    |   38 -
 .../app/connect/model/UnnamedStreamPipesEntity.ts  |   42 -
 .../connect/model/connect/AdapterDescription.ts    |   88 -
 .../model/connect/AdapterDescriptionList.ts        |   38 -
 .../connect/model/connect/AdapterSetDescription.ts |   38 -
 .../model/connect/AdapterStreamDescription.ts      |   38 -
 .../model/connect/GenericAdapterSetDescription.ts  |   39 -
 .../connect/GenericAdapterStreamDescription.ts     |   39 -
 .../model/connect/SpecificAdapterSetDescription.ts |   30 -
 .../connect/SpecificAdapterStreamDescription.ts    |   29 -
 .../model/connect/grounding/FormatDescription.ts   |   51 -
 .../connect/grounding/FormatDescriptionList.ts     |   38 -
 .../model/connect/grounding/ProtocolDescription.ts |   73 -
 .../connect/grounding/ProtocolDescriptionList.ts   |   38 -
 .../connect/grounding/ProtocolSetDescription.ts    |   29 -
 .../connect/grounding/ProtocolStreamDescription.ts |   29 -
 .../connect/rules/AddNestedRuleDescription.ts      |   39 -
 .../connect/rules/AddTimestampRuleDescription.ts   |   39 -
 .../rules/AddValueTransformationRuleDescription.ts |   43 -
 .../model/connect/rules/DeleteRuleDescription.ts   |   39 -
 .../EventRateTransformationRuleDescription.ts      |   43 -
 .../model/connect/rules/MoveRuleDesctiption.ts     |   44 -
 .../rules/RemoveDuplicatesRuleDescription.ts       |   39 -
 .../model/connect/rules/RenameRuleDescription.ts   |   44 -
 .../TimestampTransformationRuleDescription.ts      |   53 -
 .../connect/rules/TransformationRuleDescription.ts |   24 -
 .../connect/rules/UnitTransformRuleDescription.ts  |   49 -
 .../model/connect/runtime/RuntimeOptionsRequest.ts |   41 -
 .../connect/runtime/RuntimeOptionsResponse.ts      |   41 -
 ui/src/app/connect/model/message/ErrorMessage.ts   |   31 -
 ui/src/app/connect/model/message/MessageLd.ts      |   42 -
 ui/src/app/connect/model/message/Notification.ts   |   28 -
 ui/src/app/connect/model/message/NotificationLd.ts |   41 -
 ui/src/app/connect/model/message/StatusMessage.ts  |   28 -
 ui/src/app/connect/model/message/SuccessMessage.ts |   31 -
 .../connect/model/output/AppendOutputStrategy.ts   |   34 -
 .../connect/model/output/CustomOutputStrategy.ts   |   38 -
 .../model/output/CustomTransformOutputStrategy.ts  |   34 -
 .../connect/model/output/FixedOutputStrategy.ts    |   34 -
 .../app/connect/model/output/KeepOutputStrategy.ts |   36 -
 .../app/connect/model/output/ListOutputStrategy.ts |   33 -
 ui/src/app/connect/model/output/OutputStrategy.ts  |   40 -
 .../app/connect/model/output/PropertyRenameRule.ts |   40 -
 .../app/connect/model/output/TransformOperation.ts |   43 -
 .../connect/model/output/TransformOperationType.ts |   19 -
 .../model/output/TransformOutputStrategy.ts        |   37 -
 .../component/adapter-started-dialog.component.css |   33 -
 .../component/adapter-started-dialog.component.ts  |  158 --
 .../component/dialog-adapter-started.html          |  102 -
 ui/src/app/connect/new-adapter/icon.service.ts     |   40 -
 .../connect/new-adapter/new-adapter.component.html |  230 --
 .../new-adapter/new-adapter.component.spec.ts      |   79 -
 .../connect/new-adapter/new-adapter.component.ts   |  348 ---
 .../protocol-component/protocol.component.css      |   80 -
 .../protocol-component/protocol.component.html     |   19 -
 .../protocol-component/protocol.component.ts       |   58 -
 .../protocol-list.component.css                    |   26 -
 .../protocol-list.component.html                   |   25 -
 .../protocol-list.component.ts                     |   60 -
 ui/src/app/connect/rdfmapper/Person.ts             |   24 -
 ui/src/app/connect/rdfmapper/rdfmapper.service.ts  |   61 -
 ui/src/app/connect/rest.service.ts                 |  190 --
 .../app/connect/schema-editor/data-type.service.ts |   66 -
 .../event-property-list.component.html             |   27 -
 .../event-property-list.component.ts               |   47 -
 .../event-property-primitive.component.html        |  123 -
 .../event-property-primitive.component.ts          |  183 --
 .../event-property-row.component.ts                |  193 --
 .../event-property/event-property.component.html   |   81 -
 .../event-property/event-property.component.ts     |  159 --
 .../event-schema-preview.component.ts              |   29 -
 .../event-schema/event-schema.component.ts         |  166 --
 .../model/DomainPropertyProbability.ts             |   40 -
 .../model/DomainPropertyProbabilityList.ts         |   39 -
 .../app/connect/schema-editor/model/Enumeration.ts |   58 -
 .../connect/schema-editor/model/EventProperty.ts   |  101 -
 .../schema-editor/model/EventPropertyList.ts       |   48 -
 .../schema-editor/model/EventPropertyNested.ts     |   50 -
 .../schema-editor/model/EventPropertyPrimitive.ts  |   98 -
 .../app/connect/schema-editor/model/EventSchema.ts |   53 -
 .../app/connect/schema-editor/model/ExampleNode.ts |   32 -
 .../app/connect/schema-editor/model/GuessSchema.ts |   39 -
 .../schema-editor/model/QuantitativeValue.ts       |   44 -
 .../connect/schema-editor/unit-provider.service.ts | 2131 ---------------
 .../select-protocol-component/input.validator.ts   |   49 -
 .../connect/select-protocol-component/protocol.ts  |   36 -
 .../select-protocol.component.css                  |   22 -
 .../select-protocol.component.html                 |   24 -
 .../select-protocol.component.ts                   |  142 -
 .../select-static-properties.component.css         |   26 -
 .../select-static-properties.component.html        |   22 -
 .../select-static-properties.component.ts          |   62 -
 ui/src/app/connect/services/connect.service.ts     |   45 +
 .../connect/services/data-marketplace.service.ts   |  214 ++
 ui/src/app/connect/services/data-type.service.ts   |   75 +
 ui/src/app/connect/services/icon.service.ts        |   40 +
 ui/src/app/connect/services/rest.service.ts        |  129 +
 .../services/transformation-rule.service.spec.ts   |  289 ++
 .../services/transformation-rule.service.ts        |  454 ++++
 .../app/connect/services/unit-provider.service.ts  | 2133 +++++++++++++++
 .../static-alternatives.component.html             |   65 -
 .../static-alternatives.component.ts               |   91 -
 .../static-any-input.component.html                |   46 -
 .../static-any-input/static-any-input.component.ts |   40 -
 .../static-collection.component.html               |   68 -
 .../static-collection.component.ts                 |   77 -
 .../static-color-picker.component.html             |   36 -
 .../static-color-picker.component.ts               |   72 -
 .../static-file-input.component.css                |   38 -
 .../static-file-input.component.html               |   54 -
 .../static-file-input.component.ts                 |   94 -
 .../static-free-input.component.css                |   31 -
 .../static-free-input.component.html               |   34 -
 .../static-free-input.component.ts                 |   72 -
 .../static-group/static-group.component.html       |   38 -
 .../static-group/static-group.component.ts         |   53 -
 .../static-mapping-nary.component.html             |   37 -
 .../static-mapping-nary.component.scss             |   32 -
 .../static-mapping-nary.component.ts               |  118 -
 .../static-mapping-unary.component.html            |   37 -
 .../static-mapping-unary.component.ts              |   94 -
 .../static-mapping/static-mapping.ts               |   38 -
 .../static-number-input.component.css              |   30 -
 .../static-number-input.component.html             |   31 -
 .../static-number-input.component.ts               |   80 -
 .../static-one-of-input.component.css              |   34 -
 .../static-one-of-input.component.html             |   55 -
 .../static-one-of-input.component.ts               |   62 -
 .../static-property-util.service.ts                |  175 --
 .../static-property.component.css                  |   27 -
 .../static-property.component.html                 |   87 -
 .../static-properties/static-property.component.ts |  160 --
 ...tic-runtime-resolvable-any-input.component.html |   43 -
 ...tatic-runtime-resolvable-any-input.component.ts |   50 -
 ...c-runtime-resolvable-oneof-input.component.html |   61 -
 ...tic-runtime-resolvable-oneof-input.component.ts |  106 -
 .../static-secret-input.component.html             |   34 -
 .../static-secret-input.component.ts               |   72 -
 .../static-text-input.component.css                |   25 -
 .../static-text-input.component.html               |   32 -
 .../static-text-input.component.ts                 |   79 -
 .../static-url-input.component.css                 |   24 -
 .../static-url-input.component.html                |   31 -
 .../static-url-input/static-url-input.component.ts |   67 -
 .../connect/transformation-rule.service.spec.ts    |  274 --
 ui/src/app/connect/transformation-rule.service.ts  |  420 ---
 ui/src/app/core-model/dashboard/DashboardWidget.ts |   48 -
 .../dashboard/DashboardWidgetSettings.ts           |   49 -
 .../core-model/dashboard/VisualizablePipeline.ts   |   54 -
 .../core-model/datalake/DataExplorerWidgetModel.ts |   52 -
 ui/src/app/core-model/datalake/DataLakeMeasure.ts  |   34 -
 ui/src/app/core-model/datalake/DateRange.ts        |    7 -
 .../app/core-model/gen/streampipes-model-client.ts |  102 +
 ui/src/app/core-model/gen/streampipes-model.ts     | 2832 ++++++++++++++++++++
 .../datalake/datalake-rest.service.ts              |   17 +-
 .../semantic-type/semantic-type-utils.service.ts   |   18 +-
 .../shared/shared-dashboard.service.ts             |   11 +-
 ui/src/app/core-ui/core-ui.module.ts               |  142 +-
 .../dialog/base-dialog/base-dialog.component.ts    |   60 +
 .../dialog/base-dialog/base-dialog.config.ts       |   26 +
 .../dialog/base-dialog/base-dialog.model.ts        |   41 +
 .../dialog/base-dialog/base-dialog.service.ts      |  102 +
 .../app/core-ui/dialog/base-dialog/dialog-ref.ts   |   59 +
 .../confirm-dialog/confirm-dialog.component.html   |   28 +
 .../confirm-dialog/confirm-dialog.component.scss   |   23 +
 .../confirm-dialog/confirm-dialog.component.ts     |   41 +
 .../panel-dialog/panel-dialog.component.html       |   29 +
 .../panel-dialog/panel-dialog.component.scss       |   56 +
 .../dialog/panel-dialog/panel-dialog.component.ts  |   73 +
 .../dialog/panel-dialog/panel-dialog.config.ts     |   44 +
 .../standard-dialog/standard-dialog.component.html |   29 +
 .../standard-dialog/standard-dialog.component.scss |   62 +
 .../standard-dialog/standard-dialog.component.ts   |   41 +
 .../standard-dialog/standard-dialog.config.ts      |   49 +
 .../components/image-bar/image-bar.component.css   |   12 +-
 .../components/image-bar/image-bar.component.html  |   27 +-
 .../components/image-bar/image-bar.component.ts    |   34 +-
 .../image-container/image-container.component.ts   |   23 +-
 .../image-categorize.component.html                |   18 +-
 .../image-categorize/image-categorize.component.ts |    9 +-
 .../image-labeling/image-labeling.component.html   |   26 +-
 .../image-labeling/image-labeling.component.ts     |  196 +-
 .../image/image-viewer/image-viewer.component.html |   15 +-
 .../image/image-viewer/image-viewer.component.ts   |  107 +-
 ui/src/app/core-ui/image/image.component.ts        |    5 +-
 .../base/abstract-static-property.ts               |   67 +
 .../base/abstract-validated-static-property.ts     |   60 +
 .../filter/display-recommended.pipe.ts             |   44 +
 .../core-ui/static-properties/input.validator.ts   |   46 +
 .../static-alternatives.component.css              |    0
 .../static-alternatives.component.html             |   62 +
 .../static-alternatives.component.ts               |   54 +
 .../static-any-input.component.css                 |    0
 .../static-any-input.component.html                |   39 +
 .../static-any-input/static-any-input.component.ts |   45 +
 .../static-code-input.component.html               |   34 +
 .../static-code-input.component.scss               |   22 +
 .../static-code-input.component.ts                 |  100 +
 .../static-collection.component.css                |    0
 .../static-collection.component.html               |   49 +
 .../static-collection.component.ts                 |   66 +
 .../static-color-picker.component.css              |    0
 .../static-color-picker.component.html             |   31 +
 .../static-color-picker.component.ts               |   60 +
 .../static-file-input.component.css                |   34 +
 .../static-file-input.component.html               |   77 +
 .../static-file-input.component.ts                 |  134 +
 .../static-file-input/static-file-rest.service.ts  |    0
 .../static-free-input.component.html               |   57 +
 .../static-free-input.component.scss               |   37 +
 .../static-free-input.component.ts                 |  115 +
 .../static-group/static-group.component.css        |    0
 .../static-group/static-group.component.html       |   50 +
 .../static-group/static-group.component.ts         |   39 +
 .../static-mapping-nary.component.html             |   34 +
 .../static-mapping-nary.component.scss             |   32 +
 .../static-mapping-nary.component.ts               |   98 +
 .../static-mapping-unary.component.css             |    0
 .../static-mapping-unary.component.html            |   30 +
 .../static-mapping-unary.component.ts              |   64 +
 .../static-mapping/static-mapping.ts               |   78 +
 .../static-one-of-input.component.css              |   40 +
 .../static-one-of-input.component.html             |   50 +
 .../static-one-of-input.component.ts               |   63 +
 .../static-property-util.service.ts                |  178 ++
 .../static-property.component.css                  |   41 +
 .../static-property.component.html                 |  146 +
 .../static-properties/static-property.component.ts |  170 ++
 ...atic-runtime-resolvable-any-input.component.css |    0
 ...tic-runtime-resolvable-any-input.component.html |   53 +
 ...tatic-runtime-resolvable-any-input.component.ts |   49 +
 .../base-runtime-resolvable-input.ts               |   98 +
 .../runtime-resolvable.service.ts                  |   61 +
 ...ic-runtime-resolvable-oneof-input.component.css |    0
 ...c-runtime-resolvable-oneof-input.component.html |   62 +
 ...tic-runtime-resolvable-oneof-input.component.ts |   52 +
 .../static-secret-input.component.css              |    0
 .../static-secret-input.component.html             |   36 +
 .../static-secret-input.component.ts               |   58 +
 ui/src/app/core/button/button.directive.ts         |  115 -
 .../core/components/base-navigation.component.ts   |  129 +
 .../components/feedback/feedback.component.html    |   64 +
 .../core/components/feedback/feedback.component.ts |   60 +
 .../core/components/iconbar/iconbar.component.html |   47 +
 .../core/components/iconbar/iconbar.component.ts   |   73 +
 .../streampipes/streampipes.component.html         |   40 +
 .../streampipes/streampipes.component.scss         |   23 +
 .../streampipes/streampipes.component.ts           |   33 +
 .../core/components/toolbar/toolbar.component.html |   81 +
 .../core/components/toolbar/toolbar.component.scss |   22 +
 .../core/components/toolbar/toolbar.component.ts   |   77 +
 ui/src/app/core/core.module.ts                     |   69 +-
 ui/src/app/core/http-provider.config.ts            |   25 -
 ui/src/app/core/icon-provider.config.ts            |   45 -
 ui/src/app/core/md-theming-provider.config.ts      |   70 -
 ui/src/app/core/prism/nag-prism.directive.ts       |   63 -
 ui/src/app/core/root-scope-delegate.decorator.ts   |   28 -
 ui/src/app/core/working.state.config.ts            |  210 --
 .../components/grid/dashboard-grid.component.ts    |    6 +-
 .../overview/dashboard-overview.component.ts       |   12 +-
 .../components/panel/dashboard-panel.component.ts  |   21 +-
 .../standalone/standalone-dashboard.component.ts   |   20 +-
 .../widget/dashboard-widget.component.ts           |   29 +-
 .../components/widgets/base/base-config.ts         |    2 +-
 .../widgets/base/base-ngx-charts-widget.ts         |    4 +-
 .../widgets/base/base-ngx-line-charts-widget.ts    |    2 +
 .../widgets/base/base-ngx-line-config.ts           |    2 +-
 .../components/widgets/base/base-widget.ts         |   11 +-
 .../components/widgets/gauge/gauge-config.ts       |    2 +-
 .../components/widgets/html/html-config.ts         |    2 +-
 .../components/widgets/image/image-config.ts       |    2 +-
 .../dashboard/components/widgets/map/map-config.ts |   48 +-
 .../widgets/map/map-widget.component.html          |    3 +-
 .../components/widgets/map/map-widget.component.ts |   75 +-
 .../components/widgets/number/number-config.ts     |    2 +-
 .../widgets/number/number-widget.component.ts      |    3 +-
 .../components/widgets/pallet/pallet-config.ts     |   43 -
 .../components/widgets/pallet/pallet.component.css |   16 -
 .../widgets/pallet/pallet.component.html           |   18 -
 .../components/widgets/pallet/pallet.component.ts  |   78 -
 .../components/widgets/pallet/pallet_functions.ts  |   82 -
 .../dashboard/components/widgets/raw/raw-config.ts |    2 +-
 .../components/widgets/table/table-config.ts       |    4 +-
 .../widgets/table/table-widget.component.ts        |    2 +-
 .../widgets/trafficlight/traffic-light-config.ts   |    2 +-
 ui/src/app/dashboard/dashboard.module.ts           |  102 +-
 .../add-visualization-dialog.component.html        |   38 +-
 .../add-visualization-dialog.component.scss        |   31 +-
 .../add-visualization-dialog.component.ts          |   88 +-
 .../dashboard/registry/widget-config-builder.ts    |   25 +-
 ui/src/app/dashboard/registry/widget-registry.ts   |   11 +-
 .../dashboard/sdk/collected-schema-requirements.ts |   14 +-
 ui/src/app/dashboard/sdk/ep-requirements.ts        |   32 +-
 .../sdk/extractor/static-property-extractor.ts     |   21 +-
 .../sdk/matching/domain-property-match.ts          |   10 +-
 .../sdk/matching/mapping-property-generator.ts     |    5 +-
 .../sdk/matching/primitive-property-match.ts       |    4 +-
 .../app/dashboard/sdk/matching/property-match.ts   |    8 +-
 ui/src/app/dashboard/sdk/matching/schema-match.ts  |    2 +-
 .../dashboard/sdk/schema-requirements-builder.ts   |   36 +-
 ui/src/app/dashboard/services/dashboard.service.ts |  127 +-
 .../datadownloadDialog/dataDownload.dialog.ts      |   10 +-
 .../data-explorer-dashboard-grid.component.css     |   31 -
 .../data-explorer-dashboard-grid.component.html    |    2 +-
 .../data-explorer-dashboard-grid.component.scss    |   41 +
 .../grid/data-explorer-dashboard-grid.component.ts |   38 +-
 .../data-explorer-dashboard-overview.component.css |   25 -
 ...data-explorer-dashboard-overview.component.html |   95 +-
 ...data-explorer-dashboard-overview.component.scss |   49 +
 .../data-explorer-dashboard-overview.component.ts  |    8 +-
 .../data-explorer-dashboard-panel.component.html   |   14 +-
 .../data-explorer-dashboard-panel.component.ts     |   32 +-
 .../time-selector/timeRangeSelector.component.css  |   29 -
 .../time-selector/timeRangeSelector.component.html |   74 +-
 .../time-selector/timeRangeSelector.component.scss |   52 +
 .../time-selector/timeRangeSelector.component.ts   |   16 +-
 .../data-explorer-dashboard-widget.component.css   |   53 -
 .../data-explorer-dashboard-widget.component.html  |   17 +-
 .../data-explorer-dashboard-widget.component.scss  |   55 +
 .../data-explorer-dashboard-widget.component.ts    |   13 +-
 .../components/widgets/base/base-config.ts         |    4 +-
 .../widgets/base/base-data-explorer-widget.ts      |   69 +-
 .../widgets/base/base-ngx-charts-widget.ts         |   75 -
 .../components/widgets/image/image-config.ts       |    6 +-
 .../widgets/image/image-widget.component.css       |    6 +-
 .../widgets/image/image-widget.component.html      |   35 +-
 .../widgets/image/image-widget.component.ts        |   66 +-
 .../widgets/line-chart/line-chart-config.ts        |    6 +-
 .../line-chart/line-chart-widget.component.css     |   14 +-
 .../line-chart/line-chart-widget.component.html    |  134 +-
 .../line-chart/line-chart-widget.component.ts      |   49 +-
 .../datadownloadDialog/dataDownload.dialog.css     |   56 -
 .../datadownloadDialog/dataDownload.dialog.html    |  100 -
 .../datadownloadDialog/dataDownload.dialog.ts      |  196 --
 .../base/baseVisualisation.component.ts            |  146 -
 .../linechart/lineChart.component.css              |   23 -
 .../linechart/lineChart.component.html             |   54 -
 .../linechart/lineChart.component.ts               |  548 ----
 .../table/table.component.css                      |   27 -
 .../table/table.component.html                     |   66 -
 .../table/table.component.ts                       |   99 -
 .../old-explorer.component.html                    |  289 --
 .../old-explorer-widget/old-explorer.component.ts  |  417 ---
 .../widgets/old-explorer-widget/old-explorer.css   |   85 -
 .../components/widgets/table/table-config.ts       |    7 +-
 .../widgets/table/table-widget.component.css       |   37 -
 .../widgets/table/table-widget.component.html      |   51 +-
 .../widgets/table/table-widget.component.scss      |   38 +
 .../widgets/table/table-widget.component.ts        |   29 +-
 .../aggregate-configuration.component.html         |    8 +-
 .../aggregate-configuration.component.ts           |    3 +-
 .../group-configuration.component.ts               |    6 +-
 .../load-data-spinner.component.html               |   10 +-
 .../load-data-spinner.component.ts                 |    2 +-
 .../no-data/no-data-in-date-range.component.ts     |    4 +-
 .../select-properties.component.html               |    2 +-
 .../select-properties.component.ts                 |   10 +-
 .../app/data-explorer/data-explorer.component.css  |   62 +
 .../app/data-explorer/data-explorer.component.html |   39 +-
 .../app/data-explorer/data-explorer.component.ts   |   22 +-
 ui/src/app/data-explorer/data-explorer.module.ts   |  125 +-
 ...explorer-add-visualization-dialog.component.css |   16 +
 ...xplorer-add-visualization-dialog.component.html |   39 +-
 ...-explorer-add-visualization-dialog.component.ts |   15 +-
 ...ata-explorer-edit-data-view-dialog.component.ts |    8 +-
 .../models/dataview-dashboard.model.ts             |    5 +
 .../registry/data-explorer-widget-registry.ts      |   14 +-
 .../registry/widget-config-builder.ts              |   13 +-
 .../sdk/collected-schema-requirements.ts           |   11 +-
 ui/src/app/data-explorer/sdk/ep-requirements.ts    |   22 +-
 .../sdk/extractor/static-property-extractor.ts     |   16 +-
 .../sdk/matching/domain-property-match.ts          |   10 +-
 .../sdk/matching/mapping-property-generator.ts     |    4 +-
 .../sdk/matching/primitive-property-match.ts       |    4 +-
 .../data-explorer/sdk/matching/property-match.ts   |    8 +-
 .../sdk/schema-requirements-builder.ts             |   23 +-
 .../data-explorer/services/data-lake.service.ts    |    2 +-
 .../services/data-view-data-explorer.service.ts    |   74 +-
 .../services/refresh-dashboard.service.ts          |    4 +-
 .../app/data-explorer/services/resize.service.ts   |    6 +-
 ui/src/app/editor/capitalize.filter.ts             |   39 -
 .../alternative/alternative.component.ts           |   33 -
 .../alternative/alternative.controller.ts          |   38 -
 .../components/alternative/alternative.tmpl.html   |   30 -
 .../components/any-remote/any-remote.component.ts  |   31 -
 .../components/any-remote/any-remote.controller.ts |  101 -
 .../components/any-remote/any-remote.tmpl.html     |   38 -
 ui/src/app/editor/components/any/any.component.ts  |   30 -
 ui/src/app/editor/components/any/any.controller.ts |   25 -
 ui/src/app/editor/components/any/any.tmpl.html     |   23 -
 .../components/code/code-editor.directive.ts       |   91 -
 .../app/editor/components/code/code.component.ts   |   33 -
 .../app/editor/components/code/code.controller.ts  |   44 -
 ui/src/app/editor/components/code/code.tmpl.html   |   33 -
 .../components/collection/collection.component.ts  |   30 -
 .../components/collection/collection.controller.ts |   51 -
 .../components/collection/collection.tmpl.html     |   60 -
 .../customize/customize-dialog.component.ts        |   34 -
 .../customize/customize-dialog.controller.ts       |   43 -
 .../customize/customize-dialog.tmpl.html           |   96 -
 .../customoutput/customoutput.component.ts         |   33 -
 .../customoutput/customoutput.controller.ts        |   57 -
 .../components/customoutput/customoutput.tmpl.html |   49 -
 .../property-selection.component.ts                |   34 -
 .../property-selection.controller.ts               |   46 -
 .../propertyselection/property-selection.tmpl.html |   33 -
 .../domainconcept/domainconcept.component.ts       |   31 -
 .../domainconcept/domainconcept.controller.ts      |   99 -
 .../domainconcept/domainconcept.tmpl.html          |   49 -
 ui/src/app/editor/components/draggable-icon.html   |   25 -
 .../components/fileupload/fileupload.component.ts  |   34 -
 .../components/fileupload/fileupload.controller.ts |   75 -
 .../components/fileupload/fileupload.tmpl.html     |   39 -
 .../components/freetext/freetext.component.ts      |   33 -
 .../components/freetext/freetext.controller.ts     |   96 -
 .../editor/components/freetext/freetext.tmpl.html  |   98 -
 .../app/editor/components/group/group.component.ts |   34 -
 .../editor/components/group/group.controller.ts    |   33 -
 ui/src/app/editor/components/group/group.tmpl.html |   26 -
 .../mappingnary/mappingnary.component.ts           |   33 -
 .../mappingnary/mappingnary.controller.ts          |   86 -
 .../components/mappingnary/mappingnary.tmpl.html   |   35 -
 .../mappingunary/mappingunary.component.ts         |   33 -
 .../mappingunary/mappingunary.controller.ts        |   65 -
 .../components/mappingunary/mappingunary.tmpl.html |   26 -
 .../matchingproperty/matchingproperty.component.ts |   30 -
 .../matchingproperty.controller.ts                 |   24 -
 .../matchingproperty/matchingproperty.tmpl.html    |   28 -
 .../multivalue/multiple-value-input.component.ts   |   30 -
 .../multivalue/multiple-value-input.controller.ts  |   54 -
 .../multivalue/multiple-value-input.tmpl.html      |   50 -
 .../oneof-remote/oneof-remote.component.ts         |   31 -
 .../oneof-remote/oneof-remote.controller.ts        |  115 -
 .../components/oneof-remote/oneof-remote.tmpl.html |   38 -
 .../app/editor/components/oneof/oneof.component.ts |   30 -
 .../editor/components/oneof/oneof.controller.ts    |   45 -
 ui/src/app/editor/components/oneof/oneof.tmpl.html |   25 -
 .../output-strategy/base/BaseOutputStrategy.ts     |   45 +
 .../custom-output-strategy.component.html          |   51 +
 .../custom-output-strategy.component.scss}         |    0
 .../custom-output-strategy.component.ts            |   72 +
 .../output-strategy/output-strategy.component.html |   43 +
 .../output-strategy/output-strategy.component.scss |   24 +
 .../output-strategy/output-strategy.component.ts   |   50 +
 .../property-selection.component.html              |   40 +
 .../property-selection.component.scss              |   21 +
 .../property-selection.component.ts                |   80 +
 .../user-defined-output.component.html             |   64 +
 .../user-defined-output.component.scss}            |    0
 .../user-defined-output.component.ts               |  102 +
 .../pipeline-assembly.component.html               |  111 +
 .../pipeline-assembly.component.scss               |   30 +
 .../pipeline-assembly.component.ts                 |  240 +-
 .../pipeline-assembly.controller.ts                |  246 --
 .../pipeline-assembly/pipeline-assembly.tmpl.html  |  118 -
 .../pipeline-element-documentation.component.html  |   24 +
 .../pipeline-element-documentation.component.scss} |    0
 .../pipeline-element-documentation.component.ts    |   47 +-
 .../pipeline-element-documentation.controller.ts   |   43 -
 .../pipeline-element-documentation.tmpl.html       |   24 -
 .../pipeline-element-icon-stand.component.html     |   71 +
 .../pipeline-element-icon-stand.component.scss     |   42 +
 .../pipeline-element-icon-stand.component.ts       |  172 +-
 .../pipeline-element-icon-stand.controller.ts      |  110 -
 .../pipeline-element-icon-stand.tmpl.html          |   87 -
 .../pipeline-element-options.component.css}        |    0
 .../pipeline-element-options.component.html        |   70 +
 .../pipeline-element-options.component.ts          |  191 +-
 .../pipeline-element-options.controller.ts         |  151 --
 .../pipeline-element-options.tmpl.html             |   92 -
 .../pipeline-element-recommendation.component.html |   32 +
 ...pipeline-element-recommendation.component.scss} |    0
 .../pipeline-element-recommendation.component.ts   |  152 +-
 .../pipeline-element-recommendation.controller.ts  |  101 -
 .../pipeline-element-recommendation.tmpl.html      |   30 -
 .../pipeline-element.component.css}                |    0
 .../pipeline-element.component.html                |   22 +
 .../pipeline-element/pipeline-element.component.ts |   90 +-
 .../pipeline-element.controller.ts                 |   77 -
 .../pipeline-element/pipeline-element.tmpl.html    |   22 -
 .../components/pipeline/pipeline.component.css}    |    0
 .../components/pipeline/pipeline.component.html    |   48 +
 .../components/pipeline/pipeline.component.ts      |  429 ++-
 .../components/pipeline/pipeline.controller.ts     |  350 ---
 .../editor/components/pipeline/pipeline.tmpl.html  |   45 -
 ui/src/app/editor/components/popup.html            |   25 -
 .../replaceoutput/replaceoutput.component.ts       |   31 -
 .../replaceoutput/replaceoutput.controller.ts      |   25 -
 .../replaceoutput/replaceoutput.tmpl.html          |   30 -
 .../editor/components/secret/secret.component.ts   |   31 -
 .../editor/components/secret/secret.controller.ts  |   49 -
 .../app/editor/components/secret/secret.tmpl.html  |   28 -
 .../topic/topic-selection-dialog.component.ts      |   32 -
 .../topic/topic-selection-dialog.controller.ts     |   76 -
 .../topic/topic-selection-dialog.tmpl.html         |   42 -
 .../user-defined-output.component.ts               |   33 -
 .../user-defined-output.controller.ts              |   87 -
 .../user-defined-output.tmpl.html                  |   55 -
 ui/src/app/editor/constants/editor.constants.ts    |   25 +
 .../compatible-elements.component.html             |   43 +
 .../compatible-elements.component.scss             |   40 +
 .../compatible-elements.component.ts               |   92 +
 .../customize.controller.ts                        |  151 --
 .../customizeElementDialog.tmpl.html               |  161 --
 .../dialog/customize/customize.component.html      |   92 +
 .../dialog/customize/customize.component.scss      |   19 +
 .../editor/dialog/customize/customize.component.ts |  139 +
 .../editor/dialog/help/help-dialog.controller.ts   |  130 -
 .../app/editor/dialog/help/help-dialog.tmpl.html   |  103 -
 ui/src/app/editor/dialog/help/help.component.html  |   71 +
 ui/src/app/editor/dialog/help/help.component.scss  |   19 +
 ui/src/app/editor/dialog/help/help.component.ts    |  114 +
 .../matching-error/matching-error.component.html   |   53 +
 .../matching-error/matching-error.component.scss   |   19 +
 .../matching-error/matching-error.component.ts     |   47 +
 .../matching-error/matching-error.controller.ts    |   45 -
 .../dialog/matching-error/matching-error.tmpl.html |   64 -
 ...sing-elements-for-tutorial-dialog.controller.ts |   38 -
 .../missing-elements-for-tutorial-dialog.tmpl.html |   46 -
 .../missing-elements-for-tutorial.component.html   |   37 +
 .../missing-elements-for-tutorial.component.scss   |   19 +
 .../missing-elements-for-tutorial.component.ts     |   40 +
 .../possible-elements-dialog.controller.ts         |   55 -
 .../possible-elements-dialog.tmpl.html             |   50 -
 .../save-pipeline/save-pipeline.component.html     |  116 +
 .../save-pipeline/save-pipeline.component.scss     |   46 +
 .../save-pipeline/save-pipeline.component.ts       |  213 ++
 .../save-pipeline/save-pipeline.controller.ts      |  218 --
 .../save-pipeline/submitPipelineModal.tmpl.html    |  115 -
 .../topic/topic-selection-modal.controller.ts      |   89 -
 .../dialog/topic/topic-selection-modal.tmpl.html   |   54 -
 .../welcome-tour/welcome-tour-dialog.controller.ts |   54 -
 .../welcome-tour/welcome-tour-dialog.tmpl.html     |   54 -
 .../welcome-tour/welcome-tour.component.html       |   45 +
 .../welcome-tour/welcome-tour.component.scss       |   41 +
 .../dialog/welcome-tour/welcome-tour.component.ts  |   53 +
 ui/src/app/editor/editor.component.html            |   59 +
 ui/src/app/editor/editor.component.scss            |   31 +
 ui/src/app/editor/editor.component.ts              |  246 ++
 ui/src/app/editor/editor.controller.ts             |  282 --
 ui/src/app/editor/editor.html                      |   72 -
 ui/src/app/editor/editor.module.ts                 |  205 +-
 .../editor/filter/display-recommended.filter.ts    |   48 -
 ui/src/app/editor/filter/element-name.filter.ts    |   41 -
 ui/src/app/editor/filter/select.filter.ts          |   42 -
 ui/src/app/editor/image-bind.directive.ts          |   33 -
 ui/src/app/editor/model/editor.model.ts            |   83 +
 ui/src/app/editor/my-data-bind.directive.ts        |   33 -
 .../services/editor-dialog-manager.service.ts      |   40 +-
 ui/src/app/editor/services/editor.service.ts       |  144 +
 .../app/editor/services/jsplumb-bridge.service.ts  |  123 +
 .../app/editor/services/jsplumb-config.service.ts  |  112 +
 ui/src/app/editor/services/jsplumb.service.ts      |  274 ++
 .../app/editor/services/object-provider.service.ts |  102 +
 .../app/editor/services/pipeline-editor.service.ts |   70 +
 .../pipeline-element-recommendation.service.ts     |   80 +-
 .../services/pipeline-positioning.service.ts       |  135 +
 .../editor/services/pipeline-validation.service.ts |   48 +-
 ui/src/app/editor/utils/editor.utils.ts            |  101 +
 ui/src/app/editor/utils/style-sanitizer.ts         |   32 +
 .../text/custom-output-validator.directive.ts      |   38 -
 .../validator/text/text-validator.directive.ts     |   66 -
 .../file-overview/file-overview.component.html     |   60 +
 .../file-overview/file-overview.component.scss     |   40 +
 .../file-overview/file-overview.component.ts       |   82 +
 .../file-upload/file-upload-dialog.component.html  |   53 +
 .../file-upload/file-upload-dialog.component.scss  |   19 +
 .../file-upload/file-upload-dialog.component.ts    |   76 +
 ui/src/app/files/files.component.html              |   53 +
 ui/src/app/files/files.component.scss              |   33 +
 ui/src/app/files/files.component.ts                |   50 +
 ui/src/app/files/files.module.ts                   |   77 +
 ui/src/app/home/components/status.component.css    |   15 +-
 ui/src/app/home/components/status.component.html   |   14 +-
 ui/src/app/home/components/status.component.ts     |   22 +-
 ui/src/app/home/home.component.css                 |   38 -
 ui/src/app/home/home.component.html                |   48 +-
 ui/src/app/home/home.component.scss                |   99 +
 ui/src/app/home/home.component.ts                  |   10 +-
 ui/src/app/home/home.module.ts                     |   26 +-
 ui/src/app/info/about/about.component.css          |    4 +
 ui/src/app/info/about/about.component.html         |    6 +-
 ui/src/app/info/info.component.ts                  |    1 -
 ui/src/app/info/info.module.ts                     |    5 +-
 .../info/versions/service/version-info.service.ts  |   55 -
 ui/src/app/info/versions/versions.component.css    |    4 +
 ui/src/app/info/versions/versions.component.ts     |   12 +-
 ui/src/app/layout/app.controller.ts                |   40 -
 ui/src/app/layout/components/feedback.component.ts |   30 -
 .../app/layout/components/feedback.controller.ts   |   76 -
 ui/src/app/layout/components/feedback.tmpl.html    |   68 -
 ui/src/app/layout/layout.module.ts                 |   33 -
 .../login/components/login/login.component.html    |   70 +
 .../app/login/components/login/login.component.ts  |   79 +
 .../login/components/setup/setup.component.html    |   93 +
 .../login/components/setup/setup.component.scss    |   70 +
 .../app/login/components/setup/setup.component.ts  |   85 +
 .../components/startup/startup.component.html      |   37 +
 .../login/components/startup/startup.component.ts  |   57 +
 ui/src/app/login/login.controller.ts               |   87 -
 ui/src/app/login/login.module.ts                   |   68 +-
 ui/src/app/login/register.controller.ts            |   80 -
 ui/src/app/login/services/login.service.ts         |   38 +
 ui/src/app/login/setup.controller.ts               |  101 -
 ui/src/app/login/startup/startup.controller.ts     |   61 -
 ui/src/app/login/startup/startup.html              |   38 -
 .../myelements/dialog/jsonldDialog.controller.ts   |   48 -
 .../app/myelements/dialog/jsonldDialog.tmpl.html   |   43 -
 ui/src/app/myelements/my-elements.controller.ts    |  250 --
 ui/src/app/myelements/my-elements.module.ts        |   25 -
 ui/src/app/myelements/myelements.html              |  108 -
 .../app/notifications/notifications.component.html |   12 +-
 .../app/notifications/notifications.component.ts   |   23 +-
 ui/src/app/notifications/notifications.module.ts   |   60 +-
 .../notifications/service/notifications.service.ts |   13 +-
 .../app/notifications/utils/notifications.utils.ts |    2 +-
 .../actions/pipeline-actions.component.html        |   71 +
 .../actions/pipeline-actions.component.ts          |   63 +-
 .../actions/pipeline-actions.controller.ts         |   60 -
 .../components/actions/pipeline-actions.tmpl.html  |   82 -
 .../components/edit/quickedit.component.html       |   58 +
 .../components/edit/quickedit.component.ts         |  145 +-
 .../components/edit/quickedit.controller.ts        |   34 -
 .../components/edit/quickedit.tmpl.html            |   52 -
 .../elements/pipeline-elements-row.component.html  |   31 +
 .../elements/pipeline-elements-row.component.ts    |   54 +-
 .../elements/pipeline-elements-row.controller.ts   |   53 -
 .../elements/pipeline-elements-row.tmpl.html       |   34 -
 .../elements/pipeline-elements.component.html      |   39 +
 .../elements/pipeline-elements.component.ts        |   29 +-
 .../elements/pipeline-elements.controller.ts       |   24 -
 .../elements/pipeline-elements.tmpl.html           |   39 -
 .../preview/pipeline-preview.component.html        |   30 +
 .../preview/pipeline-preview.component.scss}       |    0
 .../preview/pipeline-preview.component.ts          |   71 +-
 .../preview/pipeline-preview.controller.ts         |   62 -
 .../components/preview/pipeline-preview.tmpl.html  |   30 -
 .../status/pipeline-status.component.html          |   44 +
 .../components/status/pipeline-status.component.ts |   45 +-
 .../status/pipeline-status.controller.ts           |   43 -
 .../components/status/pipeline-status.tmpl.html    |   44 -
 .../pipeline-details.component.html                |   60 +
 .../pipeline-details.component.scss                |   22 +
 .../pipeline-details/pipeline-details.component.ts |   68 +
 .../pipeline-details.controller.ts                 |   59 -
 ui/src/app/pipeline-details/pipeline-details.html  |   59 -
 .../pipeline-details/pipeline-details.module.ts    |   73 +-
 .../category-already-in-pipeline.filter.ts         |   26 +-
 .../pipeline-details/pipeline-details.component.ts |   32 -
 .../pipeline-details.controller.ts                 |   65 -
 .../pipeline-details/pipeline-details.tmpl.html    |   97 -
 .../pipeline-overview.component.html               |   90 +
 .../pipeline-overview.component.scss               |   34 +
 .../pipeline-overview.component.ts                 |  115 +
 .../dialog/delete-pipeline-dialog.controller.ts    |   70 -
 .../dialog/delete-pipeline-dialog.tmpl.html        |   56 -
 .../delete-pipeline-dialog.component.html          |   52 +
 .../delete-pipeline-dialog.component.scss          |   19 +
 .../delete-pipeline-dialog.component.ts            |   64 +
 .../dialog/import-pipeline-dialog.controller.ts    |  111 -
 .../dialog/import-pipeline-dialog.tmpl.html        |   73 -
 .../import-pipeline-dialog.component.html          |   68 +
 .../import-pipeline-dialog.component.scss          |   19 +
 .../import-pipeline-dialog.component.ts            |  112 +
 .../pipeline-categories-dialog.controller.ts       |  142 -
 .../dialog/pipeline-categories-dialog.tmpl.html    |  170 --
 .../pipeline-categories-dialog.component.html      |  146 +
 .../pipeline-categories-dialog.component.scss      |   19 +
 .../pipeline-categories-dialog.component.ts        |  149 +
 .../dialog/pipeline-status-dialog.controller.ts    |   44 -
 .../dialog/pipeline-status-dialog.tmpl.html        |   74 -
 .../pipeline-status-dialog.component.html          |   59 +
 .../pipeline-status-dialog.component.scss          |   31 +
 .../pipeline-status-dialog.component.ts            |   47 +
 .../start-all-pipelines-dialog.controller.ts       |  163 --
 .../dialog/start-all-pipelines-dialog.tmpl.html    |   57 -
 .../start-all-pipelines-dialog.component.html      |   49 +
 .../start-all-pipelines-dialog.component.scss      |   19 +
 .../start-all-pipelines-dialog.component.ts        |  154 ++
 ui/src/app/pipelines/pipeline-category.filter.ts   |   29 +-
 ui/src/app/pipelines/pipelines.component.html      |   74 +
 ui/src/app/pipelines/pipelines.component.scss      |   29 +
 ui/src/app/pipelines/pipelines.component.ts        |  196 ++
 ui/src/app/pipelines/pipelines.controller.ts       |  247 --
 ui/src/app/pipelines/pipelines.html                |   98 -
 ui/src/app/pipelines/pipelines.module.ts           |   78 +-
 .../services/pipeline-operations.service.ts        |  182 +-
 .../app/platform-services/apis/commons.service.ts  |   42 +
 ui/src/app/platform-services/apis/files.service.ts |   63 +
 .../apis/pipeline-element-endpoint.service.ts      |   52 +
 .../apis/pipeline-element.service.ts               |   74 +
 .../apis/pipeline-template.service.ts              |  203 +-
 .../app/platform-services/apis/pipeline.service.ts |  115 +
 .../contants/platform-services.constants.ts        |   22 +
 ui/src/app/platform-services/platform.module.ts    |   28 +-
 .../platform-services/tsonld-serializer.service.ts |  223 --
 ui/src/app/platform-services/tsonld/Float.ts       |   20 -
 ui/src/app/platform-services/tsonld/RdfId.js       |   25 -
 ui/src/app/platform-services/tsonld/RdfId.ts       |   22 -
 ui/src/app/platform-services/tsonld/RdfsClass.js   |   26 -
 ui/src/app/platform-services/tsonld/RdfsClass.ts   |   23 -
 .../app/platform-services/tsonld/RdfsProperty.js   |   27 -
 .../app/platform-services/tsonld/RdfsProperty.ts   |   24 -
 ui/src/app/platform-services/tsonld/index.ts       |   19 -
 .../app/platform-services/tsonld/model/Person.js   |   63 -
 .../app/platform-services/tsonld/model/Person.ts   |   54 -
 ui/src/app/platform-services/tsonld/tsonld.js      |  245 --
 ui/src/app/platform-services/tsonld/tsonld.ts      |  410 ---
 ui/src/app/services/auth-status.service.ts         |    1 +
 ui/src/app/services/auth.service.ts                |   52 +-
 ui/src/app/services/dialog-builder.service.ts      |   41 -
 ui/src/app/services/domain-properties.service.ts   |   41 -
 ui/src/app/services/image-checker.service.ts       |    3 +
 ui/src/app/services/jsplumb-bridge.service.ts      |  120 -
 ui/src/app/services/jsplumb-config.service.ts      |  109 -
 ui/src/app/services/jsplumb.service.ts             |  258 --
 ui/src/app/services/notification-count-service.ts  |   10 +-
 ui/src/app/services/object-provider.service.ts     |  124 -
 ui/src/app/services/pipeline-editor.service.ts     |   67 -
 .../app/services/pipeline-positioning.service.ts   |  137 -
 ui/src/app/services/property-selector.service.ts   |   23 +-
 ui/src/app/services/rest-api.service.ts            |  324 +--
 ui/src/app/services/services.module.ts             |   84 +-
 .../tour/create-pipeline-tour.constants.ts         |   20 +-
 ui/src/app/services/tour/shepherd.service.ts       |   21 +-
 ui/src/app/services/tour/tour-provider.service.ts  |   15 +-
 ui/src/app/services/transition.service.ts          |   58 -
 ui/src/app/shared/logger/log.service.ts            |    2 +
 ui/src/assets/templates/iconbar.html               |   57 -
 ui/src/assets/templates/login.html                 |   70 -
 ui/src/assets/templates/navbar.html                |  127 -
 ui/src/assets/templates/register.html              |   67 -
 ui/src/assets/templates/setup.html                 |  149 -
 ui/src/assets/templates/streampipes.html           |   27 -
 ui/src/assets/templates/tutorial.html              |  160 --
 ui/src/environments/environment.prod.ts            |   21 +
 ui/src/environments/environment.ts                 |   22 +
 ui/src/index.html                                  |   22 +-
 ui/src/main.ts                                     |   15 +-
 ui/src/scss/main.scss                              |   16 +-
 ui/src/scss/sp/buttons.scss                        |   20 +-
 ui/src/scss/sp/dialog.scss                         |    2 +
 ui/src/scss/sp/feedback.ng1.scss                   |    2 -
 ui/src/scss/sp/forms.scss                          |   46 +
 ui/src/scss/sp/main.scss                           |   45 +-
 ui/src/scss/sp/pipeline-assembly.scss              |   12 -
 ui/src/scss/sp/pipeline-element-options.scss       |    2 +-
 ui/src/scss/sp/pipeline-validation.scss            |    3 -
 ui/src/scss/sp/progress-bar.scss                   |   23 +
 ui/src/scss/sp/sp-dialog.scss                      |   42 +
 ui/src/scss/sp/sp-theme.scss                       |   99 +
 ui/src/scss/sp/widgets.scss                        |   40 +
 ui/src/tsconfig.app.json                           |    2 +-
 ui/src/tsconfig.spec.json                          |    2 +-
 ui/tsconfig.base.json                              |   26 +
 ui/tsconfig.json                                   |   39 +-
 ui/tsconfig.spec.json                              |    2 +-
 ui/tslint.json                                     |    1 -
 1479 files changed, 35749 insertions(+), 42205 deletions(-)
 delete mode 100644 .idea/runConfigurations/AggregationFlinkInit.xml
 delete mode 100644 .idea/runConfigurations/Apache_StreamPipes___Connect_Master.xml
 delete mode 100644 .idea/runConfigurations/Apache_StreamPipes___Core.xml
 delete mode 100644 .idea/runConfigurations/BrokersJvmInit.xml
 delete mode 100644 .idea/runConfigurations/ConnectAdapterInit.xml
 delete mode 100644 .idea/runConfigurations/DatabasesFlinkInit.xml
 delete mode 100644 .idea/runConfigurations/DatabasesJvmInit.xml
 delete mode 100644 .idea/runConfigurations/EnricherFlinkInit.xml
 delete mode 100644 .idea/runConfigurations/EnricherJvmInit.xml
 delete mode 100644 .idea/runConfigurations/FiltersJvmInit.xml
 delete mode 100644 .idea/runConfigurations/FiltersSiddhiInit.xml
 delete mode 100644 .idea/runConfigurations/GeoFlinkInit.xml
 delete mode 100644 .idea/runConfigurations/GeoJvmInit.xml
 delete mode 100644 .idea/runConfigurations/ImageProcessingJvmInit.xml
 delete mode 100644 .idea/runConfigurations/PatternDetectionFlinkInit.xml
 delete mode 100644 .idea/runConfigurations/SinksInternalJvmInit.xml
 delete mode 100644 .idea/runConfigurations/SinksNotificationsJvmInit.xml
 delete mode 100644 .idea/runConfigurations/StatisticsFlinkInit.xml
 delete mode 100644 .idea/runConfigurations/TestMiningFlinkInit.xml
 delete mode 100644 .idea/runConfigurations/TestMiningJvmInit.xml
 delete mode 100644 .idea/runConfigurations/TransformationFlinkInit.xml
 delete mode 100644 .idea/runConfigurations/TransformationJvmInit.xml
 delete mode 100644 .idea/runConfigurations/VehicleSimulatorInit.xml
 delete mode 100644 .idea/runConfigurations/WatertankSimulatorInit.xml
 create mode 100644 .idea/runConfigurations/all_pipeline_elements_flink.xml
 create mode 100644 .idea/runConfigurations/all_pipeline_elements_jvm.xml
 create mode 100644 .idea/runConfigurations/backend.xml
 create mode 100644 .idea/runConfigurations/connect_adapters.xml
 create mode 100644 .idea/runConfigurations/connect_master.xml
 create mode 100644 .idea/runConfigurations/processors_aggregation_flink.xml
 create mode 100644 .idea/runConfigurations/processors_enricher_flink.xml
 create mode 100644 .idea/runConfigurations/processors_enricher_jvm.xml
 create mode 100644 .idea/runConfigurations/processors_filters_jvm.xml
 create mode 100644 .idea/runConfigurations/processors_filters_siddhi.xml
 create mode 100644 .idea/runConfigurations/processors_geo_flink.xml
 create mode 100644 .idea/runConfigurations/processors_geo_jvm.xml
 create mode 100644 .idea/runConfigurations/processors_imageprocessing_jvm.xml
 create mode 100644 .idea/runConfigurations/processors_pattern_detection_flink.xml
 create mode 100644 .idea/runConfigurations/processors_statistics_flink.xml
 create mode 100644 .idea/runConfigurations/processors_textmining_flink.xml
 create mode 100644 .idea/runConfigurations/processors_textmining_jvm.xml
 create mode 100644 .idea/runConfigurations/processors_transformation_flink.xml
 create mode 100644 .idea/runConfigurations/processors_transformation_jvm.xml
 create mode 100644 .idea/runConfigurations/sinks_brokers_jvm.xml
 create mode 100644 .idea/runConfigurations/sinks_databases_flink.xml
 create mode 100644 .idea/runConfigurations/sinks_databases_jvm.xml
 create mode 100644 .idea/runConfigurations/sinks_internal_jvm.xml
 create mode 100644 .idea/runConfigurations/sinks_notifications_jvm.xml
 create mode 100644 .idea/runConfigurations/sources_vehicle_simulator_jvm.xml
 create mode 100644 .idea/runConfigurations/sources_watertank_simulator_jvm.xml
 create mode 100644 .idea/runConfigurations/ui.xml
 create mode 100644 DISCLAIMER
 delete mode 100644 DISCLAIMER-WIP
 create mode 100644 archetypes/streampipes-archetype-pe-processors-flink/src/main/resources/archetype-resources/src/main/java/Init.java
 delete mode 100644 archetypes/streampipes-archetype-pe-processors-flink/src/main/resources/archetype-resources/src/main/java/main/Init.java
 create mode 100644 archetypes/streampipes-archetype-pe-processors-jvm/src/main/resources/archetype-resources/src/main/java/Init.java
 delete mode 100644 archetypes/streampipes-archetype-pe-processors-jvm/src/main/resources/archetype-resources/src/main/java/main/Init.java
 create mode 100644 archetypes/streampipes-archetype-pe-sinks-flink/src/main/resources/archetype-resources/src/main/java/Init.java
 delete mode 100644 archetypes/streampipes-archetype-pe-sinks-flink/src/main/resources/archetype-resources/src/main/java/main/Init.java
 create mode 100644 archetypes/streampipes-archetype-pe-sinks-jvm/src/main/resources/archetype-resources/src/main/java/Init.java
 delete mode 100644 archetypes/streampipes-archetype-pe-sinks-jvm/src/main/resources/archetype-resources/src/main/java/main/Init.java
 create mode 100644 archetypes/streampipes-archetype-pe-sources/src/main/resources/archetype-resources/src/main/java/Init.java
 delete mode 100644 archetypes/streampipes-archetype-pe-sources/src/main/resources/archetype-resources/src/main/java/main/Init.java
 delete mode 100644 archetypes/streampipes-archetype-pe-sources/src/main/resources/archetype-resources/src/main/java/pe/__packageName__/DataSource.java
 delete mode 100644 archetypes/streampipes-archetype-pe-sources/src/main/resources/archetype-resources/src/main/java/pe/__packageName__/__classNamePrefix__Stream.java
 create mode 100644 archetypes/streampipes-archetype-pe-sources/src/main/resources/archetype-resources/src/main/java/pe/source.__packageName__/DataSource.java
 create mode 100644 archetypes/streampipes-archetype-pe-sources/src/main/resources/archetype-resources/src/main/java/pe/source.__packageName__/__classNamePrefix__Stream.java
 create mode 100644 archetypes/streampipes-archetype-pe-sources/src/main/resources/archetype-resources/src/main/resources/__package__.pe.source.__packageName__/documentation.md
 create mode 100644 archetypes/streampipes-archetype-pe-sources/src/main/resources/archetype-resources/src/main/resources/__package__.pe.source.__packageName__/icon.png
 create mode 100644 archetypes/streampipes-archetype-pe-sources/src/main/resources/archetype-resources/src/main/resources/__package__.pe.source.__packageName__/strings.en
 delete mode 100644 licenses/BSD_2-Clause
 delete mode 100644 licenses/CDDL_1.0
 delete mode 100644 licenses/CDDL_1.1
 delete mode 100644 licenses/CDDL_LICENSE_1.1
 delete mode 100644 licenses/EPL_1.0
 delete mode 100644 licenses/EPL_2.0
 delete mode 100644 licenses/Eclipse_Distribution_License_v1.0
 delete mode 100644 streampipes-app-file-export/pom.xml
 delete mode 100644 streampipes-app-file-export/src/main/java/org/apache/streampipes/app/file/export/ElasticsearchAppData.java
 delete mode 100644 streampipes-app-file-export/src/main/java/org/apache/streampipes/app/file/export/ElasticsearchConfig.java
 delete mode 100644 streampipes-app-file-export/src/main/java/org/apache/streampipes/app/file/export/api/IElasticsearch.java
 delete mode 100644 streampipes-app-file-export/src/main/java/org/apache/streampipes/app/file/export/application/AppFileExportApplication.java
 delete mode 100644 streampipes-app-file-export/src/main/java/org/apache/streampipes/app/file/export/converter/JsonConverter.java
 delete mode 100644 streampipes-app-file-export/src/main/java/org/apache/streampipes/app/file/export/impl/Elasticsearch.java
 delete mode 100644 streampipes-app-file-export/src/main/java/org/apache/streampipes/app/file/export/model/IndexInfo.java
 delete mode 100644 streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/management/FileManagement.java
 delete mode 100644 streampipes-connect-container-master/src/main/java/org/apache/streampipes/connect/container/master/rest/FileResource.java
 delete mode 100644 streampipes-connect-container-worker/src/main/java/org/apache/streampipes/connect/container/worker/management/FileManagement.java
 delete mode 100644 streampipes-connect-container-worker/src/main/java/org/apache/streampipes/connect/container/worker/rest/FileResource.java
 create mode 100644 streampipes-connect/src/main/java/org/apache/streampipes/connect/adapter/exception/WorkerAdapterException.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/VirtualSensor.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/messages/AppInstallationMessage.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/messages/ErrorMessage.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/messages/ErrorMessageLd.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/messages/Message.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/messages/MessageLd.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/messages/Notification.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/messages/NotificationLd.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/messages/NotificationType.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/messages/Notifications.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/messages/ProaSenseNotificationMessage.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/messages/SetupStatusMessage.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/messages/SuccessMessage.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/messages/SuccessMessageLd.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/pipeline/DataSetModificationMessage.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/pipeline/ElementComposition.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/pipeline/Pipeline.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/pipeline/PipelineCategory.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/pipeline/PipelineElementRecommendation.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/pipeline/PipelineElementRecommendationMessage.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/pipeline/PipelineElementStatus.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/pipeline/PipelineModification.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/pipeline/PipelineModificationErrorDescription.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/pipeline/PipelineModificationMessage.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/pipeline/PipelineOperationStatus.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/pipeline/PipelineStatusMessage.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/pipeline/PipelineStatusMessageType.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/runtime/ContainerProvidedOptionsParameterRequest.java
 delete mode 100644 streampipes-model-client/src/main/java/org/apache/streampipes/model/client/util/DatasetUtil.java
 create mode 100644 streampipes-model-shared/pom.xml
 create mode 100644 streampipes-model-shared/src/main/java/org/apache/streampipes/model/shared/annotation/TsIgnore.java
 create mode 100644 streampipes-model-shared/src/main/java/org/apache/streampipes/model/shared/annotation/TsModel.java
 create mode 100644 streampipes-model/src/main/java/org/apache/streampipes/model/ErrorMessageLd.java
 create mode 100644 streampipes-model/src/main/java/org/apache/streampipes/model/MessageLd.java
 create mode 100644 streampipes-model/src/main/java/org/apache/streampipes/model/NotificationLd.java
 create mode 100644 streampipes-model/src/main/java/org/apache/streampipes/model/VirtualSensor.java
 delete mode 100644 streampipes-model/src/main/java/org/apache/streampipes/model/connect/ListDescription.java
 delete mode 100644 streampipes-model/src/main/java/org/apache/streampipes/model/connect/rules/Schema/CreateNestedRuleDescription.java
 delete mode 100644 streampipes-model/src/main/java/org/apache/streampipes/model/connect/rules/Schema/DeleteRuleDescription.java
 delete mode 100644 streampipes-model/src/main/java/org/apache/streampipes/model/connect/rules/Schema/MoveRuleDescription.java
 delete mode 100644 streampipes-model/src/main/java/org/apache/streampipes/model/connect/rules/Schema/RenameRuleDescription.java
 delete mode 100644 streampipes-model/src/main/java/org/apache/streampipes/model/connect/rules/Schema/SchemaTransformationRuleDescription.java
 delete mode 100644 streampipes-model/src/main/java/org/apache/streampipes/model/connect/rules/Stream/EventRateTransformationRuleDescription.java
 delete mode 100644 streampipes-model/src/main/java/org/apache/streampipes/model/connect/rules/Stream/RemoveDuplicatesTransformationRuleDescription.java
 delete mode 100644 streampipes-model/src/main/java/org/apache/streampipes/model/connect/rules/Stream/StreamTransformationRuleDescription.java
 create mode 100644 streampipes-model/src/main/java/org/apache/streampipes/model/connect/rules/schema/CreateNestedRuleDescription.java
 create mode 100644 streampipes-model/src/main/java/org/apache/streampipes/model/connect/rules/schema/DeleteRuleDescription.java
 create mode 100644 streampipes-model/src/main/java/org/apache/streampipes/model/connect/rules/schema/MoveRuleDescription.java
 create mode 100644 streampipes-model/src/main/java/org/apache/streampipes/model/connect/rules/schema/RenameRuleDescription.java
 create mode 100644 streampipes-model/src/main/java/org/apache/streampipes/model/connect/rules/schema/SchemaTransformationRuleDescription.java
 create mode 100644 streampipes-model/src/main/java/org/apache/streampipes/model/connect/rules/stream/EventRateTransformationRuleDescription.java
 create mode 100644 streampipes-model/src/main/java/org/apache/streampipes/model/connect/rules/stream/RemoveDuplicatesTransformationRuleDescription.java
 create mode 100644 streampipes-model/src/main/java/org/apache/streampipes/model/connect/rules/stream/StreamTransformationRuleDescription.java
 create mode 100644 streampipes-model/src/main/java/org/apache/streampipes/model/message/DataSetModificationMessage.java
 create mode 100644 streampipes-model/src/main/java/org/apache/streampipes/model/message/ErrorMessage.java
 create mode 100644 streampipes-model/src/main/java/org/apache/streampipes/model/message/Message.java
 create mode 100644 streampipes-model/src/main/java/org/apache/streampipes/model/message/Notification.java
 create mode 100644 streampipes-model/src/main/java/org/apache/streampipes/model/message/NotificationType.java
 create mode 100644 streampipes-model/src/main/java/org/apache/streampipes/model/message/Notifications.java
 create mode 100644 streampipes-model/src/main/java/org/apache/streampipes/model/message/PipelineModificationMessage.java
 create mode 100644 streampipes-model/src/main/java/org/apache/streampipes/model/message/PipelineStatusMessage.java
 create mode 100644 streampipes-model/src/main/java/org/apache/streampipes/model/message/PipelineStatusMessageType.java
 create mode 100644 streampipes-model/src/main/java/org/apache/streampipes/model/message/SetupStatusMessage.java
 create mode 100644 streampipes-model/src/main/java/org/apache/streampipes/model/message/SuccessMessage.java
 create mode 100644 streampipes-model/src/main/java/org/apache/streampipes/model/pipeline/ElementComposition.java
 create mode 100644 streampipes-model/src/main/java/org/apache/streampipes/model/pipeline/Pipeline.java
 create mode 100644 streampipes-model/src/main/java/org/apache/streampipes/model/pipeline/PipelineCategory.java
 create mode 100644 streampipes-model/src/main/java/org/apache/streampipes/model/pipeline/PipelineElementRecommendation.java
 create mode 100644 streampipes-model/src/main/java/org/apache/streampipes/model/pipeline/PipelineElementRecommendationMessage.java
 create mode 100644 streampipes-model/src/main/java/org/apache/streampipes/model/pipeline/PipelineElementStatus.java
 create mode 100644 streampipes-model/src/main/java/org/apache/streampipes/model/pipeline/PipelineModification.java
 create mode 100644 streampipes-model/src/main/java/org/apache/streampipes/model/pipeline/PipelineModificationErrorDescription.java
 create mode 100644 streampipes-model/src/main/java/org/apache/streampipes/model/pipeline/PipelineOperationStatus.java
 create mode 100644 streampipes-model/src/main/java/org/apache/streampipes/model/runtime/ContainerProvidedOptionsParameterRequest.java
 delete mode 100644 streampipes-model/src/main/java/org/apache/streampipes/model/user/User.java
 create mode 100644 streampipes-model/src/main/java/org/apache/streampipes/model/util/RdfIdGenerator.java
 create mode 100644 streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/matching/ConnectionStorageHandler.java
 create mode 100644 streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/matching/ConnectionValidator.java
 create mode 100644 streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/matching/mapping/AbstractRequirementsSelectorGenerator.java
 create mode 100644 streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/matching/mapping/EmptyRequirementsSelectorGenerator.java
 create mode 100644 streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/matching/mapping/MappingPropertyCalculator.java
 create mode 100644 streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/matching/mapping/RequirementsSelectorGenerator.java
 create mode 100644 streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/matching/mapping/RequirementsSelectorGeneratorFactory.java
 delete mode 100644 streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/matching/v2/mapping/MappingPropertyCalculator.java
 create mode 100644 streampipes-rest-shared/src/main/java/org/apache/streampipes/rest/shared/annotation/JacksonSerialized.java
 create mode 100644 streampipes-rest-shared/src/main/java/org/apache/streampipes/rest/shared/serializer/JacksonSerializationProvider.java
 create mode 100644 streampipes-rest-shared/src/main/java/org/apache/streampipes/rest/shared/serializer/JsonJerseyProvider.java
 create mode 100644 streampipes-sdk/src/main/java/org/apache/streampipes/sdk/helpers/Filetypes.java
 create mode 100644 streampipes-sdk/src/main/java/org/apache/streampipes/sdk/helpers/RequirementsSelector.java
 create mode 100644 streampipes-serializers/src/main/java/org/apache/streampipes/serializers/json/JacksonSerializer.java
 delete mode 100644 streampipes-wrapper-python/streampipes/api.py
 create mode 100644 streampipes-wrapper-python/streampipes/api/__init__.py
 create mode 100644 streampipes-wrapper-python/streampipes/api/resources/__init__.py
 create mode 100644 streampipes-wrapper-python/streampipes/api/resources/base.py
 create mode 100644 streampipes-wrapper-python/streampipes/api/resources/dummy.py
 create mode 100644 streampipes-wrapper-python/streampipes/api/resources/processor.py
 create mode 100644 streampipes-wrapper-python/streampipes/api/resources/welcome.py
 create mode 100644 streampipes-wrapper-python/streampipes/api/rest.py
 create mode 100644 streampipes-wrapper-python/streampipes/api/templates/index.html
 create mode 100644 streampipes-wrapper-python/streampipes/base/__init__.py
 create mode 100644 streampipes-wrapper-python/streampipes/base/banner.py
 delete mode 100644 streampipes-wrapper-python/streampipes/configuration.py
 create mode 100644 streampipes-wrapper-python/streampipes/declarer.py
 delete mode 100644 streampipes-wrapper-python/streampipes/helper.py
 create mode 100644 streampipes-wrapper-python/streampipes/model/__init__.py
 create mode 100644 streampipes-wrapper-python/streampipes/model/config_item.py
 create mode 100644 streampipes-wrapper-python/streampipes/model/pipeline_element_config.py
 create mode 100644 streampipes-wrapper-python/streampipes/submitter.py
 create mode 100644 streampipes-wrapper-python/streampipes/utils/__init__.py
 create mode 100644 streampipes-wrapper-python/streampipes/utils/register.py
 rename ui/{browserslist => .browserslistrc} (100%)
 create mode 100644 ui/deployment/app-routing.module.mst
 delete mode 100644 ui/deployment/app.module.mst
 create mode 100644 ui/deployment/base-navigation.component.mst
 delete mode 100644 ui/deployment/state.config.mst
 delete mode 100644 ui/deployment/toolbar.controller.mst
 delete mode 100644 ui/deployment/version.service.mst
 create mode 100644 ui/src/app/_guards/already-configured.can-activate.guard.ts
 create mode 100644 ui/src/app/_guards/auth.can-activate-children.guard.ts
 create mode 100644 ui/src/app/_guards/base-configured.can-activate.guard.ts
 create mode 100644 ui/src/app/_guards/configured.can-activate.guard.ts
 create mode 100644 ui/src/app/_guards/logged-in.can-activate.guard.ts
 create mode 100644 ui/src/app/add/add.component.html
 create mode 100644 ui/src/app/add/add.component.scss
 create mode 100644 ui/src/app/add/add.component.ts
 delete mode 100644 ui/src/app/add/add.controller.ts
 delete mode 100644 ui/src/app/add/add.html
 create mode 100644 ui/src/app/add/components/endpoint-item/endpoint-item.component.html
 create mode 100644 ui/src/app/add/components/endpoint-item/endpoint-item.component.scss
 create mode 100644 ui/src/app/add/components/endpoint-item/endpoint-item.component.ts
 create mode 100644 ui/src/app/add/dialogs/add-endpoint/add-endpoint.component.html
 create mode 100644 ui/src/app/add/dialogs/add-endpoint/add-endpoint.component.scss
 create mode 100644 ui/src/app/add/dialogs/add-endpoint/add-endpoint.component.ts
 delete mode 100644 ui/src/app/add/dialogs/add-endpoint/add-endpoint.controller.ts
 delete mode 100644 ui/src/app/add/dialogs/add-endpoint/add-endpoint.tmpl.html
 create mode 100644 ui/src/app/add/dialogs/endpoint-installation/endpoint-installation.component.html
 create mode 100644 ui/src/app/add/dialogs/endpoint-installation/endpoint-installation.component.scss
 create mode 100644 ui/src/app/add/dialogs/endpoint-installation/endpoint-installation.component.ts
 delete mode 100644 ui/src/app/add/dialogs/endpoint-installation/endpoint-installation.controller.ts
 delete mode 100644 ui/src/app/add/dialogs/endpoint-installation/endpoint-installation.tmpl.html
 delete mode 100644 ui/src/app/add/endpoint-item.tmpl.html
 create mode 100644 ui/src/app/add/filter/order-by.pipe.ts
 create mode 100644 ui/src/app/add/filter/pipeline-element-installation-status.pipe.ts
 create mode 100644 ui/src/app/add/filter/pipeline-element-name.pipe.ts
 create mode 100644 ui/src/app/add/filter/pipeline-element-type.pipe.ts
 create mode 100644 ui/src/app/add/services/add.service.ts
 create mode 100644 ui/src/app/animation.ts
 create mode 100644 ui/src/app/app-routing.module.ts
 create mode 100644 ui/src/app/app.component.html
 create mode 100644 ui/src/app/app.component.ts
 delete mode 100644 ui/src/app/applinks/applinks.controller.ts
 delete mode 100644 ui/src/app/applinks/applinks.module.ts
 delete mode 100644 ui/src/app/applinks/applinks.tmpl.html
 copy ui/src/app/{data-explorer/components/widgets/utils/no-data/no-data-in-date-range.component.css => configuration/datalake-configuration/datalake-configuration.component.css} (100%)
 create mode 100644 ui/src/app/configuration/datalake-configuration/datalake-configuration.component.html
 create mode 100644 ui/src/app/configuration/datalake-configuration/datalake-configuration.component.ts
 rename ui/src/app/connect/{ => components}/data-marketplace/adapter-description/adapter-description.component.css (100%)
 create mode 100644 ui/src/app/connect/components/data-marketplace/adapter-description/adapter-description.component.html
 create mode 100644 ui/src/app/connect/components/data-marketplace/adapter-description/adapter-description.component.ts
 create mode 100644 ui/src/app/connect/components/data-marketplace/data-marketplace.component.css
 create mode 100644 ui/src/app/connect/components/data-marketplace/data-marketplace.component.html
 create mode 100644 ui/src/app/connect/components/data-marketplace/data-marketplace.component.ts
 rename ui/src/app/connect/{ => components}/format-component/format.component.css (100%)
 create mode 100644 ui/src/app/connect/components/format-component/format.component.html
 create mode 100644 ui/src/app/connect/components/format-component/format.component.ts
 rename ui/src/app/connect/{ => components}/format-form/csv.ts (100%)
 rename ui/src/app/connect/{ => components}/format-form/format-form.component.css (100%)
 rename ui/src/app/connect/{ => components}/format-form/format-form.component.html (100%)
 create mode 100644 ui/src/app/connect/components/format-form/format-form.component.ts
 rename ui/src/app/connect/{ => components}/format-form/format.ts (100%)
 rename ui/src/app/connect/{ => components}/format-form/json.ts (100%)
 rename ui/src/app/connect/{ => components}/format-list-component/format-list.component.css (100%)
 rename ui/src/app/connect/{ => components}/format-list-component/format-list.component.html (100%)
 create mode 100644 ui/src/app/connect/components/format-list-component/format-list.component.ts
 rename ui/src/app/connect/{ => components}/new-adapter/new-adapter.component.css (100%)
 create mode 100644 ui/src/app/connect/components/new-adapter/new-adapter.component.html
 create mode 100644 ui/src/app/connect/components/new-adapter/new-adapter.component.ts
 create mode 100644 ui/src/app/connect/components/runtime-info/pipeline-element-runtime-info.component.html
 copy ui/src/app/{data-explorer/components/widgets/utils/no-data/no-data-in-date-range.component.css => connect/components/runtime-info/pipeline-element-runtime-info.component.scss} (100%)
 create mode 100644 ui/src/app/connect/components/runtime-info/pipeline-element-runtime-info.component.ts
 rename ui/src/app/connect/{ => components}/schema-editor/event-property-row/event-property-row.component.css (100%)
 rename ui/src/app/connect/{ => components}/schema-editor/event-property-row/event-property-row.component.html (100%)
 create mode 100644 ui/src/app/connect/components/schema-editor/event-property-row/event-property-row.component.ts
 rename ui/src/app/connect/{ => components}/schema-editor/event-schema-preview/event-schema-preview.component.css (100%)
 rename ui/src/app/connect/{ => components}/schema-editor/event-schema-preview/event-schema-preview.component.html (100%)
 create mode 100644 ui/src/app/connect/components/schema-editor/event-schema-preview/event-schema-preview.component.ts
 rename ui/src/app/connect/{ => components}/schema-editor/event-schema/event-schema.component.css (100%)
 rename ui/src/app/connect/{ => components}/schema-editor/event-schema/event-schema.component.html (100%)
 create mode 100644 ui/src/app/connect/components/schema-editor/event-schema/event-schema.component.ts
 delete mode 100644 ui/src/app/connect/connect.service.ts
 delete mode 100644 ui/src/app/connect/data-marketplace/adapter-description/adapter-description.component.html
 delete mode 100644 ui/src/app/connect/data-marketplace/adapter-description/adapter-description.component.ts
 delete mode 100644 ui/src/app/connect/data-marketplace/adapter-export/adapter-export-dialog.component.css
 delete mode 100644 ui/src/app/connect/data-marketplace/adapter-export/adapter-export-dialog.component.ts
 delete mode 100644 ui/src/app/connect/data-marketplace/adapter-export/adapter-export-dialog.html
 delete mode 100644 ui/src/app/connect/data-marketplace/adapter-upload/adapter-upload-dialog.component.ts
 delete mode 100644 ui/src/app/connect/data-marketplace/adapter-upload/adapter-upload-dialog.html
 delete mode 100644 ui/src/app/connect/data-marketplace/data-marketplace.component.css
 delete mode 100644 ui/src/app/connect/data-marketplace/data-marketplace.component.html
 delete mode 100644 ui/src/app/connect/data-marketplace/data-marketplace.component.ts
 delete mode 100644 ui/src/app/connect/data-marketplace/data-marketplace.service.ts
 delete mode 100644 ui/src/app/connect/data-marketplace/filter.pipe.ts
 create mode 100644 ui/src/app/connect/dialog/adapter-export/adapter-export-dialog.component.scss
 create mode 100644 ui/src/app/connect/dialog/adapter-export/adapter-export-dialog.component.ts
 create mode 100644 ui/src/app/connect/dialog/adapter-export/adapter-export-dialog.html
 create mode 100644 ui/src/app/connect/dialog/adapter-started/adapter-started-dialog.component.html
 create mode 100644 ui/src/app/connect/dialog/adapter-started/adapter-started-dialog.component.scss
 create mode 100644 ui/src/app/connect/dialog/adapter-started/adapter-started-dialog.component.ts
 create mode 100644 ui/src/app/connect/dialog/adapter-upload/adapter-upload-dialog.component.scss
 create mode 100644 ui/src/app/connect/dialog/adapter-upload/adapter-upload-dialog.component.ts
 create mode 100644 ui/src/app/connect/dialog/adapter-upload/adapter-upload-dialog.html
 create mode 100644 ui/src/app/connect/dialog/edit-event-property/components/edit-data-type/edit-data-type.component.css
 create mode 100644 ui/src/app/connect/dialog/edit-event-property/components/edit-data-type/edit-data-type.component.html
 create mode 100644 ui/src/app/connect/dialog/edit-event-property/components/edit-data-type/edit-data-type.component.ts
 copy ui/src/app/connect/{static-properties/static-any-input/static-any-input.component.css => dialog/edit-event-property/components/edit-event-property-list/edit-event-property-list.component.css} (100%)
 create mode 100644 ui/src/app/connect/dialog/edit-event-property/components/edit-event-property-list/edit-event-property-list.component.html
 create mode 100644 ui/src/app/connect/dialog/edit-event-property/components/edit-event-property-list/edit-event-property-list.component.ts
 create mode 100644 ui/src/app/connect/dialog/edit-event-property/components/edit-event-property-primitive/edit-event-property-primitive.component.css
 create mode 100644 ui/src/app/connect/dialog/edit-event-property/components/edit-event-property-primitive/edit-event-property-primitive.component.html
 create mode 100644 ui/src/app/connect/dialog/edit-event-property/components/edit-event-property-primitive/edit-event-property-primitive.component.ts
 create mode 100644 ui/src/app/connect/dialog/edit-event-property/components/edit-timestamp-property/edit-timestamp-property.component.css
 create mode 100644 ui/src/app/connect/dialog/edit-event-property/components/edit-timestamp-property/edit-timestamp-property.component.html
 create mode 100644 ui/src/app/connect/dialog/edit-event-property/components/edit-timestamp-property/edit-timestamp-property.component.ts
 rename ui/src/app/connect/{schema-editor/event-property-primitive/event-property-primitive.component.css => dialog/edit-event-property/components/edit-unit-transformation/edit-unit-transformation.component.css} (100%)
 create mode 100644 ui/src/app/connect/dialog/edit-event-property/components/edit-unit-transformation/edit-unit-transformation.component.html
 create mode 100644 ui/src/app/connect/dialog/edit-event-property/components/edit-unit-transformation/edit-unit-transformation.component.ts
 rename ui/src/app/connect/{schema-editor/event-property/event-property.component.css => dialog/edit-event-property/edit-event-property.component.css} (100%)
 create mode 100644 ui/src/app/connect/dialog/edit-event-property/edit-event-property.component.html
 create mode 100644 ui/src/app/connect/dialog/edit-event-property/edit-event-property.component.ts
 delete mode 100644 ui/src/app/connect/file-management/file-management.component.html
 delete mode 100644 ui/src/app/connect/file-management/file-management.component.ts
 delete mode 100644 ui/src/app/connect/file-management/service/filerest.service.ts
 create mode 100644 ui/src/app/connect/filter/filter.pipe.ts
 delete mode 100644 ui/src/app/connect/format-component/format.component.html
 delete mode 100644 ui/src/app/connect/format-component/format.component.ts
 delete mode 100644 ui/src/app/connect/format-form/format-form.component.ts
 delete mode 100644 ui/src/app/connect/format-list-component/format-list.component.ts
 delete mode 100644 ui/src/app/connect/model/AlternativeStaticProperty.ts
 delete mode 100644 ui/src/app/connect/model/AlternativesStaticProperty.ts
 delete mode 100644 ui/src/app/connect/model/AnyStaticProperty.ts
 delete mode 100644 ui/src/app/connect/model/ApplicationLink.ts
 delete mode 100644 ui/src/app/connect/model/BoundPipelineElement.ts
 delete mode 100644 ui/src/app/connect/model/CollectionStaticProperty.ts
 delete mode 100644 ui/src/app/connect/model/ColorPickerStaticProperty.ts
 rename ui/src/app/connect/model/{message => }/ConfigurationInfo.ts (100%)
 delete mode 100644 ui/src/app/connect/model/DataProcessorInvocation.ts
 delete mode 100644 ui/src/app/connect/model/DataSetDescription.ts
 delete mode 100644 ui/src/app/connect/model/DataSinkInvocation.ts
 delete mode 100644 ui/src/app/connect/model/DataStreamContainer.ts
 delete mode 100644 ui/src/app/connect/model/DataStreamDescription.ts
 delete mode 100644 ui/src/app/connect/model/FileStaticProperty.ts
 delete mode 100644 ui/src/app/connect/model/FreeTextStaticProperty.ts
 delete mode 100644 ui/src/app/connect/model/GroupStaticProperty.ts
 delete mode 100644 ui/src/app/connect/model/InvocableStreamPipesEntity.ts
 delete mode 100644 ui/src/app/connect/model/MappingPropertyNary.ts
 delete mode 100644 ui/src/app/connect/model/MappingPropertyUnary.ts
 delete mode 100644 ui/src/app/connect/model/NamedStreamPipesEntity.ts
 delete mode 100644 ui/src/app/connect/model/OneOfStaticProperty.ts
 delete mode 100644 ui/src/app/connect/model/Option.ts
 delete mode 100644 ui/src/app/connect/model/PipelineTemplateDescription.ts
 delete mode 100644 ui/src/app/connect/model/PipelineTemplateDescriptionContainer.ts
 delete mode 100644 ui/src/app/connect/model/PipelineTemplateInvocation.ts
 delete mode 100644 ui/src/app/connect/model/RuntimeResolvableAnyStaticProperty.ts
 delete mode 100644 ui/src/app/connect/model/RuntimeResolvableOneOfStaticProperty.ts
 delete mode 100644 ui/src/app/connect/model/SecretStaticProperty.ts
 delete mode 100644 ui/src/app/connect/model/SelectionStaticProperty.ts
 delete mode 100644 ui/src/app/connect/model/StaticProperty.ts
 rename ui/src/app/connect/model/{connect/rules => }/TimestampTransformationRuleMode.ts (100%)
 delete mode 100644 ui/src/app/connect/model/URI.ts
 delete mode 100644 ui/src/app/connect/model/UnnamedStreamPipesEntity.ts
 delete mode 100644 ui/src/app/connect/model/connect/AdapterDescription.ts
 delete mode 100644 ui/src/app/connect/model/connect/AdapterDescriptionList.ts
 delete mode 100644 ui/src/app/connect/model/connect/AdapterSetDescription.ts
 delete mode 100644 ui/src/app/connect/model/connect/AdapterStreamDescription.ts
 delete mode 100644 ui/src/app/connect/model/connect/GenericAdapterSetDescription.ts
 delete mode 100644 ui/src/app/connect/model/connect/GenericAdapterStreamDescription.ts
 delete mode 100644 ui/src/app/connect/model/connect/SpecificAdapterSetDescription.ts
 delete mode 100644 ui/src/app/connect/model/connect/SpecificAdapterStreamDescription.ts
 delete mode 100644 ui/src/app/connect/model/connect/grounding/FormatDescription.ts
 delete mode 100644 ui/src/app/connect/model/connect/grounding/FormatDescriptionList.ts
 delete mode 100644 ui/src/app/connect/model/connect/grounding/ProtocolDescription.ts
 delete mode 100644 ui/src/app/connect/model/connect/grounding/ProtocolDescriptionList.ts
 delete mode 100644 ui/src/app/connect/model/connect/grounding/ProtocolSetDescription.ts
 delete mode 100644 ui/src/app/connect/model/connect/grounding/ProtocolStreamDescription.ts
 delete mode 100644 ui/src/app/connect/model/connect/rules/AddNestedRuleDescription.ts
 delete mode 100644 ui/src/app/connect/model/connect/rules/AddTimestampRuleDescription.ts
 delete mode 100644 ui/src/app/connect/model/connect/rules/AddValueTransformationRuleDescription.ts
 delete mode 100644 ui/src/app/connect/model/connect/rules/DeleteRuleDescription.ts
 delete mode 100644 ui/src/app/connect/model/connect/rules/EventRateTransformationRuleDescription.ts
 delete mode 100644 ui/src/app/connect/model/connect/rules/MoveRuleDesctiption.ts
 delete mode 100644 ui/src/app/connect/model/connect/rules/RemoveDuplicatesRuleDescription.ts
 delete mode 100644 ui/src/app/connect/model/connect/rules/RenameRuleDescription.ts
 delete mode 100644 ui/src/app/connect/model/connect/rules/TimestampTransformationRuleDescription.ts
 delete mode 100644 ui/src/app/connect/model/connect/rules/TransformationRuleDescription.ts
 delete mode 100644 ui/src/app/connect/model/connect/rules/UnitTransformRuleDescription.ts
 delete mode 100644 ui/src/app/connect/model/connect/runtime/RuntimeOptionsRequest.ts
 delete mode 100644 ui/src/app/connect/model/connect/runtime/RuntimeOptionsResponse.ts
 delete mode 100644 ui/src/app/connect/model/message/ErrorMessage.ts
 delete mode 100644 ui/src/app/connect/model/message/MessageLd.ts
 delete mode 100644 ui/src/app/connect/model/message/Notification.ts
 delete mode 100644 ui/src/app/connect/model/message/NotificationLd.ts
 delete mode 100644 ui/src/app/connect/model/message/StatusMessage.ts
 delete mode 100644 ui/src/app/connect/model/message/SuccessMessage.ts
 delete mode 100644 ui/src/app/connect/model/output/AppendOutputStrategy.ts
 delete mode 100644 ui/src/app/connect/model/output/CustomOutputStrategy.ts
 delete mode 100644 ui/src/app/connect/model/output/CustomTransformOutputStrategy.ts
 delete mode 100644 ui/src/app/connect/model/output/FixedOutputStrategy.ts
 delete mode 100644 ui/src/app/connect/model/output/KeepOutputStrategy.ts
 delete mode 100644 ui/src/app/connect/model/output/ListOutputStrategy.ts
 delete mode 100644 ui/src/app/connect/model/output/OutputStrategy.ts
 delete mode 100644 ui/src/app/connect/model/output/PropertyRenameRule.ts
 delete mode 100644 ui/src/app/connect/model/output/TransformOperation.ts
 delete mode 100644 ui/src/app/connect/model/output/TransformOperationType.ts
 delete mode 100644 ui/src/app/connect/model/output/TransformOutputStrategy.ts
 delete mode 100644 ui/src/app/connect/new-adapter/component/adapter-started-dialog.component.css
 delete mode 100644 ui/src/app/connect/new-adapter/component/adapter-started-dialog.component.ts
 delete mode 100644 ui/src/app/connect/new-adapter/component/dialog-adapter-started.html
 delete mode 100644 ui/src/app/connect/new-adapter/icon.service.ts
 delete mode 100644 ui/src/app/connect/new-adapter/new-adapter.component.html
 delete mode 100644 ui/src/app/connect/new-adapter/new-adapter.component.spec.ts
 delete mode 100644 ui/src/app/connect/new-adapter/new-adapter.component.ts
 delete mode 100644 ui/src/app/connect/protocol-component/protocol.component.css
 delete mode 100644 ui/src/app/connect/protocol-component/protocol.component.html
 delete mode 100644 ui/src/app/connect/protocol-component/protocol.component.ts
 delete mode 100644 ui/src/app/connect/protocol-list-component/protocol-list.component.css
 delete mode 100644 ui/src/app/connect/protocol-list-component/protocol-list.component.html
 delete mode 100644 ui/src/app/connect/protocol-list-component/protocol-list.component.ts
 delete mode 100644 ui/src/app/connect/rdfmapper/Person.ts
 delete mode 100644 ui/src/app/connect/rdfmapper/rdfmapper.service.ts
 delete mode 100644 ui/src/app/connect/rest.service.ts
 delete mode 100644 ui/src/app/connect/schema-editor/data-type.service.ts
 delete mode 100644 ui/src/app/connect/schema-editor/event-property-list/event-property-list.component.html
 delete mode 100644 ui/src/app/connect/schema-editor/event-property-list/event-property-list.component.ts
 delete mode 100644 ui/src/app/connect/schema-editor/event-property-primitive/event-property-primitive.component.html
 delete mode 100644 ui/src/app/connect/schema-editor/event-property-primitive/event-property-primitive.component.ts
 delete mode 100644 ui/src/app/connect/schema-editor/event-property-row/event-property-row.component.ts
 delete mode 100644 ui/src/app/connect/schema-editor/event-property/event-property.component.html
 delete mode 100644 ui/src/app/connect/schema-editor/event-property/event-property.component.ts
 delete mode 100644 ui/src/app/connect/schema-editor/event-schema-preview/event-schema-preview.component.ts
 delete mode 100644 ui/src/app/connect/schema-editor/event-schema/event-schema.component.ts
 delete mode 100644 ui/src/app/connect/schema-editor/model/DomainPropertyProbability.ts
 delete mode 100644 ui/src/app/connect/schema-editor/model/DomainPropertyProbabilityList.ts
 delete mode 100644 ui/src/app/connect/schema-editor/model/Enumeration.ts
 delete mode 100644 ui/src/app/connect/schema-editor/model/EventProperty.ts
 delete mode 100644 ui/src/app/connect/schema-editor/model/EventPropertyList.ts
 delete mode 100644 ui/src/app/connect/schema-editor/model/EventPropertyNested.ts
 delete mode 100644 ui/src/app/connect/schema-editor/model/EventPropertyPrimitive.ts
 delete mode 100644 ui/src/app/connect/schema-editor/model/EventSchema.ts
 delete mode 100644 ui/src/app/connect/schema-editor/model/ExampleNode.ts
 delete mode 100644 ui/src/app/connect/schema-editor/model/GuessSchema.ts
 delete mode 100644 ui/src/app/connect/schema-editor/model/QuantitativeValue.ts
 delete mode 100644 ui/src/app/connect/schema-editor/unit-provider.service.ts
 delete mode 100644 ui/src/app/connect/select-protocol-component/input.validator.ts
 delete mode 100644 ui/src/app/connect/select-protocol-component/protocol.ts
 delete mode 100644 ui/src/app/connect/select-protocol-component/select-protocol.component.css
 delete mode 100644 ui/src/app/connect/select-protocol-component/select-protocol.component.html
 delete mode 100644 ui/src/app/connect/select-protocol-component/select-protocol.component.ts
 delete mode 100644 ui/src/app/connect/select-static-properties-component/select-static-properties.component.css
 delete mode 100644 ui/src/app/connect/select-static-properties-component/select-static-properties.component.html
 delete mode 100644 ui/src/app/connect/select-static-properties-component/select-static-properties.component.ts
 create mode 100644 ui/src/app/connect/services/connect.service.ts
 create mode 100644 ui/src/app/connect/services/data-marketplace.service.ts
 create mode 100644 ui/src/app/connect/services/data-type.service.ts
 create mode 100644 ui/src/app/connect/services/icon.service.ts
 create mode 100644 ui/src/app/connect/services/rest.service.ts
 create mode 100644 ui/src/app/connect/services/transformation-rule.service.spec.ts
 create mode 100644 ui/src/app/connect/services/transformation-rule.service.ts
 create mode 100644 ui/src/app/connect/services/unit-provider.service.ts
 delete mode 100644 ui/src/app/connect/static-properties/static-alternatives/static-alternatives.component.html
 delete mode 100644 ui/src/app/connect/static-properties/static-alternatives/static-alternatives.component.ts
 delete mode 100644 ui/src/app/connect/static-properties/static-any-input/static-any-input.component.html
 delete mode 100644 ui/src/app/connect/static-properties/static-any-input/static-any-input.component.ts
 delete mode 100644 ui/src/app/connect/static-properties/static-collection/static-collection.component.html
 delete mode 100644 ui/src/app/connect/static-properties/static-collection/static-collection.component.ts
 delete mode 100644 ui/src/app/connect/static-properties/static-color-picker/static-color-picker.component.html
 delete mode 100644 ui/src/app/connect/static-properties/static-color-picker/static-color-picker.component.ts
 delete mode 100644 ui/src/app/connect/static-properties/static-file-input/static-file-input.component.css
 delete mode 100644 ui/src/app/connect/static-properties/static-file-input/static-file-input.component.html
 delete mode 100644 ui/src/app/connect/static-properties/static-file-input/static-file-input.component.ts
 delete mode 100644 ui/src/app/connect/static-properties/static-free-input/static-free-input.component.css
 delete mode 100644 ui/src/app/connect/static-properties/static-free-input/static-free-input.component.html
 delete mode 100644 ui/src/app/connect/static-properties/static-free-input/static-free-input.component.ts
 delete mode 100644 ui/src/app/connect/static-properties/static-group/static-group.component.html
 delete mode 100644 ui/src/app/connect/static-properties/static-group/static-group.component.ts
 delete mode 100644 ui/src/app/connect/static-properties/static-mapping-nary/static-mapping-nary.component.html
 delete mode 100644 ui/src/app/connect/static-properties/static-mapping-nary/static-mapping-nary.component.scss
 delete mode 100644 ui/src/app/connect/static-properties/static-mapping-nary/static-mapping-nary.component.ts
 delete mode 100644 ui/src/app/connect/static-properties/static-mapping-unary/static-mapping-unary.component.html
 delete mode 100644 ui/src/app/connect/static-properties/static-mapping-unary/static-mapping-unary.component.ts
 delete mode 100644 ui/src/app/connect/static-properties/static-mapping/static-mapping.ts
 delete mode 100644 ui/src/app/connect/static-properties/static-number-input/static-number-input.component.css
 delete mode 100644 ui/src/app/connect/static-properties/static-number-input/static-number-input.component.html
 delete mode 100644 ui/src/app/connect/static-properties/static-number-input/static-number-input.component.ts
 delete mode 100644 ui/src/app/connect/static-properties/static-one-of-input/static-one-of-input.component.css
 delete mode 100644 ui/src/app/connect/static-properties/static-one-of-input/static-one-of-input.component.html
 delete mode 100644 ui/src/app/connect/static-properties/static-one-of-input/static-one-of-input.component.ts
 delete mode 100644 ui/src/app/connect/static-properties/static-property-util.service.ts
 delete mode 100644 ui/src/app/connect/static-properties/static-property.component.css
 delete mode 100644 ui/src/app/connect/static-properties/static-property.component.html
 delete mode 100644 ui/src/app/connect/static-properties/static-property.component.ts
 delete mode 100644 ui/src/app/connect/static-properties/static-runtime-resolvable-any-input/static-runtime-resolvable-any-input.component.html
 delete mode 100644 ui/src/app/connect/static-properties/static-runtime-resolvable-any-input/static-runtime-resolvable-any-input.component.ts
 delete mode 100644 ui/src/app/connect/static-properties/static-runtime-resolvable-oneof-input/static-runtime-resolvable-oneof-input.component.html
 delete mode 100644 ui/src/app/connect/static-properties/static-runtime-resolvable-oneof-input/static-runtime-resolvable-oneof-input.component.ts
 delete mode 100644 ui/src/app/connect/static-properties/static-secret-input/static-secret-input.component.html
 delete mode 100644 ui/src/app/connect/static-properties/static-secret-input/static-secret-input.component.ts
 delete mode 100644 ui/src/app/connect/static-properties/static-text-input/static-text-input.component.css
 delete mode 100644 ui/src/app/connect/static-properties/static-text-input/static-text-input.component.html
 delete mode 100644 ui/src/app/connect/static-properties/static-text-input/static-text-input.component.ts
 delete mode 100644 ui/src/app/connect/static-properties/static-url-input/static-url-input.component.css
 delete mode 100644 ui/src/app/connect/static-properties/static-url-input/static-url-input.component.html
 delete mode 100644 ui/src/app/connect/static-properties/static-url-input/static-url-input.component.ts
 delete mode 100644 ui/src/app/connect/transformation-rule.service.spec.ts
 delete mode 100644 ui/src/app/connect/transformation-rule.service.ts
 delete mode 100644 ui/src/app/core-model/dashboard/DashboardWidget.ts
 delete mode 100644 ui/src/app/core-model/dashboard/DashboardWidgetSettings.ts
 delete mode 100644 ui/src/app/core-model/dashboard/VisualizablePipeline.ts
 delete mode 100644 ui/src/app/core-model/datalake/DataExplorerWidgetModel.ts
 delete mode 100644 ui/src/app/core-model/datalake/DataLakeMeasure.ts
 create mode 100644 ui/src/app/core-model/gen/streampipes-model-client.ts
 create mode 100644 ui/src/app/core-model/gen/streampipes-model.ts
 create mode 100644 ui/src/app/core-ui/dialog/base-dialog/base-dialog.component.ts
 create mode 100644 ui/src/app/core-ui/dialog/base-dialog/base-dialog.config.ts
 create mode 100644 ui/src/app/core-ui/dialog/base-dialog/base-dialog.model.ts
 create mode 100644 ui/src/app/core-ui/dialog/base-dialog/base-dialog.service.ts
 create mode 100644 ui/src/app/core-ui/dialog/base-dialog/dialog-ref.ts
 create mode 100644 ui/src/app/core-ui/dialog/confirm-dialog/confirm-dialog.component.html
 create mode 100644 ui/src/app/core-ui/dialog/confirm-dialog/confirm-dialog.component.scss
 create mode 100644 ui/src/app/core-ui/dialog/confirm-dialog/confirm-dialog.component.ts
 create mode 100644 ui/src/app/core-ui/dialog/panel-dialog/panel-dialog.component.html
 create mode 100644 ui/src/app/core-ui/dialog/panel-dialog/panel-dialog.component.scss
 create mode 100644 ui/src/app/core-ui/dialog/panel-dialog/panel-dialog.component.ts
 create mode 100644 ui/src/app/core-ui/dialog/panel-dialog/panel-dialog.config.ts
 create mode 100644 ui/src/app/core-ui/dialog/standard-dialog/standard-dialog.component.html
 create mode 100644 ui/src/app/core-ui/dialog/standard-dialog/standard-dialog.component.scss
 create mode 100644 ui/src/app/core-ui/dialog/standard-dialog/standard-dialog.component.ts
 create mode 100644 ui/src/app/core-ui/dialog/standard-dialog/standard-dialog.config.ts
 create mode 100644 ui/src/app/core-ui/static-properties/base/abstract-static-property.ts
 create mode 100644 ui/src/app/core-ui/static-properties/base/abstract-validated-static-property.ts
 create mode 100644 ui/src/app/core-ui/static-properties/filter/display-recommended.pipe.ts
 create mode 100644 ui/src/app/core-ui/static-properties/input.validator.ts
 rename ui/src/app/{connect => core-ui}/static-properties/static-alternatives/static-alternatives.component.css (100%)
 create mode 100644 ui/src/app/core-ui/static-properties/static-alternatives/static-alternatives.component.html
 create mode 100644 ui/src/app/core-ui/static-properties/static-alternatives/static-alternatives.component.ts
 rename ui/src/app/{connect => core-ui}/static-properties/static-any-input/static-any-input.component.css (100%)
 create mode 100644 ui/src/app/core-ui/static-properties/static-any-input/static-any-input.component.html
 create mode 100644 ui/src/app/core-ui/static-properties/static-any-input/static-any-input.component.ts
 create mode 100644 ui/src/app/core-ui/static-properties/static-code-input/static-code-input.component.html
 create mode 100644 ui/src/app/core-ui/static-properties/static-code-input/static-code-input.component.scss
 create mode 100644 ui/src/app/core-ui/static-properties/static-code-input/static-code-input.component.ts
 rename ui/src/app/{connect => core-ui}/static-properties/static-collection/static-collection.component.css (100%)
 create mode 100644 ui/src/app/core-ui/static-properties/static-collection/static-collection.component.html
 create mode 100644 ui/src/app/core-ui/static-properties/static-collection/static-collection.component.ts
 rename ui/src/app/{connect => core-ui}/static-properties/static-color-picker/static-color-picker.component.css (100%)
 create mode 100644 ui/src/app/core-ui/static-properties/static-color-picker/static-color-picker.component.html
 create mode 100644 ui/src/app/core-ui/static-properties/static-color-picker/static-color-picker.component.ts
 create mode 100644 ui/src/app/core-ui/static-properties/static-file-input/static-file-input.component.css
 create mode 100644 ui/src/app/core-ui/static-properties/static-file-input/static-file-input.component.html
 create mode 100644 ui/src/app/core-ui/static-properties/static-file-input/static-file-input.component.ts
 rename ui/src/app/{connect => core-ui}/static-properties/static-file-input/static-file-rest.service.ts (100%)
 create mode 100644 ui/src/app/core-ui/static-properties/static-free-input/static-free-input.component.html
 create mode 100644 ui/src/app/core-ui/static-properties/static-free-input/static-free-input.component.scss
 create mode 100644 ui/src/app/core-ui/static-properties/static-free-input/static-free-input.component.ts
 rename ui/src/app/{connect => core-ui}/static-properties/static-group/static-group.component.css (100%)
 create mode 100644 ui/src/app/core-ui/static-properties/static-group/static-group.component.html
 create mode 100644 ui/src/app/core-ui/static-properties/static-group/static-group.component.ts
 create mode 100644 ui/src/app/core-ui/static-properties/static-mapping-nary/static-mapping-nary.component.html
 create mode 100644 ui/src/app/core-ui/static-properties/static-mapping-nary/static-mapping-nary.component.scss
 create mode 100644 ui/src/app/core-ui/static-properties/static-mapping-nary/static-mapping-nary.component.ts
 rename ui/src/app/{connect => core-ui}/static-properties/static-mapping-unary/static-mapping-unary.component.css (100%)
 create mode 100644 ui/src/app/core-ui/static-properties/static-mapping-unary/static-mapping-unary.component.html
 create mode 100644 ui/src/app/core-ui/static-properties/static-mapping-unary/static-mapping-unary.component.ts
 create mode 100644 ui/src/app/core-ui/static-properties/static-mapping/static-mapping.ts
 create mode 100644 ui/src/app/core-ui/static-properties/static-one-of-input/static-one-of-input.component.css
 create mode 100644 ui/src/app/core-ui/static-properties/static-one-of-input/static-one-of-input.component.html
 create mode 100644 ui/src/app/core-ui/static-properties/static-one-of-input/static-one-of-input.component.ts
 create mode 100644 ui/src/app/core-ui/static-properties/static-property-util.service.ts
 create mode 100644 ui/src/app/core-ui/static-properties/static-property.component.css
 create mode 100644 ui/src/app/core-ui/static-properties/static-property.component.html
 create mode 100644 ui/src/app/core-ui/static-properties/static-property.component.ts
 rename ui/src/app/{connect => core-ui}/static-properties/static-runtime-resolvable-any-input/static-runtime-resolvable-any-input.component.css (100%)
 create mode 100644 ui/src/app/core-ui/static-properties/static-runtime-resolvable-any-input/static-runtime-resolvable-any-input.component.html
 create mode 100644 ui/src/app/core-ui/static-properties/static-runtime-resolvable-any-input/static-runtime-resolvable-any-input.component.ts
 create mode 100644 ui/src/app/core-ui/static-properties/static-runtime-resolvable-input/base-runtime-resolvable-input.ts
 create mode 100644 ui/src/app/core-ui/static-properties/static-runtime-resolvable-input/runtime-resolvable.service.ts
 rename ui/src/app/{connect => core-ui}/static-properties/static-runtime-resolvable-oneof-input/static-runtime-resolvable-oneof-input.component.css (100%)
 create mode 100644 ui/src/app/core-ui/static-properties/static-runtime-resolvable-oneof-input/static-runtime-resolvable-oneof-input.component.html
 create mode 100644 ui/src/app/core-ui/static-properties/static-runtime-resolvable-oneof-input/static-runtime-resolvable-oneof-input.component.ts
 rename ui/src/app/{connect => core-ui}/static-properties/static-secret-input/static-secret-input.component.css (100%)
 create mode 100644 ui/src/app/core-ui/static-properties/static-secret-input/static-secret-input.component.html
 create mode 100644 ui/src/app/core-ui/static-properties/static-secret-input/static-secret-input.component.ts
 delete mode 100644 ui/src/app/core/button/button.directive.ts
 create mode 100644 ui/src/app/core/components/base-navigation.component.ts
 create mode 100644 ui/src/app/core/components/feedback/feedback.component.html
 create mode 100644 ui/src/app/core/components/feedback/feedback.component.ts
 create mode 100644 ui/src/app/core/components/iconbar/iconbar.component.html
 create mode 100644 ui/src/app/core/components/iconbar/iconbar.component.ts
 create mode 100644 ui/src/app/core/components/streampipes/streampipes.component.html
 create mode 100644 ui/src/app/core/components/streampipes/streampipes.component.scss
 create mode 100644 ui/src/app/core/components/streampipes/streampipes.component.ts
 create mode 100644 ui/src/app/core/components/toolbar/toolbar.component.html
 create mode 100644 ui/src/app/core/components/toolbar/toolbar.component.scss
 create mode 100644 ui/src/app/core/components/toolbar/toolbar.component.ts
 delete mode 100644 ui/src/app/core/http-provider.config.ts
 delete mode 100644 ui/src/app/core/icon-provider.config.ts
 delete mode 100644 ui/src/app/core/md-theming-provider.config.ts
 delete mode 100644 ui/src/app/core/prism/nag-prism.directive.ts
 delete mode 100644 ui/src/app/core/root-scope-delegate.decorator.ts
 delete mode 100644 ui/src/app/core/working.state.config.ts
 delete mode 100644 ui/src/app/dashboard/components/widgets/pallet/pallet-config.ts
 delete mode 100644 ui/src/app/dashboard/components/widgets/pallet/pallet.component.css
 delete mode 100644 ui/src/app/dashboard/components/widgets/pallet/pallet.component.html
 delete mode 100644 ui/src/app/dashboard/components/widgets/pallet/pallet.component.ts
 delete mode 100644 ui/src/app/dashboard/components/widgets/pallet/pallet_functions.ts
 delete mode 100644 ui/src/app/data-explorer/components/grid/data-explorer-dashboard-grid.component.css
 create mode 100644 ui/src/app/data-explorer/components/grid/data-explorer-dashboard-grid.component.scss
 delete mode 100644 ui/src/app/data-explorer/components/overview/data-explorer-dashboard-overview.component.css
 create mode 100644 ui/src/app/data-explorer/components/overview/data-explorer-dashboard-overview.component.scss
 delete mode 100644 ui/src/app/data-explorer/components/time-selector/timeRangeSelector.component.css
 create mode 100644 ui/src/app/data-explorer/components/time-selector/timeRangeSelector.component.scss
 delete mode 100644 ui/src/app/data-explorer/components/widget/data-explorer-dashboard-widget.component.css
 create mode 100644 ui/src/app/data-explorer/components/widget/data-explorer-dashboard-widget.component.scss
 delete mode 100644 ui/src/app/data-explorer/components/widgets/base/base-ngx-charts-widget.ts
 delete mode 100644 ui/src/app/data-explorer/components/widgets/old-explorer-widget/datadownloadDialog/dataDownload.dialog.css
 delete mode 100644 ui/src/app/data-explorer/components/widgets/old-explorer-widget/datadownloadDialog/dataDownload.dialog.html
 delete mode 100644 ui/src/app/data-explorer/components/widgets/old-explorer-widget/datadownloadDialog/dataDownload.dialog.ts
 delete mode 100644 ui/src/app/data-explorer/components/widgets/old-explorer-widget/explorer-visualisations/base/baseVisualisation.component.ts
 delete mode 100644 ui/src/app/data-explorer/components/widgets/old-explorer-widget/explorer-visualisations/linechart/lineChart.component.css
 delete mode 100644 ui/src/app/data-explorer/components/widgets/old-explorer-widget/explorer-visualisations/linechart/lineChart.component.html
 delete mode 100644 ui/src/app/data-explorer/components/widgets/old-explorer-widget/explorer-visualisations/linechart/lineChart.component.ts
 delete mode 100644 ui/src/app/data-explorer/components/widgets/old-explorer-widget/explorer-visualisations/table/table.component.css
 delete mode 100644 ui/src/app/data-explorer/components/widgets/old-explorer-widget/explorer-visualisations/table/table.component.html
 delete mode 100644 ui/src/app/data-explorer/components/widgets/old-explorer-widget/explorer-visualisations/table/table.component.ts
 delete mode 100644 ui/src/app/data-explorer/components/widgets/old-explorer-widget/old-explorer.component.html
 delete mode 100644 ui/src/app/data-explorer/components/widgets/old-explorer-widget/old-explorer.component.ts
 delete mode 100644 ui/src/app/data-explorer/components/widgets/old-explorer-widget/old-explorer.css
 delete mode 100644 ui/src/app/data-explorer/components/widgets/table/table-widget.component.css
 create mode 100644 ui/src/app/data-explorer/components/widgets/table/table-widget.component.scss
 delete mode 100644 ui/src/app/editor/capitalize.filter.ts
 delete mode 100644 ui/src/app/editor/components/alternative/alternative.component.ts
 delete mode 100644 ui/src/app/editor/components/alternative/alternative.controller.ts
 delete mode 100644 ui/src/app/editor/components/alternative/alternative.tmpl.html
 delete mode 100644 ui/src/app/editor/components/any-remote/any-remote.component.ts
 delete mode 100644 ui/src/app/editor/components/any-remote/any-remote.controller.ts
 delete mode 100644 ui/src/app/editor/components/any-remote/any-remote.tmpl.html
 delete mode 100644 ui/src/app/editor/components/any/any.component.ts
 delete mode 100644 ui/src/app/editor/components/any/any.controller.ts
 delete mode 100644 ui/src/app/editor/components/any/any.tmpl.html
 delete mode 100644 ui/src/app/editor/components/code/code-editor.directive.ts
 delete mode 100644 ui/src/app/editor/components/code/code.component.ts
 delete mode 100644 ui/src/app/editor/components/code/code.controller.ts
 delete mode 100644 ui/src/app/editor/components/code/code.tmpl.html
 delete mode 100644 ui/src/app/editor/components/collection/collection.component.ts
 delete mode 100644 ui/src/app/editor/components/collection/collection.controller.ts
 delete mode 100644 ui/src/app/editor/components/collection/collection.tmpl.html
 delete mode 100644 ui/src/app/editor/components/customize/customize-dialog.component.ts
 delete mode 100644 ui/src/app/editor/components/customize/customize-dialog.controller.ts
 delete mode 100644 ui/src/app/editor/components/customize/customize-dialog.tmpl.html
 delete mode 100644 ui/src/app/editor/components/customoutput/customoutput.component.ts
 delete mode 100644 ui/src/app/editor/components/customoutput/customoutput.controller.ts
 delete mode 100644 ui/src/app/editor/components/customoutput/customoutput.tmpl.html
 delete mode 100644 ui/src/app/editor/components/customoutput/propertyselection/property-selection.component.ts
 delete mode 100644 ui/src/app/editor/components/customoutput/propertyselection/property-selection.controller.ts
 delete mode 100644 ui/src/app/editor/components/customoutput/propertyselection/property-selection.tmpl.html
 delete mode 100644 ui/src/app/editor/components/domainconcept/domainconcept.component.ts
 delete mode 100644 ui/src/app/editor/components/domainconcept/domainconcept.controller.ts
 delete mode 100644 ui/src/app/editor/components/domainconcept/domainconcept.tmpl.html
 delete mode 100644 ui/src/app/editor/components/draggable-icon.html
 delete mode 100644 ui/src/app/editor/components/fileupload/fileupload.component.ts
 delete mode 100644 ui/src/app/editor/components/fileupload/fileupload.controller.ts
 delete mode 100644 ui/src/app/editor/components/fileupload/fileupload.tmpl.html
 delete mode 100644 ui/src/app/editor/components/freetext/freetext.component.ts
 delete mode 100644 ui/src/app/editor/components/freetext/freetext.controller.ts
 delete mode 100644 ui/src/app/editor/components/freetext/freetext.tmpl.html
 delete mode 100644 ui/src/app/editor/components/group/group.component.ts
 delete mode 100644 ui/src/app/editor/components/group/group.controller.ts
 delete mode 100644 ui/src/app/editor/components/group/group.tmpl.html
 delete mode 100644 ui/src/app/editor/components/mappingnary/mappingnary.component.ts
 delete mode 100644 ui/src/app/editor/components/mappingnary/mappingnary.controller.ts
 delete mode 100644 ui/src/app/editor/components/mappingnary/mappingnary.tmpl.html
 delete mode 100644 ui/src/app/editor/components/mappingunary/mappingunary.component.ts
 delete mode 100644 ui/src/app/editor/components/mappingunary/mappingunary.controller.ts
 delete mode 100644 ui/src/app/editor/components/mappingunary/mappingunary.tmpl.html
 delete mode 100644 ui/src/app/editor/components/matchingproperty/matchingproperty.component.ts
 delete mode 100644 ui/src/app/editor/components/matchingproperty/matchingproperty.controller.ts
 delete mode 100644 ui/src/app/editor/components/matchingproperty/matchingproperty.tmpl.html
 delete mode 100644 ui/src/app/editor/components/multivalue/multiple-value-input.component.ts
 delete mode 100644 ui/src/app/editor/components/multivalue/multiple-value-input.controller.ts
 delete mode 100644 ui/src/app/editor/components/multivalue/multiple-value-input.tmpl.html
 delete mode 100644 ui/src/app/editor/components/oneof-remote/oneof-remote.component.ts
 delete mode 100644 ui/src/app/editor/components/oneof-remote/oneof-remote.controller.ts
 delete mode 100644 ui/src/app/editor/components/oneof-remote/oneof-remote.tmpl.html
 delete mode 100644 ui/src/app/editor/components/oneof/oneof.component.ts
 delete mode 100644 ui/src/app/editor/components/oneof/oneof.controller.ts
 delete mode 100644 ui/src/app/editor/components/oneof/oneof.tmpl.html
 create mode 100644 ui/src/app/editor/components/output-strategy/base/BaseOutputStrategy.ts
 create mode 100644 ui/src/app/editor/components/output-strategy/custom-output/custom-output-strategy.component.html
 rename ui/src/app/{connect/schema-editor/event-property-list/event-property-list.component.css => editor/components/output-strategy/custom-output/custom-output-strategy.component.scss} (100%)
 create mode 100644 ui/src/app/editor/components/output-strategy/custom-output/custom-output-strategy.component.ts
 create mode 100644 ui/src/app/editor/components/output-strategy/output-strategy.component.html
 create mode 100644 ui/src/app/editor/components/output-strategy/output-strategy.component.scss
 create mode 100644 ui/src/app/editor/components/output-strategy/output-strategy.component.ts
 create mode 100644 ui/src/app/editor/components/output-strategy/property-selection/property-selection.component.html
 create mode 100644 ui/src/app/editor/components/output-strategy/property-selection/property-selection.component.scss
 create mode 100644 ui/src/app/editor/components/output-strategy/property-selection/property-selection.component.ts
 create mode 100644 ui/src/app/editor/components/output-strategy/user-defined-output/user-defined-output.component.html
 rename ui/src/app/{connect/file-management/file-management.component.css => editor/components/output-strategy/user-defined-output/user-defined-output.component.scss} (100%)
 create mode 100644 ui/src/app/editor/components/output-strategy/user-defined-output/user-defined-output.component.ts
 create mode 100644 ui/src/app/editor/components/pipeline-assembly/pipeline-assembly.component.html
 create mode 100644 ui/src/app/editor/components/pipeline-assembly/pipeline-assembly.component.scss
 delete mode 100644 ui/src/app/editor/components/pipeline-assembly/pipeline-assembly.controller.ts
 delete mode 100644 ui/src/app/editor/components/pipeline-assembly/pipeline-assembly.tmpl.html
 create mode 100644 ui/src/app/editor/components/pipeline-element-documentation/pipeline-element-documentation.component.html
 copy ui/src/app/{core-ui/image/image.component.css => editor/components/pipeline-element-documentation/pipeline-element-documentation.component.scss} (100%)
 delete mode 100644 ui/src/app/editor/components/pipeline-element-documentation/pipeline-element-documentation.controller.ts
 delete mode 100644 ui/src/app/editor/components/pipeline-element-documentation/pipeline-element-documentation.tmpl.html
 create mode 100644 ui/src/app/editor/components/pipeline-element-icon-stand/pipeline-element-icon-stand.component.html
 create mode 100644 ui/src/app/editor/components/pipeline-element-icon-stand/pipeline-element-icon-stand.component.scss
 delete mode 100644 ui/src/app/editor/components/pipeline-element-icon-stand/pipeline-element-icon-stand.controller.ts
 delete mode 100644 ui/src/app/editor/components/pipeline-element-icon-stand/pipeline-element-icon-stand.tmpl.html
 copy ui/src/app/{data-explorer/components/widgets/utils/no-data/no-data-in-date-range.component.css => editor/components/pipeline-element-options/pipeline-element-options.component.css} (100%)
 create mode 100644 ui/src/app/editor/components/pipeline-element-options/pipeline-element-options.component.html
 delete mode 100644 ui/src/app/editor/components/pipeline-element-options/pipeline-element-options.controller.ts
 delete mode 100644 ui/src/app/editor/components/pipeline-element-options/pipeline-element-options.tmpl.html
 create mode 100644 ui/src/app/editor/components/pipeline-element-recommendation/pipeline-element-recommendation.component.html
 copy ui/src/app/{data-explorer/components/widgets/utils/no-data/no-data-in-date-range.component.css => editor/components/pipeline-element-recommendation/pipeline-element-recommendation.component.scss} (100%)
 delete mode 100644 ui/src/app/editor/components/pipeline-element-recommendation/pipeline-element-recommendation.controller.ts
 delete mode 100644 ui/src/app/editor/components/pipeline-element-recommendation/pipeline-element-recommendation.tmpl.html
 copy ui/src/app/{core-ui/image/image.component.css => editor/components/pipeline-element/pipeline-element.component.css} (100%)
 create mode 100644 ui/src/app/editor/components/pipeline-element/pipeline-element.component.html
 delete mode 100644 ui/src/app/editor/components/pipeline-element/pipeline-element.controller.ts
 delete mode 100644 ui/src/app/editor/components/pipeline-element/pipeline-element.tmpl.html
 copy ui/src/app/{core-ui/image/image.component.css => editor/components/pipeline/pipeline.component.css} (100%)
 create mode 100644 ui/src/app/editor/components/pipeline/pipeline.component.html
 delete mode 100644 ui/src/app/editor/components/pipeline/pipeline.controller.ts
 delete mode 100644 ui/src/app/editor/components/pipeline/pipeline.tmpl.html
 delete mode 100644 ui/src/app/editor/components/popup.html
 delete mode 100644 ui/src/app/editor/components/replaceoutput/replaceoutput.component.ts
 delete mode 100644 ui/src/app/editor/components/replaceoutput/replaceoutput.controller.ts
 delete mode 100644 ui/src/app/editor/components/replaceoutput/replaceoutput.tmpl.html
 delete mode 100644 ui/src/app/editor/components/secret/secret.component.ts
 delete mode 100644 ui/src/app/editor/components/secret/secret.controller.ts
 delete mode 100644 ui/src/app/editor/components/secret/secret.tmpl.html
 delete mode 100644 ui/src/app/editor/components/topic/topic-selection-dialog.component.ts
 delete mode 100644 ui/src/app/editor/components/topic/topic-selection-dialog.controller.ts
 delete mode 100644 ui/src/app/editor/components/topic/topic-selection-dialog.tmpl.html
 delete mode 100644 ui/src/app/editor/components/userdefinedoutput/user-defined-output.component.ts
 delete mode 100644 ui/src/app/editor/components/userdefinedoutput/user-defined-output.controller.ts
 delete mode 100644 ui/src/app/editor/components/userdefinedoutput/user-defined-output.tmpl.html
 create mode 100644 ui/src/app/editor/constants/editor.constants.ts
 create mode 100644 ui/src/app/editor/dialog/compatible-elements/compatible-elements.component.html
 create mode 100644 ui/src/app/editor/dialog/compatible-elements/compatible-elements.component.scss
 create mode 100644 ui/src/app/editor/dialog/compatible-elements/compatible-elements.component.ts
 delete mode 100644 ui/src/app/editor/dialog/customize-pipeline-element/customize.controller.ts
 delete mode 100644 ui/src/app/editor/dialog/customize-pipeline-element/customizeElementDialog.tmpl.html
 create mode 100644 ui/src/app/editor/dialog/customize/customize.component.html
 create mode 100644 ui/src/app/editor/dialog/customize/customize.component.scss
 create mode 100644 ui/src/app/editor/dialog/customize/customize.component.ts
 delete mode 100644 ui/src/app/editor/dialog/help/help-dialog.controller.ts
 delete mode 100644 ui/src/app/editor/dialog/help/help-dialog.tmpl.html
 create mode 100644 ui/src/app/editor/dialog/help/help.component.html
 create mode 100644 ui/src/app/editor/dialog/help/help.component.scss
 create mode 100644 ui/src/app/editor/dialog/help/help.component.ts
 create mode 100644 ui/src/app/editor/dialog/matching-error/matching-error.component.html
 create mode 100644 ui/src/app/editor/dialog/matching-error/matching-error.component.scss
 create mode 100644 ui/src/app/editor/dialog/matching-error/matching-error.component.ts
 delete mode 100644 ui/src/app/editor/dialog/matching-error/matching-error.controller.ts
 delete mode 100644 ui/src/app/editor/dialog/matching-error/matching-error.tmpl.html
 delete mode 100644 ui/src/app/editor/dialog/missing-elements-for-tutorial/missing-elements-for-tutorial-dialog.controller.ts
 delete mode 100644 ui/src/app/editor/dialog/missing-elements-for-tutorial/missing-elements-for-tutorial-dialog.tmpl.html
 create mode 100644 ui/src/app/editor/dialog/missing-elements-for-tutorial/missing-elements-for-tutorial.component.html
 create mode 100644 ui/src/app/editor/dialog/missing-elements-for-tutorial/missing-elements-for-tutorial.component.scss
 create mode 100644 ui/src/app/editor/dialog/missing-elements-for-tutorial/missing-elements-for-tutorial.component.ts
 delete mode 100644 ui/src/app/editor/dialog/possible-elements/possible-elements-dialog.controller.ts
 delete mode 100644 ui/src/app/editor/dialog/possible-elements/possible-elements-dialog.tmpl.html
 create mode 100644 ui/src/app/editor/dialog/save-pipeline/save-pipeline.component.html
 create mode 100644 ui/src/app/editor/dialog/save-pipeline/save-pipeline.component.scss
 create mode 100644 ui/src/app/editor/dialog/save-pipeline/save-pipeline.component.ts
 delete mode 100644 ui/src/app/editor/dialog/save-pipeline/save-pipeline.controller.ts
 delete mode 100644 ui/src/app/editor/dialog/save-pipeline/submitPipelineModal.tmpl.html
 delete mode 100644 ui/src/app/editor/dialog/topic/topic-selection-modal.controller.ts
 delete mode 100644 ui/src/app/editor/dialog/topic/topic-selection-modal.tmpl.html
 delete mode 100644 ui/src/app/editor/dialog/welcome-tour/welcome-tour-dialog.controller.ts
 delete mode 100644 ui/src/app/editor/dialog/welcome-tour/welcome-tour-dialog.tmpl.html
 create mode 100644 ui/src/app/editor/dialog/welcome-tour/welcome-tour.component.html
 create mode 100644 ui/src/app/editor/dialog/welcome-tour/welcome-tour.component.scss
 create mode 100644 ui/src/app/editor/dialog/welcome-tour/welcome-tour.component.ts
 create mode 100644 ui/src/app/editor/editor.component.html
 create mode 100644 ui/src/app/editor/editor.component.scss
 create mode 100644 ui/src/app/editor/editor.component.ts
 delete mode 100644 ui/src/app/editor/editor.controller.ts
 delete mode 100644 ui/src/app/editor/editor.html
 delete mode 100644 ui/src/app/editor/filter/display-recommended.filter.ts
 delete mode 100644 ui/src/app/editor/filter/element-name.filter.ts
 delete mode 100644 ui/src/app/editor/filter/select.filter.ts
 delete mode 100644 ui/src/app/editor/image-bind.directive.ts
 create mode 100644 ui/src/app/editor/model/editor.model.ts
 delete mode 100644 ui/src/app/editor/my-data-bind.directive.ts
 create mode 100644 ui/src/app/editor/services/editor.service.ts
 create mode 100644 ui/src/app/editor/services/jsplumb-bridge.service.ts
 create mode 100644 ui/src/app/editor/services/jsplumb-config.service.ts
 create mode 100644 ui/src/app/editor/services/jsplumb.service.ts
 create mode 100644 ui/src/app/editor/services/object-provider.service.ts
 create mode 100644 ui/src/app/editor/services/pipeline-editor.service.ts
 create mode 100644 ui/src/app/editor/services/pipeline-positioning.service.ts
 create mode 100644 ui/src/app/editor/utils/editor.utils.ts
 create mode 100644 ui/src/app/editor/utils/style-sanitizer.ts
 delete mode 100644 ui/src/app/editor/validator/text/custom-output-validator.directive.ts
 delete mode 100644 ui/src/app/editor/validator/text/text-validator.directive.ts
 create mode 100644 ui/src/app/files/components/file-overview/file-overview.component.html
 create mode 100644 ui/src/app/files/components/file-overview/file-overview.component.scss
 create mode 100644 ui/src/app/files/components/file-overview/file-overview.component.ts
 create mode 100644 ui/src/app/files/dialog/file-upload/file-upload-dialog.component.html
 create mode 100644 ui/src/app/files/dialog/file-upload/file-upload-dialog.component.scss
 create mode 100644 ui/src/app/files/dialog/file-upload/file-upload-dialog.component.ts
 create mode 100644 ui/src/app/files/files.component.html
 create mode 100644 ui/src/app/files/files.component.scss
 create mode 100644 ui/src/app/files/files.component.ts
 create mode 100644 ui/src/app/files/files.module.ts
 delete mode 100644 ui/src/app/home/home.component.css
 create mode 100644 ui/src/app/home/home.component.scss
 delete mode 100644 ui/src/app/info/versions/service/version-info.service.ts
 delete mode 100644 ui/src/app/layout/app.controller.ts
 delete mode 100644 ui/src/app/layout/components/feedback.component.ts
 delete mode 100644 ui/src/app/layout/components/feedback.controller.ts
 delete mode 100644 ui/src/app/layout/components/feedback.tmpl.html
 delete mode 100644 ui/src/app/layout/layout.module.ts
 create mode 100644 ui/src/app/login/components/login/login.component.html
 create mode 100644 ui/src/app/login/components/login/login.component.ts
 create mode 100644 ui/src/app/login/components/setup/setup.component.html
 create mode 100644 ui/src/app/login/components/setup/setup.component.scss
 create mode 100644 ui/src/app/login/components/setup/setup.component.ts
 create mode 100644 ui/src/app/login/components/startup/startup.component.html
 create mode 100644 ui/src/app/login/components/startup/startup.component.ts
 delete mode 100644 ui/src/app/login/login.controller.ts
 delete mode 100644 ui/src/app/login/register.controller.ts
 create mode 100644 ui/src/app/login/services/login.service.ts
 delete mode 100644 ui/src/app/login/setup.controller.ts
 delete mode 100644 ui/src/app/login/startup/startup.controller.ts
 delete mode 100644 ui/src/app/login/startup/startup.html
 delete mode 100644 ui/src/app/myelements/dialog/jsonldDialog.controller.ts
 delete mode 100644 ui/src/app/myelements/dialog/jsonldDialog.tmpl.html
 delete mode 100644 ui/src/app/myelements/my-elements.controller.ts
 delete mode 100644 ui/src/app/myelements/my-elements.module.ts
 delete mode 100644 ui/src/app/myelements/myelements.html
 create mode 100644 ui/src/app/pipeline-details/components/actions/pipeline-actions.component.html
 delete mode 100644 ui/src/app/pipeline-details/components/actions/pipeline-actions.controller.ts
 delete mode 100644 ui/src/app/pipeline-details/components/actions/pipeline-actions.tmpl.html
 create mode 100644 ui/src/app/pipeline-details/components/edit/quickedit.component.html
 delete mode 100644 ui/src/app/pipeline-details/components/edit/quickedit.controller.ts
 delete mode 100644 ui/src/app/pipeline-details/components/edit/quickedit.tmpl.html
 create mode 100644 ui/src/app/pipeline-details/components/elements/pipeline-elements-row.component.html
 delete mode 100644 ui/src/app/pipeline-details/components/elements/pipeline-elements-row.controller.ts
 delete mode 100644 ui/src/app/pipeline-details/components/elements/pipeline-elements-row.tmpl.html
 create mode 100644 ui/src/app/pipeline-details/components/elements/pipeline-elements.component.html
 delete mode 100644 ui/src/app/pipeline-details/components/elements/pipeline-elements.controller.ts
 delete mode 100644 ui/src/app/pipeline-details/components/elements/pipeline-elements.tmpl.html
 create mode 100644 ui/src/app/pipeline-details/components/preview/pipeline-preview.component.html
 rename ui/src/app/{connect/data-marketplace/adapter-upload/adapter-upload-dialog.component.css => pipeline-details/components/preview/pipeline-preview.component.scss} (100%)
 delete mode 100644 ui/src/app/pipeline-details/components/preview/pipeline-preview.controller.ts
 delete mode 100644 ui/src/app/pipeline-details/components/preview/pipeline-preview.tmpl.html
 create mode 100644 ui/src/app/pipeline-details/components/status/pipeline-status.component.html
 delete mode 100644 ui/src/app/pipeline-details/components/status/pipeline-status.controller.ts
 delete mode 100644 ui/src/app/pipeline-details/components/status/pipeline-status.tmpl.html
 create mode 100644 ui/src/app/pipeline-details/pipeline-details.component.html
 create mode 100644 ui/src/app/pipeline-details/pipeline-details.component.scss
 create mode 100644 ui/src/app/pipeline-details/pipeline-details.component.ts
 delete mode 100644 ui/src/app/pipeline-details/pipeline-details.controller.ts
 delete mode 100644 ui/src/app/pipeline-details/pipeline-details.html
 delete mode 100644 ui/src/app/pipelines/components/pipeline-details/pipeline-details.component.ts
 delete mode 100644 ui/src/app/pipelines/components/pipeline-details/pipeline-details.controller.ts
 delete mode 100644 ui/src/app/pipelines/components/pipeline-details/pipeline-details.tmpl.html
 create mode 100644 ui/src/app/pipelines/components/pipeline-overview/pipeline-overview.component.html
 create mode 100644 ui/src/app/pipelines/components/pipeline-overview/pipeline-overview.component.scss
 create mode 100644 ui/src/app/pipelines/components/pipeline-overview/pipeline-overview.component.ts
 delete mode 100644 ui/src/app/pipelines/dialog/delete-pipeline-dialog.controller.ts
 delete mode 100644 ui/src/app/pipelines/dialog/delete-pipeline-dialog.tmpl.html
 create mode 100644 ui/src/app/pipelines/dialog/delete-pipeline/delete-pipeline-dialog.component.html
 create mode 100644 ui/src/app/pipelines/dialog/delete-pipeline/delete-pipeline-dialog.component.scss
 create mode 100644 ui/src/app/pipelines/dialog/delete-pipeline/delete-pipeline-dialog.component.ts
 delete mode 100644 ui/src/app/pipelines/dialog/import-pipeline-dialog.controller.ts
 delete mode 100644 ui/src/app/pipelines/dialog/import-pipeline-dialog.tmpl.html
 create mode 100644 ui/src/app/pipelines/dialog/import-pipeline/import-pipeline-dialog.component.html
 create mode 100644 ui/src/app/pipelines/dialog/import-pipeline/import-pipeline-dialog.component.scss
 create mode 100644 ui/src/app/pipelines/dialog/import-pipeline/import-pipeline-dialog.component.ts
 delete mode 100644 ui/src/app/pipelines/dialog/pipeline-categories-dialog.controller.ts
 delete mode 100644 ui/src/app/pipelines/dialog/pipeline-categories-dialog.tmpl.html
 create mode 100644 ui/src/app/pipelines/dialog/pipeline-categories/pipeline-categories-dialog.component.html
 create mode 100644 ui/src/app/pipelines/dialog/pipeline-categories/pipeline-categories-dialog.component.scss
 create mode 100644 ui/src/app/pipelines/dialog/pipeline-categories/pipeline-categories-dialog.component.ts
 delete mode 100644 ui/src/app/pipelines/dialog/pipeline-status-dialog.controller.ts
 delete mode 100644 ui/src/app/pipelines/dialog/pipeline-status-dialog.tmpl.html
 create mode 100644 ui/src/app/pipelines/dialog/pipeline-status/pipeline-status-dialog.component.html
 create mode 100644 ui/src/app/pipelines/dialog/pipeline-status/pipeline-status-dialog.component.scss
 create mode 100644 ui/src/app/pipelines/dialog/pipeline-status/pipeline-status-dialog.component.ts
 delete mode 100644 ui/src/app/pipelines/dialog/start-all-pipelines-dialog.controller.ts
 delete mode 100644 ui/src/app/pipelines/dialog/start-all-pipelines-dialog.tmpl.html
 create mode 100644 ui/src/app/pipelines/dialog/start-all-pipelines/start-all-pipelines-dialog.component.html
 create mode 100644 ui/src/app/pipelines/dialog/start-all-pipelines/start-all-pipelines-dialog.component.scss
 create mode 100644 ui/src/app/pipelines/dialog/start-all-pipelines/start-all-pipelines-dialog.component.ts
 create mode 100644 ui/src/app/pipelines/pipelines.component.html
 create mode 100644 ui/src/app/pipelines/pipelines.component.scss
 create mode 100644 ui/src/app/pipelines/pipelines.component.ts
 delete mode 100644 ui/src/app/pipelines/pipelines.controller.ts
 delete mode 100644 ui/src/app/pipelines/pipelines.html
 create mode 100644 ui/src/app/platform-services/apis/commons.service.ts
 create mode 100644 ui/src/app/platform-services/apis/files.service.ts
 create mode 100644 ui/src/app/platform-services/apis/pipeline-element-endpoint.service.ts
 create mode 100644 ui/src/app/platform-services/apis/pipeline-element.service.ts
 create mode 100644 ui/src/app/platform-services/apis/pipeline.service.ts
 create mode 100644 ui/src/app/platform-services/contants/platform-services.constants.ts
 delete mode 100644 ui/src/app/platform-services/tsonld-serializer.service.ts
 delete mode 100644 ui/src/app/platform-services/tsonld/Float.ts
 delete mode 100644 ui/src/app/platform-services/tsonld/RdfId.js
 delete mode 100644 ui/src/app/platform-services/tsonld/RdfId.ts
 delete mode 100644 ui/src/app/platform-services/tsonld/RdfsClass.js
 delete mode 100644 ui/src/app/platform-services/tsonld/RdfsClass.ts
 delete mode 100644 ui/src/app/platform-services/tsonld/RdfsProperty.js
 delete mode 100644 ui/src/app/platform-services/tsonld/RdfsProperty.ts
 delete mode 100644 ui/src/app/platform-services/tsonld/index.ts
 delete mode 100644 ui/src/app/platform-services/tsonld/model/Person.js
 delete mode 100644 ui/src/app/platform-services/tsonld/model/Person.ts
 delete mode 100644 ui/src/app/platform-services/tsonld/tsonld.js
 delete mode 100644 ui/src/app/platform-services/tsonld/tsonld.ts
 delete mode 100644 ui/src/app/services/dialog-builder.service.ts
 delete mode 100644 ui/src/app/services/domain-properties.service.ts
 delete mode 100644 ui/src/app/services/jsplumb-bridge.service.ts
 delete mode 100644 ui/src/app/services/jsplumb-config.service.ts
 delete mode 100644 ui/src/app/services/jsplumb.service.ts
 delete mode 100644 ui/src/app/services/object-provider.service.ts
 delete mode 100644 ui/src/app/services/pipeline-editor.service.ts
 delete mode 100644 ui/src/app/services/pipeline-positioning.service.ts
 delete mode 100644 ui/src/app/services/transition.service.ts
 delete mode 100644 ui/src/assets/templates/iconbar.html
 delete mode 100644 ui/src/assets/templates/login.html
 delete mode 100644 ui/src/assets/templates/navbar.html
 delete mode 100644 ui/src/assets/templates/register.html
 delete mode 100644 ui/src/assets/templates/setup.html
 delete mode 100644 ui/src/assets/templates/streampipes.html
 delete mode 100644 ui/src/assets/templates/tutorial.html
 create mode 100644 ui/src/environments/environment.prod.ts
 create mode 100644 ui/src/environments/environment.ts
 create mode 100644 ui/src/scss/sp/forms.scss
 create mode 100644 ui/src/scss/sp/progress-bar.scss
 create mode 100644 ui/src/scss/sp/sp-dialog.scss
 create mode 100644 ui/src/scss/sp/sp-theme.scss
 create mode 100644 ui/src/scss/sp/widgets.scss
 create mode 100644 ui/tsconfig.base.json


[incubator-streampipes] 03/04: update branch with dev changes

Posted by wi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 1f5959ffca8aa3c174d47170e9994e8a3c2b0097
Author: Patrick Wiener <wi...@fzi.de>
AuthorDate: Tue Sep 29 11:08:48 2020 +0100

    update branch with dev changes
---
 pom.xml                                            |   1 -
 streampipes-app-file-export/pom.xml                |  79 -----
 .../app/file/export/ElasticsearchAppData.java      |  83 ------
 .../app/file/export/ElasticsearchConfig.java       |  60 ----
 .../app/file/export/api/IElasticsearch.java        |  36 ---
 .../application/AppFileExportApplication.java      |  30 --
 .../app/file/export/converter/JsonConverter.java   |  65 -----
 .../app/file/export/impl/Elasticsearch.java        | 320 ---------------------
 .../app/file/export/model/IndexInfo.java           |  45 ---
 .../org/apache/streampipes/model/node/Node.java    |   3 +
 .../streampipes/model/node/NodeBrokerInfo.java     |   3 +
 .../apache/streampipes/model/node/NodeInfo.java    |   3 +
 .../streampipes/model/node/NodeMetadata.java       |   3 +
 .../streampipes/model/node/NodeResources.java      |   2 +
 .../model/node/resources/hardware/CPU.java         |   3 +
 .../model/node/resources/hardware/DISK.java        |   3 +
 .../model/node/resources/hardware/GPU.java         |   3 +
 .../node/resources/hardware/HardwareResource.java  |   2 +
 .../model/node/resources/hardware/MEM.java         |   3 +
 .../AccessibleSensorActuatorResource.java          |   2 +
 .../model/node/resources/software/Cuda.java        |   3 +
 .../model/node/resources/software/Docker.java      |   3 +
 .../node/resources/software/SoftwareResource.java  |   3 +
 .../development/env                                |   2 +-
 .../app/configuration/configuration.component.html |   4 +-
 .../configuration/shared/configuration.service.ts  |   9 +-
 .../app/core-model/gen/streampipes-model-client.ts |  18 ++
 ui/src/app/core-model/gen/streampipes-model.ts     |  18 ++
 .../save-pipeline/save-pipeline.component.html     |  69 +++--
 .../save-pipeline/save-pipeline.component.ts       |  29 +-
 .../save-pipeline/save-pipeline.controller.ts      | 218 --------------
 .../save-pipeline/submitPipelineModal.tmpl.html    | 115 --------
 32 files changed, 145 insertions(+), 1095 deletions(-)

diff --git a/pom.xml b/pom.xml
index 27a20dd..a52be90 100644
--- a/pom.xml
+++ b/pom.xml
@@ -843,7 +843,6 @@
         <module>archetypes/streampipes-archetype-pe-processors-jvm</module>
         <module>archetypes/streampipes-archetype-pe-sinks-flink</module>
         <module>archetypes/streampipes-archetype-pe-processors-flink</module>
-        <module>streampipes-app-file-export</module>
         <module>streampipes-backend</module>
         <module>streampipes-code-generation</module>
         <module>streampipes-commons</module>
diff --git a/streampipes-app-file-export/pom.xml b/streampipes-app-file-export/pom.xml
deleted file mode 100644
index 211640b..0000000
--- a/streampipes-app-file-export/pom.xml
+++ /dev/null
@@ -1,79 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one or more
-  ~ contributor license agreements.  See the NOTICE file distributed with
-  ~ this work for additional information regarding copyright ownership.
-  ~ The ASF licenses this file to You under the Apache License, Version 2.0
-  ~ (the "License"); you may not use this file except in compliance with
-  ~ the License.  You may obtain a copy of the License at
-  ~
-  ~    http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License.
-  ~
-  -->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <artifactId>streampipes-parent</artifactId>
-        <groupId>org.apache.streampipes</groupId>
-        <version>0.68.0-SNAPSHOT</version>
-    </parent>
-
-    <name>StreamPipes App File Export</name>
-    <artifactId>streampipes-app-file-export</artifactId>
-    <packaging>jar</packaging>
-
-    <dependencies>
-        <!-- StreamPipes dependencies -->
-        <dependency>
-            <groupId>org.apache.streampipes</groupId>
-            <artifactId>streampipes-storage-couchdb</artifactId>
-            <version>0.68.0-SNAPSHOT</version>
-        </dependency>
-
-        <!-- External dependencies -->
-        <dependency>
-            <groupId>commons-logging</groupId>
-            <artifactId>commons-logging</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>javax.ws.rs</groupId>
-            <artifactId>javax.ws.rs-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.glassfish.jersey.containers</groupId>
-            <artifactId>jersey-container-servlet</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.httpcomponents</groupId>
-            <artifactId>fluent-hc</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.httpcomponents</groupId>
-            <artifactId>httpcore</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.elasticsearch.client</groupId>
-            <artifactId>elasticsearch-rest-high-level-client</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.lightcouch</groupId>
-            <artifactId>lightcouch</artifactId>
-        </dependency>
-
-        <!-- dependency convergence -->
-        <dependency>
-            <groupId>org.yaml</groupId>
-            <artifactId>snakeyaml</artifactId>
-        </dependency>
-
-        <!-- Test dependencies -->
-
-    </dependencies>
-</project>
\ No newline at end of file
diff --git a/streampipes-app-file-export/src/main/java/org/apache/streampipes/app/file/export/ElasticsearchAppData.java b/streampipes-app-file-export/src/main/java/org/apache/streampipes/app/file/export/ElasticsearchAppData.java
deleted file mode 100644
index 794f50b..0000000
--- a/streampipes-app-file-export/src/main/java/org/apache/streampipes/app/file/export/ElasticsearchAppData.java
+++ /dev/null
@@ -1,83 +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.app.file.export;
-
-public class ElasticsearchAppData {
-
-    private String index;
-
-    private long timestampFrom;
-
-    private long timestampTo;
-
-    private String output;
-
-    private boolean allData;
-
-    public ElasticsearchAppData() {
-    }
-
-    public ElasticsearchAppData(String index, long timestampFrom, long timeStampTo, String output, boolean allData) {
-        this.index = index;
-        this.timestampFrom = timestampFrom;
-        this.timestampTo = timeStampTo;
-        this.output = output;
-        this.allData = allData;
-    }
-
-    public String getIndex() {
-        return index;
-    }
-
-    public void setIndex(String index) {
-        this.index = index;
-    }
-
-    public long getTimestampFrom() {
-        return timestampFrom;
-    }
-
-    public void setTimestampFrom(long timestampFrom) {
-        this.timestampFrom = timestampFrom;
-    }
-
-    public long getTimestampTo() {
-        return timestampTo;
-    }
-
-    public void setTimeStampTo(long timestampTo) {
-        this.timestampTo = timestampTo;
-    }
-
-    public String getOutput() {
-        return output;
-    }
-
-    public void setOutput(String output) {
-        this.output = output;
-    }
-
-    public boolean isAllData() {
-        return allData;
-    }
-
-    public void setAllData(boolean allData) {
-        this.allData = allData;
-    }
-}
diff --git a/streampipes-app-file-export/src/main/java/org/apache/streampipes/app/file/export/ElasticsearchConfig.java b/streampipes-app-file-export/src/main/java/org/apache/streampipes/app/file/export/ElasticsearchConfig.java
deleted file mode 100644
index 0460e18..0000000
--- a/streampipes-app-file-export/src/main/java/org/apache/streampipes/app/file/export/ElasticsearchConfig.java
+++ /dev/null
@@ -1,60 +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.app.file.export;
-
-import org.apache.streampipes.config.SpConfig;
-
-public enum ElasticsearchConfig {
-    INSTANCE;
-
-    private SpConfig config;
-    private final static String HOST = "host";
-    private final static String PORT = "port";
-    private final static String PROTOCOL = "protocol";
-    private final static String DATA_LOCATION = "data_location";
-
-    ElasticsearchConfig() {
-        config = SpConfig.getSpConfig("storage/elasticsearch");
-
-        config.register(HOST, "elasticsearch", "Hostname for the elasticsearch service");
-        config.register(PORT, 9200, "Port for the elasticsearch service");
-        config.register(PROTOCOL, "http", "Protocol the elasticsearch service");
-        config.register(DATA_LOCATION,"/home/user/", "Folder that stores all the created data blobs");
-    }
-
-    public String getElasticsearchHost() {
-        return config.getString(HOST);
-    }
-
-    public Integer getElasticsearchPort() {
-        return config.getInteger(PORT);
-    }
-
-    public String getElasticsearchURL() {
-        return getElasticsearchProtocol()+ "://" + getElasticsearchHost() + ":" + getElasticsearchPort();
-    }
-
-    public String getElasticsearchProtocol() {
-        return config.getString(PROTOCOL);
-    }
-
-    public String getDataLocation() {
-        return config.getString(DATA_LOCATION);
-    }
-}
diff --git a/streampipes-app-file-export/src/main/java/org/apache/streampipes/app/file/export/api/IElasticsearch.java b/streampipes-app-file-export/src/main/java/org/apache/streampipes/app/file/export/api/IElasticsearch.java
deleted file mode 100644
index c61f670..0000000
--- a/streampipes-app-file-export/src/main/java/org/apache/streampipes/app/file/export/api/IElasticsearch.java
+++ /dev/null
@@ -1,36 +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.app.file.export.api;
-
-import org.apache.streampipes.app.file.export.ElasticsearchAppData;
-
-import javax.ws.rs.core.Response;
-
-public interface IElasticsearch {
-
-    Response createFiles(ElasticsearchAppData data);
-
-    Response getFile(String fileName);
-
-    Response deleteFile(String fileName);
-
-    Response getEndpoints();
-
-
-}
diff --git a/streampipes-app-file-export/src/main/java/org/apache/streampipes/app/file/export/application/AppFileExportApplication.java b/streampipes-app-file-export/src/main/java/org/apache/streampipes/app/file/export/application/AppFileExportApplication.java
deleted file mode 100644
index 3168892..0000000
--- a/streampipes-app-file-export/src/main/java/org/apache/streampipes/app/file/export/application/AppFileExportApplication.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.streampipes.app.file.export.application;
-
-import org.glassfish.jersey.server.ResourceConfig;
-import org.apache.streampipes.app.file.export.impl.Elasticsearch;
-
-
-public class AppFileExportApplication extends ResourceConfig {
-
-  public AppFileExportApplication() {
-    register(Elasticsearch.class);
-  }
-}
diff --git a/streampipes-app-file-export/src/main/java/org/apache/streampipes/app/file/export/converter/JsonConverter.java b/streampipes-app-file-export/src/main/java/org/apache/streampipes/app/file/export/converter/JsonConverter.java
deleted file mode 100644
index 5909d42..0000000
--- a/streampipes-app-file-export/src/main/java/org/apache/streampipes/app/file/export/converter/JsonConverter.java
+++ /dev/null
@@ -1,65 +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.app.file.export.converter;
-
-import com.google.gson.JsonElement;
-import com.google.gson.JsonObject;
-import com.google.gson.JsonParser;
-
-import java.util.Map;
-import java.util.Set;
-import java.util.StringJoiner;
-
-public class JsonConverter {
-
-  private JsonObject elasticJsonRepresentation;
-  private JsonParser jsonParser;
-
-  public JsonConverter() {
-    this.jsonParser = new JsonParser();
-  }
-
-  public String getCsvHeader(String elasticJsonRepresentation) {
-    JsonObject inContent = jsonParser.parse(elasticJsonRepresentation).getAsJsonObject();
-
-    Set<Map.Entry<String, JsonElement>> elements = inContent.entrySet();
-    StringJoiner sj = new StringJoiner(";");
-
-    for (Map.Entry<String, JsonElement> entry : elements) {
-      sj.add(entry.getKey().toString());
-    }
-
-    return sj.toString() + "\n";
-
-  }
-
-  public String convertToCsv(String elasticJsonRepresentation) {
-    JsonObject inContent = jsonParser.parse(elasticJsonRepresentation).getAsJsonObject();
-
-    Set<Map.Entry<String, JsonElement>> elements = inContent.entrySet();
-    StringJoiner sj = new StringJoiner(";");
-
-    for (Map.Entry<String, JsonElement> entry : elements) {
-      sj.add(entry.getValue().toString());
-    }
-
-    return sj.toString() + "\n";
-
-  }
-
-}
diff --git a/streampipes-app-file-export/src/main/java/org/apache/streampipes/app/file/export/impl/Elasticsearch.java b/streampipes-app-file-export/src/main/java/org/apache/streampipes/app/file/export/impl/Elasticsearch.java
deleted file mode 100644
index c3fb684..0000000
--- a/streampipes-app-file-export/src/main/java/org/apache/streampipes/app/file/export/impl/Elasticsearch.java
+++ /dev/null
@@ -1,320 +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.app.file.export.impl;
-
-import com.google.gson.Gson;
-import com.google.gson.JsonArray;
-import com.google.gson.JsonElement;
-import com.google.gson.JsonObject;
-import com.google.gson.JsonParser;
-import org.apache.http.HttpHost;
-import org.apache.http.client.config.RequestConfig;
-import org.apache.http.client.fluent.Request;
-import org.elasticsearch.action.search.ClearScrollRequest;
-import org.elasticsearch.action.search.ClearScrollResponse;
-import org.elasticsearch.action.search.SearchRequest;
-import org.elasticsearch.action.search.SearchResponse;
-import org.elasticsearch.action.search.SearchScrollRequest;
-import org.elasticsearch.client.RequestOptions;
-import org.elasticsearch.client.RestClient;
-import org.elasticsearch.client.RestClientBuilder;
-import org.elasticsearch.client.RestHighLevelClient;
-import org.elasticsearch.common.unit.TimeValue;
-import org.elasticsearch.index.query.QueryBuilders;
-import org.elasticsearch.search.Scroll;
-import org.elasticsearch.search.SearchHit;
-import org.elasticsearch.search.builder.SearchSourceBuilder;
-import org.lightcouch.CouchDbClient;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.apache.streampipes.app.file.export.ElasticsearchAppData;
-import org.apache.streampipes.app.file.export.ElasticsearchConfig;
-import org.apache.streampipes.app.file.export.api.IElasticsearch;
-import org.apache.streampipes.app.file.export.converter.JsonConverter;
-import org.apache.streampipes.app.file.export.model.IndexInfo;
-import org.apache.streampipes.storage.couchdb.utils.Utils;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-
-@Path("/v1/elasticsearch")
-public class Elasticsearch implements IElasticsearch {
-
-  private static String mainFilePath = ElasticsearchConfig.INSTANCE.getDataLocation();
-  private static final List<String> excludedIndices = Collections.singletonList(".kibana");
-
-  Logger LOG = LoggerFactory.getLogger(Elasticsearch.class);
-
-  @POST
-  @Produces(MediaType.APPLICATION_JSON)
-  @Consumes(MediaType.APPLICATION_JSON)
-  @Path("/file")
-  @Override
-  public Response createFiles(ElasticsearchAppData data) {
-    String index = data.getIndex();
-    long timestampFrom = data.getTimestampFrom();
-    long timeStampTo = data.getTimestampTo();
-    String output = data.getOutput();
-    boolean allData = data.isAllData();
-
-    try {
-      RestHighLevelClient client = getRestHighLevelClient();
-
-      final Scroll scroll = new Scroll(TimeValue.timeValueMinutes(1L));
-      SearchRequest searchRequest = new SearchRequest(index);
-      searchRequest.scroll(scroll);
-      SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
-
-      if (!allData) {
-        searchSourceBuilder.query(QueryBuilders.rangeQuery("timestamp").from(timestampFrom).to(timeStampTo));
-      }
-
-      searchRequest.source(searchSourceBuilder);
-      SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
-      String scrollId = searchResponse.getScrollId();
-      SearchHit[] searchHits = searchResponse.getHits().getHits();
-
-      //Time created in milli sec, index, from, to
-      long timestamp = System.currentTimeMillis();
-      String fileName = System.currentTimeMillis() + "-" + index + "-" + timestampFrom + "-" + timeStampTo + "." + output;
-      String filePath = mainFilePath + fileName;
-      FileOutputStream fileStream = this.getFileStream(filePath);
-
-      if(("csv").equals(output)) {
-       processCSV(client, fileStream, scrollId, scroll, searchHits);
-      } else {
-        processJSON(client, fileStream, scrollId, scroll, searchHits);
-      }
-
-      fileStream.close();
-
-      CouchDbClient couchDbClient = getCouchDbClient();
-      Map<String, Object> map = new HashMap<>();
-      map.put("_id", fileName);
-      map.put("fileName", fileName);
-      map.put("filePath", filePath);
-      map.put("createAt", timestamp);
-      map.put("from", timestampFrom);
-      map.put("to", timeStampTo);
-      couchDbClient.save(map);
-
-      LOG.info("Created file: " + fileName);
-
-      return Response.ok().build();
-
-    } catch (IOException e) {
-      e.printStackTrace();
-      LOG.error(e.getMessage());
-      return Response.status(500).entity(e).build();
-    }
-  }
-
-  @GET
-  @Produces(MediaType.APPLICATION_JSON)
-  @Path("/file/{fileName}")
-  public Response getFile(@PathParam("fileName") String fileName) {
-    File file = new File(mainFilePath + fileName);
-    if (file.exists()) {
-      LOG.info("Downloaded file: " + fileName);
-      return Response.ok(file, MediaType.APPLICATION_OCTET_STREAM)
-              .header("Content-Disposition", "attachment; filename=\"" + fileName + "\"")
-              .build();
-    } else {
-      LOG.info("Download - File not found");
-      return Response.status(404).entity("File not found").build();
-    }
-  }
-
-  @GET
-  @Produces(MediaType.APPLICATION_JSON)
-  @Path("/indices")
-  public Response getIndices() {
-    String url = ElasticsearchConfig.INSTANCE.getElasticsearchURL() + "/_cat/indices?v";
-    try {
-      JsonElement jsonResponse = get(url);
-
-      JsonArray response = jsonResponse.getAsJsonArray();
-      List<IndexInfo> availableIndices = new ArrayList<>();
-      for(int i = 0; i < response.size(); i++) {
-       JsonObject object = response.get(i).getAsJsonObject();
-       String index = object.get("index").getAsString();
-       if (!shouldExclude(index)) {
-         Integer documentCount = Integer.parseInt(object.get("docs.count").getAsString());
-          availableIndices.add(new IndexInfo(index, documentCount));
-       }
-      }
-      return Response.ok(availableIndices).build();
-    } catch (IOException e) {
-      e.printStackTrace();
-      return Response.serverError().build();
-    }
-  }
-
-  private boolean shouldExclude(String index) {
-    return excludedIndices.stream().anyMatch(i -> i.equals(index));
-  }
-
-  @DELETE
-  @Path("/file/{fileName}")
-  @Override
-  public Response deleteFile(@PathParam("fileName") String fileName) {
-    CouchDbClient couchDbClient = getCouchDbClient();
-    JsonObject found = couchDbClient.find(JsonObject.class, fileName);
-    couchDbClient.remove(found.get("_id").getAsString(), found.get("_rev").getAsString());
-    File file = new File(mainFilePath + fileName);
-    file.delete();
-    LOG.info("Deleted: " + fileName);
-
-    return Response.ok().build();
-  }
-
-  @GET
-  @Path("/files")
-  @Override
-  public Response getEndpoints() {
-    CouchDbClient couchDbClient = getCouchDbClient();
-    List<JsonObject> endpoints = couchDbClient.view("_all_docs").includeDocs(true).query(JsonObject.class);
-    String json = new Gson().toJson(endpoints);
-
-    return Response.ok(json).build();
-  }
-
-  private CouchDbClient getCouchDbClient() {
-    return Utils.getCouchDbElasticsearchFilesEndppointClient();
-  }
-
-  private FileOutputStream getFileStream(String filePath) throws IOException {
-    File file = new File(filePath);
-    file.getParentFile().mkdirs();
-    return new FileOutputStream(filePath);
-  }
-
-  private JsonElement get(String url) throws IOException {
-    String jsonResponse = Request.Get(url)
-            .addHeader("accept", "application/json")
-            .addHeader("Content-Type", "application/json")
-            .execute()
-            .returnContent().asString();
-    return new JsonParser().parse(jsonResponse);
-  }
-
-  private RestHighLevelClient getRestHighLevelClient() {
-    String host = ElasticsearchConfig.INSTANCE.getElasticsearchHost();
-    int port = ElasticsearchConfig.INSTANCE.getElasticsearchPort();
-
-    return new RestHighLevelClient(
-            RestClient.builder(
-                    new HttpHost(host, port, "http"))
-                      .setRequestConfigCallback(
-                              new RestClientBuilder.RequestConfigCallback() {
-                                @Override
-                                public RequestConfig.Builder customizeRequestConfig(
-                                        RequestConfig.Builder requestConfigBuilder) {
-                                  return requestConfigBuilder
-                                          .setConnectTimeout(5000)
-                                          .setSocketTimeout(60000);
-                                }
-                              })
-    );
-
-  }
-
-  private void processJSON(RestHighLevelClient client, FileOutputStream fileStream, String scrollId,  Scroll scroll,  SearchHit[] searchHits) throws IOException {
-      fileStream.write("[".getBytes());
-      boolean isFirstElement = true;
-      for (SearchHit hit : searchHits) {
-        if(!isFirstElement)
-          fileStream.write(",".getBytes());
-        fileStream.write(hit.getSourceAsString().getBytes());
-        isFirstElement = false;
-      }
-
-    while (searchHits != null && searchHits.length > 0) {
-
-      SearchScrollRequest scrollRequest = new SearchScrollRequest(scrollId);
-      scrollRequest.scroll(scroll);
-      SearchResponse searchResponse = client.scroll(scrollRequest, RequestOptions.DEFAULT);
-      scrollId = searchResponse.getScrollId();
-      searchHits = searchResponse.getHits().getHits();
-      for (SearchHit hit : searchHits) {
-        fileStream.write(",".getBytes());
-        fileStream.write(hit.getSourceAsString().getBytes());
-      }
-    }
-    fileStream.write("]".getBytes());
-
-    ClearScrollRequest clearScrollRequest = new ClearScrollRequest();
-    clearScrollRequest.addScrollId(scrollId);
-    ClearScrollResponse clearScrollResponse = client.clearScroll(clearScrollRequest, RequestOptions.DEFAULT);
-
-
-  }
-
-  private void processCSV(RestHighLevelClient client, FileOutputStream fileStream, String scrollId,  Scroll scroll,
-                          SearchHit[] searchHits) throws IOException {
-    JsonConverter jsonConverter = new JsonConverter();
-
-    boolean isFirstElement = true;
-    for (SearchHit hit : searchHits) {
-      if (isFirstElement)
-        fileStream.write(jsonConverter.getCsvHeader(hit.getSourceAsString()).getBytes());
-      String response = jsonConverter.convertToCsv(hit.getSourceAsString());
-      fileStream.write(response.getBytes());
-      isFirstElement = false;
-
-    }
-
-    while (searchHits != null && searchHits.length > 0) {
-
-      SearchScrollRequest scrollRequest = new SearchScrollRequest(scrollId);
-      scrollRequest.scroll(scroll);
-      SearchResponse searchResponse = client.scroll(scrollRequest, RequestOptions.DEFAULT);
-      scrollId = searchResponse.getScrollId();
-      searchHits = searchResponse.getHits().getHits();
-      for (SearchHit hit : searchHits) {
-        fileStream.write(jsonConverter.convertToCsv(hit.getSourceAsString()).getBytes());
-      }
-
-    }
-
-    ClearScrollRequest clearScrollRequest = new ClearScrollRequest();
-    clearScrollRequest.addScrollId(scrollId);
-    ClearScrollResponse clearScrollResponse = client.clearScroll(clearScrollRequest, RequestOptions.DEFAULT);
-
-  }
-
-
-
-  }
diff --git a/streampipes-app-file-export/src/main/java/org/apache/streampipes/app/file/export/model/IndexInfo.java b/streampipes-app-file-export/src/main/java/org/apache/streampipes/app/file/export/model/IndexInfo.java
deleted file mode 100644
index b23e82b..0000000
--- a/streampipes-app-file-export/src/main/java/org/apache/streampipes/app/file/export/model/IndexInfo.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.streampipes.app.file.export.model;
-
-public class IndexInfo {
-
-  private String indexName;
-  private Integer documentCount;
-
-  public IndexInfo(String indexName, Integer documentCount) {
-    this.indexName = indexName;
-    this.documentCount = documentCount;
-  }
-
-  public String getIndexName() {
-    return indexName;
-  }
-
-  public void setIndexName(String indexName) {
-    this.indexName = indexName;
-  }
-
-  public Integer getDocumentCount() {
-    return documentCount;
-  }
-
-  public void setDocumentCount(Integer documentCount) {
-    this.documentCount = documentCount;
-  }
-}
diff --git a/streampipes-model/src/main/java/org/apache/streampipes/model/node/Node.java b/streampipes-model/src/main/java/org/apache/streampipes/model/node/Node.java
index 184f444..ba2a175 100644
--- a/streampipes-model/src/main/java/org/apache/streampipes/model/node/Node.java
+++ b/streampipes-model/src/main/java/org/apache/streampipes/model/node/Node.java
@@ -16,6 +16,9 @@ package org.apache.streampipes.model.node;/*
  *
  */
 
+import org.apache.streampipes.model.shared.annotation.TsModel;
+
+@TsModel
 public class Node {
 
     public NodeInfo nodeInfo;
diff --git a/streampipes-model/src/main/java/org/apache/streampipes/model/node/NodeBrokerInfo.java b/streampipes-model/src/main/java/org/apache/streampipes/model/node/NodeBrokerInfo.java
index cc8538c..b46da5d 100644
--- a/streampipes-model/src/main/java/org/apache/streampipes/model/node/NodeBrokerInfo.java
+++ b/streampipes-model/src/main/java/org/apache/streampipes/model/node/NodeBrokerInfo.java
@@ -17,6 +17,9 @@
  */
 package org.apache.streampipes.model.node;
 
+import org.apache.streampipes.model.shared.annotation.TsModel;
+
+@TsModel
 public class NodeBrokerInfo {
 
     private String host;
diff --git a/streampipes-model/src/main/java/org/apache/streampipes/model/node/NodeInfo.java b/streampipes-model/src/main/java/org/apache/streampipes/model/node/NodeInfo.java
index cf4b202..e79f254 100644
--- a/streampipes-model/src/main/java/org/apache/streampipes/model/node/NodeInfo.java
+++ b/streampipes-model/src/main/java/org/apache/streampipes/model/node/NodeInfo.java
@@ -17,8 +17,11 @@
  */
 package org.apache.streampipes.model.node;
 
+import org.apache.streampipes.model.shared.annotation.TsModel;
+
 import java.util.List;
 
+@TsModel
 public class NodeInfo {
 
     private String nodeControllerId;
diff --git a/streampipes-model/src/main/java/org/apache/streampipes/model/node/NodeMetadata.java b/streampipes-model/src/main/java/org/apache/streampipes/model/node/NodeMetadata.java
index b1b17db..9195389 100644
--- a/streampipes-model/src/main/java/org/apache/streampipes/model/node/NodeMetadata.java
+++ b/streampipes-model/src/main/java/org/apache/streampipes/model/node/NodeMetadata.java
@@ -17,8 +17,11 @@
  */
 package org.apache.streampipes.model.node;
 
+import org.apache.streampipes.model.shared.annotation.TsModel;
+
 import java.util.List;
 
+@TsModel
 public class NodeMetadata {
 
     private String nodeAddress;
diff --git a/streampipes-model/src/main/java/org/apache/streampipes/model/node/NodeResources.java b/streampipes-model/src/main/java/org/apache/streampipes/model/node/NodeResources.java
index a9510e3..79db2b0 100644
--- a/streampipes-model/src/main/java/org/apache/streampipes/model/node/NodeResources.java
+++ b/streampipes-model/src/main/java/org/apache/streampipes/model/node/NodeResources.java
@@ -19,9 +19,11 @@ package org.apache.streampipes.model.node;/*
 import org.apache.streampipes.model.node.resources.hardware.HardwareResource;
 import org.apache.streampipes.model.node.resources.interfaces.AccessibleSensorActuatorResource;
 import org.apache.streampipes.model.node.resources.software.SoftwareResource;
+import org.apache.streampipes.model.shared.annotation.TsModel;
 
 import java.util.List;
 
+@TsModel
 public class NodeResources {
     public HardwareResource hardwareResource;
     public SoftwareResource softwareResource;
diff --git a/streampipes-model/src/main/java/org/apache/streampipes/model/node/resources/hardware/CPU.java b/streampipes-model/src/main/java/org/apache/streampipes/model/node/resources/hardware/CPU.java
index 7f9c131..7772cfe 100644
--- a/streampipes-model/src/main/java/org/apache/streampipes/model/node/resources/hardware/CPU.java
+++ b/streampipes-model/src/main/java/org/apache/streampipes/model/node/resources/hardware/CPU.java
@@ -16,6 +16,9 @@ package org.apache.streampipes.model.node.resources.hardware;/*
  *
  */
 
+import org.apache.streampipes.model.shared.annotation.TsModel;
+
+@TsModel
 public class CPU {
     public int cores;
     public String arch;
diff --git a/streampipes-model/src/main/java/org/apache/streampipes/model/node/resources/hardware/DISK.java b/streampipes-model/src/main/java/org/apache/streampipes/model/node/resources/hardware/DISK.java
index 6f53373..841cf9d 100644
--- a/streampipes-model/src/main/java/org/apache/streampipes/model/node/resources/hardware/DISK.java
+++ b/streampipes-model/src/main/java/org/apache/streampipes/model/node/resources/hardware/DISK.java
@@ -16,6 +16,9 @@ package org.apache.streampipes.model.node.resources.hardware;/*
  *
  */
 
+import org.apache.streampipes.model.shared.annotation.TsModel;
+
+@TsModel
 public class DISK {
     public long diskTotal;
 
diff --git a/streampipes-model/src/main/java/org/apache/streampipes/model/node/resources/hardware/GPU.java b/streampipes-model/src/main/java/org/apache/streampipes/model/node/resources/hardware/GPU.java
index 74e3068..0003a0f 100644
--- a/streampipes-model/src/main/java/org/apache/streampipes/model/node/resources/hardware/GPU.java
+++ b/streampipes-model/src/main/java/org/apache/streampipes/model/node/resources/hardware/GPU.java
@@ -16,6 +16,9 @@ package org.apache.streampipes.model.node.resources.hardware;/*
  *
  */
 
+import org.apache.streampipes.model.shared.annotation.TsModel;
+
+@TsModel
 public class GPU {
     public boolean hasGPU;
     public int cudaCores;
diff --git a/streampipes-model/src/main/java/org/apache/streampipes/model/node/resources/hardware/HardwareResource.java b/streampipes-model/src/main/java/org/apache/streampipes/model/node/resources/hardware/HardwareResource.java
index 101a036..cb93970 100644
--- a/streampipes-model/src/main/java/org/apache/streampipes/model/node/resources/hardware/HardwareResource.java
+++ b/streampipes-model/src/main/java/org/apache/streampipes/model/node/resources/hardware/HardwareResource.java
@@ -16,7 +16,9 @@ package org.apache.streampipes.model.node.resources.hardware;/*
  *
  */
 
+import org.apache.streampipes.model.shared.annotation.TsModel;
 
+@TsModel
 public class HardwareResource {
 
     public CPU cpu;
diff --git a/streampipes-model/src/main/java/org/apache/streampipes/model/node/resources/hardware/MEM.java b/streampipes-model/src/main/java/org/apache/streampipes/model/node/resources/hardware/MEM.java
index 34e5eae..beab137 100644
--- a/streampipes-model/src/main/java/org/apache/streampipes/model/node/resources/hardware/MEM.java
+++ b/streampipes-model/src/main/java/org/apache/streampipes/model/node/resources/hardware/MEM.java
@@ -16,6 +16,9 @@ package org.apache.streampipes.model.node.resources.hardware;/*
  *
  */
 
+import org.apache.streampipes.model.shared.annotation.TsModel;
+
+@TsModel
 public class MEM {
     public Long memTotal;
 
diff --git a/streampipes-model/src/main/java/org/apache/streampipes/model/node/resources/interfaces/AccessibleSensorActuatorResource.java b/streampipes-model/src/main/java/org/apache/streampipes/model/node/resources/interfaces/AccessibleSensorActuatorResource.java
index ecf38ac..f21987f 100644
--- a/streampipes-model/src/main/java/org/apache/streampipes/model/node/resources/interfaces/AccessibleSensorActuatorResource.java
+++ b/streampipes-model/src/main/java/org/apache/streampipes/model/node/resources/interfaces/AccessibleSensorActuatorResource.java
@@ -16,7 +16,9 @@ package org.apache.streampipes.model.node.resources.interfaces;/*
  *
  */
 
+import org.apache.streampipes.model.shared.annotation.TsModel;
 
+@TsModel
 public class AccessibleSensorActuatorResource {
     public String name;
     public String type;
diff --git a/streampipes-model/src/main/java/org/apache/streampipes/model/node/resources/software/Cuda.java b/streampipes-model/src/main/java/org/apache/streampipes/model/node/resources/software/Cuda.java
index 7327da5..fcf68f9 100644
--- a/streampipes-model/src/main/java/org/apache/streampipes/model/node/resources/software/Cuda.java
+++ b/streampipes-model/src/main/java/org/apache/streampipes/model/node/resources/software/Cuda.java
@@ -16,6 +16,9 @@ package org.apache.streampipes.model.node.resources.software;/*
  *
  */
 
+import org.apache.streampipes.model.shared.annotation.TsModel;
+
+@TsModel
 public class Cuda {
 
     private boolean hasCuda;
diff --git a/streampipes-model/src/main/java/org/apache/streampipes/model/node/resources/software/Docker.java b/streampipes-model/src/main/java/org/apache/streampipes/model/node/resources/software/Docker.java
index fa0294a..2a18984 100644
--- a/streampipes-model/src/main/java/org/apache/streampipes/model/node/resources/software/Docker.java
+++ b/streampipes-model/src/main/java/org/apache/streampipes/model/node/resources/software/Docker.java
@@ -16,6 +16,9 @@ package org.apache.streampipes.model.node.resources.software;/*
  *
  */
 
+import org.apache.streampipes.model.shared.annotation.TsModel;
+
+@TsModel
 public class Docker {
 
     public boolean hasDocker;
diff --git a/streampipes-model/src/main/java/org/apache/streampipes/model/node/resources/software/SoftwareResource.java b/streampipes-model/src/main/java/org/apache/streampipes/model/node/resources/software/SoftwareResource.java
index e9ef299..7a0591b 100644
--- a/streampipes-model/src/main/java/org/apache/streampipes/model/node/resources/software/SoftwareResource.java
+++ b/streampipes-model/src/main/java/org/apache/streampipes/model/node/resources/software/SoftwareResource.java
@@ -16,6 +16,9 @@ package org.apache.streampipes.model.node.resources.software;/*
  *
  */
 
+import org.apache.streampipes.model.shared.annotation.TsModel;
+
+@TsModel
 public class SoftwareResource {
     public String os;
     public String kernelVersion;
diff --git a/streampipes-node-controller-container/development/env b/streampipes-node-controller-container/development/env
index 16ce003..8a9c1a5 100644
--- a/streampipes-node-controller-container/development/env
+++ b/streampipes-node-controller-container/development/env
@@ -27,7 +27,7 @@ SP_NODE_ACCESSIBLE_SENSOR_ACTUATOR_ZED=zed;sensor;/dev/video1;usb
 SP_NODE_ACCESSIBLE_SENSOR_ACTUATOR_ROS=ros;universalrobot;192.168.0.80;network
 SP_NODE_SUPPORTED_PE_APP_ID_FILTER=org.apache.streampipes.processors.filters.jvm.numericalfilter
 SP_NODE_SUPPORTED_PE_APP_ID_ENRICH=org.apache.streampipes.processors.filters.jvm.enrich
-SP_NODE_SUPPORTED_PE_APP_ID_STATS=org.streampipes.pe.processors.internal.universalrobot.statscollector
+SP_NODE_SUPPORTED_PE_APP_ID_STATS=org.streampipes.pe.ptrocessors.internal.universalrobot.statscollector
 SP_NODE_SUPPORTED_PE_APP_ID_KPI=org.streampipes.pe.processors.internal.universalrobot.kpi
 SP_NODE_SUPPORTED_PE_APP_ID_ROSSINK=org.streampipes.pe.sinks.internal.universalrobot.ros
 SP_NODE_HAS_GPU=false
diff --git a/ui/src/app/configuration/configuration.component.html b/ui/src/app/configuration/configuration.component.html
index 3a8ebbe..39116ef 100644
--- a/ui/src/app/configuration/configuration.component.html
+++ b/ui/src/app/configuration/configuration.component.html
@@ -22,8 +22,8 @@
             <mat-tab-group [selectedIndex]="selectedIndex" (selectedIndexChange)="selectedIndexChange($event)">
                 <mat-tab label="Pipeline Element Configuration"></mat-tab>
                 <mat-tab label="Messaging"></mat-tab>
-                <mat-tab label="Nodes"></mat-tab>
                 <mat-tab label="DataLake"></mat-tab>
+                <mat-tab label="Nodes"></mat-tab>
             </mat-tab-group>
         </div>
     </div>
@@ -37,7 +37,7 @@
     <div class="fixed-height page-container-padding-inner" fxLayout="column" fxFlex="100" *ngIf="selectedIndex == 2">
         <sp-datalake-configuration fxFlex="100"></sp-datalake-configuration>
     </div>
-    <div class="page-container-padding-inner" fxLayout="column" fxFlex="100" *ngIf="selectedIndex == 2">
+    <div class="page-container-padding-inner" fxLayout="column" fxFlex="100" *ngIf="selectedIndex == 3">
         <edge-configuration fxFlex="100"></edge-configuration>
     </div>
 </div>
diff --git a/ui/src/app/configuration/shared/configuration.service.ts b/ui/src/app/configuration/shared/configuration.service.ts
index 4eb809a..8578799 100644
--- a/ui/src/app/configuration/shared/configuration.service.ts
+++ b/ui/src/app/configuration/shared/configuration.service.ts
@@ -49,10 +49,11 @@ export class ConfigurationService {
 
     getAvailableEdgeNodes(): Observable<Array<NodeInfo>> {
         return this.http.get(this.getServerUrl() + '/api/v2/users/' + this.authStatusService.email + "/nodes")
-            .map(data => {
-            return data as NodeInfo[];
-        });
-
+            .pipe(
+                map(response => {
+                    return response as NodeInfo[];
+                })
+            )
     }
 
     getConsulServices(): Observable<StreampipesPeContainer[]> {
diff --git a/ui/src/app/core-model/gen/streampipes-model-client.ts b/ui/src/app/core-model/gen/streampipes-model-client.ts
index 4a19f55..d10df05 100644
--- a/ui/src/app/core-model/gen/streampipes-model-client.ts
+++ b/ui/src/app/core-model/gen/streampipes-model-client.ts
@@ -1,3 +1,21 @@
+/*
+ * 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
diff --git a/ui/src/app/core-model/gen/streampipes-model.ts b/ui/src/app/core-model/gen/streampipes-model.ts
index 7dca972..02c2eee 100644
--- a/ui/src/app/core-model/gen/streampipes-model.ts
+++ b/ui/src/app/core-model/gen/streampipes-model.ts
@@ -1,3 +1,21 @@
+/*
+ * 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
diff --git a/ui/src/app/editor/dialog/save-pipeline/save-pipeline.component.html b/ui/src/app/editor/dialog/save-pipeline/save-pipeline.component.html
index 19102f9..f8c2199 100644
--- a/ui/src/app/editor/dialog/save-pipeline/save-pipeline.component.html
+++ b/ui/src/app/editor/dialog/save-pipeline/save-pipeline.component.html
@@ -43,47 +43,46 @@
                     </mat-form-field>
                 </div>
                 </form>
-                <mat-checkbox (click)="triggerTutorial()" color="primary" [(ngModel)]="startPipelineAfterStorage">
+                <mat-slide-toggle (click)="triggerTutorial()" color="primary" [(ngModel)]="startPipelineAfterStorage">
                     Start pipeline immediately
-                </mat-checkbox>
-                <md-checkbox ng-disabled="false" aria-label="Start Pipeline"
-                             [(ng-model)]="advancedSettings">
-                    Deployment settings
-                </md-checkbox>
-                <div *ng-if="advancedSettings">
-                    <h4>Nodes</h4>
-                    <div ng-repeat="pipelineElement in pipeline.sepas">
-                        <div flex="100" layout="row">
-                            <div flex="50" layout="row" layout-align="start center">
-                                <span>{{pipelineElement.name}}</span>
-                            </div>
-                            <div flex="50" layout="row" layout-align="start center">
-                                <md-select ng-model="pipelineElement.deploymentTargetNodeId" style="margin: 0;">
-                                    <md-option
-                                            ng-value="node.nodeControllerId" ng-repeat="node in deploymentOptions[pipelineElement.appId]">
-                                        <em>{{node.nodeMetadata.nodeAddress}}
-                                        </em>
-                                    </md-option>
-                                </md-select>
+                </mat-slide-toggle>
+                <mat-slide-toggle color="primary" [(ngModel)]="advancedSettings">
+                    Choose deployment options
+                </mat-slide-toggle>
+                <mat-divider style="margin: 2em 0 2em 0;"></mat-divider>
+                <div *ngIf="advancedSettings">
+                    <b>Node selection</b>
+                    <div *ngFor="let processors of pipeline.sepas">
+                        <div fxFlex="100" fxLayout="row">
+                            <div fxFlex="50" fxLayout="row" fxLayoutAlign="center center">
+                                <span>{{processors.name}}</span>
                             </div>
                         </div>
+                        <div fxFlex="50" fxLayout="row" fxLayoutAlign="start center">
+                            <mat-form-field appearance="outline">
+                            <mat-select [(ngModel)]="processors.deploymentTargetNodeId" style="margin: 0;height: 20px;">
+                                <mat-option [value]="node.nodeControllerId" *ngFor="let node of deploymentOptions[processors.appId]">
+                                    <em>{{node.nodeMetadata.nodeAddress}}</em>
+                                </mat-option>
+                            </mat-select>
+                            </mat-form-field>
+                        </div>
                     </div>
-                    <div ng-repeat="pipelineElement in pipeline.actions">
-                        <div flex="100" layout="row">
-                            <div flex="50" layout="row" layout-align="start center">
-                                <span>{{pipelineElement.name}}</span>
-                            </div>
-                            <div flex="50" layout="row" layout-align="start center">
-                                <md-select ng-model="pipelineElement.deploymentTargetNodeId" style="margin: 0;">
-                                    <md-option
-                                            ng-value = "node.nodeControllerId" ng-repeat="node in
-                                            deploymentOptions[pipelineElement.appId]">
-                                        <em>{{node.nodeMetadata.nodeAddress}}
-                                        </em>
-                                    </md-option>
-                                </md-select>
+                    <div *ngFor="let sinks of pipeline.actions">
+                        <div fxFlex="100" fxLayout="row">
+                            <div fxFlex="50" fxLayout="row" fxLayoutAlign="center center">
+                                <span>{{sinks.name}}</span>
                             </div>
                         </div>
+                        <div fxFlex="50" fxLayout="row" fxLayoutAlign="start center">
+                            <mat-form-field appearance="outline">
+                                <mat-select [(ngModel)]="sinks.deploymentTargetNodeId" style="margin: 0; height: 20px;">
+                                    <mat-option [value]="node.nodeControllerId" *ngFor="let node of deploymentOptions[sinks.appId]">
+                                        <em>{{node.nodeMetadata.nodeAddress}}</em>
+                                    </mat-option>
+                                </mat-select>
+                            </mat-form-field>
+                        </div>
                     </div>
                 </div>
             </div>
diff --git a/ui/src/app/editor/dialog/save-pipeline/save-pipeline.component.ts b/ui/src/app/editor/dialog/save-pipeline/save-pipeline.component.ts
index ef9701d..cf9b9f3 100644
--- a/ui/src/app/editor/dialog/save-pipeline/save-pipeline.component.ts
+++ b/ui/src/app/editor/dialog/save-pipeline/save-pipeline.component.ts
@@ -55,7 +55,7 @@ export class SavePipelineComponent implements OnInit {
   storageError: boolean = false;
   errorMessage: string = '';
 
-  edgeNodes: NodeInfo[]
+  edgeNodes: NodeInfo[];
   advancedSettings: boolean = false;
   deploymentOptions: Array<any> = new Array<any>();
 
@@ -71,6 +71,7 @@ export class SavePipelineComponent implements OnInit {
 
   ngOnInit() {
     this.getPipelineCategories();
+    this.loadAndPrepareEdgeNodes();
     this.submitPipelineForm.addControl("pipelineName", new FormControl(this.pipeline.name,
         [Validators.required,
           Validators.maxLength(40)]))
@@ -137,6 +138,28 @@ export class SavePipelineComponent implements OnInit {
     return nodeInfo;
   }
 
+  modifyPipelineElementsDeployments(pipelineElements) {
+    pipelineElements.forEach(p => {
+      let selectedTargetNodeId = p.deploymentTargetNodeId
+      console.log(selectedTargetNodeId);
+      if(selectedTargetNodeId != "default") {
+        let selectedNode = this.edgeNodes
+            .filter(node => node.nodeControllerId === selectedTargetNodeId)
+
+        p.deploymentTargetNodeHostname = selectedNode
+            .map(node => node.nodeMetadata.nodeAddress)[0]
+
+        p.deploymentTargetNodePort = selectedNode
+            .map(node => node.nodeControllerPort)[0]
+      }
+      else {
+        console.log('null');
+        p.deploymentTargetNodeHostname = null
+        p.deploymentTargetNodePort = null
+      }
+    })
+  }
+
   savePipeline(switchTab) {
     if (this.pipeline.name == "") {
       //this.showToast("error", "Please enter a name for your pipeline");
@@ -146,9 +169,13 @@ export class SavePipelineComponent implements OnInit {
     let storageRequest;
 
     if (this.currentModifiedPipelineId && this.updateMode === 'update') {
+      this.modifyPipelineElementsDeployments(this.pipeline.sepas)
+      this.modifyPipelineElementsDeployments(this.pipeline.actions)
       storageRequest = this.pipelineService.updatePipeline(this.pipeline);
     } else {
       this.pipeline._id = undefined;
+      this.modifyPipelineElementsDeployments(this.pipeline.sepas)
+      this.modifyPipelineElementsDeployments(this.pipeline.actions)
       storageRequest = this.pipelineService.storePipeline(this.pipeline);
     }
 
diff --git a/ui/src/app/editor/dialog/save-pipeline/save-pipeline.controller.ts b/ui/src/app/editor/dialog/save-pipeline/save-pipeline.controller.ts
deleted file mode 100644
index 2054f78..0000000
--- a/ui/src/app/editor/dialog/save-pipeline/save-pipeline.controller.ts
+++ /dev/null
@@ -1,218 +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.
- *
- */
-
-import {RestApi} from "../../../services/rest-api.service";
-import {NodeInfo, NodeMetadata} from "../../../configuration/model/NodeInfo.model";
-import {Browser} from "leaflet";
-import edge = Browser.edge;
-
-export class SavePipelineController {
-
-    RestApi: RestApi;
-    $mdToast: any;
-    $state: any;
-    $mdDialog: any;
-    pipelineCategories: any;
-    pipeline: any;
-    ObjectProvider: any;
-    startPipelineAfterStorage: any;
-    modificationMode: any;
-    updateMode: any;
-    submitPipelineForm: any;
-    TransitionService: any;
-    ShepherdService: any;
-    edgeNodes: NodeInfo[]
-
-    advancedSettings: boolean = false;
-
-    deploymentOptions: Array<any> = new Array<any>();
-
-    constructor($mdDialog,
-                $state,
-                RestApi,
-                $mdToast,
-                ObjectProvider,
-                pipeline,
-                modificationMode,
-                TransitionService,
-                ShepherdService) {
-        this.RestApi = RestApi;
-        this.$mdToast = $mdToast;
-        this.$state = $state;
-        this.$mdDialog = $mdDialog;
-        this.pipelineCategories = [];
-        this.pipeline = pipeline;
-        this.ObjectProvider = ObjectProvider;
-        this.modificationMode = modificationMode;
-        this.updateMode = "update";
-        this.TransitionService = TransitionService;
-        this.ShepherdService = ShepherdService;
-    }
-
-    $onInit() {
-        this.getPipelineCategories();
-        if (this.ShepherdService.isTourActive()) {
-            this.ShepherdService.trigger("enter-pipeline-name");
-        }
-        this.loadAndPrepareEdgeNodes();
-
-    }
-
-    loadAndPrepareEdgeNodes() {
-        this.RestApi.getAvailableEdgeNodes().then(response => {
-           //let edgeNodes = response.data as NodeInfo[];
-            this.edgeNodes = response.data;
-           this.addAppIds(this.pipeline.sepas, this.edgeNodes);
-           this.addAppIds(this.pipeline.actions, this.edgeNodes);
-        });
-    }
-
-    addAppIds(pipelineElements, edgeNodes: Array<NodeInfo>) {
-        pipelineElements.forEach(pipelineElement => {
-            this.deploymentOptions[pipelineElement.appId] = [];
-            this.deploymentOptions[pipelineElement.appId].push(this.makeDefaultNodeInfo());
-            edgeNodes.forEach(nodeInfo => {
-                if (nodeInfo.supportedPipelineElementAppIds.some(appId => appId === pipelineElement.appId)) {
-                    this.deploymentOptions[pipelineElement.appId].push(nodeInfo);
-                }
-            })
-        });
-    }
-
-    makeDefaultNodeInfo() {
-        let nodeInfo = {} as NodeInfo;
-        nodeInfo.nodeControllerId = "default";
-        nodeInfo.nodeMetadata = {} as NodeMetadata;
-        nodeInfo.nodeMetadata.nodeAddress = "default";
-        nodeInfo.nodeMetadata.nodeModel = "Default Node";
-        return nodeInfo;
-    }
-
-    triggerTutorial() {
-        if (this.ShepherdService.isTourActive()) {
-            this.ShepherdService.trigger("save-pipeline-dialog");
-        }
-    }
-
-    displayErrors(data) {
-        for (var i = 0, notification; notification = data.notifications[i]; i++) {
-            this.showToast("error", notification.title, notification.description);
-        }
-    }
-
-    displaySuccess(data) {
-        if (data.notifications.length > 0) {
-            this.showToast("success", data.notifications[0].title, data.notifications[0].description);
-        }
-    }
-
-    getPipelineCategories() {
-        this.RestApi.getPipelineCategories()
-            .then(pipelineCategories => {
-                this.pipelineCategories = pipelineCategories.data;
-            });
-
-    };
-
-    modifyPipelineElementsDeployments(pipelineElements) {
-        pipelineElements.forEach(p => {
-            let selectedTargetNodeId = p.deploymentTargetNodeId
-            if(selectedTargetNodeId != "default") {
-                let selectedNode = this.edgeNodes
-                    .filter(node => node.nodeControllerId === selectedTargetNodeId)
-
-                p.deploymentTargetNodeHostname = selectedNode
-                    .map(node => node.nodeMetadata.nodeAddress)[0]
-
-                p.deploymentTargetNodePort = selectedNode
-                    .map(node => node.nodeControllerPort)[0]
-            }
-            else {
-                p.deploymentTargetNodeHostname = null
-                p.deploymentTargetNodePort = null
-            }
-        })
-    }
-
-
-    savePipelineName(switchTab) {
-        if (this.pipeline.name == "") {
-            this.showToast("error", "Please enter a name for your pipeline");
-            return false;
-        }
-
-        let storageRequest;
-
-        if (this.modificationMode && this.updateMode === 'update') {
-            this.modifyPipelineElementsDeployments(this.pipeline.sepas)
-            this.modifyPipelineElementsDeployments(this.pipeline.actions)
-            storageRequest = this.RestApi.updatePipeline(this.pipeline);
-        } else {
-            this.modifyPipelineElementsDeployments(this.pipeline.sepas)
-            this.modifyPipelineElementsDeployments(this.pipeline.actions)
-            storageRequest = this.RestApi.storePipeline(this.pipeline);
-        }
-
-        storageRequest
-            .then(msg => {
-                let data = msg.data;
-                if (data.success) {
-                    this.afterStorage(data, switchTab);
-                } else {
-                    this.displayErrors(data);
-                }
-            }, data => {
-                this.showToast("error", "Connection Error", "Could not fulfill request");
-            });
-    };
-
-    afterStorage(data, switchTab) {
-        this.displaySuccess(data);
-        this.hide();
-        this.TransitionService.makePipelineAssemblyEmpty(true);
-        this.RestApi.removePipelineFromCache();
-        if (this.ShepherdService.isTourActive()) {
-            this.ShepherdService.hideCurrentStep();
-        }
-        if (switchTab && !this.startPipelineAfterStorage) {
-            this.$state.go("streampipes.pipelines");
-        }
-        if (this.startPipelineAfterStorage) {
-            this.$state.go("streampipes.pipelines", {pipeline: data.notifications[1].description});
-        }
-    }
-
-    hide() {
-        this.$mdDialog.hide();
-    };
-
-    showToast(type, title, description?) {
-        this.$mdToast.show(
-            this.$mdToast.simple()
-                .textContent(title)
-                .position("top right")
-                .hideDelay(3000)
-        );
-    }
-
-    toggleAdvancedSettings() {
-        this.advancedSettings = ! (this.advancedSettings);
-    }
-}
-
-SavePipelineController.$inject = ['$mdDialog', '$state', 'RestApi', '$mdToast', 'ObjectProvider', 'pipeline', 'modificationMode', 'TransitionService', 'ShepherdService'];
diff --git a/ui/src/app/editor/dialog/save-pipeline/submitPipelineModal.tmpl.html b/ui/src/app/editor/dialog/save-pipeline/submitPipelineModal.tmpl.html
deleted file mode 100644
index fae3929..0000000
--- a/ui/src/app/editor/dialog/save-pipeline/submitPipelineModal.tmpl.html
+++ /dev/null
@@ -1,115 +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.
-  ~
-  -->
-
-<md-dialog aria-label="Save" flex="70">
-    <md-toolbar>
-        <div class="md-toolbar-tools">
-            <h2>Save Pipeline</h2>
-            <span flex></span>
-            <md-button class="md-icon-button" ng-click="ctrl.hide()">
-                <md-icon md-svg-icon="navigation:ic_close_24px" aria-label="Close dialog"></md-icon>
-            </md-button>
-        </div>
-    </md-toolbar>
-
-    <md-dialog-content flex="100" class="md-dialog-content">
-        <form name="ctrl.submitPipelineForm">
-            <div flex="100" layout="column">
-                <div id="overwriteCheckbox" class="checkbox" ng-show="ctrl.modificationMode">
-                    <md-radio-group class="md-accent" ng-model="ctrl.updateMode">
-                        <md-radio-button ng-value="'update'">
-                            Update pipeline <b>{{ctrl.pipeline.name}}</b>
-                        </md-radio-button>
-                        <md-radio-button ng-value="'clone'">
-                            Create new pipeline
-                        </md-radio-button>
-                    </md-radio-group>
-                </div>
-                <div flex="100" layout="column" ng-if="!ctrl.modificationMode || ctrl.updateMode=='clone'">
-                    <md-input-container flex><label>Pipeline Name</label>
-                        <input name="pipelineName" ng-model="ctrl.pipeline.name" required ng-maxlength="40"/>
-                        <span ng-show="ctrl.submitPipelineForm.pipelineName.$touched && ctrl.submitPipelineForm.pipelineName.$error.required">Please provide a pipeline name.</span>
-                        <span ng-show="ctrl.submitPipelineForm.pipelineName.$error.maxlength">Please provide a shorter pipeline name.</span>
-                    </md-input-container>
-                    <md-input-container flex><label>Description</label>
-                        <input name="pipelineDescription" ng-model="ctrl.pipeline.description" ng-maxlength="80"/>
-                        <span ng-show="ctrl.submitPipelineForm.pipelineDescription.$error.maxlength">Please provide a shorter description.</span>
-                    </md-input-container>
-                </div>
-                <md-checkbox ng-click="ctrl.triggerTutorial()" ng-disabled="false" aria-label="Start Pipeline" ng-model="ctrl.startPipelineAfterStorage">
-                    Start pipeline immediately
-                </md-checkbox>
-                <md-checkbox ng-disabled="false" aria-label="Start Pipeline"
-                             ng-model="ctrl.advancedSettings">
-                    Deployment settings
-                </md-checkbox>
-                <div ng-if="ctrl.advancedSettings">
-                    <h4>Nodes</h4>
-                    <div ng-repeat="pipelineElement in ctrl.pipeline.sepas">
-                        <div flex="100" layout="row">
-                            <div flex="50" layout="row" layout-align="start center">
-                                <span>{{pipelineElement.name}}</span>
-                            </div>
-                            <div flex="50" layout="row" layout-align="start center">
-                                <md-select ng-model="pipelineElement.deploymentTargetNodeId" style="margin: 0;">
-                                    <md-option
-                                            ng-value = "node.nodeControllerId" ng-repeat="node in
-                                            ctrl.deploymentOptions[pipelineElement.appId]">
-                                        <em>{{node.nodeMetadata.nodeAddress}}
-                                        </em>
-                                    </md-option>
-                                </md-select>
-                            </div>
-                        </div>
-                    </div>
-                    <div ng-repeat="pipelineElement in ctrl.pipeline.actions">
-                        <div flex="100" layout="row">
-                            <div flex="50" layout="row" layout-align="start center">
-                                <span>{{pipelineElement.name}}</span>
-                            </div>
-                            <div flex="50" layout="row" layout-align="start center">
-                                <md-select ng-model="pipelineElement.deploymentTargetNodeId" style="margin: 0;">
-                                    <md-option
-                                            ng-value = "node.nodeControllerId" ng-repeat="node in
-                                            ctrl.deploymentOptions[pipelineElement.appId]">
-                                        <em>{{node.nodeMetadata.nodeAddress}}
-                                        </em>
-                                    </md-option>
-                                </md-select>
-                            </div>
-                        </div>
-                    </div>
-                </div>
-            </div>
-        </form>
-    </md-dialog-content>
-    <md-dialog-actions layout="row">
-        <sp-button sp-button-gray ng-click="ctrl.hide()">
-            Close
-        </sp-button>
-        <sp-button sp-button-blue ng-disabled="ctrl.submitPipelineForm.$invalid"
-                   ng-click="ctrl.savePipelineName(false)"
-                   ng-disabled="ctrl.startPipelineAfterStorage">
-            Save
-        </sp-button>
-        <sp-button sp-button-blue ng-disabled="ctrl.submitPipelineForm.$invalid"
-                   ng-click="ctrl.savePipelineName(true)">
-            Save and go to pipeline view
-        </sp-button>
-    </md-dialog-actions>
-</md-dialog>
\ No newline at end of file


[incubator-streampipes] 02/04: Merge branch 'dev' into edge-extensions

Posted by wi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit c281844081d5d6e1f9babc3a382bbfdc17a11373
Merge: 1281d90 161d5b0
Author: Patrick Wiener <wi...@fzi.de>
AuthorDate: Thu Sep 24 08:58:51 2020 +0100

    Merge branch 'dev' into edge-extensions

 README.md                                          |  2 +-
 .../streampipes/manager/file/FileManager.java      |  3 +-
 .../manager/matching/ConnectionValidator.java      |  4 +-
 .../manager/matching/InvocationGraphBuilder.java   |  3 +-
 .../matching/PipelineVerificationHandler.java      | 18 +++--
 .../manager/recommender/ElementRecommender.java    | 20 +++--
 .../streampipes/rest/impl/PipelineElementFile.java |  4 +-
 .../rest/impl/datalake/DataLakeManagementV3.java   |  8 +-
 .../confirm-dialog/confirm-dialog.component.html   |  2 +-
 .../confirm-dialog/confirm-dialog.component.ts     |  4 +
 .../static-file-input.component.html               |  2 +-
 .../static-file-input.component.ts                 | 15 ++--
 .../static-mapping-unary.component.ts              |  4 +-
 .../dashboard/components/widgets/map/map-config.ts | 48 +++++++-----
 .../widgets/map/map-widget.component.html          |  3 +-
 .../components/widgets/map/map-widget.component.ts | 75 ++++++++++++++----
 .../pipeline-element-options.component.html        | 91 +++++++++++-----------
 .../pipeline-element-options.component.ts          | 21 +++--
 .../pipeline-element-recommendation.component.html |  4 +-
 .../pipeline-element-recommendation.component.ts   | 35 ++++-----
 .../components/pipeline/pipeline.component.ts      |  3 +-
 .../app/notifications/notifications.component.ts   |  8 +-
 .../app/notifications/utils/notifications.utils.ts |  2 +-
 .../pipeline-overview.component.html               |  8 +-
 .../pipeline-overview.component.ts                 |  6 +-
 ui/src/app/pipelines/pipelines.module.ts           |  6 +-
 26 files changed, 245 insertions(+), 154 deletions(-)



[incubator-streampipes] 04/04: Merge branch 'dev' into edge-extensions

Posted by wi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit ccafe812df411e0bfa5a8b8a25bc16a95b22f2e5
Merge: 1f5959f 5714f20
Author: Patrick Wiener <wi...@fzi.de>
AuthorDate: Fri Oct 2 14:38:12 2020 +0100

    Merge branch 'dev' into edge-extensions

 RELEASE_NOTES.md                                   | 95 ++++++++++++++++++++++
 streampipes-backend/pom.xml                        |  5 --
 .../backend/StreamPipesBackendApplication.java     |  9 --
 .../static-alternatives.component.html             |  4 +-
 .../static-alternatives.component.ts               |  1 -
 .../pipeline-element-recommendation.component.ts   | 26 ++++--
 6 files changed, 115 insertions(+), 25 deletions(-)


[incubator-streampipes] 01/04: [hotfix] update branch with latest changes from dev

Posted by wi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 1281d900bd33e365e0dcc2052ba147431f1d8011
Merge: 1cfe528 722dc11
Author: Patrick Wiener <wi...@fzi.de>
AuthorDate: Thu Sep 24 08:57:39 2020 +0100

    [hotfix] update branch with latest changes from dev

 .github/workflows/build.yml                        |    3 +-
 .gitignore                                         |    6 +-
 .idea/runConfigurations/AggregationFlinkInit.xml   |   15 -
 .../Apache_StreamPipes___Connect_Master.xml        |   15 -
 .../Apache_StreamPipes___Core.xml                  |   21 -
 .idea/runConfigurations/BrokersJvmInit.xml         |   14 -
 .idea/runConfigurations/ConnectAdapterInit.xml     |   17 -
 .idea/runConfigurations/DatabasesFlinkInit.xml     |   16 -
 .idea/runConfigurations/DatabasesJvmInit.xml       |   14 -
 .idea/runConfigurations/EnricherFlinkInit.xml      |   15 -
 .idea/runConfigurations/EnricherJvmInit.xml        |   14 -
 .idea/runConfigurations/FiltersJvmInit.xml         |   15 -
 .idea/runConfigurations/FiltersSiddhiInit.xml      |   15 -
 .idea/runConfigurations/GeoFlinkInit.xml           |   15 -
 .idea/runConfigurations/GeoJvmInit.xml             |   14 -
 .idea/runConfigurations/ImageProcessingJvmInit.xml |   14 -
 .../PatternDetectionFlinkInit.xml                  |   15 -
 .idea/runConfigurations/SinksInternalJvmInit.xml   |   22 -
 .../SinksNotificationsJvmInit.xml                  |   23 -
 .idea/runConfigurations/StatisticsFlinkInit.xml    |   15 -
 .idea/runConfigurations/TestMiningFlinkInit.xml    |   15 -
 .idea/runConfigurations/TestMiningJvmInit.xml      |   14 -
 .../runConfigurations/TransformationFlinkInit.xml  |   15 -
 .idea/runConfigurations/TransformationJvmInit.xml  |   14 -
 .idea/runConfigurations/VehicleSimulatorInit.xml   |   16 -
 .idea/runConfigurations/WatertankSimulatorInit.xml |   16 -
 .../all_pipeline_elements_flink.xml                |   15 +
 .../all_pipeline_elements_jvm.xml                  |   21 +
 .idea/runConfigurations/backend.xml                |   18 +
 .idea/runConfigurations/connect_adapters.xml       |   17 +
 .idea/runConfigurations/connect_master.xml         |   16 +
 .../processors_aggregation_flink.xml               |   15 +
 .../processors_enricher_flink.xml                  |   15 +
 .../runConfigurations/processors_enricher_jvm.xml  |   14 +
 .idea/runConfigurations/processors_filters_jvm.xml |   14 +
 .../processors_filters_siddhi.xml                  |   14 +
 .idea/runConfigurations/processors_geo_flink.xml   |   15 +
 .idea/runConfigurations/processors_geo_jvm.xml     |   14 +
 .../processors_imageprocessing_jvm.xml             |   14 +
 .../processors_pattern_detection_flink.xml         |   15 +
 .../processors_statistics_flink.xml                |   15 +
 .../processors_textmining_flink.xml                |   15 +
 .../processors_textmining_jvm.xml                  |   14 +
 .../processors_transformation_flink.xml            |   15 +
 .../processors_transformation_jvm.xml              |   14 +
 .idea/runConfigurations/sinks_brokers_jvm.xml      |   14 +
 .idea/runConfigurations/sinks_databases_flink.xml  |   16 +
 .idea/runConfigurations/sinks_databases_jvm.xml    |   14 +
 .idea/runConfigurations/sinks_internal_jvm.xml     |   22 +
 .../runConfigurations/sinks_notifications_jvm.xml  |   23 +
 .../sources_vehicle_simulator_jvm.xml              |   16 +
 .../sources_watertank_simulator_jvm.xml            |   16 +
 .idea/runConfigurations/ui.xml                     |    9 +
 DISCLAIMER                                         |    5 +
 DISCLAIMER-WIP                                     |    8 -
 README.md                                          |   48 +-
 RELEASE_NOTES.md                                   |    3 +-
 .../README.md                                      |   18 +-
 .../pom.xml                                        |    2 +-
 .../META-INF/maven/archetype-metadata.xml          |   20 +-
 .../src/main/resources/archetype-resources/pom.xml |    4 +-
 .../archetype-resources/src/main/java/Init.java    |   55 +
 .../src/main/java/config/Config.java               |   56 +-
 .../src/main/java/config/ConfigKeys.java           |    7 +-
 .../src/main/java/main/Init.java                   |   57 -
 .../__packageName__/__classNamePrefix__.java       |   13 +-
 .../__classNamePrefix__Controller.java             |   23 +-
 .../__classNamePrefix__Parameters.java             |    2 -
 .../__classNamePrefix__Program.java                |    9 +-
 .../documentation.md                               |   20 +-
 .../icon.png                                       |  Bin 4836 -> 13563 bytes
 .../strings.en                                     |    2 +-
 .../README.md                                      |   18 +-
 .../pom.xml                                        |    2 +-
 .../META-INF/maven/archetype-metadata.xml          |   19 +-
 .../src/main/resources/archetype-resources/pom.xml |    4 +-
 .../archetype-resources/src/main/java/Init.java    |   54 +
 .../src/main/java/config/Config.java               |   41 +-
 .../src/main/java/config/ConfigKeys.java           |    4 +-
 .../src/main/java/main/Init.java                   |   58 -
 .../__packageName__/__classNamePrefix__.java       |   20 +-
 .../__classNamePrefix__Controller.java             |   15 +-
 .../__classNamePrefix__Parameters.java             |    3 +-
 .../documentation.md                               |   20 +-
 .../icon.png                                       |  Bin 4836 -> 13563 bytes
 .../strings.en                                     |    2 +-
 .../streampipes-archetype-pe-sinks-flink/README.md |   18 +-
 .../streampipes-archetype-pe-sinks-flink/pom.xml   |    2 +-
 .../META-INF/maven/archetype-metadata.xml          |   15 +-
 .../src/main/resources/archetype-resources/pom.xml |    4 +-
 .../archetype-resources/src/main/java/Init.java    |   53 +
 .../src/main/java/config/Config.java               |   55 +-
 .../src/main/java/config/ConfigKeys.java           |    6 +-
 .../src/main/java/main/Init.java                   |   62 -
 .../__classNamePrefix__Controller.java             |   20 +-
 .../__classNamePrefix__Parameters.java             |   24 +-
 .../__classNamePrefix__Program.java                |    5 +
 .../documentation.md                               |   19 +-
 .../__package__.pe.sink.__packageName__/icon.png   |  Bin 4836 -> 13563 bytes
 .../__package__.pe.sink.__packageName__/strings.en |   12 +-
 .../streampipes-archetype-pe-sinks-jvm/README.md   |   18 +-
 .../streampipes-archetype-pe-sinks-jvm/pom.xml     |    2 +-
 .../META-INF/maven/archetype-metadata.xml          |   17 +-
 .../src/main/resources/archetype-resources/pom.xml |    4 +-
 .../archetype-resources/src/main/java/Init.java    |   53 +
 .../src/main/java/config/Config.java               |   41 +-
 .../src/main/java/config/ConfigKeys.java           |    2 -
 .../src/main/java/main/Init.java                   |   61 -
 .../sink/__packageName__/__classNamePrefix__.java  |   23 +-
 .../__classNamePrefix__Controller.java             |   19 +-
 .../__classNamePrefix__Parameters.java             |   24 +-
 .../documentation.md                               |   19 +-
 .../__package__.pe.sink.__packageName__/icon.png   |  Bin 4836 -> 13563 bytes
 .../__package__.pe.sink.__packageName__/strings.en |   12 +-
 .../streampipes-archetype-pe-sources/README.md     |   18 +-
 .../streampipes-archetype-pe-sources/pom.xml       |    2 +-
 .../META-INF/maven/archetype-metadata.xml          |   13 +-
 .../main/resources/archetype-resources/Dockerfile  |    7 +-
 .../resources/archetype-resources/development/env  |    3 +-
 .../src/main/resources/archetype-resources/pom.xml |    4 +-
 .../archetype-resources/src/main/java/Init.java    |   37 +
 .../src/main/java/config/Config.java               |   40 +-
 .../src/main/java/config/ConfigKeys.java           |    4 +-
 .../src/main/java/main/Init.java                   |   38 -
 .../main/java/pe/__packageName__/DataSource.java   |   41 -
 .../__packageName__/__classNamePrefix__Stream.java |   52 -
 .../java/pe/source.__packageName__/DataSource.java |   41 +
 .../__classNamePrefix__Stream.java                 |   74 +
 .../documentation.md                               |   34 +
 .../__package__.pe.source.__packageName__/icon.png |  Bin 0 -> 13563 bytes
 .../strings.en                                     |    2 +
 docker-compose.yml                                 |   30 +-
 licenses/BSD_2-Clause                              |   14 -
 licenses/CDDL_1.0                                  |   83 -
 licenses/CDDL_1.1                                  |   88 -
 licenses/CDDL_LICENSE_1.1                          |   90 -
 licenses/EPL_1.0                                   |   83 -
 licenses/EPL_2.0                                   |   81 -
 licenses/Eclipse_Distribution_License_v1.0         |   11 -
 pom.xml                                            |   27 +-
 streampipes-app-file-export/pom.xml                |   10 +-
 streampipes-backend/pom.xml                        |   26 +-
 .../backend/StreamPipesBackendApplication.java     |   11 +-
 .../backend/StreamPipesResourceConfig.java         |   43 +-
 streampipes-code-generation/pom.xml                |    8 +-
 streampipes-commons/pom.xml                        |    2 +-
 streampipes-config/pom.xml                         |    4 +-
 streampipes-connect-container-master/pom.xml       |   19 +-
 .../init/AdapterMasterContainerResourceConfig.java |   18 +-
 .../master/management/FileManagement.java          |   79 -
 .../master/management/GuessManagement.java         |   69 +-
 .../master/management/SourcesManagement.java       |    1 +
 .../master/management/WorkerRestClient.java        |   32 +-
 .../container/master/rest/AdapterResource.java     |   49 +-
 .../master/rest/AdapterTemplateResource.java       |   47 +-
 .../container/master/rest/DescriptionResource.java |   27 +-
 .../container/master/rest/FileResource.java        |  114 -
 .../container/master/rest/GuessResource.java       |   53 +-
 .../master/rest/RuntimeResolvableResource.java     |   21 +-
 .../container/master/rest/SourcesResource.java     |    3 +-
 .../master/rest/WorkerAdministrationResource.java  |   17 +-
 streampipes-connect-container-worker/pom.xml       |    4 +-
 .../init/AdapterWorkerContainerResourceConfig.java |   14 +-
 .../worker/management/FileManagement.java          |   89 -
 .../worker/management/MasterRestClient.java        |   10 +-
 .../container/worker/rest/FileResource.java        |  106 -
 .../container/worker/rest/GuessResource.java       |   24 +-
 .../worker/rest/RuntimeResolvableResource.java     |   47 +-
 .../container/worker/rest/WorkerResource.java      |   63 +-
 streampipes-connect-container/pom.xml              |   12 +-
 .../connect/rest/AbstractContainerResource.java    |    9 +-
 streampipes-connect/pom.xml                        |   30 +-
 .../streampipes/connect/adapter/Adapter.java       |    4 +-
 .../adapter/exception/WorkerAdapterException.java  |   40 +
 .../TransformSchemaAdapterPipelineElement.java     |    2 +-
 .../elements/TransformStreamAdapterElement.java    |    4 +-
 streampipes-container-base/pom.xml                 |   12 +-
 streampipes-container-embedded/pom.xml             |    4 +-
 streampipes-container-standalone/pom.xml           |    6 +-
 .../PipelineElementContainerResourceConfig.java    |    2 -
 streampipes-container/pom.xml                      |   10 +-
 .../container/api/InvocableElement.java            |   34 +-
 .../container/html/model/Description.java          |    9 +
 .../html/page/WelcomePageGeneratorImpl.java        |    6 +-
 streampipes-dataformat-cbor/pom.xml                |    6 +-
 streampipes-dataformat-fst/pom.xml                 |    6 +-
 streampipes-dataformat-json/pom.xml                |    6 +-
 streampipes-dataformat-smile/pom.xml               |    6 +-
 streampipes-dataformat/pom.xml                     |    4 +-
 streampipes-logging/pom.xml                        |    2 +-
 streampipes-maven-plugin/pom.xml                   |    6 +-
 streampipes-measurement-units/pom.xml              |    4 +-
 streampipes-messaging-jms/pom.xml                  |    4 +-
 streampipes-messaging-kafka/pom.xml                |    4 +-
 .../kafka/config/ProducerConfigFactory.java        |    3 +
 streampipes-messaging-mqtt/pom.xml                 |    4 +-
 streampipes-messaging/pom.xml                      |    4 +-
 streampipes-model-client/pom.xml                   |   56 +-
 .../streampipes/model/client/VirtualSensor.java    |   52 -
 .../model/client/endpoint/RdfEndpoint.java         |    4 +
 .../model/client/endpoint/RdfEndpointItem.java     |    9 +
 .../model/client/file/FileMetadata.java            |    2 +
 .../client/matching/MatchingResultMessage.java     |    3 +
 .../client/messages/AppInstallationMessage.java    |   61 -
 .../model/client/messages/ErrorMessage.java        |   36 -
 .../model/client/messages/ErrorMessageLd.java      |   46 -
 .../streampipes/model/client/messages/Message.java |   88 -
 .../model/client/messages/MessageLd.java           |  136 -
 .../model/client/messages/Notification.java        |   71 -
 .../model/client/messages/NotificationLd.java      |  110 -
 .../model/client/messages/NotificationType.java    |   93 -
 .../model/client/messages/Notifications.java       |   98 -
 .../messages/ProaSenseNotificationMessage.java     |  113 -
 .../model/client/messages/SetupStatusMessage.java  |   73 -
 .../model/client/messages/SuccessMessage.java      |   40 -
 .../model/client/messages/SuccessMessageLd.java    |   42 -
 .../pipeline/DataSetModificationMessage.java       |   50 -
 .../model/client/pipeline/ElementComposition.java  |   79 -
 .../model/client/pipeline/Pipeline.java            |  148 -
 .../model/client/pipeline/PipelineCategory.java    |   74 -
 .../pipeline/PipelineElementRecommendation.java    |   79 -
 .../PipelineElementRecommendationMessage.java      |   69 -
 .../client/pipeline/PipelineElementStatus.java     |   54 -
 .../client/pipeline/PipelineModification.java      |   94 -
 .../PipelineModificationErrorDescription.java      |   42 -
 .../pipeline/PipelineModificationMessage.java      |   70 -
 .../client/pipeline/PipelineOperationStatus.java   |   93 -
 .../client/pipeline/PipelineStatusMessage.java     |   64 -
 .../client/pipeline/PipelineStatusMessageType.java |   46 -
 .../ContainerProvidedOptionsParameterRequest.java  |   84 -
 .../model/client/setup/InitialSettings.java        |   42 +-
 .../streampipes/model/client/user/Element.java     |    5 +-
 .../apache/streampipes/model/client/user/Role.java |    7 +-
 .../client/user/ShiroAuthenticationRequest.java    |    4 +
 .../apache/streampipes/model/client/user/User.java |   38 +-
 .../streampipes/model/client/util/DatasetUtil.java |   32 -
 streampipes-model-shared/pom.xml                   |   31 +
 .../model/shared/annotation/TsIgnore.java          |   22 +
 .../model/shared/annotation/TsModel.java           |   22 +
 streampipes-model/pom.xml                          |  174 +-
 .../org/apache/streampipes/model/AdapterType.java  |   16 +
 .../streampipes/model/DataProcessorType.java       |   15 +
 .../org/apache/streampipes/model/DataSinkType.java |   16 +
 .../apache/streampipes/model/ErrorMessageLd.java   |   46 +
 .../org/apache/streampipes/model/MessageLd.java    |  136 +
 .../apache/streampipes/model/NotificationLd.java   |  110 +
 .../org/apache/streampipes/model/SpDataSet.java    |    3 +-
 .../org/apache/streampipes/model/SpDataStream.java |   14 +-
 .../apache/streampipes/model/VirtualSensor.java    |   52 +
 .../model/base/AbstractStreamPipesEntity.java      |   13 +-
 .../model/base/ConsumableStreamPipesEntity.java    |    5 +-
 .../model/base/InvocableStreamPipesEntity.java     |   60 +-
 .../model/base/StreamPipesJsonLdContainer.java     |   10 +-
 .../model/base/UnnamedStreamPipesEntity.java       |   11 +-
 .../streampipes/model/connect/ListDescription.java |   56 -
 .../model/connect/adapter/AdapterDescription.java  |   20 +-
 .../connect/adapter/AdapterDescriptionList.java    |    2 +
 .../connect/adapter/AdapterSetDescription.java     |    5 +
 .../connect/adapter/AdapterStreamDescription.java  |    5 +
 .../adapter/GenericAdapterSetDescription.java      |    2 +
 .../adapter/GenericAdapterStreamDescription.java   |    2 +
 .../adapter/SpecificAdapterSetDescription.java     |    2 +
 .../adapter/SpecificAdapterStreamDescription.java  |    2 +
 .../model/connect/grounding/FormatDescription.java |    7 +-
 .../connect/grounding/FormatDescriptionList.java   |    2 +
 .../connect/grounding/ProtocolDescription.java     |    7 +-
 .../connect/grounding/ProtocolDescriptionList.java |    2 +
 .../model/connect/guess/GuessSchema.java           |    2 +
 .../rules/Schema/CreateNestedRuleDescription.java  |   56 -
 .../rules/Schema/DeleteRuleDescription.java        |   57 -
 .../connect/rules/Schema/MoveRuleDescription.java  |   71 -
 .../rules/Schema/RenameRuleDescription.java        |   70 -
 .../SchemaTransformationRuleDescription.java       |   33 -
 .../EventRateTransformationRuleDescription.java    |   66 -
 ...oveDuplicatesTransformationRuleDescription.java |   53 -
 .../StreamTransformationRuleDescription.java       |   33 -
 .../rules/TransformationRuleDescription.java       |   29 +
 .../rules/schema/CreateNestedRuleDescription.java  |   56 +
 .../rules/schema/DeleteRuleDescription.java        |   57 +
 .../connect/rules/schema/MoveRuleDescription.java  |   71 +
 .../rules/schema/RenameRuleDescription.java        |   70 +
 .../SchemaTransformationRuleDescription.java       |   34 +
 .../EventRateTransformationRuleDescription.java    |   66 +
 ...oveDuplicatesTransformationRuleDescription.java |   53 +
 .../StreamTransformationRuleDescription.java       |   37 +
 .../value/TimestampTransformationRuleMode.java     |    1 +
 .../value/ValueTransformationRuleDescription.java  |    7 +
 .../model/dashboard/DashboardEntity.java           |   14 +-
 .../model/dashboard/DashboardModel.java            |   11 +-
 .../model/dashboard/DashboardWidgetModel.java      |   21 +
 .../model/dashboard/DashboardWidgetSettings.java   |   13 +-
 .../model/dashboard/VisualizablePipeline.java      |   12 +
 .../model/graph/DataProcessorDescription.java      |    5 +-
 .../model/graph/DataProcessorInvocation.java       |   22 +-
 .../model/graph/DataSinkDescription.java           |    5 +-
 .../model/graph/DataSinkInvocation.java            |   20 +-
 .../model/graph/DataSourceDescription.java         |    9 +-
 .../model/grounding/EventGrounding.java            |   13 +-
 .../model/grounding/KafkaTransportProtocol.java    |   18 +
 .../model/grounding/TopicDefinition.java           |    5 +
 .../model/grounding/TransportProtocol.java         |   26 +-
 .../model/message/DataSetModificationMessage.java  |   51 +
 .../streampipes/model/message/ErrorMessage.java    |   43 +
 .../apache/streampipes/model/message/Message.java  |  102 +
 .../streampipes/model/message/Notification.java    |   75 +
 .../model/message/NotificationType.java            |   93 +
 .../streampipes/model/message/Notifications.java   |   63 +
 .../model/message/PipelineModificationMessage.java |   72 +
 .../model/message/PipelineStatusMessage.java       |   67 +
 .../model/message/PipelineStatusMessageType.java   |   46 +
 .../model/message/SetupStatusMessage.java          |   73 +
 .../streampipes/model/message/SuccessMessage.java  |   43 +
 .../streampipes/model/output/OutputStrategy.java   |   18 +-
 .../model/pipeline/ElementComposition.java         |   79 +
 .../streampipes/model/pipeline/Pipeline.java       |  152 ++
 .../model/pipeline/PipelineCategory.java           |   80 +
 .../pipeline/PipelineElementRecommendation.java    |   79 +
 .../PipelineElementRecommendationMessage.java      |   72 +
 .../model/pipeline/PipelineElementStatus.java      |   54 +
 .../model/pipeline/PipelineModification.java       |   94 +
 .../PipelineModificationErrorDescription.java      |   42 +
 .../model/pipeline/PipelineOperationStatus.java    |   96 +
 .../quality/EventPropertyQualityDefinition.java    |    7 +
 .../quality/EventStreamQualityDefinition.java      |    5 +
 .../model/quality/MeasurementProperty.java         |    7 +-
 .../ContainerProvidedOptionsParameterRequest.java  |   84 +
 .../model/runtime/RuntimeOptionsRequest.java       |   15 +-
 .../model/runtime/RuntimeOptionsResponse.java      |    7 +-
 .../streampipes/model/schema/EventProperty.java    |   15 +-
 .../model/schema/ValueSpecification.java           |    5 +
 .../model/staticproperty/FileStaticProperty.java   |   16 +
 .../staticproperty/FreeTextStaticProperty.java     |   12 +
 .../model/staticproperty/MappingProperty.java      |   13 +-
 .../model/staticproperty/MappingPropertyNary.java  |    5 +-
 .../model/staticproperty/OneOfStaticProperty.java  |    4 +
 .../RuntimeResolvableAnyStaticProperty.java        |    3 +-
 .../RuntimeResolvableOneOfStaticProperty.java      |    3 +-
 .../staticproperty/SelectionStaticProperty.java    |   12 +-
 .../model/staticproperty/StaticProperty.java       |   27 +
 .../org/apache/streampipes/model/user/User.java    |   77 -
 .../org/apache/streampipes/model/util/Cloner.java  |    2 +
 .../streampipes/model/util/RdfIdGenerator.java     |   32 +
 .../connect/adapter/AdapterDescriptionTest.java    |    6 +-
 streampipes-node-controller-container/pom.xml      |   14 +-
 .../management/pe/PipelineElementManager.java      |    2 +-
 streampipes-performance-tests/pom.xml              |   10 +-
 .../performance/pipeline/PipelineGenerator.java    |    4 +-
 streampipes-pipeline-management/pom.xml            |   34 +-
 .../manager/data/PipelineGraphBuilder.java         |    2 +-
 .../manager/endpoint/EndpointItemParser.java       |    6 +-
 .../manager/execution/http/GraphSubmitter.java     |   86 +-
 .../manager/execution/http/HttpRequestBuilder.java |    2 +-
 .../manager/execution/http/PipelineExecutor.java   |    8 +-
 .../execution/http/PipelineStorageService.java     |    2 +-
 .../execution/status/PipelineStatusManager.java    |    2 +-
 .../manager/matching/ConnectionStorageHandler.java |   51 +
 .../manager/matching/ConnectionValidator.java      |   74 +
 .../manager/matching/DataSetGroundingSelector.java |    2 +-
 .../matching/PipelineVerificationHandler.java      |  186 +-
 .../AbstractRequirementsSelectorGenerator.java     |   33 +
 .../EmptyRequirementsSelectorGenerator.java        |   47 +
 .../mapping/MappingPropertyCalculator.java         |   62 +
 .../mapping/RequirementsSelectorGenerator.java     |   57 +
 .../RequirementsSelectorGeneratorFactory.java      |   39 +
 .../CustomTransformOutputSchemaGenerator.java      |   12 +-
 .../output/TransformOutputSchemaGenerator.java     |   43 +-
 .../v2/mapping/MappingPropertyCalculator.java      |   62 -
 .../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 |   18 +-
 .../manager/recommender/ElementRecommender.java    |    6 +-
 .../remote/ContainerProvidedOptionsHandler.java    |   45 +-
 .../setup/CacheInitializationInstallationStep.java |    4 +-
 .../manager/setup/CouchDbInstallationStep.java     |    4 +-
 .../setup/EmpireInitializerInstallationStep.java   |    4 +-
 .../manager/setup/InstallationConfiguration.java   |   23 -
 .../manager/setup/InstallationStep.java            |    2 +-
 .../streampipes/manager/setup/Installer.java       |    4 +-
 .../setup/PipelineElementInstallationStep.java     |    4 +-
 .../setup/UserRegistrationInstallationStep.java    |    4 +-
 .../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      |   10 +-
 .../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 +-
 streampipes-rest-shared/pom.xml                    |   10 +-
 .../rest/shared/annotation/JacksonSerialized.java  |   30 +
 .../shared/serializer/GsonClientModelProvider.java |    7 +
 .../rest/shared/serializer/GsonJerseyProvider.java |   91 +-
 .../rest/shared/serializer/GsonWithIdProvider.java |   11 +-
 .../shared/serializer/GsonWithoutIdProvider.java   |   11 +-
 .../serializer/JacksonSerializationProvider.java   |   62 +
 .../rest/shared/serializer/JsonJerseyProvider.java |  111 +
 .../rest/shared/serializer/JsonLdProvider.java     |   11 +-
 .../streampipes/rest/shared/util/JsonLdUtils.java  |   25 +-
 .../streampipes/rest/shared/util/SpMediaType.java  |    4 +
 streampipes-rest/pom.xml                           |   18 +-
 .../org/apache/streampipes/rest/api/IPipeline.java |    2 +-
 .../streampipes/rest/api/IPipelineElementFile.java |    7 +-
 .../rest/api/dashboard/IVisualizablePipeline.java  |    2 +
 .../rest/impl/AbstractRestInterface.java           |   55 +-
 .../streampipes/rest/impl/Authentication.java      |    8 +-
 .../rest/impl/ContainerProvidedOptions.java        |    8 +-
 .../apache/streampipes/rest/impl/Deployment.java   |    4 +-
 .../rest/impl/InternalPipelineTemplates.java       |    2 +-
 .../apache/streampipes/rest/impl/Notification.java |    2 +-
 .../streampipes/rest/impl/OntologyContext.java     |    2 +-
 .../streampipes/rest/impl/OntologyKnowledge.java   |    2 +-
 .../rest/impl/OntologyPipelineElement.java         |   49 +-
 .../streampipes/rest/impl/PipelineCategory.java    |   16 +-
 .../rest/impl/PipelineElementCategory.java         |   19 +-
 .../streampipes/rest/impl/PipelineElementFile.java |   38 +-
 .../rest/impl/PipelineElementImport.java           |   49 +-
 .../rest/impl/PipelineElementRuntimeInfo.java      |    6 +-
 .../streampipes/rest/impl/PipelineTemplate.java    |    2 +-
 .../rest/impl/PipelineWithUserResource.java        |   76 +-
 .../apache/streampipes/rest/impl/RdfEndpoint.java  |   69 +-
 .../rest/impl/SemanticEventConsumer.java           |   49 +-
 .../rest/impl/SemanticEventProcessingAgent.java    |   58 +-
 .../rest/impl/SemanticEventProducer.java           |   54 +-
 .../org/apache/streampipes/rest/impl/Setup.java    |    7 +-
 .../org/apache/streampipes/rest/impl/User.java     |    3 +-
 .../streampipes/rest/impl/VirtualSensor.java       |    4 +-
 .../streampipes/rest/impl/dashboard/Dashboard.java |   32 +-
 .../rest/impl/dashboard/DashboardWidget.java       |   33 +-
 .../rest/impl/dashboard/VisualizablePipeline.java  |   46 +-
 .../rest/impl/datalake/DataLakeDashboard.java      |   30 +-
 .../rest/impl/datalake/DataLakeManagementV3.java   |   25 +
 .../impl/datalake/DataLakeNoUserResourceV3.java    |   15 +-
 .../rest/impl/datalake/DataLakeResourceV3.java     |   30 +-
 .../rest/impl/datalake/DataLakeWidgetResource.java |   25 +-
 .../impl/nouser/PipelineElementImportNoUser.java   |   40 +-
 .../rest/management/PipelineManagement.java        |    8 +-
 streampipes-sdk/pom.xml                            |    8 +-
 .../apache/streampipes/sdk/StaticProperties.java   |   39 +-
 ...AbstractConfigurablePipelineElementBuilder.java |  161 +-
 .../builder/AbstractProcessingElementBuilder.java  |    2 +-
 .../sdk/extractor/AbstractParameterExtractor.java  |   60 +-
 .../sdk/extractor/StaticPropertyExtractor.java     |    5 +
 .../streampipes/sdk/helpers/CodeLanguage.java      |    4 +-
 .../streampipes/sdk/helpers/EpRequirements.java    |    5 +
 .../apache/streampipes/sdk/helpers/Filetypes.java  |   42 +
 .../sdk/helpers/RequirementsSelector.java          |   36 +
 streampipes-serializers/pom.xml                    |   10 +-
 .../serializers/json/GsonSerializer.java           |   14 +-
 .../serializers/json/JacksonSerializer.java        |   34 +
 .../apache/streampipes/serializers/json/Utils.java |    2 +-
 .../jsonld/CustomAnnotationProvider.java           |   33 +-
 streampipes-sources/pom.xml                        |    4 +-
 streampipes-storage-api/pom.xml                    |    6 +-
 .../storage/api/IPipelineCategoryStorage.java      |    2 +-
 .../api/IPipelineElementConnectionStorage.java     |    2 +-
 .../api/IPipelineElementDescriptionStorage.java    |    7 +-
 .../streampipes/storage/api/IPipelineStorage.java  |    4 +-
 streampipes-storage-couchdb/pom.xml                |   12 +-
 .../couchdb/impl/ConnectionStorageImpl.java        |    2 +-
 .../couchdb/impl/PipelineCategoryStorageImpl.java  |    2 +-
 .../storage/couchdb/impl/PipelineStorageImpl.java  |    4 +-
 streampipes-storage-management/pom.xml             |    8 +-
 streampipes-storage-rdf4j/pom.xml                  |   12 +-
 .../rdf4j/impl/PipelineElementStorageRequests.java |   24 +-
 streampipes-test-utils/pom.xml                     |    4 +-
 streampipes-user-management/pom.xml                |    6 +-
 streampipes-vocabulary/pom.xml                     |    2 +-
 .../apache/streampipes/vocabulary/StreamPipes.java |    6 +
 streampipes-wrapper-distributed/pom.xml            |    8 +-
 streampipes-wrapper-flink/pom.xml                  |    4 +-
 streampipes-wrapper-kafka-streams/pom.xml          |    4 +-
 streampipes-wrapper-python/README.md               |   75 +-
 streampipes-wrapper-python/pom.xml                 |    6 +-
 streampipes-wrapper-python/requirements.txt        |    9 +-
 streampipes-wrapper-python/setup.py                |   12 +-
 streampipes-wrapper-python/streampipes/api.py      |   70 -
 .../streampipes/api/__init__.py                    |   16 +
 .../streampipes/api/resources/__init__.py          |   16 +
 .../streampipes/api/resources/base.py              |  129 +
 .../streampipes/api/resources/dummy.py             |   32 +
 .../streampipes/api/resources/processor.py         |   34 +
 .../streampipes/api/resources/welcome.py           |   45 +
 streampipes-wrapper-python/streampipes/api/rest.py |   49 +
 .../streampipes/api/templates/index.html           |   50 +
 .../streampipes/base/__init__.py                   |   16 +
 .../streampipes/base/banner.py                     |   26 +
 .../streampipes/configuration.py                   |   31 -
 streampipes-wrapper-python/streampipes/core.py     |   36 +-
 streampipes-wrapper-python/streampipes/declarer.py |   60 +
 streampipes-wrapper-python/streampipes/helper.py   |   28 -
 streampipes-wrapper-python/streampipes/manager.py  |   29 +-
 .../streampipes/model/__init__.py                  |   16 +
 .../streampipes/model/config_item.py               |   35 +
 .../streampipes/model/pipeline_element_config.py   |   96 +
 .../streampipes/submitter.py                       |   40 +
 .../streampipes/utils/__init__.py                  |   16 +
 .../streampipes/utils/register.py                  |   71 +
 streampipes-wrapper-siddhi/pom.xml                 |    4 +-
 streampipes-wrapper-spark/pom.xml                  |    8 +-
 streampipes-wrapper-standalone/pom.xml             |    4 +-
 streampipes-wrapper/pom.xml                        |   10 +-
 ui/{browserslist => .browserslistrc}               |    0
 ui/.gitignore                                      |    5 +-
 ui/angular.json                                    |   16 +-
 ui/deployment/app-routing.module.mst               |   70 +
 ui/deployment/app.module.mst                       |   77 -
 ui/deployment/appng5.module.mst                    |   58 +-
 ui/deployment/base-navigation.component.mst        |  102 +
 ui/deployment/dev/config.yml                       |    2 +-
 ui/deployment/home.service.mst                     |    6 +-
 ui/deployment/modules.yml                          |  124 +-
 ui/deployment/prebuild.js                          |   16 +-
 ui/deployment/rel/config.yml                       |    2 +-
 ui/deployment/state.config.mst                     |  183 --
 ui/deployment/toolbar.controller.mst               |  267 --
 ui/deployment/version.service.mst                  |   30 -
 ui/nginx_config/default.conf                       |   25 -
 ui/nginx_config/ssl.conf                           |   43 +-
 ui/package.json                                    |  126 +-
 ui/src/app/NS/XS.service.ts                        |   24 +-
 .../already-configured.can-activate.guard.ts       |   43 +
 .../_guards/auth.can-activate-children.guard.ts    |   58 +
 .../_guards/base-configured.can-activate.guard.ts  |   52 +
 .../app/_guards/configured.can-activate.guard.ts   |   40 +
 ui/src/app/_guards/logged-in.can-activate.guard.ts |   58 +
 ui/src/app/add/add.component.html                  |  114 +
 ui/src/app/add/add.component.scss                  |   40 +
 ui/src/app/add/add.component.ts                    |  195 ++
 ui/src/app/add/add.controller.ts                   |  219 --
 ui/src/app/add/add.html                            |  103 -
 ui/src/app/add/add.module.ts                       |   62 +-
 .../endpoint-item/endpoint-item.component.html     |   71 +
 .../endpoint-item/endpoint-item.component.scss     |   37 +
 .../endpoint-item/endpoint-item.component.ts       |  119 +
 .../add-endpoint/add-endpoint.component.html       |   62 +
 .../add-endpoint/add-endpoint.component.scss       |   19 +
 .../dialogs/add-endpoint/add-endpoint.component.ts |   78 +
 .../add-endpoint/add-endpoint.controller.ts        |   78 -
 .../dialogs/add-endpoint/add-endpoint.tmpl.html    |   67 -
 .../endpoint-installation.component.html           |   51 +
 .../endpoint-installation.component.scss           |   19 +
 .../endpoint-installation.component.ts             |  126 +
 .../endpoint-installation.controller.ts            |  128 -
 .../endpoint-installation.tmpl.html                |   60 -
 ui/src/app/add/endpoint-item.tmpl.html             |   77 -
 ui/src/app/add/filter/order-by.pipe.ts             |   41 +
 .../pipeline-element-installation-status.pipe.ts   |   35 +
 .../app/add/filter/pipeline-element-name.pipe.ts   |   34 +
 .../app/add/filter/pipeline-element-type.pipe.ts   |   34 +
 ui/src/app/add/services/add.service.ts             |   49 +
 ui/src/app/animation.ts                            |   47 +
 .../app-asset-monitoring.module.ts                 |    5 -
 .../dashboard-overview.component.html              |    2 +-
 .../app-image-labeling.component.html              |    6 +-
 .../app-image-labeling.component.ts                |   54 +-
 .../app/app-overview/app-overview.component.html   |    8 +-
 ui/src/app/app-overview/app-overview.component.ts  |   21 +-
 ui/src/app/app-overview/app-overview.module.ts     |    5 -
 ui/src/app/app-routing.module.ts                   |   78 +
 .../app-transport-monitoring.module.ts             |    5 -
 ui/src/app/app.component.html                      |   21 +
 ui/src/app/app.component.ts                        |   37 +
 ui/src/app/applinks/applinks.controller.ts         |   48 -
 ui/src/app/applinks/applinks.module.ts             |   27 -
 ui/src/app/applinks/applinks.tmpl.html             |   65 -
 .../app/configuration/configuration.component.html |    4 +
 ui/src/app/configuration/configuration.module.ts   |   58 +-
 .../datalake-configuration.component.css           |   17 +
 .../datalake-configuration.component.html          |   36 +
 .../datalake-configuration.component.ts            |   57 +
 .../adapter-description.component.css              |    0
 .../adapter-description.component.html             |   68 +
 .../adapter-description.component.ts               |  132 +
 .../data-marketplace.component.css                 |   84 +
 .../data-marketplace.component.html                |  101 +
 .../data-marketplace/data-marketplace.component.ts |  234 ++
 .../format-component/format.component.css          |    0
 .../format-component/format.component.html         |   21 +
 .../format-component/format.component.ts           |   72 +
 .../connect/{ => components}/format-form/csv.ts    |    0
 .../format-form/format-form.component.css          |    0
 .../format-form/format-form.component.html         |    0
 .../format-form/format-form.component.ts           |   81 +
 .../connect/{ => components}/format-form/format.ts |    0
 .../connect/{ => components}/format-form/json.ts   |    0
 .../format-list.component.css                      |    0
 .../format-list.component.html                     |    0
 .../format-list-component/format-list.component.ts |   59 +
 .../new-adapter/new-adapter.component.css          |    0
 .../new-adapter/new-adapter.component.html         |  253 ++
 .../new-adapter/new-adapter.component.ts           |  392 +++
 .../pipeline-element-runtime-info.component.html   |   50 +
 .../pipeline-element-runtime-info.component.scss   |   17 +
 .../pipeline-element-runtime-info.component.ts     |  107 +
 .../event-property-row.component.css               |    0
 .../event-property-row.component.html              |    0
 .../event-property-row.component.ts                |  186 ++
 .../event-schema-preview.component.css             |    0
 .../event-schema-preview.component.html            |    0
 .../event-schema-preview.component.ts              |   29 +
 .../event-schema/event-schema.component.css        |    0
 .../event-schema/event-schema.component.html       |    0
 .../event-schema/event-schema.component.ts         |  188 ++
 ui/src/app/connect/connect.component.ts            |    6 +-
 ui/src/app/connect/connect.module.ts               |  175 +-
 ui/src/app/connect/connect.service.ts              |   43 -
 .../adapter-description.component.html             |   75 -
 .../adapter-description.component.ts               |  132 -
 .../adapter-export-dialog.component.css            |   45 -
 .../adapter-export-dialog.component.ts             |   70 -
 .../adapter-export/adapter-export-dialog.html      |   46 -
 .../adapter-upload-dialog.component.ts             |   97 -
 .../adapter-upload/adapter-upload-dialog.html      |   56 -
 .../data-marketplace.component.css                 |  117 -
 .../data-marketplace.component.html                |  116 -
 .../data-marketplace/data-marketplace.component.ts |  230 --
 .../data-marketplace/data-marketplace.service.ts   |  225 --
 ui/src/app/connect/data-marketplace/filter.pipe.ts |   44 -
 .../adapter-export-dialog.component.scss           |   31 +
 .../adapter-export-dialog.component.ts             |   54 +
 .../adapter-export/adapter-export-dialog.html      |   34 +
 .../adapter-started-dialog.component.html          |   65 +
 .../adapter-started-dialog.component.scss          |   19 +
 .../adapter-started-dialog.component.ts            |  130 +
 .../adapter-upload-dialog.component.scss           |   20 +
 .../adapter-upload-dialog.component.ts             |   64 +
 .../adapter-upload/adapter-upload-dialog.html      |   47 +
 .../edit-data-type/edit-data-type.component.css    |   20 +
 .../edit-data-type/edit-data-type.component.html   |   25 +
 .../edit-data-type/edit-data-type.component.ts     |   43 +
 .../edit-event-property-list.component.css}        |    0
 .../edit-event-property-list.component.html        |   21 +
 .../edit-event-property-list.component.ts          |   32 +
 .../edit-event-property-primitive.component.css    |   21 +
 .../edit-event-property-primitive.component.html   |   44 +
 .../edit-event-property-primitive.component.ts     |   59 +
 .../edit-timestamp-property.component.css          |   23 +
 .../edit-timestamp-property.component.html         |   46 +
 .../edit-timestamp-property.component.ts           |   38 +
 .../edit-unit-transformation.component.css}        |    0
 .../edit-unit-transformation.component.html        |   49 +
 .../edit-unit-transformation.component.ts          |  137 +
 .../edit-event-property.component.css}             |    0
 .../edit-event-property.component.html             |   72 +
 .../edit-event-property.component.ts               |  149 ++
 .../file-management/file-management.component.html |   43 -
 .../file-management/file-management.component.ts   |   94 -
 .../file-management/service/filerest.service.ts    |   74 -
 ui/src/app/connect/filter/filter.pipe.ts           |   40 +
 ui/src/app/connect/filter/timestamp.pipe.ts        |    6 +-
 .../connect/format-component/format.component.html |   21 -
 .../connect/format-component/format.component.ts   |   72 -
 .../connect/format-form/format-form.component.ts   |   81 -
 .../format-list-component/format-list.component.ts |   59 -
 .../app/connect/model/AlternativeStaticProperty.ts |   37 -
 .../connect/model/AlternativesStaticProperty.ts    |   35 -
 ui/src/app/connect/model/AnyStaticProperty.ts      |   23 -
 ui/src/app/connect/model/ApplicationLink.ts        |   51 -
 ui/src/app/connect/model/BoundPipelineElement.ts   |   40 -
 .../app/connect/model/CollectionStaticProperty.ts  |   41 -
 .../app/connect/model/ColorPickerStaticProperty.ts |   33 -
 .../model/{message => }/ConfigurationInfo.ts       |    0
 .../app/connect/model/DataProcessorInvocation.ts   |   47 -
 ui/src/app/connect/model/DataSetDescription.ts     |   46 -
 ui/src/app/connect/model/DataSinkInvocation.ts     |   36 -
 ui/src/app/connect/model/DataStreamContainer.ts    |   37 -
 ui/src/app/connect/model/DataStreamDescription.ts  |   46 -
 ui/src/app/connect/model/FileStaticProperty.ts     |   56 -
 ui/src/app/connect/model/FreeTextStaticProperty.ts |   43 -
 ui/src/app/connect/model/GroupStaticProperty.ts    |   40 -
 .../connect/model/InvocableStreamPipesEntity.ts    |   43 -
 ui/src/app/connect/model/MappingPropertyNary.ts    |   42 -
 ui/src/app/connect/model/MappingPropertyUnary.ts   |   43 -
 ui/src/app/connect/model/NamedStreamPipesEntity.ts |   46 -
 ui/src/app/connect/model/OneOfStaticProperty.ts    |   23 -
 ui/src/app/connect/model/Option.ts                 |   44 -
 .../connect/model/PipelineTemplateDescription.ts   |   51 -
 .../model/PipelineTemplateDescriptionContainer.ts  |   37 -
 .../connect/model/PipelineTemplateInvocation.ts    |   46 -
 .../model/RuntimeResolvableAnyStaticProperty.ts    |   32 -
 .../model/RuntimeResolvableOneOfStaticProperty.ts  |   34 -
 ui/src/app/connect/model/SecretStaticProperty.ts   |   41 -
 .../app/connect/model/SelectionStaticProperty.ts   |   43 -
 ui/src/app/connect/model/StaticProperty.ts         |   60 -
 .../rules => }/TimestampTransformationRuleMode.ts  |    0
 ui/src/app/connect/model/URI.ts                    |   38 -
 .../app/connect/model/UnnamedStreamPipesEntity.ts  |   42 -
 .../connect/model/connect/AdapterDescription.ts    |   88 -
 .../model/connect/AdapterDescriptionList.ts        |   38 -
 .../connect/model/connect/AdapterSetDescription.ts |   38 -
 .../model/connect/AdapterStreamDescription.ts      |   38 -
 .../model/connect/GenericAdapterSetDescription.ts  |   39 -
 .../connect/GenericAdapterStreamDescription.ts     |   39 -
 .../model/connect/SpecificAdapterSetDescription.ts |   30 -
 .../connect/SpecificAdapterStreamDescription.ts    |   29 -
 .../model/connect/grounding/FormatDescription.ts   |   51 -
 .../connect/grounding/FormatDescriptionList.ts     |   38 -
 .../model/connect/grounding/ProtocolDescription.ts |   73 -
 .../connect/grounding/ProtocolDescriptionList.ts   |   38 -
 .../connect/grounding/ProtocolSetDescription.ts    |   29 -
 .../connect/grounding/ProtocolStreamDescription.ts |   29 -
 .../connect/rules/AddNestedRuleDescription.ts      |   39 -
 .../connect/rules/AddTimestampRuleDescription.ts   |   39 -
 .../rules/AddValueTransformationRuleDescription.ts |   43 -
 .../model/connect/rules/DeleteRuleDescription.ts   |   39 -
 .../EventRateTransformationRuleDescription.ts      |   43 -
 .../model/connect/rules/MoveRuleDesctiption.ts     |   44 -
 .../rules/RemoveDuplicatesRuleDescription.ts       |   39 -
 .../model/connect/rules/RenameRuleDescription.ts   |   44 -
 .../TimestampTransformationRuleDescription.ts      |   53 -
 .../connect/rules/TransformationRuleDescription.ts |   24 -
 .../connect/rules/UnitTransformRuleDescription.ts  |   49 -
 .../model/connect/runtime/RuntimeOptionsRequest.ts |   41 -
 .../connect/runtime/RuntimeOptionsResponse.ts      |   41 -
 ui/src/app/connect/model/message/ErrorMessage.ts   |   31 -
 ui/src/app/connect/model/message/MessageLd.ts      |   42 -
 ui/src/app/connect/model/message/Notification.ts   |   28 -
 ui/src/app/connect/model/message/NotificationLd.ts |   41 -
 ui/src/app/connect/model/message/StatusMessage.ts  |   28 -
 ui/src/app/connect/model/message/SuccessMessage.ts |   31 -
 .../connect/model/output/AppendOutputStrategy.ts   |   34 -
 .../connect/model/output/CustomOutputStrategy.ts   |   38 -
 .../model/output/CustomTransformOutputStrategy.ts  |   34 -
 .../connect/model/output/FixedOutputStrategy.ts    |   34 -
 .../app/connect/model/output/KeepOutputStrategy.ts |   36 -
 .../app/connect/model/output/ListOutputStrategy.ts |   33 -
 ui/src/app/connect/model/output/OutputStrategy.ts  |   40 -
 .../app/connect/model/output/PropertyRenameRule.ts |   40 -
 .../app/connect/model/output/TransformOperation.ts |   43 -
 .../connect/model/output/TransformOperationType.ts |   19 -
 .../model/output/TransformOutputStrategy.ts        |   37 -
 .../component/adapter-started-dialog.component.css |   33 -
 .../component/adapter-started-dialog.component.ts  |  158 --
 .../component/dialog-adapter-started.html          |  102 -
 ui/src/app/connect/new-adapter/icon.service.ts     |   40 -
 .../connect/new-adapter/new-adapter.component.html |  230 --
 .../new-adapter/new-adapter.component.spec.ts      |   79 -
 .../connect/new-adapter/new-adapter.component.ts   |  348 ---
 .../protocol-component/protocol.component.css      |   80 -
 .../protocol-component/protocol.component.html     |   19 -
 .../protocol-component/protocol.component.ts       |   58 -
 .../protocol-list.component.css                    |   26 -
 .../protocol-list.component.html                   |   25 -
 .../protocol-list.component.ts                     |   60 -
 ui/src/app/connect/rdfmapper/Person.ts             |   24 -
 ui/src/app/connect/rdfmapper/rdfmapper.service.ts  |   61 -
 ui/src/app/connect/rest.service.ts                 |  190 --
 .../app/connect/schema-editor/data-type.service.ts |   66 -
 .../event-property-list.component.html             |   27 -
 .../event-property-list.component.ts               |   47 -
 .../event-property-primitive.component.html        |  123 -
 .../event-property-primitive.component.ts          |  183 --
 .../event-property-row.component.ts                |  193 --
 .../event-property/event-property.component.html   |   81 -
 .../event-property/event-property.component.ts     |  159 --
 .../event-schema-preview.component.ts              |   29 -
 .../event-schema/event-schema.component.ts         |  166 --
 .../model/DomainPropertyProbability.ts             |   40 -
 .../model/DomainPropertyProbabilityList.ts         |   39 -
 .../app/connect/schema-editor/model/Enumeration.ts |   58 -
 .../connect/schema-editor/model/EventProperty.ts   |  101 -
 .../schema-editor/model/EventPropertyList.ts       |   48 -
 .../schema-editor/model/EventPropertyNested.ts     |   50 -
 .../schema-editor/model/EventPropertyPrimitive.ts  |   98 -
 .../app/connect/schema-editor/model/EventSchema.ts |   53 -
 .../app/connect/schema-editor/model/ExampleNode.ts |   32 -
 .../app/connect/schema-editor/model/GuessSchema.ts |   39 -
 .../schema-editor/model/QuantitativeValue.ts       |   44 -
 .../connect/schema-editor/unit-provider.service.ts | 2131 ---------------
 .../select-protocol-component/input.validator.ts   |   49 -
 .../connect/select-protocol-component/protocol.ts  |   36 -
 .../select-protocol.component.css                  |   22 -
 .../select-protocol.component.html                 |   24 -
 .../select-protocol.component.ts                   |  142 -
 .../select-static-properties.component.css         |   26 -
 .../select-static-properties.component.html        |   22 -
 .../select-static-properties.component.ts          |   62 -
 ui/src/app/connect/services/connect.service.ts     |   45 +
 .../connect/services/data-marketplace.service.ts   |  214 ++
 ui/src/app/connect/services/data-type.service.ts   |   75 +
 ui/src/app/connect/services/icon.service.ts        |   40 +
 ui/src/app/connect/services/rest.service.ts        |  129 +
 .../services/transformation-rule.service.spec.ts   |  289 ++
 .../services/transformation-rule.service.ts        |  454 ++++
 .../app/connect/services/unit-provider.service.ts  | 2133 +++++++++++++++
 .../static-alternatives.component.html             |   65 -
 .../static-alternatives.component.ts               |   91 -
 .../static-any-input.component.html                |   46 -
 .../static-any-input/static-any-input.component.ts |   40 -
 .../static-collection.component.html               |   68 -
 .../static-collection.component.ts                 |   77 -
 .../static-color-picker.component.html             |   36 -
 .../static-color-picker.component.ts               |   72 -
 .../static-file-input.component.css                |   38 -
 .../static-file-input.component.html               |   54 -
 .../static-file-input.component.ts                 |   94 -
 .../static-free-input.component.css                |   31 -
 .../static-free-input.component.html               |   34 -
 .../static-free-input.component.ts                 |   72 -
 .../static-group/static-group.component.html       |   38 -
 .../static-group/static-group.component.ts         |   53 -
 .../static-mapping-nary.component.html             |   37 -
 .../static-mapping-nary.component.scss             |   32 -
 .../static-mapping-nary.component.ts               |  118 -
 .../static-mapping-unary.component.html            |   37 -
 .../static-mapping-unary.component.ts              |   94 -
 .../static-mapping/static-mapping.ts               |   38 -
 .../static-number-input.component.css              |   30 -
 .../static-number-input.component.html             |   31 -
 .../static-number-input.component.ts               |   80 -
 .../static-one-of-input.component.css              |   34 -
 .../static-one-of-input.component.html             |   55 -
 .../static-one-of-input.component.ts               |   62 -
 .../static-property-util.service.ts                |  175 --
 .../static-property.component.css                  |   27 -
 .../static-property.component.html                 |   87 -
 .../static-properties/static-property.component.ts |  160 --
 ...tic-runtime-resolvable-any-input.component.html |   43 -
 ...tatic-runtime-resolvable-any-input.component.ts |   50 -
 ...c-runtime-resolvable-oneof-input.component.html |   61 -
 ...tic-runtime-resolvable-oneof-input.component.ts |  106 -
 .../static-secret-input.component.html             |   34 -
 .../static-secret-input.component.ts               |   72 -
 .../static-text-input.component.css                |   25 -
 .../static-text-input.component.html               |   32 -
 .../static-text-input.component.ts                 |   79 -
 .../static-url-input.component.css                 |   24 -
 .../static-url-input.component.html                |   31 -
 .../static-url-input/static-url-input.component.ts |   67 -
 .../connect/transformation-rule.service.spec.ts    |  274 --
 ui/src/app/connect/transformation-rule.service.ts  |  420 ---
 ui/src/app/core-model/dashboard/DashboardWidget.ts |   48 -
 .../dashboard/DashboardWidgetSettings.ts           |   49 -
 .../core-model/dashboard/VisualizablePipeline.ts   |   54 -
 .../core-model/datalake/DataExplorerWidgetModel.ts |   52 -
 ui/src/app/core-model/datalake/DataLakeMeasure.ts  |   34 -
 ui/src/app/core-model/datalake/DateRange.ts        |    7 -
 .../app/core-model/gen/streampipes-model-client.ts |   84 +
 ui/src/app/core-model/gen/streampipes-model.ts     | 2814 ++++++++++++++++++++
 .../datalake/datalake-rest.service.ts              |   17 +-
 .../semantic-type/semantic-type-utils.service.ts   |   18 +-
 .../shared/shared-dashboard.service.ts             |   11 +-
 ui/src/app/core-ui/core-ui.module.ts               |  142 +-
 .../dialog/base-dialog/base-dialog.component.ts    |   60 +
 .../dialog/base-dialog/base-dialog.config.ts       |   26 +
 .../dialog/base-dialog/base-dialog.model.ts        |   41 +
 .../dialog/base-dialog/base-dialog.service.ts      |  102 +
 .../app/core-ui/dialog/base-dialog/dialog-ref.ts   |   59 +
 .../confirm-dialog/confirm-dialog.component.html   |   28 +
 .../confirm-dialog/confirm-dialog.component.scss   |   23 +
 .../confirm-dialog/confirm-dialog.component.ts     |   37 +
 .../panel-dialog/panel-dialog.component.html       |   29 +
 .../panel-dialog/panel-dialog.component.scss       |   56 +
 .../dialog/panel-dialog/panel-dialog.component.ts  |   73 +
 .../dialog/panel-dialog/panel-dialog.config.ts     |   44 +
 .../standard-dialog/standard-dialog.component.html |   29 +
 .../standard-dialog/standard-dialog.component.scss |   62 +
 .../standard-dialog/standard-dialog.component.ts   |   41 +
 .../standard-dialog/standard-dialog.config.ts      |   49 +
 .../components/image-bar/image-bar.component.css   |   12 +-
 .../components/image-bar/image-bar.component.html  |   27 +-
 .../components/image-bar/image-bar.component.ts    |   34 +-
 .../image-container/image-container.component.ts   |   23 +-
 .../image-categorize.component.html                |   18 +-
 .../image-categorize/image-categorize.component.ts |    9 +-
 .../image-labeling/image-labeling.component.html   |   26 +-
 .../image-labeling/image-labeling.component.ts     |  196 +-
 .../image/image-viewer/image-viewer.component.html |   15 +-
 .../image/image-viewer/image-viewer.component.ts   |  107 +-
 ui/src/app/core-ui/image/image.component.ts        |    5 +-
 .../base/abstract-static-property.ts               |   67 +
 .../base/abstract-validated-static-property.ts     |   60 +
 .../filter/display-recommended.pipe.ts             |   44 +
 .../core-ui/static-properties/input.validator.ts   |   46 +
 .../static-alternatives.component.css              |    0
 .../static-alternatives.component.html             |   60 +
 .../static-alternatives.component.ts               |   55 +
 .../static-any-input.component.css                 |    0
 .../static-any-input.component.html                |   39 +
 .../static-any-input/static-any-input.component.ts |   45 +
 .../static-code-input.component.html               |   34 +
 .../static-code-input.component.scss               |   22 +
 .../static-code-input.component.ts                 |  100 +
 .../static-collection.component.css                |    0
 .../static-collection.component.html               |   49 +
 .../static-collection.component.ts                 |   66 +
 .../static-color-picker.component.css              |    0
 .../static-color-picker.component.html             |   31 +
 .../static-color-picker.component.ts               |   60 +
 .../static-file-input.component.css                |   34 +
 .../static-file-input.component.html               |   77 +
 .../static-file-input.component.ts                 |  129 +
 .../static-file-input/static-file-rest.service.ts  |    0
 .../static-free-input.component.html               |   57 +
 .../static-free-input.component.scss               |   37 +
 .../static-free-input.component.ts                 |  115 +
 .../static-group/static-group.component.css        |    0
 .../static-group/static-group.component.html       |   50 +
 .../static-group/static-group.component.ts         |   39 +
 .../static-mapping-nary.component.html             |   34 +
 .../static-mapping-nary.component.scss             |   32 +
 .../static-mapping-nary.component.ts               |   98 +
 .../static-mapping-unary.component.css             |    0
 .../static-mapping-unary.component.html            |   30 +
 .../static-mapping-unary.component.ts              |   62 +
 .../static-mapping/static-mapping.ts               |   78 +
 .../static-one-of-input.component.css              |   40 +
 .../static-one-of-input.component.html             |   50 +
 .../static-one-of-input.component.ts               |   63 +
 .../static-property-util.service.ts                |  178 ++
 .../static-property.component.css                  |   41 +
 .../static-property.component.html                 |  146 +
 .../static-properties/static-property.component.ts |  170 ++
 ...atic-runtime-resolvable-any-input.component.css |    0
 ...tic-runtime-resolvable-any-input.component.html |   53 +
 ...tatic-runtime-resolvable-any-input.component.ts |   49 +
 .../base-runtime-resolvable-input.ts               |   98 +
 .../runtime-resolvable.service.ts                  |   61 +
 ...ic-runtime-resolvable-oneof-input.component.css |    0
 ...c-runtime-resolvable-oneof-input.component.html |   62 +
 ...tic-runtime-resolvable-oneof-input.component.ts |   52 +
 .../static-secret-input.component.css              |    0
 .../static-secret-input.component.html             |   36 +
 .../static-secret-input.component.ts               |   58 +
 ui/src/app/core/button/button.directive.ts         |  115 -
 .../core/components/base-navigation.component.ts   |  129 +
 .../components/feedback/feedback.component.html    |   64 +
 .../core/components/feedback/feedback.component.ts |   60 +
 .../core/components/iconbar/iconbar.component.html |   47 +
 .../core/components/iconbar/iconbar.component.ts   |   73 +
 .../streampipes/streampipes.component.html         |   40 +
 .../streampipes/streampipes.component.scss         |   23 +
 .../streampipes/streampipes.component.ts           |   33 +
 .../core/components/toolbar/toolbar.component.html |   81 +
 .../core/components/toolbar/toolbar.component.scss |   22 +
 .../core/components/toolbar/toolbar.component.ts   |   77 +
 ui/src/app/core/core.module.ts                     |   69 +-
 ui/src/app/core/http-provider.config.ts            |   25 -
 ui/src/app/core/icon-provider.config.ts            |   45 -
 ui/src/app/core/md-theming-provider.config.ts      |   70 -
 ui/src/app/core/prism/nag-prism.directive.ts       |   63 -
 ui/src/app/core/root-scope-delegate.decorator.ts   |   28 -
 ui/src/app/core/working.state.config.ts            |  210 --
 .../components/grid/dashboard-grid.component.ts    |    6 +-
 .../overview/dashboard-overview.component.ts       |   12 +-
 .../components/panel/dashboard-panel.component.ts  |   21 +-
 .../standalone/standalone-dashboard.component.ts   |   20 +-
 .../widget/dashboard-widget.component.ts           |   29 +-
 .../components/widgets/base/base-config.ts         |    2 +-
 .../widgets/base/base-ngx-charts-widget.ts         |    4 +-
 .../widgets/base/base-ngx-line-charts-widget.ts    |    2 +
 .../widgets/base/base-ngx-line-config.ts           |    2 +-
 .../components/widgets/base/base-widget.ts         |   11 +-
 .../components/widgets/gauge/gauge-config.ts       |    2 +-
 .../components/widgets/html/html-config.ts         |    2 +-
 .../components/widgets/image/image-config.ts       |    2 +-
 .../dashboard/components/widgets/map/map-config.ts |    2 +-
 .../components/widgets/number/number-config.ts     |    2 +-
 .../widgets/number/number-widget.component.ts      |    3 +-
 .../components/widgets/pallet/pallet-config.ts     |   43 -
 .../components/widgets/pallet/pallet.component.css |   16 -
 .../widgets/pallet/pallet.component.html           |   18 -
 .../components/widgets/pallet/pallet.component.ts  |   78 -
 .../components/widgets/pallet/pallet_functions.ts  |   82 -
 .../dashboard/components/widgets/raw/raw-config.ts |    2 +-
 .../components/widgets/table/table-config.ts       |    4 +-
 .../widgets/table/table-widget.component.ts        |    2 +-
 .../widgets/trafficlight/traffic-light-config.ts   |    2 +-
 ui/src/app/dashboard/dashboard.module.ts           |  102 +-
 .../add-visualization-dialog.component.html        |   38 +-
 .../add-visualization-dialog.component.scss        |   31 +-
 .../add-visualization-dialog.component.ts          |   88 +-
 .../dashboard/registry/widget-config-builder.ts    |   25 +-
 ui/src/app/dashboard/registry/widget-registry.ts   |   11 +-
 .../dashboard/sdk/collected-schema-requirements.ts |   14 +-
 ui/src/app/dashboard/sdk/ep-requirements.ts        |   32 +-
 .../sdk/extractor/static-property-extractor.ts     |   21 +-
 .../sdk/matching/domain-property-match.ts          |   10 +-
 .../sdk/matching/mapping-property-generator.ts     |    5 +-
 .../sdk/matching/primitive-property-match.ts       |    4 +-
 .../app/dashboard/sdk/matching/property-match.ts   |    8 +-
 ui/src/app/dashboard/sdk/matching/schema-match.ts  |    2 +-
 .../dashboard/sdk/schema-requirements-builder.ts   |   36 +-
 ui/src/app/dashboard/services/dashboard.service.ts |  127 +-
 .../datadownloadDialog/dataDownload.dialog.ts      |   10 +-
 .../data-explorer-dashboard-grid.component.css     |   31 -
 .../data-explorer-dashboard-grid.component.html    |    2 +-
 .../data-explorer-dashboard-grid.component.scss    |   41 +
 .../grid/data-explorer-dashboard-grid.component.ts |   38 +-
 .../data-explorer-dashboard-overview.component.css |   25 -
 ...data-explorer-dashboard-overview.component.html |   95 +-
 ...data-explorer-dashboard-overview.component.scss |   49 +
 .../data-explorer-dashboard-overview.component.ts  |    8 +-
 .../data-explorer-dashboard-panel.component.html   |   14 +-
 .../data-explorer-dashboard-panel.component.ts     |   32 +-
 .../time-selector/timeRangeSelector.component.css  |   29 -
 .../time-selector/timeRangeSelector.component.html |   74 +-
 .../time-selector/timeRangeSelector.component.scss |   52 +
 .../time-selector/timeRangeSelector.component.ts   |   16 +-
 .../data-explorer-dashboard-widget.component.css   |   53 -
 .../data-explorer-dashboard-widget.component.html  |   17 +-
 .../data-explorer-dashboard-widget.component.scss  |   55 +
 .../data-explorer-dashboard-widget.component.ts    |   13 +-
 .../components/widgets/base/base-config.ts         |    4 +-
 .../widgets/base/base-data-explorer-widget.ts      |   69 +-
 .../widgets/base/base-ngx-charts-widget.ts         |   75 -
 .../components/widgets/image/image-config.ts       |    6 +-
 .../widgets/image/image-widget.component.css       |    6 +-
 .../widgets/image/image-widget.component.html      |   35 +-
 .../widgets/image/image-widget.component.ts        |   66 +-
 .../widgets/line-chart/line-chart-config.ts        |    6 +-
 .../line-chart/line-chart-widget.component.css     |   14 +-
 .../line-chart/line-chart-widget.component.html    |  134 +-
 .../line-chart/line-chart-widget.component.ts      |   49 +-
 .../datadownloadDialog/dataDownload.dialog.css     |   56 -
 .../datadownloadDialog/dataDownload.dialog.html    |  100 -
 .../datadownloadDialog/dataDownload.dialog.ts      |  196 --
 .../base/baseVisualisation.component.ts            |  146 -
 .../linechart/lineChart.component.css              |   23 -
 .../linechart/lineChart.component.html             |   54 -
 .../linechart/lineChart.component.ts               |  548 ----
 .../table/table.component.css                      |   27 -
 .../table/table.component.html                     |   66 -
 .../table/table.component.ts                       |   99 -
 .../old-explorer.component.html                    |  289 --
 .../old-explorer-widget/old-explorer.component.ts  |  417 ---
 .../widgets/old-explorer-widget/old-explorer.css   |   85 -
 .../components/widgets/table/table-config.ts       |    7 +-
 .../widgets/table/table-widget.component.css       |   37 -
 .../widgets/table/table-widget.component.html      |   51 +-
 .../widgets/table/table-widget.component.scss      |   38 +
 .../widgets/table/table-widget.component.ts        |   29 +-
 .../aggregate-configuration.component.html         |    8 +-
 .../aggregate-configuration.component.ts           |    3 +-
 .../group-configuration.component.ts               |    6 +-
 .../load-data-spinner.component.html               |   10 +-
 .../load-data-spinner.component.ts                 |    2 +-
 .../no-data/no-data-in-date-range.component.ts     |    4 +-
 .../select-properties.component.html               |    2 +-
 .../select-properties.component.ts                 |   10 +-
 .../app/data-explorer/data-explorer.component.css  |   62 +
 .../app/data-explorer/data-explorer.component.html |   39 +-
 .../app/data-explorer/data-explorer.component.ts   |   22 +-
 ui/src/app/data-explorer/data-explorer.module.ts   |  125 +-
 ...explorer-add-visualization-dialog.component.css |   16 +
 ...xplorer-add-visualization-dialog.component.html |   39 +-
 ...-explorer-add-visualization-dialog.component.ts |   15 +-
 ...ata-explorer-edit-data-view-dialog.component.ts |    8 +-
 .../models/dataview-dashboard.model.ts             |    5 +
 .../registry/data-explorer-widget-registry.ts      |   14 +-
 .../registry/widget-config-builder.ts              |   13 +-
 .../sdk/collected-schema-requirements.ts           |   11 +-
 ui/src/app/data-explorer/sdk/ep-requirements.ts    |   22 +-
 .../sdk/extractor/static-property-extractor.ts     |   16 +-
 .../sdk/matching/domain-property-match.ts          |   10 +-
 .../sdk/matching/mapping-property-generator.ts     |    4 +-
 .../sdk/matching/primitive-property-match.ts       |    4 +-
 .../data-explorer/sdk/matching/property-match.ts   |    8 +-
 .../sdk/schema-requirements-builder.ts             |   23 +-
 .../data-explorer/services/data-lake.service.ts    |    2 +-
 .../services/data-view-data-explorer.service.ts    |   74 +-
 .../services/refresh-dashboard.service.ts          |    4 +-
 .../app/data-explorer/services/resize.service.ts   |    6 +-
 ui/src/app/editor/capitalize.filter.ts             |   39 -
 .../alternative/alternative.component.ts           |   33 -
 .../alternative/alternative.controller.ts          |   38 -
 .../components/alternative/alternative.tmpl.html   |   30 -
 .../components/any-remote/any-remote.component.ts  |   31 -
 .../components/any-remote/any-remote.controller.ts |  101 -
 .../components/any-remote/any-remote.tmpl.html     |   38 -
 ui/src/app/editor/components/any/any.component.ts  |   30 -
 ui/src/app/editor/components/any/any.controller.ts |   25 -
 ui/src/app/editor/components/any/any.tmpl.html     |   23 -
 .../components/code/code-editor.directive.ts       |   91 -
 .../app/editor/components/code/code.component.ts   |   33 -
 .../app/editor/components/code/code.controller.ts  |   44 -
 ui/src/app/editor/components/code/code.tmpl.html   |   33 -
 .../components/collection/collection.component.ts  |   30 -
 .../components/collection/collection.controller.ts |   51 -
 .../components/collection/collection.tmpl.html     |   60 -
 .../customize/customize-dialog.component.ts        |   34 -
 .../customize/customize-dialog.controller.ts       |   43 -
 .../customize/customize-dialog.tmpl.html           |   96 -
 .../customoutput/customoutput.component.ts         |   33 -
 .../customoutput/customoutput.controller.ts        |   57 -
 .../components/customoutput/customoutput.tmpl.html |   49 -
 .../property-selection.component.ts                |   34 -
 .../property-selection.controller.ts               |   46 -
 .../propertyselection/property-selection.tmpl.html |   33 -
 .../domainconcept/domainconcept.component.ts       |   31 -
 .../domainconcept/domainconcept.controller.ts      |   99 -
 .../domainconcept/domainconcept.tmpl.html          |   49 -
 ui/src/app/editor/components/draggable-icon.html   |   25 -
 .../components/fileupload/fileupload.component.ts  |   34 -
 .../components/fileupload/fileupload.controller.ts |   75 -
 .../components/fileupload/fileupload.tmpl.html     |   39 -
 .../components/freetext/freetext.component.ts      |   33 -
 .../components/freetext/freetext.controller.ts     |   96 -
 .../editor/components/freetext/freetext.tmpl.html  |   98 -
 .../app/editor/components/group/group.component.ts |   34 -
 .../editor/components/group/group.controller.ts    |   33 -
 ui/src/app/editor/components/group/group.tmpl.html |   26 -
 .../mappingnary/mappingnary.component.ts           |   33 -
 .../mappingnary/mappingnary.controller.ts          |   86 -
 .../components/mappingnary/mappingnary.tmpl.html   |   35 -
 .../mappingunary/mappingunary.component.ts         |   33 -
 .../mappingunary/mappingunary.controller.ts        |   65 -
 .../components/mappingunary/mappingunary.tmpl.html |   26 -
 .../matchingproperty/matchingproperty.component.ts |   30 -
 .../matchingproperty.controller.ts                 |   24 -
 .../matchingproperty/matchingproperty.tmpl.html    |   28 -
 .../multivalue/multiple-value-input.component.ts   |   30 -
 .../multivalue/multiple-value-input.controller.ts  |   54 -
 .../multivalue/multiple-value-input.tmpl.html      |   50 -
 .../oneof-remote/oneof-remote.component.ts         |   31 -
 .../oneof-remote/oneof-remote.controller.ts        |  115 -
 .../components/oneof-remote/oneof-remote.tmpl.html |   38 -
 .../app/editor/components/oneof/oneof.component.ts |   30 -
 .../editor/components/oneof/oneof.controller.ts    |   45 -
 ui/src/app/editor/components/oneof/oneof.tmpl.html |   25 -
 .../output-strategy/base/BaseOutputStrategy.ts     |   45 +
 .../custom-output-strategy.component.html          |   51 +
 .../custom-output-strategy.component.scss}         |    0
 .../custom-output-strategy.component.ts            |   72 +
 .../output-strategy/output-strategy.component.html |   43 +
 .../output-strategy/output-strategy.component.scss |   24 +
 .../output-strategy/output-strategy.component.ts   |   50 +
 .../property-selection.component.html              |   40 +
 .../property-selection.component.scss              |   21 +
 .../property-selection.component.ts                |   80 +
 .../user-defined-output.component.html             |   64 +
 .../user-defined-output.component.scss}            |    0
 .../user-defined-output.component.ts               |  102 +
 .../pipeline-assembly.component.html               |  111 +
 .../pipeline-assembly.component.scss               |   30 +
 .../pipeline-assembly.component.ts                 |  240 +-
 .../pipeline-assembly.controller.ts                |  246 --
 .../pipeline-assembly/pipeline-assembly.tmpl.html  |  118 -
 .../pipeline-element-documentation.component.html  |   24 +
 .../pipeline-element-documentation.component.scss} |    0
 .../pipeline-element-documentation.component.ts    |   47 +-
 .../pipeline-element-documentation.controller.ts   |   43 -
 .../pipeline-element-documentation.tmpl.html       |   24 -
 .../pipeline-element-icon-stand.component.html     |   71 +
 .../pipeline-element-icon-stand.component.scss     |   42 +
 .../pipeline-element-icon-stand.component.ts       |  172 +-
 .../pipeline-element-icon-stand.controller.ts      |  110 -
 .../pipeline-element-icon-stand.tmpl.html          |   87 -
 .../pipeline-element-options.component.css         |   17 +
 .../pipeline-element-options.component.html        |   69 +
 .../pipeline-element-options.component.ts          |  184 +-
 .../pipeline-element-options.controller.ts         |  151 --
 .../pipeline-element-options.tmpl.html             |   92 -
 .../pipeline-element-recommendation.component.html |   32 +
 .../pipeline-element-recommendation.component.scss |   17 +
 .../pipeline-element-recommendation.component.ts   |  151 +-
 .../pipeline-element-recommendation.controller.ts  |  101 -
 .../pipeline-element-recommendation.tmpl.html      |   30 -
 .../pipeline-element.component.css}                |    0
 .../pipeline-element.component.html                |   22 +
 .../pipeline-element/pipeline-element.component.ts |   90 +-
 .../pipeline-element.controller.ts                 |   77 -
 .../pipeline-element/pipeline-element.tmpl.html    |   22 -
 .../components/pipeline/pipeline.component.css}    |    0
 .../components/pipeline/pipeline.component.html    |   48 +
 .../components/pipeline/pipeline.component.ts      |  428 ++-
 .../components/pipeline/pipeline.controller.ts     |  350 ---
 .../editor/components/pipeline/pipeline.tmpl.html  |   45 -
 ui/src/app/editor/components/popup.html            |   25 -
 .../replaceoutput/replaceoutput.component.ts       |   31 -
 .../replaceoutput/replaceoutput.controller.ts      |   25 -
 .../replaceoutput/replaceoutput.tmpl.html          |   30 -
 .../editor/components/secret/secret.component.ts   |   31 -
 .../editor/components/secret/secret.controller.ts  |   49 -
 .../app/editor/components/secret/secret.tmpl.html  |   28 -
 .../topic/topic-selection-dialog.component.ts      |   32 -
 .../topic/topic-selection-dialog.controller.ts     |   76 -
 .../topic/topic-selection-dialog.tmpl.html         |   42 -
 .../user-defined-output.component.ts               |   33 -
 .../user-defined-output.controller.ts              |   87 -
 .../user-defined-output.tmpl.html                  |   55 -
 ui/src/app/editor/constants/editor.constants.ts    |   25 +
 .../compatible-elements.component.html             |   43 +
 .../compatible-elements.component.scss             |   40 +
 .../compatible-elements.component.ts               |   92 +
 .../customize.controller.ts                        |  151 --
 .../customizeElementDialog.tmpl.html               |  161 --
 .../dialog/customize/customize.component.html      |   92 +
 .../dialog/customize/customize.component.scss      |   19 +
 .../editor/dialog/customize/customize.component.ts |  139 +
 .../editor/dialog/help/help-dialog.controller.ts   |  130 -
 .../app/editor/dialog/help/help-dialog.tmpl.html   |  103 -
 ui/src/app/editor/dialog/help/help.component.html  |   71 +
 ui/src/app/editor/dialog/help/help.component.scss  |   19 +
 ui/src/app/editor/dialog/help/help.component.ts    |  114 +
 .../matching-error/matching-error.component.html   |   53 +
 .../matching-error/matching-error.component.scss   |   19 +
 .../matching-error/matching-error.component.ts     |   47 +
 .../matching-error/matching-error.controller.ts    |   45 -
 .../dialog/matching-error/matching-error.tmpl.html |   64 -
 ...sing-elements-for-tutorial-dialog.controller.ts |   38 -
 .../missing-elements-for-tutorial-dialog.tmpl.html |   46 -
 .../missing-elements-for-tutorial.component.html   |   37 +
 .../missing-elements-for-tutorial.component.scss   |   19 +
 .../missing-elements-for-tutorial.component.ts     |   40 +
 .../possible-elements-dialog.controller.ts         |   55 -
 .../possible-elements-dialog.tmpl.html             |   50 -
 .../save-pipeline/save-pipeline.component.html     |  117 +
 .../save-pipeline/save-pipeline.component.scss     |   46 +
 .../save-pipeline/save-pipeline.component.ts       |  186 ++
 .../topic/topic-selection-modal.controller.ts      |   89 -
 .../dialog/topic/topic-selection-modal.tmpl.html   |   54 -
 .../welcome-tour/welcome-tour-dialog.controller.ts |   54 -
 .../welcome-tour/welcome-tour-dialog.tmpl.html     |   54 -
 .../welcome-tour/welcome-tour.component.html       |   45 +
 .../welcome-tour/welcome-tour.component.scss       |   41 +
 .../dialog/welcome-tour/welcome-tour.component.ts  |   53 +
 ui/src/app/editor/editor.component.html            |   59 +
 ui/src/app/editor/editor.component.scss            |   31 +
 ui/src/app/editor/editor.component.ts              |  246 ++
 ui/src/app/editor/editor.controller.ts             |  282 --
 ui/src/app/editor/editor.html                      |   72 -
 ui/src/app/editor/editor.module.ts                 |  205 +-
 .../editor/filter/display-recommended.filter.ts    |   48 -
 ui/src/app/editor/filter/element-name.filter.ts    |   41 -
 ui/src/app/editor/filter/select.filter.ts          |   42 -
 ui/src/app/editor/image-bind.directive.ts          |   33 -
 ui/src/app/editor/model/editor.model.ts            |   83 +
 ui/src/app/editor/my-data-bind.directive.ts        |   33 -
 .../services/editor-dialog-manager.service.ts      |   40 +-
 ui/src/app/editor/services/editor.service.ts       |  144 +
 .../app/editor/services/jsplumb-bridge.service.ts  |  123 +
 .../app/editor/services/jsplumb-config.service.ts  |  112 +
 ui/src/app/editor/services/jsplumb.service.ts      |  274 ++
 .../app/editor/services/object-provider.service.ts |  102 +
 .../app/editor/services/pipeline-editor.service.ts |   70 +
 .../pipeline-element-recommendation.service.ts     |   80 +-
 .../services/pipeline-positioning.service.ts       |  135 +
 .../editor/services/pipeline-validation.service.ts |   48 +-
 ui/src/app/editor/utils/editor.utils.ts            |  101 +
 ui/src/app/editor/utils/style-sanitizer.ts         |   32 +
 .../text/custom-output-validator.directive.ts      |   38 -
 .../validator/text/text-validator.directive.ts     |   66 -
 .../file-overview/file-overview.component.html     |   60 +
 .../file-overview/file-overview.component.scss     |   40 +
 .../file-overview/file-overview.component.ts       |   82 +
 .../file-upload/file-upload-dialog.component.html  |   53 +
 .../file-upload/file-upload-dialog.component.scss  |   19 +
 .../file-upload/file-upload-dialog.component.ts    |   76 +
 ui/src/app/files/files.component.html              |   53 +
 ui/src/app/files/files.component.scss              |   33 +
 ui/src/app/files/files.component.ts                |   50 +
 ui/src/app/files/files.module.ts                   |   77 +
 ui/src/app/home/components/status.component.css    |   15 +-
 ui/src/app/home/components/status.component.html   |   14 +-
 ui/src/app/home/components/status.component.ts     |   22 +-
 ui/src/app/home/home.component.css                 |   38 -
 ui/src/app/home/home.component.html                |   48 +-
 ui/src/app/home/home.component.scss                |   99 +
 ui/src/app/home/home.component.ts                  |   10 +-
 ui/src/app/home/home.module.ts                     |   26 +-
 ui/src/app/info/about/about.component.css          |    4 +
 ui/src/app/info/about/about.component.html         |    6 +-
 ui/src/app/info/info.component.ts                  |    1 -
 ui/src/app/info/info.module.ts                     |    5 +-
 .../info/versions/service/version-info.service.ts  |   55 -
 ui/src/app/info/versions/versions.component.css    |    4 +
 ui/src/app/info/versions/versions.component.ts     |   12 +-
 ui/src/app/layout/app.controller.ts                |   40 -
 ui/src/app/layout/components/feedback.component.ts |   30 -
 .../app/layout/components/feedback.controller.ts   |   76 -
 ui/src/app/layout/components/feedback.tmpl.html    |   68 -
 ui/src/app/layout/layout.module.ts                 |   33 -
 .../login/components/login/login.component.html    |   70 +
 .../app/login/components/login/login.component.ts  |   79 +
 .../login/components/setup/setup.component.html    |   93 +
 .../login/components/setup/setup.component.scss    |   70 +
 .../app/login/components/setup/setup.component.ts  |   85 +
 .../components/startup/startup.component.html      |   37 +
 .../login/components/startup/startup.component.ts  |   57 +
 ui/src/app/login/login.controller.ts               |   87 -
 ui/src/app/login/login.module.ts                   |   68 +-
 ui/src/app/login/register.controller.ts            |   80 -
 ui/src/app/login/services/login.service.ts         |   38 +
 ui/src/app/login/setup.controller.ts               |  101 -
 ui/src/app/login/startup/startup.controller.ts     |   61 -
 ui/src/app/login/startup/startup.html              |   38 -
 .../myelements/dialog/jsonldDialog.controller.ts   |   48 -
 .../app/myelements/dialog/jsonldDialog.tmpl.html   |   43 -
 ui/src/app/myelements/my-elements.controller.ts    |  250 --
 ui/src/app/myelements/my-elements.module.ts        |   25 -
 ui/src/app/myelements/myelements.html              |  108 -
 .../app/notifications/notifications.component.html |   12 +-
 .../app/notifications/notifications.component.ts   |   15 +-
 ui/src/app/notifications/notifications.module.ts   |   60 +-
 .../notifications/service/notifications.service.ts |   13 +-
 .../actions/pipeline-actions.component.html        |   71 +
 .../actions/pipeline-actions.component.ts          |   63 +-
 .../actions/pipeline-actions.controller.ts         |   60 -
 .../components/actions/pipeline-actions.tmpl.html  |   82 -
 .../components/edit/quickedit.component.html       |   58 +
 .../components/edit/quickedit.component.ts         |  145 +-
 .../components/edit/quickedit.controller.ts        |   34 -
 .../components/edit/quickedit.tmpl.html            |   52 -
 .../elements/pipeline-elements-row.component.html  |   31 +
 .../elements/pipeline-elements-row.component.ts    |   54 +-
 .../elements/pipeline-elements-row.controller.ts   |   53 -
 .../elements/pipeline-elements-row.tmpl.html       |   34 -
 .../elements/pipeline-elements.component.html      |   39 +
 .../elements/pipeline-elements.component.ts        |   29 +-
 .../elements/pipeline-elements.controller.ts       |   24 -
 .../elements/pipeline-elements.tmpl.html           |   39 -
 .../preview/pipeline-preview.component.html        |   30 +
 .../preview/pipeline-preview.component.scss}       |    0
 .../preview/pipeline-preview.component.ts          |   71 +-
 .../preview/pipeline-preview.controller.ts         |   62 -
 .../components/preview/pipeline-preview.tmpl.html  |   30 -
 .../status/pipeline-status.component.html          |   44 +
 .../components/status/pipeline-status.component.ts |   45 +-
 .../status/pipeline-status.controller.ts           |   43 -
 .../components/status/pipeline-status.tmpl.html    |   44 -
 .../pipeline-details.component.html                |   60 +
 .../pipeline-details.component.scss                |   22 +
 .../pipeline-details/pipeline-details.component.ts |   68 +
 .../pipeline-details.controller.ts                 |   59 -
 ui/src/app/pipeline-details/pipeline-details.html  |   59 -
 .../pipeline-details/pipeline-details.module.ts    |   73 +-
 .../category-already-in-pipeline.filter.ts         |   26 +-
 .../pipeline-details/pipeline-details.component.ts |   32 -
 .../pipeline-details.controller.ts                 |   65 -
 .../pipeline-details/pipeline-details.tmpl.html    |   97 -
 .../pipeline-overview.component.html               |   90 +
 .../pipeline-overview.component.scss               |   34 +
 .../pipeline-overview.component.ts                 |  111 +
 .../dialog/delete-pipeline-dialog.controller.ts    |   70 -
 .../dialog/delete-pipeline-dialog.tmpl.html        |   56 -
 .../delete-pipeline-dialog.component.html          |   52 +
 .../delete-pipeline-dialog.component.scss          |   19 +
 .../delete-pipeline-dialog.component.ts            |   64 +
 .../dialog/import-pipeline-dialog.controller.ts    |  111 -
 .../dialog/import-pipeline-dialog.tmpl.html        |   73 -
 .../import-pipeline-dialog.component.html          |   68 +
 .../import-pipeline-dialog.component.scss          |   19 +
 .../import-pipeline-dialog.component.ts            |  112 +
 .../pipeline-categories-dialog.controller.ts       |  142 -
 .../dialog/pipeline-categories-dialog.tmpl.html    |  170 --
 .../pipeline-categories-dialog.component.html      |  146 +
 .../pipeline-categories-dialog.component.scss      |   19 +
 .../pipeline-categories-dialog.component.ts        |  149 ++
 .../dialog/pipeline-status-dialog.controller.ts    |   44 -
 .../dialog/pipeline-status-dialog.tmpl.html        |   74 -
 .../pipeline-status-dialog.component.html          |   59 +
 .../pipeline-status-dialog.component.scss          |   31 +
 .../pipeline-status-dialog.component.ts            |   47 +
 .../start-all-pipelines-dialog.controller.ts       |  163 --
 .../dialog/start-all-pipelines-dialog.tmpl.html    |   57 -
 .../start-all-pipelines-dialog.component.html      |   49 +
 .../start-all-pipelines-dialog.component.scss      |   19 +
 .../start-all-pipelines-dialog.component.ts        |  154 ++
 ui/src/app/pipelines/pipeline-category.filter.ts   |   29 +-
 ui/src/app/pipelines/pipelines.component.html      |   74 +
 ui/src/app/pipelines/pipelines.component.scss      |   29 +
 ui/src/app/pipelines/pipelines.component.ts        |  196 ++
 ui/src/app/pipelines/pipelines.controller.ts       |  247 --
 ui/src/app/pipelines/pipelines.html                |   98 -
 ui/src/app/pipelines/pipelines.module.ts           |   74 +-
 .../services/pipeline-operations.service.ts        |  182 +-
 .../app/platform-services/apis/commons.service.ts  |   42 +
 ui/src/app/platform-services/apis/files.service.ts |   63 +
 .../apis/pipeline-element-endpoint.service.ts      |   52 +
 .../apis/pipeline-element.service.ts               |   74 +
 .../apis/pipeline-template.service.ts              |  203 +-
 .../app/platform-services/apis/pipeline.service.ts |  115 +
 .../contants/platform-services.constants.ts        |   22 +
 ui/src/app/platform-services/platform.module.ts    |   28 +-
 .../platform-services/tsonld-serializer.service.ts |  223 --
 ui/src/app/platform-services/tsonld/Float.ts       |   20 -
 ui/src/app/platform-services/tsonld/RdfId.js       |   25 -
 ui/src/app/platform-services/tsonld/RdfId.ts       |   22 -
 ui/src/app/platform-services/tsonld/RdfsClass.js   |   26 -
 ui/src/app/platform-services/tsonld/RdfsClass.ts   |   23 -
 .../app/platform-services/tsonld/RdfsProperty.js   |   27 -
 .../app/platform-services/tsonld/RdfsProperty.ts   |   24 -
 ui/src/app/platform-services/tsonld/index.ts       |   19 -
 .../app/platform-services/tsonld/model/Person.js   |   63 -
 .../app/platform-services/tsonld/model/Person.ts   |   54 -
 ui/src/app/platform-services/tsonld/tsonld.js      |  245 --
 ui/src/app/platform-services/tsonld/tsonld.ts      |  410 ---
 ui/src/app/services/auth-status.service.ts         |    1 +
 ui/src/app/services/auth.service.ts                |   52 +-
 ui/src/app/services/dialog-builder.service.ts      |   41 -
 ui/src/app/services/domain-properties.service.ts   |   41 -
 ui/src/app/services/image-checker.service.ts       |    3 +
 ui/src/app/services/jsplumb-bridge.service.ts      |  120 -
 ui/src/app/services/jsplumb-config.service.ts      |  109 -
 ui/src/app/services/jsplumb.service.ts             |  258 --
 ui/src/app/services/notification-count-service.ts  |   10 +-
 ui/src/app/services/object-provider.service.ts     |  124 -
 ui/src/app/services/pipeline-editor.service.ts     |   67 -
 .../app/services/pipeline-positioning.service.ts   |  137 -
 ui/src/app/services/property-selector.service.ts   |   23 +-
 ui/src/app/services/rest-api.service.ts            |  324 +--
 ui/src/app/services/services.module.ts             |   84 +-
 .../tour/create-pipeline-tour.constants.ts         |   20 +-
 ui/src/app/services/tour/shepherd.service.ts       |   21 +-
 ui/src/app/services/tour/tour-provider.service.ts  |   15 +-
 ui/src/app/services/transition.service.ts          |   58 -
 ui/src/app/shared/logger/log.service.ts            |    2 +
 ui/src/assets/templates/iconbar.html               |   57 -
 ui/src/assets/templates/login.html                 |   70 -
 ui/src/assets/templates/navbar.html                |  127 -
 ui/src/assets/templates/register.html              |   67 -
 ui/src/assets/templates/setup.html                 |  149 --
 ui/src/assets/templates/streampipes.html           |   27 -
 ui/src/assets/templates/tutorial.html              |  160 --
 ui/src/environments/environment.prod.ts            |   21 +
 ui/src/environments/environment.ts                 |   22 +
 ui/src/index.html                                  |   22 +-
 ui/src/main.ts                                     |   15 +-
 ui/src/scss/main.scss                              |   16 +-
 ui/src/scss/sp/buttons.scss                        |   20 +-
 ui/src/scss/sp/dialog.scss                         |    2 +
 ui/src/scss/sp/feedback.ng1.scss                   |    2 -
 ui/src/scss/sp/forms.scss                          |   46 +
 ui/src/scss/sp/main.scss                           |   45 +-
 ui/src/scss/sp/pipeline-assembly.scss              |   12 -
 ui/src/scss/sp/pipeline-element-options.scss       |    2 +-
 ui/src/scss/sp/pipeline-validation.scss            |    3 -
 ui/src/scss/sp/progress-bar.scss                   |   23 +
 ui/src/scss/sp/sp-dialog.scss                      |   42 +
 ui/src/scss/sp/sp-theme.scss                       |   99 +
 ui/src/scss/sp/widgets.scss                        |   40 +
 ui/src/tsconfig.app.json                           |    2 +-
 ui/src/tsconfig.spec.json                          |    2 +-
 ui/tsconfig.base.json                              |   26 +
 ui/tsconfig.json                                   |   39 +-
 ui/tsconfig.spec.json                              |    2 +-
 ui/tslint.json                                     |    1 -
 1449 files changed, 35476 insertions(+), 41095 deletions(-)

diff --cc pom.xml
index 4abda2b,5853729..27a20dd
--- a/pom.xml
+++ b/pom.xml
@@@ -55,7 -55,7 +55,8 @@@
          <fst.version>2.56</fst.version>
          <geojson-jackson.version>1.8</geojson-jackson.version>
          <guava.version>27.1-jre</guava.version>
+         <hibernate-validator.version>6.1.5.Final</hibernate-validator.version>
 +        <hawtbuf.version>1.11</hawtbuf.version>
          <httpclient.version>4.5.10</httpclient.version>
          <httpcore.version>4.4.9</httpcore.version>
          <httpcore-osgi.version>4.4.9</httpcore-osgi.version>
@@@ -872,9 -884,9 +890,10 @@@
          <module>streampipes-connect-container-master</module>
          <module>streampipes-connect-container-worker</module>
          <module>streampipes-container-base</module>
 +        <module>streampipes-node-controller-container</module>
          <module>streampipes-messaging-mqtt</module>
          <module>streampipes-maven-plugin</module>
+         <module>streampipes-model-shared</module>
      </modules>
  
      <profiles>
diff --cc streampipes-connect/pom.xml
index c716bd3,9b6bb8b..d3a9c6d
--- a/streampipes-connect/pom.xml
+++ b/streampipes-connect/pom.xml
@@@ -71,18 -71,8 +71,18 @@@
          </dependency>
          <dependency>
              <groupId>org.apache.streampipes</groupId>
 +            <artifactId>streampipes-messaging-jms</artifactId>
-             <version>0.67.0-SNAPSHOT</version>
++            <version>0.68.0-SNAPSHOT</version>
 +        </dependency>
 +        <dependency>
 +            <groupId>org.apache.streampipes</groupId>
 +            <artifactId>streampipes-messaging-mqtt</artifactId>
-             <version>0.67.0-SNAPSHOT</version>
++            <version>0.68.0-SNAPSHOT</version>
 +        </dependency>
 +        <dependency>
 +            <groupId>org.apache.streampipes</groupId>
              <artifactId>streampipes-model</artifactId>
-             <version>0.67.0-SNAPSHOT</version>
+             <version>0.68.0-SNAPSHOT</version>
          </dependency>
          <dependency>
              <groupId>org.apache.streampipes</groupId>
diff --cc streampipes-model/pom.xml
index cd1f2d4,f7477b5..d09fb1b
--- a/streampipes-model/pom.xml
+++ b/streampipes-model/pom.xml
@@@ -75,5 -83,51 +83,69 @@@
              <artifactId>junit</artifactId>
              <scope>test</scope>
          </dependency>
++        <dependency>
++            <groupId>org.apache.streampipes</groupId>
++            <artifactId>streampipes-model-shared</artifactId>
++            <version>0.68.0-SNAPSHOT</version>
++            <scope>compile</scope>
++        </dependency>
++        <dependency>
++            <groupId>org.apache.streampipes</groupId>
++            <artifactId>streampipes-vocabulary</artifactId>
++            <version>0.68.0-SNAPSHOT</version>
++            <scope>compile</scope>
++        </dependency>
++        <dependency>
++            <groupId>org.apache.streampipes</groupId>
++            <artifactId>streampipes-model-shared</artifactId>
++            <version>0.68.0-SNAPSHOT</version>
++            <scope>compile</scope>
++        </dependency>
      </dependencies>
+ 
+     <build>
+         <plugins>
+             <plugin>
+                 <groupId>cz.habarta.typescript-generator</groupId>
+                 <artifactId>typescript-generator-maven-plugin</artifactId>
+                 <version>2.24.612</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>
+                     <customTypeMappings>
+                         <mapping>java.net.URI:string</mapping>
+                     </customTypeMappings>
+                     <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>
diff --cc streampipes-model/src/main/java/org/apache/streampipes/model/base/InvocableStreamPipesEntity.java
index 96c587d,04291da..3d86c5b
--- a/streampipes-model/src/main/java/org/apache/streampipes/model/base/InvocableStreamPipesEntity.java
+++ b/streampipes-model/src/main/java/org/apache/streampipes/model/base/InvocableStreamPipesEntity.java
@@@ -65,31 -67,16 +67,37 @@@ public abstract class InvocableStreamPi
    @RdfProperty(StreamPipes.CORRESPONDING_USER)
    private String correspondingUser;
  
+   @OneToMany(fetch = FetchType.EAGER,
+           cascade = {CascadeType.ALL})
+   @RdfProperty(StreamPipes.REQUIRES_STREAM)
+   private List<SpDataStream> streamRequirements;
+ 
 +  @RdfProperty(StreamPipes.ELEMENT_ENDPOINT_HOSTNAME)
 +  private String elementEndpointHostname;
 +
 +  @RdfProperty(StreamPipes.ELEMENT_ENDPOINT_PORT)
 +  private Integer elementEndpointPort;
 +
 +  @RdfProperty(StreamPipes.DEPLOYMENT_TARGET_NODE_ID)
 +  private String deploymentTargetNodeId;
 +
 +  @RdfProperty(StreamPipes.DEPLOYMENT_TARGET_NODE_HOSTNAME)
 +  private String deploymentTargetNodeHostname;
 +
 +  @RdfProperty(StreamPipes.DEPLOYMENT_TARGET_NODE_PORT)
 +  private Integer deploymentTargetNodePort;
 +
 +  @RdfProperty(StreamPipes.DEPLOYMENT_RUNNING_INSTANCE_ID)
 +  private String deploymentRunningInstanceId;
 +
 +  @RdfProperty(StreamPipes.ELEMENT_ENDPOINT_SERVICE_NAME)
 +  private String elementEndpointServiceName;
 +
-   private List<SpDataStream> streamRequirements;
- 
+   //@RdfProperty(StreamPipes.PE_CONFIGURED)
    private boolean configured;
  
+   private boolean uncompleted;
+ 
    public InvocableStreamPipesEntity() {
      super();
    }
@@@ -100,13 -87,7 +108,14 @@@
      this.correspondingPipeline = other.getCorrespondingPipeline();
      this.inputStreams = new Cloner().streams(other.getInputStreams());
      this.configured = other.isConfigured();
+     this.uncompleted = other.isUncompleted();
 +    this.elementEndpointHostname = other.getElementEndpointHostname();
 +    this.elementEndpointPort = other.getElementEndpointPort();
 +    this.deploymentTargetNodeHostname = other.getDeploymentTargetNodeHostname();
 +    this.deploymentTargetNodeId = other.getDeploymentTargetNodeId();
 +    this.deploymentTargetNodePort = other.getDeploymentTargetNodePort();
 +    this.deploymentRunningInstanceId = other.getDeploymentRunningInstanceId();
 +    this.elementEndpointServiceName = other.getElementEndpointServiceName();
      this.correspondingUser = other.getCorrespondingUser();
      if (other.getStreamRequirements() != null) {
        this.streamRequirements = new Cloner().streams(other.getStreamRequirements());
@@@ -120,24 -101,6 +129,25 @@@
      }
    }
  
-   public InvocableStreamPipesEntity(ConsumableStreamPipesEntity entityDescription) {
-     super();
-     this.setName(entityDescription.getName());
-     this.setDescription(entityDescription.getDescription());
-     this.setIconUrl(entityDescription.getIconUrl());
-     this.setInputStreams(entityDescription.getSpDataStreams());
-     this.setSupportedGrounding(entityDescription.getSupportedGrounding());
-     this.setStaticProperties(entityDescription.getStaticProperties());
-     this.setBelongsTo(entityDescription.getElementId());
-     this.setStreamRequirements(entityDescription.getSpDataStreams());
-     this.setAppId(entityDescription.getAppId());
-     this.setIncludesAssets(entityDescription.isIncludesAssets());
- 
-     this.setElementEndpointHostname(entityDescription.getElementEndpointHostname());
-     this.setElementEndpointPort(entityDescription.getElementEndpointPort());
-     this.setElementEndpointServiceName(entityDescription.getElementEndpointServiceName());
-   }
++//  TODO: delete if not needed after merge
++//  public InvocableStreamPipesEntity(ConsumableStreamPipesEntity entityDescription) {
++//    super();
++//    this.setName(entityDescription.getName());
++//    this.setDescription(entityDescription.getDescription());
++//    this.setIconUrl(entityDescription.getIconUrl());
++//    this.setInputStreams(entityDescription.getSpDataStreams());
++//    this.setSupportedGrounding(entityDescription.getSupportedGrounding());
++//    this.setStaticProperties(entityDescription.getStaticProperties());
++//    this.setBelongsTo(entityDescription.getElementId());
++//    this.setStreamRequirements(entityDescription.getSpDataStreams());
++//    this.setAppId(entityDescription.getAppId());
++//    this.setIncludesAssets(entityDescription.isIncludesAssets());
++//
++//    this.setElementEndpointHostname(entityDescription.getElementEndpointHostname());
++//    this.setElementEndpointPort(entityDescription.getElementEndpointPort());
++//    this.setElementEndpointServiceName(entityDescription.getElementEndpointServiceName());
++//  }
 +
    public InvocableStreamPipesEntity(String uri, String name, String description, String iconUrl) {
      super(uri, name, description, iconUrl);
      this.configured = false;
diff --cc streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/AdapterDescription.java
index 804471c,be693ce..ad9befd
--- a/streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/AdapterDescription.java
+++ b/streampipes-model/src/main/java/org/apache/streampipes/model/connect/adapter/AdapterDescription.java
@@@ -23,11 -25,15 +25,16 @@@ import io.fogsy.empire.annotations.Name
  import io.fogsy.empire.annotations.RdfProperty;
  import io.fogsy.empire.annotations.RdfsClass;
  import org.apache.streampipes.model.base.NamedStreamPipesEntity;
- import org.apache.streampipes.model.connect.rules.Schema.SchemaTransformationRuleDescription;
- import org.apache.streampipes.model.connect.rules.Stream.StreamTransformationRuleDescription;
  import org.apache.streampipes.model.connect.rules.TransformationRuleDescription;
+ import org.apache.streampipes.model.connect.rules.schema.SchemaTransformationRuleDescription;
+ import org.apache.streampipes.model.connect.rules.stream.StreamTransformationRuleDescription;
  import org.apache.streampipes.model.connect.rules.value.ValueTransformationRuleDescription;
+ import org.apache.streampipes.model.grounding.EventGrounding;
+ import org.apache.streampipes.model.grounding.KafkaTransportProtocol;
+ import org.apache.streampipes.model.grounding.SimpleTopicDefinition;
+ import org.apache.streampipes.model.grounding.TransportProtocol;
+ import org.apache.streampipes.model.shared.annotation.TsModel;
 +import org.apache.streampipes.model.grounding.*;
  import org.apache.streampipes.model.staticproperty.StaticProperty;
  import org.apache.streampipes.model.util.Cloner;
  import org.apache.streampipes.vocabulary.StreamPipes;
diff --cc streampipes-node-controller-container/pom.xml
index 4753dc5,0000000..ca770a5
mode 100644,000000..100644
--- a/streampipes-node-controller-container/pom.xml
+++ b/streampipes-node-controller-container/pom.xml
@@@ -1,139 -1,0 +1,139 @@@
 +<?xml version="1.0" encoding="UTF-8"?>
 +<!--
 +  ~ Licensed to the Apache Software Foundation (ASF) under one or more
 +  ~ contributor license agreements.  See the NOTICE file distributed with
 +  ~ this work for additional information regarding copyright ownership.
 +  ~ The ASF licenses this file to You under the Apache License, Version 2.0
 +  ~ (the "License"); you may not use this file except in compliance with
 +  ~ the License.  You may obtain a copy of the License at
 +  ~
 +  ~    http://www.apache.org/licenses/LICENSE-2.0
 +  ~
 +  ~ Unless required by applicable law or agreed to in writing, software
 +  ~ distributed under the License is distributed on an "AS IS" BASIS,
 +  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 +  ~ See the License for the specific language governing permissions and
 +  ~ limitations under the License.
 +  ~
 +  -->
 +
 +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 +    <parent>
 +        <artifactId>streampipes-parent</artifactId>
 +        <groupId>org.apache.streampipes</groupId>
-         <version>0.67.0-SNAPSHOT</version>
++        <version>0.68.0-SNAPSHOT</version>
 +    </parent>
 +    <modelVersion>4.0.0</modelVersion>
 +
 +    <artifactId>streampipes-node-controller-container</artifactId>
 +
 +    <dependencies>
 +        <!-- StreamPipes dependencies -->
 +        <dependency>
 +            <groupId>org.apache.streampipes</groupId>
 +            <artifactId>streampipes-container-base</artifactId>
-             <version>0.67.0-SNAPSHOT</version>
++            <version>0.68.0-SNAPSHOT</version>
 +        </dependency>
 +        <dependency>
 +            <groupId>org.apache.streampipes</groupId>
 +            <artifactId>streampipes-container</artifactId>
-             <version>0.67.0-SNAPSHOT</version>
++            <version>0.68.0-SNAPSHOT</version>
 +        </dependency>
 +        <dependency>
 +            <groupId>org.apache.streampipes</groupId>
 +            <artifactId>streampipes-config</artifactId>
-             <version>0.67.0-SNAPSHOT</version>
++            <version>0.68.0-SNAPSHOT</version>
 +        </dependency>
 +        <dependency>
 +            <groupId>org.apache.streampipes</groupId>
 +            <artifactId>streampipes-model</artifactId>
-             <version>0.67.0-SNAPSHOT</version>
++            <version>0.68.0-SNAPSHOT</version>
 +        </dependency>
 +        <dependency>
 +            <groupId>org.apache.streampipes</groupId>
 +            <artifactId>streampipes-messaging</artifactId>
-             <version>0.67.0-SNAPSHOT</version>
++            <version>0.68.0-SNAPSHOT</version>
 +        </dependency>
 +
 +        <!--external dependencies-->
 +        <!-- parse yaml config -->
 +<!--        <dependency>-->
 +<!--            <groupId>org.yaml</groupId>-->
 +<!--            <artifactId>snakeyaml</artifactId>-->
 +<!--            <version>1.21</version>-->
 +<!--        </dependency>-->
 +        <!-- docker client for java -->
 +        <dependency>
 +            <groupId>com.spotify</groupId>
 +            <artifactId>docker-client</artifactId>
 +            <classifier>shaded</classifier>
 +            <version>8.16.0</version>
 +            <exclusions>
 +                <exclusion>
 +                    <groupId>org.ow2.asm</groupId>
 +                    <artifactId>asm-tree</artifactId>
 +                </exclusion>
 +                <exclusion>
 +                    <groupId>org.ow2.asm</groupId>
 +                    <artifactId>asm-util</artifactId>
 +                </exclusion>
 +                <exclusion>
 +                    <groupId>org.ow2.asm</groupId>
 +                    <artifactId>asm-commons</artifactId>
 +                </exclusion>
 +                <exclusion>
 +                    <groupId>org.ow2.asm</groupId>
 +                    <artifactId>asm-analysis</artifactId>
 +                </exclusion>
 +                <exclusion>
 +                    <groupId>com.fasterxml.jackson.module</groupId>
 +                    <artifactId>jackson-module-jaxb-annotations</artifactId>
 +                </exclusion>
 +                <exclusion>
 +                    <groupId>com.fasterxml.jackson.datatype</groupId>
 +                    <artifactId>jackson-datatype-guava</artifactId>
 +                </exclusion>
 +            </exclusions>
 +        </dependency>
 +<!--        </dependency>-->
 +        <!-- used for gathering system information-->
 +        <dependency>
 +            <groupId>com.github.oshi</groupId>
 +            <artifactId>oshi-core</artifactId>
 +            <version>4.1.1</version>
 +        </dependency>
 +        <dependency>
 +            <groupId>org.eclipse.paho</groupId>
 +            <artifactId>org.eclipse.paho.client.mqttv3</artifactId>
 +            <version>1.2.4</version>
 +        </dependency>
 +        <dependency>
 +            <groupId>org.apache.kafka</groupId>
 +            <artifactId>kafka-clients</artifactId>
 +            <version>2.2.0</version>
 +        </dependency>
 +        <dependency>
 +            <groupId>org.apache.streampipes</groupId>
 +            <artifactId>streampipes-messaging-kafka</artifactId>
-             <version>0.67.0-SNAPSHOT</version>
++            <version>0.68.0-SNAPSHOT</version>
 +            <scope>compile</scope>
 +        </dependency>
 +    </dependencies>
 +
 +    <build>
 +        <plugins>
 +            <plugin>
 +                <groupId>org.springframework.boot</groupId>
 +                <artifactId>spring-boot-maven-plugin</artifactId>
 +                <executions>
 +                    <execution>
 +                        <goals>
 +                            <goal>repackage</goal>
 +                        </goals>
 +                    </execution>
 +                </executions>
 +            </plugin>
 +        </plugins>
 +        <finalName>streampipes-node-controller-container</finalName>
 +    </build>
 +</project>
diff --cc streampipes-node-controller-container/src/main/java/org/apache/streampipes/node/controller/container/management/pe/PipelineElementManager.java
index 2d529ed,0000000..f574410
mode 100644,000000..100644
--- a/streampipes-node-controller-container/src/main/java/org/apache/streampipes/node/controller/container/management/pe/PipelineElementManager.java
+++ b/streampipes-node-controller-container/src/main/java/org/apache/streampipes/node/controller/container/management/pe/PipelineElementManager.java
@@@ -1,81 -1,0 +1,81 @@@
 +package org.apache.streampipes.node.controller.container.management.pe;/*
 + * 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.
 + *
 + */
 +
 +import com.google.gson.Gson;
 +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.pipeline.PipelineElementStatus;
++import org.apache.streampipes.model.pipeline.PipelineElementStatus;
 +import org.slf4j.Logger;
 +import org.slf4j.LoggerFactory;
 +
 +import java.io.IOException;
 +
 +public class PipelineElementManager {
 +
 +    private static final Logger LOG =
 +            LoggerFactory.getLogger(PipelineElementManager.class.getCanonicalName());
 +
 +    private static final Integer CONNECT_TIMEOUT = 10000;
 +
 +    private static PipelineElementManager instance = null;
 +
 +    private PipelineElementManager() {}
 +
 +    public static PipelineElementManager getInstance() {
 +        if (instance == null) {
 +            synchronized (PipelineElementManager.class) {
 +                if (instance == null)
 +                    instance = new PipelineElementManager();
 +            }
 +        }
 +        return instance;
 +    }
 +
 +    /**
 +     * registeration of newly started pipeline element runtime container
 +     */
 +
 +    /**
 +     * invokes pipeline elements when pipeline is started
 +     */
 +    public String invokePipelineElement(String pipelineElementEndpoint, String payload) {
 +        LOG.info("Invoking element: {}", pipelineElementEndpoint);
 +        try {
 +            Response httpResp = Request
 +                    .Post(pipelineElementEndpoint)
 +                    .bodyString(payload, ContentType.APPLICATION_JSON)
 +                    .connectTimeout(CONNECT_TIMEOUT)
 +                    .execute();
 +            return httpResp.toString();
 +        } catch (Exception e) {
 +            LOG.error(e.getMessage());
 +        }
 +        return "";
 +    }
 +
 +    /**
 +     * detaches pipeline elements when pipeline is stopped
 +     */
 +    // TODO: implement detach pe logic
 +    public void detachPipelineElement() {
 +
 +    }
 +
 +}
diff --cc streampipes-pipeline-management/pom.xml
index 56301b4,ed38dc8..e6536b0
--- a/streampipes-pipeline-management/pom.xml
+++ b/streampipes-pipeline-management/pom.xml
@@@ -64,13 -64,8 +64,13 @@@
          </dependency>
          <dependency>
              <groupId>org.apache.streampipes</groupId>
 +            <artifactId>streampipes-messaging-mqtt</artifactId>
-             <version>0.67.0-SNAPSHOT</version>
++            <version>0.68.0-SNAPSHOT</version>
 +        </dependency>
 +        <dependency>
 +            <groupId>org.apache.streampipes</groupId>
              <artifactId>streampipes-messaging-jms</artifactId>
-             <version>0.67.0-SNAPSHOT</version>
+             <version>0.68.0-SNAPSHOT</version>
          </dependency>
          <dependency>
              <groupId>org.apache.streampipes</groupId>
diff --cc streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/execution/http/HttpRequestBuilder.java
index f075e79,3b248f2..6ab296a
--- 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
@@@ -23,12 -23,13 +23,12 @@@ import com.google.gson.JsonSyntaxExcept
  import org.apache.http.client.fluent.Request;
  import org.apache.http.client.fluent.Response;
  import org.apache.http.entity.ContentType;
 -import org.slf4j.Logger;
 -import org.slf4j.LoggerFactory;
  import org.apache.streampipes.commons.Utils;
  import org.apache.streampipes.model.base.NamedStreamPipesEntity;
- import org.apache.streampipes.model.client.pipeline.PipelineElementStatus;
+ import org.apache.streampipes.model.pipeline.PipelineElementStatus;
  import org.apache.streampipes.serializers.jsonld.JsonLdTransformer;
 +import org.slf4j.Logger;
 +import org.slf4j.LoggerFactory;
  
  import java.io.IOException;
  
diff --cc streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/operations/Operations.java
index 68c9d70,a3696a3..6fb1b2e
--- 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
@@@ -39,15 -38,14 +39,15 @@@ import org.apache.streampipes.model.SpD
  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.message.DataSetModificationMessage;
+ import org.apache.streampipes.model.message.Message;
+ import org.apache.streampipes.model.message.PipelineModificationMessage;
+ import org.apache.streampipes.model.pipeline.Pipeline;
+ import org.apache.streampipes.model.pipeline.PipelineElementRecommendationMessage;
+ import org.apache.streampipes.model.pipeline.PipelineOperationStatus;
+ import org.apache.streampipes.model.runtime.RuntimeOptionsRequest;
+ import org.apache.streampipes.model.runtime.RuntimeOptionsResponse;
 +import org.apache.streampipes.model.node.NodeInfo;
- import org.apache.streampipes.model.staticproperty.Option;
  import org.apache.streampipes.model.template.PipelineTemplateDescription;
  import org.apache.streampipes.model.template.PipelineTemplateInvocation;
  import org.apache.streampipes.storage.management.StorageDispatcher;
diff --cc ui/src/app/configuration/configuration.component.html
index cae7a1a,1fdc19c..3a8ebbe
--- a/ui/src/app/configuration/configuration.component.html
+++ b/ui/src/app/configuration/configuration.component.html
@@@ -22,7 -22,7 +22,8 @@@
              <mat-tab-group [selectedIndex]="selectedIndex" (selectedIndexChange)="selectedIndexChange($event)">
                  <mat-tab label="Pipeline Element Configuration"></mat-tab>
                  <mat-tab label="Messaging"></mat-tab>
 +                <mat-tab label="Nodes"></mat-tab>
+                 <mat-tab label="DataLake"></mat-tab>
              </mat-tab-group>
          </div>
      </div>
@@@ -33,7 -33,7 +34,10 @@@
      <div class="fixed-height page-container-padding-inner" fxLayout="column" fxFlex="100" *ngIf="selectedIndex == 1">
          <messaging-configuration fxFlex="100"></messaging-configuration>
      </div>
+     <div class="fixed-height page-container-padding-inner" fxLayout="column" fxFlex="100" *ngIf="selectedIndex == 2">
+         <sp-datalake-configuration fxFlex="100"></sp-datalake-configuration>
+     </div>
 +    <div class="page-container-padding-inner" fxLayout="column" fxFlex="100" *ngIf="selectedIndex == 2">
 +        <edge-configuration fxFlex="100"></edge-configuration>
 +    </div>
  </div>
diff --cc ui/src/app/configuration/configuration.module.ts
index b7e4b0b,8248189..8ab9992
--- a/ui/src/app/configuration/configuration.module.ts
+++ b/ui/src/app/configuration/configuration.module.ts
@@@ -16,31 -16,31 +16,32 @@@
   *
   */
  
- import {NgModule} from '@angular/core';
- import {MatButtonModule} from '@angular/material/button';
- import {MatCheckboxModule} from '@angular/material/checkbox';
- import {MatGridListModule} from '@angular/material/grid-list';
- import {MatIconModule} from '@angular/material/icon';
- import {MatInputModule} from '@angular/material/input';
- import {MatTooltipModule} from '@angular/material/tooltip';
- import {FlexLayoutModule} from '@angular/flex-layout';
- import {CommonModule} from '@angular/common';
- import {FormsModule} from '@angular/forms';
+ import { NgModule } from '@angular/core';
+ import { MatButtonModule } from '@angular/material/button';
+ import { MatCheckboxModule } from '@angular/material/checkbox';
+ import { MatGridListModule } from '@angular/material/grid-list';
+ import { MatIconModule } from '@angular/material/icon';
+ import { MatInputModule } from '@angular/material/input';
+ import { MatTooltipModule } from '@angular/material/tooltip';
+ import { FlexLayoutModule } from '@angular/flex-layout';
+ import { CommonModule } from '@angular/common';
+ import { FormsModule } from '@angular/forms';
  
- import {ConfigurationComponent} from './configuration.component';
- import {ConfigurationService} from './shared/configuration.service';
- import {ConsulServiceComponent} from './consul-service/consul-service.component';
- import {ConsulConfigsComponent} from './consul-configs/consul-configs.component';
- import {ConsulConfigsTextComponent} from './consul-configs-text/consul-configs-text.component';
- import {ConsulConfigsPasswordComponent} from './consul-configs-password/consul-configs-password.component';
- import {ConsulConfigsBooleanComponent} from './consul-configs-boolean/consul-configs-boolean.component';
- import {ConsulConfigsNumberComponent} from './consul-configs-number/consul-configs-number.component';
- import {CustomMaterialModule} from "../CustomMaterial/custom-material.module";
- import {PipelineElementConfigurationComponent} from "./pipeline-element-configuration/pipeline-element-configuration.component";
- import {MessagingConfigurationComponent} from "./messaging-configuration/messaging-configuration.component";
- import {DragDropModule} from "@angular/cdk/drag-drop";
- import {EdgeConfigurationComponent} from "./edge-configuration/edge-configuration.component";
- import {MatChipsModule} from "@angular/material/chips";
+ import { ConfigurationComponent } from './configuration.component';
+ import { ConfigurationService } from './shared/configuration.service';
+ import { ConsulServiceComponent } from './consul-service/consul-service.component';
+ import { ConsulConfigsComponent } from './consul-configs/consul-configs.component';
+ import { ConsulConfigsTextComponent } from './consul-configs-text/consul-configs-text.component';
+ import { ConsulConfigsPasswordComponent } from './consul-configs-password/consul-configs-password.component';
+ import { ConsulConfigsBooleanComponent } from './consul-configs-boolean/consul-configs-boolean.component';
+ import { ConsulConfigsNumberComponent } from './consul-configs-number/consul-configs-number.component';
+ import { CustomMaterialModule } from '../CustomMaterial/custom-material.module';
+ import { PipelineElementConfigurationComponent } from './pipeline-element-configuration/pipeline-element-configuration.component';
+ import { MessagingConfigurationComponent } from './messaging-configuration/messaging-configuration.component';
+ import { DragDropModule } from '@angular/cdk/drag-drop';
+ import { DatalakeConfigurationComponent } from './datalake-configuration/datalake-configuration.component';
+ import { DatalakeRestService } from '../core-services/datalake/datalake-rest.service';
++import { EdgeConfigurationComponent } from "./edge-configuration/edge-configuration.component";
  
  @NgModule({
      imports: [
@@@ -66,9 -66,12 +67,14 @@@
          ConsulConfigsNumberComponent,
          PipelineElementConfigurationComponent,
          MessagingConfigurationComponent,
-         EdgeConfigurationComponent
++        EdgeConfigurationComponent,
++        MessagingConfigurationComponent,
+         DatalakeConfigurationComponent
+     ],
+     providers: [
+       ConfigurationService,
+       DatalakeRestService
      ],
-     providers: [ConfigurationService],
      entryComponents: [ConfigurationComponent],
  })
  export class ConfigurationModule {
diff --cc ui/src/app/core-model/gen/streampipes-model-client.ts
index 0000000,e9fdac0..4a19f55
mode 000000,100644..100644
--- a/ui/src/app/core-model/gen/streampipes-model-client.ts
+++ b/ui/src/app/core-model/gen/streampipes-model-client.ts
@@@ -1,0 -1,102 +1,84 @@@
 -/*
 - * 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.24.612 on 2020-09-14 21:40:09.
++// Generated using typescript-generator version 2.24.612 on 2020-09-23 15:34:40.
+ 
+ export class FileMetadata {
+     createdAt: number;
+     createdByUser: string;
+     fileId: string;
+     filetype: string;
+     internalFilename: string;
+     lastModified: number;
+     originalFilename: string;
+     rev: string;
+ 
+     static fromData(data: FileMetadata, target?: FileMetadata): FileMetadata {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new FileMetadata();
+         instance.fileId = data.fileId;
+         instance.rev = data.rev;
+         instance.internalFilename = data.internalFilename;
+         instance.originalFilename = data.originalFilename;
+         instance.filetype = data.filetype;
+         instance.createdAt = data.createdAt;
+         instance.lastModified = data.lastModified;
+         instance.createdByUser = data.createdByUser;
+         return instance;
+     }
+ }
+ 
+ export class MatchingResultMessage {
+     description: string;
+     matchingSuccessful: boolean;
+     offerSubject: string;
+     reasonText: string;
+     requirementSubject: string;
+     title: string;
+ 
+     static fromData(data: MatchingResultMessage, target?: MatchingResultMessage): MatchingResultMessage {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new MatchingResultMessage();
+         instance.matchingSuccessful = data.matchingSuccessful;
+         instance.title = data.title;
+         instance.description = data.description;
+         instance.offerSubject = data.offerSubject;
+         instance.requirementSubject = data.requirementSubject;
+         instance.reasonText = data.reasonText;
+         return instance;
+     }
+ }
+ 
+ function __getCopyArrayFn<T>(itemCopyFn: (item: T) => T): (array: T[]) => T[] {
+     return (array: T[]) => __copyArray(array, itemCopyFn);
+ }
+ 
+ function __copyArray<T>(array: T[], itemCopyFn: (item: T) => T): T[] {
+     return array && array.map(item => item && itemCopyFn(item));
+ }
+ 
+ function __getCopyObjectFn<T>(itemCopyFn: (item: T) => T): (object: { [index: string]: T }) => { [index: string]: T } {
+     return (object: { [index: string]: T }) => __copyObject(object, itemCopyFn);
+ }
+ 
+ function __copyObject<T>(object: { [index: string]: T }, itemCopyFn: (item: T) => T): { [index: string]: T } {
+     if (!object) {
+         return object;
+     }
+     const result: any = {};
+     for (const key in object) {
+         if (object.hasOwnProperty(key)) {
+             const value = object[key];
+             result[key] = value && itemCopyFn(value);
+         }
+     }
+     return result;
+ }
+ 
+ function __identity<T>(): (value: T) => T {
+     return value => value;
+ }
diff --cc ui/src/app/core-model/gen/streampipes-model.ts
index 0000000,67be548..7dca972
mode 000000,100644..100644
--- a/ui/src/app/core-model/gen/streampipes-model.ts
+++ b/ui/src/app/core-model/gen/streampipes-model.ts
@@@ -1,0 -1,2817 +1,2814 @@@
 -/*
 - * 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.24.612 on 2020-09-15 08:51:13.
++// Generated using typescript-generator version 2.24.612 on 2020-09-23 15:34:38.
+ 
+ export class AbstractStreamPipesEntity {
+     "@class": "org.apache.streampipes.model.base.NamedStreamPipesEntity" | "org.apache.streampipes.model.connect.adapter.AdapterDescription" | "org.apache.streampipes.model.connect.adapter.AdapterSetDescription" | "org.apache.streampipes.model.connect.adapter.GenericAdapterSetDescription" | "org.apache.streampipes.model.connect.adapter.SpecificAdapterSetDescription" | "org.apache.streampipes.model.connect.adapter.AdapterStreamDescription" | "org.apache.streampipes.model.connect.adapter. [...]
+ 
+     static fromData(data: AbstractStreamPipesEntity, target?: AbstractStreamPipesEntity): AbstractStreamPipesEntity {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new AbstractStreamPipesEntity();
+         instance["@class"] = data["@class"];
+         return instance;
+     }
+ }
+ 
+ export class UnnamedStreamPipesEntity extends AbstractStreamPipesEntity {
+     "@class": "org.apache.streampipes.model.base.UnnamedStreamPipesEntity" | "org.apache.streampipes.model.connect.guess.GuessSchema" | "org.apache.streampipes.model.connect.rules.TransformationRuleDescription" | "org.apache.streampipes.model.connect.rules.value.ValueTransformationRuleDescription" | "org.apache.streampipes.model.connect.rules.value.AddTimestampRuleDescription" | "org.apache.streampipes.model.connect.rules.value.AddValueTransformationRuleDescription" | "org.apache.stream [...]
+     elementId: string;
+ 
+     static fromData(data: UnnamedStreamPipesEntity, target?: UnnamedStreamPipesEntity): UnnamedStreamPipesEntity {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new UnnamedStreamPipesEntity();
+         super.fromData(data, instance);
++        super.fromData(data, instance);
+         instance.elementId = data.elementId;
+         return instance;
+     }
+ }
+ 
+ export class MeasurementProperty extends UnnamedStreamPipesEntity {
+     "@class": "org.apache.streampipes.model.quality.MeasurementProperty" | "org.apache.streampipes.model.quality.EventStreamQualityDefinition" | "org.apache.streampipes.model.quality.Frequency" | "org.apache.streampipes.model.quality.Latency" | "org.apache.streampipes.model.quality.EventPropertyQualityDefinition" | "org.apache.streampipes.model.quality.Accuracy" | "org.apache.streampipes.model.quality.MeasurementRange" | "org.apache.streampipes.model.quality.Precision" | "org.apache.str [...]
+ 
+     static fromData(data: MeasurementProperty, target?: MeasurementProperty): MeasurementProperty {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new MeasurementProperty();
+         super.fromData(data, instance);
+         return instance;
+     }
+ 
+     static fromDataUnion(data: MeasurementPropertyUnion): MeasurementPropertyUnion {
+         if (!data) {
+             return data;
+         }
+         switch (data["@class"]) {
+             case "org.apache.streampipes.model.quality.EventPropertyQualityDefinition":
+                 return EventPropertyQualityDefinition.fromData(data);
+             case "org.apache.streampipes.model.quality.EventStreamQualityDefinition":
+                 return EventStreamQualityDefinition.fromData(data);
+         }
+     }
+ }
+ 
+ export class EventPropertyQualityDefinition extends MeasurementProperty {
+     "@class": "org.apache.streampipes.model.quality.EventPropertyQualityDefinition" | "org.apache.streampipes.model.quality.Accuracy" | "org.apache.streampipes.model.quality.MeasurementRange" | "org.apache.streampipes.model.quality.Precision" | "org.apache.streampipes.model.quality.Resolution";
+ 
+     static fromData(data: EventPropertyQualityDefinition, target?: EventPropertyQualityDefinition): EventPropertyQualityDefinition {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new EventPropertyQualityDefinition();
+         super.fromData(data, instance);
+         return instance;
+     }
+ 
+     static fromDataUnion(data: EventPropertyQualityDefinitionUnion): EventPropertyQualityDefinitionUnion {
+         if (!data) {
+             return data;
+         }
+         switch (data["@class"]) {
+             case "org.apache.streampipes.model.quality.Accuracy":
+                 return Accuracy.fromData(data);
+             case "org.apache.streampipes.model.quality.MeasurementRange":
+                 return MeasurementRange.fromData(data);
+             case "org.apache.streampipes.model.quality.Precision":
+                 return Precision.fromData(data);
+             case "org.apache.streampipes.model.quality.Resolution":
+                 return Resolution.fromData(data);
+         }
+     }
+ }
+ 
+ export class Accuracy extends EventPropertyQualityDefinition {
+     "@class": "org.apache.streampipes.model.quality.Accuracy";
+     quantityValue: number;
+ 
+     static fromData(data: Accuracy, target?: Accuracy): Accuracy {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new Accuracy();
+         super.fromData(data, instance);
+         instance.quantityValue = data.quantityValue;
+         return instance;
+     }
+ }
+ 
+ export class NamedStreamPipesEntity extends AbstractStreamPipesEntity {
+     "@class": "org.apache.streampipes.model.base.NamedStreamPipesEntity" | "org.apache.streampipes.model.connect.adapter.AdapterDescription" | "org.apache.streampipes.model.connect.adapter.AdapterSetDescription" | "org.apache.streampipes.model.connect.adapter.GenericAdapterSetDescription" | "org.apache.streampipes.model.connect.adapter.SpecificAdapterSetDescription" | "org.apache.streampipes.model.connect.adapter.AdapterStreamDescription" | "org.apache.streampipes.model.connect.adapter. [...]
+     appId: string;
+     applicationLinks: ApplicationLink[];
+     connectedTo: string[];
+     description: string;
+     dom: string;
+     elementId: string;
+     iconUrl: string;
+     includedAssets: string[];
+     includedLocales: string[];
+     includesAssets: boolean;
+     includesLocales: boolean;
+     name: string;
+     uri: string;
+ 
+     static fromData(data: NamedStreamPipesEntity, target?: NamedStreamPipesEntity): NamedStreamPipesEntity {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new NamedStreamPipesEntity();
+         super.fromData(data, instance);
+         instance.name = data.name;
+         instance.description = data.description;
+         instance.iconUrl = data.iconUrl;
+         instance.elementId = data.elementId;
+         instance.appId = data.appId;
+         instance.includesAssets = data.includesAssets;
+         instance.includesLocales = data.includesLocales;
+         instance.includedAssets = __getCopyArrayFn(__identity<string>())(data.includedAssets);
+         instance.includedLocales = __getCopyArrayFn(__identity<string>())(data.includedLocales);
+         instance.applicationLinks = __getCopyArrayFn(ApplicationLink.fromData)(data.applicationLinks);
+         instance.connectedTo = __getCopyArrayFn(__identity<string>())(data.connectedTo);
+         instance.uri = data.uri;
+         instance.dom = data.dom;
+         return instance;
+     }
+ }
+ 
+ export class AdapterDescription extends NamedStreamPipesEntity {
+     "@class": "org.apache.streampipes.model.connect.adapter.AdapterDescription" | "org.apache.streampipes.model.connect.adapter.AdapterSetDescription" | "org.apache.streampipes.model.connect.adapter.GenericAdapterSetDescription" | "org.apache.streampipes.model.connect.adapter.SpecificAdapterSetDescription" | "org.apache.streampipes.model.connect.adapter.AdapterStreamDescription" | "org.apache.streampipes.model.connect.adapter.GenericAdapterStreamDescription" | "org.apache.streampipes.mo [...]
+     _rev: string;
+     adapterId: string;
+     adapterType: string;
+     category: string[];
+     config: StaticPropertyUnion[];
+     couchDBId: string;
+     eventGrounding: EventGrounding;
+     icon: string;
+     rules: TransformationRuleDescriptionUnion[];
+     schemaRules: any[];
+     streamRules: any[];
+     userName: string;
+     valueRules: any[];
+ 
+     static fromData(data: AdapterDescription, target?: AdapterDescription): AdapterDescription {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new AdapterDescription();
+         super.fromData(data, instance);
+         instance.adapterId = data.adapterId;
+         instance.userName = data.userName;
+         instance.eventGrounding = EventGrounding.fromData(data.eventGrounding);
+         instance.adapterType = data.adapterType;
+         instance.icon = data.icon;
+         instance.config = __getCopyArrayFn(StaticProperty.fromDataUnion)(data.config);
+         instance.rules = __getCopyArrayFn(TransformationRuleDescription.fromDataUnion)(data.rules);
+         instance.category = __getCopyArrayFn(__identity<string>())(data.category);
+         instance.valueRules = __getCopyArrayFn(__identity<any>())(data.valueRules);
+         instance.streamRules = __getCopyArrayFn(__identity<any>())(data.streamRules);
+         instance.schemaRules = __getCopyArrayFn(__identity<any>())(data.schemaRules);
+         instance.couchDBId = data.couchDBId;
+         instance._rev = data._rev;
+         return instance;
+     }
+ 
+     static fromDataUnion(data: AdapterDescriptionUnion): AdapterDescriptionUnion {
+         if (!data) {
+             return data;
+         }
+         switch (data["@class"]) {
+             case "org.apache.streampipes.model.connect.adapter.GenericAdapterSetDescription":
+                 return GenericAdapterSetDescription.fromData(data);
+             case "org.apache.streampipes.model.connect.adapter.GenericAdapterStreamDescription":
+                 return GenericAdapterStreamDescription.fromData(data);
+             case "org.apache.streampipes.model.connect.adapter.SpecificAdapterStreamDescription":
+                 return SpecificAdapterStreamDescription.fromData(data);
+             case "org.apache.streampipes.model.connect.adapter.SpecificAdapterSetDescription":
+                 return SpecificAdapterSetDescription.fromData(data);
+         }
+     }
+ }
+ 
+ export class AdapterDescriptionList extends NamedStreamPipesEntity {
+     "@class": "org.apache.streampipes.model.connect.adapter.AdapterDescriptionList";
+     list: AdapterDescriptionUnion[];
+ 
+     static fromData(data: AdapterDescriptionList, target?: AdapterDescriptionList): AdapterDescriptionList {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new AdapterDescriptionList();
+         super.fromData(data, instance);
+         instance.list = __getCopyArrayFn(AdapterDescription.fromDataUnion)(data.list);
+         return instance;
+     }
+ }
+ 
+ export class AdapterSetDescription extends AdapterDescription {
+     "@class": "org.apache.streampipes.model.connect.adapter.AdapterSetDescription" | "org.apache.streampipes.model.connect.adapter.GenericAdapterSetDescription" | "org.apache.streampipes.model.connect.adapter.SpecificAdapterSetDescription";
+     dataSet: SpDataSet;
+     stopPipeline: boolean;
+ 
+     static fromData(data: AdapterSetDescription, target?: AdapterSetDescription): AdapterSetDescription {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new AdapterSetDescription();
+         super.fromData(data, instance);
+         instance.dataSet = SpDataSet.fromData(data.dataSet);
+         instance.stopPipeline = data.stopPipeline;
+         return instance;
+     }
+ 
+     static fromDataUnion(data: AdapterSetDescriptionUnion): AdapterSetDescriptionUnion {
+         if (!data) {
+             return data;
+         }
+         switch (data["@class"]) {
+             case "org.apache.streampipes.model.connect.adapter.GenericAdapterSetDescription":
+                 return GenericAdapterSetDescription.fromData(data);
+             case "org.apache.streampipes.model.connect.adapter.SpecificAdapterSetDescription":
+                 return SpecificAdapterSetDescription.fromData(data);
+         }
+     }
+ }
+ 
+ export class AdapterStreamDescription extends AdapterDescription {
+     "@class": "org.apache.streampipes.model.connect.adapter.AdapterStreamDescription" | "org.apache.streampipes.model.connect.adapter.GenericAdapterStreamDescription" | "org.apache.streampipes.model.connect.adapter.SpecificAdapterStreamDescription";
+     dataStream: SpDataStreamUnion;
+ 
+     static fromData(data: AdapterStreamDescription, target?: AdapterStreamDescription): AdapterStreamDescription {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new AdapterStreamDescription();
+         super.fromData(data, instance);
+         instance.dataStream = SpDataStream.fromDataUnion(data.dataStream);
+         return instance;
+     }
+ 
+     static fromDataUnion(data: AdapterStreamDescriptionUnion): AdapterStreamDescriptionUnion {
+         if (!data) {
+             return data;
+         }
+         switch (data["@class"]) {
+             case "org.apache.streampipes.model.connect.adapter.SpecificAdapterStreamDescription":
+                 return SpecificAdapterStreamDescription.fromData(data);
+             case "org.apache.streampipes.model.connect.adapter.SpecificAdapterStreamDescription":
+                 return SpecificAdapterStreamDescription.fromData(data);
+         }
+     }
+ }
+ 
+ export class AdapterType {
+     code: string;
+     description: string;
+     label: string;
+ 
+     static fromData(data: AdapterType, target?: AdapterType): AdapterType {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new AdapterType();
+         instance.label = data.label;
+         instance.description = data.description;
+         instance.code = data.code;
+         return instance;
+     }
+ }
+ 
+ export class TransformationRuleDescription extends UnnamedStreamPipesEntity {
+     "@class": "org.apache.streampipes.model.connect.rules.TransformationRuleDescription" | "org.apache.streampipes.model.connect.rules.value.ValueTransformationRuleDescription" | "org.apache.streampipes.model.connect.rules.value.AddTimestampRuleDescription" | "org.apache.streampipes.model.connect.rules.value.AddValueTransformationRuleDescription" | "org.apache.streampipes.model.connect.rules.value.TimestampTranfsformationRuleDescription" | "org.apache.streampipes.model.connect.rules.val [...]
+ 
+     static fromData(data: TransformationRuleDescription, target?: TransformationRuleDescription): TransformationRuleDescription {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new TransformationRuleDescription();
+         super.fromData(data, instance);
+         return instance;
+     }
+ 
+     static fromDataUnion(data: TransformationRuleDescriptionUnion): TransformationRuleDescriptionUnion {
+         if (!data) {
+             return data;
+         }
+         switch (data["@class"]) {
+             case "org.apache.streampipes.model.connect.rules.value.AddTimestampRuleDescription":
+                 return AddTimestampRuleDescription.fromData(data);
+             case "org.apache.streampipes.model.connect.rules.value.AddValueTransformationRuleDescription":
+                 return AddValueTransformationRuleDescription.fromData(data);
+             case "org.apache.streampipes.model.connect.rules.value.TimestampTranfsformationRuleDescription":
+                 return TimestampTranfsformationRuleDescription.fromData(data);
+             case "org.apache.streampipes.model.connect.rules.value.UnitTransformRuleDescription":
+                 return UnitTransformRuleDescription.fromData(data);
+             case "org.apache.streampipes.model.connect.rules.stream.EventRateTransformationRuleDescription":
+                 return EventRateTransformationRuleDescription.fromData(data);
+             case "org.apache.streampipes.model.connect.rules.stream.RemoveDuplicatesTransformationRuleDescription":
+                 return RemoveDuplicatesTransformationRuleDescription.fromData(data);
+             case "org.apache.streampipes.model.connect.rules.schema.CreateNestedRuleDescription":
+                 return CreateNestedRuleDescription.fromData(data);
+             case "org.apache.streampipes.model.connect.rules.schema.DeleteRuleDescription":
+                 return DeleteRuleDescription.fromData(data);
+             case "org.apache.streampipes.model.connect.rules.schema.RenameRuleDescription":
+                 return RenameRuleDescription.fromData(data);
+             case "org.apache.streampipes.model.connect.rules.schema.MoveRuleDescription":
+                 return MoveRuleDescription.fromData(data);
+             case "org.apache.streampipes.model.connect.rules.schema.CreateNestedRuleDescription":
+                 return CreateNestedRuleDescription.fromData(data);
+             case "org.apache.streampipes.model.connect.rules.schema.DeleteRuleDescription":
+                 return DeleteRuleDescription.fromData(data);
+             case "org.apache.streampipes.model.connect.rules.schema.RenameRuleDescription":
+                 return RenameRuleDescription.fromData(data);
+             case "org.apache.streampipes.model.connect.rules.schema.MoveRuleDescription":
+                 return MoveRuleDescription.fromData(data);
+         }
+     }
+ }
+ 
+ export class ValueTransformationRuleDescription extends TransformationRuleDescription {
+     "@class": "org.apache.streampipes.model.connect.rules.value.ValueTransformationRuleDescription" | "org.apache.streampipes.model.connect.rules.value.AddTimestampRuleDescription" | "org.apache.streampipes.model.connect.rules.value.AddValueTransformationRuleDescription" | "org.apache.streampipes.model.connect.rules.value.TimestampTranfsformationRuleDescription" | "org.apache.streampipes.model.connect.rules.value.UnitTransformRuleDescription";
+ 
+     static fromData(data: ValueTransformationRuleDescription, target?: ValueTransformationRuleDescription): ValueTransformationRuleDescription {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new ValueTransformationRuleDescription();
+         super.fromData(data, instance);
+         return instance;
+     }
+ 
+     static fromDataUnion(data: ValueTransformationRuleDescriptionUnion): ValueTransformationRuleDescriptionUnion {
+         if (!data) {
+             return data;
+         }
+         switch (data["@class"]) {
+             case "org.apache.streampipes.model.connect.rules.value.AddTimestampRuleDescription":
+                 return AddTimestampRuleDescription.fromData(data);
+             case "org.apache.streampipes.model.connect.rules.value.AddValueTransformationRuleDescription":
+                 return AddValueTransformationRuleDescription.fromData(data);
+             case "org.apache.streampipes.model.connect.rules.value.TimestampTranfsformationRuleDescription":
+                 return TimestampTranfsformationRuleDescription.fromData(data);
+             case "org.apache.streampipes.model.connect.rules.value.UnitTransformRuleDescription":
+                 return UnitTransformRuleDescription.fromData(data);
+         }
+     }
+ }
+ 
+ export class AddTimestampRuleDescription extends ValueTransformationRuleDescription {
+     "@class": "org.apache.streampipes.model.connect.rules.value.AddTimestampRuleDescription";
+     runtimeKey: string;
+ 
+     static fromData(data: AddTimestampRuleDescription, target?: AddTimestampRuleDescription): AddTimestampRuleDescription {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new AddTimestampRuleDescription();
+         super.fromData(data, instance);
+         instance.runtimeKey = data.runtimeKey;
+         return instance;
+     }
+ }
+ 
+ export class AddValueTransformationRuleDescription extends ValueTransformationRuleDescription {
+     "@class": "org.apache.streampipes.model.connect.rules.value.AddValueTransformationRuleDescription";
+     runtimeKey: string;
+     staticValue: string;
+ 
+     static fromData(data: AddValueTransformationRuleDescription, target?: AddValueTransformationRuleDescription): AddValueTransformationRuleDescription {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new AddValueTransformationRuleDescription();
+         super.fromData(data, instance);
+         instance.runtimeKey = data.runtimeKey;
+         instance.staticValue = data.staticValue;
+         return instance;
+     }
+ }
+ 
+ export class StaticProperty extends UnnamedStreamPipesEntity {
+     "@class": "org.apache.streampipes.model.staticproperty.StaticProperty" | "org.apache.streampipes.model.staticproperty.CodeInputStaticProperty" | "org.apache.streampipes.model.staticproperty.CollectionStaticProperty" | "org.apache.streampipes.model.staticproperty.ColorPickerStaticProperty" | "org.apache.streampipes.model.staticproperty.DomainStaticProperty" | "org.apache.streampipes.model.staticproperty.FileStaticProperty" | "org.apache.streampipes.model.staticproperty.FreeTextStatic [...]
+     description: string;
+     index: number;
+     internalName: string;
+     label: string;
+     predefined: boolean;
+     staticPropertyType: StaticPropertyType;
+     valueRequired: boolean;
+ 
+     static fromData(data: StaticProperty, target?: StaticProperty): StaticProperty {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new StaticProperty();
+         super.fromData(data, instance);
+         instance.index = data.index;
+         instance.label = data.label;
+         instance.description = data.description;
+         instance.internalName = data.internalName;
+         instance.valueRequired = data.valueRequired;
+         instance.predefined = data.predefined;
+         instance.staticPropertyType = data.staticPropertyType;
+         return instance;
+     }
+ 
+     static fromDataUnion(data: StaticPropertyUnion): StaticPropertyUnion {
+         if (!data) {
+             return data;
+         }
+         switch (data["@class"]) {
+             case "org.apache.streampipes.model.staticproperty.AnyStaticProperty":
+                 return AnyStaticProperty.fromData(data);
+             case "org.apache.streampipes.model.staticproperty.CodeInputStaticProperty":
+                 return CodeInputStaticProperty.fromData(data);
+             case "org.apache.streampipes.model.staticproperty.CollectionStaticProperty":
+                 return CollectionStaticProperty.fromData(data);
+             case "org.apache.streampipes.model.staticproperty.ColorPickerStaticProperty":
+                 return ColorPickerStaticProperty.fromData(data);
+             case "org.apache.streampipes.model.staticproperty.DomainStaticProperty":
+                 return DomainStaticProperty.fromData(data);
+             case "org.apache.streampipes.model.staticproperty.FileStaticProperty":
+                 return FileStaticProperty.fromData(data);
+             case "org.apache.streampipes.model.staticproperty.FreeTextStaticProperty":
+                 return FreeTextStaticProperty.fromData(data);
+             case "org.apache.streampipes.model.staticproperty.MappingPropertyUnary":
+                 return MappingPropertyUnary.fromData(data);
+             case "org.apache.streampipes.model.staticproperty.MappingPropertyNary":
+                 return MappingPropertyNary.fromData(data);
+             case "org.apache.streampipes.model.staticproperty.MatchingStaticProperty":
+                 return MatchingStaticProperty.fromData(data);
+             case "org.apache.streampipes.model.staticproperty.OneOfStaticProperty":
+                 return OneOfStaticProperty.fromData(data);
+             case "org.apache.streampipes.model.staticproperty.RuntimeResolvableAnyStaticProperty":
+                 return RuntimeResolvableAnyStaticProperty.fromData(data);
+             case "org.apache.streampipes.model.staticproperty.RuntimeResolvableOneOfStaticProperty":
+                 return RuntimeResolvableOneOfStaticProperty.fromData(data);
+             case "org.apache.streampipes.model.staticproperty.SecretStaticProperty":
+                 return SecretStaticProperty.fromData(data);
+             case "org.apache.streampipes.model.staticproperty.StaticPropertyAlternative":
+                 return StaticPropertyAlternative.fromData(data);
+             case "org.apache.streampipes.model.staticproperty.StaticPropertyAlternatives":
+                 return StaticPropertyAlternatives.fromData(data);
+             case "org.apache.streampipes.model.staticproperty.StaticPropertyGroup":
+                 return StaticPropertyGroup.fromData(data);
+         }
+     }
+ }
+ 
+ export class SelectionStaticProperty extends StaticProperty {
+     "@class": "org.apache.streampipes.model.staticproperty.SelectionStaticProperty" | "org.apache.streampipes.model.staticproperty.AnyStaticProperty" | "org.apache.streampipes.model.staticproperty.RuntimeResolvableAnyStaticProperty" | "org.apache.streampipes.model.staticproperty.OneOfStaticProperty" | "org.apache.streampipes.model.staticproperty.RuntimeResolvableOneOfStaticProperty";
+     horizontalRendering: boolean;
+     options: Option[];
+ 
+     static fromData(data: SelectionStaticProperty, target?: SelectionStaticProperty): SelectionStaticProperty {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new SelectionStaticProperty();
+         super.fromData(data, instance);
+         instance.options = __getCopyArrayFn(Option.fromData)(data.options);
+         instance.horizontalRendering = data.horizontalRendering;
+         return instance;
+     }
+ 
+     static fromDataUnion(data: SelectionStaticPropertyUnion): SelectionStaticPropertyUnion {
+         if (!data) {
+             return data;
+         }
+         switch (data["@class"]) {
+             case "org.apache.streampipes.model.staticproperty.AnyStaticProperty":
+                 return AnyStaticProperty.fromData(data);
+             case "org.apache.streampipes.model.staticproperty.OneOfStaticProperty":
+                 return OneOfStaticProperty.fromData(data);
+         }
+     }
+ }
+ 
+ export class AnyStaticProperty extends SelectionStaticProperty {
+     "@class": "org.apache.streampipes.model.staticproperty.AnyStaticProperty" | "org.apache.streampipes.model.staticproperty.RuntimeResolvableAnyStaticProperty";
+ 
+     static fromData(data: AnyStaticProperty, target?: AnyStaticProperty): AnyStaticProperty {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new AnyStaticProperty();
+         super.fromData(data, instance);
+         return instance;
+     }
+ }
+ 
+ export class OutputStrategy extends UnnamedStreamPipesEntity {
+     "@class": "org.apache.streampipes.model.output.OutputStrategy" | "org.apache.streampipes.model.output.AppendOutputStrategy" | "org.apache.streampipes.model.output.CustomOutputStrategy" | "org.apache.streampipes.model.output.CustomTransformOutputStrategy" | "org.apache.streampipes.model.output.FixedOutputStrategy" | "org.apache.streampipes.model.output.KeepOutputStrategy" | "org.apache.streampipes.model.output.ListOutputStrategy" | "org.apache.streampipes.model.output.TransformOutput [...]
+     name: string;
+     renameRules: PropertyRenameRule[];
+ 
+     static fromData(data: OutputStrategy, target?: OutputStrategy): OutputStrategy {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new OutputStrategy();
+         super.fromData(data, instance);
+         instance.name = data.name;
+         instance.renameRules = __getCopyArrayFn(PropertyRenameRule.fromData)(data.renameRules);
+         return instance;
+     }
+ 
+     static fromDataUnion(data: OutputStrategyUnion): OutputStrategyUnion {
+         if (!data) {
+             return data;
+         }
+         switch (data["@class"]) {
+             case "org.apache.streampipes.model.output.AppendOutputStrategy":
+                 return AppendOutputStrategy.fromData(data);
+             case "org.apache.streampipes.model.output.CustomOutputStrategy":
+                 return CustomOutputStrategy.fromData(data);
+             case "org.apache.streampipes.model.output.CustomTransformOutputStrategy":
+                 return CustomTransformOutputStrategy.fromData(data);
+             case "org.apache.streampipes.model.output.FixedOutputStrategy":
+                 return FixedOutputStrategy.fromData(data);
+             case "org.apache.streampipes.model.output.KeepOutputStrategy":
+                 return KeepOutputStrategy.fromData(data);
+             case "org.apache.streampipes.model.output.ListOutputStrategy":
+                 return ListOutputStrategy.fromData(data);
+             case "org.apache.streampipes.model.output.TransformOutputStrategy":
+                 return TransformOutputStrategy.fromData(data);
+             case "org.apache.streampipes.model.output.UserDefinedOutputStrategy":
+                 return UserDefinedOutputStrategy.fromData(data);
+         }
+     }
+ }
+ 
+ export class AppendOutputStrategy extends OutputStrategy {
+     "@class": "org.apache.streampipes.model.output.AppendOutputStrategy";
+     eventProperties: EventPropertyUnion[];
+ 
+     static fromData(data: AppendOutputStrategy, target?: AppendOutputStrategy): AppendOutputStrategy {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new AppendOutputStrategy();
+         super.fromData(data, instance);
+         instance.eventProperties = __getCopyArrayFn(EventProperty.fromDataUnion)(data.eventProperties);
+         return instance;
+     }
+ }
+ 
+ export class ApplicationLink extends UnnamedStreamPipesEntity {
+     "@class": "org.apache.streampipes.model.ApplicationLink";
+     applicationDescription: string;
+     applicationIconUrl: string;
+     applicationLinkType: string;
+     applicationName: string;
+     applicationUrl: string;
+ 
+     static fromData(data: ApplicationLink, target?: ApplicationLink): ApplicationLink {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new ApplicationLink();
+         super.fromData(data, instance);
+         instance.applicationName = data.applicationName;
+         instance.applicationDescription = data.applicationDescription;
+         instance.applicationUrl = data.applicationUrl;
+         instance.applicationIconUrl = data.applicationIconUrl;
+         instance.applicationLinkType = data.applicationLinkType;
+         return instance;
+     }
+ }
+ 
+ export class CodeInputStaticProperty extends StaticProperty {
+     "@class": "org.apache.streampipes.model.staticproperty.CodeInputStaticProperty";
+     codeTemplate: string;
+     language: string;
+     value: string;
+ 
+     static fromData(data: CodeInputStaticProperty, target?: CodeInputStaticProperty): CodeInputStaticProperty {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new CodeInputStaticProperty();
+         super.fromData(data, instance);
+         instance.language = data.language;
+         instance.codeTemplate = data.codeTemplate;
+         instance.value = data.value;
+         return instance;
+     }
+ }
+ 
+ export class CollectionStaticProperty extends StaticProperty {
+     "@class": "org.apache.streampipes.model.staticproperty.CollectionStaticProperty";
+     memberType: string;
+     members: StaticPropertyUnion[];
+     staticPropertyTemplate: StaticPropertyUnion;
+ 
+     static fromData(data: CollectionStaticProperty, target?: CollectionStaticProperty): CollectionStaticProperty {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new CollectionStaticProperty();
+         super.fromData(data, instance);
+         instance.staticPropertyTemplate = StaticProperty.fromDataUnion(data.staticPropertyTemplate);
+         instance.members = __getCopyArrayFn(StaticProperty.fromDataUnion)(data.members);
+         instance.memberType = data.memberType;
+         return instance;
+     }
+ }
+ 
+ export class ColorPickerStaticProperty extends StaticProperty {
+     "@class": "org.apache.streampipes.model.staticproperty.ColorPickerStaticProperty";
+     selectedColor: string;
+ 
+     static fromData(data: ColorPickerStaticProperty, target?: ColorPickerStaticProperty): ColorPickerStaticProperty {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new ColorPickerStaticProperty();
+         super.fromData(data, instance);
+         instance.selectedColor = data.selectedColor;
+         return instance;
+     }
+ }
+ 
+ export class SchemaTransformationRuleDescription extends TransformationRuleDescription {
+     "@class": "org.apache.streampipes.model.connect.rules.schema.SchemaTransformationRuleDescription" | "org.apache.streampipes.model.connect.rules.schema.CreateNestedRuleDescription" | "org.apache.streampipes.model.connect.rules.schema.DeleteRuleDescription" | "org.apache.streampipes.model.connect.rules.schema.RenameRuleDescription" | "org.apache.streampipes.model.connect.rules.schema.MoveRuleDescription";
+ 
+     static fromData(data: SchemaTransformationRuleDescription, target?: SchemaTransformationRuleDescription): SchemaTransformationRuleDescription {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new SchemaTransformationRuleDescription();
+         super.fromData(data, instance);
+         return instance;
+     }
+ }
+ 
+ export class CreateNestedRuleDescription extends SchemaTransformationRuleDescription {
+     "@class": "org.apache.streampipes.model.connect.rules.schema.CreateNestedRuleDescription";
+     runtimeKey: string;
+ 
+     static fromData(data: CreateNestedRuleDescription, target?: CreateNestedRuleDescription): CreateNestedRuleDescription {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new CreateNestedRuleDescription();
+         super.fromData(data, instance);
+         instance.runtimeKey = data.runtimeKey;
+         return instance;
+     }
+ }
+ 
+ export class CustomOutputStrategy extends OutputStrategy {
+     "@class": "org.apache.streampipes.model.output.CustomOutputStrategy";
+     availablePropertyKeys: string[];
+     outputRight: boolean;
+     selectedPropertyKeys: string[];
+ 
+     static fromData(data: CustomOutputStrategy, target?: CustomOutputStrategy): CustomOutputStrategy {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new CustomOutputStrategy();
+         super.fromData(data, instance);
+         instance.selectedPropertyKeys = __getCopyArrayFn(__identity<string>())(data.selectedPropertyKeys);
+         instance.outputRight = data.outputRight;
+         instance.availablePropertyKeys = __getCopyArrayFn(__identity<string>())(data.availablePropertyKeys);
+         return instance;
+     }
+ }
+ 
+ export class CustomTransformOutputStrategy extends OutputStrategy {
+     "@class": "org.apache.streampipes.model.output.CustomTransformOutputStrategy";
+     eventProperties: EventPropertyUnion[];
+ 
+     static fromData(data: CustomTransformOutputStrategy, target?: CustomTransformOutputStrategy): CustomTransformOutputStrategy {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new CustomTransformOutputStrategy();
+         super.fromData(data, instance);
+         instance.eventProperties = __getCopyArrayFn(EventProperty.fromDataUnion)(data.eventProperties);
+         return instance;
+     }
+ }
+ 
+ export class DashboardEntity extends UnnamedStreamPipesEntity {
+     "@class": "org.apache.streampipes.model.dashboard.DashboardEntity" | "org.apache.streampipes.model.dashboard.DashboardWidgetModel" | "org.apache.streampipes.model.dashboard.VisualizablePipeline" | "org.apache.streampipes.model.datalake.DataExplorerWidgetModel";
+     _id: string;
+     _rev: string;
+ 
+     static fromData(data: DashboardEntity, target?: DashboardEntity): DashboardEntity {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new DashboardEntity();
+         super.fromData(data, instance);
+         instance._id = data._id;
+         instance._rev = data._rev;
+         return instance;
+     }
+ 
+     static fromDataUnion(data: DashboardEntityUnion): DashboardEntityUnion {
+         if (!data) {
+             return data;
+         }
+         switch (data["@class"]) {
+             case "org.apache.streampipes.model.dashboard.DashboardWidgetModel":
+                 return DashboardWidgetModel.fromData(data);
+             case "org.apache.streampipes.model.dashboard.VisualizablePipeline":
+                 return VisualizablePipeline.fromData(data);
+             case "org.apache.streampipes.model.datalake.DataExplorerWidgetModel":
+                 return DataExplorerWidgetModel.fromData(data);
+         }
+     }
+ }
+ 
+ export class DashboardItem {
+     cols: number;
+     component: string;
+     id: string;
+     name: string;
+     rows: number;
+     settings: string[];
+     widgetType: string;
+     x: number;
+     y: number;
+ 
+     static fromData(data: DashboardItem, target?: DashboardItem): DashboardItem {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new DashboardItem();
+         instance.id = data.id;
+         instance.name = data.name;
+         instance.component = data.component;
+         instance.widgetType = data.widgetType;
+         instance.settings = __getCopyArrayFn(__identity<string>())(data.settings);
+         instance.cols = data.cols;
+         instance.rows = data.rows;
+         instance.x = data.x;
+         instance.y = data.y;
+         return instance;
+     }
+ }
+ 
+ export class DashboardModel {
+     _id: string;
+     _rev: string;
+     description: string;
+     displayHeader: boolean;
+     id: string;
+     name: string;
+     widgets: DashboardItem[];
+ 
+     static fromData(data: DashboardModel, target?: DashboardModel): DashboardModel {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new DashboardModel();
+         instance.id = data.id;
+         instance.name = data.name;
+         instance.description = data.description;
+         instance.displayHeader = data.displayHeader;
+         instance.widgets = __getCopyArrayFn(DashboardItem.fromData)(data.widgets);
+         instance._id = data._id;
+         instance._rev = data._rev;
+         return instance;
+     }
+ }
+ 
+ export class DashboardWidgetModel extends DashboardEntity {
+     "@class": "org.apache.streampipes.model.dashboard.DashboardWidgetModel";
+     dashboardWidgetSettings: DashboardWidgetSettings;
+     pipelineId: string;
+     visualizablePipelineId: string;
+     visualizablePipelineTopic: string;
+     visualizationName: string;
+     widgetId: string;
+ 
+     static fromData(data: DashboardWidgetModel, target?: DashboardWidgetModel): DashboardWidgetModel {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new DashboardWidgetModel();
+         super.fromData(data, instance);
+         instance.widgetId = data.widgetId;
+         instance.dashboardWidgetSettings = DashboardWidgetSettings.fromData(data.dashboardWidgetSettings);
+         instance.visualizablePipelineId = data.visualizablePipelineId;
+         instance.visualizablePipelineTopic = data.visualizablePipelineTopic;
+         instance.visualizationName = data.visualizationName;
+         instance.pipelineId = data.pipelineId;
+         return instance;
+     }
+ }
+ 
+ export class DashboardWidgetSettings extends UnnamedStreamPipesEntity {
+     "@class": "org.apache.streampipes.model.dashboard.DashboardWidgetSettings";
+     config: StaticPropertyUnion[];
+     requiredSchema: EventSchema;
+     widgetDescription: string;
+     widgetIconName: string;
+     widgetLabel: string;
+     widgetName: string;
+ 
+     static fromData(data: DashboardWidgetSettings, target?: DashboardWidgetSettings): DashboardWidgetSettings {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new DashboardWidgetSettings();
+         super.fromData(data, instance);
+         instance.widgetLabel = data.widgetLabel;
+         instance.widgetName = data.widgetName;
+         instance.config = __getCopyArrayFn(StaticProperty.fromDataUnion)(data.config);
+         instance.requiredSchema = EventSchema.fromData(data.requiredSchema);
+         instance.widgetIconName = data.widgetIconName;
+         instance.widgetDescription = data.widgetDescription;
+         return instance;
+     }
+ }
+ 
+ export class DataExplorerWidgetModel extends DashboardEntity {
+     "@class": "org.apache.streampipes.model.datalake.DataExplorerWidgetModel";
+     dataLakeMeasure: DataLakeMeasure;
+     selectedKeys: string;
+     widgetId: string;
+     widgetType: string;
+ 
+     static fromData(data: DataExplorerWidgetModel, target?: DataExplorerWidgetModel): DataExplorerWidgetModel {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new DataExplorerWidgetModel();
+         super.fromData(data, instance);
+         instance.widgetId = data.widgetId;
+         instance.widgetType = data.widgetType;
+         instance.selectedKeys = data.selectedKeys;
+         instance.dataLakeMeasure = DataLakeMeasure.fromData(data.dataLakeMeasure);
+         return instance;
+     }
+ }
+ 
+ export class DataLakeMeasure extends UnnamedStreamPipesEntity {
+     "@class": "org.apache.streampipes.model.datalake.DataLakeMeasure";
+     eventSchema: EventSchema;
+     measureName: string;
+ 
+     static fromData(data: DataLakeMeasure, target?: DataLakeMeasure): DataLakeMeasure {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new DataLakeMeasure();
+         super.fromData(data, instance);
+         instance.measureName = data.measureName;
+         instance.eventSchema = EventSchema.fromData(data.eventSchema);
+         return instance;
+     }
+ }
+ 
+ export class InvocableStreamPipesEntity extends NamedStreamPipesEntity {
+     "@class": "org.apache.streampipes.model.base.InvocableStreamPipesEntity" | "org.apache.streampipes.model.graph.DataProcessorInvocation" | "org.apache.streampipes.model.graph.DataSinkInvocation";
+     belongsTo: string;
+     configured: boolean;
+     correspondingPipeline: string;
+     correspondingUser: string;
++    deploymentRunningInstanceId: string;
++    deploymentTargetNodeHostname: string;
++    deploymentTargetNodeId: string;
++    deploymentTargetNodePort: number;
++    elementEndpointHostname: string;
++    elementEndpointPort: number;
++    elementEndpointServiceName: string;
+     inputStreams: SpDataStreamUnion[];
+     staticProperties: StaticPropertyUnion[];
+     statusInfoSettings: ElementStatusInfoSettings;
+     streamRequirements: SpDataStreamUnion[];
+     supportedGrounding: EventGrounding;
+     uncompleted: boolean;
+ 
+     static fromData(data: InvocableStreamPipesEntity, target?: InvocableStreamPipesEntity): InvocableStreamPipesEntity {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new InvocableStreamPipesEntity();
+         super.fromData(data, instance);
+         instance.inputStreams = __getCopyArrayFn(SpDataStream.fromDataUnion)(data.inputStreams);
+         instance.staticProperties = __getCopyArrayFn(StaticProperty.fromDataUnion)(data.staticProperties);
+         instance.belongsTo = data.belongsTo;
+         instance.statusInfoSettings = ElementStatusInfoSettings.fromData(data.statusInfoSettings);
+         instance.supportedGrounding = EventGrounding.fromData(data.supportedGrounding);
+         instance.correspondingPipeline = data.correspondingPipeline;
+         instance.correspondingUser = data.correspondingUser;
+         instance.streamRequirements = __getCopyArrayFn(SpDataStream.fromDataUnion)(data.streamRequirements);
++        instance.elementEndpointHostname = data.elementEndpointHostname;
++        instance.elementEndpointPort = data.elementEndpointPort;
++        instance.deploymentTargetNodeId = data.deploymentTargetNodeId;
++        instance.deploymentTargetNodeHostname = data.deploymentTargetNodeHostname;
++        instance.deploymentTargetNodePort = data.deploymentTargetNodePort;
++        instance.deploymentRunningInstanceId = data.deploymentRunningInstanceId;
++        instance.elementEndpointServiceName = data.elementEndpointServiceName;
+         instance.configured = data.configured;
+         instance.uncompleted = data.uncompleted;
+         return instance;
+     }
+ }
+ 
+ export class DataProcessorInvocation extends InvocableStreamPipesEntity {
+     "@class": "org.apache.streampipes.model.graph.DataProcessorInvocation";
+     category: string[];
+     outputStrategies: OutputStrategyUnion[];
+     outputStream: SpDataStreamUnion;
+     pathName: string;
+ 
+     static fromData(data: DataProcessorInvocation, target?: DataProcessorInvocation): DataProcessorInvocation {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new DataProcessorInvocation();
+         super.fromData(data, instance);
+         instance.outputStream = SpDataStream.fromDataUnion(data.outputStream);
+         instance.outputStrategies = __getCopyArrayFn(OutputStrategy.fromDataUnion)(data.outputStrategies);
+         instance.pathName = data.pathName;
+         instance.category = __getCopyArrayFn(__identity<string>())(data.category);
+         return instance;
+     }
+ }
+ 
+ export class DataProcessorType {
+     code: string;
+     description: string;
+     label: string;
+ 
+     static fromData(data: DataProcessorType, target?: DataProcessorType): DataProcessorType {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new DataProcessorType();
+         instance.label = data.label;
+         instance.description = data.description;
+         instance.code = data.code;
+         return instance;
+     }
+ }
+ 
+ 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 DataSetModificationMessage extends Message {
+     eventGrounding: EventGrounding;
+     invocationId: string;
+ 
+     static fromData(data: DataSetModificationMessage, target?: DataSetModificationMessage): DataSetModificationMessage {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new DataSetModificationMessage();
+         super.fromData(data, instance);
+         instance.eventGrounding = EventGrounding.fromData(data.eventGrounding);
+         instance.invocationId = data.invocationId;
+         return instance;
+     }
+ }
+ 
+ export class DataSinkInvocation extends InvocableStreamPipesEntity {
+     "@class": "org.apache.streampipes.model.graph.DataSinkInvocation";
+     category: string[];
+ 
+     static fromData(data: DataSinkInvocation, target?: DataSinkInvocation): DataSinkInvocation {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new DataSinkInvocation();
+         super.fromData(data, instance);
+         instance.category = __getCopyArrayFn(__identity<string>())(data.category);
+         return instance;
+     }
+ }
+ 
+ export class DataSinkType {
+     code: string;
+     description: string;
+     label: string;
+ 
+     static fromData(data: DataSinkType, target?: DataSinkType): DataSinkType {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new DataSinkType();
+         instance.label = data.label;
+         instance.description = data.description;
+         instance.code = data.code;
+         return instance;
+     }
+ }
+ 
+ export class DataSourceDescription extends NamedStreamPipesEntity {
+     "@class": "org.apache.streampipes.model.graph.DataSourceDescription";
+     correspondingSourceId: string;
+     spDataStreams: SpDataStreamUnion[];
+ 
+     static fromData(data: DataSourceDescription, target?: DataSourceDescription): DataSourceDescription {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new DataSourceDescription();
+         super.fromData(data, instance);
+         instance.spDataStreams = __getCopyArrayFn(SpDataStream.fromDataUnion)(data.spDataStreams);
+         instance.correspondingSourceId = data.correspondingSourceId;
+         return instance;
+     }
+ }
+ 
+ export class DeleteRuleDescription extends SchemaTransformationRuleDescription {
+     "@class": "org.apache.streampipes.model.connect.rules.schema.DeleteRuleDescription";
+     runtimeKey: string;
+ 
+     static fromData(data: DeleteRuleDescription, target?: DeleteRuleDescription): DeleteRuleDescription {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new DeleteRuleDescription();
+         super.fromData(data, instance);
+         instance.runtimeKey = data.runtimeKey;
+         return instance;
+     }
+ }
+ 
+ export class DomainPropertyProbability extends UnnamedStreamPipesEntity {
+     "@class": "org.apache.streampipes.model.connect.guess.DomainPropertyProbability";
+     domainProperty: string;
+     probability: string;
+ 
+     static fromData(data: DomainPropertyProbability, target?: DomainPropertyProbability): DomainPropertyProbability {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new DomainPropertyProbability();
+         super.fromData(data, instance);
+         instance.domainProperty = data.domainProperty;
+         instance.probability = data.probability;
+         return instance;
+     }
+ }
+ 
+ export class DomainPropertyProbabilityList extends UnnamedStreamPipesEntity {
+     "@class": "org.apache.streampipes.model.connect.guess.DomainPropertyProbabilityList";
+     list: DomainPropertyProbability[];
+     runtimeName: string;
+ 
+     static fromData(data: DomainPropertyProbabilityList, target?: DomainPropertyProbabilityList): DomainPropertyProbabilityList {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new DomainPropertyProbabilityList();
+         super.fromData(data, instance);
+         instance.runtimeName = data.runtimeName;
+         instance.list = __getCopyArrayFn(DomainPropertyProbability.fromData)(data.list);
+         return instance;
+     }
+ }
+ 
+ export class DomainStaticProperty extends StaticProperty {
+     "@class": "org.apache.streampipes.model.staticproperty.DomainStaticProperty";
+     requiredClass: string;
+     supportedProperties: SupportedProperty[];
+ 
+     static fromData(data: DomainStaticProperty, target?: DomainStaticProperty): DomainStaticProperty {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new DomainStaticProperty();
+         super.fromData(data, instance);
+         instance.requiredClass = data.requiredClass;
+         instance.supportedProperties = __getCopyArrayFn(SupportedProperty.fromData)(data.supportedProperties);
+         return instance;
+     }
+ }
+ 
+ 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;
+     errorTopic: string;
+     kafkaHost: string;
+     kafkaPort: number;
+     statsTopic: string;
+ 
+     static fromData(data: ElementStatusInfoSettings, target?: ElementStatusInfoSettings): ElementStatusInfoSettings {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new ElementStatusInfoSettings();
+         super.fromData(data, instance);
+         instance.elementIdentifier = data.elementIdentifier;
+         instance.kafkaHost = data.kafkaHost;
+         instance.kafkaPort = data.kafkaPort;
+         instance.errorTopic = data.errorTopic;
+         instance.statsTopic = data.statsTopic;
+         return instance;
+     }
+ }
+ 
+ export class ValueSpecification extends UnnamedStreamPipesEntity {
+     "@class": "org.apache.streampipes.model.schema.ValueSpecification" | "org.apache.streampipes.model.schema.QuantitativeValue" | "org.apache.streampipes.model.schema.Enumeration";
+ 
+     static fromData(data: ValueSpecification, target?: ValueSpecification): ValueSpecification {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new ValueSpecification();
+         super.fromData(data, instance);
+         return instance;
+     }
+ 
+     static fromDataUnion(data: ValueSpecificationUnion): ValueSpecificationUnion {
+         if (!data) {
+             return data;
+         }
+         switch (data["@class"]) {
+             case "org.apache.streampipes.model.schema.QuantitativeValue":
+                 return QuantitativeValue.fromData(data);
+             case "org.apache.streampipes.model.schema.Enumeration":
+                 return Enumeration.fromData(data);
+         }
+     }
+ }
+ 
+ export class Enumeration extends ValueSpecification {
+     "@class": "org.apache.streampipes.model.schema.Enumeration";
+     description: string;
+     label: string;
+     runtimeValues: string[];
+ 
+     static fromData(data: Enumeration, target?: Enumeration): Enumeration {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new Enumeration();
+         super.fromData(data, instance);
+         instance.label = data.label;
+         instance.description = data.description;
+         instance.runtimeValues = __getCopyArrayFn(__identity<string>())(data.runtimeValues);
+         return instance;
+     }
+ }
+ 
+ export class ErrorMessage extends Message {
+ 
+     static fromData(data: ErrorMessage, target?: ErrorMessage): ErrorMessage {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new ErrorMessage();
+         super.fromData(data, instance);
+         return instance;
+     }
+ }
+ 
+ export class EventGrounding extends UnnamedStreamPipesEntity {
+     "@class": "org.apache.streampipes.model.grounding.EventGrounding";
+     transportFormats: TransportFormat[];
+     transportProtocols: TransportProtocolUnion[];
+ 
+     static fromData(data: EventGrounding, target?: EventGrounding): EventGrounding {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new EventGrounding();
+         super.fromData(data, instance);
+         instance.transportProtocols = __getCopyArrayFn(TransportProtocol.fromDataUnion)(data.transportProtocols);
+         instance.transportFormats = __getCopyArrayFn(TransportFormat.fromData)(data.transportFormats);
+         return instance;
+     }
+ }
+ 
+ export class EventProperty extends UnnamedStreamPipesEntity {
+     "@class": "org.apache.streampipes.model.schema.EventProperty" | "org.apache.streampipes.model.schema.EventPropertyList" | "org.apache.streampipes.model.schema.EventPropertyNested" | "org.apache.streampipes.model.schema.EventPropertyPrimitive";
+     description: string;
+     domainProperties: string[];
+     eventPropertyQualities: EventPropertyQualityDefinitionUnion[];
+     index: number;
+     label: string;
+     propertyScope: string;
+     required: boolean;
+     requiresEventPropertyQualities: EventPropertyQualityRequirement[];
+     runtimeId: string;
+     runtimeName: string;
+ 
+     static fromData(data: EventProperty, target?: EventProperty): EventProperty {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new EventProperty();
+         super.fromData(data, instance);
+         instance.label = data.label;
+         instance.description = data.description;
+         instance.runtimeName = data.runtimeName;
+         instance.required = data.required;
+         instance.domainProperties = __getCopyArrayFn(__identity<string>())(data.domainProperties);
+         instance.eventPropertyQualities = __getCopyArrayFn(EventPropertyQualityDefinition.fromDataUnion)(data.eventPropertyQualities);
+         instance.requiresEventPropertyQualities = __getCopyArrayFn(EventPropertyQualityRequirement.fromData)(data.requiresEventPropertyQualities);
+         instance.propertyScope = data.propertyScope;
+         instance.index = data.index;
+         instance.runtimeId = data.runtimeId;
+         return instance;
+     }
+ 
+     static fromDataUnion(data: EventPropertyUnion): EventPropertyUnion {
+         if (!data) {
+             return data;
+         }
+         switch (data["@class"]) {
+             case "org.apache.streampipes.model.schema.EventPropertyList":
+                 return EventPropertyList.fromData(data);
+             case "org.apache.streampipes.model.schema.EventPropertyNested":
+                 return EventPropertyNested.fromData(data);
+             case "org.apache.streampipes.model.schema.EventPropertyPrimitive":
+                 return EventPropertyPrimitive.fromData(data);
+         }
+     }
+ }
+ 
+ export class EventPropertyList extends EventProperty {
+     "@class": "org.apache.streampipes.model.schema.EventPropertyList";
+     eventProperty: EventPropertyUnion;
+ 
+     static fromData(data: EventPropertyList, target?: EventPropertyList): EventPropertyList {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new EventPropertyList();
+         super.fromData(data, instance);
+         instance.eventProperty = EventProperty.fromDataUnion(data.eventProperty);
+         return instance;
+     }
+ }
+ 
+ export class EventPropertyNested extends EventProperty {
+     "@class": "org.apache.streampipes.model.schema.EventPropertyNested";
+     eventProperties: EventPropertyUnion[];
+ 
+     static fromData(data: EventPropertyNested, target?: EventPropertyNested): EventPropertyNested {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new EventPropertyNested();
+         super.fromData(data, instance);
+         instance.eventProperties = __getCopyArrayFn(EventProperty.fromDataUnion)(data.eventProperties);
+         return instance;
+     }
+ }
+ 
+ export class EventPropertyPrimitive extends EventProperty {
+     "@class": "org.apache.streampipes.model.schema.EventPropertyPrimitive";
+     measurementUnit: string;
+     runtimeType: string;
+     valueSpecification: ValueSpecificationUnion;
+ 
+     static fromData(data: EventPropertyPrimitive, target?: EventPropertyPrimitive): EventPropertyPrimitive {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new EventPropertyPrimitive();
+         super.fromData(data, instance);
+         instance.runtimeType = data.runtimeType;
+         instance.measurementUnit = data.measurementUnit;
+         instance.valueSpecification = ValueSpecification.fromDataUnion(data.valueSpecification);
+         return instance;
+     }
+ }
+ 
+ export class EventPropertyQualityRequirement extends UnnamedStreamPipesEntity {
+     "@class": "org.apache.streampipes.model.quality.EventPropertyQualityRequirement";
+     maximumPropertyQuality: EventPropertyQualityDefinitionUnion;
+     minimumPropertyQuality: EventPropertyQualityDefinitionUnion;
+ 
+     static fromData(data: EventPropertyQualityRequirement, target?: EventPropertyQualityRequirement): EventPropertyQualityRequirement {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new EventPropertyQualityRequirement();
+         super.fromData(data, instance);
+         instance.minimumPropertyQuality = EventPropertyQualityDefinition.fromDataUnion(data.minimumPropertyQuality);
+         instance.maximumPropertyQuality = EventPropertyQualityDefinition.fromDataUnion(data.maximumPropertyQuality);
+         return instance;
+     }
+ }
+ 
+ export class StreamTransformationRuleDescription extends TransformationRuleDescription {
+     "@class": "org.apache.streampipes.model.connect.rules.stream.StreamTransformationRuleDescription" | "org.apache.streampipes.model.connect.rules.stream.EventRateTransformationRuleDescription" | "org.apache.streampipes.model.connect.rules.stream.RemoveDuplicatesTransformationRuleDescription";
+ 
+     static fromData(data: StreamTransformationRuleDescription, target?: StreamTransformationRuleDescription): StreamTransformationRuleDescription {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new StreamTransformationRuleDescription();
+         super.fromData(data, instance);
+         return instance;
+     }
+ 
+     static fromDataUnion(data: StreamTransformationRuleDescriptionUnion): StreamTransformationRuleDescriptionUnion {
+         if (!data) {
+             return data;
+         }
+         switch (data["@class"]) {
+             case "org.apache.streampipes.model.connect.rules.stream.EventRateTransformationRuleDescription":
+                 return EventRateTransformationRuleDescription.fromData(data);
+             case "org.apache.streampipes.model.connect.rules.stream.RemoveDuplicatesTransformationRuleDescription":
+                 return RemoveDuplicatesTransformationRuleDescription.fromData(data);
+         }
+     }
+ }
+ 
+ export class EventRateTransformationRuleDescription extends StreamTransformationRuleDescription {
+     "@class": "org.apache.streampipes.model.connect.rules.stream.EventRateTransformationRuleDescription";
+     aggregationTimeWindow: number;
+     aggregationType: string;
+ 
+     static fromData(data: EventRateTransformationRuleDescription, target?: EventRateTransformationRuleDescription): EventRateTransformationRuleDescription {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new EventRateTransformationRuleDescription();
+         super.fromData(data, instance);
+         instance.aggregationTimeWindow = data.aggregationTimeWindow;
+         instance.aggregationType = data.aggregationType;
+         return instance;
+     }
+ }
+ 
+ export class EventSchema extends UnnamedStreamPipesEntity {
+     "@class": "org.apache.streampipes.model.schema.EventSchema";
+     eventProperties: EventPropertyUnion[];
+ 
+     static fromData(data: EventSchema, target?: EventSchema): EventSchema {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new EventSchema();
+         super.fromData(data, instance);
+         instance.eventProperties = __getCopyArrayFn(EventProperty.fromDataUnion)(data.eventProperties);
+         return instance;
+     }
+ }
+ 
+ export class EventStreamQualityDefinition extends MeasurementProperty {
+     "@class": "org.apache.streampipes.model.quality.EventStreamQualityDefinition" | "org.apache.streampipes.model.quality.Frequency" | "org.apache.streampipes.model.quality.Latency";
+ 
+     static fromData(data: EventStreamQualityDefinition, target?: EventStreamQualityDefinition): EventStreamQualityDefinition {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new EventStreamQualityDefinition();
+         super.fromData(data, instance);
+         return instance;
+     }
+ 
+     static fromDataUnion(data: EventStreamQualityDefinitionUnion): EventStreamQualityDefinitionUnion {
+         if (!data) {
+             return data;
+         }
+         switch (data["@class"]) {
+             case "org.apache.streampipes.model.quality.Frequency":
+                 return Frequency.fromData(data);
+             case "org.apache.streampipes.model.quality.Latency":
+                 return Latency.fromData(data);
+         }
+     }
+ }
+ 
+ export class EventStreamQualityRequirement extends UnnamedStreamPipesEntity {
+     "@class": "org.apache.streampipes.model.quality.EventStreamQualityRequirement";
+     maximumStreamQuality: EventStreamQualityDefinitionUnion;
+     minimumStreamQuality: EventStreamQualityDefinitionUnion;
+ 
+     static fromData(data: EventStreamQualityRequirement, target?: EventStreamQualityRequirement): EventStreamQualityRequirement {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new EventStreamQualityRequirement();
+         super.fromData(data, instance);
+         instance.minimumStreamQuality = EventStreamQualityDefinition.fromDataUnion(data.minimumStreamQuality);
+         instance.maximumStreamQuality = EventStreamQualityDefinition.fromDataUnion(data.maximumStreamQuality);
+         return instance;
+     }
+ }
+ 
+ export class FileStaticProperty extends StaticProperty {
+     "@class": "org.apache.streampipes.model.staticproperty.FileStaticProperty";
+     endpointUrl: string;
+     locationPath: string;
+     requiredFiletypes: string[];
+ 
+     static fromData(data: FileStaticProperty, target?: FileStaticProperty): FileStaticProperty {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new FileStaticProperty();
+         super.fromData(data, instance);
+         instance.endpointUrl = data.endpointUrl;
+         instance.locationPath = data.locationPath;
+         instance.requiredFiletypes = __getCopyArrayFn(__identity<string>())(data.requiredFiletypes);
+         return instance;
+     }
+ }
+ 
+ export class FixedOutputStrategy extends OutputStrategy {
+     "@class": "org.apache.streampipes.model.output.FixedOutputStrategy";
+     eventProperties: EventPropertyUnion[];
+ 
+     static fromData(data: FixedOutputStrategy, target?: FixedOutputStrategy): FixedOutputStrategy {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new FixedOutputStrategy();
+         super.fromData(data, instance);
+         instance.eventProperties = __getCopyArrayFn(EventProperty.fromDataUnion)(data.eventProperties);
+         return instance;
+     }
+ }
+ 
+ export class FormatDescription extends NamedStreamPipesEntity {
+     "@class": "org.apache.streampipes.model.connect.grounding.FormatDescription";
+     config: StaticPropertyUnion[];
+ 
+     static fromData(data: FormatDescription, target?: FormatDescription): FormatDescription {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new FormatDescription();
+         super.fromData(data, instance);
+         instance.config = __getCopyArrayFn(StaticProperty.fromDataUnion)(data.config);
+         return instance;
+     }
+ }
+ 
+ export class FormatDescriptionList extends NamedStreamPipesEntity {
+     "@class": "org.apache.streampipes.model.connect.grounding.FormatDescriptionList";
+     list: FormatDescription[];
+ 
+     static fromData(data: FormatDescriptionList, target?: FormatDescriptionList): FormatDescriptionList {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new FormatDescriptionList();
+         super.fromData(data, instance);
+         instance.list = __getCopyArrayFn(FormatDescription.fromData)(data.list);
+         return instance;
+     }
+ }
+ 
+ export class FreeTextStaticProperty extends StaticProperty {
+     "@class": "org.apache.streampipes.model.staticproperty.FreeTextStaticProperty";
+     htmlAllowed: boolean;
+     htmlFontFormat: boolean;
+     mapsTo: string;
+     multiLine: boolean;
+     placeholdersSupported: boolean;
+     requiredDatatype: string;
+     requiredDomainProperty: string;
+     value: string;
+     valueSpecification: PropertyValueSpecification;
+ 
+     static fromData(data: FreeTextStaticProperty, target?: FreeTextStaticProperty): FreeTextStaticProperty {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new FreeTextStaticProperty();
+         super.fromData(data, instance);
+         instance.value = data.value;
+         instance.requiredDatatype = data.requiredDatatype;
+         instance.requiredDomainProperty = data.requiredDomainProperty;
+         instance.mapsTo = data.mapsTo;
+         instance.multiLine = data.multiLine;
+         instance.htmlAllowed = data.htmlAllowed;
+         instance.htmlFontFormat = data.htmlFontFormat;
+         instance.placeholdersSupported = data.placeholdersSupported;
+         instance.valueSpecification = PropertyValueSpecification.fromData(data.valueSpecification);
+         return instance;
+     }
+ }
+ 
+ export class Frequency extends EventStreamQualityDefinition {
+     "@class": "org.apache.streampipes.model.quality.Frequency";
+     quantityValue: number;
+ 
+     static fromData(data: Frequency, target?: Frequency): Frequency {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new Frequency();
+         super.fromData(data, instance);
+         instance.quantityValue = data.quantityValue;
+         return instance;
+     }
+ }
+ 
+ export interface GenericAdapterDescription {
+     eventSchema: EventSchema;
+     formatDescription: FormatDescription;
+     protocolDescription: ProtocolDescription;
+     rules: TransformationRuleDescriptionUnion[];
+ }
+ 
+ export class GenericAdapterSetDescription extends AdapterSetDescription implements GenericAdapterDescription {
+     "@class": "org.apache.streampipes.model.connect.adapter.GenericAdapterSetDescription";
+     eventSchema: EventSchema;
+     formatDescription: FormatDescription;
+     protocolDescription: ProtocolDescription;
+ 
+     static fromData(data: GenericAdapterSetDescription, target?: GenericAdapterSetDescription): GenericAdapterSetDescription {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new GenericAdapterSetDescription();
+         super.fromData(data, instance);
 -        instance.eventSchema = EventSchema.fromData(data.eventSchema);
 -        instance.formatDescription = FormatDescription.fromData(data.formatDescription);
+         instance.protocolDescription = ProtocolDescription.fromData(data.protocolDescription);
++        instance.formatDescription = FormatDescription.fromData(data.formatDescription);
++        instance.eventSchema = EventSchema.fromData(data.eventSchema);
+         return instance;
+     }
+ }
+ 
+ export class GenericAdapterStreamDescription extends AdapterStreamDescription implements GenericAdapterDescription {
+     "@class": "org.apache.streampipes.model.connect.adapter.GenericAdapterStreamDescription";
+     eventSchema: EventSchema;
+     formatDescription: FormatDescription;
+     protocolDescription: ProtocolDescription;
+ 
+     static fromData(data: GenericAdapterStreamDescription, target?: GenericAdapterStreamDescription): GenericAdapterStreamDescription {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new GenericAdapterStreamDescription();
+         super.fromData(data, instance);
 -        instance.eventSchema = EventSchema.fromData(data.eventSchema);
 -        instance.formatDescription = FormatDescription.fromData(data.formatDescription);
+         instance.protocolDescription = ProtocolDescription.fromData(data.protocolDescription);
++        instance.formatDescription = FormatDescription.fromData(data.formatDescription);
++        instance.eventSchema = EventSchema.fromData(data.eventSchema);
+         return instance;
+     }
+ }
+ 
+ export class GuessSchema extends UnnamedStreamPipesEntity {
+     "@class": "org.apache.streampipes.model.connect.guess.GuessSchema";
+     eventSchema: EventSchema;
+     propertyProbabilityList: DomainPropertyProbabilityList[];
+ 
+     static fromData(data: GuessSchema, target?: GuessSchema): GuessSchema {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new GuessSchema();
+         super.fromData(data, instance);
+         instance.eventSchema = EventSchema.fromData(data.eventSchema);
+         instance.propertyProbabilityList = __getCopyArrayFn(DomainPropertyProbabilityList.fromData)(data.propertyProbabilityList);
+         return instance;
+     }
+ }
+ 
+ export class TransportProtocol extends UnnamedStreamPipesEntity {
+     "@class": "org.apache.streampipes.model.grounding.TransportProtocol" | "org.apache.streampipes.model.grounding.JmsTransportProtocol" | "org.apache.streampipes.model.grounding.KafkaTransportProtocol" | "org.apache.streampipes.model.grounding.MqttTransportProtocol";
+     brokerHostname: string;
+     topicDefinition: TopicDefinitionUnion;
+ 
+     static fromData(data: TransportProtocol, target?: TransportProtocol): TransportProtocol {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new TransportProtocol();
+         super.fromData(data, instance);
+         instance.brokerHostname = data.brokerHostname;
+         instance.topicDefinition = TopicDefinition.fromDataUnion(data.topicDefinition);
+         return instance;
+     }
+ 
+     static fromDataUnion(data: TransportProtocolUnion): TransportProtocolUnion {
+         if (!data) {
+             return data;
+         }
+         switch (data["@class"]) {
+             case "org.apache.streampipes.model.grounding.JmsTransportProtocol":
+                 return JmsTransportProtocol.fromData(data);
+             case "org.apache.streampipes.model.grounding.KafkaTransportProtocol":
+                 return KafkaTransportProtocol.fromData(data);
+             case "org.apache.streampipes.model.grounding.MqttTransportProtocol":
+                 return MqttTransportProtocol.fromData(data);
+         }
+     }
+ }
+ 
+ export class JmsTransportProtocol extends TransportProtocol {
+     "@class": "org.apache.streampipes.model.grounding.JmsTransportProtocol";
+     port: number;
+ 
+     static fromData(data: JmsTransportProtocol, target?: JmsTransportProtocol): JmsTransportProtocol {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new JmsTransportProtocol();
+         super.fromData(data, instance);
+         instance.port = data.port;
+         return instance;
+     }
+ }
+ 
+ export class KafkaTransportProtocol extends TransportProtocol {
+     "@class": "org.apache.streampipes.model.grounding.KafkaTransportProtocol";
+     acks: string;
+     batchSize: string;
+     groupId: string;
+     kafkaPort: number;
+     lingerMs: number;
+     maxRequestSize: string;
+     messageMaxBytes: string;
+     offset: string;
+     zookeeperHost: string;
+     zookeeperPort: number;
+ 
+     static fromData(data: KafkaTransportProtocol, target?: KafkaTransportProtocol): KafkaTransportProtocol {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new KafkaTransportProtocol();
+         super.fromData(data, instance);
+         instance.zookeeperHost = data.zookeeperHost;
+         instance.zookeeperPort = data.zookeeperPort;
+         instance.kafkaPort = data.kafkaPort;
+         instance.lingerMs = data.lingerMs;
+         instance.messageMaxBytes = data.messageMaxBytes;
+         instance.maxRequestSize = data.maxRequestSize;
+         instance.acks = data.acks;
+         instance.batchSize = data.batchSize;
+         instance.offset = data.offset;
+         instance.groupId = data.groupId;
+         return instance;
+     }
+ }
+ 
+ export class KeepOutputStrategy extends OutputStrategy {
+     "@class": "org.apache.streampipes.model.output.KeepOutputStrategy";
+     eventName: string;
+     keepBoth: boolean;
+ 
+     static fromData(data: KeepOutputStrategy, target?: KeepOutputStrategy): KeepOutputStrategy {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new KeepOutputStrategy();
+         super.fromData(data, instance);
+         instance.eventName = data.eventName;
+         instance.keepBoth = data.keepBoth;
+         return instance;
+     }
+ }
+ 
+ export class Latency extends EventStreamQualityDefinition {
+     "@class": "org.apache.streampipes.model.quality.Latency";
+     quantityValue: number;
+ 
+     static fromData(data: Latency, target?: Latency): Latency {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new Latency();
+         super.fromData(data, instance);
+         instance.quantityValue = data.quantityValue;
+         return instance;
+     }
+ }
+ 
+ export class ListOutputStrategy extends OutputStrategy {
+     "@class": "org.apache.streampipes.model.output.ListOutputStrategy";
+     propertyName: string;
+ 
+     static fromData(data: ListOutputStrategy, target?: ListOutputStrategy): ListOutputStrategy {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new ListOutputStrategy();
+         super.fromData(data, instance);
+         instance.propertyName = data.propertyName;
+         return instance;
+     }
+ }
+ 
+ export class MappingProperty extends StaticProperty {
+     "@class": "org.apache.streampipes.model.staticproperty.MappingProperty" | "org.apache.streampipes.model.staticproperty.MappingPropertyUnary" | "org.apache.streampipes.model.staticproperty.MappingPropertyNary";
+     mapsFromOptions: string[];
+     propertyScope: string;
+     requirementSelector: string;
+ 
+     static fromData(data: MappingProperty, target?: MappingProperty): MappingProperty {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new MappingProperty();
+         super.fromData(data, instance);
+         instance.requirementSelector = data.requirementSelector;
+         instance.mapsFromOptions = __getCopyArrayFn(__identity<string>())(data.mapsFromOptions);
+         instance.propertyScope = data.propertyScope;
+         return instance;
+     }
+ 
+     static fromDataUnion(data: MappingPropertyUnion): MappingPropertyUnion {
+         if (!data) {
+             return data;
+         }
+         switch (data["@class"]) {
+             case "org.apache.streampipes.model.staticproperty.MappingPropertyNary":
+                 return MappingPropertyNary.fromData(data);
+             case "org.apache.streampipes.model.staticproperty.MappingPropertyUnary":
+                 return MappingPropertyUnary.fromData(data);
+         }
+     }
+ }
+ 
+ export class MappingPropertyNary extends MappingProperty {
+     "@class": "org.apache.streampipes.model.staticproperty.MappingPropertyNary";
+     selectedProperties: string[];
+ 
+     static fromData(data: MappingPropertyNary, target?: MappingPropertyNary): MappingPropertyNary {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new MappingPropertyNary();
+         super.fromData(data, instance);
+         instance.selectedProperties = __getCopyArrayFn(__identity<string>())(data.selectedProperties);
+         return instance;
+     }
+ }
+ 
+ export class MappingPropertyUnary extends MappingProperty {
+     "@class": "org.apache.streampipes.model.staticproperty.MappingPropertyUnary";
+     selectedProperty: string;
+ 
+     static fromData(data: MappingPropertyUnary, target?: MappingPropertyUnary): MappingPropertyUnary {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new MappingPropertyUnary();
+         super.fromData(data, instance);
+         instance.selectedProperty = data.selectedProperty;
+         return instance;
+     }
+ }
+ 
+ export class MatchingStaticProperty extends StaticProperty {
+     "@class": "org.apache.streampipes.model.staticproperty.MatchingStaticProperty";
+     matchLeft: string;
+     matchRight: string;
+ 
+     static fromData(data: MatchingStaticProperty, target?: MatchingStaticProperty): MatchingStaticProperty {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new MatchingStaticProperty();
+         super.fromData(data, instance);
+         instance.matchLeft = data.matchLeft;
+         instance.matchRight = data.matchRight;
+         return instance;
+     }
+ }
+ 
+ export class MeasurementCapability extends UnnamedStreamPipesEntity {
+     "@class": "org.apache.streampipes.model.quality.MeasurementCapability";
+     capability: string;
+ 
+     static fromData(data: MeasurementCapability, target?: MeasurementCapability): MeasurementCapability {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new MeasurementCapability();
+         super.fromData(data, instance);
+         instance.capability = data.capability;
+         return instance;
+     }
+ }
+ 
+ export class MeasurementObject extends UnnamedStreamPipesEntity {
+     "@class": "org.apache.streampipes.model.quality.MeasurementObject";
+     measuresObject: string;
+ 
+     static fromData(data: MeasurementObject, target?: MeasurementObject): MeasurementObject {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new MeasurementObject();
+         super.fromData(data, instance);
+         instance.measuresObject = data.measuresObject;
+         return instance;
+     }
+ }
+ 
+ export class MeasurementRange extends EventPropertyQualityDefinition {
+     "@class": "org.apache.streampipes.model.quality.MeasurementRange";
+     maxValue: number;
+     minValue: number;
+ 
+     static fromData(data: MeasurementRange, target?: MeasurementRange): MeasurementRange {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new MeasurementRange();
+         super.fromData(data, instance);
+         instance.minValue = data.minValue;
+         instance.maxValue = data.maxValue;
+         return instance;
+     }
+ }
+ 
+ export class MoveRuleDescription extends SchemaTransformationRuleDescription {
+     "@class": "org.apache.streampipes.model.connect.rules.schema.MoveRuleDescription";
+     newRuntimeKey: string;
+     oldRuntimeKey: string;
+ 
+     static fromData(data: MoveRuleDescription, target?: MoveRuleDescription): MoveRuleDescription {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new MoveRuleDescription();
+         super.fromData(data, instance);
+         instance.oldRuntimeKey = data.oldRuntimeKey;
+         instance.newRuntimeKey = data.newRuntimeKey;
+         return instance;
+     }
+ }
+ 
+ export class MqttTransportProtocol extends TransportProtocol {
+     "@class": "org.apache.streampipes.model.grounding.MqttTransportProtocol";
+     port: number;
+ 
+     static fromData(data: MqttTransportProtocol, target?: MqttTransportProtocol): MqttTransportProtocol {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new MqttTransportProtocol();
+         super.fromData(data, instance);
+         instance.port = data.port;
+         return instance;
+     }
+ }
+ 
+ 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";
+ 
+     static fromData(data: OneOfStaticProperty, target?: OneOfStaticProperty): OneOfStaticProperty {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new OneOfStaticProperty();
+         super.fromData(data, instance);
+         return instance;
+     }
+ 
+     static fromDataUnion(data: OneOfStaticPropertyUnion): OneOfStaticPropertyUnion {
+         if (!data) {
+             return data;
+         }
+         switch (data["@class"]) {
+             case "org.apache.streampipes.model.staticproperty.RuntimeResolvableOneOfStaticProperty":
+                 return RuntimeResolvableOneOfStaticProperty.fromData(data);
+         }
+     }
+ }
+ 
+ export class Option extends UnnamedStreamPipesEntity {
+     "@class": "org.apache.streampipes.model.staticproperty.Option";
+     internalName: string;
+     name: string;
+     selected: boolean;
+ 
+     static fromData(data: Option, target?: Option): Option {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new Option();
+         super.fromData(data, instance);
+         instance.name = data.name;
+         instance.selected = data.selected;
+         instance.internalName = data.internalName;
+         return instance;
+     }
+ }
+ 
+ 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 PipelineCategory {
+     _id: string;
+     _rev: string;
+     categoryDescription: string;
+     categoryName: string;
+ 
+     static fromData(data: PipelineCategory, target?: PipelineCategory): PipelineCategory {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new PipelineCategory();
+         instance.categoryName = data.categoryName;
+         instance.categoryDescription = data.categoryDescription;
+         instance._id = data._id;
+         instance._rev = data._rev;
+         return instance;
+     }
+ }
+ 
+ export class PipelineElementRecommendation {
+     count: number;
+     description: string;
+     elementId: string;
+     name: string;
+     weight: number;
+ 
+     static fromData(data: PipelineElementRecommendation, target?: PipelineElementRecommendation): PipelineElementRecommendation {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new PipelineElementRecommendation();
+         instance.elementId = data.elementId;
+         instance.name = data.name;
+         instance.description = data.description;
+         instance.weight = data.weight;
+         instance.count = data.count;
+         return instance;
+     }
+ }
+ 
+ export class PipelineElementRecommendationMessage {
+     possibleElements: PipelineElementRecommendation[];
+     recommendedElements: PipelineElementRecommendation[];
+     success: boolean;
+ 
+     static fromData(data: PipelineElementRecommendationMessage, target?: PipelineElementRecommendationMessage): PipelineElementRecommendationMessage {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new PipelineElementRecommendationMessage();
+         instance.possibleElements = __getCopyArrayFn(PipelineElementRecommendation.fromData)(data.possibleElements);
+         instance.recommendedElements = __getCopyArrayFn(PipelineElementRecommendation.fromData)(data.recommendedElements);
+         instance.success = data.success;
+         return instance;
+     }
+ }
+ 
+ export class PipelineElementStatus {
+     elementId: string;
+     elementName: string;
+     optionalMessage: string;
+     success: boolean;
+ 
+     static fromData(data: PipelineElementStatus, target?: PipelineElementStatus): PipelineElementStatus {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new PipelineElementStatus();
+         instance.elementId = data.elementId;
+         instance.elementName = data.elementName;
+         instance.optionalMessage = data.optionalMessage;
+         instance.success = data.success;
+         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 PipelineOperationStatus {
+     elementStatus: PipelineElementStatus[];
+     pipelineId: string;
+     pipelineName: string;
+     success: boolean;
+     title: string;
+ 
+     static fromData(data: PipelineOperationStatus, target?: PipelineOperationStatus): PipelineOperationStatus {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new PipelineOperationStatus();
+         instance.pipelineId = data.pipelineId;
+         instance.pipelineName = data.pipelineName;
+         instance.title = data.title;
+         instance.success = data.success;
+         instance.elementStatus = __getCopyArrayFn(PipelineElementStatus.fromData)(data.elementStatus);
+         return instance;
+     }
+ }
+ 
+ export class PipelineStatusMessage {
+     message: string;
+     messageType: string;
+     pipelineId: string;
+     timestamp: number;
+ 
+     static fromData(data: PipelineStatusMessage, target?: PipelineStatusMessage): PipelineStatusMessage {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new PipelineStatusMessage();
+         instance.pipelineId = data.pipelineId;
+         instance.timestamp = data.timestamp;
+         instance.messageType = data.messageType;
+         instance.message = data.message;
+         return instance;
+     }
+ }
+ 
+ export class Precision extends EventPropertyQualityDefinition {
+     "@class": "org.apache.streampipes.model.quality.Precision";
+     quantityValue: number;
+ 
+     static fromData(data: Precision, target?: Precision): Precision {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new Precision();
+         super.fromData(data, instance);
+         instance.quantityValue = data.quantityValue;
+         return instance;
+     }
+ }
+ 
+ export class PropertyRenameRule extends UnnamedStreamPipesEntity {
+     "@class": "org.apache.streampipes.model.output.PropertyRenameRule";
+     newRuntimeName: string;
+     runtimeId: string;
+ 
+     static fromData(data: PropertyRenameRule, target?: PropertyRenameRule): PropertyRenameRule {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new PropertyRenameRule();
+         super.fromData(data, instance);
+         instance.runtimeId = data.runtimeId;
+         instance.newRuntimeName = data.newRuntimeName;
+         return instance;
+     }
+ }
+ 
+ export class PropertyValueSpecification extends UnnamedStreamPipesEntity {
+     "@class": "org.apache.streampipes.model.staticproperty.PropertyValueSpecification";
+     maxValue: number;
+     minValue: number;
+     step: number;
+ 
+     static fromData(data: PropertyValueSpecification, target?: PropertyValueSpecification): PropertyValueSpecification {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new PropertyValueSpecification();
+         super.fromData(data, instance);
+         instance.minValue = data.minValue;
+         instance.maxValue = data.maxValue;
+         instance.step = data.step;
+         return instance;
+     }
+ }
+ 
+ export class ProtocolDescription extends NamedStreamPipesEntity {
+     "@class": "org.apache.streampipes.model.connect.grounding.ProtocolDescription";
+     category: string[];
+     config: StaticPropertyUnion[];
+     sourceType: string;
+ 
+     static fromData(data: ProtocolDescription, target?: ProtocolDescription): ProtocolDescription {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new ProtocolDescription();
+         super.fromData(data, instance);
+         instance.sourceType = data.sourceType;
+         instance.config = __getCopyArrayFn(StaticProperty.fromDataUnion)(data.config);
+         instance.category = __getCopyArrayFn(__identity<string>())(data.category);
+         return instance;
+     }
+ }
+ 
+ export class ProtocolDescriptionList extends NamedStreamPipesEntity {
+     "@class": "org.apache.streampipes.model.connect.grounding.ProtocolDescriptionList";
+     list: ProtocolDescription[];
+ 
+     static fromData(data: ProtocolDescriptionList, target?: ProtocolDescriptionList): ProtocolDescriptionList {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new ProtocolDescriptionList();
+         super.fromData(data, instance);
+         instance.list = __getCopyArrayFn(ProtocolDescription.fromData)(data.list);
+         return instance;
+     }
+ }
+ 
+ export class QuantitativeValue extends ValueSpecification {
+     "@class": "org.apache.streampipes.model.schema.QuantitativeValue";
+     maxValue: number;
+     minValue: number;
+     step: number;
+ 
+     static fromData(data: QuantitativeValue, target?: QuantitativeValue): QuantitativeValue {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new QuantitativeValue();
+         super.fromData(data, instance);
+         instance.minValue = data.minValue;
+         instance.maxValue = data.maxValue;
+         instance.step = data.step;
+         return instance;
+     }
+ }
+ 
+ export class RemoveDuplicatesTransformationRuleDescription extends StreamTransformationRuleDescription {
+     "@class": "org.apache.streampipes.model.connect.rules.stream.RemoveDuplicatesTransformationRuleDescription";
+     filterTimeWindow: string;
+ 
+     static fromData(data: RemoveDuplicatesTransformationRuleDescription, target?: RemoveDuplicatesTransformationRuleDescription): RemoveDuplicatesTransformationRuleDescription {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new RemoveDuplicatesTransformationRuleDescription();
+         super.fromData(data, instance);
+         instance.filterTimeWindow = data.filterTimeWindow;
+         return instance;
+     }
+ }
+ 
+ export class RenameRuleDescription extends SchemaTransformationRuleDescription {
+     "@class": "org.apache.streampipes.model.connect.rules.schema.RenameRuleDescription";
+     newRuntimeKey: string;
+     oldRuntimeKey: string;
+ 
+     static fromData(data: RenameRuleDescription, target?: RenameRuleDescription): RenameRuleDescription {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new RenameRuleDescription();
+         super.fromData(data, instance);
+         instance.oldRuntimeKey = data.oldRuntimeKey;
+         instance.newRuntimeKey = data.newRuntimeKey;
+         return instance;
+     }
+ }
+ 
+ export class Resolution extends EventPropertyQualityDefinition {
+     "@class": "org.apache.streampipes.model.quality.Resolution";
+     quantityValue: number;
+ 
+     static fromData(data: Resolution, target?: Resolution): Resolution {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new Resolution();
+         super.fromData(data, instance);
+         instance.quantityValue = data.quantityValue;
+         return instance;
+     }
+ }
+ 
+ export class RuntimeOptionsRequest extends UnnamedStreamPipesEntity {
+     "@class": "org.apache.streampipes.model.runtime.RuntimeOptionsRequest" | "org.apache.streampipes.model.runtime.RuntimeOptionsResponse";
+     appId: string;
+     belongsTo: string;
+     inputStreams: SpDataStreamUnion[];
+     requestId: string;
+     staticProperties: StaticPropertyUnion[];
+ 
+     static fromData(data: RuntimeOptionsRequest, target?: RuntimeOptionsRequest): RuntimeOptionsRequest {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new RuntimeOptionsRequest();
+         super.fromData(data, instance);
+         instance.requestId = data.requestId;
+         instance.appId = data.appId;
+         instance.staticProperties = __getCopyArrayFn(StaticProperty.fromDataUnion)(data.staticProperties);
+         instance.inputStreams = __getCopyArrayFn(SpDataStream.fromDataUnion)(data.inputStreams);
+         instance.belongsTo = data.belongsTo;
+         return instance;
+     }
+ }
+ 
+ export class RuntimeOptionsResponse extends RuntimeOptionsRequest {
+     "@class": "org.apache.streampipes.model.runtime.RuntimeOptionsResponse";
+     options: Option[];
+ 
+     static fromData(data: RuntimeOptionsResponse, target?: RuntimeOptionsResponse): RuntimeOptionsResponse {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new RuntimeOptionsResponse();
+         super.fromData(data, instance);
+         instance.options = __getCopyArrayFn(Option.fromData)(data.options);
+         return instance;
+     }
+ }
+ 
+ export class RuntimeResolvableAnyStaticProperty extends AnyStaticProperty {
+     "@class": "org.apache.streampipes.model.staticproperty.RuntimeResolvableAnyStaticProperty";
+     dependsOn: string[];
+ 
+     static fromData(data: RuntimeResolvableAnyStaticProperty, target?: RuntimeResolvableAnyStaticProperty): RuntimeResolvableAnyStaticProperty {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new RuntimeResolvableAnyStaticProperty();
+         super.fromData(data, instance);
+         instance.dependsOn = __getCopyArrayFn(__identity<string>())(data.dependsOn);
+         return instance;
+     }
+ }
+ 
+ export class RuntimeResolvableOneOfStaticProperty extends OneOfStaticProperty {
+     "@class": "org.apache.streampipes.model.staticproperty.RuntimeResolvableOneOfStaticProperty";
+     dependsOn: string[];
+ 
+     static fromData(data: RuntimeResolvableOneOfStaticProperty, target?: RuntimeResolvableOneOfStaticProperty): RuntimeResolvableOneOfStaticProperty {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new RuntimeResolvableOneOfStaticProperty();
+         super.fromData(data, instance);
+         instance.dependsOn = __getCopyArrayFn(__identity<string>())(data.dependsOn);
+         return instance;
+     }
+ }
+ 
+ export class SecretStaticProperty extends StaticProperty {
+     "@class": "org.apache.streampipes.model.staticproperty.SecretStaticProperty";
+     encrypted: boolean;
+     value: string;
+ 
+     static fromData(data: SecretStaticProperty, target?: SecretStaticProperty): SecretStaticProperty {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new SecretStaticProperty();
+         super.fromData(data, instance);
+         instance.value = data.value;
+         instance.encrypted = data.encrypted;
+         return instance;
+     }
+ }
+ 
+ export class TopicDefinition extends UnnamedStreamPipesEntity {
+     "@class": "org.apache.streampipes.model.grounding.TopicDefinition" | "org.apache.streampipes.model.grounding.SimpleTopicDefinition" | "org.apache.streampipes.model.grounding.WildcardTopicDefinition";
+     actualTopicName: string;
+ 
+     static fromData(data: TopicDefinition, target?: TopicDefinition): TopicDefinition {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new TopicDefinition();
+         super.fromData(data, instance);
+         instance.actualTopicName = data.actualTopicName;
+         return instance;
+     }
+ 
+     static fromDataUnion(data: TopicDefinitionUnion): TopicDefinitionUnion {
+         if (!data) {
+             return data;
+         }
+         switch (data["@class"]) {
+             case "org.apache.streampipes.model.grounding.SimpleTopicDefinition":
+                 return SimpleTopicDefinition.fromData(data);
+             case "org.apache.streampipes.model.grounding.WildcardTopicDefinition":
+                 return WildcardTopicDefinition.fromData(data);
+         }
+     }
+ }
+ 
+ export class SimpleTopicDefinition extends TopicDefinition {
+     "@class": "org.apache.streampipes.model.grounding.SimpleTopicDefinition";
+ 
+     static fromData(data: SimpleTopicDefinition, target?: SimpleTopicDefinition): SimpleTopicDefinition {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new SimpleTopicDefinition();
+         super.fromData(data, instance);
+         return instance;
+     }
+ }
+ 
+ export class SpDataStream extends NamedStreamPipesEntity {
+     "@class": "org.apache.streampipes.model.SpDataStream" | "org.apache.streampipes.model.SpDataSet";
+     category: string[];
+     eventGrounding: EventGrounding;
+     eventSchema: EventSchema;
+     hasEventStreamQualities: EventStreamQualityDefinitionUnion[];
+     index: number;
+     measurementCapability: MeasurementCapability[];
+     measurementObject: MeasurementObject[];
+     requiresEventStreamQualities: EventStreamQualityRequirement[];
+ 
+     static fromData(data: SpDataStream, target?: SpDataStream): SpDataStream {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new SpDataStream();
+         super.fromData(data, instance);
+         instance.hasEventStreamQualities = __getCopyArrayFn(EventStreamQualityDefinition.fromDataUnion)(data.hasEventStreamQualities);
+         instance.requiresEventStreamQualities = __getCopyArrayFn(EventStreamQualityRequirement.fromData)(data.requiresEventStreamQualities);
+         instance.eventGrounding = EventGrounding.fromData(data.eventGrounding);
+         instance.eventSchema = EventSchema.fromData(data.eventSchema);
+         instance.measurementCapability = __getCopyArrayFn(MeasurementCapability.fromData)(data.measurementCapability);
+         instance.measurementObject = __getCopyArrayFn(MeasurementObject.fromData)(data.measurementObject);
+         instance.index = data.index;
+         instance.category = __getCopyArrayFn(__identity<string>())(data.category);
+         return instance;
+     }
+ 
+     static fromDataUnion(data: SpDataStreamUnion): SpDataStreamUnion {
+         if (!data) {
+             return data;
+         }
+         switch (data["@class"]) {
+             case "org.apache.streampipes.model.SpDataStream":
+                 return SpDataStream.fromData(data);
+             case "org.apache.streampipes.model.SpDataSet":
+                 return SpDataSet.fromData(data);
+         }
+     }
+ }
+ 
+ export class SpDataSet extends SpDataStream {
+     "@class": "org.apache.streampipes.model.SpDataSet";
+     actualTopicName: string;
+     brokerHostname: string;
+     correspondingPipeline: string;
+     datasetInvocationId: string;
+     supportedGrounding: EventGrounding;
+ 
+     static fromData(data: SpDataSet, target?: SpDataSet): SpDataSet {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new SpDataSet();
+         super.fromData(data, instance);
+         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;
+     }
+ }
+ 
+ export class SpecificAdapterSetDescription extends AdapterSetDescription {
+     "@class": "org.apache.streampipes.model.connect.adapter.SpecificAdapterSetDescription";
+ 
+     static fromData(data: SpecificAdapterSetDescription, target?: SpecificAdapterSetDescription): SpecificAdapterSetDescription {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new SpecificAdapterSetDescription();
+         super.fromData(data, instance);
+         return instance;
+     }
+ }
+ 
+ export class SpecificAdapterStreamDescription extends AdapterStreamDescription {
+     "@class": "org.apache.streampipes.model.connect.adapter.SpecificAdapterStreamDescription";
+ 
+     static fromData(data: SpecificAdapterStreamDescription, target?: SpecificAdapterStreamDescription): SpecificAdapterStreamDescription {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new SpecificAdapterStreamDescription();
+         super.fromData(data, instance);
+         return instance;
+     }
+ }
+ 
+ export class StaticPropertyAlternative extends StaticProperty {
+     "@class": "org.apache.streampipes.model.staticproperty.StaticPropertyAlternative";
+     selected: boolean;
+     staticProperty: StaticPropertyUnion;
+ 
+     static fromData(data: StaticPropertyAlternative, target?: StaticPropertyAlternative): StaticPropertyAlternative {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new StaticPropertyAlternative();
+         super.fromData(data, instance);
+         instance.selected = data.selected;
+         instance.staticProperty = StaticProperty.fromDataUnion(data.staticProperty);
+         return instance;
+     }
+ }
+ 
+ export class StaticPropertyAlternatives extends StaticProperty {
+     "@class": "org.apache.streampipes.model.staticproperty.StaticPropertyAlternatives";
+     alternatives: StaticPropertyAlternative[];
+ 
+     static fromData(data: StaticPropertyAlternatives, target?: StaticPropertyAlternatives): StaticPropertyAlternatives {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new StaticPropertyAlternatives();
+         super.fromData(data, instance);
+         instance.alternatives = __getCopyArrayFn(StaticPropertyAlternative.fromData)(data.alternatives);
+         return instance;
+     }
+ }
+ 
+ export class StaticPropertyGroup extends StaticProperty {
+     "@class": "org.apache.streampipes.model.staticproperty.StaticPropertyGroup";
+     horizontalRendering: boolean;
+     showLabel: boolean;
+     staticProperties: StaticPropertyUnion[];
+ 
+     static fromData(data: StaticPropertyGroup, target?: StaticPropertyGroup): StaticPropertyGroup {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new StaticPropertyGroup();
+         super.fromData(data, instance);
+         instance.staticProperties = __getCopyArrayFn(StaticProperty.fromDataUnion)(data.staticProperties);
+         instance.showLabel = data.showLabel;
+         instance.horizontalRendering = data.horizontalRendering;
+         return instance;
+     }
+ }
+ 
+ export class SuccessMessage extends Message {
+ 
+     static fromData(data: SuccessMessage, target?: SuccessMessage): SuccessMessage {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new SuccessMessage();
+         super.fromData(data, instance);
+         return instance;
+     }
+ }
+ 
+ export class SupportedProperty extends UnnamedStreamPipesEntity {
+     "@class": "org.apache.streampipes.model.staticproperty.SupportedProperty";
+     propertyId: string;
+     value: string;
+     valueRequired: boolean;
+ 
+     static fromData(data: SupportedProperty, target?: SupportedProperty): SupportedProperty {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new SupportedProperty();
+         super.fromData(data, instance);
+         instance.propertyId = data.propertyId;
+         instance.valueRequired = data.valueRequired;
+         instance.value = data.value;
+         return instance;
+     }
+ }
+ 
+ export class TimestampTranfsformationRuleDescription extends ValueTransformationRuleDescription {
+     "@class": "org.apache.streampipes.model.connect.rules.value.TimestampTranfsformationRuleDescription";
+     formatString: string;
+     mode: string;
+     multiplier: number;
+     runtimeKey: string;
+ 
+     static fromData(data: TimestampTranfsformationRuleDescription, target?: TimestampTranfsformationRuleDescription): TimestampTranfsformationRuleDescription {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new TimestampTranfsformationRuleDescription();
+         super.fromData(data, instance);
+         instance.runtimeKey = data.runtimeKey;
+         instance.mode = data.mode;
+         instance.formatString = data.formatString;
+         instance.multiplier = data.multiplier;
+         return instance;
+     }
+ }
+ 
+ export class TransformOperation extends UnnamedStreamPipesEntity {
+     "@class": "org.apache.streampipes.model.output.TransformOperation";
+     mappingPropertyInternalName: string;
+     sourceStaticProperty: string;
+     targetValue: string;
+     transformationScope: string;
+ 
+     static fromData(data: TransformOperation, target?: TransformOperation): TransformOperation {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new TransformOperation();
+         super.fromData(data, instance);
+         instance.mappingPropertyInternalName = data.mappingPropertyInternalName;
+         instance.sourceStaticProperty = data.sourceStaticProperty;
+         instance.transformationScope = data.transformationScope;
+         instance.targetValue = data.targetValue;
+         return instance;
+     }
+ }
+ 
+ export class TransformOutputStrategy extends OutputStrategy {
+     "@class": "org.apache.streampipes.model.output.TransformOutputStrategy";
+     transformOperations: TransformOperation[];
+ 
+     static fromData(data: TransformOutputStrategy, target?: TransformOutputStrategy): TransformOutputStrategy {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new TransformOutputStrategy();
+         super.fromData(data, instance);
+         instance.transformOperations = __getCopyArrayFn(TransformOperation.fromData)(data.transformOperations);
+         return instance;
+     }
+ }
+ 
+ export class TransportFormat extends UnnamedStreamPipesEntity {
+     "@class": "org.apache.streampipes.model.grounding.TransportFormat";
+     rdfType: string[];
+ 
+     static fromData(data: TransportFormat, target?: TransportFormat): TransportFormat {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new TransportFormat();
+         super.fromData(data, instance);
+         instance.rdfType = __getCopyArrayFn(__identity<string>())(data.rdfType);
+         return instance;
+     }
+ }
+ 
+ export class UnitTransformRuleDescription extends ValueTransformationRuleDescription {
+     "@class": "org.apache.streampipes.model.connect.rules.value.UnitTransformRuleDescription";
+     fromUnitRessourceURL: string;
+     runtimeKey: string;
+     toUnitRessourceURL: string;
+ 
+     static fromData(data: UnitTransformRuleDescription, target?: UnitTransformRuleDescription): UnitTransformRuleDescription {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new UnitTransformRuleDescription();
+         super.fromData(data, instance);
+         instance.runtimeKey = data.runtimeKey;
+         instance.fromUnitRessourceURL = data.fromUnitRessourceURL;
+         instance.toUnitRessourceURL = data.toUnitRessourceURL;
+         return instance;
+     }
+ }
+ 
+ export class UserDefinedOutputStrategy extends OutputStrategy {
+     "@class": "org.apache.streampipes.model.output.UserDefinedOutputStrategy";
+     eventProperties: EventPropertyUnion[];
+ 
+     static fromData(data: UserDefinedOutputStrategy, target?: UserDefinedOutputStrategy): UserDefinedOutputStrategy {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new UserDefinedOutputStrategy();
+         super.fromData(data, instance);
+         instance.eventProperties = __getCopyArrayFn(EventProperty.fromDataUnion)(data.eventProperties);
+         return instance;
+     }
+ }
+ 
+ export class VisualizablePipeline extends DashboardEntity {
+     "@class": "org.apache.streampipes.model.dashboard.VisualizablePipeline";
+     pipelineId: string;
+     pipelineName: string;
+     schema: EventSchema;
+     topic: string;
+     visualizationName: string;
+ 
+     static fromData(data: VisualizablePipeline, target?: VisualizablePipeline): VisualizablePipeline {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new VisualizablePipeline();
+         super.fromData(data, instance);
+         instance.pipelineId = data.pipelineId;
+         instance.schema = EventSchema.fromData(data.schema);
+         instance.visualizationName = data.visualizationName;
+         instance.topic = data.topic;
+         instance.pipelineName = data.pipelineName;
+         return instance;
+     }
+ }
+ 
+ export class WildcardTopicDefinition extends TopicDefinition {
+     "@class": "org.apache.streampipes.model.grounding.WildcardTopicDefinition";
+     wildcardTopicMappings: WildcardTopicMapping[];
+     wildcardTopicName: string;
+ 
+     static fromData(data: WildcardTopicDefinition, target?: WildcardTopicDefinition): WildcardTopicDefinition {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new WildcardTopicDefinition();
+         super.fromData(data, instance);
+         instance.wildcardTopicName = data.wildcardTopicName;
+         instance.wildcardTopicMappings = __getCopyArrayFn(WildcardTopicMapping.fromData)(data.wildcardTopicMappings);
+         return instance;
+     }
+ }
+ 
+ export class WildcardTopicMapping extends UnnamedStreamPipesEntity {
+     "@class": "org.apache.streampipes.model.grounding.WildcardTopicMapping";
+     mappedRuntimeName: string;
+     mappingId: string;
+     selectedMapping: string;
+     topicParameterType: string;
+ 
+     static fromData(data: WildcardTopicMapping, target?: WildcardTopicMapping): WildcardTopicMapping {
+         if (!data) {
+             return data;
+         }
+         const instance = target || new WildcardTopicMapping();
+         super.fromData(data, instance);
+         instance.topicParameterType = data.topicParameterType;
+         instance.mappingId = data.mappingId;
+         instance.mappedRuntimeName = data.mappedRuntimeName;
+         instance.selectedMapping = data.selectedMapping;
+         return instance;
+     }
+ }
+ 
+ export type AdapterDescriptionUnion = GenericAdapterSetDescription | GenericAdapterStreamDescription | SpecificAdapterStreamDescription | SpecificAdapterSetDescription;
+ 
+ export type AdapterSetDescriptionUnion = GenericAdapterSetDescription | SpecificAdapterSetDescription;
+ 
+ export type AdapterStreamDescriptionUnion = SpecificAdapterStreamDescription;
+ 
+ export type DashboardEntityUnion = DashboardWidgetModel | VisualizablePipeline | DataExplorerWidgetModel;
+ 
+ export type EventPropertyQualityDefinitionUnion = Accuracy | MeasurementRange | Precision | Resolution;
+ 
+ export type EventPropertyUnion = EventPropertyList | EventPropertyNested | EventPropertyPrimitive;
+ 
+ export type EventStreamQualityDefinitionUnion = Frequency | Latency;
+ 
+ export type MappingPropertyUnion = MappingPropertyNary | MappingPropertyUnary;
+ 
+ export type MeasurementPropertyUnion = EventPropertyQualityDefinition | EventStreamQualityDefinition;
+ 
+ export type OneOfStaticPropertyUnion = RuntimeResolvableOneOfStaticProperty;
+ 
+ export type OutputStrategyUnion = AppendOutputStrategy | CustomOutputStrategy | CustomTransformOutputStrategy | FixedOutputStrategy | KeepOutputStrategy | ListOutputStrategy | TransformOutputStrategy | UserDefinedOutputStrategy;
+ 
+ export type SelectionStaticPropertyUnion = AnyStaticProperty | OneOfStaticProperty;
+ 
+ export type SpDataStreamUnion = SpDataStream | SpDataSet;
+ 
+ export type StaticPropertyType = "AnyStaticProperty" | "CollectionStaticProperty" | "ColorPickerStaticProperty" | "DomainStaticProperty" | "FreeTextStaticProperty" | "FileStaticProperty" | "MappingPropertyUnary" | "MappingPropertyNary" | "MatchingStaticProperty" | "OneOfStaticProperty" | "RuntimeResolvableAnyStaticProperty" | "RuntimeResolvableOneOfStaticProperty" | "StaticPropertyGroup" | "StaticPropertyAlternatives" | "StaticPropertyAlternative" | "SecretStaticProperty" | "CodeInputSt [...]
+ 
+ export type StaticPropertyUnion = AnyStaticProperty | CodeInputStaticProperty | CollectionStaticProperty | ColorPickerStaticProperty | DomainStaticProperty | FileStaticProperty | FreeTextStaticProperty | MappingPropertyUnary | MappingPropertyNary | MatchingStaticProperty | OneOfStaticProperty | RuntimeResolvableAnyStaticProperty | RuntimeResolvableOneOfStaticProperty | SecretStaticProperty | StaticPropertyAlternative | StaticPropertyAlternatives | StaticPropertyGroup;
+ 
+ export type StreamTransformationRuleDescriptionUnion = EventRateTransformationRuleDescription | RemoveDuplicatesTransformationRuleDescription;
+ 
+ export type TopicDefinitionUnion = SimpleTopicDefinition | WildcardTopicDefinition;
+ 
+ export type TransformationRuleDescriptionUnion = AddTimestampRuleDescription | AddValueTransformationRuleDescription | TimestampTranfsformationRuleDescription | UnitTransformRuleDescription | EventRateTransformationRuleDescription | RemoveDuplicatesTransformationRuleDescription | CreateNestedRuleDescription | DeleteRuleDescription | RenameRuleDescription | MoveRuleDescription;
+ 
+ export type TransportProtocolUnion = JmsTransportProtocol | KafkaTransportProtocol | MqttTransportProtocol;
+ 
+ export type ValueSpecificationUnion = QuantitativeValue | Enumeration;
+ 
+ export type ValueTransformationRuleDescriptionUnion = AddTimestampRuleDescription | AddValueTransformationRuleDescription | TimestampTranfsformationRuleDescription | UnitTransformRuleDescription;
+ 
+ function __getCopyArrayFn<T>(itemCopyFn: (item: T) => T): (array: T[]) => T[] {
+     return (array: T[]) => __copyArray(array, itemCopyFn);
+ }
+ 
+ function __copyArray<T>(array: T[], itemCopyFn: (item: T) => T): T[] {
+     return array && array.map(item => item && itemCopyFn(item));
+ }
+ 
+ function __getCopyObjectFn<T>(itemCopyFn: (item: T) => T): (object: { [index: string]: T }) => { [index: string]: T } {
+     return (object: { [index: string]: T }) => __copyObject(object, itemCopyFn);
+ }
+ 
+ function __copyObject<T>(object: { [index: string]: T }, itemCopyFn: (item: T) => T): { [index: string]: T } {
+     if (!object) {
+         return object;
+     }
+     const result: any = {};
+     for (const key in object) {
+         if (object.hasOwnProperty(key)) {
+             const value = object[key];
+             result[key] = value && itemCopyFn(value);
+         }
+     }
+     return result;
+ }
+ 
+ function __identity<T>(): (value: T) => T {
+     return value => value;
+ }
diff --cc ui/src/app/editor/dialog/save-pipeline/save-pipeline.component.html
index 0000000,5065423..19102f9
mode 000000,100644..100644
--- a/ui/src/app/editor/dialog/save-pipeline/save-pipeline.component.html
+++ b/ui/src/app/editor/dialog/save-pipeline/save-pipeline.component.html
@@@ -1,0 -1,77 +1,117 @@@
+ <!--
+   ~ 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.
+   ~
+   -->
+ 
+ <div class="sp-dialog-container">
+     <div class="sp-dialog-content padding-20">
+         <div fxFlex="100" fxLayout="column">
+             <div fxFlex="100" fxLayout="column" *ngIf="!saved && !saving && !storageError">
+                 <div id="overwriteCheckbox" class="checkbox" *ngIf="currentModifiedPipelineId">
+                     <mat-radio-group [(ngModel)]="updateMode" fxLayout="column" color="primary" class="pipeline-radio-group">
+                         <mat-radio-button [value]="'update'" class="mb-10" style="padding-left: 0;">
+                             Update pipeline <b>{{pipeline.name}}</b>
+                         </mat-radio-button>
+                         <mat-radio-button [value]="'clone'" class="mb-10">
+                             Create new pipeline
+                         </mat-radio-button>
+                     </mat-radio-group>
+                 </div>
+                 <form [formGroup]="submitPipelineForm">
+                 <div fxFlex="100" fxLayout="column" *ngIf="!currentModifiedPipelineId || updateMode=='clone'">
+                     <mat-form-field fxFlex><mat-label>Pipeline Name</mat-label>
+                         <input [formControlName]="'pipelineName'" matInput name="pipelineName"/>
+ <!--                        <span ng-show="submitPipelineForm.pipelineName.$touched && submitPipelineForm.pipelineName.$error.required">Please provide a pipeline name.</span>-->
+ <!--                        <span ng-show="submitPipelineForm.pipelineName.$error.maxlength">Please provide a shorter pipeline name.</span>-->
+                     </mat-form-field>
+                     <mat-form-field fxFlex><mat-label>Description</mat-label>
+                         <input [formControlName]="'pipelineDescription'" matInput/>
+ <!--                        <span ng-show="submitPipelineForm.pipelineDescription.$error.maxlength">Please provide a shorter description.</span>-->
+                     </mat-form-field>
+                 </div>
+                 </form>
+                 <mat-checkbox (click)="triggerTutorial()" color="primary" [(ngModel)]="startPipelineAfterStorage">
+                     Start pipeline immediately
+                 </mat-checkbox>
++                <md-checkbox ng-disabled="false" aria-label="Start Pipeline"
++                             [(ng-model)]="advancedSettings">
++                    Deployment settings
++                </md-checkbox>
++                <div *ng-if="advancedSettings">
++                    <h4>Nodes</h4>
++                    <div ng-repeat="pipelineElement in pipeline.sepas">
++                        <div flex="100" layout="row">
++                            <div flex="50" layout="row" layout-align="start center">
++                                <span>{{pipelineElement.name}}</span>
++                            </div>
++                            <div flex="50" layout="row" layout-align="start center">
++                                <md-select ng-model="pipelineElement.deploymentTargetNodeId" style="margin: 0;">
++                                    <md-option
++                                            ng-value="node.nodeControllerId" ng-repeat="node in deploymentOptions[pipelineElement.appId]">
++                                        <em>{{node.nodeMetadata.nodeAddress}}
++                                        </em>
++                                    </md-option>
++                                </md-select>
++                            </div>
++                        </div>
++                    </div>
++                    <div ng-repeat="pipelineElement in pipeline.actions">
++                        <div flex="100" layout="row">
++                            <div flex="50" layout="row" layout-align="start center">
++                                <span>{{pipelineElement.name}}</span>
++                            </div>
++                            <div flex="50" layout="row" layout-align="start center">
++                                <md-select ng-model="pipelineElement.deploymentTargetNodeId" style="margin: 0;">
++                                    <md-option
++                                            ng-value = "node.nodeControllerId" ng-repeat="node in
++                                            deploymentOptions[pipelineElement.appId]">
++                                        <em>{{node.nodeMetadata.nodeAddress}}
++                                        </em>
++                                    </md-option>
++                                </md-select>
++                            </div>
++                        </div>
++                    </div>
++                </div>
+             </div>
+             <div fxFlex="100" fxLayout="column" fxLayoutAlign="center center" *ngIf="saving">
+                 <mat-spinner [mode]="'indeterminate'" [diameter]="50"></mat-spinner>
+                 <span class="status-text">Saving pipeline...</span>
+             </div>
+             <div fxFlex="100" fxLayout="column" fxLayoutAlign="center center" *ngIf="saved">
+                 <mat-icon color="primary" style="font-size:50pt;height:60px;width:60px;">check_circle</mat-icon>
+                 <span class="status-text">Pipeline successfully stored.</span>
+             </div>
+             <div fxFlex="100" fxLayout="column" fxLayoutAlign="center center" *ngIf="storageError">
+                 <mat-icon color="primary" style="font-size:50pt;height:60px;width:60px;">error</mat-icon>
+                 <span class="status-text">Your pipeline could not be stored.</span>
+                 <span class="status-subtext">{{errorMessage}}</span>
+             </div>
+         </div>
+     </div>
+     <mat-divider></mat-divider>
+     <div class="sp-dialog-actions">
+         <button [disabled]="!submitPipelineForm.valid || saving || saved" mat-button mat-raised-button color="primary" (click)="savePipeline(false)" style="margin-right:10px;">
+             Save
+         </button>
+         <button [disabled]="!submitPipelineForm.valid || saving || saved" mat-button mat-raised-button color="primary" (click)="savePipeline(true)" style="margin-right:10px;">
+             Save and go to pipeline view
+         </button>
+         <button mat-button mat-raised-button class="mat-basic" (click)="hide()">
+             {{saved ? 'Close' : 'Cancel'}}
+         </button>
+     </div>
+ </div>
diff --cc ui/src/app/editor/dialog/save-pipeline/save-pipeline.component.ts
index 0000000,296c16c..ef9701d
mode 000000,100644..100644
--- a/ui/src/app/editor/dialog/save-pipeline/save-pipeline.component.ts
+++ b/ui/src/app/editor/dialog/save-pipeline/save-pipeline.component.ts
@@@ -1,0 -1,153 +1,186 @@@
+ /*
+  * 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.
+  *
+  */
+ 
+ import {Component, Input, OnInit} from "@angular/core";
+ import {DialogRef} from "../../../core-ui/dialog/base-dialog/dialog-ref";
+ import {Message, Pipeline} from "../../../core-model/gen/streampipes-model";
+ import {ObjectProvider} from "../../services/object-provider.service";
+ import {EditorService} from "../../services/editor.service";
+ import {PipelineService} from "../../../platform-services/apis/pipeline.service";
+ import {ShepherdService} from "../../../services/tour/shepherd.service";
+ import {FormControl, FormGroup, Validators} from "@angular/forms";
+ import {Router} from "@angular/router";
++import {NodeInfo, NodeMetadata} from "../../../configuration/model/NodeInfo.model";
+ 
+ @Component({
+   selector: 'save-pipeline',
+   templateUrl: './save-pipeline.component.html',
+   styleUrls: ['./save-pipeline.component.scss']
+ })
+ export class SavePipelineComponent implements OnInit {
+ 
+   pipelineCategories: any;
+   startPipelineAfterStorage: any;
+   updateMode: any;
+ 
+   submitPipelineForm: FormGroup = new FormGroup({});
+ 
+   @Input()
+   pipeline: Pipeline;
+ 
+   @Input()
+   modificationMode: string;
+ 
+   @Input()
+   currentModifiedPipelineId: string;
+ 
+   saving: boolean = false;
+   saved: boolean = false;
+ 
+   storageError: boolean = false;
+   errorMessage: string = '';
+ 
++  edgeNodes: NodeInfo[]
++  advancedSettings: boolean = false;
++  deploymentOptions: Array<any> = new Array<any>();
++
+   constructor(private editorService: EditorService,
+               private dialogRef: DialogRef<SavePipelineComponent>,
+               private objectProvider: ObjectProvider,
+               private pipelineService: PipelineService,
+               private Router: Router,
+               private ShepherdService: ShepherdService) {
+     this.pipelineCategories = [];
+     this.updateMode = "update";
+   }
+ 
+   ngOnInit() {
+     this.getPipelineCategories();
+     this.submitPipelineForm.addControl("pipelineName", new FormControl(this.pipeline.name,
+         [Validators.required,
+           Validators.maxLength(40)]))
+     this.submitPipelineForm.addControl("pipelineDescription", new FormControl(this.pipeline.description,
+         [Validators.maxLength(80)]))
+ 
+     this.submitPipelineForm.controls["pipelineName"].valueChanges.subscribe(value => {
+       this.pipeline.name = value;
+     });
+ 
+     this.submitPipelineForm.controls["pipelineDescription"].valueChanges.subscribe(value => {
+       this.pipeline.description = value;
+     });
+ 
+     if (this.ShepherdService.isTourActive()) {
+       this.ShepherdService.trigger("enter-pipeline-name");
+     }
+ 
+   }
+ 
+   triggerTutorial() {
+     if (this.ShepherdService.isTourActive()) {
+       this.ShepherdService.trigger("save-pipeline-dialog");
+     }
+   }
+ 
+   displayErrors(data?: string) {
+     this.storageError = true;
+     this.errorMessage = data;
+   }
+ 
+   getPipelineCategories() {
+     this.pipelineService.getPipelineCategories().subscribe(pipelineCategories => {
+       this.pipelineCategories = pipelineCategories;
+     });
+   };
+ 
++  loadAndPrepareEdgeNodes() {
++    this.pipelineService.getAvailableEdgeNodes().subscribe(response => {
++      this.edgeNodes = response;
++      this.addAppIds(this.pipeline.sepas, this.edgeNodes);
++      this.addAppIds(this.pipeline.actions, this.edgeNodes);
++    });
++  }
++
++  addAppIds(pipelineElements, edgeNodes: Array<NodeInfo>) {
++    pipelineElements.forEach(pipelineElement => {
++      this.deploymentOptions[pipelineElement.appId] = [];
++      this.deploymentOptions[pipelineElement.appId].push(this.makeDefaultNodeInfo());
++      edgeNodes.forEach(nodeInfo => {
++        if (nodeInfo.supportedPipelineElementAppIds.some(appId => appId === pipelineElement.appId)) {
++          this.deploymentOptions[pipelineElement.appId].push(nodeInfo);
++        }
++      })
++    });
++  }
++
++  makeDefaultNodeInfo() {
++    let nodeInfo = {} as NodeInfo;
++    nodeInfo.nodeControllerId = "default";
++    nodeInfo.nodeMetadata = {} as NodeMetadata;
++    nodeInfo.nodeMetadata.nodeAddress = "default";
++    nodeInfo.nodeMetadata.nodeModel = "Default Node";
++    return nodeInfo;
++  }
+ 
+   savePipeline(switchTab) {
+     if (this.pipeline.name == "") {
+       //this.showToast("error", "Please enter a name for your pipeline");
+       return false;
+     }
+ 
+     let storageRequest;
+ 
+     if (this.currentModifiedPipelineId && this.updateMode === 'update') {
+       storageRequest = this.pipelineService.updatePipeline(this.pipeline);
+     } else {
+       this.pipeline._id = undefined;
+       storageRequest = this.pipelineService.storePipeline(this.pipeline);
+     }
+ 
+     storageRequest
+         .subscribe(statusMessage => {
+           if (statusMessage.success) {
+             let pipelineId: string = this.currentModifiedPipelineId || statusMessage.notifications[1].description;
+             this.afterStorage(statusMessage, switchTab, pipelineId);
+           } else {
+             this.displayErrors(statusMessage.notifications[0]);
+           }
+         }, data => {
+           this.displayErrors();
+         });
+   };
+ 
+   afterStorage(statusMessage: Message, switchTab, pipelineId?: string) {
+     this.hide();
+     this.editorService.makePipelineAssemblyEmpty(true);
+     this.editorService.removePipelineFromCache().subscribe();
+     if (this.ShepherdService.isTourActive()) {
+       this.ShepherdService.hideCurrentStep();
+     }
+     if (switchTab && !this.startPipelineAfterStorage) {
+       this.Router.navigate(["pipelines"]);
+     }
+     if (this.startPipelineAfterStorage) {
+       this.Router.navigate(["pipelines"], { queryParams: {pipeline: pipelineId}});
+     }
+   }
+ 
+   hide() {
+     this.dialogRef.close();
+   };
+ }
diff --cc ui/src/app/platform-services/apis/pipeline.service.ts
index 0000000,7335496..a50bd96
mode 000000,100644..100644
--- a/ui/src/app/platform-services/apis/pipeline.service.ts
+++ b/ui/src/app/platform-services/apis/pipeline.service.ts
@@@ -1,0 -1,107 +1,115 @@@
+ /*
+  * 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.
+  *
+  */
+ 
+ import {Injectable} from "@angular/core";
+ import {HttpClient} from "@angular/common/http";
+ import {PlatformServicesCommons} from "./commons.service";
+ import {Observable} from "rxjs";
+ import {
+   Message,
+   Pipeline,
+   PipelineCategory, PipelineElementStatus,
+   PipelineOperationStatus, PipelineStatusMessage
+ } from "../../core-model/gen/streampipes-model";
+ import {map} from "rxjs/operators";
++import {NodeInfo} from "../../configuration/model/NodeInfo.model";
+ 
+ @Injectable()
+ export class PipelineService {
+ 
+   constructor(private http: HttpClient,
+               private platformServicesCommons: PlatformServicesCommons) {
+ 
+   }
+ 
+   getPipelineCategories(): Observable<PipelineCategory[]> {
+     return this.http.get(this.platformServicesCommons.authUserBasePath() + "/pipelinecategories")
+         .pipe(map(response => {
+           return (response as any[]).map(p => PipelineCategory.fromData(p));
+         }));
+   };
+ 
+   storePipelineCategory(pipelineCategory: PipelineCategory) {
+     return this.http.post(this.platformServicesCommons.authUserBasePath() + "/pipelinecategories", pipelineCategory);
+   };
+ 
+   deletePipelineCategory(categoryId: string) {
+     return this.http.delete(this.platformServicesCommons.authUserBasePath() + "/pipelinecategories/" + categoryId);
+   }
+ 
+   startPipeline(pipelineId): Observable<PipelineOperationStatus> {
+     return this.http.get(this.platformServicesCommons.authUserBasePath() + "/pipelines/" + pipelineId + "/start")
+         .pipe(map(result => PipelineOperationStatus.fromData(result as PipelineOperationStatus)));
+   }
+ 
+   stopPipeline(pipelineId): Observable<PipelineOperationStatus> {
+     return this.http.get(this.platformServicesCommons.authUserBasePath() + "/pipelines/" + pipelineId + "/stop")
+         .pipe(map(result => PipelineOperationStatus.fromData(result as PipelineOperationStatus)));
+   }
+ 
+   getPipelineById(pipelineId): Observable<Pipeline> {
+     return this.http.get(this.platformServicesCommons.authUserBasePath() + "/pipelines/" + pipelineId)
+         .pipe(map(response => Pipeline.fromData(response as Pipeline)));
+   }
+ 
+   storePipeline(pipeline: Pipeline): Observable<Message> {
+     return this.http.post(this.platformServicesCommons.authUserBasePath() + "/pipelines", pipeline)
+         .pipe(map(response => {
+           return Message.fromData(response as Message);
+         }));
+   }
+ 
+   updatePipeline(pipeline: Pipeline): Observable<Message> {
+     var pipelineId = pipeline._id;
+     return this.http.put(this.platformServicesCommons.authUserBasePath() + "/pipelines/" + pipelineId, pipeline)
+         .pipe(map(response => {
+           return Message.fromData(response as Message);
+         }));
+   }
+ 
+   getOwnPipelines(): Observable<Pipeline[]> {
+     return this.http.get(this.platformServicesCommons.authUserBasePath() + "/pipelines/own").pipe(map(response => {
+       return (response as any[]).map(p => Pipeline.fromData(p));
+     }));
+   };
+ 
+   deleteOwnPipeline(pipelineId): Observable<any> {
+     return this.http.delete(this.platformServicesCommons.authUserBasePath() + "/pipelines/" + pipelineId);
+   }
+ 
+   getSystemPipelines(): Observable<Pipeline[]> {
+     return this.http.get(this.platformServicesCommons.authUserBasePath() + "/pipelines/system").pipe(map(response => {
+       return (response as any[]).map(p => Pipeline.fromData(p));
+     }))
+   };
+ 
+   getPipelineStatusById(pipelineId): Observable<PipelineStatusMessage[]> {
+     return this.http.get(this.platformServicesCommons.authUserBasePath() + "/pipelines/" + pipelineId + "/status")
+         .pipe(map(response => {
+           return (response as any[]).map(r => PipelineStatusMessage.fromData(r));
+         }));
+   }
+ 
++  getAvailableEdgeNodes(): Observable<NodeInfo[]> {
++    return this.http.get(this.platformServicesCommons.authUserBasePath() + "/nodes")
++        .pipe(map(response => {
++          return response as NodeInfo[];
++    }));
++  }
++
+ }
diff --cc ui/src/app/services/rest-api.service.ts
index 077e184,33879c9..e907206
--- a/ui/src/app/services/rest-api.service.ts
+++ b/ui/src/app/services/rest-api.service.ts
@@@ -584,9 -470,11 +470,15 @@@ export class RestApi 
          return this.$http.delete(this.urlBase() + "/pipeline-cache");
      }
  
+     getVersionInfo() {
+         return this.$http.get(this.getServerUrl() + "/info/versions");
+     }
+ 
 +    getAvailableEdgeNodes() {
 +        return this.$http.get(this.urlBase() + "/nodes");
 +    }
- }
 +
- RestApi.$inject = ['$http', 'apiConstants', 'AuthStatusService'];
+     getSystemInfo() {
+         return this.$http.get(this.getServerUrl() + "/info/system");
+     }
+ }