DEV Community

Query Filter
Query Filter

Posted on

pa12

apply plugin: 'java'

//LEONIND

def javaHome:String = System.getenv().'JAVA_HOME'

if(!javaHome){
 GradleException("JAVA_HOME environment variable not set.")
}

def toolsJarFile = new File(javaHome + File.separator + "lib" + File.separator + "tools.jar")

if(!toolsJarFile.exists()){
 GradleException("JAVA_HOME is not pointing to JDK, couldn't find tools.jar $toolsJarFile.absolutePath.")
 logger.warn("JAVA_HOME is not pointing to JDK, couldn't find tools.jar $toolsJarFile.absolutePath.")
}

// ... [cpls_instances_apac Map stays here] ...

task prepareLibDir(type: Copy) {
    from configurations.sharedlib
    into 'lib'
    rename('libZeusCcDt.*.so', 'libZeusCcDt.so')
    rename('libCcDt.*.so', 'libCcDt.so')
}

tasks.withType(JavaExec) {
    systemProperty "java.library.path", file("lib").absolutePath
    environment "LD_LIBRARY_PATH", file("lib").absolutePath
}

task runQCacheGen(dependsOn: [prepareLibDir], type: JavaExec) {
    main = "com.citigroup.get.quantum.store2.generator.gui.CacheManagerGui"
    classpath = sourceSets.main.runtimeClasspath
    workingDir = "/src/main"
    println "###### CLASSPATH SS ######"
    sourceSets.main.runtimeClasspath.each { File it ->
        println "rc-> " + it
    }

    jvmArgs "-Xms512M",
        "-Xmx512M",
        "-DConfig.Dir=" + file("src/main/config/resources/cachedefinitions"),
        "-DDEFAULT_DB=Sybase"
    standardInput = System.in
}

cpls_instances_apac.each { task_name, instance_options ->

    tasks.register(task_name, JavaExec) {
        dependsOn prepareLibDir, classes

        // Local scope variables to fix the "reusing previous tasks" issue
        def asset = instance_options.asset
        def region = instance_options.region
        def country = instance_options.country ?: ""
        def env = instance_options.env
        def instanceName = instance_options.instance
        def appName = instance_options.appName
        def tempDir = instance_options.temp
        def app = instance_options.app ?: 'CPLS_ASIA'
        def isDevLocal = instance_options.isDevLocal?.toString()?.toBoolean() ?: false

        def instanceClasspath = [
            file("src/main/config/quantum/$asset/$region/$country/$env"),
            file("src/main/config/quantum/$asset/$region/$country/"),
            file("src/main/config/quantum/$asset/$region/$country/$env/$instanceName"),
            file("src/main/config/dds/$asset/$region/$country/$env/$instanceName"),
            file('src/main/config'),
            toolsJarFile
        ]

        def cfgFileName = 'CFG.' + appName + '.xml'
        def cplsConfigFile = file("src/main/config/quantum/$asset/$region/$country/$env/cplsConfig.xml")
        def cplsFile = file("src/main/config/dds/$asset/$region/$country/$env/$instanceName/$cfgFileName")
        def cplsDir = file("src/main/config/quantum/$asset/$region/$country/$env/$instanceName")
        def loggingConfig = file("src/main/config/quantum/$asset/$region/$country/$env/logging.properties.txt")
        def cpacs = files("src/main/config/quantum/$asset/$region/$country/$env/cpacs/cpacs.xml", "src/main/config/quantum/$asset/$region/$country/$env/cpacs.xml")
        def cpacsFile = cpacs.find { File file -> file.exists() }
        def aleConfig = file("src/main/config/quantum/$asset/$region/$country/$env/alefcg")
        def securityFile = file("src/main/config/resources/security.dat")

        doFirst {
            logger.info "task: " + task_name + " started execution"

            if (System.properties.'os.name'.toLowerCase().contains("linux")){
                System.properties.'java.io.tmpdir' = '/opt/lgohome'
                logger.info "Setting [java.io.tmpdir] to [$system.properties.'java.io.tmpdir']"
            }

            if (System.properties.'os.name'.toLowerCase().contains("windows")){
                System.properties.'java.io.tmpdir' = 'C:/temp'
                logger.info "Setting [java.io.tmpdir] to [$system.properties.'java.io.tmpdir']"
            }

            ['dds','log','store'].each { String i ->
                def file = new File("${System.properties.'java.io.tmpdir'}/$tempDir/$i")
                file.mkdirs()
            }

            if (isDevLocal) {
                copy {
                    from "src/main/config/quantum/$asset/$region/$env/$instanceName/configService.xml"
                    into "${System.properties.'java.io.tmpdir'}/$tempDir/dds/"
                    filter { String line ->
                        line.replaceAll('<file-cache location="[/-a-zA-Z0-9_]*\\/>', "<file-cache location=\"${System.properties.'java.io.tmpdir'}/$tempDir/dds/\"/>")
                    }
                    rename('configService.xml', 'devConfigService.xml')
                }
            }

            jvmArgs = [
                "-Xms26", "-Xmx46", "-Xss256k",
                "-Djava.library.path=" + file('lib').absolutePath,
                "-DenableRestrictiveQtyCheck=false",
                "-Dcom.citigroup.project.config.filename=$cplsConfigFile",
                "-Dapplication=$app",
                "-Dinstance=$instanceName",
                "-Ddds.tmpdir=${System.properties.'java.io.tmpdir'}/$tempDir/dds/",
                "-Dcpls.path.store.dir=${System.properties.'java.io.tmpdir'}/$tempDir/store/",
                "-Djava.io.tmpdir=${System.properties.'java.io.tmpdir'}/$tempDir/log/",
                "-Dcom.citi.get.etsf.config.DDsConfigurationImpl.local.file=" + cplsFile,
                "-Dpackage.version=9.1.89n_b7",
                "-Dcpls.path.asset.region=$asset/$region${country ? "/$country" : ""}/$env",
                "-Dcpls.path.springqas.dir=$cplsDir",
                "-Dregion=$region${country ? "/$country" : ""}",
                "-Djava.util.logging.config.file=$loggingConfig",
                "-Dcom.citigroup.cpacs.util.preferences.systemFileName=$cpacsFile",
                "-DALE_CONFIGFILE=$aleConfig",
                "-DALE_SECURITYFILE=$securityFile",
                "-Dcom.citi.get.etsf.appName=$appName"
            ]

            if (isDevLocal) jvmArgs += "-Ddev_local=true"
        }

        def quantumJarFile = sourceSets.main.runtimeClasspath.filter {
            it.name.endsWith('.jar') && it.name.contains("quantum")
        }

        classpath = files(instanceClasspath) + quantumJarFile + (sourceSets.main.runtimeClasspath + files("${System.properties.'java.io.tmpdir'}/$tempDir/dds") - quantumJarFile)

        def cpFile = new File(buildDir, "real-classpath.txt")
        cpFile.text = classpath.asPath
        systemProperty "quantum.classpath.file", cpFile.absolutePath

        // Exact original println
        classpath.each { File file -> println 'classpath: ' + file }

        main = 'com.citi.DebugLauncher'

        // Exact original args
        args 'file://' + file("src/main/config/quantum/$asset/$region/$country/$env"),
            instanceName,
            'dummy'

        workingDir file('src/main/config')
        standardInput = System.in

        doLast {
            logger.info 'task: ' + task_name + ' completes execution'
        }
    }
}
Enter fullscreen mode Exit fullscreen mode

Top comments (0)