public BundleArchive(PackageAdmin packageAdmin, Bundle bundle, ResourceDiscoveryFilter discoveryFilter) throws Exception { this.bundle = bundle; BundleResourceFinder bundleResourceFinder = new BundleResourceFinder(packageAdmin, bundle, "", ".class", discoveryFilter); bundleResourceFinder.find(new AnnotationFindingCallback()); }
public Set<URL> find() { Set<URL> resources = new LinkedHashSet<URL>(); try { find(new DefaultResourceFinderCallback(resources)); } catch (Exception e) { // this should not happen throw new RuntimeException("Resource discovery failed", e); } return resources; }
private boolean scanZip(ResourceFinderCallback callback, Bundle bundle, String zipName) throws Exception { if (!discoveryFilter.zipFileDiscoveryRequired(zipName)) { return true; } URL zipEntry = bundle.getEntry(zipName); if (zipEntry == null) { return true; } ZipInputStream in = null; try { in = new ZipInputStream(zipEntry.openStream()); ZipEntry entry; while ((entry = in.getNextEntry()) != null) { String name = entry.getName(); if (prefixMatches(name) && suffixMatches(name)) { if (!callback.foundInJar(bundle, zipName, entry, new ZipEntryInputStream(in))) { return false; } } } } catch (IOException e) { e.printStackTrace(); } finally { if (in != null) { try { in.close(); } catch (Exception e) {} } } return true; }
/** * Set up a BundleResourceFinder * The suffix may contain a path fragment, unlike the bundle.findEntries method. * * @param packageAdmin package admin for finding fragments * @param bundle bundle to search * @param prefix search only paths and zip files starting with this prefix * @param suffix return only entries ending in this suffix. * @param discoveryFilter filter for matching directories and zip files. */ public BundleResourceFinder(PackageAdmin packageAdmin, Bundle bundle, String prefix, String suffix, ResourceDiscoveryFilter discoveryFilter) { this.packageAdmin = packageAdmin; this.bundle = BundleUtils.unwrapBundle(bundle); this.prefix = addSlash(prefix.trim()); this.suffix = suffix.trim(); int pos = this.suffix.lastIndexOf("/"); if (pos > -1) { osgiSuffix = this.suffix.substring(pos + 1, this.suffix.length()); extendedMatching = true; } else { osgiSuffix = "*" + this.suffix; extendedMatching = false; } this.discoveryFilter = discoveryFilter; }
public BundleArchive(PackageAdmin packageAdmin, Bundle bundle, ResourceDiscoveryFilter discoveryFilter) throws Exception { this.bundle = bundle; BundleResourceFinder bundleResourceFinder = new BundleResourceFinder(packageAdmin, bundle, "", ".class", discoveryFilter); bundleResourceFinder.find(new AnnotationFindingCallback()); }
public BundleArchive(PackageAdmin packageAdmin, Bundle bundle, ResourceDiscoveryFilter discoveryFilter) throws Exception { this.bundle = bundle; BundleResourceFinder bundleResourceFinder = new BundleResourceFinder(packageAdmin, bundle, "", ".class", discoveryFilter); bundleResourceFinder.find(new AnnotationFindingCallback()); }
private static List<URL> findResources(PackageAdmin packageAdmin, Bundle bundle, String name, final boolean continueScanning) throws Exception { BundleResourceFinder finder = new BundleResourceFinder(packageAdmin, bundle, "", name); final List<URL> resources = new ArrayList<URL>(); finder.find(new BundleResourceFinder.ResourceFinderCallback() { public boolean foundInDirectory(Bundle bundle, String baseDir, URL url) throws Exception { resources.add(url); return continueScanning; } public boolean foundInJar(Bundle bundle, String jarName, ZipEntry entry, InputStream inputStream) throws Exception { URL jarURL = BundleUtils.getEntry(bundle, jarName); URL url = new URL("jar:" + jarURL.toString() + "!/" + entry.getName()); resources.add(url); return continueScanning; } }); return resources; }
public BundleAnnotationFinder(PackageAdmin packageAdmin, Bundle bundle, ResourceDiscoveryFilter discoveryFilter, Set<String> paths) throws Exception { this.bundle = BundleUtils.unwrapBundle(bundle); BundleResourceFinder bundleResourceFinder = new BundleResourceFinder(packageAdmin, this.bundle, "", ".class", discoveryFilter); bundleResourceFinder.find(new AnnotationFindingCallback()); this.paths = paths; }
public BundleAnnotationFinder(PackageAdmin packageAdmin, Bundle bundle, ResourceDiscoveryFilter discoveryFilter, Set<String> paths) throws Exception { this.bundle = BundleUtils.unwrapBundle(bundle); BundleResourceFinder bundleResourceFinder = new BundleResourceFinder(packageAdmin, this.bundle, "", ".class", discoveryFilter); bundleResourceFinder.find(new AnnotationFindingCallback()); this.paths = paths; }
public BundleAnnotationFinder(PackageAdmin packageAdmin, Bundle bundle, ResourceDiscoveryFilter discoveryFilter, Set<String> paths) throws Exception { this.bundle = BundleUtils.unwrapBundle(bundle); BundleResourceFinder bundleResourceFinder = new BundleResourceFinder(packageAdmin, this.bundle, "", ".class", discoveryFilter); bundleResourceFinder.find(new AnnotationFindingCallback()); this.paths = paths; }
PackageAdmin packageAdmin = (PackageAdmin) bundle.getBundleContext().getService(reference); BundleResourceFinder resourceFinder = new BundleResourceFinder(packageAdmin, bundle, "META-INF/", ".tld"); modURLs.addAll(resourceFinder.find());
BundleResourceFinder brfXmlJar = new BundleResourceFinder(packageAdmin, mainBundle, "", META_INF_BEANS_XML); brfXmlJar.find(rfCallback);
private void findBeansXml(Bundle mainBundle, PackageAdmin packageAdmin) throws Exception BundleResourceFinder brfXmlJar = new BundleResourceFinder(packageAdmin, mainBundle, "", META_INF_BEANS_XML); brfXmlJar.find(rfCallback);
PackageAdmin packageAdmin = (PackageAdmin) bundle.getBundleContext().getService(reference); final String libDirectory = moduleNamePrefix + "WEB-INF/lib"; BundleResourceFinder resourceFinder = new BundleResourceFinder(packageAdmin, bundle, "META-INF/", "faces-config.xml", new ResourceDiscoveryFilter() { resourceFinder.find(new ResourceFinderCallback() {
PackageAdmin packageAdmin = (PackageAdmin) bundle.getBundleContext().getService(reference); final String libDirectory = moduleNamePrefix + "WEB-INF/lib"; BundleResourceFinder resourceFinder = new BundleResourceFinder(packageAdmin, bundle, "META-INF/", ".taglib.xml", new ResourceDiscoveryFilter() { resourceFinder.find(new ResourceFinderCallback() {
BundleResourceFinder resourceFinder = new BundleResourceFinder(packageAdmin, bundle, "META-INF/", "beans.xml", new ResourceDiscoveryFilter() { resourceFinder.find(new ResourceFinderCallback() {
try { PackageAdmin packageAdmin = (PackageAdmin) bundle.getBundleContext().getService(reference); BundleResourceFinder resourceFinder = new BundleResourceFinder(packageAdmin, bundle, "META-INF/services", "javax.servlet.ServletContainerInitializer"); resourceFinder.find(new ResourceFinderCallback() {
BundleResourceFinder finder = new BundleResourceFinder(packageAdmin, bundle, "", "META-INF/persistence.xml", new ResourceDiscoveryFilter() { finder.find(new BundleResourceFinder.ResourceFinderCallback() {