.. container:: content
- .. code::
+ .. code::
:number-lines:
git clone https://gerrit.onap.org/r/policy/apex-pdp
- Cygwin: ``/cygdrive/c/dev/apex-pdp``
- .. important::
+ .. important::
A Build requires ONAP Nexus
- APEX has a dependency to ONAP parent projects. You might need to adjust your Maven M2 settings. The most current
- settings can be found in the ONAP oparent repo: `Settings <https://git.onap.org/oparent/plain/settings.xml>`__.
+ APEX has a dependency to ONAP parent projects. You might need to adjust your Maven M2 settings. The most current
+ settings can be found in the ONAP oparent repo: `Settings <https://git.onap.org/oparent/plain/settings.xml>`__.
- .. important::
- A Build needs Space
- Building APEX requires approximately 2-3 GB of hard disc space, 1 GB for the actual build with full
- distribution and 1-2 GB for the downloaded dependencies
+ .. important::
+ A Build needs Space
+ Building APEX requires approximately 2-3 GB of hard disc space, 1 GB for the actual build with full
+ distribution and 1-2 GB for the downloaded dependencies
- .. important::
+ .. important::
A Build requires Internet (for first build)
- During the build, several (a lot) of Maven dependencies will be downloaded and stored in the configured local Maven
- repository. The first standard build (and any first specific build) requires Internet access to download those
- dependencies.
+ During the build, several (a lot) of Maven dependencies will be downloaded and stored in the configured local Maven
+ repository. The first standard build (and any first specific build) requires Internet access to download those
+ dependencies.
- .. important::
+ .. important::
Building RPM distributions
- RPM images are only build if the ``rpm`` package is installed (Unix). To install ``rpm`` run ``sudo apt-get install rpm``,
- then build APEX.
+ RPM images are only build if the ``rpm`` package is installed (Unix). To install ``rpm`` run ``sudo apt-get install rpm``,
+ then build APEX.
.. container:: paragraph
.. container:: content
- .. code::
+ .. code::
:number-lines:
[INFO] tools .............................................. SUCCESS [ 0.248 s]
| .. container:: content |
| |
| .. code:: |
-| :number-lines: |
+| :number-lines: |
| |
-| # sudo dpkg -i apex-pdp-package-full-2.0.0-SNAPSHOT.deb |
+| # sudo dpkg -i apex-pdp-package-full-2.0.0-SNAPSHOT.deb |
| Selecting previously unselected package apex-uservice. |
| (Reading database ... 288458 files and directories currently installed.) |
| Preparing to unpack apex-pdp-package-full-2.0.0-SNAPSHOT.deb ... |
.. container:: content
- .. code::
+ .. code::
:number-lines:
# cd /opt
.. container:: content
- .. code::
+ .. code::
:number-lines:
>c:
from the created artifacts (``rpm``, ``deb``, ``tar.gz``, or
copying manually).
- .. important::
- Building RPM distributions
- RPM images are only build if the ``rpm`` package is installed (Unix). To install ``rpm`` run
- ``sudo apt-get install rpm``, then build APEX.
+ .. important::
+ Building RPM distributions
+ RPM images are only build if the ``rpm`` package is installed (Unix). To install ``rpm`` run
+ ``sudo apt-get install rpm``, then build APEX.
.. container:: paragraph
- Windows: ``C:\dev\apex``
- +-------------------------------------------------------+--------------------------------------------------------+
+ +-------------------------------------------------------+--------------------------------------------------------+
| Unix, Cygwin | Windows |
+=======================================================+========================================================+
| .. container:: | .. container:: |
.. container:: content
- .. code::
+ .. code::
:number-lines:
[INFO] tools .............................................. SUCCESS [ 0.248 s]
.. container:: content
- .. code::
+ .. code::
:number-lines:
# sudo groupadd apexuser
| | |
| # export APEX_USER=apexuser | >set APEX_HOME=C:\apex\apex-full-2.0.0-SNAPSHOT |
| # cd /opt/app/policy/apex-pdp | |
- | # export APEX_HOME=`pwd` | |
+ | # export APEX_HOME=`pwd` | |
| | |
+------------------------------------------------+ |
| .. container:: | |
| | |
| .. container:: content | |
| | |
- | .. code:: tcsh | |
+ | .. code::tcsh | |
| :number-lines: | |
| | |
| # setenv APEX_USER apexuser | |
| # cd /opt/app/policy/apex-pdp | |
- | # setenv APEX_HOME `pwd` | |
+ | # setenv APEX_HOME `pwd` | |
| | |
+------------------------------------------------+---------------------------------------------------------+
| .. container:: | .. container:: |
| | |
| # env | grep APEX | >set APEX_HOME |
| # APEX_USER=apexuser | APEX_HOME=\apex\apex-full-2.0.0-SNAPSHOT |
- | # APEX_HOME=/opt/app/policy/apex-pdp | |
+ | # APEX_HOME=/opt/app/policy/apex-pdp | |
| | |
+------------------------------------------------+---------------------------------------------------------+
.. container:: content
- .. code::
+ .. code::
:number-lines:
Starting Apex service with parameters [] . . .
.. container:: content
- .. code::
+ .. code::
:number-lines:
- # $APEX_HOME/bin/apexEngine.sh -c $APEX_HOME/examples/config/SampleDomain/Stdin2StdoutJsonEventJava.json (1)
- # $APEX_HOME/bin/apexEngine.sh -c C:/apex/apex-full-2.0.0-SNAPSHOT/examples/config/SampleDomain/Stdin2StdoutJsonEventJava.json (2)
- >%APEX_HOME%\bin\apexEngine.bat -c %APEX_HOME%\examples\config\SampleDomain\Stdin2StdoutJsonEventJava.json :: (3)
+ # $APEX_HOME/bin/apexEngine.sh -c $APEX_HOME/examples/config/SampleDomain/Stdin2StdoutJsonEventJava.json (1)
+ # $APEX_HOME/bin/apexEngine.sh -c C:/apex/apex-full-2.0.0-SNAPSHOT/examples/config/SampleDomain/Stdin2StdoutJsonEventJava.json (2)
+ >%APEX_HOME%\bin\apexEngine.bat -c %APEX_HOME%\examples\config\SampleDomain\Stdin2StdoutJsonEventJava.json :: (3)
.. container:: colist arabic
.. container:: content
- .. code::
+ .. code::
:number-lines:
Starting Apex service with parameters [-c, v:/dev/ericsson/apex/onap/apex-pdp/packages/apex-pdp-package-full/target/install_hierarchy/examples/config/SampleDomain/Stdin2StdoutJsonEventJava.json] . . .
.. container:: content
- .. code::
+ .. code::
:number-lines:
# $APEX_HOME/bin/apexApps.sh rest-editor
.. container:: content
- .. code::
+ .. code::
:number-lines:
>%APEX_HOME%\bin\apexApps.bat rest-editor
.. container:: content
- .. code::
+ .. code::
:number-lines:
Apex Editor REST endpoint (ApexEditorMain: Config=[ApexEditorParameters: URI=http://localhost:18989/apexservices/, TTL=-1sec], State=READY) starting at http://localhost:18989/apexservices/ . . .
.. container:: content
- .. code::
+ .. code::
:number-lines:
#
.. container:: content
- .. code::
+ .. code::
{
"engineServiceParameters":{
.. container:: content
- .. code::
+ .. code::
"engineServiceParameters" : {
"name" : "AADMApexEngine", (1)
.. container:: content
- .. code::
+ .. code::
"eventInputParameters": { (1)
"FirstConsumer": { (2)
.. container:: content
- .. code::
+ .. code::
"eventInputParameters": {
"Input1": {
.. container:: content
- .. code::
+ .. code::
"engineServiceParameters":{
"engineParameters":{
.. container:: content
- .. code::
+ .. code::
"engineServiceParameters":{
"engineParameters":{
.. container:: content
- .. code::
+ .. code::
"engineServiceParameters":{
"engineParameters":{
.. container:: content
- .. code::
+ .. code::
"engineServiceParameters":{
"engineParameters":{
.. container:: content
- .. code::
+ .. code::
"engineServiceParameters":{
"engineParameters":{
.. container:: content
- .. code::
+ .. code::
"engineServiceParameters":{
"engineParameters":{
.. container:: content
- .. code::
+ .. code::
"carrierTechnologyParameters" : {
"carrierTechnology" : "FILE", (1)
.. container:: content
- .. code::
+ .. code::
"carrierTechnologyParameters" : {
"carrierTechnology" : "FILE", (1)
.. container:: content
- .. code::
+ .. code::
"carrierTechnologyParameters" : {
"carrierTechnology" : "FILE", (1)
.. container:: content
- .. code::
+ .. code::
"carrierTechnologyParameters" : {
"carrierTechnology": "EVENT_REQUESTOR" (1)
.. container:: content
- .. code::
+ .. code::
"carrierTechnologyParameters" : {
"carrierTechnology": "EVENT_REQUESTOR" (1)
.. container:: content
- .. code::
+ .. code::
"eventInputParameters": {
"EventRequestorConsumer": {
.. container:: content
- .. code::
+ .. code::
"carrierTechnologyParameters" : {
"carrierTechnology" : "KAFKA", (1)
.. container:: content
- .. code::
+ .. code::
"carrierTechnologyParameters" : {
"carrierTechnology" : "KAFKA", (1)
.. container:: content
- .. code::
+ .. code::
"carrierTechnologyParameters" : {
"carrierTechnology" : "JMS", (1)
.. container:: content
- .. code::
+ .. code::
"carrierTechnologyParameters" : {
"carrierTechnology" : "JMS", (1)
.. container:: content
- .. code::
+ .. code::
"carrierTechnologyParameters" : {
"carrierTechnology" : "WEBSOCKET", (1)
.. container:: content
- .. code::
+ .. code::
"carrierTechnologyParameters" : {
"carrierTechnology" : "WEBSOCKET", (1)
.. container:: content
- .. code::
+ .. code::
"carrierTechnologyParameters" : {
"carrierTechnology" : "RESTCLIENT", (1)
.. container:: content
- .. code::
+ .. code::
"carrierTechnologyParameters" : {
"carrierTechnology" : "RESTCLIENT", (1)
.. container:: content
- .. code::
+ .. code::
"eventInputParameters": {
"MyConsumer": {
.. container:: content
- .. code::
+ .. code::
"eventOutputParameters": {
"MyProducer": {
.. container:: content
- .. code::
+ .. code::
<servlet>
...
.. container:: content
- .. code::
+ .. code::
"carrierTechnologyParameters": {
"carrierTechnology": "RESTREQUESTOR", (1)
.. container:: content
- .. code::
+ .. code::
"eventName": "GuardResponseEvent", (1)
"eventNameFilter": "GuardResponseEvent", (2)
.. container:: content
- .. code::
+ .. code::
"carrierTechnologyParameters": {
"carrierTechnology": "RESTREQUESTOR", (1)
.. container:: content
- .. code::
+ .. code::
"eventNameFilter": "GuardRequestEvent", (1)
"requestorMode": true, (2)
.. container:: content
- .. code::
+ .. code::
"eventProtocolParameters":{
"eventProtocol" : "JSON"
.. container:: content
- .. code::
+ .. code::
"eventProtocolParameters":{
"eventProtocol" : "JSON",
.. container:: content
- .. code::
+ .. code::
"eventProtocolParameters":{
"eventProtocol" : "APEX"
.. container:: content
- .. code::
+ .. code::
"eventProtocolParameters":{
"eventProtocol" : "JMSTEXT",
.. container:: content
- .. code::
+ .. code::
"eventProtocolParameters":{
"eventProtocol" : "JMSOBJECT",
.. container:: content
- .. code::
+ .. code::
"eventProtocolParameters":{
"eventProtocol" : "XML",
.. container:: content
- .. code::
+ .. code::
"eventProtocolParameters":{
"eventProtocol" : "XML",
.. container:: content
- .. code::
+ .. code::
{
"engineServiceParameters" : {
.. container:: content
- .. code::
+ .. code::
usage: org.onap.policy.apex.service.engine.main.ApexMain [options...]
options
.. container:: content
- .. code::
+ .. code::
usage: org.onap.policy.apex.auth.clieditor.ApexCLIEditorMain [options...]
options
.. container:: content
- .. code::
+ .. code::
usage: org.onap.policy.apex.client.editor.rest.ApexEditorMain [options...]
-h,--help outputs the usage of this command
.. container:: content
- .. code::
+ .. code::
Apex Editor REST endpoint (ApexEditorMain: Config=[ApexEditorParameters: URI=http://localhost:18989/apexservices/, TTL=-1sec], State=READY) starting at http://localhost:18989/apexservices/ . . .
Sep 05, 2018 11:24:30 PM org.glassfish.grizzly.http.server.NetworkListener start
.. container:: content
- .. code::
+ .. code::
usage: org.onap.policy.apex.client.monitoring.rest.ApexMonitoringRestMain [options...]
-h,--help outputs the usage of this command
.. container:: content
- .. code::
+ .. code::
Apex Services REST endpoint (ApexMonitoringRestMain: Config=[ApexMonitoringRestParameters: URI=http://localhost:18989/apexservices/, TTL=-1sec], State=READY) starting at http://localhost:18989/apexservices/ . . .
Sep 05, 2018 11:26:20 PM org.glassfish.grizzly.http.server.NetworkListener start
.. container:: content
- .. code::
+ .. code::
usage: org.onap.policy.apex.client.deployment.rest.ApexDeploymentRestMain [options...]
-h,--help outputs the usage of this command
.. container:: content
- .. code::
+ .. code::
Apex Services REST endpoint (ApexDeploymentRestMain: Config=[ApexDeploymentRestParameters: URI=http://localhost:18989/apexservices/, TTL=-1sec], State=READY) starting at http://localhost:18989/apexservices/ . . .
Sep 05, 2018 11:27:09 PM org.glassfish.grizzly.http.server.NetworkListener start
.. container:: content
- .. code::
+ .. code::
usage: org.onap.policy.apex.client.full.rest.ApexServicesRestMain [options...]
-h,--help outputs the usage of this command
.. container:: content
- .. code::
+ .. code::
Apex Editor REST endpoint (ApexServicesRestMain: Config=[ApexServicesRestParameters: URI=http://localhost:18989/apexservices/, TTL=-1sec], State=READY) starting at http://localhost:18989/apexservices/ . . .
Sep 05, 2018 11:28:28 PM org.glassfish.grizzly.http.server.NetworkListener start
.. container:: content
- .. code::
+ .. code::
apexApps.sh - runs APEX applications
.. container:: content
- .. code::
+ .. code::
apexApps.sh: supported applications:
--> ws-echo engine eng-monitoring full-client eng-deployment tpl-event-json model-2-cli rest-editor cli-editor ws-console
.. container:: content
- .. code::
+ .. code::
apexApps.sh: application 'ws-console'
--> a simple console sending events to APEX, connect to APEX consumer port
.. container:: content
- .. code::
+ .. code::
apexApps.sh ws-echo -p 8888
.. container:: content
- .. code::
+ .. code::
gen-model2event v{release-version} - generates JSON templates for events generated from a policy model
usage: gen-model2event
.. container:: content
- .. code::
+ .. code::
apexApps.sh tpl-event-json -m $APEX_HOME/examples/models/SampleDomain/SamplePolicyModelJAVA.json -t stimuli
.. container:: content
- .. code::
+ .. code::
gen-model2event: starting Event generator
--> model file: examples/models/SampleDomain/SamplePolicyModelJAVA.json
.. container:: content
- .. code::
+ .. code::
{
"name" : "Event0000",
.. container:: content
- .. code::
+ .. code::
usage: gen-model2cli
-h,--help prints this help and usage screen
.. container:: content
- .. code::
+ .. code::
apexApps.sh model-2-cli -m $APEX_HOME/examples/models/SampleDomain/SamplePolicyModelJAVA.json
.. container:: content
- .. code::
+ .. code::
gen-model2cli: starting CLI generator
--> model file: examples/models/SampleDomain/SamplePolicyModelJAVA.json
parameter fields.
.. tip
-
- .. container:: title
-
- Field Schema types
-
- .. container:: paragraph
-
- APEX natively supports schema definitions in ``Java`` and ``Avro``.
-
- .. container:: paragraph
-
- ``Java`` schema definitions are simply the name of a Java Class. There are some restrictions:
-
- .. container:: ulist
-
- - the class must be instantiatable, i.e. not an Java interface or abstract class
-
- - primitive types are not supported, i.e. use ``java.lang.Integer`` instead of ``int``, etc.
-
- - it must be possible to find the class, i.e. the class must be contained in the Java classpath.
-
- .. container:: paragraph
-
- ``Avro`` schema definitions can be any valid `Avro <https://avro.apache.org/docs/current/spec.html>`__
- schema. For events using fields defined with ``Avro`` schemas, any incoming event containing that field must
- contain a value that conforms to the Avro schema.
+
+ .. container:: title
+
+ Field Schema types
+
+ .. container:: paragraph
+
+ APEX natively supports schema definitions in ``Java`` and ``Avro``.
+
+ .. container:: paragraph
+
+ ``Java`` schema definitions are simply the name of a Java Class. There are some restrictions:
+
+ .. container:: ulist
+
+ - the class must be instantiatable, i.e. not an Java interface or abstract class
+
+ - primitive types are not supported, i.e. use ``java.lang.Integer`` instead of ``int``, etc.
+
+ - it must be possible to find the class, i.e. the class must be contained in the Java classpath.
+
+ .. container:: paragraph
+
+ ``Avro`` schema definitions can be any valid `Avro <https://avro.apache.org/docs/current/spec.html>`__
+ schema. For events using fields defined with ``Avro`` schemas, any incoming event containing that field must
+ contain a value that conforms to the Avro schema.
.. container:: paragraph
the event definition pane.
.. tip::
- Optional Fields in APEX Events
- Parameter fields can be *optional* in events. If a parameter is not marked as *optional* then by default it
- is *mandatory*, so it must appear in any input event passed to APEX. If an *optional* field is not set
- for an output event then value will be set to ``null``.
+ Optional Fields in APEX Events
+ Parameter fields can be *optional* in events. If a parameter is not marked as *optional* then by default it
+ is *mandatory*, so it must appear in any input event passed to APEX. If an *optional* field is not set
+ for an output event then value will be set to ``null``.
.. container:: imageblock
.. container:: content
- .. code::
+ .. code::
/*
* ============LICENSE_START=======================================================
.. container:: content
- .. code::
+ .. code::
/*
* ============LICENSE_START=======================================================
default task is automatically selected and no 'Task
Selection Logic' is required.
- .. note::
- .. container:: title
-
- State Output Mappings
-
- .. container:: paragraph
-
- In a 'Policy' 'State' a 'State Output Mapping' has 3 roles:
- 1) Select which 'State' should be executed next, 2) Select
- the type of the state’s 'Outgoing Event', and 3)
- Populate the state’s 'Outgoing Event'. This is how states are
- chained together to form a (`Directed Acyclic Graph
- (DAG) <https://en.wikipedia.org/wiki/Directed_acyclic_graph>`__ )
- of states. The final state(s) of a policy are those that do
- not select any 'next' state. Since a 'State' can only
- accept a single type of event, the type of the event emitted
- by a previous 'State' must be match the incoming event type
- of the next 'State'. This is also how the last state(s) in
- a policy can emit events of different types. The 'State
- Output Mapping' is also responsible for taking the
- fields that are output by the task executed in the state and
- populating the state’s output event before it is emitted.
-
- .. container:: paragraph
-
- Each 'Task' referenced in 'State' must have a defined
- 'Output Mapping' to take the output of the task, select an
- 'Outgoing Event' type for the state, populate the state’s
- outgoing event, and then select the next state to be
- executed (if any).
-
- .. container:: paragraph
-
- There are 2 basic types of output mappings:
-
- .. container:: olist arabic
-
- #. **Direct Output Mappings** have a single value for
- 'Next State' and a single value for 'State Output
- Event'. The outgoing event for the state is
- automatically created, any outgoing event parameters
- that were present in the incoming event are copied
- into the outgoing event, then any task output fields
- that have the same name and type as parameters in the
- outgoing event are automatically copied into
- the outgoing event.
-
- #. **Logic-based State Output Mappings / Finalizers**
- have some logic defined that dynamically selects
- and creates the 'State Outgoing Event', manages
- the population of the outgoing event parameters
- (perhaps changing or adding to the outputs from the
- task), and then dynamically selects the next state to
- be executed (if any).
+ .. note::
+ .. container:: title
+
+ State Output Mappings
+
+ .. container:: paragraph
+
+ In a 'Policy' 'State' a 'State Output Mapping' has 3 roles:
+ 1) Select which 'State' should be executed next, 2) Select
+ the type of the state’s 'Outgoing Event', and 3)
+ Populate the state’s 'Outgoing Event'. This is how states are
+ chained together to form a (`Directed Acyclic Graph
+ (DAG) <https://en.wikipedia.org/wiki/Directed_acyclic_graph>`__ )
+ of states. The final state(s) of a policy are those that do
+ not select any 'next' state. Since a 'State' can only
+ accept a single type of event, the type of the event emitted
+ by a previous 'State' must be match the incoming event type
+ of the next 'State'. This is also how the last state(s) in
+ a policy can emit events of different types. The 'State
+ Output Mapping' is also responsible for taking the
+ fields that are output by the task executed in the state and
+ populating the state’s output event before it is emitted.
+
+ .. container:: paragraph
+
+ Each 'Task' referenced in 'State' must have a defined
+ 'Output Mapping' to take the output of the task, select an
+ 'Outgoing Event' type for the state, populate the state’s
+ outgoing event, and then select the next state to be
+ executed (if any).
+
+ .. container:: paragraph
+
+ There are 2 basic types of output mappings:
+
+ .. container:: olist arabic
+
+ #. **Direct Output Mappings** have a single value for
+ 'Next State' and a single value for 'State Output
+ Event'. The outgoing event for the state is
+ automatically created, any outgoing event parameters
+ that were present in the incoming event are copied
+ into the outgoing event, then any task output fields
+ that have the same name and type as parameters in the
+ outgoing event are automatically copied into
+ the outgoing event.
+
+ #. **Logic-based State Output Mappings / Finalizers**
+ have some logic defined that dynamically selects
+ and creates the 'State Outgoing Event', manages
+ the population of the outgoing event parameters
+ (perhaps changing or adding to the outputs from the
+ task), and then dynamically selects the next state to
+ be executed (if any).
.. container:: paragraph
.. container:: content
- .. code::
+ .. code::
#-------------------------------------------------------------------------------
# ============LICENSE_START=======================================================
.. container:: content
- .. code::
+ .. code::
/*
* ============LICENSE_START=======================================================
.. container:: content
- .. code::
+ .. code::
/*
* ============LICENSE_START=======================================================
.. container:: content
- .. code::
+ .. code::
{
"engineServiceParameters" : {
.. container:: content
- .. code::
+ .. code::
#-------------------------------------------------------------------------------
# ============LICENSE_START=======================================================
.. container:: content
- .. code::
+ .. code::
:number-lines:
<configuration debug="false">
.. container:: content
- .. code::
+ .. code::
:number-lines:
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
.. container:: content
- .. code::
+ .. code::
:number-lines:
<root level="info">
.. container:: content
- .. code::
+ .. code::
:number-lines:
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
.. container:: content
- .. code::
+ .. code::
:number-lines:
<appender name="CTXT_FILE" class="ch.qos.logback.core.FileAppender">
.. container:: content
- .. code::
+ .. code::
:number-lines:
.. container:: content
- .. code::
+ .. code::
<statusListener class="ch.qos.logback.core.status.OnConsoleStatusListener" />
.. container:: content
- .. code::
+ .. code::
<configuration debug="true">
...
.. container:: content
- .. code::
+ .. code::
<logger name="org.infinispan" level="INFO" additivity="false">
<appender-ref ref="STDOUT" />
.. container:: content
- .. code::
+ .. code::
<logger name="org.apache.zookeeper.ClientCnxn" level="INFO" additivity="false">
<appender-ref ref="STDOUT" />
.. container:: content
- .. code::
+ .. code::
<appender name="POLICY_APPENDER_STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
.. container:: content
- .. code::
+ .. code::
<logger name="org.onap.policy.apex.executionlogging.TaskExecutionLogging" level="TRACE" additivity="false">
<appender-ref ref="POLICY_APPENDER_STDOUT" />
.. container:: content
- .. code::
+ .. code::
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${VAR_LOG}/apex.log</file>
.. container:: content
- .. code::
+ .. code::
<appender name="CTXT-FILE"
class="ch.qos.logback.core.rolling.RollingFileAppender">
.. container:: content
- .. code::
+ .. code::
<configuration debug="false">
<statusListener class="ch.qos.logback.core.status.NopStatusListener" />
.. container:: content
- .. code::
+ .. code::
<configuration debug="false">
<statusListener class="ch.qos.logback.core.status.NopStatusListener" />
.. container:: content
- .. code::
+ .. code::
:number-lines:
{
.. container:: content
- .. code::
+ .. code::
:number-lines:
#: $APEX_HOME/bin/apexEngine.sh -c $APEX_HOME/examples/config/VPN/Ws2WsServerAvroContextJsonEvent.json
.. container:: content
- .. code::
+ .. code::
:number-lines:
#: %APEX_HOME%\bin\apexEngine.bat -c %APEX_HOME%\examples\config\VPN\Ws2WsServerAvroContextJsonEvent.json
.. container:: content
- .. code::
+ .. code::
:number-lines:
2017-07-28 13:17:20,834 Apex [main] INFO c.e.a.s.engine.runtime.EngineService - engine model VPNPolicyModelAvro:0.0.1 added to the engine-AxArtifactKey:(name=VPNApexEngine-0,version=0.0.1)
.. important::
APEX engine needs to run first
- The example assumes that an APEX engine configured for *produce* carrier technology Websocket and *JSON* event protocol is executed first.
+ The example assumes that an APEX engine configured for *produce* carrier technology Websocket and *JSON* event protocol is executed first.
+---------------------------------------------------------+-----------------------------------------------------------+
| Unix, Cygwin | Windows |
.. container:: content
- .. code::
+ .. code::
# $APEX_HOME/bin/apexApps.sh ws-echo -p 42452 (1)
> %APEX_HOME%\bin\apexApps.bat ws-echo -p 42452 (2)
.. container:: content
- .. code::
+ .. code::
ws-simple-echo: starting simple event echo
--> server: localhost
.. important::
APEX engine needs to run first
- The example assumes that an APEX engine configured for *consume* carrier technology Websocket and *JSON* event
- protocol is executed first.
+ The example assumes that an APEX engine configured for *consume* carrier technology Websocket and *JSON* event
+ protocol is executed first.
+------------------------------------------------------------+--------------------------------------------------------------+
| Unix, Cygwin | Windows |
.. container:: content
- .. code::
+ .. code::
# $APEX_HOME/bin/apexApps.sh ws-console -p 42450 (1)
> %APEX_HOME%\bin\apexApps.sh ws-console -p 42450 (2)
.. container:: content
- .. code::
+ .. code::
ws-simple-console: starting simple event console
--> server: localhost
.. container:: content
- .. code::
+ .. code::
:number-lines:
#: $APEX_HOME/examples/events/VPN
.. container:: content
- .. code::
+ .. code::
:number-lines:
{Link=L09, LinkUp=true}
.. container:: content
- .. code::
+ .. code::
:number-lines:
ws-simple-echo: received