| // |
| // ============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) |
| // |
| |
| == Introduction to APEX Engine and Applications |
| The core of APEX is the APEX Engine, also known as the APEX Policy Engine. |
| Beside this engine, an APEX system comes with a few applications intended to help with policy authoring, deployment, and execution. |
| |
| The engine itself and most applications are started from the command line with command line arguments. |
| This is called a Command Line Interface (CLI). |
| Some applications require an installation on a webserver, as for instance the REST Editor. |
| Those applications can be accessed via a web browser. |
| |
| Starting with APEX version 0.5.6, we also provide plugins for Eclipse realizing a policy development environment. |
| Those plugins support the main APEX policy language. |
| Other, higher-level, policy languages will be added in future versions along with their Eclipse plugins. |
| Furthermore, we are planning to provide a backend supporting the Language Server Protocol (LSP). |
| This backend, run as a server, will allow to join any editor or IDE that is LSP-enabled to benefit from the APEX policy languages. |
| |
| Last not least, one can use the available APEX APIs and applications to develop other applications as required. |
| This includes policy languages (and associated parsers and compilers / interpreters), GUIs to access APEX or to define policies, clients to connect to APEX, etc. |
| Separate documentation will be available in APEX releases addressing this type of applications. |
| |
| For this documentation, we assume an installation of APEX as a full system (i.e. not minimal) of version 0.5.6 or higher. |
| |
| == CLI on Unix, Windows, and Cygwin |
| A note on APEX CLI applications: all applications and the engine itself have been deployed and tested on different operating systems: Red Hat, Ubuntu, Debian, Mac OSX, Windows, Cygwin. |
| Each operating system comes with its own way of configuring and executing Java. |
| The main items here are: |
| |
| - For UNIX systems (RHL, Ubuntu, Debian, Mac OSX), the provided bash scripts work as expected |
| with absolute paths (e.g. `/opt/ericsson/apex/apex-{release-version}/examples`), |
| indirect and linked paths (e.g. `../apex/apex`), |
| and path substitutions using environment settings (e.g. `$APEX_HOME/bin/`) |
| - For Windows systems, the provided batch files (`.bat`) work as expected with |
| with absolute paths (e.g. `C:\apex\apex-{release-version}\examples`), |
| and path substitutions using environment settings (e.g. `%APEX_HOME%\bin\`) |
| - For Cygwin system we assume a standard Cygwin installation with standard tools (mainly bash) using a Windows Java installation. |
| This means that the bash scripts can be used as in UNIX, however any argument pointing to files and directories need to use either a DOS path (e.g. `C:\apex\apex-{release-version}\examples\config\...`) |
| or the command `cygpath` with a mixed option. |
| The reason for that is: Cygwin executes Java using UNIX paths but then runs Java as a DOS/WINDOWS process, which requires DOS paths for file access. |
| |