You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by gn...@apache.org on 2012/01/06 18:08:03 UTC
svn commit: r1228280 - in /karaf/trunk:
features/core/src/main/java/org/apache/karaf/features/internal/
features/core/src/main/resources/OSGI-INF/blueprint/
features/core/src/test/java/org/apache/karaf/features/
main/src/main/java/org/apache/karaf/main...
Author: gnodet
Date: Fri Jan 6 17:08:02 2012
New Revision: 1228280
URL: http://svn.apache.org/viewvc?rev=1228280&view=rev
Log:
[KARAF-1142] Get rid of the code using StartLevel and PackageAdmin has they are now deprecated
Removed:
karaf/trunk/shell/dev/src/main/java/org/apache/karaf/shell/dev/util/Import.java
karaf/trunk/shell/dev/src/test/java/org/apache/karaf/shell/dev/util/ImportTest.java
Modified:
karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/FeaturesServiceImpl.java
karaf/trunk/features/core/src/main/resources/OSGI-INF/blueprint/gshell-features.xml
karaf/trunk/features/core/src/test/java/org/apache/karaf/features/FeaturesServiceTest.java
karaf/trunk/main/src/main/java/org/apache/karaf/main/Main.java
karaf/trunk/management/mbeans/bundles/src/main/java/org/apache/karaf/management/mbeans/bundles/internal/BundlesMBeanImpl.java
karaf/trunk/management/mbeans/packages/src/main/java/org/apache/karaf/management/mbeans/packages/PackagesMBean.java
karaf/trunk/management/mbeans/packages/src/main/java/org/apache/karaf/management/mbeans/packages/internal/PackagesMBeanImpl.java
karaf/trunk/shell/bundles/src/main/java/org/apache/karaf/shell/bundles/Headers.java
karaf/trunk/shell/bundles/src/main/java/org/apache/karaf/shell/bundles/ListBundles.java
karaf/trunk/shell/bundles/src/main/java/org/apache/karaf/shell/bundles/Refresh.java
karaf/trunk/shell/bundles/src/main/java/org/apache/karaf/shell/bundles/Resolve.java
karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/Converters.java
karaf/trunk/shell/dev/pom.xml
karaf/trunk/shell/dev/src/main/java/org/apache/karaf/shell/dev/AbstractBundleCommand.java
karaf/trunk/shell/dev/src/main/java/org/apache/karaf/shell/dev/DynamicImport.java
karaf/trunk/shell/dev/src/main/java/org/apache/karaf/shell/dev/ShowBundleTree.java
karaf/trunk/shell/dev/src/main/java/org/apache/karaf/shell/dev/util/Node.java
karaf/trunk/system/core/src/main/java/org/apache/karaf/system/internal/SystemServiceImpl.java
karaf/trunk/util/src/main/java/org/apache/karaf/util/ShellUtil.java
karaf/trunk/web/core/src/main/java/org/apache/karaf/web/internal/WebContainerServiceImpl.java
karaf/trunk/web/core/src/main/resources/OSGI-INF/blueprint/web-core.xml
Modified: karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/FeaturesServiceImpl.java
URL: http://svn.apache.org/viewvc/karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/FeaturesServiceImpl.java?rev=1228280&r1=1228279&r2=1228280&view=diff
==============================================================================
--- karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/FeaturesServiceImpl.java (original)
+++ karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/FeaturesServiceImpl.java Fri Jan 6 17:08:02 2012
@@ -76,10 +76,10 @@ import org.osgi.framework.FrameworkListe
import org.osgi.framework.FrameworkUtil;
import org.osgi.framework.InvalidSyntaxException;
import org.osgi.framework.Version;
+import org.osgi.framework.startlevel.BundleStartLevel;
+import org.osgi.framework.wiring.FrameworkWiring;
import org.osgi.service.cm.Configuration;
import org.osgi.service.cm.ConfigurationAdmin;
-import org.osgi.service.packageadmin.PackageAdmin;
-import org.osgi.service.startlevel.StartLevel;
import org.osgi.util.tracker.ServiceTracker;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -103,8 +103,6 @@ public class FeaturesServiceImpl impleme
private BundleContext bundleContext;
private ConfigurationAdmin configAdmin;
private RegionsPersistence regionsPersistence;
- private PackageAdmin packageAdmin;
- private StartLevel startLevel;
private long resolverTimeout = 5000;
private Set<URI> uris;
private Map<URI, RepositoryImpl> repositories = new HashMap<URI, RepositoryImpl>();
@@ -145,22 +143,6 @@ public class FeaturesServiceImpl impleme
this.regionsPersistence = regionsPersistence;
}
- public PackageAdmin getPackageAdmin() {
- return packageAdmin;
- }
-
- public void setPackageAdmin(PackageAdmin packageAdmin) {
- this.packageAdmin = packageAdmin;
- }
-
- public StartLevel getStartLevel() {
- return startLevel;
- }
-
- public void setStartLevel(StartLevel startLevel) {
- this.startLevel = startLevel;
- }
-
public long getResolverTimeout() {
return resolverTimeout;
}
@@ -341,7 +323,7 @@ public class FeaturesServiceImpl impleme
}
if (refresh) {
LOGGER.info("Refreshing bundles: {}", sb.toString());
- refreshPackages(bundlesToRefresh.toArray(new Bundle[bundlesToRefresh.size()]));
+ refreshPackages(bundlesToRefresh);
}
}
}
@@ -383,7 +365,7 @@ public class FeaturesServiceImpl impleme
// do not start bundles that are persistently stopped
if (state.installed.contains(b)
|| (b.getState() != Bundle.STARTING && b.getState() != Bundle.ACTIVE
- && getStartLevel().isBundlePersistentlyStarted(b))) {
+ && b.adapt(BundleStartLevel.class).isPersistentlyStarted())) {
// do no start bundles when user request it
Long bundleId = b.getBundleId();
BundleInfo bundleInfo = state.bundleInfos.get(bundleId);
@@ -724,9 +706,9 @@ public class FeaturesServiceImpl impleme
// Define the startLevel for the bundle when defined
int ibsl = bundleInfo.getStartLevel();
if (ibsl > 0) {
- getStartLevel().setBundleStartLevel(b, ibsl);
+ b.adapt(BundleStartLevel.class).setStartLevel(ibsl);
} else if (defaultStartLevel > 0) {
- getStartLevel().setBundleStartLevel(b, defaultStartLevel);
+ b.adapt(BundleStartLevel.class).setStartLevel(defaultStartLevel);
}
state.bundles.add(b);
@@ -1034,10 +1016,11 @@ public class FeaturesServiceImpl impleme
}
}
- protected void refreshPackages(Bundle[] bundles) throws InterruptedException {
- if (getPackageAdmin() != null) {
+ protected void refreshPackages(Collection<Bundle> bundles) throws InterruptedException {
+ FrameworkWiring wiring = bundleContext.getBundle().adapt(FrameworkWiring.class);
+ if (wiring != null) {
synchronized (refreshLock) {
- getPackageAdmin().refreshPackages(bundles);
+ wiring.refreshBundles(bundles, this);
refreshLock.wait(refreshTimeout);
}
}
Modified: karaf/trunk/features/core/src/main/resources/OSGI-INF/blueprint/gshell-features.xml
URL: http://svn.apache.org/viewvc/karaf/trunk/features/core/src/main/resources/OSGI-INF/blueprint/gshell-features.xml?rev=1228280&r1=1228279&r2=1228280&view=diff
==============================================================================
--- karaf/trunk/features/core/src/main/resources/OSGI-INF/blueprint/gshell-features.xml (original)
+++ karaf/trunk/features/core/src/main/resources/OSGI-INF/blueprint/gshell-features.xml Fri Jan 6 17:08:02 2012
@@ -36,8 +36,6 @@
<property name="boot" value="$[featuresBoot]" />
<property name="resolverTimeout" value="$[resolverTimeout]" />
<property name="configAdmin" ref="configAdmin" />
- <property name="packageAdmin" ref="packageAdmin" />
- <property name="startLevel" ref="startLevel" />
<property name="regionsPersistence" ref="regionsPersistence" />
<property name="bundleContext" ref="blueprintBundleContext" />
</bean>
@@ -50,10 +48,6 @@
<reference id="configAdmin" interface="org.osgi.service.cm.ConfigurationAdmin" />
- <reference id="packageAdmin" interface="org.osgi.service.packageadmin.PackageAdmin" />
-
- <reference id="startLevel" interface="org.osgi.service.startlevel.StartLevel" />
-
<reference id="regionsPersistence" interface="org.apache.karaf.region.persist.RegionsPersistence" />
<service ref="featuresService" interface="org.apache.karaf.features.FeaturesService" />
Modified: karaf/trunk/features/core/src/test/java/org/apache/karaf/features/FeaturesServiceTest.java
URL: http://svn.apache.org/viewvc/karaf/trunk/features/core/src/test/java/org/apache/karaf/features/FeaturesServiceTest.java?rev=1228280&r1=1228279&r2=1228280&view=diff
==============================================================================
--- karaf/trunk/features/core/src/test/java/org/apache/karaf/features/FeaturesServiceTest.java (original)
+++ karaf/trunk/features/core/src/test/java/org/apache/karaf/features/FeaturesServiceTest.java Fri Jan 6 17:08:02 2012
@@ -16,14 +16,6 @@
*/
package org.apache.karaf.features;
-import static org.easymock.EasyMock.aryEq;
-import static org.easymock.EasyMock.eq;
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.isA;
-import static org.easymock.EasyMock.replay;
-import static org.easymock.EasyMock.reset;
-import static org.easymock.EasyMock.verify;
-
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
@@ -43,16 +35,16 @@ import java.util.concurrent.CopyOnWriteA
import java.util.jar.JarInputStream;
import junit.framework.TestCase;
-
import org.apache.karaf.features.internal.FeaturesServiceImpl;
import org.easymock.EasyMock;
import org.junit.Assert;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
import org.osgi.framework.Constants;
-import org.osgi.service.log.LogService;
-import org.osgi.service.packageadmin.PackageAdmin;
-import org.xml.sax.SAXParseException;
+import org.osgi.framework.FrameworkListener;
+import org.osgi.framework.wiring.FrameworkWiring;
+import org.osgi.service.blueprint.container.BlueprintContainer;
+import org.slf4j.LoggerFactory;
import static org.easymock.EasyMock.*;
@@ -66,7 +58,7 @@ public class FeaturesServiceTest extends
public void testInstallFeature() throws Exception {
- String name = getJarUrl(Bundle.class);
+ String name = getJarUrl(BlueprintContainer.class);
File tmp = File.createTempFile("karaf", ".feature");
PrintWriter pw = new PrintWriter(new FileWriter(tmp));
@@ -133,7 +125,7 @@ public class FeaturesServiceTest extends
public void testUninstallFeature() throws Exception {
- String name = getJarUrl(Bundle.class);
+ String name = getJarUrl(BlueprintContainer.class);
File tmp = File.createTempFile("karaf", ".feature");
PrintWriter pw = new PrintWriter(new FileWriter(tmp));
@@ -151,18 +143,19 @@ public class FeaturesServiceTest extends
BundleContext bundleContext = EasyMock.createMock(BundleContext.class);
Bundle installedBundle = EasyMock.createMock(Bundle.class);
+ Bundle framework = EasyMock.createMock(Bundle.class);
expect(bundleContext.getDataFile(EasyMock.<String>anyObject())).andReturn(dataFile).anyTimes();
- replay(bundleContext, installedBundle);
+ replay(bundleContext, installedBundle, framework);
FeaturesServiceImpl svc = new FeaturesServiceImpl();
svc.setBundleContext(bundleContext);
svc.addRepository(uri);
- verify(bundleContext, installedBundle);
+ verify(bundleContext, installedBundle, framework);
- reset(bundleContext, installedBundle);
+ reset(bundleContext, installedBundle, framework);
// Installs f1 and 0.1
expect(bundleContext.getBundles()).andReturn(new Bundle[0]);
@@ -196,7 +189,10 @@ public class FeaturesServiceTest extends
expect(bundleContext.getDataFile(EasyMock.<String>anyObject())).andReturn(dataFile).anyTimes();
- replay(bundleContext, installedBundle);
+ expect(bundleContext.getBundle()).andReturn(framework).anyTimes();
+ expect(framework.adapt(FrameworkWiring.class)).andReturn(null).anyTimes();
+
+ replay(bundleContext, installedBundle, framework);
try {
svc.uninstallFeature("f1");
@@ -222,7 +218,7 @@ public class FeaturesServiceTest extends
// Tests Add and Remove Repository
public void testAddAndRemoveRepository() throws Exception {
- String name = getJarUrl(Bundle.class);
+ String name = getJarUrl(BlueprintContainer.class);
File tmp = File.createTempFile("karaf", ".feature");
PrintWriter pw = new PrintWriter(new FileWriter(tmp));
@@ -262,7 +258,7 @@ public class FeaturesServiceTest extends
// all features in a repo
public void testInstallUninstallAllFeatures() throws Exception {
- String name = getJarUrl(Bundle.class);
+ String name = getJarUrl(BlueprintContainer.class);
File tmp = File.createTempFile("karaf", ".feature");
PrintWriter pw = new PrintWriter(new FileWriter(tmp));
@@ -282,7 +278,8 @@ public class FeaturesServiceTest extends
URI uri = tmp.toURI();
BundleContext bundleContext = EasyMock.createMock(BundleContext.class);
- Bundle installedBundle = EasyMock.createMock(Bundle.class);
+ Bundle installedBundle = EasyMock.createMock(Bundle.class);
+ Bundle framework = EasyMock.createMock(Bundle.class);
// Installs first feature name = f1, version = 0.1
expect(bundleContext.getBundles()).andReturn(new Bundle[0]);
@@ -337,7 +334,10 @@ public class FeaturesServiceTest extends
expect(bundleContext.getDataFile(EasyMock.<String>anyObject())).andReturn(dataFile).anyTimes();
- replay(bundleContext, installedBundle);
+ expect(bundleContext.getBundle()).andReturn(framework).anyTimes();
+ expect(framework.adapt(FrameworkWiring.class)).andReturn(null).anyTimes();
+
+ replay(bundleContext, installedBundle, framework);
FeaturesServiceImpl svc = new FeaturesServiceImpl();
svc.setBundleContext(bundleContext);
@@ -354,7 +354,7 @@ public class FeaturesServiceTest extends
// Tests uninstall of features
public void testInstallFeatureWithDependantFeatures() throws Exception {
- String name = getJarUrl(Bundle.class);
+ String name = getJarUrl(BlueprintContainer.class);
File tmp = File.createTempFile("karaf", ".feature");
PrintWriter pw = new PrintWriter(new FileWriter(tmp));
@@ -373,6 +373,7 @@ public class FeaturesServiceTest extends
BundleContext bundleContext = EasyMock.createMock(BundleContext.class);
Bundle installedBundle = EasyMock.createMock(Bundle.class);
+ Bundle framework = EasyMock.createMock(Bundle.class);
// Installs feature f1 with dependency on f2
// so will install f2 first
@@ -407,7 +408,10 @@ public class FeaturesServiceTest extends
expect(bundleContext.getDataFile(EasyMock.<String>anyObject())).andReturn(dataFile).anyTimes();
- replay(bundleContext, installedBundle);
+ expect(bundleContext.getBundle()).andReturn(framework).anyTimes();
+ expect(framework.adapt(FrameworkWiring.class)).andReturn(null).anyTimes();
+
+ replay(bundleContext, installedBundle, framework);
FeaturesServiceImpl svc = new FeaturesServiceImpl();
svc.setBundleContext(bundleContext);
@@ -424,7 +428,7 @@ public class FeaturesServiceTest extends
// Tests install of a Repository that includes a feature with a feature dependency
public void testInstallFeatureWithDependantFeaturesAndVersionWithoutPreinstall() throws Exception {
- String name = getJarUrl(Bundle.class);
+ String name = getJarUrl(BlueprintContainer.class);
File tmp = File.createTempFile("karaf", ".feature");
PrintWriter pw = new PrintWriter(new FileWriter(tmp));
@@ -459,7 +463,7 @@ public class FeaturesServiceTest extends
// Tests install of a Repository that includes a feature with a feature dependency
public void testInstallFeatureWithDependantFeaturesAndNoVersionWithoutPreinstall() throws Exception {
- String name = getJarUrl(Bundle.class);
+ String name = getJarUrl(BlueprintContainer.class);
File tmp = File.createTempFile("karaf", ".feature");
PrintWriter pw = new PrintWriter(new FileWriter(tmp));
@@ -493,7 +497,7 @@ public class FeaturesServiceTest extends
public void testInstallFeatureWithDependantFeaturesAndRangeWithoutPreinstall() throws Exception {
- String name = getJarUrl(Bundle.class);
+ String name = getJarUrl(BlueprintContainer.class);
File tmp = File.createTempFile("karaf", ".feature");
PrintWriter pw = new PrintWriter(new FileWriter(tmp));
@@ -527,7 +531,7 @@ public class FeaturesServiceTest extends
public void testInstallFeatureWithDependantFeaturesAndRangeWithPreinstall() throws Exception {
- String name = getJarUrl(Bundle.class);
+ String name = getJarUrl(BlueprintContainer.class);
File tmp = File.createTempFile("karaf", ".feature");
PrintWriter pw = new PrintWriter(new FileWriter(tmp));
@@ -547,6 +551,7 @@ public class FeaturesServiceTest extends
URI uri = tmp.toURI();
BundleContext bundleContext = EasyMock.createMock(BundleContext.class);
+ Bundle framework = EasyMock.createMock(Bundle.class);
Bundle installedBundle = EasyMock.createMock(Bundle.class);
// Installs feature f1 with dependency on f2
@@ -569,7 +574,10 @@ public class FeaturesServiceTest extends
expect(bundleContext.getDataFile(EasyMock.<String>anyObject())).andReturn(dataFile).anyTimes();
- replay(bundleContext, installedBundle);
+ expect(bundleContext.getBundle()).andReturn(framework).anyTimes();
+ expect(framework.adapt(FrameworkWiring.class)).andReturn(null).anyTimes();
+
+ replay(bundleContext, installedBundle, framework);
FeaturesServiceImpl svc = new FeaturesServiceImpl();
svc.setBundleContext(bundleContext);
@@ -585,7 +593,7 @@ public class FeaturesServiceTest extends
public void testGetFeaturesShouldHandleDifferentVersionPatterns() throws Exception {
- String name = getJarUrl(Bundle.class);
+ String name = getJarUrl(BlueprintContainer.class);
File tmp = File.createTempFile("karaf", ".feature");
PrintWriter pw = new PrintWriter(new FileWriter(tmp));
@@ -626,6 +634,7 @@ public class FeaturesServiceTest extends
private BundleContext prepareBundleContextForInstallUninstall() throws Exception {
BundleContext bundleContext = EasyMock.createMock(BundleContext.class);
Bundle installedBundle = EasyMock.createMock(Bundle.class);
+ Bundle framework = EasyMock.createMock(Bundle.class);
// Installs feature f1 with dependency on f2
expect(bundleContext.getBundles()).andReturn(new Bundle[0]);
@@ -644,13 +653,16 @@ public class FeaturesServiceTest extends
expect(bundleContext.getDataFile(EasyMock.<String>anyObject())).andReturn(dataFile).anyTimes();
- replay(bundleContext, installedBundle);
+ expect(bundleContext.getBundle()).andReturn(framework).anyTimes();
+ expect(framework.adapt(FrameworkWiring.class)).andReturn(null).anyTimes();
+
+ replay(bundleContext, installedBundle, framework);
return bundleContext;
}
public void testInstallBatchFeatureWithContinueOnFailureNoClean() throws Exception {
- String bundle1 = getJarUrl(Bundle.class);
- String bundle2 = getJarUrl(LogService.class);
+ String bundle1 = getJarUrl(BlueprintContainer.class);
+ String bundle2 = getJarUrl(LoggerFactory.class);
File tmp = File.createTempFile("karaf", ".feature");
PrintWriter pw = new PrintWriter(new FileWriter(tmp));
@@ -701,8 +713,8 @@ public class FeaturesServiceTest extends
}
public void testInstallBatchFeatureWithContinueOnFailureClean() throws Exception {
- String bundle1 = getJarUrl(Bundle.class);
- String bundle2 = getJarUrl(LogService.class);
+ String bundle1 = getJarUrl(BlueprintContainer.class);
+ String bundle2 = getJarUrl(LoggerFactory.class);
File tmp = File.createTempFile("karaf", ".feature");
PrintWriter pw = new PrintWriter(new FileWriter(tmp));
@@ -754,8 +766,8 @@ public class FeaturesServiceTest extends
}
public void testInstallBatchFeatureWithoutContinueOnFailureNoClean() throws Exception {
- String bundle1 = getJarUrl(Bundle.class);
- String bundle2 = getJarUrl(LogService.class);
+ String bundle1 = getJarUrl(BlueprintContainer.class);
+ String bundle2 = getJarUrl(LoggerFactory.class);
File tmp = File.createTempFile("karaf", ".feature");
PrintWriter pw = new PrintWriter(new FileWriter(tmp));
@@ -811,8 +823,8 @@ public class FeaturesServiceTest extends
}
public void testInstallBatchFeatureWithoutContinueOnFailureClean() throws Exception {
- String bundle1 = getJarUrl(Bundle.class);
- String bundle2 = getJarUrl(LogService.class);
+ String bundle1 = getJarUrl(BlueprintContainer.class);
+ String bundle2 = getJarUrl(LoggerFactory.class);
File tmp = File.createTempFile("karaf", ".feature");
PrintWriter pw = new PrintWriter(new FileWriter(tmp));
@@ -869,8 +881,8 @@ public class FeaturesServiceTest extends
}
public void testInstallFeatureWithHostToRefresh() throws Exception {
- String bundle1 = getJarUrl(LogService.class);
- String bundle2 = getJarUrl(Bundle.class);
+ String bundle1 = getJarUrl(BlueprintContainer.class);
+ String bundle2 = getJarUrl(LoggerFactory.class);
File tmp = File.createTempFile("karaf", ".feature");
PrintWriter pw = new PrintWriter(new FileWriter(tmp));
@@ -891,8 +903,9 @@ public class FeaturesServiceTest extends
}
// loads the state
- PackageAdmin packageAdmin = EasyMock.createMock(PackageAdmin.class);
BundleContext bundleContext = EasyMock.createMock(BundleContext.class);
+ Bundle framework = EasyMock.createMock(Bundle.class);
+ FrameworkWiring wiring = EasyMock.createMock(FrameworkWiring.class);
Bundle installedBundle1 = EasyMock.createMock(Bundle.class);
Bundle installedBundle2 = EasyMock.createMock(Bundle.class);
@@ -922,14 +935,15 @@ public class FeaturesServiceTest extends
//
// This is the real test to make sure the host is actually refreshed
//
- packageAdmin.refreshPackages(aryEq(new Bundle[] { installedBundle1 }));
+ expect(bundleContext.getBundle()).andReturn(framework).anyTimes();
+ expect(framework.adapt(FrameworkWiring.class)).andReturn(wiring).anyTimes();
+ wiring.refreshBundles(eq(Collections.singleton(installedBundle1)), (FrameworkListener) anyObject());
expect(bundleContext.getDataFile(EasyMock.<String>anyObject())).andReturn(dataFile).anyTimes();
- replay(packageAdmin, bundleContext, installedBundle1, installedBundle2);
+ replay(wiring, framework, bundleContext, installedBundle1, installedBundle2);
FeaturesServiceImpl svc = new FeaturesServiceImpl();
- svc.setPackageAdmin(packageAdmin);
svc.setBundleContext(bundleContext);
svc.addRepository(uri);
@@ -957,7 +971,9 @@ public class FeaturesServiceTest extends
URI uri = tmp.toURI();
BundleContext bundleContext = EasyMock.createMock(BundleContext.class);
-
+ Bundle bundle = EasyMock.createMock(Bundle.class);
+ expect(bundleContext.getBundle()).andReturn(bundle);
+ expect(bundle.adapt(FrameworkWiring.class)).andReturn(null);
expect(bundleContext.getDataFile(EasyMock.<String>anyObject())).andReturn(dataFile).anyTimes();
FeaturesServiceImpl svc = new FeaturesServiceImpl();
@@ -974,8 +990,8 @@ public class FeaturesServiceTest extends
* This test checks feature service behavior with old, non namespaced descriptor.
*/
public void testLoadOldFeatureFile() throws Exception {
- String bundle1 = getJarUrl(LogService.class);
- String bundle2 = getJarUrl(Bundle.class);
+ String bundle1 = getJarUrl(BlueprintContainer.class);
+ String bundle2 = getJarUrl(LoggerFactory.class);
File tmp = File.createTempFile("karaf", ".feature");
PrintWriter pw = new PrintWriter(new FileWriter(tmp));
Modified: karaf/trunk/main/src/main/java/org/apache/karaf/main/Main.java
URL: http://svn.apache.org/viewvc/karaf/trunk/main/src/main/java/org/apache/karaf/main/Main.java?rev=1228280&r1=1228279&r2=1228280&view=diff
==============================================================================
--- karaf/trunk/main/src/main/java/org/apache/karaf/main/Main.java (original)
+++ karaf/trunk/main/src/main/java/org/apache/karaf/main/Main.java Fri Jan 6 17:08:02 2012
@@ -67,10 +67,10 @@ import org.osgi.framework.BundleContext;
import org.osgi.framework.BundleException;
import org.osgi.framework.Constants;
import org.osgi.framework.FrameworkEvent;
-import org.osgi.framework.ServiceReference;
import org.osgi.framework.launch.Framework;
import org.osgi.framework.launch.FrameworkFactory;
-import org.osgi.service.startlevel.StartLevel;
+import org.osgi.framework.startlevel.BundleStartLevel;
+import org.osgi.framework.startlevel.FrameworkStartLevel;
/**
* <p>
@@ -618,8 +618,7 @@ public class Main {
// Retrieve the Start Level service, since it will be needed
// to set the start level of the installed bundles.
- StartLevel sl = (StartLevel) context.getService(
- context.getServiceReference(org.osgi.service.startlevel.StartLevel.class.getName()));
+ FrameworkStartLevel sl = framework.adapt(FrameworkStartLevel.class);
// Set the default bundle start level
int ibsl = 60;
@@ -652,7 +651,7 @@ public class Main {
}
}
- private List<Bundle> autoInstall(String propertyPrefix, BundleContext context, StartLevel sl, boolean convertToMavenUrls, boolean start) {
+ private List<Bundle> autoInstall(String propertyPrefix, BundleContext context, FrameworkStartLevel sl, boolean convertToMavenUrls, boolean start) {
Map<Integer, String> autoStart = new TreeMap<Integer, String>();
List<Bundle> bundles = new ArrayList<Bundle>();
for (Object o : configProps.keySet()) {
@@ -684,7 +683,7 @@ public class Main {
try {
String[] parts = Utils.convertToMavenUrlsIfNeeded(location, convertToMavenUrls);
Bundle b = context.installBundle(parts[0], new URL(parts[1]).openStream());
- sl.setBundleStartLevel(b, startLevel);
+ b.adapt(BundleStartLevel.class).setStartLevel(startLevel);
bundles.add(b);
}
catch (Exception ex) {
@@ -1386,10 +1385,7 @@ public class Main {
}
protected void setStartLevel(int level) throws Exception {
- BundleContext ctx = framework.getBundleContext();
- ServiceReference[] refs = ctx.getServiceReferences(StartLevel.class.getName(), null);
- StartLevel sl = (StartLevel) ctx.getService(refs[0]);
- sl.setStartLevel(level);
+ framework.adapt(FrameworkStartLevel.class).setStartLevel(level);
}
Modified: karaf/trunk/management/mbeans/bundles/src/main/java/org/apache/karaf/management/mbeans/bundles/internal/BundlesMBeanImpl.java
URL: http://svn.apache.org/viewvc/karaf/trunk/management/mbeans/bundles/src/main/java/org/apache/karaf/management/mbeans/bundles/internal/BundlesMBeanImpl.java?rev=1228280&r1=1228279&r2=1228280&view=diff
==============================================================================
--- karaf/trunk/management/mbeans/bundles/src/main/java/org/apache/karaf/management/mbeans/bundles/internal/BundlesMBeanImpl.java (original)
+++ karaf/trunk/management/mbeans/bundles/src/main/java/org/apache/karaf/management/mbeans/bundles/internal/BundlesMBeanImpl.java Fri Jan 6 17:08:02 2012
@@ -16,19 +16,25 @@
*/
package org.apache.karaf.management.mbeans.bundles.internal;
-import org.apache.karaf.management.mbeans.bundles.BundlesMBean;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceReference;
-import org.osgi.service.packageadmin.PackageAdmin;
-import org.osgi.service.startlevel.StartLevel;
-
-import javax.management.NotCompliantMBeanException;
-import javax.management.StandardMBean;
-import javax.management.openmbean.*;
import java.io.InputStream;
import java.net.URL;
import java.util.List;
+import javax.management.NotCompliantMBeanException;
+import javax.management.StandardMBean;
+import javax.management.openmbean.CompositeData;
+import javax.management.openmbean.CompositeDataSupport;
+import javax.management.openmbean.CompositeType;
+import javax.management.openmbean.OpenType;
+import javax.management.openmbean.SimpleType;
+import javax.management.openmbean.TabularData;
+import javax.management.openmbean.TabularDataSupport;
+import javax.management.openmbean.TabularType;
+
+import org.apache.karaf.management.mbeans.bundles.BundlesMBean;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.startlevel.BundleStartLevel;
+import org.osgi.framework.wiring.FrameworkWiring;
/**
* Bundles MBean implementation.
@@ -42,12 +48,6 @@ public class BundlesMBeanImpl extends St
}
public TabularData getBundles() throws Exception {
- ServiceReference startLevelReference = bundleContext.getServiceReference(StartLevel.class.getName());
- StartLevel startLevel = null;
- if (startLevelReference != null) {
- startLevel = (StartLevel) bundleContext.getService(startLevelReference);
- }
-
CompositeType bundleType = new CompositeType("Bundle", "OSGi Bundle",
new String[]{ "ID", "Name", "Version", "Start Level", "State" },
new String[]{ "ID of the Bundle", "Name of the Bundle", "Version of the Bundle", "Start Level of the Bundle", "Current State of the Bundle" },
@@ -58,10 +58,7 @@ public class BundlesMBeanImpl extends St
Bundle[] bundles = bundleContext.getBundles();
for (int i = 0; i < bundles.length; i++) {
- int bundleStartLevel = 1;
- if (startLevel != null) {
- bundleStartLevel = startLevel.getBundleStartLevel(bundles[i]);
- }
+ int bundleStartLevel = getBundleStartLevel(bundles[i]).getStartLevel();
int bundleState = bundles[i].getState();
String bundleStateString;
if (bundleState == Bundle.ACTIVE)
@@ -80,22 +77,10 @@ public class BundlesMBeanImpl extends St
new Object[]{ bundles[i].getBundleId(), bundles[i].getSymbolicName(), bundles[i].getVersion().toString(), bundleStartLevel, bundleStateString });
table.put(data);
}
-
- bundleContext.ungetService(startLevelReference);
-
return table;
}
public int getStartLevel(String bundleId) throws Exception {
- ServiceReference startLevelReference = bundleContext.getServiceReference(StartLevel.class.getName());
- if (startLevelReference == null) {
- throw new IllegalStateException("StartLevel service is not available");
- }
- StartLevel startLevel = (StartLevel) bundleContext.getService(startLevelReference);
- if (startLevel == null) {
- throw new IllegalStateException("StartLevel service is not available");
- }
-
BundlesSelector selector = new BundlesSelector(bundleContext);
List<Bundle> bundles = selector.selectBundles(bundleId);
@@ -103,60 +88,30 @@ public class BundlesMBeanImpl extends St
throw new IllegalArgumentException("Provided bundle Id doesn't return any bundle or more than one bundle selected");
}
- int bundleStartLevel = startLevel.getBundleStartLevel(bundles.get(0));
- bundleContext.ungetService(startLevelReference);
- return bundleStartLevel;
+ return getBundleStartLevel(bundles.get(0)).getStartLevel();
}
public void setStartLevel(String bundleId, int bundleStartLevel) throws Exception {
- ServiceReference startLevelReference = bundleContext.getServiceReference(StartLevel.class.getName());
- if (startLevelReference == null) {
- throw new IllegalStateException("StartLevel service is not available");
- }
- StartLevel startLevel = (StartLevel) bundleContext.getService(startLevelReference);
- if (startLevel == null) {
- throw new IllegalStateException("StartLevel service is not available");
- }
-
BundlesSelector selector = new BundlesSelector(bundleContext);
List<Bundle> bundles = selector.selectBundles(bundleId);
for (Bundle bundle : bundles) {
- startLevel.setBundleStartLevel(bundle, bundleStartLevel);
+ getBundleStartLevel(bundle).setStartLevel(bundleStartLevel);
}
+ }
- bundleContext.ungetService(startLevelReference);
+ private BundleStartLevel getBundleStartLevel(Bundle bundle) {
+ return bundle.adapt(BundleStartLevel.class);
}
public void refresh() throws Exception {
- ServiceReference packageAdminReference = getBundleContext().getServiceReference(PackageAdmin.class.getName());
- if (packageAdminReference == null) {
- throw new IllegalStateException("PackageAdmin service is not available");
- }
- PackageAdmin packageAdmin = (PackageAdmin) bundleContext.getService(packageAdminReference);
- if (packageAdmin == null) {
- throw new IllegalStateException("PackageAdmin service is not available");
- }
- packageAdmin.refreshPackages(null);
- getBundleContext().ungetService(packageAdminReference);
+ getFrameworkWiring().refreshBundles(null);
}
public void refresh(String bundleId) throws Exception {
- ServiceReference packageAdminReference = getBundleContext().getServiceReference(PackageAdmin.class.getName());
- if (packageAdminReference == null) {
- throw new IllegalStateException("PackageAdmin service is not available");
- }
- PackageAdmin packageAdmin = (PackageAdmin) bundleContext.getService(packageAdminReference);
- if (packageAdmin == null) {
- throw new IllegalStateException("PackageAdmin service is not available");
- }
-
- BundlesSelector selector = new BundlesSelector(bundleContext);
+ BundlesSelector selector = new BundlesSelector(getBundleContext());
List<Bundle> bundles = selector.selectBundles(bundleId);
-
- Bundle[] bundlesArray = new Bundle[bundles.size()];
- packageAdmin.refreshPackages(bundles.toArray(bundlesArray));
- getBundleContext().ungetService(packageAdminReference);
+ getFrameworkWiring().refreshBundles(bundles);
}
public void update(String bundleId) throws Exception {
@@ -184,35 +139,17 @@ public class BundlesMBeanImpl extends St
}
public void resolve() throws Exception {
- ServiceReference packageAdminReference = getBundleContext().getServiceReference(PackageAdmin.class.getName());
- if (packageAdminReference == null) {
- throw new IllegalStateException("PackageAdmin service is not available");
- }
- PackageAdmin packageAdmin = (PackageAdmin) bundleContext.getService(packageAdminReference);
- if (packageAdmin == null) {
- throw new IllegalStateException("PackageAdmin service is not available");
- }
- packageAdmin.resolveBundles(null);
- getBundleContext().ungetService(packageAdminReference);
+ getFrameworkWiring().resolveBundles(null);
}
public void resolve(String bundleId) throws Exception {
- ServiceReference packageAdminReference = getBundleContext().getServiceReference(PackageAdmin.class.getName());
- if (packageAdminReference == null) {
- throw new IllegalStateException("PackageAdmin service is not available");
- }
- PackageAdmin packageAdmin = (PackageAdmin) bundleContext.getService(packageAdminReference);
- if (packageAdmin == null) {
- throw new IllegalStateException("PackageAdmin service is not available");
- }
-
- BundlesSelector selector = new BundlesSelector(bundleContext);
+ BundlesSelector selector = new BundlesSelector(getBundleContext());
List<Bundle> bundles = selector.selectBundles(bundleId);
+ getFrameworkWiring().resolveBundles(bundles);
+ }
- Bundle[] bundlesArray = new Bundle[bundles.size()];
- packageAdmin.resolveBundles(bundles.toArray(bundlesArray));
-
- getBundleContext().ungetService(packageAdminReference);
+ private FrameworkWiring getFrameworkWiring() {
+ return getBundleContext().getBundle(0).adapt(FrameworkWiring.class);
}
public void restart(String bundleId) throws Exception {
Modified: karaf/trunk/management/mbeans/packages/src/main/java/org/apache/karaf/management/mbeans/packages/PackagesMBean.java
URL: http://svn.apache.org/viewvc/karaf/trunk/management/mbeans/packages/src/main/java/org/apache/karaf/management/mbeans/packages/PackagesMBean.java?rev=1228280&r1=1228279&r2=1228280&view=diff
==============================================================================
--- karaf/trunk/management/mbeans/packages/src/main/java/org/apache/karaf/management/mbeans/packages/PackagesMBean.java (original)
+++ karaf/trunk/management/mbeans/packages/src/main/java/org/apache/karaf/management/mbeans/packages/PackagesMBean.java Fri Jan 6 17:08:02 2012
@@ -16,12 +16,12 @@
*/
package org.apache.karaf.management.mbeans.packages;
-import javax.management.openmbean.TabularData;
import java.util.List;
/**
* Packages MBean
*/
+@Deprecated
public interface PackagesMBean {
List<String> getExportedPackages() throws Exception;
Modified: karaf/trunk/management/mbeans/packages/src/main/java/org/apache/karaf/management/mbeans/packages/internal/PackagesMBeanImpl.java
URL: http://svn.apache.org/viewvc/karaf/trunk/management/mbeans/packages/src/main/java/org/apache/karaf/management/mbeans/packages/internal/PackagesMBeanImpl.java?rev=1228280&r1=1228279&r2=1228280&view=diff
==============================================================================
--- karaf/trunk/management/mbeans/packages/src/main/java/org/apache/karaf/management/mbeans/packages/internal/PackagesMBeanImpl.java (original)
+++ karaf/trunk/management/mbeans/packages/src/main/java/org/apache/karaf/management/mbeans/packages/internal/PackagesMBeanImpl.java Fri Jan 6 17:08:02 2012
@@ -16,6 +16,11 @@
*/
package org.apache.karaf.management.mbeans.packages.internal;
+import java.util.ArrayList;
+import java.util.List;
+import javax.management.NotCompliantMBeanException;
+import javax.management.StandardMBean;
+
import org.apache.karaf.management.mbeans.packages.PackagesMBean;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
@@ -23,14 +28,10 @@ import org.osgi.framework.ServiceReferen
import org.osgi.service.packageadmin.ExportedPackage;
import org.osgi.service.packageadmin.PackageAdmin;
-import javax.management.NotCompliantMBeanException;
-import javax.management.StandardMBean;
-import java.util.ArrayList;
-import java.util.List;
-
/**
* Packages MBean implementation.
*/
+@Deprecated
public class PackagesMBeanImpl extends StandardMBean implements PackagesMBean {
private BundleContext bundleContext;
Modified: karaf/trunk/shell/bundles/src/main/java/org/apache/karaf/shell/bundles/Headers.java
URL: http://svn.apache.org/viewvc/karaf/trunk/shell/bundles/src/main/java/org/apache/karaf/shell/bundles/Headers.java?rev=1228280&r1=1228279&r2=1228280&view=diff
==============================================================================
--- karaf/trunk/shell/bundles/src/main/java/org/apache/karaf/shell/bundles/Headers.java (original)
+++ karaf/trunk/shell/bundles/src/main/java/org/apache/karaf/shell/bundles/Headers.java Fri Jan 6 17:08:02 2012
@@ -17,7 +17,6 @@
package org.apache.karaf.shell.bundles;
import java.util.Arrays;
-import java.util.Collections;
import java.util.Comparator;
import java.util.Dictionary;
import java.util.Enumeration;
@@ -27,17 +26,21 @@ import java.util.List;
import java.util.Map;
import jline.Terminal;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.commands.Option;
import org.apache.felix.utils.manifest.Attribute;
import org.apache.felix.utils.manifest.Clause;
import org.apache.felix.utils.manifest.Directive;
import org.apache.felix.utils.manifest.Parser;
import org.apache.felix.utils.version.VersionRange;
+import org.apache.felix.utils.version.VersionTable;
+import org.apache.karaf.shell.commands.Command;
+import org.apache.karaf.shell.commands.Option;
import org.apache.karaf.util.ShellUtil;
import org.fusesource.jansi.Ansi;
import org.osgi.framework.Bundle;
-import org.osgi.framework.ServiceReference;
+import org.osgi.framework.Constants;
+import org.osgi.framework.wiring.BundleCapability;
+import org.osgi.framework.wiring.BundleRevision;
+import org.osgi.framework.wiring.BundleWiring;
import org.osgi.service.packageadmin.ExportedPackage;
import org.osgi.service.packageadmin.PackageAdmin;
@@ -53,10 +56,7 @@ public class Headers extends BundlesComm
@Option(name = "--indent", description = "Indentation method")
int indent = -1;
- private PackageAdmin admin;
-
protected void doExecute(List<Bundle> bundles) throws Exception {
- admin = getService(PackageAdmin.class);
if (bundles == null || bundles.isEmpty()) {
bundles = Arrays.asList(getBundleContext().getBundles());
}
@@ -287,21 +287,31 @@ public class Headers extends BundlesComm
}
- private boolean checkBundle(String bundleName, String version) {
- if (admin != null) {
- Bundle[] bundles = admin.getBundles(bundleName, version);
- return bundles != null && bundles.length > 0;
+ private boolean checkBundle(String bundleName, String version) {
+ VersionRange vr = VersionRange.parseVersionRange(version);
+ Bundle[] bundles = bundleContext.getBundles();
+ for (int i = 0; (bundles != null) && (i < bundles.length); i++) {
+ String sym = bundles[i].getSymbolicName();
+ if ((sym != null) && sym.equals(bundleName)) {
+ if (vr.contains(bundles[i].getVersion())) {
+ return true;
+ }
+ }
}
return false;
}
private boolean checkPackage(String packageName, String version) {
VersionRange range = VersionRange.parseVersionRange(version);
- if (admin != null) {
- ExportedPackage[] packages = admin.getExportedPackages(packageName);
- if (packages != null) {
- for (ExportedPackage export : packages) {
- if (range.contains(export.getVersion())) {
+ Bundle[] bundles = bundleContext.getBundles();
+ for (int i = 0; (bundles != null) && (i < bundles.length); i++) {
+ BundleWiring wiring = bundles[i].adapt(BundleWiring.class);
+ List<BundleCapability> caps = wiring != null ? wiring.getCapabilities(BundleRevision.PACKAGE_NAMESPACE) : null;
+ if (caps != null) {
+ for (BundleCapability cap : caps) {
+ String n = getAttribute(cap, BundleRevision.PACKAGE_NAMESPACE);
+ String v = getAttribute(cap, Constants.VERSION_ATTRIBUTE);
+ if (packageName.equals(n) && range.contains(VersionTable.getVersion(v))) {
return true;
}
}
@@ -309,5 +319,10 @@ public class Headers extends BundlesComm
}
return false;
}
+
+ private String getAttribute(BundleCapability cap, String name) {
+ Object obj = cap.getAttributes().get(name);
+ return obj != null ? obj.toString() : null;
+ }
}
Modified: karaf/trunk/shell/bundles/src/main/java/org/apache/karaf/shell/bundles/ListBundles.java
URL: http://svn.apache.org/viewvc/karaf/trunk/shell/bundles/src/main/java/org/apache/karaf/shell/bundles/ListBundles.java?rev=1228280&r1=1228279&r2=1228280&view=diff
==============================================================================
--- karaf/trunk/shell/bundles/src/main/java/org/apache/karaf/shell/bundles/ListBundles.java (original)
+++ karaf/trunk/shell/bundles/src/main/java/org/apache/karaf/shell/bundles/ListBundles.java Fri Jan 6 17:08:02 2012
@@ -25,7 +25,9 @@ import org.osgi.framework.Bundle;
import org.osgi.framework.Constants;
import org.osgi.framework.startlevel.BundleStartLevel;
import org.osgi.framework.startlevel.FrameworkStartLevel;
-import org.osgi.service.packageadmin.PackageAdmin;
+import org.osgi.framework.wiring.BundleRevision;
+import org.osgi.framework.wiring.BundleRevisions;
+import org.osgi.framework.wiring.BundleWire;
@Command(scope = "bundle", name = "list", description = "Lists all installed bundles.")
public class ListBundles extends OsgiCommandSupport {
@@ -44,14 +46,11 @@ public class ListBundles extends OsgiCom
private List<BundleStateListener.Factory> bundleStateListenerFactories;
- private PackageAdmin admin;
-
public void setBundleStateListenerFactories(List<BundleStateListener.Factory> bundleStateListenerFactories) {
this.bundleStateListenerFactories = bundleStateListenerFactories;
}
protected Object doExecute() throws Exception {
- admin = getService(PackageAdmin.class);
Bundle[] bundles = getBundleContext().getBundles();
if (bundles != null) {
// Determine threshold
@@ -145,37 +144,56 @@ public class ListBundles extends OsgiCom
line += " [" + level + "] " + name;
System.out.println(line);
- if (admin != null) {
- Bundle[] fragments = admin.getFragments(bundles[i]);
- Bundle[] hosts = admin.getHosts(bundles[i]);
-
- if (fragments != null) {
- System.out.print(" Fragments: ");
- int ii = 0;
- for (Bundle fragment : fragments) {
- ii++;
- System.out.print(fragment.getBundleId());
- if ((fragments.length > 1) && ii < (fragments.length)) {
- System.out.print(",");
- }
- }
- System.out.println();
- }
-
- if (hosts != null) {
- System.out.print(" Hosts: ");
- int ii = 0;
- for (Bundle host : hosts) {
- ii++;
- System.out.print(host.getBundleId());
- if ((hosts.length > 1) && ii < (hosts.length)) {
- System.out.print(",");
- }
- }
- System.out.println();
- }
-
- }
+ boolean isFragment = bundles[i].getHeaders().get(Constants.FRAGMENT_HOST) != null;
+ if (!isFragment) {
+ int nb = 0;
+ for (BundleRevision revision : bundles[i].adapt(BundleRevisions.class).getRevisions()) {
+ if (revision.getWiring() != null) {
+ List<BundleWire> wires = revision.getWiring().getProvidedWires(null);
+ if (wires != null) {
+ for (BundleWire w : wires) {
+ if (w.getCapability().getNamespace().equals(BundleRevision.HOST_NAMESPACE)) {
+ Bundle b = w.getRequirerWiring().getBundle();
+ if (nb == 0) {
+ System.out.print(" Fragments: ");
+ } else {
+ System.out.print(",");
+ }
+ System.out.print(b.getBundleId());
+ nb++;
+ }
+ }
+ }
+ }
+ }
+ if (nb > 0) {
+ System.out.println();
+ }
+ } else {
+ int nb = 0;
+ for (BundleRevision revision : bundles[i].adapt(BundleRevisions.class).getRevisions()) {
+ if (revision.getWiring() != null) {
+ List<BundleWire> wires = revision.getWiring().getRequiredWires(null);
+ if (wires != null) {
+ for (BundleWire w : wires) {
+ Bundle b = w.getProviderWiring().getBundle();
+ if (b != null) {
+ if (nb == 0) {
+ System.out.print(" Hosts: ");
+ } else {
+ System.out.println(",");
+ }
+ System.out.print(b.getBundleId());
+ nb++;
+ }
+ }
+ }
+ }
+ }
+ if (nb > 0) {
+ System.out.println();
+ }
+ }
}
}
}
Modified: karaf/trunk/shell/bundles/src/main/java/org/apache/karaf/shell/bundles/Refresh.java
URL: http://svn.apache.org/viewvc/karaf/trunk/shell/bundles/src/main/java/org/apache/karaf/shell/bundles/Refresh.java?rev=1228280&r1=1228279&r2=1228280&view=diff
==============================================================================
--- karaf/trunk/shell/bundles/src/main/java/org/apache/karaf/shell/bundles/Refresh.java (original)
+++ karaf/trunk/shell/bundles/src/main/java/org/apache/karaf/shell/bundles/Refresh.java Fri Jan 6 17:08:02 2012
@@ -20,33 +20,13 @@ import java.util.List;
import org.apache.karaf.shell.commands.Command;
import org.osgi.framework.Bundle;
-import org.osgi.framework.ServiceReference;
-import org.osgi.service.packageadmin.PackageAdmin;
+import org.osgi.framework.wiring.FrameworkWiring;
@Command(scope = "bundle", name = "refresh", description = "Refresh bundles.")
public class Refresh extends BundlesCommandWithConfirmation {
protected void doExecute(List<Bundle> bundles) throws Exception {
- // Get package admin service.
- ServiceReference ref = getBundleContext().getServiceReference(PackageAdmin.class.getName());
- if (ref == null) {
- System.out.println("PackageAdmin service is unavailable.");
- return;
- }
- try {
- PackageAdmin pa = (PackageAdmin) getBundleContext().getService(ref);
- if (pa == null) {
- System.out.println("PackageAdmin service is unavailable.");
- return;
- }
- if (bundles == null || bundles.size() == 0) {
- pa.refreshPackages(null);
- } else {
- pa.refreshPackages(bundles.toArray(new Bundle[bundles.size()]));
- }
- }
- finally {
- getBundleContext().ungetService(ref);
- }
+ FrameworkWiring wiring = getBundleContext().getBundle(0).adapt(FrameworkWiring.class);
+ wiring.refreshBundles(bundles == null || bundles.isEmpty() ? null : bundles);
}
}
Modified: karaf/trunk/shell/bundles/src/main/java/org/apache/karaf/shell/bundles/Resolve.java
URL: http://svn.apache.org/viewvc/karaf/trunk/shell/bundles/src/main/java/org/apache/karaf/shell/bundles/Resolve.java?rev=1228280&r1=1228279&r2=1228280&view=diff
==============================================================================
--- karaf/trunk/shell/bundles/src/main/java/org/apache/karaf/shell/bundles/Resolve.java (original)
+++ karaf/trunk/shell/bundles/src/main/java/org/apache/karaf/shell/bundles/Resolve.java Fri Jan 6 17:08:02 2012
@@ -20,34 +20,14 @@ import java.util.List;
import org.apache.karaf.shell.commands.Command;
import org.osgi.framework.Bundle;
-import org.osgi.framework.ServiceReference;
-import org.osgi.service.packageadmin.PackageAdmin;
+import org.osgi.framework.wiring.FrameworkWiring;
@Command(scope = "bundle", name = "resolve", description = "Resolve bundles.")
public class Resolve extends BundlesCommand {
protected void doExecute(List<Bundle> bundles) throws Exception {
- // Get package admin service.
- ServiceReference ref = getBundleContext().getServiceReference(PackageAdmin.class.getName());
- if (ref == null) {
- System.out.println("PackageAdmin service is unavailable.");
- return;
- }
- try {
- PackageAdmin pa = (PackageAdmin) getBundleContext().getService(ref);
- if (pa == null) {
- System.out.println("PackageAdmin service is unavailable.");
- return;
- }
- if (bundles == null) {
- pa.resolveBundles(null);
- } else {
- pa.resolveBundles(bundles.toArray(new Bundle[bundles.size()]));
- }
- }
- finally {
- getBundleContext().ungetService(ref);
- }
+ FrameworkWiring wiring = getBundleContext().getBundle(0).adapt(FrameworkWiring.class);
+ wiring.resolveBundles(bundles == null || bundles.isEmpty() ? null : bundles);
}
}
Modified: karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/Converters.java
URL: http://svn.apache.org/viewvc/karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/Converters.java?rev=1228280&r1=1228279&r2=1228280&view=diff
==============================================================================
--- karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/Converters.java (original)
+++ karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/Converters.java Fri Jan 6 17:08:02 2012
@@ -26,13 +26,13 @@ import java.lang.reflect.Proxy;
import java.util.Arrays;
import java.util.Formatter;
+import org.apache.felix.service.command.Converter;
+import org.apache.felix.service.command.Function;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
import org.osgi.framework.InvalidSyntaxException;
import org.osgi.framework.ServiceReference;
-import org.apache.felix.service.command.Converter;
-import org.apache.felix.service.command.Function;
-import org.osgi.service.startlevel.StartLevel;
+import org.osgi.framework.startlevel.FrameworkStartLevel;
public class Converters implements Converter
{
@@ -46,21 +46,7 @@ public class Converters implements Conve
private CharSequence print(Bundle bundle)
{
// [ ID ] [STATE ] [ SL ] symname
- StartLevel sl = null;
- ServiceReference ref = context.getServiceReference(StartLevel.class.getName());
- if (ref != null)
- {
- sl = (StartLevel) context.getService(ref);
- }
-
- if (sl == null)
- {
- return String.format("%5d|%-11s|%s (%s)", bundle.getBundleId(),
- getState(bundle), bundle.getSymbolicName(), bundle.getVersion());
- }
-
- int level = sl.getBundleStartLevel(bundle);
- context.ungetService(ref);
+ int level = bundle.adapt(FrameworkStartLevel.class).getStartLevel();
return String.format("%5d|%-11s|%5d|%s (%s)", bundle.getBundleId(),
getState(bundle), level, bundle.getSymbolicName(), bundle.getVersion());
Modified: karaf/trunk/shell/dev/pom.xml
URL: http://svn.apache.org/viewvc/karaf/trunk/shell/dev/pom.xml?rev=1228280&r1=1228279&r2=1228280&view=diff
==============================================================================
--- karaf/trunk/shell/dev/pom.xml (original)
+++ karaf/trunk/shell/dev/pom.xml Fri Jan 6 17:08:02 2012
@@ -121,6 +121,7 @@
*
</Import-Package>
<Private-Package>
+ org.apache.felix.utils.manifest,
org.apache.felix.utils.version,
org.apache.felix.utils.properties,
org.ops4j.pax.url.mvn,
Modified: karaf/trunk/shell/dev/src/main/java/org/apache/karaf/shell/dev/AbstractBundleCommand.java
URL: http://svn.apache.org/viewvc/karaf/trunk/shell/dev/src/main/java/org/apache/karaf/shell/dev/AbstractBundleCommand.java?rev=1228280&r1=1228279&r2=1228280&view=diff
==============================================================================
--- karaf/trunk/shell/dev/src/main/java/org/apache/karaf/shell/dev/AbstractBundleCommand.java (original)
+++ karaf/trunk/shell/dev/src/main/java/org/apache/karaf/shell/dev/AbstractBundleCommand.java Fri Jan 6 17:08:02 2012
@@ -17,14 +17,16 @@
package org.apache.karaf.shell.dev;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import org.apache.karaf.shell.commands.Argument;
import org.apache.karaf.shell.console.OsgiCommandSupport;
import org.osgi.framework.Bundle;
-import org.osgi.framework.ServiceReference;
-import org.osgi.service.packageadmin.ExportedPackage;
-import org.osgi.service.packageadmin.PackageAdmin;
+import org.osgi.framework.wiring.BundleRevision;
+import org.osgi.framework.wiring.BundleRevisions;
+import org.osgi.framework.wiring.BundleWire;
+import org.osgi.framework.wiring.BundleWiring;
/**
* Base class for a dev: command that takes a bundle id as an argument
@@ -36,20 +38,8 @@ public abstract class AbstractBundleComm
@Argument(index = 0, name = "id", description = "The bundle ID", required = true)
Long id;
- private PackageAdmin admin;
-
@Override
protected Object doExecute() throws Exception {
- // Get package admin service.
- ServiceReference ref = getBundleContext().getServiceReference(PackageAdmin.class.getName());
- if (ref == null) {
- System.out.println("PackageAdmin service is unavailable.");
- return null;
- }
-
- // using the getService call ensures that the reference will be released at the end
- admin = getService(PackageAdmin.class, ref);
-
Bundle bundle = getBundleContext().getBundle(id);
if (bundle == null) {
System.err.println("Bundle ID " + id + " is invalid");
@@ -70,14 +60,16 @@ public abstract class AbstractBundleComm
// the set of bundles from which the bundle imports packages
Map<String, Bundle> exporters = new HashMap<String, Bundle>();
- for (ExportedPackage pkg : getPackageAdmin().getExportedPackages((Bundle) null)) {
- Bundle[] bundles = pkg.getImportingBundles();
- if (bundles != null) {
- for (Bundle importingBundle : bundles) {
- if (bundle.equals(importingBundle)
- && !(pkg.getExportingBundle().getBundleId() == 0)
- && !(pkg.getExportingBundle().equals(bundle))) {
- exporters.put(pkg.getName(), pkg.getExportingBundle());
+ 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());
+ }
}
}
}
@@ -85,7 +77,4 @@ public abstract class AbstractBundleComm
return exporters;
}
- protected PackageAdmin getPackageAdmin() {
- return admin;
- }
}
Modified: karaf/trunk/shell/dev/src/main/java/org/apache/karaf/shell/dev/DynamicImport.java
URL: http://svn.apache.org/viewvc/karaf/trunk/shell/dev/src/main/java/org/apache/karaf/shell/dev/DynamicImport.java?rev=1228280&r1=1228279&r2=1228280&view=diff
==============================================================================
--- karaf/trunk/shell/dev/src/main/java/org/apache/karaf/shell/dev/DynamicImport.java (original)
+++ karaf/trunk/shell/dev/src/main/java/org/apache/karaf/shell/dev/DynamicImport.java Fri Jan 6 17:08:02 2012
@@ -17,17 +17,20 @@
package org.apache.karaf.shell.dev;
import java.io.IOException;
-import static java.lang.String.format;
import java.net.URL;
+import java.util.Collections;
import java.util.Iterator;
import java.util.Set;
import org.apache.karaf.shell.commands.Command;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleException;
+import org.osgi.framework.wiring.FrameworkWiring;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import static java.lang.String.format;
+
/**
* Command for enabling/disabling debug logging on a bundle and calculating the difference in
* wired imports.
@@ -71,7 +74,7 @@ public class DynamicImport extends Abstr
URL url = new URL(location);
bundle.update(url.openStream());
- getPackageAdmin().refreshPackages(new Bundle[] {bundle});
+ bundleContext.getBundle(0).adapt(FrameworkWiring.class).refreshBundles(Collections.singleton(bundle));
}
/*
Modified: karaf/trunk/shell/dev/src/main/java/org/apache/karaf/shell/dev/ShowBundleTree.java
URL: http://svn.apache.org/viewvc/karaf/trunk/shell/dev/src/main/java/org/apache/karaf/shell/dev/ShowBundleTree.java?rev=1228280&r1=1228279&r2=1228280&view=diff
==============================================================================
--- karaf/trunk/shell/dev/src/main/java/org/apache/karaf/shell/dev/ShowBundleTree.java (original)
+++ karaf/trunk/shell/dev/src/main/java/org/apache/karaf/shell/dev/ShowBundleTree.java Fri Jan 6 17:08:02 2012
@@ -16,23 +16,33 @@
*/
package org.apache.karaf.shell.dev;
-import static java.lang.String.format;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
+import java.util.List;
import java.util.Map;
import java.util.Set;
+import org.apache.felix.utils.manifest.Clause;
+import org.apache.felix.utils.manifest.Parser;
+import org.apache.felix.utils.version.VersionRange;
+import org.apache.felix.utils.version.VersionTable;
import org.apache.karaf.shell.commands.Command;
import org.apache.karaf.shell.dev.util.Bundles;
-import org.apache.karaf.shell.dev.util.Import;
import org.apache.karaf.shell.dev.util.Node;
import org.apache.karaf.shell.dev.util.Tree;
import org.osgi.framework.Bundle;
-import org.osgi.service.packageadmin.ExportedPackage;
+import org.osgi.framework.Constants;
+import org.osgi.framework.wiring.BundleCapability;
+import org.osgi.framework.wiring.BundleRevision;
+import org.osgi.framework.wiring.BundleRevisions;
+import org.osgi.framework.wiring.BundleWire;
+import org.osgi.framework.wiring.BundleWiring;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import static java.lang.String.format;
+
/**
* Command for showing the full tree of bundles that have been used to resolve
* a given bundle.
@@ -91,13 +101,19 @@ public class ShowBundleTree extends Abst
Map<String, Set<Bundle>> exports = new HashMap<String, Set<Bundle>>();
for (Bundle bundle : bundles) {
- ExportedPackage[] packages = getPackageAdmin().getExportedPackages(bundle);
- if (packages != null) {
- for (ExportedPackage p : packages) {
- if (exports.get(p.getName()) == null) {
- exports.put(p.getName(), new HashSet<Bundle>());
+ for (BundleRevision revision : bundle.adapt(BundleRevisions.class).getRevisions()) {
+ BundleWiring wiring = revision.getWiring();
+ if (wiring != null) {
+ List<BundleWire> wires = wiring.getProvidedWires(BundleRevision.PACKAGE_NAMESPACE);
+ if (wires != null) {
+ for (BundleWire wire : wires) {
+ String name = wire.getCapability().getAttributes().get(BundleRevision.PACKAGE_NAMESPACE).toString();
+ if (exports.get(name) == null) {
+ exports.put(name, new HashSet<Bundle>());
+ }
+ exports.get(name).add(bundle);
+ }
}
- exports.get(p.getName()).add(bundle);
}
}
}
@@ -121,6 +137,7 @@ public class ShowBundleTree extends Abst
createNode(tree);
} else {
createNodesForImports(tree, bundle);
+ System.out.print("\nWarning: the below tree is a rough approximation of a possible resolution");
}
}
@@ -128,28 +145,47 @@ public class ShowBundleTree extends Abst
* Creates nodes for the imports of the bundle (instead of reporting wiring information
*/
private void createNodesForImports(Node node, Bundle bundle) {
- for (Import i : Import.parse(String.valueOf(bundle.getHeaders().get("Import-Package")),
- String.valueOf(bundle.getHeaders().get("Export-Package")))) {
- createNodeForImport(node, bundle, i);
+ Clause[] imports = Parser.parseHeader(bundle.getHeaders().get("Import-Package"));
+ Clause[] exports = Parser.parseHeader(bundle.getHeaders().get("Export-Package"));
+ for (Clause i : imports) {
+ boolean exported = false;
+ for (Clause e : exports) {
+ if (e.getName().equals(i.getName())) {
+ exported = true;
+ break;
+ }
+ }
+ if (!exported) {
+ createNodeForImport(node, bundle, i);
+ }
}
}
/*
* Create a child node for a given import (by finding a matching export in the currently installed bundles)
*/
- private void createNodeForImport(Node node, Bundle bundle, Import i) {
- ExportedPackage[] exporters = getPackageAdmin().getExportedPackages(i.getPackage());
+ private void createNodeForImport(Node node, Bundle bundle, Clause i) {
+ VersionRange range = VersionRange.parseVersionRange(i.getAttribute(Constants.VERSION_ATTRIBUTE));
boolean foundMatch = false;
- if (exporters != null) {
- for (ExportedPackage ep : exporters) {
- if (i.getVersion().contains(ep.getVersion())) {
- if (bundle.equals(ep.getExportingBundle())) {
- foundMatch = true;
- } else {
- Node child = node.addChild(ep.getExportingBundle());
- System.out.printf("- import %s: resolved using %s%n", i, ep.getExportingBundle());
- foundMatch = true;
- createNode(child);
+ for (Bundle b : bundleContext.getBundles()) {
+ BundleWiring wiring = b.adapt(BundleWiring.class);
+ if (wiring != null) {
+ List<BundleCapability> caps = wiring.getCapabilities(BundleRevision.PACKAGE_NAMESPACE);
+ if (caps != null) {
+ for (BundleCapability cap : caps) {
+ String n = getAttribute(cap, BundleRevision.PACKAGE_NAMESPACE);
+ String v = getAttribute(cap, Constants.VERSION_ATTRIBUTE);
+ if (i.getName().equals(n) && range.contains(VersionTable.getVersion(v))) {
+ boolean existing = tree.flatten().contains(b);
+ System.out.printf("- import %s: resolved using %s%n", i, b);
+ foundMatch = true;
+ if (!node.hasChild(b)) {
+ Node child = node.addChild(b);
+ if (!existing) {
+ createNode(child);
+ }
+ }
+ }
}
}
}
@@ -159,9 +195,14 @@ public class ShowBundleTree extends Abst
}
}
+ private String getAttribute(BundleCapability capability, String name) {
+ Object o = capability.getAttributes().get(name);
+ return o != null ? o.toString() : null;
+ }
+
/*
- * Creates a node in the bundle tree
- */
+ * Creates a node in the bundle tree
+ */
private void createNode(Node<Bundle> node) {
Bundle bundle = node.getValue();
Collection<Bundle> exporters = new HashSet<Bundle>();
Modified: karaf/trunk/shell/dev/src/main/java/org/apache/karaf/shell/dev/util/Node.java
URL: http://svn.apache.org/viewvc/karaf/trunk/shell/dev/src/main/java/org/apache/karaf/shell/dev/util/Node.java?rev=1228280&r1=1228279&r2=1228280&view=diff
==============================================================================
--- karaf/trunk/shell/dev/src/main/java/org/apache/karaf/shell/dev/util/Node.java (original)
+++ karaf/trunk/shell/dev/src/main/java/org/apache/karaf/shell/dev/util/Node.java Fri Jan 6 17:08:02 2012
@@ -106,6 +106,15 @@ public class Node<T> {
return value.equals(parent.value) || parent.hasAncestor(value);
}
}
+
+ public boolean hasChild(T value) {
+ for (Node<T> child : getChildren()) {
+ if (value.equals(child.getValue())) {
+ return true;
+ }
+ }
+ return false;
+ }
/*
* Write this node to the PrintWriter. It should be indented one step
Modified: karaf/trunk/system/core/src/main/java/org/apache/karaf/system/internal/SystemServiceImpl.java
URL: http://svn.apache.org/viewvc/karaf/trunk/system/core/src/main/java/org/apache/karaf/system/internal/SystemServiceImpl.java?rev=1228280&r1=1228279&r2=1228280&view=diff
==============================================================================
--- karaf/trunk/system/core/src/main/java/org/apache/karaf/system/internal/SystemServiceImpl.java (original)
+++ karaf/trunk/system/core/src/main/java/org/apache/karaf/system/internal/SystemServiceImpl.java Fri Jan 6 17:08:02 2012
@@ -16,16 +16,16 @@
*/
package org.apache.karaf.system.internal;
+import java.util.Calendar;
+import java.util.GregorianCalendar;
+
import org.apache.karaf.system.SystemService;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceReference;
+import org.osgi.framework.startlevel.FrameworkStartLevel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.util.Calendar;
-import java.util.GregorianCalendar;
-
/**
* Implementation of the system service.
*/
@@ -97,37 +97,11 @@ public class SystemServiceImpl implement
}
public void setStartLevel(int startLevel) throws Exception {
- // get start level service
- ServiceReference ref = bundleContext.getServiceReference(org.osgi.service.startlevel.StartLevel.class.getName());
- if (ref == null) {
- throw new IllegalStateException("StartLevel service is unavailable");
- }
- try {
- org.osgi.service.startlevel.StartLevel startLevelService = (org.osgi.service.startlevel.StartLevel) bundleContext.getService(ref);
- if (startLevelService == null) {
- throw new IllegalStateException("StartLevel service is unavailable");
- }
- startLevelService.setStartLevel(startLevel);
- } finally {
- bundleContext.ungetService(ref);
- }
+ getBundleContext().getBundle(0).adapt(FrameworkStartLevel.class).setStartLevel(startLevel);
}
public int getStartLevel() throws Exception {
- // get start level service
- ServiceReference ref = bundleContext.getServiceReference(org.osgi.service.startlevel.StartLevel.class.getName());
- if (ref == null) {
- throw new IllegalStateException("StartLevel service is unavailable");
- }
- try {
- org.osgi.service.startlevel.StartLevel startLevelService = (org.osgi.service.startlevel.StartLevel) bundleContext.getService(ref);
- if (startLevelService == null) {
- throw new IllegalStateException("StartLevel service is unavailable");
- }
- return startLevelService.getStartLevel();
- } finally {
- bundleContext.ungetService(ref);
- }
+ return getBundleContext().getBundle(0).adapt(FrameworkStartLevel.class).getStartLevel();
}
/**
Modified: karaf/trunk/util/src/main/java/org/apache/karaf/util/ShellUtil.java
URL: http://svn.apache.org/viewvc/karaf/trunk/util/src/main/java/org/apache/karaf/util/ShellUtil.java?rev=1228280&r1=1228279&r2=1228280&view=diff
==============================================================================
--- karaf/trunk/util/src/main/java/org/apache/karaf/util/ShellUtil.java (original)
+++ karaf/trunk/util/src/main/java/org/apache/karaf/util/ShellUtil.java Fri Jan 6 17:08:02 2012
@@ -27,8 +27,7 @@ import org.apache.felix.service.command.
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
import org.osgi.framework.Constants;
-import org.osgi.framework.ServiceReference;
-import org.osgi.service.startlevel.StartLevel;
+import org.osgi.framework.startlevel.BundleStartLevel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -135,25 +134,18 @@ public class ShellUtil {
* @return true if the bundle has start level minor than 50
*/
public static boolean isASystemBundle(BundleContext bundleContext, Bundle bundle) {
- ServiceReference ref = bundleContext.getServiceReference(StartLevel.class.getName());
- if (ref != null) {
- StartLevel sl = (StartLevel) bundleContext.getService(ref);
- if (sl != null) {
- int level = sl.getBundleStartLevel(bundle);
- int sbsl = 49;
- final String sbslProp = bundleContext.getProperty( "karaf.systemBundlesStartLevel" );
- if (sbslProp != null) {
- try {
- sbsl = Integer.valueOf( sbslProp );
- }
- catch( Exception ignore ) {
- // ignore
- }
- }
- return level <= sbsl;
+ int level = bundle.adapt(BundleStartLevel.class).getStartLevel();
+ int sbsl = 49;
+ final String sbslProp = bundleContext.getProperty( "karaf.systemBundlesStartLevel" );
+ if (sbslProp != null) {
+ try {
+ sbsl = Integer.valueOf( sbslProp );
+ }
+ catch( Exception ignore ) {
+ // ignore
}
}
- return false;
+ return level <= sbsl;
}
/**
Modified: karaf/trunk/web/core/src/main/java/org/apache/karaf/web/internal/WebContainerServiceImpl.java
URL: http://svn.apache.org/viewvc/karaf/trunk/web/core/src/main/java/org/apache/karaf/web/internal/WebContainerServiceImpl.java?rev=1228280&r1=1228279&r2=1228280&view=diff
==============================================================================
--- karaf/trunk/web/core/src/main/java/org/apache/karaf/web/internal/WebContainerServiceImpl.java (original)
+++ karaf/trunk/web/core/src/main/java/org/apache/karaf/web/internal/WebContainerServiceImpl.java Fri Jan 6 17:08:02 2012
@@ -23,7 +23,7 @@ import org.ops4j.pax.web.service.spi.Web
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
import org.osgi.framework.Constants;
-import org.osgi.service.startlevel.StartLevel;
+import org.osgi.framework.startlevel.BundleStartLevel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -37,7 +37,6 @@ import java.util.Map;
public class WebContainerServiceImpl implements WebContainerService {
private BundleContext bundleContext;
- private StartLevel startLevelService;
private WebEventHandler webEventHandler;
private WarManager warManager;
@@ -47,10 +46,6 @@ public class WebContainerServiceImpl imp
this.bundleContext = bundleContext;
}
- public void setStartLevelService(StartLevel startLevelService) {
- this.startLevelService = startLevelService;
- }
-
public void setWebEventHandler(WebEventHandler webEventHandler) {
this.webEventHandler = webEventHandler;
}
@@ -88,10 +83,7 @@ public class WebContainerServiceImpl imp
String version = (String) bundle.getHeaders().get(Constants.BUNDLE_VERSION);
name = ((version != null)) ? name + " (" + version + ")" : name;
long bundleId = bundle.getBundleId();
- int level = -1;
- if (startLevelService != null) {
- level = startLevelService.getBundleStartLevel(bundle);
- }
+ int level = bundle.adapt(BundleStartLevel.class).getStartLevel();
if (!contextPath.startsWith("/")) {
contextPath = "/" + contextPath;
}
Modified: karaf/trunk/web/core/src/main/resources/OSGI-INF/blueprint/web-core.xml
URL: http://svn.apache.org/viewvc/karaf/trunk/web/core/src/main/resources/OSGI-INF/blueprint/web-core.xml?rev=1228280&r1=1228279&r2=1228280&view=diff
==============================================================================
--- karaf/trunk/web/core/src/main/resources/OSGI-INF/blueprint/web-core.xml (original)
+++ karaf/trunk/web/core/src/main/resources/OSGI-INF/blueprint/web-core.xml Fri Jan 6 17:08:02 2012
@@ -19,8 +19,6 @@
-->
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" default-activation="lazy">
- <reference id="startLevelService" interface="org.osgi.service.startlevel.StartLevel" availability="optional" />
-
<reference id="warManager" interface="org.ops4j.pax.web.service.spi.WarManager" />
<bean id="webEventHandler" class="org.apache.karaf.web.internal.WebEventHandler" />
@@ -30,7 +28,6 @@
<bean id="webContainerService" class="org.apache.karaf.web.internal.WebContainerServiceImpl">
<property name="bundleContext" ref="blueprintBundleContext"/>
- <property name="startLevelService" ref="startLevelService"/>
<property name="webEventHandler" ref="webEventHandler"/>
<property name="warManager" ref="warManager"/>
</bean>