本文整理汇总了Java中org.osgi.framework.wiring.FrameworkWiring.refreshBundles方法的典型用法代码示例。如果您正苦于以下问题:Java FrameworkWiring.refreshBundles方法的具体用法?Java FrameworkWiring.refreshBundles怎么用?Java FrameworkWiring.refreshBundles使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.osgi.framework.wiring.FrameworkWiring
的用法示例。
在下文中一共展示了FrameworkWiring.refreshBundles方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: refreshPackages
import org.osgi.framework.wiring.FrameworkWiring; //导入方法依赖的package包/类
@Override
public void refreshPackages() {
FrameworkWiring wiring = felix.adapt(FrameworkWiring.class);
final CountDownLatch latch = new CountDownLatch(1);
wiring.refreshBundles(null,
event -> {
switch (event.getType()) {
case FrameworkEvent.PACKAGES_REFRESHED:
latch.countDown();
break;
case FrameworkEvent.ERROR:
log.log(Level.SEVERE, "ERROR FrameworkEvent received.", event.getThrowable());
break;
}
});
try {
long TIMEOUT_SECONDS = 60L;
if (!latch.await(TIMEOUT_SECONDS, TimeUnit.SECONDS)) {
log.warning("No PACKAGES_REFRESHED FrameworkEvent received within " + TIMEOUT_SECONDS +
" seconds of calling FrameworkWiring.refreshBundles()");
}
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
}
示例2: refreshBundles
import org.osgi.framework.wiring.FrameworkWiring; //导入方法依赖的package包/类
private void refreshBundles(List<Bundle> bundles, SchemaHolder schemaHolder) {
if (LOGGER.isInfoEnabled()) {
for (Bundle bundle : bundles) {
LOGGER.info("Refreshing wiring for bundle {}", bundle.getSymbolicName());
}
}
// we generate the entities bundle but not start it to avoid exceptions when the framework
// will refresh bundles
jarGeneratorService.regenerateMdsDataBundle(schemaHolder, false);
FrameworkWiring framework = bundleContext.getBundle(0).adapt(FrameworkWiring.class);
framework.refreshBundles(bundles);
// give the framework 3 seconds to do a refresh
ThreadSuspender.sleep(3000);
// after refreshing all bundles we can start the entities bundle
monitor.start();
}
示例3: refreshBundles
import org.osgi.framework.wiring.FrameworkWiring; //导入方法依赖的package包/类
/**
* Refreshes bundles using FrameworkWiring and current Bundle (<a
* href="https://mail.osgi.org/pipermail/osgi-dev/2014-June/004459.html">reference</a>).
*/
public static void refreshBundles() {
log.trace("Refreshing bundles...");
Bundle currentBundle = FrameworkUtil.getBundle(BundleUtils.class);
if (currentBundle == null) {
log.error("Could not obtain current bundle! Not refreshing Bundles.");
return;
}
BundleContext bundleContext = currentBundle.getBundleContext();
if (bundleContext == null) {
log.error("Could not obtain bundle context! Not refreshing Bundles.");
return;
}
Bundle systemBundle = bundleContext.getBundle(0);
if (systemBundle == null) {
log.error("Could not obtain system bundle! Not refreshing Bundles.");
return;
}
FrameworkWiring frameworkWiring = systemBundle.adapt(FrameworkWiring.class);
if (frameworkWiring == null) {
log.error("Could not obtain FrameworkWiring from system bundle! Not refreshing Bundles.");
return;
}
frameworkWiring.refreshBundles(null);
}
示例4: refreshBundles
import org.osgi.framework.wiring.FrameworkWiring; //导入方法依赖的package包/类
public void refreshBundles(List<Long> bundleIds) {
Bundle fw = m_bundleResourcesMap.get(0L).getBundle();
FrameworkWiring fwiring = fw.adapt(FrameworkWiring.class);
List<Bundle> bundlesToRefresh = new ArrayList<Bundle>();
for (Long bundleId : bundleIds) {
Bundle bundle = fw.getBundleContext().getBundle(bundleId);
if (bundle != null) {
bundlesToRefresh.add(bundle);
}
}
fwiring.refreshBundles(bundlesToRefresh);
}
示例5: updateDependenciesState
import org.osgi.framework.wiring.FrameworkWiring; //导入方法依赖的package包/类
private void updateDependenciesState(Map<MavenArtifact, ArtifactLoader> artifact2loader, Set<PluginDescription> toInstall, Set<PluginDescription> toUninstall) {
Objects.requireNonNull(artifact2loader);
Objects.requireNonNull(toInstall);
Objects.requireNonNull(toUninstall);
LOGGER.fine(format("Update state: toInstall=%s, toUninstall=%s", toInstall, toUninstall));
IllegalStateException startExCollection = null;
try {
synchronized (lock) {
try {
performActions(computeActions(toInstall, toUninstall), artifact2loader);
checkDependenciesState();
} finally {
FrameworkWiring frameworkWiring = bundleContext.getBundle(0).adapt(FrameworkWiring.class);
CountDownLatch latch = new CountDownLatch(1);
frameworkWiring.refreshBundles(null, event -> latch.countDown());
latch.await();
Set<Bundle> bundles = bundle2artifact.keySet();
frameworkWiring.resolveBundles(bundles);
for (Bundle bundle : bundles) {
if (bundle.getState() != Bundle.ACTIVE &&
bundle.getState() != Bundle.STARTING &&
(bundle.adapt(BundleRevision.class).getTypes() & BundleRevision.TYPE_FRAGMENT) == 0) {
try {
bundle.start(Bundle.START_ACTIVATION_POLICY);
} catch (Throwable exStart) {
LOGGER.log(Level.WARNING, format("Bundle %s couldn't start", bundle), exStart);
if (startExCollection == null)
startExCollection = new IllegalStateException("One or more bundles couldn't start");
startExCollection.addSuppressed(exStart);
}
}
}
}
}
} catch (Throwable ex) {
LOGGER.log(Level.SEVERE, "Couldn't finish updating dependencies state", ex);
IllegalStateException exToThrow = new IllegalStateException("Couldn't finish updating dependencies state", ex);
if (startExCollection != null)
exToThrow.addSuppressed(startExCollection);
throw exToThrow;
}
if (startExCollection != null)
throw startExCollection;
}