This is an automated email from the ASF dual-hosted git repository. arnold pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/fineract.git
commit a76c189a045082796f24954f350c773dc170583d Author: Arnold Galovics <[email protected]> AuthorDate: Fri Jun 20 13:48:43 2025 +0200 Revert "FINERACT-2181: Some tweaks in the gradle build to ensure correct task processing" This reverts commit 6cb60f48 --- build.gradle | 100 ++++++++-------- fineract-accounting/build.gradle | 50 ++++---- .../module/accounting/module-changelog-master.xml | 0 .../{META-INF => jpa/accounting}/persistence.xml | 0 fineract-avro-schemas/build.gradle | 16 +-- fineract-branch/build.gradle | 50 ++++---- .../{META-INF => jpa/branch}/persistence.xml | 0 fineract-charge/build.gradle | 50 ++++---- .../module/charge/module-changelog-master.xml | 0 .../{META-INF => jpa/charge}/persistence.xml | 0 fineract-client/build.gradle | 64 +++++----- fineract-command/build.gradle | 2 +- fineract-core/build.gradle | 44 +++---- .../{META-INF => jpa/core}/persistence.xml | 0 fineract-doc/build.gradle | 6 +- fineract-document/build.gradle | 46 +++---- .../{META-INF => jpa/document}/persistence.xml | 0 fineract-investor/build.gradle | 50 ++++---- .../{META-INF => jpa/investor}/persistence.xml | 0 fineract-loan/build.gradle | 53 +++------ .../{META-INF => jpa/loan}/persistence.xml | 0 fineract-progressive-loan/build.gradle | 50 ++++---- .../progressiveloan}/persistence.xml | 0 fineract-provider/build.gradle | 132 ++++++++++----------- .../src/main/resources/application.properties | 2 +- .../resources/{META-INF => jpa}/persistence.xml | 0 fineract-rates/build.gradle | 50 ++++---- .../module/rates/module-changelog-master.xml | 0 .../{META-INF => jpa/rates}/persistence.xml | 0 fineract-report/build.gradle | 50 ++++---- .../{META-INF => jpa/report}/persistence.xml | 0 fineract-savings/build.gradle | 50 ++++---- .../{META-INF => jpa/savings}/persistence.xml | 0 fineract-tax/build.gradle | 50 ++++---- .../{META-INF => jpa/taxes}/persistence.xml | 0 fineract-war/build.gradle | 6 +- 36 files changed, 396 insertions(+), 525 deletions(-) diff --git a/build.gradle b/build.gradle index 5b6371319a..077ad067f9 100644 --- a/build.gradle +++ b/build.gradle @@ -365,12 +365,12 @@ configure(project.fineractJavaProjects) { withJavadocJar() } - tasks.withType(ProcessResources).configureEach { + tasks.withType(ProcessResources) { destinationDir = layout.buildDirectory.dir('classes/java/main').get().asFile } // Add performance optimizations - configurations.configureEach { + configurations.all { resolutionStrategy { cacheChangingModulesFor 0, 'seconds' cacheDynamicVersionsFor 0, 'seconds' @@ -422,40 +422,40 @@ configure(project.fineractJavaProjects) { configurations { api.setCanBeResolved(true) } - tasks.withType(Copy).configureEach { + tasks.withType(Copy) { duplicatesStrategy = DuplicatesStrategy.EXCLUDE } - tasks.withType(JavaCompile).configureEach { + tasks.withType(JavaCompile) { options.compilerArgs += [ - "-Xlint:cast", - "-Xlint:auxiliaryclass", - "-Xlint:dep-ann", - "-Xlint:divzero", - "-Xlint:empty", - "-Xlint:exports", - "-Xlint:fallthrough", - "-Xlint:finally", - "-Xlint:module", - "-Xlint:opens", - "-Xlint:options", - "-Xlint:overloads", - "-Xlint:overrides", - "-Xlint:path", - "-Xlint:processing", - "-Xlint:removal", - "-Xlint:requires-automatic", - "-Xlint:requires-transitive-automatic", - "-Xlint:try", - "-Xlint:varargs", - "-Xlint:preview", - "-Xlint:static", - // -Werror needs to be disabled because EclipseLink's static weaving doesn't generate warning-free code - // and during an IntelliJ recompilation, it fails - //"-Werror", - "-Xmaxwarns", - "1500", - "-Xmaxerrs", - "1500" + "-Xlint:cast", + "-Xlint:auxiliaryclass", + "-Xlint:dep-ann", + "-Xlint:divzero", + "-Xlint:empty", + "-Xlint:exports", + "-Xlint:fallthrough", + "-Xlint:finally", + "-Xlint:module", + "-Xlint:opens", + "-Xlint:options", + "-Xlint:overloads", + "-Xlint:overrides", + "-Xlint:path", + "-Xlint:processing", + "-Xlint:removal", + "-Xlint:requires-automatic", + "-Xlint:requires-transitive-automatic", + "-Xlint:try", + "-Xlint:varargs", + "-Xlint:preview", + "-Xlint:static", + // -Werror needs to be disabled because EclipseLink's static weaving doesn't generate warning-free code + // and during an IntelliJ recompilation, it fails + //"-Werror", + "-Xmaxwarns", + "1500", + "-Xmaxerrs", + "1500" ] // TODO FINERACT-959 (gradually) enable -Xlint:all (see "javac -help -X") @@ -738,13 +738,11 @@ configure(project.fineractJavaProjects) { ] } - tasks.withType(Javadoc).tap { - configureEach { - options.addStringOption('Xdoclint:none', '-quiet') - options.encoding = 'UTF-8' - // Ignore any errors during javadoc generation - failOnError = false - } + tasks.withType(Javadoc) { + options.addStringOption('Xdoclint:none', '-quiet') + options.encoding = 'UTF-8' + // Ignore any errors during javadoc generation + failOnError = false } } @@ -870,17 +868,17 @@ configure(project.fineractPublishProjects) { } } - tasks.register('printSourceSetInformation') { - doLast { - sourceSets.each { srcSet -> - println "[" + srcSet.name + "]" - print "-->Source directories: " + srcSet.allJava.srcDirs + "\n" - print "-->Output directories: " + srcSet.output.classesDirs.files + "\n" - print "-->Compile classpath:\n" - srcSet.compileClasspath.files.each { - print " " + it.path + "\n" - } - println "" +task printSourceSetInformation() { + doLast{ + sourceSets.each { srcSet -> + println "["+srcSet.name+"]" + print "-->Source directories: "+srcSet.allJava.srcDirs+"\n" + print "-->Output directories: "+srcSet.output.classesDirs.files+"\n" + print "-->Compile classpath:\n" + srcSet.compileClasspath.files.each { + print " "+it.path+"\n" } + println "" } } +} diff --git a/fineract-accounting/build.gradle b/fineract-accounting/build.gradle index ceb6895f85..916069b1f9 100644 --- a/fineract-accounting/build.gradle +++ b/fineract-accounting/build.gradle @@ -21,35 +21,23 @@ description = 'Fineract Accounting' apply plugin: 'java' apply plugin: 'eclipse' -tasks.register('staticWeaveJpa', JavaExec) { - group = "build" - description = "Performs EclipseLink static weaving of entity classes" - - dependsOn classes - - def classesDir = file("$buildDir/classes/java/main") - - mainClass.set('org.eclipse.persistence.tools.weaving.jpa.StaticWeave') - classpath = sourceSets.main.runtimeClasspath - args '-persistenceinfo', classesDir.absolutePath, classesDir.absolutePath, classesDir.absolutePath -} - -staticWeaveJpa.doLast { - delete "${sourceSets.main.output.classesDirs.asPath}/META-INF/persistence.xml" -} - -tasks.named('classes') { - finalizedBy staticWeaveJpa -} - -tasks.named('processResources') { - from('src/main/resources') - into sourceSets.main.java.classesDirectory - outputs.upToDateWhen { false } -} - -compileJava { - dependsOn ':fineract-avro-schemas:buildJavaSdk' +compileJava.doLast { + def mainSS = sourceSets.main + def source = mainSS.java.classesDirectory.get() + copy { + from file("src/main/resources/jpa/accounting/persistence.xml") + into "${source}/META-INF/" + } + javaexec { + description = 'Performs EclipseLink static weaving of entity classes' + def target = source + mainClass = 'org.eclipse.persistence.tools.weaving.jpa.StaticWeave' + args '-persistenceinfo', source, source, target + classpath sourceSets.main.runtimeClasspath + } + delete { + delete "${source}/META-INF/persistence.xml" + } } configurations { @@ -97,6 +85,10 @@ eclipse { } } +/* http://stackoverflow.com/questions/19653311/jpa-repository-works-in-idea-and-production-but-not-in-gradle */ +sourceSets.main.output.resourcesDir = sourceSets.main.java.classesDirectory +sourceSets.test.output.resourcesDir = sourceSets.test.java.classesDirectory + if (!(project.hasProperty('env') && project.getProperty('env') == 'dev')) { sourceSets { test { diff --git a/fineract-accounting/src/main/resources/db/changelog/tenant/module/accounting/module-changelog-master.xml b/fineract-accounting/src/main/resources/jpa/accounting/db/changelog/tenant/module/accounting/module-changelog-master.xml similarity index 100% rename from fineract-accounting/src/main/resources/db/changelog/tenant/module/accounting/module-changelog-master.xml rename to fineract-accounting/src/main/resources/jpa/accounting/db/changelog/tenant/module/accounting/module-changelog-master.xml diff --git a/fineract-accounting/src/main/resources/META-INF/persistence.xml b/fineract-accounting/src/main/resources/jpa/accounting/persistence.xml similarity index 100% rename from fineract-accounting/src/main/resources/META-INF/persistence.xml rename to fineract-accounting/src/main/resources/jpa/accounting/persistence.xml diff --git a/fineract-avro-schemas/build.gradle b/fineract-avro-schemas/build.gradle index e94a01d940..5afaaec48e 100644 --- a/fineract-avro-schemas/build.gradle +++ b/fineract-avro-schemas/build.gradle @@ -57,11 +57,9 @@ tasks.register('preprocessAvroSchemas', PreprocessAvroSchemasTask) { inputDir = file("$projectDir/src/main/avro") bigDecimalTemplate = file("$projectDir/src/main/resources/avro-templates/bigdecimal.avsc") outputDir = file("$buildDir/generated/avro/src/main/avro") - finalizedBy buildJavaSdk } -tasks.register('buildJavaSdk', GenerateAvroJavaTask) { - dependsOn preprocessAvroSchemas, spotlessJsonApply +task buildJavaSdk(type: GenerateAvroJavaTask) { source("$buildDir/generated/avro/src/main/avro") outputDir = file("$buildDir/generated/java/src/main/java") templateDirectory = "$projectDir/src/main/resources/avro-generator-templates/" @@ -75,10 +73,12 @@ spotless { } } +buildJavaSdk.dependsOn(preprocessAvroSchemas, spotlessJsonApply) + sourceSets { main { java { - srcDirs += "$buildDir/generated/java/src/main/java" + srcDir file("$buildDir/generated/java/src/main/java") } resources { srcDir file("$projectDir/src/main/resources") @@ -97,7 +97,7 @@ jar { } compileJava { - dependsOn buildJavaSdk, processResources + dependsOn buildJavaSdk source = sourceSets.main.java.srcDirs options.compilerArgs += ['-parameters'] } @@ -131,9 +131,3 @@ tasks.named('sourcesJar') { dependsOn tasks.named('buildJavaSdk') duplicatesStrategy = DuplicatesStrategy.EXCLUDE } - -tasks.named('processResources') { - from('src/main/resources') - into sourceSets.main.java.classesDirectory - outputs.upToDateWhen { false } -} diff --git a/fineract-branch/build.gradle b/fineract-branch/build.gradle index 505273c140..04a3b10e4e 100644 --- a/fineract-branch/build.gradle +++ b/fineract-branch/build.gradle @@ -21,35 +21,23 @@ description = 'Fineract Branch' apply plugin: 'java' apply plugin: 'eclipse' -tasks.register('staticWeaveJpa', JavaExec) { - group = "build" - description = "Performs EclipseLink static weaving of entity classes" - - dependsOn classes - - def classesDir = file("$buildDir/classes/java/main") - - mainClass.set('org.eclipse.persistence.tools.weaving.jpa.StaticWeave') - classpath = sourceSets.main.runtimeClasspath - args '-persistenceinfo', classesDir.absolutePath, classesDir.absolutePath, classesDir.absolutePath -} - -staticWeaveJpa.doLast { - delete "${sourceSets.main.output.classesDirs.asPath}/META-INF/persistence.xml" -} - -tasks.named('classes') { - finalizedBy staticWeaveJpa -} - -tasks.named('processResources') { - from('src/main/resources') - into sourceSets.main.java.classesDirectory - outputs.upToDateWhen { false } -} - -compileJava { - dependsOn ':fineract-avro-schemas:buildJavaSdk' +compileJava.doLast { + def mainSS = sourceSets.main + def source = mainSS.java.classesDirectory.get() + copy { + from file("src/main/resources/jpa/branch/persistence.xml") + into "${source}/META-INF/" + } + javaexec { + description = 'Performs EclipseLink static weaving of entity classes' + def target = source + main 'org.eclipse.persistence.tools.weaving.jpa.StaticWeave' + args '-persistenceinfo', source, source, target + classpath sourceSets.main.runtimeClasspath + } + delete { + delete "${source}/META-INF/persistence.xml" + } } // Configuration for Swagger documentation generation task @@ -103,6 +91,10 @@ eclipse { } } +/* http://stackoverflow.com/questions/19653311/jpa-repository-works-in-idea-and-production-but-not-in-gradle */ +sourceSets.main.output.resourcesDir = sourceSets.main.java.classesDirectory +sourceSets.test.output.resourcesDir = sourceSets.test.java.classesDirectory + if (!(project.hasProperty('env') && project.getProperty('env') == 'dev')) { sourceSets { test { diff --git a/fineract-branch/src/main/resources/META-INF/persistence.xml b/fineract-branch/src/main/resources/jpa/branch/persistence.xml similarity index 100% rename from fineract-branch/src/main/resources/META-INF/persistence.xml rename to fineract-branch/src/main/resources/jpa/branch/persistence.xml diff --git a/fineract-charge/build.gradle b/fineract-charge/build.gradle index 58b90df787..636fc048af 100644 --- a/fineract-charge/build.gradle +++ b/fineract-charge/build.gradle @@ -21,35 +21,23 @@ description = 'Fineract Charge' apply plugin: 'java' apply plugin: 'eclipse' -tasks.register('staticWeaveJpa', JavaExec) { - group = "build" - description = "Performs EclipseLink static weaving of entity classes" - - dependsOn classes - - def classesDir = file("$buildDir/classes/java/main") - - mainClass.set('org.eclipse.persistence.tools.weaving.jpa.StaticWeave') - classpath = sourceSets.main.runtimeClasspath - args '-persistenceinfo', classesDir.absolutePath, classesDir.absolutePath, classesDir.absolutePath -} - -staticWeaveJpa.doLast { - delete "${sourceSets.main.output.classesDirs.asPath}/META-INF/persistence.xml" -} - -tasks.named('classes') { - finalizedBy staticWeaveJpa -} - -tasks.named('processResources') { - from('src/main/resources') - into sourceSets.main.java.classesDirectory - outputs.upToDateWhen { false } -} - -compileJava { - dependsOn ':fineract-avro-schemas:buildJavaSdk' +compileJava.doLast { + def mainSS = sourceSets.main + def source = mainSS.java.classesDirectory.get() + copy { + from file("src/main/resources/jpa/charge/persistence.xml") + into "${source}/META-INF/" + } + javaexec { + description = 'Performs EclipseLink static weaving of entity classes' + def target = source + main 'org.eclipse.persistence.tools.weaving.jpa.StaticWeave' + args '-persistenceinfo', source, source, target + classpath sourceSets.main.runtimeClasspath + } + delete { + delete "${source}/META-INF/persistence.xml" + } } // Configuration for Swagger documentation generation task @@ -103,6 +91,10 @@ eclipse { } } +/* http://stackoverflow.com/questions/19653311/jpa-repository-works-in-idea-and-production-but-not-in-gradle */ +sourceSets.main.output.resourcesDir = sourceSets.main.java.classesDirectory +sourceSets.test.output.resourcesDir = sourceSets.test.java.classesDirectory + if (!(project.hasProperty('env') && project.getProperty('env') == 'dev')) { sourceSets { test { diff --git a/fineract-charge/src/main/resources/db/changelog/tenant/module/charge/module-changelog-master.xml b/fineract-charge/src/main/resources/jpa/charge/db/changelog/tenant/module/charge/module-changelog-master.xml similarity index 100% rename from fineract-charge/src/main/resources/db/changelog/tenant/module/charge/module-changelog-master.xml rename to fineract-charge/src/main/resources/jpa/charge/db/changelog/tenant/module/charge/module-changelog-master.xml diff --git a/fineract-charge/src/main/resources/META-INF/persistence.xml b/fineract-charge/src/main/resources/jpa/charge/persistence.xml similarity index 100% rename from fineract-charge/src/main/resources/META-INF/persistence.xml rename to fineract-charge/src/main/resources/jpa/charge/persistence.xml diff --git a/fineract-client/build.gradle b/fineract-client/build.gradle index 133ad53344..a079f0a086 100644 --- a/fineract-client/build.gradle +++ b/fineract-client/build.gradle @@ -1,5 +1,3 @@ -import org.openapitools.generator.gradle.plugin.tasks.GenerateTask - /** * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file @@ -37,7 +35,7 @@ openApiValidate { recommend = true } -tasks.register('buildJavaSdk', GenerateTask) { +task buildJavaSdk(type: org.openapitools.generator.gradle.plugin.tasks.GenerateTask) { generatorName = 'java' verbose = false validateSpec = false @@ -50,11 +48,11 @@ tasks.register('buildJavaSdk', GenerateTask) { invokerPackage = 'org.apache.fineract.client' modelPackage = 'org.apache.fineract.client.models' configOptions = [ - dateLibrary : 'java8', - useRxJava2 : 'false', - library : 'retrofit2', - hideGenerationTimestamp: 'true', - containerDefaultToNull : 'true' + dateLibrary: 'java8', + useRxJava2: 'false', + library: 'retrofit2', + hideGenerationTimestamp: 'true', + containerDefaultToNull: 'true' ] generateModelTests = false generateApiTests = false @@ -62,7 +60,7 @@ tasks.register('buildJavaSdk', GenerateTask) { dependsOn(':fineract-provider:resolve') } -tasks.register('buildTypescriptAngularSdk', GenerateTask) { +task buildTypescriptAngularSdk(type: org.openapitools.generator.gradle.plugin.tasks.GenerateTask){ generatorName = 'typescript-angular' verbose = false validateSpec = false @@ -73,16 +71,16 @@ tasks.register('buildTypescriptAngularSdk', GenerateTask) { invokerPackage = 'apache-fineract-client/invoker' modelPackage = 'apache-fineract-client/models' configOptions = [ - apiModulePrefix : 'apacheFineractClient', - configurationPrefix: 'apacheFineractClient', - ngVersion : '12.0.0', - npmName : '@apache/fineract-client', - npmRepository : "${npmRepository}" + apiModulePrefix: 'apacheFineractClient', + configurationPrefix: 'apacheFineractClient', + ngVersion: '12.0.0', + npmName: '@apache/fineract-client', + npmRepository: "${npmRepository}" ] dependsOn(':fineract-provider:resolve') } -tasks.register('buildAsciidoc', GenerateTask) { +task buildAsciidoc(type: org.openapitools.generator.gradle.plugin.tasks.GenerateTask){ generatorName = 'asciidoc' verbose = false validateSpec = false @@ -93,18 +91,18 @@ tasks.register('buildAsciidoc', GenerateTask) { invokerPackage = 'org.apache.fineract.client' modelPackage = 'org.apache.fineract.client.models' configOptions = [ - appName : 'Apache Fineract REST API', - appDescription : '''Apache Fineract is a secure, multi-tenanted microfinance platform. + appName: 'Apache Fineract REST API', + appDescription: '''Apache Fineract is a secure, multi-tenanted microfinance platform. The goal of the Apache Fineract API is to empower developers to build apps on top of the Apache Fineract Platform. - The [reference app](https://cui.fineract.dev) (username: mifos, password: password) works on the same demo tenant as the interactive links in this documentation. - Until we complete the new REST API documentation you still have the legacy documentation available [here](https://fineract.apache.org/docs/legacy/). - Please check [the Fineract documentation](https://fineract.apache.org/docs/current/) for more information.''', - headerAttributes: 'false', - infoEmail : '[email protected]', - infoUrl : 'https://fineract.apache.org', - licenseInfo : 'Apache 2.0', - licenseUrl : 'http://www.apache.org/licenses/LICENSE-2.0.html', - useMethodAndPath: 'true' + The https://cui.fineract.dev[reference app] (username: mifos, password: password) works on the same demo tenant as the interactive links in this documentation. + Until we complete the new REST API documentation you still have the legacy documentation available https://fineract.apache.org/legacy-docs/apiLive.htm[here]. + Please check https://fineract.apache.org/docs/current[the Fineract documentation] for more information.''', + headerAttributes: 'false', + infoEmail: '[email protected]', + infoUrl: 'https://fineract.apache.org', + licenseInfo: 'Apache 2.0', + licenseUrl: 'http://www.apache.org/licenses/LICENSE-2.0.html', + useMethodAndPath: 'true' ] dependsOn(':fineract-provider:resolve') } @@ -133,23 +131,23 @@ tasks.withType(Jar).configureEach { } // Improve the cleanup task to track inputs and outputs -tasks.register('cleanupGeneratedJavaFiles') { +task cleanupGeneratedJavaFiles() { def tempDir = file("$buildDir/generated/temp-java") def targetDir = file("$buildDir/generated/java") - + inputs.dir(tempDir) outputs.dir(targetDir) - + doLast { copy { from tempDir into targetDir filter { line -> line - .replaceAll("import org\\.joda\\.time\\.\\*;", "") - .replaceAll(", \\)", ")") - .replaceAll(", , @HeaderMap", ", @HeaderMap") - .replaceAll("\\(, ", "(") + .replaceAll("import org\\.joda\\.time\\.\\*;", "") + .replaceAll(", \\)", ")") + .replaceAll(", , @HeaderMap", ", @HeaderMap") + .replaceAll("\\(, ", "(") } // Also set duplicates strategy for the copy task duplicatesStrategy = DuplicatesStrategy.EXCLUDE diff --git a/fineract-command/build.gradle b/fineract-command/build.gradle index 023b5b6356..ac754bcab8 100644 --- a/fineract-command/build.gradle +++ b/fineract-command/build.gradle @@ -79,4 +79,4 @@ jmh { fork = 1 // Number of forks timeOnIteration = '2s' // Time per iteration benchmarkMode = ['thrpt'] // Default benchmark mode -} +} \ No newline at end of file diff --git a/fineract-core/build.gradle b/fineract-core/build.gradle index 1d0a8dc66b..c05ff72886 100644 --- a/fineract-core/build.gradle +++ b/fineract-core/build.gradle @@ -21,31 +21,23 @@ description = 'Fineract Core' apply plugin: 'java' apply plugin: 'eclipse' -tasks.register('staticWeaveJpa', JavaExec) { - group = "build" - description = "Performs EclipseLink static weaving of entity classes" - - dependsOn classes, processResources - - def classesDir = file(sourceSets.main.output.classesDirs.asPath) - - mainClass.set('org.eclipse.persistence.tools.weaving.jpa.StaticWeave') - classpath = sourceSets.main.runtimeClasspath - args '-persistenceinfo', classesDir, classesDir, classesDir -} - -staticWeaveJpa.doLast { - delete "${sourceSets.main.output.classesDirs.asPath}/META-INF/persistence.xml" -} - -tasks.named('classes') { - finalizedBy staticWeaveJpa -} - -tasks.named('processResources') { - from('src/main/resources') - into sourceSets.main.java.classesDirectory - outputs.upToDateWhen { false } +compileJava.doLast { + def mainSS = sourceSets.main + def source = mainSS.java.classesDirectory.get() + copy { + from file("src/main/resources/jpa/core/persistence.xml") + into "${source}/META-INF/" + } + javaexec { + description = 'Performs EclipseLink static weaving of entity classes' + def target = source + main = 'org.eclipse.persistence.tools.weaving.jpa.StaticWeave' + args '-persistenceinfo', source, source, target + classpath sourceSets.main.runtimeClasspath + } + delete { + delete "${source}/META-INF/persistence.xml" + } } configurations { @@ -72,7 +64,7 @@ configurations { apply from: 'dependencies.gradle' compileJava { - dependsOn ':fineract-avro-schemas:compileJava', processResources + dependsOn ':fineract-avro-schemas:jar' options.compilerArgs += ['-parameters'] } diff --git a/fineract-core/src/main/resources/META-INF/persistence.xml b/fineract-core/src/main/resources/jpa/core/persistence.xml similarity index 100% rename from fineract-core/src/main/resources/META-INF/persistence.xml rename to fineract-core/src/main/resources/jpa/core/persistence.xml diff --git a/fineract-doc/build.gradle b/fineract-doc/build.gradle index eaa9a202db..67ce8887d9 100644 --- a/fineract-doc/build.gradle +++ b/fineract-doc/build.gradle @@ -60,12 +60,12 @@ asciidoctor { dependsOn(':fineract-client:clean', ':fineract-client:buildAsciidoc') } -tasks.register('copyImages', Copy) { +task copyImages(type: Copy) { from "${projectDir}/src/docs/en/images" into "${buildDir}/generated/images" } -tasks.register('copyDiagrams', Copy) { +task copyDiagrams(type: Copy) { from "${projectDir}/src/docs/en/diagrams" into "${buildDir}/generated/diagrams" } @@ -95,7 +95,7 @@ asciidoctorPdf { dependsOn(':fineract-client:clean', ':fineract-client:buildAsciidoc') } -tasks.register('doc', Zip) { +task doc(type: Zip) { dependsOn(asciidoctor, asciidoctorPdf) into("fineract-${project.version}/html") { diff --git a/fineract-document/build.gradle b/fineract-document/build.gradle index 8410fbff31..6eeb13ada5 100644 --- a/fineract-document/build.gradle +++ b/fineract-document/build.gradle @@ -21,35 +21,23 @@ description = 'Fineract Document' apply plugin: 'java' apply plugin: 'eclipse' -tasks.register('staticWeaveJpa', JavaExec) { - group = "build" - description = "Performs EclipseLink static weaving of entity classes" - - dependsOn classes - - def classesDir = file("$buildDir/classes/java/main") - - mainClass.set('org.eclipse.persistence.tools.weaving.jpa.StaticWeave') - classpath = sourceSets.main.runtimeClasspath - args '-persistenceinfo', classesDir.absolutePath, classesDir.absolutePath, classesDir.absolutePath -} - -staticWeaveJpa.doLast { - delete "${sourceSets.main.output.classesDirs.asPath}/META-INF/persistence.xml" -} - -tasks.named('classes') { - finalizedBy staticWeaveJpa -} - -tasks.named('processResources') { - from('src/main/resources') - into sourceSets.main.java.classesDirectory - outputs.upToDateWhen { false } -} - -compileJava { - dependsOn ':fineract-avro-schemas:buildJavaSdk' +compileJava.doLast { + def mainSS = sourceSets.main + def source = mainSS.java.classesDirectory.get() + copy { + from file("src/main/resources/jpa/document/persistence.xml") + into "${source}/META-INF/" + } + javaexec { + description = 'Performs EclipseLink static weaving of entity classes' + def target = source + main 'org.eclipse.persistence.tools.weaving.jpa.StaticWeave' + args '-persistenceinfo', source, '-classpath', sourceSets.main.runtimeClasspath, source, target + classpath sourceSets.main.runtimeClasspath + } + delete { + delete "${source}/META-INF/persistence.xml" + } } configurations { diff --git a/fineract-document/src/main/resources/META-INF/persistence.xml b/fineract-document/src/main/resources/jpa/document/persistence.xml similarity index 100% rename from fineract-document/src/main/resources/META-INF/persistence.xml rename to fineract-document/src/main/resources/jpa/document/persistence.xml diff --git a/fineract-investor/build.gradle b/fineract-investor/build.gradle index 5fdbf51e31..22187772f0 100644 --- a/fineract-investor/build.gradle +++ b/fineract-investor/build.gradle @@ -21,35 +21,23 @@ description = 'Fineract Investor' apply plugin: 'java' apply plugin: 'eclipse' -tasks.register('staticWeaveJpa', JavaExec) { - group = "build" - description = "Performs EclipseLink static weaving of entity classes" - - dependsOn classes - - def classesDir = file("$buildDir/classes/java/main") - - mainClass.set('org.eclipse.persistence.tools.weaving.jpa.StaticWeave') - classpath = sourceSets.main.runtimeClasspath - args '-persistenceinfo', classesDir.absolutePath, classesDir.absolutePath, classesDir.absolutePath -} - -staticWeaveJpa.doLast { - delete "${sourceSets.main.output.classesDirs.asPath}/META-INF/persistence.xml" -} - -tasks.named('classes') { - finalizedBy staticWeaveJpa -} - -tasks.named('processResources') { - from('src/main/resources') - into sourceSets.main.java.classesDirectory - outputs.upToDateWhen { false } -} - -compileJava { - dependsOn ':fineract-avro-schemas:buildJavaSdk' +compileJava.doLast { + def mainSS = sourceSets.main + def source = mainSS.java.classesDirectory.get() + copy { + from file("src/main/resources/jpa/investor/persistence.xml") + into "${source}/META-INF/" + } + javaexec { + description = 'Performs EclipseLink static weaving of entity classes' + def target = source + main 'org.eclipse.persistence.tools.weaving.jpa.StaticWeave' + args '-persistenceinfo', source, source, target + classpath sourceSets.main.runtimeClasspath + } + delete { + delete "${source}/META-INF/persistence.xml" + } } configurations { @@ -97,6 +85,10 @@ eclipse { } } +/* http://stackoverflow.com/questions/19653311/jpa-repository-works-in-idea-and-production-but-not-in-gradle */ +sourceSets.main.output.resourcesDir = sourceSets.main.java.classesDirectory +sourceSets.test.output.resourcesDir = sourceSets.test.java.classesDirectory + if (!(project.hasProperty('env') && project.getProperty('env') == 'dev')) { sourceSets { test { diff --git a/fineract-investor/src/main/resources/META-INF/persistence.xml b/fineract-investor/src/main/resources/jpa/investor/persistence.xml similarity index 100% rename from fineract-investor/src/main/resources/META-INF/persistence.xml rename to fineract-investor/src/main/resources/jpa/investor/persistence.xml diff --git a/fineract-loan/build.gradle b/fineract-loan/build.gradle index 5d333cbadf..33b087fafd 100644 --- a/fineract-loan/build.gradle +++ b/fineract-loan/build.gradle @@ -21,36 +21,23 @@ description = 'Fineract Loan' apply plugin: 'java' apply plugin: 'eclipse' -tasks.register('staticWeaveJpa', JavaExec) { - group = "build" - description = "Performs EclipseLink static weaving of entity classes" - - dependsOn classes - - def classesDir = file("$buildDir/classes/java/main") - def metaInf = new File(classesDir, "META-INF") - metaInf.mkdirs() - +compileJava.doLast { + def mainSS = sourceSets.main + def source = mainSS.java.classesDirectory.get() copy { - from "src/main/resources/jpa/loan/persistence.xml" - into "$buildDir/classes/java/main/META-INF" + from file("src/main/resources/jpa/loan/persistence.xml") + into "${source}/META-INF/" + } + javaexec { + description = 'Performs EclipseLink static weaving of entity classes' + def target = source + main 'org.eclipse.persistence.tools.weaving.jpa.StaticWeave' + args '-persistenceinfo', source, source, target + classpath sourceSets.main.runtimeClasspath + } + delete { + delete "${source}/META-INF/persistence.xml" } - - mainClass.set('org.eclipse.persistence.tools.weaving.jpa.StaticWeave') - classpath = sourceSets.main.runtimeClasspath - args '-persistenceinfo', classesDir.absolutePath, classesDir.absolutePath, classesDir.absolutePath -} - -staticWeaveJpa.doLast { - delete "${sourceSets.main.output.classesDirs.asPath}/META-INF/persistence.xml" -} - -tasks.named('classes') { - finalizedBy staticWeaveJpa -} - -compileJava { - dependsOn ':fineract-avro-schemas:buildJavaSdk' } // Configuration for Swagger documentation generation task @@ -104,6 +91,10 @@ eclipse { } } +/* http://stackoverflow.com/questions/19653311/jpa-repository-works-in-idea-and-production-but-not-in-gradle */ +sourceSets.main.output.resourcesDir = sourceSets.main.java.classesDirectory +sourceSets.test.output.resourcesDir = sourceSets.test.java.classesDirectory + if (!(project.hasProperty('env') && project.getProperty('env') == 'dev')) { sourceSets { test { @@ -113,9 +104,3 @@ if (!(project.hasProperty('env') && project.getProperty('env') == 'dev')) { } } } - -tasks.named('processResources') { - from('src/main/resources') - into sourceSets.main.java.classesDirectory - outputs.upToDateWhen { false } -} diff --git a/fineract-loan/src/main/resources/META-INF/persistence.xml b/fineract-loan/src/main/resources/jpa/loan/persistence.xml similarity index 100% rename from fineract-loan/src/main/resources/META-INF/persistence.xml rename to fineract-loan/src/main/resources/jpa/loan/persistence.xml diff --git a/fineract-progressive-loan/build.gradle b/fineract-progressive-loan/build.gradle index 9017f54b4f..20e9f20b4b 100644 --- a/fineract-progressive-loan/build.gradle +++ b/fineract-progressive-loan/build.gradle @@ -21,35 +21,23 @@ description = 'Fineract Progressive Loan' apply plugin: 'java' apply plugin: 'eclipse' -tasks.register('staticWeaveJpa', JavaExec) { - group = "build" - description = "Performs EclipseLink static weaving of entity classes" - - dependsOn classes - - def classesDir = file("$buildDir/classes/java/main") - - mainClass.set('org.eclipse.persistence.tools.weaving.jpa.StaticWeave') - classpath = sourceSets.main.runtimeClasspath - args '-persistenceinfo', classesDir.absolutePath, classesDir.absolutePath, classesDir.absolutePath -} - -staticWeaveJpa.doLast { - delete "${sourceSets.main.output.classesDirs.asPath}/META-INF/persistence.xml" -} - -tasks.named('classes') { - finalizedBy staticWeaveJpa -} - -tasks.named('processResources') { - from('src/main/resources') - into sourceSets.main.java.classesDirectory - outputs.upToDateWhen { false } -} - -compileJava { - dependsOn ':fineract-avro-schemas:buildJavaSdk' +compileJava.doLast { + def mainSS = sourceSets.main + def source = mainSS.java.classesDirectory.get() + copy { + from file("src/main/resources/jpa/progressiveloan/persistence.xml") + into "${source}/META-INF/" + } + javaexec { + description = 'Performs EclipseLink static weaving of entity classes' + def target = source + main 'org.eclipse.persistence.tools.weaving.jpa.StaticWeave' + args '-persistenceinfo', source, source, target + classpath sourceSets.main.runtimeClasspath + } + delete { + delete "${source}/META-INF/persistence.xml" + } } configurations { @@ -97,6 +85,10 @@ eclipse { } } +/* http://stackoverflow.com/questions/19653311/jpa-repository-works-in-idea-and-production-but-not-in-gradle */ +sourceSets.main.output.resourcesDir = sourceSets.main.java.classesDirectory +sourceSets.test.output.resourcesDir = sourceSets.test.java.classesDirectory + if (!(project.hasProperty('env') && project.getProperty('env') == 'dev')) { sourceSets { test { diff --git a/fineract-progressive-loan/src/main/resources/META-INF/persistence.xml b/fineract-progressive-loan/src/main/resources/jpa/progressiveloan/persistence.xml similarity index 100% rename from fineract-progressive-loan/src/main/resources/META-INF/persistence.xml rename to fineract-progressive-loan/src/main/resources/jpa/progressiveloan/persistence.xml diff --git a/fineract-provider/build.gradle b/fineract-provider/build.gradle index 8c7bfe5360..9606ce545b 100644 --- a/fineract-provider/build.gradle +++ b/fineract-provider/build.gradle @@ -30,46 +30,30 @@ apply plugin: 'se.thinkcode.cucumber-runner' check.dependsOn('cucumber') -tasks.register('staticWeaveJpa', JavaExec) { - group = "build" - description = "Performs EclipseLink static weaving of entity classes" - - dependsOn classes - - def classesDir = file("$buildDir/classes/java/main") - - mainClass.set('org.eclipse.persistence.tools.weaving.jpa.StaticWeave') - classpath = sourceSets.main.runtimeClasspath - args '-persistenceinfo', classesDir.absolutePath, classesDir.absolutePath, classesDir.absolutePath -} - -staticWeaveJpa.doLast { - delete "${sourceSets.main.output.classesDirs.asPath}/META-INF/persistence.xml" -} - -tasks.named('classes') { - finalizedBy staticWeaveJpa -} - -tasks.named('processResources') { - from('src/main/resources') - into sourceSets.main.java.classesDirectory - outputs.upToDateWhen { false } -} - -tasks.named('staticWeaveJpa') { - mustRunAfter tasks.named('resolve') -} - -compileJava { - dependsOn ':fineract-avro-schemas:buildJavaSdk' +compileJava.doLast { + def mainSS = sourceSets.main + def source = mainSS.java.classesDirectory.get() + copy { + from file("src/main/resources/jpa/persistence.xml") + into "${source}/META-INF/" + } + javaexec { + description = 'Performs EclipseLink static weaving of entity classes' + def target = source + main 'org.eclipse.persistence.tools.weaving.jpa.StaticWeave' + args '-persistenceinfo', source, source, target + classpath sourceSets.main.runtimeClasspath + } + delete { + delete "${source}/META-INF/persistence.xml" + } } // Configuration for Swagger documentation generation task // https://github.com/swagger-api/swagger-core/tree/master/modules/swagger-gradle-plugin import org.apache.tools.ant.filters.ReplaceTokens -tasks.register('prepareInputYaml') { +task prepareInputYaml { outputs.file("${buildDir}/tmp/swagger/fineract-input.yaml") doLast { @@ -155,6 +139,10 @@ eclipse { } } +/* http://stackoverflow.com/questions/19653311/jpa-repository-works-in-idea-and-production-but-not-in-gradle */ +sourceSets.main.output.resourcesDir = sourceSets.main.java.classesDirectory +sourceSets.test.output.resourcesDir = sourceSets.test.java.classesDirectory + if (!(project.hasProperty('env') && project.getProperty('env') == 'dev')) { sourceSets { test { @@ -188,57 +176,57 @@ configurations.driver.each {File file -> loader.addURL(file.toURL()) } -tasks.register('createDB') { - description = "Creates the MariaDB Database. Needs database name to be passed (like: -PdbName=someDBname)" +task createDB { + description= "Creates the MariaDB Database. Needs database name to be passed (like: -PdbName=someDBname)" doLast { - def sql = Sql.newInstance('jdbc:mariadb://localhost:3306/', mysqlUser, mysqlPassword, 'org.mariadb.jdbc.Driver') - sql.execute('CREATE DATABASE ' + "`$dbName` CHARACTER SET utf8mb4") + def sql = Sql.newInstance( 'jdbc:mariadb://localhost:3306/', mysqlUser, mysqlPassword, 'org.mariadb.jdbc.Driver' ) + sql.execute( 'CREATE DATABASE '+"`$dbName` CHARACTER SET utf8mb4" ) } } -tasks.register('dropDB') { - description = "Drops the specified MariaDB database. The database name has to be passed (like: -PdbName=someDBname)" +task dropDB { + description= "Drops the specified MariaDB database. The database name has to be passed (like: -PdbName=someDBname)" doLast { - def sql = Sql.newInstance('jdbc:mariadb://localhost:3306/', mysqlUser, mysqlPassword, 'org.mariadb.jdbc.Driver') - sql.execute('DROP DATABASE ' + "`$dbName`") + def sql = Sql.newInstance( 'jdbc:mariadb://localhost:3306/', mysqlUser, mysqlPassword, 'org.mariadb.jdbc.Driver' ) + sql.execute( 'DROP DATABASE '+"`$dbName`") } } -tasks.register('createPGDB') { - description = "Creates the PostgreSQL Database. Needs database name to be passed (like: -PdbName=someDBname)" +task createPGDB { + description= "Creates the PostgreSQL Database. Needs database name to be passed (like: -PdbName=someDBname)" doLast { - def sql = Sql.newInstance('jdbc:postgresql://localhost:5432/', pgUser, pgPassword, 'org.postgresql.Driver') - sql.execute('create database ' + "$dbName") + def sql = Sql.newInstance( 'jdbc:postgresql://localhost:5432/', pgUser, pgPassword, 'org.postgresql.Driver' ) + sql.execute( 'create database '+"$dbName" ) } } -tasks.register('dropPGDB') { - description = "Drops the specified PostgreSQL database. The database name has to be passed (like: -PdbName=someDBname)" +task dropPGDB { + description= "Drops the specified PostgreSQL database. The database name has to be passed (like: -PdbName=someDBname)" doLast { - def sql = Sql.newInstance('jdbc:postgresql://localhost:5432/', pgUser, pgPassword, 'org.postgresql.Driver') - sql.execute('DROP DATABASE ' + "$dbName") + def sql = Sql.newInstance( 'jdbc:postgresql://localhost:5432/', pgUser, pgPassword, 'org.postgresql.Driver' ) + sql.execute( 'DROP DATABASE '+ "$dbName") } } -tasks.register('createMySQLDB') { - description = "Creates the MySQL Database. Needs database name to be passed (like: -PdbName=someDBname)" +task createMySQLDB { + description= "Creates the MySQL Database. Needs database name to be passed (like: -PdbName=someDBname)" doLast { - def sql = Sql.newInstance('jdbc:mysql://localhost:3306/', mysqlUser, mysqlPassword, 'com.mysql.cj.jdbc.Driver') - sql.execute('CREATE DATABASE ' + "`$dbName` CHARACTER SET utf8mb4") + def sql = Sql.newInstance( 'jdbc:mysql://localhost:3306/', mysqlUser, mysqlPassword, 'com.mysql.cj.jdbc.Driver' ) + sql.execute( 'CREATE DATABASE '+"`$dbName` CHARACTER SET utf8mb4" ) } } -tasks.register('dropMySQLDB') { - description = "Drops the specified MySQL database. The database name has to be passed (like: -PdbName=someDBname)" +task dropMySQLDB { + description= "Drops the specified MySQL database. The database name has to be passed (like: -PdbName=someDBname)" doLast { - def sql = Sql.newInstance('jdbc:mysql://localhost:3306/', mysqlUser, mysqlPassword, 'com.mysql.cj.jdbc.Driver') - sql.execute('DROP DATABASE ' + "`$dbName`") + def sql = Sql.newInstance( 'jdbc:mysql://localhost:3306/', mysqlUser, mysqlPassword, 'com.mysql.cj.jdbc.Driver' ) + sql.execute( 'DROP DATABASE '+"`$dbName`") } } -tasks.register('setBlankPassword') { +task setBlankPassword { doLast { - def sql = Sql.newInstance('jdbc:mariadb://localhost:3306/', mysqlUser, mysqlPassword, 'org.mariadb.jdbc.Driver') + def sql = Sql.newInstance( 'jdbc:mariadb://localhost:3306/', mysqlUser, mysqlPassword, 'org.mariadb.jdbc.Driver' ) sql.execute('USE `fineract_tenants`') sql.execute('UPDATE fineract_tenants.tenants SET schema_server = \'localhost\', schema_server_port = \'3306\', schema_username = \'mifos\', schema_password = \'mysql\' WHERE id=1;') } @@ -323,12 +311,12 @@ jib { } } -tasks.register('migrateDatabase') { +task migrateDatabase { doFirst { - println 'Executing liquibase database migration to version ' + "$dbVersion" + println 'Executing liquibase database migration to version '+"$dbVersion" - def dbUrl = 'jdbc:' + "$dbType" + '://' + "$dbHost" + ':' + "$dbPort" + '/' + "$dbName" - def changeLogFilePath = 'fineract-provider/src/main/resources/db/changelog/tenant/upgrades/0000_upgrade_to_' + "$dbVersion" + '.xml' + def dbUrl='jdbc:'+"$dbType"+'://'+"$dbHost"+':'+"$dbPort"+'/'+"$dbName" + def changeLogFilePath='fineract-provider/src/main/resources/db/changelog/tenant/upgrades/0000_upgrade_to_'+"$dbVersion"+'.xml' liquibase { activities { @@ -384,20 +372,20 @@ javadoc { dependsOn resolve } -tasks.register('devRun', org.springframework.boot.gradle.tasks.run.BootRun) { +task devRun(type: org.springframework.boot.gradle.tasks.run.BootRun) { description = 'Runs the application quickly for development by skipping quality checks' group = 'Application' // Configure the build to skip quality checks gradle.taskGraph.whenReady { graph -> if (graph.hasTask(devRun)) { - tasks.matching { task -> + tasks.matching { task -> task.name in ['checkstyle', 'checkstyleMain', 'checkstyleTest', - 'spotlessCheck', 'spotlessApply', - 'spotbugsMain', 'spotbugsTest', - 'javadoc', 'javadocJar', - 'modernizer', - 'testClasses'] + 'spotlessCheck', 'spotlessApply', + 'spotbugsMain', 'spotbugsTest', + 'javadoc', 'javadocJar', + 'modernizer', + 'testClasses'] }.configureEach { enabled = false } @@ -412,7 +400,7 @@ tasks.register('devRun', org.springframework.boot.gradle.tasks.run.BootRun) { classpath = bootRun.classpath mainClass = bootRun.mainClass jvmArgs = bootRun.jvmArgs - + doFirst { println "Running in development mode - quality checks are disabled" } diff --git a/fineract-provider/src/main/resources/application.properties b/fineract-provider/src/main/resources/application.properties index a26a80d282..33642742e4 100644 --- a/fineract-provider/src/main/resources/application.properties +++ b/fineract-provider/src/main/resources/application.properties @@ -434,7 +434,7 @@ springdoc.pathsToMatch=/api/** springdoc.use-management-port=${SPRINGDOC_USE_MANAGEMENT_PORT:false} springdoc.show-actuator=${SPRINGDOC_SHOW_ACTUATOR:false} -spring.web.resources.static-locations=classpath:/static/, /swagger/ +spring.web.resources.static-locations=classpath:/static/ spring.main.allow-bean-definition-overriding=true spring.task.scheduling.pool.size=4 diff --git a/fineract-provider/src/main/resources/META-INF/persistence.xml b/fineract-provider/src/main/resources/jpa/persistence.xml similarity index 100% rename from fineract-provider/src/main/resources/META-INF/persistence.xml rename to fineract-provider/src/main/resources/jpa/persistence.xml diff --git a/fineract-rates/build.gradle b/fineract-rates/build.gradle index 36e88f449e..279cd9d991 100644 --- a/fineract-rates/build.gradle +++ b/fineract-rates/build.gradle @@ -21,35 +21,23 @@ description = 'Fineract Rates' apply plugin: 'java' apply plugin: 'eclipse' -tasks.register('staticWeaveJpa', JavaExec) { - group = "build" - description = "Performs EclipseLink static weaving of entity classes" - - dependsOn classes - - def classesDir = file("$buildDir/classes/java/main") - - mainClass.set('org.eclipse.persistence.tools.weaving.jpa.StaticWeave') - classpath = sourceSets.main.runtimeClasspath - args '-persistenceinfo', classesDir.absolutePath, classesDir.absolutePath, classesDir.absolutePath -} - -staticWeaveJpa.doLast { - delete "${sourceSets.main.output.classesDirs.asPath}/META-INF/persistence.xml" -} - -tasks.named('classes') { - finalizedBy staticWeaveJpa -} - -tasks.named('processResources') { - from('src/main/resources') - into sourceSets.main.java.classesDirectory - outputs.upToDateWhen { false } -} - -compileJava { - dependsOn ':fineract-avro-schemas:buildJavaSdk' +compileJava.doLast { + def mainSS = sourceSets.main + def source = mainSS.java.classesDirectory.get() + copy { + from file("src/main/resources/jpa/rates/persistence.xml") + into "${source}/META-INF/" + } + javaexec { + description = 'Performs EclipseLink static weaving of entity classes' + def target = source + main 'org.eclipse.persistence.tools.weaving.jpa.StaticWeave' + args '-persistenceinfo', source, source, target + classpath sourceSets.main.runtimeClasspath + } + delete { + delete "${source}/META-INF/persistence.xml" + } } // Configuration for Swagger documentation generation task @@ -103,6 +91,10 @@ eclipse { } } +/* http://stackoverflow.com/questions/19653311/jpa-repository-works-in-idea-and-production-but-not-in-gradle */ +sourceSets.main.output.resourcesDir = sourceSets.main.java.classesDirectory +sourceSets.test.output.resourcesDir = sourceSets.test.java.classesDirectory + if (!(project.hasProperty('env') && project.getProperty('env') == 'dev')) { sourceSets { test { diff --git a/fineract-rates/src/main/resources/db/changelog/tenant/module/rates/module-changelog-master.xml b/fineract-rates/src/main/resources/jpa/rates/db/changelog/tenant/module/rates/module-changelog-master.xml similarity index 100% rename from fineract-rates/src/main/resources/db/changelog/tenant/module/rates/module-changelog-master.xml rename to fineract-rates/src/main/resources/jpa/rates/db/changelog/tenant/module/rates/module-changelog-master.xml diff --git a/fineract-rates/src/main/resources/META-INF/persistence.xml b/fineract-rates/src/main/resources/jpa/rates/persistence.xml similarity index 100% rename from fineract-rates/src/main/resources/META-INF/persistence.xml rename to fineract-rates/src/main/resources/jpa/rates/persistence.xml diff --git a/fineract-report/build.gradle b/fineract-report/build.gradle index 16e958dfec..f7239ebd4b 100644 --- a/fineract-report/build.gradle +++ b/fineract-report/build.gradle @@ -21,35 +21,23 @@ description = 'Fineract Report' apply plugin: 'java' apply plugin: 'eclipse' -tasks.register('staticWeaveJpa', JavaExec) { - group = "build" - description = "Performs EclipseLink static weaving of entity classes" - - dependsOn classes - - def classesDir = file("$buildDir/classes/java/main") - - mainClass.set('org.eclipse.persistence.tools.weaving.jpa.StaticWeave') - classpath = sourceSets.main.runtimeClasspath - args '-persistenceinfo', classesDir.absolutePath, classesDir.absolutePath, classesDir.absolutePath -} - -staticWeaveJpa.doLast { - delete "${sourceSets.main.output.classesDirs.asPath}/META-INF/persistence.xml" -} - -tasks.named('classes') { - finalizedBy staticWeaveJpa -} - -tasks.named('processResources') { - from('src/main/resources') - into sourceSets.main.java.classesDirectory - outputs.upToDateWhen { false } -} - -compileJava { - dependsOn ':fineract-avro-schemas:buildJavaSdk' +compileJava.doLast { + def mainSS = sourceSets.main + def source = mainSS.java.classesDirectory.get() + copy { + from file("src/main/resources/jpa/report/persistence.xml") + into "${source}/META-INF/" + } + javaexec { + description = 'Performs EclipseLink static weaving of entity classes' + def target = source + main 'org.eclipse.persistence.tools.weaving.jpa.StaticWeave' + args '-persistenceinfo', source, source, target + classpath sourceSets.main.runtimeClasspath + } + delete { + delete "${source}/META-INF/persistence.xml" + } } // Configuration for Swagger documentation generation task @@ -103,6 +91,10 @@ eclipse { } } +/* http://stackoverflow.com/questions/19653311/jpa-repository-works-in-idea-and-production-but-not-in-gradle */ +sourceSets.main.output.resourcesDir = sourceSets.main.java.classesDirectory +sourceSets.test.output.resourcesDir = sourceSets.test.java.classesDirectory + if (!(project.hasProperty('env') && project.getProperty('env') == 'dev')) { sourceSets { test { diff --git a/fineract-report/src/main/resources/META-INF/persistence.xml b/fineract-report/src/main/resources/jpa/report/persistence.xml similarity index 100% rename from fineract-report/src/main/resources/META-INF/persistence.xml rename to fineract-report/src/main/resources/jpa/report/persistence.xml diff --git a/fineract-savings/build.gradle b/fineract-savings/build.gradle index 7e6b6eb975..df6fa6f3a7 100644 --- a/fineract-savings/build.gradle +++ b/fineract-savings/build.gradle @@ -21,35 +21,23 @@ description = 'Fineract Savings' apply plugin: 'java' apply plugin: 'eclipse' -tasks.register('staticWeaveJpa', JavaExec) { - group = "build" - description = "Performs EclipseLink static weaving of entity classes" - - dependsOn classes - - def classesDir = file("$buildDir/classes/java/main") - - mainClass.set('org.eclipse.persistence.tools.weaving.jpa.StaticWeave') - classpath = sourceSets.main.runtimeClasspath - args '-persistenceinfo', classesDir.absolutePath, classesDir.absolutePath, classesDir.absolutePath -} - -staticWeaveJpa.doLast { - delete "${sourceSets.main.output.classesDirs.asPath}/META-INF/persistence.xml" -} - -tasks.named('classes') { - finalizedBy staticWeaveJpa -} - -tasks.named('processResources') { - from('src/main/resources') - into sourceSets.main.java.classesDirectory - outputs.upToDateWhen { false } -} - -compileJava { - dependsOn ':fineract-avro-schemas:buildJavaSdk' +compileJava.doLast { + def mainSS = sourceSets.main + def source = mainSS.java.classesDirectory.get() + copy { + from file("src/main/resources/jpa/savings/persistence.xml") + into "${source}/META-INF/" + } + javaexec { + description = 'Performs EclipseLink static weaving of entity classes' + def target = source + main 'org.eclipse.persistence.tools.weaving.jpa.StaticWeave' + args '-persistenceinfo', source, source, target + classpath sourceSets.main.runtimeClasspath + } + delete { + delete "${source}/META-INF/persistence.xml" + } } // Configuration for Swagger documentation generation task @@ -103,6 +91,10 @@ eclipse { } } +/* http://stackoverflow.com/questions/19653311/jpa-repository-works-in-idea-and-production-but-not-in-gradle */ +sourceSets.main.output.resourcesDir = sourceSets.main.java.classesDirectory +sourceSets.test.output.resourcesDir = sourceSets.test.java.classesDirectory + if (!(project.hasProperty('env') && project.getProperty('env') == 'dev')) { sourceSets { test { diff --git a/fineract-savings/src/main/resources/META-INF/persistence.xml b/fineract-savings/src/main/resources/jpa/savings/persistence.xml similarity index 100% rename from fineract-savings/src/main/resources/META-INF/persistence.xml rename to fineract-savings/src/main/resources/jpa/savings/persistence.xml diff --git a/fineract-tax/build.gradle b/fineract-tax/build.gradle index a03a028871..1d0844df62 100644 --- a/fineract-tax/build.gradle +++ b/fineract-tax/build.gradle @@ -21,35 +21,23 @@ description = 'Fineract Taxes' apply plugin: 'java' apply plugin: 'eclipse' -tasks.register('staticWeaveJpa', JavaExec) { - group = "build" - description = "Performs EclipseLink static weaving of entity classes" - - dependsOn classes - - def classesDir = file("$buildDir/classes/java/main") - - mainClass.set('org.eclipse.persistence.tools.weaving.jpa.StaticWeave') - classpath = sourceSets.main.runtimeClasspath - args '-persistenceinfo', classesDir.absolutePath, classesDir.absolutePath, classesDir.absolutePath -} - -staticWeaveJpa.doLast { - delete "${sourceSets.main.output.classesDirs.asPath}/META-INF/persistence.xml" -} - -tasks.named('classes') { - finalizedBy staticWeaveJpa -} - -tasks.named('processResources') { - from('src/main/resources') - into sourceSets.main.java.classesDirectory - outputs.upToDateWhen { false } -} - -compileJava { - dependsOn ':fineract-avro-schemas:buildJavaSdk' +compileJava.doLast { + def mainSS = sourceSets.main + def source = mainSS.java.classesDirectory.get() + copy { + from file("src/main/resources/jpa/taxes/persistence.xml") + into "${source}/META-INF/" + } + javaexec { + description = 'Performs EclipseLink static weaving of entity classes' + def target = source + main 'org.eclipse.persistence.tools.weaving.jpa.StaticWeave' + args '-persistenceinfo', source, source, target + classpath sourceSets.main.runtimeClasspath + } + delete { + delete "${source}/META-INF/persistence.xml" + } } // Configuration for Swagger documentation generation task @@ -103,6 +91,10 @@ eclipse { } } +/* http://stackoverflow.com/questions/19653311/jpa-repository-works-in-idea-and-production-but-not-in-gradle */ +sourceSets.main.output.resourcesDir = sourceSets.main.java.classesDirectory +sourceSets.test.output.resourcesDir = sourceSets.test.java.classesDirectory + if (!(project.hasProperty('env') && project.getProperty('env') == 'dev')) { sourceSets { test { diff --git a/fineract-tax/src/main/resources/META-INF/persistence.xml b/fineract-tax/src/main/resources/jpa/taxes/persistence.xml similarity index 100% rename from fineract-tax/src/main/resources/META-INF/persistence.xml rename to fineract-tax/src/main/resources/jpa/taxes/persistence.xml diff --git a/fineract-war/build.gradle b/fineract-war/build.gradle index 0f41b44f85..93b12e4226 100644 --- a/fineract-war/build.gradle +++ b/fineract-war/build.gradle @@ -91,13 +91,13 @@ dependencies { implementation project(':fineract-provider') } -tasks.withType(Tar).configureEach { +tasks.withType(Tar) { compression Compression.GZIP archiveExtension = 'tar.gz' - + // Enable caching for all tar tasks outputs.cacheIf { true } - + // Ensure reproducible output preserveFileTimestamps = false reproducibleFileOrder = true
