@@ -22,7 +22,7 @@ type JavaManager struct {
2222 HomeDir string
2323 DownloadURL string
2424 DownloadURLReplacements map [string ]string
25- VersionConstraints string
25+ VersionConstraints [] string
2626}
2727
2828func NewJavaManager (manager * VendorManager ) * JavaManager {
@@ -34,7 +34,7 @@ func NewJavaManager(manager *VendorManager) *JavaManager {
3434 HomeDir : cv .GetString ("vendor.java.home_dir" ),
3535 DownloadURL : cv .GetString ("vendor.java.download.url" ),
3636 DownloadURLReplacements : cv .GetStringMapString ("vendor.java.download.replacements" ),
37- VersionConstraints : cv .GetString ("vendor.java.version_constraints" ),
37+ VersionConstraints : cv .GetStringSlice ("vendor.java.version_constraints" ),
3838 }
3939}
4040
@@ -119,16 +119,19 @@ func (jm *JavaManager) checkVersion() error {
119119 if err != nil {
120120 return err
121121 }
122- if jm .VersionConstraints != "" {
123- versionConstraints , err := version .NewConstraint (jm .VersionConstraints )
122+ if len (jm .VersionConstraints ) == 0 {
123+ return nil
124+ }
125+ for _ , vc := range jm .VersionConstraints {
126+ vco , err := version .NewConstraint (vc )
124127 if err != nil {
125- return fmt .Errorf ("java version constraint '%s' is invalid: %w" , jm . VersionConstraints , err )
128+ return fmt .Errorf ("java version constraint '%s' is invalid: %w" , vc , err )
126129 }
127- if ! versionConstraints .Check (currentVersion ) {
128- return fmt . Errorf ( "java current version '%s' does not meet contraints '%s'" , currentVersion , jm . VersionConstraints )
130+ if vco .Check (currentVersion ) {
131+ return nil
129132 }
130133 }
131- return nil
134+ return fmt . Errorf ( "java current version '%s' does not meet contraints '%s'" , currentVersion , strings . Join ( jm . VersionConstraints , " || " ))
132135}
133136
134137func (jm * JavaManager ) FindHomeDir () (string , error ) {
0 commit comments