Felix Meschberger wrote: > Hi RIck,
>> Did you envision running the >> AssemblyManager constantly or is it "activated" as a one-time process >> and stopped after the process has accomplished its mission and repeated >> only when necessary? > The background thread is started and stopped by the bundle activator. > Normally, it just sits and waits for events coming in. The reason for > using a separate thread is, that (1) I do not want to block the > Framework Event Queue and (2) installation and deinstallation actions may > be launched, which > might cause issues like deadlocks if ran synchronously. > And yes, the actual installation by the Installer retrieved from the > InstallerService runs in the background, which - currently - is a new > thread each time bundles are installed or uninstalled. This is where I was getting at. I was assuming that there was an external process that started the whole thing and stopped it after bundles are deployed. Apparently, there is only a single queueHandler thread which handles the events. I must be missing something. >> Also, could the more simple "visitor pattern" >> (such as Peter Kriens's FileInstaller) be sufficient to detect and >> process the assembly bundles? > I do not quite understand that. AFAIK the FileInstaller sits and looks at > file system locations and installs bundles as they come and uninstalls > them as the corresponding file goes away, right ? This is more or less, > what I do. I just add more fine grained control, in that I support more > conrol over the lifecycle of bundles contained in assemblies, like > starting and stopping. It is the task of the background thread to react to > BundleEvents of the assembly bundles. Right. I also do the same for bundles that we regard as plugins (based on our definition) since we added more "phases" to the plugin's lifecycle. My question is how does the installer handle direct and indirect dependencies if those dependencies are also required to be updated? > Regards > Felix Thanks again. Rick