CLOVER🍀

That was when it all began.

WildFly Maven Pluginで、JDBCドライバのデプロイとDataSourceの作成を行う

これは、なにをしたくて書いたもの?

前にWildFly Maven Pluginを調べた時に、JDBCドライバのデプロイやDataSourceの作成ができそうだったので、試してみたいなと。

JDBCドライバをダウンロードしてきてstandalone/deploymentsディレクトリに置いて…というのは、ちょっと面倒だなぁと
思っていたので。

wildfly:deploy-artifactとwildfly:add-resource

今回使うのは、wildfly:deploy-artifactwildfly:add-resourceの2つです。

wildfly:deploy-artifactJDBCドライバをデプロイして、wildfly:add-resourceでDataSourceを作成します。

ドキュメントは、それぞれこちら。

WildFly Maven Plugin – wildfly:deploy-artifact

WildFly Maven Plugin – wildfly:add-resource

そのものズバリなサンプルが、こちらにあります。

パッと見、そんなに大変そうではありませんが、ポイントは以下ですね。

The artifact must be already listed as a dependency in the projects’ pom.xml.

デプロイ対象、今回でいえばJDBCドライバはプロジェクト内の依存関係に含まれている必要があります。

サンプルではPostgreSQLJDBCドライバをデプロイしていますが、バージョンの指定がないのは別途依存関係を指定しているからだと
思います。

            <plugin>
                <groupId>org.wildfly.plugins</groupId>
                <artifactId>wildfly-maven-plugin</artifactId>
                <version>4.2.0.Final</version>
                <executions>
                    <execution>
                        <phase>install</phase>
                        <goals>
                            <goal>deploy-artifact</goal>
                        </goals>
                        <configuration>
                            <groupId>postgresql</groupId>
                            <artifactId>postgresql</artifactId>
                            <name>postgresql.jar</name>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

今回は、MySQLで試してみたいと思います。

環境

今回の環境は、こちら。

$ java --version
openjdk 17.0.8.1 2023-08-24
OpenJDK Runtime Environment (build 17.0.8.1+1-Ubuntu-0ubuntu122.04)
OpenJDK 64-Bit Server VM (build 17.0.8.1+1-Ubuntu-0ubuntu122.04, mixed mode, sharing)


$ mvn --version
Apache Maven 3.9.4 (dfbb324ad4a7c8fb0bf182e6d91b0ae20e3d2dd9)
Maven home: $HOME/.sdkman/candidates/maven/current
Java version: 17.0.8.1, vendor: Private Build, runtime: /usr/lib/jvm/java-17-openjdk-amd64
Default locale: ja_JP, platform encoding: UTF-8
OS name: "linux", version: "5.15.0-84-generic", arch: "amd64", family: "unix"

WildFlyはローカルで動作しているものとし、29.0.1.Finalを使います。

$ bin/standalone.sh --version
=========================================================================

  JBoss Bootstrap Environment

  JBOSS_HOME: /path/to/wildfly-29.0.1.Final

  JAVA: /usr/lib/jvm/default/bin/java

  JAVA_OPTS:  -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true  --add-exports=java.desktop/sun.awt=ALL-UNNAMED --add-exports=java.naming/com.sun.jndi.ldap=ALL-UNNAMED --add-exports=java.naming/com.sun.jndi.url.ldap=ALL-UNNAMED --add-exports=java.naming/com.sun.jndi.url.ldaps=ALL-UNNAMED --add-exports=jdk.naming.dns/com.sun.jndi.dns=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.security=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.management/javax.management=ALL-UNNAMED --add-opens=java.naming/javax.naming=ALL-UNNAMED -Djava.security.manager=allow

=========================================================================

23:01:03,501 INFO  [org.jboss.modules] (main) JBoss Modules version 2.1.0.Final
WildFly Full 29.0.1.Final (WildFly Core 21.1.1.Final)

起動。

$ bin/standalone.sh

MySQL

 MySQL  localhost:3306 ssl  practice  SQL > select version();
+-----------+
| version() |
+-----------+
| 8.0.34    |
+-----------+
1 row in set (0.0006 sec)

MySQLは172.17.0.3で動作しているものとして、データベースおよびユーザーは作成済みとします。

Maven設定

まず、シンプルなMaven設定はこちら。

    <groupId>org.littlewings</groupId>
    <artifactId>xxxxx</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>

    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    </properties>

    <dependencies>
        <dependency>
            <groupId>jakarta.platform</groupId>
            <artifactId>jakarta.jakartaee-web-api</artifactId>
            <version>10.0.0</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <version>8.0.33</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

    <build>
        <finalName>ROOT</finalName>
        <plugins>
            <plugin>
                <groupId>org.wildfly.plugins</groupId>
                <artifactId>wildfly-maven-plugin</artifactId>
                <version>4.2.0.Final</version>
                <executions>
                    <execution>
                        <id>deploy-artifact</id>
                        <phase>package</phase>
                        <goals>
                            <goal>deploy-artifact</goal>
                        </goals>
                        <configuration>
                            <groupId>com.mysql</groupId>
                            <artifactId>mysql-connector-j</artifactId>
                            <name>mysql</name>
                        </configuration>
                    </execution>
                    <execution>
                        <id>add-datasource</id>
                        <phase>package</phase>
                        <goals>
                             <goal>add-resource</goal>
                         </goals>
                        <configuration>
                            <address>subsystem=datasources,data-source=MySqlDs</address>
                            <resources>
                                <resource>
                                    <properties>
                                        <jndi-name>java:jboss/datasources/MySqlDs</jndi-name>
                                        <enabled>true</enabled>
                                        <connection-url><![CDATA[jdbc:mysql://172.17.0.3:3306/practice?characterEncoding=utf-8&connectionCollation=utf8mb4_0900_bin]]></connection-url>
                                        <driver-name>mysql</driver-name>
                                        <user-name>kazuhira</user-name>
                                        <password>password</password>
                                    </properties>
                                </resource>
                            </resources>
                        </configuration>
                    </execution>
                    <execution>
                        <id>deploy</id>
                        <phase>package</phase>
                        <goals>
                            <goal>deploy</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

WildFly Maven Pluginを使うわけですが、

            <plugin>
                <groupId>org.wildfly.plugins</groupId>
                <artifactId>wildfly-maven-plugin</artifactId>
                <version>4.2.0.Final</version>

JDBCドライバのデプロイの設定はこちら。

                    <execution>
                        <id>deploy-artifact</id>
                        <phase>package</phase>
                        <goals>
                            <goal>deploy-artifact</goal>
                        </goals>
                        <configuration>
                            <groupId>com.mysql</groupId>
                            <artifactId>mysql-connector-j</artifactId>
                            <name>mysql</name>
                        </configuration>
                    </execution>

groupIdartifactIdでデプロイ対象のアーティファクトを指定しています。nameはデプロイする時の名前を指定します。

ここでversionがありませんが、これはプロジェクト側の依存関係に含まれている必要があります。

        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <version>8.0.33</version>
            <scope>provided</scope>
        </dependency>

あとで別構成の設定も書きますが、なんとなくこのあたりのMavenプロファイルは分けた方がいい気がします…。

DataSourceの作成はこちら。

                    <execution>
                        <id>add-datasource</id>
                        <phase>package</phase>
                        <goals>
                             <goal>add-resource</goal>
                         </goals>
                        <configuration>
                            <address>subsystem=datasources,data-source=MySqlDs</address>
                            <resources>
                                <resource>
                                    <properties>
                                        <jndi-name>java:jboss/datasources/MySqlDs</jndi-name>
                                        <enabled>true</enabled>
                                        <connection-url><![CDATA[jdbc:mysql://172.17.0.3:3306/practice?characterEncoding=utf-8&connectionCollation=utf8mb4_0900_bin]]></connection-url>
                                        <driver-name>mysql</driver-name>
                                        <user-name>kazuhira</user-name>
                                        <password>password</password>
                                    </properties>
                                </resource>
                            </resources>
                        </configuration>
                    </execution>

addressで操作対象を指定します。properties内には、追加するリソースのプロパティを設定します。
設定できるプロパティは、各サブシステムのリファレンスを見るとよいでしょう。

DataSourceの場合はこちら。

WildFly Full 29 Model Reference / home / subsystem=datasources / data-source=ExampleDS

ところで、今回はpackageゴールに紐付けているのですが。

                        <phase>package</phase>

これらwildfly:deploy-artifactwildfly:add-resourcemvn wildfly:deploy-artifactのような実行方法ではちょっと扱いづらく、なんらかの
ゴールに結びつけた方が良さそうです。サンプルでは、packageinstallに紐付けています。

今回は、wildfly:deployも含めるようにしました。

                    <execution>
                        <id>deploy</id>
                        <phase>package</phase>
                        <goals>
                            <goal>deploy</goal>
                        </goals>
                    </execution>

サンプルアプリケーションと動作確認

動作確認してみます。

簡単なJAX-RSアプリケーションを作成。

src/main/java/org/littlewings/wildfly/datasource/JaxrsActivator.java

package org.littlewings.wildfly.datasource;

import jakarta.ws.rs.ApplicationPath;
import jakarta.ws.rs.core.Application;

@ApplicationPath("")
public class JaxrsActivator extends Application {
}

DataSourceをJNDIルックアップするJAX-RSリソースクラス。

src/main/java/org/littlewings/wildfly/datasource/HelloResource.java

package org.littlewings.wildfly.datasource;

import jakarta.annotation.Resource;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.core.MediaType;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

@ApplicationScoped
@Path("hello")
public class HelloResource {
    @Resource(lookup = "java:jboss/datasources/MySqlDs")
    private DataSource dataSource;

    @GET
    @Produces(MediaType.TEXT_PLAIN)
    public String now() throws SQLException {
        try (Connection conn = dataSource.getConnection();
             PreparedStatement ps = conn.prepareStatement("select now()");
             ResultSet rs = ps.executeQuery()) {
            rs.next();

            return rs.getString(1);
        }
    }
}

SQLは、現在時刻を返すだけです。

デプロイします。

$ mvn package

これで、JDBCドライバのデプロイ → DataSourceの作成 → WARファイルのデプロイが行われます。

23:22:15,837 INFO  [org.jboss.as.repository] (management-handler-thread - 1) WFLYDR0001: Content added at location /path/to/wildfly-29.0.1.Final/standalone/data/content/9e/64d997873abc4318620264703d3fdb6b02dd5a/content
23:22:15,864 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-6) WFLYSRV0027: Starting deployment of "mysql" (runtime-name: "mysql")
23:22:17,043 INFO  [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-1) WFLYJCA0005: Deploying non-JDBC-compliant driver class com.mysql.cj.jdbc.Driver (version 8.0)
23:22:17,054 INFO  [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-8) WFLYJCA0018: Started Driver service with driver-name = mysql
23:22:17,145 INFO  [org.jboss.as.server] (management-handler-thread - 1) WFLYSRV0010: Deployed "mysql" (runtime-name : "mysql")
23:22:17,254 INFO  [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-5) WFLYJCA0001: Bound data source [java:jboss/datasources/MySqlDs]
23:22:17,900 INFO  [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-4) WFLYJCA0010: Unbound data source [java:jboss/datasources/MySqlDs]
23:22:17,902 INFO  [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-1) WFLYJCA0019: Stopped Driver service with driver-name = mysql
23:22:17,942 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-5) WFLYSRV0028: Stopped deployment mysql (runtime-name: mysql) in 69ms
23:22:17,950 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-8) WFLYSRV0027: Starting deployment of "mysql" (runtime-name: "mysql")
23:22:18,663 INFO  [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-3) WFLYJCA0005: Deploying non-JDBC-compliant driver class com.mysql.cj.jdbc.Driver (version 8.0)
23:22:18,666 INFO  [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-2) WFLYJCA0018: Started Driver service with driver-name = mysql
23:22:18,668 INFO  [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-7) WFLYJCA0001: Bound data source [java:jboss/datasources/MySqlDs]
23:22:18,723 INFO  [org.jboss.as.server] (management-handler-thread - 2) WFLYSRV0016: Replaced deployment "mysql" with deployment "mysql"
23:22:19,020 INFO  [org.jboss.as.repository] (management-handler-thread - 1) WFLYDR0001: Content added at location /path/to/wildfly-29.0.1.Final/standalone/data/content/76/ef6010e68f897ce420482ee57720c1c2236aaa/content
23:22:19,023 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-7) WFLYSRV0027: Starting deployment of "ROOT.war" (runtime-name: "ROOT.war")
23:22:19,342 INFO  [org.jboss.weld.deployer] (MSC service thread 1-7) WFLYWELD0003: Processing weld deployment ROOT.war
23:22:19,435 INFO  [org.hibernate.validator.internal.util.Version] (MSC service thread 1-7) HV000001: Hibernate Validator 8.0.0.Final
23:22:19,848 INFO  [org.jboss.weld.Version] (MSC service thread 1-2) WELD-000900: 5.1.1 (SP1)
23:22:21,759 INFO  [org.jboss.resteasy.resteasy_jaxrs.i18n] (ServerService Thread Pool -- 20) RESTEASY002225: Deploying jakarta.ws.rs.core.Application: class org.littlewings.wildfly.datasource.JaxrsActivator
23:22:21,806 INFO  [org.wildfly.extension.undertow] (ServerService Thread Pool -- 20) WFLYUT0021: Registered web context: '/' for server 'default-server'
23:22:21,864 INFO  [org.jboss.as.server] (management-handler-thread - 1) WFLYSRV0010: Deployed "ROOT.war" (runtime-name : "ROOT.war")

確認。

$ curl localhost:8080/hello
2023-09-26 23:24:11

OKですね。

Mavenプロファイルを分ける

とりあえずやりたいことはできましたが、個人的にはJDBCドライバをWildFlyにデプロイしたいがためにdependenciesに含まれて
いるのは微妙です。

また、毎回JDBCドライバのデプロイとDataSourceの作成をpackageを実行する度に行うのもなんなので、プロファイルを分けて
おきました。

    <dependencies>
        <dependency>
            <groupId>jakarta.platform</groupId>
            <artifactId>jakarta.jakartaee-web-api</artifactId>
            <version>10.0.0</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

    <build>
        <finalName>ROOT</finalName>
    </build>

    <profiles>
        <profile>
            <id>wildfly</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>

            <dependencies>
                <dependency>
                    <groupId>com.mysql</groupId>
                    <artifactId>mysql-connector-j</artifactId>
                    <version>8.0.33</version>
                </dependency>
            </dependencies>

            <build>
                <plugins>
                    <plugin>
                        <groupId>org.wildfly.plugins</groupId>
                        <artifactId>wildfly-maven-plugin</artifactId>
                        <version>4.2.0.Final</version>
                        <executions>
                            <execution>
                                <id>deploy-artifact</id>
                                <phase>package</phase>
                                <goals>
                                    <goal>deploy-artifact</goal>
                                </goals>
                                <configuration>
                                    <groupId>com.mysql</groupId>
                                    <artifactId>mysql-connector-j</artifactId>
                                    <name>mysql</name>
                                </configuration>
                            </execution>
                            <execution>
                                <id>add-datasource</id>
                                <phase>package</phase>
                                <goals>
                                     <goal>add-resource</goal>
                                 </goals>
                                <configuration>
                                    <address>subsystem=datasources,data-source=MySqlDs</address>
                                    <resources>
                                        <resource>
                                            <properties>
                                                <jndi-name>java:jboss/datasources/MySqlDs</jndi-name>
                                                <enabled>true</enabled>
                                                <connection-url><![CDATA[jdbc:mysql://172.17.0.3:3306/practice?characterEncoding=utf-8&connectionCollation=utf8mb4_0900_bin]]></connection-url>
                                                <driver-name>mysql</driver-name>
                                                <user-name>kazuhira</user-name>
                                                <password>password</password>
                                            </properties>
                                        </resource>
                                    </resources>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

なんとなく、こちらのパターンではwildfly:deployは外しておきました。

これで、プロファイルを指定するとJDBCドライバのデプロイとDataSourceの作成が行えます。

$ mvn -Pwildfly package

アプリケーションのデプロイは、こちらで。

$ mvn -Pwildfly wildfly:deploy

また、リモートのWildFlyに操作を行いたい場合は、WildFlyにユーザーを作成した上でその内容をconfigurationに設定すればOKです。

                    <plugin>
                        <groupId>org.wildfly.plugins</groupId>
                        <artifactId>wildfly-maven-plugin</artifactId>
                        <version>4.2.0.Final</version>
                        <configuration>
                            <hostname>172.17.0.2</hostname>
                            <username>wildfly-admin</username>
                            <password>password</password>
                        </configuration>
                        <executions>
                            <execution>
                                <id>deploy-artifact</id>
                                <phase>package</phase>
                                <goals>
                                    <goal>deploy-artifact</goal>
                                </goals>
                                <configuration>
                                    <groupId>com.mysql</groupId>
                                    <artifactId>mysql-connector-j</artifactId>
                                    <name>mysql</name>
                                </configuration>
                            </execution>
                            <execution>
                                <id>add-datasource</id>
                                <phase>package</phase>
                                <goals>
                                     <goal>add-resource</goal>
                                 </goals>
                                <configuration>
                                    <address>subsystem=datasources,data-source=MySqlDs</address>
                                    <resources>
                                        <resource>
                                            <properties>
                                                <jndi-name>java:jboss/datasources/MySqlDs</jndi-name>
                                                <enabled>true</enabled>
                                                <connection-url><![CDATA[jdbc:mysql://172.17.0.3:3306/practice?characterEncoding=utf-8&connectionCollation=utf8mb4_0900_bin]]></connection-url>
                                                <driver-name>mysql</driver-name>
                                                <user-name>kazuhira</user-name>
                                                <password>password</password>
                                            </properties>
                                        </resource>
                                    </resources>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>

この部分ですね。

                    <plugin>
                        <groupId>org.wildfly.plugins</groupId>
                        <artifactId>wildfly-maven-plugin</artifactId>
                        <version>4.2.0.Final</version>
                        <configuration>
                            <hostname>172.17.0.2</hostname>
                            <username>wildfly-admin</username>
                            <password>password</password>
                        </configuration>

あ、でもこの方法だとWARファイルにMySQLJDBCドライバが含まれてしまいますね。

こんな感じにJDBCドライバのデプロイおよびDataSourceの作成と、デプロイでプロファイルを分けた方がいいでしょうか。

    <dependencies>
        <dependency>
            <groupId>jakarta.platform</groupId>
            <artifactId>jakarta.jakartaee-web-api</artifactId>
            <version>10.0.0</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

    <build>
        <finalName>ROOT</finalName>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.wildfly.plugins</groupId>
                    <artifactId>wildfly-maven-plugin</artifactId>
                    <version>4.2.0.Final</version>
                    <!-- 共通の設定があればここに書く
                    <configuration>
                        <hostname>172.17.0.2</hostname>
                        <username>wildfly-admin</username>
                        <password>password</password>
                    </configuration>
                    -->
                </plugin>
            </plugins>
        </pluginManagement>
    </build>

    <profiles>
        <profile>
            <id>setup</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>

            <dependencies>
                <dependency>
                    <groupId>com.mysql</groupId>
                    <artifactId>mysql-connector-j</artifactId>
                    <version>8.0.33</version>
                </dependency>
            </dependencies>

            <build>
                <plugins>
                    <plugin>
                        <groupId>org.wildfly.plugins</groupId>
                        <artifactId>wildfly-maven-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>deploy-artifact</id>
                                <phase>package</phase>
                                <goals>
                                    <goal>deploy-artifact</goal>
                                </goals>
                                <configuration>
                                    <groupId>com.mysql</groupId>
                                    <artifactId>mysql-connector-j</artifactId>
                                    <name>mysql</name>
                                </configuration>
                            </execution>
                            <execution>
                                <id>add-datasource</id>
                                <phase>package</phase>
                                <goals>
                                     <goal>add-resource</goal>
                                 </goals>
                                <configuration>
                                    <address>subsystem=datasources,data-source=MySqlDs</address>
                                    <resources>
                                        <resource>
                                            <properties>
                                                <jndi-name>java:jboss/datasources/MySqlDs</jndi-name>
                                                <enabled>true</enabled>
                                                <connection-url><![CDATA[jdbc:mysql://172.17.0.3:3306/practice?characterEncoding=utf-8&connectionCollation=utf8mb4_0900_bin]]></connection-url>
                                                <driver-name>mysql</driver-name>
                                                <user-name>kazuhira</user-name>
                                                <password>password</password>
                                            </properties>
                                        </resource>
                                    </resources>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>deploy</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>

            <build>
                <plugins>
                    <plugin>
                        <groupId>org.wildfly.plugins</groupId>
                        <artifactId>wildfly-maven-plugin</artifactId>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
## JDBCドライバのデプロイおよびDataSourceの作成
$ mvn -Psetup package


## アプリケーションのデプロイ
$ mvn -Pdeploy wildfly:deploy

試行パターンは、こんな感じで。

他にもコマンドを実行したいなどあれば、こちらを使えばOKです。

WildFly Maven Plugin – wildfly:execute-commands

複数回コマンドを実行した時に、うまくいくとは限りませんが…。

なお、JDBCドライバのデプロイとDataSourceの作成は繰り返し実行しても問題ありません。

おわりに

WildFly Maven Pluginで、JDBCドライバのデプロイとデータソースの作成を行ってみました。

最初、JDBCドライバのバージョンをどこで指定すればいいのかわからなかったりしたのですが、サンプルをずっと見ていると最後の方に
ヒントがあったので、それで気づいたりしました。

ところで、覚えたはいいんですけど、この方法って使うんでしょうかね?
特にコンテナ環境などだと、なんとなくGalleonでプロビジョニングした方がいいのかな、と思ったりもするのですが。