code: protected static void enforceVersionRequired(String intfName, Version version, VersionRequired versionRequired)
      {
          if ( versionRequired != null )
          {
              int majorRequired = versionRequired.major();
              int minorRequired = versionRequired.minor();
  
              if ( majorRequired < 0 )    // no real version requirement
                  return;
  
              int majorPresent = -1;
              int minorPresent = -1;
              if ( version != null )
              {
                  majorPresent = version.major();
                  minorPresent = version.minor();
  
                  if ( majorRequired <= majorPresent &&
                       (minorRequired < 0 || minorRequired <= minorPresent) )
                  {
                      // Version requirement is satisfied
                      return;
                  }
              }
  
              //
              // Version requirement failed
              //
              throw new ControlException( "Control extension " + intfName + " fails version requirement: requires interface version " +
                      majorRequired + "." + minorRequired + ", found interface version " +
                      majorPresent + "." + minorPresent + "." );
          }
      }
docs: Enforces the VersionRequired annotation at runtime (called from each ControlBean).
  @param intfName
  @param version
  @param versionRequired