= Explorer for Hawkular

http://hawkular.org/[Hawkular] is a set of components for Monitoring.
This explorer connects to a Hawkular server and allows to browse trough
inventory and view entities, graph metrics.

.Main screen with availability pop-up
ifndef::env-github[]
image::docs/screenshot.png[]
endif::[]
ifdef::env-github[]
image::https://github.com/pilhuhn/hawkfx/blob/master/docs/screenshot.png[]
endif::[]

Other functions include listing of all metrics on a system, listing of Events/Alerts, injection of Events,
injection of metric values and a few more things.

.Events list
ifndef::env-github[]
image::docs/event_list.png[]
endif::[]
ifdef::env-github[]
image::https://github.com/pilhuhn/hawkfx/blob/master/docs/event_list.png[]
endif::[]

== Running

The explorer requires JRuby in version 9+ and Java8

If you are using `rvm` you can select it via

`rvm use jruby-9.1.5.0`

install and use `bundler` to install the required gems

`gem install bundler`

`bundle install`

then run

`jruby -S -G hawkfx.rb`

=== Using SSL

There is a blog post on the Hawkular
blog http://www.hawkular.org/blog/2016/09/14/consuming-hawkular-api-over-ssl.html[that describes how to use SSL] in Hawkular and HawkFX.

Add a blurb about SSL setup

Add a blurb about SSL setup


= jediterm-forge

Provides https://github.com/forge/core/[JBoss Forge] console component based on
https://github.com/JetBrains/jediterm[JediTerm] for Swing applications, like IntelliJ, NetBeans,
or standalone shell client.

== Build

* Clone this JediTerm repository fork:
** `git clone https://github.com/adamwy/jediterm.git`
** `git checkout 2.0`
* Build default JediTerm target with http://ant.apache.org/bindownload.cgi[Apache Ant]:
** `ant`
* Install JediTerm as Maven artifact:
** `./install-jediterm-artifact "jediterm/build/jediterm-terminal-2.0.jar"`
* Build and install this project to local Maven repository:
** `mvn clean install`

= jediterm-forge

Provides https://github.com/forge/core/[JBoss Forge] console component based on
https://github.com/JetBrains/jediterm[JediTerm] for Swing applications, like IntelliJ, NetBeans,
or standalone shell client.

== Build

* Clone this JediTerm repository fork:
** `git clone https://github.com/adamwy/jediterm.git`
** `git checkout 2.0`
* Install JediTerm as Maven artifact:
** `./install-jediterm-artifact "jediterm/build/jediterm-terminal-2.0.jar"`
* Build and install this project to local Maven repository:
** `mvn clean install`

Remove JediTerm build instruction (since terminal jar is provided in repository)


// Module included in the following assemblies:
//
// * logging/cluster-logging-kibana-interface.adoc

[id="cluster-logging-kibana-interface-launch_{context}"]
= Launching Kibana

Kibana is a browser-based console to query, discover, and visualize your logs through histograms, line graphs,
pie charts, heat maps, built-in geospatial support, and other visualizations.

.Procedure

To launch Kibana:

. In the {product-title} console, click *Monitoring* -> *Logging*.

. Log in using the same credentials you use to log in to the {product-title} console.
+
The Kibana interface launches. You can now:
+
* Search and browse your data using the Discover page.
* Chart and map your data using the Visualize page.
* Create and view custom dashboards using the Dashboard page.
+
Use and configuration of the Kibana interface is beyond the scope of this documentation. For more information,
on using the interface, see the link:https://www.elastic.co/guide/en/kibana/5.6/connect-to-elasticsearch.html[Kibana documentation].

[NOTE]
====
If you get a *security_exception* error in the Kibana console and cannot access your Kibana indices, you might have an expired OAuth token. If you see this error, log out of the Kibana console, and then log back in. This refreshes your OAuth tokens and you should be able to access your indices.
====

Add note on Kibana OAuth refresh

Add note on Kibana OAuth refresh


= Spring Boot and Two DataSources

This project demonstrates how to use two `DataSource` s with Spring Boot.

It utilizes:

* Spring Data https://github.com/spring-projects/spring-data-jpa[JPA] / https://github.com/spring-projects/spring-data-rest[REST]
* https://github.com/flyway/flyway[Flyway] migrations for the two `DataSource` s
* Separate Hibernate properties for each `DataSource` defined in the application.yml
* https://github.com/thymeleaf/thymeleaf[Thymeleaf] 3
* https://github.com/DataTables/DataTablesSrc[DataTables]
* Unit tests for components

 Note: It may take a few seconds for the app to start if no one has not accessed it recently

Add note about potential slow hosted app startup


== asciidoctor-fopub-embed-svg-example

An example for embedding SVG images in an asciidoctor document.

=== Setup

----
bundle install
----

=== How to make the target pdf file

Running the command below make the target pdf file named "class_diagram.pdf" out of "class_diagram.adoc"

----
bundle exec rake
----

=== Watch *.adoc files

Running the command below, rake watches "\*.adoc" files and build "*.adoc" files whenever they are modified.

----
bundle exec rake watch
----

=== Example output files

You can see the example output files at

* https://hnakamur.github.io/asciidoctor-fopub-embed-svg-example/class_diagram.pdf[class_diagram.pdf]
* https://hnakamur.github.io/asciidoctor-fopub-embed-svg-example/class_diagram.html[class_diagram.html]

Add links for example output files

Add links for example output files


[[search-request-from-size]]
=== From / Size

Pagination of results can be done by using the `from` and `size`
parameters. The `from` parameter defines the offset from the first
result you want to fetch. The `size` parameter allows you to configure
the maximum amount of hits to be returned.

Though `from` and `size` can be set as request parameters, they can also
be set within the search body. `from` defaults to `0`, and `size`
defaults to `10`.

[source,js]
--------------------------------------------------
{
    "from" : 0, "size" : 10,
    "query" : {
        "term" : { "user" : "kimchy" }
    }
}
--------------------------------------------------

Note that `from` + `size` can not be more than the `index.max_result_window`
index setting which defaults to 10,000. See the <<search-request-scroll,Scroll>> or <<search-request-search-after,Search After>>
API for more efficient ways to do deep scrolling.

[[search-request-from-size]]
=== From / Size

Pagination of results can be done by using the `from` and `size`
parameters. The `from` parameter defines the offset from the first
result you want to fetch. The `size` parameter allows you to configure
the maximum amount of hits to be returned.

Though `from` and `size` can be set as request parameters, they can also
be set within the search body. `from` defaults to `0`, and `size`
defaults to `10`.

[source,js]
--------------------------------------------------
GET /_search
{
    "from" : 0, "size" : 10,
    "query" : {
        "term" : { "user" : "kimchy" }
    }
}
--------------------------------------------------
// CONSOLE

Note that `from` + `size` can not be more than the `index.max_result_window`
index setting which defaults to 10,000. See the <<search-request-scroll,Scroll>> or <<search-request-search-after,Search After>>
API for more efficient ways to do deep scrolling.

Add CONSOLE to from/size docs

Add CONSOLE to from/size docs

Relates to #18160


= griffon-configuration-plugin
:linkattrs:
:project-name: griffon-configuration-plugin

image:http://img.shields.io/travis/griffon-plugins/{project-name}/master.svg["Build Status", link="https://travis-ci.org/griffon-plugins/{project-name}"]
image:http://img.shields.io/coveralls/griffon-plugins/{project-name}/master.svg["Coverage Status", link="https://coveralls.io/r/griffon-plugins/{project-name}"]
image:http://img.shields.io/badge/license-ASF2-blue.svg["Apache License 2", link="http://www.apache.org/licenses/LICENSE-2.0.txt"]
image:https://api.bintray.com/packages/griffon/griffon-plugins/{project-name}/images/download.svg[link="https://bintray.com/griffon/griffon-plugins/{project-name}/_latestVersion"]

---

Provides additional configuration formats such as YAML and JSON.

Refer to the link:http://griffon-plugins.github.io/griffon-configuration-plugin/[plugin guide, window="_blank"] for
further information on configuration and usage.

= griffon-configuration-plugin
:linkattrs:
:project-name: griffon-configuration-plugin

image:http://img.shields.io/travis/griffon-plugins/{project-name}/master.svg["Build Status", link="https://travis-ci.org/griffon-plugins/{project-name}"]
image:http://img.shields.io/coveralls/griffon-plugins/{project-name}/master.svg["Coverage Status", link="https://coveralls.io/r/griffon-plugins/{project-name}"]
image:http://img.shields.io/badge/license-ASF2-blue.svg["Apache License 2", link="http://www.apache.org/licenses/LICENSE-2.0.txt"]
image:https://api.bintray.com/packages/griffon/griffon-plugins/{project-name}/images/download.svg[link="https://bintray.com/griffon/griffon-plugins/{project-name}/_latestVersion"]

---

image:https://img.shields.io/gitter/room/griffon/griffon.js.svg[link="https://gitter.im/griffon/griffon]
image:https://img.shields.io/badge/donations-Patreon-orange.svg[https://www.patreon.com/user?u=6609318]

---

Provides additional configuration formats such as YAML and JSON.

Refer to the link:http://griffon-plugins.github.io/griffon-configuration-plugin/[plugin guide, window="_blank"] for
further information on configuration and usage.

Add Patreon badge to readme

Add Patreon badge to readme


= Opal Runtime for Node.js

ifdef::env-github[]
image:https://img.shields.io/travis/mogztter/opal-runtime/master.svg[Travis build status, link=https://travis-ci.org/mogztter/opal-runtime]
image:http://img.shields.io/npm/v/opal-runtime.svg[npm version, link=https://www.npmjs.org/package/opal-runtime]
endif::[]

== Usage

```javascript
var Opal = require('opal-runtime').Opal;
// Now let's have fun with Opal!
```

= Opal Runtime for Node.js

ifdef::env-github[]
image:https://img.shields.io/travis/Mogztter/opal-node-runtime/master.svg[Travis build status, link=https://travis-ci.org/Mogztter/opal-node-runtime]
image:http://img.shields.io/npm/v/opal-runtime.svg[npm version, link=https://www.npmjs.org/package/opal-runtime]
endif::[]

== Usage

```javascript
var Opal = require('opal-runtime').Opal;
// Now let's have fun with Opal!
```

Upgrade Travis build status badge

Upgrade Travis build status badge


= flexy-pool
Author <mih_vlad@yahoo.com>
v1.0.0, 2014-02-25

:homepage: http://vladmihalcea.com/

== Introduction

The flexy-pool library brings adaptability to a given Connection Pool, allowing it to resize on demand.
This is very handy since most connection pools offer a limited set of dynamic configuration strategies.

== Features

* extensive connection pool support
** http://docs.codehaus.org/display/BTM/Home[Bitronix Transaction Manager]
** http://commons.apache.org/proper/commons-dbcp/[Apache DBCP]
** http://commons.apache.org/proper/commons-dbcp/[Apache DBCP2]
** http://www.mchange.com/projects/c3p0/[C3P0]
** http://jolbox.com/[BoneCP]
** http://brettwooldridge.github.io/HikariCP/[HikariCP]
* statistics support
** source connection acquiring time histogram
** total connection acquiring time histogram
** retries attempts histogram
** maximum CP size histogram
** connection request count histogram
** connection lease time histogram

== Documentation

. https://github.com/vladmihalcea/flexy-pool/wiki/Installation-Guide[Installation Guide]
. https://github.com/vladmihalcea/flexy-pool/wiki/User-Guide[User Guide]

IMPORTANT: Flexy Pool has not yet been released to OSS Maven Repository.

= flexy-pool
Author <mih_vlad@yahoo.com>
v1.0.0, 2014-02-25

:homepage: http://vladmihalcea.com/

== Introduction

The flexy-pool library brings adaptability to a given Connection Pool, allowing it to resize on demand.
This is very handy since most connection pools offer a limited set of dynamic configuration strategies.

== Features

* extensive connection pool support
** http://docs.codehaus.org/display/BTM/Home[Bitronix Transaction Manager]
** http://commons.apache.org/proper/commons-dbcp/[Apache DBCP]
** http://commons.apache.org/proper/commons-dbcp/[Apache DBCP2]
** http://www.mchange.com/projects/c3p0/[C3P0]
** http://jolbox.com/[BoneCP]
** http://brettwooldridge.github.io/HikariCP/[HikariCP]
* statistics support
** source connection acquiring time histogram
** total connection acquiring time histogram
** retries attempts histogram
** maximum CP size histogram
** connection request count histogram
** connection lease time histogram

== Documentation

. https://github.com/vladmihalcea/flexy-pool/wiki/Installation-Guide[Installation Guide]
. https://github.com/vladmihalcea/flexy-pool/wiki/User-Guide[User Guide]

[IMPORTANT]
Flexy Pool has not yet been released to OSS Maven Repository.

Add IMPORTANT section for Release status


= Spring Boot, AngularJS 2, Kotlin demo

This is a demo which shows how to use Spring Boot, Spring Data JPA and AngularJS 2.
The demo is an implementation of Angular's Tour of Heroes tutorial. The demo is written in Kotlin and TypeScript.

The Heroes are stored in an in-memory H2 database. The H2 schema is managed by Flyway.

You can start the AngularJS 2 App and access it on `http://localhost:3000`:

`gradlew npmStartServer`

You can start the Spring Boot App and access it on `http://localhost:8090`:

`gradlew bootRun`

Webpack proxies the request from Angular2 to Spring Boot.

TODOs:

- [x] Implement Angular's Tour of Heroes tutorial
- Add Angular2 app as a static resource to the Spring Boot app
- Implement authentication/authorization with Spring Security and JWT Tokens

== Angular's Tour of Heroes

image:docs/tutorial.JPG[]

= Spring Boot, AngularJS 2, Kotlin demo

This is a demo which shows how to use Spring Boot, Spring Data JPA and AngularJS 2.
The demo is an implementation of Angular's Tour of Heroes tutorial. The demo is written in Kotlin and TypeScript.

The Heroes are stored in an in-memory H2 database. The H2 schema is managed by Flyway.

You can start the Angular2 App and access it on `http://localhost:3000`:

`gradlew npmStartServer`

You can start the Spring Boot App and access it on `http://localhost:8090`:

`gradlew bootRun`

Webpack proxies the request from Angular2 to Spring Boot.

You can package the Spring Boot App and Angular2 App into one Jar file:

`gradlew build`

The Angular2 App is served as static content under `http://localhost:8090/index.html, when you start the application`:

`java -jar spring-boot-server-0.1.0.jar`

TODOs:

- [x] Implement Angular's Tour of Heroes tutorial
- Add Angular2 app as a static resource to the Spring Boot app
- Implement authentication/authorization with Spring Security and JWT Tokens

== Angular's Tour of Heroes

image:docs/tutorial.JPG[]

Add angular2-ui as a dependency to spring-boot-server


= Flexy Pool
Author <mih_vlad@yahoo.com>
v1.0.0, 2014-02-25

:homepage: http://vladmihalcea.com/

== Introduction

The Flexy Pool library brings adaptability to a given Connection Pool, allowing it to resize on demand.
This is very handy since most connection pools offer a limited set of dynamic configuration strategies.

== Features

* extensive connection pool support
** http://docs.codehaus.org/display/BTM/Home[Bitronix Transaction Manager]
** http://commons.apache.org/proper/commons-dbcp/[Apache DBCP]
** http://commons.apache.org/proper/commons-dbcp/[Apache DBCP2]
** http://www.mchange.com/projects/c3p0/[C3P0]
** http://jolbox.com/[BoneCP]
** http://brettwooldridge.github.io/HikariCP/[HikariCP]
* statistics support
** source connection acquiring time histogram
** total connection acquiring time histogram
** retries attempts histogram
** maximum CP size histogram
** connection request count histogram
** connection lease time histogram

== Documentation

. https://github.com/vladmihalcea/flexy-pool/wiki/Installation-Guide[Installation Guide]
. https://github.com/vladmihalcea/flexy-pool/wiki/User-Guide[User Guide]

= Flexy Pool
Author <mih_vlad@yahoo.com>
v1.0.0, 2014-02-25

:homepage: http://vladmihalcea.com/

== Introduction

The Flexy Pool library brings adaptability to a given Connection Pool, allowing it to resize on demand.
This is very handy since most connection pools offer a limited set of dynamic configuration strategies.

image::https://raw.githubusercontent.com/wiki/vladmihalcea/flexy-pool/image/architecture/FlexyPoolArchitecture.gif[Flexy Pool Architecture]

== Features

* extensive connection pool support
** http://docs.codehaus.org/display/BTM/Home[Bitronix Transaction Manager]
** http://commons.apache.org/proper/commons-dbcp/[Apache DBCP]
** http://commons.apache.org/proper/commons-dbcp/[Apache DBCP2]
** http://www.mchange.com/projects/c3p0/[C3P0]
** http://jolbox.com/[BoneCP]
** http://brettwooldridge.github.io/HikariCP/[HikariCP]
* statistics support
** source connection acquiring time histogram
** total connection acquiring time histogram
** retries attempts histogram
** maximum CP size histogram
** connection request count histogram
** connection lease time histogram

== Documentation

. https://github.com/vladmihalcea/flexy-pool/wiki/Installation-Guide[Installation Guide]
. https://github.com/vladmihalcea/flexy-pool/wiki/User-Guide[User Guide]

Add Flexy Pool Architecture diagram

Add Flexy Pool Architecture diagram


// Module included in the following assemblies:
//
// * storage/persistent_storage/persistent-storage-nfs.adoc

[id="nfs-selinux_{context}"]
= SELinux

By default, SELinux does not allow writing from a Pod to a remote
NFS server. The NFS volume mounts correctly, but is read-only.

To enable writing to a remote NFS server, follow the below procedure.

.Prerequisites

* The `container-selinux` package must be installed. This package provides
the `virt_use_nfs` SELinux boolean.

.Procedure

* Enable the `virt_use_nfs` boolean using the following command.
The `-P` option makes this boolean persistent across reboots.
+
[source,terminal]
----
# setsebool -P virt_use_nfs 1
----

// Module included in the following assemblies:
//
// * storage/persistent_storage/persistent-storage-nfs.adoc

[id="nfs-selinux_{context}"]
= SELinux

{op-system-base-full} and {op-system-first} systems are configured to use SELinux on remote NFS servers by default.

For non-{op-system-base} and non-{op-system} systems, SELinux does not allow writing from a pod to a remote NFS server. The NFS volume mounts correctly but it is read-only. You will need to enable the correct SELinux permissions by using the following procedure.

.Prerequisites

* The `container-selinux` package must be installed. This package provides the `virt_use_nfs` SELinux boolean.

.Procedure

* Enable the `virt_use_nfs` boolean using the following command. The `-P` option makes this boolean persistent across reboots.
+
[source,terminal]
----
# setsebool -P virt_use_nfs 1
----

Fix ISSUE-23216 - add RHEL note

Fix ISSUE-23216 - add RHEL note


= Getting Started
Gary Brown
2015-04-21
:description: How to get started with Scribble
:jbake-type: page
:jbake-status: published
:icons: font

== Getting Started with Scribble.

----
module examples;

global protocol HelloWorld(role Me, role World) {
	hello(Greetings) from Me to World;
	choice at World {
		goodMorning(Compliments) from World to Me;
	} or {
		goodAfternoon(Salutations) from World to Me;
	}
}
----

A very simply example, but this illustrates the basic syntax for a hello world interaction, where a party performing the role Me sends a message of type Greetings to another party performing the role 'World', who subsequently makes a decision which determines which path of the choice will be followed, resulting in a GoodMorning or GoodAfternoon message being exchanged.

=== Working on Scribble source

If you are interested in building Scribble from source, then check out
link:/docs/dev/developer-guide.html[Development resources]

= Getting Started
Gary Brown
2015-04-21
:description: How to get started with Scribble
:jbake-type: page
:jbake-status: published
:icons: font

== Getting Started with Scribble.

----
module example;

type <xsd> "{http://www.acme.com/types}Greetings" from "http://www.acme.com/types/Greetings.xsd" as Greetings;
type <xsd> "{http://www.acme.com/types}Compliments" from "http://www.acme.com/types/Compliments.xsd" as Compliments;
type <xsd> "{http://www.acme.com/types}Salutations" from "http://www.acme.com/types/Salutations.xsd" as Salutations;

global protocol HelloWorld(role Me, role World) {
	hello(Greetings) from Me to World;
	choice at World {
		goodMorning(Compliments) from World to Me;
	} or {
		goodAfternoon(Salutations) from World to Me;
	}
}
----

A very simply example, but this illustrates the basic syntax for a hello world interaction, where a party performing the role Me sends a message of type Greetings to another party performing the role 'World', who subsequently makes a decision which determines which path of the choice will be followed, resulting in a _goodMorning_ or _goodAfternoon_ message being exchanged.

=== Working on Scribble source

If you are interested in building Scribble from source, then check out
link:/docs/dev/developer-guide.html[Development resources]

Add message types to example

Add message types to example


= Spring Cloud for Cloud Foundry

include::intro.adoc[]

The first time you use it the discovery client might be slow owing to
the fact that it has to get an access token from Cloud Foundry.

== Quickstart

include::quickstart.adoc[]

=== Single Sign On

NOTE: All of the OAuth2 SSO and resource server features moved to Spring Boot
in version 1.3. You can find documentation in the
http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/[Spring Boot user guide].

This project provides automatic binding from CloudFoundry service
credentials to the Spring Boot features. If you have a CloudFoundry
service called "sso", for instance, with credentials containing
"client_id", "client_secret" and "auth_domain", it will bind
automatically to the Spring OAuth2 client that you enable with
`@EnableOAuth2Sso` (from Spring Boot). The name of the service can be
parameterized using `spring.oauth2.sso.serviceId`.

= Spring Cloud for Cloud Foundry

include::intro.adoc[]

The first time you use it the discovery client might be slow owing to
the fact that it has to get an access token from Cloud Foundry.

== Discovery

include::quickstart.adoc[]

== Single Sign On

NOTE: All of the OAuth2 SSO and resource server features moved to Spring Boot
in version 1.3. You can find documentation in the
http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/[Spring Boot user guide].

This project provides automatic binding from CloudFoundry service
credentials to the Spring Boot features. If you have a CloudFoundry
service called "sso", for instance, with credentials containing
"client_id", "client_secret" and "auth_domain", it will bind
automatically to the Spring OAuth2 client that you enable with
`@EnableOAuth2Sso` (from Spring Boot). The name of the service can be
parameterized using `spring.oauth2.sso.serviceId`.

Make it obvious the docs are about Discovery


= Minimal-J

Java - but small.

image::doc/frontends.png[]

Minimal-J applications are

* Responsive to use on every device
* Straight forward to specify and implement and therefore
* Easy to plan and manage

=== Idea

Business applications tend to get complex and complicated. Minimal-J prevents this by setting clear rules how an application should behave and how it should be implemented.

Minimal applications may not always look the same. But the UI concepts never change. There are no surprises for the user.

== Technical Features

* Independent of the used UI technology. Implementations for Web / Mobile / Desktop.
* ORM persistence layer for Maria DB or in memory DB. Transactions and Authorization supported.
* Small: The minimalj.jar is still < 1MB
* Very few dependencies
* Applications can run standalone (like SpringBoot)

== Documentation

* link:doc/user_guide/user_guide.adoc[Minimal user guide] User guide for Minimal-J applications.
* link:doc/topics.adoc[Tutorial and examples] Informations for developers.
* link:doc/release_notes.adoc[Release Notes]

== Hello World

How to implement Hello World in Minimal-J:

link:_includes/ex-video.adoc[]

video::0VHz7gv6TpA[youtube]

=== Contact

* Bruno Eberhard, mailto:minimalj@hispeed.ch[minimalj@hispeed.ch]

= Minimal-J

Java - but small.

image::doc/frontends.png[]

Minimal-J applications are

* Responsive to use on every device
* Straight forward to specify and implement and therefore
* Easy to plan and manage

=== Idea

Business applications tend to get complex and complicated. Minimal-J prevents this by setting clear rules how an application should behave and how it should be implemented.

Minimal applications may not always look the same. But the UI concepts never change. There are no surprises for the user.

== Technical Features

* Independent of the used UI technology. Implementations for Web / Mobile / Desktop.
* ORM persistence layer for Maria DB or in memory DB. Transactions and Authorization supported.
* Small: The minimalj.jar is still < 1MB
* Very few dependencies
* Applications can run standalone (like SpringBoot)

== Documentation

* link:doc/user_guide/user_guide.adoc[Minimal user guide] User guide for Minimal-J applications.
* link:doc/topics.adoc[Tutorial and examples] Informations for developers.
* link:doc/release_notes.adoc[Release Notes]

== Hello World

link:http://www.youtube.com/watch?v=0VHz7gv6TpA[How to implement Hello World in Minimal-J]

=== Contact

* Bruno Eberhard, mailto:minimalj@hispeed.ch[minimalj@hispeed.ch]

Include Hello World Youtube video

Include Hello World Youtube video


[NOTE]
====
This technology is considered {extension-status}.

ifeval::["{extension-status}" == "experimental"]
In _experimental_ mode, early feedback is requested to mature the idea.
There is no guarantee of stability nor long term presence in the platform until the solution matures.
Feedback is welcome on our https://groups.google.com/d/forum/quarkus-dev[mailing list] or as issues in our https://github.com/quarkusio/quarkus/issues[GitHub issue tracker].
endif::[]
ifeval::["{extension-status}" == "preview"]
In _preview_, backward compatibility and presence in the ecosystem is not guaranteed.
Specific improvements might require changing configuration or APIs, and plans to become _stable_ are under way.
Feedback is welcome on our https://groups.google.com/d/forum/quarkus-dev[mailing list] or as issues in our https://github.com/quarkusio/quarkus/issues[GitHub issue tracker].
endif::[]
ifeval::["{extension-status}" == "stable"]
Being _stable_, backward compatibility and presence in the ecosystem are taken very seriously.
endif::[]

For a full list of possible statuses, check our https://quarkus.io/faq/#extension-status[FAQ entry].
====

[NOTE]
====
This technology is considered {extension-status}.

ifeval::["{extension-status}" == "experimental"]
In _experimental_ mode, early feedback is requested to mature the idea.
There is no guarantee of stability nor long term presence in the platform until the solution matures.
Feedback is welcome on our https://groups.google.com/d/forum/quarkus-dev[mailing list] or as issues in our https://github.com/quarkusio/quarkus/issues[GitHub issue tracker].
endif::[]
ifeval::["{extension-status}" == "preview"]
In _preview_, backward compatibility and presence in the ecosystem is not guaranteed.
Specific improvements might require changing configuration or APIs, and plans to become _stable_ are under way.
Feedback is welcome on our https://groups.google.com/d/forum/quarkus-dev[mailing list] or as issues in our https://github.com/quarkusio/quarkus/issues[GitHub issue tracker].
endif::[]
ifeval::["{extension-status}" == "stable"]
Being _stable_, backward compatibility and presence in the ecosystem are taken very seriously.
endif::[]
ifeval::["{extension-status}" == "deprecated"]
Being _deprecated_ means that this extension is likely to be replaced or removed in a future version of Quarkus.
endif::[]

For a full list of possible statuses, check our https://quarkus.io/faq/#what-are-the-extension-statuses[FAQ entry].
====

Add `deprecated` to extension status note

Also fix the Extension status URL


== Spring Cloud Starters

include::intro.adoc[]

== Spring Cloud Starters
:github: https://github.com/spring-cloud/spring-cloud-starters
:githubmaster: {github}/tree/master
:docslink: {githubmaster}/docs/src/main/asciidoc

include::intro.adoc[]

include::https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/docs/src/main/asciidoc/contributing-docs.adoc[]

Add link to github in rendered docs

Add link to github in rendered docs


[[rest-api-unique-indexes]]
== Unique Indexing ==

For uniqueness enforcements, there are two modes:

* URL Parameter `unique=get_or_create`: Create a new node/relationship and index it if no existing one can be found. If an existing node/relationship is found, discard the sent data and return the existing node/relationship.

* URL Parameter `unique=create_or_fail`: Create a new node/relationship if no existing one can be found in the index. If an existing node/relationship is found, return a conflict error.

For more information, see <<transactions-unique-nodes>>.

include::get-or-create-unique-node-(create).asciidoc[]

include::get-or-create-unique-node-(existing).asciidoc[]

include::create-a-unique-node-or-return-fail-(create).asciidoc[]

include::create-a-unique-node-or-return-fail-(fail).asciidoc[]

include::get-or-create-unique-relationship-(create).asciidoc[]

include::get-or-create-unique-relationship-(existing).asciidoc[]

include::create-a-unique-relationship-or-return-fail-(create).asciidoc[]

include::create-a-unique-relationship-or-return-fail-(fail).asciidoc[]

[[rest-api-unique-indexes]]
== Unique Indexing ==

NOTE: As of Neo4j 2.0, unique constraints have been added. These make Neo4j enforce the uniqueness,
guaranteeing that uniqueness is maintained. See <<graphdb-neo4j-schema-constraints>> for details about this.

For uniqueness enforcements, there are two modes:

* URL Parameter `unique=get_or_create`: Create a new node/relationship and index it if no existing one can be found.
If an existing node/relationship is found, discard the sent data and return the existing node/relationship.

* URL Parameter `unique=create_or_fail`: Create a new node/relationship if no existing one can be found in the index.
If an existing node/relationship is found, return a conflict error.

For more information, see <<transactions-unique-nodes>>.

include::get-or-create-unique-node-(create).asciidoc[]

include::get-or-create-unique-node-(existing).asciidoc[]

include::create-a-unique-node-or-return-fail-(create).asciidoc[]

include::create-a-unique-node-or-return-fail-(fail).asciidoc[]

include::get-or-create-unique-relationship-(create).asciidoc[]

include::get-or-create-unique-relationship-(existing).asciidoc[]

include::create-a-unique-relationship-or-return-fail-(create).asciidoc[]

include::create-a-unique-relationship-or-return-fail-(fail).asciidoc[]

Add reference to unique constraints to unique index chapter.


// Module included in the following assemblies:
//
// * machine_management/applying_autoscaling.adoc
// * machine_management/creating-infrastructure-machinesets.adoc
// * machine_management/creating-machinesets.adoc
// * machine_management/deploying-machine-health-checks.adoc
// * machine_management/manually-scaling-machinesets.adoc

[IMPORTANT]
====
This process is not applicable to clusters that use user-provisioned
infrastructure. Because you manually provisioned your machines yourself, you
cannot use the advanced machine management and scaling capabilities
that an installer-provisioned infrastructure cluster offers.
====

// Module included in the following assemblies:
//
// * machine_management/applying_autoscaling.adoc
// * machine_management/creating-infrastructure-machinesets.adoc
// * machine_management/creating-machinesets.adoc
// * machine_management/deploying-machine-health-checks.adoc
// * machine_management/manually-scaling-machinesets.adoc

[IMPORTANT]
====
This process is not applicable to clusters where you manually provisioned the machines yourself. You
can use the advanced machine management and scaling capabilities only in clusters where the machine API is operational.
====

Remove ipi/upi dichotomy for machine management capabilities

Usage of the machine API does NOT mandate that the customer used IPI. The only requirement is that the customer delegates the ability to create lifecycle machines to the product.


== Using a pre-release version

Pre-release versions of `AsciidoctorJ` are published to oss.sonatype.org.
The exact location of the repository will be announced.
Final releases are released to both Maven Central.

Here's how to use a pre-release version in Maven:

[source, xml]
----
    <repositories>
        <repository>
            <id>staging</id>
            <url>https://oss.sonatype.org/content/repositories/orgasciidoctor-1234</url> <1>
            <releases>
                <enabled>true</enabled>
            </releases>
        </repository>
    </repositories>
----
<1> The exact URL differs for every build

Fix doc filename instead of title shown in nav menu


= Gradle Docker Plugin User Guide & Examples
:uri-bmuschko-blog: https://bmuschko.com/blog
:uri-ghpages: https://bmuschko.github.io/gradle-docker-plugin
:uri-github: https://github.com/bmuschko/gradle-docker-plugin
:uri-gradle-docs: https://docs.gradle.org/current

include::00-intro.adoc[]

include::10-remote-api-plugin.adoc[]

include::20-java-application-plugin.adoc[]

include::30-spring-boot-application-plugin.adoc[]

include::40-changes.adoc[]

= Gradle Docker Plugin User Guide & Examples
:uri-bmuschko-blog: https://bmuschko.com/blog
:uri-ghpages: https://bmuschko.github.io/gradle-docker-plugin/{gradle-project-version}
:uri-github: https://github.com/bmuschko/gradle-docker-plugin
:uri-gradle-docs: https://docs.gradle.org/current

include::00-intro.adoc[]

include::10-remote-api-plugin.adoc[]

include::20-java-application-plugin.adoc[]

include::30-spring-boot-application-plugin.adoc[]

include::40-changes.adoc[]

Use version in API link

Use version in API link


[[rest-api-unique-indexes]]
== Unique Indexes ==

For uniqueness enforcements, there are two modes:

* URL Parameter `unique=get_or_create`: Create a new node/relationship and index it if no existing one can be found. If an existing node/relationship is found, discard the sent data and return the existing node/relationship.

* URL Parameter `unique=create_or_fail`: Create a new node/relationship if no existing one can be found in the index. If an existing node/relationship is found, return a conflict error.

For more information, see <<transactions-unique-nodes>>.

include::get-or-create-unique-node-(create).asciidoc[]

include::get-or-create-unique-node-(existing).asciidoc[]

include::create-a-unique-node-or-return-fail-(create).asciidoc[]

include::create-a-unique-node-or-return-fail-(fail).asciidoc[]

include::get-or-create-unique-relationship-(create).asciidoc[]

include::get-or-create-unique-relationship-(existing).asciidoc[]

include::create-a-unique-relationship-or-return-fail-(create).asciidoc[]

include::create-a-unique-relationship-or-return-fail-(fail).asciidoc[]

[[rest-api-unique-indexes]]
== Unique Indexes ==

For uniqueness enforcements, there are two modes:

* URL Parameter `uniqueness=get_or_create`: Create a new node/relationship and index it if no existing one can be found. If an existing node/relationship is found, discard the sent data and return the existing node/relationship.

* URL Parameter `uniqueness=create_or_fail`: Create a new node/relationship if no existing one can be found in the index. If an existing node/relationship is found, return a conflict error.

For more information, see <<transactions-unique-nodes>>.

include::get-or-create-unique-node-(create).asciidoc[]

include::get-or-create-unique-node-(existing).asciidoc[]

include::create-a-unique-node-or-return-fail-(create).asciidoc[]

include::create-a-unique-node-or-return-fail-(fail).asciidoc[]

include::get-or-create-unique-relationship-(create).asciidoc[]

include::get-or-create-unique-relationship-(existing).asciidoc[]

include::create-a-unique-relationship-or-return-fail-(create).asciidoc[]

include::create-a-unique-relationship-or-return-fail-(fail).asciidoc[]

Fix documentation bug for unique indexes in REST.


= Breaking changes in 2.10
:page-sidebar: am_2_x_sidebar
:page-permalink: am/2.x/am_breaking_changes_2.10.html
:page-folder: am/installation-guide
:page-layout: am

== JAR Manifest file has changed

Starting from version 2.10.10, the Main-Class of the entry point of the runnable management and gateway application has changed due to typo error.

----
AM Management API

  - <mainClass>io.gravitee.am.management.standalone.boostrap.Bootstrap</mainClass>
  + <mainClass>io.gravitee.am.management.standalone.bootstrap.Bootstrap</mainClass>

AM Gateway

  - <mainClass>io.gravitee.am.gateway.boostrap.Bootstrap</mainClass>
  + <mainClass>io.gravitee.am.gateway.bootstrap.Bootstrap</mainClass>
----

It could have an impact if you are using your own custom build/launch script with command like `java -jar gravitee-am-*-bootstrap.jar`.
Be sure to test this scenario before going further in your production environment.

NOTE: There is no impact if you rely on the built-in gravitee(.bat) script.

== Docker images
All the UI based docker images (console) are now using HTTP port 8080 and HTTPS port 8443 by default to
avoid the need of a root account to use 80/443 to improve the security of our platform.

Update breaking changes for docker images


[source, bash, subs=attributes+, role="primary asciidoc-tabs-sync-cli"]
.CLI
----
ifdef::build-additional-parameters[]
quarkus build --native -Dquarkus.native.container-build=true {build-additional-parameters}
endif::[]
ifndef::build-additional-parameters[]
quarkus build --native -Dquarkus.native.container-build=true
endif::[]
----
ifndef::devtools-no-maven[]
ifdef::devtools-wrapped[+]
[source, bash, subs=attributes+, role="secondary asciidoc-tabs-sync-maven"]
.Maven
----
ifdef::build-additional-parameters[]
./mvnw package -Dnative -Dquarkus.native.container-build=true {build-additional-parameters}
endif::[]
ifndef::build-additional-parameters[]
./mvnw package -Dnative -Dquarkus.native.container-build=true
endif::[]
----
endif::[]
ifndef::devtools-no-gradle[]
ifdef::devtools-wrapped[+]
[source, bash, subs=attributes+, role="secondary asciidoc-tabs-sync-gradle"]
.Gradle
----
ifdef::build-additional-parameters[]
./gradlew build -Dquarkus.package.type=native -Dquarkus.native.container-build=true {build-additional-parameters}
endif::[]
ifndef::build-additional-parameters[]
./gradlew build -Dquarkus.package.type=native -Dquarkus.native.container-build=true
endif::[]
----
endif::[]

[source, bash, subs=attributes+, role="primary asciidoc-tabs-sync-cli"]
.CLI
----
ifdef::build-additional-parameters[]
quarkus build --native --no-tests -Dquarkus.native.container-build=true {build-additional-parameters}
endif::[]
ifndef::build-additional-parameters[]
quarkus build --native --no-tests -Dquarkus.native.container-build=true
endif::[]
# The --no-tests flag is required only on Windows and macOS.
----
ifndef::devtools-no-maven[]
ifdef::devtools-wrapped[+]
[source, bash, subs=attributes+, role="secondary asciidoc-tabs-sync-maven"]
.Maven
----
ifdef::build-additional-parameters[]
./mvnw package -Dnative -Dquarkus.native.container-build=true {build-additional-parameters}
endif::[]
ifndef::build-additional-parameters[]
./mvnw package -Dnative -Dquarkus.native.container-build=true
endif::[]
----
endif::[]
ifndef::devtools-no-gradle[]
ifdef::devtools-wrapped[+]
[source, bash, subs=attributes+, role="secondary asciidoc-tabs-sync-gradle"]
.Gradle
----
ifdef::build-additional-parameters[]
./gradlew build -Dquarkus.package.type=native -Dquarkus.native.container-build=true {build-additional-parameters}
endif::[]
ifndef::build-additional-parameters[]
./gradlew build -Dquarkus.package.type=native -Dquarkus.native.container-build=true
endif::[]
----
endif::[]

Improve doc for containerized native build

On macOS and Windows the following command fails:
`quarkus build --native -Dquarkus.native.container-build=true`.
Reason is that the Quarkus CLI runs integration tests against binary built in Linux container.
The produced binary is ELF not runnable under another OS.

Signed-off-by: Matej Vasek <641136dff7ce0a7463dc13442864dad9b6842739@redhat.com>


== Rook - Sane, smart, fast, Clojure web services

image:http://clojars.org/io.aviso/rook/latest-version.svg[Clojars Project, link="http://clojars.org/io.aviso/rook"]

image:https://drone.io/github.com/AvisoNovate/rook/status.png[Build Status, link="https://drone.io/github.com/AvisoNovate/rook"]

Rook is a set of middleware and handlers to enable metadata-based routing for https://github.com/ring-clojure/ring[Ring] web applications.

The intention is to expose a Clojure _namespace_ as a web service _resource_; there's a default mapping of HTTP verbs
and paths to function names; these can be extended or overridden by metadata on the functions in the namespace.

The end result is that a compliant web service resource can be created in very little code.

Rook also supports Swagger 2.0: a detailed JSON description of your web service is generated directly from the functions and metadata.

Rook is available under the terms of the Apache Software License 2.0.

link:https://portal.aviso.io/#/document/open-source/rook/Current[Full Documentation]

## Rook - Sane, smart, fast, Clojure web services

image:http://clojars.org/io.aviso/rook/latest-version.svg[Clojars Project, link="http://clojars.org/io.aviso/rook"]

image:https://drone.io/github.com/AvisoNovate/rook/status.png[Build Status, link="https://drone.io/github.com/AvisoNovate/rook"]

Rook is a set of middleware and handlers to enable metadata-based routing for https://github.com/ring-clojure/ring[Ring] web applications.

The intention is to expose a Clojure _namespace_ as a web service _resource_; there's a default mapping of HTTP verbs
and paths to function names; these can be extended or overridden by metadata on the functions in the namespace.

The end result is that a compliant web service resource can be created in very little code.

Rook also supports Swagger 2.0: a detailed JSON description of your web service is generated directly from the functions and metadata.

Rook is available under the terms of the Apache Software License 2.0.

link:https://portal.aviso.io/#/document/open-source/rook/Current[Full Documentation]

Use correct Asciidoc headers (not Markdown)


[id="learn-about-ovn-kubernetes"]
= About the OVN-Kubernetes Pod network provider
include::modules/common-attributes.adoc[]
:context: learn-about-ovn-kubernetes

toc::[]

include::modules/nw-ovn-technology-preview.adoc[leveloffset=+1]

[id="ovn-kubernetes-metrics"]
== Exposed metrics

The OVN-Kubernetes network provider exposes certain metrics for use by the Prometheus-based {product-title} cluster monitoring stack.

// openshift/ovn-kubernetes => go-controller/pkg/ovn/metrics.go

.Metrics exposed by OVN-Kubernetes
[cols="2a,8a",options="header"]
|===
|Name |Description

|`nb_e2e_timestamp`
|A timestamp persisted to the Open vSwitch (OVN) northbound database and updated frequently.

|`pod_creation_latency_seconds`
|The latency between when a Pod is created and when the Pod is annotated by OVN-Kubernetes. The higher the latency, the more time that elapses before a Pod is available for network connectivity.

|===

[id="learn-about-ovn-kubernetes"]
= About the OVN-Kubernetes Pod network provider
include::modules/common-attributes.adoc[]
:context: learn-about-ovn-kubernetes

toc::[]

include::modules/nw-ovn-technology-preview.adoc[leveloffset=+1]

[id="ovn-kubernetes-metrics"]
== Exposed metrics

The OVN-Kubernetes network provider exposes certain metrics for use by the Prometheus-based {product-title} cluster monitoring stack.

// openshift/ovn-kubernetes => go-controller/pkg/ovn/metrics.go

.Metrics exposed by OVN-Kubernetes
[cols="2a,8a",options="header"]
|===
|Name |Description

|`ovnkube_master_nb_e2e_timestamp`
|A timestamp persisted to the Open vSwitch (OVN) northbound database and updated frequently.

|`ovnkube_master_pod_creation_latency_seconds`
|The latency between when a Pod is created and when the Pod is annotated by OVN-Kubernetes. The higher the latency, the more time that elapses before a Pod is available for network connectivity.

|===

Update the metric names for OVN-Kubernetes


= Transform Query Parameters Policy

ifdef::env-github[]
image:https://ci.gravitee.io/buildStatus/icon?job=gravitee-io/gravitee-policy-transformqueryparams/master["Build status", link="https://ci.gravitee.io/job/gravitee-io/job/gravitee-policy-transformqueryparams/"]
image:https://badges.gitter.im/Join Chat.svg["Gitter", link="https://gitter.im/gravitee-io/gravitee-io?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge"]
endif::[]

== Phase

[cols="2*", options="header"]
|===
^|onRequest
^|onResponse

^.^| X
^.^|

|===

== Description

The Transform Query Parameters policy is used to override incoming request HTTP query parameters.
You can override these HTTP query parameters by:

* Clearing all existing query parameters
* Adding or updating list of query parameters
* Removing them individually

[source, json]
.Sample
----
"transform-queryparams": {
    "addQueryParameters": [
        {
            "name": "myParam",
            "value": "{#request.id}"
        }
    ],
    "removeQueryParameters": [
        "secretParam"
    ]
}
----

= Transform Query Parameters Policy

ifdef::env-github[]
image:https://ci.gravitee.io/buildStatus/icon?job=gravitee-io/gravitee-policy-transformqueryparams/master["Build status", link="https://ci.gravitee.io/job/gravitee-io/job/gravitee-policy-transformqueryparams/"]
image:https://badges.gitter.im/Join Chat.svg["Gitter", link="https://gitter.im/gravitee-io/gravitee-io?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge"]
endif::[]

== Phase

[cols="2*", options="header"]
|===
^|onRequest
^|onResponse

^.^| X
^.^|

|===

== Description

The Transform Query Parameters policy is used to override incoming request HTTP query parameters.
You can override these HTTP query parameters by:

* Clearing all existing query parameters
* Adding or updating list of query parameters
* Removing them individually

The values of query parameters of the incoming request are accessible via the `{#request.params['query_parameter_name']}` construct.

The example below shows how to add the ID of the incoming request to the outgoing request.

[source, json]
.Sample
----
"transform-queryparams": {
    "addQueryParameters": [
        {
            "name": "myParam",
            "value": "{#request.id}"
        }
    ],
    "removeQueryParameters": [
        "secretParam"
    ]
}
----

Document how to access incoming query parameters

It wasn't clear how to use values of query parameters of the incoming request.


# react-popover
:toc: macro

A specification backed popover for react

toc::[]

## Installation

----
npm install react-popover
----

## Examples

The `examples` folder contains basic applications of this component. To try them locally run `npm start`.

## API

TODO

# react-popover
:toc: macro

A specification backed popover for react. See [demo](https://littlebits.github.io/react-popover/build).

toc::[]

## Installation

----
npm install react-popover
----

## Examples

The `examples` folder contains basic applications of this component. To try them locally run `npm start`.

## API

TODO

Update readme with demo link

Update readme with demo link


= OmniJ Developer's Guide
Sean Gilligan
v0.1, July 30, 2015: Early draft
:numbered:
:toc:
:toclevels: 3
:linkattrs:
:imagesdir: images

Paragraph TBD.

== Introduction to OmniJ

This section is TBD. For now the project http://github.com/OmniLayer/OmniJ/README.adoc[README] is the best place to get started.

== JSON-RPC Clients

[plantuml, diagram-classes, svg]
....
skinparam packageStyle Rect
skinparam shadowing false
hide empty members

namespace com.msgilligan.bitcoin.rpc {
    class RPCClient
    RPCClient <|-- class DynamicRPCClient << Groovy >>
    RPCClient <|-- BitcoinClient
    BitcoinClient <|-- class BitcoinCLIClient << Groovy >>
}

namespace foundation.omni.rpc {
    com.msgilligan.bitcoin.rpc.BitcoinClient <|-- OmniClient
    OmniClient <|-- OmniExtendedClient
    OmniExtendedClient <|-- class OmniCLIClient << Groovy >>
}
....

= OmniJ Developer's Guide
Sean Gilligan
v0.1, July 30, 2015: Early draft
:numbered:
:toc:
:toclevels: 3
:linkattrs:
:imagesdir: images

Paragraph TBD.

== Introduction to OmniJ

This section is TBD. For now the project https://github.com/OmniLayer/OmniJ#omnij-project[README] is the best place to get started.

== JSON-RPC Clients

[plantuml, diagram-classes, svg]
....
skinparam packageStyle Rect
skinparam shadowing false
hide empty members

namespace com.msgilligan.bitcoin.rpc {
    class RPCClient
    RPCClient <|-- class DynamicRPCClient << Groovy >>
    RPCClient <|-- BitcoinClient
    BitcoinClient <|-- class BitcoinCLIClient << Groovy >>
}

namespace foundation.omni.rpc {
    com.msgilligan.bitcoin.rpc.BitcoinClient <|-- OmniClient
    OmniClient <|-- OmniExtendedClient
    OmniExtendedClient <|-- class OmniCLIClient << Groovy >>
}
....

Fix broken link to OmniJ Project README

Fix broken link to OmniJ Project README


= Internal glossary

This is not a document to be published outside.
This is a collection of preferred term in the documentation and website.
Please stay witin these terms for consistency.

Live reload:: for our `quarkus:dev` capability
GraalVM:: preferred term for the VM creating native executable. No space.
Substrate VM:: non-preferred. Only if you want to clarify which part of GraalVM we use.
Native Executable:: the executable that is compiled to native 1s and 0s
Docker image:: for the actual `Dockerfile` definition and when the tool chain is involved
Container:: when we discuss Quarkus running in... containers
Supersonic Subatomic Java:: our tagline
Kubernetes Native Java:: our preferred tagline to say that we rock for containers
Developer Joy:: for everything going from live reload to the opinionated layer to a single config file
Unify Imperative and Reactive:: imperative and reactive. 'Nuff said.
Best of breed frameworks and standards:: when we explain our stack

= Internal glossary

This is not a document to be published outside.
This is a collection of preferred term in the documentation and website.
Please stay within these terms for consistency.

* Live reload:: for our `quarkus:dev` capability
* GraalVM:: preferred term for the VM creating native executable. No space.
* Substrate VM:: non-preferred. Only if you want to clarify which part of GraalVM we use.
* Native Executable:: the executable that is compiled to native 1s and 0s
* Docker image:: for the actual `Dockerfile` definition and when the tool chain is involved
* Container:: when we discuss Quarkus running in... containers
* Supersonic Subatomic Java:: our tagline
* Kubernetes Native Java:: our preferred tagline to say that we rock for containers
* Developer Joy:: for everything going from live reload to the opinionated layer to a single config file
* Unify Imperative and Reactive:: imperative and reactive. 'Nuff said.
* Best of breed frameworks and standards:: when we explain our stack

Make the glossary a bit better

Make the glossary a bit better


[[documentation.upgrading]]
== Upgrading From an Earlier Version

You should always ensure that you are running a {github-wiki}/Supported-Versions[supported version] of Spring Boot.

Depending on the version that you are upgrading to, you can find some additional tips here:

* *From 1.x:* <<actuator#upgrading.from-1x, Upgrading from 1.x>>
* *To a new feature release:* <<upgrading#upgrading.to-feature, Upgrading to New Feature Release>>
* *Spring Boot CLI:* <<upgrading#upgrading.cli, Upgrading the Spring Boot CLI>>

[[documentation.upgrading]]
== Upgrading From an Earlier Version

You should always ensure that you are running a {github-wiki}/Supported-Versions[supported version] of Spring Boot.

Depending on the version that you are upgrading to, you can find some additional tips here:

* *From 1.x:* <<upgrading#upgrading.from-1x, Upgrading from 1.x>>
* *To a new feature release:* <<upgrading#upgrading.to-feature, Upgrading to New Feature Release>>
* *Spring Boot CLI:* <<upgrading#upgrading.cli, Upgrading the Spring Boot CLI>>

Fix link to Upgrading From 1.x in multi-page documentation

See gh-30890


= Hashicorp Vault Component
:doctitle: Hashicorp Vault
:shortname: hashicorp-vault
:artifactid: camel-hashicorp-vault
:description: Manage secrets in Hashicorp Vault Service
:since: 3.18
:supportlevel: Preview
:component-header: Only producer is supported
//Manually maintained attributes
:group: Azure
:camel-spring-boot-name: hashicorp-vault

*Since Camel {since}*

*{component-header}*

The hashicorp-vault component that integrates https://www.vaultproject.io/[Hashicorp Vault].

== URI Format

[source,xml]
------------------------------------------------------------
<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-hashicorp-vault</artifactId>
    <version>x.x.x</version>
    <!-- use the same version as your Camel core version -->
</dependency>
------------------------------------------------------------

// component-configure options: START

// component-configure options: END

// component options: START
include::partial$component-configure-options.adoc[]
include::partial$component-endpoint-options.adoc[]
// component options: END

// endpoint options: START

// endpoint options: END

= Hashicorp Vault Component
:doctitle: Hashicorp Vault
:shortname: hashicorp-vault
:artifactid: camel-hashicorp-vault
:description: Manage secrets in Hashicorp Vault Service
:since: 3.18
:supportlevel: Preview
:component-header: Only producer is supported
//Manually maintained attributes
:camel-spring-boot-name: hashicorp-vault

*Since Camel {since}*

*{component-header}*

The hashicorp-vault component that integrates https://www.vaultproject.io/[Hashicorp Vault].

== URI Format

[source,xml]
------------------------------------------------------------
<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-hashicorp-vault</artifactId>
    <version>x.x.x</version>
    <!-- use the same version as your Camel core version -->
</dependency>
------------------------------------------------------------

// component-configure options: START

// component-configure options: END

// component options: START
include::partial$component-configure-options.adoc[]
include::partial$component-endpoint-options.adoc[]
// component options: END

// endpoint options: START

// endpoint options: END

Remove group azure as its not from azure


= To-Do List

- mock_cone_detector creates infinite area and overflows h
- [line-through]#new waypoints shorter than old don't delete existing waypoints#
- adjust waypoints for start position and cone position
- cone area goes down when very close to cone
- [line-through]#parameterize throttle and steering PWM values#
- touch sensor does not work
- cone detection in bright light does not work
- GUIDED mode does not work
- Encode PWM values or range set to use in the waypoints file
- If waypoint encountered before cone is seen, rover goes into HOLD mode
with no recovery. Needs to be fixed.

== Possible To-Do

- [line-through]#Change from using WP_SPEED to CRUISE_SPEED. (Seems to be used by Vicky,
while WP_SPEED is not.)#
- Have a way of manually triggering parameter reload

== Notes

MAV_CMD_DO_SET_HOME appears to reset the map origin, as well as zero the
offset between the map origin and base_link (for /mavros/local_position/pose
and /mavros/local_position/odom).

= To-Do List

- mock_cone_detector creates infinite area and overflows h
- (*DONE*) new waypoints shorter than old don't delete existing waypoints
- adjust waypoints for start position and cone position
- cone area goes down when very close to cone
- (*DONE*) parameterize throttle and steering PWM values
- touch sensor does not work
- cone detection in bright light does not work
- GUIDED mode does not work
- Encode PWM values or range set to use in the waypoints file
- If waypoint encountered before cone is seen, rover goes into HOLD mode
with no recovery. Needs to be fixed.

== Possible To-Do

- (*DONE*) Change from using WP_SPEED to CRUISE_SPEED. (Seems to be used by Vicky,
while WP_SPEED is not.)
- Have a way of manually triggering parameter reload

== Notes

MAV_CMD_DO_SET_HOME appears to reset the map origin, as well as zero the
offset between the map origin and base_link (for /mavros/local_position/pose
and /mavros/local_position/odom).

Mark completed items as DONE instead of using line-through

GitHub's flavor of asciidoc does not support "line-through" for
striking out text. Added explicit "DONE" indication instead.


=== Get the Clusters that Have Command Available

==== Description

Search the clusters that the given command is linked to.

==== Endpoint

`GET /api/v3/applications/{id}/commands`

:snippet-base: {snippets}/command-rest-controller-integration-test/can-get-clusters-for-command/8
:id-base: get-clusters-for-command
:!request-headers:
:request-path-params: {snippet-base}/path-parameters.adoc
:request-query-params: {snippet-base}/request-parameters.adoc
:!request-fields:
:curl-request: {snippet-base}/curl-request.adoc
:httpie-request: {snippet-base}/httpie-request.adoc
:response-headers: {snippet-base}/response-headers.adoc
:response-fields: {snippet-base}/response-fields.adoc
:!response-links:
:http-request: {snippet-base}/http-request.adoc
:http-response: {snippet-base}/http-response.adoc

include::../_apiTemplate.adoc[]

=== Get the Clusters that Have Command Available

==== Description

Search the clusters that the given command is linked to.

==== Endpoint

`GET /api/v3/commands/{id}/clusters`

:snippet-base: {snippets}/command-rest-controller-integration-test/can-get-clusters-for-command/8
:id-base: get-clusters-for-command
:!request-headers:
:request-path-params: {snippet-base}/path-parameters.adoc
:request-query-params: {snippet-base}/request-parameters.adoc
:!request-fields:
:curl-request: {snippet-base}/curl-request.adoc
:httpie-request: {snippet-base}/httpie-request.adoc
:response-headers: {snippet-base}/response-headers.adoc
:response-fields: {snippet-base}/response-fields.adoc
:!response-links:
:http-request: {snippet-base}/http-request.adoc
:http-response: {snippet-base}/http-response.adoc

include::../_apiTemplate.adoc[]

Fix spelling error in endpoint

Fix spelling error in endpoint


= Changelog

== Version 0.3.0

Date: 2014-01-18

- First version splitted from monolitic buddy package.
- No changes from original version.

= Changelog

== Version 0.4.0

Date: unreleased

- Add encode/decode functions to JWS/JWT implementation. Them instead of return
  plain value, return a monadic either. That allows granular error reporting
  instead something like nil that not very useful. The previous sign/unsign
  are conserved for backward compatibility but maybe in future will be removed.

-

== Version 0.3.0

Date: 2014-01-18

- First version splitted from monolitic buddy package.
- No changes from original version.

Update changelog related to jws changes.


== dda - Django Desktop Application

=== Introduction

DDA is an example project to demonstrate how to use Django as a desktop
application.  It provides an alternative to using a GUI framework such as
https://docs.python.org/3.4/library/tkinter.html[Tkinter] or
http://sourceforge.net/projects/pyqt/[PyQt].

It is a work in progress.

=== Credits

To allow the Django Desktop Application to access common javascript and css
files used by the web pages (without having to hit the network), I have
included copies in this distribution.  Here is a list:

 - http://jquery.com/[jQuery (Version 2.1.1)]
 - http://getbootstrap.com/[Bootstrap (Version 3.3.1)]
 - http://glyphicons.com/[Glyphicons] (Graciously donated to Bootstrap)
 - http://silviomoreto.github.io/bootstrap-select/[Bootstrap Select (Version 1.6.3)]

They are all awesome.

Add credits section for included content.


= Creating an Uberjar

Edge provides a script for running pack to build an uberjar.
To use it, you can simply run the below from your project sub-directory (the same folder as your deps.edn).

[source,shell]
----
$ ../bin/onejar -A:prod --args '-m edge.main' project.jar
----

The `-A:prod` indicates an alias you would like to have its `:extra-deps` and `:paths` included in your resulting jar.
`--args` are default arguments to your jar, in this case we are specifying that the application should run edge.main, part of the edge production modules.

You can run this jar in production quite easily:

[source,shell]
----
$ java -Xmx1G -jar project.jar
----

We recommend that you specify the memory usage of your JVM, as the default on Java 6+ is usually insufficient for hosts run only this JVM process.
A rule of thumb is to use 2/3rds of the memory of your host.

= Creating an Uberjar

== OneJar

Edge provides a script for running pack to build an uberjar.
To use it, you can simply run the below from your project sub-directory (the same folder as your deps.edn).

[source,shell]
----
$ ../bin/onejar -A:prod --args '-m edge.main' project.jar
----

The `-A:prod` indicates an alias you would like to have its `:extra-deps` and `:paths` included in your resulting jar.
`--args` are default arguments to your jar, in this case we are specifying that the application should run edge.main, part of the edge production modules.

== Capsule

Build a capsule uberjar using this command:

[source,shell]
----
$ ../bin/capsule -m edge.main -e 'target/prod' -A:prod project.jar
----

If you are using clojurescript in your project make sure you run this command first:

[source,shell]
----
$ clojure -A:build:build/once
----

It will build the clojurescript files and put them in the correct folder to be included in the uberjar.

== Running the jar

You can run the produced jar in production quite easily:

[source,shell]
----
$ java -Xmx1G -jar project.jar
----

We recommend that you specify the memory usage of your JVM, as the default on Java 6+ is usually insufficient for hosts run only this JVM process.
A rule of thumb is to use 2/3rds of the memory of your host.

Add docs for how to use the capsule command


= Callfire API v2 REST client

C# client for Callfire platform API version 2. See link:https://developers.callfire.com/callfire-api-client-csharp.html[Getting Started]
 page for setup instructions.

.*Requirements:*
* .NET 4.6+

.*Dependencies:*
* Newtonsoft.Json >= 7.0.1
* RestSharp >= 106.4.2

.*Table of contents*
* link:https://developers.callfire.com/callfire-api-client-csharp.html[Getting Started]
* link:https://developers.callfire.com/docs.html[REST endpoints documentation and api code samples]
* Have a question ?
** link:https://developers.callfire.com/chat.html[Public chat room]
** link:http://stackoverflow.com/questions/tagged/callfire[Ask on stackoverflow]
** link:https://answers.callfire.com/hc/en-us[Call Us]

= Callfire API v2 REST client

C# client for Callfire platform API version 2. See link:https://developers.callfire.com/callfire-api-client-csharp.html[Getting Started]
 page for setup instructions.

.*Requirements:*
* .NET 4.6+

.*Dependencies:*
* Newtonsoft.Json >= 12.0.2
* RestSharp = 106.6.4 (RestSharp have a bug with serialization to camelCase json string, wait for fix https://github.com/restsharp/RestSharp/issues/1251 before upgrade to newer)

.*Table of contents*
* link:https://developers.callfire.com/callfire-api-client-csharp.html[Getting Started]
* link:https://developers.callfire.com/docs.html[REST endpoints documentation and api code samples]
* Have a question ?
** link:https://developers.callfire.com/chat.html[Public chat room]
** link:http://stackoverflow.com/questions/tagged/callfire[Ask on stackoverflow]
** link:https://answers.callfire.com/hc/en-us[Call Us]

Update readmy with dependency versions

Update readmy with dependency versions


= Report an issue
:awestruct-layout: normalBase
:showtitle:

== Issue tracker

We welcome issue reports (bugs, improvements, new feature requests, ...) in our issue tracker:

*Show https://issues.jboss.org/browse/drools[the JIRA issue tracker].*

Log in and click on the button _Create Issue_ to report a bug, improvement or feature request.

== Pull requests on GitHub

Want to fix the issue yourself? Fork https://github.com/droolsjbpm[the git repository] and send in a pull request.
We usually process all pull requests within a few days.

== Kanban boards

* https://issues.jboss.org/secure/RapidBoard.jspa?rapidView=4016[Drools]
* https://issues.jboss.org/secure/RapidBoard.jspa?rapidView=3828[OptaPlanner]
* https://issues.jboss.org/secure/RapidBoard.jspa?rapidView=3972[jBPM]
* https://issues.jboss.org/secure/RapidBoard.jspa?rapidView=3462[Guvnor]
* AppFormer (todo)
* https://issues.jboss.org/secure/RapidBoard.jspa?rapidView=3838[Designer.NEXT]

= Report an issue
:awestruct-layout: normalBase
:showtitle:

== Issue tracker

We welcome issue reports (bugs, improvements, new feature requests, ...) in our issue tracker:

*Show https://issues.jboss.org/browse/drools[the JIRA issue tracker].*

Log in and click on the button _Create Issue_ to report a bug, improvement or feature request.

== Pull requests on GitHub

Want to fix the issue yourself? Fork https://github.com/droolsjbpm[the git repository] and send in a pull request.
We usually process all pull requests within a few days.

== Kanban boards

* https://issues.jboss.org/secure/RapidBoard.jspa?rapidView=4016[Drools]
* https://issues.jboss.org/secure/RapidBoard.jspa?rapidView=4032[OptaPlanner]
* https://issues.jboss.org/secure/RapidBoard.jspa?rapidView=3972[jBPM]
* https://issues.jboss.org/secure/RapidBoard.jspa?rapidView=3462[Guvnor]
* AppFormer (todo)
* https://issues.jboss.org/secure/RapidBoard.jspa?rapidView=3838[Designer.NEXT]

Update to OptaPlanner scrum board

Update to OptaPlanner scrum board


= Components
:page-sidebar: apim_sidebar
:page-permalink: apim_overview_components.html
:page-folder: apim/overview

Next sections are describing top components which are part of Gravitee.io.

== Gateway
The gateway is the core component of the Gravitee.io platform. You can compare it to a "smart" proxy to understand its goal.

Unlike traditional HTTP proxy, the gateway is able to apply <<apim_overview_plugins.adoc#gravitee-plugins-policies, policies>> (ie. rules) to
both HTTP requests and responses according to your needs, meaning that you can enhance requests and responses processing
by adding transformation, security, and many other crazy features!

.Gravitee.io - Gateway Internal
image::architecture/graviteeio-gateway-internal.png[Gravitee.io - Gateway Internal]

.Gravitee.io - Gateway Architecture
image::architecture/graviteeio-gateway-architecture.png[Gravitee.io - Gateway Architecture]

== Management API
A restful API providing a bunch of services to manage and configure the global platform. All exposed
services are constraint by authentication and authorization rules.
You can find more information by having a look to the <<gravitee-management-api-overview, Management API>> section.

== Management UI
This is the Web UI for <<gravitee-components-mgmt-api, Gravitee.io Management API>>. This UI acts as a management tool
for API Publishers but also as a portal for your API Consumers.

= Components
:page-sidebar: apim_sidebar
:page-permalink: apim_overview_components.html
:page-folder: apim/overview

Next sections are describing top components which are part of Gravitee.io.

== Gateway
The gateway is the core component of the Gravitee.io platform. You can compare it to a "smart" proxy to understand its goal.

Unlike traditional HTTP proxy, the gateway is able to apply <<apim_overview_plugins.adoc#gravitee-plugins-policies, policies>> (ie. rules) to
both HTTP requests and responses according to your needs, meaning that you can enhance requests and responses processing
by adding transformation, security, and many other crazy features!

.Gravitee.io - Gateway Internal
image::architecture/graviteeio-gateway-internal.png[Gravitee.io - Gateway Internal]

.Gravitee.io - Gateway Architecture
image::architecture/graviteeio-gateway-architecture.png[Gravitee.io - Gateway Architecture]

== Management API
A restful API providing a bunch of services to manage and configure the global platform. All exposed
services are constraint by authentication and authorization rules.
You can find more information by having a look to the link:/apim_installguide_management_api_documentation.html[Management API > Documentation] section.

== Management UI
This is the Web UI for <<gravitee-components-mgmt-api, Gravitee.io Management API>>. This UI acts as a management tool
for API Publishers but also as a portal for your API Consumers.

Fix the documentation of REST API link

Fix the documentation of REST API link


= Talend component for Neo4j
Benoit Simard <github@bsimard.com>
V1.0
:experimental:
:toc:
:toc-placement: preamble
:toc-title: pass:[<b>Table of Contents</b>]
:outfilesuffix-old: {outfilesuffix}
ifdef::env-github[:outfilesuffix: .adoc]
ifndef::env-github[]
:idprefix:
:idseparator: -
endif::[]

image:https://travis-ci.org/sim51/neo4j-talend-component.svg?branch=master["Build Status", link="https://travis-ci.org/sim51/neo4j-talend-component"]

image:https://coveralls.io/repos/github/sim51/neo4j-talend-component/badge.svg?branch=master["Coverage Status", link="https://coveralls.io/github/sim51/neo4j-talend-component?branch=master"]

Project website : http://sim51.github.io/neo4j-talend-component/

== TODO

* Remake packaging phase for the assembly (there is some cobertura thing into compile class on the archive)

Remove done job on todo list

Remove done job on todo list


== asciidoctor-fopub-embed-svg-example

An example for embedding SVG images in an asciidoctor document.

=== Setup

----
bundle install
----

=== How to make the target pdf file

Running the command below make the target pdf file named "class_diagram.pdf" out of "class_diagram.adoc"

----
bundle exec rake
----

=== Watch *.adoc files

Running the command below, rake watches "\*.adoc" files and build "*.adoc" files whenever they are modified.

----
bundle exec rake watch
----

=== Example output files

You can see the example output files at

* https://hnakamur.github.io/asciidoctor-fopub-embed-svg-example/class_diagram.pdf[class_diagram.pdf]

=== Note

You must be add `width` and `height` attributes to the root `<svg>` element.
Without these, you got redundant spaces between the embedded image and the following text.

== asciidoctor-fopub-embed-svg-example

An example for embedding SVG images in an asciidoctor document.

=== Setup

----
bundle install
----

=== How to make the target pdf file

Running the command below make the target pdf file named "class_diagram.pdf" out of "class_diagram.adoc"

----
bundle exec rake
----

=== Watch *.adoc files

Running the command below, rake watches "\*.adoc" files and build "*.adoc" files whenever they are modified.

----
bundle exec rake watch
----

=== Example output files

You can see the example output files at

* https://hnakamur.github.io/asciidoctor-fopub-embed-svg-example/class_diagram.pdf[class_diagram.pdf]
* https://hnakamur.github.io/asciidoctor-fopub-embed-svg-example/class_diagram.html[class_diagram.html]

=== Note

You must be add `width` and `height` attributes to the root `<svg>` element.
Without these, you got redundant spaces between the embedded image and the following text.

Add deleted html example link

Add deleted html example link


== Source release to pypi

    python setup.py release --skip-tests --pypi

== Sign source release for GitHub

   gpg --detach-sign dist/yubikey-manager-VERSION.tar.gz

== Releasing on macOS

    python setup.py executable
    resources/fix_libusb_dep_app_bundle.sh dist/YubiKey\ Manager.app/
    codesign -s 'Developer ID Application' dist/YubiKey\ Manager.app/ --deep
    sudo pkgbuild --install-location /Applications --component dist/YubiKey\ Manager.app/ dist/installer.pkg
    productsign -s 'Developer ID Installer' dist/installer.pkg dist/yubikey-manager-VERSION-mac.pkg
    gpg --detach-sign dist/yubikey-manager-VERSION-mac.pkg

== Releasing on Windows

    python setup.py executable
    gpg --detach-sign dist/yubikey-manager-VERSION-win.exe

== Source release to pypi

    python setup.py release --skip-tests --pypi

== Sign source release for GitHub

   gpg --detach-sign dist/yubikey-manager-VERSION.tar.gz

== Releasing on macOS

    python setup.py executable
    resources/fix_libusb_dep_app_bundle.sh dist/YubiKey\ Manager.app/
    codesign --deep --force --verify --verbose --sign 'Developer ID Application' dist/YubiKey\ Manager.app/
    sudo pkgbuild --sign 'Developer ID Installer' --install-location /Applications --component dist/YubiKey\ Manager.app/ dist/installer.pkg
    gpg --detach-sign dist/yubikey-manager-VERSION-mac.pkg

== Releasing on Windows

    python setup.py executable
    gpg --detach-sign dist/yubikey-manager-VERSION-win.exe

Update code signing commands for macOS

Update code signing commands for macOS


= Implementation protocols
Franz Wilhelmstötter <franz.wilhelmstoetter@gmail.com>
:Author Initials: FWi
:toc:
:icons:
:numbered:
:website: http://jenetics.io/

While implementing the library, a lot of concrete implementation decisions have been made. This document gives a more detailed description of some selected implementation details.

include::CreateRandomSeed.adoc[]

include::OptimizeMinimum.adoc[]

= Implementation protocols
Franz Wilhelmstötter <franz.wilhelmstoetter@gmail.com>
:Author Initials: FWi
:toc:
:icons:
:numbered:
:website: http://jenetics.io/

While implementing the library, a lot of concrete implementation decisions have been made. This document gives a more detailed description of selected implementation details.

include::CreateRandomSeed.adoc[]

include::OptimizeMinimum.adoc[]

Update main document of 'Implementation protocol'.


[[elasticsearch-reference]]
= Elasticsearch Reference

:version:       2.2.0
:branch:        2.0
:major-version: 2.x
:jdk:           1.8.0_25
:defguide:      https://www.elastic.co/guide/en/elasticsearch/guide/current
:plugins:       https://www.elastic.co/guide/en/elasticsearch/plugins/2.x
:issue:         https://github.com/elastic/elasticsearch/issues
:pull:          https://github.com/elastic/elasticsearch/pull

include::getting-started.asciidoc[]

include::setup.asciidoc[]

include::migration/index.asciidoc[]

include::api-conventions.asciidoc[]

include::docs.asciidoc[]

include::search.asciidoc[]

include::aggregations.asciidoc[]

include::indices.asciidoc[]

include::cat.asciidoc[]

include::cluster.asciidoc[]

include::query-dsl.asciidoc[]

include::mapping.asciidoc[]

include::analysis.asciidoc[]

include::modules.asciidoc[]

include::index-modules.asciidoc[]

include::testing.asciidoc[]

include::glossary.asciidoc[]

include::release-notes.asciidoc[]

include::redirects.asciidoc[]

[[elasticsearch-reference]]
= Elasticsearch Reference

:version:       2.2.0
:branch:        2.x
:major-version: 2.x
:jdk:           1.8.0_25
:defguide:      https://www.elastic.co/guide/en/elasticsearch/guide/current
:plugins:       https://www.elastic.co/guide/en/elasticsearch/plugins/2.x
:issue:         https://github.com/elastic/elasticsearch/issues/
:pull:          https://github.com/elastic/elasticsearch/pull/

include::getting-started.asciidoc[]

include::setup.asciidoc[]

include::migration/index.asciidoc[]

include::api-conventions.asciidoc[]

include::docs.asciidoc[]

include::search.asciidoc[]

include::aggregations.asciidoc[]

include::indices.asciidoc[]

include::cat.asciidoc[]

include::cluster.asciidoc[]

include::query-dsl.asciidoc[]

include::mapping.asciidoc[]

include::analysis.asciidoc[]

include::modules.asciidoc[]

include::index-modules.asciidoc[]

include::testing.asciidoc[]

include::glossary.asciidoc[]

include::release-notes.asciidoc[]

include::redirects.asciidoc[]

Docs: Fix :issue: and :pull: asciidoc replacements


= Edge App

Until CIDER 0.17 has been released (which brings improved support for
Clojure CLI), please use a terminal to run `clj`.

Ensure that you are in the `app` sub-directory.

----
$ ./bin/dev
dev=> (go)
----

This starts an nrepl-server, the port is announced on the command line.

== Cursive support

Current versions of Cursive don't support `deps.edn`, but will work with a `pom.xml`.

You can generate the `pom.xml` with the following command:

----
$ clojure -Spom
----

= Edge App

Until CIDER 0.17 has been released (which brings improved support for
Clojure CLI), please use a terminal to run `clj`.

Ensure that you are in the `app` sub-directory.

----
$ ./bin/repl
dev=> (go)
----

This starts an nrepl-server, the port is announced on the command line.

== Cursive support

Current versions of Cursive don't support `deps.edn`, but will work with a `pom.xml`.

You can generate the `pom.xml` with the following command:

----
$ clojure -Spom
----

Update docs to reflect dev->repl

Update docs to reflect dev->repl


# Conventions over configuration

This document covers conventions used in Dogen that may help you build Dockerfiles faster and easier.

## Handling YUM/DNF repo files

In case you add YUM/DNF repo files that you want to put to the `/etc/yum.repos.d` directory
to enable additional repositories Dogen will handle it for you automatically.

If Dogen will detect files
with `.repo` extension in the `scripts` directory located under the target (output) directory Dogen will
automatically copy all these files to `/etc/yum.repos.d` directory and enable them to be used while
installing packages listed in the `packages` section.

After installation Dogen removes newly added repo files from the `/etc/yum.repos.d` directory *automatically*.
If you do not want to have these files removed after installation -- you need to make your repo files
part of some package and install them manually.

### Things to note

1. This feature covers only the situation where you want to add a custom repo file at *build
   time* but you do not want it to be enabled in containers.
2. Repo file name should be the *same* as the repo id in the repository
   (the name between square brackets).
3. There should be *only one* repository per file.
4. Only added repositories will be enabled during install of packages, all other repositories (including default)
   will be *disabled*.

## Running scripts

### Default script name

If you do not specify an `exec` key for a script, dogen will check for a script named `run`
and execute it if it exists.

### Default script execution user

Dogen will execute all scripts as `root` unless you have specified a user with the `user` key.

Document default user is root

Document default user is root


include::{stream-docs-basedir}/core/spring-cloud-stream-core-docs/src/main/asciidoc/spring-cloud-stream-overview.adoc[]

= Binder Implementations

== Apache Kafka Binder

include::{stream-docs-basedir}/kafka/spring-cloud-stream-binder-kafka-docs/src/main/asciidoc/overview.adoc[leveloffset=+1]

== RabbitMQ Binder

include::{stream-docs-basedir}/rabbit/spring-cloud-stream-binder-rabbit-docs/src/main/asciidoc/overview.adoc[leveloffset=+1]
include::{stream-docs-basedir}/rabbit/spring-cloud-stream-binder-rabbit-docs/src/main/asciidoc/dlq.adoc[leveloffset=+1]

Fix the addition of Rabbit DLQ documentation


// Module included in the following assemblies:
//
// * configuring_ingress_cluster_traffic/configuring-ingress-cluster-traffic-ingress-controller.adoc
// * ingress-operator.adoc

[id="nw-ingress-sharding-namespace-labels_{context}"]
= Configuring ingress controller sharding by using namespace labels

Ingress Controller sharding by using namespace labels means that the Ingress
Controller serves any route in any namespace that is selected by the namespace
selector.

Ingress Controller sharding is useful when balancing incoming traffic load among
a set of Ingress Controllers and when isolating traffic to a specific Ingress
Controller. For example, company A goes to one Ingress Controller and company B
to another.

.Procedure

. Edit the `router-internal.yaml` file:
+
----
# cat router-internal.yaml
apiVersion: v1
items:
- apiVersion: operator.openshift.io/v1
  kind: IngressController
  metadata:
    name: sharded
    namespace: openshift-ingress-operator
  spec:
    domain: <apps-sharded.basedomain.example.net>
    nodePlacement:
      nodeSelector:
        matchLabels:
          node-role.kubernetes.io/worker: ""
    routeSelector:
      matchLabels:
        type: sharded
  status: {}
kind: List
metadata:
  resourceVersion: ""
  selfLink: ""
----

. Apply the Ingress Controller `router-internal.yaml` file:
+
----
# oc apply -f router-internal.yaml
----
+
The Ingress Controller selects routes in any namespace that is selected by the
namespace selector that have the label `type: sharded`.

// Module included in the following assemblies:
//
// * configuring_ingress_cluster_traffic/configuring-ingress-cluster-traffic-ingress-controller.adoc
// * ingress-operator.adoc

[id="nw-ingress-sharding-namespace-labels_{context}"]
= Configuring ingress controller sharding by using namespace labels

Ingress Controller sharding by using namespace labels means that the Ingress
Controller serves any route in any namespace that is selected by the namespace
selector.

Ingress Controller sharding is useful when balancing incoming traffic load among
a set of Ingress Controllers and when isolating traffic to a specific Ingress
Controller. For example, company A goes to one Ingress Controller and company B
to another.

.Procedure

. Edit the `router-internal.yaml` file:
+
----
# cat router-internal.yaml
apiVersion: v1
items:
- apiVersion: operator.openshift.io/v1
  kind: IngressController
  metadata:
    name: sharded
    namespace: openshift-ingress-operator
  spec:
    domain: <apps-sharded.basedomain.example.net>
    nodePlacement:
      nodeSelector:
        matchLabels:
          node-role.kubernetes.io/worker: ""
    namespaceSelector:
      matchLabels:
        type: sharded
  status: {}
kind: List
metadata:
  resourceVersion: ""
  selfLink: ""
----

. Apply the Ingress Controller `router-internal.yaml` file:
+
----
# oc apply -f router-internal.yaml
----
+
The Ingress Controller selects routes in any namespace that is selected by the
namespace selector that have the label `type: sharded`.

Fix example for ingress sharding by namespace

Follow-up to commit 69c879f8edaceb4f679eca3f475f0d9851e460c6.

* modules/nw-ingress-sharding-namespace-labels.adoc: Change routeSelector
to namespaceSelector.


== License

++++++
Copyright © 2015–2019 http://deepsymmetry.org[Deep Symmetry, LLC]

Distributed under the https://opensource.org/licenses/EPL-2.0[Eclipse
Public License 2.0]. By using this software in any fashion, you are
agreeing to be bound by the terms of this license. You must not remove
this notice, or any other, from this software. A copy of the license
can be found in
https://github.com/Deep-Symmetry/afterglow/blob/master/LICENSE[LICENSE]
within this project.

== License

++++++
Copyright © 2015–2020 http://deepsymmetry.org[Deep Symmetry, LLC]

Distributed under the https://opensource.org/licenses/EPL-2.0[Eclipse
Public License 2.0]. By using this software in any fashion, you are
agreeing to be bound by the terms of this license. You must not remove
this notice, or any other, from this software. A copy of the license
can be found in
https://github.com/Deep-Symmetry/afterglow/blob/master/LICENSE[LICENSE]
within this project.

Update user guide copyright date.

Update user guide copyright date.


WARNING: Be sure to add the dependency to the `dependencies` section of the `build.gradle` file, and not the `buildscript`/`dependencies` section. The former is for application dependencies (needed for at compile time, runtime, or testing), whereas the `buildscript` `dependencies` is for those needed as part of the Gradle build process (managing static assets, for example).

WARNING: Be sure to add the dependency to the `dependencies` section of the `build.gradle` file, and not the `buildscript`/`dependencies` section. The former is for application dependencies (needed at compile time, runtime, or for testing), whereas the `buildscript` `dependencies` is for those needed as part of the Gradle build process (managing static assets, for example).

Correct typo in common warning

Correct typo in common warning


== New Releases Restoring Compatibility

Revapi has started to use Java 9 for building while maintaining compatibility with Java 8 using the Animal Sniffer Maven
plugin. This has proven to be problematic and the link:20171015-releases.html[last] releases could not be used with
Java 8. This should be now fixed and compatibility with Java 8 restored.

The following were released:

* Revapi API 0.8.4
* Revapi Basic Features 0.6.3
* Revapi Ant Task 0.6.3
* Revapi Java SPI 0.14.0
* Revapi Java Extension 0.14.3
* Revapi Text Reporter 0.8.2
* Revapi Standalone 0.6.4
* Revapi Maven Plugin 0.9.4

In addition to the above fix, a new artifact is now released `revapi-java-test-support` starting at version `0.1.0`.
This artifact is supposed to help custom extensions with testing by providing simple utilities to build, compile and
inspect custom jar files.

Thanks go out to Petr Široký who found, diagnosed and fixed the compatibility issue. Petr, you're a star!

Add a thank-you message to the release notes.


= AsciiDoc Book Starter

This is the starter folder structure for writing book with AsciiDoc.

Inspired by https://github.com/progit/progit2[Pro Git 2].

== Building

run `rake` to build book.

run `rake book:build_chapter_html` to build each chapter into HTML file.

== Lincense

The MIT License

= AsciiDoc Book Starter

This is the starter folder structure for writing book with AsciiDoc.

Inspired by https://github.com/progit/progit2[Pro Git 2].

== Installation

Install the gems via `bundle install`.

== Building

run `bundle exec rake` to build book.

run `bundle exec rake book:build_chapter_html` to build each chapter into HTML file.

== Lincense

The MIT License

Update readme to include installation. Add bundler: exec needs a command to run to the Converting to HTML... -- HTML output at output/master.html Converting to EPub... -- Epub output at output/master.epub Converting to Mobi (kf8)... -- Mobi output at output/master.mobi Converting to PDF... (this one takes a while) -- PDF output at output/master.pdf command.


:moduledir: ..
:attachmentsdir: {moduledir}/assets/attachments
:examplesdir: {moduledir}/examples
:imagesdir: {moduledir}/assets/images
:partialsdir: {moduledir}/pages/_partials

:debezium-version: 0.10.0.Beta4
:debezium-dev-version: 0.10
:debezium-kafka-version: 2.3.0
:debezium-docker-label: 0.10
:install-version: 0.10
:confluent-platform-version: 5.1.2
:strimzi-version: 0.9.0

:moduledir: ..
:attachmentsdir: {moduledir}/assets/attachments
:examplesdir: {moduledir}/examples
:imagesdir: {moduledir}/assets/images
:partialsdir: {moduledir}/pages/_partials

:debezium-version: 1.0.0.Beta2
:debezium-dev-version: 1.0
:debezium-kafka-version: 2.3.0
:debezium-docker-label: 1.0
:install-version: 1.0
:confluent-platform-version: 5.1.2
:strimzi-version: 0.9.0

Update documentation version attributes

Update documentation version attributes [ci skip]


= Neo4j-OGM - An Object Graph Mapping Library for Neo4j

ifdef::backend-html5[(C) {copyright}]
ifndef::backend-pdf[]

License: link:{common-license-page-uri}[Creative Commons 4.0]
endif::[]
ifdef::backend-pdf[]
(C) {copyright}

License: <<license, Creative Commons 4.0>>
endif::[]

[abstract]
--
This is the Neo4j object-graph mapping (OGM) manual, authored by the Neo4j team.
--

The three parts of the manual are:

* <<introduction>> -- Introducing graph database concepts, Neo4j and object-graph mapping.
* <<tutorial>> -- Follow along as you get started using Neo4j-OGM.
* <<reference>> -- Reference documentation for Neo4j-OGM.

But before starting, let's see the most important new features.

include::introduction/index.adoc[leveloffset=+1]

include::tutorial/index.adoc[leveloffset=+1]

include::reference/index.adoc[leveloffset=+1]

:numbered!:

include::appendix/migration-2.1-to-3.0.adoc[leveloffset=+1]

include::appendix/design-considerations.adoc[leveloffset=+1]

include::appendix/faq.adoc[leveloffset=+1]

ifdef::backend-pdf[]
include::{license-dir}/license.adoc[leveloffset=1]
endif::[]

= Neo4j-OGM - An Object Graph Mapping Library for Neo4j

ifdef::backend-html5[(C) {copyright}]
ifndef::backend-pdf[]

License: link:{common-license-page-uri}[Creative Commons 4.0]
endif::[]
ifdef::backend-pdf[]
(C) {copyright}

License: <<license, Creative Commons 4.0>>
endif::[]

[abstract]
--
This is the manual of Neo4j object-graph mapping (OGM) v{ogm-doc-version}, authored by the Neo4j team.
--

The three parts of the manual are:

* <<introduction>> -- Introducing graph database concepts, Neo4j and object-graph mapping.
* <<tutorial>> -- Follow along as you get started using Neo4j-OGM.
* <<reference>> -- Reference documentation for Neo4j-OGM.

But before starting, let's see the most important new features.

include::introduction/index.adoc[leveloffset=+1]

include::tutorial/index.adoc[leveloffset=+1]

include::reference/index.adoc[leveloffset=+1]

:numbered!:

include::appendix/migration-2.1-to-3.0.adoc[leveloffset=+1]

include::appendix/design-considerations.adoc[leveloffset=+1]

include::appendix/faq.adoc[leveloffset=+1]

ifdef::backend-pdf[]
include::{license-dir}/license.adoc[leveloffset=1]
endif::[]

Add Neo4j-OGM version in short description.


= TodoService - World's least awesome Web View and REST Service for TODO

This will be a nice working TODO app by 2022..
For now it provides a trivial ToDo lister/editor for one person via HTML (JSF).

Uses ../TodoModel for its JPA Data; do mvn install in that project first.

It will someday soon also provide a REST interface, which will be awesome enough
that there will also be an Android Synch Service to go with it.

You need to copy config-sample.properties to config.properties, and edit it.

Assuming you're using Wildfly 8 or 9 and PostGres 9,, just set up the datasource and do `mvn wildfly:deploy`

Things do do.

Better UI!

Move away from container-managed security so it can more easily become multi-user.

= TodoService - World's least awesome REST Service for TODO

This will be a nice working TODO app by 2022..
For now it provides a trivial ToDo lister/editor for one person via HTML (JSF).

Uses ../TodoModel for its JPA Data; do mvn install in that project first.

You need to copy config-sample.properties to config.properties, and edit it.

Assuming you're using Wildfly 8 or 9 and PostGreSQL 9, just set up the datasource and do `mvn wildfly:deploy`

== Things do do.

Move away from container-managed security so it can more easily become multi-user.

== BUGS

The only reason this is split off from TodoJSF is that Java EE doesn't allow two
login-config elements, we need FORM for the JSF and BASIC for the REST. Sigh...

Split into JSF and REST

Split into JSF and REST


= Docker test training

== Prerequisites
* Hebben ze docker geinstalleerd? Zo nee, doen!

== Doel van de presentatie
* Basisconcepten van Docker uitleggen
* Simpele voorbeelden van containers
* Workshop met als doel zelf webpagina met DB backend testen mbv Docker

=== Vragen wat mensen nog meer zouden willen weten

== Wat is docker?
* Docker vs VM: de verschillen (-> networking)
* Docker distributie model (git-achtig)
* Docker client/server
* Container file systeem -> volumes

== Simpele voorbeelden:
* docker run hello-world
* docker run bash -> docker inspect, docker ps
* docker run nginx -> in browser laten zien
* docker run pgsql -> inloggen met pgadmin

== Labs
* start nginx container met statische inhoud
** volume mounten, aanpassen etc
* nginx + selenium, klein testje (java omgeving?)
* nginx + selenium + database, test dynamische pagina (docker link)

== Extra credit lab
* Met docker build pgsql image aanpassen dat ie automatisch baseline data inlaadt, die weer gebruiken in de test

= Docker for testers

This repository contains training material for testers that want to get started with http://www.docker.com[Docker]. It was developed by engineers at http://www.bol.com[bol.com].

== Building the course material
NOTE: You must have a recent version of the http://www.oracle.com/technetwork/java/javase/downloads/index.html[JDK] installed to build the course material.

The course material is written in http://asciidoctor.org/[Asciidoctor] and can be built using the following command:

 ./gradlew assemble

This command will generate a zip file containing all the material in the `workshop/build/distributions` directory.

Update the readme for github

Update the readme for github


= SpringBoot WebApp Demo

https://projects.spring.io/spring-boot[Spring Boot]
looks like a nice way to get started.
This is a trivial webapp created using SpringBoot.

== HowTo

	mvn spring-boot:run

Or, in Eclipse with Spring plugin (or "Spring Tool Suite"),
right-click project or Application.java,
then RunAs->Spring Boot Application

Seconds later, connect to

http://localhost:8000/

Note: that is port 8000, _not_ the usual 8080, to avoid conflicts.
Change this in application.properties if you don't like it.

Fill in the form and click Submit.

== War Packaging for EE App Server Deployment

This version has the modifications described in
the section entitled "Traditional Deployment"--"Create a deployable war file" in
the spring-boot reference manual (Section 85.1 as of
this writing).
it still works in Maven and Eclipse with these settings,
and the packaged was file has a jboss-web.xml config file
so it deploys as /springbootdemos when you simply copy the war file to
WILDFLYHOME/standalone/deployments.

= SpringBoot WebApp Demo

https://projects.spring.io/spring-boot[Spring Boot]
looks like a nice way to get started.
This is a trivial webapp created using SpringBoot.

== HowTo

	mvn spring-boot:run

Or, in Eclipse with Spring plugin (or "Spring Tool Suite"),
right-click project or Application.java,
then RunAs->Spring Boot Application

Seconds later, connect to

http://localhost:8000/

Note: that is port 8000, _not_ the usual 8080, to avoid conflicts.
Change this in application.properties if you don't like it.

Fill in the form and click Submit.

== War Packaging for EE App Server Deployment

This version has the modifications described in
the section entitled "Traditional Deployment"--"Create a deployable war file" in
the spring-boot reference manual (Section 85.1 as of
this writing).
it still works in Maven (`mvn package`) and can be run in Eclipse with these settings.
For WildFly users, the packaged _war_ file has a jboss-web.xml config file
so it deploys as _/springbootdemos_ when you simply copy the _war_ file to
WILDFLYHOME/standalone/deployments.

Fix typo; while here, tweak wording, formatting.


= Blueprint
:author: Hafid Haddouti

image:https://travis-ci.org/haf-tech/blueprint.svg?branch=master["Build Status", link="https://travis-ci.org/haf-tech/blueprint"]
image:https://img.shields.io/badge/License-Apache%202.0-blue.svg["License", link="https://opensource.org/licenses/Apache-2.0"]

Blueprint is a playground for illustrating different paradigms.

In the meantime the following concepts are integrated or planned:

- Spring Boot
- AsciiDoctor integration, with UML and different outputs
- Onion architecture
- Docker build/push

Next:

- reactive programming

An up to date documentation is https://haf-tech.github.io/blueprint/[online] available.

= Blueprint
:author: Hafid Haddouti

image:https://travis-ci.org/haf-tech/blueprint.svg?branch=master["Build Status", link="https://travis-ci.org/haf-tech/blueprint"]
image:https://img.shields.io/badge/License-Apache%202.0-blue.svg["License", link="https://opensource.org/licenses/Apache-2.0"]
image:https://sonarqube.com/api/badges/gate?key=com.haddouti.pg%3Ablueprint-parent["Sonar Quality Gate", link="https://sonarqube.com/api/badges/gate?key=com.haddouti.pg%3Ablueprint-parent"]

Blueprint is a playground for illustrating different paradigms.

In the meantime the following concepts are integrated or planned:

- Spring Boot
- AsciiDoctor integration, with UML and different outputs
- Onion architecture
- Docker build/push

Next:

- reactive programming

An up to date documentation is https://haf-tech.github.io/blueprint/[online] available.

Add badge for SonarQube integration

Add badge for SonarQube integration


= Tiny Request Limits Library designed for Java 8

:hardbreaks:

image:https://travis-ci.org/storozhukBM/requestlimit.svg?branch=master["Build Status", link="https://travis-ci.org/storozhukBM/requestlimit"] image:https://coveralls.io/repos/github/storozhukBM/requestlimit/badge.svg["Coverage Status", link="https://coveralls.io/github/storozhukBM/requestlimit"]

Rebuild master with coverage report

Rebuild master with coverage report