GithubHelp home page GithubHelp logo

jamezp / wildfly-glow Goto Github PK

View Code? Open in Web Editor NEW

This project forked from wildfly/wildfly-glow

0.0 1.0 0.0 362 KB

Galleon Layers Output from War: Automatic discover of WildFly provisioning information from an application.

License: Apache License 2.0

Shell 3.65% Java 96.35%

wildfly-glow's Introduction

WildFly Glow

WildFly Glow is a command line and a set of tools (maven plugin, core library) to provision a trimmed WildFly server instance that contains the server features that are required by your application.

WildFly Glow scans your deployment(s) and identify the set of Galleon feature-packs and Galleon layers that are required by your application(s).

WildFly Glow command line can provision a WildFly server, a WildFly Bootable JAR or a Docker image by scanning your deployment.

WildFly Glow overview

The WildFly Galleon layers defined in the WildFly Galleon feature-packs have been annotated with some metadata allowing to bound the layer to the content of your deployment. WildFly Glow scans the content of your deployment (Java API in use, XML descriptors, properties files) and attempt to match this content with the rules located inside the Galleon layers. If a rule matches, the Galeon layer is a candidate for inclusion.

WildFly feature-pack is not the only feature-pack containing annotated Galleon layers. The following galleon feature-packs are supported by Glow:

N.B.: Some more Galleon feature-packs are in the process of being annotated to be supported by WildFly Glow.

To identify the Galleon layers your application requires, WildFly Glow retrieves Galleon feature-packs from WildFly Galleon feature-packs repository. By default the latest WildFly version is used.

According to the Galleon layers required by your deployment, WildFly Glow can suggest a set of additional server features (called add-ons) that the tool allows you to enable. For example, when JAX-RS is required, the support for openapi is suggested and can be enabled.

WildFly Glow allows you to specify an execution context. bare-metal by default, cloud to deploy on Kubernetes and Openshift.

In addition, WildFly Glow allows you to specify an execution profile. Non HA (High Availability) by default and HA.

The WildFly Glow command line help contains the information on how to configure WildFly Glow to adjust the provisioned WildFly server (execution context, profile, add-ons, WildFly server version, ...).

Using WildFly Glow

  • Build the wildfly-glow maven project and use the WildFly Glow command line (cli/target/wildfly-glow.jar executable jar).
  • Use the WildFly Maven plugin starting version 5.0.0.Alpha1.

Steps to build the WildFly Glow command line

  1. Make sure to use JDK11 as the minimal version.
  2. Build WildFly Glow: mvn clean install

Kitchensink examples

  • To display the required Galleon layers and feature-packs required to run kitchensink:

./wildfly-glow scan examples/war/kitchensink.war

  • To display the required Galleon layers and feature-packs required to run kitchensink on the cloud:

./wildfly-glow scan examples/war/kitchensink.war --cloud

  • To provision a WildFly server to run kitchensink:

./wildfly-glow scan examples/war/kitchensink.war --provision=server

  • To provision a WildFly Bootable JAR to run kitchensink:

./wildfly-glow scan examples/war/kitchensink.war --provision=bootable-jar

  • To provision a WildFly server for the cloud and produce a Docker image to run kitchensink:

./wildfly-glow scan examples/war/kitchensink.war --provision=server --cloud

Accessing the WildFly Glow command line help

./wildfly-glow --help

WildFly Glow documentation

For now only help display by command line. Work on online documentation is in progress.

Running CLI tests

  1. Call sh ./tests/run-cli-tests.sh

Steps to build the WildFly Glow command line to be used with SNAPSHOT versions of WildFly and SNAPSHOT versions of extra feature-packs

  1. Make sure to use JDK11 as the minimal version.
  2. Build WildFly main branch and have the built artifacts available in your local Maven cache.
  3. Build keycloak: https://github.com/jfdenise/keycloak/tree/layers_metadata_final (mvn clean install -DskipTests -Pdistribution to build the required org.keycloak:keycloak-saml-adapter-galleon-pack artifact)
  4. Build MyFaces feature-pack: https://github.com/jfdenise/wildfly-myfaces-feature-pack/tree/layers_metadata
  5. Build graphql feature-pack: https://github.com/jfdenise/wildfly-graphql-feature-pack/tree/layers_metadata
  6. Build WildFly Glow: mvn clean install -Dwildfly.glow.galleon.feature-packs.url=https://raw.githubusercontent.com/wildfly/wildfly-galleon-feature-packs/main/

Running the additional tests (internal only)

  1. Build WildFly Glow to use SNAPSHOT versions of WildFly and un-released feature-packs.
  2. Build WildFly quickstarts.
  3. Clone https://github.com/jfdenise/wildfly-s2i/tree/saml-example and build examples/saml-auto-reg
  4. Call sh ./tests/run-internal.sh

wildfly-glow's People

Contributors

jfdenise avatar jamezp avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.