mirror of
https://gitee.com/jmix/cuba.git
synced 2024-12-01 10:47:37 +08:00
c81ea818c2
OAuth support Entities controller Changes in JSON EntitySerializationAPI EntityImportExport supports embedded entities and removes missing items of the COMPOSITION collections
793 lines
25 KiB
Groovy
793 lines
25 KiB
Groovy
/*
|
|
* Copyright (c) 2008-2016 Haulmont.
|
|
*
|
|
* 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.
|
|
*
|
|
*/
|
|
|
|
buildscript {
|
|
ext.cubaVersion = '6.3-SNAPSHOT'
|
|
ext.cubaVersion = rootProject.hasProperty('buildVersion') ? rootProject['buildVersion'] : cubaVersion
|
|
|
|
println("CUBA Platform Version ${ext.cubaVersion}")
|
|
println("")
|
|
|
|
repositories {
|
|
mavenLocal()
|
|
maven {
|
|
credentials {
|
|
username System.getenv('HAULMONT_REPOSITORY_USER') ?: 'cuba'
|
|
password System.getenv('HAULMONT_REPOSITORY_PASSWORD') ?: 'cuba123'
|
|
}
|
|
url System.getenv('HAULMONT_REPOSITORY_URL') ?: 'https://repo.cuba-platform.com/content/groups/work'
|
|
}
|
|
}
|
|
dependencies {
|
|
classpath group: 'com.haulmont.gradle', name: 'cuba-plugin', version: cubaVersion
|
|
}
|
|
}
|
|
|
|
apply(plugin: 'base')
|
|
apply(plugin: 'maven')
|
|
apply(plugin: 'idea')
|
|
apply(plugin: 'cuba')
|
|
|
|
cuba {
|
|
artifact {
|
|
group = 'com.haulmont.cuba'
|
|
version = project.cubaVersion.replace('-SNAPSHOT', '')
|
|
isSnapshot = project.cubaVersion.endsWith('-SNAPSHOT')
|
|
}
|
|
|
|
ide {
|
|
vcs = 'Git'
|
|
copyright = '''Copyright (c) 2008-$today.year Haulmont.
|
|
|
|
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.'''
|
|
}
|
|
}
|
|
|
|
def sharedLibModule = project(':cuba-shared-lib')
|
|
def globalModule = project(':cuba-global')
|
|
def coreModule = project(':cuba-core')
|
|
def clientModule = project(':cuba-client')
|
|
def guiModule = project(':cuba-gui')
|
|
def desktopModule = project(':cuba-desktop')
|
|
def portalModule = project(':cuba-portal')
|
|
def restApiModule = project(':cuba-rest-api')
|
|
def webAuthModule = project(':cuba-web-auth')
|
|
def webToolkitModule = project(':cuba-web-toolkit')
|
|
def webModule = project(':cuba-web')
|
|
|
|
def webModuleThemesModule = project(':cuba-web-themes')
|
|
def coreTestsModule = project(':cuba-core-tests')
|
|
def clientTestsModule = project(':cuba-client-tests')
|
|
|
|
apply from: "$rootProject.projectDir/lib.gradle"
|
|
|
|
def springVersion = '4.2.5.RELEASE'
|
|
def springSecurityVersion = '4.0.4.RELEASE'
|
|
|
|
def servletApi = 'org.apache.tomcat:tomcat-servlet-api:8.0.26'
|
|
def groovyArtifact = 'org.codehaus.groovy:groovy-all:2.4.4'
|
|
def poi = 'com.haulmont.thirdparty:poi:3.12.cuba.1'
|
|
def postgres = 'org.postgresql:postgresql:9.4-1201-jdbc41'
|
|
def hsqldb = 'org.hsqldb:hsqldb:2.3.3'
|
|
|
|
/* Shared web dependencies */
|
|
def commonsUpload = [group: 'commons-fileupload', name: 'commons-fileupload', version: '1.3.1']
|
|
|
|
configure([sharedLibModule, globalModule, coreModule, clientModule, guiModule,
|
|
webModule, desktopModule, portalModule, webAuthModule, restApiModule]) {
|
|
apply(plugin: 'java')
|
|
apply(plugin: 'idea')
|
|
apply(plugin: 'maven')
|
|
apply(plugin: 'checkstyle')
|
|
apply(plugin: 'findbugs')
|
|
apply(plugin: 'cuba')
|
|
|
|
dependencies {
|
|
compile('commons-logging:commons-logging:1.2')
|
|
compile(group: 'commons-lang', name: 'commons-lang', version: '2.6')
|
|
compile(group: 'commons-collections', name: 'commons-collections', version: '3.2.1')
|
|
compile('commons-io:commons-io:2.4')
|
|
compile('commons-codec:commons-codec:1.10')
|
|
compile('commons-cli:commons-cli:1.3.1')
|
|
compile('org.apache.commons:commons-pool2:2.4.2')
|
|
compile('org.apache.commons:commons-compress:1.9')
|
|
compile(group: 'dom4j', name: 'dom4j', version: '1.6.1')
|
|
compile('com.sun.mail:javax.mail:1.5.4')
|
|
compile('ch.qos.logback:logback-classic:1.1.3')
|
|
compile('org.slf4j:log4j-over-slf4j:1.7.12')
|
|
compile(group: 'org.perf4j', name: 'perf4j', version: '0.9.16')
|
|
compile('com.google.code.findbugs:jsr305:3.0.0')
|
|
compile('javax:javaee-api:7.0')
|
|
compile(groovyArtifact)
|
|
compile(group: 'antlr', name: 'antlr', version: '2.7.7')
|
|
compile(group: 'org.antlr', name: 'antlr-runtime', version: '3.5.2')
|
|
compile('com.google.guava:guava:18.0')
|
|
|
|
compile 'org.eclipse.persistence:javax.persistence:2.1.0'
|
|
compile 'org.eclipse.persistence:commonj.sdo:2.1.1'
|
|
compile 'org.glassfish:javax.json:1.0.4'
|
|
compile (eclipselink)
|
|
|
|
compile('org.freemarker:freemarker:2.3.23')
|
|
compile(group: 'aopalliance', name: 'aopalliance', version: '1.0')
|
|
compile(group: 'org.springframework', name: 'spring-core', version: springVersion)
|
|
compile(group: 'org.springframework', name: 'spring-beans', version: springVersion)
|
|
compile(group: 'org.springframework', name: 'spring-context', version: springVersion)
|
|
compile(group: 'org.springframework', name: 'spring-web', version: springVersion)
|
|
|
|
compile(group: 'com.esotericsoftware', name: 'kryo-shaded', version: '3.0.3')
|
|
compile(group: 'de.javakaffee', name: 'kryo-serializers', version: '0.37') {
|
|
exclude(group: 'com.esotericsoftware', module: 'kryo')
|
|
}
|
|
|
|
testCompile('org.jmockit:jmockit:1.15')
|
|
testCompile('junit:junit:4.12')
|
|
|
|
findbugs 'com.google.code.findbugs:findbugs:3.0.1'
|
|
}
|
|
|
|
task sourceJar(type: Jar) {
|
|
from file('src')
|
|
classifier = 'sources'
|
|
}
|
|
|
|
artifacts {
|
|
archives sourceJar
|
|
}
|
|
|
|
String checkstyleConfigDir = "${rootProject.projectDir}/config/checkstyle"
|
|
checkstyle {
|
|
configFile = new File("${checkstyleConfigDir}/checkstyle.xml".toString())
|
|
configProperties = [
|
|
'checkstyleConfigDir' : checkstyleConfigDir
|
|
]
|
|
reportsDir = new File("${buildDir}/checkstyle".toString())
|
|
}
|
|
|
|
checkstyleMain << {
|
|
def checkstyleDir = "${project.buildDir}/checkstyle".toString()
|
|
ant.xslt('in': "$checkstyleDir/main.xml",
|
|
out: "$checkstyleDir/$project.name-checkstyle.html",
|
|
style: "$checkstyleConfigDir/checkstyle.xsl")
|
|
}
|
|
|
|
findbugs {
|
|
toolVersion = "2.0.3"
|
|
ignoreFailures = true
|
|
omitVisitors = ['FindDoubleCheck']
|
|
}
|
|
|
|
findbugsMain {
|
|
reports {
|
|
xml.enabled = false
|
|
html {
|
|
enabled = true
|
|
destination "${project.buildDir}/findbugs/$project.name-findbugs.html"
|
|
}
|
|
}
|
|
}
|
|
|
|
jar {
|
|
manifest {
|
|
attributes("Implementation-Version": cubaVersion)
|
|
}
|
|
}
|
|
}
|
|
|
|
// configure web toolkit modules
|
|
configure(webToolkitModule) {
|
|
apply(plugin: 'java')
|
|
apply(plugin: 'idea')
|
|
apply(plugin: 'maven')
|
|
apply(plugin: 'cuba')
|
|
|
|
task sourceJar(type: Jar) {
|
|
from file('src')
|
|
classifier = 'sources'
|
|
}
|
|
|
|
artifacts {
|
|
archives sourceJar
|
|
}
|
|
}
|
|
|
|
configure(sharedLibModule) {
|
|
dependencies {
|
|
jdbc(postgres)
|
|
jdbc(hsqldb)
|
|
}
|
|
}
|
|
|
|
configure(globalModule) {
|
|
dependencies {
|
|
compile(group: 'org.json', name: 'json', version: '20140107')
|
|
compile('com.google.code.gson:gson:2.5')
|
|
provided(servletApi)
|
|
}
|
|
|
|
task generateReleaseTimestamp(type: CubaReleaseTimeStamp) {
|
|
releaseTimeStampPath = "$buildDir/classes/main/com/haulmont/cuba/core/global/release.timestamp"
|
|
releaseNumberPath = "$buildDir/classes/main/com/haulmont/cuba/core/global/release.number"
|
|
}
|
|
|
|
task enhance(type: CubaEnhancing)
|
|
|
|
task filterDummyEntities {
|
|
ext.srcFile = file('src/cuba-persistence.xml')
|
|
ext.dstDir = file("$buildDir/tmp/filtered")
|
|
ext.dstFile = new File(ext.dstDir, "cuba-persistence.xml")
|
|
inputs.file srcFile
|
|
outputs.file dstFile
|
|
doLast {
|
|
dstDir.mkdirs()
|
|
List lines = srcFile.readLines()
|
|
def result = lines.findAll{ !it.contains('.entity.dummy.') }.join('\n')
|
|
dstFile.write(result)
|
|
}
|
|
}
|
|
|
|
jar {
|
|
exclude '**/entity/dummy/*'
|
|
exclude { it.file == file("$buildDir/resources/main/cuba-persistence.xml") }
|
|
from "$buildDir/tmp/filtered"
|
|
|
|
manifest {
|
|
attributes('App-Component-Id': cuba.artifact.group)
|
|
attributes('App-Component-Version': cubaVersion)
|
|
}
|
|
}
|
|
jar.dependsOn filterDummyEntities
|
|
|
|
sourceJar {
|
|
exclude '**/entity/dummy/*'
|
|
exclude {
|
|
it.file.name == 'cuba-persistence.xml' && sourceSets.main.java.srcDirs.contains(it.file.parentFile)
|
|
}
|
|
from "$buildDir/tmp/filtered"
|
|
}
|
|
sourceJar.dependsOn filterDummyEntities
|
|
}
|
|
|
|
configure(coreModule) {
|
|
configurations {
|
|
dbscripts
|
|
}
|
|
|
|
dependencies {
|
|
compile(globalModule)
|
|
compile(sharedLibModule)
|
|
compile 'javax.validation:validation-api:1.1.0.Final'
|
|
compile(group: 'com.haulmont.thirdparty', name: 'xstream', version: '1.4.2.20120702')
|
|
runtime(group: 'xpp3', name: 'xpp3_min', version: '1.1.4c')
|
|
runtime(group: 'xmlpull', name: 'xmlpull', version: '1.1.3.1')
|
|
compile(group: 'org.ocpsoft.prettytime', name: 'prettytime-nlp', version: '3.2.5.Final')
|
|
compile('org.jgroups:jgroups:3.6.7.Final')
|
|
compile('org.aspectj:aspectjrt:1.8.6')
|
|
compile('org.aspectj:aspectjweaver:1.8.6')
|
|
compile('org.mybatis:mybatis:3.2.7')
|
|
compile('org.mybatis:mybatis-spring:1.2.3')
|
|
compile(group: 'org.springframework', name: 'spring-context-support', version: springVersion)
|
|
compile(group: 'org.springframework', name: 'spring-orm', version: springVersion)
|
|
compile(group: 'org.springframework', name: 'spring-tx', version: springVersion)
|
|
compile(group: 'org.springframework', name: 'spring-webmvc', version: springVersion)
|
|
compile(poi) // POI is actually not required by core, but remains here to simplify dependencies for reports project
|
|
|
|
compile('org.jsoup:jsoup:1.8.3') // simplify version management for fts
|
|
compile('org.apache.httpcomponents:httpclient:4.5.2') // simplify version management for selenium
|
|
|
|
provided(servletApi)
|
|
|
|
jdbc(postgres)
|
|
jdbc(hsqldb)
|
|
|
|
testCompile('org.apache.commons:commons-dbcp2:2.1.1')
|
|
testRuntime(servletApi)
|
|
testRuntime(hsqldb)
|
|
testRuntime(postgres)
|
|
}
|
|
|
|
task enhanceTestModel(type: CubaTestEnhancing) {
|
|
persistenceConfig = 'cuba-test-persistence.xml'
|
|
}
|
|
|
|
test {
|
|
scanForTestClasses = false
|
|
includes = ['**/*Test.class']
|
|
jvmArgs '-XX:-UseSplitVerifier'
|
|
}
|
|
|
|
task testEntityCache(type: Test) {
|
|
scanForTestClasses = false
|
|
includes = ['com/haulmont/cuba/entity_cache/EntityCacheTestSuite.class']
|
|
}
|
|
|
|
assembleDbScripts {
|
|
moduleAlias = '10-cuba'
|
|
}
|
|
|
|
task deploy(dependsOn: assemble, type: CubaDeployment) {
|
|
appName = 'cuba-core'
|
|
appJars('cuba-global', 'cuba-core')
|
|
}
|
|
|
|
def hsqlDbName = 'cubadb'
|
|
|
|
task startDb(description: 'Starts local HSQLDB server', type: CubaHsqlStart) {
|
|
dbName = hsqlDbName
|
|
}
|
|
|
|
task stopDb(description: 'Stops local HSQLDB server', type: CubaHsqlStop) {
|
|
dbName = hsqlDbName
|
|
}
|
|
|
|
task removeDb(description: 'Removes local HSQL database', type: Delete) {
|
|
delete new File("$rootProject.projectDir/data")
|
|
}
|
|
|
|
task killDb(description: 'Kill local HSQLDB server process running on port 9001', type: CubaKillProcess) {
|
|
port = 9001
|
|
}
|
|
|
|
task createDb(dependsOn: assembleDbScripts, description: 'Creates local HSQL database', type: CubaDbCreation) {
|
|
dbms = 'hsql'
|
|
dbName = hsqlDbName
|
|
dbUser = 'sa'
|
|
dbPassword = ''
|
|
}
|
|
|
|
task createTestDb(dependsOn: assembleDbScripts, description: 'Creates local HSQL database', type: CubaDbCreation) {
|
|
dbms = 'hsql'
|
|
dbName = hsqlDbName
|
|
dbUser = 'sa'
|
|
dbPassword = ''
|
|
auxiliaryScript = file('test/com/haulmont/cuba/testmodel/create-db.sql')
|
|
}
|
|
}
|
|
|
|
configure(coreTestsModule) {
|
|
apply(plugin: 'java')
|
|
apply(plugin: 'maven')
|
|
apply(plugin: 'cuba')
|
|
|
|
buildDir = file('../build/core-tests')
|
|
|
|
sourceSets {
|
|
main {
|
|
java {
|
|
srcDir '.'
|
|
|
|
include 'com/haulmont/cuba/core/CubaTestCase.java'
|
|
include 'com/haulmont/cuba/testsupport/*.java'
|
|
include '*'
|
|
}
|
|
resources {
|
|
srcDir '.'
|
|
}
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
compile(coreModule)
|
|
compile('org.apache.commons:commons-dbcp2:2.1.1')
|
|
compile('org.jmockit:jmockit:1.15')
|
|
compile('junit:junit:4.12')
|
|
}
|
|
|
|
task sourceJar(type: Jar) {
|
|
from file('.')
|
|
include 'com/haulmont/cuba/core/CubaTestCase*.class'
|
|
include 'com/haulmont/cuba/core/CubaTestCase*.java'
|
|
include 'com/haulmont/cuba/testsupport/*'
|
|
include '*'
|
|
classifier = 'sources'
|
|
}
|
|
|
|
artifacts {
|
|
archives sourceJar
|
|
}
|
|
}
|
|
|
|
configure(clientModule) {
|
|
dependencies {
|
|
compile(globalModule)
|
|
compile('org.apache.httpcomponents:httpclient:4.5.2') // simplify version management for selenium
|
|
compile('org.jsoup:jsoup:1.8.3') // simplify version management for fts
|
|
}
|
|
}
|
|
|
|
configure(clientTestsModule) {
|
|
apply(plugin: 'java')
|
|
apply(plugin: 'maven')
|
|
apply(plugin: 'cuba')
|
|
|
|
buildDir = file('../build/client-tests')
|
|
|
|
sourceSets {
|
|
main {
|
|
java {
|
|
srcDir '.'
|
|
}
|
|
resources {
|
|
srcDir '.'
|
|
}
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
compile(clientModule)
|
|
compile('org.jmockit:jmockit:1.15')
|
|
compile('junit:junit:4.12')
|
|
}
|
|
|
|
task sourceJar(type: Jar) {
|
|
from file('.')
|
|
classifier = 'sources'
|
|
}
|
|
|
|
artifacts {
|
|
archives sourceJar
|
|
}
|
|
}
|
|
|
|
configure(guiModule) {
|
|
dependencies {
|
|
compile(clientModule)
|
|
compile(poi)
|
|
compile(groovyArtifact)
|
|
|
|
testCompile(clientModule.sourceSets.test.output)
|
|
}
|
|
|
|
task enhance(type: CubaEnhancing)
|
|
|
|
test {
|
|
scanForTestClasses = false
|
|
includes = ['**/*Test.class']
|
|
|
|
exclude 'com/haulmont/cuba/gui/components/*ComponentTest.class'
|
|
exclude 'com/haulmont/cuba/gui/components/*FieldTest.class'
|
|
}
|
|
}
|
|
|
|
configure(webModule) {
|
|
configurations {
|
|
themes
|
|
}
|
|
|
|
dependencies {
|
|
compile(sharedLibModule)
|
|
compile(guiModule)
|
|
compile(webAuthModule)
|
|
compile(restApiModule)
|
|
|
|
compile(commonsUpload)
|
|
compile(group: 'org.springframework', name: 'spring-webmvc', version: springVersion)
|
|
|
|
compile(vaadinPush) {
|
|
exclude(group: 'com.vaadin.external.google', module: 'guava')
|
|
}
|
|
compile(vaadinShared) {
|
|
exclude(group: 'com.vaadin.external.google', module: 'guava')
|
|
}
|
|
compile(group: 'com.vaadin.external.google', name: 'guava-vaadin-shaded', version: '16.0.1.vaadin1')
|
|
compile(vaadinServer) {
|
|
exclude(group: 'com.vaadin', module: 'vaadin-sass-compiler')
|
|
}
|
|
|
|
/* Vaadin addons */
|
|
compile(group: 'com.haulmont.thirdparty', name: 'popupbutton', version: '2.5.2.cuba.3')
|
|
compile(group: 'com.haulmont.thirdparty', name: 'aceeditor', version: '0.8.15')
|
|
compile(group: 'org.vaadin.addons', name: 'contextmenu', version: '4.5')
|
|
compile(group: 'org.vaadin.addons', name: 'dragdroplayouts', version: '1.2.2.cuba.3')
|
|
|
|
provided(servletApi)
|
|
|
|
themes(vaadinThemes)
|
|
|
|
testCompile(clientModule.sourceSets.test.output)
|
|
testCompile(guiModule.sourceSets.test.output)
|
|
testRuntime(servletApi)
|
|
}
|
|
|
|
task enhance(type: CubaEnhancing)
|
|
|
|
jar {
|
|
with copySpec {
|
|
from sourceSets.main.allJava
|
|
include "com/haulmont/cuba/web/toolkit/ui/client/**"
|
|
}
|
|
}
|
|
|
|
task buildScssThemes(type: CubaWebScssThemeCreation) {
|
|
themes = ['halo', 'havana']
|
|
// compress = true
|
|
// sprites = true
|
|
// cleanup = true
|
|
}
|
|
|
|
assemble.dependsOn buildScssThemes
|
|
|
|
task deployThemes(type: CubaDeployThemeTask, dependsOn: buildScssThemes) {
|
|
}
|
|
|
|
task buildHalo(type: CubaWebScssThemeCreation) {
|
|
themes = ['halo']
|
|
// compress = true
|
|
// sprites = true
|
|
// cleanup = true
|
|
}
|
|
|
|
task deployHalo(type: Copy, dependsOn: buildHalo) {
|
|
from file("$webModule.buildDir/web/VAADIN/themes/halo")
|
|
into "${cuba.tomcat.dir}/webapps/cuba/VAADIN/themes/halo"
|
|
exclude '**/web.xml'
|
|
}
|
|
|
|
task buildHavana(type: CubaWebScssThemeCreation) {
|
|
themes = ['havana']
|
|
// compress = true
|
|
// sprites = true
|
|
// cleanup = true
|
|
}
|
|
|
|
task deployHavana(type: Copy, dependsOn: buildHavana) {
|
|
from file("$webModule.buildDir/web/VAADIN/themes/havana")
|
|
into "${cuba.tomcat.dir}/webapps/cuba/VAADIN/themes/havana"
|
|
exclude '**/web.xml'
|
|
}
|
|
|
|
def webOutDir = file("$buildDir/web")
|
|
task webArchive(dependsOn: buildScssThemes, type: Zip) {
|
|
from file('web')
|
|
from webOutDir
|
|
exclude '**/web.xml', '**/app.properties'
|
|
classifier = 'web'
|
|
}
|
|
|
|
artifacts {
|
|
archives webArchive
|
|
}
|
|
|
|
task deploy(dependsOn: assemble, type: CubaDeployment) {
|
|
appName = 'cuba'
|
|
appJars('cuba-global', 'cuba-client', 'cuba-gui', 'cuba-web', 'cuba-web-auth', 'cuba-rest-api')
|
|
}
|
|
}
|
|
|
|
configure(webModuleThemesModule) {
|
|
apply(plugin: 'java')
|
|
apply(plugin: 'maven')
|
|
apply(plugin: 'cuba')
|
|
|
|
buildDir = file('../build/scss-themes')
|
|
|
|
sourceSets {
|
|
main {
|
|
java {
|
|
srcDir '.'
|
|
}
|
|
resources {
|
|
srcDir '.'
|
|
}
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
compile(vaadinThemes)
|
|
}
|
|
}
|
|
|
|
configure(webAuthModule) {
|
|
dependencies {
|
|
compile(globalModule)
|
|
|
|
compile(group: 'org.springframework', name: 'spring-tx', version: springVersion)
|
|
compile(group: 'org.springframework.ldap', name: 'spring-ldap-core', version: '2.0.2.RELEASE') {
|
|
exclude(group: 'org.slf4j', module: 'jcl-over-slf4j') // removed because it defines its own Log4j LogFactory via JDK services mechanism
|
|
}
|
|
|
|
provided(servletApi)
|
|
}
|
|
}
|
|
|
|
configure(webToolkitModule) {
|
|
dependencies {
|
|
compile(webModule)
|
|
compile(vaadinClient)
|
|
compile(vaadinCompiler)
|
|
|
|
runtime(servletApi)
|
|
}
|
|
|
|
task buildWidgetSet(type: CubaWidgetSetBuilding) {
|
|
widgetSetClass = 'com.haulmont.cuba.web.toolkit.ui.WidgetSet'
|
|
// Strict
|
|
strict = true
|
|
// Debug flags:
|
|
printCompilerClassPath = false
|
|
logLevel = 'INFO'
|
|
// Parallel thread count
|
|
workers = 2
|
|
|
|
// Performance and widgetset size:
|
|
style = 'PRETTY' // 'OBF' or 'PRETTY' or 'DETAILED'
|
|
disableCastChecking = false
|
|
optimize = 9
|
|
draft = false
|
|
|
|
// Compiler JVM
|
|
xmx = '-Xmx512m'
|
|
xss = '-Xss8m'
|
|
xxMPS = '-XX:MaxPermSize=256m'
|
|
}
|
|
|
|
task buildDebugWidgetSet(type: CubaWidgetSetBuilding) {
|
|
widgetSetsDir = "$project.buildDir/web-debug/VAADIN/widgetsets"
|
|
widgetSetClass = 'com.haulmont.cuba.web.toolkit.ui.WidgetSet'
|
|
// Performance and widgetset size:
|
|
style = 'PRETTY'
|
|
}
|
|
|
|
task debugWidgetSet(type: CubaWidgetSetDebug) {
|
|
widgetSetClass = 'com.haulmont.cuba.web.toolkit.ui.WidgetSet'
|
|
}
|
|
|
|
jar {
|
|
from sourceSets.main.allJava
|
|
}
|
|
|
|
task webArchive(dependsOn: buildWidgetSet, type: Zip) {
|
|
from file("$buildDir/web")
|
|
classifier = 'web'
|
|
}
|
|
|
|
task webDebugArchive(dependsOn: buildDebugWidgetSet, type: Zip) {
|
|
from file("$buildDir/web-debug")
|
|
classifier = 'debug'
|
|
}
|
|
|
|
artifacts {
|
|
archives webArchive
|
|
if (!cuba.artifact.isSnapshot) {
|
|
archives webDebugArchive
|
|
}
|
|
}
|
|
|
|
task deploy(dependsOn: buildWidgetSet) << {
|
|
delete {
|
|
"$cuba.tomcat.dir/webapps/cuba/VAADIN/widgetsets"
|
|
}
|
|
copy {
|
|
from "$buildDir/web"
|
|
into "$cuba.tomcat.dir/webapps/cuba"
|
|
}
|
|
}
|
|
|
|
task cleanWidgetSet(dependsOn: clean) {
|
|
}
|
|
}
|
|
|
|
configure(desktopModule) {
|
|
apply(plugin: 'application')
|
|
mainClassName = 'com.haulmont.cuba.desktop.App'
|
|
|
|
dependencies {
|
|
compile(guiModule)
|
|
compile(group: 'com.miglayout', name: 'miglayout-swing', version: '4.2')
|
|
compile(group: 'com.fifesoft', name: 'rsyntaxtextarea', version: '2.5.6')
|
|
compile(group: 'com.haulmont.thirdparty', name: 'glazedlists', version: '1.9.20110801')
|
|
compile(group: 'com.haulmont.thirdparty', name: 'swingx-core', version: '1.6.5-1.cuba.0')
|
|
|
|
assemble.dependsOn = [classes]
|
|
|
|
testCompile(clientModule.sourceSets.test.output)
|
|
testCompile(guiModule.sourceSets.test.output)
|
|
testRuntime(servletApi)
|
|
}
|
|
|
|
installApp {
|
|
into("$buildDir/app/" + applicationName)
|
|
}
|
|
|
|
task desktopInstall(dependsOn: assemble) << {
|
|
jar.execute()
|
|
startScripts.execute()
|
|
installApp.execute()
|
|
}
|
|
|
|
task desktopDist(dependsOn: assemble) << {
|
|
distZip.execute()
|
|
}
|
|
|
|
task desktopStart(dependsOn: desktopInstall) << {
|
|
run.execute()
|
|
}
|
|
}
|
|
|
|
configure(restApiModule) {
|
|
dependencies {
|
|
compile(globalModule)
|
|
compile(clientModule)
|
|
compile(sharedLibModule)
|
|
provided(servletApi)
|
|
compile(group: 'org.springframework', name: 'spring-webmvc', version: springVersion)
|
|
compile(group: 'org.springframework', name: 'spring-context-support', version: springVersion)
|
|
compile(group: 'org.json', name: 'json', version: '20140107')
|
|
compile(groovyArtifact)
|
|
|
|
compile(group: 'org.springframework.security', name: 'spring-security-core', version: springSecurityVersion)
|
|
compile(group: 'org.springframework.security', name: 'spring-security-web', version: springSecurityVersion)
|
|
compile(group: 'org.springframework.security', name: 'spring-security-config', version: springSecurityVersion)
|
|
compile(group: 'org.springframework.security.oauth', name: 'spring-security-oauth2', version: '2.0.10.RELEASE') {
|
|
exclude(group: "org.springframework.security")
|
|
}
|
|
|
|
testCompile(clientModule.sourceSets.test.output)
|
|
}
|
|
}
|
|
|
|
configure(portalModule) {
|
|
dependencies {
|
|
compile(globalModule)
|
|
compile(clientModule)
|
|
compile(sharedLibModule)
|
|
compile(restApiModule)
|
|
provided(servletApi)
|
|
compile(group: 'org.springframework', name: 'spring-webmvc', version: springVersion)
|
|
compile(group: 'org.springframework.security', name: 'spring-security-core', version: springSecurityVersion)
|
|
compile(group: 'org.springframework.security', name: 'spring-security-web', version: springSecurityVersion)
|
|
compile(group: 'org.springframework.security', name: 'spring-security-config', version: springSecurityVersion)
|
|
compile(group: 'org.springframework.security', name: 'spring-security-taglibs', version: springSecurityVersion)
|
|
compile(group: 'org.springframework', name: 'spring-context-support', version: springVersion)
|
|
compile(group: 'org.json', name: 'json', version: '20140107')
|
|
compile(groovyArtifact)
|
|
|
|
compile(group: 'org.springframework', name: 'spring-tx', version: springVersion)
|
|
compile(group: 'org.springframework', name: 'spring-jdbc', version: springVersion)
|
|
|
|
compile(group: 'org.thymeleaf', name: 'thymeleaf', version: '3.0.0.RELEASE')
|
|
compile(group: 'org.thymeleaf', name: 'thymeleaf-spring4', version: '3.0.0.RELEASE')
|
|
compile(group: 'org.thymeleaf.extras', name: 'thymeleaf-extras-springsecurity4', version: '3.0.0.RELEASE')
|
|
|
|
testCompile(clientModule.sourceSets.test.output)
|
|
}
|
|
|
|
test {
|
|
scanForTestClasses = false
|
|
includes = ['**/*Test.class']
|
|
}
|
|
}
|
|
|
|
task restart(dependsOn: ['stop', ':cuba-core:deploy', ':cuba-web:deploy', ':cuba-web-toolkit:deploy'],
|
|
description: 'Redeploys applications and restarts local Tomcat') << {
|
|
ant.waitfor(maxwait: 6, maxwaitunit: 'second', checkevery: 2, checkeveryunit: 'second') {
|
|
not {
|
|
socket(server: 'localhost', port: '8787')
|
|
}
|
|
}
|
|
start.execute()
|
|
} |