예제 #1
0
  @Override
  protected void handleURL(URL url, final Set<String> classes, final Set<URL> urls) {
    try {
      final VirtualFile archive = VFS.getRoot(url.toURI());
      archive.visit(
          new VirtualFileVisitor() {
            public VisitorAttributes getAttributes() {
              return VisitorAttributes.RECURSE_LEAVES_ONLY;
            }

            public void visit(VirtualFile vf) {
              try {
                String name = getRelativePath(archive, vf);
                URL url = vf.toURL();
                handle(name, url, classes, urls);
              } catch (Exception e) {
                throw new RuntimeException(e);
              }
            }
          });
    } catch (Exception e) {
      throw new RuntimeException("Error handling url " + url, e);
    }
  }