All Downloads are FREE. Search and download functionalities are using the official Maven repository.

fr.javatic.gradle.jbossController.JBossAddXADatasource.groovy Maven / Gradle / Ivy

There is a newer version: 1.5
Show newest version
/*
 * Copyright 2014 Yann Le Moigne
 *
 * 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.
 */

package fr.javatic.gradle.jbossController

import org.gradle.api.tasks.TaskAction

class JBossAddXADatasource extends JBossControllerTask {
    String dsName
    String dsUser
    String dsPassword
    String dsDriverName
    String dsJdbcurl

    JBossAddXADatasource() {
    }

    def prepare() {
        if (dsName == null ||
                dsUser == null ||
                dsPassword == null ||
                dsDriverName == null ||
                dsJdbcurl == null) {
            throw new IllegalArgumentException("""Missing task properties, the following must be set: dsName, dsUser, dsPassword, dsDriverName, dsJdbcurl""")
        }

        jboss {
            // AuthDS
            address(["subsystem"     : "datasources",
                     "xa-data-source": "${dsName}"]) {
                operation("add", [
                        "enabled"                     : true,
                        "jndi-name"                   : "java:/jdbc/${dsName}",
                        "driver-name"                 : dsDriverName,
                        "validate-on-match"           : false,
                        "background-validation"       : false,
                        "background-validation-millis": 500L,
                        "user-name"                   : dsUser,
                        "password"                    : dsPassword,
                ])
            }

            address(["subsystem"               : "datasources",
                     "xa-data-source"          : "${dsName}",
                     "xa-datasource-properties": "URL"]) {
                operation("add", ["value": dsJdbcurl])
            }
        }
    }

    @TaskAction
    def run() {
        prepare()
        super.run();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy