= Infinispan Cluster Manager

image:https://vertx.ci.cloudbees.com/buildStatus/icon?job=vert.x3-infinispan["Build Status",link="https://vertx.ci.cloudbees.com/view/vert.x-3/job/vert.x3-infinispan/"]

This is a cluster manager implementation for Vert.x that uses http://infinispan.org[Infinispan].

Please see the in-source asciidoc documentation or the main documentation on the web-site for a full description
of this component:

* link:http://vertx.io/docs/vertx-infinispan/java/[web-site docs]
* link:src/main/asciidoc/java/index.adoc[in-source docs]

Revert "Revert "Revert "Revert "Test trigger on push""""

= Infinispan Cluster Manager

image:https://vertx.ci.cloudbees.com/buildStatus/icon?job=vert.x3-infinispan["Build Status",link="https://vertx.ci.cloudbees.com/view/vert.x-3/job/vert.x3-infinispan/"]

This is a cluster manager implementation for Vert.x that uses http://infinispan.org[Infinispan].

Please see the in-source asciidoc documentation or the main documentation on the web-site for a full description
of this component:

* link:http://vertx.io/docs/vertx-infinispan/java/[web-site docs]
* link:src/main/asciidoc/java/index.adoc[in-source docs]

-- will remove --


[[validator-further-reading]]
== Further reading

Last but not least, a few pointers to further information.

A great source for examples is the Bean Validation TCK which is available for anonymous access on
https://github.com/beanvalidation/beanvalidation-tck/[GitHub]. In particular the TCK's
https://github.com/beanvalidation/beanvalidation-tck/tree/master/tests[tests] might be
of interest. {bvSpecUrl}[The JSR 380] specification itself
is also a great way to deepen your understanding of Bean Validation and Hibernate Validator.

If you have any further questions about Hibernate Validator or want to share some of your use cases,
have a look at the http://community.jboss.org/en/hibernate/validator[Hibernate Validator
Wiki], the https://forum.hibernate.org/viewforum.php?f=9[Hibernate Validator Forum] and the
https://stackoverflow.com/questions/tagged/hibernate-validator[Hibernate Validator tag on Stack Overflow].

In case you would like to report a bug use
https://hibernate.atlassian.net/projects/HV/[Hibernate's Jira] instance.
Feedback is always welcome!

Update the links to the forum

[[validator-further-reading]]
== Further reading

Last but not least, a few pointers to further information.

A great source for examples is the Bean Validation TCK which is available for anonymous access on
https://github.com/beanvalidation/beanvalidation-tck/[GitHub]. In particular the TCK's
https://github.com/beanvalidation/beanvalidation-tck/tree/master/tests[tests] might be
of interest. {bvSpecUrl}[The JSR 380] specification itself
is also a great way to deepen your understanding of Bean Validation and Hibernate Validator.

If you have any further questions about Hibernate Validator or want to share some of your use cases,
have a look at the http://community.jboss.org/en/hibernate/validator[Hibernate Validator
Wiki], the https://discourse.hibernate.org/c/hibernate-validator[Hibernate Validator Forum] and the
https://stackoverflow.com/questions/tagged/hibernate-validator[Hibernate Validator tag on Stack Overflow].

In case you would like to report a bug use
https://hibernate.atlassian.net/projects/HV/[Hibernate's Jira] instance.
Feedback is always welcome!


== Introduction to Regression Test Mode

Bitcoin 0.9 and later include support for Regression Test Mode (aka RegTest mode). RegTest mode creates a single node Bitcoin "network" that can confirm blocks upon command.  (RegTest mode can also be used to create small, multi-node networks and even to simulate blockchain reorganizations.)

For example the following command will generate 101 blocks

    ./bitcoin-cli -regtest setgenerate true 101

And yes, you get the newly mined coins. They can't be spent anywhere, but they're great for testing.

The best documentation of RegTest mode that I've seen so far is https://bitcoinj.github.io/testing[How to test applications] on the new https://bitcoinj.github.io[Bitcoinj website].

Other Links::
* http://geraldkaszuba.com/creating-your-own-experimental-bitcoin-network/[Creating your own experimental Bitcoin network]
* https://github.com/gak/docker-bitcoin-regtest[docker-bitcoin-regtest]

== Simple Demo of RegTest mode with Bash Scripts

These are some really rough Bash scripts that can drive bitcoind in RegTest mode.

Procedure::
* Make sure Bitcoin Core 0.9 or later is installed and in your path.
* Run the server script

    ./server.sh &

* Run the client setup script to mine some coins to get started:

    ./setup-client.sh

* Run the client script (repeat as desired)

    ./client.sh

* A directory named +regtest-datadir+ is created in the current directory.

Remove reference to deleted scripts.


// Copyright 2017 the original author or authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

= Documentation licenses

[[sec:gradle_documentation]]
== Gradle Documentation

_Copyright © 2007-2018 Gradle, Inc._

Gradle build tool source code is open and licensed under the link:https://github.com/gradle/gradle/blob/master/LICENSE[Apache License 2.0].
Gradle user manual and DSL references are licensed under link:http://creativecommons.org/licenses/by-nc-sa/4.0/[Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License].

Add license information to docs clarifying build scan plugin license

// Copyright 2017 the original author or authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

[[licenses]]
= License Information

[[sec:gradle_documentation]]
== Gradle Documentation

_Copyright © 2007-2018 Gradle, Inc._

Gradle build tool source code is open-source and licensed under the link:https://github.com/gradle/gradle/blob/master/LICENSE[Apache License 2.0].

Gradle user manual and DSL references are licensed under link:http://creativecommons.org/licenses/by-nc-sa/4.0/[Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License].

[[licenses:build_scan_plugin]]
== Gradle Build Scan Plugin

Use of the link:https://scans.gradle.com/plugin/[build scan plugin] is subject to link:https://gradle.com/legal/terms-of-service/[Gradle's Terms of Service].


[id='monitoring']
= Monitoring
include::modules/common-attributes.adoc[]
:context: monitoring

toc::[]

{product-title} uses the Prometheus open source monitoring system. The stack built around Prometheus provides {product-title} cluster monitoring by default. It also provides custom-configured application monitoring as a technology preview. The cluster monitoring stack is only supported for monitoring {product-title} clusters.

[id='cluster-monitoring']
== Cluster monitoring

include::modules/monitoring-monitoring-overview.adoc[leveloffset=+1]
include::monitoring/configuring-monitoring-stack.adoc[leveloffset=+1]
include::modules/monitoring-configuring-etcd-monitoring.adoc[leveloffset=+1]
include::modules/monitoring-accessing-prometheus-alertmanager-grafana.adoc[leveloffset=+1]

[id='application-monitoring']
== Application monitoring

You can do custom metrics scraping for your applications. This is done using the Prometheus Operator and a custom Prometheus instance.

[IMPORTANT]
====
Application monitoring is a technology preview. Exposing custom metrics will change without the consent of the user of the cluster.
====

include::modules/monitoring-configuring-cluster-for-application-monitoring.adoc[leveloffset=+1]
include::modules/monitoring-configuring-monitoring-for-application.adoc[leveloffset=+1]
include::modules/monitoring-exposing-application-metrics-for-horizontal-pod-autoscaling.adoc[leveloffset=+1]

Remove the deprecated etcd section

[id='monitoring']
= Monitoring
include::modules/common-attributes.adoc[]
:context: monitoring

toc::[]

{product-title} uses the Prometheus open source monitoring system. The stack built around Prometheus provides {product-title} cluster monitoring by default. It also provides custom-configured application monitoring as a technology preview. The cluster monitoring stack is only supported for monitoring {product-title} clusters.

[id='cluster-monitoring']
== Cluster monitoring

include::modules/monitoring-monitoring-overview.adoc[leveloffset=+1]
include::monitoring/configuring-monitoring-stack.adoc[leveloffset=+1]
include::modules/monitoring-accessing-prometheus-alertmanager-grafana.adoc[leveloffset=+1]

[id='application-monitoring']
== Application monitoring

You can do custom metrics scraping for your applications. This is done using the Prometheus Operator and a custom Prometheus instance.

[IMPORTANT]
====
Application monitoring is a technology preview. Exposing custom metrics will change without the consent of the user of the cluster.
====

include::modules/monitoring-configuring-cluster-for-application-monitoring.adoc[leveloffset=+1]
include::modules/monitoring-configuring-monitoring-for-application.adoc[leveloffset=+1]
include::modules/monitoring-exposing-application-metrics-for-horizontal-pod-autoscaling.adoc[leveloffset=+1]


// Module included in the following assemblies:
//
// * cli_reference/openshift_developer_cli/installing-odo.adoc

[id="installing-odo-on-linux"]

= Installing {odo-title} on Linux

== Binary installation

----
# curl -L https://mirror.openshift.com/pub/openshift-v4/clients/odo/latest/odo-darwin-amd64 -o /usr/local/bin/odo
# chmod +x /usr/local/bin/odo
----

== Tarball installation

----
# sh -c 'curl -L https://mirror.openshift.com/pub/openshift-v4/clients/odo/latest/odo-linux-amd64.tar.gz | gzip -d > /usr/local/bin/odo'
# chmod +x /usr/local/bin/odo
----

Fix url to odo linux binary

// Module included in the following assemblies:
//
// * cli_reference/openshift_developer_cli/installing-odo.adoc

[id="installing-odo-on-linux"]

= Installing {odo-title} on Linux

== Binary installation

----
# curl -L https://mirror.openshift.com/pub/openshift-v4/clients/odo/latest/odo-linux-amd64 -o /usr/local/bin/odo
# chmod +x /usr/local/bin/odo
----

== Tarball installation

----
# sh -c 'curl -L https://mirror.openshift.com/pub/openshift-v4/clients/odo/latest/odo-linux-amd64.tar.gz | gzip -d > /usr/local/bin/odo'
# chmod +x /usr/local/bin/odo
----


ifdef::env-github[]
:imagesdir: https://github.com/Moose2Model/Moose2Model/blob/master/Documentation/images/
endif::[]

:toc:
:toc-placement!:
toc::[]

This documentation follows the arc42 template for architecture documentation (https://arc42.org/).

1 Introduction and Goals
========================

1.1 Requirements Overview
-------------------------
- Provide diagrams for developers that can be easily kept correct
- Reduces the cognitive load of developers who work in complex software systems
- Supports only diagram that show the dependencies between components of a software
- Supports dependencies between entities of code that are more detailed then a class (method, attribute, ...)
- Works in the moment best with models that are extracted by the SAP2Moose project
- Shall support all models that are compatible with Moose (http://moosetechnology.org/)

1.2 Quality Goals
-----------------
- Shows all dependencies between elements in a diagram
- Shows all elements that should be in a diagram

1.3 Stake Holders
-----------------

.Stake Holders
|===
| Role/Name |Expectations

|Developer
|Build diagrams where the customiziation is not lost when they are regenerated with new informations. Build diagrams that are sufficiently detailed to support the development.

|Software Architect
|Have a tool to compare the planned architecture with the realized architecture
|===

Add arc 42 Architecture Constraints

ifdef::env-github[]
:imagesdir: https://github.com/Moose2Model/Moose2Model/blob/master/Documentation/images/
endif::[]

:toc:
:toc-placement!:
toc::[]

This documentation follows the arc42 template for architecture documentation (https://arc42.org/).

1 Introduction and Goals
========================

1.1 Requirements Overview
-------------------------
- Provide diagrams for developers that can be easily kept correct
- Reduces the cognitive load of developers who work in complex software systems
- Supports only diagram that show the dependencies between components of a software
- Supports dependencies between entities of code that are more detailed then a class (method, attribute, ...)
- Works in the moment best with models that are extracted by the SAP2Moose project
- Shall support all models that are compatible with Moose (http://moosetechnology.org/)

1.2 Quality Goals
-----------------
- Shows all dependencies between elements in a diagram
- Shows all elements that should be in a diagram

1.3 Stake Holders
-----------------

.Stake Holders
|===
| Role/Name |Expectations

|Developer
|Build diagrams where the customiziation is not lost when they are regenerated with new informations. Build diagrams that are sufficiently detailed to support the development.

|Software Architect
|Have a tool to compare the planned architecture with the realized architecture
|===

2 Architecture Constraints
==========================
- Easy to install


= Forum (free support)
:awestruct-layout: base
:showtitle:

== Usage questions

If you have a question about OptaPlanner, just ask our friendly community:

* Ask on http://www.jboss.org/drools/lists[the Drools user mailing list] (recommended).

* Or ask on http://stackoverflow.com/questions/tagged/optaplanner[StackOverflow].

Please follow these recommendations when posting a question:

* Get to the point. Keep it as short as possible.
* Include _relevant_ technical details (stacktrace, short code snippet, ...).
* Be polite, friendly and clear. Reread your question before posting it.
* Be patient. This isn't link:product.html[paid support].

== Development discussions

If you've link:../code/sourceCode.html[build OptaPlanner from source] and you would like to improve it,
then come talk with us:

* Join us on http://www.jboss.org/drools/lists[the Drools developer mailing list].

* And link:chat.html[chat with us] (recommended).

Split optaplanner's dev list away from drools's mailing list

= Forum
:awestruct-layout: base
:showtitle:

== Usage questions

If you have a question about OptaPlanner, just ask our friendly community:

* *http://stackoverflow.com/questions/tagged/optaplanner[Ask a usage question on StackOverflow.]*

* To start a discussion, use https://groups.google.com/forum/#!forum/optaplanner-dev[the OptaPlanner developer forum].

Please follow these recommendations when posting a question or a discussion:

* Get to the point. Keep it as short as possible.
* Include _relevant_ technical details (stacktrace, short code snippet, ...).
* Be polite, friendly and clear. Reread your question before posting it.
* Be patient. This isn't link:product.html[paid support].

== Development discussions

If you've link:../code/sourceCode.html[build OptaPlanner from source] and want to improve something, come talk with us:

* Join https://groups.google.com/forum/#!forum/optaplanner-dev[the OptaPlanner developer google group].

** Mail directly to the group via mailto:optaplanner-dev@googlegroups.com[optaplanner-dev@googlegroups.com].

* And link:chat.html[chat with us] (recommended).

** Or ping us on link:socialMedia.html[any social media].


[[apim-kubernetes-overview]]
= Kubernetes plugin
:page-sidebar: apim_3_x_sidebar
:page-permalink: apim/3.x/apim_kubernetes_overview.html
:page-folder: apim/kubernetes
:page-layout: apim3x
:page-liquid:

[label label-version]#New in version 3.7#

== Overview

APIM 3.7.0 introduces a Kubernetes plugin for APIM Gateway allowing the deployment of APIs using https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/[Custom Resource Definitions (CRDs)^].

APIs deployed using CRDs are not visible through APIM Console.

WARNING: This plugin is currently in Alpha version; the API key policy isn't available for APIs deployed using this plugin.

You can find more detailed information about the plugin in the following sections:

* link:/apim/3.x/apim_kubernetes_quick_start.html[Quick Start]
* link:/apim/3.x/apim_kubernetes_installation.html[How to install]
* link:/apim/3.x/apim_kubernetes_custom_resources.html[Custom Resources]
* link:/apim/3.x/apim_kubernetes_admission_hook.html[Admission hook]

Fix APIM version to 3.13

[[apim-kubernetes-overview]]
= Kubernetes plugin
:page-sidebar: apim_3_x_sidebar
:page-permalink: apim/3.x/apim_kubernetes_overview.html
:page-folder: apim/kubernetes
:page-layout: apim3x
:page-liquid:

[label label-version]#New in version 3.13#

== Overview

APIM 3.13 introduces a Kubernetes plugin for APIM Gateway allowing the deployment of APIs using https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/[Custom Resource Definitions (CRDs)^].

APIs deployed using CRDs are not visible through APIM Console.

WARNING: This plugin is currently in Alpha version; the API key policy isn't available for APIs deployed using this plugin.

You can find more detailed information about the plugin in the following sections:

* link:/apim/3.x/apim_kubernetes_quick_start.html[Quick Start]
* link:/apim/3.x/apim_kubernetes_installation.html[How to install]
* link:/apim/3.x/apim_kubernetes_custom_resources.html[Custom Resources]
* link:/apim/3.x/apim_kubernetes_admission_hook.html[Admission hook]


= CLI Connector Component
:doctitle: CLI Connector
:shortname: cli-connector
:artifactid: camel-cli-connector
:description: Runtime adapter connecting with Camel CLI
:since: 3.19
:supportlevel: Preview

*Since Camel {since}*

The camel-cli-connector allows the Camel CLI to be able to manage running Camel integrations.

Currently, only a local connector is provided, which means that the Camel CLI can only be
managing local running Camel integrations.

These integrations can be using different runtimes such as Camel Main, Camel Spring Boot or Camel Quarkus etc.

== Auto-detection from classpath

To use this implementation all you need to do is to add the `camel-cli-connector` dependency to the classpath,
and Camel should auto-detect this on startup and log as follows:

[source,text]
----
Local CLI Connector started
----

Add spring-boot link in doc

= CLI Connector Component
:doctitle: CLI Connector
:shortname: cli-connector
:artifactid: camel-cli-connector
:description: Runtime adapter connecting with Camel CLI
:since: 3.19
:supportlevel: Preview
//Manually maintained attributes
:camel-spring-boot-name: cli-connector

*Since Camel {since}*

The camel-cli-connector allows the Camel CLI to be able to manage running Camel integrations.

Currently, only a local connector is provided, which means that the Camel CLI can only be
managing local running Camel integrations.

These integrations can be using different runtimes such as Camel Main, Camel Spring Boot or Camel Quarkus etc.

== Auto-detection from classpath

To use this implementation all you need to do is to add the `camel-cli-connector` dependency to the classpath,
and Camel should auto-detect this on startup and log as follows:

[source,text]
----
Local CLI Connector started
----

include::spring-boot:partial$starter.adoc[]


[[release-notes]]
== Release Notes

:numbered!:

include::release-notes-5.0.0-ALPHA.adoc[]

include::release-notes-5.0.0-M1.adoc[]

include::release-notes-5.0.0-M2.adoc[]

include::release-notes-5.0.0-M3.adoc[]

include::release-notes-5.0.0-M4.adoc[]

include::release-notes-5.0.0-M5.adoc[]

include::release-notes-5.0.0-M6.adoc[]

include::release-notes-5.0.0-RC1.adoc[]

include::release-notes-5.0.0-RC2.adoc[]

include::release-notes-5.0.0-RC3.adoc[]

include::release-notes-5.0.0.adoc[]

include::release-notes-5.1.0-M1.adoc[]

:numbered:

Order release notes from newest to oldest

[[release-notes]]
== Release Notes

:numbered!:

include::release-notes-5.1.0-M1.adoc[]

include::release-notes-5.0.0.adoc[]

include::release-notes-5.0.0-RC3.adoc[]

include::release-notes-5.0.0-RC2.adoc[]

include::release-notes-5.0.0-RC1.adoc[]

include::release-notes-5.0.0-M6.adoc[]

include::release-notes-5.0.0-M5.adoc[]

include::release-notes-5.0.0-M4.adoc[]

include::release-notes-5.0.0-M3.adoc[]

include::release-notes-5.0.0-M2.adoc[]

include::release-notes-5.0.0-M1.adoc[]

include::release-notes-5.0.0-ALPHA.adoc[]

:numbered:


== Fusioninventory Plugin

https://coveralls.io/r/fusioninventory/fusioninventory-for-glpi[image:https://coveralls.io/repos/fusioninventory/fusioninventory-for-glpi/badge.svg]

This plugin makes GLPI to process various types of tasks for Fusioninventory agents:

* Computer inventory
* Network discovery
* Network (SNMP) inventory
* Software deployment
* VMWare ESX host remote inventory

For further information and documentation, please check http://www.fusioninventory.org .

If you want to report bugs or check for development status, you can check http://forge.fusioninventory.org .

== Third-party code

* PluginFusioninventoryFindFiles() is copyright http://rosettacode.org/wiki/Walk_a_directory/Recursively#PHP[rosettacode.org] and
 made available under GNU Free Documentation License.

== Third-party icons and images

Some icons used in the project comes from the following set of
graphics licensed:

* Dortmund is copyright by http://pc.de/icons/[PC.DE] and made available under a
 http://creativecommons.org/licenses/by/3.0/deed[Creative Commons Attribution 3.0 License].

* Fugue Icons is copyright by http://p.yusukekamiyamane.com/[Yusuke Kamiyamame] and made
 available under a http://creativecommons.org/licenses/by/3.0/deed[Creative Commons Attribution 3.0 License].

Add travis badge + fix coverage badge

== Fusioninventory Plugin

image:https://travis-ci.org/fusioninventory/fusioninventory-for-glpi.svg?branch=master["Build Status", link="https://travis-ci.org/fusioninventory/fusioninventory-for-glpi"]
image:https://coveralls.io/repos/fusioninventory/fusioninventory-for-glpi/badge.svg["Coverage Status", link="https://coveralls.io/r/fusioninventory/fusioninventory-for-glpi"]

This plugin makes GLPI to process various types of tasks for Fusioninventory agents:

* Computer inventory
* Network discovery
* Network (SNMP) inventory
* Software deployment
* VMWare ESX host remote inventory

For further information and documentation, please check http://www.fusioninventory.org .

If you want to report bugs or check for development status, you can check http://forge.fusioninventory.org .

== Third-party code

* PluginFusioninventoryFindFiles() is copyright http://rosettacode.org/wiki/Walk_a_directory/Recursively#PHP[rosettacode.org] and
 made available under GNU Free Documentation License.

== Third-party icons and images

Some icons used in the project comes from the following set of
graphics licensed:

* Dortmund is copyright by http://pc.de/icons/[PC.DE] and made available under a
 http://creativecommons.org/licenses/by/3.0/deed[Creative Commons Attribution 3.0 License].

* Fugue Icons is copyright by http://p.yusukekamiyamane.com/[Yusuke Kamiyamame] and made
 available under a http://creativecommons.org/licenses/by/3.0/deed[Creative Commons Attribution 3.0 License].


= Hawkular Android Client

This repository contains the source code for the Hawkular Android application.

== License

* http://www.apache.org/licenses/LICENSE-2.0.html[Apache Version 2.0]

== Building

ifdef::env-github[]
[link=https://travis-ci.org/hawkular/hawkular-android-client]
image:https://travis-ci.org/hawkular/hawkular-android-client.svg["Build Status", link="https://travis-ci.org/hawkular/hawkular-android-client"]
endif::[]

You will need JDK 1.7+ installed.
Gradle, Android SDK and all dependencies will be downloaded automatically.

----
$ ./gradlew clean assembleDebug
----

Update readme with Wiki reference.

= Hawkular Android Client

This repository contains the source code for the Hawkular Android application.

== License

* http://www.apache.org/licenses/LICENSE-2.0.html[Apache Version 2.0]

== Building

ifdef::env-github[]
[link=https://travis-ci.org/hawkular/hawkular-android-client]
image:https://travis-ci.org/hawkular/hawkular-android-client.svg["Build Status", link="https://travis-ci.org/hawkular/hawkular-android-client"]
endif::[]

You will need JDK 1.7+ installed.
Gradle, Android SDK and all dependencies will be downloaded automatically.

----
$ ./gradlew clean assembleDebug
----

== Reading

There are some documents on the link:../../wiki[Wiki], including API overview, UI mockups
and instructions on running necessary servers for using the client in common and
push notifications specifically.


= Spring Boot and Two DataSources

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

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

Adjust readme to Spring Boot 2.1

= Spring Boot and Two DataSources

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

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


= Snoop - A Discovery Service for Java EE

Snoop is an experimental registration and discovery service for Java EE based microservices.

== Getting Started

. Start the link:snoop-service.adoc[Snoop Service]
. link:service-registration.adoc[Service Registration]
. link:service-discovery.adoc[Service Discovery]

== Maven

. Released artifacts are available in link:http://search.maven.org/#search%7Cga%7C1%7Csnoop[Maven Central]
. Snapshots configuration:

 <repositories>
    <repository>
       <id>agilejava-snapshots</id>
       <url>http://nexus.agilejava.eu/content/groups/public</url>
       <snapshots>
          <enabled>true</enabled>
       </snapshots>
    </repository>
 </repositories>

== Examples

- link:https://github.com/ivargrimstad/snoop-samples[snoop-samples@GitHub]
- link:https://github.com/arun-gupta/microservices[https://github.com/arun-gupta/microservices]

== FAQ

- link:FAQ.adoc[Frequently Asked Questions]

Add reference to classloader issue and workaround

= Snoop - A Discovery Service for Java EE

Snoop is an experimental registration and discovery service for Java EE based microservices.

== Getting Started

. Start the link:snoop-service.adoc[Snoop Service]
. link:service-registration.adoc[Service Registration]
. link:service-discovery.adoc[Service Discovery]

== Maven

. Released artifacts are available in link:http://search.maven.org/#search%7Cga%7C1%7Csnoop[Maven Central]
. Snapshots configuration:

 <repositories>
    <repository>
       <id>agilejava-snapshots</id>
       <url>http://nexus.agilejava.eu/content/groups/public</url>
       <snapshots>
          <enabled>true</enabled>
       </snapshots>
    </repository>
 </repositories>

== Classloader Issue

- link:classloader-issue.adoc[Description and Workaround]

== Examples

- link:https://github.com/ivargrimstad/snoop-samples[snoop-samples@GitHub]
- link:https://github.com/arun-gupta/microservices[https://github.com/arun-gupta/microservices]

== FAQ

- link:FAQ.adoc[Frequently Asked Questions]


= CLI Connector Component
:doctitle: CLI Connector
:shortname: cli-connector
:artifactid: camel-cli-connector
:description: Runtime adapter connecting with Camel CLI
:since: 3.19
:supportlevel: Preview
//Manually maintained attributes
:camel-spring-boot-name: cli-connector

*Since Camel {since}*

The camel-cli-connector allows the Camel CLI to be able to manage running Camel integrations.

Currently, only a local connector is provided, which means that the Camel CLI can only be
managing local running Camel integrations.

These integrations can be using different runtimes such as Camel Main, Camel Spring Boot or Camel Quarkus etc.

== Auto-detection from classpath

To use this implementation all you need to do is to add the `camel-cli-connector` dependency to the classpath,
and Camel should auto-detect this on startup and log as follows:

[source,text]
----
Local CLI Connector started
----

include::spring-boot:partial$starter.adoc[]

Revert "Add spring-boot link in doc"

= CLI Connector Component
:doctitle: CLI Connector
:shortname: cli-connector
:artifactid: camel-cli-connector
:description: Runtime adapter connecting with Camel CLI
:since: 3.19
:supportlevel: Preview

*Since Camel {since}*

The camel-cli-connector allows the Camel CLI to be able to manage running Camel integrations.

Currently, only a local connector is provided, which means that the Camel CLI can only be
managing local running Camel integrations.

These integrations can be using different runtimes such as Camel Main, Camel Spring Boot or Camel Quarkus etc.

== Auto-detection from classpath

To use this implementation all you need to do is to add the `camel-cli-connector` dependency to the classpath,
and Camel should auto-detect this on startup and log as follows:

[source,text]
----
Local CLI Connector started
----


Copyright 2016 higherfrequencytrading.com

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Migrate to Apache v2.0 license

== Copyright 2016 higherfrequencytrading.com

Licensed under the *Apache License, Version 2.0* (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.


[id="olm-webhooks"]
= Managing admission webhooks in Operator Lifecycle Manager
include::modules/common-attributes.adoc[]
:context: olm-webhooks

toc::[]

Validating and mutating admission webhooks allow Operator authors to intercept,
modify, and accept or reject resources before they are handled by the Operator
controller. Operator Lifecycle Manager (OLM) can manage the lifecycle of these
webhooks when they are shipped alongside your Operator.

include::modules/olm-defining-csv-webhooks.adoc[leveloffset=+1]
include::modules/olm-webhook-considerations.adoc[leveloffset=+1]

[id="olm-webhooks-additional-resources"]
== Additional resources

* xref:../architecture/admission-plug-ins.adoc#admission-webhook-types_admission-plug-ins[Types of webhook admission plug-ins]

Edit to OLM webhook workflow

[id="olm-webhooks"]
= Managing admission webhooks in Operator Lifecycle Manager
include::modules/common-attributes.adoc[]
:context: olm-webhooks

toc::[]

Validating and mutating admission webhooks allow Operator authors to intercept,
modify, and accept or reject resources before they are saved to the object store
and handled by the Operator controller. Operator Lifecycle Manager (OLM) can
manage the lifecycle of these webhooks when they are shipped alongside your
Operator.

include::modules/olm-defining-csv-webhooks.adoc[leveloffset=+1]
include::modules/olm-webhook-considerations.adoc[leveloffset=+1]

[id="olm-webhooks-additional-resources"]
== Additional resources

* xref:../architecture/admission-plug-ins.adoc#admission-webhook-types_admission-plug-ins[Types of webhook admission plug-ins]


[[breaking-changes]]
= Breaking changes

[partintro]
--
This section discusses the changes that you need to be aware of when migrating
your application from one version of Elasticsearch to another.

As a general rule:

* Migration between major versions -- e.g. `1.x` to `2.x` --
  requires a <<restart-upgrade,full cluster restart>>.

* Migration between minor versions -- e.g. `1.x` to `1.y` -- can be
  performed by <<rolling-upgrades,upgrading one node at a time>>.

See <<setup-upgrade>> for more info.
--
include::migrate_3_0.asciidoc[]

include::migrate_2_1.asciidoc[]

include::migrate_2_2.asciidoc[]

include::migrate_2_0.asciidoc[]

include::migrate_1_6.asciidoc[]

include::migrate_1_4.asciidoc[]

include::migrate_1_0.asciidoc[]

Fix version order for breaking changes docs

[[breaking-changes]]
= Breaking changes

[partintro]
--
This section discusses the changes that you need to be aware of when migrating
your application from one version of Elasticsearch to another.

As a general rule:

* Migration between major versions -- e.g. `1.x` to `2.x` --
  requires a <<restart-upgrade,full cluster restart>>.

* Migration between minor versions -- e.g. `1.x` to `1.y` -- can be
  performed by <<rolling-upgrades,upgrading one node at a time>>.

See <<setup-upgrade>> for more info.
--
include::migrate_3_0.asciidoc[]

include::migrate_2_2.asciidoc[]

include::migrate_2_1.asciidoc[]

include::migrate_2_0.asciidoc[]

include::migrate_1_6.asciidoc[]

include::migrate_1_4.asciidoc[]

include::migrate_1_0.asciidoc[]


= Edge Documentation

Edge is a starting point for creating Clojure projects.
Not sure if Edge is for you? See <<why-edge.adoc#,Why Edge?>>.

== Get Started

Are you new to Edge?
This is the place to start!

. link:https://clojure.org/guides/getting_started[Install clj] (<<windows.adoc#,Additional notes for installing on Windows>>)
. <<editor.adoc#,Set up your editor for Clojure>>
. <<setup.adoc#,Set up Edge for your project>>
. <<dev-guide.adoc#,Developing on Edge>>

== Using Edge

//. Configuration
//. Components
* <<dev-guide.adoc#,Developing on Edge>>
* <<uberjar.adoc#,Producing an Uberjar>>
* <<elastic-beanstalk.adoc#,Using the Elastic Beanstalk Quickstart>>
* <<socket-repl.adoc#,Setting up a socket REPL>>

== The Edge Project

* <<why-edge.adoc#,Why Edge?>>
* <<guidelines.adoc#,Contributing Guidelines>>
//* Getting help
//* How to get involved
//* License

Remove Why Edge? link from preamble

= Edge Documentation

Edge is a starting point for creating Clojure projects of all sizes.

== Get Started

Are you new to Edge?
This is the place to start!

. link:https://clojure.org/guides/getting_started[Install clj] (<<windows.adoc#,Additional notes for installing on Windows>>)
. <<editor.adoc#,Set up your editor for Clojure>>
. <<setup.adoc#,Set up Edge for your project>>
. <<dev-guide.adoc#,Developing on Edge>>

== Using Edge

//. Configuration
//. Components
* <<dev-guide.adoc#,Developing on Edge>>
* <<uberjar.adoc#,Producing an Uberjar>>
* <<elastic-beanstalk.adoc#,Using the Elastic Beanstalk Quickstart>>
* <<socket-repl.adoc#,Setting up a socket REPL>>

== The Edge Project

* <<why-edge.adoc#,Why Edge?>>
* <<guidelines.adoc#,Contributing Guidelines>>
//* Getting help
//* How to get involved
//* License


[[overview]]
== Overview

The goal of this document is to provide comprehensive reference documentation for both
programmers writing tests and extension authors.

WARNING: Work in progress!

=== Supported Java Versions

JUnit 5 only supports Java 8 and above. However, you can still test classes compiled with
lower versions.

== Installation

Snapshot artifacts are deployed to Sonatype's {snapshot-repo}[snapshots repository].

[[dependency-metadata]]
=== Dependency Metadata

* *Group ID*: `org.junit`
* *Version*: `{junit-version}`
* *Artifact IDs*:
** `junit-commons`
** `junit-console`
** `junit-engine-api`
** `junit-gradle`
** `junit-launcher`
** `junit4-engine`
** `junit4-runner`
** `junit5-api`
** `junit5-engine`
** `surefire-junit5`

See also: {snapshot-repo}/org/junit/

=== JUnit 5 Sample Projects

The {junit5-samples-repo}[`junit5-samples`] repository hosts a collection of sample
projects based on JUnit 5. You'll find the respective `build.gradle` and `pom.xml` in
the projects below.

* For Gradle, check out the `{junit5-gradle-consumer}` project.
* For Maven, check out the `{junit5-maven-consumer}` project.

Apply Spotless to User Guide


[[structure:Default]]
[role=group,includesConstraints="structure:packagesShouldConformToTheMainBuildingBlocks"]

All the blackboxes above should correspond to Java packages. Those packages should have no dependencies to other packages outside themselves but for the support or shared package:

[[structure:packagesShouldConformToTheMainBuildingBlocks]]
[source,cypher,role=constraint,requiresConcepts="structure:configPackages,structure:supportingPackages"]
.Top level packages should conform to the main building blocks.
----
MATCH (a:Artifact {type: 'jar'})
MATCH (a) -[:CONTAINS]-> (p1:Package) -[:DEPENDS_ON]-> (p2:Package) <-[:CONTAINS]- (a)
WHERE not p1:Config
  and not (p1) -[:CONTAINS]-> (p2)
  and not p2:Support
  and not p1.fqn = 'ac.simons.biking2.summary'
RETURN p1, p2
----

Use 'Main'-Label instead of type-attribute.

[[structure:Default]]
[role=group,includesConstraints="structure:packagesShouldConformToTheMainBuildingBlocks"]

All the blackboxes above should correspond to Java packages. Those packages should have no dependencies to other packages outside themselves but for the support or shared package:

[[structure:packagesShouldConformToTheMainBuildingBlocks]]
[source,cypher,role=constraint,requiresConcepts="structure:configPackages,structure:supportingPackages"]
.Top level packages should conform to the main building blocks.
----
MATCH (a:Main:Artifact)
MATCH (a) -[:CONTAINS]-> (p1:Package) -[:DEPENDS_ON]-> (p2:Package) <-[:CONTAINS]- (a)
WHERE not p1:Config
  and not (p1) -[:CONTAINS]-> (p2)
  and not p2:Support
  and not p1.fqn = 'ac.simons.biking2.summary'
RETURN p1, p2
----


[[release-notes-5.5.0-M2]]
== 5.5.0-M2

*Date of Release:* ❓

*Scope:* ❓

For a complete list of all _closed_ issues and pull requests for this release, consult
the link:{junit5-repo}+/milestone/37?closed=1+[5.5 M2] milestone page in the JUnit repository
on GitHub.

[[release-notes-5.5.0-M2-junit-platform]]
=== JUnit Platform

==== Bug Fixes

* ❓

==== Deprecations and Breaking Changes

* ❓

==== New Features and Improvements

* ❓

[[release-notes-5.5.0-M2-junit-jupiter]]
=== JUnit Jupiter

==== Bug Fixes

* Parameterized tests no longer throw an `ArrayStoreException` when creating human-readable
  test names.

==== Deprecations and Breaking Changes

* ❓

==== New Features and Improvements

* New `booleans` property in `ValueSource`.

[[release-notes-5.5.0-M2-junit-vintage]]
=== JUnit Vintage

==== Bug Fixes

* ❓

==== Deprecations and Breaking Changes

* ❓

==== New Features and Improvements

* ❓

Clean up 5.5 M2 release notes

[[release-notes-5.5.0-M2]]
== 5.5.0-M2

*Date of Release:* ❓

*Scope:* ❓

For a complete list of all _closed_ issues and pull requests for this release, consult
the link:{junit5-repo}+/milestone/37?closed=1+[5.5 M2] milestone page in the JUnit repository
on GitHub.

[[release-notes-5.5.0-M2-junit-platform]]
=== JUnit Platform

==== Bug Fixes

* ❓

==== Deprecations and Breaking Changes

* ❓

==== New Features and Improvements

* ❓

[[release-notes-5.5.0-M2-junit-jupiter]]
=== JUnit Jupiter

==== Bug Fixes

* Parameterized tests no longer throw an `ArrayStoreException` when creating human-readable
  test names.

==== Deprecations and Breaking Changes

* ❓

==== New Features and Improvements

* ❓

[[release-notes-5.5.0-M2-junit-vintage]]
=== JUnit Vintage

==== Bug Fixes

* ❓

==== Deprecations and Breaking Changes

* ❓

==== New Features and Improvements

* ❓


[[analysis-keyword-marker-tokenfilter]]
=== Keyword Marker Token Filter

Protects words from being modified by stemmers. Must be placed before
any stemming filters.

[cols="<,<",options="header",]
|=======================================================================
|Setting |Description
|`keywords` |A list of words to use.

|`keywords_path` |A path (either relative to `config` location, or
absolute) to a list of words.

|`ignore_case` |Set to `true` to lower case all words first. Defaults to
`false`.
|=======================================================================

Here is an example:

[source,js]
--------------------------------------------------
index :
    analysis :
        analyzer :
            myAnalyzer :
                type : custom
                tokenizer : standard
                filter : [lowercase, protwods, porter_stem]
        filter :
            protwods :
                type : keyword_marker
                keywords_path : analysis/protwords.txt
--------------------------------------------------

Fix typo in sample json

[[analysis-keyword-marker-tokenfilter]]
=== Keyword Marker Token Filter

Protects words from being modified by stemmers. Must be placed before
any stemming filters.

[cols="<,<",options="header",]
|=======================================================================
|Setting |Description
|`keywords` |A list of words to use.

|`keywords_path` |A path (either relative to `config` location, or
absolute) to a list of words.

|`ignore_case` |Set to `true` to lower case all words first. Defaults to
`false`.
|=======================================================================

Here is an example:

[source,js]
--------------------------------------------------
index :
    analysis :
        analyzer :
            myAnalyzer :
                type : custom
                tokenizer : standard
                filter : [lowercase, protwords, porter_stem]
        filter :
            protwords :
                type : keyword_marker
                keywords_path : analysis/protwords.txt
--------------------------------------------------


= Authors and contributors

- Simon Cruanes (`companion_cube`)
- Drup (Gabriel Radanne)
- Jacques-Pascal Deplaix
- Nicolas Braud-Santoni
- Whitequark (Peter Zotov)
- hcarty (Hezekiah M. Carty)
- struktured (Carmelo Piccione)
- Bernardo da Costa
- Vincent Bernardoff (vbmithr)
- Emmanuel Surleau (emm)
- Guillaume Bury (guigui)
- JP Rodi
- Florian Angeletti (@octachron)
- Johannes Kloos
- Geoff Gole (@gsg)
- Roma Sokolov (@little-arhat)
- Malcolm Matalka (`orbitz`)
- David Sheets (@dsheets)
- Glenn Slotte (glennsl)
- @LemonBoy
- Leonid Rozenberg (@rleonid)
- Bikal Gurung (@bikalgurung)
- Fabian Hemmer (copy)
- Maciej Woś (@lostman)
- Orbifx (Stavros Polymenis)
- Rand (@rand00)
- Dave Aitken (@actionshrimp)
- Etienne Millon (@emillon)
- Christopher Zimmermann (@madroach)
- Jules Aguillon (@julow)

Add myself to the authors file

= Authors and contributors

- Simon Cruanes (`companion_cube`)
- Drup (Gabriel Radanne)
- Jacques-Pascal Deplaix
- Nicolas Braud-Santoni
- Whitequark (Peter Zotov)
- hcarty (Hezekiah M. Carty)
- struktured (Carmelo Piccione)
- Bernardo da Costa
- Vincent Bernardoff (vbmithr)
- Emmanuel Surleau (emm)
- Guillaume Bury (guigui)
- JP Rodi
- Florian Angeletti (@octachron)
- Johannes Kloos
- Geoff Gole (@gsg)
- Roma Sokolov (@little-arhat)
- Malcolm Matalka (`orbitz`)
- David Sheets (@dsheets)
- Glenn Slotte (glennsl)
- @LemonBoy
- Leonid Rozenberg (@rleonid)
- Bikal Gurung (@bikalgurung)
- Fabian Hemmer (copy)
- Maciej Woś (@lostman)
- Orbifx (Stavros Polymenis)
- Rand (@rand00)
- Dave Aitken (@actionshrimp)
- Etienne Millon (@emillon)
- Christopher Zimmermann (@madroach)
- Jules Aguillon (@julow)
- Metin Akat (@loxs)


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

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 >>
}
....

Add images directory attribute to devguide

= 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 >>
}
....


= Groundwork
:toc:
:source-highlighter: pygments

link:index.html[back to index page]

== Laying the Groundwork

To redeploy RecordTrac, you need support from key stakeholders _within_ government. The administrator or elected official in charge of overseeing public records request must agree to use this system, and instruct their colleagues to do so.

RecordTrac assumes there is a contact for a given municipality or department within the municipality to handle public records requests. If a government agency has no process at all in place, but is interested in using the system, they could start with one ‘champion’ that is knowledgeable about who has access to different records. The champion can then route requests to the proper parties within government who may have the documents or information a requester needs.

== Best Practices to Consider

RecordTrac is flexible and could complement almost any governmental agency's process for fulfilling records requests. There are however, best practices a governmental agency should adopt to really leverage the power of RecordTrac. Below is an example lifted from the City of Oakland:

* Track all public records requests through RecordTrac, even if you originally received it over the phone, by email, fax, or mail.

* Don't reveal sensitive information in your message or upload documents that haven't been thoroughly redacted. Everything you do on the site is immediately viewable to the public.

* Upload scanned copies of the [redacted] records online instead of sending the document only to the requester. This prevents you from answering the same public records request multiple times. It also provides proof you responded to the request and exactly what you provided.

* Communicate with everyone through RecordTrac. Only take conversations offline if it involves confidential or sensitive information.

* Review requests no later than two business days after you receive them. This ensures the person responsible for fulfilling a records request gets it in time if it needs to be re-routed to him or her.

Put Best practices in a separate section.


= Qprompt

== Introduction
This project provides a Python 2.x library that allows the user to quickly create CLI prompts for user input. The main features are the following:

  - Simple multi-entry menus.
  - Prompt for yes/no response.
  - Prompt for integer response.
  - Prompt for float response.
  - Optional default value.
  - Optional validity check.
  - Should work on any platform without additional dependencies.

== Status
Currently, this project is **under active development**. The contents of the repository should be considered unstable during active development.

== Requirements
Qprompt should run on any Python 2.x interpreter without additional dependencies.

== Installation
Qprompt can be installed with pip using the following command: `pip install qprompt`

Additional, Qprompt can be installed from source by running: `python setup.py install`

== Examples
Example of basic information prompting:

--------
include::examples/ask_1.py[]
--------

Example of menu usage:

--------
include::examples/menu_1.py[]
--------

== Similar
The following projects are similar and may be worth checking out:

  - https://github.com/Sleft/cliask[cliask]
  - https://github.com/aventurella/promptly[Promptly]
  - https://github.com/tylerdave/prompter[prompter]
  - https://github.com/magmax/python-inquirer[python-inquirer]

Update to the example section.

= Qprompt

== Introduction
This project provides a Python 2.x library that allows the user to quickly create CLI prompts for user input. The main features are the following:

  - Simple multi-entry menus.
  - Prompt for yes/no response.
  - Prompt for integer response.
  - Prompt for float response.
  - Optional default value.
  - Optional validity check.
  - Should work on any platform without additional dependencies.

== Status
Currently, this project is **under active development**. The contents of the repository should be considered unstable during active development.

== Requirements
Qprompt should run on any Python 2.x interpreter without additional dependencies.

== Installation
Qprompt can be installed with pip using the following command: `pip install qprompt`

Additional, Qprompt can be installed from source by running: `python setup.py install`

== Examples
The following are basic examples of Qprompt (all examples can be found https://github.com/jeffrimko/Qprompt/tree/master/examples[here]):

  - https://github.com/jeffrimko/Qprompt/blob/master/examples/ask_1.py[`examples/ask_1.py`] - Basic info prompting.
  - https://github.com/jeffrimko/Qprompt/blob/master/examples/menu_1.py[`examples/menu_1.py`] - Basic menu usage.

== Similar
The following projects are similar and may be worth checking out:

  - https://github.com/Sleft/cliask[cliask]
  - https://github.com/aventurella/promptly[Promptly]
  - https://github.com/tylerdave/prompter[prompter]
  - https://github.com/magmax/python-inquirer[python-inquirer]


*--map-http-status* 'TEXT'::

Map non success HTTP response codes to exit codes other than 1.
e.g. "--map-http-satus 403=0,404=0" would exit with 0 even if a 403
or 404 http error code was received. Valid exit codes are 0,1,50-99.

include::format_option.adoc[]

include::jmespath_option.adoc[]

include::help_option.adoc[]

include::verbose_option.adoc[]

Remove nested includes from adoc

*--map-http-status* 'TEXT'::

Map non success HTTP response codes to exit codes other than 1.
e.g. "--map-http-satus 403=0,404=0" would exit with 0 even if a 403
or 404 http error code was received. Valid exit codes are 0,1,50-99.

*-F, --format* '[json|text]'::

Set the output format for stdout. Defaults to "text".

*--jq, --jmespath* 'EXPR'::

Supply a JMESPath expression to apply to json output.
Takes precedence over any specified '--format' and forces the format to be json
processed by this expression.
+
A full specification of the JMESPath language for querying JSON structures may
be found at https://jmespath.org/

*-h, --help*::

Show help text for this command.

*-v, --verbose*::

Control the level of output.
+
Use -v or --verbose to show warnings and any additional text output.
+
Use -vv to add informative logging.
+
Use -vvv to add debug logging and full stack on any errors. (equivalent to
-v --debug)


// Module included in the following assemblies:
//
// administering_a_cluster/dedicated-admin-role.adoc

[id="dedicated-managing-dedicated-administrators_{context}"]
=  Managing {product-title} administrators

Administrator roles are managed using a `dedicated-admins` group on the cluster.
Existing members of this group can edit membership via the
link:https://cloud.redhat.com/openshift[{cloud-redhat-com}] site.

[id="dedicated-administrators-adding-user_{context}"]
== Adding a user
. Navigate to the *Cluster Details* page and *Users* tab.
. Click the *Add user* button.  (first user only)
. Enter the user name and select the group (*dedicated-admins*)
. Click the *Add* button.

[id="dedicated-administrators-removing-user_{context}"]
== Removing a user
. Navigate to the *Cluster Details* page and *Users* tab.
. Click the *X* to the right of the user / group combination to be deleted..

Update documentation to current interface on cloud.rh.c

// Module included in the following assemblies:
//
// administering_a_cluster/dedicated-admin-role.adoc

[id="dedicated-managing-dedicated-administrators_{context}"]
=  Managing {product-title} administrators

Administrator roles are managed using a `dedicated-admins` group on the cluster.
Existing members of this group can edit membership via the
link:https://cloud.redhat.com/openshift[{cloud-redhat-com}] site.

[id="dedicated-administrators-adding-user_{context}"]
== Adding a user
. Navigate to the *Cluster Details* page and *Access Control* tab.
. Click the *Add user* button.  (first user only)
. Enter the user name and select the group (*dedicated-admins*)
. Click the *Add* button.

[id="dedicated-administrators-removing-user_{context}"]
== Removing a user
. Navigate to the *Cluster Details* page and *Access Control* tab.
. Click the 3 vertical dots to the right of the user / group combination to show a menu, then click on *Delete*.


2020/06/18: Concuerror integration has been added. It is
            currently minimal but usable. Experimentation
            and feedback is welcome.

2020/11/30: Support for publishing Hex releases and docs
            has been added. It is currently experimental.
            Feedback is more than welcome.

2022/03/25: The -Wrace_conditions Dialyzer flag was removed
            as it is no longer available starting from OTP 25.

2022/??/??: Relx has been updated to v4. Relx v4 is no longer
            an escript, therefore breaking changes were
            introduced. The `RELX`, `RELX_URL` and `RELX_OPTS`
            variables were removed. The `relx` project must
            be added as a `DEPS`, `BUILD_DEPS` or `REL_DEPS`
            dependency to enable building releases. For example:
            `REL_DEPS = relx`. Relx itself has had some
            additional changes: the `start` command has
            been replaced by `daemon`, and configuration
            defaults have changed so that you may need
            to add the following to your relx.config file:

            ``` erlang
            {dev_mode, false}.
            {include_erts, true}.
            ```

Set date for breaking Relx 4 change

2020/06/18: Concuerror integration has been added. It is
            currently minimal but usable. Experimentation
            and feedback is welcome.

2020/11/30: Support for publishing Hex releases and docs
            has been added. It is currently experimental.
            Feedback is more than welcome.

2022/03/25: The -Wrace_conditions Dialyzer flag was removed
            as it is no longer available starting from OTP 25.

2022/05/20: Relx has been updated to v4. Relx v4 is no longer
            an escript, therefore breaking changes were
            introduced. The `RELX`, `RELX_URL` and `RELX_OPTS`
            variables were removed. The `relx` project must
            be added as a `DEPS`, `BUILD_DEPS` or `REL_DEPS`
            dependency to enable building releases. For example:
            `REL_DEPS = relx`. Relx itself has had some
            additional changes: the `start` command has
            been replaced by `daemon`, and configuration
            defaults have changed so that you may need
            to add the following to your relx.config file:

            ``` erlang
            {dev_mode, false}.
            {include_erts, true}.
            ```


== Time Zones & Offset

Extract a zone from a `java.time.ZonedDateTime`:
====
[source.code,clojure]
----
(t/zone (t/zoned-date-time "2000-01-01T00:00:00Z[Europe/Paris]"))
----

[source.code,clojure]
----
(t/zone)
----

====

Create a `java.time.ZonedDateTime` in a particular time zone:

====
[source.code,clojure]
----
(t/in (t/instant "2000-01-01T00:00") "Australia/Darwin")
----
====

=== TBD : offsets

Add offset examples to Zones

== Time Zones & Offset

Extract a zone from a `java.time.ZonedDateTime`:
====
[source.code,clojure]
----
(t/zone (t/zoned-date-time "2000-01-01T00:00:00Z[Europe/Paris]"))
----

[source.code,clojure]
----
(t/zone)
----

====

Create a `java.time.ZonedDateTime` in a particular time zone:

====
[source.code,clojure]
----
(t/in (t/instant "2000-01-01T00:00") "Australia/Darwin")
----
====

Give the `OffsetDateTime` instead of `ZonedDateTime`:

====
[source.code,clojure]
----
(t/offset-date-time (t/zoned-date-time "2000-01-01T00:00:00Z[Australia/Darwin]"))
----
====

Specify the offset for a `LocalDateTime`:
====
[source.code,clojure]
----
(t/offset-by (t/date-time "2018-01-01T00:00") 9)
----
====


= geo-shell
Jared Erickson
v0.7-SNAPSHOT
ifndef::imagesdir[:imagesdir: images]

include::intro.adoc[]

include::workspace.adoc[]

include::layer.adoc[]

include::format.adoc[]

include::raster.adoc[]

include::tile.adoc[]

include::style.adoc[]

include::map.adoc[]

include::builtin.adoc[]

Add title image to pdf

= Geo Shell
Jared Erickson
v0.7-SNAPSHOT
:title-logo-image: image:geoshell.png[pdfwidth=5.5in,align=center]
ifndef::imagesdir[:imagesdir: images]

include::intro.adoc[]

include::workspace.adoc[]

include::layer.adoc[]

include::format.adoc[]

include::raster.adoc[]

include::tile.adoc[]

include::style.adoc[]

include::map.adoc[]

include::builtin.adoc[]


:generated: ../../../target/generated-docs/asciidoc

include::{generated}/overview.adoc[]
include::manual_rest_doc.adoc[]
include::{generated}/paths.adoc[]

Add generated data type definitions to Swagger documentation

:generated: ../../../target/generated-docs/asciidoc

include::{generated}/overview.adoc[]
include::manual_rest_doc.adoc[]
include::{generated}/paths.adoc[]
include::{generated}/definitions.adoc[]


= Spring Boot and Two DataSources

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

It utilizes:

* Spring Data https://github.com/spring-projects/spring-data-jpa[JPA]
* https://github.com/flyway/flyway[Flyway] migrations for the two `DataSource` s
* Separate Hibernate properties for each `DataSource` defined in the application.yml
* Tests for components

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

Remove note about app starting up


[[development]]
== Development

Github repository: {datasource-proxy}

=== Build Documentation

```sh
> ./mvnw asciidoctor:process-asciidoc@output-html
```

Add how to use asciidoctor plugin in dev

[[development]]
== Development

Github repository: {datasource-proxy}

=== Build Documentation

Generate `index.html`

```sh
> ./mvnw asciidoctor:process-asciidoc@output-html
```

Http preview

```sh
> ./mvnw asciidoctor:http@output-html
```


= Infinispan Cluster Manager

image:https://vertx.ci.cloudbees.com/buildStatus/icon?job=vert.x3-infinispan["Build Status",link="https://vertx.ci.cloudbees.com/view/vert.x-3/job/vert.x3-infinispan/"]

This is a cluster manager implementation for Vert.x that uses http://infinispan.org[Infinispan].

Please see the in-source asciidoc documentation or the main documentation on the web-site for a full description
of this component:

* link:http://vertx.io/docs/vertx-infinispan/java/[web-site docs]
* link:src/main/asciidoc/java/index.adoc[in-source docs]

-- will remove --

Revert "Revert "Revert "Test trigger on push"""


The next transformations can be applied to any class to simplify greatly the development of Multi-Tenant applications. These include:

- `@CurrentTenant` - Resolve the current tenant for the context of a class or method
- `@Tenant` - Use a specific tenant for the context of a class or method
- `@WithoutTenant` - Execute logic without a specific tenant (using the default connection)

For example:

[source,groovy]
----
import grails.gorm.multitenancy.*

// resolve the current tenant for every method
@CurrentTenant
class TeamService {

    // execute the countPlayers method without a tenant id
    @WithoutTenant
    int countPlayers() {
        Player.count()
    }

    // use the tenant id "another" for all GORM logic within the method
    @Tenant({"another"})
    List<Team> allTwoTeams() {
        Team.list()
    }

    List<Team> listTeams() {
        Team.list(max:10)
    }

    @Transactional
    void addTeam(String name) {
        new Team(name:name).save(flush:true)
    }
}
----

Replace "the next" with "the following"

The following transformations can be applied to any class to simplify greatly the development of Multi-Tenant applications. These include:

- `@CurrentTenant` - Resolve the current tenant for the context of a class or method
- `@Tenant` - Use a specific tenant for the context of a class or method
- `@WithoutTenant` - Execute logic without a specific tenant (using the default connection)

For example:

[source,groovy]
----
import grails.gorm.multitenancy.*

// resolve the current tenant for every method
@CurrentTenant
class TeamService {

    // execute the countPlayers method without a tenant id
    @WithoutTenant
    int countPlayers() {
        Player.count()
    }

    // use the tenant id "another" for all GORM logic within the method
    @Tenant({"another"})
    List<Team> allTwoTeams() {
        Team.list()
    }

    List<Team> listTeams() {
        Team.list(max:10)
    }

    @Transactional
    void addTeam(String name) {
        new Team(name:name).save(flush:true)
    }
}
----


[[community-beats]]
== Community Beats

The open source community has been hard at work developing new Beats. You can check
out a few of them here:

[horizontal]
https://github.com/Ingensi/dockerbeat[dockerbeat]:: Reads docker container
statistics and indexes them in Elasticsearch
https://github.com/christiangalsterer/httpbeat[httpbeat]:: Polls multiple HTTP(S) endpoints and sends the data to
Logstash, Elasticsearch. Supports all HTTP methods and proxies.
https://github.com/mrkschan/nginxbeat[nginxbeat]:: Reads status from Nginx
https://github.com/joshuar/pingbeat[pingbeat]:: Sends ICMP pings to a list
of targets and stores the round trip time (RTT) in Elasticsearch
https://github.com/mrkschan/uwsgibeat[uwsgibeat]:: Reads stats from uWSGI
https://github.com/kozlice/phpfpmbeat[phpfpmbeat]:: Reads status from PHP-FPM

Have you created a Beat that's not listed? Open a pull request to add your link
here: https://github.com/elastic/libbeat/blob/master/docs/communitybeats.asciidoc

NOTE: Elastic provides no warranty or support for community-sourced Beats.

[[contributing-beats]]
=== Contributing to Beats

Remember, you can be a Beats developer, too. <<new-beat, Learn how>>

Add apachebeat to the list of beats from opensource

[[community-beats]]
== Community Beats

The open source community has been hard at work developing new Beats. You can check
out a few of them here:

[horizontal]
https://github.com/Ingensi/dockerbeat[dockerbeat]:: Reads docker container
statistics and indexes them in Elasticsearch
https://github.com/christiangalsterer/httpbeat[httpbeat]:: Polls multiple HTTP(S) endpoints and sends the data to
Logstash, Elasticsearch. Supports all HTTP methods and proxies.
https://github.com/mrkschan/nginxbeat[nginxbeat]:: Reads status from Nginx
https://github.com/joshuar/pingbeat[pingbeat]:: Sends ICMP pings to a list
of targets and stores the round trip time (RTT) in Elasticsearch
https://github.com/mrkschan/uwsgibeat[uwsgibeat]:: Reads stats from uWSGI
https://github.com/kozlice/phpfpmbeat[phpfpmbeat]:: Reads status from PHP-FPM
https://github.com/radoondas/apachebeat[apachebeat]:: Reads status from Apache HTTPD server-status

Have you created a Beat that's not listed? Open a pull request to add your link
here: https://github.com/elastic/libbeat/blob/master/docs/communitybeats.asciidoc

NOTE: Elastic provides no warranty or support for community-sourced Beats.

[[contributing-beats]]
=== Contributing to Beats

Remember, you can be a Beats developer, too. <<new-beat, Learn how>>


= RESTful API Endpoint specification

== Nodes

=== Idea for accessing fields directly

* RUD: /nodes/:uuid/relatedProducts/:uuid -> Pageable list of nodes
* R: /nodes/:uuid/name

TODO: Do we want to restrict the primitiv types to read only? The user can update the node via PUT /nodes/:uuid anyway.

== Webroot

== Tags

TODO: Define how tag familes are setup and tags are assigned to those families.

== Users / Groups / Roles

== Projects

TODO: Define how languages are assigned to projects

Add section on breadcrumbs endpoint

= RESTful API Endpoint specification

== Nodes

=== Idea for accessing fields directly

* RUD: /nodes/:uuid/relatedProducts/:uuid -> Pageable list of nodes
* R: /nodes/:uuid/name

TODO: Do we want to restrict the primitiv types to read only? The user can update the node via PUT /nodes/:uuid anyway.

== Breadcrumbs

`/breadcrumb/:uuid` -> object containing breadcrumb to the node specified by uuid in the following format:

[source,json]
----
[
  { "uuid": "e0c64dsgasdgasdgdgasdgasdgasdg33", "name": "products" },
  { "uuid": "e0c64ad00a9343cc864ad00a9373cc23", "name": "aeroplane.en.html" }
]
----

TODO: Where does the "name" property come from? It should be the field specified by "segmentField" in the schema.

Two issues:

1. Should we normalize the property name to "name", or retain the name of the field specified by "segmentField"?
2. If the schema of a node in the breadcrumb path does not specify "segmentField", what do we do? Just display the uuid?

== Webroot

== Tags

TODO: Define how tag familes are setup and tags are assigned to those families.

== Users / Groups / Roles

== Projects

TODO: Define how languages are assigned to projects


= conoha/dokku-apps

.Add pytohn-getting-started app
----
alias dokku="ssh -t dokku@conoha"

cd python-getting-started

dokku apps:create python-getting-started
git remote add dokku dokku@conoha:python-getting-started
git push dokku master
----

And this app can be available at http://python-getting-started.d.10sr.f5.si .

Add note to add keys for dokku

= conoha/dokku-apps

First you have to run:

----
cat .ssh/id_rsa.pub | ssh conoha 'sudo sshcommand acl-add dokku dokkudeploy'
----

.Add pytohn-getting-started app
----
alias dokku="ssh -t dokku@conoha"

cd python-getting-started

dokku apps:create python-getting-started
git remote add dokku dokku@conoha:python-getting-started
git push dokku master
----

And this app can be available at http://python-getting-started.d.10sr.f5.si .


= Continuous integration
:awestruct-description: Check if the latest nightly build passes all automated tests.
:awestruct-layout: normalBase
:showtitle:

== OptaPlanner

We use Jenkins for continuous integration.

*Show https://hudson.jboss.org/hudson/job/optaplanner/[the public Jenkins job].* This is a mirror of a Red Hat internal Jenkins job.

Keep the build blue!

== Project website (optaplanner.org)

We use Travis to build this project website, see https://travis-ci.org/droolsjbpm/optaplanner-website[the travis job].

Update public Jenkins job URL

= Continuous integration
:awestruct-description: Check if the latest nightly build passes all automated tests.
:awestruct-layout: normalBase
:showtitle:

== OptaPlanner

We use Jenkins for continuous integration.

*Show https://jenkins-kieci.rhcloud.com/job/optaplanner/[the public Jenkins job].* This is a mirror of a Red Hat internal Jenkins job.

Keep the build green!

== Project website (optaplanner.org)

We use Travis to build this project website, see https://travis-ci.org/droolsjbpm/optaplanner-website[the travis job].


// Module included in the following assemblies:
//
// * dns/dns-operator.adoc

[id="nw-dns-operator-logs_{context}"]
= DNS Operator logs

You can view DNS Operator logs by using the `oc logs` command.

.Procedure

View the logs of the DNS Operator:
----
$ oc logs --namespace=openshift-dns-operator deployment/dns-operator
----

Fix command to get DNS logs

// Module included in the following assemblies:
//
// * dns/dns-operator.adoc

[id="nw-dns-operator-logs_{context}"]
= DNS Operator logs

You can view DNS Operator logs by using the `oc logs` command.

.Procedure

View the logs of the DNS Operator:
----
$ oc logs -n openshift-dns-operator deployment/dns-operator -c dns-operator
----


:filename: manual/03_task_exportEA.adoc
ifndef::imagesdir[:imagesdir: ../images]

= exportEA

IMPORTANT: Currently this feature is WINDOWS-only. https://github.com/docToolchain/docToolchain/issues/231[See related issue]

include::feedback.adoc[]

image::ea/Manual/exportEA.png[]

TIP: Blog-Posts: https://rdmueller.github.io/jria2eac/[JIRA to Sparx EA], https://rdmueller.github.io/sparx-ea/[Did you ever wish you had better Diagrams?]

== Source

.build.gradle
[source,groovy]
----
include::../../../scripts/exportEA.gradle[tags=exportEA]
----

.scripts/exportEAP.vbs
[source]
----
include::../../../scripts/exportEAP.vbs[]
----

Add documentation for the parameters offered by the exportEA configuration.

:filename: manual/03_task_exportEA.adoc
ifndef::imagesdir[:imagesdir: ../images]

= exportEA

IMPORTANT: Currently this feature is WINDOWS-only. https://github.com/docToolchain/docToolchain/issues/231[See related issue]

include::feedback.adoc[]

image::ea/Manual/exportEA.png[]

TIP: Blog-Posts: https://rdmueller.github.io/jria2eac/[JIRA to Sparx EA], https://rdmueller.github.io/sparx-ea/[Did you ever wish you had better Diagrams?]

== Configuration
By default no special configuration is necessary.
But, to be more specific on the project and its packages to be used for export,
two optional parameter configurations are available.
The parameters can be used independently from each other.
A sample how to edit your projects Config.groovy is given in the 'Config.groovy'
of the docToolchain project itself.

connection::
Set the connection to a certain project or comment it out to use all project files inside the src folder or its child folder.

packageFilter::
Add one or multiple packageGUIDs to be used for export. All packages are analysed, if no packageFilter is set.

== Source

.build.gradle
[source,groovy]
----
include::../../../scripts/exportEA.gradle[tags=exportEA]
----

.scripts/exportEAP.vbs
[source]
----
include::../../../scripts/exportEAP.vbs[]
----


:doctitle:
:author: Jerod Gawne
:email: jerodgawne@gmail.com
:docdate: June 07, 2018
:revdate: {docdatetime}
:src-uri: https://github.com/jerodg/hackerrank

:difficulty:
:time-complexity:
:required-knowledge:
:advanced-knowledge:
:solution-variability:
:score:
:keywords: python, {required-knowledge}, {advanced-knowledge}
:summary:

:doctype: article
:sectanchors:
:sectlinks:
:sectnums:
:toc:

{summary}

== Learning

== Tutorial

== Improving the Template
=== Convention
.Missing
* shebang
* encoding
* doc-comments

=== Extraneous
N/A

=== Pep8
* No new-line at end of file

=== Syntax
N/A

== Reference

Add Improving the Problem section.

:doctitle:
:author: Jerod Gawne
:email: jerodgawne@gmail.com
:docdate: June 07, 2018
:revdate: {docdatetime}
:src-uri: https://github.com/jerodg/hackerrank

:difficulty:
:time-complexity:
:required-knowledge:
:advanced-knowledge:
:solution-variability:
:score:
:keywords: python, {required-knowledge}, {advanced-knowledge}
:summary:

:doctype: article
:sectanchors:
:sectlinks:
:sectnums:
:toc:

{summary}

== Learning

== Tutorial

== Improving the Problem

== Improving the Template
=== Convention
.Missing
* shebang
* encoding
* doc-comments

=== Extraneous
N/A

=== Pep8
* No new-line at end of file

=== Syntax
N/A

== Reference


# Camel Supervising Route Controller Example Spring Boot

This example shows how to work with a simple Apache Camel application using Spring Boot and a Supervising Route Controller.

## How to run

You can run this example using

    mvn spring-boot:run

Beside JMX you can use Spring Boot Endpoints to interact with the routes:

* To get info about the routes
+
[source]
----
curl -XGET -s http://localhost:8080/actuator/camelroutes
----
+
+* To get details about a route
++
+[source]
+----
+curl -XGET -s http://localhost:8080/actuator/camelroutes/{id}/detail
+----

* To get info about a route
+
[source]
----
curl -XGET -s http://localhost:8080/actuator/camelroutes/{id}/info
----

* To stop a route
+
[source]
----
curl -XPOST -H "Content-Type: application/json" -s http://localhost:8080/actuator/camelroutes/{id}/stop
----

* To start a route
+
[source]
----
curl -XPOST -H "Content-Type: application/json" -s http://localhost:8080/actuator/camelroutes/{id}/start
----

## More information

You can find more information about Apache Camel at the website: http://camel.apache.org/

Fix the example document error

# Camel Supervising Route Controller Example Spring Boot

This example shows how to work with a simple Apache Camel application using Spring Boot and a Supervising Route Controller.

## How to run

You can run this example using

    mvn spring-boot:run

Beside JMX you can use Spring Boot Endpoints to interact with the routes:

* To get info about the routes
+
[source]
----
curl -XGET -s http://localhost:8080/actuator/camelroutes
----

* To get details about a route
+
[source]
----
curl -XGET -s http://localhost:8080/actuator/camelroutes/{id}/detail
----

* To get info about a route
+
[source]
----
curl -XGET -s http://localhost:8080/actuator/camelroutes/{id}/info
----

* To stop a route
+
[source]
----
curl -XPOST -H "Content-Type: application/json" -s http://localhost:8080/actuator/camelroutes/{id}/stop
----

* To start a route
+
[source]
----
curl -XPOST -H "Content-Type: application/json" -s http://localhost:8080/actuator/camelroutes/{id}/start
----

## More information

You can find more information about Apache Camel at the website: http://camel.apache.org/


= The Ehcache 3.x line is currently the development line.

Status of the build: image:https://ehcache.ci.cloudbees.com/buildStatus/icon?job=ehcache3

For more information, you might want to go check the https://github.com/ehcache/ehcache3/wiki[wiki].

image:http://cloudbees.prod.acquia-sites.com/sites/default/files/styles/large/public/Button-Built-on-CB-1.png?itok=3Tnkun-C

Fix image tags in updated readme

= The Ehcache 3.x line is currently the development line.

Status of the build: image:https://ehcache.ci.cloudbees.com/buildStatus/icon?job=ehcache3[Ehcache@Cloudbees, link="https://ehcache.ci.cloudbees.com/job/ehcache3/"]

For more information, you might want to go check the https://github.com/ehcache/ehcache3/wiki[wiki].

image:http://cloudbees.prod.acquia-sites.com/sites/default/files/styles/large/public/Button-Powered-by-CB.png?itok=uMDWINfY[Cloudbees, link="http://www.cloudbees.com/resources/foss"]


= clublist - Club Membership List

Track members for a small non-profit club.

This shows off some basic functionality of JPA and DeltaSpike Data in a JSF environment.

== Deployment

. Copy config-sample.properties to config.properties, change the name in the orgName property
in this file from 'Sample Club' to your organization's name (keep it short).
. Setup the datasource in your app server
. Setup the deployment as needed (e.g., edit jboss-deployment.xml)
. Create a user in the role of club_exec in your app server.
. Deploy (e.g., mvn wildfly:deploy if you use JBoss WildFly).
. Enjoy!

== ToDo

Security: Maybe allow members to update their own record (only!)

Use redirect after editing to really go back to the List page.

"Position" should be a relationship to another Entity, with a dropdown chooser.

"Membership Type" should be a relationship to another Entity, with a dropdown.

Search with 'Like' method in DS Data

A confirmation (p:dialog?) on the Edit->Delete button would be a good idea.

Implement the Mailing List page.

Implement the Print Member Badge/Label page.

Even though people should not use spreadsheets for database work, you will probably
be pressured to impelement the "Export" capability. You will need Apache POI for this.

Refactor Home object to merge w/ darwinsys-ee EntityHome

Format ToDo as a list

= clublist - Club Membership List

Track members for a small non-profit club.

This shows off some basic functionality of JPA and DeltaSpike Data in a JSF environment.

== Deployment

. Copy config-sample.properties to config.properties, change the name in the orgName property
in this file from 'Sample Club' to your organization's name (keep it short).
. Setup the datasource in your app server
. Setup the deployment as needed (e.g., edit jboss-deployment.xml)
. Create a user in the role of club_exec in your app server.
. Deploy (e.g., mvn wildfly:deploy if you use JBoss WildFly).
. Enjoy!

== ToDo

Here are some things that should be added. https://github.com/IanDarwin/clublist[Fork this project on GitHub] and send pull requests when you get one working!

. Search with 'Like' method in DS Data
. Use redirect after editing to really go back to the List page.
. Maybe allow members to update their own record (only!)
	Probably requires moving to app-managed security since you already have a record for each person.
. "Position" should be a relationship to another Entity, with a dropdown chooser.
. "Membership Type" should be a relationship to another Entity, with a dropdown.
. A confirmation (p:dialog?) on the Edit->Delete button would be a good idea.
. Implement the Mailing List page.
. Implement the Print Member Badge/Label page.
. Even though people should not use spreadsheets for database work, you will probably
be pressured to impelement the "Export" capability. You will need Apache POI for this.
. Refactor Home object to merge w/ darwinsys-ee EntityHome


proxy
=====

[quote]
A development proxy with logging and redirect-rewriting

Installation
------------

[source,bash]
----
go get -u github.com/ciarand/proxy
----

Usage
-----

[source,bash]
----
# start the proxy in one shell:
proxy -from=https://www.google.com -to=http://0.0.0.0:8080

# and in another, run curl:
curl -s http://localhost:8080/ | head -c 15
<!doctype html>

# result from proxy shell (shortened for width):
INFO[0022] request started   client_address=[::1]:58988 method=GET uri=/
INFO[0023] request complete  elapsed=624.644152ms status=200
----

License
-------
See the link:LICENSE[LICENSE] file.

Add prebuilt binary installation instructions

proxy
=====

[quote]
A development proxy with logging and redirect-rewriting

Installation
------------

Download a prebuilt binary for your platform and architecture from the
link:https://github.com/ciarand/proxy/releases[release page].

Or, build from source:

[source,bash]
----
# from source
go get -u github.com/ciarand/proxy
----

Usage
-----

[source,bash]
----
# start the proxy in one shell:
proxy -from=https://www.google.com -to=http://0.0.0.0:8080

# and in another, run curl:
curl -s http://localhost:8080/ | head -c 15
<!doctype html>

# result from proxy shell (shortened for width):
INFO[0022] request started   client_address=[::1]:58988 method=GET uri=/
INFO[0023] request complete  elapsed=624.644152ms status=200
----

License
-------
See the link:LICENSE[LICENSE] file.


# android-images
Yet another repo with docker images for Android developers

[source,planzuml]
------
node "java jdk-8" as jdk8
node "java jdk-7" as jdk7
artifact "Android" {
node "gradle" as gradle
node "sdk" as sdk
node "ndk 11" as ndk11
node "ndk 13" as ndk13
node "vlc" as vlc
}
artifact "Tools" {
node "ruby" as ruby
node "Asciidoctor" as asciidoctor
}

gradle -up-> jdk8
sdk -up-> gradle
ndk11 -up-> sdk
ndk13 -up-> sdk
vlc -up-> ndk11

ruby -up-> jdk8
asciidoctor -up-> ruby
------

Fix typo in plantuml definition

# android-images
Yet another repo with docker images for Android developers

[source,plantuml]
------
node "java jdk-8" as jdk8
node "java jdk-7" as jdk7
artifact "Android" {
node "gradle" as gradle
node "sdk" as sdk
node "ndk 11" as ndk11
node "ndk 13" as ndk13
node "vlc" as vlc
}
artifact "Tools" {
node "ruby" as ruby
node "Asciidoctor" as asciidoctor
}

gradle -up-> jdk8
sdk -up-> gradle
ndk11 -up-> sdk
ndk13 -up-> sdk
vlc -up-> ndk11

ruby -up-> jdk8
asciidoctor -up-> ruby
------


= 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

Add link to GitHup page

= 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.


= Who's Using Debezium?
:awestruct-layout: doc
:linkattrs:
:icons: font
:source-highlighter: highlight.js

Debezium is used in production by a wide range of companies and organizations.
This list contains users of Debezium who agreed to serve as public reference;
where available, further resources with more details are linked.

If your organization would like to be added to (or removed from) this list,
please send a pull request for updating the https://github.com/debezium/debezium.github.io/blob/develop/docs/users.asciidoc[source of this page].

* Convoy (https://medium.com/convoy-tech/logs-offsets-near-real-time-elt-with-apache-kafka-snowflake-473da1e4d776[details])
* JW Player (https://www.slideshare.net/jwplayer/polylog-a-logbased-architecture-for-distributed-systems-124997666[details])
* OYO
* Usabilla by Surveymonkey
* WePay, Inc. (https://wecode.wepay.com/posts/streaming-databases-in-realtime-with-mysql-debezium-kafka[details], https://wecode.wepay.com/posts/streaming-cassandra-at-wepay-part-1[more details])
* ... and you? Then let us know and get added to the list, too. Thanks!

Fix broken link to source of page

= Who's Using Debezium?
:awestruct-layout: doc
:linkattrs:
:icons: font
:source-highlighter: highlight.js

Debezium is used in production by a wide range of companies and organizations.
This list contains users of Debezium who agreed to serve as public reference;
where available, further resources with more details are linked.

If your organization would like to be added to (or removed from) this list,
please send a pull request for updating the https://github.com/debezium/debezium.github.io/blob/develop/community/users.asciidoc[source of this page].

* Convoy (https://medium.com/convoy-tech/logs-offsets-near-real-time-elt-with-apache-kafka-snowflake-473da1e4d776[details])
* JW Player (https://www.slideshare.net/jwplayer/polylog-a-logbased-architecture-for-distributed-systems-124997666[details])
* OYO
* Usabilla by Surveymonkey
* WePay, Inc. (https://wecode.wepay.com/posts/streaming-databases-in-realtime-with-mysql-debezium-kafka[details], https://wecode.wepay.com/posts/streaming-cassandra-at-wepay-part-1[more details])
* ... and you? Then let us know and get added to the list, too. Thanks!


= Sample Book
Author Name <author@example.com>
v1.0, October 4, 2015: First Draft
:doctype: book
:docinfo:
:toc: left
:toclevels: 2
:sectnums:
:linkcss:

An sample book to show case AsciiDoctor folder structure.

include::book/chapter-1/chapter-1.adoc[leveloffset=+1]
include::book/chapter-2/chapter-2.adoc[leveloffset=+1]

Add extra line between include.


= bitcoinj-addons Release Process

== Main Release Process

. Update `CHANGELOG.adoc`
. Set versions
.. `README.adoc`
.. bitcoinj-groovy `ExtensionModule`
.. `gradle.properties`
. Commit version bump and changelog.
. Tag: `git tag -a v0.x.y -m "Release 0.x.y"`
. Push: `git push --tags origin master`
. Full build, test
.. `./gradlew clean jenkinsBuild regTest`
.. Recommended: test with *OmniJ* regTests.
. Publish to Bintray:
.. `./gradlew bintrayUpload`
.. Confirm publish of artifacts in Bintray Web UI.
. Update github-pages site (including JavaDoc): `./gradlew publishSite`

== Announcements

. Not yet.

== After release

. Set versions back to -SNAPSHOT
.. `gradle.properties`
.. bitcoinj-groovy `ExtensionModule`
.. *Not* `README.adoc` -- it should match release version
. Commit and push to master

Fix minor error in release process doc.

= bitcoinj-addons Release Process

== Main Release Process

. Update `CHANGELOG.adoc`
. Set versions
.. `README.adoc`
.. bitcoinj-groovy `ExtensionModule`
.. `build.gradle` (should move to `gradle.properties`)
. Commit version bump and changelog.
. Tag: `git tag -a v0.x.y -m "Release 0.x.y"`
. Push: `git push --tags origin master`
. Full build, test
.. `./gradlew clean jenkinsBuild regTest`
.. Recommended: test with *OmniJ* regTests.
. Publish to Bintray:
.. `./gradlew bintrayUpload`
.. Confirm publish of artifacts in Bintray Web UI.
. Update github-pages site (including JavaDoc): `./gradlew publishSite`

== Announcements

. Not yet.

== After release

. Set versions back to -SNAPSHOT
.. `gradle.properties`
.. bitcoinj-groovy `ExtensionModule`
.. *Not* `README.adoc` -- it should match release version
. Commit and push to master


|===
|image:http://goreportcard.com/badge/spohnan/ci-bot-01["Go Report Card",link="http://goreportcard.com/report/spohnan/ci-bot-01", window="_blank"]|image:https://travis-ci.org/spohnan/ci-bot-01.svg?branch=master["Build Status", link="https://travis-ci.org/spohnan/ci-bot-01", window="_blank"]
|===

=== Automated GitHub Interactions

Add travis badge to readme

[options="header"]
|===
|CI Build and Tests|Static Analysis
|image:https://travis-ci.org/spohnan/ci-bot-01.svg?branch=master["Build Status", link="https://travis-ci.org/spohnan/ci-bot-01", window="_blank"]|image:http://goreportcard.com/badge/spohnan/ci-bot-01["Go Report Card",link="http://goreportcard.com/report/spohnan/ci-bot-01", window="_blank"]
|===

=== Automated GitHub Interactions


[[SpringCloud-SpringCloud]]
Spring Cloud
~~~~~~~~~~~

*Available as of Camel 2.19*

Spring Cloud component

Maven users will need to add the following dependency to their `pom.xml`
in order to use this component:

[source,xml]
------------------------------------------------------------------------------------------------
<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-spring-cloud</artifactId>
    <version>${camel.version}</version> <!-- use the same version as your Camel core version -->
</dependency>
------------------------------------------------------------------------------------------------

`camel-spring-cloud` jar comes with the `spring.factories` file, so as
soon as you add that dependency into your classpath, Spring Boot will
automatically auto-configure Camel for you.

[[SpringCloud-CamelSpringCloudStarter]]
Camel Spring Cloud Starter
^^^^^^^^^^^^^^^^^^^^^^^^^

*Available as of Camel 2.19*

To use the starter, add the following to your spring boot pom.xml file:

[source,xml]
------------------------------------------------------
<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-spring-cloud-starter</artifactId>
    <version>${camel.version}</version> <!-- use the same version as your Camel core version -->
</dependency>
------------------------------------------------------

Fix copy and paste doc

=== Spring Cloud Netflix

*Available as of Camel 2.19*

The Spring Cloud Netflix component bridges Camel Cloud and Spring Cloud Netflix so you can leverage Spring Cloud Netflix service discovery and load balance features in Camel and/or you can use Camel Service Discovery implementations as ServerList source for Spring Cloud Netflix's Ribbon load balabncer.

Maven users will need to add the following dependency to their `pom.xml` in order to use this component:

[source,xml]
----
<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-spring-cloud-netflix</artifactId>
    <version>${camel.version}</version>
    <!-- use the same version as your Camel core version -->
</dependency>
----

`camel-spring-cloud-netflix` jar comes with the `spring.factories` file, so as soon as you add that dependency into your classpath, Spring Boot will automatically auto-configure Camel for you.

You can disable Camel Spring Cloud Netflix with the following properties:

[source,properties]
----
# Enable/Disable the whole integration, default true
camel.cloud.netflix = true

# Enable/Disable the integration with Ribbon, default true
camel.cloud.netflix.ribbon = true
----

=== Spring Cloud Netflix Starter

*Available as of Camel 2.19*

To use the starter, add the following to your spring boot pom.xml file:

[source,xml]
----
<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-spring-cloud-netflix-starter</artifactId>
    <version>${camel.version}</version>
    <!-- use the same version as your Camel core version -->
</dependency>
----


= Filebeat
:libbeat: http://www.elastic.co/guide/en/beats/libbeat/1.0.0-rc1
:version: 1.0.0-rc1

include::./overview.asciidoc[]

include::./getting-started.asciidoc[]

include::./fields.asciidoc[]

include::./configuration.asciidoc[]

include::./command-line.asciidoc[]

include::./migration.asciidoc[]

include::./support.asciidoc[]

Use master version in docs

= Filebeat
:libbeat: http://www.elastic.co/guide/en/beats/libbeat/master
:version: master

include::./overview.asciidoc[]

include::./getting-started.asciidoc[]

include::./fields.asciidoc[]

include::./configuration.asciidoc[]

include::./command-line.asciidoc[]

include::./migration.asciidoc[]

include::./support.asciidoc[]


[float]
[[breaking_70_scripting_changes]]
=== Scripting changes

[float]
==== getDate() and getDates() removed

Fields of type `long` and `date` had `getDate()` and `getDates()` methods
(for multi valued fields) to get an object with date specific helper methods
for the current doc value. In 5.3.0, `date` fields were changed to expose
this same date object directly when calling `doc["myfield"].value`, and
the getter methods for date objects were deprecated. These methods have
now been removed. Instead, use `.value` on `date` fields, or explicitly
parse `long` fields into a date object using
`Instance.ofEpochMillis(doc["myfield"].value)`.

[float]
==== Script errors will return as `400` error codes

Malformed scripts, either in search templates, ingest pipelines or search
requests, return `400 - Bad request` while they would previously return
`500 - Internal Server Error`. This also applies for stored scripts.

Add migration info for missing values in script

[float]
[[breaking_70_scripting_changes]]
=== Scripting changes

[float]
==== getDate() and getDates() removed

Fields of type `long` and `date` had `getDate()` and `getDates()` methods
(for multi valued fields) to get an object with date specific helper methods
for the current doc value. In 5.3.0, `date` fields were changed to expose
this same date object directly when calling `doc["myfield"].value`, and
the getter methods for date objects were deprecated. These methods have
now been removed. Instead, use `.value` on `date` fields, or explicitly
parse `long` fields into a date object using
`Instance.ofEpochMillis(doc["myfield"].value)`.

[float]
==== Accessing missing document values will throw an error
`doc['field'].value` will throw an exception if
the document is missing a value for the field `field`.

To check if a document is missing a value, you can use
`doc['field'].size() == 0`.

[float]
==== Script errors will return as `400` error codes

Malformed scripts, either in search templates, ingest pipelines or search
requests, return `400 - Bad request` while they would previously return
`500 - Internal Server Error`. This also applies for stored scripts.


= Maven Goals

This plugin supports the following goals which are explained in detail
in the next sections.

.Plugin Goals
[cols="1,3"]
|===
|Goal | Description

|**<<{plugin}:build>>**
|Build images

|**<<{plugin}:start>>** or **<<{plugin}:start,{plugin}:run>>**
|Create and start containers

|**<<{plugin}:stop>>**
|Stop and destroy containers

|**<<{plugin}:push>>**
|Push images to a registry

|**<<{plugin}:watch>>**
|Watch for doing rebuilds and restarts

|**<<{plugin}:remove>>**
|Remove images from local docker host

|**<<{plugin}:logs>>**
|Show container logs

|**<<{plugin}:source>>**
|Attach docker build archive to Maven project

|**<<{plugin}:save>>**
|Save images to a file

|**<<{plugin}:volume-create>>**
|Create a volume for containers to share data

|**<<{plugin}:volume-remove>>**
|Remove a volume
|===

Note that all goals are orthogonal to each other. For example in order
to start a container for your application you typically have to build
its image before. `{plugin}:start` does *not* imply building the image
so you should use it then in combination with `{plugin}:build`.

Add default Maven lifecycle bindings to the manual

= Maven Goals

This plugin supports the following goals which are explained in detail
in the next sections.

.Plugin Goals
[cols="1,1,2"]
|===
|Goal | Default Lifecycle Phase | Description

|**<<{plugin}:build>>**
|install
|Build images

|**<<{plugin}:start>>** or **<<{plugin}:start,{plugin}:run>>**
|pre-integration-test
|Create and start containers

|**<<{plugin}:stop>>**
|post-integration-test
|Stop and destroy containers

|**<<{plugin}:push>>**
|deploy
|Push images to a registry

|**<<{plugin}:watch>>**
|
|Watch for doing rebuilds and restarts

|**<<{plugin}:remove>>**
|post-integration-test
|Remove images from local docker host

|**<<{plugin}:logs>>**
|
|Show container logs

|**<<{plugin}:source>>**
|
|Attach docker build archive to Maven project

|**<<{plugin}:save>>**
|
|Save images to a file

|**<<{plugin}:volume-create>>**
|pre-integration-test
|Create a volume for containers to share data

|**<<{plugin}:volume-remove>>**
|post-integration-test
|Remove a volume
|===

Note that all goals are orthogonal to each other. For example in order
to start a container for your application you typically have to build
its image before. `{plugin}:start` does *not* imply building the image
so you should use it then in combination with `{plugin}:build`.


# Hacky Implicit Provisioning version 2

This document describes a quick hack to test the implicit provisioning flow as it currently works in aktualizr before full support is available in meta-updater and on the server.

## Goals

* end-to-end installation of updates using OSTree

## Steps

1. Edit `recipes-sota/aktualizr/files/sota_autoprov.toml` in meta-updater:
* Remove the `provision_path` line.
* Add a line in the `[tls]` section with `server = "https://..."`. Use the URL from your account's credentials.zip file.
1. Edit `recipes-sota/aktualizr/aktualizr_git.bb` in meta-updater:
* Change aktualizr `SRC_URI` to `git://github.com/advancedtelematic/aktualizr;branch=bugfix/cert_prov_install`.
* Change `SRCREV` to `13828774baa5a7369e6f5ca552b879ad1ce773d5`.
* Increment `PR`.
1. Build a standard image using bitbake. Make sure to set `SOTA_PACKED_CREDENTIALS` like normal.
1. Boot the image.
1. Optionally, verify that aktualizr is not provisioning. Make sure the device is not visible in the Garage.
1. Run `cert_provider` from the aktualizr repo: `cert_provider -c credentials.zip -t <device>`
1. Verify that aktualizr provisions correctly with the server using the device_id generated by `cert_provider`.

Use latest version of aktualizr. Add known issue.

# Hacky Implicit Provisioning version 2

This document describes a quick hack to test the implicit provisioning flow as it currently works in aktualizr before full support is available in meta-updater and on the server.

## Goals

* end-to-end installation of updates using OSTree

## Steps

1. Edit `recipes-sota/aktualizr/files/sota_autoprov.toml` in meta-updater:
* Remove the `provision_path` line.
* Add a line in the `[tls]` section with `server = "https://..."`. Use the URL from your account's credentials.zip file.
1. Edit `recipes-sota/aktualizr/aktualizr_git.bb` in meta-updater:
* Change `SRCREV` to `1c635c67d70cf38d2c841d449e750f08855e41a4`.
* Increment `PR`.
1. Build a standard image using bitbake. Make sure to set `SOTA_PACKED_CREDENTIALS` like normal.
1. Boot the image.
1. Optionally, verify that aktualizr is not provisioning. Make sure the device is not visible in the Garage.
1. Run `cert_provider` from the aktualizr repo: `cert_provider -c credentials.zip -t <device>`
1. Verify that aktualizr provisions correctly with the server using the device_id generated by `cert_provider`.

## Known Issues

At this time, although the device will be shown in the Garage, its installed package will not be.