diff --git a/mifosng-provider/build.gradle b/mifosng-provider/build.gradle index 88c339428..86a51e7b6 100644 --- a/mifosng-provider/build.gradle +++ b/mifosng-provider/build.gradle @@ -24,6 +24,7 @@ apply plugin: 'eclipse' apply plugin: 'idea' apply plugin: 'tomcat' apply plugin: 'project-report' +apply plugin: 'java' /* define the valid syntax level for source files */ sourceCompatibility = JavaVersion.VERSION_1_7 @@ -56,98 +57,11 @@ configurations { runtime all*.exclude group: 'commons-logging' } - -dependencies { - def tomcatVersion = '7.0.54' - tomcat "org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}", - "org.apache.tomcat.embed:tomcat-embed-logging-log4j:${tomcatVersion}" // NOT tomcat-embed-logging-juli (http://stackoverflow.com/questions/23963049/classcircularityerror-java-util-logging-logrecord-running-gradle-webapp-with-ja) - tomcat("org.apache.tomcat.embed:tomcat-embed-jasper:${tomcatVersion}") { - exclude group: 'org.eclipse.jdt.core.compiler', module: 'ecj' - } - tomcat "org.apache.tomcat:tomcat-dbcp:${tomcatVersion}" - - providedRuntime("org.springframework.boot:spring-boot-starter-tomcat") - - providedCompile( -// [group: 'javax.servlet', name: 'servlet-api', version: '2.5'], - ) - - compile( - [group: 'ch.vorburger.mariaDB4j', name: 'mariaDB4j', version: '2.1.1'], - - [group: 'org.springframework.boot', name: 'spring-boot-starter-web', version: springBootVersion], - [group: 'org.springframework.boot', name: 'spring-boot-starter-data-jpa', version: springBootVersion], - [group: 'org.springframework.boot', name: 'spring-boot-starter-security', version: springBootVersion], - - [group: 'org.springframework', name: 'spring-context-support', version: springVersion], - - [group: 'javax.ws.rs', name: 'jsr311-api', version: '1.1.1'], - [group: 'com.sun.jersey', name: 'jersey-core', version: jerseyVersion], - [group: 'com.sun.jersey', name: 'jersey-servlet', version: jerseyVersion], - [group: 'com.sun.jersey', name: 'jersey-server', version: jerseyVersion], - [group: 'com.sun.jersey', name: 'jersey-json', version: jerseyVersion], - [group: 'com.sun.jersey.contribs', name: 'jersey-spring', version: jerseyVersion], - [group: 'com.sun.jersey.contribs', name: 'jersey-multipart', version: jerseyVersion], - - [group: 'com.squareup.retrofit', name: 'retrofit', version: '1.6.1'], - [group: 'com.squareup.okhttp', name: 'okhttp', version: '2.0.0'], - [group: 'com.squareup.okhttp', name: 'okhttp-urlconnection', version: '2.0.0'], - - - [group: 'com.google.code.gson', name: 'gson', version: '2.2.4'], - [group: 'com.google.guava', name: 'guava', version: '15.0'], - - [group: 'joda-time', name: 'joda-time', version: '2.4'], - [group: 'net.sourceforge.javacsv', name: 'javacsv', version: '2.0'], - [group: 'org.apache.commons', name: 'commons-email', version: '1.3.3'], - [group: 'org.apache.commons', name: 'commons-lang3', version: '3.3.2'], - - // no slf4j & logback here (anymore), as spring-boot-starter-logging already brings this now, better assembled (log4j-over-slf4j was originally forgotten here) - - [group: 'mysql', name: 'mysql-connector-java', version: '5.1.27'], - [group: 'org.apache.tomcat', name: 'tomcat-jdbc', version: tomcatVersion], - - [group: 'pentaho-reporting-engine', name: 'pentaho-reporting-engine-classic-core', version: '3.9.1.1'], - [group: 'pentaho-reporting-engine', name: 'pentaho-reporting-engine-classic-extensions', version: '3.9.1-GA'], - [group: 'pentaho-reporting-engine', name: 'pentaho-reporting-engine-classic-extensions-scripting', version: '3.9.1-GA'], - [group: 'pentaho-reporting-engine', name: 'pentaho-reporting-engine-wizard-core', version: '3.9.1-GA'], - [group: 'pentaho-report-designer', name: 'pentaho-reporting-engine-wizard-xul', version: '3.9.1-GA'], - - [group: 'pentaho-library', name: 'libbase', version: '1.2.8'], - [group: 'pentaho-library',name: 'libdocbundle', version: '1.2.8'], - [group: 'pentaho-library',name: 'libfonts', version: '1.2.8'], - [group: 'pentaho-library',name: 'libformat', version: '1.2.8'], - [group: 'pentaho-library',name: 'libformula', version: '1.2.8'], - [group: 'pentaho-library',name: 'libloader', version: '1.2.8'], - [group: 'pentaho-library',name: 'librepository', version: '1.2.8'], - [group: 'pentaho-library',name: 'libserializer', version: '1.2.8'], - [group: 'pentaho-library',name: 'libsparkline', version: '1.2.8'], - [group: 'pentaho-library',name: 'libxml', version: '1.2.8'], - - [group: 'org.apache.poi',name: 'poi', version: '3.9'], - [group: 'org.apache.poi',name: 'poi-ooxml', version: '3.9'], - [group: 'org.apache.poi',name: 'poi-ooxml-schemas', version: '3.9'], - - [group: 'com.lowagie', name: 'itext', version: '2.1.7'], - [group: 'com.lowagie', name: 'itext-rtf', version: '2.1.7'], - [group: 'org.mnode.ical4j', name: 'ical4j', version: '1.0.4'], - [group: 'com.googlecode.flyway', name: 'flyway-core', version: '2.1.1'], - [group: 'org.quartz-scheduler', name: 'quartz', version: '2.1.7'], - [group: 'com.amazonaws', name: 'aws-java-sdk', version: '1.2.1'], - [group: 'net.sf.ehcache', name: 'ehcache', version: '2.7.2'], - [group: 'com.github.spullara.mustache.java', name: 'compiler', version: '0.8.12'], - [group: 'com.jayway.jsonpath', name: 'json-path', version: '0.9.1'], - - // Although Mifos (at the time of writing) doesn't have any compile time dep. on this, - // it's useful to have this for the Spring Boot TestRestTemplate http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#boot-features-rest-templates-test-utility - [group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.3.5'] - ) - testCompile 'junit:junit:4.11', - 'junit:junit-dep:4.11', - 'org.mockito:mockito-core:1.9.5', - 'com.jayway.restassured:rest-assured:2.3.3', - [group: 'org.springframework.boot', name: 'spring-boot-starter-test', version: springBootVersion] - +/* Pick up dependencies based on the environemnt, defaults to production */ +if (project.hasProperty('env') && project.getProperty('env') == 'dev') { + apply from: 'dev-dependencies.gradle' +} else { + apply from: 'dependencies.gradle' } task dist(type:Zip){ @@ -234,8 +148,21 @@ tomcatRunWar { sourceSets.main.output.resourcesDir = sourceSets.main.output.classesDir sourceSets.test.output.resourcesDir = sourceSets.test.output.classesDir +/* Exclude maria db and embedded tomcat related files for non dev builds */ +if (!(project.hasProperty('env') && project.getProperty('env') == 'dev')) { sourceSets { - integrationTest { + main { + java { + exclude '**/Server*' + exclude '**/MariaDB4j*' + exclude '**/EmbeddedTomcatWithSSLConfiguration.java' + } + } +} +} + +sourceSets { + integrationTest { compileClasspath += main.output + test.output runtimeClasspath += main.output + test.output } diff --git a/mifosng-provider/dependencies.gradle b/mifosng-provider/dependencies.gradle new file mode 100644 index 000000000..72e46c461 --- /dev/null +++ b/mifosng-provider/dependencies.gradle @@ -0,0 +1,92 @@ +dependencies { + def tomcatVersion = '7.0.54' + tomcat "org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}", + "org.apache.tomcat.embed:tomcat-embed-logging-log4j:${tomcatVersion}" // NOT tomcat-embed-logging-juli (http://stackoverflow.com/questions/23963049/classcircularityerror-java-util-logging-logrecord-running-gradle-webapp-with-ja) + tomcat("org.apache.tomcat.embed:tomcat-embed-jasper:${tomcatVersion}") { + exclude group: 'org.eclipse.jdt.core.compiler', module: 'ecj' + } + tomcat "org.apache.tomcat:tomcat-dbcp:${tomcatVersion}" + + providedRuntime("org.springframework.boot:spring-boot-starter-tomcat") + + providedCompile( +// [group: 'javax.servlet', name: 'servlet-api', version: '2.5'], + ) + + compile( + // [group: 'ch.vorburger.mariaDB4j', name: 'mariaDB4j', version: '2.1.1'], + + [group: 'org.springframework.boot', name: 'spring-boot-starter-web', version: springBootVersion], + [group: 'org.springframework.boot', name: 'spring-boot-starter-data-jpa', version: springBootVersion], + [group: 'org.springframework.boot', name: 'spring-boot-starter-security', version: springBootVersion], + + [group: 'org.springframework', name: 'spring-context-support', version: springVersion], + + [group: 'javax.ws.rs', name: 'jsr311-api', version: '1.1.1'], + [group: 'com.sun.jersey', name: 'jersey-core', version: jerseyVersion], + [group: 'com.sun.jersey', name: 'jersey-servlet', version: jerseyVersion], + [group: 'com.sun.jersey', name: 'jersey-server', version: jerseyVersion], + [group: 'com.sun.jersey', name: 'jersey-json', version: jerseyVersion], + [group: 'com.sun.jersey.contribs', name: 'jersey-spring', version: jerseyVersion], + [group: 'com.sun.jersey.contribs', name: 'jersey-multipart', version: jerseyVersion], + + [group: 'com.squareup.retrofit', name: 'retrofit', version: '1.6.1'], + [group: 'com.squareup.okhttp', name: 'okhttp', version: '2.0.0'], + [group: 'com.squareup.okhttp', name: 'okhttp-urlconnection', version: '2.0.0'], + + + [group: 'com.google.code.gson', name: 'gson', version: '2.2.4'], + [group: 'com.google.guava', name: 'guava', version: '15.0'], + + [group: 'joda-time', name: 'joda-time', version: '2.4'], + [group: 'net.sourceforge.javacsv', name: 'javacsv', version: '2.0'], + [group: 'org.apache.commons', name: 'commons-email', version: '1.3.3'], + [group: 'org.apache.commons', name: 'commons-lang3', version: '3.3.2'], + + // no slf4j & logback here (anymore), as spring-boot-starter-logging already brings this now, better assembled (log4j-over-slf4j was originally forgotten here) + + [group: 'mysql', name: 'mysql-connector-java', version: '5.1.27'], + // [group: 'org.apache.tomcat', name: 'tomcat-jdbc', version: tomcatVersion], + + [group: 'pentaho-reporting-engine', name: 'pentaho-reporting-engine-classic-core', version: '3.9.1.1'], + [group: 'pentaho-reporting-engine', name: 'pentaho-reporting-engine-classic-extensions', version: '3.9.1-GA'], + [group: 'pentaho-reporting-engine', name: 'pentaho-reporting-engine-classic-extensions-scripting', version: '3.9.1-GA'], + [group: 'pentaho-reporting-engine', name: 'pentaho-reporting-engine-wizard-core', version: '3.9.1-GA'], + [group: 'pentaho-report-designer', name: 'pentaho-reporting-engine-wizard-xul', version: '3.9.1-GA'], + + [group: 'pentaho-library', name: 'libbase', version: '1.2.8'], + [group: 'pentaho-library',name: 'libdocbundle', version: '1.2.8'], + [group: 'pentaho-library',name: 'libfonts', version: '1.2.8'], + [group: 'pentaho-library',name: 'libformat', version: '1.2.8'], + [group: 'pentaho-library',name: 'libformula', version: '1.2.8'], + [group: 'pentaho-library',name: 'libloader', version: '1.2.8'], + [group: 'pentaho-library',name: 'librepository', version: '1.2.8'], + [group: 'pentaho-library',name: 'libserializer', version: '1.2.8'], + [group: 'pentaho-library',name: 'libsparkline', version: '1.2.8'], + [group: 'pentaho-library',name: 'libxml', version: '1.2.8'], + + [group: 'org.apache.poi',name: 'poi', version: '3.9'], + [group: 'org.apache.poi',name: 'poi-ooxml', version: '3.9'], + [group: 'org.apache.poi',name: 'poi-ooxml-schemas', version: '3.9'], + + [group: 'com.lowagie', name: 'itext', version: '2.1.7'], + [group: 'com.lowagie', name: 'itext-rtf', version: '2.1.7'], + [group: 'org.mnode.ical4j', name: 'ical4j', version: '1.0.4'], + [group: 'com.googlecode.flyway', name: 'flyway-core', version: '2.1.1'], + [group: 'org.quartz-scheduler', name: 'quartz', version: '2.1.7'], + [group: 'com.amazonaws', name: 'aws-java-sdk', version: '1.2.1'], + [group: 'net.sf.ehcache', name: 'ehcache', version: '2.7.2'], + [group: 'com.github.spullara.mustache.java', name: 'compiler', version: '0.8.12'], + [group: 'com.jayway.jsonpath', name: 'json-path', version: '0.9.1'], + + // Although Mifos (at the time of writing) doesn't have any compile time dep. on this, + // it's useful to have this for the Spring Boot TestRestTemplate http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#boot-features-rest-templates-test-utility + [group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.3.5'] + ) + testCompile 'junit:junit:4.11', + 'junit:junit-dep:4.11', + 'org.mockito:mockito-core:1.9.5', + 'com.jayway.restassured:rest-assured:2.3.3', + [group: 'org.springframework.boot', name: 'spring-boot-starter-test', version: springBootVersion] + +} \ No newline at end of file diff --git a/mifosng-provider/dev-dependencies.gradle b/mifosng-provider/dev-dependencies.gradle new file mode 100644 index 000000000..9f7a76da1 --- /dev/null +++ b/mifosng-provider/dev-dependencies.gradle @@ -0,0 +1,92 @@ +dependencies { + def tomcatVersion = '7.0.54' + tomcat "org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}", + "org.apache.tomcat.embed:tomcat-embed-logging-log4j:${tomcatVersion}" // NOT tomcat-embed-logging-juli (http://stackoverflow.com/questions/23963049/classcircularityerror-java-util-logging-logrecord-running-gradle-webapp-with-ja) + tomcat("org.apache.tomcat.embed:tomcat-embed-jasper:${tomcatVersion}") { + exclude group: 'org.eclipse.jdt.core.compiler', module: 'ecj' + } + tomcat "org.apache.tomcat:tomcat-dbcp:${tomcatVersion}" + + providedRuntime("org.springframework.boot:spring-boot-starter-tomcat") + + providedCompile( +// [group: 'javax.servlet', name: 'servlet-api', version: '2.5'], + ) + + compile( + [group: 'ch.vorburger.mariaDB4j', name: 'mariaDB4j', version: '2.1.1'], + + [group: 'org.springframework.boot', name: 'spring-boot-starter-web', version: springBootVersion], + [group: 'org.springframework.boot', name: 'spring-boot-starter-data-jpa', version: springBootVersion], + [group: 'org.springframework.boot', name: 'spring-boot-starter-security', version: springBootVersion], + + [group: 'org.springframework', name: 'spring-context-support', version: springVersion], + + [group: 'javax.ws.rs', name: 'jsr311-api', version: '1.1.1'], + [group: 'com.sun.jersey', name: 'jersey-core', version: jerseyVersion], + [group: 'com.sun.jersey', name: 'jersey-servlet', version: jerseyVersion], + [group: 'com.sun.jersey', name: 'jersey-server', version: jerseyVersion], + [group: 'com.sun.jersey', name: 'jersey-json', version: jerseyVersion], + [group: 'com.sun.jersey.contribs', name: 'jersey-spring', version: jerseyVersion], + [group: 'com.sun.jersey.contribs', name: 'jersey-multipart', version: jerseyVersion], + + [group: 'com.squareup.retrofit', name: 'retrofit', version: '1.6.1'], + [group: 'com.squareup.okhttp', name: 'okhttp', version: '2.0.0'], + [group: 'com.squareup.okhttp', name: 'okhttp-urlconnection', version: '2.0.0'], + + + [group: 'com.google.code.gson', name: 'gson', version: '2.2.4'], + [group: 'com.google.guava', name: 'guava', version: '15.0'], + + [group: 'joda-time', name: 'joda-time', version: '2.4'], + [group: 'net.sourceforge.javacsv', name: 'javacsv', version: '2.0'], + [group: 'org.apache.commons', name: 'commons-email', version: '1.3.3'], + [group: 'org.apache.commons', name: 'commons-lang3', version: '3.3.2'], + + // no slf4j & logback here (anymore), as spring-boot-starter-logging already brings this now, better assembled (log4j-over-slf4j was originally forgotten here) + + [group: 'mysql', name: 'mysql-connector-java', version: '5.1.27'], + [group: 'org.apache.tomcat', name: 'tomcat-jdbc', version: tomcatVersion], + + [group: 'pentaho-reporting-engine', name: 'pentaho-reporting-engine-classic-core', version: '3.9.1.1'], + [group: 'pentaho-reporting-engine', name: 'pentaho-reporting-engine-classic-extensions', version: '3.9.1-GA'], + [group: 'pentaho-reporting-engine', name: 'pentaho-reporting-engine-classic-extensions-scripting', version: '3.9.1-GA'], + [group: 'pentaho-reporting-engine', name: 'pentaho-reporting-engine-wizard-core', version: '3.9.1-GA'], + [group: 'pentaho-report-designer', name: 'pentaho-reporting-engine-wizard-xul', version: '3.9.1-GA'], + + [group: 'pentaho-library', name: 'libbase', version: '1.2.8'], + [group: 'pentaho-library',name: 'libdocbundle', version: '1.2.8'], + [group: 'pentaho-library',name: 'libfonts', version: '1.2.8'], + [group: 'pentaho-library',name: 'libformat', version: '1.2.8'], + [group: 'pentaho-library',name: 'libformula', version: '1.2.8'], + [group: 'pentaho-library',name: 'libloader', version: '1.2.8'], + [group: 'pentaho-library',name: 'librepository', version: '1.2.8'], + [group: 'pentaho-library',name: 'libserializer', version: '1.2.8'], + [group: 'pentaho-library',name: 'libsparkline', version: '1.2.8'], + [group: 'pentaho-library',name: 'libxml', version: '1.2.8'], + + [group: 'org.apache.poi',name: 'poi', version: '3.9'], + [group: 'org.apache.poi',name: 'poi-ooxml', version: '3.9'], + [group: 'org.apache.poi',name: 'poi-ooxml-schemas', version: '3.9'], + + [group: 'com.lowagie', name: 'itext', version: '2.1.7'], + [group: 'com.lowagie', name: 'itext-rtf', version: '2.1.7'], + [group: 'org.mnode.ical4j', name: 'ical4j', version: '1.0.4'], + [group: 'com.googlecode.flyway', name: 'flyway-core', version: '2.1.1'], + [group: 'org.quartz-scheduler', name: 'quartz', version: '2.1.7'], + [group: 'com.amazonaws', name: 'aws-java-sdk', version: '1.2.1'], + [group: 'net.sf.ehcache', name: 'ehcache', version: '2.7.2'], + [group: 'com.github.spullara.mustache.java', name: 'compiler', version: '0.8.12'], + [group: 'com.jayway.jsonpath', name: 'json-path', version: '0.9.1'], + + // Although Mifos (at the time of writing) doesn't have any compile time dep. on this, + // it's useful to have this for the Spring Boot TestRestTemplate http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#boot-features-rest-templates-test-utility + [group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.3.5'] + ) + testCompile 'junit:junit:4.11', + 'junit:junit-dep:4.11', + 'org.mockito:mockito-core:1.9.5', + 'com.jayway.restassured:rest-assured:2.3.3', + [group: 'org.springframework.boot', name: 'spring-boot-starter-test', version: springBootVersion] + +} \ No newline at end of file