aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/plugins-event/plugins-event-carrier
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/plugins-event/plugins-event-carrier')
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/pom.xml20
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/src/main/java/org/onap/policy/apex/plugins/event/carrier/jms/JMSCarrierTechnologyParameters.java2
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/src/site-docs/adoc/fragments/ct-jms-io.adoc93
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/src/site/asciidoc/engine-config.adoc14
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/src/site/css/site.css100
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/src/site/images/logos.pngbin0 -> 162383 bytes
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/src/site/site.xml29
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-kafka/pom.xml20
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-kafka/src/site-docs/adoc/fragments/ct-kafka-io.adoc102
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-kafka/src/site/asciidoc/engine-config.adoc14
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-kafka/src/site/css/site.css100
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-kafka/src/site/images/logos.pngbin0 -> 162383 bytes
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-kafka/src/site/site.xml29
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restclient/pom.xml20
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restclient/src/site-docs/adoc/fragments/ct-restclient-io.adoc63
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restclient/src/site/asciidoc/engine-config.adoc14
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restclient/src/site/css/site.css100
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restclient/src/site/images/logos.pngbin0 -> 162383 bytes
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restclient/src/site/site.xml29
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restrequestor/pom.xml20
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restrequestor/src/site-docs/adoc/fragments/ct-restrequestor-io.adoc86
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restrequestor/src/site/asciidoc/engine-config.adoc14
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restrequestor/src/site/css/site.css100
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restrequestor/src/site/images/logos.pngbin0 -> 162383 bytes
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restrequestor/src/site/site.xml29
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/pom.xml20
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/site-docs/adoc/fragments/ct-restserver-io.adoc134
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/site/asciidoc/engine-config.adoc14
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/site/css/site.css100
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/site/images/logos.pngbin0 -> 162383 bytes
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/site/site.xml29
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/pom.xml20
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/src/site-docs/adoc/fragments/ct-websocket-io.adoc75
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/src/site-docs/adoc/fragments/engine-config-bcp.adoc29
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/src/site-docs/adoc/fragments/ws-foss.adoc27
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/src/site-docs/adoc/fragments/ws-intro.adoc23
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/src/site-docs/adoc/fragments/ws-java.adoc20
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/src/site/asciidoc/engine-config-bcp.adoc14
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/src/site/asciidoc/engine-config.adoc14
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/src/site/asciidoc/websockets.adoc18
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/src/site/css/site.css100
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/src/site/images/logos.pngbin0 -> 162383 bytes
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/src/site/site.xml32
-rw-r--r--plugins/plugins-event/plugins-event-carrier/pom.xml20
-rw-r--r--plugins/plugins-event/plugins-event-carrier/src/site-docs/adoc/fragments/carriertech.adoc41
-rw-r--r--plugins/plugins-event/plugins-event-carrier/src/site-docs/adoc/fragments/ct-eventrequestor-io.adoc92
-rw-r--r--plugins/plugins-event/plugins-event-carrier/src/site-docs/adoc/fragments/ct-file-io.adoc53
-rw-r--r--plugins/plugins-event/plugins-event-carrier/src/site-docs/adoc/fragments/ct-standard-io.adoc52
-rw-r--r--plugins/plugins-event/plugins-event-carrier/src/site/asciidoc/carriertech.adoc20
-rw-r--r--plugins/plugins-event/plugins-event-carrier/src/site/css/site.css100
-rw-r--r--plugins/plugins-event/plugins-event-carrier/src/site/images/logos.pngbin0 -> 162383 bytes
-rw-r--r--plugins/plugins-event/plugins-event-carrier/src/site/site.xml28
52 files changed, 2072 insertions, 1 deletions
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/pom.xml b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/pom.xml
index 7064b3a85..7a421910b 100644
--- a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/pom.xml
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/pom.xml
@@ -56,4 +56,24 @@
<version>4.1.25.Final</version>
</dependency>
</dependencies>
+
+ <profiles>
+ <profile>
+ <id>apexSite</id>
+ <activation>
+ <property>
+ <name>apexSite</name>
+ </property>
+ </activation>
+ <properties>
+ <adsite-plugins-event-carrier-jms-dir>${project.basedir}/src</adsite-plugins-event-carrier-jms-dir>
+ </properties>
+ <distributionManagement>
+ <site>
+ <id>${project.artifactId}-site</id>
+ <url>${apex.adsite.prefix}/modules/plugins/plugins-event/${project.parent.artifactId}/${project.artifactId}/</url>
+ </site>
+ </distributionManagement>
+ </profile>
+ </profiles>
</project>
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/src/main/java/org/onap/policy/apex/plugins/event/carrier/jms/JMSCarrierTechnologyParameters.java b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/src/main/java/org/onap/policy/apex/plugins/event/carrier/jms/JMSCarrierTechnologyParameters.java
index 48f5fe267..dfa8dc28a 100644
--- a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/src/main/java/org/onap/policy/apex/plugins/event/carrier/jms/JMSCarrierTechnologyParameters.java
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/src/main/java/org/onap/policy/apex/plugins/event/carrier/jms/JMSCarrierTechnologyParameters.java
@@ -177,7 +177,7 @@ public class JMSCarrierTechnologyParameters extends CarrierTechnologyParameters
* @return the provider URL
*/
public String getProviderURL() {
- return providerURL;
+ return providerURL;
}
/**
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/src/site-docs/adoc/fragments/ct-jms-io.adoc b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/src/site-docs/adoc/fragments/ct-jms-io.adoc
new file mode 100644
index 000000000..940857169
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/src/site-docs/adoc/fragments/ct-jms-io.adoc
@@ -0,0 +1,93 @@
+//
+// ============LICENSE_START=======================================================
+// Copyright (C) 2016-2018 Ericsson. All rights reserved.
+// ================================================================================
+// This file is licensed under the CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE
+// Full license text at https://creativecommons.org/licenses/by/4.0/legalcode
+//
+// SPDX-License-Identifier: CC-BY-4.0
+// ============LICENSE_END=========================================================
+//
+// @author Sven van der Meer (sven.van.der.meer@ericsson.com)
+//
+
+== JMS IO
+
+APEX supports the Java Messaging Service (JMS) as input as well as output.
+JMS IO is supported by the APEX JMS plugin.
+Input and output support an event encoding as text (JSON string) or object (serialized object).
+The input configuration is the same for both encodings, the output configuration differs.
+
+
+=== JMS Input
+
+APEX will receive events from a JMS messaging system.
+The input is uni-directional, an engine will only receive events from the input but not send any event to the input.
+
+[source%nowrap,json]
+----
+"carrierTechnologyParameters" : {
+ "carrierTechnology" : "JMS", <1>
+ "parameterClassName" :
+ "org.onap.policy.apex.plugins.event.carrier.jms.JMSCarrierTechnologyParameters",
+ "parameters" : { <2>
+ "initialContextFactory" :
+ "org.jboss.naming.remote.client.InitialContextFactory", <3>
+ "connectionFactory" : "ConnectionFactory", <4>
+ "providerURL" : "remote://localhost:5445", <5>
+ "securityPrincipal" : "guest", <6>
+ "securityCredentials" : "IAmAGuest", <7>
+ "consumerTopic" : "jms/topic/apexIn" <8>
+ }
+}
+----
+
+<1> set JMS as carrier technology
+<2> set all JMS specific parameters
+<3> the context factory, in this case from JBOSS (it requires the dependency org.jboss:jboss-remote-naming:2.0.4.Final or a different version to be in the directory `$APEX_HOME/lib` or `%APEX_HOME%\lib`
+<4> a connection factory for the JMS connection
+<5> URL with host and port of the JMS provider
+<6> access credentials, user name
+<7> access credentials, user password
+<8> the JMS topic to listen to
+
+
+=== JMS Output with Text
+
+APEX engine send events to a JMS messaging system.
+The output is uni-directional, an engine will send events to the output but not receive any event from output.
+
+[source%nowrap,json]
+----
+"carrierTechnologyParameters" : {
+ "carrierTechnology" : "JMS", <1>
+ "parameterClassName" :
+ "org.onap.policy.apex.plugins.event.carrier.jms.JMSCarrierTechnologyParameters",
+ "parameters" : { <2>
+ "initialContextFactory" :
+ "org.jboss.naming.remote.client.InitialContextFactory", <3>
+ "connectionFactory" : "ConnectionFactory", <4>
+ "providerURL" : "remote://localhost:5445", <5>
+ "securityPrincipal" : "guest", <6>
+ "securityCredentials" : "IAmAGuest", <7>
+ "producerTopic" : "jms/topic/apexOut", <8>
+ "objectMessageSending": "false" <9>
+ }
+}
+----
+
+<1> set JMS as carrier technology
+<2> set all JMS specific parameters
+<3> the context factory, in this case from JBOSS (it requires the dependency org.jboss:jboss-remote-naming:2.0.4.Final or a different version to be in the directory `$APEX_HOME/lib` or `%APEX_HOME%\lib`
+<4> a connection factory for the JMS connection
+<5> URL with host and port of the JMS provider
+<6> access credentials, user name
+<7> access credentials, user password
+<8> the JMS topic to write to
+<9> set object messaging to `false` means it sends JSON text
+
+
+=== JMS Output with Object
+
+To configure APEX for JMS objects on the output interface use the same configuration as above (for output).
+Simply change the `objectMessageSending` parameter to `true`.
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/src/site/asciidoc/engine-config.adoc b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/src/site/asciidoc/engine-config.adoc
new file mode 100644
index 000000000..5fd0fafce
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/src/site/asciidoc/engine-config.adoc
@@ -0,0 +1,14 @@
+//
+// ============LICENSE_START=======================================================
+// Copyright (C) 2016-2018 Ericsson. All rights reserved.
+// ================================================================================
+// This file is licensed under the CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE
+// Full license text at https://creativecommons.org/licenses/by/4.0/legalcode
+//
+// SPDX-License-Identifier: CC-BY-4.0
+// ============LICENSE_END=========================================================
+//
+// @author Sven van der Meer (sven.van.der.meer@ericsson.com)
+//
+
+include::{adsite-plugins-event-carrier-jms-dir}/site-docs/adoc/fragments/ct-jms-io.adoc[]
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/src/site/css/site.css b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/src/site/css/site.css
new file mode 100644
index 000000000..ef8bd4d15
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/src/site/css/site.css
@@ -0,0 +1,100 @@
+/*
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2016-2018 Ericsson. All rights reserved.
+ * ================================================================================
+ * Licensed 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.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+@import url(http://cdnjs.cloudflare.com/ajax/libs/font-awesome/3.2.0/css/font-awesome.css);
+
+
+/*************** Table definitions *******************/
+
+tableblock > .title, .tableblock > caption { line-height: 1.4; color: #7a2518; font-weight: 300; margin-top: 0.2em; margin-bottom: 0.5em; }
+
+.tableblock > caption { text-align: left; font-weight: bold; white-space: nowrap; overflow: visible; max-width: 0; }
+
+table.tableblock { background: white; margin-bottom: 1.25em; border: solid 1px #dddddd; }
+table.tableblock thead, table.tableblock tfoot { background: whitesmoke; font-weight: bold; }
+table.tableblock thead tr th, table.tableblock thead tr td, table tfoot tr th, table tfoot tr td { padding: 0.5em 0.625em 0.625em; font-size: inherit; color: #222222; text-align: left; }
+table.tableblock tr th, table.tableblock tr td { padding: 0.5625em 0.625em; font-size: inherit; color: #222222; }
+table.tableblock tr.even, table.tableblock tr.alt, table.tableblock tr:nth-of-type(even) { background: #f9f9f9; }
+table.tableblock thead tr th, table.tableblock tfoot tr th, table.tableblock tbody tr td, table.tableblock tr td, table.tableblock tfoot tr td { display: table-cell; line-height: 1.6; }
+
+table.tableblock #preamble > .sectionbody > .paragraph:first-of-type p { font-size: inherit; }
+
+table.tableblock.grid-all { border-collapse: separate; border-spacing: 1px; -webkit-border-radius: 4px; border-radius: 4px; border-top: 1px solid #dddddd; border-bottom: 1px solid #dddddd; }
+
+table.tableblock.frame-topbot, table.tableblock.frame-none { border-left: 0; border-right: 0; }
+
+table.tableblock.frame-sides, table.tableblock.frame-none { border-top: 0; border-bottom: 0; }
+
+table.tableblock td .paragraph:last-child p, table.tableblock td > p:last-child { margin-bottom: 0; }
+
+th.tableblock.halign-left, td.tableblock.halign-left { text-align: left; }
+
+th.tableblock.halign-right, td.tableblock.halign-right { text-align: right; }
+
+th.tableblock.halign-center, td.tableblock.halign-center { text-align: center; }
+
+th.tableblock.valign-top, td.tableblock.valign-top { vertical-align: top; }
+
+th.tableblock.valign-bottom, td.tableblock.valign-bottom { vertical-align: bottom; }
+
+th.tableblock.valign-middle, td.tableblock.valign-middle { vertical-align: middle; }
+
+p.tableblock.header { color: #222222; font-weight: bold; }
+
+
+
+/*************** KBD Macro definitions *******************/
+
+kbd.keyseq { color: #555555; }
+
+kbd:not(.keyseq) { display: inline-block; color: #222222; font-size: 0.75em; line-height: 1.4; background-color: #F7F7F7; border: 1px solid #ccc; -webkit-border-radius: 3px; border-radius: 3px; -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2), 0 0 0 2px white inset; box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2), 0 0 0 2px white inset; margin: -0.15em 0.15em 0 0.15em; padding: 0.2em 0.6em 0.2em 0.5em; vertical-align: middle; white-space: nowrap; }
+
+kbd kbd:first-child { margin-left: 0; }
+
+kbd kbd:last-child { margin-right: 0; }
+
+
+/*************** Admontion Blocks definitions *******************/
+.admonitionblock td.content > .title, .exampleblock > .title, .imageblock > .title, .videoblock > .title, .listingblock > .title, .literalblock > .title, .openblock > .title, .paragraph > .title, .quoteblock > .title, .sidebarblock > .title, .tableblock > .title, .verseblock > .title, .dlist > .title, .olist > .title, .ulist > .title, .qlist > .title, .hdlist > .title { text-align: left; font-weight: bold; }
+
+.admonitionblock > table { border: 0; background: none; width: 100%; margin-top: 1em; margin-bottom: 1em;}
+.admonitionblock > table td.icon { text-align: center; width: 80px; }
+.admonitionblock > table td.icon img { max-width: none; }
+.admonitionblock > table td.icon .title { font-weight: bold; text-transform: uppercase; }
+.admonitionblock > table td.content { padding-left: 1.125em; padding-right: 1.25em; border-left: 1px solid #dddddd; color: #6f6f6f; }
+.admonitionblock > table td.content > :last-child > :last-child { margin-bottom: 0; }
+
+.admonitionblock td.icon [class^="fa icon-"]:before {font-size:2.5em;text-shadow:1px 1px 2px rgba(0,0,0,.5);cursor:default}
+.admonitionblock td.icon .icon-note:before { content: "\f05a"; color: #005498; color: #003f72; }
+.admonitionblock td.icon .icon-tip:before { content: "\f0eb"; text-shadow: 1px 1px 2px rgba(155, 155, 0, 0.8); color: #111; }
+.admonitionblock td.icon .icon-warning:before { content: "\f071"; color: #bf6900; }
+.admonitionblock td.icon .icon-caution:before { content: "\f06d"; color: #bf3400; }
+.admonitionblock td.icon .icon-important:before { content: "\f06a"; color: #bf0000; }
+
+
+
+/*************** Misc definitions *******************/
+
+*:not(pre) > code { font-size: 0.9375em; padding: 1px 3px 0; white-space: nowrap; background-color: #f2f2f2; border: 1px solid #cccccc; -webkit-border-radius: 4px; border-radius: 4px; text-shadow: none; }
+
+pre, pre > code { line-height: 1.4; color: inherit; font-family: Consolas, "Liberation Mono", Courier, monospace; font-weight: normal; }
+
+code { font-family: Consolas, "Liberation Mono", Courier, monospace; font-weight: normal; color: #6d180b; }
+
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/src/site/images/logos.png b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/src/site/images/logos.png
new file mode 100644
index 000000000..915d6e59d
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/src/site/images/logos.png
Binary files differ
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/src/site/site.xml b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/src/site/site.xml
new file mode 100644
index 000000000..173ad4658
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/src/site/site.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ============LICENSE_START=======================================================
+ Copyright (C) 2016-2018 Ericsson. All rights reserved.
+ ================================================================================
+ This file is licensed under the CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE
+ Full license text at https://creativecommons.org/licenses/by/4.0/legalcode
+
+ SPDX-License-Identifier: CC-BY-4.0
+ ============LICENSE_END=========================================================
+
+ @author Sven van der Meer (sven.van.der.meer@ericsson.com)
+
+-->
+
+<project name="APEX Plugins Event Carrier JMS">
+ <body>
+ <menu name="APEX Plugins Event Carrier JMS">
+ <item href="engine-config.html" name="Engine Configuration" />
+ <item href="javadocs/index.html" name="API Doc" />
+ </menu>
+ <menu ref="reports" inherit="top" />
+ <menu ref="modules" />
+
+ <breadcrumbs>
+ <item name="JMS" href="index.html" />
+ </breadcrumbs>
+ </body>
+</project> \ No newline at end of file
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-kafka/pom.xml b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-kafka/pom.xml
index 297b3c47d..54996a11a 100644
--- a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-kafka/pom.xml
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-kafka/pom.xml
@@ -41,4 +41,24 @@
<version>${version.kafka}</version>
</dependency>
</dependencies>
+
+ <profiles>
+ <profile>
+ <id>apexSite</id>
+ <activation>
+ <property>
+ <name>apexSite</name>
+ </property>
+ </activation>
+ <properties>
+ <adsite-plugins-event-carrier-kafka-dir>${project.basedir}/src</adsite-plugins-event-carrier-kafka-dir>
+ </properties>
+ <distributionManagement>
+ <site>
+ <id>${project.artifactId}-site</id>
+ <url>${apex.adsite.prefix}/modules/plugins/plugins-event/${project.parent.artifactId}/${project.artifactId}/</url>
+ </site>
+ </distributionManagement>
+ </profile>
+ </profiles>
</project>
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-kafka/src/site-docs/adoc/fragments/ct-kafka-io.adoc b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-kafka/src/site-docs/adoc/fragments/ct-kafka-io.adoc
new file mode 100644
index 000000000..03e1139a0
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-kafka/src/site-docs/adoc/fragments/ct-kafka-io.adoc
@@ -0,0 +1,102 @@
+//
+// ============LICENSE_START=======================================================
+// Copyright (C) 2016-2018 Ericsson. All rights reserved.
+// ================================================================================
+// This file is licensed under the CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE
+// Full license text at https://creativecommons.org/licenses/by/4.0/legalcode
+//
+// SPDX-License-Identifier: CC-BY-4.0
+// ============LICENSE_END=========================================================
+//
+// @author Sven van der Meer (sven.van.der.meer@ericsson.com)
+//
+
+== Kafka IO
+
+Kafka IO is supported by the APEX Kafka plugin.
+The configurations below are examples.
+APEX will take any configuration inside the parameter object and forward it to Kafka.
+More information on Kafka specific configuration parameters can be found in the Kafka documentation:
+
+* link:https://kafka.apache.org/090/javadoc/org/apache/kafka/clients/consumer/KafkaConsumer.html[Kafka Consumer Class]
+* link:https://kafka.apache.org/090/javadoc/org/apache/kafka/clients/producer/KafkaProducer.html[Kafka Producer Class]
+
+
+
+=== Kafka Input
+
+APEX will receive events from the Apache Kafka messaging system.
+The input is uni-directional, an engine will only receive events from the input but not send any event to the input.
+
+[source%nowrap,json]
+----
+"carrierTechnologyParameters" : {
+ "carrierTechnology" : "KAFKA", <1>
+ "parameterClassName" :
+ "org.onap.policy.apex.plugins.event.carrier.kafka.KAFKACarrierTechnologyParameters",
+ "parameters" : {
+ "bootstrapServers" : "localhost:49092", <2>
+ "groupId" : "apex-group-id", <3>
+ "enableAutoCommit" : true, <4>
+ "autoCommitTime" : 1000, <5>
+ "sessionTimeout" : 30000, <6>
+ "consumerPollTime" : 100, <7>
+ "consumerTopicList" : ["apex-in-0", "apex-in-1"], <8>
+ "keyDeserializer" :
+ "org.apache.kafka.common.serialization.StringDeserializer", <9>
+ "valueDeserializer" :
+ "org.apache.kafka.common.serialization.StringDeserializer" <10>
+ }
+}
+----
+
+<1> set Kafka as carrier technology
+<2> bootstrap server and port
+<3> a group identifier
+<4> flag for auto-commit
+<5> auto-commit timeout in milliseconds
+<6> session timeout in milliseconds
+<7> consumer poll time in milliseconds
+<8> consumer topic list
+<9> key for the Kafka de-serializer
+<10> value for the Kafka de-serializer
+
+
+=== Kafka Output
+
+APEX will send events to the Apache Kafka messaging system.
+The output is uni-directional, an engine will send events to the output but not receive any event from the output.
+
+
+[source%nowrap,json]
+----
+"carrierTechnologyParameters" : {
+ "carrierTechnology" : "KAFKA", <1>
+ "parameterClassName" :
+ "org.onap.policy.apex.plugins.event.carrier.kafka.KAFKACarrierTechnologyParameters",
+ "parameters" : {
+ "bootstrapServers" : "localhost:49092", <2>
+ "acks" : "all", <3>
+ "retries" : 0, <4>
+ "batchSize" : 16384, <5>
+ "lingerTime" : 1, <6>
+ "bufferMemory" : 33554432, <7>
+ "producerTopic" : "apex-out", <8>
+ "keySerializer" :
+ "org.apache.kafka.common.serialization.StringSerializer", <9>
+ "valueSerializer" :
+ "org.apache.kafka.common.serialization.StringSerializer" <10>
+ }
+}
+----
+
+<1> set Kafka as carrier technology
+<2> bootstrap server and port
+<3> acknowledgement strategy
+<4> number of retries
+<5> batch size
+<6> time to linger in milliseconds
+<7> buffer memory in byte
+<8> producer topic
+<9> key for the Kafka serializer
+<10> value for the Kafka serializer
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-kafka/src/site/asciidoc/engine-config.adoc b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-kafka/src/site/asciidoc/engine-config.adoc
new file mode 100644
index 000000000..44f96527c
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-kafka/src/site/asciidoc/engine-config.adoc
@@ -0,0 +1,14 @@
+//
+// ============LICENSE_START=======================================================
+// Copyright (C) 2016-2018 Ericsson. All rights reserved.
+// ================================================================================
+// This file is licensed under the CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE
+// Full license text at https://creativecommons.org/licenses/by/4.0/legalcode
+//
+// SPDX-License-Identifier: CC-BY-4.0
+// ============LICENSE_END=========================================================
+//
+// @author Sven van der Meer (sven.van.der.meer@ericsson.com)
+//
+
+include::{adsite-plugins-event-carrier-kafka-dir}/site-docs/adoc/fragments/ct-kafka-io.adoc[]
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-kafka/src/site/css/site.css b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-kafka/src/site/css/site.css
new file mode 100644
index 000000000..ef8bd4d15
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-kafka/src/site/css/site.css
@@ -0,0 +1,100 @@
+/*
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2016-2018 Ericsson. All rights reserved.
+ * ================================================================================
+ * Licensed 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.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+@import url(http://cdnjs.cloudflare.com/ajax/libs/font-awesome/3.2.0/css/font-awesome.css);
+
+
+/*************** Table definitions *******************/
+
+tableblock > .title, .tableblock > caption { line-height: 1.4; color: #7a2518; font-weight: 300; margin-top: 0.2em; margin-bottom: 0.5em; }
+
+.tableblock > caption { text-align: left; font-weight: bold; white-space: nowrap; overflow: visible; max-width: 0; }
+
+table.tableblock { background: white; margin-bottom: 1.25em; border: solid 1px #dddddd; }
+table.tableblock thead, table.tableblock tfoot { background: whitesmoke; font-weight: bold; }
+table.tableblock thead tr th, table.tableblock thead tr td, table tfoot tr th, table tfoot tr td { padding: 0.5em 0.625em 0.625em; font-size: inherit; color: #222222; text-align: left; }
+table.tableblock tr th, table.tableblock tr td { padding: 0.5625em 0.625em; font-size: inherit; color: #222222; }
+table.tableblock tr.even, table.tableblock tr.alt, table.tableblock tr:nth-of-type(even) { background: #f9f9f9; }
+table.tableblock thead tr th, table.tableblock tfoot tr th, table.tableblock tbody tr td, table.tableblock tr td, table.tableblock tfoot tr td { display: table-cell; line-height: 1.6; }
+
+table.tableblock #preamble > .sectionbody > .paragraph:first-of-type p { font-size: inherit; }
+
+table.tableblock.grid-all { border-collapse: separate; border-spacing: 1px; -webkit-border-radius: 4px; border-radius: 4px; border-top: 1px solid #dddddd; border-bottom: 1px solid #dddddd; }
+
+table.tableblock.frame-topbot, table.tableblock.frame-none { border-left: 0; border-right: 0; }
+
+table.tableblock.frame-sides, table.tableblock.frame-none { border-top: 0; border-bottom: 0; }
+
+table.tableblock td .paragraph:last-child p, table.tableblock td > p:last-child { margin-bottom: 0; }
+
+th.tableblock.halign-left, td.tableblock.halign-left { text-align: left; }
+
+th.tableblock.halign-right, td.tableblock.halign-right { text-align: right; }
+
+th.tableblock.halign-center, td.tableblock.halign-center { text-align: center; }
+
+th.tableblock.valign-top, td.tableblock.valign-top { vertical-align: top; }
+
+th.tableblock.valign-bottom, td.tableblock.valign-bottom { vertical-align: bottom; }
+
+th.tableblock.valign-middle, td.tableblock.valign-middle { vertical-align: middle; }
+
+p.tableblock.header { color: #222222; font-weight: bold; }
+
+
+
+/*************** KBD Macro definitions *******************/
+
+kbd.keyseq { color: #555555; }
+
+kbd:not(.keyseq) { display: inline-block; color: #222222; font-size: 0.75em; line-height: 1.4; background-color: #F7F7F7; border: 1px solid #ccc; -webkit-border-radius: 3px; border-radius: 3px; -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2), 0 0 0 2px white inset; box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2), 0 0 0 2px white inset; margin: -0.15em 0.15em 0 0.15em; padding: 0.2em 0.6em 0.2em 0.5em; vertical-align: middle; white-space: nowrap; }
+
+kbd kbd:first-child { margin-left: 0; }
+
+kbd kbd:last-child { margin-right: 0; }
+
+
+/*************** Admontion Blocks definitions *******************/
+.admonitionblock td.content > .title, .exampleblock > .title, .imageblock > .title, .videoblock > .title, .listingblock > .title, .literalblock > .title, .openblock > .title, .paragraph > .title, .quoteblock > .title, .sidebarblock > .title, .tableblock > .title, .verseblock > .title, .dlist > .title, .olist > .title, .ulist > .title, .qlist > .title, .hdlist > .title { text-align: left; font-weight: bold; }
+
+.admonitionblock > table { border: 0; background: none; width: 100%; margin-top: 1em; margin-bottom: 1em;}
+.admonitionblock > table td.icon { text-align: center; width: 80px; }
+.admonitionblock > table td.icon img { max-width: none; }
+.admonitionblock > table td.icon .title { font-weight: bold; text-transform: uppercase; }
+.admonitionblock > table td.content { padding-left: 1.125em; padding-right: 1.25em; border-left: 1px solid #dddddd; color: #6f6f6f; }
+.admonitionblock > table td.content > :last-child > :last-child { margin-bottom: 0; }
+
+.admonitionblock td.icon [class^="fa icon-"]:before {font-size:2.5em;text-shadow:1px 1px 2px rgba(0,0,0,.5);cursor:default}
+.admonitionblock td.icon .icon-note:before { content: "\f05a"; color: #005498; color: #003f72; }
+.admonitionblock td.icon .icon-tip:before { content: "\f0eb"; text-shadow: 1px 1px 2px rgba(155, 155, 0, 0.8); color: #111; }
+.admonitionblock td.icon .icon-warning:before { content: "\f071"; color: #bf6900; }
+.admonitionblock td.icon .icon-caution:before { content: "\f06d"; color: #bf3400; }
+.admonitionblock td.icon .icon-important:before { content: "\f06a"; color: #bf0000; }
+
+
+
+/*************** Misc definitions *******************/
+
+*:not(pre) > code { font-size: 0.9375em; padding: 1px 3px 0; white-space: nowrap; background-color: #f2f2f2; border: 1px solid #cccccc; -webkit-border-radius: 4px; border-radius: 4px; text-shadow: none; }
+
+pre, pre > code { line-height: 1.4; color: inherit; font-family: Consolas, "Liberation Mono", Courier, monospace; font-weight: normal; }
+
+code { font-family: Consolas, "Liberation Mono", Courier, monospace; font-weight: normal; color: #6d180b; }
+
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-kafka/src/site/images/logos.png b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-kafka/src/site/images/logos.png
new file mode 100644
index 000000000..915d6e59d
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-kafka/src/site/images/logos.png
Binary files differ
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-kafka/src/site/site.xml b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-kafka/src/site/site.xml
new file mode 100644
index 000000000..d4a353290
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-kafka/src/site/site.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ============LICENSE_START=======================================================
+ Copyright (C) 2016-2018 Ericsson. All rights reserved.
+ ================================================================================
+ This file is licensed under the CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE
+ Full license text at https://creativecommons.org/licenses/by/4.0/legalcode
+
+ SPDX-License-Identifier: CC-BY-4.0
+ ============LICENSE_END=========================================================
+
+ @author Sven van der Meer (sven.van.der.meer@ericsson.com)
+
+-->
+
+<project name="APEX Plugins Event Carrier Kafka">
+ <body>
+ <menu name="APEX Plugins Event Carrier Kafka">
+ <item href="engine-config.html" name="Engine Configuration" />
+ <item href="javadocs/index.html" name="API Doc" />
+ </menu>
+ <menu ref="reports" inherit="top" />
+ <menu ref="modules" />
+
+ <breadcrumbs>
+ <item name="Kafka" href="index.html" />
+ </breadcrumbs>
+ </body>
+</project> \ No newline at end of file
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restclient/pom.xml b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restclient/pom.xml
index 0629e3707..e61dbadb8 100644
--- a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restclient/pom.xml
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restclient/pom.xml
@@ -46,4 +46,24 @@
<version>${project.version}</version>
</dependency>
</dependencies>
+
+ <profiles>
+ <profile>
+ <id>apexSite</id>
+ <activation>
+ <property>
+ <name>apexSite</name>
+ </property>
+ </activation>
+ <properties>
+ <adsite-plugins-event-carrier-restclient-dir>${project.basedir}/src</adsite-plugins-event-carrier-restclient-dir>
+ </properties>
+ <distributionManagement>
+ <site>
+ <id>${project.artifactId}-site</id>
+ <url>${apex.adsite.prefix}/modules/plugins/plugins-event/${project.parent.artifactId}/${project.artifactId}/</url>
+ </site>
+ </distributionManagement>
+ </profile>
+ </profiles>
</project>
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restclient/src/site-docs/adoc/fragments/ct-restclient-io.adoc b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restclient/src/site-docs/adoc/fragments/ct-restclient-io.adoc
new file mode 100644
index 000000000..64782a8bc
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restclient/src/site-docs/adoc/fragments/ct-restclient-io.adoc
@@ -0,0 +1,63 @@
+//
+// ============LICENSE_START=======================================================
+// Copyright (C) 2016-2018 Ericsson. All rights reserved.
+// ================================================================================
+// This file is licensed under the CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE
+// Full license text at https://creativecommons.org/licenses/by/4.0/legalcode
+//
+// SPDX-License-Identifier: CC-BY-4.0
+// ============LICENSE_END=========================================================
+//
+// @author Sven van der Meer (sven.van.der.meer@ericsson.com)
+//
+
+== REST Client IO
+
+APEX can act as REST client on the input as well as on the output interface.
+The media type is `application/json`, so this plugin does only work with the JSON Event protocol.
+
+=== REST Client Input
+
+APEX will connect to a given URL to receive events, but not send any events.
+The server is polled, i.e. APEX will do an HTTP GET, take the result, and then do the next GET.
+Any required timing needs to be handled by the server configured via the URL.
+For instance, the server could support a wait timeout via the URL as `?timeout=100ms`.
+
+[source%nowrap,json]
+----
+"carrierTechnologyParameters" : {
+ "carrierTechnology" : "RESTCLIENT", <1>
+ "parameterClassName" :
+ "org.onap.policy.apex.plugins.event.carrier.restclient.RESTClientCarrierTechnologyParameters",
+ "parameters" : {
+ "url" : "http://example.org:8080/triggers/events", <2>
+ }
+}
+----
+
+<1> set REST client as carrier technology
+<2> the URL of the HTTP server for events
+
+
+=== REST Client Output
+
+APEX will connect to a given URL to send events, but not receive any events.
+The default HTTP operation is POST (no configuration required).
+To change it to PUT simply add the configuration parameter (as shown in the example below).
+
+[source%nowrap,json]
+----
+"carrierTechnologyParameters" : {
+ "carrierTechnology" : "RESTCLIENT", <1>
+ "parameterClassName" :
+ "org.onap.policy.apex.plugins.event.carrier.restclient.RESTClientCarrierTechnologyParameters",
+ "parameters" : {
+ "url" : "http://example.com:8888/actions/events", <2>
+ "httpMethod" : "PUT" <3>
+ }
+}
+----
+
+<1> set REST client as carrier technology
+<2> the URL of the HTTP server for events
+<3> use HTTP PUT (remove this line to use HTTP POST)
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restclient/src/site/asciidoc/engine-config.adoc b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restclient/src/site/asciidoc/engine-config.adoc
new file mode 100644
index 000000000..4c6d2c8a2
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restclient/src/site/asciidoc/engine-config.adoc
@@ -0,0 +1,14 @@
+//
+// ============LICENSE_START=======================================================
+// Copyright (C) 2016-2018 Ericsson. All rights reserved.
+// ================================================================================
+// This file is licensed under the CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE
+// Full license text at https://creativecommons.org/licenses/by/4.0/legalcode
+//
+// SPDX-License-Identifier: CC-BY-4.0
+// ============LICENSE_END=========================================================
+//
+// @author Sven van der Meer (sven.van.der.meer@ericsson.com)
+//
+
+include::{adsite-plugins-event-carrier-restclient-dir}/site-docs/adoc/fragments/ct-restclient-io.adoc[]
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restclient/src/site/css/site.css b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restclient/src/site/css/site.css
new file mode 100644
index 000000000..ef8bd4d15
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restclient/src/site/css/site.css
@@ -0,0 +1,100 @@
+/*
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2016-2018 Ericsson. All rights reserved.
+ * ================================================================================
+ * Licensed 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.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+@import url(http://cdnjs.cloudflare.com/ajax/libs/font-awesome/3.2.0/css/font-awesome.css);
+
+
+/*************** Table definitions *******************/
+
+tableblock > .title, .tableblock > caption { line-height: 1.4; color: #7a2518; font-weight: 300; margin-top: 0.2em; margin-bottom: 0.5em; }
+
+.tableblock > caption { text-align: left; font-weight: bold; white-space: nowrap; overflow: visible; max-width: 0; }
+
+table.tableblock { background: white; margin-bottom: 1.25em; border: solid 1px #dddddd; }
+table.tableblock thead, table.tableblock tfoot { background: whitesmoke; font-weight: bold; }
+table.tableblock thead tr th, table.tableblock thead tr td, table tfoot tr th, table tfoot tr td { padding: 0.5em 0.625em 0.625em; font-size: inherit; color: #222222; text-align: left; }
+table.tableblock tr th, table.tableblock tr td { padding: 0.5625em 0.625em; font-size: inherit; color: #222222; }
+table.tableblock tr.even, table.tableblock tr.alt, table.tableblock tr:nth-of-type(even) { background: #f9f9f9; }
+table.tableblock thead tr th, table.tableblock tfoot tr th, table.tableblock tbody tr td, table.tableblock tr td, table.tableblock tfoot tr td { display: table-cell; line-height: 1.6; }
+
+table.tableblock #preamble > .sectionbody > .paragraph:first-of-type p { font-size: inherit; }
+
+table.tableblock.grid-all { border-collapse: separate; border-spacing: 1px; -webkit-border-radius: 4px; border-radius: 4px; border-top: 1px solid #dddddd; border-bottom: 1px solid #dddddd; }
+
+table.tableblock.frame-topbot, table.tableblock.frame-none { border-left: 0; border-right: 0; }
+
+table.tableblock.frame-sides, table.tableblock.frame-none { border-top: 0; border-bottom: 0; }
+
+table.tableblock td .paragraph:last-child p, table.tableblock td > p:last-child { margin-bottom: 0; }
+
+th.tableblock.halign-left, td.tableblock.halign-left { text-align: left; }
+
+th.tableblock.halign-right, td.tableblock.halign-right { text-align: right; }
+
+th.tableblock.halign-center, td.tableblock.halign-center { text-align: center; }
+
+th.tableblock.valign-top, td.tableblock.valign-top { vertical-align: top; }
+
+th.tableblock.valign-bottom, td.tableblock.valign-bottom { vertical-align: bottom; }
+
+th.tableblock.valign-middle, td.tableblock.valign-middle { vertical-align: middle; }
+
+p.tableblock.header { color: #222222; font-weight: bold; }
+
+
+
+/*************** KBD Macro definitions *******************/
+
+kbd.keyseq { color: #555555; }
+
+kbd:not(.keyseq) { display: inline-block; color: #222222; font-size: 0.75em; line-height: 1.4; background-color: #F7F7F7; border: 1px solid #ccc; -webkit-border-radius: 3px; border-radius: 3px; -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2), 0 0 0 2px white inset; box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2), 0 0 0 2px white inset; margin: -0.15em 0.15em 0 0.15em; padding: 0.2em 0.6em 0.2em 0.5em; vertical-align: middle; white-space: nowrap; }
+
+kbd kbd:first-child { margin-left: 0; }
+
+kbd kbd:last-child { margin-right: 0; }
+
+
+/*************** Admontion Blocks definitions *******************/
+.admonitionblock td.content > .title, .exampleblock > .title, .imageblock > .title, .videoblock > .title, .listingblock > .title, .literalblock > .title, .openblock > .title, .paragraph > .title, .quoteblock > .title, .sidebarblock > .title, .tableblock > .title, .verseblock > .title, .dlist > .title, .olist > .title, .ulist > .title, .qlist > .title, .hdlist > .title { text-align: left; font-weight: bold; }
+
+.admonitionblock > table { border: 0; background: none; width: 100%; margin-top: 1em; margin-bottom: 1em;}
+.admonitionblock > table td.icon { text-align: center; width: 80px; }
+.admonitionblock > table td.icon img { max-width: none; }
+.admonitionblock > table td.icon .title { font-weight: bold; text-transform: uppercase; }
+.admonitionblock > table td.content { padding-left: 1.125em; padding-right: 1.25em; border-left: 1px solid #dddddd; color: #6f6f6f; }
+.admonitionblock > table td.content > :last-child > :last-child { margin-bottom: 0; }
+
+.admonitionblock td.icon [class^="fa icon-"]:before {font-size:2.5em;text-shadow:1px 1px 2px rgba(0,0,0,.5);cursor:default}
+.admonitionblock td.icon .icon-note:before { content: "\f05a"; color: #005498; color: #003f72; }
+.admonitionblock td.icon .icon-tip:before { content: "\f0eb"; text-shadow: 1px 1px 2px rgba(155, 155, 0, 0.8); color: #111; }
+.admonitionblock td.icon .icon-warning:before { content: "\f071"; color: #bf6900; }
+.admonitionblock td.icon .icon-caution:before { content: "\f06d"; color: #bf3400; }
+.admonitionblock td.icon .icon-important:before { content: "\f06a"; color: #bf0000; }
+
+
+
+/*************** Misc definitions *******************/
+
+*:not(pre) > code { font-size: 0.9375em; padding: 1px 3px 0; white-space: nowrap; background-color: #f2f2f2; border: 1px solid #cccccc; -webkit-border-radius: 4px; border-radius: 4px; text-shadow: none; }
+
+pre, pre > code { line-height: 1.4; color: inherit; font-family: Consolas, "Liberation Mono", Courier, monospace; font-weight: normal; }
+
+code { font-family: Consolas, "Liberation Mono", Courier, monospace; font-weight: normal; color: #6d180b; }
+
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restclient/src/site/images/logos.png b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restclient/src/site/images/logos.png
new file mode 100644
index 000000000..915d6e59d
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restclient/src/site/images/logos.png
Binary files differ
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restclient/src/site/site.xml b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restclient/src/site/site.xml
new file mode 100644
index 000000000..a64169234
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restclient/src/site/site.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ============LICENSE_START=======================================================
+ Copyright (C) 2016-2018 Ericsson. All rights reserved.
+ ================================================================================
+ This file is licensed under the CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE
+ Full license text at https://creativecommons.org/licenses/by/4.0/legalcode
+
+ SPDX-License-Identifier: CC-BY-4.0
+ ============LICENSE_END=========================================================
+
+ @author Sven van der Meer (sven.van.der.meer@ericsson.com)
+
+-->
+
+<project name="APEX Plugins Event Carrier REST-Client">
+ <body>
+ <menu name="APEX Plugins Event Carrier REST-Client">
+ <item href="engine-config.html" name="Engine Configuration" />
+ <item href="javadocs/index.html" name="API Doc" />
+ </menu>
+ <menu ref="reports" inherit="top" />
+ <menu ref="modules" />
+
+ <breadcrumbs>
+ <item name="REST-Client" href="index.html" />
+ </breadcrumbs>
+ </body>
+</project> \ No newline at end of file
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restrequestor/pom.xml b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restrequestor/pom.xml
index 97814b660..6377b82f8 100644
--- a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restrequestor/pom.xml
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restrequestor/pom.xml
@@ -69,4 +69,24 @@
<version>${version.jersey}</version>
</dependency>
</dependencies>
+
+ <profiles>
+ <profile>
+ <id>apexSite</id>
+ <activation>
+ <property>
+ <name>apexSite</name>
+ </property>
+ </activation>
+ <properties>
+ <adsite-plugins-event-carrier-restrequestor-dir>${project.basedir}/src</adsite-plugins-event-carrier-restrequestor-dir>
+ </properties>
+ <distributionManagement>
+ <site>
+ <id>${project.artifactId}-site</id>
+ <url>${apex.adsite.prefix}/modules/plugins/plugins-event/${project.parent.artifactId}/${project.artifactId}/</url>
+ </site>
+ </distributionManagement>
+ </profile>
+ </profiles>
</project>
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restrequestor/src/site-docs/adoc/fragments/ct-restrequestor-io.adoc b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restrequestor/src/site-docs/adoc/fragments/ct-restrequestor-io.adoc
new file mode 100644
index 000000000..320c99880
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restrequestor/src/site-docs/adoc/fragments/ct-restrequestor-io.adoc
@@ -0,0 +1,86 @@
+//
+// ============LICENSE_START=======================================================
+// Copyright (C) 2016-2018 Ericsson. All rights reserved.
+// ================================================================================
+// This file is licensed under the CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE
+// Full license text at https://creativecommons.org/licenses/by/4.0/legalcode
+//
+// SPDX-License-Identifier: CC-BY-4.0
+// ============LICENSE_END=========================================================
+//
+// @author Sven van der Meer (sven.van.der.meer@ericsson.com)
+//
+
+== REST Requestor IO
+
+APEX can act as REST requestor on the input as well as on the output interface.
+The media type is `application/json`, so this plugin does only work with the JSON Event protocol.
+
+=== REST Requestor Input
+
+APEX will connect to a given URL to request an input.
+
+[source%nowrap,json]
+----
+"carrierTechnologyParameters": {
+ "carrierTechnology": "RESTREQUESTOR", <1>
+ "parameterClassName": "org.onap.policy.apex.plugins.event.carrier.restrequestor.RESTRequestorCarrierTechnologyParameters",
+ "parameters": {
+ "url": "http://localhost:54321/some/path/to/rest/resource", <2>
+ "httpMethod": "POST", <3>
+ "restRequestTimeout": 2000 <4>
+ }
+},
+----
+
+<1> set REST requestor as carrier technology
+<2> the URL of the HTTP server for events
+<3> use HTTP PUT (remove this line to use HTTP POST)
+<4> request timeout in milliseconds
+
+Further settings are required on the consumer to define the event that is requested, for example:
+
+[source%nowrap,json]
+----
+"eventName": "GuardResponseEvent", <1>
+"eventNameFilter": "GuardResponseEvent", <2>
+"requestorMode": true, <3>
+"requestorPeer": "GuardRequestorProducer", <4>
+"requestorTimeout": 500 <5>
+----
+
+<1> the event name
+<2> a filter on the event
+<3> the mode of the requestor
+<4> a peer for the requestor
+<5> a general request timeout
+
+
+=== REST Requestor Output
+
+APEX will connect to a given URL to send events, but not receive any events.
+
+[source%nowrap,json]
+----
+"carrierTechnologyParameters": {
+ "carrierTechnology": "RESTREQUESTOR", <1>
+ "parameterClassName": "org.onap.policy.apex.plugins.event.carrier.restrequestor.RESTRequestorCarrierTechnologyParameters"
+},
+----
+
+<1> set REST requestor as carrier technology
+
+Further settings are required on the consumer to define the event that is requested, for example:
+
+[source%nowrap,json]
+----
+"eventNameFilter": "GuardRequestEvent", <1>
+"requestorMode": true, <2>
+"requestorPeer": "GuardRequestorConsumer", <3>
+"requestorTimeout": 500 <4>
+----
+
+<1> a filter on the event
+<2> the mode of the requestor
+<3> a peer for the requestor
+<4> a general request timeout
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restrequestor/src/site/asciidoc/engine-config.adoc b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restrequestor/src/site/asciidoc/engine-config.adoc
new file mode 100644
index 000000000..91c4b0dc8
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restrequestor/src/site/asciidoc/engine-config.adoc
@@ -0,0 +1,14 @@
+//
+// ============LICENSE_START=======================================================
+// Copyright (C) 2016-2018 Ericsson. All rights reserved.
+// ================================================================================
+// This file is licensed under the CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE
+// Full license text at https://creativecommons.org/licenses/by/4.0/legalcode
+//
+// SPDX-License-Identifier: CC-BY-4.0
+// ============LICENSE_END=========================================================
+//
+// @author Sven van der Meer (sven.van.der.meer@ericsson.com)
+//
+
+include::{adsite-plugins-event-carrier-restrequestor-dir}/site-docs/adoc/fragments/ct-restrequestor-io.adoc[]
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restrequestor/src/site/css/site.css b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restrequestor/src/site/css/site.css
new file mode 100644
index 000000000..ef8bd4d15
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restrequestor/src/site/css/site.css
@@ -0,0 +1,100 @@
+/*
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2016-2018 Ericsson. All rights reserved.
+ * ================================================================================
+ * Licensed 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.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+@import url(http://cdnjs.cloudflare.com/ajax/libs/font-awesome/3.2.0/css/font-awesome.css);
+
+
+/*************** Table definitions *******************/
+
+tableblock > .title, .tableblock > caption { line-height: 1.4; color: #7a2518; font-weight: 300; margin-top: 0.2em; margin-bottom: 0.5em; }
+
+.tableblock > caption { text-align: left; font-weight: bold; white-space: nowrap; overflow: visible; max-width: 0; }
+
+table.tableblock { background: white; margin-bottom: 1.25em; border: solid 1px #dddddd; }
+table.tableblock thead, table.tableblock tfoot { background: whitesmoke; font-weight: bold; }
+table.tableblock thead tr th, table.tableblock thead tr td, table tfoot tr th, table tfoot tr td { padding: 0.5em 0.625em 0.625em; font-size: inherit; color: #222222; text-align: left; }
+table.tableblock tr th, table.tableblock tr td { padding: 0.5625em 0.625em; font-size: inherit; color: #222222; }
+table.tableblock tr.even, table.tableblock tr.alt, table.tableblock tr:nth-of-type(even) { background: #f9f9f9; }
+table.tableblock thead tr th, table.tableblock tfoot tr th, table.tableblock tbody tr td, table.tableblock tr td, table.tableblock tfoot tr td { display: table-cell; line-height: 1.6; }
+
+table.tableblock #preamble > .sectionbody > .paragraph:first-of-type p { font-size: inherit; }
+
+table.tableblock.grid-all { border-collapse: separate; border-spacing: 1px; -webkit-border-radius: 4px; border-radius: 4px; border-top: 1px solid #dddddd; border-bottom: 1px solid #dddddd; }
+
+table.tableblock.frame-topbot, table.tableblock.frame-none { border-left: 0; border-right: 0; }
+
+table.tableblock.frame-sides, table.tableblock.frame-none { border-top: 0; border-bottom: 0; }
+
+table.tableblock td .paragraph:last-child p, table.tableblock td > p:last-child { margin-bottom: 0; }
+
+th.tableblock.halign-left, td.tableblock.halign-left { text-align: left; }
+
+th.tableblock.halign-right, td.tableblock.halign-right { text-align: right; }
+
+th.tableblock.halign-center, td.tableblock.halign-center { text-align: center; }
+
+th.tableblock.valign-top, td.tableblock.valign-top { vertical-align: top; }
+
+th.tableblock.valign-bottom, td.tableblock.valign-bottom { vertical-align: bottom; }
+
+th.tableblock.valign-middle, td.tableblock.valign-middle { vertical-align: middle; }
+
+p.tableblock.header { color: #222222; font-weight: bold; }
+
+
+
+/*************** KBD Macro definitions *******************/
+
+kbd.keyseq { color: #555555; }
+
+kbd:not(.keyseq) { display: inline-block; color: #222222; font-size: 0.75em; line-height: 1.4; background-color: #F7F7F7; border: 1px solid #ccc; -webkit-border-radius: 3px; border-radius: 3px; -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2), 0 0 0 2px white inset; box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2), 0 0 0 2px white inset; margin: -0.15em 0.15em 0 0.15em; padding: 0.2em 0.6em 0.2em 0.5em; vertical-align: middle; white-space: nowrap; }
+
+kbd kbd:first-child { margin-left: 0; }
+
+kbd kbd:last-child { margin-right: 0; }
+
+
+/*************** Admontion Blocks definitions *******************/
+.admonitionblock td.content > .title, .exampleblock > .title, .imageblock > .title, .videoblock > .title, .listingblock > .title, .literalblock > .title, .openblock > .title, .paragraph > .title, .quoteblock > .title, .sidebarblock > .title, .tableblock > .title, .verseblock > .title, .dlist > .title, .olist > .title, .ulist > .title, .qlist > .title, .hdlist > .title { text-align: left; font-weight: bold; }
+
+.admonitionblock > table { border: 0; background: none; width: 100%; margin-top: 1em; margin-bottom: 1em;}
+.admonitionblock > table td.icon { text-align: center; width: 80px; }
+.admonitionblock > table td.icon img { max-width: none; }
+.admonitionblock > table td.icon .title { font-weight: bold; text-transform: uppercase; }
+.admonitionblock > table td.content { padding-left: 1.125em; padding-right: 1.25em; border-left: 1px solid #dddddd; color: #6f6f6f; }
+.admonitionblock > table td.content > :last-child > :last-child { margin-bottom: 0; }
+
+.admonitionblock td.icon [class^="fa icon-"]:before {font-size:2.5em;text-shadow:1px 1px 2px rgba(0,0,0,.5);cursor:default}
+.admonitionblock td.icon .icon-note:before { content: "\f05a"; color: #005498; color: #003f72; }
+.admonitionblock td.icon .icon-tip:before { content: "\f0eb"; text-shadow: 1px 1px 2px rgba(155, 155, 0, 0.8); color: #111; }
+.admonitionblock td.icon .icon-warning:before { content: "\f071"; color: #bf6900; }
+.admonitionblock td.icon .icon-caution:before { content: "\f06d"; color: #bf3400; }
+.admonitionblock td.icon .icon-important:before { content: "\f06a"; color: #bf0000; }
+
+
+
+/*************** Misc definitions *******************/
+
+*:not(pre) > code { font-size: 0.9375em; padding: 1px 3px 0; white-space: nowrap; background-color: #f2f2f2; border: 1px solid #cccccc; -webkit-border-radius: 4px; border-radius: 4px; text-shadow: none; }
+
+pre, pre > code { line-height: 1.4; color: inherit; font-family: Consolas, "Liberation Mono", Courier, monospace; font-weight: normal; }
+
+code { font-family: Consolas, "Liberation Mono", Courier, monospace; font-weight: normal; color: #6d180b; }
+
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restrequestor/src/site/images/logos.png b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restrequestor/src/site/images/logos.png
new file mode 100644
index 000000000..915d6e59d
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restrequestor/src/site/images/logos.png
Binary files differ
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restrequestor/src/site/site.xml b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restrequestor/src/site/site.xml
new file mode 100644
index 000000000..1fc8e0eca
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restrequestor/src/site/site.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ============LICENSE_START=======================================================
+ Copyright (C) 2016-2018 Ericsson. All rights reserved.
+ ================================================================================
+ This file is licensed under the CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE
+ Full license text at https://creativecommons.org/licenses/by/4.0/legalcode
+
+ SPDX-License-Identifier: CC-BY-4.0
+ ============LICENSE_END=========================================================
+
+ @author Sven van der Meer (sven.van.der.meer@ericsson.com)
+
+-->
+
+<project name="APEX Plugins Event Carrier REST-Requestor">
+ <body>
+ <menu name="APEX Plugins Event Carrier REST-Requestor">
+ <item href="engine-config.html" name="Engine Configuration" />
+ <item href="javadocs/index.html" name="API Doc" />
+ </menu>
+ <menu ref="reports" inherit="top" />
+ <menu ref="modules" />
+
+ <breadcrumbs>
+ <item name="REST-Requestor" href="index.html" />
+ </breadcrumbs>
+ </body>
+</project> \ No newline at end of file
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/pom.xml b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/pom.xml
index 42a636e02..86d39badd 100644
--- a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/pom.xml
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/pom.xml
@@ -56,4 +56,24 @@
<version>${version.jersey}</version>
</dependency>
</dependencies>
+
+ <profiles>
+ <profile>
+ <id>apexSite</id>
+ <activation>
+ <property>
+ <name>apexSite</name>
+ </property>
+ </activation>
+ <properties>
+ <adsite-plugins-event-carrier-restserver-dir>${project.basedir}/src</adsite-plugins-event-carrier-restserver-dir>
+ </properties>
+ <distributionManagement>
+ <site>
+ <id>${project.artifactId}-site</id>
+ <url>${apex.adsite.prefix}/modules/plugins/plugins-event/${project.parent.artifactId}/${project.artifactId}/</url>
+ </site>
+ </distributionManagement>
+ </profile>
+ </profiles>
</project>
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/site-docs/adoc/fragments/ct-restserver-io.adoc b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/site-docs/adoc/fragments/ct-restserver-io.adoc
new file mode 100644
index 000000000..c6c9a0865
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/site-docs/adoc/fragments/ct-restserver-io.adoc
@@ -0,0 +1,134 @@
+//
+// ============LICENSE_START=======================================================
+// Copyright (C) 2016-2018 Ericsson. All rights reserved.
+// ================================================================================
+// This file is licensed under the CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE
+// Full license text at https://creativecommons.org/licenses/by/4.0/legalcode
+//
+// SPDX-License-Identifier: CC-BY-4.0
+// ============LICENSE_END=========================================================
+//
+// @author Sven van der Meer (sven.van.der.meer@ericsson.com)
+//
+
+== REST Server IO
+
+APEX supports a REST server for input and output.
+
+The REST server plugin always uses a synchronous mode.
+A client does a HTTP GET on the APEX REST server with the input event and receives the generated output event in the server reply.
+This means that for the REST server there has to always to be an input with an associated output.
+Input or output only are not permitted.
+
+The plugin will start a Grizzly server as REST server for a normal APEX engine.
+If the APEX engine is executed as a servlet, for instance inside Tomcat, then Tomcat will be used as REST server (this case requires configuration on Tomcat as well).
+
+Some configuration restrictions apply for all scenarios:
+
+- Minimum port: 1024
+- Maximum port: 65535
+- The media type is `application/json`, so this plugin does only work with the JSON Event protocol.
+
+The URL the client calls is created using
+
+- the configured host and port, e.g. `http://localhost:12345`
+- the standard path, e.g. `/apex/`
+- the name of the input/output, e.g. `FirstConsumer/`
+- the input or output name, e.g. `EventIn`.
+
+The examples above lead to the URL `http://localhost:12345/apex/FirstConsumer/EventIn`.
+
+A client can also get status information of the REST server using `/Status`, e.g. `http://localhost:12345/apex/FirstConsumer/Status`.
+
+
+=== REST Server Stand-alone
+
+We need to configure a REST server input and a REST server output.
+Input and output are associated with each other via there name.
+
+Timeouts for REST calls need to be set carefully.
+If they are too short, the call might timeout before a policy finished creating an event.
+
+The following example configures the input named as `MyConsumer` and associates an output named `MyProducer` with it.
+
+[source%nowrap,json]
+----
+"eventInputParameters": {
+ "MyConsumer": {
+ "carrierTechnologyParameters" : {
+ "carrierTechnology" : "RESTSERVER", <1>
+ "parameterClassName" :
+ "org.onap.policy.apex.plugins.event.carrier.restserver.RESTServerCarrierTechnologyParameters",
+ "parameters" : {
+ "standalone" : true, <2>
+ "host" : "localhost", <3>
+ "port" : 12345 <4>
+ }
+ },
+ "eventProtocolParameters":{
+ "eventProtocol" : "JSON" <5>
+ },
+ "synchronousMode" : true, <6>
+ "synchronousPeer" : "MyProducer", <7>
+ "synchronousTimeout" : 500 <8>
+ }
+}
+----
+<1> set REST server as carrier technology
+<2> set the server as stand-alone
+<3> set the server host
+<4> set the server listen port
+<5> use JSON event protocol
+<6> activate synchronous mode
+<7> associate an output `MyProducer`
+<8> set a timeout of 500 milliseconds
+
+
+The following example configures the output named as `MyProducer` and associates the input `MyConsumer` with it.
+Note that for the output there are no more paramters (such as host or port), since they are already configured in the associated input
+
+[source%nowrap,json]
+----
+"eventOutputParameters": {
+ "MyProducer": {
+ "carrierTechnologyParameters":{
+ "carrierTechnology" : "RESTSERVER",
+ "parameterClassName" :
+ "org.onap.policy.apex.plugins.event.carrier.restserver.RESTServerCarrierTechnologyParameters"
+ },
+ "eventProtocolParameters":{
+ "eventProtocol" : "JSON"
+ },
+ "synchronousMode" : true,
+ "synchronousPeer" : "MyConsumer",
+ "synchronousTimeout" : 500
+ }
+}
+----
+
+
+=== REST Server Stand-alone, multi input
+
+Any number of input/output pairs for REST servers can be configured.
+For instance, we can configure an input `FirstConsumer` with output `FirstProducer` and an input `SecondConsumer` with output `SecondProducer`.
+Important is that there is always one pair of input/output.
+
+
+=== REST Server Stand-alone in Servlet
+
+If APEX is executed as a servlet, e.g. inside Tomcat, the configuration becomes easier since the plugin can now use Tomcat as the REST server.
+In this scenario, there are not parameters (port, host, etc.) and the key `standalone` must not be used (or set to false).
+
+For the Tomcat configuration, we need to add the REST server plugin, e.g.
+
+[source%nowrap,xml]
+----
+<servlet>
+ ...
+ <init-param>
+ ...
+ <param-value>org.onap.policy.apex.plugins.event.carrier.restserver</param-value>
+ </init-param>
+ ...
+</servlet>
+----
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/site/asciidoc/engine-config.adoc b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/site/asciidoc/engine-config.adoc
new file mode 100644
index 000000000..043ed04d1
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/site/asciidoc/engine-config.adoc
@@ -0,0 +1,14 @@
+//
+// ============LICENSE_START=======================================================
+// Copyright (C) 2016-2018 Ericsson. All rights reserved.
+// ================================================================================
+// This file is licensed under the CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE
+// Full license text at https://creativecommons.org/licenses/by/4.0/legalcode
+//
+// SPDX-License-Identifier: CC-BY-4.0
+// ============LICENSE_END=========================================================
+//
+// @author Sven van der Meer (sven.van.der.meer@ericsson.com)
+//
+
+include::{adsite-plugins-event-carrier-restserver-dir}/site-docs/adoc/fragments/ct-restserver-io.adoc[]
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/site/css/site.css b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/site/css/site.css
new file mode 100644
index 000000000..ef8bd4d15
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/site/css/site.css
@@ -0,0 +1,100 @@
+/*
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2016-2018 Ericsson. All rights reserved.
+ * ================================================================================
+ * Licensed 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.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+@import url(http://cdnjs.cloudflare.com/ajax/libs/font-awesome/3.2.0/css/font-awesome.css);
+
+
+/*************** Table definitions *******************/
+
+tableblock > .title, .tableblock > caption { line-height: 1.4; color: #7a2518; font-weight: 300; margin-top: 0.2em; margin-bottom: 0.5em; }
+
+.tableblock > caption { text-align: left; font-weight: bold; white-space: nowrap; overflow: visible; max-width: 0; }
+
+table.tableblock { background: white; margin-bottom: 1.25em; border: solid 1px #dddddd; }
+table.tableblock thead, table.tableblock tfoot { background: whitesmoke; font-weight: bold; }
+table.tableblock thead tr th, table.tableblock thead tr td, table tfoot tr th, table tfoot tr td { padding: 0.5em 0.625em 0.625em; font-size: inherit; color: #222222; text-align: left; }
+table.tableblock tr th, table.tableblock tr td { padding: 0.5625em 0.625em; font-size: inherit; color: #222222; }
+table.tableblock tr.even, table.tableblock tr.alt, table.tableblock tr:nth-of-type(even) { background: #f9f9f9; }
+table.tableblock thead tr th, table.tableblock tfoot tr th, table.tableblock tbody tr td, table.tableblock tr td, table.tableblock tfoot tr td { display: table-cell; line-height: 1.6; }
+
+table.tableblock #preamble > .sectionbody > .paragraph:first-of-type p { font-size: inherit; }
+
+table.tableblock.grid-all { border-collapse: separate; border-spacing: 1px; -webkit-border-radius: 4px; border-radius: 4px; border-top: 1px solid #dddddd; border-bottom: 1px solid #dddddd; }
+
+table.tableblock.frame-topbot, table.tableblock.frame-none { border-left: 0; border-right: 0; }
+
+table.tableblock.frame-sides, table.tableblock.frame-none { border-top: 0; border-bottom: 0; }
+
+table.tableblock td .paragraph:last-child p, table.tableblock td > p:last-child { margin-bottom: 0; }
+
+th.tableblock.halign-left, td.tableblock.halign-left { text-align: left; }
+
+th.tableblock.halign-right, td.tableblock.halign-right { text-align: right; }
+
+th.tableblock.halign-center, td.tableblock.halign-center { text-align: center; }
+
+th.tableblock.valign-top, td.tableblock.valign-top { vertical-align: top; }
+
+th.tableblock.valign-bottom, td.tableblock.valign-bottom { vertical-align: bottom; }
+
+th.tableblock.valign-middle, td.tableblock.valign-middle { vertical-align: middle; }
+
+p.tableblock.header { color: #222222; font-weight: bold; }
+
+
+
+/*************** KBD Macro definitions *******************/
+
+kbd.keyseq { color: #555555; }
+
+kbd:not(.keyseq) { display: inline-block; color: #222222; font-size: 0.75em; line-height: 1.4; background-color: #F7F7F7; border: 1px solid #ccc; -webkit-border-radius: 3px; border-radius: 3px; -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2), 0 0 0 2px white inset; box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2), 0 0 0 2px white inset; margin: -0.15em 0.15em 0 0.15em; padding: 0.2em 0.6em 0.2em 0.5em; vertical-align: middle; white-space: nowrap; }
+
+kbd kbd:first-child { margin-left: 0; }
+
+kbd kbd:last-child { margin-right: 0; }
+
+
+/*************** Admontion Blocks definitions *******************/
+.admonitionblock td.content > .title, .exampleblock > .title, .imageblock > .title, .videoblock > .title, .listingblock > .title, .literalblock > .title, .openblock > .title, .paragraph > .title, .quoteblock > .title, .sidebarblock > .title, .tableblock > .title, .verseblock > .title, .dlist > .title, .olist > .title, .ulist > .title, .qlist > .title, .hdlist > .title { text-align: left; font-weight: bold; }
+
+.admonitionblock > table { border: 0; background: none; width: 100%; margin-top: 1em; margin-bottom: 1em;}
+.admonitionblock > table td.icon { text-align: center; width: 80px; }
+.admonitionblock > table td.icon img { max-width: none; }
+.admonitionblock > table td.icon .title { font-weight: bold; text-transform: uppercase; }
+.admonitionblock > table td.content { padding-left: 1.125em; padding-right: 1.25em; border-left: 1px solid #dddddd; color: #6f6f6f; }
+.admonitionblock > table td.content > :last-child > :last-child { margin-bottom: 0; }
+
+.admonitionblock td.icon [class^="fa icon-"]:before {font-size:2.5em;text-shadow:1px 1px 2px rgba(0,0,0,.5);cursor:default}
+.admonitionblock td.icon .icon-note:before { content: "\f05a"; color: #005498; color: #003f72; }
+.admonitionblock td.icon .icon-tip:before { content: "\f0eb"; text-shadow: 1px 1px 2px rgba(155, 155, 0, 0.8); color: #111; }
+.admonitionblock td.icon .icon-warning:before { content: "\f071"; color: #bf6900; }
+.admonitionblock td.icon .icon-caution:before { content: "\f06d"; color: #bf3400; }
+.admonitionblock td.icon .icon-important:before { content: "\f06a"; color: #bf0000; }
+
+
+
+/*************** Misc definitions *******************/
+
+*:not(pre) > code { font-size: 0.9375em; padding: 1px 3px 0; white-space: nowrap; background-color: #f2f2f2; border: 1px solid #cccccc; -webkit-border-radius: 4px; border-radius: 4px; text-shadow: none; }
+
+pre, pre > code { line-height: 1.4; color: inherit; font-family: Consolas, "Liberation Mono", Courier, monospace; font-weight: normal; }
+
+code { font-family: Consolas, "Liberation Mono", Courier, monospace; font-weight: normal; color: #6d180b; }
+
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/site/images/logos.png b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/site/images/logos.png
new file mode 100644
index 000000000..915d6e59d
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/site/images/logos.png
Binary files differ
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/site/site.xml b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/site/site.xml
new file mode 100644
index 000000000..84c094eec
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/site/site.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ============LICENSE_START=======================================================
+ Copyright (C) 2016-2018 Ericsson. All rights reserved.
+ ================================================================================
+ This file is licensed under the CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE
+ Full license text at https://creativecommons.org/licenses/by/4.0/legalcode
+
+ SPDX-License-Identifier: CC-BY-4.0
+ ============LICENSE_END=========================================================
+
+ @author Sven van der Meer (sven.van.der.meer@ericsson.com)
+
+-->
+
+<project name="APEX Plugins Event Carrier REST-Server">
+ <body>
+ <menu name="APEX Plugins Event Carrier REST-Server">
+ <item href="engine-config.html" name="Engine Configuration" />
+ <item href="javadocs/index.html" name="API Doc" />
+ </menu>
+ <menu ref="reports" inherit="top" />
+ <menu ref="modules" />
+
+ <breadcrumbs>
+ <item name="REST-Server" href="index.html" />
+ </breadcrumbs>
+ </body>
+</project> \ No newline at end of file
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/pom.xml b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/pom.xml
index f6068aa28..e3816d27f 100644
--- a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/pom.xml
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/pom.xml
@@ -33,4 +33,24 @@
<properties>
<apex-plugins-event-carrier-websocket-dir>${project.basedir}/src</apex-plugins-event-carrier-websocket-dir>
</properties>
+
+ <profiles>
+ <profile>
+ <id>apexSite</id>
+ <activation>
+ <property>
+ <name>apexSite</name>
+ </property>
+ </activation>
+ <properties>
+ <adsite-plugins-event-carrier-websocket-dir>${project.basedir}/src</adsite-plugins-event-carrier-websocket-dir>
+ </properties>
+ <distributionManagement>
+ <site>
+ <id>${project.artifactId}-site</id>
+ <url>${apex.adsite.prefix}/modules/plugins/plugins-event/${project.parent.artifactId}/${project.artifactId}/</url>
+ </site>
+ </distributionManagement>
+ </profile>
+ </profiles>
</project> \ No newline at end of file
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/src/site-docs/adoc/fragments/ct-websocket-io.adoc b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/src/site-docs/adoc/fragments/ct-websocket-io.adoc
new file mode 100644
index 000000000..8a19cdd32
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/src/site-docs/adoc/fragments/ct-websocket-io.adoc
@@ -0,0 +1,75 @@
+//
+// ============LICENSE_START=======================================================
+// Copyright (C) 2016-2018 Ericsson. All rights reserved.
+// ================================================================================
+// This file is licensed under the CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE
+// Full license text at https://creativecommons.org/licenses/by/4.0/legalcode
+//
+// SPDX-License-Identifier: CC-BY-4.0
+// ============LICENSE_END=========================================================
+//
+// @author Sven van der Meer (sven.van.der.meer@ericsson.com)
+//
+
+== Websocket (WS) IO
+
+APEX supports the Websockets as input as well as output.
+WS IO is supported by the APEX Websocket plugin.
+This carrier technology does only support uni-directional communication.
+APEX will not send events to a Websocket input and any event sent to a Websocket output will result in an error log.
+
+The input can be configured as client (APEX connects to an existing Websocket server) or server (APEX starts a Websocket server).
+The same applies to the output.
+Input and output can both use a client or a server configuration, or separate configurations (input as client and output as server, input as server and output as client).
+Each configuration should use its own dedicated port to avoid any communication loops.
+The configuration of a Websocket client is the same for input and output.
+The configuration of a Websocket server is the same for input and output.
+
+
+=== Websocket Client
+
+APEX will connect to a given Websocket server.
+As input, it will receive events from the server but not send any events.
+As output, it will send events to the server and any event received from the server will result in an error log.
+
+[source%nowrap,json]
+----
+"carrierTechnologyParameters" : {
+ "carrierTechnology" : "WEBSOCKET", <1>
+ "parameterClassName" :
+ "org.onap.policy.apex.plugins.event.carrier.websocket.WEBSOCKETCarrierTechnologyParameters",
+ "parameters" : {
+ "host" : "localhost", <2>
+ "port" : 42451 <3>
+ }
+}
+----
+
+<1> set Websocket as carrier technology
+<2> the host name on which a Websocket server is running
+<3> the port of that Websocket server
+
+
+
+=== Websocket Server
+
+APEX will start a Websocket server, which will accept any Websocket clients to connect.
+As input, it will receive events from the server but not send any events.
+As output, it will send events to the server and any event received from the server will result in an error log.
+
+[source%nowrap,json]
+----
+"carrierTechnologyParameters" : {
+ "carrierTechnology" : "WEBSOCKET", <1>
+ "parameterClassName" :
+ "org.onap.policy.apex.plugins.event.carrier.websocket.WEBSOCKETCarrierTechnologyParameters",
+ "parameters" : {
+ "wsClient" : false, <2>
+ "port" : 42450 <3>
+ }
+}
+----
+
+<1> set Websocket as carrier technology
+<2> disable client, so that APEX will start a Websocket server
+<3> the port for the Websocket server APEX will start
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/src/site-docs/adoc/fragments/engine-config-bcp.adoc b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/src/site-docs/adoc/fragments/engine-config-bcp.adoc
new file mode 100644
index 000000000..227cc45bb
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/src/site-docs/adoc/fragments/engine-config-bcp.adoc
@@ -0,0 +1,29 @@
+//
+// ============LICENSE_START=======================================================
+// Copyright (C) 2016-2018 Ericsson. All rights reserved.
+// ================================================================================
+// This file is licensed under the CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE
+// Full license text at https://creativecommons.org/licenses/by/4.0/legalcode
+//
+// SPDX-License-Identifier: CC-BY-4.0
+// ============LICENSE_END=========================================================
+//
+// @author Sven van der Meer (sven.van.der.meer@ericsson.com)
+//
+
+== BCP: Websocket Configuration
+
+The probably best is to configure APEX for Websocket servers for input (ingress, consume) and output (egress, produce) interfaces.
+This means that APEX will start Websocket servers on named ports and wait for clients to connect.
+Advantage: once APEX is running all connectivity infrastructure is running as well.
+Consequence: if APEX is not running, everyone else is in the dark, too.
+
+The best protocol to be used is JSON string.
+Each event on any interface is then a string with a JSON encoding.
+JSON string is a little bit slower than byte code, but we doubt that this will be noticeable.
+A further advantage of JSON strings over Websockets with APEX starting the servers: it is very easy to connect web browsers to such a system.
+Simple connect the web browser to the APEX sockets and send/read JSON strings.
+
+Once APEX is started you simply connect Websocket clients to it, and send/receive event.
+When APEX is terminated, the Websocket servers go down, and the clients will be disconnected.
+APEX does not (yet) support auto-client reconnect nor WAMP, so clients might need to be restarted or reconnected manually after an APEX boot.
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/src/site-docs/adoc/fragments/ws-foss.adoc b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/src/site-docs/adoc/fragments/ws-foss.adoc
new file mode 100644
index 000000000..43c6f247e
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/src/site-docs/adoc/fragments/ws-foss.adoc
@@ -0,0 +1,27 @@
+//
+// ============LICENSE_START=======================================================
+// Copyright (C) 2016-2018 Ericsson. All rights reserved.
+// ================================================================================
+// This file is licensed under the CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE
+// Full license text at https://creativecommons.org/licenses/by/4.0/legalcode
+//
+// SPDX-License-Identifier: CC-BY-4.0
+// ============LICENSE_END=========================================================
+//
+// @author Sven van der Meer (sven.van.der.meer@ericsson.com)
+//
+
+== Websocket Example Code for Websocket clients (FOSS)
+
+There are a lot of implementations and examples available on Github for Websocket clients.
+If one is using Java EE 7, then one can also use the native Websocket implementation.
+Good examples for clients using simply Java SE are here:
+
+- link:https://github.com/TooTallNate/Java-WebSocket[Websocket implementation]
+- link:https://github.com/TooTallNate/Java-WebSocket/blob/master/src/main/example/ChatClient.java[Websocket sending client example, using AWT]
+- link:https://github.com/TooTallNate/Java-WebSocket/blob/master/src/main/example/ExampleClient.java[Websocket receiving client example (simple echo client)]
+
+For Java EE, the native Websocket API is explained here:
+
+- link:http://www.oracle.com/technetwork/articles/java/jsr356-1937161.html[Oracle docs]
+- link: http://www.programmingforliving.com/2013/08/jsr-356-java-api-for-websocket-client-api.html[An example]
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/src/site-docs/adoc/fragments/ws-intro.adoc b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/src/site-docs/adoc/fragments/ws-intro.adoc
new file mode 100644
index 000000000..cbecbbe7f
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/src/site-docs/adoc/fragments/ws-intro.adoc
@@ -0,0 +1,23 @@
+//
+// ============LICENSE_START=======================================================
+// Copyright (C) 2016-2018 Ericsson. All rights reserved.
+// ================================================================================
+// This file is licensed under the CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE
+// Full license text at https://creativecommons.org/licenses/by/4.0/legalcode
+//
+// SPDX-License-Identifier: CC-BY-4.0
+// ============LICENSE_END=========================================================
+//
+// @author Sven van der Meer (sven.van.der.meer@ericsson.com)
+//
+
+== Websockets
+
+Websocket is a protocol to run sockets of HTTP.
+Since it in essence a socket, the connection is realized between a server (waiting for connections) and a client (connecting to a server).
+Server/client separation is only important for connection establishment, once connected, everyone can send/receive on the same socket (as any standard socket would allow).
+
+Standard Websocket implementations are simple, no publish/subscribe and no special event handling.
+Most servers simply send all incoming messages to all connections.
+There is a PubSub definition on top of Websocket called link:http://wamp-proto.org/[WAMP].
+APEX does not support WAMP at the moment.
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/src/site-docs/adoc/fragments/ws-java.adoc b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/src/site-docs/adoc/fragments/ws-java.adoc
new file mode 100644
index 000000000..e6c2c0163
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/src/site-docs/adoc/fragments/ws-java.adoc
@@ -0,0 +1,20 @@
+//
+// ============LICENSE_START=======================================================
+// Copyright (C) 2016-2018 Ericsson. All rights reserved.
+// ================================================================================
+// This file is licensed under the CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE
+// Full license text at https://creativecommons.org/licenses/by/4.0/legalcode
+//
+// SPDX-License-Identifier: CC-BY-4.0
+// ============LICENSE_END=========================================================
+//
+// @author Sven van der Meer (sven.van.der.meer@ericsson.com)
+//
+
+== Websocket in Java
+
+In Java, link:http://www.oracle.com/technetwork/articles/java/jsr356-1937161.html[JSR 356] defines the standard Websocket API.
+This JSR is part of Jave EE 7 standard.
+For Java SE, several implementations exist in open source.
+Since Websockets are a stable standard and simple, most implementations are stable and ready to use.
+A lot of products support Websockets, like Spring, JBoss, Netty, … there are also Kafka extensions for Websockets.
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/src/site/asciidoc/engine-config-bcp.adoc b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/src/site/asciidoc/engine-config-bcp.adoc
new file mode 100644
index 000000000..bfa111b35
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/src/site/asciidoc/engine-config-bcp.adoc
@@ -0,0 +1,14 @@
+//
+// ============LICENSE_START=======================================================
+// Copyright (C) 2016-2018 Ericsson. All rights reserved.
+// ================================================================================
+// This file is licensed under the CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE
+// Full license text at https://creativecommons.org/licenses/by/4.0/legalcode
+//
+// SPDX-License-Identifier: CC-BY-4.0
+// ============LICENSE_END=========================================================
+//
+// @author Sven van der Meer (sven.van.der.meer@ericsson.com)
+//
+
+include::{adsite-plugins-event-carrier-websocket-dir}/site-docs/adoc/fragments/engine-config-bcp.adoc[]
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/src/site/asciidoc/engine-config.adoc b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/src/site/asciidoc/engine-config.adoc
new file mode 100644
index 000000000..e81596f2c
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/src/site/asciidoc/engine-config.adoc
@@ -0,0 +1,14 @@
+//
+// ============LICENSE_START=======================================================
+// Copyright (C) 2016-2018 Ericsson. All rights reserved.
+// ================================================================================
+// This file is licensed under the CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE
+// Full license text at https://creativecommons.org/licenses/by/4.0/legalcode
+//
+// SPDX-License-Identifier: CC-BY-4.0
+// ============LICENSE_END=========================================================
+//
+// @author Sven van der Meer (sven.van.der.meer@ericsson.com)
+//
+
+include::{adsite-plugins-event-carrier-websocket-dir}/site-docs/adoc/fragments/ct-websocket-io.adoc[]
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/src/site/asciidoc/websockets.adoc b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/src/site/asciidoc/websockets.adoc
new file mode 100644
index 000000000..823e26a21
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/src/site/asciidoc/websockets.adoc
@@ -0,0 +1,18 @@
+//
+// ============LICENSE_START=======================================================
+// Copyright (C) 2016-2018 Ericsson. All rights reserved.
+// ================================================================================
+// This file is licensed under the CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE
+// Full license text at https://creativecommons.org/licenses/by/4.0/legalcode
+//
+// SPDX-License-Identifier: CC-BY-4.0
+// ============LICENSE_END=========================================================
+//
+// @author Sven van der Meer (sven.van.der.meer@ericsson.com)
+//
+
+include::{adsite-plugins-event-carrier-websocket-dir}/site-docs/adoc/fragments/ws-intro.adoc[]
+
+include::{adsite-plugins-event-carrier-websocket-dir}/site-docs/adoc/fragments/ws-java.adoc[]
+
+include::{adsite-plugins-event-carrier-websocket-dir}/site-docs/adoc/fragments/ws-foss.adoc[]
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/src/site/css/site.css b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/src/site/css/site.css
new file mode 100644
index 000000000..ef8bd4d15
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/src/site/css/site.css
@@ -0,0 +1,100 @@
+/*
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2016-2018 Ericsson. All rights reserved.
+ * ================================================================================
+ * Licensed 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.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+@import url(http://cdnjs.cloudflare.com/ajax/libs/font-awesome/3.2.0/css/font-awesome.css);
+
+
+/*************** Table definitions *******************/
+
+tableblock > .title, .tableblock > caption { line-height: 1.4; color: #7a2518; font-weight: 300; margin-top: 0.2em; margin-bottom: 0.5em; }
+
+.tableblock > caption { text-align: left; font-weight: bold; white-space: nowrap; overflow: visible; max-width: 0; }
+
+table.tableblock { background: white; margin-bottom: 1.25em; border: solid 1px #dddddd; }
+table.tableblock thead, table.tableblock tfoot { background: whitesmoke; font-weight: bold; }
+table.tableblock thead tr th, table.tableblock thead tr td, table tfoot tr th, table tfoot tr td { padding: 0.5em 0.625em 0.625em; font-size: inherit; color: #222222; text-align: left; }
+table.tableblock tr th, table.tableblock tr td { padding: 0.5625em 0.625em; font-size: inherit; color: #222222; }
+table.tableblock tr.even, table.tableblock tr.alt, table.tableblock tr:nth-of-type(even) { background: #f9f9f9; }
+table.tableblock thead tr th, table.tableblock tfoot tr th, table.tableblock tbody tr td, table.tableblock tr td, table.tableblock tfoot tr td { display: table-cell; line-height: 1.6; }
+
+table.tableblock #preamble > .sectionbody > .paragraph:first-of-type p { font-size: inherit; }
+
+table.tableblock.grid-all { border-collapse: separate; border-spacing: 1px; -webkit-border-radius: 4px; border-radius: 4px; border-top: 1px solid #dddddd; border-bottom: 1px solid #dddddd; }
+
+table.tableblock.frame-topbot, table.tableblock.frame-none { border-left: 0; border-right: 0; }
+
+table.tableblock.frame-sides, table.tableblock.frame-none { border-top: 0; border-bottom: 0; }
+
+table.tableblock td .paragraph:last-child p, table.tableblock td > p:last-child { margin-bottom: 0; }
+
+th.tableblock.halign-left, td.tableblock.halign-left { text-align: left; }
+
+th.tableblock.halign-right, td.tableblock.halign-right { text-align: right; }
+
+th.tableblock.halign-center, td.tableblock.halign-center { text-align: center; }
+
+th.tableblock.valign-top, td.tableblock.valign-top { vertical-align: top; }
+
+th.tableblock.valign-bottom, td.tableblock.valign-bottom { vertical-align: bottom; }
+
+th.tableblock.valign-middle, td.tableblock.valign-middle { vertical-align: middle; }
+
+p.tableblock.header { color: #222222; font-weight: bold; }
+
+
+
+/*************** KBD Macro definitions *******************/
+
+kbd.keyseq { color: #555555; }
+
+kbd:not(.keyseq) { display: inline-block; color: #222222; font-size: 0.75em; line-height: 1.4; background-color: #F7F7F7; border: 1px solid #ccc; -webkit-border-radius: 3px; border-radius: 3px; -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2), 0 0 0 2px white inset; box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2), 0 0 0 2px white inset; margin: -0.15em 0.15em 0 0.15em; padding: 0.2em 0.6em 0.2em 0.5em; vertical-align: middle; white-space: nowrap; }
+
+kbd kbd:first-child { margin-left: 0; }
+
+kbd kbd:last-child { margin-right: 0; }
+
+
+/*************** Admontion Blocks definitions *******************/
+.admonitionblock td.content > .title, .exampleblock > .title, .imageblock > .title, .videoblock > .title, .listingblock > .title, .literalblock > .title, .openblock > .title, .paragraph > .title, .quoteblock > .title, .sidebarblock > .title, .tableblock > .title, .verseblock > .title, .dlist > .title, .olist > .title, .ulist > .title, .qlist > .title, .hdlist > .title { text-align: left; font-weight: bold; }
+
+.admonitionblock > table { border: 0; background: none; width: 100%; margin-top: 1em; margin-bottom: 1em;}
+.admonitionblock > table td.icon { text-align: center; width: 80px; }
+.admonitionblock > table td.icon img { max-width: none; }
+.admonitionblock > table td.icon .title { font-weight: bold; text-transform: uppercase; }
+.admonitionblock > table td.content { padding-left: 1.125em; padding-right: 1.25em; border-left: 1px solid #dddddd; color: #6f6f6f; }
+.admonitionblock > table td.content > :last-child > :last-child { margin-bottom: 0; }
+
+.admonitionblock td.icon [class^="fa icon-"]:before {font-size:2.5em;text-shadow:1px 1px 2px rgba(0,0,0,.5);cursor:default}
+.admonitionblock td.icon .icon-note:before { content: "\f05a"; color: #005498; color: #003f72; }
+.admonitionblock td.icon .icon-tip:before { content: "\f0eb"; text-shadow: 1px 1px 2px rgba(155, 155, 0, 0.8); color: #111; }
+.admonitionblock td.icon .icon-warning:before { content: "\f071"; color: #bf6900; }
+.admonitionblock td.icon .icon-caution:before { content: "\f06d"; color: #bf3400; }
+.admonitionblock td.icon .icon-important:before { content: "\f06a"; color: #bf0000; }
+
+
+
+/*************** Misc definitions *******************/
+
+*:not(pre) > code { font-size: 0.9375em; padding: 1px 3px 0; white-space: nowrap; background-color: #f2f2f2; border: 1px solid #cccccc; -webkit-border-radius: 4px; border-radius: 4px; text-shadow: none; }
+
+pre, pre > code { line-height: 1.4; color: inherit; font-family: Consolas, "Liberation Mono", Courier, monospace; font-weight: normal; }
+
+code { font-family: Consolas, "Liberation Mono", Courier, monospace; font-weight: normal; color: #6d180b; }
+
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/src/site/images/logos.png b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/src/site/images/logos.png
new file mode 100644
index 000000000..915d6e59d
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/src/site/images/logos.png
Binary files differ
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/src/site/site.xml b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/src/site/site.xml
new file mode 100644
index 000000000..f9410f5ef
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/src/site/site.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ============LICENSE_START=======================================================
+ Copyright (C) 2016-2018 Ericsson. All rights reserved.
+ ================================================================================
+ This file is licensed under the CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE
+ Full license text at https://creativecommons.org/licenses/by/4.0/legalcode
+
+ SPDX-License-Identifier: CC-BY-4.0
+ ============LICENSE_END=========================================================
+
+ @author Sven van der Meer (sven.van.der.meer@ericsson.com)
+
+ =========LICENSE_END=========================================================
+-->
+
+<project name="APEX Plugins Event Carrier Websocket">
+ <body>
+ <menu name="APEX Plugins Event Carrier Websocket">
+ <item href="websockets.html" name="Introduction to Websockets" />
+ <item href="engine-config.html" name="Engine Configuration" />
+ <item href="engine-config-bcp.html" name="BCP Configuration" />
+ <item href="javadocs/index.html" name="API Doc" />
+ </menu>
+ <menu ref="reports" inherit="top" />
+ <menu ref="modules" />
+
+ <breadcrumbs>
+ <item name="Websocket" href="index.html" />
+ </breadcrumbs>
+ </body>
+</project> \ No newline at end of file
diff --git a/plugins/plugins-event/plugins-event-carrier/pom.xml b/plugins/plugins-event/plugins-event-carrier/pom.xml
index c8ce3a720..1e6a41e8a 100644
--- a/plugins/plugins-event/plugins-event-carrier/pom.xml
+++ b/plugins/plugins-event/plugins-event-carrier/pom.xml
@@ -45,4 +45,24 @@
<module>plugins-event-carrier-restserver</module>
<module>plugins-event-carrier-restrequestor</module>
</modules>
+
+ <profiles>
+ <profile>
+ <id>apexSite</id>
+ <activation>
+ <property>
+ <name>apexSite</name>
+ </property>
+ </activation>
+ <properties>
+ <adsite-plugins-event-carrier-dir>${project.basedir}/src</adsite-plugins-event-carrier-dir>
+ </properties>
+ <distributionManagement>
+ <site>
+ <id>${project.artifactId}-site</id>
+ <url>${apex.adsite.prefix}/modules/plugins/${project.parent.artifactId}/${project.artifactId}/</url>
+ </site>
+ </distributionManagement>
+ </profile>
+ </profiles>
</project> \ No newline at end of file
diff --git a/plugins/plugins-event/plugins-event-carrier/src/site-docs/adoc/fragments/carriertech.adoc b/plugins/plugins-event/plugins-event-carrier/src/site-docs/adoc/fragments/carriertech.adoc
new file mode 100644
index 000000000..8ec83ab9a
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-carrier/src/site-docs/adoc/fragments/carriertech.adoc
@@ -0,0 +1,41 @@
+//
+// ============LICENSE_START=======================================================
+// Copyright (C) 2016-2018 Ericsson. All rights reserved.
+// ================================================================================
+// This file is licensed under the CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE
+// Full license text at https://creativecommons.org/licenses/by/4.0/legalcode
+//
+// SPDX-License-Identifier: CC-BY-4.0
+// ============LICENSE_END=========================================================
+//
+// @author Sven van der Meer (sven.van.der.meer@ericsson.com)
+//
+
+== Carrier Technologies
+
+Carrier technologies define how APEX receives (input) and sends (output) events.
+They can be used in any combination, using asynchronous or synchronous mode.
+There can also be any number of carrier technologies for the input (consume) and the output (produce) interface.
+
+Supported _input_ technologies are:
+
+- Standard input, read events from the standard input (console), not suitable for APEX background servers
+- File input, read events from a file
+- Kafka, read events from a Kafka system
+- Websockets, read events from a Websocket
+- JMS,
+- REST (synchronous and asynchronous), additionally as client or server
+- Event Requestor, allows reading of events that have been looped back into APEX
+
+
+Supported _output_ technologies are:
+
+- Standard output, write events to the standard output (console), not suitable for APEX background servers
+- File output, write events to a file
+- Kafka, write events to a Kafka system
+- Websockets, write events to a Websocket
+- JMS
+- REST (synchronous and asynchronous), additionally as client or server
+- Event Requestor, allows events to be looped back into APEX
+
+New carrier technologies can be added as plugins to APEX or developed outside APEX and added to an APEX deployment.
diff --git a/plugins/plugins-event/plugins-event-carrier/src/site-docs/adoc/fragments/ct-eventrequestor-io.adoc b/plugins/plugins-event/plugins-event-carrier/src/site-docs/adoc/fragments/ct-eventrequestor-io.adoc
new file mode 100644
index 000000000..d8756bfcb
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-carrier/src/site-docs/adoc/fragments/ct-eventrequestor-io.adoc
@@ -0,0 +1,92 @@
+//
+// ============LICENSE_START=======================================================
+// Copyright (C) 2016-2018 Ericsson. All rights reserved.
+// ================================================================================
+// This file is licensed under the CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE
+// Full license text at https://creativecommons.org/licenses/by/4.0/legalcode
+//
+// SPDX-License-Identifier: CC-BY-4.0
+// ============LICENSE_END=========================================================
+//
+// @author Sven van der Meer (sven.van.der.meer@ericsson.com)
+//
+
+== Event Requestor IO
+
+Event Requestor IO does not require a specific plugin, it is supported be default.
+It should only be used with the APEX event protocol.
+
+=== Event Requestor Input
+
+APEX will take events from APEX.
+
+[source%nowrap,json]
+----
+"carrierTechnologyParameters" : {
+ "carrierTechnology": "EVENT_REQUESTOR" // <1>
+}
+----
+<1> set event requestor input
+
+
+=== Event Requestor Output
+
+APEX will write events to APEX.
+
+[source%nowrap,json]
+----
+"carrierTechnologyParameters" : {
+ "carrierTechnology": "EVENT_REQUESTOR" // <1>
+}
+----
+
+=== Peering Event Requestors
+
+When using event requestors, they need to be peered.
+This means an event requestor output needs to be peered (associated) with an event requestor input.
+The following example shows the use of an event requestor with the APEX event protocol and the peering of output and input.
+
+[source%nowrap,json]
+----
+"eventInputParameters": {
+ "EventRequestorConsumer": {
+ "carrierTechnologyParameters": {
+ "carrierTechnology": "EVENT_REQUESTOR" // <1>
+ },
+ "eventProtocolParameters": {
+ "eventProtocol": "APEX" // <2>
+ },
+ "eventNameFilter": "InputEvent", // <3>
+ "requestorMode": true, // <4>
+ "requestorPeer": "EventRequestorProducer", // <5>
+ "requestorTimeout": 500 // <6>
+ }
+},
+"eventOutputParameters": {
+ "EventRequestorProducer": {
+ "carrierTechnologyParameters": {
+ "carrierTechnology": "EVENT_REQUESTOR" <7>
+ },
+ "eventProtocolParameters": {
+ "eventProtocol": "APEX" <8>
+ },
+ "eventNameFilter": "EventListEvent", // <9>
+ "requestorMode": true, // <10>
+ "requestorPeer": "EventRequestorConsumer", // <11>
+ "requestorTimeout": 500 // <12>
+ }
+}
+----
+
+<1> event requestor on a consumer
+<2> with APEX event protocol
+<3> optional filter (best to use a filter to prevent unwanted events on the consumer side)
+<4> activate requestor mode
+<5> the peer to the output (must match the output carrier)
+<6> an optional timeout in milliseconds
+<7> event requestor on a producer
+<8> with APEX event protocol
+<9> optional filter (best to use a filter to prevent unwanted events on the consumer side)
+<10> activate requestor mode
+<11> the peer to the output (must match the input carrier)
+<12> an optional timeout in milliseconds
diff --git a/plugins/plugins-event/plugins-event-carrier/src/site-docs/adoc/fragments/ct-file-io.adoc b/plugins/plugins-event/plugins-event-carrier/src/site-docs/adoc/fragments/ct-file-io.adoc
new file mode 100644
index 000000000..bdde9e982
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-carrier/src/site-docs/adoc/fragments/ct-file-io.adoc
@@ -0,0 +1,53 @@
+//
+// ============LICENSE_START=======================================================
+// Copyright (C) 2016-2018 Ericsson. All rights reserved.
+// ================================================================================
+// This file is licensed under the CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE
+// Full license text at https://creativecommons.org/licenses/by/4.0/legalcode
+//
+// SPDX-License-Identifier: CC-BY-4.0
+// ============LICENSE_END=========================================================
+//
+// @author Sven van der Meer (sven.van.der.meer@ericsson.com)
+//
+
+== File IO
+
+File IO does not require a specific plugin, it is supported be default.
+
+=== File Input
+
+APEX will take events from a file.
+The same file should not be used as an output.
+The configuration is as follows:
+
+[source%nowrap,json]
+----
+"carrierTechnologyParameters" : {
+ "carrierTechnology" : "FILE", // <1>
+ "parameters" : {
+ "fileName" : "examples/events/SampleDomain/EventsIn.xmlfile" // <2>
+ }
+}
+----
+<1> set file input
+<2> the name of the file to read events from
+
+
+=== File Output
+
+APEX will write events to a file.
+The same file should not be used as an input.
+The configuration is as follows:
+
+[source%nowrap,json]
+----
+"carrierTechnologyParameters" : {
+ "carrierTechnology" : "FILE", // <1>
+ "parameters" : {
+ "fileName" : "examples/events/SampleDomain/EventsOut.xmlfile" // <2>
+ }
+}
+----
+<1> set file output
+<2> the name of the file to write events to
diff --git a/plugins/plugins-event/plugins-event-carrier/src/site-docs/adoc/fragments/ct-standard-io.adoc b/plugins/plugins-event/plugins-event-carrier/src/site-docs/adoc/fragments/ct-standard-io.adoc
new file mode 100644
index 000000000..43b7bddbb
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-carrier/src/site-docs/adoc/fragments/ct-standard-io.adoc
@@ -0,0 +1,52 @@
+//
+// ============LICENSE_START=======================================================
+// Copyright (C) 2016-2018 Ericsson. All rights reserved.
+// ================================================================================
+// This file is licensed under the CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE
+// Full license text at https://creativecommons.org/licenses/by/4.0/legalcode
+//
+// SPDX-License-Identifier: CC-BY-4.0
+// ============LICENSE_END=========================================================
+//
+// @author Sven van der Meer (sven.van.der.meer@ericsson.com)
+//
+
+== Standard IO
+
+Standard IO does not require a specific plugin, it is supported be default.
+
+=== Standard Input
+
+APEX will take events from its standard input.
+This carrier is good for testing, but certainly not for a use case where APEX runs as a server.
+The configuration is as follows:
+
+----
+"carrierTechnologyParameters" : {
+ "carrierTechnology" : "FILE", // <1>
+ "parameters" : {
+ "standardIO" : true <2>
+ }
+}
+----
+<1> standard input is considered a file
+<2> file descriptor set to standard input
+
+
+=== Standard Output
+
+APEX will send events to its standard output.
+This carrier is good for testing, but certainly not for a use case where APEX runs as a server.
+The configuration is as follows:
+
+[source%nowrap,json]
+----
+"carrierTechnologyParameters" : {
+ "carrierTechnology" : "FILE", // <1>
+ "parameters" : {
+ "standardIO" : true <2>
+ }
+}
+----
+<1> standard output is considered a file
+<2> file descriptor set to standard output
diff --git a/plugins/plugins-event/plugins-event-carrier/src/site/asciidoc/carriertech.adoc b/plugins/plugins-event/plugins-event-carrier/src/site/asciidoc/carriertech.adoc
new file mode 100644
index 000000000..3b86a50ef
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-carrier/src/site/asciidoc/carriertech.adoc
@@ -0,0 +1,20 @@
+//
+// ============LICENSE_START=======================================================
+// Copyright (C) 2016-2018 Ericsson. All rights reserved.
+// ================================================================================
+// This file is licensed under the CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE
+// Full license text at https://creativecommons.org/licenses/by/4.0/legalcode
+//
+// SPDX-License-Identifier: CC-BY-4.0
+// ============LICENSE_END=========================================================
+//
+// @author Sven van der Meer (sven.van.der.meer@ericsson.com)
+//
+
+include::{adsite-plugins-event-carrier-dir}/site-docs/adoc/fragments/carriertech.adoc[]
+
+include::{adsite-plugins-event-carrier-dir}/site-docs/adoc/fragments/ct-standard-io.adoc[]
+
+include::{adsite-plugins-event-carrier-dir}/site-docs/adoc/fragments/ct-file-io.adoc[]
+
+include::{adsite-plugins-event-carrier-dir}/site-docs/adoc/fragments/ct-eventrequestor-io.adoc[]
diff --git a/plugins/plugins-event/plugins-event-carrier/src/site/css/site.css b/plugins/plugins-event/plugins-event-carrier/src/site/css/site.css
new file mode 100644
index 000000000..ef8bd4d15
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-carrier/src/site/css/site.css
@@ -0,0 +1,100 @@
+/*
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2016-2018 Ericsson. All rights reserved.
+ * ================================================================================
+ * Licensed 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.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+@import url(http://cdnjs.cloudflare.com/ajax/libs/font-awesome/3.2.0/css/font-awesome.css);
+
+
+/*************** Table definitions *******************/
+
+tableblock > .title, .tableblock > caption { line-height: 1.4; color: #7a2518; font-weight: 300; margin-top: 0.2em; margin-bottom: 0.5em; }
+
+.tableblock > caption { text-align: left; font-weight: bold; white-space: nowrap; overflow: visible; max-width: 0; }
+
+table.tableblock { background: white; margin-bottom: 1.25em; border: solid 1px #dddddd; }
+table.tableblock thead, table.tableblock tfoot { background: whitesmoke; font-weight: bold; }
+table.tableblock thead tr th, table.tableblock thead tr td, table tfoot tr th, table tfoot tr td { padding: 0.5em 0.625em 0.625em; font-size: inherit; color: #222222; text-align: left; }
+table.tableblock tr th, table.tableblock tr td { padding: 0.5625em 0.625em; font-size: inherit; color: #222222; }
+table.tableblock tr.even, table.tableblock tr.alt, table.tableblock tr:nth-of-type(even) { background: #f9f9f9; }
+table.tableblock thead tr th, table.tableblock tfoot tr th, table.tableblock tbody tr td, table.tableblock tr td, table.tableblock tfoot tr td { display: table-cell; line-height: 1.6; }
+
+table.tableblock #preamble > .sectionbody > .paragraph:first-of-type p { font-size: inherit; }
+
+table.tableblock.grid-all { border-collapse: separate; border-spacing: 1px; -webkit-border-radius: 4px; border-radius: 4px; border-top: 1px solid #dddddd; border-bottom: 1px solid #dddddd; }
+
+table.tableblock.frame-topbot, table.tableblock.frame-none { border-left: 0; border-right: 0; }
+
+table.tableblock.frame-sides, table.tableblock.frame-none { border-top: 0; border-bottom: 0; }
+
+table.tableblock td .paragraph:last-child p, table.tableblock td > p:last-child { margin-bottom: 0; }
+
+th.tableblock.halign-left, td.tableblock.halign-left { text-align: left; }
+
+th.tableblock.halign-right, td.tableblock.halign-right { text-align: right; }
+
+th.tableblock.halign-center, td.tableblock.halign-center { text-align: center; }
+
+th.tableblock.valign-top, td.tableblock.valign-top { vertical-align: top; }
+
+th.tableblock.valign-bottom, td.tableblock.valign-bottom { vertical-align: bottom; }
+
+th.tableblock.valign-middle, td.tableblock.valign-middle { vertical-align: middle; }
+
+p.tableblock.header { color: #222222; font-weight: bold; }
+
+
+
+/*************** KBD Macro definitions *******************/
+
+kbd.keyseq { color: #555555; }
+
+kbd:not(.keyseq) { display: inline-block; color: #222222; font-size: 0.75em; line-height: 1.4; background-color: #F7F7F7; border: 1px solid #ccc; -webkit-border-radius: 3px; border-radius: 3px; -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2), 0 0 0 2px white inset; box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2), 0 0 0 2px white inset; margin: -0.15em 0.15em 0 0.15em; padding: 0.2em 0.6em 0.2em 0.5em; vertical-align: middle; white-space: nowrap; }
+
+kbd kbd:first-child { margin-left: 0; }
+
+kbd kbd:last-child { margin-right: 0; }
+
+
+/*************** Admontion Blocks definitions *******************/
+.admonitionblock td.content > .title, .exampleblock > .title, .imageblock > .title, .videoblock > .title, .listingblock > .title, .literalblock > .title, .openblock > .title, .paragraph > .title, .quoteblock > .title, .sidebarblock > .title, .tableblock > .title, .verseblock > .title, .dlist > .title, .olist > .title, .ulist > .title, .qlist > .title, .hdlist > .title { text-align: left; font-weight: bold; }
+
+.admonitionblock > table { border: 0; background: none; width: 100%; margin-top: 1em; margin-bottom: 1em;}
+.admonitionblock > table td.icon { text-align: center; width: 80px; }
+.admonitionblock > table td.icon img { max-width: none; }
+.admonitionblock > table td.icon .title { font-weight: bold; text-transform: uppercase; }
+.admonitionblock > table td.content { padding-left: 1.125em; padding-right: 1.25em; border-left: 1px solid #dddddd; color: #6f6f6f; }
+.admonitionblock > table td.content > :last-child > :last-child { margin-bottom: 0; }
+
+.admonitionblock td.icon [class^="fa icon-"]:before {font-size:2.5em;text-shadow:1px 1px 2px rgba(0,0,0,.5);cursor:default}
+.admonitionblock td.icon .icon-note:before { content: "\f05a"; color: #005498; color: #003f72; }
+.admonitionblock td.icon .icon-tip:before { content: "\f0eb"; text-shadow: 1px 1px 2px rgba(155, 155, 0, 0.8); color: #111; }
+.admonitionblock td.icon .icon-warning:before { content: "\f071"; color: #bf6900; }
+.admonitionblock td.icon .icon-caution:before { content: "\f06d"; color: #bf3400; }
+.admonitionblock td.icon .icon-important:before { content: "\f06a"; color: #bf0000; }
+
+
+
+/*************** Misc definitions *******************/
+
+*:not(pre) > code { font-size: 0.9375em; padding: 1px 3px 0; white-space: nowrap; background-color: #f2f2f2; border: 1px solid #cccccc; -webkit-border-radius: 4px; border-radius: 4px; text-shadow: none; }
+
+pre, pre > code { line-height: 1.4; color: inherit; font-family: Consolas, "Liberation Mono", Courier, monospace; font-weight: normal; }
+
+code { font-family: Consolas, "Liberation Mono", Courier, monospace; font-weight: normal; color: #6d180b; }
+
diff --git a/plugins/plugins-event/plugins-event-carrier/src/site/images/logos.png b/plugins/plugins-event/plugins-event-carrier/src/site/images/logos.png
new file mode 100644
index 000000000..915d6e59d
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-carrier/src/site/images/logos.png
Binary files differ
diff --git a/plugins/plugins-event/plugins-event-carrier/src/site/site.xml b/plugins/plugins-event/plugins-event-carrier/src/site/site.xml
new file mode 100644
index 000000000..a6c7fc98c
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-carrier/src/site/site.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ============LICENSE_START=======================================================
+ Copyright (C) 2016-2018 Ericsson. All rights reserved.
+ ================================================================================
+ This file is licensed under the CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE
+ Full license text at https://creativecommons.org/licenses/by/4.0/legalcode
+
+ SPDX-License-Identifier: CC-BY-4.0
+ ============LICENSE_END=========================================================
+
+ @author Sven van der Meer (sven.van.der.meer@ericsson.com)
+
+-->
+
+<project name="APEX Plugins Event Carrier">
+ <body>
+ <menu name="APEX Plugins Event Carrier">
+ <item href="carriertech.html" name="Carrier Technologies" />
+ </menu>
+ <menu ref="reports" inherit="top" />
+ <menu ref="modules" />
+
+ <breadcrumbs>
+ <item name="Carrier" href="index.html" />
+ </breadcrumbs>
+ </body>
+</project> \ No newline at end of file