Authorization problem

Sorry similar problem today, this morning was working ok.

Release Cuba 6.10.20
ext.cubaVersion = ‘6.10.20’
doesn’t work premium addons

Failed to list versions for org.webjars.npm:string_decoder.
Unable to load Maven meta-data from https://repo.cuba-platform.com/content/groups/premium/org/webjars/npm/string_decoder/maven-metadata.xml.
Could not HEAD ‘https://repo.cuba-platform.com/content/groups/premium/org/webjars/npm/string_decoder/maven-metadata.xml’. Received status code 401 from server: Unauthorized
It seems an authorization problem

Hello, Fabrizio De Massis!

Please provide more information about the problem:

  1. CUBA Studio (plugin) version (you can get this from Welcome screen)
  2. IntelliJ IDEA version (you can get this from Welcome screen)
  3. What premium addons do you try to use?
  4. The content of build.gradle file

Regards,
Irina

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.

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'

We are glad that your problem has been solved!

If you are using an IntelliJ IDEA, then to answer my first two questions, you should open the CUBA menu and select Welcome screen. A window opens in which the platform, plugin, and IDEA versions are displayed.

image

As for languages, I can try to answer here.

Open CUBA menu and select Marketplace. Type “Translation” in the search field. You can see available translation addons.


Install an addon to translate basic things: menus, buttons, error messages.

Also add new locale to the project: open CUBA Project Properties, edit “Available locales” field, add needed locale.

Run the app and choose the language in Help > Settings menu. Relogin the app.

If you still have questions, please create a separate topic so that in the future other users can use the answers if they have a similar question.

Thank you anyway this is for Cuba Platform and I did it some time ago adding Italian to basic English language. I need translation for plugin developed by a specific developer as in the post I provided and some instruction how to manage this feature for all plugin.
I’ll do as you suggest.

Bye,
Fabrizio