apply plugin: 'java'
//LEONIND
//def asset=
//def region=
//def env=
//def instanceName=
//def topic_instance=
//def tempDir=
//Boolean isDevLocal = false;
def javaHome = System.getenv('JAVA_HOME')
if(!javaHome){
throw new GradleException("JAVA_HOME environment variable not set.")
}
def toolsJarFile = new File(javaHome + File.separator + "lib" + File.separator + "tools.jar")
if(!toolsJarFile.exists()){
throw new GradleException("JAVA_HOME is not pointing to JDK, couldn't find tools.jar ${toolsJarFile.absolutePath}.")
}
def cpls_instances_apac = [
global_refdata : [
asset : 'cash',
region : 'APAC',
country : 'HNK',
env : 'dev',
instance : 'global_refdata_cpls',
appName : 'GLOBAL.HNK.GLOBAL.REFDATA.CPLS',
temp : 'global_refdata_cpls',
debugPort : 8890
],
cash_cpls_mys_sales : [
asset : 'cash',
region : 'APAC',
country : 'MYS',
env : 'dev',
instance : 'cash_cpls_mys_sales',
appName : 'GLOBAL.MYS.COMET.CPLS.CASH_CPLS.SALES',
temp : 'cash_cpls_mys_sales',
debugPort: 8890
],
cash_cpls_jpn_trdr1 : [
asset : 'cash',
region : 'APAC',
country : 'JPN',
env : 'dev',
instance : 'cash_cpls_jpn_trdr1',
appName : 'GLOBAL.JPN.COMET.CPLS.CASH_CPLS.TRDR',
temp : 'cash_cpls_jpn_trdr1',
debugPort: 8890
],
deriv_cpls_jpn_prop1 : [
asset : 'derivatives',
region : 'APAC',
country : 'JPN',
env : 'dev',
instance : 'deriv_cpls_jpn_prop1',
appName : 'GLOBAL.JPN.COMET.CPLS.DERIV_PROP_CPLS1',
temp : 'deriv_cpls_jpn_prop1',
debugPort: 8890
],
cash_cpls_sls1 : [
app : 'CPLS',
asset : 'cash',
region : 'US',
env : 'dev',
instance : 'cash_cpls_sls1',
appName : 'GLOBAL.NA.US.COMET.CPLS.CPLS_CASH.CASH_CPLS_INSTANCE1',
temp : 'cash_cpls_sls1',
debugPort: 9797
],
emea_local_dev_cpls : [
app : 'CPLS',
asset : 'multi',
region : 'EMEA',
env : 'dev',
instance : 'emea_cpls_sls102',
appName : 'GLOBAL.COMET.EMEA.CASHSLS.CPLS',
temp : 'emea_cpls_sls102',
topic_instance : 'local_dev_100',
instance_id : 201110100,
isDevLocal : true,
debugPort : 8741
],
cash_position_1_qa : [
app : 'CPLS',
asset : 'cash',
region : 'US',
env : 'qa',
instance : 'cash_position_1',
appName : 'GLOBAL.US.COMET.POSITION.POSITIONINSTANCE1',
temp : 'cash_position_1',
isDevLocal : false,
debugPort : 9798
],
cash_position_1_dev : [
app : 'CPLS',
asset : 'cash',
region : 'US',
env : 'dev',
instance : 'cash_position_1',
appName : 'GLOBAL.US.COMET.POSITION.POSITIONINSTANCE1',
temp : 'cash_position_1',
isDevLocal : true,
debugPort : 9799
]
]
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) {
mainClass = "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
}
// Helper methods defined outside the task configuration
def setTmpDir = {
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'}]"
}
}
def buildFileSystem = { param ->
['dds','log','store'].each { String i ->
def file = new File("${System.properties.'java.io.tmpdir'}/$param/$i")
file.mkdirs()
}
}
cpls_instances_apac.each { String task_name, Map instance_options ->
if(!tasks.findByName(task_name)){
task(task_name, type: JavaExec) {
// Store instance_options for this specific task
final def taskOptions = instance_options
// Add dependencies
dependsOn prepareLibDir, classes
systemProperty "org.gradle.scan.acceptTerm", "true"
// Set main class at configuration time (not in doFirst)
mainClass = 'com.citi.DebugLauncher'
// Set working directory at configuration time
workingDir file('src/main/config')
// Set standard input
standardInput = System.in
// Configure the task
doFirst {
logger.info "task: " + task_name + " started execution"
// Extract values from taskOptions inside doFirst
def asset = taskOptions.asset
def region = taskOptions.region
def country = taskOptions.country ?: ''
def env = taskOptions.env
def instanceName = taskOptions.instance
def topic_instance = taskOptions.topic_instance ?: '102'
def instance_id = taskOptions.instance_id ?: ''
def appName = taskOptions.appName
def tempDir = taskOptions.temp
def debugPort = taskOptions.debugPort
def app = taskOptions.app ?: 'CPLS_ASIA'
def isDevLocal = taskOptions.isDevLocal?.toString()?.toBoolean() ?: false
// Set temp directory
setTmpDir()
buildFileSystem(tempDir)
// Define file paths
def cfgFileName = 'CFG.' + appName + '.xml'
def devConfigServiceFile = "devConfigService.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")
def instanceClasspath = files(
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
)
// Setup dev config if needed
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')
}
}
// Prepare JVM arguments
def jvmArgsList = [
"-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",
"-Dcom.citigroup.get.refdata.dbconn.max.number=60",
"-Dcom.citigroup.get.prodapi.dbconn.max.number=60",
"-Dcom.citigroup.get.citijdbc.dbconn.max.number=60",
"-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",
"-Dquantum.config.springconfigurationBase=" + file("src/main/config/quantum/$asset/$region/$country/$env/$instanceName"),
"-DALE_CONFIGFILE=$aleConfig",
"-DALE_SECURITYFILE=$securityFile",
"-DMD_CONFIG_FILE_LOCATION=",
"-Dcom.citi.get.etsf.appName=$appName"
]
if (taskOptions.isDevLocal?.toString()?.toBoolean()) {
jvmArgsList += "-Ddev_local=true"
}
jvmArgs jvmArgsList
// Setup classpath
def quantumJarFile = sourceSets.main.runtimeClasspath.filter {
it.name.endsWith('.jar') && it.name.contains("quantum")
}
classpath = instanceClasspath + quantumJarFile +
(sourceSets.main.runtimeClasspath + files("${System.properties.'java.io.tmpdir'}/$tempDir/dds") - quantumJarFile)
// Create classpath file
def cpFile = new File(buildDir, "real-classpath-${task_name}.txt")
cpFile.text = classpath.asPath
systemProperty "quantum.classpath.file", cpFile.absolutePath
classpath.each { File file -> println "classpath [${task_name}]: " + file }
// Set args
args "file://" + file("src/main/config/quantum/$asset/$region/$country/$env").absolutePath,
instanceName,
'dummy'
logger.info "task: " + task_name + " completes execution"
}
}
}
}
For further actions, you may consider blocking this person and/or reporting abuse
Top comments (0)