You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@streampipes.apache.org by gi...@apache.org on 2023/04/14 06:00:57 UTC

[streampipes-website] branch asf-site updated: Automated deployment: Fri Apr 14 06:00:49 UTC 2023 dfdf9b2b3260a76c6ba826ef3c4ee1701d3b04d0

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

github-bot pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/streampipes-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new bd2933c3 Automated deployment: Fri Apr 14 06:00:49 UTC 2023 dfdf9b2b3260a76c6ba826ef3c4ee1701d3b04d0
bd2933c3 is described below

commit bd2933c39be5de78dd59ec5e52b73fcc979838cd
Author: bossenti <bo...@users.noreply.github.com>
AuthorDate: Fri Apr 14 06:00:49 2023 +0000

    Automated deployment: Fri Apr 14 06:00:49 UTC 2023 dfdf9b2b3260a76c6ba826ef3c4ee1701d3b04d0
---
 docs/blog/2018/06/14/welcome.html                  |   2 +-
 .../06/18/how-to-understand-your-machine-data.html |   2 +-
 docs/blog/2018/09/17/preview-060.html              |   2 +-
 docs/blog/2018/11/24/container-cli.html            |   2 +-
 docs/blog/2019/04/04/release-0610.html             |   2 +-
 docs/blog/2019/05/23/release-0620.html             |   2 +-
 docs/blog/2019/09/05/release-0630.html             |   2 +-
 docs/blog/2019/09/19/release-0640.html             |   2 +-
 docs/blog/2019/11/23/release-0650.html             |   2 +-
 .../2019/11/25/moving-to-the-apache-incubator.html |   2 +-
 docs/blog/2020/01/23/streampipes_on_rpi.html       |   2 +-
 docs/blog/2020/05/19/release-0660.html             |   2 +-
 docs/blog/2020/05/27/streampipes_on_k3s.html       |   2 +-
 docs/blog/2021/07/22_release/0680.html             |   2 +-
 docs/blog/2022/03/21_release/0690.html             |   2 +-
 .../09/05/using-factory.io-with-streampipes.html   |   2 +-
 docs/blog/2022/10/13/release-070.html              |   2 +-
 docs/blog/2023/01/17/release-090.html              |   2 +-
 docs/blog/index.html                               |   2 +-
 docs/blog/page2/index.html                         |   2 +-
 docs/docs/0.90.0/community-contribute.html         |  93 +++++++
 docs/docs/0.90.0/community-get-help.html           |  92 +++++++
 docs/docs/{ => 0.90.0}/concepts-adapter.html       |   2 +-
 docs/docs/{ => 0.90.0}/concepts-data-streams.html  |   2 +-
 docs/docs/{ => 0.90.0}/concepts-glossary.html      |   2 +-
 docs/docs/0.90.0/concepts-overview.html            | 105 ++++++++
 docs/docs/{ => 0.90.0}/concepts-pipelines.html     |   2 +-
 docs/docs/{ => 0.90.0}/debugging-debugging.html    |   2 +-
 docs/docs/{ => 0.90.0}/debugging-monitoring.html   |   2 +-
 docs/docs/0.90.0/deploy-docker.html                | 138 +++++++++++
 docs/docs/0.90.0/deploy-kubernetes.html            | 130 ++++++++++
 docs/docs/0.90.0/deploy-security.html              | 130 ++++++++++
 docs/docs/0.90.0/deploy-use-ssl.html               | 106 ++++++++
 docs/docs/{ => 0.90.0}/dev-guide-archetype.html    |   2 +-
 docs/docs/{ => 0.90.0}/dev-guide-architecture.html |   2 +-
 .../docs/{ => 0.90.0}/dev-guide-configuration.html |   2 +-
 .../dev-guide-development-environment.html         |   2 +-
 docs/docs/{ => 0.90.0}/dev-guide-event-model.html  |   8 +-
 docs/docs/{ => 0.90.0}/dev-guide-introduction.html |   2 +-
 docs/docs/{ => 0.90.0}/dev-guide-migration.html    |   2 +-
 .../{ => 0.90.0}/dev-guide-output-strategies.html  |   2 +-
 .../dev-guide-sdk-guide-processors.html            |   2 +-
 .../{ => 0.90.0}/dev-guide-sdk-guide-sinks.html    |   2 +-
 .../{ => 0.90.0}/dev-guide-sdk-guide-sources.html  |   2 +-
 docs/docs/{ => 0.90.0}/dev-guide-ssl.html          |   2 +-
 .../{ => 0.90.0}/dev-guide-static-properties.html  |   2 +-
 .../dev-guide-stream-requirements.html             |   6 +-
 .../dev-guide-tutorial-processors.html             |   2 +-
 .../{ => 0.90.0}/dev-guide-tutorial-sinks.html     |   2 +-
 .../{ => 0.90.0}/dev-guide-tutorial-sources.html   |   2 +-
 docs/docs/0.90.0/extend-archetypes.html            | 124 ++++++++++
 docs/docs/0.90.0/extend-cli.html                   | 227 +++++++++++++++++
 docs/docs/0.90.0/extend-first-processor.html       | 119 +++++++++
 docs/docs/0.90.0/extend-sdk-event-model.html       | 175 ++++++++++++++
 docs/docs/0.90.0/extend-sdk-functions.html         | 182 ++++++++++++++
 .../extend-sdk-migration-service-discovery.html    | 164 +++++++++++++
 .../{ => 0.90.0}/extend-sdk-output-strategies.html |   4 +-
 docs/docs/0.90.0/extend-sdk-static-properties.html | 239 ++++++++++++++++++
 .../0.90.0/extend-sdk-stream-requirements.html     | 214 ++++++++++++++++
 docs/docs/0.90.0/extend-setup.html                 | 111 +++++++++
 .../extend-tutorial-data-processors.html           |  14 +-
 docs/docs/0.90.0/extend-tutorial-data-sinks.html   | 268 +++++++++++++++++++++
 docs/docs/0.90.0/extend-tutorial-data-sources.html | 236 ++++++++++++++++++
 docs/docs/{ => 0.90.0}/faq-common-problems.html    |   2 +-
 ...org.apache.streampipes.processor.geo.flink.html |   2 +-
 ...he.streampipes.processor.geo.jvm.geocoding.html |   2 +-
 ...ampipes.processor.geo.jvm.reversegeocoding.html |   2 +-
 ...eampipes.processor.geo.jvm.staticgeocoding.html |   2 +-
 ...ification.jvm.generic-image-classification.html |   2 +-
 ...sor.imageclassification.jvm.image-enricher.html |   2 +-
 ...pipes.processor.imageclassification.qrcode.html |   2 +-
 ...s.processors.aggregation.flink.aggregation.html |   2 +-
 ...es.processors.aggregation.flink.eventcount.html |   2 +-
 ...eampipes.processors.aggregation.flink.rate.html |   2 +-
 ...ssors.enricher.flink.processor.math.mathop.html |   2 +-
 ...enricher.flink.processor.math.staticmathop.html |   2 +-
 ...sors.enricher.flink.processor.trigonometry.html |   2 +-
 ....enricher.flink.processor.urldereferencing.html |   2 +-
 ...mpipes.processors.enricher.flink.timestamp.html |   2 +-
 ...mpipes.processors.enricher.jvm.sizemeasure.html |   2 +-
 ...streampipes.processors.filters.jvm.compose.html |   2 +-
 ....streampipes.processors.filters.jvm.enrich.html |   2 +-
 ...e.streampipes.processors.filters.jvm.merge.html |   2 +-
 ...pes.processors.filters.jvm.numericalfilter.html |   2 +-
 ...processors.filters.jvm.numericaltextfilter.html |   2 +-
 ...streampipes.processors.filters.jvm.project.html |   2 +-
 ...eampipes.processors.filters.jvm.textfilter.html |   2 +-
 ...reampipes.processors.filters.jvm.threshold.html |   2 +-
 ...ssors.geo.jvm.processor.distancecalculator.html |   2 +-
 ...ors.pattern-detection.flink.peak-detection.html |   2 +-
 ...he.streampipes.processors.siddhi.frequency.html |   2 +-
 ...eampipes.processors.siddhi.frequencychange.html |   2 +-
 ...che.streampipes.processors.siddhi.increase.html |   2 +-
 ...eampipes.processors.siddhi.numericalfilter.html |   2 +-
 ...che.streampipes.processors.siddhi.sequence.html |   2 +-
 ....apache.streampipes.processors.siddhi.stop.html |   2 +-
 ...cessors.textmining.flink.languagedetection.html |   2 +-
 ...ipes.processors.textmining.flink.wordcount.html |   2 +-
 ...eampipes.processors.textmining.jvm.chunker.html |   2 +-
 ...rocessors.textmining.jvm.languagedetection.html |   2 +-
 ...pipes.processors.textmining.jvm.namefinder.html |   2 +-
 ...pes.processors.textmining.jvm.partofspeech.html |   2 +-
 ...rocessors.textmining.jvm.sentencedetection.html |   2 +-
 ...mpipes.processors.textmining.jvm.tokenizer.html |   2 +-
 ...ssors.transformation.flink.field-converter.html |   2 +-
 ...ocessors.transformation.flink.field-mapper.html |   2 +-
 ...cessors.transformation.flink.field-renamer.html |   2 +-
 ...rocessors.transformation.flink.fieldhasher.html |   2 +-
 ...formation.flink.measurement-unit-converter.html |   2 +-
 ...transformation.flink.processor.boilerplate.html |   2 +-
 ...rs.transformation.jvm.booloperator.counter.html |   2 +-
 ...s.transformation.jvm.booloperator.inverter.html |   2 +-
 ...ransformation.jvm.booloperator.timekeeping.html |   2 +-
 ...sors.transformation.jvm.booloperator.timer.html |   2 +-
 ...rocessors.transformation.jvm.changed-value.html |   2 +-
 ....processors.transformation.jvm.count-array.html |   2 +-
 ....processors.transformation.jvm.csvmetadata.html |   2 +-
 ...ocessors.transformation.jvm.duration-value.html |   2 +-
 ...formation.jvm.processor.timestampextractor.html |   2 +-
 ....processors.transformation.jvm.split-array.html |   2 +-
 ...processors.transformation.jvm.taskduration.html |   2 +-
 ...rs.transformation.jvm.transform-to-boolean.html |   2 +-
 ...e.streampipes.sinks.brokers.jvm.bufferrest.html |   2 +-
 ...g.apache.streampipes.sinks.brokers.jvm.jms.html |   2 +-
 ...apache.streampipes.sinks.brokers.jvm.kafka.html |   2 +-
 ...pache.streampipes.sinks.brokers.jvm.pulsar.html |   2 +-
 ...che.streampipes.sinks.brokers.jvm.rabbitmq.html |   2 +-
 ....apache.streampipes.sinks.brokers.jvm.rest.html |   2 +-
 ...g.apache.streampipes.sinks.databases.ditto.html |   2 +-
 ...mpipes.sinks.databases.flink.elasticsearch.html |   2 +-
 ...he.streampipes.sinks.databases.jvm.couchdb.html |   2 +-
 ...e.streampipes.sinks.databases.jvm.influxdb.html |   2 +-
 ...ache.streampipes.sinks.databases.jvm.iotdb.html |   2 +-
 ...ache.streampipes.sinks.databases.jvm.opcua.html |   2 +-
 ...streampipes.sinks.databases.jvm.postgresql.html |   2 +-
 ...e.streampipes.sinks.internal.jvm.dashboard.html |   2 +-
 ...he.streampipes.sinks.internal.jvm.datalake.html |   2 +-
 ...treampipes.sinks.internal.jvm.notification.html |   2 +-
 ....streampipes.sinks.notifications.jvm.email.html |   2 +-
 ...eampipes.sinks.notifications.jvm.onesignal.html |   2 +-
 ....streampipes.sinks.notifications.jvm.slack.html |   2 +-
 ...ache.streampipes.connect.adapters.coindesk.html | 109 +++++++++
 ...che.streampipes.connect.adapters.flic.mqtt.html | 118 +++++++++
 ....apache.streampipes.connect.adapters.gdelt.html | 108 +++++++++
 ...ache.streampipes.connect.adapters.iex.news.html | 112 +++++++++
 ...he.streampipes.connect.adapters.iex.stocks.html | 112 +++++++++
 ...che.streampipes.connect.adapters.image.set.html | 106 ++++++++
 ....streampipes.connect.adapters.image.stream.html | 106 ++++++++
 ....streampipes.connect.adapters.influxdb.set.html | 107 ++++++++
 ...reampipes.connect.adapters.influxdb.stream.html | 107 ++++++++
 ...rg.apache.streampipes.connect.adapters.iss.html | 106 ++++++++
 ...che.streampipes.connect.adapters.mysql.set.html | 106 ++++++++
 ....streampipes.connect.adapters.mysql.stream.html | 106 ++++++++
 ...he.streampipes.connect.adapters.netio.mqtt.html | 118 +++++++++
 ...he.streampipes.connect.adapters.netio.rest.html | 118 +++++++++
 ...onnect.adapters.nswaustralia.trafficcamera.html | 106 ++++++++
 ....apache.streampipes.connect.adapters.opcua.html | 127 ++++++++++
 ....streampipes.connect.adapters.plc4x.modbus.html | 106 ++++++++
 ...ache.streampipes.connect.adapters.plc4x.s7.html | 106 ++++++++
 ...rg.apache.streampipes.connect.adapters.ros.html | 117 +++++++++
 ...ampipes.connect.adapters.simulator.machine.html | 112 +++++++++
 ...s.connect.adapters.simulator.randomdataset.html | 106 ++++++++
 ...onnect.adapters.simulator.randomdatastream.html | 106 ++++++++
 ....apache.streampipes.connect.adapters.slack.html | 106 ++++++++
 ...org.apache.streampipes.connect.adapters.ti.html | 115 +++++++++
 ...treampipes.connect.adapters.wikipedia.edit.html | 106 ++++++++
 ...streampipes.connect.adapters.wikipedia.new.html | 106 ++++++++
 ...e.streampipes.connect.protocol.stream.file.html | 106 ++++++++
 ...e.streampipes.connect.protocol.stream.http.html | 106 ++++++++
 ...ampipes.connect.protocol.stream.httpserver.html | 106 ++++++++
 ....streampipes.connect.protocol.stream.kafka.html | 106 ++++++++
 ...e.streampipes.connect.protocol.stream.mqtt.html | 113 +++++++++
 ...streampipes.connect.protocol.stream.pulsar.html | 106 ++++++++
 ...org.apache.streampipes.processor.geo.flink.html | 118 +++++++++
 ...he.streampipes.processor.geo.jvm.geocoding.html | 119 +++++++++
 ...ampipes.processor.geo.jvm.reversegeocoding.html | 120 +++++++++
 ...eampipes.processor.geo.jvm.staticgeocoding.html | 120 +++++++++
 ...ification.jvm.generic-image-classification.html | 114 +++++++++
 ...ssor.imageclassification.jvm.image-cropper.html | 111 +++++++++
 ...sor.imageclassification.jvm.image-enricher.html | 110 +++++++++
 ...pipes.processor.imageclassification.qrcode.html | 123 ++++++++++
 ...s.processors.aggregation.flink.aggregation.html | 120 +++++++++
 ...ampipes.processors.aggregation.flink.count.html | 128 ++++++++++
 ...es.processors.aggregation.flink.eventcount.html | 118 +++++++++
 ...eampipes.processors.aggregation.flink.rate.html | 117 +++++++++
 ...pipes.processors.changedetection.jvm.cusum.html | 126 ++++++++++
 ...ssors.enricher.flink.processor.math.mathop.html | 118 +++++++++
 ...enricher.flink.processor.math.staticmathop.html | 118 +++++++++
 ...sors.enricher.flink.processor.trigonometry.html | 117 +++++++++
 ....enricher.flink.processor.urldereferencing.html | 115 +++++++++
 ...mpipes.processors.enricher.flink.timestamp.html | 113 +++++++++
 ...mpipes.processors.enricher.jvm.sizemeasure.html | 113 +++++++++
 ...streampipes.processors.filters.jvm.compose.html | 114 +++++++++
 ....streampipes.processors.filters.jvm.enrich.html | 118 +++++++++
 ...e.streampipes.processors.filters.jvm.limit.html | 131 ++++++++++
 ...e.streampipes.processors.filters.jvm.merge.html | 121 ++++++++++
 ...pes.processors.filters.jvm.numericalfilter.html | 118 +++++++++
 ...processors.filters.jvm.numericaltextfilter.html | 126 ++++++++++
 ...streampipes.processors.filters.jvm.project.html | 113 +++++++++
 ...eampipes.processors.filters.jvm.textfilter.html | 116 +++++++++
 ...reampipes.processors.filters.jvm.threshold.html | 118 +++++++++
 ...ocessors.geo.jvm.jts.processor.latLngToGeo.html | 132 ++++++++++
 ...s.processors.geo.jvm.jts.processor.setEPSG.html | 117 +++++++++
 ...rocessors.geo.jvm.jts.processor.trajectory.html | 145 +++++++++++
 ...ssors.geo.jvm.processor.distancecalculator.html | 122 ++++++++++
 ...ampipes.processors.geo.jvm.processor.speed.html | 116 +++++++++
 ...geo.jvm.processor.staticdistancecalculator.html | 123 ++++++++++
 ...processors.pattern-detection.flink.absence.html | 113 +++++++++
 ...pes.processors.pattern-detection.flink.and.html | 113 +++++++++
 ...ors.pattern-detection.flink.peak-detection.html | 113 +++++++++
 ...rocessors.pattern-detection.flink.sequence.html | 113 +++++++++
 ...he.streampipes.processors.siddhi.frequency.html | 114 +++++++++
 ...eampipes.processors.siddhi.frequencychange.html | 116 +++++++++
 ...che.streampipes.processors.siddhi.increase.html | 120 +++++++++
 ...eampipes.processors.siddhi.numericalfilter.html | 123 ++++++++++
 ...che.streampipes.processors.siddhi.sequence.html | 105 ++++++++
 ....apache.streampipes.processors.siddhi.stop.html | 116 +++++++++
 ...essors.statistics.flink.statistics-summary.html | 113 +++++++++
 ...cessors.textmining.flink.languagedetection.html | 113 +++++++++
 ...ipes.processors.textmining.flink.wordcount.html | 113 +++++++++
 ...eampipes.processors.textmining.jvm.chunker.html | 129 ++++++++++
 ...rocessors.textmining.jvm.languagedetection.html | 229 ++++++++++++++++++
 ...pipes.processors.textmining.jvm.namefinder.html | 120 +++++++++
 ...pes.processors.textmining.jvm.partofspeech.html | 123 ++++++++++
 ...rocessors.textmining.jvm.sentencedetection.html | 118 +++++++++
 ...mpipes.processors.textmining.jvm.tokenizer.html | 118 +++++++++
 ...ssors.transformation.flink.field-converter.html | 116 +++++++++
 ...ocessors.transformation.flink.field-mapper.html | 134 +++++++++++
 ...cessors.transformation.flink.field-renamer.html | 126 ++++++++++
 ...rocessors.transformation.flink.fieldhasher.html | 117 +++++++++
 ...formation.flink.measurement-unit-converter.html | 113 +++++++++
 ...transformation.flink.processor.boilerplate.html | 113 +++++++++
 ...rs.transformation.jvm.booloperator.counter.html | 124 ++++++++++
 ...s.transformation.jvm.booloperator.inverter.html | 114 +++++++++
 ...ransformation.jvm.booloperator.timekeeping.html | 129 ++++++++++
 ...sors.transformation.jvm.booloperator.timer.html | 116 +++++++++
 ...rocessors.transformation.jvm.changed-value.html | 111 +++++++++
 ....processors.transformation.jvm.count-array.html | 115 +++++++++
 ....processors.transformation.jvm.csvmetadata.html | 138 +++++++++++
 ...ocessors.transformation.jvm.duration-value.html | 117 +++++++++
 ...sformation.jvm.processor.booloperator.edge.html | 122 ++++++++++
 ...formation.jvm.processor.booloperator.state.html | 121 ++++++++++
 ....transformation.jvm.processor.state.buffer.html | 117 +++++++++
 ...rmation.jvm.processor.state.labeler.buffer.html | 124 ++++++++++
 ...rmation.jvm.processor.state.labeler.number.html | 118 +++++++++
 ...rmation.jvm.processor.stringoperator.state.html | 116 +++++++++
 ...formation.jvm.processor.timestampextractor.html | 116 +++++++++
 ....processors.transformation.jvm.split-array.html | 117 +++++++++
 ....transformation.jvm.stringoperator.counter.html | 122 ++++++++++
 ...rs.transformation.jvm.stringoperator.timer.html | 121 ++++++++++
 ...processors.transformation.jvm.taskduration.html | 113 +++++++++
 ...rs.transformation.jvm.transform-to-boolean.html | 114 +++++++++
 .../org.apache.streampipes.protocol.set.file.html  | 106 ++++++++
 .../org.apache.streampipes.protocol.set.http.html  | 106 ++++++++
 ...e.streampipes.sinks.brokers.jvm.bufferrest.html | 117 +++++++++
 ...g.apache.streampipes.sinks.brokers.jvm.jms.html | 118 +++++++++
 ...apache.streampipes.sinks.brokers.jvm.kafka.html | 118 +++++++++
 ....apache.streampipes.sinks.brokers.jvm.mqtt.html |   2 +-
 ....apache.streampipes.sinks.brokers.jvm.nats.html | 128 ++++++++++
 ...pache.streampipes.sinks.brokers.jvm.pulsar.html | 118 +++++++++
 ...che.streampipes.sinks.brokers.jvm.rabbitmq.html | 124 ++++++++++
 ....apache.streampipes.sinks.brokers.jvm.rest.html | 114 +++++++++
 ...g.apache.streampipes.sinks.databases.ditto.html | 124 ++++++++++
 ...mpipes.sinks.databases.flink.elasticsearch.html | 117 +++++++++
 ...he.streampipes.sinks.databases.jvm.couchdb.html | 119 +++++++++
 ...e.streampipes.sinks.databases.jvm.influxdb.html | 130 ++++++++++
 ...ache.streampipes.sinks.databases.jvm.iotdb.html | 123 ++++++++++
 ...ache.streampipes.sinks.databases.jvm.mysql.html | 124 ++++++++++
 ...ache.streampipes.sinks.databases.jvm.opcua.html | 123 ++++++++++
 ...streampipes.sinks.databases.jvm.postgresql.html | 124 ++++++++++
 ...e.streampipes.sinks.internal.jvm.dashboard.html | 114 +++++++++
 ...he.streampipes.sinks.internal.jvm.datalake.html | 130 ++++++++++
 ...treampipes.sinks.internal.jvm.notification.html | 116 +++++++++
 ....streampipes.sinks.notifications.jvm.email.html | 122 ++++++++++
 ...eampipes.sinks.notifications.jvm.onesignal.html | 119 +++++++++
 ....streampipes.sinks.notifications.jvm.slack.html | 122 ++++++++++
 ...reampipes.sinks.notifications.jvm.telegram.html | 133 ++++++++++
 docs/docs/{ => 0.90.0}/pipeline-elements.html      |   2 +-
 docs/docs/{ => 0.90.0}/privacy.html                |   2 +-
 docs/docs/0.90.0/technicals-architecture.html      | 121 ++++++++++
 docs/docs/0.90.0/technicals-configuration.html     | 125 ++++++++++
 docs/docs/0.90.0/technicals-messaging.html         |  83 +++++++
 docs/docs/0.90.0/technicals-runtime-wrappers.html  |  83 +++++++
 docs/docs/0.90.0/technicals-user-guidance.html     |  83 +++++++
 docs/docs/0.90.0/try-installation.html             | 197 +++++++++++++++
 docs/docs/{ => 0.90.0}/try-tutorial.html           |   2 +-
 docs/docs/0.90.0/use-configurations.html           | 104 ++++++++
 docs/docs/0.90.0/use-connect.html                  | 131 ++++++++++
 docs/docs/0.90.0/use-dashboard.html                | 129 ++++++++++
 docs/docs/0.90.0/use-data-explorer.html            | 131 ++++++++++
 .../docs/0.90.0/use-install-pipeline-elements.html |  84 +++++++
 docs/docs/0.90.0/use-managing-pipelines.html       | 114 +++++++++
 docs/docs/0.90.0/use-notifications.html            |  92 +++++++
 docs/docs/0.90.0/use-pipeline-editor.html          | 128 ++++++++++
 docs/docs/{ => 0.90.0}/user-guide-first-steps.html |   4 +-
 .../{ => 0.90.0}/user-guide-getting-started.html   |   4 +-
 .../docs/{ => 0.90.0}/user-guide-installation.html |   4 +-
 .../{ => 0.90.0}/user-guide-introduction-old.html  |   6 +-
 docs/docs/0.90.0/user-guide-introduction.html      | 190 +++++++++++++++
 .../user-guide-processing-elements.html            |   2 +-
 .../user-guide-software-components.html            |   4 +-
 docs/docs/{ => 0.90.0}/user-guide-tour.html        |   4 +-
 docs/docs/community-contribute.html                |   4 +-
 docs/docs/community-get-help.html                  |   4 +-
 docs/docs/concepts-adapter.html                    |   4 +-
 docs/docs/concepts-data-streams.html               |   4 +-
 docs/docs/concepts-glossary.html                   |   4 +-
 docs/docs/concepts-overview.html                   |   4 +-
 docs/docs/concepts-pipelines.html                  |   4 +-
 docs/docs/debugging-debugging.html                 |   4 +-
 docs/docs/debugging-monitoring.html                |   4 +-
 docs/docs/deploy-docker.html                       |   4 +-
 docs/docs/deploy-kubernetes.html                   |   4 +-
 docs/docs/deploy-security.html                     |   4 +-
 docs/docs/deploy-use-ssl.html                      |   4 +-
 docs/docs/dev-guide-archetype.html                 |   4 +-
 docs/docs/dev-guide-architecture.html              |   4 +-
 docs/docs/dev-guide-configuration.html             |   4 +-
 docs/docs/dev-guide-development-environment.html   |   4 +-
 docs/docs/dev-guide-event-model.html               |   4 +-
 docs/docs/dev-guide-introduction.html              |   4 +-
 docs/docs/dev-guide-migration.html                 |   4 +-
 docs/docs/dev-guide-output-strategies.html         |   4 +-
 docs/docs/dev-guide-sdk-guide-processors.html      |   4 +-
 docs/docs/dev-guide-sdk-guide-sinks.html           |   4 +-
 docs/docs/dev-guide-sdk-guide-sources.html         |   4 +-
 docs/docs/dev-guide-ssl.html                       |   4 +-
 docs/docs/dev-guide-static-properties.html         |   4 +-
 docs/docs/dev-guide-stream-requirements.html       |   4 +-
 docs/docs/dev-guide-tutorial-processors.html       |   4 +-
 docs/docs/dev-guide-tutorial-sinks.html            |   4 +-
 docs/docs/dev-guide-tutorial-sources.html          |   4 +-
 docs/docs/extend-archetypes.html                   |   4 +-
 docs/docs/extend-cli.html                          |   4 +-
 docs/docs/extend-first-processor.html              |   4 +-
 docs/docs/extend-sdk-event-model.html              |   4 +-
 docs/docs/extend-sdk-functions.html                |   4 +-
 .../extend-sdk-migration-service-discovery.html    |   4 +-
 docs/docs/extend-sdk-output-strategies.html        |   4 +-
 docs/docs/extend-sdk-static-properties.html        |   4 +-
 docs/docs/extend-sdk-stream-requirements.html      |   4 +-
 docs/docs/extend-setup.html                        |   4 +-
 docs/docs/extend-tutorial-data-processors.html     |   4 +-
 docs/docs/extend-tutorial-data-sinks.html          |   4 +-
 docs/docs/extend-tutorial-data-sources.html        |   4 +-
 docs/docs/faq-common-problems.html                 |   4 +-
 docs/docs/next/try-installation.html               |  10 +-
 ...org.apache.streampipes.processor.geo.flink.html |   4 +-
 ...he.streampipes.processor.geo.jvm.geocoding.html |   4 +-
 ...ampipes.processor.geo.jvm.reversegeocoding.html |   4 +-
 ...eampipes.processor.geo.jvm.staticgeocoding.html |   4 +-
 ...ification.jvm.generic-image-classification.html |   4 +-
 ...sor.imageclassification.jvm.image-enricher.html |   4 +-
 ...pipes.processor.imageclassification.qrcode.html |   4 +-
 ...s.processors.aggregation.flink.aggregation.html |   4 +-
 ...es.processors.aggregation.flink.eventcount.html |   4 +-
 ...eampipes.processors.aggregation.flink.rate.html |   4 +-
 ...ssors.enricher.flink.processor.math.mathop.html |   4 +-
 ...enricher.flink.processor.math.staticmathop.html |   4 +-
 ...sors.enricher.flink.processor.trigonometry.html |   4 +-
 ....enricher.flink.processor.urldereferencing.html |   4 +-
 ...mpipes.processors.enricher.flink.timestamp.html |   4 +-
 ...mpipes.processors.enricher.jvm.sizemeasure.html |   4 +-
 ...streampipes.processors.filters.jvm.compose.html |   4 +-
 ....streampipes.processors.filters.jvm.enrich.html |   4 +-
 ...e.streampipes.processors.filters.jvm.merge.html |   4 +-
 ...pes.processors.filters.jvm.numericalfilter.html |   4 +-
 ...processors.filters.jvm.numericaltextfilter.html |   4 +-
 ...streampipes.processors.filters.jvm.project.html |   4 +-
 ...eampipes.processors.filters.jvm.textfilter.html |   4 +-
 ...reampipes.processors.filters.jvm.threshold.html |   4 +-
 ...ssors.geo.jvm.processor.distancecalculator.html |   4 +-
 ...ors.pattern-detection.flink.peak-detection.html |   4 +-
 ...he.streampipes.processors.siddhi.frequency.html |   4 +-
 ...eampipes.processors.siddhi.frequencychange.html |   4 +-
 ...che.streampipes.processors.siddhi.increase.html |   4 +-
 ...eampipes.processors.siddhi.numericalfilter.html |   4 +-
 ...che.streampipes.processors.siddhi.sequence.html |   4 +-
 ....apache.streampipes.processors.siddhi.stop.html |   4 +-
 ...cessors.textmining.flink.languagedetection.html |   4 +-
 ...ipes.processors.textmining.flink.wordcount.html |   4 +-
 ...eampipes.processors.textmining.jvm.chunker.html |   4 +-
 ...rocessors.textmining.jvm.languagedetection.html |   4 +-
 ...pipes.processors.textmining.jvm.namefinder.html |   4 +-
 ...pes.processors.textmining.jvm.partofspeech.html |   4 +-
 ...rocessors.textmining.jvm.sentencedetection.html |   4 +-
 ...mpipes.processors.textmining.jvm.tokenizer.html |   4 +-
 ...ssors.transformation.flink.field-converter.html |   4 +-
 ...ocessors.transformation.flink.field-mapper.html |   4 +-
 ...cessors.transformation.flink.field-renamer.html |   4 +-
 ...rocessors.transformation.flink.fieldhasher.html |   4 +-
 ...formation.flink.measurement-unit-converter.html |   4 +-
 ...transformation.flink.processor.boilerplate.html |   4 +-
 ...rs.transformation.jvm.booloperator.counter.html |   4 +-
 ...s.transformation.jvm.booloperator.inverter.html |   4 +-
 ...ransformation.jvm.booloperator.timekeeping.html |   4 +-
 ...sors.transformation.jvm.booloperator.timer.html |   4 +-
 ...rocessors.transformation.jvm.changed-value.html |   4 +-
 ....processors.transformation.jvm.count-array.html |   4 +-
 ....processors.transformation.jvm.csvmetadata.html |   4 +-
 ...ocessors.transformation.jvm.duration-value.html |   4 +-
 ...formation.jvm.processor.timestampextractor.html |   4 +-
 ....processors.transformation.jvm.split-array.html |   4 +-
 ...processors.transformation.jvm.taskduration.html |   4 +-
 ...rs.transformation.jvm.transform-to-boolean.html |   4 +-
 ...e.streampipes.sinks.brokers.jvm.bufferrest.html |   4 +-
 ...g.apache.streampipes.sinks.brokers.jvm.jms.html |   4 +-
 ...apache.streampipes.sinks.brokers.jvm.kafka.html |   4 +-
 ...pache.streampipes.sinks.brokers.jvm.pulsar.html |   4 +-
 ...che.streampipes.sinks.brokers.jvm.rabbitmq.html |   4 +-
 ....apache.streampipes.sinks.brokers.jvm.rest.html |   4 +-
 ...g.apache.streampipes.sinks.databases.ditto.html |   4 +-
 ...mpipes.sinks.databases.flink.elasticsearch.html |   4 +-
 ...he.streampipes.sinks.databases.jvm.couchdb.html |   4 +-
 ...e.streampipes.sinks.databases.jvm.influxdb.html |   4 +-
 ...ache.streampipes.sinks.databases.jvm.iotdb.html |   4 +-
 ...ache.streampipes.sinks.databases.jvm.opcua.html |   4 +-
 ...streampipes.sinks.databases.jvm.postgresql.html |   4 +-
 ...e.streampipes.sinks.internal.jvm.dashboard.html |   4 +-
 ...he.streampipes.sinks.internal.jvm.datalake.html |   4 +-
 ...treampipes.sinks.internal.jvm.notification.html |   4 +-
 ....streampipes.sinks.notifications.jvm.email.html |   4 +-
 ...eampipes.sinks.notifications.jvm.onesignal.html |   4 +-
 ....streampipes.sinks.notifications.jvm.slack.html |   4 +-
 ...ache.streampipes.connect.adapters.coindesk.html |   4 +-
 ...che.streampipes.connect.adapters.flic.mqtt.html |   4 +-
 ....apache.streampipes.connect.adapters.gdelt.html |   4 +-
 ...ache.streampipes.connect.adapters.iex.news.html |   4 +-
 ...he.streampipes.connect.adapters.iex.stocks.html |   4 +-
 ...che.streampipes.connect.adapters.image.set.html |   4 +-
 ....streampipes.connect.adapters.image.stream.html |   4 +-
 ....streampipes.connect.adapters.influxdb.set.html |   4 +-
 ...reampipes.connect.adapters.influxdb.stream.html |   4 +-
 ...rg.apache.streampipes.connect.adapters.iss.html |   4 +-
 ...che.streampipes.connect.adapters.mysql.set.html |   4 +-
 ....streampipes.connect.adapters.mysql.stream.html |   4 +-
 ...he.streampipes.connect.adapters.netio.mqtt.html |   4 +-
 ...he.streampipes.connect.adapters.netio.rest.html |   4 +-
 ...onnect.adapters.nswaustralia.trafficcamera.html |   4 +-
 ....apache.streampipes.connect.adapters.opcua.html |   4 +-
 ....streampipes.connect.adapters.plc4x.modbus.html |   4 +-
 ...ache.streampipes.connect.adapters.plc4x.s7.html |   4 +-
 ...rg.apache.streampipes.connect.adapters.ros.html |   4 +-
 ...ampipes.connect.adapters.simulator.machine.html |   4 +-
 ...s.connect.adapters.simulator.randomdataset.html |   4 +-
 ...onnect.adapters.simulator.randomdatastream.html |   4 +-
 ....apache.streampipes.connect.adapters.slack.html |   4 +-
 ...org.apache.streampipes.connect.adapters.ti.html |   4 +-
 ...treampipes.connect.adapters.wikipedia.edit.html |   4 +-
 ...streampipes.connect.adapters.wikipedia.new.html |   4 +-
 ...e.streampipes.connect.protocol.stream.file.html |   4 +-
 ...e.streampipes.connect.protocol.stream.http.html |   4 +-
 ...ampipes.connect.protocol.stream.httpserver.html |   4 +-
 ....streampipes.connect.protocol.stream.kafka.html |   4 +-
 ...e.streampipes.connect.protocol.stream.mqtt.html |   4 +-
 ...streampipes.connect.protocol.stream.pulsar.html |   4 +-
 ...org.apache.streampipes.processor.geo.flink.html |   4 +-
 ...he.streampipes.processor.geo.jvm.geocoding.html |   4 +-
 ...ampipes.processor.geo.jvm.reversegeocoding.html |   4 +-
 ...eampipes.processor.geo.jvm.staticgeocoding.html |   4 +-
 ...ification.jvm.generic-image-classification.html |   4 +-
 ...ssor.imageclassification.jvm.image-cropper.html |   4 +-
 ...sor.imageclassification.jvm.image-enricher.html |   4 +-
 ...pipes.processor.imageclassification.qrcode.html |   4 +-
 ...s.processors.aggregation.flink.aggregation.html |   4 +-
 ...ampipes.processors.aggregation.flink.count.html |   4 +-
 ...es.processors.aggregation.flink.eventcount.html |   4 +-
 ...eampipes.processors.aggregation.flink.rate.html |   4 +-
 ...pipes.processors.changedetection.jvm.cusum.html |   4 +-
 ...ssors.enricher.flink.processor.math.mathop.html |   4 +-
 ...enricher.flink.processor.math.staticmathop.html |   4 +-
 ...sors.enricher.flink.processor.trigonometry.html |   4 +-
 ....enricher.flink.processor.urldereferencing.html |   4 +-
 ...mpipes.processors.enricher.flink.timestamp.html |   4 +-
 ...mpipes.processors.enricher.jvm.sizemeasure.html |   4 +-
 ...streampipes.processors.filters.jvm.compose.html |   4 +-
 ....streampipes.processors.filters.jvm.enrich.html |   4 +-
 ...e.streampipes.processors.filters.jvm.limit.html |   4 +-
 ...e.streampipes.processors.filters.jvm.merge.html |   4 +-
 ...pes.processors.filters.jvm.numericalfilter.html |   4 +-
 ...processors.filters.jvm.numericaltextfilter.html |   4 +-
 ...streampipes.processors.filters.jvm.project.html |   4 +-
 ...eampipes.processors.filters.jvm.textfilter.html |   4 +-
 ...reampipes.processors.filters.jvm.threshold.html |   4 +-
 ...ocessors.geo.jvm.jts.processor.latLngToGeo.html |   4 +-
 ...s.processors.geo.jvm.jts.processor.setEPSG.html |   4 +-
 ...rocessors.geo.jvm.jts.processor.trajectory.html |   4 +-
 ...ssors.geo.jvm.processor.distancecalculator.html |   4 +-
 ...ampipes.processors.geo.jvm.processor.speed.html |   4 +-
 ...geo.jvm.processor.staticdistancecalculator.html |   4 +-
 ...processors.pattern-detection.flink.absence.html |   4 +-
 ...pes.processors.pattern-detection.flink.and.html |   4 +-
 ...ors.pattern-detection.flink.peak-detection.html |   4 +-
 ...rocessors.pattern-detection.flink.sequence.html |   4 +-
 ...he.streampipes.processors.siddhi.frequency.html |   4 +-
 ...eampipes.processors.siddhi.frequencychange.html |   4 +-
 ...che.streampipes.processors.siddhi.increase.html |   4 +-
 ...eampipes.processors.siddhi.numericalfilter.html |   4 +-
 ...che.streampipes.processors.siddhi.sequence.html |   4 +-
 ....apache.streampipes.processors.siddhi.stop.html |   4 +-
 ...essors.statistics.flink.statistics-summary.html |   4 +-
 ...cessors.textmining.flink.languagedetection.html |   4 +-
 ...ipes.processors.textmining.flink.wordcount.html |   4 +-
 ...eampipes.processors.textmining.jvm.chunker.html |   4 +-
 ...rocessors.textmining.jvm.languagedetection.html |   4 +-
 ...pipes.processors.textmining.jvm.namefinder.html |   4 +-
 ...pes.processors.textmining.jvm.partofspeech.html |   4 +-
 ...rocessors.textmining.jvm.sentencedetection.html |   4 +-
 ...mpipes.processors.textmining.jvm.tokenizer.html |   4 +-
 ...ssors.transformation.flink.field-converter.html |   4 +-
 ...ocessors.transformation.flink.field-mapper.html |   4 +-
 ...cessors.transformation.flink.field-renamer.html |   4 +-
 ...rocessors.transformation.flink.fieldhasher.html |   4 +-
 ...formation.flink.measurement-unit-converter.html |   4 +-
 ...transformation.flink.processor.boilerplate.html |   4 +-
 ...rs.transformation.jvm.booloperator.counter.html |   4 +-
 ...s.transformation.jvm.booloperator.inverter.html |   4 +-
 ...ransformation.jvm.booloperator.timekeeping.html |   4 +-
 ...sors.transformation.jvm.booloperator.timer.html |   4 +-
 ...rocessors.transformation.jvm.changed-value.html |   4 +-
 ....processors.transformation.jvm.count-array.html |   4 +-
 ....processors.transformation.jvm.csvmetadata.html |   4 +-
 ...ocessors.transformation.jvm.duration-value.html |   4 +-
 ...sformation.jvm.processor.booloperator.edge.html |   4 +-
 ...formation.jvm.processor.booloperator.state.html |   4 +-
 ....transformation.jvm.processor.state.buffer.html |   4 +-
 ...rmation.jvm.processor.state.labeler.buffer.html |   4 +-
 ...rmation.jvm.processor.state.labeler.number.html |   4 +-
 ...rmation.jvm.processor.stringoperator.state.html |   4 +-
 ...formation.jvm.processor.timestampextractor.html |   4 +-
 ....processors.transformation.jvm.split-array.html |   4 +-
 ....transformation.jvm.stringoperator.counter.html |   4 +-
 ...rs.transformation.jvm.stringoperator.timer.html |   4 +-
 ...processors.transformation.jvm.taskduration.html |   4 +-
 ...rs.transformation.jvm.transform-to-boolean.html |   4 +-
 .../org.apache.streampipes.protocol.set.file.html  |   4 +-
 .../org.apache.streampipes.protocol.set.http.html  |   4 +-
 ...e.streampipes.sinks.brokers.jvm.bufferrest.html |   4 +-
 ...g.apache.streampipes.sinks.brokers.jvm.jms.html |   4 +-
 ...apache.streampipes.sinks.brokers.jvm.kafka.html |   4 +-
 ....apache.streampipes.sinks.brokers.jvm.mqtt.html |   4 +-
 ....apache.streampipes.sinks.brokers.jvm.nats.html |   4 +-
 ...pache.streampipes.sinks.brokers.jvm.pulsar.html |   4 +-
 ...che.streampipes.sinks.brokers.jvm.rabbitmq.html |   4 +-
 ....apache.streampipes.sinks.brokers.jvm.rest.html |   4 +-
 ...g.apache.streampipes.sinks.databases.ditto.html |   4 +-
 ...mpipes.sinks.databases.flink.elasticsearch.html |   4 +-
 ...he.streampipes.sinks.databases.jvm.couchdb.html |   4 +-
 ...e.streampipes.sinks.databases.jvm.influxdb.html |   4 +-
 ...ache.streampipes.sinks.databases.jvm.iotdb.html |   4 +-
 ...ache.streampipes.sinks.databases.jvm.mysql.html |   4 +-
 ...ache.streampipes.sinks.databases.jvm.opcua.html |   4 +-
 ...streampipes.sinks.databases.jvm.postgresql.html |   4 +-
 ...e.streampipes.sinks.internal.jvm.dashboard.html |   4 +-
 ...he.streampipes.sinks.internal.jvm.datalake.html |   4 +-
 ...treampipes.sinks.internal.jvm.notification.html |   4 +-
 ....streampipes.sinks.notifications.jvm.email.html |   4 +-
 ...eampipes.sinks.notifications.jvm.onesignal.html |   4 +-
 ....streampipes.sinks.notifications.jvm.slack.html |   4 +-
 ...reampipes.sinks.notifications.jvm.telegram.html |   4 +-
 docs/docs/pipeline-elements.html                   |   4 +-
 docs/docs/privacy.html                             |   4 +-
 docs/docs/technicals-architecture.html             |   4 +-
 docs/docs/technicals-configuration.html            |   4 +-
 docs/docs/technicals-messaging.html                |   4 +-
 docs/docs/technicals-runtime-wrappers.html         |   4 +-
 docs/docs/technicals-user-guidance.html            |   4 +-
 docs/docs/try-installation.html                    |   4 +-
 docs/docs/try-tutorial.html                        |   4 +-
 docs/docs/use-configurations.html                  |   4 +-
 docs/docs/use-connect.html                         |   4 +-
 docs/docs/use-dashboard.html                       |   4 +-
 docs/docs/use-data-explorer.html                   |   4 +-
 docs/docs/use-install-pipeline-elements.html       |   4 +-
 docs/docs/use-managing-pipelines.html              |   4 +-
 docs/docs/use-notifications.html                   |   4 +-
 docs/docs/use-pipeline-editor.html                 |   4 +-
 docs/docs/user-guide-first-steps.html              |   4 +-
 docs/docs/user-guide-getting-started.html          |   4 +-
 docs/docs/user-guide-installation.html             |   4 +-
 docs/docs/user-guide-introduction-old.html         |   4 +-
 docs/docs/user-guide-introduction.html             |   4 +-
 docs/docs/user-guide-processing-elements.html      |   4 +-
 docs/docs/user-guide-software-components.html      |   4 +-
 docs/docs/user-guide-tour.html                     |   4 +-
 docs/en/versions.html                              |   2 +-
 docs/sitemap.xml                                   |   2 +-
 docs/versions.html                                 |   2 +-
 download.html                                      |  12 +-
 feature-overview.html                              |   2 +-
 getinvolved.html                                   |   2 +-
 index.html                                         |   2 +-
 mailinglists.html                                  |   2 +-
 media.html                                         |   2 +-
 meetus.html                                        |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 .../documentation.html                             |   2 +-
 pipeline-elements.html                             |   2 +-
 team.html                                          |   2 +-
 technology.html                                    |   2 +-
 usecases.html                                      |   2 +-
 685 files changed, 21359 insertions(+), 827 deletions(-)

diff --git a/docs/blog/2018/06/14/welcome.html b/docs/blog/2018/06/14/welcome.html
index 7fb055e1..63f6564e 100644
--- a/docs/blog/2018/06/14/welcome.html
+++ b/docs/blog/2018/06/14/welcome.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.91.0</h3></a>< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/docs/blog/2018/06/18/how-to-understand-your-machine-data.html b/docs/blog/2018/06/18/how-to-understand-your-machine-data.html
index 5ef52bac..a0860b18 100644
--- a/docs/blog/2018/06/18/how-to-understand-your-machine-data.html
+++ b/docs/blog/2018/06/18/how-to-understand-your-machine-data.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.91.0</h3></a>< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/docs/blog/2018/09/17/preview-060.html b/docs/blog/2018/09/17/preview-060.html
index 43b3f16b..4e13c854 100644
--- a/docs/blog/2018/09/17/preview-060.html
+++ b/docs/blog/2018/09/17/preview-060.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.91.0</h3></a>< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/docs/blog/2018/11/24/container-cli.html b/docs/blog/2018/11/24/container-cli.html
index 8fc9568a..bc373bca 100644
--- a/docs/blog/2018/11/24/container-cli.html
+++ b/docs/blog/2018/11/24/container-cli.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.91.0</h3></a>< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/docs/blog/2019/04/04/release-0610.html b/docs/blog/2019/04/04/release-0610.html
index 6f894905..079f83bf 100644
--- a/docs/blog/2019/04/04/release-0610.html
+++ b/docs/blog/2019/04/04/release-0610.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.91.0</h3></a>< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/docs/blog/2019/05/23/release-0620.html b/docs/blog/2019/05/23/release-0620.html
index 095abf23..2e8d3f4b 100644
--- a/docs/blog/2019/05/23/release-0620.html
+++ b/docs/blog/2019/05/23/release-0620.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.91.0</h3></a>< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/docs/blog/2019/09/05/release-0630.html b/docs/blog/2019/09/05/release-0630.html
index 83b5be78..62f1f40b 100644
--- a/docs/blog/2019/09/05/release-0630.html
+++ b/docs/blog/2019/09/05/release-0630.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.91.0</h3></a>< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/docs/blog/2019/09/19/release-0640.html b/docs/blog/2019/09/19/release-0640.html
index 2334c32f..9ba0f859 100644
--- a/docs/blog/2019/09/19/release-0640.html
+++ b/docs/blog/2019/09/19/release-0640.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.91.0</h3></a>< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/docs/blog/2019/11/23/release-0650.html b/docs/blog/2019/11/23/release-0650.html
index 1b09def4..13d0213f 100644
--- a/docs/blog/2019/11/23/release-0650.html
+++ b/docs/blog/2019/11/23/release-0650.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.91.0</h3></a>< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/docs/blog/2019/11/25/moving-to-the-apache-incubator.html b/docs/blog/2019/11/25/moving-to-the-apache-incubator.html
index 130c3018..f3b0ce34 100644
--- a/docs/blog/2019/11/25/moving-to-the-apache-incubator.html
+++ b/docs/blog/2019/11/25/moving-to-the-apache-incubator.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.91.0</h3></a>< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/docs/blog/2020/01/23/streampipes_on_rpi.html b/docs/blog/2020/01/23/streampipes_on_rpi.html
index a83ae9b4..75f3ddd4 100644
--- a/docs/blog/2020/01/23/streampipes_on_rpi.html
+++ b/docs/blog/2020/01/23/streampipes_on_rpi.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.91.0</h3></a>< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/docs/blog/2020/05/19/release-0660.html b/docs/blog/2020/05/19/release-0660.html
index e8312471..1f9bd0d8 100644
--- a/docs/blog/2020/05/19/release-0660.html
+++ b/docs/blog/2020/05/19/release-0660.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.91.0</h3></a>< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/docs/blog/2020/05/27/streampipes_on_k3s.html b/docs/blog/2020/05/27/streampipes_on_k3s.html
index 50fd404a..99fde824 100644
--- a/docs/blog/2020/05/27/streampipes_on_k3s.html
+++ b/docs/blog/2020/05/27/streampipes_on_k3s.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.91.0</h3></a>< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/docs/blog/2021/07/22_release/0680.html b/docs/blog/2021/07/22_release/0680.html
index 780d0345..d4c4e31c 100644
--- a/docs/blog/2021/07/22_release/0680.html
+++ b/docs/blog/2021/07/22_release/0680.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.91.0</h3></a>< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/docs/blog/2022/03/21_release/0690.html b/docs/blog/2022/03/21_release/0690.html
index 73a126ec..4545d5bc 100644
--- a/docs/blog/2022/03/21_release/0690.html
+++ b/docs/blog/2022/03/21_release/0690.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.91.0</h3></a>< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/docs/blog/2022/09/05/using-factory.io-with-streampipes.html b/docs/blog/2022/09/05/using-factory.io-with-streampipes.html
index 26131a87..506847fa 100644
--- a/docs/blog/2022/09/05/using-factory.io-with-streampipes.html
+++ b/docs/blog/2022/09/05/using-factory.io-with-streampipes.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.91.0</h3></a>< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/docs/blog/2022/10/13/release-070.html b/docs/blog/2022/10/13/release-070.html
index 732172ad..7d7de390 100644
--- a/docs/blog/2022/10/13/release-070.html
+++ b/docs/blog/2022/10/13/release-070.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.91.0</h3></a>< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/docs/blog/2023/01/17/release-090.html b/docs/blog/2023/01/17/release-090.html
index 88893151..5d467db2 100644
--- a/docs/blog/2023/01/17/release-090.html
+++ b/docs/blog/2023/01/17/release-090.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.91.0</h3></a>< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/docs/blog/index.html b/docs/blog/index.html
index df8efb3d..13b566d2 100644
--- a/docs/blog/index.html
+++ b/docs/blog/index.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="blog"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a><div class="navigationWrapper [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="blog"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.91.0</h3></a><div class="navigationWrapper [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/docs/blog/page2/index.html b/docs/blog/page2/index.html
index ba8b2d80..94d63648 100644
--- a/docs/blog/page2/index.html
+++ b/docs/blog/page2/index.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="blog"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a><div class="navigationWrapper [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="blog"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.91.0</h3></a><div class="navigationWrapper [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/docs/docs/0.90.0/community-contribute.html b/docs/docs/0.90.0/community-contribute.html
new file mode 100644
index 00000000..09adb552
--- /dev/null
+++ b/docs/docs/0.90.0/community-contribute.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Contribute · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="## Contribute"/><meta name="docsearch:version" content="0.90.0"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Contribute · Apache StreamPipes"/><m [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">Contribute</h1></header><article><div><span><h2><a class="anchor" aria-hidden="true" id="contribute"></a><a href="#contribute" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4  [...]
+<p>We welcome contributions to StreamPipes. If you are interested in contributing to StreamPipes, let us know! You'll
+get to know an open-minded and motivated team working together to build the next IIoT analytics toolbox.</p>
+<p>Here are some first steps in case you want to contribute:</p>
+<ul>
+<li>Subscribe to our dev mailing list <a href="dev-subscribe@streampipes.apache.org">dev-subscribe@streampipes.apache.org</a></li>
+<li>Send an email, tell us about your interests and which parts of Streampipes you'd like to contribute (e.g., core or UI)!</li>
+<li>Ask for a mentor who helps you to understand the code base and guides you through the first setup steps</li>
+<li>Find an issue on <a href="https://github.com/apache/streampipes/issues">GitHub</a> which is tagged with a <em>good first issue</em> tag</li>
+<li>Have a look at our <strong>developer wiki</strong> at <a href="https://cwiki.apache.org/confluence/display/STREAMPIPES">https://cwiki.apache.org/confluence/display/STREAMPIPES</a> to learn more about StreamPipes development.</li>
+</ul>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.90.0/community-get-help.html"><span class="arrow-prev">← </span><span>Get Help</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#contribute">Contribute</a></li></ul></nav></div><div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/docs/" class="nav-home"><img src="/docs/img/sp-logo-color.png" alt="Apache StreamPipes" width [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '0fedc89dddf2810657708b178e56ef02',
+                indexName: 'streampipes',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.90.0/community-get-help.html b/docs/docs/0.90.0/community-get-help.html
new file mode 100644
index 00000000..fa871856
--- /dev/null
+++ b/docs/docs/0.90.0/community-get-help.html
@@ -0,0 +1,92 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Get Help · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="The Apache StreamPipes community is happy to help with any questions or problems you might have."/><meta name="docsearch:version" content="0.90.0"/><meta name="docsearch:language" cont [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">Get Help</h1></header><article><div><span><p>The Apache StreamPipes community is happy to help with any questions or problems you might have.</p>
+<h2><a class="anchor" aria-hidden="true" id="questions"></a><a href="#questions" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
+<p>Subscribe to our user mailing list to ask a question.</p>
+<p><a href="https://streampipes.apache.org/mailinglists.html">Mailing Lists</a></p>
+<p>To subscribe to the user list, send an email to <a href="users-subscribe@streampipes.apache.org">users-subscribe@streampipes.apache.org</a></p>
+<p>You can also ask questions on our Github discussions page:
+<a href="https://github.com/apache/streampipes/discussions">Github Discussions</a></p>
+<h2><a class="anchor" aria-hidden="true" id="bugs-and-feature-requests"></a><a href="#bugs-and-feature-requests" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c [...]
+<p>If you've found a bug or have a feature that you'd love to see in StreamPipes, feel free to create an issue on <a href="https://github.com/apache/streampipes/issues">GitHub</a>
+or <a href="https://github.com/apache/streampipes/discussions/categories/ideas">discuss your ideas</a>.</p>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.90.0/technicals-configuration.html"><span class="arrow-prev">← </span><span>Configuration</span></a><a class="docs-next button" href="/docs/docs/0.90.0/community-contribute.html"><span>Contribute</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#questions">Questions</a></li><li><a href="#bugs-and-feature-requests" [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '0fedc89dddf2810657708b178e56ef02',
+                indexName: 'streampipes',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/concepts-adapter.html b/docs/docs/0.90.0/concepts-adapter.html
similarity index 87%
copy from docs/docs/concepts-adapter.html
copy to docs/docs/0.90.0/concepts-adapter.html
index 754b9004..7d6a9c7b 100644
--- a/docs/docs/concepts-adapter.html
+++ b/docs/docs/0.90.0/concepts-adapter.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
 </span></div></article></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/docs/" class="nav-home"><img src="/docs/img/sp-logo-color.png" alt="Apache StreamPipes" width="66"/></a><div><h5>Docs</h5><a href="/docs/docs/user-guide-introduction">User Guide</a><a href="/docs/docs/dev-guide-introduction">Developer Guide</a><a href="/docs/docs/faq-common-problems">Frequently Asked Qu [...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
diff --git a/docs/docs/concepts-data-streams.html b/docs/docs/0.90.0/concepts-data-streams.html
similarity index 87%
copy from docs/docs/concepts-data-streams.html
copy to docs/docs/0.90.0/concepts-data-streams.html
index 7bb83d34..936ba801 100644
--- a/docs/docs/concepts-data-streams.html
+++ b/docs/docs/0.90.0/concepts-data-streams.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
 </span></div></article></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/docs/" class="nav-home"><img src="/docs/img/sp-logo-color.png" alt="Apache StreamPipes" width="66"/></a><div><h5>Docs</h5><a href="/docs/docs/user-guide-introduction">User Guide</a><a href="/docs/docs/dev-guide-introduction">Developer Guide</a><a href="/docs/docs/faq-common-problems">Frequently Asked Qu [...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
diff --git a/docs/docs/concepts-glossary.html b/docs/docs/0.90.0/concepts-glossary.html
similarity index 88%
copy from docs/docs/concepts-glossary.html
copy to docs/docs/0.90.0/concepts-glossary.html
index dfe9cc06..5290636b 100644
--- a/docs/docs/concepts-glossary.html
+++ b/docs/docs/0.90.0/concepts-glossary.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
 </span></div></article></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/docs/" class="nav-home"><img src="/docs/img/sp-logo-color.png" alt="Apache StreamPipes" width="66"/></a><div><h5>Docs</h5><a href="/docs/docs/user-guide-introduction">User Guide</a><a href="/docs/docs/dev-guide-introduction">Developer Guide</a><a href="/docs/docs/faq-common-problems">Frequently Asked Qu [...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
diff --git a/docs/docs/0.90.0/concepts-overview.html b/docs/docs/0.90.0/concepts-overview.html
new file mode 100644
index 00000000..4aabf002
--- /dev/null
+++ b/docs/docs/0.90.0/concepts-overview.html
@@ -0,0 +1,105 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>StreamPipes Concepts · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="To understand how StreamPipes works, the knowledge of a few core concepts, illustrated below, will be helpful."/><meta name="docsearch:version" content="0.90.0"/><meta name [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">StreamPipes Concepts</h1></header><article><div><span><p>To understand how StreamPipes works, the knowledge of a few core concepts, illustrated below, will be helpful.</p>
+<p><img class="docs-image" src="/docs/img/02_concepts-overview/01_overview.png" alt="Overview of concepts"></p>
+<h2><a class="anchor" aria-hidden="true" id="adapter"></a><a href="#adapter" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
+<p>An adapter connects to any external data source and forwards received events to the internal StreamPipes system. Within StreamPipes, the output of adapters are available in form of the two primary building blocks <strong>Data Set</strong> and <strong>Data Stream</strong>.
+Adapters can be either created by using StreamPipes Connect, a module to easily connect to new data sources directly from the user interface, or by defining an adapter using the provided Software Development Kit (SDK).</p>
+<h2><a class="anchor" aria-hidden="true" id="data-set--data-stream"></a><a href="#data-set--data-stream" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2 [...]
+<p><strong>Data Streams</strong> and <strong>Data Sets</strong> represent the primary source for working with events in StreamPipes.
+A stream is an ordered sequence of events, where an event typically consists of one or more observation values and additional metadata. The &quot;structure&quot; (or schema) of an event provided by a data stream or set is stored in the internal semantic schema registry of StreamPipes.
+While data streams are typically unbounded, data sets have a fixed end and are internally &quot;replayed&quot; by the system from beginning to end once they are used as part of a pipeline.
+As follows, although when referring to data streams, most concepts also apply for data sets.</p>
+<h2><a class="anchor" aria-hidden="true" id="data-processor"></a><a href="#data-processor" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
+<p><strong>Data Processors</strong> in StreamPipes transform one or more input data streams into an output data stream.
+Such transformations can be rather simple, e.g. filtering based on a predefined rule or more complex, e.g. applying rule-based or learning-based algorithms on the data.<br>
+Data Processors can be applied on any data stream that matches the input requirements of a processor. In addition, most processors can be configured by providing user-defined parameters directly in the user interface.
+Processing elements define stream requirements that are a set of minimum properties an incoming event stream must provide. Data processors can keep state or perform stateless operations.
+At runtime, data streams are processed by using one of the underlying runtime wrappers (see the developer guide for more details).</p>
+<h2><a class="anchor" aria-hidden="true" id="data-sink"></a><a href="#data-sink" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
+<p><strong>Data Sinks</strong> consume event streams similar to Data Processors, but do not provide an output data stream. As such, data sinks typically perform some action or trigger a visualization as a result of a stream transformation.
+Similar to data processors, sinks also require for the presence of specific input requirements of any bound data stream and can be customized.
+StreamPipes provides several internal data sinks, e.g., to create notifications, visualize live data or persist historical data of incoming streams. In addition, various data sinks are provided to forward data streams to external systems such as databases.</p>
+<h2><a class="anchor" aria-hidden="true" id="pipeline"></a><a href="#pipeline" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
+<p>A pipeline in Apache StreamPipes describes the transformation process from a data stream to a data sink. Typically, a pipeline consists of at least one data stream (or data set), zero or more data processors and at least one data sink.
+Pipelines are built by users in a graphical way using the <strong>Pipeline Editor</strong> and can be started and stopped at any time.</p>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.90.0/try-installation.html"><span class="arrow-prev">← </span><span>Installation</span></a><a class="docs-next button" href="/docs/docs/0.90.0/use-connect.html"><span class="function-name-prevnext">StreamPipes Connect</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#adapter">Adapter</a></li><li><a href="#data-set [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '0fedc89dddf2810657708b178e56ef02',
+                indexName: 'streampipes',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/concepts-pipelines.html b/docs/docs/0.90.0/concepts-pipelines.html
similarity index 88%
copy from docs/docs/concepts-pipelines.html
copy to docs/docs/0.90.0/concepts-pipelines.html
index b1f005cc..1ca92101 100644
--- a/docs/docs/concepts-pipelines.html
+++ b/docs/docs/0.90.0/concepts-pipelines.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
 </span></div></article></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/docs/" class="nav-home"><img src="/docs/img/sp-logo-color.png" alt="Apache StreamPipes" width="66"/></a><div><h5>Docs</h5><a href="/docs/docs/user-guide-introduction">User Guide</a><a href="/docs/docs/dev-guide-introduction">Developer Guide</a><a href="/docs/docs/faq-common-problems">Frequently Asked Qu [...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
diff --git a/docs/docs/debugging-debugging.html b/docs/docs/0.90.0/debugging-debugging.html
similarity index 88%
copy from docs/docs/debugging-debugging.html
copy to docs/docs/0.90.0/debugging-debugging.html
index f74e8562..eb33fe0e 100644
--- a/docs/docs/debugging-debugging.html
+++ b/docs/docs/0.90.0/debugging-debugging.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
 </span></div></article></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/docs/" class="nav-home"><img src="/docs/img/sp-logo-color.png" alt="Apache StreamPipes" width="66"/></a><div><h5>Docs</h5><a href="/docs/docs/user-guide-introduction">User Guide</a><a href="/docs/docs/dev-guide-introduction">Developer Guide</a><a href="/docs/docs/faq-common-problems">Frequently Asked Qu [...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
diff --git a/docs/docs/debugging-monitoring.html b/docs/docs/0.90.0/debugging-monitoring.html
similarity index 87%
copy from docs/docs/debugging-monitoring.html
copy to docs/docs/0.90.0/debugging-monitoring.html
index a681b06a..b25b2171 100644
--- a/docs/docs/debugging-monitoring.html
+++ b/docs/docs/0.90.0/debugging-monitoring.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
 </span></div></article></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/docs/" class="nav-home"><img src="/docs/img/sp-logo-color.png" alt="Apache StreamPipes" width="66"/></a><div><h5>Docs</h5><a href="/docs/docs/user-guide-introduction">User Guide</a><a href="/docs/docs/dev-guide-introduction">Developer Guide</a><a href="/docs/docs/faq-common-problems">Frequently Asked Qu [...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
diff --git a/docs/docs/0.90.0/deploy-docker.html b/docs/docs/0.90.0/deploy-docker.html
new file mode 100644
index 00000000..b9ad4b93
--- /dev/null
+++ b/docs/docs/0.90.0/deploy-docker.html
@@ -0,0 +1,138 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Docker Deployment · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="StreamPipes Compose is a simple collection of user-friendly `docker-compose` files that easily lets gain first-hand experience with Apache StreamPipes."/><meta name="docsearch [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">Docker Deployment</h1></header><article><div><span><p>StreamPipes Compose is a simple collection of user-friendly <code>docker-compose</code> files that easily lets gain first-hand experience with Apache StreamPipes.</p>
+<blockquote>
+<p><strong>NOTE</strong>: We recommend StreamPipes Compose to only use for initial try-out and testing. If you are a developer and
+want to develop new pipeline elements or core feature, use the <a href="/docs/docs/0.90.0/extend-cli.html">StreamPipes CLI</a>.</p>
+</blockquote>
+<h4><a class="anchor" aria-hidden="true" id="tldr-a-one-liner-to-rule-them-all--"></a><a href="#tldr-a-one-liner-to-rule-them-all--" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2 [...]
+<pre><code class="hljs css language-bash">docker-compose up -d
+</code></pre>
+<p>Go to <a href="http://localhost">http://localhost</a> to finish the installation in the browser. Once finished, switch to the pipeline editor and start the interactive tour or check the <a href="https://streampipes.apache.org/docs/docs/user-guide-tour/">online tour</a> to learn how to create your first pipeline!</p>
+<h2><a class="anchor" aria-hidden="true" id="prerequisites"></a><a href="#prerequisites" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
+<ul>
+<li>Docker &gt;= 17.06.0</li>
+<li>Docker-Compose &gt;= 1.17.0 (Compose file format: 3.4)</li>
+<li>Google Chrome (recommended), Mozilla Firefox, Microsoft Edge</li>
+</ul>
+<p>Tested on: <strong>macOS, Linux, Windows 10</strong> (CMD, PowerShell, GitBash)</p>
+<p><strong>macOS</strong> and <strong>Windows 10</strong> (Pro, Enterprise, Education) users can easily get Docker and Docker-Compose on their systems by installing <strong>Docker for Mac/Windows</strong> (recommended).</p>
+<blockquote>
+<p><strong>NOTE</strong>: On purpose, we disabled all port mappings except of http port <strong>80</strong> to access the StreamPipes UI to provide minimal surface for conflicting ports.</p>
+</blockquote>
+<h2><a class="anchor" aria-hidden="true" id="usage"></a><a href="#usage" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09 [...]
+<p>We provide two options to get you going:</p>
+<ul>
+<li><strong>default</strong>: a light-weight option with few pipeline elements, needs less memory</li>
+<li><strong>full</strong>:  contains more pipeline elements, requires <strong>&gt;16 GB RAM</strong> (recommended)</li>
+</ul>
+<p><strong>Starting</strong> the <strong>default</strong> option is as easy as simply running:</p>
+<blockquote>
+<p><strong>NOTE</strong>: Starting might take a while since <code>docker-compose up</code> also initially pulls all Docker images from Dockerhub.</p>
+</blockquote>
+<pre><code class="hljs css language-bash">docker-compose up -d
+<span class="hljs-comment"># go to after all services are started http://localhost</span>
+</code></pre>
+<p>After all containers are successfully started just got to your browser and visit <a href="http://localhost">http://localhost</a> to finish the installation. Once finished, switch to the pipeline editor and start the interactive tour or check the <a href="https://streampipes.apache.org/docs/docs/user-guide-tour/">online tour</a> to learn how to create your first pipeline!</p>
+<p><strong>Stopping</strong> the <strong>default</strong> option is similarly easy:</p>
+<pre><code class="hljs css language-bash">docker-compose down
+<span class="hljs-comment"># if you want to remove mapped data volumes, run:</span>
+<span class="hljs-comment"># docker-compose down -v</span>
+</code></pre>
+<p>Starting the <strong>full</strong> option is almost the same, just specify the <code>docker-compose.full.yml</code> file:</p>
+<pre><code class="hljs css language-bash">docker-compose -f docker-compose.full.yml up -d
+<span class="hljs-comment"># go to after all services are started http://localhost</span>
+</code></pre>
+<p>Stopping the <strong>full</strong> option:</p>
+<pre><code class="hljs css language-bash">docker-compose -f docker-compose.full.yml down
+<span class="hljs-comment">#docker-compose -f docker-compose.full.yml down -v</span>
+</code></pre>
+<h2><a class="anchor" aria-hidden="true" id="update-services"></a><a href="#update-services" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5  [...]
+<p>To actively pull the latest available Docker images use:</p>
+<pre><code class="hljs css language-bash">docker-compose pull
+<span class="hljs-comment"># docker-compose -f docker-compose.full.yml pull</span>
+</code></pre>
+<h2><a class="anchor" aria-hidden="true" id="upgrade"></a><a href="#upgrade" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
+<p>To upgrade to another StreamPipes version, simply edit the <code>SP_VERSION</code> in the <code>.env</code> file.</p>
+<pre><code class="hljs"><span class="hljs-attr">SP_VERSION</span>=&lt;VERSION&gt;
+</code></pre>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.sinks.notifications.jvm.telegram.html"><span class="arrow-prev">← </span><span>Telegram Publisher</span></a><a class="docs-next button" href="/docs/docs/0.90.0/deploy-kubernetes.html"><span>Kubernetes Deployment</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#prerequisites">Prerequ [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '0fedc89dddf2810657708b178e56ef02',
+                indexName: 'streampipes',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.90.0/deploy-kubernetes.html b/docs/docs/0.90.0/deploy-kubernetes.html
new file mode 100644
index 00000000..5266caf3
--- /dev/null
+++ b/docs/docs/0.90.0/deploy-kubernetes.html
@@ -0,0 +1,130 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Kubernetes Deployment · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="## Prerequisites"/><meta name="docsearch:version" content="0.90.0"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Kubernetes Deployment  [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">Kubernetes Deployment</h1></header><article><div><span><h2><a class="anchor" aria-hidden="true" id="prerequisites"></a><a href="#prerequisites" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule [...]
+<p>Requires Helm (<a href="https://helm.sh/">https://helm.sh/</a>) and an active connection to a kubernetes cluster with a running tiller server.</p>
+<p>Tested with:</p>
+<ul>
+<li>K3s v1.18.8+k3s1 (6b595318) with K8s v1.18.8</li>
+<li>Helm v3.1.2</li>
+</ul>
+<h2><a class="anchor" aria-hidden="true" id="usage"></a><a href="#usage" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09 [...]
+<p>We provide two helm chart options to get you going:</p>
+<ul>
+<li><strong>default</strong>: a light-weight option with few pipeline elements, needs less memory</li>
+<li><strong>full</strong>:  contains more pipeline elements, requires <strong>&gt;16 GB RAM</strong> (recommended)</li>
+</ul>
+<p><strong>Starting</strong> the <strong>default</strong> helm chart option is as easy as simply running the following command from the root of this folder:</p>
+<blockquote>
+<p><strong>NOTE</strong>: Starting might take a while since we also initially pull all Docker images from Dockerhub.</p>
+</blockquote>
+<pre><code class="hljs css language-bash">helm install streampipes ./
+</code></pre>
+<p>After a while, all containers should successfully started, indicated by the <code>Running</code> status.</p>
+<pre><code class="hljs css language-bash">kubectl get pods
+NAME                                           READY   STATUS    RESTARTS   AGE
+activemq-66d58f47cf-2r2nb                      1/1     Running   0          3m27s
+backend-76ddc486c8-nswpc                       1/1     Running   0          3m27s
+connect-master-7b477f9b79-8dfvr                1/1     Running   0          3m26s
+connect-worker-78d89c989c-9v8zs                1/1     Running   0          3m27s
+consul-55965f966b-gwb7l                        1/1     Running   0          3m27s
+couchdb-77db98cf7b-xnnvb                       1/1     Running   0          3m27s
+influxdb-b95b6479-r8wh8                        1/1     Running   0          3m27s
+kafka-657b5fb77-dp2d6                          1/1     Running   0          3m27s
+pipeline-elements-all-jvm-79c445dbd9-m8xcs     1/1     Running   0          3m27s
+sources-watertank-simulator-6c6b8844f6-6b4d7   1/1     Running   0          3m27s
+ui-b94bd9766-rm6zb                             2/2     Running   0          3m27s
+zookeeper-5d9947686f-6nzgs                     1/1     Running   0          3m26s
+</code></pre>
+<p>After all containers are successfully started just got to your browser and visit any of the k8s cluster nodes on
+<code>http://&lt;NODE_IP&gt;</code> to finish the installation.</p>
+<blockquote>
+<p><strong>NOTE</strong>: If you're running Docker for Mac or Docker for Windows with a local k8s cluster, the above step to use your host IP might not work. Luckily, you can port-forward a service port to your localhost using the following command to be able to access the UI either via <code>http://localhost</code> or <code>http://&lt;HOST_IP&gt;</code> (you require sudo to run this command in order to bind to a privileged port).</p>
+</blockquote>
+<pre><code class="hljs css language-bash">kubectl port-forward svc/ui --address=0.0.0.0 80:80
+</code></pre>
+<p>Starting the <strong>full</strong> helm chart option is almost the same:</p>
+<pre><code class="hljs css language-bash">helm install streampipes ./ --<span class="hljs-built_in">set</span> deployment=full
+</code></pre>
+<p><strong>Deleting</strong> the current helm chart deployment:</p>
+<pre><code class="hljs css language-bash">helm del streampipes
+</code></pre>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.90.0/deploy-docker.html"><span class="arrow-prev">← </span><span>Docker Deployment</span></a><a class="docs-next button" href="/docs/docs/0.90.0/deploy-use-ssl.html"><span>Use SSL</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#prerequisites">Prerequisites</a></li><li><a href="#usage">Usage</a></li></ul></nav></ [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '0fedc89dddf2810657708b178e56ef02',
+                indexName: 'streampipes',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.90.0/deploy-security.html b/docs/docs/0.90.0/deploy-security.html
new file mode 100644
index 00000000..cd535cd7
--- /dev/null
+++ b/docs/docs/0.90.0/deploy-security.html
@@ -0,0 +1,130 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Security · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="## Overriding default settings"/><meta name="docsearch:version" content="0.90.0"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Security · Apache Str [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">Security</h1></header><article><div><span><h2><a class="anchor" aria-hidden="true" id="overriding-default-settings"></a><a href="#overriding-default-settings" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"> [...]
+<p>At installation time, StreamPipes checks for available environment variables relevant for the securing the system. If they are not set, it will use the default values.</p>
+<p>The following variables are checked by the core at installation time:</p>
+<ul>
+<li>SP_INITIAL_ADMIN_EMAIL The email address of the initial administrator.</li>
+<li>SP_INITIAL_ADMIN_PASSWORD The password of the initial administrator.</li>
+<li>SP_INITIAL_CLIENT_USER The initial client user, used by the extensions modules to make authenticated API requests to the core.</li>
+<li>SP_INITIAL_CLIENT_SECRET The default password of the initial client user.</li>
+<li>SP_SETUP_INSTALL_PIPELINE_ELEMENTS Indicates whether pipeline elements should be installed.</li>
+<li>SP_ENCRYPTION_PASSCODE The encryption passcode, used for securely storing secrets (e.g., database connection strings).</li>
+<li>SP_JWT_SECRET The JWT secret, used for signing JWT tokens.</li>
+</ul>
+<p>In addition, all extensions services that perform requests to the core will need to have the following environment variables set:</p>
+<ul>
+<li>SP_CLIENT_USER The client user, used by the extensions modules to make authenticated API requests to the core.</li>
+<li>SP_CLIENT_SECRET The password of the client user.</li>
+</ul>
+<p>Note that there are default values for all environment variables that are set at installation time - make sure to change these settings when moving to production!</p>
+<h2><a class="anchor" aria-hidden="true" id="configuration"></a><a href="#configuration" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
+<p>Most security-related settings can be set in the configuration section of StreamPipes. The <em>General</em> section allows to set self-service registration and password recovery (both are disabled by default and require a valid email configuration).
+In the <em>Security</em> section, users, service accounts, roles and groups can be configured.</p>
+<h2><a class="anchor" aria-hidden="true" id="user-types"></a><a href="#user-types" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
+<p>StreamPipes distinguishes between User Accounts (real users that interact with StreamPipes over the UI or an API) and Service Accounts (user-independent accounts which solely use StreamPipes over the API).</p>
+<p>User accounts are typically used by extensions service that require API access to the core (e.g., to get a list of running pipelines).</p>
+<h2><a class="anchor" aria-hidden="true" id="permissions"></a><a href="#permissions" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
+<p>StreamPipes v0.69.0 comes with more advanced mechanisms to manage permissions.
+For each major resource (pipeline elements, pipelines, StreamPipes Connect adapters, dashboards, data explorer views), permissions can be assigned individually to users and groups.</p>
+<p>To ease permission handling, StreamPipes comes with a default number of roles with pre-assigned privileges:</p>
+<h3><a class="anchor" aria-hidden="true" id="roles"></a><a href="#roles" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09 [...]
+<ul>
+<li>Admin The administrator role has full access to all resources.</li>
+<li>Service Admin The service administrator role has full access to all resources, but has no access to the UI.</li>
+<li>Pipeline Admin has full control of pipelines (create, edit, delete, start, stop, pause, resume, etc.).</li>
+<li>Pipeline User has limited control of pipelines (read only).</li>
+<li>Dashboard Admin has full control of dashboards (create, edit, delete, etc.).</li>
+<li>Dashboard User has limited control of dashboards (read only).</li>
+<li>Data Explorer Admin has full control of data explorer views (create, edit, delete, etc.).</li>
+<li>Data Explorer User has limited control of data explorer views (read only).</li>
+<li>Connect Admin has full control of StreamPipes Connect adapters (create, edit, delete, etc.).</li>
+</ul>
+<h3><a class="anchor" aria-hidden="true" id="groups"></a><a href="#groups" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
+<p>Roles can be either assigned to specific users or groups. Any group can contain several members.
+The permissions of a user are the union of the permissions of all roles assigned to the user and the groups to which the user belongs.</p>
+<h3><a class="anchor" aria-hidden="true" id="changing-permissions"></a><a href="#changing-permissions" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1 [...]
+<p>Any resource has a resource owner, which is the authority that created the resource. Resources can be either public or private. Public resources are available to all users, while the user role determines what the user can do with the resource.
+E.g., a public pipeline created by a user of role ROLE_ADMIN can be edited by all users with role PIPELINE_ADMIN, while the same pipeline can be read by all users with role PIPELINE_USER.</p>
+<p>Permissions can only be changed by admin users currently.
+In the overview section of each resource (e.g., pipelines and dashboards), a permission dialog is available to users with role ROLE_ADMIN. The dialog allows to assign users and groups to the individual resource.</p>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.90.0/deploy-use-ssl.html"><span class="arrow-prev">← </span><span>Use SSL</span></a><a class="docs-next button" href="/docs/docs/0.90.0/extend-setup.html"><span>Development Setup</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#overriding-default-settings">Overriding default settings</a></li><li><a href="#configu [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '0fedc89dddf2810657708b178e56ef02',
+                indexName: 'streampipes',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.90.0/deploy-use-ssl.html b/docs/docs/0.90.0/deploy-use-ssl.html
new file mode 100644
index 00000000..084392a1
--- /dev/null
+++ b/docs/docs/0.90.0/deploy-use-ssl.html
@@ -0,0 +1,106 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Use SSL · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="This page explains how SSL Certificates can be used to provide transport layer security between your Browser and the Streampipes Backend."/><meta name="docsearch:version" content="0.90. [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">Use SSL</h1></header><article><div><span><p>This page explains how SSL Certificates can be used to provide transport layer security between your Browser and the Streampipes Backend.</p>
+<h2><a class="anchor" aria-hidden="true" id="prerequisites"></a><a href="#prerequisites" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
+<p>You need a valid Certificate consisting of a Private and a Public Key. Both Keys must be in PEM Format. Please note that your Private Key should never be shared, otherwise the communication can not be considered secure.</p>
+<h2><a class="anchor" aria-hidden="true" id="edit-docker-composeyml"></a><a href="#edit-docker-composeyml" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0 [...]
+<p>In order to use SSL you have to open port 443 on the nginx Service. Incoming insecure Traffic on Port 80 will be automatically rerouted to Port 443.</p>
+<p>The Environment-Variable NGINX_SSL must be set to &quot;true&quot;.</p>
+<p>Finally you have to inject the Certificates into the Docker-Container. In the example below, the Certificates are placed in the directory /etc/ssl/private/ on the host machine. Please change the path according to the place where the Certificates are located on your machine. The path after the colon should not be changed!</p>
+<pre><code class="hljs css language-yaml"><span class="hljs-string">[...]</span>
+  <span class="hljs-attr">nginx:</span>
+    <span class="hljs-attr">image:</span> <span class="hljs-string">apachestreampipes/ui</span>
+    <span class="hljs-attr">ports:</span>
+      <span class="hljs-bullet">-</span> <span class="hljs-string">"80:80"</span>
+      <span class="hljs-bullet">-</span> <span class="hljs-string">"443:443"</span>
+    <span class="hljs-attr">environment:</span>
+      <span class="hljs-bullet">-</span> <span class="hljs-string">NGINX_SSL=true</span>
+    <span class="hljs-attr">volumes:</span>
+      <span class="hljs-bullet">-</span> <span class="hljs-string">/etc/ssl/private/private.pem:/etc/nginx/ssl/ssl.pem</span>
+      <span class="hljs-bullet">-</span> <span class="hljs-string">/etc/ssl/private/public.pem:/etc/nginx/ssl/cert.pem</span>
+    <span class="hljs-attr">depends_on:</span>
+      <span class="hljs-bullet">-</span> <span class="hljs-string">backend</span>
+    <span class="hljs-attr">networks:</span>
+      <span class="hljs-attr">spnet:</span>
+<span class="hljs-string">[...]</span>
+</code></pre>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.90.0/deploy-kubernetes.html"><span class="arrow-prev">← </span><span>Kubernetes Deployment</span></a><a class="docs-next button" href="/docs/docs/0.90.0/deploy-security.html"><span>Security</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#prerequisites">Prerequisites</a></li><li><a href="#edit-docker-composeyml"> [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '0fedc89dddf2810657708b178e56ef02',
+                indexName: 'streampipes',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/dev-guide-archetype.html b/docs/docs/0.90.0/dev-guide-archetype.html
similarity index 60%
copy from docs/docs/dev-guide-archetype.html
copy to docs/docs/0.90.0/dev-guide-archetype.html
index 32406177..152eff99 100644
--- a/docs/docs/dev-guide-archetype.html
+++ b/docs/docs/0.90.0/dev-guide-archetype.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
                     return;
diff --git a/docs/docs/dev-guide-architecture.html b/docs/docs/0.90.0/dev-guide-architecture.html
similarity index 93%
copy from docs/docs/dev-guide-architecture.html
copy to docs/docs/0.90.0/dev-guide-architecture.html
index 38bd4487..19647854 100644
--- a/docs/docs/dev-guide-architecture.html
+++ b/docs/docs/0.90.0/dev-guide-architecture.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
 <p><img src="/docs/img/architecture/high-level-architecture.png" alt="High Level Architecture of StreamPipes"></p>
 <p>Users mainly interact (besides other UI components) with the <em>Pipeline Editor</em> to create stream processing pipelines based on data streams, data processors and data sinks.
 These reusable pipeline elements are provided by self-contained <em>pipeline element containers</em>, each of them having a semantic description that specifies their characteristics (e.g., input, output and required user input for data processors).
diff --git a/docs/docs/dev-guide-configuration.html b/docs/docs/0.90.0/dev-guide-configuration.html
similarity index 93%
copy from docs/docs/dev-guide-configuration.html
copy to docs/docs/0.90.0/dev-guide-configuration.html
index c598ca45..d6420440 100644
--- a/docs/docs/dev-guide-configuration.html
+++ b/docs/docs/0.90.0/dev-guide-configuration.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
 StreamPipes allows the individual services (pipeline element containers and third-party services) to store configuration parameters in a distributed key-value store.
 This has the advantage that individual services do not need to store any configurations on the local file system, enabling us to run containers anywhere.
 As a key-value store we use <a href="https://www.consul.io/">Consul</a>, which is an essential service for all our services.</p>
diff --git a/docs/docs/dev-guide-development-environment.html b/docs/docs/0.90.0/dev-guide-development-environment.html
similarity index 95%
copy from docs/docs/dev-guide-development-environment.html
copy to docs/docs/0.90.0/dev-guide-development-environment.html
index f3ec2520..3c41e79b 100644
--- a/docs/docs/dev-guide-development-environment.html
+++ b/docs/docs/0.90.0/dev-guide-development-environment.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
 <h2><a class="anchor" aria-hidden="true" id="ide--required-dev-tools"></a><a href="#ide--required-dev-tools" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 [...]
 <p>StreamPipes does not have specific requirements on the IDE - so feel free to choose the IDE of your choice.
 The only requirements in terms of development tools are that you have Java 8 and Maven installed.</p>
diff --git a/docs/docs/dev-guide-event-model.html b/docs/docs/0.90.0/dev-guide-event-model.html
similarity index 90%
copy from docs/docs/dev-guide-event-model.html
copy to docs/docs/0.90.0/dev-guide-event-model.html
index 8c65f85e..2b2c239d 100644
--- a/docs/docs/dev-guide-event-model.html
+++ b/docs/docs/0.90.0/dev-guide-event-model.html
@@ -4,12 +4,12 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
 <p>The 0.61.0 release of StreamPipes introduces a new event model that replaces the <code>Map</code> representation of events at runtime. This guide explains the usage of the new event model to manipulate runtime events for data processors and data sink.</p>
 <h2><a class="anchor" aria-hidden="true" id="reference"></a><a href="#reference" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
-<p>This guide assumes that you are already familiar with the basic setup of <a href="/docs/docs/dev-guide-sdk-guide-processors.html">data processors</a> and <a href="/docs/docs/dev-guide-sdk-guide-sinks.html">data sinks</a>.</p>
+<p>This guide assumes that you are already familiar with the basic setup of <a href="/docs/docs/0.90.0/dev-guide-sdk-guide-processors.html">data processors</a> and <a href="/docs/docs/0.90.0/dev-guide-sdk-guide-sinks.html">data sinks</a>.</p>
 <h3><a class="anchor" aria-hidden="true" id="property-selectors"></a><a href="#property-selectors" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
-<p>In most cases, fields that are subject to be transformed by pipeline elements are provided by the assigned <code>MappingProperty</code> (see the guide on <a href="/docs/docs/dev-guide-static-properties.html">static properties</a>).</p>
+<p>In most cases, fields that are subject to be transformed by pipeline elements are provided by the assigned <code>MappingProperty</code> (see the guide on <a href="/docs/docs/0.90.0/dev-guide-static-properties.html">static properties</a>).</p>
 <p>Mapping properties return a <code>PropertySelector</code> that identifies a field based on (i) the <strong>streamIndex</strong> and (ii) the runtime name of the field.
 Let's assume we have an event with the following structure:</p>
 <pre><code class="hljs css language-json">{
@@ -27,7 +27,7 @@ In this case, a mapping property (selected by the pipeline developer in the Stre
 <pre><code class="hljs">s0::temperature
 </code></pre>
 <p><code>s0</code> identifies the stream (in this case, only one input streams exist, but as data processors might require more than one input stream, a stream identifier is required), while the appendix identifies the runtime name.</p>
-<p>Note: If you add a new field to an input event, you don't need to provide the selector, you can just assign the runtime name as defined by the <a href="/docs/docs/dev-guide-output-strategies.html">output strategy</a>.</p>
+<p>Note: If you add a new field to an input event, you don't need to provide the selector, you can just assign the runtime name as defined by the <a href="/docs/docs/0.90.0/dev-guide-output-strategies.html">output strategy</a>.</p>
 <h3><a class="anchor" aria-hidden="true" id="reading-fields"></a><a href="#reading-fields" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
 <p>You can get a field from an event by providing the corresponding selector:</p>
 <pre><code class="hljs css language-java">
diff --git a/docs/docs/dev-guide-introduction.html b/docs/docs/0.90.0/dev-guide-introduction.html
similarity index 94%
copy from docs/docs/dev-guide-introduction.html
copy to docs/docs/0.90.0/dev-guide-introduction.html
index bcb55d00..904796a0 100644
--- a/docs/docs/dev-guide-introduction.html
+++ b/docs/docs/0.90.0/dev-guide-introduction.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
 When developing new components, usually multiple elements, called <em>pipeline elements</em>, are bundled into a self-contained <em>pipeline element container</em>. This container is deployed as a standalone microservice. This service is self-descriptive and exposes its description (see below for a detailed explanation) to the StreamPipes management backend. Once the service is deployed, it can be installed using the StreamPipes UI and all elements provided by this service are ready to b [...]
 <p>To ease the extension of StreamPipes, we provide a powerful Software Development Kit (SDK) that allows you to define new pipeline elements for your StreamPipes instance.</p>
 <h2><a class="anchor" aria-hidden="true" id="concepts"></a><a href="#concepts" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
diff --git a/docs/docs/dev-guide-migration.html b/docs/docs/0.90.0/dev-guide-migration.html
similarity index 95%
copy from docs/docs/dev-guide-migration.html
copy to docs/docs/0.90.0/dev-guide-migration.html
index 3140fab3..6cb7f94d 100644
--- a/docs/docs/dev-guide-migration.html
+++ b/docs/docs/0.90.0/dev-guide-migration.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
 <p>If you are only using the pipeline elements that are included in StreamPipes, you only need to update the element description (My Elements -&gt; Update).
 However, if you've already developed your own pipeline elements, some code changes are required to make your elements work with versions &gt;= 0.61.0.</p>
 <div class="admonition info">
diff --git a/docs/docs/dev-guide-output-strategies.html b/docs/docs/0.90.0/dev-guide-output-strategies.html
similarity index 95%
copy from docs/docs/dev-guide-output-strategies.html
copy to docs/docs/0.90.0/dev-guide-output-strategies.html
index 6678d727..6e3775a2 100644
--- a/docs/docs/dev-guide-output-strategies.html
+++ b/docs/docs/0.90.0/dev-guide-output-strategies.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
 <p>In StreamPipes, output strategies determine the output of a data processor.
 As the exact input schema of a processor is usually not yet known at development time (as processors can be connected with any stream that matches their requirements), output strategies are a concept to define how an input data stream is transformed to an output data stream.</p>
 <p>The following reference describes how output strategies can be defined using the SDK.</p>
diff --git a/docs/docs/dev-guide-sdk-guide-processors.html b/docs/docs/0.90.0/dev-guide-sdk-guide-processors.html
similarity index 82%
copy from docs/docs/dev-guide-sdk-guide-processors.html
copy to docs/docs/0.90.0/dev-guide-sdk-guide-processors.html
index 2306e64d..f8f88b62 100644
--- a/docs/docs/dev-guide-sdk-guide-processors.html
+++ b/docs/docs/0.90.0/dev-guide-sdk-guide-processors.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
 <p>(coming soon, please check the <a href="../dev-guide-tutorial-processors">tutorial</a> to learn how to define data processors)</p>
 <h2><a class="anchor" aria-hidden="true" id="sdk-reference"></a><a href="#sdk-reference" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
 <p>The complete SDK reference for defining data processors will follow soon. Please check the SDK's Javadoc for now!</p>
diff --git a/docs/docs/dev-guide-sdk-guide-sinks.html b/docs/docs/0.90.0/dev-guide-sdk-guide-sinks.html
similarity index 82%
copy from docs/docs/dev-guide-sdk-guide-sinks.html
copy to docs/docs/0.90.0/dev-guide-sdk-guide-sinks.html
index fbbfcbe0..b9f2ecd9 100644
--- a/docs/docs/dev-guide-sdk-guide-sinks.html
+++ b/docs/docs/0.90.0/dev-guide-sdk-guide-sinks.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
 <p>(coming soon, please check the <a href="../dev-guide-tutorial-processors">tutorial</a> to learn how to define sinks)</p>
 <h2><a class="anchor" aria-hidden="true" id="sdk-reference"></a><a href="#sdk-reference" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
 <p>The complete SDK reference for defining data sinks will follow soon. Please check the SDK's Javadoc for now!</p>
diff --git a/docs/docs/dev-guide-sdk-guide-sources.html b/docs/docs/0.90.0/dev-guide-sdk-guide-sources.html
similarity index 89%
copy from docs/docs/dev-guide-sdk-guide-sources.html
copy to docs/docs/0.90.0/dev-guide-sdk-guide-sources.html
index 43fcbc48..393a77a1 100644
--- a/docs/docs/dev-guide-sdk-guide-sources.html
+++ b/docs/docs/0.90.0/dev-guide-sdk-guide-sources.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
 <p>Open the IDE of your choice and create a new maven project. Add the following dependencies to your pom file:</p>
 <p><details class="info">
 <summary>pom.xml</summary></p>
diff --git a/docs/docs/dev-guide-ssl.html b/docs/docs/0.90.0/dev-guide-ssl.html
similarity index 91%
copy from docs/docs/dev-guide-ssl.html
copy to docs/docs/0.90.0/dev-guide-ssl.html
index a5dac6ba..4c65a6f6 100644
--- a/docs/docs/dev-guide-ssl.html
+++ b/docs/docs/0.90.0/dev-guide-ssl.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
 <h2><a class="anchor" aria-hidden="true" id="prerequisites"></a><a href="#prerequisites" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
 <p>You need a valid Certificate consisting of a Private and a Public Key. Both Keys must be in PEM Format. Please note that your Private Key should never be shared, otherwise the communication can not be considered secure.</p>
 <h2><a class="anchor" aria-hidden="true" id="edit-docker-composeyml"></a><a href="#edit-docker-composeyml" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0 [...]
diff --git a/docs/docs/dev-guide-static-properties.html b/docs/docs/0.90.0/dev-guide-static-properties.html
similarity index 95%
copy from docs/docs/dev-guide-static-properties.html
copy to docs/docs/0.90.0/dev-guide-static-properties.html
index c7eb9c0a..0c245570 100644
--- a/docs/docs/dev-guide-static-properties.html
+++ b/docs/docs/0.90.0/dev-guide-static-properties.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
 <p>Static properties represent user-faced parameters that are provided by pipeline developers.
 Processing elements can specify required static properties, which will render different UI views in the pipeline editor.</p>
 <p>The following reference describes how static properties can be defined using the SDK.</p>
diff --git a/docs/docs/dev-guide-stream-requirements.html b/docs/docs/0.90.0/dev-guide-stream-requirements.html
similarity index 91%
copy from docs/docs/dev-guide-stream-requirements.html
copy to docs/docs/0.90.0/dev-guide-stream-requirements.html
index b0322c09..6001532d 100644
--- a/docs/docs/dev-guide-stream-requirements.html
+++ b/docs/docs/0.90.0/dev-guide-stream-requirements.html
@@ -4,11 +4,11 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
 <p>Data processors and data sinks can define <code>StreamRequirements</code>. Stream requirements allow pipeline elements to express requirements on an incoming event stream that are needed for the element to work properly.
 Once users create pipelines in the StreamPipes Pipeline Editor, these requirements are verified against the connected event stream.
 By using this feature, StreamPipes ensures that only pipeline elements can be connected that are syntactically and semantically valid.</p>
-<p>This guide covers the creation of stream requirements. Before reading this section, we recommend that you make yourself familiar with the SDK guide on <a href="/docs/docs/dev-guide-sdk-guide-processors.html">data processors</a> and <a href="/docs/docs/dev-guide-sdk-guide-sinks.html">data sinks</a>.</p>
+<p>This guide covers the creation of stream requirements. Before reading this section, we recommend that you make yourself familiar with the SDK guide on <a href="/docs/docs/0.90.0/dev-guide-sdk-guide-processors.html">data processors</a> and <a href="/docs/docs/0.90.0/dev-guide-sdk-guide-sinks.html">data sinks</a>.</p>
 <div class="admonition tip">
 <div class="admonition-title">Code on Github</div>
 <p>For all examples, the code can be found on <a href="https://www.github.com/apache/incubator-streampipes-examples/tree/dev/streampipes-pipeline-elements-examples-processors-jvm/src/main/java/org/streampipes/pe/examples/jvm/requirements/">Github</a>.</p>
@@ -69,7 +69,7 @@ Consequently, any data stream that is connected to the filter processor needs to
             .build();
   }
 </code></pre>
-<p>See also the developer guide on <a href="/docs/docs/dev-guide-static-properties.html">static properties</a> to better understand the usage of <code>MappingProperties</code>.</p>
+<p>See also the developer guide on <a href="/docs/docs/0.90.0/dev-guide-static-properties.html">static properties</a> to better understand the usage of <code>MappingProperties</code>.</p>
 <p>Requirements on primitive fields can be specified for all common datatypes:</p>
 <pre><code class="hljs css language-java"> <span class="hljs-meta">@Override</span>
   <span class="hljs-function"><span class="hljs-keyword">public</span> DataProcessorDescription <span class="hljs-title">declareModel</span><span class="hljs-params">()</span> </span>{
diff --git a/docs/docs/dev-guide-tutorial-processors.html b/docs/docs/0.90.0/dev-guide-tutorial-processors.html
similarity index 98%
copy from docs/docs/dev-guide-tutorial-processors.html
copy to docs/docs/0.90.0/dev-guide-tutorial-processors.html
index 0fb3fe3f..f15c2c86 100644
--- a/docs/docs/dev-guide-tutorial-processors.html
+++ b/docs/docs/0.90.0/dev-guide-tutorial-processors.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
 <p>From an architectural point of view, we will create a self-contained service that includes the description of the data processor and a Flink-compatible implementation.
 Once a pipeline is started that uses this data processor, the implementation is submitted to an Apache Flink cluster.</p>
 <h2><a class="anchor" aria-hidden="true" id="objective"></a><a href="#objective" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
diff --git a/docs/docs/dev-guide-tutorial-sinks.html b/docs/docs/0.90.0/dev-guide-tutorial-sinks.html
similarity index 97%
copy from docs/docs/dev-guide-tutorial-sinks.html
copy to docs/docs/0.90.0/dev-guide-tutorial-sinks.html
index 5fd241f6..94b01ed6 100644
--- a/docs/docs/dev-guide-tutorial-sinks.html
+++ b/docs/docs/0.90.0/dev-guide-tutorial-sinks.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
 <p>From an architectural point of view, we will create a self-contained service that includes the description of the data sink and a corresponding implementation.</p>
 <h2><a class="anchor" aria-hidden="true" id="objective"></a><a href="#objective" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
 <p>We are going to create a new data sink that calls an external HTTP endpoint to forward data to an external service.</p>
diff --git a/docs/docs/dev-guide-tutorial-sources.html b/docs/docs/0.90.0/dev-guide-tutorial-sources.html
similarity index 96%
copy from docs/docs/dev-guide-tutorial-sources.html
copy to docs/docs/0.90.0/dev-guide-tutorial-sources.html
index d6626d49..055faff5 100644
--- a/docs/docs/dev-guide-tutorial-sources.html
+++ b/docs/docs/0.90.0/dev-guide-tutorial-sources.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
 <h2><a class="anchor" aria-hidden="true" id="objective"></a><a href="#objective" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
 <p>We are going to create a new data stream that is produced by a GPS sensor installed in a delivery vehicle.
 The sensor produces a continuous stream of events that contain the current timestamp, the current lat/lng position of the vehicle and the plate number of the vehicle.
diff --git a/docs/docs/0.90.0/extend-archetypes.html b/docs/docs/0.90.0/extend-archetypes.html
new file mode 100644
index 00000000..10944f9f
--- /dev/null
+++ b/docs/docs/0.90.0/extend-archetypes.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Maven Archetypes · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="In this tutorial we explain how you can use the Maven archetypes to develop your own StreamPipes processors and sinks."/><meta name="docsearch:version" content="0.90.0"/><meta  [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">Maven Archetypes</h1></header><article><div><span><p>In this tutorial we explain how you can use the Maven archetypes to develop your own StreamPipes processors and sinks.
+We use IntelliJ in this tutorial, but it works with any IDE of your choice.</p>
+<h2><a class="anchor" aria-hidden="true" id="prerequisites"></a><a href="#prerequisites" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
+<p>You need to have Maven installed, further you need an up and running StreamPipes installation on your development computer.</p>
+<h2><a class="anchor" aria-hidden="true" id="create-project"></a><a href="#create-project" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
+<p>To create a new project, we provide multiple Maven Archteypes.
+Currently, we provide archetypes for standalone Java-based microservices and archetypes for the experimental Flink wrapper.
+The commands required to create a new pipeline element project can be found below. Make sure that you select a version compatible with your StreamPipes installation.
+Copy the command into your terminal to create a new project.
+The project will be created in the current folder.
+First, the <code>groupId</code> of the resulting Maven artifact must be set.
+We use <code>groupId</code>: <code>org.example</code> and <code>artifactId</code>: <code>ExampleProcessor</code>.
+You can keep the default values for the other settings, confirm them by hitting enter.</p>
+<p>The current {sp.version} is 0.69.0 (for a pre-release version, use the SNAPSHOT appendix, e.g. 0.69.0-SNAPSHOT)</p>
+<pre><code class="hljs css language-bash">mvn archetype:generate                                           \
+  -DarchetypeGroupId=org.apache.streampipes                              \
+  -DarchetypeArtifactId=streampipes-archetype-extensions-jvm  \
+  -DarchetypeVersion={sp.version}
+</code></pre>
+<p><details class="info">
+<summary>Other archetypes</summary></p>
+<h2><a class="anchor" aria-hidden="true" id="processors-flink"></a><a href="#processors-flink" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
+<pre><code class="hljs css language-bash">mvn archetype:generate                                           \
+  -DarchetypeGroupId=org.apache.streampipes                              \
+  -DarchetypeArtifactId=streampipes-archetype-pe-processors-flink  \
+  -DarchetypeVersion={sp.version}
+</code></pre>
+<h2><a class="anchor" aria-hidden="true" id="sinks-flink"></a><a href="#sinks-flink" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
+<pre><code class="hljs css language-bash">mvn archetype:generate                                           \
+  -DarchetypeGroupId=org.apache.streampipes                              \
+  -DarchetypeArtifactId=streampipes-archetype-pe-sinks-flink  \
+  -DarchetypeVersion={sp.version}
+</code></pre>
+<p></details></p>
+<h2><a class="anchor" aria-hidden="true" id="project-structure"></a><a href="#project-structure" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2- [...]
+<p>Open the project in your IDE.
+If everything worked, the structure should look similar to the following image.
+In the <em>main</em> package, it is defined which processors / sinks you want to activate and the <em>pe.example</em> package contains two skeletons for creating a data processor and sink.
+For details, have a look at the other parts of the Developer Guide, where these classes are explained in more depth.</p>
+<p><img src="/docs/img/archetype/project_structure.png" width="30%" alt="Project Structure"></p>
+<h2><a class="anchor" aria-hidden="true" id="next-steps"></a><a href="#next-steps" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
+<p>Click <a href="/docs/docs/0.90.0/extend-first-processor.html">here</a> to learn how to create your first data processor.</p>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.90.0/extend-cli.html"><span class="arrow-prev">← </span><span class="function-name-prevnext">StreamPipes CLI</span></a><a class="docs-next button" href="/docs/docs/0.90.0/extend-first-processor.html"><span>Your first data processor</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#prerequisites">Prerequisites</a>< [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '0fedc89dddf2810657708b178e56ef02',
+                indexName: 'streampipes',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.90.0/extend-cli.html b/docs/docs/0.90.0/extend-cli.html
new file mode 100644
index 00000000..1e5e738d
--- /dev/null
+++ b/docs/docs/0.90.0/extend-cli.html
@@ -0,0 +1,227 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>StreamPipes CLI · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="The StreamPipes command-line interface (CLI) is focused on developers in order to provide an easy entrypoint to set up a suitable dev environment, either planning on developing" [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">StreamPipes CLI</h1></header><article><div><span><p>The StreamPipes command-line interface (CLI) is focused on developers in order to provide an easy entrypoint to set up a suitable dev environment, either planning on developing</p>
+<ul>
+<li>new extensions such as <strong>connect adapters, processors, sinks</strong> or,</li>
+<li>new core features for <strong>backend</strong> and <strong>ui</strong>.</li>
+</ul>
+<p>The main difference between the standard Docker/K8s installation is an improved communication between services running as containers and services running locally for development.</p>
+<p>The CLI can be found in the <a href="https://github.com/apache/streampipes/tree/master/installer/cli">main repository</a> or in the <code>installer/cli</code> folder of the downloaded source code.</p>
+<h2><a class="anchor" aria-hidden="true" id="tldr"></a><a href="#tldr" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<pre><code class="hljs css language-bash">streampipes env --list
+[INFO] Available StreamPipes environment templates:
+pipeline-element
+...
+streampipes env --<span class="hljs-built_in">set</span> pipeline-element
+streampipes up -d
+</code></pre>
+<blockquote>
+<p><strong>NOTE</strong>: use <code>./streampipes</code> if you haven't add it to the PATH and sourced it (see section &quot;Run <code>streampipes</code> from anywhere?&quot;).</p>
+</blockquote>
+<h2><a class="anchor" aria-hidden="true" id="prerequisites"></a><a href="#prerequisites" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
+<p>The CLI is basically a wrapper around multiple <code>docker</code> and <code>docker-compose</code> commands plus some additional sugar.</p>
+<ul>
+<li>Docker &gt;= 17.06.0</li>
+<li>Docker-Compose &gt;= 1.26.0 (Compose file format: 3.4)</li>
+<li>Google Chrome (recommended), Mozilla Firefox, Microsoft Edge</li>
+<li>For Windows Developer: GitBash only</li>
+</ul>
+<p>Tested on: <strong>macOS</strong>, <strong>Linux</strong>, <strong>Windows</strong>*)</p>
+<blockquote>
+<p><strong>NOTE</strong>: *) If you're using Windows the CLI only works in combination with GitBash - CMD, PowerShell won't work.</p>
+</blockquote>
+<h2><a class="anchor" aria-hidden="true" id="cli-commands-overview"></a><a href="#cli-commands-overview" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2 [...]
+<pre><code class="hljs">StreamPipes CLI - Manage your StreamPipes environment with ease
+
+Usage: streampipes COMMAND [OPTIONS]
+
+Options:
+  --help, -h      show help
+  --version, -v   show version
+
+Commands:
+  clean       <span class="hljs-builtin-name">Remove</span> StreamPipes data volumes, dangling images <span class="hljs-keyword">and</span><span class="hljs-built_in"> network
+</span>  down        Stop <span class="hljs-keyword">and</span> <span class="hljs-builtin-name">remove</span> StreamPipes containers
+  env         Inspect <span class="hljs-keyword">and</span> select StreamPipes environments
+  <span class="hljs-builtin-name">info</span>        <span class="hljs-builtin-name">Get</span> information
+  logs        <span class="hljs-builtin-name">Get</span> container logs <span class="hljs-keyword">for</span> specific container
+  ps          List all StreamPipes container <span class="hljs-keyword">for</span> running environment
+  pull        Download latest images <span class="hljs-keyword">from</span> Dockerhub
+  restart     Restart StreamPipes environment
+  up          Create <span class="hljs-keyword">and</span> start StreamPipes container environment
+
+<span class="hljs-builtin-name">Run</span> <span class="hljs-string">'streampipes COMMAND --help'</span> <span class="hljs-keyword">for</span> more <span class="hljs-builtin-name">info</span> on a command.
+</code></pre>
+<h2><a class="anchor" aria-hidden="true" id="usage-along-dev-life-cycle"></a><a href="#usage-along-dev-life-cycle" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H [...]
+<p><strong>List</strong> available environment templates.</p>
+<pre><code class="hljs css language-bash">streampipes env --list
+</code></pre>
+<p><strong>Inspect</strong> services in an available environment to know what kind of services it is composed of.</p>
+<pre><code class="hljs css language-bash">streampipes env --inspect pipeline-element
+</code></pre>
+<p><strong>Set</strong> environment, e.g. <code>pipeline-element</code>, if you want to write a new pipeline element.</p>
+<pre><code class="hljs css language-bash">streampipes env --<span class="hljs-built_in">set</span> pipeline-element
+</code></pre>
+<p><strong>Start</strong> environment ( default: <code>dev</code> mode). Here the service definition in the selected environment is used to start the multi-container landscape.</p>
+<blockquote>
+<p><strong>NOTE</strong>: <code>dev</code> mode is enabled by default since we rely on open ports to core service such as <code>consul</code>, <code>couchdb</code>, <code>kafka</code> etc. to reach from the IDE when developing. If you don't want to map ports (except the UI port), then use the <code>--no-ports</code> flag.</p>
+</blockquote>
+<pre><code class="hljs css language-bash">streampipes up -d
+<span class="hljs-comment"># start in production mode with unmapped ports</span>
+<span class="hljs-comment"># streampipes up -d --no-ports</span>
+</code></pre>
+<p>Now you're good to go to write your new pipeline element :tada: :tada: :tada:</p>
+<blockquote>
+<p><strong>HINT for extensions</strong>: Use our <a href="https://streampipes.apache.org/docs/docs/dev-guide-archetype/">Maven archetypes</a> to setup a project skeleton and use your IDE of choice for development. However, we do recommend using IntelliJ.</p>
+</blockquote>
+<blockquote>
+<p><strong>HINT for core</strong>: To work on <code>backend</code> or <code>ui</code> features you need to set the template to <code>backend</code> and clone the core repository <a href="https://github.com/apache/streampipes">streampipes</a> - check the prerequisites there for more information.</p>
+</blockquote>
+<p><strong>Stop</strong> environment and remove docker container</p>
+<pre><code class="hljs css language-bash">streampipes down
+<span class="hljs-comment"># want to also clean docker data volumes when stopping the environment?</span>
+<span class="hljs-comment"># streampipes down -v</span>
+</code></pre>
+<h2><a class="anchor" aria-hidden="true" id="additionally-useful-commands"></a><a href="#additionally-useful-commands" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 [...]
+<p><strong>Start individual services only?</strong> We got you! You chose a template that suits your needs and now you only want to start individual services from it, e.g. only Kafka and Consul.</p>
+<blockquote>
+<p><strong>NOTE</strong>: the service names need to be present and match your current <code>.spenv</code> environment.</p>
+</blockquote>
+<pre><code class="hljs css language-bash">streampipes up -d kafka consul
+</code></pre>
+<p><strong>Get current environment</strong> (if previously set using <code>streampipes env --set &lt;environment&gt;</code>).</p>
+<pre><code class="hljs css language-bash">streampipes env
+</code></pre>
+<p><strong>Get logs</strong> of specific service and use optional <code>--follow</code> flag to stay attached to the logs.</p>
+<pre><code class="hljs css language-bash">streampipes logs --follow backend
+</code></pre>
+<p><strong>Update</strong> all services of current environment</p>
+<pre><code class="hljs css language-bash">streampipes pull
+</code></pre>
+<p><strong>Restart</strong> all services of current environment or specific services</p>
+<pre><code class="hljs css language-bash">streampipes restart
+<span class="hljs-comment"># restart backend &amp; consul</span>
+<span class="hljs-comment"># streampipes restart backend consul</span>
+</code></pre>
+<p><strong>Clean</strong> your system and remove created StreamPipes Docker volumes, StreamPipes docker network and dangling StreamPipes images of old image layers.</p>
+<pre><code class="hljs css language-bash">streampipes clean
+<span class="hljs-comment"># remove volumes, network and dangling images</span>
+<span class="hljs-comment"># streampipes clean --volumes</span>
+</code></pre>
+<h2><a class="anchor" aria-hidden="true" id="modifycreate-an-environment-template"></a><a href="#modifycreate-an-environment-template" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 [...]
+<p>As of now, this step has to be done <strong>manually</strong>. All environments are located in <code>environments/</code>.</p>
+<pre><code class="hljs css language-bash">├── adapter               <span class="hljs-comment"># developing a new connect adapter</span>
+├── backend               <span class="hljs-comment"># developing core backend features</span>
+├── basic                 <span class="hljs-comment"># wanna run core, UI, connect etc from the IDE?</span>
+├── full                  <span class="hljs-comment"># full version containing more pipeline elements</span>
+├── lite                  <span class="hljs-comment"># few pipeline elements, less memory  </span>
+├── pipeline-element      <span class="hljs-comment"># developing new pipeline-elements</span>
+└── ui                    <span class="hljs-comment"># developing UI features</span>
+</code></pre>
+<p><strong>Modifying an existing environment template</strong>. To modify an existing template, you can simply add a <code>&lt;YOUR_NEW_SERVICE&gt;</code> to the template.</p>
+<blockquote>
+<p><strong>NOTE</strong>: You need to make sure, that the service your are adding exists in <code>deploy/standalone/service/&lt;YOUR_NEW_SERVICE&gt;</code>. If your're adding a completely new service take a look at existing ones, create a new service directory and include a <code>docker-compose.yml</code> and <code>docker-compose.dev.yml</code> file.</p>
+</blockquote>
+<pre><code class="hljs">[environment:backend]
+activemq
+kafka
+...
+&lt;<span class="hljs-symbol">YOUR_NEW_SERVICE</span>&gt;
+</code></pre>
+<p><strong>Creating a new</strong> environment template. To create a new environment template, place a new file <code>environments/&lt;YOUR_NEW_ENVIRONMENT&gt;</code> in the template directory. Open the file and use the following schema.</p>
+<blockquote>
+<p><strong>IMPORTANT</strong>: Please make sure to have <code>[environment:&lt;YOUR_NEW_ENVIRONMENT&gt;]</code> header in the first line of your new template matching the name of the file. Make sure to use small caps letters (lowercase) only.</p>
+</blockquote>
+<pre><code class="hljs">[environmen<span class="hljs-variable">t:</span><span class="hljs-symbol">&lt;YOUR_NEW_ENVIRONMENT&gt;</span>]
+<span class="hljs-symbol">&lt;SERVICE_1&gt;</span>
+<span class="hljs-symbol">&lt;SERVICE_2&gt;</span>
+...
+</code></pre>
+<h2><a class="anchor" aria-hidden="true" id="run-streampipes-from-anywhere-no-problem"></a><a href="#run-streampipes-from-anywhere-no-problem" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0  [...]
+<p>Simply add the path to this cli directory to your <code>$PATH</code> (on macOS, Linux) variable, e.g. in your <code>.bashrc</code> or <code>.zshrc</code>, or <code>%PATH%</code> (on Windows).</p>
+<p>For <strong>macOS</strong>, or <strong>Linux</strong>:</p>
+<pre><code class="hljs css language-bash"><span class="hljs-built_in">export</span> PATH=<span class="hljs-string">"/path/to/streampipes-installer/installer/cli:<span class="hljs-variable">$PATH</span>"</span>
+</code></pre>
+<p>For <strong>Windows 10</strong>, e.g. check this <a href="https://helpdeskgeek.com/windows-10/add-windows-path-environment-variable/">documentation</a>.</p>
+<h2><a class="anchor" aria-hidden="true" id="upgrade-to-new-version"></a><a href="#upgrade-to-new-version" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0 [...]
+<p>To upgrade to a new version, simply edit the version tag <code>SP_VERSION</code> in the <code>.env</code> file.</p>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.90.0/extend-setup.html"><span class="arrow-prev">← </span><span>Development Setup</span></a><a class="docs-next button" href="/docs/docs/0.90.0/extend-archetypes.html"><span>Maven Archetypes</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#tldr">TL;DR</a></li><li><a href="#prerequisites">Prerequisites</a></li><li [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '0fedc89dddf2810657708b178e56ef02',
+                indexName: 'streampipes',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.90.0/extend-first-processor.html b/docs/docs/0.90.0/extend-first-processor.html
new file mode 100644
index 00000000..8fbe7bf7
--- /dev/null
+++ b/docs/docs/0.90.0/extend-first-processor.html
@@ -0,0 +1,119 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Your first data processor · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="In this section, we will explain how to start a pipeline element service and install it using the StreamPipes UI."/><meta name="docsearch:version" content="0.90.0"/><m [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">Your first data processor</h1></header><article><div><span><p>In this section, we will explain how to start a pipeline element service and install it using the StreamPipes UI.</p>
+<p>Open the class <em>ExampleDataProcessor</em> and edit the <code>onEvent</code> method to print the incoming event, log it to the console and send it to the next component without changing it.</p>
+<pre><code class="hljs css language-java"><span class="hljs-meta">@Override</span>
+<span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">onEvent</span><span class="hljs-params">(Event event, SpOutputCollector collector)</span> </span>{
+    <span class="hljs-comment">// Print the incoming event on the console</span>
+    System.out.println(event);
+
+    <span class="hljs-comment">// Hand the incoming event to the output collector without changing it.</span>
+    collector.collect(event);
+}
+</code></pre>
+<h2><a class="anchor" aria-hidden="true" id="start-processor"></a><a href="#start-processor" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5  [...]
+<p>Starting from StreamPipes 0.69.0, the IP address of an extensions service (processor, adapter or sink) will be auto-discovered upon start.
+The auto-discovery is done by the StreamPipes service discovery mechanism and should work for most setups.
+Once you start an extensions service, you will see the chosen IP in printed in the console. Make sure that this IP does not point to localhost (127.0.0.1).
+If you see such an IP or the extensions service complains that it cannot resolve the IP, you can manually set the IP address of the extensions service. You can do so by providing an <code>SP_HOST</code> environment variable.</p>
+<p>To check if the service is up and running, open the browser on <em>'localhost:8090'</em> (or the port defined in the service definition). The machine-readable description of the processor should be visible as shown below.</p>
+<p><img src="/docs/img/archetype/endpoint.png" width="90%" alt="Project Structure"></p>
+<div class="admonition error">
+<div class="admonition-title">Common Problems</div>
+<p>
+If the service description is not shown on 'localhost:8090', you might have to change the port address.
+This needs to be done in the configuration of your service, further explained in the configurations part of the developer guide.
+<p>If the service does not show up in the StreamPipes installation menu, click on 'MANAGE ENDPOINTS' and add 'http://<span></span>YOUR_IP_OR_DNS_NAME:8090'.
+Use the IP or DNS name you provided as the SP_HOST variable or the IP (if resolvable) found by the auto-discovery service printed in the console.
+After adding the endpoint, a new processor with the name <em>Example</em> should show up.</p>
+</p>
+</div>
+<p>Now you can go to StreamPipes.
+Your new processor <em>'Example'</em> should now show up in the installation menu (&quot;Install Pipeline Elements&quot; in the left navigation bar).
+Install it, then switch to the pipeline view and create a simple pipeline that makes use of your newly created processor.
+In case you opened the StreamPipes installation for the first time, it should have been automatically installed during the setup process.</p>
+<p><img src="/docs/img/archetype/example_pipeline.png" width="80%" alt="Project Structure"></p>
+<p>Start this pipeline.
+Now you should see logging messages in your console and, once you've created a visualization, you can also see the resulting events of your component in StreamPipes.</p>
+<p>Congratulations, you have just created your first processor!
+From here on you can start experimenting and implement your own algorithms.</p>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.90.0/extend-archetypes.html"><span class="arrow-prev">← </span><span>Maven Archetypes</span></a><a class="docs-next button" href="/docs/docs/0.90.0/extend-tutorial-data-sources.html"><span>Tutorial: Data Sources</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#start-processor">Start Processor</a></li></ul></nav>< [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '0fedc89dddf2810657708b178e56ef02',
+                indexName: 'streampipes',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.90.0/extend-sdk-event-model.html b/docs/docs/0.90.0/extend-sdk-event-model.html
new file mode 100644
index 00000000..3607f964
--- /dev/null
+++ b/docs/docs/0.90.0/extend-sdk-event-model.html
@@ -0,0 +1,175 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>SDK Guide: Event Model · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="## Introduction"/><meta name="docsearch:version" content="0.90.0"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="SDK Guide: Event Model [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">SDK Guide: Event Model</h1></header><article><div><span><h2><a class="anchor" aria-hidden="true" id="introduction"></a><a href="#introduction" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule= [...]
+<p>This guide explains the usage of the event model to manipulate runtime events for data processors and data sink.</p>
+<h2><a class="anchor" aria-hidden="true" id="prerequisites"></a><a href="#prerequisites" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
+<p>This guide assumes that you are already familiar with the basic setup of <a href="/docs/docs/0.90.0/dev-guide-sdk-guide-processors.html">data processors</a> and <a href="/docs/docs/0.90.0/dev-guide-sdk-guide-sinks.html">data sinks</a>.</p>
+<h3><a class="anchor" aria-hidden="true" id="property-selectors"></a><a href="#property-selectors" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
+<p>In most cases, fields that are subject to be transformed by pipeline elements are provided by the assigned <code>MappingProperty</code> (see the guide on <a href="/docs/docs/0.90.0/dev-guide-static-properties.html">static properties</a>).</p>
+<p>Mapping properties return a <code>PropertySelector</code> that identifies a field based on (i) the <strong>streamIndex</strong> and (ii) the runtime name of the field.
+Let's assume we have an event with the following structure:</p>
+<pre><code class="hljs css language-json">{
+    <span class="hljs-attr">"timestamp"</span> : <span class="hljs-number">1234556</span>,
+    <span class="hljs-attr">"temperature"</span> : <span class="hljs-number">37.0</span>,
+    <span class="hljs-attr">"deviceId"</span> : <span class="hljs-string">"sensor1"</span>,
+    <span class="hljs-attr">"running"</span> : <span class="hljs-literal">true</span>,
+    <span class="hljs-attr">"location"</span> : {<span class="hljs-attr">"latitude"</span> : <span class="hljs-number">34.4</span>, <span class="hljs-attr">"longitude"</span> : <span class="hljs-number">-47</span>},
+    <span class="hljs-attr">"lastValues"</span> : [<span class="hljs-number">45</span>, <span class="hljs-number">22</span>, <span class="hljs-number">21</span>]
+}
+</code></pre>
+<p>In addition, we assume that a data processor exists (with one input node) that converts the temperature value (measured in degrees celsius) to a degree fahrenheit value.
+In this case, a mapping property (selected by the pipeline developer in the StreamPipes UI) would link to the <code>temperature</code> field of the event.</p>
+<p>The mapping property value will be the <code>PropertySelector</code> of the temperature value, which looks as follows:</p>
+<pre><code class="hljs">s0::temperature
+</code></pre>
+<p><code>s0</code> identifies the stream (in this case, only one input streams exist, but as data processors might require more than one input stream, a stream identifier is required), while the appendix identifies the runtime name.</p>
+<p>Note: If you add a new field to an input event, you don't need to provide the selector, you can just assign the runtime name as defined by the <a href="/docs/docs/0.90.0/dev-guide-output-strategies.html">output strategy</a>.</p>
+<h3><a class="anchor" aria-hidden="true" id="reading-fields"></a><a href="#reading-fields" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
+<p>You can get a field from an event by providing the corresponding selector:</p>
+<pre><code class="hljs css language-java">
+<span class="hljs-meta">@Override</span>
+  <span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">onEvent</span><span class="hljs-params">(Event event, SpOutputCollector out)</span> </span>{
+
+  PrimitiveField temperatureField = event.getFieldBySelector(PROPERTY_SELECTOR).getAsPrimitive();
+  }
+
+</code></pre>
+<p>Similarly, if your mapping property links to a nested property, use</p>
+<pre><code class="hljs css language-java">
+<span class="hljs-meta">@Override</span>
+  <span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">onEvent</span><span class="hljs-params">(Event event, SpOutputCollector out)</span> </span>{
+
+  NestedField nestedField = event.getFieldBySelector(PROPERTY_SELECTOR).getAsNested();
+  }
+
+</code></pre>
+<p>and for a list-based field:</p>
+<pre><code class="hljs css language-java">
+<span class="hljs-meta">@Override</span>
+  <span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">onEvent</span><span class="hljs-params">(Event event, SpOutputCollector out)</span> </span>{
+
+  ListField listField = event.getFieldBySelector(PROPERTY_SELECTOR).getAsList();
+  }
+
+</code></pre>
+<h3><a class="anchor" aria-hidden="true" id="parsing-fields"></a><a href="#parsing-fields" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
+<h4><a class="anchor" aria-hidden="true" id="primitive-fields"></a><a href="#primitive-fields" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
+<p>A <code>PrimitiveField</code> contains convenience methods to directly cast a field to the target datatype:</p>
+<pre><code class="hljs css language-java">
+<span class="hljs-comment">// parse the value as a float datatype</span>
+Float temperatureValue = event.getFieldBySelector(temperatureSelector).getAsPrimitive().getAsFloat();
+
+<span class="hljs-comment">// or do the same with a double datatype</span>
+Double temperatureValue = event.getFieldBySelector(temperatureSelector).getAsPrimitive().getAsDouble();
+
+<span class="hljs-comment">// extracting a string</span>
+String deviceId = event.getFieldBySelector(deviceIdSelector).getAsPrimitive().getAsString();
+
+<span class="hljs-comment">// this also works for extracting fields from nested fields:</span>
+Double latitude = event.getFieldBySelector(latitudeSelector).getAsPrimitive().getAsDouble();
+
+<span class="hljs-comment">// extracting boolean values</span>
+Boolean running = event.getFieldBySelector(runningSelector).getAsPrimitive().getAsBoolean();
+</code></pre>
+<p>In rare cases, you might want to receive a field directly based on the runtime name as follows:</p>
+<pre><code class="hljs css language-java">Double temperature = event.getFieldByRuntimeName(<span class="hljs-string">"temperature"</span>).getAsPrimitive().getAsDouble();
+</code></pre>
+<h4><a class="anchor" aria-hidden="true" id="list-fields"></a><a href="#list-fields" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
+<p>Lists can also be retrieved by providing the corresponding selector and can automatically be parsed to a list of primitive datatypes:</p>
+<pre><code class="hljs css language-java">
+List&lt;Integer&gt; lastValues = event.getFieldBySelector(lastValueSelector).getAsList().parseAsSimpleType(Integer<span class="hljs-class">.<span class="hljs-keyword">class</span>)</span>;
+
+</code></pre>
+<p>(coming soon: parsing complex lists)</p>
+<h3><a class="anchor" aria-hidden="true" id="addingupdating-fields"></a><a href="#addingupdating-fields" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2 [...]
+<p>Primitive fields can easily be added to an event by providing the runtime name and the object:</p>
+<pre><code class="hljs css language-java">
+    <span class="hljs-comment">// add a primitive field with runtime name "city" and value "Karlsruhe"</span>
+    event.addField(<span class="hljs-string">"city"</span>, <span class="hljs-string">"Karlsruhe"</span>);
+
+    <span class="hljs-comment">// remove the field "temperature" from the event</span>
+    event.removeFieldBySelector(temperatureSelector);
+
+    <span class="hljs-comment">// add a new field</span>
+    event.addField(<span class="hljs-string">"fahrenheit"</span>, <span class="hljs-number">48</span>);
+</code></pre>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.90.0/extend-sdk-functions.html"><span class="arrow-prev">← </span><span>SDK: Functions</span></a><a class="docs-next button" href="/docs/docs/0.90.0/extend-sdk-stream-requirements.html"><span>SDK: Stream Requirements</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#introduction">Introduction</a></li><li><a href=" [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '0fedc89dddf2810657708b178e56ef02',
+                indexName: 'streampipes',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.90.0/extend-sdk-functions.html b/docs/docs/0.90.0/extend-sdk-functions.html
new file mode 100644
index 00000000..d3c2c3a1
--- /dev/null
+++ b/docs/docs/0.90.0/extend-sdk-functions.html
@@ -0,0 +1,182 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>SDK Guide: Functions · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="## Introduction"/><meta name="docsearch:version" content="0.90.0"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="SDK Guide: Functions · A [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">SDK Guide: Functions</h1></header><article><div><span><h2><a class="anchor" aria-hidden="true" id="introduction"></a><a href="#introduction" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="e [...]
+<p>Pipeline elements such as data processors and data sinks are a great way
+to create <em>reusable</em> components that can be part of pipelines.
+However, creating a pipeline element is not always the best choice:</p>
+<ul>
+<li>The behaviour of a data processor is bound to a specific input stream <em>and</em></li>
+<li>A data processor doesn't contain any user-defined configuration <em>and</em></li>
+<li>The intended action is fixed or known at build time and the data processor shouldn't be available in the pipeline editor.</li>
+</ul>
+<p>To cover such use cases, we provide <em>StreamPipes Functions</em>. Functions
+are a great way to define custom processing logic based on previously
+connected data streams.</p>
+<p>Functions can be registered in a similar way to pipeline elements, but define expected input
+streams at startup time. Functions are started once the corresponding <em>extensions service</em> starts
+and run until the service is stopped.</p>
+<h2><a class="anchor" aria-hidden="true" id="writing-a-function"></a><a href="#writing-a-function" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
+<div class="admonition warning">
+    <div class="admonition-title">Work in Progress</div>
+    <p>Functions are currently in preview mode and are not yet recommended for production usage. 
+APIs are subject to change in a future version.</p>
+</div>
+<p>To define a function, create a new extensions service using the <a href="/docs/docs/0.90.0/extend-archetypes.html">Maven Archetypes</a> or use an already existing service.</p>
+<h3><a class="anchor" aria-hidden="true" id="skeleton"></a><a href="#skeleton" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
+<p>Functions can be defined by creating a new class which extends the <code>StreamPipesFunction</code> class.</p>
+<p>The basic skeleton looks like this:</p>
+<pre><code class="hljs css language-java"><span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">StreamPipesFunctionExample</span> <span class="hljs-keyword">extends</span> <span class="hljs-title">StreamPipesFunction</span> </span>{
+  
+  <span class="hljs-meta">@Override</span>
+  <span class="hljs-function"><span class="hljs-keyword">public</span> FunctionId <span class="hljs-title">getFunctionId</span><span class="hljs-params">()</span> </span>{
+    <span class="hljs-keyword">return</span> FunctionId.from(<span class="hljs-string">"my-function-id"</span>, <span class="hljs-number">1</span>);
+  }
+
+  <span class="hljs-meta">@Override</span>
+  <span class="hljs-function"><span class="hljs-keyword">public</span> List&lt;String&gt; <span class="hljs-title">requiredStreamIds</span><span class="hljs-params">()</span> </span>{
+    <span class="hljs-keyword">return</span> List.of(<span class="hljs-string">"&lt;id of the required stream&gt;"</span>);
+  }
+
+  <span class="hljs-meta">@Override</span>
+  <span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">onServiceStarted</span><span class="hljs-params">(FunctionContext context)</span> </span>{
+    <span class="hljs-comment">// called when the service is started</span>
+  }
+
+  <span class="hljs-meta">@Override</span>
+  <span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">onEvent</span><span class="hljs-params">(Event event, String streamId)</span> </span>{
+    <span class="hljs-comment">// called when an event arrives</span>
+  }
+
+  <span class="hljs-meta">@Override</span>
+  <span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">onServiceStopped</span><span class="hljs-params">()</span> </span>{
+    <span class="hljs-comment">// called when the service is stopped</span>
+  }
+}
+
+</code></pre>
+<p>The structure of a function class is easy to understand:</p>
+<ul>
+<li><em>getFunctionId</em> requires an identifier in form of a <code>FunctionId</code>, which defines the id itself along with a version number that can be freely chosen.</li>
+<li><em>requiredStreamIds</em> expects a list of references to data streams that are already available in StreamPipes. See below to learn how to find the id of a stream in StreamPipes.</li>
+<li><em>onServiceStarted</em> is called once the extensions service is started and can be used to initialize the function.</li>
+<li><em>onEvent</em> is called every time a new event arrives and provides a <code>streamId</code> as a reference to the corresponding stream, which is useful in case multiple data streams are received by the function.</li>
+<li><em>onServiceStopped</em> is called when the extensions service is stopped and can be used to perform any required cleanup.</li>
+</ul>
+<h3><a class="anchor" aria-hidden="true" id="getting-a-stream-id"></a><a href="#getting-a-stream-id" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.2 [...]
+<p>Functions require a reference to all data streams that should be retrieved by the function.
+Currently, the only way to get the ID of a function is by navigating to the <code>Asset Management</code> view in the StreamPipes UI.
+Create a new asset, click on <code>Edit Asset</code> and open <code>Add Link</code> in the <em>Linked Resources</em> panel.
+Choose <code>Data Source</code> as link type, select one of the available sources, copy the <code>Resource ID</code> and provide this ID in the <code>requiredStreamIds</code> method.</p>
+<h3><a class="anchor" aria-hidden="true" id="function-context"></a><a href="#function-context" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
+<p>The <code>onServiceStarted</code> method provides a function context which provides several convenience methods to work with functions:</p>
+<ul>
+<li><em>getFunctionId</em> returns the current function identifier</li>
+<li><em>getConfig</em> returns a reference to configuration options of the extensions service</li>
+<li><em>getClient</em> returns a reference to the StreamPipes client to interact with features from the REST API.</li>
+<li><em>getStreams</em> returns the data model of all data streams defined in the <code>requiredStreamIds</code> method.</li>
+<li><em>getSchema</em> returns the schema of a specific data stream by providing the <code>streamId</code></li>
+</ul>
+<h2><a class="anchor" aria-hidden="true" id="registering-a-function"></a><a href="#registering-a-function" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0 [...]
+<p>Registering a function is easy and can be done in the <em>Init</em> class of the service.
+E.g., considering a service definition as illustrated below, simply call <code>registerFunction</code> and
+provide an instance of your function.</p>
+<pre><code class="hljs css language-java">
+  <span class="hljs-meta">@Override</span>
+  <span class="hljs-function"><span class="hljs-keyword">public</span> SpServiceDefinition <span class="hljs-title">provideServiceDefinition</span><span class="hljs-params">()</span> </span>{
+    <span class="hljs-keyword">return</span> SpServiceDefinitionBuilder.create(<span class="hljs-string">"my-service-id"</span>,
+            <span class="hljs-string">"StreamPipes Function Example"</span>,
+            <span class="hljs-string">""</span>,
+            <span class="hljs-number">8090</span>)
+        .registerFunction(<span class="hljs-keyword">new</span> MyExampleFunction())
+        .registerMessagingFormats(
+            <span class="hljs-keyword">new</span> JsonDataFormatFactory())
+        .registerMessagingProtocols(
+            <span class="hljs-keyword">new</span> SpNatsProtocolFactory())
+        .build();
+  }
+  
+</code></pre>
+<h2><a class="anchor" aria-hidden="true" id="metrics--monitoring"></a><a href="#metrics--monitoring" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.2 [...]
+<p>Similar to pipeline elements, function register at the StreamPipes core.
+Running functions can be seen in the pipeline view of the user interface under <em>Functions</em>, right below the list of available pipelines.
+Similar to pipelines, simple metrics, monitoring info and exceptions can be viewed in the <em>Details</em> section of each function.</p>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.90.0/extend-tutorial-data-sinks.html"><span class="arrow-prev">← </span><span>Tutorial: Data Sinks</span></a><a class="docs-next button" href="/docs/docs/0.90.0/extend-sdk-event-model.html"><span>SDK: Event Model</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#introduction">Introduction</a></li><li><a href="#wri [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '0fedc89dddf2810657708b178e56ef02',
+                indexName: 'streampipes',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.90.0/extend-sdk-migration-service-discovery.html b/docs/docs/0.90.0/extend-sdk-migration-service-discovery.html
new file mode 100644
index 00000000..16dac8e4
--- /dev/null
+++ b/docs/docs/0.90.0/extend-sdk-migration-service-discovery.html
@@ -0,0 +1,164 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Migration Guide: New Service Discovery in 0.69.0 · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="## Introduction"/><meta name="docsearch:version" content="0.90.0"/><meta name="docsearch:language" content="en"/><meta property="og:title" conte [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">Migration Guide: New Service Discovery in 0.69.0</h1></header><article><div><span><h2><a class="anchor" aria-hidden="true" id="introduction"></a><a href="#introduction" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" w [...]
+<p>As part of our roadmap towards a release 1.0, Apache StreamPipes 0.69.0 features a new service discovery approach along with performance improvements related to a new storage layer for pipeline element descriptions.</p>
+<p>The new service discovery approach is better suited for cloud-native scenarios, as the hostname of a pipeline element is now decoupled from its description. As such, StreamPipes now supports recovery of pipeline elements independent from their assigned host.
+In addition, the new approach simplifies development of StreamPipes, e.g., in cases where the core is running in Docker and pipeline elements are developed on a local machine. In this case, the IP of the host machine should now be auto-discovered so that provision of environement variables should now be obsolete in most cases.
+The second large improvement is related to the replacement of RDF4J as the storage engine with a NoSQL database. This leads to much faster load times (you will notice this especially at system startup).</p>
+<p>While we are heavily working towards a stable release 1.0, we decided to put our efforts into the remaining features required for 1.0 and do not provide an auto-migration related to some breaking changes.
+Therefore, we recommend to reinstall StreamPipes when updating to 0.69.0. We currently plan to have at most two more releases before releasing the first 1.x version of StreamPipes.</p>
+<h2><a class="anchor" aria-hidden="true" id="installation"></a><a href="#installation" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
+<ul>
+<li>Before upgrading to 0.69.0, clean any existing installation (e.g., by running <code>docker-compose down -v</code>) and make sure that no volumes of StreamPipes are left.</li>
+<li>Upgrade to the latest installer version (can be found at <a href="https://github.com/apache/streampipes/tree/dev/installer">streampipes/installer</a>)</li>
+<li>Upon restart, make sure that the setup dialog appears (make sure that the new StreamPipes logo appears) and re-initialize the system.</li>
+</ul>
+<h2><a class="anchor" aria-hidden="true" id="sdk-changes"></a><a href="#sdk-changes" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
+<p>0.69.0 comes with a new <code>ServiceDefinitionBuilder</code> for pipelines, which simplifies the definition of a pipeline element.</p>
+<p>The ServiceDefinitionBuilder requires an ID of your extensions service, an optional title and description and a default port.
+It is best to provide 8090 as the default port, so that this will be the standard port of all StreamPipes extensions services at deployment time in a containerized environment.
+The port port can always be overriden by providing an <code>SP_PORT</code> environment variable.</p>
+<h3><a class="anchor" aria-hidden="true" id="init-class"></a><a href="#init-class" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
+<p>Modify the Init class of your pipeline element service as follows:</p>
+<pre><code class="hljs css language-java"><span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">ExamplesInit</span> <span class="hljs-keyword">extends</span> <span class="hljs-title">StandaloneModelSubmitter</span> </span>{
+
+  <span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> <span class="hljs-keyword">void</span> <span class="hljs-title">main</span><span class="hljs-params">(String[] args)</span> </span>{
+    <span class="hljs-keyword">new</span> ExamplesInit().init();
+  }
+
+  <span class="hljs-meta">@Override</span>
+  <span class="hljs-function"><span class="hljs-keyword">public</span> SpServiceDefinition <span class="hljs-title">provideServiceDefinition</span><span class="hljs-params">()</span> </span>{
+    <span class="hljs-keyword">return</span> SpServiceDefinitionBuilder.create(<span class="hljs-string">"org.apache.streampipes.processors.examples.jvm"</span>,
+            <span class="hljs-string">"StreamPipes Code Examples"</span>,
+            <span class="hljs-string">""</span>,
+            <span class="hljs-number">8090</span>)
+            .registerMessagingProtocols(<span class="hljs-keyword">new</span> SpKafkaProtocolFactory(), <span class="hljs-keyword">new</span> SpJmsProtocolFactory())
+            .registerMessagingFormats(<span class="hljs-keyword">new</span> JsonDataFormatFactory())
+            .registerPipelineElement(<span class="hljs-keyword">new</span> MyPipelineElementController())
+            .registerAdapter(<span class="hljs-keyword">new</span> MyAdapter())
+            .build();
+  }
+}
+</code></pre>
+<p>You can now easily define a StreamPipes extensions service that supports both custom adapters and pipeline elements by using the following Maven dependency:
+This is optional and no changes to your existing Maven dependencies (except the version, e.g., 0.69.0-SNAPSHOT) are required.</p>
+<pre><code class="hljs css language-maven"><span class="hljs-tag">&lt;<span class="hljs-name">dependency</span>&gt;</span>
+    <span class="hljs-tag">&lt;<span class="hljs-name">groupId</span>&gt;</span>org.apache.streampipes<span class="hljs-tag">&lt;/<span class="hljs-name">groupId</span>&gt;</span>
+    <span class="hljs-tag">&lt;<span class="hljs-name">artifactId</span>&gt;</span>streampipes-container-extensions<span class="hljs-tag">&lt;/<span class="hljs-name">artifactId</span>&gt;</span>
+<span class="hljs-tag">&lt;/<span class="hljs-name">dependency</span>&gt;</span>
+</code></pre>
+<h3><a class="anchor" aria-hidden="true" id="configs"></a><a href="#configs" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
+<p>Prior to version 0.69.0, additionally configs had to be provided in a separate <code>Config</code> class. This is now obsolete - configs can be directly provided within the builder class as follows:</p>
+<pre><code class="hljs css language-java">
+ <span class="hljs-meta">@Override</span>
+  <span class="hljs-function"><span class="hljs-keyword">public</span> SpServiceDefinition <span class="hljs-title">provideServiceDefinition</span><span class="hljs-params">()</span> </span>{
+    <span class="hljs-keyword">return</span> SpServiceDefinitionBuilder.create(<span class="hljs-string">"org.apache.streampipes.processors.examples.jvm"</span>,
+            <span class="hljs-string">"StreamPipes Code Examples"</span>,
+            <span class="hljs-string">""</span>,
+            <span class="hljs-number">8090</span>)
+            .registerPipelineElement(<span class="hljs-keyword">new</span> MyPipelineElement())
+            .registerAdapter(<span class="hljs-keyword">new</span> MyAdapter())
+            .addConfig(<span class="hljs-string">"key"</span>, <span class="hljs-number">1</span>)
+            .addConfig(<span class="hljs-string">"my-string-config"</span>, <span class="hljs-string">"myvalue"</span>)
+            .build();
+  }
+</code></pre>
+<p>Configs can be easily accessed from the <code>EventProcessorRuntimeContext</code> (or <code>EventSinkRuntimeContext</code>):</p>
+<pre><code class="hljs css language-java"><span class="hljs-meta">@Override</span>
+  <span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">onInvocation</span><span class="hljs-params">(Parameters params, 
+                            SpOutputCollector spOutputCollector, 
+                            EventProcessorRuntimeContext context)</span> </span>{
+  
+    Integer myConfigValue = context.getConfigStore().getConfig().getInteger(<span class="hljs-string">"key"</span>);
+  }
+</code></pre>
+<h3><a class="anchor" aria-hidden="true" id="service-discovery"></a><a href="#service-discovery" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2- [...]
+<p>An extensions service can be started by executing the Init class. StreamPipes will now automatically select the proper service IP address and register the service in Consul.
+You can inspect the selected IP address in the console:</p>
+<pre><code class="hljs"><span class="hljs-number">16</span>:<span class="hljs-number">41</span>:<span class="hljs-number">58.342</span> SP [main] INFO  o.a.s.commons.networking.Networking - Using <span class="hljs-built_in">auto</span>-discovered IP: <span class="hljs-number">172.30</span><span class="hljs-number">.80</span><span class="hljs-number">.1</span>
+<span class="hljs-number">16</span>:<span class="hljs-number">41</span>:<span class="hljs-number">58.364</span> SP [main] INFO  o.a.s.commons.networking.Networking - Using port <span class="hljs-keyword">from</span> provided environment variable SP_PORT: <span class="hljs-number">6025</span>
+<span class="hljs-number">16</span>:<span class="hljs-number">41</span>:<span class="hljs-number">58.367</span> SP [main] INFO  o.a.s.c.init.DeclarersSingleton - Registering <span class="hljs-number">0</span> configs <span class="hljs-keyword">in</span> key/value store
+<span class="hljs-number">16</span>:<span class="hljs-number">41</span>:<span class="hljs-number">58.400</span> SP [main] INFO  o.a.s.s.consul.ConsulProvider - Checking <span class="hljs-keyword">if</span> consul <span class="hljs-keyword">is</span> available...
+<span class="hljs-number">16</span>:<span class="hljs-number">41</span>:<span class="hljs-number">58.419</span> SP [main] INFO  o.a.s.s.consul.ConsulProvider - Successfully connected to Consul
+</code></pre>
+<p>In some (rare) cases, a non-resolvable IP will be selected. In this case, you can manually override the IP by providing a <code>SP_HOST</code> environment variable. This falls back to a similar behaviour as in pre-0.69.0-versions and will use the manually provided IP.</p>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.90.0/extend-sdk-output-strategies.html"><span class="arrow-prev">← </span><span>SDK: Output Strategies</span></a><a class="docs-next button" href="/docs/docs/0.90.0/technicals-architecture.html"><span>Architecture</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#introduction">Introduction</a></li><li><a href="#in [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '0fedc89dddf2810657708b178e56ef02',
+                indexName: 'streampipes',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/extend-sdk-output-strategies.html b/docs/docs/0.90.0/extend-sdk-output-strategies.html
similarity index 51%
copy from docs/docs/extend-sdk-output-strategies.html
copy to docs/docs/0.90.0/extend-sdk-output-strategies.html
index 5df55282..acb6a7b5 100644
--- a/docs/docs/extend-sdk-output-strategies.html
+++ b/docs/docs/0.90.0/extend-sdk-output-strategies.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -320,7 +320,7 @@ For such use cases, we can use a <code>DynamicTransformOperation</code>:</p>
     <span class="hljs-attr">"runtime"</span> : <span class="hljs-string">"Hello world!"</span>
 }
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/extend-sdk-static-properties.html"><span class="arrow-prev">← </span><span>SDK: Static Properties</span></a><a class="docs-next button" href="/docs/docs/extend-sdk-migration-service-discovery.html"><span>Migration Guide: 0.69.0</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#introduction">Introduction</a></li><li> [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.90.0/extend-sdk-static-properties.html"><span class="arrow-prev">← </span><span>SDK: Static Properties</span></a><a class="docs-next button" href="/docs/docs/0.90.0/extend-sdk-migration-service-discovery.html"><span>Migration Guide: 0.69.0</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#introduction">Introductio [...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
                     return;
diff --git a/docs/docs/0.90.0/extend-sdk-static-properties.html b/docs/docs/0.90.0/extend-sdk-static-properties.html
new file mode 100644
index 00000000..308ede26
--- /dev/null
+++ b/docs/docs/0.90.0/extend-sdk-static-properties.html
@@ -0,0 +1,239 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>SDK Guide: Static Properties · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="## Introduction"/><meta name="docsearch:version" content="0.90.0"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="SDK Guide: Stati [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">SDK Guide: Static Properties</h1></header><article><div><span><h2><a class="anchor" aria-hidden="true" id="introduction"></a><a href="#introduction" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill [...]
+<p>Static properties represent user-faced parameters that are provided by pipeline developers.
+Processing elements can specify required static properties, which will render different UI views in the pipeline editor.</p>
+<p>The following reference describes how static properties can be defined using the SDK.</p>
+<div class="admonition tip">
+<div class="admonition-title">Code on Github</div>
+<p>For all examples, the code can be found on <a href="https://github.com/apache/streampipes-examples/tree
+/dev/streampipes-pipeline-elements-examples-processors-jvm/src/main/java/org/apache/streampipes/pe/examples/jvm
+/staticproperty">Github</a>.</p>
+</div>
+<h2><a class="anchor" aria-hidden="true" id="reference"></a><a href="#reference" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
+<p>The methods described below to create static properties are available in the <code>ProcessingElementBuilder</code> and <code>DataSinkBuilder</code> classes and are usually used in the <code>declareModel</code> method of the controller class.</p>
+<h3><a class="anchor" aria-hidden="true" id="mapping-property"></a><a href="#mapping-property" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
+<p>In StreamPipes, processing elements usually operate on fields of an event stream. For instance, a filter processor operates on a specific field from an input stream (e.g., a field measuring the temperature).
+Typically, pipeline developers should select the exact field where the operations is applied upon by themselves.
+As this field is not yet known at pipeline element development time (as it is defined by the pipeline developer in the pipeline editor), mapping properties serve to map a stream requirement to a specific field from the actual input event stream.</p>
+<h3><a class="anchor" aria-hidden="true" id="unary-mapping-property"></a><a href="#unary-mapping-property" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0 [...]
+<p>A unary mapping property maps a stream requirement to an actual field of an event stream. Therefore, the <code>StreamRequirementsBuilder</code> provides the opportunity to directly add a mapping property based along with a property requirement:</p>
+<pre><code class="hljs css language-java">.requiredStream(StreamRequirementsBuilder.
+    create()
+    .requiredPropertyWithUnaryMapping(EpRequirements.numberReq(),
+            Labels.from(<span class="hljs-string">"mp-key"</span>, <span class="hljs-string">"My Mapping"</span>, <span class="hljs-string">""</span>),
+            PropertyScope.NONE)
+    .build())
+</code></pre>
+<p>This leads to a selection dialog in the pipeline element customization which provides the user with a selection of all event properties (fields) from the input stream that match the specified property requirement:</p>
+<p><img src="/docs/img/dev-guide-static-properties/sp-mapping-unary.png" width="80%" alt="Text"></p>
+<p>At invocation time, the value can be extracted in the <code>onInvocation</code> method as follows:</p>
+<pre><code class="hljs css language-java"><span class="hljs-comment">// Extract the mapping property value</span>
+String mappingPropertySelector = extractor.mappingPropertyValue(<span class="hljs-string">"mp-key"</span>);
+</code></pre>
+<p>Note that this method returns a <code>PropertySelector</code>, which can be used by the event model to extract the actual value of this field.</p>
+<h3><a class="anchor" aria-hidden="true" id="n-ary-mapping-property"></a><a href="#n-ary-mapping-property" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0 [...]
+<p>N-ary mapping properties work similar to unary mapping properties, but allow the mapping of one requirement to multiple event properties matching the requirement:</p>
+<pre><code class="hljs css language-java">.requiredStream(StreamRequirementsBuilder.
+    create()
+    .requiredPropertyWithNaryMapping(EpRequirements.numberReq(),
+            Labels.from(<span class="hljs-string">"mp-key"</span>, <span class="hljs-string">"My Mapping"</span>, <span class="hljs-string">""</span>),
+            PropertyScope.NONE)
+    .build())
+</code></pre>
+<p>This renders the following selection, where users can select more than one matching event property:</p>
+<p><img src="/docs/img/dev-guide-static-properties/sp-mapping-nary.png" width="80%" alt="Text"></p>
+<p>The following snippet returns a list containing the property selectors of all event properties that have been selected:</p>
+<pre><code class="hljs css language-java"><span class="hljs-comment">// Extract the mapping property value</span>
+List&lt;String&gt; mappingPropertySelectors = extractor.mappingPropertyValues(<span class="hljs-string">"mp-key"</span>);
+</code></pre>
+<h3><a class="anchor" aria-hidden="true" id="free-text-parameters"></a><a href="#free-text-parameters" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1 [...]
+<p>A free-text parameter requires the pipeline developer to enter a single value - which can be a string or another primitive data type.
+The input of free-text parameters can be restricted to specific value ranges or can be linked to the value set of a connected input data stream.</p>
+<h4><a class="anchor" aria-hidden="true" id="text-parameters"></a><a href="#text-parameters" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5  [...]
+<p>A text parameter lets the user enter a string value. The following code line in the controller class</p>
+<pre><code class="hljs css language-java">.requiredTextParameter(Labels.from(SP_KEY, <span class="hljs-string">"Example Name"</span>, <span class="hljs-string">"Example Description"</span>))
+</code></pre>
+<p>leads to the following input dialog in the pipeline editor:</p>
+<p><img src="/docs/img/dev-guide-static-properties/sp-text-parameter.png" width="80%" alt="Text"></p>
+<p>Users can enter any value that will be converted to a string datatype. To receive the entered value in the <code>onInvocation</code> method, use the following method from the <code>ParameterExtractor</code></p>
+<pre><code class="hljs css language-java">String textParameter = extractor.singleValueParameter(SP_KEY, String<span class="hljs-class">.<span class="hljs-keyword">class</span>)</span>;
+</code></pre>
+<h4><a class="anchor" aria-hidden="true" id="number-parameters"></a><a href="#number-parameters" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2- [...]
+<p>A number parameter lets the user enter a number value, either a floating-point number or an integer:</p>
+<pre><code class="hljs css language-java"><span class="hljs-comment">// create an integer parameter</span>
+.requiredIntegerParameter(Labels.from(SP_KEY, <span class="hljs-string">"Integer Parameter"</span>, <span class="hljs-string">"Example Description"</span>))
+
+<span class="hljs-comment">// create a float parameter</span>
+.requiredFloatParameter(Labels.from(<span class="hljs-string">"float-key"</span>, <span class="hljs-string">"Float Parameter"</span>, <span class="hljs-string">"Example Description"</span>))
+
+</code></pre>
+<p>leads to the following input dialog in the pipeline editor only accepting integer values:</p>
+<p><img src="/docs/img/dev-guide-static-properties/sp-number-parameter.png" width="80%" alt="Number Parameter"></p>
+<p>The pipeline editor performs type validation and ensures that only numbers can be added by the user. To receive the entered value in the <code>onInvocation</code> method, use the following method from the <code>ParameterExtractor</code></p>
+<pre><code class="hljs css language-java"><span class="hljs-comment">// Extract the integer parameter value</span>
+Integer integerParameter = extractor.singleValueParameter(SP_KEY, Integer<span class="hljs-class">.<span class="hljs-keyword">class</span>)</span>;
+
+<span class="hljs-comment">// Extract the float parameter value</span>
+Float floatParameter = extractor.singleValueParameter(<span class="hljs-string">"float-key"</span>, Float<span class="hljs-class">.<span class="hljs-keyword">class</span>)</span>;
+
+</code></pre>
+<h4><a class="anchor" aria-hidden="true" id="numbers-with-value-specification"></a><a href="#numbers-with-value-specification" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13. [...]
+<p>You can also specify the value range of a number-based free text parameter:</p>
+<pre><code class="hljs css language-java"><span class="hljs-comment">// create an integer parameter with value range</span>
+.requiredIntegerParameter(Labels.from(SP_KEY, <span class="hljs-string">"Integer Parameter"</span>, <span class="hljs-string">"Example Description"</span>), <span class="hljs-number">0</span>, <span class="hljs-number">100</span>, <span class="hljs-number">1</span>)
+
+</code></pre>
+<p>which renders the following input field:</p>
+<p><img src="/docs/img/dev-guide-static-properties/sp-number-parameter-with-range.png" width="80%" alt="Number Parameter"></p>
+<p>Receive the entered value in the same way as a standard number parameter.</p>
+<h4><a class="anchor" aria-hidden="true" id="free-text-parameters-linked-to-an-event-property"></a><a href="#free-text-parameters-linked-to-an-event-property" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9z [...]
+<h3><a class="anchor" aria-hidden="true" id="single-value-selections"></a><a href="#single-value-selections" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 [...]
+<p>Single-value selections let the user select from a pre-defined list of options.
+A single-value selection requires to select exactly one option.</p>
+<pre><code class="hljs css language-java">.requiredSingleValueSelection(Labels.from(<span class="hljs-string">"id"</span>, <span class="hljs-string">"Example Name"</span>, <span class="hljs-string">"Example Description"</span>),
+    Options.from(<span class="hljs-string">"Option A"</span>, <span class="hljs-string">"Option B"</span>, <span class="hljs-string">"Option C"</span>))
+
+</code></pre>
+<p>Single-value selections will be rendered as a set of radio buttons in the pipeline editor:</p>
+<p><img src="/docs/img/dev-guide-static-properties/sp-single-selection.png" width="80%" alt="Number Parameter"></p>
+<p>To extract the selected value, use the following method from the parameter extractor:</p>
+<pre><code class="hljs css language-java"><span class="hljs-comment">// Extract the selected value</span>
+String selectedSingleValue = extractor.selectedSingleValue(<span class="hljs-string">"id"</span>, String<span class="hljs-class">.<span class="hljs-keyword">class</span>)</span>;
+</code></pre>
+<div class="admonition tip">
+<div class="admonition-title">Declaring options</div>
+<p>Sometimes, you may want to use an internal name that differs from the display name of an option.
+For that, you can use the method Options.from(Tuple2<String, String>) and the extractor method selectedSingleValueInternalName.</p>
+</div>
+<h3><a class="anchor" aria-hidden="true" id="multi-value-selections"></a><a href="#multi-value-selections" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0 [...]
+<p>Multi-value selections let the user select from a pre-defined list of options, where multiple or no option might be selected.</p>
+<pre><code class="hljs css language-java">.requiredMultiValueSelection(Labels.from(<span class="hljs-string">"id"</span>, <span class="hljs-string">"Example Name"</span>, <span class="hljs-string">"Example Description"</span>),
+    Options.from(<span class="hljs-string">"Option A"</span>, <span class="hljs-string">"Option B"</span>, <span class="hljs-string">"Option C"</span>))
+
+</code></pre>
+<p>Multi-value selections will be rendered as a set of checkboxes in the pipeline editor:</p>
+<p><img src="/docs/img/dev-guide-static-properties/sp-multi-selection.png" width="80%" alt="Number Parameter"></p>
+<p>To extract the selected value, use the following method from the parameter extractor:</p>
+<pre><code class="hljs css language-java"><span class="hljs-comment">// Extract the selected value</span>
+List&lt;String&gt; selectedMultiValue = extractor.selectedMultiValues(<span class="hljs-string">"id"</span>, String<span class="hljs-class">.<span class="hljs-keyword">class</span>)</span>;
+</code></pre>
+<h3><a class="anchor" aria-hidden="true" id="domain-concepts"></a><a href="#domain-concepts" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5  [...]
+<p>(coming soon...)</p>
+<h3><a class="anchor" aria-hidden="true" id="collections"></a><a href="#collections" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
+<p>You can also define collections based on other static properties.</p>
+<pre><code class="hljs css language-java"><span class="hljs-comment">// create a collection parameter</span>
+.requiredParameterAsCollection(Labels.from(<span class="hljs-string">"collection"</span>, <span class="hljs-string">"Example Name"</span>, <span class="hljs-string">"Example "</span> +
+        <span class="hljs-string">"Description"</span>), StaticProperties.stringFreeTextProperty(Labels
+        .from(<span class="hljs-string">"text-property"</span>,<span class="hljs-string">"Text"</span>,<span class="hljs-string">""</span>)))
+</code></pre>
+<p>While the items of the collection can be provided in the same way as the underlying static property, the UI provides buttons to add and remove items to the collections.</p>
+<p><img src="/docs/img/dev-guide-static-properties/sp-collection.png" width="80%" alt="Number Parameter"></p>
+<p>To extract the selected values from the collection, use the following method from the parameter extractor:</p>
+<pre><code class="hljs css language-java"><span class="hljs-comment">// Extract the text parameter value</span>
+List&lt;String&gt; textParameters = extractor.singleValueParameterFromCollection(<span class="hljs-string">"collection"</span>, String<span class="hljs-class">.<span class="hljs-keyword">class</span>)</span>;
+</code></pre>
+<h3><a class="anchor" aria-hidden="true" id="runtime-resolvable-selections"></a><a href="#runtime-resolvable-selections" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12  [...]
+<p>In some cases, the options of selection parameters are not static, but depend on other values or might change at runtime. In this case, you can use runtime-resolvable selections.</p>
+<p>First, let your controller class implement <code>ResolvesContainerProvidedOptions</code>:</p>
+<pre><code class="hljs css language-java"><span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">RuntimeResolvableSingleValue</span> <span class="hljs-keyword">extends</span>
+     <span class="hljs-title">StandaloneEventProcessingDeclarer</span>&lt;<span class="hljs-title">DummyParameters</span>&gt; <span class="hljs-keyword">implements</span> <span class="hljs-title">ResolvesContainerProvidedOptions</span> </span>{ ... }
+</code></pre>
+<p>Next, define the parameter in the <code>declareModel</code> method:</p>
+<pre><code class="hljs css language-java"><span class="hljs-comment">// create a single value selection parameter that is resolved at runtime</span>
+    .requiredSingleValueSelectionFromContainer(Labels.from(<span class="hljs-string">"id"</span>, <span class="hljs-string">"Example Name"</span>, <span class="hljs-string">"Example "</span> +
+            <span class="hljs-string">"Description"</span>))
+</code></pre>
+<p>Finally, implement the method <code>resolveOptions</code>, which will be called at runtime once the processor is used:</p>
+<pre><code class="hljs css language-java">  <span class="hljs-meta">@Override</span>
+  <span class="hljs-function"><span class="hljs-keyword">public</span> List&lt;RuntimeOptions&gt; <span class="hljs-title">resolveOptions</span><span class="hljs-params">(String requestId, EventProperty linkedEventProperty)</span> </span>{
+    <span class="hljs-keyword">return</span> Arrays.asList(<span class="hljs-keyword">new</span> RuntimeOptions(<span class="hljs-string">"I was defined at runtime"</span>, <span class="hljs-string">""</span>));
+  }
+</code></pre>
+<p>The UI will render a single-value parameter based on the options provided at runtime:</p>
+<p><img src="/docs/img/dev-guide-static-properties/sp-single-selection-remote.png" width="80%" alt="Number Parameter"></p>
+<p>The parameter extraction does not differ from the extraction of static single-value parameters.</p>
+<div class="admonition info">
+<div class="admonition-title">Multi-value selections</div>
+<p>Although this example shows the usage of runtime-resolvable selections using single value selections, the same also works for multi-value selections!</p>
+</div>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.90.0/extend-sdk-stream-requirements.html"><span class="arrow-prev">← </span><span>SDK: Stream Requirements</span></a><a class="docs-next button" href="/docs/docs/0.90.0/extend-sdk-output-strategies.html"><span>SDK: Output Strategies</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#introduction">Introduction</a></ [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '0fedc89dddf2810657708b178e56ef02',
+                indexName: 'streampipes',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.90.0/extend-sdk-stream-requirements.html b/docs/docs/0.90.0/extend-sdk-stream-requirements.html
new file mode 100644
index 00000000..20373974
--- /dev/null
+++ b/docs/docs/0.90.0/extend-sdk-stream-requirements.html
@@ -0,0 +1,214 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>SDK Guide: Stream Requirements · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="## Introduction"/><meta name="docsearch:version" content="0.90.0"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="SDK Guide: Str [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">SDK Guide: Stream Requirements</h1></header><article><div><span><h2><a class="anchor" aria-hidden="true" id="introduction"></a><a href="#introduction" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fi [...]
+<p>Data processors and data sinks can define <code>StreamRequirements</code>. Stream requirements allow pipeline elements to express requirements on an incoming event stream that are needed for the element to work properly.
+Once users create pipelines in the StreamPipes Pipeline Editor, these requirements are verified against the connected event stream.
+By using this feature, StreamPipes ensures that only pipeline elements can be connected that are syntactically and semantically valid.</p>
+<p>This guide covers the creation of stream requirements. Before reading this section, we recommend that you make yourself familiar with the SDK guide on <a href="/docs/docs/0.90.0/dev-guide-sdk-guide-processors.html">data processors</a> and <a href="/docs/docs/0.90.0/dev-guide-sdk-guide-sinks.html">data sinks</a>.</p>
+<div class="admonition tip">
+<div class="admonition-title">Code on Github</div>
+<p>For all examples, the code can be found on <a href="https://www.github.com/apache/streampipes-examples/tree/dev/streampipes-pipeline-elements-examples-processors-jvm/src/main/java/org/apache/streampipes/pe/examples/jvm/requirements/">Github</a>.</p>
+</div>
+<h2><a class="anchor" aria-hidden="true" id="the-streamrequirementsbuilder"></a><a href="#the-streamrequirementsbuilder" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12  [...]
+<p>Stream requirements can be defined in the <code>declareModel</code> method of the pipeline element class. Start with a method body like this:</p>
+<pre><code class="hljs css language-java">
+<span class="hljs-meta">@Override</span>
+  <span class="hljs-function"><span class="hljs-keyword">public</span> DataProcessorDescription <span class="hljs-title">declareModel</span><span class="hljs-params">()</span> </span>{
+    <span class="hljs-keyword">return</span> ProcessingElementBuilder.create(ID, PIPELINE_ELEMENT_NAME, DESCRIPTION)
+            .requiredStream(StreamRequirementsBuilder.
+                    create()
+
+                    .build())
+
+            .supportedProtocols(SupportedProtocols.kafka())
+            .supportedFormats(SupportedFormats.jsonFormat())
+            .outputStrategy(OutputStrategies.keep())
+
+            .build();
+  }
+</code></pre>
+<p>The <code>StreamRequirementsBuilder</code> class provides methods to add stream requirements to a pipeline element.</p>
+<h2><a class="anchor" aria-hidden="true" id="requirements-on-primitive-fields"></a><a href="#requirements-on-primitive-fields" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13. [...]
+<p>As a very first example, let's assume we would like to create a data processor that filters numerical values that are above a given threshold.
+Consequently, any data stream that is connected to the filter processor needs to provide a numerical value.</p>
+<p>The stream requirement would be assigned as follows:</p>
+<pre><code class="hljs css language-java"><span class="hljs-meta">@Override</span>
+  <span class="hljs-function"><span class="hljs-keyword">public</span> DataProcessorDescription <span class="hljs-title">declareModel</span><span class="hljs-params">()</span> </span>{
+    <span class="hljs-keyword">return</span> ProcessingElementBuilder.create(ID, PIPELINE_ELEMENT_NAME, DESCRIPTION)
+            .requiredStream(StreamRequirementsBuilder
+                    .create()
+                    .requiredProperty(EpRequirements.numberReq())
+                    .build())
+
+            .supportedProtocols(SupportedProtocols.kafka())
+            .supportedFormats(SupportedFormats.jsonFormat())
+            .outputStrategy(OutputStrategies.keep())
+
+            .build();
+  }
+</code></pre>
+<p>Note the line starting with <code>requiredProperty</code>, which requires any stream to provide a datatype of type <code>number</code>.</p>
+<p>In many cases, you'll want to let the user select a specific field from a data stream from all available fields that match the specified requirement. For that, you simply use the method <code>requiredPropertyWithUnaryMapping</code> as follows:</p>
+<pre><code class="hljs css language-java"><span class="hljs-meta">@Override</span>
+  <span class="hljs-function"><span class="hljs-keyword">public</span> DataProcessorDescription <span class="hljs-title">declareModel</span><span class="hljs-params">()</span> </span>{
+    <span class="hljs-keyword">return</span> ProcessingElementBuilder.create(ID, PIPELINE_ELEMENT_NAME, DESCRIPTION)
+            .requiredStream(StreamRequirementsBuilder
+                    .create()
+                    .requiredPropertyWithUnaryMapping(EpRequirements.numberReq(),
+                    Labels.from(<span class="hljs-string">"number-mapping"</span>, <span class="hljs-string">"The value that should be filtered"</span>, <span class="hljs-string">""</span>), PropertyScope.NONE)
+                    .build())
+
+            .supportedProtocols(SupportedProtocols.kafka())
+            .supportedFormats(SupportedFormats.jsonFormat())
+            .outputStrategy(OutputStrategies.keep())
+
+            .build();
+  }
+</code></pre>
+<p>See also the developer guide on <a href="/docs/docs/0.90.0/dev-guide-static-properties.html">static properties</a> to better understand the usage of <code>MappingProperties</code>.</p>
+<p>Requirements on primitive fields can be specified for all common datatypes:</p>
+<pre><code class="hljs css language-java"> <span class="hljs-meta">@Override</span>
+  <span class="hljs-function"><span class="hljs-keyword">public</span> DataProcessorDescription <span class="hljs-title">declareModel</span><span class="hljs-params">()</span> </span>{
+    <span class="hljs-keyword">return</span> ProcessingElementBuilder.create(<span class="hljs-string">"org.streampipes.examples.requirements"</span> +
+            <span class="hljs-string">".simple"</span>, <span class="hljs-string">"Simple requirements specification examples"</span>, <span class="hljs-string">""</span>)
+            .requiredStream(StreamRequirementsBuilder.
+                    create()
+                    .requiredProperty(EpRequirements.numberReq()) <span class="hljs-comment">// any number</span>
+                    .requiredProperty(EpRequirements.doubleReq()) <span class="hljs-comment">// any field of type double</span>
+                    .requiredProperty(EpRequirements.booleanReq()) <span class="hljs-comment">// any field of type boolean</span>
+                    .requiredProperty(EpRequirements.integerReq()) <span class="hljs-comment">// any field of type integer</span>
+                    .requiredProperty(EpRequirements.stringReq()) <span class="hljs-comment">// any field of type string</span>
+
+                    .requiredProperty(EpRequirements.anyProperty()) <span class="hljs-comment">// any field allowed (no restriction)</span>
+                    .requiredProperty(EpRequirements.timestampReq())  <span class="hljs-comment">// any timestamp field</span>
+                    .build())
+
+
+            .supportedProtocols(SupportedProtocols.kafka())
+            .supportedFormats(SupportedFormats.jsonFormat())
+            .outputStrategy(OutputStrategies.keep())
+
+            .build();
+</code></pre>
+<h3><a class="anchor" aria-hidden="true" id="specifying-semantics"></a><a href="#specifying-semantics" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1 [...]
+<p>For some algorithms, only specifying the datatype is not sufficient. Let's consider a geofencing algorithm that detects the precense some geospatial coordinate (e.g., from a vehicle) within a given location.</p>
+<p>You could specify something like this:</p>
+<pre><code class="hljs css language-java">    StreamRequirementsBuilder
+    .create()
+    .requiredPropertyWithUnaryMapping(EpRequirements.doubleEp(), Labels.from(<span class="hljs-string">"mapping-latitude"</span>, <span class="hljs-string">"Latitude"</span>, <span class="hljs-string">""</span>), PropertyScope.NONE)
+    .requiredPropertyWithUnaryMapping(EpRequirements.doubleEp(), Labels.from(<span class="hljs-string">"mapping-longitude"</span>, <span class="hljs-string">"Longitude"</span>, <span class="hljs-string">""</span>), PropertyScope.NONE)
+    .build()
+</code></pre>
+<p>However, this would allow users to create strange pipelines as users could connect any stream containing a double value to our geofencing algorithm.
+To avoid such situations, you can also specify requirements based on the semantics of a field:</p>
+<pre><code class="hljs css language-java">    StreamRequirementsBuilder
+    .create()
+    .requiredPropertyWithUnaryMapping(EpRequirements.domainPropertyReq(SO.Latitude), Labels.from(<span class="hljs-string">"mapping-latitude"</span>, <span class="hljs-string">"Latitude"</span>, <span class="hljs-string">""</span>), PropertyScope.NONE)
+    .requiredPropertyWithUnaryMapping(EpRequirements.domainPropertyReq(SO.Longitude), Labels.from(<span class="hljs-string">"mapping-longitude"</span>, <span class="hljs-string">"Longitude"</span>, <span class="hljs-string">""</span>), PropertyScope.NONE)
+    .build()
+</code></pre>
+<p>Note that in this case, we make use of Schema.org's <code>Latitude</code> concept (<a href="https://schema.org/latitude">https://schema.org/latitude</a>). StreamPipes already includes popular vocabularies for specifying semantics. You are also free to use your own vocabularies.</p>
+<h2><a class="anchor" aria-hidden="true" id="requirements-on-lists"></a><a href="#requirements-on-lists" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2 [...]
+<p>Similarly to primitive requirements, you can define processors that require data streams with list fields, see the following examples:</p>
+<pre><code class="hljs css language-java"><span class="hljs-meta">@Override</span>
+  <span class="hljs-function"><span class="hljs-keyword">public</span> DataProcessorDescription <span class="hljs-title">declareModel</span><span class="hljs-params">()</span> </span>{
+    <span class="hljs-keyword">return</span> ProcessingElementBuilder.create(<span class="hljs-string">"org.streampipes.examples.requirements"</span> +
+            <span class="hljs-string">".list"</span>, <span class="hljs-string">"List requirements specification examples"</span>, <span class="hljs-string">""</span>)
+            .requiredStream(StreamRequirementsBuilder.
+                    create()
+                    .requiredProperty(EpRequirements.listRequirement(Datatypes.Integer))
+                    .requiredProperty(EpRequirements.listRequirement(Datatypes.Double))
+                    .requiredProperty(EpRequirements.listRequirement(Datatypes.Boolean))
+                    .requiredProperty(EpRequirements.listRequirement(Datatypes.String))
+                    .build())
+
+
+            .supportedProtocols(SupportedProtocols.kafka())
+            .supportedFormats(SupportedFormats.jsonFormat())
+            .outputStrategy(OutputStrategies.keep())
+
+            .build();
+  }
+</code></pre>
+<h2><a class="anchor" aria-hidden="true" id="requirements-on-nested-properties"></a><a href="#requirements-on-nested-properties" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S1 [...]
+<p>(coming soon, see the Javadoc for now)</p>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.90.0/extend-sdk-event-model.html"><span class="arrow-prev">← </span><span>SDK: Event Model</span></a><a class="docs-next button" href="/docs/docs/0.90.0/extend-sdk-static-properties.html"><span>SDK: Static Properties</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#introduction">Introduction</a></li><li><a href=" [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '0fedc89dddf2810657708b178e56ef02',
+                indexName: 'streampipes',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.90.0/extend-setup.html b/docs/docs/0.90.0/extend-setup.html
new file mode 100644
index 00000000..e9e2c641
--- /dev/null
+++ b/docs/docs/0.90.0/extend-setup.html
@@ -0,0 +1,111 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Development Setup · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pipeline elements in StreamPipes are provided as standalone microservices. New pipeline elements can be easily developed using the provided Maven archetypes and can be install [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">Development Setup</h1></header><article><div><span><p>Pipeline elements in StreamPipes are provided as standalone microservices. New pipeline elements can be easily developed using the provided Maven archetypes and can be installed in StreamPipes at runtime.</p>
+<p>In this section, we describe our recommended minimum setup for locally setting up a development instance of StreamPipes needed to develop, run and test new pipeline elements.</p>
+<h2><a class="anchor" aria-hidden="true" id="ide--required-dev-tools"></a><a href="#ide--required-dev-tools" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 [...]
+<p>StreamPipes does not have specific requirements on the IDE - so feel free to choose the IDE of your choice.
+The only requirements in terms of development tools are that you have Java 8 and Maven installed.</p>
+<h2><a class="anchor" aria-hidden="true" id="streampipes-cli-docker-based-local-streampipes-instance"></a><a href="#streampipes-cli-docker-based-local-streampipes-instance" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22- [...]
+<p>In order to quickly test developed pipeline elements without needing to install all services required by StreamPipes, we provide a CLI tool that allows you to selectively start StreamPipes components.
+The CLI tool allows to switch to several templates (based on docker-compose) depending on the role.</p>
+<p>The documentation on the usage of the CLI tool is available <a href="/docs/docs/0.90.0/extend-cli.html">here</a>.</p>
+<h2><a class="anchor" aria-hidden="true" id="override-the-sp_host-variable"></a><a href="#override-the-sp_host-variable" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12  [...]
+<p>By default, the backend/core of StreamPipes registers itself within StreamPipes' service discovery mechanism using an auto-discovered hostname.
+Usually, this will be an IP address from the Docker network, which is not resolvable from outside. Therefore, for local development you need to override the hostname with an IP address which is accessible from your local host where you develop extensions.
+When using the CLI, open the CLI folder <code>installer/cli</code>, navigate to <code>deploy/standalone/backend</code>, open the <code>docker-compose.dev.yml</code> file and add the SP_HOST env variable, e.g.</p>
+<pre><code class="hljs"><span class="hljs-symbol">version:</span> <span class="hljs-string">"3.4"</span>
+<span class="hljs-symbol">services:</span>
+<span class="hljs-symbol">  backend:</span>
+<span class="hljs-symbol">    ports:</span>
+      - <span class="hljs-string">"8030:8030"</span>
+<span class="hljs-symbol">    environment:</span>
+      - SP_HOST=host.docker.internal
+</code></pre>
+<p>Note that host.docker.internal will work as an alias under Docker for Desktop on Windows and Mac, but not on Linux or M1. In this case, provide a resolvable hostname or IP address manually.</p>
+<h2><a class="anchor" aria-hidden="true" id="starter-projects"></a><a href="#starter-projects" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
+<p>Now, once you've started the development instance, you are ready to develop your very first pipeline element.
+Instead of starting from scratch, we recommend using our provided maven archetypes:</p>
+<h3><a class="anchor" aria-hidden="true" id="maven-archetypes"></a><a href="#maven-archetypes" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
+<p>Create the Maven archetype as described in the <a href="/docs/docs/0.90.0/extend-archetypes.html">Maven Archetypes</a> guide.</p>
+<h3><a class="anchor" aria-hidden="true" id="examples"></a><a href="#examples" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
+<p>We provide several examples that explain the usage of some concepts in this <a href="https://github.com/apache/streampipes-examples">Github repo</a>.</p>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.90.0/deploy-security.html"><span class="arrow-prev">← </span><span>Security</span></a><a class="docs-next button" href="/docs/docs/0.90.0/extend-cli.html"><span class="function-name-prevnext">StreamPipes CLI</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#ide--required-dev-tools">IDE &amp; required dev tools</a> [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '0fedc89dddf2810657708b178e56ef02',
+                indexName: 'streampipes',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/extend-tutorial-data-processors.html b/docs/docs/0.90.0/extend-tutorial-data-processors.html
similarity index 55%
copy from docs/docs/extend-tutorial-data-processors.html
copy to docs/docs/0.90.0/extend-tutorial-data-processors.html
index 65a8d35b..8c397bb4 100644
--- a/docs/docs/extend-tutorial-data-processors.html
+++ b/docs/docs/0.90.0/extend-tutorial-data-processors.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -80,7 +80,7 @@ Enter the following command in a command line of your choice (Apache Maven needs
 <span class="hljs-attribute">-DarchetypeVersion</span>=0.70.0 <span class="hljs-attribute">-DgroupId</span>=my.groupId \
 <span class="hljs-attribute">-DartifactId</span>=my-example <span class="hljs-attribute">-DclassNamePrefix</span>=MyExample <span class="hljs-attribute">-DpackageName</span>=mypackagename
 </code></pre>
-<p>You will see a project structure similar to the structure shown in the <a href="/docs/docs/extend-archetypes.html">archetypes</a> section.</p>
+<p>You will see a project structure similar to the structure shown in the <a href="/docs/docs/0.90.0/extend-archetypes.html">archetypes</a> section.</p>
 <div class="admonition tip">
 <div class="admonition-title">Tip</div>
 <p>Besides the basic project skeleton, the sample project also includes an example Dockerfile you can use to package your application into a Docker container.</p>
@@ -172,7 +172,7 @@ In addition, we can assign a <em>value specification</em> to the parameter indic
 Our example supports a radius value between 0 and 1000 with a granularity of 1.
 In the StreamPipes UI, a required text parameter is rendered as a text input field, in case we provide an optional value specification, a slider input is automatically generated.</p>
 <p>Such user-defined parameters are called <em>static properties</em>. There are many different types of static properties (see
-the <a href="/docs/docs/extend-sdk-static-properties.html">Processor SDK</a> for an overview).</p>
+the <a href="/docs/docs/0.90.0/extend-sdk-static-properties.html">Processor SDK</a> for an overview).</p>
 <p>In this example, we'll further add two very simple input fields to let users provide latitude and longitude of the geofence center.</p>
 <p>Add the following line to the <code>declareModel</code> method:</p>
 <pre><code class="hljs css language-java">   .requiredFloatParameter(Labels.from(LATITUDE_KEY, <span class="hljs-string">"Latitude"</span>, <span class="hljs-string">"The latitude value"</span>))
@@ -313,7 +313,7 @@ String longitudeFieldName = parameters.extractor().mappingPropertyValue(<span cl
 </code></pre>
 <p>We won't go into details here as this isn't StreamPipes-related code, but in general the class extracts latitude and longitude fields from the input event (which is provided as a map data type) and calculates the distance between the geofence center and these coordinates.
 If the distance is below the given radius, the event is forwarded to the next operator.</p>
-<p>See the <a href="/docs/docs/extend-sdk-event-model.html">event model</a> guide to learn how to extract parameters from events.</p>
+<p>See the <a href="/docs/docs/0.90.0/extend-sdk-event-model.html">event model</a> guide to learn how to extract parameters from events.</p>
 <h2><a class="anchor" aria-hidden="true" id="registering-the-pipeline-element"></a><a href="#registering-the-pipeline-element" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13. [...]
 <p>The final step is to register the data processor in the <code>Init</code> method. Add the following line to the <code>SpServiceDefinitionBuilder</code>:</p>
 <pre><code class="hljs css language-java"> .registerPipelineElement(<span class="hljs-keyword">new</span> GeofencingProcessor())
@@ -335,12 +335,12 @@ In some cases, the detected hostname is not resolvable from within a container (
 <p>Configure your IDE to provide an environment variable called <code>SP_DEBUG</code> with value <code>true</code> when starting the project.</p>
 <p>Execute the main method in the class <code>Init</code> we've just created.</p>
 <p>The service automatically registers itself in StreamPipes.
-To install the just created element, open the StreamPipes UI and follow the manual provided in the <a href="/docs/docs/use-install-pipeline-elements.html">user guide</a>.</p>
+To install the just created element, open the StreamPipes UI and follow the manual provided in the <a href="/docs/docs/0.90.0/use-install-pipeline-elements.html">user guide</a>.</p>
 <h2><a class="anchor" aria-hidden="true" id="read-more"></a><a href="#read-more" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
 <p>Congratulations! You've just created your first data processor for StreamPipes.
 There are many more things to explore and data processors can be defined in much more detail using multiple wrappers.
-Follow our <a href="/docs/docs/extend-sdk-static-properties.html">SDK guide</a> to see what's possible!</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/extend-tutorial-data-sources.html"><span class="arrow-prev">← </span><span>Tutorial: Data Sources</span></a><a class="docs-next button" href="/docs/docs/extend-tutorial-data-sinks.html"><span>Tutorial: Data Sinks</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#objective">Objective</a></li><li><a href="#project-set [...]
+Follow our <a href="/docs/docs/0.90.0/extend-sdk-static-properties.html">SDK guide</a> to see what's possible!</p>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.90.0/extend-tutorial-data-sources.html"><span class="arrow-prev">← </span><span>Tutorial: Data Sources</span></a><a class="docs-next button" href="/docs/docs/0.90.0/extend-tutorial-data-sinks.html"><span>Tutorial: Data Sinks</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#objective">Objective</a></li><li><a href [...]
                 document.addEventListener('keyup', function(e) {
                   if (e.target !== document.body) {
                     return;
diff --git a/docs/docs/0.90.0/extend-tutorial-data-sinks.html b/docs/docs/0.90.0/extend-tutorial-data-sinks.html
new file mode 100644
index 00000000..4a68c830
--- /dev/null
+++ b/docs/docs/0.90.0/extend-tutorial-data-sinks.html
@@ -0,0 +1,268 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Tutorial: Data Sinks · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="In this tutorial, we will add a new data sink using the standalone wrapper."/><meta name="docsearch:version" content="0.90.0"/><meta name="docsearch:language" content="en"/ [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">Tutorial: Data Sinks</h1></header><article><div><span><p>In this tutorial, we will add a new data sink using the standalone wrapper.</p>
+<p>From an architectural point of view, we will create a self-contained service that includes the description of the data sink and a corresponding implementation.</p>
+<h2><a class="anchor" aria-hidden="true" id="objective"></a><a href="#objective" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
+<p>We are going to create a new data sink that calls an external HTTP endpoint to forward data to an external service.</p>
+<p>For each incoming event, an external service is invoked using an HTTP POST request. In this example, we'll call an endpoint provided by <a href="https://requestbin.com/">RequestBin</a>.
+To setup your own endpoint, go to <a href="https://requestbin.com/">https://requestbin.com/</a> and click &quot;Create a request bin&quot;. Copy the URL of the newly created endpoint.</p>
+<h2><a class="anchor" aria-hidden="true" id="project-setup"></a><a href="#project-setup" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
+<p>Instead of creating a new project from scratch, we recommend to use the Maven archetype to create a new project skeleton (streampipes-archetype-extensions-jvm).
+Enter the following command in a command line of your choice (Apache Maven needs to be installed):</p>
+<pre><code class="hljs">mvn archetype:generate <span class="hljs-attribute">-DarchetypeGroupId</span>=org.apache.streampipes \
+<span class="hljs-attribute">-DarchetypeArtifactId</span>=streampipes-archetype-extensions-jvm <span class="hljs-attribute">-DarchetypeVersion</span>=0.70.0 \
+<span class="hljs-attribute">-DgroupId</span>=org.streampipes.tutorial <span class="hljs-attribute">-DartifactId</span>=sink-tutorial <span class="hljs-attribute">-DclassNamePrefix</span>=Rest <span class="hljs-attribute">-DpackageName</span>=mypackage
+</code></pre>
+<p>You will see a project structure similar to the structure shown in the <a href="/docs/docs/0.90.0/extend-archetypes.html">archetypes</a> section.</p>
+<div class="admonition tip">
+<div class="admonition-title">Tip</div>
+<p>Besides the basic project skeleton, the sample project also includes an example Dockerfile you can use to package your application into a Docker container.</p>
+</div>
+<p>Now you're ready to create your first data sink for StreamPipes!</p>
+<h2><a class="anchor" aria-hidden="true" id="adding-data-sink-requirements"></a><a href="#adding-data-sink-requirements" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12  [...]
+<p>First, we will add a new stream requirement.
+Create a class <code>RestSink</code> which should look as follows:</p>
+<pre><code class="hljs css language-java"><span class="hljs-keyword">package</span> org.apache.streampipes.pe.example;
+
+<span class="hljs-keyword">import</span> org.apache.streampipes.commons.exceptions.SpRuntimeException;
+<span class="hljs-keyword">import</span> org.apache.streampipes.model.DataSinkType;
+<span class="hljs-keyword">import</span> org.apache.streampipes.model.graph.DataSinkDescription;
+<span class="hljs-keyword">import</span> org.apache.streampipes.model.runtime.Event;
+<span class="hljs-keyword">import</span> org.apache.streampipes.model.schema.PropertyScope;
+<span class="hljs-keyword">import</span> org.apache.streampipes.sdk.builder.DataSinkBuilder;
+<span class="hljs-keyword">import</span> org.apache.streampipes.sdk.builder.StreamRequirementsBuilder;
+<span class="hljs-keyword">import</span> org.apache.streampipes.sdk.helpers.EpRequirements;
+<span class="hljs-keyword">import</span> org.apache.streampipes.sdk.helpers.Labels;
+<span class="hljs-keyword">import</span> org.apache.streampipes.sdk.helpers.Locales;
+<span class="hljs-keyword">import</span> org.apache.streampipes.sdk.utils.Assets;
+<span class="hljs-keyword">import</span> org.apache.streampipes.wrapper.context.EventSinkRuntimeContext;
+<span class="hljs-keyword">import</span> org.apache.streampipes.wrapper.standalone.SinkParams;
+<span class="hljs-keyword">import</span> org.apache.streampipes.wrapper.standalone.StreamPipesDataSink;
+
+<span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">RestSink</span> <span class="hljs-keyword">extends</span> <span class="hljs-title">StreamPipesDataSink</span> </span>{
+
+  <span class="hljs-meta">@Override</span>
+  <span class="hljs-function"><span class="hljs-keyword">public</span> DataSinkDescription <span class="hljs-title">declareModel</span><span class="hljs-params">()</span> </span>{
+    <span class="hljs-keyword">return</span> DataSinkBuilder.create(<span class="hljs-string">"org.apache.streampipes.tutorial.pe.sink.rest"</span>)
+        .category(DataSinkType.NOTIFICATION)
+        .withAssets(Assets.DOCUMENTATION, Assets.ICON)
+        .withLocales(Locales.EN)
+        .requiredStream(StreamRequirementsBuilder
+                .create()
+                .requiredPropertyWithNaryMapping(EpRequirements.anyProperty(), Labels.withId(
+                        <span class="hljs-string">"fields-to-send"</span>), PropertyScope.NONE)
+                .build())
+        .build();
+  }
+
+  <span class="hljs-meta">@Override</span>
+  <span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">onInvocation</span><span class="hljs-params">(SinkParams parameters, EventSinkRuntimeContext runtimeContext)</span> <span class="hljs-keyword">throws</span> SpRuntimeException </span>{
+
+  }
+
+  <span class="hljs-meta">@Override</span>
+  <span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">onEvent</span><span class="hljs-params">(Event event)</span> <span class="hljs-keyword">throws</span> SpRuntimeException </span>{
+
+  }
+
+  <span class="hljs-meta">@Override</span>
+  <span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">onDetach</span><span class="hljs-params">()</span> <span class="hljs-keyword">throws</span> SpRuntimeException </span>{
+
+  }
+}
+
+
+</code></pre>
+<p>In this class, we need to implement three methods: The <code>declareModel</code> method is used to define abstract stream requirements such as event properties that must be present in any input stream that is later connected to the element using the StreamPipes UI.
+The second method, <code>onInvocation</code> is called once a pipeline using this sink is started. The third method, <code>onEvent</code>, is called for every incoming event.</p>
+<p>The <code>declareModel</code> method describes the properties of our data sink:</p>
+<ul>
+<li><code>category</code> defines a category for this sink.</li>
+<li><code>withAssets</code> denotes that we will provide an external documentation file and an icon, which can be found in the <code>resources</code> folder</li>
+<li><code>withLocales</code> defines that we will provide an external language file, also available in the <code>resources</code> folder</li>
+<li><code>requiredStream</code> defines requirements any input stream connected to this sink must provide. In this case, we do not have any specific requirements, we just forward all incoming events to the REST sink. However, we want to let the user display a list of available fields from the connected input event, where users can select a subset. This is defined by defining a Mapping from the empty requirement. This will later on render a selection dialog in the pipeline editor.</li>
+</ul>
+<p>The <code>onInvocation</code> method is called when a pipeline containing the sink is started. Once a pipeline is started, we would like to extract user-defined parameters.
+In this example, we simply extract the fields selected by users that should be forwarded to the REST sink. Finally, we return a new configured event sink containing the parameters.</p>
+<h2><a class="anchor" aria-hidden="true" id="pipeline-element-invocation"></a><a href="#pipeline-element-invocation" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 1 [...]
+<p>Once users start a pipeline that uses our geofencing component, the <em>onInvocation</em> method in our class is called. The class <code>SinkParams</code> includes a graph that contains information on the configuration parameters a users has selected in the pipeline editor and information on the acutal streams that are connected to the pipeline element.</p>
+<h2><a class="anchor" aria-hidden="true" id="adding-an-implementation"></a><a href="#adding-an-implementation" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-. [...]
+<p>Now we'll add a proper implementation (i.e., the Rest call executed for every incoming event) to the following methods:</p>
+<p>Our final class should look as follows:</p>
+<pre><code class="hljs css language-java"><span class="hljs-keyword">package</span> org.apache.streampipes.pe.example;
+
+<span class="hljs-keyword">import</span> com.google.common.base.Charsets;
+<span class="hljs-keyword">import</span> org.apache.http.client.fluent.Request;
+<span class="hljs-keyword">import</span> org.apache.http.entity.StringEntity;
+<span class="hljs-keyword">import</span> org.apache.streampipes.commons.exceptions.SpRuntimeException;
+<span class="hljs-keyword">import</span> org.apache.streampipes.dataformat.SpDataFormatDefinition;
+<span class="hljs-keyword">import</span> org.apache.streampipes.dataformat.json.JsonDataFormatDefinition;
+<span class="hljs-keyword">import</span> org.apache.streampipes.model.DataSinkType;
+<span class="hljs-keyword">import</span> org.apache.streampipes.model.graph.DataSinkDescription;
+<span class="hljs-keyword">import</span> org.apache.streampipes.model.runtime.Event;
+<span class="hljs-keyword">import</span> org.apache.streampipes.model.schema.PropertyScope;
+<span class="hljs-keyword">import</span> org.apache.streampipes.sdk.builder.DataSinkBuilder;
+<span class="hljs-keyword">import</span> org.apache.streampipes.sdk.builder.StreamRequirementsBuilder;
+<span class="hljs-keyword">import</span> org.apache.streampipes.sdk.helpers.EpRequirements;
+<span class="hljs-keyword">import</span> org.apache.streampipes.sdk.helpers.Labels;
+<span class="hljs-keyword">import</span> org.apache.streampipes.sdk.helpers.Locales;
+<span class="hljs-keyword">import</span> org.apache.streampipes.sdk.utils.Assets;
+<span class="hljs-keyword">import</span> org.apache.streampipes.wrapper.context.EventSinkRuntimeContext;
+<span class="hljs-keyword">import</span> org.apache.streampipes.wrapper.standalone.SinkParams;
+<span class="hljs-keyword">import</span> org.apache.streampipes.wrapper.standalone.StreamPipesDataSink;
+<span class="hljs-keyword">import</span> org.slf4j.Logger;
+<span class="hljs-keyword">import</span> org.slf4j.LoggerFactory;
+
+<span class="hljs-keyword">import</span> java.io.IOException;
+<span class="hljs-keyword">import</span> java.util.List;
+<span class="hljs-keyword">import</span> java.util.Map;
+
+<span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">RestSink</span> <span class="hljs-keyword">extends</span> <span class="hljs-title">StreamPipesDataSink</span> </span>{
+
+  <span class="hljs-keyword">private</span> <span class="hljs-keyword">static</span> <span class="hljs-keyword">final</span> Logger LOG = LoggerFactory.getLogger(RestSink<span class="hljs-class">.<span class="hljs-keyword">class</span>)</span>;
+
+  <span class="hljs-keyword">private</span> <span class="hljs-keyword">static</span> <span class="hljs-keyword">final</span> String REST_ENDPOINT_URI = YOUR_REQUEST_BIN_URL;
+  <span class="hljs-keyword">private</span> List&lt;String&gt; fieldsToSend;
+  <span class="hljs-keyword">private</span> SpDataFormatDefinition dataFormatDefinition;
+
+  <span class="hljs-meta">@Override</span>
+  <span class="hljs-function"><span class="hljs-keyword">public</span> DataSinkDescription <span class="hljs-title">declareModel</span><span class="hljs-params">()</span> </span>{
+    ...
+  }
+
+  <span class="hljs-meta">@Override</span>
+  <span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">onInvocation</span><span class="hljs-params">(SinkParams parameters, EventSinkRuntimeContext runtimeContext)</span> <span class="hljs-keyword">throws</span> SpRuntimeException </span>{
+    <span class="hljs-keyword">this</span>.dataFormatDefinition = <span class="hljs-keyword">new</span> JsonDataFormatDefinition();
+    <span class="hljs-keyword">this</span>.fieldsToSend = parameters.extractor().mappingPropertyValues(<span class="hljs-string">"fields-to-send"</span>);
+
+  }
+
+  <span class="hljs-meta">@Override</span>
+  <span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">onEvent</span><span class="hljs-params">(Event event)</span> <span class="hljs-keyword">throws</span> SpRuntimeException </span>{
+    Map&lt;String, Object&gt; outEventMap = event.getSubset(fieldsToSend).getRaw();
+    <span class="hljs-keyword">try</span> {
+      String json = <span class="hljs-keyword">new</span> String(dataFormatDefinition.fromMap(outEventMap));
+      Request.Post(REST_ENDPOINT_URI).body(<span class="hljs-keyword">new</span> StringEntity(json, Charsets.UTF_8)).execute();
+    } <span class="hljs-keyword">catch</span> (SpRuntimeException e) {
+      LOG.error(<span class="hljs-string">"Could not parse incoming event"</span>);
+    } <span class="hljs-keyword">catch</span> (IOException e) {
+      LOG.error(<span class="hljs-string">"Could not reach endpoint at {}"</span>, REST_ENDPOINT_URI);
+    }
+  }
+
+  <span class="hljs-meta">@Override</span>
+  <span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">onDetach</span><span class="hljs-params">()</span> <span class="hljs-keyword">throws</span> SpRuntimeException </span>{
+
+  }
+}
+
+</code></pre>
+<p>The only class variable you need to change right now is the REST_ENDPOINT_URL. Change this url to the URL provided by your request bin.
+In the <code>ònEvent</code> method, we use a helper method to get a subset of the incoming event.
+Finally, we convert the resulting <code>Map</code> to a JSON string and call the endpoint.</p>
+<h2><a class="anchor" aria-hidden="true" id="preparing-the-service"></a><a href="#preparing-the-service" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2 [...]
+<p>The final step is to register the sink as a pipeline element.</p>
+<p>Go to the class <code>Init</code> and register the sink:</p>
+<pre><code class="hljs css language-java">.registerPipelineElement(<span class="hljs-keyword">new</span> RestSink())
+</code></pre>
+<h2><a class="anchor" aria-hidden="true" id="starting-the-service"></a><a href="#starting-the-service" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1 [...]
+<div class="admonition tip">
+<div class="admonition-title">Tip</div>
+<p>Once you start the service, it will register in StreamPipes with the hostname. The hostname will be auto-discovered and should work out-of-the-box.
+In some cases, the detected hostname is not resolvable from within a container (where the core is running). In this case, provide a SP_HOST environment variable to override the auto-discovery.
+</p>
+</div>
+<div class="admonition tip">
+<div class="admonition-title">Tip</div>
+<p> The default port of all pipeline element services as defined in the `create` method is port 8090.
+       If you'd like to run multiple services at the same time on your development machine, change the port here. As an alternative, you can also provide an env variable `SP_PORT` which overrides the port settings. This is useful to use different configs for dev and prod environments.
+</p>
+</div>
+<p>Now we are ready to start our service!</p>
+<p>Configure your IDE to provide an environment variable called <code>SP_DEBUG</code> with value <code>true</code> when starting the project.</p>
+<p>Execute the main method in the class <code>Init</code> we've just created. The service automatically registers itself in StreamPipes.</p>
+<p>To install the created element, open the StreamPipes UI and follow the manual provided in the <a href="/docs/docs/0.90.0/use-install-pipeline-elements.html">user guide</a>.</p>
+<h2><a class="anchor" aria-hidden="true" id="read-more"></a><a href="#read-more" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
+<p>Congratulations! You've just created your first data sink for StreamPipes.
+There are many more things to explore and data sinks can be defined in much more detail using multiple wrappers.
+Follow our <a href="../dev-guide-sdk-guide-sinks">SDK guide</a> to see what's possible!</p>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.90.0/extend-tutorial-data-processors.html"><span class="arrow-prev">← </span><span>Tutorial: Data Processors</span></a><a class="docs-next button" href="/docs/docs/0.90.0/extend-sdk-functions.html"><span>SDK: Functions</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#objective">Objective</a></li><li><a href="#pro [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '0fedc89dddf2810657708b178e56ef02',
+                indexName: 'streampipes',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.90.0/extend-tutorial-data-sources.html b/docs/docs/0.90.0/extend-tutorial-data-sources.html
new file mode 100644
index 00000000..19eac232
--- /dev/null
+++ b/docs/docs/0.90.0/extend-tutorial-data-sources.html
@@ -0,0 +1,236 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Tutorial: Data Sources · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="In this tutorial, we will add a new data source consisting of a single data stream. The source will be provided as a standalone component (i.e., the description will be a [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">Tutorial: Data Sources</h1></header><article><div><span><p>In this tutorial, we will add a new data source consisting of a single data stream. The source will be provided as a standalone component (i.e., the description will be accessible through an integrated web server).</p>
+<h2><a class="anchor" aria-hidden="true" id="objective"></a><a href="#objective" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
+<p>We are going to create a new data stream that is produced by a GPS sensor installed in a delivery vehicle.
+The sensor produces a continuous stream of events that contain the current timestamp, the current lat/lng position of the vehicle and the plate number of the vehicle.
+Events are published in a JSON format as follows:</p>
+<pre><code class="hljs css language-json">{
+  <span class="hljs-attr">"timestamp"</span> : <span class="hljs-number">145838399</span>,
+  <span class="hljs-attr">"latitude"</span> : <span class="hljs-number">37.04</span>,
+  <span class="hljs-attr">"longitude"</span> : <span class="hljs-number">17.04</span>,
+  <span class="hljs-attr">"plateNumber"</span> : <span class="hljs-string">"KA-AB 123"</span>
+}
+</code></pre>
+<p>These events are published to a Kafka broker using the topic <code>org.streampipes.tutorial.vehicle</code>.</p>
+<p>In the following section, we show how to describe this stream in a form that allows you to import and use it in StreamPipes.</p>
+<h2><a class="anchor" aria-hidden="true" id="project-setup"></a><a href="#project-setup" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
+<p>Instead of creating a new project from scratch, we recommend to use the Maven archetype to create a new project skeleton (streampipes-archetype-extensions-jvm).
+Enter the following command in a command line of your choice (Apache Maven needs to be installed):</p>
+<pre><code class="hljs">mvn archetype:generate \
+<span class="hljs-attribute">-DarchetypeGroupId</span>=org.apache.streampipes <span class="hljs-attribute">-DarchetypeArtifactId</span>=streampipes-archetype-extensions-jvm \
+<span class="hljs-attribute">-DarchetypeVersion</span>=0.70.0 <span class="hljs-attribute">-DgroupId</span>=my.groupId \
+<span class="hljs-attribute">-DartifactId</span>=my-source <span class="hljs-attribute">-DclassNamePrefix</span>=MySource <span class="hljs-attribute">-DpackageName</span>=mypackagename
+</code></pre>
+<p>You will see a project structure similar to the structure shown in the <a href="/docs/docs/0.90.0/extend-archetypes.html">archetypes</a> section.</p>
+<div class="admonition tip">
+<div class="admonition-title">Tip</div>
+<p>Besides the basic project skeleton, the sample project also includes an example Dockerfile you can use to package your application into a Docker container.
+</p>
+</div>
+<h2><a class="anchor" aria-hidden="true" id="adding-a-data-stream-description"></a><a href="#adding-a-data-stream-description" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13. [...]
+<p>Now we will add a new data stream definition.
+First, create a new class <code>MyVehicleStream</code> which should look as follows:</p>
+<pre><code class="hljs css language-java">
+<span class="hljs-keyword">package</span> org.apache.streampipes.pe.example;
+
+<span class="hljs-keyword">import</span> org.apache.streampipes.model.SpDataStream;
+<span class="hljs-keyword">import</span> org.apache.streampipes.sources.AbstractAdapterIncludedStream;
+
+<span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">MyVehicleStream</span> <span class="hljs-keyword">extends</span> <span class="hljs-title">AbstractAdapterIncludedStream</span> </span>{
+
+  <span class="hljs-meta">@Override</span>
+  <span class="hljs-function"><span class="hljs-keyword">public</span> SpDataStream <span class="hljs-title">declareModel</span><span class="hljs-params">()</span> </span>{
+    <span class="hljs-keyword">return</span> <span class="hljs-keyword">null</span>;
+  }
+
+  <span class="hljs-meta">@Override</span>
+  <span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">executeStream</span><span class="hljs-params">()</span> </span>{
+
+  }
+}
+</code></pre>
+<p>This class extends the class <code>AbstractAdapterIncludedStream</code>, which indicates that this source continuously produces data (configured in the <code>executeStream()</code> method.
+In contrast, the class <code>AbstractAlreadyExistingStream</code> indicates that we only want to describe an already existing stream (e.g., a stream that already sends data to an existing Kafka broker).</p>
+<p>Next, we will add the definition of the data stream. Add the following code inside of the <code>declareModel</code> method:</p>
+<pre><code class="hljs css language-java"><span class="hljs-keyword">return</span> DataStreamBuilder.create(<span class="hljs-string">"org.apache.streampipes.tutorial.vehicle.position"</span>, <span class="hljs-string">"Vehicle Position"</span>, <span class="hljs-string">"An event stream "</span> +
+          <span class="hljs-string">"that produces current vehicle positions"</span>)
+</code></pre>
+<p>This line creates a new instance of the SDK's <code>DataStreamBuilder</code> by providing three basic parameters:
+The first parameter must be a unique identifier of your data stream.
+The second and third parameters indicate a label and a description of your stream.
+These values will later be used in the StreamPipes UI to display stream details in a human-readable manner.</p>
+<p>Next, we will add the properties as stated above to the stream definition by adding the following lines:</p>
+<pre><code class="hljs css language-java">.property(EpProperties.timestampProperty(<span class="hljs-string">"timestamp"</span>))
+.property(EpProperties.stringEp(Labels.from(<span class="hljs-string">"plate-number"</span>, <span class="hljs-string">"Plate Number"</span>, <span class="hljs-string">"Denotes the plate number of the vehicle"</span>), <span class="hljs-string">"plateNumber"</span>, <span class="hljs-string">"http://my.company/plateNumber"</span>))
+.property(EpProperties.doubleEp(Labels.from(<span class="hljs-string">"latitude"</span>, <span class="hljs-string">"Latitude"</span>, <span class="hljs-string">"Denotes the latitude value of the vehicle's position"</span>), <span class="hljs-string">"latitude"</span>, Geo.lat))
+.property(EpProperties.doubleEp(Labels.from(<span class="hljs-string">"longitude"</span>, <span class="hljs-string">"Longitude"</span>, <span class="hljs-string">"Denotes the longitude value of the vehicle's position"</span>), <span class="hljs-string">"longitude"</span>, Geo.lng))
+</code></pre>
+<p>These four <em>event properties</em> compose our <em>event schema</em>. An event property must, at least, provide the following attributes:</p>
+<ul>
+<li><strong>Runtime Name</strong>. The runtime name indicates the key of the property at runtime, e.g., if our JSON message contains a structure such as <code>{&quot;plateNumber&quot; : &quot;KA-F 123&quot;}</code>, the runtime name must be <code>plateNumber</code>.</li>
+<li><strong>Runtime Type</strong>. An event property must have a primitive type (we will later see how to model more complex properties such as lists and nested properties).
+The type must be an instance of <code>XMLSchema</code> primitives, however, the SDK provides convenience methods to provide the property type.</li>
+<li><strong>Domain Property</strong>. The domain property indicates the semantics of the event property. For instance, the <code>latitude</code> property is linked to the <code>http://www.w3.org/2003/01/geo/wgs84_pos#lat</code> property of the WGS84 vocabulary.
+The domain property should be an URI as part of an existing or domain-specific vocabulary. The SDK provides convenience methods for popuplar vocabularies (e.g., Schema.org, Dolce or WGS84).</li>
+</ul>
+<p>In order to complete the minimum required specification of an event stream, we need to provide information on the transport format and protocol of the data stream at runtime.</p>
+<p>This can be achieved by extending the builder with the respective properties:</p>
+<pre><code class="hljs css language-java">.format(Formats.jsonFormat())
+.protocol(Protocols.kafka(<span class="hljs-string">"localhost"</span>, <span class="hljs-number">9094</span>, <span class="hljs-string">"org.apache.streampipes.tutoria.vehicle"</span>))
+.build();
+</code></pre>
+<p>In this example, we defined that the data stream consists of events in a JSON format and that Kafka is used as a message broker to transmit events.
+The last build() method call triggers the construction of the data stream definition.</p>
+<p>That's it! In the next section, we will connect the data stream to a source and inspect the generated RDF description.</p>
+<h2><a class="anchor" aria-hidden="true" id="creating-some-dummy-data"></a><a href="#creating-some-dummy-data" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-. [...]
+<p>Let's assume our stream should produce some random values that are sent to StreamPipes. We'll add a very simple data simulator to the <code>executeStream</code> method as follows:</p>
+<pre><code class="hljs css language-java"><span class="hljs-meta">@Override</span>
+  <span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">executeStream</span><span class="hljs-params">()</span> </span>{
+
+    SpKafkaProducer producer = <span class="hljs-keyword">new</span> SpKafkaProducer(<span class="hljs-string">"localhost:9094"</span>, <span class="hljs-string">"my-topic"</span>, Collections.emptyList());
+    Random random = <span class="hljs-keyword">new</span> Random();
+    Runnable runnable = () -&gt; {
+      <span class="hljs-keyword">for</span> (;;) {
+        JsonObject jsonObject = <span class="hljs-keyword">new</span> JsonObject();
+        jsonObject.addProperty(<span class="hljs-string">"timestamp"</span>, System.currentTimeMillis());
+        jsonObject.addProperty(<span class="hljs-string">"plateNumber"</span>, <span class="hljs-string">"KA-SP 1"</span>);
+        jsonObject.addProperty(<span class="hljs-string">"latitude"</span>, random.nextDouble());
+        jsonObject.addProperty(<span class="hljs-string">"longitude"</span>, random.nextDouble());
+    
+        producer.publish(jsonObject.toString());
+    
+        <span class="hljs-keyword">try</span> {
+        TimeUnit.SECONDS.sleep(<span class="hljs-number">1</span>);
+        } <span class="hljs-keyword">catch</span> (InterruptedException e) {
+        e.printStackTrace();
+        }
+  
+      }
+    };
+
+    <span class="hljs-keyword">new</span> Thread(runnable).start();
+  }
+</code></pre>
+<p>Change the topic and the URL of your Kafka broker (as stated in the controller).</p>
+<h2><a class="anchor" aria-hidden="true" id="registering-the-data-stream"></a><a href="#registering-the-data-stream" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 1 [...]
+<p>You need to register the stream in the service definition. Open the <code>Init</code> class and register the <code>MyVehicleStream</code>:</p>
+<pre><code class="hljs css language-java">
+  <span class="hljs-meta">@Override</span>
+  <span class="hljs-function"><span class="hljs-keyword">public</span> SpServiceDefinition <span class="hljs-title">provideServiceDefinition</span><span class="hljs-params">()</span> </span>{
+    <span class="hljs-keyword">return</span> SpServiceDefinitionBuilder.create(<span class="hljs-string">"org.apache.streampipes"</span>,
+                    <span class="hljs-string">"human-readable service name"</span>,
+                    <span class="hljs-string">"human-readable service description"</span>, <span class="hljs-number">8090</span>)
+            .registerPipelineElement(<span class="hljs-keyword">new</span> ExampleDataProcessor())
+            .registerPipelineElement(<span class="hljs-keyword">new</span> ExampleDataSink())
+            .registerPipelineElement(<span class="hljs-keyword">new</span> MyVehicleStream())
+            .registerMessagingFormats(
+                    <span class="hljs-keyword">new</span> JsonDataFormatFactory(),
+                    <span class="hljs-keyword">new</span> CborDataFormatFactory(),
+                    <span class="hljs-keyword">new</span> SmileDataFormatFactory(),
+                    <span class="hljs-keyword">new</span> FstDataFormatFactory())
+            .registerMessagingProtocols(
+                    <span class="hljs-keyword">new</span> SpKafkaProtocolFactory(),
+                    <span class="hljs-keyword">new</span> SpJmsProtocolFactory(),
+                    <span class="hljs-keyword">new</span> SpMqttProtocolFactory())
+            .build();
+  }
+
+</code></pre>
+<p>You can remove the other two example classes if you want.</p>
+<h2><a class="anchor" aria-hidden="true" id="starting-the-service"></a><a href="#starting-the-service" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1 [...]
+<div class="admonition tip">
+<div class="admonition-title">Tip</div>
+<p>Once you start the service, it will register in StreamPipes with the hostname. The hostname will be auto-discovered and should work out-of-the-box.
+In some cases, the detected hostname is not resolvable from within a container (where the core is running). In this case, provide a SP_HOST environment variable to override the auto-discovery.
+</p>
+</div>
+<p>Now we are ready to start our first container!</p>
+<p>Configure your IDE to provide an environment variable called <code>SP_DEBUG</code> with value <code>true</code> when starting the project.</p>
+<p>The service automatically registers itself in StreamPipes.</p>
+<p>To install the just created element, open the StreamPipes UI and install the source over the <code>Install Pipeline Elements</code> section.</p>
+<h2><a class="anchor" aria-hidden="true" id="read-more"></a><a href="#read-more" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
+<p>Congratulations! You've just created your first pipeline element for StreamPipes.
+There are many more things to explore and data sources can be defined in much more detail.
+Also consider that in some cases, you would like to create a configurable adapter,
+where a data source can be configured by users in the UI when connecting data.</p>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.90.0/extend-first-processor.html"><span class="arrow-prev">← </span><span>Your first data processor</span></a><a class="docs-next button" href="/docs/docs/0.90.0/extend-tutorial-data-processors.html"><span>Tutorial: Data Processors</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#objective">Objective</a></li><li> [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '0fedc89dddf2810657708b178e56ef02',
+                indexName: 'streampipes',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/faq-common-problems.html b/docs/docs/0.90.0/faq-common-problems.html
similarity index 93%
copy from docs/docs/faq-common-problems.html
copy to docs/docs/0.90.0/faq-common-problems.html
index a48d96f9..aa84afa8 100644
--- a/docs/docs/faq-common-problems.html
+++ b/docs/docs/0.90.0/faq-common-problems.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/docs/docs/org.apache.streampipes.processor.geo.flink/org.apache.streampipes.processor.geo.flink.html b/docs/docs/0.90.0/org.apache.streampipes.processor.geo.flink/org.apache.streampipes.processor.geo.flink.html
similarity index 93%
copy from docs/docs/org.apache.streampipes.processor.geo.flink/org.apache.streampipes.processor.geo.flink.html
copy to docs/docs/0.90.0/org.apache.streampipes.processor.geo.flink/org.apache.streampipes.processor.geo.flink.html
index 2c7f62b0..7848d4a6 100644
--- a/docs/docs/org.apache.streampipes.processor.geo.flink/org.apache.streampipes.processor.geo.flink.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processor.geo.flink/org.apache.streampipes.processor.geo.flink.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.processor.geo.jvm.geocoding/org.apache.streampipes.processor.geo.jvm.geocoding.html b/docs/docs/0.90.0/org.apache.streampipes.processor.geo.jvm.geocoding/org.apache.streampipes.processor.geo.jvm.geocoding.html
similarity index 93%
copy from docs/docs/org.apache.streampipes.processor.geo.jvm.geocoding/org.apache.streampipes.processor.geo.jvm.geocoding.html
copy to docs/docs/0.90.0/org.apache.streampipes.processor.geo.jvm.geocoding/org.apache.streampipes.processor.geo.jvm.geocoding.html
index e98a13dc..82d91ab9 100644
--- a/docs/docs/org.apache.streampipes.processor.geo.jvm.geocoding/org.apache.streampipes.processor.geo.jvm.geocoding.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processor.geo.jvm.geocoding/org.apache.streampipes.processor.geo.jvm.geocoding.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.processor.geo.jvm.reversegeocoding/org.apache.streampipes.processor.geo.jvm.reversegeocoding.html b/docs/docs/0.90.0/org.apache.streampipes.processor.geo.jvm.reversegeocoding/org.apache.streampipes.processor.geo.jvm.reversegeocoding.html
similarity index 93%
copy from docs/docs/org.apache.streampipes.processor.geo.jvm.reversegeocoding/org.apache.streampipes.processor.geo.jvm.reversegeocoding.html
copy to docs/docs/0.90.0/org.apache.streampipes.processor.geo.jvm.reversegeocoding/org.apache.streampipes.processor.geo.jvm.reversegeocoding.html
index acbeaac3..894f7a08 100644
--- a/docs/docs/org.apache.streampipes.processor.geo.jvm.reversegeocoding/org.apache.streampipes.processor.geo.jvm.reversegeocoding.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processor.geo.jvm.reversegeocoding/org.apache.streampipes.processor.geo.jvm.reversegeocoding.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.processor.geo.jvm.staticgeocoding/org.apache.streampipes.processor.geo.jvm.staticgeocoding.html b/docs/docs/0.90.0/org.apache.streampipes.processor.geo.jvm.staticgeocoding/org.apache.streampipes.processor.geo.jvm.staticgeocoding.html
similarity index 93%
copy from docs/docs/org.apache.streampipes.processor.geo.jvm.staticgeocoding/org.apache.streampipes.processor.geo.jvm.staticgeocoding.html
copy to docs/docs/0.90.0/org.apache.streampipes.processor.geo.jvm.staticgeocoding/org.apache.streampipes.processor.geo.jvm.staticgeocoding.html
index 1e12dec6..b4bbe3b1 100644
--- a/docs/docs/org.apache.streampipes.processor.geo.jvm.staticgeocoding/org.apache.streampipes.processor.geo.jvm.staticgeocoding.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processor.geo.jvm.staticgeocoding/org.apache.streampipes.processor.geo.jvm.staticgeocoding.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.processor.imageclassification.jvm.generic-image-classification/org.apache.streampipes.processor.imageclassification.jvm.generic-image-classification.html b/docs/docs/0.90.0/org.apache.streampipes.processor.imageclassification.jvm.generic-image-classification/org.apache.streampipes.processor.imageclassification.jvm.generic-image-classification.html
similarity index 93%
copy from docs/docs/org.apache.streampipes.processor.imageclassification.jvm.generic-image-classification/org.apache.streampipes.processor.imageclassification.jvm.generic-image-classification.html
copy to docs/docs/0.90.0/org.apache.streampipes.processor.imageclassification.jvm.generic-image-classification/org.apache.streampipes.processor.imageclassification.jvm.generic-image-classification.html
index 89a60bba..4cf836ed 100644
--- a/docs/docs/org.apache.streampipes.processor.imageclassification.jvm.generic-image-classification/org.apache.streampipes.processor.imageclassification.jvm.generic-image-classification.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processor.imageclassification.jvm.generic-image-classification/org.apache.streampipes.processor.imageclassification.jvm.generic-image-classification.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.processor.imageclassification.jvm.image-enricher/org.apache.streampipes.processor.imageclassification.jvm.image-enricher.html b/docs/docs/0.90.0/org.apache.streampipes.processor.imageclassification.jvm.image-enricher/org.apache.streampipes.processor.imageclassification.jvm.image-enricher.html
similarity index 93%
copy from docs/docs/org.apache.streampipes.processor.imageclassification.jvm.image-enricher/org.apache.streampipes.processor.imageclassification.jvm.image-enricher.html
copy to docs/docs/0.90.0/org.apache.streampipes.processor.imageclassification.jvm.image-enricher/org.apache.streampipes.processor.imageclassification.jvm.image-enricher.html
index 798c2699..83377777 100644
--- a/docs/docs/org.apache.streampipes.processor.imageclassification.jvm.image-enricher/org.apache.streampipes.processor.imageclassification.jvm.image-enricher.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processor.imageclassification.jvm.image-enricher/org.apache.streampipes.processor.imageclassification.jvm.image-enricher.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.processor.imageclassification.qrcode/org.apache.streampipes.processor.imageclassification.qrcode.html b/docs/docs/0.90.0/org.apache.streampipes.processor.imageclassification.qrcode/org.apache.streampipes.processor.imageclassification.qrcode.html
similarity index 93%
copy from docs/docs/org.apache.streampipes.processor.imageclassification.qrcode/org.apache.streampipes.processor.imageclassification.qrcode.html
copy to docs/docs/0.90.0/org.apache.streampipes.processor.imageclassification.qrcode/org.apache.streampipes.processor.imageclassification.qrcode.html
index a8578b24..5ce22f5c 100644
--- a/docs/docs/org.apache.streampipes.processor.imageclassification.qrcode/org.apache.streampipes.processor.imageclassification.qrcode.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processor.imageclassification.qrcode/org.apache.streampipes.processor.imageclassification.qrcode.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.processors.aggregation.flink.aggregation/org.apache.streampipes.processors.aggregation.flink.aggregation.html b/docs/docs/0.90.0/org.apache.streampipes.processors.aggregation.flink.aggregation/org.apache.streampipes.processors.aggregation.flink.aggregation.html
similarity index 94%
copy from docs/docs/org.apache.streampipes.processors.aggregation.flink.aggregation/org.apache.streampipes.processors.aggregation.flink.aggregation.html
copy to docs/docs/0.90.0/org.apache.streampipes.processors.aggregation.flink.aggregation/org.apache.streampipes.processors.aggregation.flink.aggregation.html
index 5b78b014..16760bb8 100644
--- a/docs/docs/org.apache.streampipes.processors.aggregation.flink.aggregation/org.apache.streampipes.processors.aggregation.flink.aggregation.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processors.aggregation.flink.aggregation/org.apache.streampipes.processors.aggregation.flink.aggregation.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.processors.aggregation.flink.eventcount/org.apache.streampipes.processors.aggregation.flink.eventcount.html b/docs/docs/0.90.0/org.apache.streampipes.processors.aggregation.flink.eventcount/org.apache.streampipes.processors.aggregation.flink.eventcount.html
similarity index 93%
copy from docs/docs/org.apache.streampipes.processors.aggregation.flink.eventcount/org.apache.streampipes.processors.aggregation.flink.eventcount.html
copy to docs/docs/0.90.0/org.apache.streampipes.processors.aggregation.flink.eventcount/org.apache.streampipes.processors.aggregation.flink.eventcount.html
index 60cde637..773aea95 100644
--- a/docs/docs/org.apache.streampipes.processors.aggregation.flink.eventcount/org.apache.streampipes.processors.aggregation.flink.eventcount.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processors.aggregation.flink.eventcount/org.apache.streampipes.processors.aggregation.flink.eventcount.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.processors.aggregation.flink.rate/org.apache.streampipes.processors.aggregation.flink.rate.html b/docs/docs/0.90.0/org.apache.streampipes.processors.aggregation.flink.rate/org.apache.streampipes.processors.aggregation.flink.rate.html
similarity index 93%
copy from docs/docs/org.apache.streampipes.processors.aggregation.flink.rate/org.apache.streampipes.processors.aggregation.flink.rate.html
copy to docs/docs/0.90.0/org.apache.streampipes.processors.aggregation.flink.rate/org.apache.streampipes.processors.aggregation.flink.rate.html
index 6004bfd8..df2465a6 100644
--- a/docs/docs/org.apache.streampipes.processors.aggregation.flink.rate/org.apache.streampipes.processors.aggregation.flink.rate.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processors.aggregation.flink.rate/org.apache.streampipes.processors.aggregation.flink.rate.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.processors.enricher.flink.processor.math.mathop/org.apache.streampipes.processors.enricher.flink.processor.math.mathop.html b/docs/docs/0.90.0/org.apache.streampipes.processors.enricher.flink.processor.math.mathop/org.apache.streampipes.processors.enricher.flink.processor.math.mathop.html
similarity index 93%
copy from docs/docs/org.apache.streampipes.processors.enricher.flink.processor.math.mathop/org.apache.streampipes.processors.enricher.flink.processor.math.mathop.html
copy to docs/docs/0.90.0/org.apache.streampipes.processors.enricher.flink.processor.math.mathop/org.apache.streampipes.processors.enricher.flink.processor.math.mathop.html
index dc5b314f..f4088d77 100644
--- a/docs/docs/org.apache.streampipes.processors.enricher.flink.processor.math.mathop/org.apache.streampipes.processors.enricher.flink.processor.math.mathop.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processors.enricher.flink.processor.math.mathop/org.apache.streampipes.processors.enricher.flink.processor.math.mathop.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.processors.enricher.flink.processor.math.staticmathop/org.apache.streampipes.processors.enricher.flink.processor.math.staticmathop.html b/docs/docs/0.90.0/org.apache.streampipes.processors.enricher.flink.processor.math.staticmathop/org.apache.streampipes.processors.enricher.flink.processor.math.staticmathop.html
similarity index 93%
copy from docs/docs/org.apache.streampipes.processors.enricher.flink.processor.math.staticmathop/org.apache.streampipes.processors.enricher.flink.processor.math.staticmathop.html
copy to docs/docs/0.90.0/org.apache.streampipes.processors.enricher.flink.processor.math.staticmathop/org.apache.streampipes.processors.enricher.flink.processor.math.staticmathop.html
index 5ed6c1d0..ca2924fa 100644
--- a/docs/docs/org.apache.streampipes.processors.enricher.flink.processor.math.staticmathop/org.apache.streampipes.processors.enricher.flink.processor.math.staticmathop.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processors.enricher.flink.processor.math.staticmathop/org.apache.streampipes.processors.enricher.flink.processor.math.staticmathop.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.processors.enricher.flink.processor.trigonometry/org.apache.streampipes.processors.enricher.flink.processor.trigonometry.html b/docs/docs/0.90.0/org.apache.streampipes.processors.enricher.flink.processor.trigonometry/org.apache.streampipes.processors.enricher.flink.processor.trigonometry.html
similarity index 93%
copy from docs/docs/org.apache.streampipes.processors.enricher.flink.processor.trigonometry/org.apache.streampipes.processors.enricher.flink.processor.trigonometry.html
copy to docs/docs/0.90.0/org.apache.streampipes.processors.enricher.flink.processor.trigonometry/org.apache.streampipes.processors.enricher.flink.processor.trigonometry.html
index 96891c45..61d6c908 100644
--- a/docs/docs/org.apache.streampipes.processors.enricher.flink.processor.trigonometry/org.apache.streampipes.processors.enricher.flink.processor.trigonometry.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processors.enricher.flink.processor.trigonometry/org.apache.streampipes.processors.enricher.flink.processor.trigonometry.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.processors.enricher.flink.processor.urldereferencing/org.apache.streampipes.processors.enricher.flink.processor.urldereferencing.html b/docs/docs/0.90.0/org.apache.streampipes.processors.enricher.flink.processor.urldereferencing/org.apache.streampipes.processors.enricher.flink.processor.urldereferencing.html
similarity index 93%
copy from docs/docs/org.apache.streampipes.processors.enricher.flink.processor.urldereferencing/org.apache.streampipes.processors.enricher.flink.processor.urldereferencing.html
copy to docs/docs/0.90.0/org.apache.streampipes.processors.enricher.flink.processor.urldereferencing/org.apache.streampipes.processors.enricher.flink.processor.urldereferencing.html
index c25e4b39..e910e51d 100644
--- a/docs/docs/org.apache.streampipes.processors.enricher.flink.processor.urldereferencing/org.apache.streampipes.processors.enricher.flink.processor.urldereferencing.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processors.enricher.flink.processor.urldereferencing/org.apache.streampipes.processors.enricher.flink.processor.urldereferencing.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.processors.enricher.flink.timestamp/org.apache.streampipes.processors.enricher.flink.timestamp.html b/docs/docs/0.90.0/org.apache.streampipes.processors.enricher.flink.timestamp/org.apache.streampipes.processors.enricher.flink.timestamp.html
similarity index 92%
copy from docs/docs/org.apache.streampipes.processors.enricher.flink.timestamp/org.apache.streampipes.processors.enricher.flink.timestamp.html
copy to docs/docs/0.90.0/org.apache.streampipes.processors.enricher.flink.timestamp/org.apache.streampipes.processors.enricher.flink.timestamp.html
index 005610f9..c145b455 100644
--- a/docs/docs/org.apache.streampipes.processors.enricher.flink.timestamp/org.apache.streampipes.processors.enricher.flink.timestamp.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processors.enricher.flink.timestamp/org.apache.streampipes.processors.enricher.flink.timestamp.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.processors.enricher.jvm.sizemeasure/org.apache.streampipes.processors.enricher.jvm.sizemeasure.html b/docs/docs/0.90.0/org.apache.streampipes.processors.enricher.jvm.sizemeasure/org.apache.streampipes.processors.enricher.jvm.sizemeasure.html
similarity index 92%
copy from docs/docs/org.apache.streampipes.processors.enricher.jvm.sizemeasure/org.apache.streampipes.processors.enricher.jvm.sizemeasure.html
copy to docs/docs/0.90.0/org.apache.streampipes.processors.enricher.jvm.sizemeasure/org.apache.streampipes.processors.enricher.jvm.sizemeasure.html
index 0bb27097..e6fd6bdf 100644
--- a/docs/docs/org.apache.streampipes.processors.enricher.jvm.sizemeasure/org.apache.streampipes.processors.enricher.jvm.sizemeasure.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processors.enricher.jvm.sizemeasure/org.apache.streampipes.processors.enricher.jvm.sizemeasure.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
     <img src="/docs/img/pipeline-elements/org.apache.streampipes.processors.enricher.jvm.sizemeasure/icon.png" width="150px;" class="pe-image-documentation"/>
 </p>
 <hr>
diff --git a/docs/docs/org.apache.streampipes.processors.filters.jvm.compose/org.apache.streampipes.processors.filters.jvm.compose.html b/docs/docs/0.90.0/org.apache.streampipes.processors.filters.jvm.compose/org.apache.streampipes.processors.filters.jvm.compose.html
similarity index 92%
copy from docs/docs/org.apache.streampipes.processors.filters.jvm.compose/org.apache.streampipes.processors.filters.jvm.compose.html
copy to docs/docs/0.90.0/org.apache.streampipes.processors.filters.jvm.compose/org.apache.streampipes.processors.filters.jvm.compose.html
index 4230949f..d24a8e7c 100644
--- a/docs/docs/org.apache.streampipes.processors.filters.jvm.compose/org.apache.streampipes.processors.filters.jvm.compose.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processors.filters.jvm.compose/org.apache.streampipes.processors.filters.jvm.compose.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.processors.filters.jvm.enrich/org.apache.streampipes.processors.filters.jvm.enrich.html b/docs/docs/0.90.0/org.apache.streampipes.processors.filters.jvm.enrich/org.apache.streampipes.processors.filters.jvm.enrich.html
similarity index 92%
copy from docs/docs/org.apache.streampipes.processors.filters.jvm.enrich/org.apache.streampipes.processors.filters.jvm.enrich.html
copy to docs/docs/0.90.0/org.apache.streampipes.processors.filters.jvm.enrich/org.apache.streampipes.processors.filters.jvm.enrich.html
index 05ad14a2..23db944e 100644
--- a/docs/docs/org.apache.streampipes.processors.filters.jvm.enrich/org.apache.streampipes.processors.filters.jvm.enrich.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processors.filters.jvm.enrich/org.apache.streampipes.processors.filters.jvm.enrich.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.processors.filters.jvm.merge/org.apache.streampipes.processors.filters.jvm.merge.html b/docs/docs/0.90.0/org.apache.streampipes.processors.filters.jvm.merge/org.apache.streampipes.processors.filters.jvm.merge.html
similarity index 93%
copy from docs/docs/org.apache.streampipes.processors.filters.jvm.merge/org.apache.streampipes.processors.filters.jvm.merge.html
copy to docs/docs/0.90.0/org.apache.streampipes.processors.filters.jvm.merge/org.apache.streampipes.processors.filters.jvm.merge.html
index 7b1dec3e..dba7d300 100644
--- a/docs/docs/org.apache.streampipes.processors.filters.jvm.merge/org.apache.streampipes.processors.filters.jvm.merge.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processors.filters.jvm.merge/org.apache.streampipes.processors.filters.jvm.merge.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.processors.filters.jvm.numericalfilter/org.apache.streampipes.processors.filters.jvm.numericalfilter.html b/docs/docs/0.90.0/org.apache.streampipes.processors.filters.jvm.numericalfilter/org.apache.streampipes.processors.filters.jvm.numericalfilter.html
similarity index 93%
copy from docs/docs/org.apache.streampipes.processors.filters.jvm.numericalfilter/org.apache.streampipes.processors.filters.jvm.numericalfilter.html
copy to docs/docs/0.90.0/org.apache.streampipes.processors.filters.jvm.numericalfilter/org.apache.streampipes.processors.filters.jvm.numericalfilter.html
index 818c453d..52427eb6 100644
--- a/docs/docs/org.apache.streampipes.processors.filters.jvm.numericalfilter/org.apache.streampipes.processors.filters.jvm.numericalfilter.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processors.filters.jvm.numericalfilter/org.apache.streampipes.processors.filters.jvm.numericalfilter.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.processors.filters.jvm.numericaltextfilter/org.apache.streampipes.processors.filters.jvm.numericaltextfilter.html b/docs/docs/0.90.0/org.apache.streampipes.processors.filters.jvm.numericaltextfilter/org.apache.streampipes.processors.filters.jvm.numericaltextfilter.html
similarity index 94%
copy from docs/docs/org.apache.streampipes.processors.filters.jvm.numericaltextfilter/org.apache.streampipes.processors.filters.jvm.numericaltextfilter.html
copy to docs/docs/0.90.0/org.apache.streampipes.processors.filters.jvm.numericaltextfilter/org.apache.streampipes.processors.filters.jvm.numericaltextfilter.html
index e28181ff..4be449e6 100644
--- a/docs/docs/org.apache.streampipes.processors.filters.jvm.numericaltextfilter/org.apache.streampipes.processors.filters.jvm.numericaltextfilter.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processors.filters.jvm.numericaltextfilter/org.apache.streampipes.processors.filters.jvm.numericaltextfilter.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.processors.filters.jvm.project/org.apache.streampipes.processors.filters.jvm.project.html b/docs/docs/0.90.0/org.apache.streampipes.processors.filters.jvm.project/org.apache.streampipes.processors.filters.jvm.project.html
similarity index 92%
copy from docs/docs/org.apache.streampipes.processors.filters.jvm.project/org.apache.streampipes.processors.filters.jvm.project.html
copy to docs/docs/0.90.0/org.apache.streampipes.processors.filters.jvm.project/org.apache.streampipes.processors.filters.jvm.project.html
index 868aeb69..d1b05aac 100644
--- a/docs/docs/org.apache.streampipes.processors.filters.jvm.project/org.apache.streampipes.processors.filters.jvm.project.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processors.filters.jvm.project/org.apache.streampipes.processors.filters.jvm.project.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.processors.filters.jvm.textfilter/org.apache.streampipes.processors.filters.jvm.textfilter.html b/docs/docs/0.90.0/org.apache.streampipes.processors.filters.jvm.textfilter/org.apache.streampipes.processors.filters.jvm.textfilter.html
similarity index 93%
copy from docs/docs/org.apache.streampipes.processors.filters.jvm.textfilter/org.apache.streampipes.processors.filters.jvm.textfilter.html
copy to docs/docs/0.90.0/org.apache.streampipes.processors.filters.jvm.textfilter/org.apache.streampipes.processors.filters.jvm.textfilter.html
index 8bc83528..88e5d1a1 100644
--- a/docs/docs/org.apache.streampipes.processors.filters.jvm.textfilter/org.apache.streampipes.processors.filters.jvm.textfilter.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processors.filters.jvm.textfilter/org.apache.streampipes.processors.filters.jvm.textfilter.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.processors.filters.jvm.threshold/org.apache.streampipes.processors.filters.jvm.threshold.html b/docs/docs/0.90.0/org.apache.streampipes.processors.filters.jvm.threshold/org.apache.streampipes.processors.filters.jvm.threshold.html
similarity index 93%
copy from docs/docs/org.apache.streampipes.processors.filters.jvm.threshold/org.apache.streampipes.processors.filters.jvm.threshold.html
copy to docs/docs/0.90.0/org.apache.streampipes.processors.filters.jvm.threshold/org.apache.streampipes.processors.filters.jvm.threshold.html
index 88804f23..2ba74f29 100644
--- a/docs/docs/org.apache.streampipes.processors.filters.jvm.threshold/org.apache.streampipes.processors.filters.jvm.threshold.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processors.filters.jvm.threshold/org.apache.streampipes.processors.filters.jvm.threshold.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.processors.geo.jvm.processor.distancecalculator/org.apache.streampipes.processors.geo.jvm.processor.distancecalculator.html b/docs/docs/0.90.0/org.apache.streampipes.processors.geo.jvm.processor.distancecalculator/org.apache.streampipes.processors.geo.jvm.processor.distancecalculator.html
similarity index 93%
copy from docs/docs/org.apache.streampipes.processors.geo.jvm.processor.distancecalculator/org.apache.streampipes.processors.geo.jvm.processor.distancecalculator.html
copy to docs/docs/0.90.0/org.apache.streampipes.processors.geo.jvm.processor.distancecalculator/org.apache.streampipes.processors.geo.jvm.processor.distancecalculator.html
index d66ee098..5a063b4b 100644
--- a/docs/docs/org.apache.streampipes.processors.geo.jvm.processor.distancecalculator/org.apache.streampipes.processors.geo.jvm.processor.distancecalculator.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processors.geo.jvm.processor.distancecalculator/org.apache.streampipes.processors.geo.jvm.processor.distancecalculator.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.processors.pattern-detection.flink.peak-detection/org.apache.streampipes.processors.pattern-detection.flink.peak-detection.html b/docs/docs/0.90.0/org.apache.streampipes.processors.pattern-detection.flink.peak-detection/org.apache.streampipes.processors.pattern-detection.flink.peak-detection.html
similarity index 93%
copy from docs/docs/org.apache.streampipes.processors.pattern-detection.flink.peak-detection/org.apache.streampipes.processors.pattern-detection.flink.peak-detection.html
copy to docs/docs/0.90.0/org.apache.streampipes.processors.pattern-detection.flink.peak-detection/org.apache.streampipes.processors.pattern-detection.flink.peak-detection.html
index 57f2b5e6..7a611c7a 100644
--- a/docs/docs/org.apache.streampipes.processors.pattern-detection.flink.peak-detection/org.apache.streampipes.processors.pattern-detection.flink.peak-detection.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processors.pattern-detection.flink.peak-detection/org.apache.streampipes.processors.pattern-detection.flink.peak-detection.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.processors.siddhi.frequency/org.apache.streampipes.processors.siddhi.frequency.html b/docs/docs/0.90.0/org.apache.streampipes.processors.siddhi.frequency/org.apache.streampipes.processors.siddhi.frequency.html
similarity index 93%
copy from docs/docs/org.apache.streampipes.processors.siddhi.frequency/org.apache.streampipes.processors.siddhi.frequency.html
copy to docs/docs/0.90.0/org.apache.streampipes.processors.siddhi.frequency/org.apache.streampipes.processors.siddhi.frequency.html
index 940a344b..6dcf0bd5 100644
--- a/docs/docs/org.apache.streampipes.processors.siddhi.frequency/org.apache.streampipes.processors.siddhi.frequency.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processors.siddhi.frequency/org.apache.streampipes.processors.siddhi.frequency.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.processors.siddhi.frequencychange/org.apache.streampipes.processors.siddhi.frequencychange.html b/docs/docs/0.90.0/org.apache.streampipes.processors.siddhi.frequencychange/org.apache.streampipes.processors.siddhi.frequencychange.html
similarity index 93%
copy from docs/docs/org.apache.streampipes.processors.siddhi.frequencychange/org.apache.streampipes.processors.siddhi.frequencychange.html
copy to docs/docs/0.90.0/org.apache.streampipes.processors.siddhi.frequencychange/org.apache.streampipes.processors.siddhi.frequencychange.html
index cf019e3f..1850bb9d 100644
--- a/docs/docs/org.apache.streampipes.processors.siddhi.frequencychange/org.apache.streampipes.processors.siddhi.frequencychange.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processors.siddhi.frequencychange/org.apache.streampipes.processors.siddhi.frequencychange.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.processors.siddhi.increase/org.apache.streampipes.processors.siddhi.increase.html b/docs/docs/0.90.0/org.apache.streampipes.processors.siddhi.increase/org.apache.streampipes.processors.siddhi.increase.html
similarity index 93%
copy from docs/docs/org.apache.streampipes.processors.siddhi.increase/org.apache.streampipes.processors.siddhi.increase.html
copy to docs/docs/0.90.0/org.apache.streampipes.processors.siddhi.increase/org.apache.streampipes.processors.siddhi.increase.html
index 5c455a0e..677f2b47 100644
--- a/docs/docs/org.apache.streampipes.processors.siddhi.increase/org.apache.streampipes.processors.siddhi.increase.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processors.siddhi.increase/org.apache.streampipes.processors.siddhi.increase.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.processors.siddhi.numericalfilter/org.apache.streampipes.processors.siddhi.numericalfilter.html b/docs/docs/0.90.0/org.apache.streampipes.processors.siddhi.numericalfilter/org.apache.streampipes.processors.siddhi.numericalfilter.html
similarity index 93%
copy from docs/docs/org.apache.streampipes.processors.siddhi.numericalfilter/org.apache.streampipes.processors.siddhi.numericalfilter.html
copy to docs/docs/0.90.0/org.apache.streampipes.processors.siddhi.numericalfilter/org.apache.streampipes.processors.siddhi.numericalfilter.html
index 0ef9e508..a410653f 100644
--- a/docs/docs/org.apache.streampipes.processors.siddhi.numericalfilter/org.apache.streampipes.processors.siddhi.numericalfilter.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processors.siddhi.numericalfilter/org.apache.streampipes.processors.siddhi.numericalfilter.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.processors.siddhi.sequence/org.apache.streampipes.processors.siddhi.sequence.html b/docs/docs/0.90.0/org.apache.streampipes.processors.siddhi.sequence/org.apache.streampipes.processors.siddhi.sequence.html
similarity index 93%
copy from docs/docs/org.apache.streampipes.processors.siddhi.sequence/org.apache.streampipes.processors.siddhi.sequence.html
copy to docs/docs/0.90.0/org.apache.streampipes.processors.siddhi.sequence/org.apache.streampipes.processors.siddhi.sequence.html
index f507cf9c..cb1a56de 100644
--- a/docs/docs/org.apache.streampipes.processors.siddhi.sequence/org.apache.streampipes.processors.siddhi.sequence.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processors.siddhi.sequence/org.apache.streampipes.processors.siddhi.sequence.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.processors.siddhi.stop/org.apache.streampipes.processors.siddhi.stop.html b/docs/docs/0.90.0/org.apache.streampipes.processors.siddhi.stop/org.apache.streampipes.processors.siddhi.stop.html
similarity index 93%
copy from docs/docs/org.apache.streampipes.processors.siddhi.stop/org.apache.streampipes.processors.siddhi.stop.html
copy to docs/docs/0.90.0/org.apache.streampipes.processors.siddhi.stop/org.apache.streampipes.processors.siddhi.stop.html
index 6c53ae98..0f2fb517 100644
--- a/docs/docs/org.apache.streampipes.processors.siddhi.stop/org.apache.streampipes.processors.siddhi.stop.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processors.siddhi.stop/org.apache.streampipes.processors.siddhi.stop.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.processors.textmining.flink.languagedetection/org.apache.streampipes.processors.textmining.flink.languagedetection.html b/docs/docs/0.90.0/org.apache.streampipes.processors.textmining.flink.languagedetection/org.apache.streampipes.processors.textmining.flink.languagedetection.html
similarity index 93%
copy from docs/docs/org.apache.streampipes.processors.textmining.flink.languagedetection/org.apache.streampipes.processors.textmining.flink.languagedetection.html
copy to docs/docs/0.90.0/org.apache.streampipes.processors.textmining.flink.languagedetection/org.apache.streampipes.processors.textmining.flink.languagedetection.html
index b429729d..361a2bf7 100644
--- a/docs/docs/org.apache.streampipes.processors.textmining.flink.languagedetection/org.apache.streampipes.processors.textmining.flink.languagedetection.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processors.textmining.flink.languagedetection/org.apache.streampipes.processors.textmining.flink.languagedetection.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.processors.textmining.flink.wordcount/org.apache.streampipes.processors.textmining.flink.wordcount.html b/docs/docs/0.90.0/org.apache.streampipes.processors.textmining.flink.wordcount/org.apache.streampipes.processors.textmining.flink.wordcount.html
similarity index 93%
copy from docs/docs/org.apache.streampipes.processors.textmining.flink.wordcount/org.apache.streampipes.processors.textmining.flink.wordcount.html
copy to docs/docs/0.90.0/org.apache.streampipes.processors.textmining.flink.wordcount/org.apache.streampipes.processors.textmining.flink.wordcount.html
index 5236ea2d..b429d973 100644
--- a/docs/docs/org.apache.streampipes.processors.textmining.flink.wordcount/org.apache.streampipes.processors.textmining.flink.wordcount.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processors.textmining.flink.wordcount/org.apache.streampipes.processors.textmining.flink.wordcount.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.processors.textmining.jvm.chunker/org.apache.streampipes.processors.textmining.jvm.chunker.html b/docs/docs/0.90.0/org.apache.streampipes.processors.textmining.jvm.chunker/org.apache.streampipes.processors.textmining.jvm.chunker.html
similarity index 93%
copy from docs/docs/org.apache.streampipes.processors.textmining.jvm.chunker/org.apache.streampipes.processors.textmining.jvm.chunker.html
copy to docs/docs/0.90.0/org.apache.streampipes.processors.textmining.jvm.chunker/org.apache.streampipes.processors.textmining.jvm.chunker.html
index 68ec16e3..e538b104 100644
--- a/docs/docs/org.apache.streampipes.processors.textmining.jvm.chunker/org.apache.streampipes.processors.textmining.jvm.chunker.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processors.textmining.jvm.chunker/org.apache.streampipes.processors.textmining.jvm.chunker.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.processors.textmining.jvm.languagedetection/org.apache.streampipes.processors.textmining.jvm.languagedetection.html b/docs/docs/0.90.0/org.apache.streampipes.processors.textmining.jvm.languagedetection/org.apache.streampipes.processors.textmining.jvm.languagedetection.html
similarity index 94%
copy from docs/docs/org.apache.streampipes.processors.textmining.jvm.languagedetection/org.apache.streampipes.processors.textmining.jvm.languagedetection.html
copy to docs/docs/0.90.0/org.apache.streampipes.processors.textmining.jvm.languagedetection/org.apache.streampipes.processors.textmining.jvm.languagedetection.html
index d2a3a4a6..98145173 100644
--- a/docs/docs/org.apache.streampipes.processors.textmining.jvm.languagedetection/org.apache.streampipes.processors.textmining.jvm.languagedetection.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processors.textmining.jvm.languagedetection/org.apache.streampipes.processors.textmining.jvm.languagedetection.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.processors.textmining.jvm.namefinder/org.apache.streampipes.processors.textmining.jvm.namefinder.html b/docs/docs/0.90.0/org.apache.streampipes.processors.textmining.jvm.namefinder/org.apache.streampipes.processors.textmining.jvm.namefinder.html
similarity index 93%
copy from docs/docs/org.apache.streampipes.processors.textmining.jvm.namefinder/org.apache.streampipes.processors.textmining.jvm.namefinder.html
copy to docs/docs/0.90.0/org.apache.streampipes.processors.textmining.jvm.namefinder/org.apache.streampipes.processors.textmining.jvm.namefinder.html
index bd12b003..fdcff2fb 100644
--- a/docs/docs/org.apache.streampipes.processors.textmining.jvm.namefinder/org.apache.streampipes.processors.textmining.jvm.namefinder.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processors.textmining.jvm.namefinder/org.apache.streampipes.processors.textmining.jvm.namefinder.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.processors.textmining.jvm.partofspeech/org.apache.streampipes.processors.textmining.jvm.partofspeech.html b/docs/docs/0.90.0/org.apache.streampipes.processors.textmining.jvm.partofspeech/org.apache.streampipes.processors.textmining.jvm.partofspeech.html
similarity index 92%
copy from docs/docs/org.apache.streampipes.processors.textmining.jvm.partofspeech/org.apache.streampipes.processors.textmining.jvm.partofspeech.html
copy to docs/docs/0.90.0/org.apache.streampipes.processors.textmining.jvm.partofspeech/org.apache.streampipes.processors.textmining.jvm.partofspeech.html
index 8916cc25..34bfdfec 100644
--- a/docs/docs/org.apache.streampipes.processors.textmining.jvm.partofspeech/org.apache.streampipes.processors.textmining.jvm.partofspeech.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processors.textmining.jvm.partofspeech/org.apache.streampipes.processors.textmining.jvm.partofspeech.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.processors.textmining.jvm.sentencedetection/org.apache.streampipes.processors.textmining.jvm.sentencedetection.html b/docs/docs/0.90.0/org.apache.streampipes.processors.textmining.jvm.sentencedetection/org.apache.streampipes.processors.textmining.jvm.sentencedetection.html
similarity index 92%
copy from docs/docs/org.apache.streampipes.processors.textmining.jvm.sentencedetection/org.apache.streampipes.processors.textmining.jvm.sentencedetection.html
copy to docs/docs/0.90.0/org.apache.streampipes.processors.textmining.jvm.sentencedetection/org.apache.streampipes.processors.textmining.jvm.sentencedetection.html
index e88fea6f..d3f77d04 100644
--- a/docs/docs/org.apache.streampipes.processors.textmining.jvm.sentencedetection/org.apache.streampipes.processors.textmining.jvm.sentencedetection.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processors.textmining.jvm.sentencedetection/org.apache.streampipes.processors.textmining.jvm.sentencedetection.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.processors.textmining.jvm.tokenizer/org.apache.streampipes.processors.textmining.jvm.tokenizer.html b/docs/docs/0.90.0/org.apache.streampipes.processors.textmining.jvm.tokenizer/org.apache.streampipes.processors.textmining.jvm.tokenizer.html
similarity index 92%
copy from docs/docs/org.apache.streampipes.processors.textmining.jvm.tokenizer/org.apache.streampipes.processors.textmining.jvm.tokenizer.html
copy to docs/docs/0.90.0/org.apache.streampipes.processors.textmining.jvm.tokenizer/org.apache.streampipes.processors.textmining.jvm.tokenizer.html
index b45d6688..579e2765 100644
--- a/docs/docs/org.apache.streampipes.processors.textmining.jvm.tokenizer/org.apache.streampipes.processors.textmining.jvm.tokenizer.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processors.textmining.jvm.tokenizer/org.apache.streampipes.processors.textmining.jvm.tokenizer.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.processors.transformation.flink.field-converter/org.apache.streampipes.processors.transformation.flink.field-converter.html b/docs/docs/0.90.0/org.apache.streampipes.processors.transformation.flink.field-converter/org.apache.streampipes.processors.transformation.flink.field-converter.html
similarity index 93%
copy from docs/docs/org.apache.streampipes.processors.transformation.flink.field-converter/org.apache.streampipes.processors.transformation.flink.field-converter.html
copy to docs/docs/0.90.0/org.apache.streampipes.processors.transformation.flink.field-converter/org.apache.streampipes.processors.transformation.flink.field-converter.html
index 6bb79aa2..1ed6463f 100644
--- a/docs/docs/org.apache.streampipes.processors.transformation.flink.field-converter/org.apache.streampipes.processors.transformation.flink.field-converter.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processors.transformation.flink.field-converter/org.apache.streampipes.processors.transformation.flink.field-converter.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.processors.transformation.flink.field-mapper/org.apache.streampipes.processors.transformation.flink.field-mapper.html b/docs/docs/0.90.0/org.apache.streampipes.processors.transformation.flink.field-mapper/org.apache.streampipes.processors.transformation.flink.field-mapper.html
similarity index 93%
copy from docs/docs/org.apache.streampipes.processors.transformation.flink.field-mapper/org.apache.streampipes.processors.transformation.flink.field-mapper.html
copy to docs/docs/0.90.0/org.apache.streampipes.processors.transformation.flink.field-mapper/org.apache.streampipes.processors.transformation.flink.field-mapper.html
index a9281dfd..0930ffdd 100644
--- a/docs/docs/org.apache.streampipes.processors.transformation.flink.field-mapper/org.apache.streampipes.processors.transformation.flink.field-mapper.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processors.transformation.flink.field-mapper/org.apache.streampipes.processors.transformation.flink.field-mapper.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.processors.transformation.flink.field-renamer/org.apache.streampipes.processors.transformation.flink.field-renamer.html b/docs/docs/0.90.0/org.apache.streampipes.processors.transformation.flink.field-renamer/org.apache.streampipes.processors.transformation.flink.field-renamer.html
similarity index 93%
copy from docs/docs/org.apache.streampipes.processors.transformation.flink.field-renamer/org.apache.streampipes.processors.transformation.flink.field-renamer.html
copy to docs/docs/0.90.0/org.apache.streampipes.processors.transformation.flink.field-renamer/org.apache.streampipes.processors.transformation.flink.field-renamer.html
index df695783..d3ffd8c1 100644
--- a/docs/docs/org.apache.streampipes.processors.transformation.flink.field-renamer/org.apache.streampipes.processors.transformation.flink.field-renamer.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processors.transformation.flink.field-renamer/org.apache.streampipes.processors.transformation.flink.field-renamer.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.processors.transformation.flink.fieldhasher/org.apache.streampipes.processors.transformation.flink.fieldhasher.html b/docs/docs/0.90.0/org.apache.streampipes.processors.transformation.flink.fieldhasher/org.apache.streampipes.processors.transformation.flink.fieldhasher.html
similarity index 93%
copy from docs/docs/org.apache.streampipes.processors.transformation.flink.fieldhasher/org.apache.streampipes.processors.transformation.flink.fieldhasher.html
copy to docs/docs/0.90.0/org.apache.streampipes.processors.transformation.flink.fieldhasher/org.apache.streampipes.processors.transformation.flink.fieldhasher.html
index 877f1318..dbe64b28 100644
--- a/docs/docs/org.apache.streampipes.processors.transformation.flink.fieldhasher/org.apache.streampipes.processors.transformation.flink.fieldhasher.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processors.transformation.flink.fieldhasher/org.apache.streampipes.processors.transformation.flink.fieldhasher.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.processors.transformation.flink.measurement-unit-converter/org.apache.streampipes.processors.transformation.flink.measurement-unit-converter.html b/docs/docs/0.90.0/org.apache.streampipes.processors.transformation.flink.measurement-unit-converter/org.apache.streampipes.processors.transformation.flink.measurement-unit-converter.html
similarity index 93%
copy from docs/docs/org.apache.streampipes.processors.transformation.flink.measurement-unit-converter/org.apache.streampipes.processors.transformation.flink.measurement-unit-converter.html
copy to docs/docs/0.90.0/org.apache.streampipes.processors.transformation.flink.measurement-unit-converter/org.apache.streampipes.processors.transformation.flink.measurement-unit-converter.html
index 1df86aa7..8fac9f76 100644
--- a/docs/docs/org.apache.streampipes.processors.transformation.flink.measurement-unit-converter/org.apache.streampipes.processors.transformation.flink.measurement-unit-converter.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processors.transformation.flink.measurement-unit-converter/org.apache.streampipes.processors.transformation.flink.measurement-unit-converter.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.processors.transformation.flink.processor.boilerplate/org.apache.streampipes.processors.transformation.flink.processor.boilerplate.html b/docs/docs/0.90.0/org.apache.streampipes.processors.transformation.flink.processor.boilerplate/org.apache.streampipes.processors.transformation.flink.processor.boilerplate.html
similarity index 93%
copy from docs/docs/org.apache.streampipes.processors.transformation.flink.processor.boilerplate/org.apache.streampipes.processors.transformation.flink.processor.boilerplate.html
copy to docs/docs/0.90.0/org.apache.streampipes.processors.transformation.flink.processor.boilerplate/org.apache.streampipes.processors.transformation.flink.processor.boilerplate.html
index 68149332..76ddd4ec 100644
--- a/docs/docs/org.apache.streampipes.processors.transformation.flink.processor.boilerplate/org.apache.streampipes.processors.transformation.flink.processor.boilerplate.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processors.transformation.flink.processor.boilerplate/org.apache.streampipes.processors.transformation.flink.processor.boilerplate.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.processors.transformation.jvm.booloperator.counter/org.apache.streampipes.processors.transformation.jvm.booloperator.counter.html b/docs/docs/0.90.0/org.apache.streampipes.processors.transformation.jvm.booloperator.counter/org.apache.streampipes.processors.transformation.jvm.booloperator.counter.html
similarity index 93%
copy from docs/docs/org.apache.streampipes.processors.transformation.jvm.booloperator.counter/org.apache.streampipes.processors.transformation.jvm.booloperator.counter.html
copy to docs/docs/0.90.0/org.apache.streampipes.processors.transformation.jvm.booloperator.counter/org.apache.streampipes.processors.transformation.jvm.booloperator.counter.html
index 7776ee6f..8a0b7a4b 100644
--- a/docs/docs/org.apache.streampipes.processors.transformation.jvm.booloperator.counter/org.apache.streampipes.processors.transformation.jvm.booloperator.counter.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processors.transformation.jvm.booloperator.counter/org.apache.streampipes.processors.transformation.jvm.booloperator.counter.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.processors.transformation.jvm.booloperator.inverter/org.apache.streampipes.processors.transformation.jvm.booloperator.inverter.html b/docs/docs/0.90.0/org.apache.streampipes.processors.transformation.jvm.booloperator.inverter/org.apache.streampipes.processors.transformation.jvm.booloperator.inverter.html
similarity index 93%
copy from docs/docs/org.apache.streampipes.processors.transformation.jvm.booloperator.inverter/org.apache.streampipes.processors.transformation.jvm.booloperator.inverter.html
copy to docs/docs/0.90.0/org.apache.streampipes.processors.transformation.jvm.booloperator.inverter/org.apache.streampipes.processors.transformation.jvm.booloperator.inverter.html
index b0429903..1f74079b 100644
--- a/docs/docs/org.apache.streampipes.processors.transformation.jvm.booloperator.inverter/org.apache.streampipes.processors.transformation.jvm.booloperator.inverter.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processors.transformation.jvm.booloperator.inverter/org.apache.streampipes.processors.transformation.jvm.booloperator.inverter.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.processors.transformation.jvm.booloperator.timekeeping/org.apache.streampipes.processors.transformation.jvm.booloperator.timekeeping.html b/docs/docs/0.90.0/org.apache.streampipes.processors.transformation.jvm.booloperator.timekeeping/org.apache.streampipes.processors.transformation.jvm.booloperator.timekeeping.html
similarity index 94%
copy from docs/docs/org.apache.streampipes.processors.transformation.jvm.booloperator.timekeeping/org.apache.streampipes.processors.transformation.jvm.booloperator.timekeeping.html
copy to docs/docs/0.90.0/org.apache.streampipes.processors.transformation.jvm.booloperator.timekeeping/org.apache.streampipes.processors.transformation.jvm.booloperator.timekeeping.html
index dbd5efb1..3311b480 100644
--- a/docs/docs/org.apache.streampipes.processors.transformation.jvm.booloperator.timekeeping/org.apache.streampipes.processors.transformation.jvm.booloperator.timekeeping.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processors.transformation.jvm.booloperator.timekeeping/org.apache.streampipes.processors.transformation.jvm.booloperator.timekeeping.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.processors.transformation.jvm.booloperator.timer/org.apache.streampipes.processors.transformation.jvm.booloperator.timer.html b/docs/docs/0.90.0/org.apache.streampipes.processors.transformation.jvm.booloperator.timer/org.apache.streampipes.processors.transformation.jvm.booloperator.timer.html
similarity index 93%
copy from docs/docs/org.apache.streampipes.processors.transformation.jvm.booloperator.timer/org.apache.streampipes.processors.transformation.jvm.booloperator.timer.html
copy to docs/docs/0.90.0/org.apache.streampipes.processors.transformation.jvm.booloperator.timer/org.apache.streampipes.processors.transformation.jvm.booloperator.timer.html
index 0bb4419b..509ea074 100644
--- a/docs/docs/org.apache.streampipes.processors.transformation.jvm.booloperator.timer/org.apache.streampipes.processors.transformation.jvm.booloperator.timer.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processors.transformation.jvm.booloperator.timer/org.apache.streampipes.processors.transformation.jvm.booloperator.timer.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.processors.transformation.jvm.changed-value/org.apache.streampipes.processors.transformation.jvm.changed-value.html b/docs/docs/0.90.0/org.apache.streampipes.processors.transformation.jvm.changed-value/org.apache.streampipes.processors.transformation.jvm.changed-value.html
similarity index 93%
copy from docs/docs/org.apache.streampipes.processors.transformation.jvm.changed-value/org.apache.streampipes.processors.transformation.jvm.changed-value.html
copy to docs/docs/0.90.0/org.apache.streampipes.processors.transformation.jvm.changed-value/org.apache.streampipes.processors.transformation.jvm.changed-value.html
index fc281840..b414ef1d 100644
--- a/docs/docs/org.apache.streampipes.processors.transformation.jvm.changed-value/org.apache.streampipes.processors.transformation.jvm.changed-value.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processors.transformation.jvm.changed-value/org.apache.streampipes.processors.transformation.jvm.changed-value.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.processors.transformation.jvm.count-array/org.apache.streampipes.processors.transformation.jvm.count-array.html b/docs/docs/0.90.0/org.apache.streampipes.processors.transformation.jvm.count-array/org.apache.streampipes.processors.transformation.jvm.count-array.html
similarity index 93%
copy from docs/docs/org.apache.streampipes.processors.transformation.jvm.count-array/org.apache.streampipes.processors.transformation.jvm.count-array.html
copy to docs/docs/0.90.0/org.apache.streampipes.processors.transformation.jvm.count-array/org.apache.streampipes.processors.transformation.jvm.count-array.html
index 95aed00a..282f1b6f 100644
--- a/docs/docs/org.apache.streampipes.processors.transformation.jvm.count-array/org.apache.streampipes.processors.transformation.jvm.count-array.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processors.transformation.jvm.count-array/org.apache.streampipes.processors.transformation.jvm.count-array.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.processors.transformation.jvm.csvmetadata/org.apache.streampipes.processors.transformation.jvm.csvmetadata.html b/docs/docs/0.90.0/org.apache.streampipes.processors.transformation.jvm.csvmetadata/org.apache.streampipes.processors.transformation.jvm.csvmetadata.html
similarity index 92%
copy from docs/docs/org.apache.streampipes.processors.transformation.jvm.csvmetadata/org.apache.streampipes.processors.transformation.jvm.csvmetadata.html
copy to docs/docs/0.90.0/org.apache.streampipes.processors.transformation.jvm.csvmetadata/org.apache.streampipes.processors.transformation.jvm.csvmetadata.html
index 452f1cb7..a4ad9e92 100644
--- a/docs/docs/org.apache.streampipes.processors.transformation.jvm.csvmetadata/org.apache.streampipes.processors.transformation.jvm.csvmetadata.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processors.transformation.jvm.csvmetadata/org.apache.streampipes.processors.transformation.jvm.csvmetadata.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.processors.transformation.jvm.duration-value/org.apache.streampipes.processors.transformation.jvm.duration-value.html b/docs/docs/0.90.0/org.apache.streampipes.processors.transformation.jvm.duration-value/org.apache.streampipes.processors.transformation.jvm.duration-value.html
similarity index 93%
copy from docs/docs/org.apache.streampipes.processors.transformation.jvm.duration-value/org.apache.streampipes.processors.transformation.jvm.duration-value.html
copy to docs/docs/0.90.0/org.apache.streampipes.processors.transformation.jvm.duration-value/org.apache.streampipes.processors.transformation.jvm.duration-value.html
index 3e06db23..555b039c 100644
--- a/docs/docs/org.apache.streampipes.processors.transformation.jvm.duration-value/org.apache.streampipes.processors.transformation.jvm.duration-value.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processors.transformation.jvm.duration-value/org.apache.streampipes.processors.transformation.jvm.duration-value.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.processors.transformation.jvm.processor.timestampextractor/org.apache.streampipes.processors.transformation.jvm.processor.timestampextractor.html b/docs/docs/0.90.0/org.apache.streampipes.processors.transformation.jvm.processor.timestampextractor/org.apache.streampipes.processors.transformation.jvm.processor.timestampextractor.html
similarity index 93%
copy from docs/docs/org.apache.streampipes.processors.transformation.jvm.processor.timestampextractor/org.apache.streampipes.processors.transformation.jvm.processor.timestampextractor.html
copy to docs/docs/0.90.0/org.apache.streampipes.processors.transformation.jvm.processor.timestampextractor/org.apache.streampipes.processors.transformation.jvm.processor.timestampextractor.html
index edcd1c0e..8dababbf 100644
--- a/docs/docs/org.apache.streampipes.processors.transformation.jvm.processor.timestampextractor/org.apache.streampipes.processors.transformation.jvm.processor.timestampextractor.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processors.transformation.jvm.processor.timestampextractor/org.apache.streampipes.processors.transformation.jvm.processor.timestampextractor.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.processors.transformation.jvm.split-array/org.apache.streampipes.processors.transformation.jvm.split-array.html b/docs/docs/0.90.0/org.apache.streampipes.processors.transformation.jvm.split-array/org.apache.streampipes.processors.transformation.jvm.split-array.html
similarity index 93%
copy from docs/docs/org.apache.streampipes.processors.transformation.jvm.split-array/org.apache.streampipes.processors.transformation.jvm.split-array.html
copy to docs/docs/0.90.0/org.apache.streampipes.processors.transformation.jvm.split-array/org.apache.streampipes.processors.transformation.jvm.split-array.html
index c36f474c..6024f8c5 100644
--- a/docs/docs/org.apache.streampipes.processors.transformation.jvm.split-array/org.apache.streampipes.processors.transformation.jvm.split-array.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processors.transformation.jvm.split-array/org.apache.streampipes.processors.transformation.jvm.split-array.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.processors.transformation.jvm.taskduration/org.apache.streampipes.processors.transformation.jvm.taskduration.html b/docs/docs/0.90.0/org.apache.streampipes.processors.transformation.jvm.taskduration/org.apache.streampipes.processors.transformation.jvm.taskduration.html
similarity index 92%
copy from docs/docs/org.apache.streampipes.processors.transformation.jvm.taskduration/org.apache.streampipes.processors.transformation.jvm.taskduration.html
copy to docs/docs/0.90.0/org.apache.streampipes.processors.transformation.jvm.taskduration/org.apache.streampipes.processors.transformation.jvm.taskduration.html
index e499f4b6..059e198b 100644
--- a/docs/docs/org.apache.streampipes.processors.transformation.jvm.taskduration/org.apache.streampipes.processors.transformation.jvm.taskduration.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processors.transformation.jvm.taskduration/org.apache.streampipes.processors.transformation.jvm.taskduration.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.processors.transformation.jvm.transform-to-boolean/org.apache.streampipes.processors.transformation.jvm.transform-to-boolean.html b/docs/docs/0.90.0/org.apache.streampipes.processors.transformation.jvm.transform-to-boolean/org.apache.streampipes.processors.transformation.jvm.transform-to-boolean.html
similarity index 92%
copy from docs/docs/org.apache.streampipes.processors.transformation.jvm.transform-to-boolean/org.apache.streampipes.processors.transformation.jvm.transform-to-boolean.html
copy to docs/docs/0.90.0/org.apache.streampipes.processors.transformation.jvm.transform-to-boolean/org.apache.streampipes.processors.transformation.jvm.transform-to-boolean.html
index 8b73cfdb..c9101eba 100644
--- a/docs/docs/org.apache.streampipes.processors.transformation.jvm.transform-to-boolean/org.apache.streampipes.processors.transformation.jvm.transform-to-boolean.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.processors.transformation.jvm.transform-to-boolean/org.apache.streampipes.processors.transformation.jvm.transform-to-boolean.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
     <img src="/docs/img/pipeline-elements/org.apache.streampipes.processors.transformation.jvm.transform-to-boolean/icon.png" width="150px;" class="pe-image-documentation"/>
 </p>
 <hr>
diff --git a/docs/docs/org.apache.streampipes.sinks.brokers.jvm.bufferrest/org.apache.streampipes.sinks.brokers.jvm.bufferrest.html b/docs/docs/0.90.0/org.apache.streampipes.sinks.brokers.jvm.bufferrest/org.apache.streampipes.sinks.brokers.jvm.bufferrest.html
similarity index 93%
copy from docs/docs/org.apache.streampipes.sinks.brokers.jvm.bufferrest/org.apache.streampipes.sinks.brokers.jvm.bufferrest.html
copy to docs/docs/0.90.0/org.apache.streampipes.sinks.brokers.jvm.bufferrest/org.apache.streampipes.sinks.brokers.jvm.bufferrest.html
index 727a638f..0c8eafc8 100644
--- a/docs/docs/org.apache.streampipes.sinks.brokers.jvm.bufferrest/org.apache.streampipes.sinks.brokers.jvm.bufferrest.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.sinks.brokers.jvm.bufferrest/org.apache.streampipes.sinks.brokers.jvm.bufferrest.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.sinks.brokers.jvm.jms/org.apache.streampipes.sinks.brokers.jvm.jms.html b/docs/docs/0.90.0/org.apache.streampipes.sinks.brokers.jvm.jms/org.apache.streampipes.sinks.brokers.jvm.jms.html
similarity index 93%
copy from docs/docs/org.apache.streampipes.sinks.brokers.jvm.jms/org.apache.streampipes.sinks.brokers.jvm.jms.html
copy to docs/docs/0.90.0/org.apache.streampipes.sinks.brokers.jvm.jms/org.apache.streampipes.sinks.brokers.jvm.jms.html
index 8e782c98..28b971a8 100644
--- a/docs/docs/org.apache.streampipes.sinks.brokers.jvm.jms/org.apache.streampipes.sinks.brokers.jvm.jms.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.sinks.brokers.jvm.jms/org.apache.streampipes.sinks.brokers.jvm.jms.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.sinks.brokers.jvm.kafka/org.apache.streampipes.sinks.brokers.jvm.kafka.html b/docs/docs/0.90.0/org.apache.streampipes.sinks.brokers.jvm.kafka/org.apache.streampipes.sinks.brokers.jvm.kafka.html
similarity index 93%
copy from docs/docs/org.apache.streampipes.sinks.brokers.jvm.kafka/org.apache.streampipes.sinks.brokers.jvm.kafka.html
copy to docs/docs/0.90.0/org.apache.streampipes.sinks.brokers.jvm.kafka/org.apache.streampipes.sinks.brokers.jvm.kafka.html
index c7fd2bd8..c6f7409c 100644
--- a/docs/docs/org.apache.streampipes.sinks.brokers.jvm.kafka/org.apache.streampipes.sinks.brokers.jvm.kafka.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.sinks.brokers.jvm.kafka/org.apache.streampipes.sinks.brokers.jvm.kafka.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.sinks.brokers.jvm.pulsar/org.apache.streampipes.sinks.brokers.jvm.pulsar.html b/docs/docs/0.90.0/org.apache.streampipes.sinks.brokers.jvm.pulsar/org.apache.streampipes.sinks.brokers.jvm.pulsar.html
similarity index 93%
copy from docs/docs/org.apache.streampipes.sinks.brokers.jvm.pulsar/org.apache.streampipes.sinks.brokers.jvm.pulsar.html
copy to docs/docs/0.90.0/org.apache.streampipes.sinks.brokers.jvm.pulsar/org.apache.streampipes.sinks.brokers.jvm.pulsar.html
index 226d94db..fda49e8b 100644
--- a/docs/docs/org.apache.streampipes.sinks.brokers.jvm.pulsar/org.apache.streampipes.sinks.brokers.jvm.pulsar.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.sinks.brokers.jvm.pulsar/org.apache.streampipes.sinks.brokers.jvm.pulsar.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.sinks.brokers.jvm.rabbitmq/org.apache.streampipes.sinks.brokers.jvm.rabbitmq.html b/docs/docs/0.90.0/org.apache.streampipes.sinks.brokers.jvm.rabbitmq/org.apache.streampipes.sinks.brokers.jvm.rabbitmq.html
similarity index 94%
copy from docs/docs/org.apache.streampipes.sinks.brokers.jvm.rabbitmq/org.apache.streampipes.sinks.brokers.jvm.rabbitmq.html
copy to docs/docs/0.90.0/org.apache.streampipes.sinks.brokers.jvm.rabbitmq/org.apache.streampipes.sinks.brokers.jvm.rabbitmq.html
index 684d8d7b..9291cdf8 100644
--- a/docs/docs/org.apache.streampipes.sinks.brokers.jvm.rabbitmq/org.apache.streampipes.sinks.brokers.jvm.rabbitmq.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.sinks.brokers.jvm.rabbitmq/org.apache.streampipes.sinks.brokers.jvm.rabbitmq.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.sinks.brokers.jvm.rest/org.apache.streampipes.sinks.brokers.jvm.rest.html b/docs/docs/0.90.0/org.apache.streampipes.sinks.brokers.jvm.rest/org.apache.streampipes.sinks.brokers.jvm.rest.html
similarity index 93%
copy from docs/docs/org.apache.streampipes.sinks.brokers.jvm.rest/org.apache.streampipes.sinks.brokers.jvm.rest.html
copy to docs/docs/0.90.0/org.apache.streampipes.sinks.brokers.jvm.rest/org.apache.streampipes.sinks.brokers.jvm.rest.html
index 4b962d69..4338ff59 100644
--- a/docs/docs/org.apache.streampipes.sinks.brokers.jvm.rest/org.apache.streampipes.sinks.brokers.jvm.rest.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.sinks.brokers.jvm.rest/org.apache.streampipes.sinks.brokers.jvm.rest.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.sinks.databases.ditto/org.apache.streampipes.sinks.databases.ditto.html b/docs/docs/0.90.0/org.apache.streampipes.sinks.databases.ditto/org.apache.streampipes.sinks.databases.ditto.html
similarity index 93%
copy from docs/docs/org.apache.streampipes.sinks.databases.ditto/org.apache.streampipes.sinks.databases.ditto.html
copy to docs/docs/0.90.0/org.apache.streampipes.sinks.databases.ditto/org.apache.streampipes.sinks.databases.ditto.html
index b6ca81eb..d7040d39 100644
--- a/docs/docs/org.apache.streampipes.sinks.databases.ditto/org.apache.streampipes.sinks.databases.ditto.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.sinks.databases.ditto/org.apache.streampipes.sinks.databases.ditto.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.sinks.databases.flink.elasticsearch/org.apache.streampipes.sinks.databases.flink.elasticsearch.html b/docs/docs/0.90.0/org.apache.streampipes.sinks.databases.flink.elasticsearch/org.apache.streampipes.sinks.databases.flink.elasticsearch.html
similarity index 93%
copy from docs/docs/org.apache.streampipes.sinks.databases.flink.elasticsearch/org.apache.streampipes.sinks.databases.flink.elasticsearch.html
copy to docs/docs/0.90.0/org.apache.streampipes.sinks.databases.flink.elasticsearch/org.apache.streampipes.sinks.databases.flink.elasticsearch.html
index 786143c5..c196ecc9 100644
--- a/docs/docs/org.apache.streampipes.sinks.databases.flink.elasticsearch/org.apache.streampipes.sinks.databases.flink.elasticsearch.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.sinks.databases.flink.elasticsearch/org.apache.streampipes.sinks.databases.flink.elasticsearch.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.sinks.databases.jvm.couchdb/org.apache.streampipes.sinks.databases.jvm.couchdb.html b/docs/docs/0.90.0/org.apache.streampipes.sinks.databases.jvm.couchdb/org.apache.streampipes.sinks.databases.jvm.couchdb.html
similarity index 93%
copy from docs/docs/org.apache.streampipes.sinks.databases.jvm.couchdb/org.apache.streampipes.sinks.databases.jvm.couchdb.html
copy to docs/docs/0.90.0/org.apache.streampipes.sinks.databases.jvm.couchdb/org.apache.streampipes.sinks.databases.jvm.couchdb.html
index e51157ed..b859aced 100644
--- a/docs/docs/org.apache.streampipes.sinks.databases.jvm.couchdb/org.apache.streampipes.sinks.databases.jvm.couchdb.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.sinks.databases.jvm.couchdb/org.apache.streampipes.sinks.databases.jvm.couchdb.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.sinks.databases.jvm.influxdb/org.apache.streampipes.sinks.databases.jvm.influxdb.html b/docs/docs/0.90.0/org.apache.streampipes.sinks.databases.jvm.influxdb/org.apache.streampipes.sinks.databases.jvm.influxdb.html
similarity index 95%
copy from docs/docs/org.apache.streampipes.sinks.databases.jvm.influxdb/org.apache.streampipes.sinks.databases.jvm.influxdb.html
copy to docs/docs/0.90.0/org.apache.streampipes.sinks.databases.jvm.influxdb/org.apache.streampipes.sinks.databases.jvm.influxdb.html
index b03620ee..74bd7947 100644
--- a/docs/docs/org.apache.streampipes.sinks.databases.jvm.influxdb/org.apache.streampipes.sinks.databases.jvm.influxdb.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.sinks.databases.jvm.influxdb/org.apache.streampipes.sinks.databases.jvm.influxdb.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.sinks.databases.jvm.iotdb/org.apache.streampipes.sinks.databases.jvm.iotdb.html b/docs/docs/0.90.0/org.apache.streampipes.sinks.databases.jvm.iotdb/org.apache.streampipes.sinks.databases.jvm.iotdb.html
similarity index 94%
copy from docs/docs/org.apache.streampipes.sinks.databases.jvm.iotdb/org.apache.streampipes.sinks.databases.jvm.iotdb.html
copy to docs/docs/0.90.0/org.apache.streampipes.sinks.databases.jvm.iotdb/org.apache.streampipes.sinks.databases.jvm.iotdb.html
index c32c9b0c..7cdfbf6d 100644
--- a/docs/docs/org.apache.streampipes.sinks.databases.jvm.iotdb/org.apache.streampipes.sinks.databases.jvm.iotdb.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.sinks.databases.jvm.iotdb/org.apache.streampipes.sinks.databases.jvm.iotdb.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.sinks.databases.jvm.opcua/org.apache.streampipes.sinks.databases.jvm.opcua.html b/docs/docs/0.90.0/org.apache.streampipes.sinks.databases.jvm.opcua/org.apache.streampipes.sinks.databases.jvm.opcua.html
similarity index 94%
copy from docs/docs/org.apache.streampipes.sinks.databases.jvm.opcua/org.apache.streampipes.sinks.databases.jvm.opcua.html
copy to docs/docs/0.90.0/org.apache.streampipes.sinks.databases.jvm.opcua/org.apache.streampipes.sinks.databases.jvm.opcua.html
index e0bee005..23094af6 100644
--- a/docs/docs/org.apache.streampipes.sinks.databases.jvm.opcua/org.apache.streampipes.sinks.databases.jvm.opcua.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.sinks.databases.jvm.opcua/org.apache.streampipes.sinks.databases.jvm.opcua.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.sinks.databases.jvm.postgresql/org.apache.streampipes.sinks.databases.jvm.postgresql.html b/docs/docs/0.90.0/org.apache.streampipes.sinks.databases.jvm.postgresql/org.apache.streampipes.sinks.databases.jvm.postgresql.html
similarity index 94%
copy from docs/docs/org.apache.streampipes.sinks.databases.jvm.postgresql/org.apache.streampipes.sinks.databases.jvm.postgresql.html
copy to docs/docs/0.90.0/org.apache.streampipes.sinks.databases.jvm.postgresql/org.apache.streampipes.sinks.databases.jvm.postgresql.html
index 9b2b9608..98c30625 100644
--- a/docs/docs/org.apache.streampipes.sinks.databases.jvm.postgresql/org.apache.streampipes.sinks.databases.jvm.postgresql.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.sinks.databases.jvm.postgresql/org.apache.streampipes.sinks.databases.jvm.postgresql.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.sinks.internal.jvm.dashboard/org.apache.streampipes.sinks.internal.jvm.dashboard.html b/docs/docs/0.90.0/org.apache.streampipes.sinks.internal.jvm.dashboard/org.apache.streampipes.sinks.internal.jvm.dashboard.html
similarity index 92%
copy from docs/docs/org.apache.streampipes.sinks.internal.jvm.dashboard/org.apache.streampipes.sinks.internal.jvm.dashboard.html
copy to docs/docs/0.90.0/org.apache.streampipes.sinks.internal.jvm.dashboard/org.apache.streampipes.sinks.internal.jvm.dashboard.html
index 6f51dc3a..49f8992d 100644
--- a/docs/docs/org.apache.streampipes.sinks.internal.jvm.dashboard/org.apache.streampipes.sinks.internal.jvm.dashboard.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.sinks.internal.jvm.dashboard/org.apache.streampipes.sinks.internal.jvm.dashboard.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.sinks.internal.jvm.datalake/org.apache.streampipes.sinks.internal.jvm.datalake.html b/docs/docs/0.90.0/org.apache.streampipes.sinks.internal.jvm.datalake/org.apache.streampipes.sinks.internal.jvm.datalake.html
similarity index 95%
copy from docs/docs/org.apache.streampipes.sinks.internal.jvm.datalake/org.apache.streampipes.sinks.internal.jvm.datalake.html
copy to docs/docs/0.90.0/org.apache.streampipes.sinks.internal.jvm.datalake/org.apache.streampipes.sinks.internal.jvm.datalake.html
index 223899fe..9a14fc5e 100644
--- a/docs/docs/org.apache.streampipes.sinks.internal.jvm.datalake/org.apache.streampipes.sinks.internal.jvm.datalake.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.sinks.internal.jvm.datalake/org.apache.streampipes.sinks.internal.jvm.datalake.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.sinks.internal.jvm.notification/org.apache.streampipes.sinks.internal.jvm.notification.html b/docs/docs/0.90.0/org.apache.streampipes.sinks.internal.jvm.notification/org.apache.streampipes.sinks.internal.jvm.notification.html
similarity index 93%
copy from docs/docs/org.apache.streampipes.sinks.internal.jvm.notification/org.apache.streampipes.sinks.internal.jvm.notification.html
copy to docs/docs/0.90.0/org.apache.streampipes.sinks.internal.jvm.notification/org.apache.streampipes.sinks.internal.jvm.notification.html
index 2349bfc9..40fe1995 100644
--- a/docs/docs/org.apache.streampipes.sinks.internal.jvm.notification/org.apache.streampipes.sinks.internal.jvm.notification.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.sinks.internal.jvm.notification/org.apache.streampipes.sinks.internal.jvm.notification.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.sinks.notifications.jvm.email/org.apache.streampipes.sinks.notifications.jvm.email.html b/docs/docs/0.90.0/org.apache.streampipes.sinks.notifications.jvm.email/org.apache.streampipes.sinks.notifications.jvm.email.html
similarity index 93%
copy from docs/docs/org.apache.streampipes.sinks.notifications.jvm.email/org.apache.streampipes.sinks.notifications.jvm.email.html
copy to docs/docs/0.90.0/org.apache.streampipes.sinks.notifications.jvm.email/org.apache.streampipes.sinks.notifications.jvm.email.html
index 2b1a9a55..2736bd87 100644
--- a/docs/docs/org.apache.streampipes.sinks.notifications.jvm.email/org.apache.streampipes.sinks.notifications.jvm.email.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.sinks.notifications.jvm.email/org.apache.streampipes.sinks.notifications.jvm.email.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.sinks.notifications.jvm.onesignal/org.apache.streampipes.sinks.notifications.jvm.onesignal.html b/docs/docs/0.90.0/org.apache.streampipes.sinks.notifications.jvm.onesignal/org.apache.streampipes.sinks.notifications.jvm.onesignal.html
similarity index 93%
copy from docs/docs/org.apache.streampipes.sinks.notifications.jvm.onesignal/org.apache.streampipes.sinks.notifications.jvm.onesignal.html
copy to docs/docs/0.90.0/org.apache.streampipes.sinks.notifications.jvm.onesignal/org.apache.streampipes.sinks.notifications.jvm.onesignal.html
index 64e20065..3083f61c 100644
--- a/docs/docs/org.apache.streampipes.sinks.notifications.jvm.onesignal/org.apache.streampipes.sinks.notifications.jvm.onesignal.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.sinks.notifications.jvm.onesignal/org.apache.streampipes.sinks.notifications.jvm.onesignal.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/org.apache.streampipes.sinks.notifications.jvm.slack/org.apache.streampipes.sinks.notifications.jvm.slack.html b/docs/docs/0.90.0/org.apache.streampipes.sinks.notifications.jvm.slack/org.apache.streampipes.sinks.notifications.jvm.slack.html
similarity index 94%
copy from docs/docs/org.apache.streampipes.sinks.notifications.jvm.slack/org.apache.streampipes.sinks.notifications.jvm.slack.html
copy to docs/docs/0.90.0/org.apache.streampipes.sinks.notifications.jvm.slack/org.apache.streampipes.sinks.notifications.jvm.slack.html
index fd4c8ec2..9e4afe36 100644
--- a/docs/docs/org.apache.streampipes.sinks.notifications.jvm.slack/org.apache.streampipes.sinks.notifications.jvm.slack.html
+++ b/docs/docs/0.90.0/org.apache.streampipes.sinks.notifications.jvm.slack/org.apache.streampipes.sinks.notifications.jvm.slack.html
@@ -4,7 +4,7 @@
             {"zIndex":100}
           )
         });
-        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
   ~ 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.
diff --git a/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.coindesk.html b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.coindesk.html
new file mode 100644
index 00000000..1ed7a7a2
--- /dev/null
+++ b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.coindesk.html
@@ -0,0 +1,109 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Coindesk Bitcoin Price · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--"/><meta name="docsearch:version" content="0.90.0"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Coindesk Bitcoin Price · Apach [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">Coindesk Bitcoin Price</h1></header><article><div><span><!--
+  ~ 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.
+  ~
+  -->
+<p align="center"> 
+    <img src="/docs/img/pipeline-elements/org.apache.streampipes.connect.adapters.coindesk/icon.png" width="150px;" class="pe-image-documentation"/>
+</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="description"></a><a href="#description" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
+<p>This adapter continuously provides the current bitcoin price from the Coindesk API.</p>
+<h2><a class="anchor" aria-hidden="true" id="configuration"></a><a href="#configuration" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
+<h3><a class="anchor" aria-hidden="true" id="currency"></a><a href="#currency" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
+<p>The current in which the price should be provided.</p>
+<hr>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.protocol.stream.pulsar.html"><span class="arrow-prev">← </span><span>Apache Pulsar</span></a><a class="docs-next button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.protocol.stream.file.html"><span>File Stream</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#de [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '0fedc89dddf2810657708b178e56ef02',
+                indexName: 'streampipes',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.flic.mqtt.html b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.flic.mqtt.html
new file mode 100644
index 00000000..914183a9
--- /dev/null
+++ b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.flic.mqtt.html
@@ -0,0 +1,118 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Flic MQTT · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--"/><meta name="docsearch:version" content="0.90.0"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Flic MQTT · Apache StreamPipes"/><meta prop [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">Flic MQTT</h1></header><article><div><span><!--
+  ~ 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.
+  ~
+  -->
+<p align="center"> 
+    <img src="/docs/img/pipeline-elements/org.apache.streampipes.connect.adapters.flic.mqtt/icon.png" width="150px;" class="pe-image-documentation"/>
+</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="description"></a><a href="#description" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
+<p>Connect Flic Smart Button over MQTT</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="required-input"></a><a href="#required-input" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
+<p>This adapter uses the MQTT protocol and requires the data in following exemplary JSON format:
+{ &quot;timestamp&quot;: 1584973344615, &quot;click_type&quot;: SINGLE, &quot;button_id&quot;: button1 }.</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="configuration"></a><a href="#configuration" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
+<h3><a class="anchor" aria-hidden="true" id="broker-url"></a><a href="#broker-url" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
+<p>Example: <a href="tcp://test-server.com:1883">tcp://test-server.com:1883</a> (Protocol required. Port required)</p>
+<h3><a class="anchor" aria-hidden="true" id="access-mode"></a><a href="#access-mode" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
+<p>The user can choose between unauthenticated or authenticated access.</p>
+<h3><a class="anchor" aria-hidden="true" id="topic"></a><a href="#topic" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09 [...]
+<p>The topic the MQTT broker publishes to.</p>
+<h2><a class="anchor" aria-hidden="true" id="output"></a><a href="#output" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.protocol.set.file.html"><span class="arrow-prev">← </span><span>File Set</span></a><a class="docs-next button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.gdelt.html"><span>GDELT</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#description">Description</a></li [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '0fedc89dddf2810657708b178e56ef02',
+                indexName: 'streampipes',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.gdelt.html b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.gdelt.html
new file mode 100644
index 00000000..81cf3bfd
--- /dev/null
+++ b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.gdelt.html
@@ -0,0 +1,108 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>GDELT · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--"/><meta name="docsearch:version" content="0.90.0"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="GDELT · Apache StreamPipes"/><meta property="og [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">GDELT</h1></header><article><div><span><!--
+  ~ 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.
+  ~
+  -->
+<p align="center"> 
+    <img src="/docs/img/pipeline-elements/org.apache.streampipes.connect.adapters.gdelt/icon.png" width="150px;" class="pe-image-documentation"/>
+</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="description"></a><a href="#description" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
+<p>This adapter provides news events from the GDELT API.</p>
+<h2><a class="anchor" aria-hidden="true" id="configuration"></a><a href="#configuration" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
+<p>(no futher configuration required)</p>
+<hr>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.flic.mqtt.html"><span class="arrow-prev">← </span><span>Flic MQTT</span></a><a class="docs-next button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.protocol.stream.httpserver.html"><span>HTTP Server</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#desc [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '0fedc89dddf2810657708b178e56ef02',
+                indexName: 'streampipes',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.iex.news.html b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.iex.news.html
new file mode 100644
index 00000000..bde32e47
--- /dev/null
+++ b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.iex.news.html
@@ -0,0 +1,112 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>IEX Cloud News · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--"/><meta name="docsearch:version" content="0.90.0"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="IEX Cloud News · Apache StreamPipes"/> [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">IEX Cloud News</h1></header><article><div><span><!--
+  ~ 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.
+  ~
+  -->
+<p align="center"> 
+    <img src="/docs/img/pipeline-elements/org.apache.streampipes.connect.adapters.iex.news/icon.png" width="150px;" class="pe-image-documentation"/>
+</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="description"></a><a href="#description" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
+<p>This adapter provides news events from the IEXCloud news API. An API key from IEXCloud is required.
+Visit <a href='https://iexcloud.io'>IEX Cloud</a> for more info.</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="configuration"></a><a href="#configuration" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
+<h3><a class="anchor" aria-hidden="true" id="api-token"></a><a href="#api-token" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
+<p>A valid API token from the IEXCloud API.</p>
+<h3><a class="anchor" aria-hidden="true" id="stock-symbol"></a><a href="#stock-symbol" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
+<p>A stock symbol that should be monitored.</p>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.protocol.stream.http.html"><span class="arrow-prev">← </span><span>HTTP Stream</span></a><a class="docs-next button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.iex.stocks.html"><span>IEX Cloud Stock Quotes</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a hre [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '0fedc89dddf2810657708b178e56ef02',
+                indexName: 'streampipes',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.iex.stocks.html b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.iex.stocks.html
new file mode 100644
index 00000000..134c8589
--- /dev/null
+++ b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.iex.stocks.html
@@ -0,0 +1,112 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>IEX Cloud Stock Quotes · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--"/><meta name="docsearch:version" content="0.90.0"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="IEX Cloud Stock Quotes · Apach [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">IEX Cloud Stock Quotes</h1></header><article><div><span><!--
+  ~ 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.
+  ~
+  -->
+<p align="center"> 
+    <img src="/docs/img/pipeline-elements/org.apache.streampipes.connect.adapters.iex.stocks/icon.png" width="150px;" class="pe-image-documentation"/>
+</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="description"></a><a href="#description" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
+<p>This adapter provides news events from the IEXCloud news API. An API key from IEXCloud is required.
+Visit <a href='https://iexcloud.io'>IEX Cloud</a> for more info.</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="configuration"></a><a href="#configuration" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
+<h3><a class="anchor" aria-hidden="true" id="api-token"></a><a href="#api-token" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
+<p>A valid API token from the IEXCloud API.</p>
+<h3><a class="anchor" aria-hidden="true" id="stock-symbol"></a><a href="#stock-symbol" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
+<p>A stock symbol that should be monitored.</p>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.iex.news.html"><span class="arrow-prev">← </span><span>IEX Cloud News</span></a><a class="docs-next button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.iss.html"><span>ISS Location</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#description"> [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '0fedc89dddf2810657708b178e56ef02',
+                indexName: 'streampipes',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.image.set.html b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.image.set.html
new file mode 100644
index 00000000..5507646c
--- /dev/null
+++ b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.image.set.html
@@ -0,0 +1,106 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Image Upload (Set) · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--"/><meta name="docsearch:version" content="0.90.0"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Image Upload (Set) · Apache Stream [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">Image Upload (Set)</h1></header><article><div><span><!--
+  ~ 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.
+  ~
+  -->
+<p align="center"> 
+    <img src="/docs/img/pipeline-elements/org.apache.streampipes.connect.adapters.image.set/icon.png" width="150px;" class="pe-image-documentation"/>
+</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="description"></a><a href="#description" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
+<p>Upload a zip file of images and create an event per image</p>
+<hr>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.iss.html"><span class="arrow-prev">← </span><span>ISS Location</span></a><a class="docs-next button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.image.stream.html"><span>Image Upload (Stream)</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#de [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '0fedc89dddf2810657708b178e56ef02',
+                indexName: 'streampipes',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.image.stream.html b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.image.stream.html
new file mode 100644
index 00000000..ba228471
--- /dev/null
+++ b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.image.stream.html
@@ -0,0 +1,106 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Image Upload (Stream) · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--"/><meta name="docsearch:version" content="0.90.0"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Image Upload (Stream) · Apache  [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">Image Upload (Stream)</h1></header><article><div><span><!--
+  ~ 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.
+  ~
+  -->
+<p align="center"> 
+    <img src="/docs/img/pipeline-elements/org.apache.streampipes.connect.adapters.image.stream/icon.png" width="150px;" class="pe-image-documentation"/>
+</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="description"></a><a href="#description" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
+<p>Upload a zip file of images and create an event per image</p>
+<hr>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.image.set.html"><span class="arrow-prev">← </span><span>Image Upload (Set)</span></a><a class="docs-next button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.influxdb.set.html"><span class="function-name-prevnext">InfluxDB Set Adapter</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav" [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '0fedc89dddf2810657708b178e56ef02',
+                indexName: 'streampipes',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.influxdb.set.html b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.influxdb.set.html
new file mode 100644
index 00000000..9f75f641
--- /dev/null
+++ b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.influxdb.set.html
@@ -0,0 +1,107 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>InfluxDB Set Adapter · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--"/><meta name="docsearch:version" content="0.90.0"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="InfluxDB Set Adapter · Apache St [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">InfluxDB Set Adapter</h1></header><article><div><span><!--
+  ~ 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.
+  ~
+  -->
+<p align="center"> 
+    <img src="/docs/img/pipeline-elements/org.apache.streampipes.connect.adapters.influxdb.set/icon.png" width="150px;" class="pe-image-documentation"/>
+</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="description"></a><a href="#description" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
+<p>Creates a data set for an InfluxDB measurement.</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="configuration"></a><a href="#configuration" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.image.stream.html"><span class="arrow-prev">← </span><span>Image Upload (Stream)</span></a><a class="docs-next button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.influxdb.stream.html"><span class="function-name-prevnext">InfluxDB Stream Adapter</span><span class="arrow-next"> →</span></a></div></div></div><nav class [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '0fedc89dddf2810657708b178e56ef02',
+                indexName: 'streampipes',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.influxdb.stream.html b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.influxdb.stream.html
new file mode 100644
index 00000000..81181184
--- /dev/null
+++ b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.influxdb.stream.html
@@ -0,0 +1,107 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>InfluxDB Stream Adapter · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--"/><meta name="docsearch:version" content="0.90.0"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="InfluxDB Stream Adapter · Apa [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">InfluxDB Stream Adapter</h1></header><article><div><span><!--
+  ~ 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.
+  ~
+  -->
+<p align="center"> 
+    <img src="/docs/img/pipeline-elements/org.apache.streampipes.connect.adapters.influxdb.stream/icon.png" width="150px;" class="pe-image-documentation"/>
+</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="description"></a><a href="#description" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
+<p>Creates a data stream for an InfluxDB measurement.</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="configuration"></a><a href="#configuration" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.influxdb.set.html"><span class="arrow-prev">← </span><span class="function-name-prevnext">InfluxDB Set Adapter</span></a><a class="docs-next button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.protocol.stream.mqtt.html"><span>MQTT</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class=" [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '0fedc89dddf2810657708b178e56ef02',
+                indexName: 'streampipes',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.iss.html b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.iss.html
new file mode 100644
index 00000000..fca81f4f
--- /dev/null
+++ b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.iss.html
@@ -0,0 +1,106 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>ISS Location · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--"/><meta name="docsearch:version" content="0.90.0"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="ISS Location · Apache StreamPipes"/><met [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">ISS Location</h1></header><article><div><span><!--
+  ~ 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.
+  ~
+  -->
+<p align="center"> 
+    <img src="/docs/img/pipeline-elements/org.apache.streampipes.connect.adapters.iss/icon.png" width="150px;" class="pe-image-documentation"/>
+</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="description"></a><a href="#description" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
+<p>Shows the live position of the International Space Station (ISS), updated every two seconds.</p>
+<hr>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.iex.stocks.html"><span class="arrow-prev">← </span><span>IEX Cloud Stock Quotes</span></a><a class="docs-next button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.image.set.html"><span>Image Upload (Set)</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li>< [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '0fedc89dddf2810657708b178e56ef02',
+                indexName: 'streampipes',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.mysql.set.html b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.mysql.set.html
new file mode 100644
index 00000000..3ff3c1ad
--- /dev/null
+++ b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.mysql.set.html
@@ -0,0 +1,106 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>MySQL Set Adapter · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--"/><meta name="docsearch:version" content="0.90.0"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="MySQL Set Adapter · Apache StreamPi [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">MySQL Set Adapter</h1></header><article><div><span><!--
+  ~ 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.
+  ~
+  -->
+<p align="center"> 
+    <img src="/docs/img/pipeline-elements/org.apache.streampipes.connect.adapters.mysql.set/icon.png" width="150px;" class="pe-image-documentation"/>
+</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="description"></a><a href="#description" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
+<p>Creates a data set from an SQL table</p>
+<hr>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.simulator.machine.html"><span class="arrow-prev">← </span><span>Machine Data Simulator</span></a><a class="docs-next button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.mysql.stream.html"><span class="function-name-prevnext">MySql Stream Adapter</span><span class="arrow-next"> →</span></a></div></div></div><nav class [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '0fedc89dddf2810657708b178e56ef02',
+                indexName: 'streampipes',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.mysql.stream.html b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.mysql.stream.html
new file mode 100644
index 00000000..463db332
--- /dev/null
+++ b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.mysql.stream.html
@@ -0,0 +1,106 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>MySql Stream Adapter · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--"/><meta name="docsearch:version" content="0.90.0"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="MySql Stream Adapter · Apache St [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">MySql Stream Adapter</h1></header><article><div><span><!--
+  ~ 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.
+  ~
+  -->
+<p align="center"> 
+    <img src="/docs/img/pipeline-elements/org.apache.streampipes.connect.adapters.mysql.stream/icon.png" width="150px;" class="pe-image-documentation"/>
+</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="description"></a><a href="#description" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
+<p>Creates a data stream for a SQL table</p>
+<hr>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.mysql.set.html"><span class="arrow-prev">← </span><span class="function-name-prevnext">MySQL Set Adapter</span></a><a class="docs-next button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.netio.mqtt.html"><span>NETIO MQTT M2M</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul clas [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '0fedc89dddf2810657708b178e56ef02',
+                indexName: 'streampipes',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.netio.mqtt.html b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.netio.mqtt.html
new file mode 100644
index 00000000..ca24d6ca
--- /dev/null
+++ b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.netio.mqtt.html
@@ -0,0 +1,118 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>NETIO MQTT M2M · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--"/><meta name="docsearch:version" content="0.90.0"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="NETIO MQTT M2M · Apache StreamPipes"/> [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">NETIO MQTT M2M</h1></header><article><div><span><!--
+  ~ 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.
+  ~
+  -->
+<p align="center"> 
+    <img src="/docs/img/pipeline-elements/org.apache.streampipes.connect.adapters.netio.mqtt/icon.png" width="150px;" class="pe-image-documentation"/>
+</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="description"></a><a href="#description" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
+<p>Connect Robots running on ROS</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="required-input"></a><a href="#required-input" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
+<p>This sink does not have any requirements and works with any incoming event type.</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="configuration"></a><a href="#configuration" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
+<p>Describe the configuration parameters here</p>
+<h3><a class="anchor" aria-hidden="true" id="ros-bridge"></a><a href="#ros-bridge" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
+<p>Example: test-server.com (No protocol)</p>
+<h3><a class="anchor" aria-hidden="true" id="port"></a><a href="#port" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<p>The port of the ROS instance.</p>
+<h3><a class="anchor" aria-hidden="true" id="topic"></a><a href="#topic" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09 [...]
+<p>Example: /battery (Starts with /)</p>
+<h2><a class="anchor" aria-hidden="true" id="output"></a><a href="#output" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.mysql.stream.html"><span class="arrow-prev">← </span><span class="function-name-prevnext">MySql Stream Adapter</span></a><a class="docs-next button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.netio.rest.html"><span>NETIO http JSON</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav">< [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '0fedc89dddf2810657708b178e56ef02',
+                indexName: 'streampipes',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.netio.rest.html b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.netio.rest.html
new file mode 100644
index 00000000..a15c18c1
--- /dev/null
+++ b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.netio.rest.html
@@ -0,0 +1,118 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>NETIO http JSON · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--"/><meta name="docsearch:version" content="0.90.0"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="NETIO http JSON · Apache StreamPipes" [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">NETIO http JSON</h1></header><article><div><span><!--
+  ~ 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.
+  ~
+  -->
+<p align="center"> 
+    <img src="/docs/img/pipeline-elements/org.apache.streampipes.connect.adapters.netio.rest/icon.png" width="150px;" class="pe-image-documentation"/>
+</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="description"></a><a href="#description" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
+<p>Connect Robots running on ROS</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="required-input"></a><a href="#required-input" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
+<p>This sink does not have any requirements and works with any incoming event type.</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="configuration"></a><a href="#configuration" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
+<p>Describe the configuration parameters here</p>
+<h3><a class="anchor" aria-hidden="true" id="ros-bridge"></a><a href="#ros-bridge" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
+<p>Example: test-server.com (No protocol)</p>
+<h3><a class="anchor" aria-hidden="true" id="port"></a><a href="#port" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<p>The port of the ROS instance.</p>
+<h3><a class="anchor" aria-hidden="true" id="topic"></a><a href="#topic" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09 [...]
+<p>Example: /battery (Starts with /)</p>
+<h2><a class="anchor" aria-hidden="true" id="output"></a><a href="#output" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.netio.mqtt.html"><span class="arrow-prev">← </span><span>NETIO MQTT M2M</span></a><a class="docs-next button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.nswaustralia.trafficcamera.html"><span>NSW Traffic Cameras</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headi [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '0fedc89dddf2810657708b178e56ef02',
+                indexName: 'streampipes',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.nswaustralia.trafficcamera.html b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.nswaustralia.trafficcamera.html
new file mode 100644
index 00000000..66cab593
--- /dev/null
+++ b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.nswaustralia.trafficcamera.html
@@ -0,0 +1,106 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>NSW Traffic Cameras · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--"/><meta name="docsearch:version" content="0.90.0"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="NSW Traffic Cameras · Apache Stre [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">NSW Traffic Cameras</h1></header><article><div><span><!--
+  ~ 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.
+  ~
+  -->
+<p align="center"> 
+    <img src="/docs/img/pipeline-elements/org.apache.streampipes.connect.adapters.nswaustralia.trafficcamera/icon.png" width="150px;" class="pe-image-documentation"/>
+</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="description"></a><a href="#description" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
+<p>Traffic camera images produced by NSW Australia</p>
+<hr>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.netio.rest.html"><span class="arrow-prev">← </span><span>NETIO http JSON</span></a><a class="docs-next button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.opcua.html"><span>OPC UA</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#description">D [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '0fedc89dddf2810657708b178e56ef02',
+                indexName: 'streampipes',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.opcua.html b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.opcua.html
new file mode 100644
index 00000000..0a82e9e6
--- /dev/null
+++ b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.opcua.html
@@ -0,0 +1,127 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>OPC UA · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--"/><meta name="docsearch:version" content="0.90.0"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="OPC UA · Apache StreamPipes"/><meta property=" [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">OPC UA</h1></header><article><div><span><!--
+  ~ 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.
+  ~
+  -->
+<p align="center"> 
+    <img src="/docs/img/pipeline-elements/org.apache.streampipes.connect.adapters.opcua/icon.png" width="150px;" class="pe-image-documentation"/>
+</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="description"></a><a href="#description" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
+<p>Reads values from an OPC-UA server repeatedly</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="required-input"></a><a href="#required-input" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="configuration"></a><a href="#configuration" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
+<h3><a class="anchor" aria-hidden="true" id="polling-interval"></a><a href="#polling-interval" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2. [...]
+<p>Duration of the polling interval in seconds</p>
+<h3><a class="anchor" aria-hidden="true" id="anonymous-vs-usernamepassword"></a><a href="#anonymous-vs-usernamepassword" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12  [...]
+<p>Choose whether you want to connect anonymously or authenticate using your credentials.</p>
+<p>     <strong>Anonymous</strong>: No further information required <br>
+     <strong>Username/Password</strong>: Insert your <code>username</code> and <code>password</code> to access the OPC UA server</p>
+<h3><a class="anchor" aria-hidden="true" id="opc-ua-server"></a><a href="#opc-ua-server" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
+<p>Where can the OPC UA server be found?</p>
+<p>     <strong>URL</strong>: Specify the server's full <code>URL</code> (including port), can be with our without leading <code>opc.tcp://</code><br>
+     <strong>Host/Port</strong>: Insert the <code>host</code> address (with or without leading <code>opc.tcp://</code>) and the <code>port</code><br></p>
+<h3><a class="anchor" aria-hidden="true" id="namespace-index"></a><a href="#namespace-index" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5  [...]
+<p>Requires the index of the namespace you want to connect to.</p>
+<h3><a class="anchor" aria-hidden="true" id="node-id"></a><a href="#node-id" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1- [...]
+<p>The identifier of the node you want to read from, numbers and strings are both valid.</p>
+<h3><a class="anchor" aria-hidden="true" id="available-nodes"></a><a href="#available-nodes" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5  [...]
+<p>Shows all available nodes once namespace index and node ID are given.
+Select as much as you like to query.</p>
+<hr>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.nswaustralia.trafficcamera.html"><span class="arrow-prev">← </span><span>NSW Traffic Cameras</span></a><a class="docs-next button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.plc4x.modbus.html"><span>PLC4X MODBUS</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headi [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '0fedc89dddf2810657708b178e56ef02',
+                indexName: 'streampipes',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.plc4x.modbus.html b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.plc4x.modbus.html
new file mode 100644
index 00000000..c1a5841f
--- /dev/null
+++ b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.plc4x.modbus.html
@@ -0,0 +1,106 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>PLC4X MODBUS · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--"/><meta name="docsearch:version" content="0.90.0"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="PLC4X MODBUS · Apache StreamPipes"/><met [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">PLC4X MODBUS</h1></header><article><div><span><!--
+  ~ 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.
+  ~
+  -->
+<p align="center"> 
+    <img src="/docs/img/pipeline-elements/org.apache.streampipes.connect.adapters.plc4x.modbus/icon.png" width="150px;" class="pe-image-documentation"/>
+</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="description"></a><a href="#description" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
+<p>Shows the live position of the International Space Station (ISS), updated every two seconds.</p>
+<hr>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.opcua.html"><span class="arrow-prev">← </span><span>OPC UA</span></a><a class="docs-next button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.plc4x.s7.html"><span>PLC4X S7</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#description">Descriptio [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '0fedc89dddf2810657708b178e56ef02',
+                indexName: 'streampipes',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.plc4x.s7.html b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.plc4x.s7.html
new file mode 100644
index 00000000..75dd9839
--- /dev/null
+++ b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.plc4x.s7.html
@@ -0,0 +1,106 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>PLC4X S7 · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--"/><meta name="docsearch:version" content="0.90.0"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="PLC4X S7 · Apache StreamPipes"/><meta proper [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">PLC4X S7</h1></header><article><div><span><!--
+  ~ 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.
+  ~
+  -->
+<p align="center"> 
+    <img src="/docs/img/pipeline-elements/org.apache.streampipes.connect.adapters.plc4x.s7/icon.png" width="150px;" class="pe-image-documentation"/>
+</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="description"></a><a href="#description" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
+<p>Shows the live position of the International Space Station (ISS), updated every two seconds.</p>
+<hr>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.plc4x.modbus.html"><span class="arrow-prev">← </span><span>PLC4X MODBUS</span></a><a class="docs-next button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.ros.html"><span>ROS Bridge</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#description"> [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '0fedc89dddf2810657708b178e56ef02',
+                indexName: 'streampipes',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.ros.html b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.ros.html
new file mode 100644
index 00000000..1399cd07
--- /dev/null
+++ b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.ros.html
@@ -0,0 +1,117 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>ROS Bridge · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--"/><meta name="docsearch:version" content="0.90.0"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="ROS Bridge · Apache StreamPipes"/><meta pr [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">ROS Bridge</h1></header><article><div><span><!--
+  ~ 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.
+  ~
+  -->
+<p align="center"> 
+    <img src="/docs/img/pipeline-elements/org.apache.streampipes.connect.adapters.ros/icon.png" width="150px;" class="pe-image-documentation"/>
+</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="description"></a><a href="#description" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
+<p>Connect Robots running on ROS</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="required-input"></a><a href="#required-input" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="configuration"></a><a href="#configuration" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
+<p>Describe the configuration parameters here</p>
+<h3><a class="anchor" aria-hidden="true" id="ros-bridge"></a><a href="#ros-bridge" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
+<p>Example: test-server.com (No protocol)</p>
+<h3><a class="anchor" aria-hidden="true" id="port"></a><a href="#port" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<p>The port of the ROS instance.</p>
+<h3><a class="anchor" aria-hidden="true" id="topic"></a><a href="#topic" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09 [...]
+<p>Example: /battery (Starts with /)</p>
+<h2><a class="anchor" aria-hidden="true" id="output"></a><a href="#output" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.plc4x.s7.html"><span class="arrow-prev">← </span><span>PLC4X S7</span></a><a class="docs-next button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.simulator.randomdataset.html"><span>Random Data Simulator (Set)</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '0fedc89dddf2810657708b178e56ef02',
+                indexName: 'streampipes',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.simulator.machine.html b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.simulator.machine.html
new file mode 100644
index 00000000..5b4537fe
--- /dev/null
+++ b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.simulator.machine.html
@@ -0,0 +1,112 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Machine Data Simulator · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--"/><meta name="docsearch:version" content="0.90.0"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Machine Data Simulator · Apach [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">Machine Data Simulator</h1></header><article><div><span><!--
+  ~ 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.
+  ~
+  -->
+<p align="center"> 
+    <img src="/docs/img/pipeline-elements/org.apache.streampipes.connect.adapters.simulator.machine/icon.png" width="150px;" class="pe-image-documentation"/>
+</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="description"></a><a href="#description" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
+<p>Publishes various simulated machine sensor data in a configurable time interval (in milliseconds).
+Sensors are:</p>
+<ul>
+<li>flowrate</li>
+<li>pressure</li>
+<li>waterlevel</li>
+</ul>
+<hr>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.protocol.stream.mqtt.html"><span class="arrow-prev">← </span><span>MQTT</span></a><a class="docs-next button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.mysql.set.html"><span class="function-name-prevnext">MySQL Set Adapter</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-he [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '0fedc89dddf2810657708b178e56ef02',
+                indexName: 'streampipes',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.simulator.randomdataset.html b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.simulator.randomdataset.html
new file mode 100644
index 00000000..0ade2d06
--- /dev/null
+++ b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.simulator.randomdataset.html
@@ -0,0 +1,106 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Random Data Simulator (Set) · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--"/><meta name="docsearch:version" content="0.90.0"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Random Data Simulator (Se [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">Random Data Simulator (Set)</h1></header><article><div><span><!--
+  ~ 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.
+  ~
+  -->
+<p align="center"> 
+    <img src="/docs/img/pipeline-elements/org.apache.streampipes.connect.adapters.simulator.randomdataset/icon.png" width="150px;" class="pe-image-documentation"/>
+</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="description"></a><a href="#description" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
+<p>Publishes a bounded stream of random events.</p>
+<hr>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.ros.html"><span class="arrow-prev">← </span><span>ROS Bridge</span></a><a class="docs-next button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.simulator.randomdatastream.html"><span>Random Data Simulator (Stream)</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headi [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '0fedc89dddf2810657708b178e56ef02',
+                indexName: 'streampipes',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.simulator.randomdatastream.html b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.simulator.randomdatastream.html
new file mode 100644
index 00000000..ec70f54d
--- /dev/null
+++ b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.simulator.randomdatastream.html
@@ -0,0 +1,106 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Random Data Simulator (Stream) · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--"/><meta name="docsearch:version" content="0.90.0"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Random Data Simulator  [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">Random Data Simulator (Stream)</h1></header><article><div><span><!--
+  ~ 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.
+  ~
+  -->
+<p align="center"> 
+    <img src="/docs/img/pipeline-elements/org.apache.streampipes.connect.adapters.simulator.randomdatastream/icon.png" width="150px;" class="pe-image-documentation"/>
+</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="description"></a><a href="#description" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
+<p>Publishes a continuous stream of random events</p>
+<hr>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.simulator.randomdataset.html"><span class="arrow-prev">← </span><span>Random Data Simulator (Set)</span></a><a class="docs-next button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.slack.html"><span>Slack</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li> [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '0fedc89dddf2810657708b178e56ef02',
+                indexName: 'streampipes',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.slack.html b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.slack.html
new file mode 100644
index 00000000..828e3971
--- /dev/null
+++ b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.slack.html
@@ -0,0 +1,106 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Slack · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--"/><meta name="docsearch:version" content="0.90.0"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Slack · Apache StreamPipes"/><meta property="og [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">Slack</h1></header><article><div><span><!--
+  ~ 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.
+  ~
+  -->
+<p align="center"> 
+    <img src="/docs/img/pipeline-elements/org.apache.streampipes.connect.adapters.slack/icon.png" width="150px;" class="pe-image-documentation"/>
+</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="description"></a><a href="#description" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
+<p>Subscribes to a Slack channel</p>
+<hr>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.simulator.randomdatastream.html"><span class="arrow-prev">← </span><span>Random Data Simulator (Stream)</span></a><a class="docs-next button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.ti.html"><span>TI Sensor Tag</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-hea [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '0fedc89dddf2810657708b178e56ef02',
+                indexName: 'streampipes',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.ti.html b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.ti.html
new file mode 100644
index 00000000..028cc800
--- /dev/null
+++ b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.ti.html
@@ -0,0 +1,115 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>TI Sensor Tag · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--"/><meta name="docsearch:version" content="0.90.0"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="TI Sensor Tag · Apache StreamPipes"/><m [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">TI Sensor Tag</h1></header><article><div><span><!--
+  ~ 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.
+  ~
+  -->
+<p align="center"> 
+    <img src="/docs/img/pipeline-elements/org.apache.streampipes.connect.adapters.ti/icon.png" width="150px;" class="pe-image-documentation"/>
+</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="description"></a><a href="#description" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
+<p>Consumes messages from a broker using the MQTT protocol</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="configuration"></a><a href="#configuration" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
+<p>Describe the configuration parameters here</p>
+<h3><a class="anchor" aria-hidden="true" id="broker-url"></a><a href="#broker-url" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
+<p>Example: <a href="tcp://test-server.com:1883">tcp://test-server.com:1883</a> (Protocol required. Port required)&quot;</p>
+<h3><a class="anchor" aria-hidden="true" id="topic"></a><a href="#topic" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09 [...]
+<p>Example: test/topic</p>
+<h3><a class="anchor" aria-hidden="true" id="access-mode"></a><a href="#access-mode" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
+<p>Unauthenticated or Authenticated (Username/Password)</p>
+<h2><a class="anchor" aria-hidden="true" id="output"></a><a href="#output" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.slack.html"><span class="arrow-prev">← </span><span>Slack</span></a><a class="docs-next button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.wikipedia.edit.html"><span>Wikipedia Edits</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#description [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '0fedc89dddf2810657708b178e56ef02',
+                indexName: 'streampipes',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.wikipedia.edit.html b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.wikipedia.edit.html
new file mode 100644
index 00000000..01b11a66
--- /dev/null
+++ b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.wikipedia.edit.html
@@ -0,0 +1,106 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Wikipedia Edits · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--"/><meta name="docsearch:version" content="0.90.0"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Wikipedia Edits · Apache StreamPipes" [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">Wikipedia Edits</h1></header><article><div><span><!--
+  ~ 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.
+  ~
+  -->
+<p align="center"> 
+    <img src="/docs/img/pipeline-elements/org.apache.streampipes.connect.adapters.wikipedia.edit/icon.png" width="150px;" class="pe-image-documentation"/>
+</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="description"></a><a href="#description" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
+<p>Continuously publishes recent Wikipedia edits</p>
+<hr>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.ti.html"><span class="arrow-prev">← </span><span>TI Sensor Tag</span></a><a class="docs-next button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.wikipedia.new.html"><span>Wikipedia New Articles</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="# [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '0fedc89dddf2810657708b178e56ef02',
+                indexName: 'streampipes',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.wikipedia.new.html b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.wikipedia.new.html
new file mode 100644
index 00000000..a62062bf
--- /dev/null
+++ b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.wikipedia.new.html
@@ -0,0 +1,106 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Wikipedia New Articles · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--"/><meta name="docsearch:version" content="0.90.0"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Wikipedia New Articles · Apach [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">Wikipedia New Articles</h1></header><article><div><span><!--
+  ~ 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.
+  ~
+  -->
+<p align="center"> 
+    <img src="/docs/img/pipeline-elements/org.apache.streampipes.connect.adapters.wikipedia.new/icon.png" width="150px;" class="pe-image-documentation"/>
+</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="description"></a><a href="#description" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
+<p>Continuously publishes articles created on Wikipedia</p>
+<hr>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.wikipedia.edit.html"><span class="arrow-prev">← </span><span>Wikipedia Edits</span></a><a class="docs-next button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.processors.pattern-detection.flink.absence.html"><span>Absence</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '0fedc89dddf2810657708b178e56ef02',
+                indexName: 'streampipes',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.90.0/pe/org.apache.streampipes.connect.protocol.stream.file.html b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.protocol.stream.file.html
new file mode 100644
index 00000000..89aade63
--- /dev/null
+++ b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.protocol.stream.file.html
@@ -0,0 +1,106 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>File Stream · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--"/><meta name="docsearch:version" content="0.90.0"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="File Stream · Apache StreamPipes"/><meta  [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">File Stream</h1></header><article><div><span><!--
+  ~ 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.
+  ~
+  -->
+<p align="center"> 
+    <img src="/docs/img/pipeline-elements/org.apache.streampipes.connect.protocol.stream.file/icon.png" width="150px;" class="pe-image-documentation"/>
+</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="description"></a><a href="#description" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
+<p>Continuously streams the content from a file</p>
+<hr>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.coindesk.html"><span class="arrow-prev">← </span><span>Coindesk Bitcoin Price</span></a><a class="docs-next button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.protocol.set.file.html"><span>File Set</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#description" [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '0fedc89dddf2810657708b178e56ef02',
+                indexName: 'streampipes',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.90.0/pe/org.apache.streampipes.connect.protocol.stream.http.html b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.protocol.stream.http.html
new file mode 100644
index 00000000..ccf2dfd8
--- /dev/null
+++ b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.protocol.stream.http.html
@@ -0,0 +1,106 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>HTTP Stream · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--"/><meta name="docsearch:version" content="0.90.0"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="HTTP Stream · Apache StreamPipes"/><meta  [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">HTTP Stream</h1></header><article><div><span><!--
+  ~ 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.
+  ~
+  -->
+<p align="center"> 
+    <img src="/docs/img/pipeline-elements/org.apache.streampipes.connect.protocol.stream.http/icon.png" width="150px;" class="pe-image-documentation"/>
+</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="description"></a><a href="#description" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
+<p>Continuously fetched events from an HTTP REST endpoint.</p>
+<hr>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.protocol.set.http.html"><span class="arrow-prev">← </span><span>HTTP Set</span></a><a class="docs-next button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.iex.news.html"><span>IEX Cloud News</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#description">Descrip [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '0fedc89dddf2810657708b178e56ef02',
+                indexName: 'streampipes',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.90.0/pe/org.apache.streampipes.connect.protocol.stream.httpserver.html b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.protocol.stream.httpserver.html
new file mode 100644
index 00000000..3e9f2b0f
--- /dev/null
+++ b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.protocol.stream.httpserver.html
@@ -0,0 +1,106 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>HTTP Server · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--"/><meta name="docsearch:version" content="0.90.0"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="HTTP Server · Apache StreamPipes"/><meta  [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">HTTP Server</h1></header><article><div><span><!--
+  ~ 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.
+  ~
+  -->
+<p align="center"> 
+    <img src="/docs/img/pipeline-elements/org.apache.streampipes.connect.protocol.stream.httpserver/icon.png" width="150px;" class="pe-image-documentation"/>
+</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="description"></a><a href="#description" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
+<p>Continuously fetched events from an HTTP REST endpoint.</p>
+<hr>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.gdelt.html"><span class="arrow-prev">← </span><span>GDELT</span></a><a class="docs-next button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.protocol.set.http.html"><span>HTTP Set</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#description">Description</a></li [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '0fedc89dddf2810657708b178e56ef02',
+                indexName: 'streampipes',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.90.0/pe/org.apache.streampipes.connect.protocol.stream.kafka.html b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.protocol.stream.kafka.html
new file mode 100644
index 00000000..d19fcf60
--- /dev/null
+++ b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.protocol.stream.kafka.html
@@ -0,0 +1,106 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Apache Kafka · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--"/><meta name="docsearch:version" content="0.90.0"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Apache Kafka · Apache StreamPipes"/><met [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">Apache Kafka</h1></header><article><div><span><!--
+  ~ 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.
+  ~
+  -->
+<p align="center"> 
+    <img src="/docs/img/pipeline-elements/org.apache.streampipes.connect.protocol.stream.kafka/icon.png" width="150px;" class="pe-image-documentation"/>
+</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="description"></a><a href="#description" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
+<p>Consumes messages from an Apache Kafka broker</p>
+<hr>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.90.0/use-configurations.html"><span class="arrow-prev">← </span><span>Configurations</span></a><a class="docs-next button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.protocol.stream.pulsar.html"><span>Apache Pulsar</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#description">Description</a></li></ [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '0fedc89dddf2810657708b178e56ef02',
+                indexName: 'streampipes',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.90.0/pe/org.apache.streampipes.connect.protocol.stream.mqtt.html b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.protocol.stream.mqtt.html
new file mode 100644
index 00000000..81150886
--- /dev/null
+++ b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.protocol.stream.mqtt.html
@@ -0,0 +1,113 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>MQTT · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--"/><meta name="docsearch:version" content="0.90.0"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="MQTT · Apache StreamPipes"/><meta property="og:t [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">MQTT</h1></header><article><div><span><!--
+  ~ 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.
+  ~
+  -->
+<p align="center"> 
+    <img src="/docs/img/pipeline-elements/org.apache.streampipes.connect.protocol.stream.mqtt/icon.png" width="150px;" class="pe-image-documentation"/>
+</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="description"></a><a href="#description" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
+<p>Consumes messages from a broker using the MQTT protocol</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="configuration"></a><a href="#configuration" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
+<p>Describe the configuration parameters here</p>
+<h3><a class="anchor" aria-hidden="true" id="broker-url"></a><a href="#broker-url" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
+<p>Example: <a href="tcp://test-server.com:1883">tcp://test-server.com:1883</a> (Protocol required. Port required)&quot;</p>
+<h3><a class="anchor" aria-hidden="true" id="access-mode"></a><a href="#access-mode" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
+<p>Unauthenticated or Authenticated (Username/Password)</p>
+<h2><a class="anchor" aria-hidden="true" id="output"></a><a href="#output" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.influxdb.stream.html"><span class="arrow-prev">← </span><span class="function-name-prevnext">InfluxDB Stream Adapter</span></a><a class="docs-next button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.simulator.machine.html"><span>Machine Data Simulator</span><span class="arrow-next"> →</span></a></div></div></div><nav [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '0fedc89dddf2810657708b178e56ef02',
+                indexName: 'streampipes',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.90.0/pe/org.apache.streampipes.connect.protocol.stream.pulsar.html b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.protocol.stream.pulsar.html
new file mode 100644
index 00000000..3e366171
--- /dev/null
+++ b/docs/docs/0.90.0/pe/org.apache.streampipes.connect.protocol.stream.pulsar.html
@@ -0,0 +1,106 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Apache Pulsar · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--"/><meta name="docsearch:version" content="0.90.0"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Apache Pulsar · Apache StreamPipes"/><m [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">Apache Pulsar</h1></header><article><div><span><!--
+  ~ 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.
+  ~
+  -->
+<p align="center"> 
+    <img src="/docs/img/pipeline-elements/org.apache.streampipes.connect.protocol.stream.pulsar/icon.png" width="150px;" class="pe-image-documentation"/>
+</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="description"></a><a href="#description" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
+<p>Consumes messages from an Apache Pulsar broker</p>
+<hr>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.protocol.stream.kafka.html"><span class="arrow-prev">← </span><span>Apache Kafka</span></a><a class="docs-next button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.connect.adapters.coindesk.html"><span>Coindesk Bitcoin Price</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a hre [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '0fedc89dddf2810657708b178e56ef02',
+                indexName: 'streampipes',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.90.0/pe/org.apache.streampipes.processor.geo.flink.html b/docs/docs/0.90.0/pe/org.apache.streampipes.processor.geo.flink.html
new file mode 100644
index 00000000..8b8074ba
--- /dev/null
+++ b/docs/docs/0.90.0/pe/org.apache.streampipes.processor.geo.flink.html
@@ -0,0 +1,118 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Spatial Grid Enrichment · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--"/><meta name="docsearch:version" content="0.90.0"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Spatial Grid Enrichment · Apa [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">Spatial Grid Enrichment</h1></header><article><div><span><!--
+  ~ 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.
+  ~
+  -->
+<p align="center"> 
+    <img src="/docs/img/pipeline-elements/org.apache.streampipes.processor.geo.flink/icon.png" width="150px;" class="pe-image-documentation"/>
+</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="description"></a><a href="#description" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
+<p>Groups spatial events into cells of a given size.
+The result is like a chessboard pattern in which the geo coordinates are inserted. The user can define the coordinates of the first field.</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="required-input"></a><a href="#required-input" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
+<p>Requires a latitude and longitude in the data stream.</p>
+<h2><a class="anchor" aria-hidden="true" id="configuration"></a><a href="#configuration" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
+<ul>
+<li>Latitude property</li>
+<li>Longitude property</li>
+<li>The size of the cell</li>
+<li>Latitude and longitude of the first cell</li>
+</ul>
+<h2><a class="anchor" aria-hidden="true" id="output"></a><a href="#output" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
+<p>Appends the grid cell coordinates to the input event</p>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.processors.enricher.jvm.sizemeasure.html"><span class="arrow-prev">← </span><span>Size Measure</span></a><a class="docs-next button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.processors.geo.jvm.processor.speed.html"><span>Speed Calculator</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings">< [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '0fedc89dddf2810657708b178e56ef02',
+                indexName: 'streampipes',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.90.0/pe/org.apache.streampipes.processor.geo.jvm.geocoding.html b/docs/docs/0.90.0/pe/org.apache.streampipes.processor.geo.jvm.geocoding.html
new file mode 100644
index 00000000..a3db68de
--- /dev/null
+++ b/docs/docs/0.90.0/pe/org.apache.streampipes.processor.geo.jvm.geocoding.html
@@ -0,0 +1,119 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Google Maps Geocoder · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--"/><meta name="docsearch:version" content="0.90.0"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Google Maps Geocoder · Apache St [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">Google Maps Geocoder</h1></header><article><div><span><!--
+  ~ 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.
+  ~
+  -->
+<p align="center"> 
+</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="description"></a><a href="#description" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
+<p>This processor computes the latitude and longitude values from a location (a place name such as &quot;Karlsruhe, Germany
+&quot;) and adds the result to the event.</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="required-input"></a><a href="#required-input" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
+<p>Input event requires to have a field which contains the name of a place.</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="configuration"></a><a href="#configuration" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
+<h3><a class="anchor" aria-hidden="true" id="place"></a><a href="#place" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09 [...]
+<p>The field of the input event that should be used to compute the lat/lng values.</p>
+<h2><a class="anchor" aria-hidden="true" id="output"></a><a href="#output" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
+<p>Outputs a similar event like below.</p>
+<pre><code class="hljs"><span class="hljs-string">{</span>
+  <span class="hljs-attr">'latitude':</span> <span class="hljs-number">6.927079</span><span class="hljs-string">,</span>
+  <span class="hljs-attr">'longitude':</span> <span class="hljs-number">79.861244</span>  
+<span class="hljs-string">}</span>
+</code></pre>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.processor.imageclassification.jvm.generic-image-classification.html"><span class="arrow-prev">← </span><span>Generic Image Classification</span></a><a class="docs-next button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.processor.imageclassification.jvm.image-cropper.html"><span>Image Cropper</span><span class="arrow-next"> →</span></a></div></div></ [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '0fedc89dddf2810657708b178e56ef02',
+                indexName: 'streampipes',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.90.0/pe/org.apache.streampipes.processor.geo.jvm.reversegeocoding.html b/docs/docs/0.90.0/pe/org.apache.streampipes.processor.geo.jvm.reversegeocoding.html
new file mode 100644
index 00000000..8f87b137
--- /dev/null
+++ b/docs/docs/0.90.0/pe/org.apache.streampipes.processor.geo.jvm.reversegeocoding.html
@@ -0,0 +1,120 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Reverse Geocoder · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--"/><meta name="docsearch:version" content="0.90.0"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Reverse Geocoder · Apache StreamPipe [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">Reverse Geocoder</h1></header><article><div><span><!--
+  ~ 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.
+  ~
+  -->
+<p align="center"> 
+</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="description"></a><a href="#description" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
+<p>This processor computes place name based on given lat/lng coordinates that are transmitted as fields from an event.</p>
+<p>This processor automatically downloads the file <a href="http://cities1000.zip">cities1000.zip</a> from Geonames (<a href="http://download.geonames.org/export/dump/cities1000.zip">http://download.geonames.org/export/dump/cities1000.zip</a>). This file is provided under the CC BY 4.0 license, see <a href="https://creativecommons.org/licenses/by/4.0/">https://creativecommons.org/licenses/by/4.0/</a> for license details.</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="required-input"></a><a href="#required-input" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
+<p>Input event requires to have latitude and longitude values.</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="configuration"></a><a href="#configuration" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
+<h3><a class="anchor" aria-hidden="true" id="latitude"></a><a href="#latitude" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
+<p>The field containing the latitude value.</p>
+<h3><a class="anchor" aria-hidden="true" id="longitude"></a><a href="#longitude" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
+<p>The field containing the longitude value.</p>
+<h2><a class="anchor" aria-hidden="true" id="output"></a><a href="#output" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
+<p>Outputs a similar event like below.</p>
+<pre><code class="hljs">{
+  'place': 'Colombo'
+}
+</code></pre>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.processors.filters.jvm.limit.html"><span class="arrow-prev">← </span><span>Rate Limit</span></a><a class="docs-next button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.processors.textmining.jvm.sentencedetection.html"><span>Sentence Detection (English)</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '0fedc89dddf2810657708b178e56ef02',
+                indexName: 'streampipes',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.90.0/pe/org.apache.streampipes.processor.geo.jvm.staticgeocoding.html b/docs/docs/0.90.0/pe/org.apache.streampipes.processor.geo.jvm.staticgeocoding.html
new file mode 100644
index 00000000..37ec4b78
--- /dev/null
+++ b/docs/docs/0.90.0/pe/org.apache.streampipes.processor.geo.jvm.staticgeocoding.html
@@ -0,0 +1,120 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Static Google Maps Geocoder · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--"/><meta name="docsearch:version" content="0.90.0"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Static Google Maps Geocod [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">Static Google Maps Geocoder</h1></header><article><div><span><!--
+  ~ 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.
+  ~
+  -->
+<p align="center"> 
+</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="description"></a><a href="#description" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
+<p>This processor computes the latitude and longitude values from a fixed location (a place name such as &quot;Karlsruhe
+, Germany
+&quot;) and adds the result to the event.</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="required-input"></a><a href="#required-input" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
+<p>Input event requires to have a field which contains the name of a place.</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="configuration"></a><a href="#configuration" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
+<h3><a class="anchor" aria-hidden="true" id="place"></a><a href="#place" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09 [...]
+<p>The place name that should be converted to a lat/lng combination</p>
+<h2><a class="anchor" aria-hidden="true" id="output"></a><a href="#output" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
+<p>Outputs a similar event like below.</p>
+<pre><code class="hljs"><span class="hljs-string">{</span>
+  <span class="hljs-attr">'latitude':</span> <span class="hljs-number">6.927079</span><span class="hljs-string">,</span>
+  <span class="hljs-attr">'longitude':</span> <span class="hljs-number">79.861244</span>  
+<span class="hljs-string">}</span>
+</code></pre>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.processors.geo.jvm.processor.staticdistancecalculator.html"><span class="arrow-prev">← </span><span>Static Distance Calculator</span></a><a class="docs-next button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.processors.enricher.flink.processor.math.staticmathop.html"><span>Static Math</span><span class="arrow-next"> →</span></a></div></div></div><na [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
+                  }
+                  // keyCode for '/' (slash)
+                  if (e.keyCode === 191) {
+                    const search = document.getElementById('search_input_react');
+                    search && search.focus();
+                  }
+                });
+              </script><script>
+              var search = docsearch({
+                
+                apiKey: '0fedc89dddf2810657708b178e56ef02',
+                indexName: 'streampipes',
+                inputSelector: '#search_input_react',
+                algoliaOptions: {}
+              });
+            </script></body></html>
\ No newline at end of file
diff --git a/docs/docs/0.90.0/pe/org.apache.streampipes.processor.imageclassification.jvm.generic-image-classification.html b/docs/docs/0.90.0/pe/org.apache.streampipes.processor.imageclassification.jvm.generic-image-classification.html
new file mode 100644
index 00000000..1e5b21d2
--- /dev/null
+++ b/docs/docs/0.90.0/pe/org.apache.streampipes.processor.imageclassification.jvm.generic-image-classification.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Generic Image Classification · Apache StreamPipes</title><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;!--"/><meta name="docsearch:version" content="0.90.0"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Generic Image Classifica [...]
+        document.addEventListener('DOMContentLoaded', function() {
+          addBackToTop(
+            {"zIndex":100}
+          )
+        });
+        </script><script src="/docs/js/scrollSpy.js"></script><link rel="stylesheet" href="/docs/css/prism.css"/><link rel="stylesheet" href="/docs/css/main.css"/><script src="/docs/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/docs/"><img class="logo" src="/docs/img/sp-logo-color-docs.png" alt="Apache StreamPipes"/></a><a href="/docs/versions.html"><h3>0.90.0</h3></a>< [...]
+            var coll = document.getElementsByClassName('collapsible');
+            var checkActiveCategory = true;
+            for (var i = 0; i < coll.length; i++) {
+              var links = coll[i].nextElementSibling.getElementsByTagName('*');
+              if (checkActiveCategory){
+                for (var j = 0; j < links.length; j++) {
+                  if (links[j].classList.contains('navListItemActive')){
+                    coll[i].nextElementSibling.classList.toggle('hide');
+                    coll[i].childNodes[1].classList.toggle('rotate');
+                    checkActiveCategory = false;
+                    break;
+                  }
+                }
+              }
+
+              coll[i].addEventListener('click', function() {
+                var arrow = this.childNodes[1];
+                arrow.classList.toggle('rotate');
+                var content = this.nextElementSibling;
+                content.classList.toggle('hide');
+              });
+            }
+
+            document.addEventListener('DOMContentLoaded', function() {
+              createToggler('#navToggler', '#docsNav', 'docsSliderActive');
+              createToggler('#tocToggler', 'body', 'tocActive');
+
+              var headings = document.querySelector('.toc-headings');
+              headings && headings.addEventListener('click', function(event) {
+                var el = event.target;
+                while(el !== headings){
+                  if (el.tagName === 'A') {
+                    document.body.classList.remove('tocActive');
+                    break;
+                  } else{
+                    el = el.parentNode;
+                  }
+                }
+              }, false);
+
+              function createToggler(togglerSelector, targetSelector, className) {
+                var toggler = document.querySelector(togglerSelector);
+                var target = document.querySelector(targetSelector);
+
+                if (!toggler) {
+                  return;
+                }
+
+                toggler.onclick = function(event) {
+                  event.preventDefault();
+
+                  target.classList.toggle(className);
+                };
+              }
+            });
+        </script></nav></div><div class="container mainContainer docsContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 id="__docusaurus" class="postHeaderTitle">Generic Image Classification</h1></header><article><div><span><!--
+  ~ 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.
+  ~
+  -->
+<p align="center"> 
+    <img src="/docs/img/pipeline-elements/org.apache.streampipes.processor.imageclassification.jvm.generic-image-classification/icon.png" width="150px;" class="pe-image-documentation"/>
+</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="description"></a><a href="#description" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
+<p>Image  + Classification Description (Generic Model)</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="required-input"></a><a href="#required-input" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
+<p>Input events require to have an image field.</p>
+<hr>
+<h2><a class="anchor" aria-hidden="true" id="configuration"></a><a href="#configuration" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.8 [...]
+<p>Describe the configuration parameters here</p>
+<h3><a class="anchor" aria-hidden="true" id="image-field"></a><a href="#image-field" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
+<p>Field that contains the image.</p>
+<h2><a class="anchor" aria-hidden="true" id="output"></a><a href="#output" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.processors.siddhi.frequencychange.html"><span class="arrow-prev">← </span><span>Frequency Change</span></a><a class="docs-next button" href="/docs/docs/0.90.0/pe/org.apache.streampipes.processor.geo.jvm.geocoding.html"><span>Google Maps Geocoder</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><l [...]
+                document.addEventListener('keyup', function(e) {
+                  if (e.target !== document.body) {
+                    return;
... 20752 lines suppressed ...