diff options
author | Dinh Danh Le <dinh.danh.le@ericsson.com> | 2018-08-22 12:41:50 +0100 |
---|---|---|
committer | Dinh Danh Le <dinh.danh.le@ericsson.com> | 2018-08-22 22:19:38 +0100 |
commit | a5a4427b505a5b0d79bb394093c9d6f6395d9a1f (patch) | |
tree | 63e31fd0cadb956f2dcd87022cfbdfb89d122fc2 /tools/tools-common/src | |
parent | e633cd8e2e4bd0dc20a8727a3c35eaacf00a136f (diff) |
Add docs for tools package & update main apex-pdp
Change-Id: I2990157eb7bae51f7d38a652fd8dd488b7287cea
Signed-off-by: Dinh Danh Le <dinh.danh.le@ericsson.com>
Issue-ID: POLICY-867
Diffstat (limited to 'tools/tools-common/src')
-rw-r--r-- | tools/tools-common/src/site-docs/adoc/fragments/example-cli-version.adoc | 50 | ||||
-rw-r--r-- | tools/tools-common/src/site-docs/adoc/fragments/example-cli.adoc | 125 | ||||
-rw-r--r-- | tools/tools-common/src/site/asciidoc/example-cli-version.adoc | 14 | ||||
-rw-r--r-- | tools/tools-common/src/site/asciidoc/example-cli.adoc | 14 | ||||
-rw-r--r-- | tools/tools-common/src/site/css/site.css | 100 | ||||
-rw-r--r-- | tools/tools-common/src/site/images/logos.png | bin | 0 -> 162383 bytes | |||
-rw-r--r-- | tools/tools-common/src/site/site.xml | 30 |
7 files changed, 333 insertions, 0 deletions
diff --git a/tools/tools-common/src/site-docs/adoc/fragments/example-cli-version.adoc b/tools/tools-common/src/site-docs/adoc/fragments/example-cli-version.adoc new file mode 100644 index 000000000..031a3776d --- /dev/null +++ b/tools/tools-common/src/site-docs/adoc/fragments/example-cli-version.adoc @@ -0,0 +1,50 @@ +// +// ============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) +// + +== Autoversioning an Application + +The APEX utilities project provides means to versioning an application automatically towards the APEX version it is written for. +This is realized by generating a file called `app-version.txt` that includes the Maven project version. +This file is then automatically deployed in the folder `etc` of a full APEX distribution. +The CLI Parser here provides a mthod to access this version for an application. + +First, create a new CLI Parser object, add some options (in the example an option for version, but any options will do), then parse the command line: + +[source,java,linenums,subs="attributes+"] +---- +include::{adsite-tools-common-dir}/test/java/org/onap/policy/apex/tools/common/docs/ExampleAppVersion.java[tags=setupParser,indent=0] +---- + +Next, we check if the version option was used in the command line and print application name and version if it was used: + +[source,java,linenums,subs="attributes+"] +---- +include::{adsite-tools-common-dir}/test/java/org/onap/policy/apex/tools/common/docs/ExampleAppVersion.java[tags=processCliVersion,indent=0] +---- + +The output will be: + +[source,sh,subs="attributes+"] +---- +myApp {release-version} +---- + +The auto-version information comes from the method call `cli.getAppVersion()` in line 2 in the example above. +The method is defined in the `CliParser` class as: + +[source,java,linenums,subs="attributes+"] +---- +include::{adsite-tools-common-dir}/main/java/org/onap/policy/apex/tools/common/CliParser.java[tags=cliParserVersion,indent=0] +---- + +The file `app-version.txt` is automatically added to an APEX full distribution, as described above (for details on this see the POM files in the APEX application packaging projects). diff --git a/tools/tools-common/src/site-docs/adoc/fragments/example-cli.adoc b/tools/tools-common/src/site-docs/adoc/fragments/example-cli.adoc new file mode 100644 index 000000000..3755502ef --- /dev/null +++ b/tools/tools-common/src/site-docs/adoc/fragments/example-cli.adoc @@ -0,0 +1,125 @@ +// +// ============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) +// + +== CLI Example + +Using the APEX CLI utilities can be done as follows. +First, add the dependency of the utility project to your POM file. + +[source,xml,subs="attributes+"] +---- +<dependency> + <groupId>com.ericsson.apex.apps</groupId> + <artifactId>apex-apps</artifactId> + <version>{release-version}</version> +</dependency> +---- + +Now, create a new application project, for instance `MyApp`. +In this project, create a new main application class as `Application.java`. +In this class, create a new main method as `public static void main(String[] args)`. + +No use the provided `CliOptions` and `CliParser`. +Manually importing means to add the following lines to the start of your application (in Eclipse this import will be done automatically): + +[source,java, linenums,subs="attributes+"] +---- +include::{adsite-tools-common-dir}/test/java/org/onap/policy/apex/tools/common/docs/ExampleCliParser.java[tags=import,indent=0] +---- + +Now, inside your `main()` method, start setting some general application properties. +Important are the application name and some description of your application. +For instance: + +[source,java,linenums,subs="attributes+"] +---- +include::{adsite-tools-common-dir}/test/java/org/onap/policy/apex/tools/common/docs/ExampleCliParser.java[tags=setApp,indent=0] +---- + +Next, create a new CLI Parser and add a few CLI options from the standard `CliOptions`. +The following example adds options for help, version, and a model file: + +[source,java,linenums,subs="attributes+"] +---- +include::{adsite-tools-common-dir}/test/java/org/onap/policy/apex/tools/common/docs/ExampleCliParser.java[tags=setCli,indent=0] +---- + +Next, parse the given CLI arguments: + +[source,java,linenums,subs="attributes+"] +---- +include::{adsite-tools-common-dir}/test/java/org/onap/policy/apex/tools/common/docs/ExampleCliParser.java[tags=parseCli,indent=0] +---- + +Once the command line is parsed, we can look into the individual options, check if they are set, and then act accordingly. +We start with the option for __help__. +If the option is present, we print a help screen and return: + +[source,java,linenums,subs="attributes+"] +---- +include::{adsite-tools-common-dir}/test/java/org/onap/policy/apex/tools/common/docs/ExampleCliParser.java[tags=processCliHelp,indent=0] +---- + +Next, we process the option for __version__. +Here, we want to print a version for our application and return. +The CLI Parser already provides a method to obtain the correct version for an APEX build, so we use that: + +[source,java,linenums,subs="attributes+"] +---- +include::{adsite-tools-common-dir}/test/java/org/onap/policy/apex/tools/common/docs/ExampleCliParser.java[tags=processCliVersion,indent=0] +---- + +Once help and version arguments are processed, we can proceed to look at all other options. +We have added an option for a model file, so check this option and test if we can actually load a model file with the given argument. +If we can load a model, everything is ok. +If we cannot load a model, we print an error and return. + +[source,java,linenums,subs="attributes+"] +---- +include::{adsite-tools-common-dir}/test/java/org/onap/policy/apex/tools/common/docs/ExampleCliParser.java[tags=processCliModel,indent=0] +---- + +With a model file being loadable, we finish parsing command line arguments. +We also print some status messages to note that the application now is ready to start: + +[source,java,linenums,subs="attributes+"] +---- +include::{adsite-tools-common-dir}/test/java/org/onap/policy/apex/tools/common/docs/ExampleCliParser.java[tags=someStartPrint,indent=0] +---- + +The last action now is to run the actual application. +The example below is taken from a version of the `Model2Cli` application, which creates a new object and runs it in a `try` block, since exceptions might be thrown by the object: + +[source,java,linenums,subs="attributes+"] +---- +include::{adsite-tools-common-dir}/test/java/org/onap/policy/apex/tools/common/docs/ExampleCliParser.java[tags=yourApp,indent=0] +---- + +If this new application is now called with the command line `-h` or `--help` it will print the following help screen: + +[source,sh,subs="attributes+"] +---- +test-app v{release-version} - a test app for documenting how to use the CLI utilities +usage: test-app + -h,--help prints this help and usage screen + -m,--model <MODEL-FILE> set the input policy model file + -v,--version prints the application version +---- + +If this new application is called with the option `-v` or `--version` it will print its version information as: + +[source,sh,subs="attributes+"] +---- +test-app {release-version} +---- + diff --git a/tools/tools-common/src/site/asciidoc/example-cli-version.adoc b/tools/tools-common/src/site/asciidoc/example-cli-version.adoc new file mode 100644 index 000000000..83183e8ee --- /dev/null +++ b/tools/tools-common/src/site/asciidoc/example-cli-version.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-tools-common-dir}/site-docs/adoc/fragments/example-cli-version.adoc[] diff --git a/tools/tools-common/src/site/asciidoc/example-cli.adoc b/tools/tools-common/src/site/asciidoc/example-cli.adoc new file mode 100644 index 000000000..3d7808d79 --- /dev/null +++ b/tools/tools-common/src/site/asciidoc/example-cli.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-tools-common-dir}/site-docs/adoc/fragments/example-cli.adoc[] diff --git a/tools/tools-common/src/site/css/site.css b/tools/tools-common/src/site/css/site.css new file mode 100644 index 000000000..ef8bd4d15 --- /dev/null +++ b/tools/tools-common/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/tools/tools-common/src/site/images/logos.png b/tools/tools-common/src/site/images/logos.png Binary files differnew file mode 100644 index 000000000..915d6e59d --- /dev/null +++ b/tools/tools-common/src/site/images/logos.png diff --git a/tools/tools-common/src/site/site.xml b/tools/tools-common/src/site/site.xml new file mode 100644 index 000000000..8d6a38325 --- /dev/null +++ b/tools/tools-common/src/site/site.xml @@ -0,0 +1,30 @@ +<?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 Tools Common"> + <body> + <menu name="APEX Tools Common"> + <item href="example-cli.html" name="CLI Example" /> + <item href="example-cli-version.html" name="Autoversion Example" /> + + <item href="javadocs/index.html" name="API Doc" /> + </menu> + <menu ref="reports" inherit="top"/> + <menu ref="modules"/> + + <breadcrumbs> + <item name="Common" href="index.html"/> + </breadcrumbs> + </body> +</project>
\ No newline at end of file |