You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by ld...@apache.org on 2011/08/23 01:23:25 UTC
svn commit: r1160495 - in
/karaf/sandbox/pieber/karaf-webconsole/trunk/blueprint/src/main:
java/org/apache/karaf/webconsole/blueprint/internal/
java/org/apache/karaf/webconsole/blueprint/internal/bundle/
resources/OSGI-INF/blueprint/
Author: ldywicki
Date: Mon Aug 22 23:23:25 2011
New Revision: 1160495
URL: http://svn.apache.org/viewvc?rev=1160495&view=rev
Log:
Clean up blueprint code - introduce IBlueprintBundleStateTracker which is responsible for providing blueprint container states
Added:
karaf/sandbox/pieber/karaf-webconsole/trunk/blueprint/src/main/java/org/apache/karaf/webconsole/blueprint/internal/BlueprintBundleStateTracker.java
- copied, changed from r1160487, karaf/sandbox/pieber/karaf-webconsole/trunk/blueprint/src/main/java/org/apache/karaf/webconsole/blueprint/internal/bundle/BlueprintDecorationProvider.java
karaf/sandbox/pieber/karaf-webconsole/trunk/blueprint/src/main/java/org/apache/karaf/webconsole/blueprint/internal/BlueprintState.java
- copied, changed from r1160487, karaf/sandbox/pieber/karaf-webconsole/trunk/blueprint/src/main/java/org/apache/karaf/webconsole/blueprint/internal/bundle/BlueprintState.java
karaf/sandbox/pieber/karaf-webconsole/trunk/blueprint/src/main/java/org/apache/karaf/webconsole/blueprint/internal/IBlueprintBundleStateTracker.java
Removed:
karaf/sandbox/pieber/karaf-webconsole/trunk/blueprint/src/main/java/org/apache/karaf/webconsole/blueprint/internal/bundle/BlueprintState.java
Modified:
karaf/sandbox/pieber/karaf-webconsole/trunk/blueprint/src/main/java/org/apache/karaf/webconsole/blueprint/internal/bundle/BlueprintActionProvider.java
karaf/sandbox/pieber/karaf-webconsole/trunk/blueprint/src/main/java/org/apache/karaf/webconsole/blueprint/internal/bundle/BlueprintColumnProvider.java
karaf/sandbox/pieber/karaf-webconsole/trunk/blueprint/src/main/java/org/apache/karaf/webconsole/blueprint/internal/bundle/BlueprintDecorationProvider.java
karaf/sandbox/pieber/karaf-webconsole/trunk/blueprint/src/main/resources/OSGI-INF/blueprint/blueprint.xml
Copied: karaf/sandbox/pieber/karaf-webconsole/trunk/blueprint/src/main/java/org/apache/karaf/webconsole/blueprint/internal/BlueprintBundleStateTracker.java (from r1160487, karaf/sandbox/pieber/karaf-webconsole/trunk/blueprint/src/main/java/org/apache/karaf/webconsole/blueprint/internal/bundle/BlueprintDecorationProvider.java)
URL: http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/blueprint/src/main/java/org/apache/karaf/webconsole/blueprint/internal/BlueprintBundleStateTracker.java?p2=karaf/sandbox/pieber/karaf-webconsole/trunk/blueprint/src/main/java/org/apache/karaf/webconsole/blueprint/internal/BlueprintBundleStateTracker.java&p1=karaf/sandbox/pieber/karaf-webconsole/trunk/blueprint/src/main/java/org/apache/karaf/webconsole/blueprint/internal/bundle/BlueprintDecorationProvider.java&r1=1160487&r2=1160495&rev=1160495&view=diff
==============================================================================
--- karaf/sandbox/pieber/karaf-webconsole/trunk/blueprint/src/main/java/org/apache/karaf/webconsole/blueprint/internal/bundle/BlueprintDecorationProvider.java (original)
+++ karaf/sandbox/pieber/karaf-webconsole/trunk/blueprint/src/main/java/org/apache/karaf/webconsole/blueprint/internal/BlueprintBundleStateTracker.java Mon Aug 22 23:23:25 2011
@@ -1,25 +1,33 @@
-package org.apache.karaf.webconsole.blueprint.internal.bundle;
+package org.apache.karaf.webconsole.blueprint.internal;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
-import org.apache.karaf.webconsole.core.panel.StaticImagePanel;
-import org.apache.karaf.webconsole.osgi.bundle.IDecorationProvider;
-import org.apache.wicket.ResourceReference;
-import org.apache.wicket.markup.html.panel.Panel;
-import org.apache.wicket.model.IModel;
import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleEvent;
+import org.osgi.framework.BundleListener;
import org.osgi.service.blueprint.container.BlueprintEvent;
import org.osgi.service.blueprint.container.BlueprintListener;
-public class BlueprintDecorationProvider implements IDecorationProvider, BlueprintListener {
+public class BlueprintBundleStateTracker implements IBlueprintBundleStateTracker,
+ BundleListener, BlueprintListener {
private Map<Long, BlueprintState> states = new ConcurrentHashMap<Long, BlueprintState>();
+ public BlueprintState getState(Bundle bundle) {
+ return states.get(bundle.getBundleId());
+ }
+
public void blueprintEvent(BlueprintEvent event) {
states.put(event.getBundle().getBundleId(), getState(event));
}
+ public void bundleChanged(BundleEvent event) {
+ if (event.getType() == BundleEvent.UNINSTALLED) {
+ states.remove(event.getBundle().getBundleId());
+ }
+ }
+
private BlueprintState getState(BlueprintEvent blueprintEvent) {
switch (blueprintEvent.getType()) {
case BlueprintEvent.CREATING:
@@ -40,11 +48,4 @@ public class BlueprintDecorationProvider
return BlueprintState.Unknown;
}
}
-
- public Panel getDecoration(final String componentId, IModel<Bundle> model) {
- if (states.containsKey(model.getObject().getBundleId())) {
- return new StaticImagePanel(componentId, new ResourceReference(getClass(), "blueprint.gif"));
- }
- return null;
- }
}
Copied: karaf/sandbox/pieber/karaf-webconsole/trunk/blueprint/src/main/java/org/apache/karaf/webconsole/blueprint/internal/BlueprintState.java (from r1160487, karaf/sandbox/pieber/karaf-webconsole/trunk/blueprint/src/main/java/org/apache/karaf/webconsole/blueprint/internal/bundle/BlueprintState.java)
URL: http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/blueprint/src/main/java/org/apache/karaf/webconsole/blueprint/internal/BlueprintState.java?p2=karaf/sandbox/pieber/karaf-webconsole/trunk/blueprint/src/main/java/org/apache/karaf/webconsole/blueprint/internal/BlueprintState.java&p1=karaf/sandbox/pieber/karaf-webconsole/trunk/blueprint/src/main/java/org/apache/karaf/webconsole/blueprint/internal/bundle/BlueprintState.java&r1=1160487&r2=1160495&rev=1160495&view=diff
==============================================================================
--- karaf/sandbox/pieber/karaf-webconsole/trunk/blueprint/src/main/java/org/apache/karaf/webconsole/blueprint/internal/bundle/BlueprintState.java (original)
+++ karaf/sandbox/pieber/karaf-webconsole/trunk/blueprint/src/main/java/org/apache/karaf/webconsole/blueprint/internal/BlueprintState.java Mon Aug 22 23:23:25 2011
@@ -1,4 +1,4 @@
-package org.apache.karaf.webconsole.blueprint.internal.bundle;
+package org.apache.karaf.webconsole.blueprint.internal;
public enum BlueprintState {
Unknown,
Added: karaf/sandbox/pieber/karaf-webconsole/trunk/blueprint/src/main/java/org/apache/karaf/webconsole/blueprint/internal/IBlueprintBundleStateTracker.java
URL: http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/blueprint/src/main/java/org/apache/karaf/webconsole/blueprint/internal/IBlueprintBundleStateTracker.java?rev=1160495&view=auto
==============================================================================
--- karaf/sandbox/pieber/karaf-webconsole/trunk/blueprint/src/main/java/org/apache/karaf/webconsole/blueprint/internal/IBlueprintBundleStateTracker.java (added)
+++ karaf/sandbox/pieber/karaf-webconsole/trunk/blueprint/src/main/java/org/apache/karaf/webconsole/blueprint/internal/IBlueprintBundleStateTracker.java Mon Aug 22 23:23:25 2011
@@ -0,0 +1,9 @@
+package org.apache.karaf.webconsole.blueprint.internal;
+
+import org.osgi.framework.Bundle;
+
+public interface IBlueprintBundleStateTracker {
+
+ BlueprintState getState(Bundle bundle);
+
+}
Modified: karaf/sandbox/pieber/karaf-webconsole/trunk/blueprint/src/main/java/org/apache/karaf/webconsole/blueprint/internal/bundle/BlueprintActionProvider.java
URL: http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/blueprint/src/main/java/org/apache/karaf/webconsole/blueprint/internal/bundle/BlueprintActionProvider.java?rev=1160495&r1=1160494&r2=1160495&view=diff
==============================================================================
--- karaf/sandbox/pieber/karaf-webconsole/trunk/blueprint/src/main/java/org/apache/karaf/webconsole/blueprint/internal/bundle/BlueprintActionProvider.java (original)
+++ karaf/sandbox/pieber/karaf-webconsole/trunk/blueprint/src/main/java/org/apache/karaf/webconsole/blueprint/internal/bundle/BlueprintActionProvider.java Mon Aug 22 23:23:25 2011
@@ -1,6 +1,7 @@
package org.apache.karaf.webconsole.blueprint.internal.bundle;
import org.apache.karaf.webconsole.blueprint.internal.DetailsPage;
+import org.apache.karaf.webconsole.blueprint.internal.IBlueprintBundleStateTracker;
import org.apache.karaf.webconsole.osgi.bundle.IActionProvider;
import org.apache.wicket.Component;
import org.apache.wicket.PageParameters;
@@ -10,6 +11,12 @@ import org.osgi.framework.Bundle;
public class BlueprintActionProvider implements IActionProvider {
+ private IBlueprintBundleStateTracker tracker;
+
+ public BlueprintActionProvider(IBlueprintBundleStateTracker tracker) {
+ this.tracker = tracker;
+ }
+
public Component create(String componentId, Bundle model) {
PageParameters params = new PageParameters();
params.put("bundleId", model.getBundleId());
Modified: karaf/sandbox/pieber/karaf-webconsole/trunk/blueprint/src/main/java/org/apache/karaf/webconsole/blueprint/internal/bundle/BlueprintColumnProvider.java
URL: http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/blueprint/src/main/java/org/apache/karaf/webconsole/blueprint/internal/bundle/BlueprintColumnProvider.java?rev=1160495&r1=1160494&r2=1160495&view=diff
==============================================================================
--- karaf/sandbox/pieber/karaf-webconsole/trunk/blueprint/src/main/java/org/apache/karaf/webconsole/blueprint/internal/bundle/BlueprintColumnProvider.java (original)
+++ karaf/sandbox/pieber/karaf-webconsole/trunk/blueprint/src/main/java/org/apache/karaf/webconsole/blueprint/internal/bundle/BlueprintColumnProvider.java Mon Aug 22 23:23:25 2011
@@ -1,8 +1,7 @@
package org.apache.karaf.webconsole.blueprint.internal.bundle;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
+import org.apache.karaf.webconsole.blueprint.internal.BlueprintState;
+import org.apache.karaf.webconsole.blueprint.internal.IBlueprintBundleStateTracker;
import org.apache.karaf.webconsole.osgi.bundle.IColumnProvider;
import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator;
import org.apache.wicket.extensions.markup.html.repeater.data.table.AbstractColumn;
@@ -12,19 +11,25 @@ import org.apache.wicket.markup.repeater
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
import org.osgi.framework.Bundle;
-import org.osgi.service.blueprint.container.BlueprintEvent;
-import org.osgi.service.blueprint.container.BlueprintListener;
-public class BlueprintColumnProvider implements IColumnProvider, BlueprintListener {
+/**
+ * Provides blueprint column in bundles view.
+ */
+public class BlueprintColumnProvider implements IColumnProvider {
+
+ private IBlueprintBundleStateTracker tracker;
- private Map<Long, BlueprintState> states = new ConcurrentHashMap<Long, BlueprintState>();
+ public BlueprintColumnProvider(IBlueprintBundleStateTracker tracker) {
+ this.tracker = tracker;
+ }
public IColumn<Bundle> getColumn() {
return new AbstractColumn<Bundle>(Model.of("Blueprint")) {
public void populateItem(Item<ICellPopulator<Bundle>> cellItem, String componentId, IModel<Bundle> rowModel) {
Bundle bundle = rowModel.getObject();
- if (states.containsKey(bundle.getBundleId())) {
- cellItem.add(new Label(componentId, states.get(bundle.getBundleId()).name()));
+ BlueprintState state = tracker.getState(bundle);
+ if (state != null) {
+ cellItem.add(new Label(componentId, state.name()));
} else {
cellItem.add(new Label(componentId));
}
@@ -32,28 +37,4 @@ public class BlueprintColumnProvider imp
};
}
- public void blueprintEvent(BlueprintEvent event) {
- states.put(event.getBundle().getBundleId(), getState(event));
- }
-
- private BlueprintState getState(BlueprintEvent blueprintEvent) {
- switch (blueprintEvent.getType()) {
- case BlueprintEvent.CREATING:
- return BlueprintState.Creating;
- case BlueprintEvent.CREATED:
- return BlueprintState.Created;
- case BlueprintEvent.DESTROYING:
- return BlueprintState.Destroying;
- case BlueprintEvent.DESTROYED:
- return BlueprintState.Destroyed;
- case BlueprintEvent.FAILURE:
- return BlueprintState.Failure;
- case BlueprintEvent.GRACE_PERIOD:
- return BlueprintState.GracePeriod;
- case BlueprintEvent.WAITING:
- return BlueprintState.Waiting;
- default:
- return BlueprintState.Unknown;
- }
- }
}
Modified: karaf/sandbox/pieber/karaf-webconsole/trunk/blueprint/src/main/java/org/apache/karaf/webconsole/blueprint/internal/bundle/BlueprintDecorationProvider.java
URL: http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/blueprint/src/main/java/org/apache/karaf/webconsole/blueprint/internal/bundle/BlueprintDecorationProvider.java?rev=1160495&r1=1160494&r2=1160495&view=diff
==============================================================================
--- karaf/sandbox/pieber/karaf-webconsole/trunk/blueprint/src/main/java/org/apache/karaf/webconsole/blueprint/internal/bundle/BlueprintDecorationProvider.java (original)
+++ karaf/sandbox/pieber/karaf-webconsole/trunk/blueprint/src/main/java/org/apache/karaf/webconsole/blueprint/internal/bundle/BlueprintDecorationProvider.java Mon Aug 22 23:23:25 2011
@@ -1,50 +1,30 @@
package org.apache.karaf.webconsole.blueprint.internal.bundle;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
+import org.apache.karaf.webconsole.blueprint.internal.IBlueprintBundleStateTracker;
import org.apache.karaf.webconsole.core.panel.StaticImagePanel;
import org.apache.karaf.webconsole.osgi.bundle.IDecorationProvider;
import org.apache.wicket.ResourceReference;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.model.IModel;
import org.osgi.framework.Bundle;
-import org.osgi.service.blueprint.container.BlueprintEvent;
-import org.osgi.service.blueprint.container.BlueprintListener;
-public class BlueprintDecorationProvider implements IDecorationProvider, BlueprintListener {
+/**
+ * Implementation of decoration provider which decorates bundles list view by
+ * adding blueprint image.
+ */
+public class BlueprintDecorationProvider implements IDecorationProvider {
- private Map<Long, BlueprintState> states = new ConcurrentHashMap<Long, BlueprintState>();
+ private IBlueprintBundleStateTracker tracker;
- public void blueprintEvent(BlueprintEvent event) {
- states.put(event.getBundle().getBundleId(), getState(event));
- }
-
- private BlueprintState getState(BlueprintEvent blueprintEvent) {
- switch (blueprintEvent.getType()) {
- case BlueprintEvent.CREATING:
- return BlueprintState.Creating;
- case BlueprintEvent.CREATED:
- return BlueprintState.Created;
- case BlueprintEvent.DESTROYING:
- return BlueprintState.Destroying;
- case BlueprintEvent.DESTROYED:
- return BlueprintState.Destroyed;
- case BlueprintEvent.FAILURE:
- return BlueprintState.Failure;
- case BlueprintEvent.GRACE_PERIOD:
- return BlueprintState.GracePeriod;
- case BlueprintEvent.WAITING:
- return BlueprintState.Waiting;
- default:
- return BlueprintState.Unknown;
- }
+ public BlueprintDecorationProvider(IBlueprintBundleStateTracker tracker) {
+ this.tracker = tracker;
}
public Panel getDecoration(final String componentId, IModel<Bundle> model) {
- if (states.containsKey(model.getObject().getBundleId())) {
+ if (tracker.getState(model.getObject()) != null) {
return new StaticImagePanel(componentId, new ResourceReference(getClass(), "blueprint.gif"));
}
return null;
}
+
}
Modified: karaf/sandbox/pieber/karaf-webconsole/trunk/blueprint/src/main/resources/OSGI-INF/blueprint/blueprint.xml
URL: http://svn.apache.org/viewvc/karaf/sandbox/pieber/karaf-webconsole/trunk/blueprint/src/main/resources/OSGI-INF/blueprint/blueprint.xml?rev=1160495&r1=1160494&r2=1160495&view=diff
==============================================================================
--- karaf/sandbox/pieber/karaf-webconsole/trunk/blueprint/src/main/resources/OSGI-INF/blueprint/blueprint.xml (original)
+++ karaf/sandbox/pieber/karaf-webconsole/trunk/blueprint/src/main/resources/OSGI-INF/blueprint/blueprint.xml Mon Aug 22 23:23:25 2011
@@ -14,18 +14,26 @@
<bean id="provider" class="org.apache.karaf.webconsole.blueprint.internal.navigation.BlueprintNavigationProvider" />
- <!--
+ <bean id="tracker" class="org.apache.karaf.webconsole.blueprint.internal.BlueprintBundleStateTracker" />
+
<service interface="org.apache.karaf.webconsole.osgi.bundle.IActionProvider">
- <bean class="org.apache.karaf.webconsole.blueprint.internal.bundle.BlueprintActionProvider" />
+ <bean class="org.apache.karaf.webconsole.blueprint.internal.bundle.BlueprintActionProvider">
+ <argument ref="tracker" />
+ </bean>
</service>
- -->
<service auto-export="interfaces">
- <bean class="org.apache.karaf.webconsole.blueprint.internal.bundle.BlueprintColumnProvider" />
+ <bean class="org.apache.karaf.webconsole.blueprint.internal.bundle.BlueprintColumnProvider">
+ <argument ref="tracker" />
+ </bean>
</service>
<service auto-export="interfaces">
- <bean class="org.apache.karaf.webconsole.blueprint.internal.bundle.BlueprintDecorationProvider" />
+ <bean class="org.apache.karaf.webconsole.blueprint.internal.bundle.BlueprintDecorationProvider">
+ <argument ref="tracker" />
+ </bean>
</service>
+ <service ref="tracker" auto-export="interfaces" />
+
</blueprint>