public void printSimpleKmd() throws FileNotFoundException, IOException, NoSuchAlgorithmException {
    if (moduleManager == null) {
      loadModulesFromKmdFiles();
    }

    MessageDigest digest = MessageDigest.getInstance("MD5");

    for (ModuleDefinition module : moduleManager.getModules()) {
      for (RemoteClass klass : module.getRemoteClasses()) {
        System.out.println("RemoteClass:\t" + klass.getName());
        digest.update(klass.getName().getBytes());
      }
      for (Event event : module.getEvents()) {
        System.out.println("Event:\t" + event.getName());
        digest.update(event.getName().getBytes());
      }
      for (ComplexType complexType : module.getComplexTypes()) {
        System.out.println("ComplexType:\t" + complexType.getName());
        digest.update(complexType.getName().getBytes());
      }
      for (Import dep : module.getImports()) {
        String depDesc = dep.getName() + " " + dep.getVersion();
        System.out.println("Dep: " + depDesc);
        digest.update(depDesc.getBytes());
      }
    }

    System.out.print("Digest: ");
    for (byte b : digest.digest()) {
      String hexStr = Integer.toHexString(b & 0xFF);
      if (hexStr.length() < 1) {
        hexStr = "00";
      } else if (hexStr.length() < 2) {
        hexStr = "0" + hexStr;
      }

      System.out.print(hexStr);
    }

    System.out.println("");
  }