Hello Irina, the problem I opened ticket about is solved, probably temporary (about one hour) authentication problem on server (below information requested).
I do not know if I can ask another question: 
It’s also about plugins:
Q?: How can I change language and also menues in plugin? 
When I install one I get a demo menu and eventually choices and examples of code. 
If I want to change or extend languages or remove demo menu How can I do it? 
Here a possible thread which does not respond completely to this question.
  
  
    No. Same old translation…
   
 
Thank you in advance, 
Fabrizio
1.CUBA Studio (plugin) version 6.10.20
2. I can't find it
3. Wizard: https://forum.cuba-platform.com/t/cuba-component-wizard-preview/6617
4. 
buildscript {
    ext.cubaVersion = '6.10.20'
    repositories {
        mavenCentral()
        maven {
            url 'https://repo.cuba-platform.com/content/groups/work'
            credentials {
                username(rootProject.hasProperty('repoUser') ? rootProject['repoUser'] : 'cuba')
                password(rootProject.hasProperty('repoPass') ? rootProject['repoPass'] : 'cuba123')
            }
        }
        maven {
            url 'https://repo.cuba-platform.com/content/groups/premium'
            credentials {
                username(rootProject.hasProperty('premiumRepoUser') ? rootProject['premiumRepoUser'] : System.getenv('CUBA_PREMIUM_USER'))
                password(rootProject.hasProperty('premiumRepoPass') ? rootProject['premiumRepoPass'] : System.getenv('CUBA_PREMIUM_PASSWORD'))
            }
        }
        maven {
            url  "https://dl.bintray.com/mariodavid/cuba-components"
        }
        //flatDir { dirs '/home/demassis/studio-projects/Contacts/extlib' }
        flatDir { dirs 'extlib', 'res' }
    }
    dependencies {
        classpath "com.haulmont.gradle:cuba-plugin:$cubaVersion"
    }
}
plugins {
    id  'org.asciidoctor.convert' version '1.6.0' apply false
}
def modulePrefix = 'app'
def globalModule = project(":${modulePrefix}-global" )
def coreModule = project(":${modulePrefix}-core" )
def webModule = project(":${modulePrefix}-web" )
def webThemesModule = project(":${modulePrefix}-web-themes" )
def guiModule = project(":${modulePrefix}-gui")
def servletApi = 'javax.servlet:javax.servlet-api:3.1.0'
apply(plugin: 'idea')
apply(plugin: 'cuba')
cuba {
    artifact {
        group = 'pro.sysonline.contacts'
        version = '0.1'
        isSnapshot = true
    }
    tomcat {
        dir = "$project.rootDir/deploy/tomcat"
    }
    ide {
        vcs = 'Git'
    }
}
dependencies {
    appComponent("com.haulmont.cuba:cuba-global:$cubaVersion")
    appComponent("com.haulmont.reports:reports-global:$cubaVersion")
    appComponent("com.haulmont.fts:fts-global:$cubaVersion")
    appComponent("com.haulmont.charts:charts-global:$cubaVersion")
    appComponent("com.haulmont.addon.emailtemplates:yet-global:1.0.3")
    appComponent("de.diedavids.cuba.wizard:wizard-global:0.3.0")
    appComponent("com.haulmont.addon.imap:imap-global:1.2.0")
    appComponent('it.nexbit.cuba.security.forgotpassword:nxsecfp-global:2.2.0')
    appComponent('it.nexbit.cuba.translationit:translationit-global:6.10.2')
    appComponent('de.diedavids.cuba.dataimport:dataimport-global:0.7.0')
}
def postgres = 'org.postgresql:postgresql:9.4.1212'
configure([globalModule, coreModule, webModule, guiModule]) {
    apply(plugin: 'java')
    apply(plugin: 'maven')
    apply(plugin: 'idea')
    apply(plugin: 'cuba')
    dependencies {
        testCompile('junit:junit:4.12')
        testCompile('org.spockframework:spock-core:1.0-groovy-2.4')
        testRuntime('cglib:cglib-nodep:3.1')
        testCompile('com.haulmont.masquerade:masquerade-web:2.0.2')
        testCompile('com.haulmont.masquerade:masquerade-connector:2.0.2')
     }
    task sourceJar(type: Jar) {
        from file('src')
        classifier = 'sources'
    }
    artifacts {
        archives sourceJar
    }
}
configure([globalModule, coreModule, webModule, guiModule]) {
    apply(plugin: 'groovy')
    sourceSets {
        main { groovy { srcDirs = ["src"] } }
        test { groovy { srcDirs = ["test"] } }
    }
}
configure(globalModule) {
    dependencies {
        compile('com.googlecode.libphonenumber:libphonenumber:8.8.8')
        compile('com.googlecode.libphonenumber:geocoder:2.85')
        compile('com.googlecode.libphonenumber:prefixmapper:2.85')
        compile('com.googlecode.libphonenumber:carrier:1.75')
        compile('net.lingala.zip4j:zip4j:1.2.4')
        compile('joda-time:joda-time:2.10.1')
        compile('com.google.crypto.tink:tink:1.3.0-rc3')
        compile('org.xhtmlrenderer:flying-saucer-pdf:9.1.20')
        compile('mylibrary:fatturaxml121')
        compile('mylibrary:xmlsig')
        compile('mylibrary:agibilitaAGI')
        compile('mylibrary:fatturaxsl121')
    }
    entitiesEnhancing {
        main { enabled = true }\
    }
}
configure(coreModule) {
    configurations {
        jdbc
        dbscripts
    }
    dependencies {
        compile(globalModule)
        provided(servletApi)
        jdbc(postgres)
        testRuntime(postgres)
    }
    task cleanConf(description: 'Cleans up conf directory') {
        doLast {
            def dir = new File(cuba.tomcat.dir, "/conf/${modulePrefix}-core" )
            if (dir.isDirectory()) {
                ant.delete(includeemptydirs: true) {
                    fileset(dir: dir, includes: '**/*', excludes: 'local.app.properties')
                }
            }
        }
    }
    task deploy(dependsOn: [assemble, cleanConf], type: CubaDeployment) {
        appName = "${modulePrefix}-core"
        appJars(modulePrefix + '-global', modulePrefix + '-core')
    }
    task createDb(dependsOn: assembleDbScripts, description: 'Creates local database', type: CubaDbCreation) {
        dbms = 'postgres'
        host = 'localhost'
        dbName = 'artisdb2'
        dbUser = 'artiscoop'
        dbPassword = '@rt1sC00P!'
    }
    task updateDb(dependsOn: assembleDbScripts, description: 'Updates local database', type: CubaDbUpdate) {
        dbms = 'postgres'
        host = 'localhost'
        dbName = 'artisdb2'
        dbUser = 'artiscoop'
        dbPassword = '@rt1sC00P!'
    }
}
configure(guiModule) {
    dependencies {
        compile(globalModule)
    }
    task deployConf(type: Copy) {
        from file('src')
        include "pro/sysonline/contacts/**"
        into "$cuba.tomcat.dir/conf/${modulePrefix}"
    }
}
configure(webModule) {
    configurations {
        webcontent
    }
    dependencies {
        provided(servletApi)
        compile(guiModule)
        testCompile('org.seleniumhq.selenium:selenium-java:4.0.0-alpha-5')
        testCompile('com.codeborne:selenide:5.10.0')        
        testCompile('com.jayway.jsonpath:json-path:2.4.0')
    }
    task webArchive(type: Zip) {
        from file("$buildDir/web")
        from file('web')
        classifier = 'web'
    }
    artifacts {
        archives webArchive
    }
    task deployConf(type: Copy) {
        from file('src')
        include "pro/sysonline/contacts/**"
        into "$cuba.tomcat.dir/conf/${modulePrefix}"
    }
    task clearMessagesCache(type: CubaClearMessagesCache) {
        appName = "${modulePrefix}"
    }
    deployConf.dependsOn clearMessagesCache
    task cleanConf(description: 'Cleans up conf directory') {
        doLast {
            def dir = new File(cuba.tomcat.dir, "/conf/${modulePrefix}" )
            if (dir.isDirectory()) {
                ant.delete(includeemptydirs: true) {
                    fileset(dir: dir, includes: '**/*', excludes: 'local.app.properties')
                }
            }
        }
    }
    task deploy(dependsOn: [assemble, cleanConf], type: CubaDeployment) {
        appName = "${modulePrefix}"
        appJars(modulePrefix + '-global', modulePrefix + '-gui', modulePrefix + '-web')
    }
    task buildScssThemes(type: CubaWebScssThemeCreation)
    task deployThemes(type: CubaDeployThemeTask, dependsOn: buildScssThemes)
    assemble.dependsOn buildScssThemes
}
configure(webThemesModule) {
    apply(plugin: 'java')
    apply(plugin: 'maven')
    apply(plugin: 'cuba')
    appModuleType = 'web-themes'
    buildDir = file('../build/scss-themes')
    sourceSets {
        main {
            java {
                srcDir '.'
            }
            resources {
                srcDir '.'
            }
        }
    }
}
task undeploy(type: Delete, dependsOn: ":${modulePrefix}-web:cleanConf" ) {
    delete("$cuba.tomcat.dir/shared")
    delete("$cuba.tomcat.dir/webapps/${modulePrefix}-core" )
    delete("$cuba.tomcat.dir/webapps/${modulePrefix}" )
}
task restart(dependsOn: ['stop', ":${modulePrefix}-core:deploy" , ":${modulePrefix}-web:deploy" ], description: 'Redeploys applications and restarts local Tomcat') {
    doLast {
        ant.waitfor(maxwait: 6, maxwaitunit: 'second', checkevery: 2, checkeveryunit: 'second') {
            not {
                socket(server: 'localhost', port: '8787')
            }
        }
        start.execute()
    }
}
//task wrapper(type: Wrapper) {
//   gradleVersion = '4.3.1'
//}
task buildWar(type: CubaWarBuilding) {
    appHome = './app_home'
    singleWar = false
    includeContextXml = true
    includeJdbcDriver = true
}
task buildSingleWar(type: CubaWarBuilding) {
    appHome = '${catalina.base}/work'
    singleWar = true
    includeContextXml = true
    includeJdbcDriver = true
    appProperties = ['cuba.automaticDatabaseUpdate': false]
    webXmlPath = 'modules/web/web/WEB-INF/single-war-web.xml'
    coreContextXmlPath = 'modules/core/web/META-INF/war-context.xml'
}
apply from: 'extra.gradle'
buildscript {
    ext.cubaVersion = '6.10.20'
    repositories {
        mavenCentral()
        maven {
            url 'https://repo.cuba-platform.com/content/groups/work'
            credentials {
                username(rootProject.hasProperty('repoUser') ? rootProject['repoUser'] : 'cuba')
                password(rootProject.hasProperty('repoPass') ? rootProject['repoPass'] : 'cuba123')
            }
        }
        maven {
            url 'https://repo.cuba-platform.com/content/groups/premium'
            credentials {
                username(rootProject.hasProperty('premiumRepoUser') ? rootProject['premiumRepoUser'] : System.getenv('CUBA_PREMIUM_USER'))
                password(rootProject.hasProperty('premiumRepoPass') ? rootProject['premiumRepoPass'] : System.getenv('CUBA_PREMIUM_PASSWORD'))
            }
        }
        maven {
            url  "https://dl.bintray.com/mariodavid/cuba-components"
        }
        //flatDir { dirs '/home/demassis/studio-projects/Contacts/extlib' }
        flatDir { dirs 'extlib', 'res' }
    }
    dependencies {
        classpath "com.haulmont.gradle:cuba-plugin:$cubaVersion"
    }
}
plugins {
    id  'org.asciidoctor.convert' version '1.6.0' apply false
}
def modulePrefix = 'app'
def globalModule = project(":${modulePrefix}-global" )
def coreModule = project(":${modulePrefix}-core" )
def webModule = project(":${modulePrefix}-web" )
def webThemesModule = project(":${modulePrefix}-web-themes" )
def guiModule = project(":${modulePrefix}-gui")
def servletApi = 'javax.servlet:javax.servlet-api:3.1.0'
apply(plugin: 'idea')
apply(plugin: 'cuba')
cuba {
    artifact {
        group = 'pro.sysonline.contacts'
        version = '0.1'
        isSnapshot = true
    }
    tomcat {
        dir = "$project.rootDir/deploy/tomcat"
    }
    ide {
        vcs = 'Git'
    }
}
dependencies {
    appComponent("com.haulmont.cuba:cuba-global:$cubaVersion")
    appComponent("com.haulmont.reports:reports-global:$cubaVersion")
    appComponent("com.haulmont.fts:fts-global:$cubaVersion")
    appComponent("com.haulmont.charts:charts-global:$cubaVersion")
    appComponent("com.haulmont.addon.emailtemplates:yet-global:1.0.3")
    appComponent("de.diedavids.cuba.wizard:wizard-global:0.3.0")
    appComponent("com.haulmont.addon.imap:imap-global:1.2.0")
    appComponent('it.nexbit.cuba.security.forgotpassword:nxsecfp-global:2.2.0')
    appComponent('it.nexbit.cuba.translationit:translationit-global:6.10.2')
    appComponent('de.diedavids.cuba.dataimport:dataimport-global:0.7.0')
}
def postgres = 'org.postgresql:postgresql:9.4.1212'
configure([globalModule, coreModule, webModule, guiModule]) {
    apply(plugin: 'java')
    apply(plugin: 'maven')
    apply(plugin: 'idea')
    apply(plugin: 'cuba')
    dependencies {
        testCompile('junit:junit:4.12')
        testCompile('org.spockframework:spock-core:1.0-groovy-2.4')
        testRuntime('cglib:cglib-nodep:3.1')
        testCompile('com.haulmont.masquerade:masquerade-web:2.0.2')
        testCompile('com.haulmont.masquerade:masquerade-connector:2.0.2')
     }
    task sourceJar(type: Jar) {
        from file('src')
        classifier = 'sources'
    }
    artifacts {
        archives sourceJar
    }
}
configure([globalModule, coreModule, webModule, guiModule]) {
    apply(plugin: 'groovy')
    sourceSets {
        main { groovy { srcDirs = ["src"] } }
        test { groovy { srcDirs = ["test"] } }
    }
}
configure(globalModule) {
    dependencies {
        compile('com.googlecode.libphonenumber:libphonenumber:8.8.8')
        compile('com.googlecode.libphonenumber:geocoder:2.85')
        compile('com.googlecode.libphonenumber:prefixmapper:2.85')
        compile('com.googlecode.libphonenumber:carrier:1.75')
        compile('net.lingala.zip4j:zip4j:1.2.4')
        compile('joda-time:joda-time:2.10.1')
        compile('com.google.crypto.tink:tink:1.3.0-rc3')
        compile('org.xhtmlrenderer:flying-saucer-pdf:9.1.20')
        compile('mylibrary:fatturaxml121')
        compile('mylibrary:xmlsig')
        compile('mylibrary:agibilitaAGI')
        compile('mylibrary:fatturaxsl121')
    }
    entitiesEnhancing {
        main { enabled = true }\
    }
}
configure(coreModule) {
    configurations {
        jdbc
        dbscripts
    }
    dependencies {
        compile(globalModule)
        provided(servletApi)
        jdbc(postgres)
        testRuntime(postgres)
    }
    task cleanConf(description: 'Cleans up conf directory') {
        doLast {
            def dir = new File(cuba.tomcat.dir, "/conf/${modulePrefix}-core" )
            if (dir.isDirectory()) {
                ant.delete(includeemptydirs: true) {
                    fileset(dir: dir, includes: '**/*', excludes: 'local.app.properties')
                }
            }
        }
    }
    task deploy(dependsOn: [assemble, cleanConf], type: CubaDeployment) {
        appName = "${modulePrefix}-core"
        appJars(modulePrefix + '-global', modulePrefix + '-core')
    }
    task createDb(dependsOn: assembleDbScripts, description: 'Creates local database', type: CubaDbCreation) {
        dbms = 'postgres'
        host = 'localhost'
        dbName = 'artisdb2'
        dbUser = 'artiscoop'
        dbPassword = '@rt1sC00P!'
    }
    task updateDb(dependsOn: assembleDbScripts, description: 'Updates local database', type: CubaDbUpdate) {
        dbms = 'postgres'
        host = 'localhost'
        dbName = 'artisdb2'
        dbUser = 'artiscoop'
        dbPassword = '@rt1sC00P!'
    }
}
configure(guiModule) {
    dependencies {
        compile(globalModule)
    }
    task deployConf(type: Copy) {
        from file('src')
        include "pro/sysonline/contacts/**"
        into "$cuba.tomcat.dir/conf/${modulePrefix}"
    }
}
configure(webModule) {
    configurations {
        webcontent
    }
    dependencies {
        provided(servletApi)
        compile(guiModule)
        testCompile('org.seleniumhq.selenium:selenium-java:4.0.0-alpha-5')
        testCompile('com.codeborne:selenide:5.10.0')        
        testCompile('com.jayway.jsonpath:json-path:2.4.0')
    }
    task webArchive(type: Zip) {
        from file("$buildDir/web")
        from file('web')
        classifier = 'web'
    }
    artifacts {
        archives webArchive
    }
    task deployConf(type: Copy) {
        from file('src')
        include "pro/sysonline/contacts/**"
        into "$cuba.tomcat.dir/conf/${modulePrefix}"
    }
    task clearMessagesCache(type: CubaClearMessagesCache) {
        appName = "${modulePrefix}"
    }
    deployConf.dependsOn clearMessagesCache
    task cleanConf(description: 'Cleans up conf directory') {
        doLast {
            def dir = new File(cuba.tomcat.dir, "/conf/${modulePrefix}" )
            if (dir.isDirectory()) {
                ant.delete(includeemptydirs: true) {
                    fileset(dir: dir, includes: '**/*', excludes: 'local.app.properties')
                }
            }
        }
    }
    task deploy(dependsOn: [assemble, cleanConf], type: CubaDeployment) {
        appName = "${modulePrefix}"
        appJars(modulePrefix + '-global', modulePrefix + '-gui', modulePrefix + '-web')
    }
    task buildScssThemes(type: CubaWebScssThemeCreation)
    task deployThemes(type: CubaDeployThemeTask, dependsOn: buildScssThemes)
    assemble.dependsOn buildScssThemes
}
configure(webThemesModule) {
    apply(plugin: 'java')
    apply(plugin: 'maven')
    apply(plugin: 'cuba')
    appModuleType = 'web-themes'
    buildDir = file('../build/scss-themes')
    sourceSets {
        main {
            java {
                srcDir '.'
            }
            resources {
                srcDir '.'
            }
        }
    }
}
task undeploy(type: Delete, dependsOn: ":${modulePrefix}-web:cleanConf" ) {
    delete("$cuba.tomcat.dir/shared")
    delete("$cuba.tomcat.dir/webapps/${modulePrefix}-core" )
    delete("$cuba.tomcat.dir/webapps/${modulePrefix}" )
}
task restart(dependsOn: ['stop', ":${modulePrefix}-core:deploy" , ":${modulePrefix}-web:deploy" ], description: 'Redeploys applications and restarts local Tomcat') {
    doLast {
        ant.waitfor(maxwait: 6, maxwaitunit: 'second', checkevery: 2, checkeveryunit: 'second') {
            not {
                socket(server: 'localhost', port: '8787')
            }
        }
        start.execute()
    }
}
//task wrapper(type: Wrapper) {
//   gradleVersion = '4.3.1'
//}
task buildWar(type: CubaWarBuilding) {
    appHome = './app_home'
    singleWar = false
    includeContextXml = true
    includeJdbcDriver = true
}
task buildSingleWar(type: CubaWarBuilding) {
    appHome = '${catalina.base}/work'
    singleWar = true
    includeContextXml = true
    includeJdbcDriver = true
    appProperties = ['cuba.automaticDatabaseUpdate': false]
    webXmlPath = 'modules/web/web/WEB-INF/single-war-web.xml'
    coreContextXmlPath = 'modules/core/web/META-INF/war-context.xml'
}
apply from: 'extra.gradle'
buildscript {
    ext.cubaVersion = '6.10.20'
    repositories {
        mavenCentral()
        maven {
            url 'https://repo.cuba-platform.com/content/groups/work'
            credentials {
                username(rootProject.hasProperty('repoUser') ? rootProject['repoUser'] : 'cuba')
                password(rootProject.hasProperty('repoPass') ? rootProject['repoPass'] : 'cuba123')
            }
        }
        maven {
            url 'https://repo.cuba-platform.com/content/groups/premium'
            credentials {
                username(rootProject.hasProperty('premiumRepoUser') ? rootProject['premiumRepoUser'] : System.getenv('CUBA_PREMIUM_USER'))
                password(rootProject.hasProperty('premiumRepoPass') ? rootProject['premiumRepoPass'] : System.getenv('CUBA_PREMIUM_PASSWORD'))
            }
        }
        maven {
            url  "https://dl.bintray.com/mariodavid/cuba-components"
        }
        //flatDir { dirs '/home/demassis/studio-projects/Contacts/extlib' }
        flatDir { dirs 'extlib', 'res' }
    }
    dependencies {
        classpath "com.haulmont.gradle:cuba-plugin:$cubaVersion"
    }
}
plugins {
    id  'org.asciidoctor.convert' version '1.6.0' apply false
}
def modulePrefix = 'app'
def globalModule = project(":${modulePrefix}-global" )
def coreModule = project(":${modulePrefix}-core" )
def webModule = project(":${modulePrefix}-web" )
def webThemesModule = project(":${modulePrefix}-web-themes" )
def guiModule = project(":${modulePrefix}-gui")
def servletApi = 'javax.servlet:javax.servlet-api:3.1.0'
apply(plugin: 'idea')
apply(plugin: 'cuba')
cuba {
    artifact {
        group = 'pro.sysonline.contacts'
        version = '0.1'
        isSnapshot = true
    }
    tomcat {
        dir = "$project.rootDir/deploy/tomcat"
    }
    ide {
        vcs = 'Git'
    }
}
dependencies {
    appComponent("com.haulmont.cuba:cuba-global:$cubaVersion")
    appComponent("com.haulmont.reports:reports-global:$cubaVersion")
    appComponent("com.haulmont.fts:fts-global:$cubaVersion")
    appComponent("com.haulmont.charts:charts-global:$cubaVersion")
    appComponent("com.haulmont.addon.emailtemplates:yet-global:1.0.3")
    appComponent("de.diedavids.cuba.wizard:wizard-global:0.3.0")
    appComponent("com.haulmont.addon.imap:imap-global:1.2.0")
    appComponent('it.nexbit.cuba.security.forgotpassword:nxsecfp-global:2.2.0')
    appComponent('it.nexbit.cuba.translationit:translationit-global:6.10.2')
    appComponent('de.diedavids.cuba.dataimport:dataimport-global:0.7.0')
}
def postgres = 'org.postgresql:postgresql:9.4.1212'
configure([globalModule, coreModule, webModule, guiModule]) {
    apply(plugin: 'java')
    apply(plugin: 'maven')
    apply(plugin: 'idea')
    apply(plugin: 'cuba')
    dependencies {
        testCompile('junit:junit:4.12')
        testCompile('org.spockframework:spock-core:1.0-groovy-2.4')
        testRuntime('cglib:cglib-nodep:3.1')
        testCompile('com.haulmont.masquerade:masquerade-web:2.0.2')
        testCompile('com.haulmont.masquerade:masquerade-connector:2.0.2')
     }
    task sourceJar(type: Jar) {
        from file('src')
        classifier = 'sources'
    }
    artifacts {
        archives sourceJar
    }
}
configure([globalModule, coreModule, webModule, guiModule]) {
    apply(plugin: 'groovy')
    sourceSets {
        main { groovy { srcDirs = ["src"] } }
        test { groovy { srcDirs = ["test"] } }
    }
}
configure(globalModule) {
    dependencies {
        compile('com.googlecode.libphonenumber:libphonenumber:8.8.8')
        compile('com.googlecode.libphonenumber:geocoder:2.85')
        compile('com.googlecode.libphonenumber:prefixmapper:2.85')
        compile('com.googlecode.libphonenumber:carrier:1.75')
        compile('net.lingala.zip4j:zip4j:1.2.4')
        compile('joda-time:joda-time:2.10.1')
        compile('com.google.crypto.tink:tink:1.3.0-rc3')
        compile('org.xhtmlrenderer:flying-saucer-pdf:9.1.20')
        compile('mylibrary:fatturaxml121')
        compile('mylibrary:xmlsig')
        compile('mylibrary:agibilitaAGI')
        compile('mylibrary:fatturaxsl121')
    }
    entitiesEnhancing {
        main { enabled = true }\
    }
}
configure(coreModule) {
    configurations {
        jdbc
        dbscripts
    }
    dependencies {
        compile(globalModule)
        provided(servletApi)
        jdbc(postgres)
        testRuntime(postgres)
    }
    task cleanConf(description: 'Cleans up conf directory') {
        doLast {
            def dir = new File(cuba.tomcat.dir, "/conf/${modulePrefix}-core" )
            if (dir.isDirectory()) {
                ant.delete(includeemptydirs: true) {
                    fileset(dir: dir, includes: '**/*', excludes: 'local.app.properties')
                }
            }
        }
    }
    task deploy(dependsOn: [assemble, cleanConf], type: CubaDeployment) {
        appName = "${modulePrefix}-core"
        appJars(modulePrefix + '-global', modulePrefix + '-core')
    }
    task createDb(dependsOn: assembleDbScripts, description: 'Creates local database', type: CubaDbCreation) {
        dbms = 'postgres'
        host = 'localhost'
        dbName = 'artisdb2'
        dbUser = 'artiscoop'
        dbPassword = '@rt1sC00P!'
    }
    task updateDb(dependsOn: assembleDbScripts, description: 'Updates local database', type: CubaDbUpdate) {
        dbms = 'postgres'
        host = 'localhost'
        dbName = 'artisdb2'
        dbUser = 'artiscoop'
        dbPassword = '@rt1sC00P!'
    }
}
configure(guiModule) {
    dependencies {
        compile(globalModule)
    }
    task deployConf(type: Copy) {
        from file('src')
        include "pro/sysonline/contacts/**"
        into "$cuba.tomcat.dir/conf/${modulePrefix}"
    }
}
configure(webModule) {
    configurations {
        webcontent
    }
    dependencies {
        provided(servletApi)
        compile(guiModule)
        testCompile('org.seleniumhq.selenium:selenium-java:4.0.0-alpha-5')
        testCompile('com.codeborne:selenide:5.10.0')        
        testCompile('com.jayway.jsonpath:json-path:2.4.0')
    }
    task webArchive(type: Zip) {
        from file("$buildDir/web")
        from file('web')
        classifier = 'web'
    }
    artifacts {
        archives webArchive
    }
    task deployConf(type: Copy) {
        from file('src')
        include "pro/sysonline/contacts/**"
        into "$cuba.tomcat.dir/conf/${modulePrefix}"
    }
    task clearMessagesCache(type: CubaClearMessagesCache) {
        appName = "${modulePrefix}"
    }
    deployConf.dependsOn clearMessagesCache
    task cleanConf(description: 'Cleans up conf directory') {
        doLast {
            def dir = new File(cuba.tomcat.dir, "/conf/${modulePrefix}" )
            if (dir.isDirectory()) {
                ant.delete(includeemptydirs: true) {
                    fileset(dir: dir, includes: '**/*', excludes: 'local.app.properties')
                }
            }
        }
    }
    task deploy(dependsOn: [assemble, cleanConf], type: CubaDeployment) {
        appName = "${modulePrefix}"
        appJars(modulePrefix + '-global', modulePrefix + '-gui', modulePrefix + '-web')
    }
    task buildScssThemes(type: CubaWebScssThemeCreation)
    task deployThemes(type: CubaDeployThemeTask, dependsOn: buildScssThemes)
    assemble.dependsOn buildScssThemes
}
configure(webThemesModule) {
    apply(plugin: 'java')
    apply(plugin: 'maven')
    apply(plugin: 'cuba')
    appModuleType = 'web-themes'
    buildDir = file('../build/scss-themes')
    sourceSets {
        main {
            java {
                srcDir '.'
            }
            resources {
                srcDir '.'
            }
        }
    }
}
task undeploy(type: Delete, dependsOn: ":${modulePrefix}-web:cleanConf" ) {
    delete("$cuba.tomcat.dir/shared")
    delete("$cuba.tomcat.dir/webapps/${modulePrefix}-core" )
    delete("$cuba.tomcat.dir/webapps/${modulePrefix}" )
}
task restart(dependsOn: ['stop', ":${modulePrefix}-core:deploy" , ":${modulePrefix}-web:deploy" ], description: 'Redeploys applications and restarts local Tomcat') {
    doLast {
        ant.waitfor(maxwait: 6, maxwaitunit: 'second', checkevery: 2, checkeveryunit: 'second') {
            not {
                socket(server: 'localhost', port: '8787')
            }
        }
        start.execute()
    }
}
//task wrapper(type: Wrapper) {
//   gradleVersion = '4.3.1'
//}
task buildWar(type: CubaWarBuilding) {
    appHome = './app_home'
    singleWar = false
    includeContextXml = true
    includeJdbcDriver = true
}
task buildSingleWar(type: CubaWarBuilding) {
    appHome = '${catalina.base}/work'
    singleWar = true
    includeContextXml = true
    includeJdbcDriver = true
    appProperties = ['cuba.automaticDatabaseUpdate': false]
    webXmlPath = 'modules/web/web/WEB-INF/single-war-web.xml'
    coreContextXmlPath = 'modules/core/web/META-INF/war-context.xml'
}
apply from: 'extra.gradle'