| // |
| // ============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) |
| // |
| |
| == Verify the APEX Installation |
| When APEX is installed and all settings are realized, the installation can be verified. |
| |
| === Verify a Minimal Installation |
| The minimal installation does not come with any configuration or policy model. |
| It is therefore not possible to test all APEX features, or an engine running with policies. |
| |
| However, one can verify that the engine starts up to the point where it tries to load a configuration. |
| |
| On Unix (or Cygwin) start the engine using `$APEX_HOME/bin/apexEngine.sh`. |
| The engine will fail to fully start. |
| However, if the output looks similar to the following line, the APEX installation is realized. |
| |
| [source%nowrap,sh,numbered] |
| ---- |
| Starting Apex service with parameters [] . . . |
| start of Apex service failed: Apex configuration file was not specified as an argument |
| 2017-07-28 13:18:44,266 Apex [main] ERROR c.e.a.service.engine.main.ApexMain - start of Apex service failed: |
| ---- |
| |
| On Windows start the engine using `%APEX_HOME%\bin\apexEngine.bat`. |
| The engine will fail to fully start. |
| However, if the output looks similar to the following line, the APEX installation is realized. |
| |
| [source%nowrap,bat,numbered] |
| ---- |
| Starting Apex service with parameters [] . . . |
| start of Apex service failed: Apex configuration file was not specified as an argument |
| 2017-07-28 13:18:44,266 Apex [main] ERROR c.e.a.service.engine.main.ApexMain - start of Apex service failed: |
| ---- |
| |
| |
| === Verify a Full Installation - run an Example |
| A full APEX installation comes with several examples. |
| Here, we can fully verify the installation by running one of the examples. |
| |
| We use the example called _SampleDomain_ and configure the engine to use standard in and standard out for events. |
| Run the engine with the provided configuration. |
| Note: Cygwin executes scripts as Unix scripts but runs Java as a Windows application, thus the configuration file must be given as a Windows path. |
| |
| [source%nowrap,sh,numbered,subs="attributes+"] |
| ---- |
| # $APEX_HOME/bin/apexEngine.sh -c $APEX_HOME/examples/config/SampleDomain/Stdin2StdoutJsonEventJava.json # <1> |
| # $APEX_HOME/bin/apexEngine.sh -c C:/apex/apex-full-{release-version}/examples/config/SampleDomain/Stdin2StdoutJsonEventJava.json # <2> |
| >%APEX_HOME%\bin\apexEngine.bat -c %APEX_HOME%\examples\config\SampleDomain\Stdin2StdoutJsonEventJava.json @@ <3> |
| ---- |
| <1> UNIX |
| <2> Cygwin |
| <3> Windows |
| |
| |
| The engine should start successfully. |
| Assuming the logging levels are not change (default level is `info`), the output should look similar to this (last few lines) |
| |
| [source%nowrap,sh,numbered] |
| ---- |
| 2017-07-28 13:20:54,673 Apex [main] INFO c.e.a.s.engine.runtime.EngineService - engine model SamplePolicyModelJAVA:0.0.1 added to the engine-AxArtifactKey:(name=MyApexEngine-3,version=0.0.1) |
| 2017-07-28 13:20:54,675 Apex [Apex-apex-engine-service-0:0] INFO c.e.a.s.engine.runtime.EngineService - Engine AxArtifactKey:(name=MyApexEngine-0,version=0.0.1) processing ... |
| 2017-07-28 13:20:54,677 Apex [Apex-apex-engine-service-0:1] INFO c.e.a.s.engine.runtime.EngineService - Engine AxArtifactKey:(name=MyApexEngine-1,version=0.0.1) processing ... |
| 2017-07-28 13:20:54,677 Apex [Apex-apex-engine-service-0:2] INFO c.e.a.s.engine.runtime.EngineService - Engine AxArtifactKey:(name=MyApexEngine-2,version=0.0.1) processing ... |
| 2017-07-28 13:20:54,677 Apex [Apex-apex-engine-service-0:3] INFO c.e.a.s.engine.runtime.EngineService - Engine AxArtifactKey:(name=MyApexEngine-3,version=0.0.1) processing ... |
| 2017-07-28 13:20:54,680 Apex [main] INFO c.e.a.s.e.r.impl.EngineServiceImpl - Added the action listener to the engine |
| Started Apex service |
| ---- |
| |
| Important are the last two line, stating that APEX has added the final action listener to the engine and that the engine is started. |
| |
| The engine is configured to read events from standard input and write produced events to standard output. |
| The policy model is a very simple policy. |
| |
| The following table shows an input event in the left column and an output event in the right column. |
| Past the input event into the console where APEX is running, and the output event should appear in the console. |
| Pasting the input event multiple times will produce output events with different values. |
| |
| [width="100%",options="header",cols="5a,5a"] |
| |==================== |
| | Input Event | Example Output Event |
| | |
| [source%nowrap,json,numbered] |
| ---- |
| { |
| "nameSpace": "org.onap.policy.apex.sample.events", |
| "name": "Event0000", |
| "version": "0.0.1", |
| "source": "test", |
| "target": "apex", |
| "TestSlogan": "Test slogan for External Event0", |
| "TestMatchCase": 0, |
| "TestTimestamp": 1469781869269, |
| "TestTemperature": 9080.866 |
| } |
| ---- |
| | |
| [source%nowrap,json,numbered] |
| ---- |
| { |
| "nameSpace" : "org.onap.policy.apex.sample.events", |
| "name" : "Event0004", |
| "version" : "0.0.1", |
| "source" : "Act", |
| "target" : "Outside", |
| "TestActCaseSelected" : 1, |
| "TestActStateTime" : 1499280954832, |
| "TestTemperature" : 9080.866, |
| "TestDecideCaseSelected" : 2, |
| "TestMatchCaseSelected" : 2, |
| "TestTimestamp" : 1469781869269, |
| "TestDecideStateTime" : 1499280954831, |
| "TestMatchCase" : 0, |
| "TestSlogan" : "Test slogan for External Event0", |
| "TestEstablishCaseSelected" : 1, |
| "TestEstablishStateTime" : 1499280954831, |
| "TestMatchStateTime" : 1499280954828 |
| } |
| ---- |
| |==================== |
| |
| Terminate APEX by simply using `CTRL+C` in the console. |
| |
| |
| === Verify a Full Installation - REST Editor |
| APEX has a REST application for viewing policy models. |
| The application can also be used to create new policy models close to the engine native policy language. |
| Start the REST editor as follows. |
| |
| [source%nowrap,sh,numbered] |
| ---- |
| # $APEX_HOME/bin/apexApps.sh rest-editor |
| ---- |
| |
| [source%nowrap,bat,numbered] |
| ---- |
| >%APEX_HOME%\bin\apexApps.bat rest-editor |
| ---- |
| |
| The script will start a simple web server (link:https://javaee.github.io/grizzly/[Grizzly]) and deploy a `war` web archive in it. |
| Once the editor is started, it will be available on `localhost:18988`. |
| The last few line of the messages should be: |
| |
| [source%nowrap,sh,numbered] |
| ---- |
| Apex Editor REST endpoint (ApexEditorMain: Config=[ApexEditorParameters: URI=http://localhost:18988/apex/, TTL=-1sec], State=READY) starting at http://localhost:18988/apex/ . . . |
| Jul 28, 2017 1:22:15 PM org.glassfish.grizzly.http.server.NetworkListener start |
| INFO: Started listener bound to [localhost:18988] |
| Jul 28, 2017 1:22:15 PM org.glassfish.grizzly.http.server.HttpServer start |
| INFO: [HttpServer] Started. |
| Apex Editor REST endpoint (ApexEditorMain: Config=[ApexEditorParameters: URI=http://localhost:18988/apex/, TTL=-1sec], State=RUNNING) started at http://localhost:18988/apex/ |
| ---- |
| |
| Now open a browser (Firefox, Chrome, Opera, Internet Explorer) and use the URL `http://localhost:18988/`. |
| This will connect the browser to the started REST editor. |
| The start screen should be as follows. |
| |
| .REST Editor Start Screen |
| image::install-guide/rest-start.png[REST Editor Start Screen] |
| |
| Now load a policy model by clicking the menu `File` and then `Open`. |
| In the opened dialog, go to the directory where APEX is installed, then `examples`, `models`, `SampleDomain`, and there select the file `SamplePolicyModelJAVA.json`. |
| This will load the policy model used to verify the policy engine (see above). |
| Once loaded, the screen should look as follows. |
| |
| .REST Editor with loaded SampleDomain Policy Model |
| image::install-guide/rest-loaded.png[REST Editor with loaded SampleDomain Policy Model] |
| |
| Now you can use the REST editor. |
| To finish this verification, simply terminate your browser (or the tab), and then use `CTRL+C` in the console where you started the REST editor. |
| |