Uploaded image for project: 'Groovy'
  1. Groovy
  2. GROOVY-2422

API for checking version and capabilities of Groovy runtime



    • Wish
    • Status: Open
    • Minor
    • Resolution: Unresolved
    • None
    • None
    • None
    • None
    • All


      As discussed on the groovy-user mailing list, the idea here is to provide a simple API for checking/asserting the Groovy version that a script is being run under or the "capabilities" it provides. This would allow scripts to ensure that the environment they are running in is able to support their needs and to either halt execution or recover gracefully.

      A potential API would look something like this:

      package groovy.lang
      class GroovyRuntime {
          /* Capability checks */
          static void registerCapability(String capability, String description)
          static boolean hasCapability(String... capability)
          static void assertCapability(String... capability) throws AssertionError
          /* Version checks */
          static boolean hasMinimumVersion(String version)
          static void assertMinimumVersion(String version) throws AssertionError
          static boolean hasVersionInRange(String minVersion, String maxVersion)
          static void assertVersionInRange(String minVersion, String maxVersion) throws AssertionError

      The version checks would have enough smarts about the Groovy versioning scheme to be able to know about "beta", "rc", and "SNAPSHOT" in addition to standard version string comparison logic. For what it's worth, Perl has similar functionality (e.g. "use v5.8"). The capability checking mechanism would allow capabilities to be registered with a code and description and would allow capabilities to be checked by code. Capabilities would correspond to major features like "joint-compilation", "annotations", "enumerations", etc.




            Unassigned Unassigned
            md5 Mike Dillon
            0 Vote for this issue
            1 Start watching this issue