wro4j-core/src/main/java/ro/isdc/wro/model/resource/locator/wildcard/JarWildcardStreamLocator.java
private InputStream locateStreamFromJar(final String uri, final File jarPath)
      throws IOException {
    JarFile jarFile = null;
    try {
      LOG.debug("Locating stream from jar: {}", jarPath);
      final WildcardContext wildcardContext = new WildcardContext(uri, jarPath);
      String classPath = FilenameUtils.getPath(uri);

      if (classPath.startsWith(ClasspathUriLocator.PREFIX)) {
        classPath = substringAfter(classPath, ClasspathUriLocator.PREFIX);
      }

      jarFile = open(jarPath);
      final List<JarEntry> jarEntryList = Collections.list(jarFile.entries());
      final List<JarEntry> filteredJarEntryList = new ArrayList<JarEntry>();
      final List<File> allFiles = new ArrayList<File>();
      for (final JarEntry entry : jarEntryList) {
        final String entryName = entry.getName();
        // ignore the parent folder itself and accept only child resources
        final boolean isSupportedEntry = entryName.startsWith(classPath) && !entryName.equals(classPath)
            && accept(entryName, wildcardContext.getWildcard());
        if (isSupportedEntry) {
          allFiles.add(new File(entryName));
          LOG.debug("\tfound jar entry: {}", entryName);
          filteredJarEntryList.add(entry);
        }
      }
      final ByteArrayOutputStream out = new ByteArrayOutputStream();

      triggerWildcardExpander(allFiles, wildcardContext);
      for (final JarEntry entry : filteredJarEntryList) {
        final InputStream is = jarFile.getInputStream(entry);
        IOUtils.copy(is, out);
        is.close();
      }
      return new BufferedInputStream(new ByteArrayInputStream(out.toByteArray()));
    } finally {
      IOUtils.closeQuietly(jarFile);
    }
  }
private InputStream locateStreamFromJar(final String uri, final File jarPath)
      throws IOException {
    JarFile jarFile = null;
    try {
      LOG.debug("Locating stream from jar: {}", jarPath);
      final WildcardContext wildcardContext = new WildcardContext(uri, jarPath);
      String classPath = FilenameUtils.getPath(uri);

      if (classPath.startsWith(ClasspathUriLocator.PREFIX)) {
        classPath = substringAfter(classPath, ClasspathUriLocator.PREFIX);
      }

      jarFile = open(jarPath);
      final List<JarEntry> jarEntryList = Collections.list(jarFile.entries());
      final List<JarEntry> filteredJarEntryList = new ArrayList<JarEntry>();
      final List<File> allFiles = new ArrayList<File>();
      for (final JarEntry entry : jarEntryList) {
        final String entryName = entry.getName();
        // ignore the parent folder itself and accept only child resources
        final boolean isSupportedEntry = entryName.startsWith(classPath) && !entryName.equals(classPath)
            && accept(entryName, wildcardContext.getWildcard());
        if (isSupportedEntry) {
          allFiles.add(new File(entryName));
          LOG.debug("\tfound jar entry: {}", entryName);
          filteredJarEntryList.add(entry);
        }
      }
      final ByteArrayOutputStream out = new ByteArrayOutputStream();

      triggerWildcardExpander(allFiles, wildcardContext);
      for (final JarEntry entry : filteredJarEntryList) {
        final InputStream is = jarFile.getInputStream(entry);
        IOUtils.copy(is, out);
        is.close();
      }
      return new BufferedInputStream(new ByteArrayInputStream(out.toByteArray()));
    } finally {
      IOUtils.closeQuietly(jarFile);
    }
  }
Finds the specified wildcard-URI resource(s) inside a JAR file and returns an {@link InputStream} to read a bundle
of matching resources.

@param uri
Resource(s) URI to match. It cannot be null or empty.
@param jarPath
A valid JAR file. It cannot be null.
@return A valid {@link InputStream} to read the bundle. Clients are responsible of closing this {@link InputStream}
@throws IOException
If there's any error reading the JAR file.