package Ġcom . github . mv ys ny . k ari but esting . v 1 0 Ċ Ċ import Ġcom . vaadin . flow . component . dependency . N pm Package Ċ import Ġcom . vaadin . flow . server . Deployment Configuration Factory Ċ import Ġcom . vaadin . flow . server . Version Ċ import Ġcom . vaadin . shrink wrap . V aad in Core Shrink Wrap Ċ import Ġelement al . json . Json Ċ import Ġelement al . json . JsonObject Ċ import Ġjava . lang . reflect . Method Ċ Ċ data Ġclass ĠSemantic Version ( val Ġmajor : ĠInt , Ġval Ġminor : ĠInt , Ġval Ġbug fix : ĠInt ) Ġ: ĠComparable < Semantic Version > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġcompare To ( other : ĠSemantic Version ): ĠInt Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcompare Values By ( this , Ġother , Ġ{ Ġit . major Ġ}, Ġ{ Ġit . minor Ġ}, Ġ{ Ġit . bug fix Ġ}) ĊĊĠĠĠ Ġoverride Ġfun ĠtoString () Ġ= Ġ"$ major .$ minor .$ bug fix " Ċ } Ċ Ċ object ĠV aad in Meta Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠV aad in ĠFlow Ġ` flow - server . jar ` Ġversion : Ġfor Ġexample Ġ 1 . 2 . 0 Ġfor ĠV aad in Ġ 1 2 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġflow Version : ĠSemantic Version Ġget () Ġ= ĠSemantic Version ( Version . get Major Version (), ĠVersion . get Minor Version (), ĠVersion . get Revision ()) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns ĠV aad in Ġversion . ĠReturns Ġone Ġof Ġ 1 4 Ġor Ġ 1 5 . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġversion : ĠInt Ġget () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġfor ĠV aad in Ġ 1 4 + Ġthe Ġversion Ġcan Ġbe Ġdetected Ġfrom Ġthe ĠV aad in Core Shrink Wrap Ġclass . ĊĠĠĠĠĠĠĠ Ġ// ĠThis Ġdoesn 't Ġwork Ġfor ĠV aad in Ġ 1 3 Ġor Ġlower , Ġbut Ġnever mind Ġ- Ġwe Ġonly Ġsupport ĠV aad in Ġ 1 5 + Ġanyway . ĊĠĠĠĠĠĠĠ Ġval Ġversion : ĠString Ġ= ĠV aad in Core Shrink Wrap :: class . java . getAnnotation ( N pm Package :: class . java ). version ĊĠĠĠĠĠĠĠ Ġreturn Ġversion . take While Ġ{ Ġit Ġ!= Ġ'.' Ġ}. toInt () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġflow Build Info : ĠJsonObject ? Ġget () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠUse ĠDeployment Configuration Factory . getResource From Class loader () Ġto Ġmake Ġsure Ġto Ġread ĊĠĠĠĠĠĠĠ Ġ// Ġthe Ġsame Ġflow - build - info . json Ġthat ĠV aad in Ġreads . ĊĠĠĠĠĠĠĠ Ġval Ġm : ĠMethod Ġ= ĠDeployment Configuration Factory :: class . java . getDeclared Method (" getResource From Class loader ") ĊĠĠĠĠĠĠĠ Ġm . is Accessible Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġval Ġjson : ĠString Ġ= Ġm . invoke ( null ) Ġas ĠString ? Ġ?: Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġreturn ĠJson . parse ( json ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAlways Ġfalse . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġis Compatibility Mode : ĠBoolean Ġget () Ġ{ ĊĠĠĠĠĠĠĠ Ġcheck ( version Ġ>= Ġ 1 5 ) Ġ{ Ġ" K ari bu - Testing Ġ 1 . 2 . x Ġis Ġonly Ġcompatible Ġwith ĠV aad in Ġ 1 5 Ġand Ġabove , Ġbut Ġgot Ġ$ version " Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} Ċ } Ċ