From b3e710fe50f676e07196ccc92f1cb14bb055c9be Mon Sep 17 00:00:00 2001
From: Alexandre P <apo@kereval.com>
Date: Thu, 15 Dec 2022 12:01:25 +0100
Subject: [PATCH] Add wildfly26 installation documentation

---
 General/wildfly26.md | 202 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 202 insertions(+)
 create mode 100755 General/wildfly26.md

diff --git a/General/wildfly26.md b/General/wildfly26.md
new file mode 100755
index 0000000..8e2bb40
--- /dev/null
+++ b/General/wildfly26.md
@@ -0,0 +1,202 @@
+---
+title:  Wildfly 26
+subtitle: Installation
+author: Alexandre POCINHO
+date: 14/12/2022
+toolversion: 26.1.2.Final
+releasedate: 2022-12-14
+function: Random developer
+version: 1.01
+status: Draft
+reference: KER1-MAN-IHE-WILDFLY_26_INSTALLATION-0_01
+customer: IHE-EUROPE
+---
+
+## Purpose
+
+This page describes the prerequisite to the installation of Gazelle
+applications. All the tools developed in the context of the Gazelle
+testbed project are developed for WildFly and JBoss (5.0.1-GA, 7.2.0.final, 8.0.0.Final, 10.0.0.Final, 18.0.1.Final, 26.1.2.Final) and
+use a postgreSQL database.
+
+We recommand to install the Gazelle tools in a Debian-like environment,
+it's the environment running on IHE Europe servers so we know that it is
+correctly working. Moreover, most of the installation and configuration
+procedures are described for such an environment.
+
+## PostgreSQL
+
+We are currenlty using PostgreSQL 9.6 on most of our servers.
+
+## Install a JVM
+
+Our applications running on wildfly26 are using java 11. Consider
+installing
+[openJDK](http://openjdk.java.net/install/ "http://openjdk.java.net/install/").
+
+```bash
+sudo apt-get update && sudo apt-get install openjdk-11-jre
+```
+
+## Install Wildfly 26 application server
+
+### Get package and init script
+
+- Wildfly package can be downloaded from: [https://gazelle.ihe.net/wildfly26/wildfly-26.1.2.Final.zip](https://gazelle.ihe.net/wildfly26/wildfly-26.1.2.Final.zip)
+
+```bash
+wget -nv -O /tmp/wildfly-26.1.2.Final.zip https://gazelle.ihe.net/wildfly26/wildfly-26.1.2.Final.zip
+```
+
+- init.d script can be downloaded from: [https://gazelle.ihe.net/wildfly26/init.d-wildfly26](https://gazelle.ihe.net/wildfly26/init.d-wildfly26)
+
+```bash
+wget -nv -O /tmp/init.d-wildfly26 https://gazelle.ihe.net/wildfly26/init.d-wildfly26
+```
+
+## Install jboss in the /usr/local folder
+
+```bash
+cd /usr/local
+sudo mv /tmp/wildfly-26.1.2.Final.zip .
+sudo unzip ./wildfly-26.1.2.Final.zip
+sudo ln -s wildfly-26.1.2.Final wildfly26
+sudo rm -rf wildfly-26.1.2.Final.zip
+sudo chown -R jboss:jboss-admin /usr/local/wildfly-26.1.2.Final
+sudo chmod -R 755 /usr/local/wildfly-26.1.2.Final
+sudo mkdir /var/log/wildfly26/
+sudo chown -R jboss:jboss-admin /var/log/wildfly26/
+sudo chmod -R g+w /var/log/wildfly26/
+```
+
+## Install the init script and make it start at system startup
+
+```bash
+sudo mv /tmp/init.d-wildfly26 /etc/init.d/wildfly26
+sudo chmod +x /etc/init.d/wildfly26
+sudo chown root:root /etc/init.d/wildfly26
+sudo update-rc.d wildfly26 defaults
+```
+
+Once the init.d script is setup, Wildfly server can be started, restarted, stopped or queried about its status using the commands:
+
+```bash
+sudo systemctl start|restart|stop|status wildfly26.service
+```
+
+## Install or update PostgreSQL JDBC driver
+
+1. Stop jboss and go to :
+
+  ```bash
+  sudo mkdir -p /usr/local/wildfly26/modules/org/postgresql/main
+  cd /usr/local/wildfly26/modules/org/postgresql/main
+  ```
+
+2. Download driver
+
+  ```bash
+  sudo wget https://gazelle.ihe.net/wildfly26/postgresql-42.2.9.jar
+  sudo chown jboss:jboss-admin postgresql-42.2.9.jar
+  sudo chmod 775 postgresql-42.2.9.jar
+  ```
+
+3. Create (if not exists) the module.xml file
+
+  ```bash
+  touch ./module.xml
+  ```
+
+4. Edit it with the following content
+  
+  ```bash
+  sudo nano module.xml
+  ```
+
+  ```xml
+      <module xmlns="urn:jboss:module:1.1" name="org.postgresql">
+           <resources>
+               <resource-root path="postgresql-42.2.9.jar"/>
+           </resources>
+           <dependencies>
+               <module name="javax.api"/>
+               <module name="javax.transaction.api"/>
+           </dependencies>
+      </module>
+  ```
+
+5. Add the driver to the standalone.xml file
+
+  ```bash
+  sudo nano /usr/local/wildfly26/standalone/configuration/standalone.xml
+  ```
+
+  ```xml
+      <datasources>
+          ...
+           <drivers>
+              ...
+              <driver name="postgresql" module="org.postgresql">
+                  <driver-class>org.postgresql.Driver</driver-class>
+                  <xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class>
+              </driver>
+          </drivers>
+      </datasources>
+  ```
+
+6. Clean up your jboss
+
+  ```bash
+  sudo rm -rf /usr/local/wildfly26/standalone/tmp/
+  sudo rm -rf /usr/local/wildfly26/standalone/data/
+  ```
+
+7. Restart Wildfly server and deploy your artifact
+
+## Setup datasources for Gazelle applications
+
+Most of Gazelle projects have extracted datasources. In order to deploy those projects, you will need to include some special 
+instructions in your wildfly server configuration file :
+
+Stop Wildfly and edit standalone.xml in /usr/local/YOUR_JBOSS_SERVER/standalone/configuration folder and update datasources :
+
+```xml
+    <datasources>
+        ...
+        <datasource pool-name="YOUR_TOOL_DATASOURCES" jndi-name="java:jboss/datasources/YOUR_TOOL_DATASOURCES"
+                enabled="true" use-java-context="true">
+            <connection-url>jdbc:postgresql://localhost:5432/YOUR_TOOL_DB</connection-url>
+            <driver>postgresql</driver>
+            <security>
+                <user-name>YOUR_USER_NAME</user-name>
+                <password>YOUR_PASSWORD</password>
+            </security>
+            <pool>
+                <min-pool-size>MIN_POOL_SIZE</min-pool-size>
+                <max-pool-size>MAX_POOL_SIZE</max-pool-size>
+                <prefill>false</prefill>
+                <use-strict-min>false</use-strict-min>
+                <flush-strategy>FailingConnectionOnly</flush-strategy>
+            </pool>
+            <validation>
+                <check-valid-connection-sql>select 1</check-valid-connection-sql>
+                <validate-on-match>false</validate-on-match>
+                <background-validation>false</background-validation>
+                <use-fast-fail>false</use-fast-fail>
+            </validation>
+            <timeout>
+                <idle-timeout-minutes>10</idle-timeout-minutes>
+                <blocking-timeout-millis>30000</blocking-timeout-millis>
+            </timeout>
+            <statement>
+                <prepared-statement-cache-size>30</prepared-statement-cache-size>
+                <track-statements>false</track-statements>
+            </statement>
+        </datasource>
+    </datasources>
+```
+
+**NOTE :** YOUR_TOOL_DATASOURCES can be found in TOOL-ds.xml file (/src/main/application/META-INF of your ear folder)
+or in the application user manual.
+
+Finally, restart your Wildfly to take into account your config.
-- 
GitLab