code: protected String getPackageName(String path) throws IOException {
          return path.substring(getAssetPath().length() + 1, path.length() - 5).replace('/', '.');
      }
docs: Paths are relative to the repository base.