
org.infinispan.util.OsgiFileLookup Maven / Gradle / Ivy
package org.infinispan.util;
import java.io.IOException;
import java.net.URL;
import java.util.Collection;
import org.infinispan.util.FileLookupFactory.DefaultFileLookup;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
import org.osgi.framework.BundleReference;
public class OsgiFileLookup extends DefaultFileLookup {
protected OsgiFileLookup() {
}
@Override
protected Collection getAsURLsFromClassLoader(String filename, ClassLoader userClassLoader) throws IOException {
Collection urls = super.getAsURLsFromClassLoader(filename, userClassLoader);
// scan osgi bundles
BundleContext bc = ((BundleReference) FileLookup.class.getClassLoader()).getBundle().getBundleContext();
for (Bundle bundle : bc.getBundles()) {
urls.add(bundle.getResource(filename));
}
return urls;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy