@Override public void start(final BundleContext bundleContext) throws Exception { ProviderUtil.STARTUP_LOCK.lock(); lockingProviderUtil = true; final BundleWiring self = bundleContext.getBundle().adapt(BundleWiring.class); final List<BundleWire> required = self.getRequiredWires(LoggerContextFactory.class.getName()); for (final BundleWire wire : required) { loadProvider(bundleContext, wire.getProviderWiring()); } bundleContext.addBundleListener(this); final Bundle[] bundles = bundleContext.getBundles(); for (final Bundle bundle : bundles) { loadProvider(bundle); } unlockIfReady(); }
private void updateContext(Bundle currentContext, String className) { Bundle contextToSet = (currentContext == null) ? bundle : currentContext; int idx = className.lastIndexOf('.'); String packageName = (idx == -1) ? "" : className.substring(0, idx); BundleWiring wiring = contextToSet.adapt(BundleWiring.class); for (BundleWire wire : wiring.getRequiredWires(BundleRevision.PACKAGE_NAMESPACE)) { if (wire.getCapability().getAttributes().get(BundleRevision.PACKAGE_NAMESPACE).equals(packageName)) { contextToSet = wire.getProviderWiring().getBundle(); break; } } currentLoadingBundle.get().push(contextToSet); }
private static LinkedHashSet<Bundle> getWiredBundles43(Bundle bundle) { LinkedHashSet<Bundle> wiredBundles = new LinkedHashSet<Bundle>(); BundleWiring wiring = bundle.adapt(BundleWiring.class); if (wiring != null) { List<BundleWire> wires; wires = wiring.getRequiredWires(BundleRevision.PACKAGE_NAMESPACE); for (BundleWire wire : wires) { wiredBundles.add(wire.getProviderWiring().getBundle()); } wires = wiring.getRequiredWires(BundleRevision.BUNDLE_NAMESPACE); for (BundleWire wire : wires) { wiredBundles.add(wire.getProviderWiring().getBundle()); } } return wiredBundles; }
public static LinkedHashSet<Bundle> getWiredBundles(Bundle bundle) { LinkedHashSet<Bundle> wiredBundles = null; BundleWiring wiring = bundle.adapt(BundleWiring.class); if (wiring != null) { wiredBundles = new LinkedHashSet<Bundle>(); List<BundleWire> wires; wires = wiring.getRequiredWires(BundleRevision.PACKAGE_NAMESPACE); for (BundleWire wire : wires) { wiredBundles.add(wire.getProviderWiring().getBundle()); } wires = wiring.getRequiredWires(BundleRevision.BUNDLE_NAMESPACE); for (BundleWire wire : wires) { wiredBundles.add(wire.getProviderWiring().getBundle()); } wiredBundles.remove(bundle); } else { wiredBundles = new LinkedHashSet<Bundle>(0); } return wiredBundles; }
private void getFragmentHosts(BundleRevision revision) { List<BundleWire> wires = revision.getWiring().getRequiredWires(BundleRevision.HOST_NAMESPACE); if (wires != null) { for (BundleWire w : wires) { Bundle b = w.getProviderWiring().getBundle(); if (b != null) { this.fragmentHosts.add(b); } } } }
private void getFragmentHosts(BundleRevision revision) { List<BundleWire> wires = revision.getWiring().getRequiredWires(BundleRevision.HOST_NAMESPACE); if (wires != null) { for (BundleWire w : wires) { Bundle b = w.getProviderWiring().getBundle(); if (b != null) { this.fragmentHosts.add(b); } } } }
@Override public synchronized CdiContainer addingBundle(final Bundle bundle, BundleEvent event) { boolean wired = false; List<BundleWire> wires = bundle.adapt(BundleWiring.class).getRequiredWires(EXTENDER_CAPABILITY); if (wires != null) { for (BundleWire wire : wires) { if (wire.getProviderWiring().getBundle().equals(context.getBundle())) { wired = true; break; } } } if (wired) { log.debug("found bean bundle: {}", bundle.getSymbolicName()); return createContainer(bundle); } else { log.trace("not a bean bundle: {}", bundle.getSymbolicName()); return null; } }
private boolean checkBundleWiringForExtender(Bundle bundle) { boolean wired = false; BundleWiring bundleWiring = bundle.adapt(BundleWiring.class); if (bundleWiring != null) { List<BundleWire> wires = bundleWiring.getRequiredWires(CAPABILITY_EXTENDER); if (wires != null) { for (BundleWire wire : wires) { if (wire.getProviderWiring().getBundle().equals(bundleContext.getBundle())) { wired = true; break; } } } } return wired; }
private boolean checkClassResource(String classPackageName, String classFileName, BundleWiring wiring) { if (wiring == null) { return false; } if ((wiring.getRevision().getTypes() & BundleRevision.TYPE_FRAGMENT) != 0) { // fragment case; need to get the host wiring wiring = wiring.getRequiredWires(HostNamespace.HOST_NAMESPACE).get(0).getProviderWiring(); } Collection<String> classResourcePaths = wiring.listResources(classPackageName, classFileName, 0); return classResourcePaths != null && !classResourcePaths.isEmpty(); } }
@Override public void start(final BundleContext context) throws Exception { ProviderUtil.STARTUP_LOCK.lock(); lockingProviderUtil = true; final BundleWiring self = context.getBundle().adapt(BundleWiring.class); final List<BundleWire> required = self.getRequiredWires(LoggerContextFactory.class.getName()); for (final BundleWire wire : required) { loadProvider(context, wire.getProviderWiring()); } context.addBundleListener(this); final Bundle[] bundles = context.getBundles(); for (final Bundle bundle : bundles) { loadProvider(bundle); } unlockIfReady(); }
public Map<String, Bundle> getWiredBundles(Bundle bundle) { // the set of bundles from which the bundle imports packages Map<String, Bundle> exporters = new HashMap<>(); for (BundleRevision revision : bundle.adapt(BundleRevisions.class).getRevisions()) { BundleWiring wiring = revision.getWiring(); if (wiring != null) { List<BundleWire> wires = wiring.getRequiredWires(BundleRevision.PACKAGE_NAMESPACE); if (wires != null) { for (BundleWire wire : wires) { if (wire.getProviderWiring().getBundle().getBundleId() != 0) { exporters.put(wire.getCapability().getAttributes().get(BundleRevision.PACKAGE_NAMESPACE).toString(), wire.getProviderWiring().getBundle()); } } } } } return exporters; }
public synchronized void addDynamicWire(BundleWire wire) { // Make new wires list. List<BundleWire> wires = new ArrayList<BundleWire>(m_wires); wires.add(wire); if (wire.getCapability().getAttributes().get(BundleRevision.PACKAGE_NAMESPACE) != null) { // Make new imported package map. Map<String, BundleRevision> importedPkgs = new HashMap<String, BundleRevision>(m_importedPkgs); importedPkgs.put( (String) wire.getCapability().getAttributes().get(BundleRevision.PACKAGE_NAMESPACE), wire.getProviderWiring().getRevision()); m_importedPkgs = importedPkgs; } // Update associated member values. // Technically, there is a window here where readers won't see // both values updates at the same time, but it seems unlikely // to cause any issues. m_wires = Util.newImmutableList(wires); }
public Map<String, Bundle> getWiredBundles(Bundle bundle) { // the set of bundles from which the bundle imports packages Map<String, Bundle> exporters = new HashMap<>(); for (BundleRevision revision : bundle.adapt(BundleRevisions.class).getRevisions()) { BundleWiring wiring = revision.getWiring(); if (wiring != null) { List<BundleWire> wires = wiring.getRequiredWires(BundleRevision.PACKAGE_NAMESPACE); if (wires != null) { for (BundleWire wire : wires) { if (wire.getProviderWiring().getBundle().getBundleId() != 0) { exporters.put(wire.getCapability().getAttributes().get(BundleRevision.PACKAGE_NAMESPACE).toString(), wire.getProviderWiring().getBundle()); } } } } } return exporters; }
/** * Finds the CDI extension bundles wired to this given bundle. This method recursively calls * itself to track examine wirings of wired bundles. * * @param bundle * bean bundle * @param extensions * set of found extension bundles. */ public static void findExtensions(Bundle bundle, Set<Bundle> extensions) { List<BundleWire> wires = bundle.adapt(BundleWiring.class).getRequiredWires(null); if (wires != null) { for (BundleWire wire : wires) { String ns = wire.getCapability().getNamespace(); if (CDI_EXTENSION_CAPABILITY.equals(ns) || PAX_CDI_EXTENSION_CAPABILITY.equals(ns)) { Bundle b = wire.getProviderWiring().getBundle(); extensions.add(b); findExtensions(b, extensions); } } } } }
private BundleWireDTO getBundleWireDTO(BundleWire wire) { if (wire == null) { return null; } BundleWireDTO dto = new BundleWireDTO(); dto.capability = getCapabilityRefDTO(wire.getCapability()); dto.requirement = getRequirementRefDTO(wire.getRequirement()); dto.provider = getResourceId(wire.getProvider()); dto.requirer = getResourceId(wire.getRequirer()); dto.providerWiring = getWiringId(wire.getProviderWiring()); dto.requirerWiring = getWiringId(wire.getRequirerWiring()); return dto; }
private BundleWireDTO getBundleWireDTO(BundleWire wire) { if (wire == null) { return null; } BundleWireDTO dto = new BundleWireDTO(); dto.capability = getCapabilityRefDTO(wire.getCapability()); dto.requirement = getRequirementRefDTO(wire.getRequirement()); dto.provider = getResourceId(wire.getProvider()); dto.requirer = getResourceId(wire.getRequirer()); dto.providerWiring = getWiringId(wire.getProviderWiring()); dto.requirerWiring = getWiringId(wire.getRequirerWiring()); return dto; }
private BundleWireDTO getBundleWireDTO(BundleWire wire) { if (wire == null) { return null; } BundleWireDTO dto = new BundleWireDTO(); dto.capability = getCapabilityRefDTO(wire.getCapability()); dto.requirement = getRequirementRefDTO(wire.getRequirement()); dto.provider = getResourceId(wire.getProvider()); dto.requirer = getResourceId(wire.getRequirer()); dto.providerWiring = getWiringId(wire.getProviderWiring()); dto.requirerWiring = getWiringId(wire.getRequirerWiring()); return dto; }
private BundleWireDTO getBundleWireDTO(BundleWire wire) { if (wire == null) { return null; } BundleWireDTO dto = new BundleWireDTO(); dto.capability = getCapabilityRefDTO(wire.getCapability()); dto.requirement = getRequirementRefDTO(wire.getRequirement()); dto.provider = getResourceId(wire.getProvider()); dto.requirer = getResourceId(wire.getRequirer()); dto.providerWiring = getWiringId(wire.getProviderWiring()); dto.requirerWiring = getWiringId(wire.getRequirerWiring()); return dto; }
private BundleWireDTO getBundleWireDTO(BundleWire wire) { if (wire == null) { return null; } BundleWireDTO dto = new BundleWireDTO(); dto.capability = getCapabilityRefDTO(wire.getCapability()); dto.requirement = getRequirementRefDTO(wire.getRequirement()); dto.provider = getResourceId(wire.getProvider()); dto.requirer = getResourceId(wire.getRequirer()); dto.providerWiring = getWiringId(wire.getProviderWiring()); dto.requirerWiring = getWiringId(wire.getRequirerWiring()); return dto; }
private BundleWireDTO getBundleWireDTO(BundleWire wire) { if (wire == null) { return null; } BundleWireDTO dto = new BundleWireDTO(); dto.capability = getCapabilityRefDTO(wire.getCapability()); dto.requirement = getRequirementRefDTO(wire.getRequirement()); dto.provider = getResourceId(wire.getProvider()); dto.requirer = getResourceId(wire.getRequirer()); dto.providerWiring = getWiringId(wire.getProviderWiring()); dto.requirerWiring = getWiringId(wire.getRequirerWiring()); return dto; }