code: public List<Class<?>> enumerateClasses(URL propertiesFile, String prefix) {
      // find mapped service classes in service.properties
      Properties properties = new Properties();
  
      InputStream is = null;
      try {
        is = propertiesFile.openStream();
  
        if (is != null) {
          properties.load(is);
        }
  
      } catch (IOException e) {
        Log.warn(e.getMessage());
  
      } finally {
        if (is != null) {
          try {
            is.close();
          } catch (IOException ignore) {
  
          }
        }
      }
  
      List<Class<?>> classes = new ArrayList<Class<?>>();
  
      if (properties.size() > 0) {
        for (Object key : properties.keySet()) {
          if (key.toString().startsWith(prefix)) {
            try {
              // does the class resolve?
              Class<?> klass = Class.forName(properties.get(key).toString());
  
              // if so, add it
              classes.add(klass);
  
            } catch (ClassNotFoundException e) {
              Log.warn("Unable to find class [" + properties.get(key).toString() + "]");
            }
          }
        }
      }
  
      return classes;
    }
docs: {@inheritDoc}