4.3. 在 JBoss EAP 中配置用户开发的层

除了红帽提供的调配层外,您还可以配置您开发的自定义层。

流程

  1. 使用 Galleon Maven 插件构建自定义层。

    如需更多信息,请参阅为 JBoss EAP 构建自定义层

  2. 将自定义层部署到可访问的 Maven 存储库。
  3. 创建自定义调配文件,以引用用户定义的层并支持的 JBoss EAP 层,并将它存储在您的应用目录中。

    如需更多信息,请参阅 JBoss EAP 的自定义配置文件

  4. 运行 S2I 流程以在 OpenShift 中调配 JBoss EAP 服务器。

    如需更多信息,请参阅 使用用户开发的层构建应用程序配置

4.3.1. 为 JBoss EAP 构建自定义层

创建自定义层功能包作为 Maven 项目。

  1. 自定义层至少依赖于一个基础层。选择为您的自定义层提供所需功能的基础层。
  2. 在 Maven 项目中,在 src/main/resources 目录中创建您的层内容。

    例如,要在 src/main/resources 目录中创建层来调配对 PostgreSQL 和 PostgreSQL 数据源的支持,以创建 tier /standalone 子目录。单机 子目录包含以下内容:

    • postgresql-driver

      此目录包含包含以下内容的 layer-spec.xml 文件:

      <?xml version="1.0" ?>
      <layer-spec xmlns="urn:jboss:galleon:layer-spec:1.0" name="postgresql-driver">
          <feature spec="subsystem.datasources">
              <feature spec="subsystem.datasources.jdbc-driver">
                  <param name="driver-name" value="postgresql"/>
                  <param name="jdbc-driver" value="postgresql"/>
                  <param name="driver-xa-datasource-class-name" value="org.postgresql.xa.PGXADataSource"/>
                  <param name="driver-module-name" value="org.postgresql.jdbc"/>
              </feature>
          </feature>
          <packages>
              <package name="org.postgresql.jdbc"/>
          </packages>
      </layer-spec>
    • postgresql-datasource

      此目录包含包含以下内容的 layer-spec.xml 文件:

      <?xml version="1.0" ?>
      <layer-spec xmlns="urn:jboss:galleon:layer-spec:1.0" name="postgresql-datasource">
          <dependencies>
              <layer name="postgresql-driver"/>
          </dependencies>
          <feature spec="subsystem.datasources.data-source">
              <param name="use-ccm" value="true"/>
              <param name="data-source" value="PostgreSQLDS"/>
              <param name="enabled" value="true"/>
              <param name="use-java-context" value="true"/>
              <param name="jndi-name" value="java:jboss/datasources/${env.POSTGRESQL_DATASOURCE,env.OPENSHIFT_POSTGRESQL_DATASOURCE:PostgreSQLDS}"/>
              <param name="connection-url" value="jdbc:postgresql://${env.POSTGRESQL_SERVICE_HOST,\
      env.OPENSHIFT_POSTGRESQL_DB_HOST}:${env.POSTGRESQL_SERVICE_PORT,\
      env.OPENSHIFT_POSTGRESQL_DB_PORT}/${env.POSTGRESQL_DATABASE, env.OPENSHIFT_POSTGRESQL_DB_NAME}"/>
              <param name="driver-name" value="postgresql"/>
              <param name="user-name" value="${env.POSTGRESQL_USER, env.OPENSHIFT_POSTGRESQL_DB_USERNAME}"/>
              <param name="password" value="${env.POSTGRESQL_PASSWORD, env.OPENSHIFT_POSTGRESQL_DB_PASSWORD}"/>
              <param name="check-valid-connection-sql" value="SELECT 1"/>
              <param name="background-validation" value="true"/>
              <param name="background-validation-millis" value="60000"/>
              <param name="flush-strategy" value="IdleConnections"/>
              <param name="statistics-enabled" value="${wildfly.datasources.statistics-enabled:${wildfly.statistics-enabled:false}}" />
          </feature>
  3. 在用于构建自定义功能包的 pom.xml 文件中,请参阅 JBoss EAP 依赖项。

    <dependency>
        <groupId>org.jboss.eap</groupId>
        <artifactId>wildfly-ee-galleon-pack</artifactId>1
        <version>7.3.0.GA-redhat-00004</version>
        <type>zip</type>
    </dependency>
    1
    使用 JBoss EAP 扩展包(JBoss EAP XP)时,此元素的值应当是 wildfly-galleon-pack

    Red Hat Maven 存储库中提供了这些依赖项:https://maven.repository.redhat.com/ga/

  4. 使用 Galleon Maven 插件中的 build-user-feature-pack 目标来构建自定义层。

其它资源

base Layers

WildFly Galleon Maven 插件文档

将驱动程序和数据源打包作为 Galleon 层的示例