You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "Joel Schuster (JIRA)" <ji...@apache.org> on 2010/01/29 22:03:34 UTC
[jira] Commented: (FELIX-2021) Enable FileInstall to set Bundle
Start Level
[ https://issues.apache.org/jira/browse/FELIX-2021?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12806491#action_12806491 ]
Joel Schuster commented on FELIX-2021:
--------------------------------------
This patch will enable File Install to set the bundle start level:
_____________________________________________
Index: DirectoryWatcher.java
===================================================================
--- DirectoryWatcher.java (revision 904607)
+++ DirectoryWatcher.java (working copy)
@@ -52,8 +52,10 @@
import org.osgi.framework.BundleException;
import org.osgi.framework.BundleListener;
import org.osgi.framework.Constants;
+import org.osgi.framework.ServiceReference;
import org.osgi.framework.Version;
import org.osgi.service.packageadmin.PackageAdmin;
+import org.osgi.service.startlevel.StartLevel;
/**
* -DirectoryWatcher-
@@ -88,6 +90,7 @@
public final static String FILTER = "felix.fileinstall.filter";
public final static String START_NEW_BUNDLES = "felix.fileinstall.bundles.new.start";
public final static String NO_INITIAL_DELAY = "felix.fileinstall.noInitialDelay";
+ public final static String START_LEVEL = "felix.fileinstall.start.level";
static final SecureRandom random = new SecureRandom();
@@ -103,6 +106,7 @@
BundleContext context;
String originatingFileName;
boolean noInitialDelay;
+ int startLevel;
// Map of all installed artifacts
Map/* <File, Artifact> */ currentManagedArtifacts = new HashMap/* <File, Artifact> */();
@@ -131,6 +135,8 @@
startBundles = getBoolean(properties, START_NEW_BUNDLES, true); // by default, we start bundles.
filter = (String) properties.get(FILTER);
noInitialDelay = getBoolean(properties, NO_INITIAL_DELAY, false);
+ startLevel = getInt( properties, START_LEVEL, 1);
+
this.context.addBundleListener(this);
FilenameFilter flt;
@@ -1087,6 +1093,21 @@
{
try
{
+ ServiceReference ref = context.getServiceReference(
+ org.osgi.service.startlevel.StartLevel.class.getName());
+ if (ref != null)
+ {
+ StartLevel sl = (StartLevel) context.getService(ref);
+ if (sl != null)
+ {
+ sl.setBundleStartLevel( bundle, startLevel);
+ } else {
+ log( Logger.LOG_WARNING, "StartLevel service is unavailable.", null);
+ }
+ } else {
+ log( Logger.LOG_WARNING, "StartLevel service is unavailable.", null);
+ }
+
bundle.start();
log(Logger.LOG_DEBUG, "Started bundle: " + bundle.getLocation(), null);
}
_________________________________________
> Enable FileInstall to set Bundle Start Level
> --------------------------------------------
>
> Key: FELIX-2021
> URL: https://issues.apache.org/jira/browse/FELIX-2021
> Project: Felix
> Issue Type: Improvement
> Components: File Install
> Affects Versions: fileinstall-2.0.4
> Environment: Felix/OSGi
> Reporter: Joel Schuster
> Priority: Minor
> Fix For: fileinstall-2.0.8
>
> Original Estimate: 2h
> Remaining Estimate: 2h
>
> The File Install utility bundle would be well suited to setting the bundle start level during install.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.