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.