package Ġcom . vaadin . gradle Ċ Ċ import Ġorg . gradle . test kit . runner . Build Result Ċ import Ġorg . junit . Test Ċ import Ġjava . io . File Ċ import Ġjava . nio . file . Files Ċ import Ġkotlin . test . expect Ċ Ċ class ĠMisc Single Module Test Ġ: ĠAbstract Gradle Test () Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠTests Ġhttps :// github . com / vaadin / vaadin - gradle - plugin / issues / 2 6 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest V aad in 8 V aad in 1 4 MP R Project () Ġ{ ĊĠĠĠĠĠĠĠ Ġbuild File . write Text (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplugins Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ" com . dev soap . plugin . vaadin " Ġversion Ġ" 1 . 4 . 1 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ' com . vaadin ' ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepositories Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġj center () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġtest Ġthat Ġwe Ġcan Ġconfigure Ġboth Ġplugins ĊĠĠĠĠĠĠĠĠĠĠĠ Ġva adin Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġversion Ġ= Ġ" 8 . 9 . 4 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġva adin 1 4 Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptimize Bundle Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ"" ") ĊĊĠĠĠĠĠĠĠ Ġ// Ġthe Ġcollision Ġbetween Ġdev soap 's Ġ` vaadin ` Ġextension Ġand Ġcom . vaadin 's Ġ` vaadin ` ĊĠĠĠĠĠĠĠ Ġ// Ġextension Ġwould Ġcrash Ġeven Ġthis Ġvery Ġsimple Ġbuild . ĊĠĠĠĠĠĠĠ Ġbuild (" tasks ") ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġtest Ġcovers Ġthe Ġ[ Base ĠSt arter ĠGradle ]( https :// github . com / vaadin / base - starter - gradle ) ĊĠĠĠĠ Ġ* Ġexample Ġproject . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest War Project Development Mode () Ġ{ ĊĠĠĠĠĠĠĠ Ġbuild File . write Text (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplugins Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ' war ' ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ' org . g retty ' Ġversion Ġ' 3 . 0 . 1 ' ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid (" com . vaadin ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepositories Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġj center () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdependencies Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠV aad in Ġ 1 4 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompile (" com . vaadin : vaadin - core : 1 4 . 1 . 1 6 ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠ ĠWeb j ars Ġare Ġonly Ġneeded Ġwhen Ġrunning Ġin ĠV aad in Ġ 1 3 Ġcompatibility Ġmode ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ[" com . vaadin . web jar ", Ġ" org . web j ars . bower github . ins ites ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" org . web j ars . bower github . polymer ", Ġ" org . web j ars . bower github . pol ym ere lement s ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" org . web j ars . bower github . vaadin ", Ġ" org . web j ars . bower github . web components "] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. forEach Ġ{ Ġgroup Ġ-> Ġexclude ( group : Ġgroup ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprovided Compile (" javax . servlet : javax . servlet - api : 3 . 1 . 0 ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġlogging ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġcurrently Ġwe Ġare Ġlogging Ġthrough Ġthe ĠSL F 4 J ĠAPI Ġto ĠSL F 4 J - Simple . ĠSee Ġsrc / main / resources / simple logger . properties Ġfile Ġfor Ġthe Ġlogger Ġconfiguration ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompile (" org . slf 4 j : slf 4 j - simple : 1 . 7 . 3 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġbuild : ĠBuild Result Ġ= Ġbuild (" clean ", Ġ" vaadin Prepare Node ", Ġ" build ") ĊĠĠĠĠĠĠĠ Ġ// Ġva adin Build Frontend Ġshould ĠNOT Ġhave Ġbeen Ġexecuted Ġautomatically ĊĠĠĠĠĠĠĠ Ġexpect ( null ) Ġ{ Ġbuild . task (": vaadin Build Frontend ") Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġwar : ĠFile Ġ= Ġtest Project Dir . find (" build / libs /*. war "). first () ĊĠĠĠĠĠĠĠ Ġexpect ( true , Ġ"$ war Ġis Ġmissing \ n ${ build . output }") Ġ{ Ġwar . isFile Ġ} ĊĠĠĠĠĠĠĠ Ġexpect Archive Does nt Contain V aad in Webpack Bundle ( war , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġtest Ġcovers Ġthe Ġ[ Base ĠSt arter ĠGradle ]( https :// github . com / vaadin / base - starter - gradle ) ĊĠĠĠĠ Ġ* Ġexample Ġproject . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest War Project Production Mode () Ġ{ ĊĠĠĠĠĠĠĠ Ġbuild File . write Text (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplugins Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ' war ' ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ' org . g retty ' Ġversion Ġ' 3 . 0 . 1 ' ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid (" com . vaadin ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepositories Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġj center () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġva adin Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptimize Bundle Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdependencies Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠV aad in Ġ 1 4 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompile (" com . vaadin : vaadin - core : 1 4 . 1 . 1 6 ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠ ĠWeb j ars Ġare Ġonly Ġneeded Ġwhen Ġrunning Ġin ĠV aad in Ġ 1 3 Ġcompatibility Ġmode ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ[" com . vaadin . web jar ", Ġ" org . web j ars . bower github . ins ites ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" org . web j ars . bower github . polymer ", Ġ" org . web j ars . bower github . pol ym ere lement s ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" org . web j ars . bower github . vaadin ", Ġ" org . web j ars . bower github . web components "] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. forEach Ġ{ Ġgroup Ġ-> Ġexclude ( group : Ġgroup ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprovided Compile (" javax . servlet : javax . servlet - api : 3 . 1 . 0 ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġlogging ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġcurrently Ġwe Ġare Ġlogging Ġthrough Ġthe ĠSL F 4 J ĠAPI Ġto ĠSL F 4 J - Simple . ĠSee Ġsrc / main / resources / simple logger . properties Ġfile Ġfor Ġthe Ġlogger Ġconfiguration ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompile (" org . slf 4 j : slf 4 j - simple : 1 . 7 . 3 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġbuild : ĠBuild Result Ġ= Ġbuild ("- P vaadin . production Mode ", Ġ" clean ", Ġ" vaadin Prepare Node ", Ġ" build ") ĊĠĠĠĠĠĠĠ Ġ// Ġva adin Build Frontend Ġshould Ġhave Ġbeen Ġexecuted Ġautomatically ĊĠĠĠĠĠĠĠ Ġbuild . expect Task Suc ce ded (" vaadin Build Frontend ") ĊĊĠĠĠĠĠĠĠ Ġval Ġwar : ĠFile Ġ= Ġtest Project Dir . find (" build / libs /*. war "). first () ĊĠĠĠĠĠĠĠ Ġexpect ( true , Ġ"$ war Ġis Ġmissing \ n ${ build . output }") Ġ{ Ġwar . isFile Ġ} ĊĠĠĠĠĠĠĠ Ġexpect Archive Contains V aad in Webpack Bundle ( war , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġtest Ġcovers Ġthe Ġhttps :// github . com / mv ys ny / vaadin 1 4 - embedded - jetty - gradle Ġexample . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Jar Project Development Mode () Ġ{ ĊĠĠĠĠĠĠĠ Ġbuild File . write Text (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplugins Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ' java ' ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid (" com . vaadin ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepositories Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġj center () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdef Ġjet ty Version Ġ= Ġ" 9 . 4 . 2 0 . v 2 0 1 9 0 8 1 3 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġva adin Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptimize Bundle Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdependencies Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠV aad in Ġ 1 4 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompile (" com . vaadin : vaadin - core : 1 4 . 1 . 1 6 ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠ ĠWeb j ars Ġare Ġonly Ġneeded Ġwhen Ġrunning Ġin ĠV aad in Ġ 1 3 Ġcompatibility Ġmode ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ[" com . vaadin . web jar ", Ġ" org . web j ars . bower github . ins ites ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" org . web j ars . bower github . polymer ", Ġ" org . web j ars . bower github . pol ym ere lement s ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" org . web j ars . bower github . vaadin ", Ġ" org . web j ars . bower github . web components "] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. forEach Ġ{ Ġgroup Ġ-> Ġexclude ( group : Ġgroup ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompile (" javax . servlet : javax . servlet - api : 3 . 1 . 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompile (" org . eclipse . jetty : jetty - continu ation :${ " $" }{ jetty Version }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompile (" org . eclipse . jetty : jetty - server :${ " $" }{ jetty Version }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompile (" org . eclipse . jetty . websocket : websocket - server :${ " $" }{ jetty Version }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompile (" org . eclipse . jetty . websocket : javax - websocket - server - impl :${ " $" }{ jetty Version }") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexclude ( module : Ġ" javax . websocket - client - api ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġlogging ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġcurrently Ġwe Ġare Ġlogging Ġthrough Ġthe ĠSL F 4 J ĠAPI Ġto ĠSL F 4 J - Simple . ĠSee Ġsrc / main / resources / simple logger . properties Ġfile Ġfor Ġthe Ġlogger Ġconfiguration ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompile (" org . slf 4 j : slf 4 j - simple : 1 . 7 . 3 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġbuild : ĠBuild Result Ġ= Ġbuild (" clean ", Ġ" vaadin Prepare Node ", Ġ" build ") ĊĠĠĠĠĠĠĠ Ġ// Ġva adin Build Frontend Ġshould ĠNOT Ġhave Ġbeen Ġexecuted Ġautomatically ĊĠĠĠĠĠĠĠ Ġexpect ( null ) Ġ{ Ġbuild . task (": vaadin Build Frontend ") Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġjar : ĠFile Ġ= Ġtest Project Dir . find (" build / libs /*. jar "). first () ĊĠĠĠĠĠĠĠ Ġexpect ( true , Ġ"$ jar Ġis Ġmissing \ n ${ build . output }") Ġ{ Ġjar . isFile Ġ} ĊĠĠĠĠĠĠĠ Ġexpect Archive Does nt Contain V aad in Webpack Bundle ( jar , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġtest Ġcovers Ġthe Ġhttps :// github . com / mv ys ny / vaadin 1 4 - embedded - jetty - gradle Ġexample . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Jar Project Production Mode () Ġ{ ĊĠĠĠĠĠĠĠ Ġbuild File . write Text (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplugins Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ' java ' ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid (" com . vaadin ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepositories Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġj center () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdef Ġjet ty Version Ġ= Ġ" 9 . 4 . 2 0 . v 2 0 1 9 0 8 1 3 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġva adin Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptimize Bundle Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdependencies Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠV aad in Ġ 1 4 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompile (" com . vaadin : vaadin - core : 1 4 . 1 . 1 6 ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠ ĠWeb j ars Ġare Ġonly Ġneeded Ġwhen Ġrunning Ġin ĠV aad in Ġ 1 3 Ġcompatibility Ġmode ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ[" com . vaadin . web jar ", Ġ" org . web j ars . bower github . ins ites ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" org . web j ars . bower github . polymer ", Ġ" org . web j ars . bower github . pol ym ere lement s ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" org . web j ars . bower github . vaadin ", Ġ" org . web j ars . bower github . web components "] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. forEach Ġ{ Ġgroup Ġ-> Ġexclude ( group : Ġgroup ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompile (" javax . servlet : javax . servlet - api : 3 . 1 . 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompile (" org . eclipse . jetty : jetty - continu ation :${ " $" }{ jetty Version }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompile (" org . eclipse . jetty : jetty - server :${ " $" }{ jetty Version }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompile (" org . eclipse . jetty . websocket : websocket - server :${ " $" }{ jetty Version }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompile (" org . eclipse . jetty . websocket : javax - websocket - server - impl :${ " $" }{ jetty Version }") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexclude ( module : Ġ" javax . websocket - client - api ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġlogging ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġcurrently Ġwe Ġare Ġlogging Ġthrough Ġthe ĠSL F 4 J ĠAPI Ġto ĠSL F 4 J - Simple . ĠSee Ġsrc / main / resources / simple logger . properties Ġfile Ġfor Ġthe Ġlogger Ġconfiguration ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompile (" org . slf 4 j : slf 4 j - simple : 1 . 7 . 3 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġbuild : ĠBuild Result Ġ= Ġbuild ("- P vaadin . production Mode ", Ġ" clean ", Ġ" vaadin Prepare Node ", Ġ" build ") ĊĠĠĠĠĠĠĠ Ġbuild . expect Task Suc ce ded (" vaadin Prepare Frontend ") ĊĠĠĠĠĠĠĠ Ġbuild . expect Task Suc ce ded (" vaadin Build Frontend ") ĊĊĠĠĠĠĠĠĠ Ġval Ġjar : ĠFile Ġ= Ġtest Project Dir . find (" build / libs /*. jar "). first () ĊĠĠĠĠĠĠĠ Ġexpect ( true , Ġ"$ jar Ġis Ġmissing \ n ${ build . output }") Ġ{ Ġjar . isFile Ġ} ĊĠĠĠĠĠĠĠ Ġexpect Archive Contains V aad in Webpack Bundle ( jar , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠTests Ġhttps :// github . com / vaadin / vaadin - gradle - plugin / issues / 2 4 ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThe Ġ` implementation ()` Ġdependency Ġtype Ġwould Ġcause Ġincorrect Ġjar Ġlist Ġcomputation , ĊĠĠĠĠ Ġ* Ġwhich Ġwould Ġthen Ġnot Ġpopulate Ġthe Ġ` node _ modules /@ vaadin / flow - frontend ` Ġfolder , ĊĠĠĠĠ Ġ* Ġwhich Ġwould Ġcase Ġwebpack Ġto Ġfail Ġduring Ġva adin Build Frontend . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThis Ġbuild Ġscript Ġcovers Ġthe Ġ[ Spring ĠBoot Ġexample ]( https :// github . com / vaadin / base - starter - spring - gradle ) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest V aad in 1 4 Spring Project Production Mode () Ġ{ ĊĠĠĠĠĠĠĠ Ġbuild File . write Text (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplugins Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ' org . springframework . boot ' Ġversion Ġ' 2 . 2 . 4 . RELEASE ' ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ' io . spring . dependency - management ' Ġversion Ġ' 1 . 0 . 9 . RELEASE ' ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ' java ' ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid (" com . vaadin ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepositories Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmaven Central () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġext Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset (' vaadin Version ', Ġ" 1 4 . 1 . 1 6 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfigurations Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdevelopment Only ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġruntime Classpath Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġextends From Ġdevelopment Only ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġdependencies Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimplementation (' com . vaadin : vaadin - spring - boot - starter ') Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠ ĠWeb j ars Ġare Ġonly Ġneeded Ġwhen Ġrunning Ġin ĠV aad in Ġ 1 3 Ġcompatibility Ġmode ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ[" com . vaadin . web jar ", Ġ" org . web j ars . bower github . ins ites ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" org . web j ars . bower github . polymer ", Ġ" org . web j ars . bower github . pol ym ere lement s ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" org . web j ars . bower github . vaadin ", Ġ" org . web j ars . bower github . web components "] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. forEach Ġ{ Ġgroup Ġ-> Ġexclude ( group : Ġgroup ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdevelopment Only Ġ' org . springframework . boot : spring - boot - devtools ' ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtest Implementation (' org . springframework . boot : spring - boot - starter - test ') Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexclude Ġgroup : Ġ' org . junit . vint age ', Ġmodule : Ġ' junit - vint age - engine ' ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġdependency Management Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimports Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmaven B om Ġ" com . vaadin : vaadin - bom :${ " $" }{ vaadin Version }" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ"" ") ĊĊĠĠĠĠĠĠĠ Ġ// Ġneed Ġto Ġcreate Ġthe ĠApplication . java Ġfile Ġotherwise Ġboot Jar Ġwill Ġfail ĊĠĠĠĠĠĠĠ Ġval Ġapp Pkg Ġ= ĠFile ( test Project Dir , Ġ" src / main / java / com / example / demo ") ĊĠĠĠĠĠĠĠ ĠFiles . create Directories ( app Pkg . to Path ()) ĊĠĠĠĠĠĠĠ ĠFile ( app Pkg , Ġ" Demo Application . java "). write Text (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġcom . example . demo ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġorg . springframework . boot . Spring Application ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġorg . springframework . boot . autoconfigure . SpringBoot Application ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ SpringBoot Application ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠDemo Application Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġstatic Ġvoid Ġmain ( String [] Ġargs ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSpring Application . run ( Demo Application . class , Ġargs ); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġbuild : ĠBuild Result Ġ= Ġbuild ("- P vaadin . production Mode ", Ġ" vaadin Prepare Node ", Ġ" build ") ĊĠĠĠĠĠĠĠ Ġbuild . expect Task Suc ce ded (" vaadin Prepare Frontend ") ĊĠĠĠĠĠĠĠ Ġbuild . expect Task Suc ce ded (" vaadin Build Frontend ") ĊĊĠĠĠĠĠĠĠ Ġval Ġjar : ĠFile Ġ= Ġtest Project Dir . find (" build / libs /*. jar "). first () ĊĠĠĠĠĠĠĠ Ġexpect ( true , Ġ"$ jar Ġis Ġmissing \ n ${ build . output }") Ġ{ Ġjar . isFile Ġ} ĊĠĠĠĠĠĠĠ Ġexpect Archive Contains V aad in Webpack Bundle ( jar , Ġtrue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠTests Ġhttps :// github . com / vaadin / vaadin - gradle - plugin / issues / 4 2 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Circular Deps Bug () Ġ{ ĊĠĠĠĠĠĠĠ Ġbuild File . write Text (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplugins Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ' war ' ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ' org . g retty ' Ġversion Ġ' 3 . 0 . 1 ' ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid (" com . vaadin ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepositories Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġj center () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdependencies Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠV aad in Ġ 1 4 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompile (" com . vaadin : vaadin - core : 1 4 . 1 . 1 6 ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠ ĠWeb j ars Ġare Ġonly Ġneeded Ġwhen Ġrunning Ġin ĠV aad in Ġ 1 3 Ġcompatibility Ġmode ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ[" com . vaadin . web jar ", Ġ" org . web j ars . bower github . ins ites ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" org . web j ars . bower github . polymer ", Ġ" org . web j ars . bower github . pol ym ere lement s ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" org . web j ars . bower github . vaadin ", Ġ" org . web j ars . bower github . web components "] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. forEach Ġ{ Ġgroup Ġ-> Ġexclude ( group : Ġgroup ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprovided Compile (" javax . servlet : javax . servlet - api : 3 . 1 . 0 ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġlogging ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġcurrently Ġwe Ġare Ġlogging Ġthrough Ġthe ĠSL F 4 J ĠAPI Ġto ĠSL F 4 J - Simple . ĠSee Ġsrc / main / resources / simple logger . properties Ġfile Ġfor Ġthe Ġlogger Ġconfiguration ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompile (" org . slf 4 j : slf 4 j - simple : 1 . 7 . 3 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource Sets Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgu ice Config ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfigurations Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgu ice Config Compile . extends From Ġcompile ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdependencies Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠThis Ġseems Ġto Ġbe Ġa Ġproblem Ġwith Ġthe Ġva adin - gradle - plugin , Ġbut Ġwe Ġneed Ġthis ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġto Ġhave Ġaccess Ġto Ġclasses Ġof Ġthe Ġmain Ġsource Set Ġin Ġthe Ġgu ice Ġsource Set . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgu ice Config Compile Ġsource Sets . main . output ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġcompile Gu ice Config Java Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions . compiler Args Ġ<< Ġ"- X lint : all " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions . compiler Args Ġ<< Ġ"- X lint :- serial " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġjar Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfrom Ġsource Sets . gu ice Config . output ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġbuild : ĠBuild Result Ġ= Ġbuild ("- D vaadin . production Mode ", Ġ" clean ", Ġ" vaadin Prepare Node ", Ġ" build ") ĊĠĠĠĠĠĠĠ Ġbuild . expect Task Suc ce ded (" vaadin Prepare Frontend ") ĊĠĠĠĠĠĠĠ Ġbuild . expect Task Suc ce ded (" vaadin Build Frontend ") ĊĊĠĠĠĠĠĠĠ Ġval Ġwar : ĠFile Ġ= Ġtest Project Dir . find (" build / libs /*. war "). first () ĊĠĠĠĠĠĠĠ Ġexpect ( true , Ġ"$ war Ġis Ġmissing \ n ${ build . output }") Ġ{ Ġwar . isFile Ġ} ĊĠĠĠĠĠĠĠ Ġexpect Archive Contains V aad in Webpack Bundle ( war , Ġfalse ) ĊĠĠĠ Ġ} Ċ } Ċ