本文整理了Java中org.osgi.framework.Bundle.adapt()
方法的一些代码示例,展示了Bundle.adapt()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Bundle.adapt()
方法的具体详情如下:
包路径:org.osgi.framework.Bundle
类名称:Bundle
方法名:adapt
[英]Adapt this bundle to the specified type.
Adapting this bundle to the specified type may require certain checks, including security checks, to succeed. If a check does not succeed, then this bundle cannot be adapted and null is returned.
[中]将此捆绑适应指定的类型。
使此捆绑包适应指定的类型可能需要进行某些检查,包括安全检查才能成功。如果检查未成功,则无法调整此捆绑包,并返回null。
代码示例来源:origin: hibernate/hibernate-orm
/**
* Creates a OsgiArchiveDescriptor
*
* @param persistenceBundle The bundle being described as an archive
*/
@SuppressWarnings("RedundantCast")
public OsgiArchiveDescriptor(Bundle persistenceBundle) {
this.persistenceBundle = persistenceBundle;
bundleWiring = (BundleWiring) persistenceBundle.adapt( BundleWiring.class );
}
代码示例来源:origin: apache/activemq
/**
* Caches the package capabilities that are needed for a set of interface classes
*
* @param classes interfaces we want to track
*/
private void cachePackageCapabilities(Class<?> ... classes) {
BundleWiring ourWiring = bundleContext.getBundle().adapt(BundleWiring.class);
Set<String> packageNames = new HashSet<String>();
for (Class<?> clazz: classes) {
packageNames.add(clazz.getPackage().getName());
}
List<BundleCapability> ourExports = ourWiring.getCapabilities(PACKAGE_NAMESPACE);
for (BundleCapability ourExport : ourExports) {
String ourPkgName = (String) ourExport.getAttributes().get(PACKAGE_NAMESPACE);
if (packageNames.contains(ourPkgName)) {
packageCapabilities.add(ourExport);
}
}
}
代码示例来源:origin: apache/activemq
/**
* We consider a bundle to be a candidate for objects if it imports at least
* one of the packages of our interfaces
*
* @param bundle
* @return true if the bundle is improting.
*/
private boolean isImportingUs(Bundle bundle) {
BundleWiring wiring = bundle.adapt(BundleWiring.class);
List<BundleWire> imports = wiring.getRequiredWires(PACKAGE_NAMESPACE);
for (BundleWire importWire : imports) {
if (packageCapabilities.contains(importWire.getCapability())) {
return true;
}
}
return false;
}
代码示例来源:origin: org.apache.logging.log4j/log4j-api
private void loadProvider(final Bundle bundle) {
if (bundle.getState() == Bundle.UNINSTALLED) {
return;
}
try {
checkPermission(new AdminPermission(bundle, AdminPermission.RESOURCE));
checkPermission(new AdaptPermission(BundleWiring.class.getName(), bundle, AdaptPermission.ADAPT));
final BundleContext bundleContext = bundle.getBundleContext();
if (bundleContext == null) {
LOGGER.debug("Bundle {} has no context (state={}), skipping loading provider", bundle.getSymbolicName(), toStateString(bundle.getState()));
} else {
loadProvider(bundleContext, bundle.adapt(BundleWiring.class));
}
} catch (final SecurityException e) {
LOGGER.debug("Cannot access bundle [{}] contents. Ignoring.", bundle.getSymbolicName(), e);
} catch (final Exception e) {
LOGGER.warn("Problem checking bundle {} for Log4j 2 provider.", bundle.getSymbolicName(), e);
}
}
代码示例来源:origin: org.apache.logging.log4j/log4j-api
@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();
}
代码示例来源:origin: ehcache/ehcache3
public static void testAllServicesAreAvailable() {
Set<String> osgiAvailableClasses =
stream(spliterator(OsgiServiceLoader.load(ServiceFactory.class).iterator(), Long.MAX_VALUE, 0), false)
.map(f -> f.getClass().getName())
.collect(toSet());
Set<String> jdkAvailableClasses = of(EhcacheActivator.getCoreBundle().getBundles())
.map(b -> b.adapt(BundleWiring.class).getClassLoader())
.flatMap(cl ->
stream(spliterator(ServiceLoader.load(ServiceFactory.class, cl).iterator(), Long.MAX_VALUE, 0), false)
.map(f -> f.getClass().getName()))
.collect(toSet());
assertThat(osgiAvailableClasses, hasItems(jdkAvailableClasses.toArray(new String[0])));
}
代码示例来源:origin: ehcache/ehcache3
public static void testAllServicesAreAvailable() {
Set<String> osgiAvailableClasses =
stream(spliterator(OsgiServiceLoader.load(ServiceFactory.class).iterator(), Long.MAX_VALUE, 0), false)
.map(f -> f.getClass().getName())
.collect(toSet());
Set<String> jdkAvailableClasses = of(EhcacheActivator.getCoreBundle().getBundles())
.map(b -> b.adapt(BundleWiring.class).getClassLoader())
.flatMap(cl ->
stream(spliterator(ServiceLoader.load(ServiceFactory.class, cl).iterator(), Long.MAX_VALUE, 0), false)
.map(f -> f.getClass().getName()))
.collect(toSet());
assertThat(osgiAvailableClasses, hasItems(jdkAvailableClasses.toArray(new String[0])));
}
}
代码示例来源:origin: ehcache/ehcache3
public static void testAllServicesAreAvailable() {
Set<String> osgiAvailableClasses =
stream(spliterator(OsgiServiceLoader.load(ServiceFactory.class).iterator(), Long.MAX_VALUE, 0), false)
.map(f -> f.getClass().getName())
.collect(toSet());
Set<String> jdkAvailableClasses = of(EhcacheActivator.getCoreBundle().getBundles())
.map(b -> b.adapt(BundleWiring.class).getClassLoader())
.flatMap(cl ->
stream(spliterator(ServiceLoader.load(ServiceFactory.class, cl).iterator(), Long.MAX_VALUE, 0), false)
.map(f -> f.getClass().getName()))
.collect(toSet());
assertThat(osgiAvailableClasses, hasItems(jdkAvailableClasses.toArray(new String[0])));
}
}
代码示例来源:origin: hibernate/hibernate-orm
final BundleWiring bundleWiring = (BundleWiring) requestingBundle.adapt( BundleWiring.class );
final Collection<String> cfgResources = bundleWiring.listResources(
"/",
代码示例来源:origin: apache/karaf
protected Object doExecute(List<Bundle> bundles) throws Exception {
FrameworkWiring wiring = bundleContext.getBundle(0).adapt(FrameworkWiring.class);
if (bundles == null || bundles.isEmpty()) {
bundles = null;
}
wiring.refreshBundles(bundles);
return null;
}
代码示例来源:origin: apache/karaf
private void resolveAll() {
ServiceRegistration<ResolverHookFactory> registration = context
.registerService(ResolverHookFactory.class, (triggers) -> resolver, null);
try {
context.getBundle().adapt(FrameworkWiring.class)
.resolveBundles(Arrays.asList(context.getBundles()));
} finally {
registration.unregister();
}
}
}
代码示例来源:origin: apache/karaf
protected Object doExecute(List<Bundle> bundles) throws Exception {
FrameworkWiring wiring = bundleContext.getBundle(0).adapt(FrameworkWiring.class);
wiring.resolveBundles(bundles == null || bundles.isEmpty() ? null : bundles);
return null;
}
代码示例来源:origin: apache/karaf
private CharSequence print(Bundle bundle)
{
// [ ID ] [STATE ] [ SL ] symname
int level = bundle.adapt(BundleStartLevel.class).getStartLevel();
return String.format("%5d|%-11s|%5d|%s (%s)", bundle.getBundleId(),
getState(bundle), level, bundle.getSymbolicName(), bundle.getVersion());
}
代码示例来源:origin: apache/karaf
public void frameworkEvent(FrameworkEvent event) {
if (event.getType() == FrameworkEvent.STARTLEVEL_CHANGED) {
int defaultStartLevel = Integer.parseInt(System.getProperty(Constants.FRAMEWORK_BEGINNING_STARTLEVEL));
int startLevel = this.bundleContext.getBundle(0).adapt(FrameworkStartLevel.class).getStartLevel();
if (startLevel >= defaultStartLevel) {
started.set(true);
}
}
}
}
代码示例来源:origin: apache/karaf
private CharSequence print(Bundle bundle)
{
// [ ID ] [STATE ] [ SL ] symname
int level = bundle.adapt(BundleStartLevel.class).getStartLevel();
return String.format("%5d|%-11s|%5d|%s (%s)", bundle.getBundleId(),
getState(bundle), level, bundle.getSymbolicName(), bundle.getVersion());
}
代码示例来源:origin: apache/karaf
private List<String> getExports(Bundle bundle) throws Exception {
List<String> exports = new ArrayList<>();
BundleRevision rev = bundle.adapt(BundleRevision.class);
List<BundleCapability> caps = rev.getDeclaredCapabilities(BundleRevision.PACKAGE_NAMESPACE);
for (BundleCapability cap : caps) {
Map<String, Object> attr = cap.getAttributes();
String packageName = (String)attr.get(BundleRevision.PACKAGE_NAMESPACE);
exports.add(packageName);
}
return exports;
}
代码示例来源:origin: apache/karaf
@Override
public void refreshPackages(Collection<Bundle> bundles) throws InterruptedException {
final CountDownLatch latch = new CountDownLatch(1);
FrameworkWiring fw = systemBundleContext.getBundle().adapt(FrameworkWiring.class);
fw.refreshBundles(bundles, (FrameworkListener) event -> {
if (event.getType() == FrameworkEvent.ERROR) {
LOGGER.error("Framework error", event.getThrowable());
}
latch.countDown();
});
latch.await();
}
代码示例来源:origin: org.eclipse/osgi
private static void setStartLevel(final int value) throws InterruptedException {
FrameworkStartLevel fwkStartLevel = context.getBundle().adapt(FrameworkStartLevel.class);
final Semaphore semaphore = new Semaphore(0);
StartupEventListener listener = new StartupEventListener(semaphore, FrameworkEvent.STARTLEVEL_CHANGED);
context.addBundleListener(listener);
fwkStartLevel.setStartLevel(value, listener);
updateSplash(semaphore, listener);
}
代码示例来源:origin: apache/karaf
@Override
public List<String> getImports(long bundleId) {
Bundle bundle = bundleContext.getBundle(bundleId);
BundleRevision rev = bundle.adapt(BundleRevision.class);
List<BundleRequirement> reqs = rev.getDeclaredRequirements(BundleRevision.PACKAGE_NAMESPACE);
List<String> imports = new ArrayList<>();
for (BundleRequirement req : reqs) {
PackageRequirement packageReq = create(req, bundle);
imports.add(packageReq.getPackageName());
}
return imports;
}
代码示例来源:origin: apache/karaf
BundleWires(Bundle bundle) {
this.bundleId = bundle.getBundleId();
for (BundleWire wire : bundle.adapt(BundleWiring.class).getRequiredWires(null)) {
String requirementId = getRequirementId(wire.getRequirement());
String capabilityId = getCapabilityId(wire.getCapability());
this.wiring.put(requirementId, capabilityId);
}
}
内容来源于网络,如有侵权,请联系作者删除!