blob: 87a813fe04419f7ca83e928c08b98407f53dad40 [file] [log] [blame]
package org.apache.sling.startup.tracker;
import java.util.Collections;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import org.osgi.framework.BundleEvent;
public class BundleEventItem extends AbstractStartupItem {
public static final Map<Integer, String> EVENT_TYPES = Stream
.of(new Object[][] { { 0x00000001, "INSTALLED" }, { 0x00000002, "STARTED" }, { 0x00000004, "STOPPED" },
{ 0x00000008, "UPDATED" }, { 0x00000010, "UNINSTALLED" }, { 0x00000020, "RESOLVED" },
{ 0x00000040, "UNRESOLVED" }, { 0x00000080, "STARTING" }, { 0x00000100, "STOPPING" },
{ 0x00000200, "LAZY_ACTIVATION" }, })
.collect(Collectors.collectingAndThen(Collectors.toMap(data -> (Integer) data[0], data -> (String) data[1]),
Collections::<Integer, String>unmodifiableMap));
private final String event;
private final String bundlePid;
public BundleEventItem(BundleEvent event) {
super();
this.setComplete(System.currentTimeMillis());
this.bundlePid = event.getBundle().getSymbolicName();
this.event = EVENT_TYPES.get(event.getType());
}
@Override
public String getId() {
return ItemType.getId(ItemType.BUNDLE_EVENT, bundlePid + "/" + event);
}
@Override
public String getMessage() {
return String.format("Bundle %s: %s", bundlePid, event);
}
@Override
public String getParentId() {
return ItemType.getId(ItemType.BUNDLE, bundlePid);
}
}