Java 类org.osgi.framework.startlevel.FrameworkStartLevel 实例源码
项目:everest
文件:TestOsgiActions.java
@Test
public void testOsgiInitialBundleStartLevel() throws ResourceNotFoundException, IllegalActionOnResourceException {
Resource osgi = get("/osgi");
// get initial bundle start level
Integer bundleStartlevel = osgi.getMetadata().get("startlevel.bundle", Integer.class);
System.out.println(bundleStartlevel);
FrameworkStartLevel fwStartlevel = osgiHelper.getBundle(0).adapt(FrameworkStartLevel.class);
assertThat(bundleStartlevel).isEqualTo(fwStartlevel.getInitialBundleStartLevel());
Resource bundles = get("/osgi/bundles");
for (Resource bundle : bundles.getResources()) {
BundleResource bundleResource = bundle.adaptTo(BundleResource.class);
//System.out.println(bundleResource.getBundleId() + " : " + bundleResource.getStartLevel());
}
// set initial bundle start level
HashMap<String, Object> params = new HashMap<String, Object>();
params.put("startlevel.bundle", 2);
update(osgi.getPath(), params);
osgi = get("/osgi");
assertThat(osgi.getMetadata().get("startlevel.bundle")).isEqualTo(2);
}
项目:everest
文件:OsgiRootResource.java
@Override
public Resource update(Request request) throws IllegalActionOnResourceException {
FrameworkStartLevel frameworkStartLevel = m_frameworkBundle.adapt(FrameworkStartLevel.class);
Integer bundleStartLevel = request.get(STARTLEVEL_BUNDLE_PARAMETER, Integer.class);
if (bundleStartLevel != null) {
frameworkStartLevel.setInitialBundleStartLevel(bundleStartLevel);
}
Integer startLevel = request.get(STARTLEVEL_PARAMETER, Integer.class);
if (startLevel != null) {
frameworkStartLevel.setStartLevel(startLevel);
}
Boolean restart = request.get(FRAMEWORK_RESTART_PARAMETER, Boolean.class);
if (restart != null && restart) {
try {
//restarting framework
m_frameworkBundle.update();
} catch (BundleException e) {
throw new IllegalActionOnResourceException(request, e.getMessage());
}
}
return this;
}
项目:everest
文件:TestOsgiRootResource.java
@Before
public void setUp() {
m_everest = new Everest();
// Create a fake bundle context.
Bundle zero = mock(Bundle.class, RETURNS_MOCKS);
BundleContext context = mock(BundleContext.class, RETURNS_MOCKS);
when(zero.getBundleContext()).thenReturn(context);
when(context.getBundle(0)).thenReturn(zero);
when(context.getProperty(anyString())).thenReturn("Some Property");
when(zero.adapt(FrameworkWiring.class)).thenReturn(mock(FrameworkWiring.class));
when(zero.adapt(FrameworkStartLevel.class)).thenReturn(mock(FrameworkStartLevel.class));
m_osgi = new OsgiRootResource(context);
m_everest.bindRootResource(m_osgi);
}
项目:osgi-richconsole
文件:UpgradeProcess.java
public UpgradeProcess(final UpgradeServiceImpl bundleDeployerService,
final BundleContext systemBundleContext) {
this.bundleDeployerService = bundleDeployerService;
this.systemBundleContext = systemBundleContext;
// Refresh classes must be initialized first because they will be not available if the richconsole re-deploys
// itself
final AtomicBoolean refreshFinished = new AtomicBoolean(false);
Lock refreshFinishLock = new ReentrantLock();
Condition refreshFinishCondition = refreshFinishLock.newCondition();
refreshListener = new FrameworkRefreshListener(refreshFinished, refreshFinishLock, refreshFinishCondition);
Bundle systemBundle = systemBundleContext.getBundle();
frameworkWiring = systemBundle.adapt(FrameworkWiring.class);
frameworkStartLevel = systemBundle.adapt(FrameworkStartLevel.class);
originalFrameworkStartLevelValue = frameworkStartLevel.getStartLevel();
currentFrameworkStartLevelValue = originalFrameworkStartLevelValue;
}
项目:neoscada
文件:Activator.java
@Override
public void start ( final BundleContext bundleContext ) throws Exception
{
this.context = bundleContext;
final ServiceReference<FrameworkStartLevel> frameworkStartLevel = this.context.getServiceReference ( FrameworkStartLevel.class );
if ( frameworkStartLevel != null )
{
final FrameworkStartLevel service = this.context.getService ( frameworkStartLevel );
if ( service != null )
{
try
{
this.defaultStartLevel = service.getInitialBundleStartLevel ();
}
finally
{
this.context.ungetService ( frameworkStartLevel );
}
}
}
loadStartLevels ();
for ( final Map.Entry<String, Integer> entry : this.bundleStartList.entrySet () )
{
setStartLevel ( entry.getKey (), entry.getValue () );
}
}
项目:nexus-public
文件:NexusContextListener.java
/**
* Install all features listed under "nexus-features".
*/
private void installNexusFeatures(final String featureNames) throws Exception {
final Set<Feature> features = new LinkedHashSet<>();
for (final String name : Splitter.on(',').trimResults().omitEmptyStrings().split(featureNames)) {
final Feature feature = featuresService.getFeature(name);
if (feature != null) {
features.add(feature);
}
else {
log.warn("Missing: {}", name);
}
}
log.info("Installing: {}", features);
Set<String> featureIds = new HashSet<>(features.size());
for (final Feature f : features) {
// feature might already be installed in the cache; if so then skip installation
if (!featuresService.isInstalled(f)) {
featureIds.add(f.getId());
}
}
if (!featureIds.isEmpty()) {
// avoid auto-refreshing bundles as that could trigger unwanted restart/lifecycle events
EnumSet<Option> options = EnumSet.of(NoAutoRefreshBundles, NoAutoRefreshManagedBundles);
featuresService.installFeatures(featureIds, options);
}
log.info("Installed: {}", features);
// feature bundles have all been installed, so raise framework start level to finish activation
FrameworkStartLevel frameworkStartLevel = bundleContext.getBundle(0).adapt(FrameworkStartLevel.class);
if (frameworkStartLevel.getStartLevel() < NEXUS_PLUGIN_START_LEVEL) {
frameworkStartLevel.setStartLevel(NEXUS_PLUGIN_START_LEVEL, this);
// activation continues asynchronously in frameworkEvent method...
}
}
项目:everest
文件:TestOsgiActions.java
@Test
public void testOsgiStartLevel() throws ResourceNotFoundException, IllegalActionOnResourceException, InterruptedException {
Resource osgi = get("/osgi");
// get bundle start level
Integer startlevel = osgi.getMetadata().get("startlevel", Integer.class);
System.out.println("startlevel: " + startlevel);
FrameworkStartLevel fwStartlevel = osgiHelper.getBundle(0).adapt(FrameworkStartLevel.class);
assertThat(startlevel).isEqualTo(fwStartlevel.getStartLevel());
updatedEvents.clear();
// set start level
HashMap<String, Object> params = new HashMap<String, Object>();
params.put("startlevel", 3);
update(osgi.getPath(), params);
// wait for start level passage
System.out.println("Waiting for start level passage");
try {
Thread.sleep(TimeUtils.TIME_FACTOR * 1000);
} catch (InterruptedException e) {
// Interrupted
}
osgi = get("/osgi");
startlevel = osgi.getMetadata().get("startlevel", Integer.class);
assertThat(startlevel).isEqualTo(3);
testUpdatedEventFrom("/osgi");
Resource bundles = get("/osgi/bundles");
for (Resource bundle : bundles.getResources()) {
BundleResource bundleResource = bundle.adaptTo(BundleResource.class);
if (bundleResource.getStartLevel() > startlevel) {
assertThat(bundleResource.getState()).isEqualTo(OsgiResourceUtils.bundleStateToString(Bundle.RESOLVED));
}
//System.out.println(bundleResource.getBundleId() + " :"+bundleResource.getSymbolicName()+"-"+bundleResource.getState()+" : " + bundleResource.getStartLevel());
}
}
项目:everest
文件:OsgiRootResource.java
@Override
public ResourceMetadata getMetadata() {
ImmutableResourceMetadata.Builder metadataBuilder = new ImmutableResourceMetadata.Builder(m_metadata);
// add Start Level metadata
FrameworkStartLevel frameworkStartLevel = m_frameworkBundle.adapt(FrameworkStartLevel.class);
metadataBuilder.set(STARTLEVEL_BUNDLE_PARAMETER, frameworkStartLevel.getInitialBundleStartLevel());
metadataBuilder.set(STARTLEVEL_PARAMETER, frameworkStartLevel.getStartLevel());
return metadataBuilder.build();
}
项目:everest
文件:OsgiRootResource.java
@Override
public <A> A adaptTo(Class<A> clazz) {
if (Bundle.class.equals(clazz)) {
return (A) m_frameworkBundle;
} else if (FrameworkWiring.class.equals(clazz)) {
return (A) m_frameworkBundle.adapt(FrameworkWiring.class);
} else if (FrameworkStartLevel.class.equals(clazz)) {
return (A) m_frameworkBundle.adapt(FrameworkStartLevel.class);
} else {
return null;
}
}