@Override public Module installPluginModule(Runtime runtime, ClassLoader classLoader) throws ModuleException { String resourceName = getBundleActivator().replace('.', '/') + ".class"; URL resurl = classLoader.getResource(resourceName); if (resurl == null) { RuntimeLogger.LOGGER.debug("Cannot load BundleActivator resource '{}'", resourceName); return null; } String urlpath = resurl.toExternalForm(); urlpath = urlpath.substring(0, urlpath.indexOf(resourceName)); urlpath = urlpath + JarFile.MANIFEST_NAME; Manifest manifest; try { manifest = new Manifest(new URL(urlpath).openStream()); } catch (Exception ex) { throw new ModuleException("Cannot load plugin manifest: " + urlpath, ex); } Dictionary<String, String> headers = new ManifestHeadersProvider(manifest).getHeaders(); headers.put(Constants.MODULE_ACTIVATOR, getClass().getName()); return runtime.installModule(classLoader, headers); }
/** * Install a webapp module from the given servlet context. */ public Module installWebappModule(ServletContext servletContext) { Manifest manifest = getWebappManifest(servletContext); if (manifest == null) return null; ResourceBuilder resbuilder = new ManifestResourceBuilder().load(manifest); if (!resbuilder.isValid()) return null; Resource resource = resbuilder.getResource(); Dictionary<String, String> headers = new ManifestHeadersProvider(manifest).getHeaders(); return installWebappModule(servletContext, resource, headers); }
/** * Install a webapp module from the given servlet context. */ public Module installWebappModule(ServletContext servletContext) { Manifest manifest = getWebappManifest(servletContext); if (manifest == null) return null; ResourceBuilder resbuilder = new ManifestResourceBuilder().load(manifest); if (!resbuilder.isValid()) return null; Resource resource = resbuilder.getResource(); Dictionary<String, String> headers = new ManifestHeadersProvider(manifest).getHeaders(); return installWebappModule(servletContext, resource, headers); }