On Aug 10, 2010, at 6:10 AM, Felix Meschberger <fmesc...@gmail.com> wrote:

> 
> 
> On 09.08.2010 21:14, Justin Edelson wrote:
>> The problem is that the current scheme doesn't handle the case where the 
>> launchpad JAR is updated in a consistent manner. Whenever this is raised, 
>> the answer is to deploy bundles via sling:install or the web console. In my 
>> experience, this technique just doesn't scale past a single node. Perhaps 
>> Ace is a better answer for this, but I think updating the JAR should have a 
>> consistent effect.
> 
> Well, actually, the current launchpad always has supported bundle
> updates by using a new Launchpad JAR file file.
> 
> Because on startup the launcher checks, whether the standalone JAR file
> has a more recent last modification time than the previously launched
> JAR file in the same sling.home location.

Then there's a bug. Because IIRC, the check is actually done using the embedded 
launchpad base JAR, not the (outer/standalone) launchpad archive. 
> 
> If so, the embedded bundles are unpackage.
> 
> Next, the unpack location is scanned for updates since the last
> installation. If so, any updated bundles (bundles are never downgraded
> by this mechanism) or new bundles are installed.

I also think there's a problem with duplicate bundles, but I've only observed 
this a few times, so am not 100% confident of it,
> 
> So, we already have this mechanis, and this should keep on working of
> course.
> 
>> 
>> It is my belief that the only way to fix this situation is by loading 
>> bundles from VFS layer we have rather than extracting the bundles. I could 
>> (of course) be wrong about this and I have not prioritized this (I've got a 
>> set of RightScripts which will get me by in the near term).  But my fear is 
>> that by removing the code you're suggesting we remove, fixing this issue 
>> becomes that much harder. 
>> 
>>> 
>>> With using File Install and copying stuff to a well defined directory we
>>> enable other use cases. If people want to deploy or remove stuff at
>>> runtime, they can just drop/remove stuff from this directory.
>> 
>> At minimum, I'd like to see us recommend against doing this. If we need to 
>> extract files from the archive, let's do that in a directory where we tell 
>> users not to touch and then create a 'dropins' directory for user-managed 
>> files. If users manipulate the extracted files, things can go haywire when 
>> Launchpad decides to re-extract the archive.
> 
> Well, the goal of unpacking in effect was to enable administrators to
> put more bundles to be installed on next startup (or to be installed on
> first startup if Sling is distributed as a ZIP containing the launchpad
> and the bundles).

As I said, this looks like a separate concern and results in exposing an 
implementation detail (the extraction of bundles) unnecessarily. A discreet 
directory would be cleaner IMHO.

Justin
> 
> Regards
> Felix
> 
>> 
>>> 
>>> There are other scenarios possible where for example the launchpad app
>>> does not contain all the bundles anymore, but they are picked up by File
>>> Install etc.
>> We already have an alternate scenario - launchpad:run and launchpad:start 
>> use bundles (OK, artifacts) from the local Maven repository. And now that 
>> Aether has been released, I'm going to start experimenting with this in 
>> Launchpad itself.
>> 
>> If you can give me about 10 days, I'll have a different ConfigAdmin solution.
>> 
>> Sorry to be a stick in the mud about this.... 
>> 
>> Justin
>> 
>> On Aug 9, 2010, at 11:38 AM, Carsten Ziegeler <cziege...@apache.org> wrote:
>> 
>>> I agree that having to copy the bundles (and other files) before they
>>> get installed is odd (especially as they are copied once more by the
>>> framework). But on the other hand this is imho a minor issue compared to
>>> what we gain.
>>> 
>>> Let's assume that when using Sling disk space is not that important.
>>> 
>>> The copying of the files is transparent to the user: a launchpad is
>>> created (either jar or war) which contains everything you want to
>>> install (bundles, configs etc). With this use case in mind it doesn't
>>> play a role if these things are copied, if File Install is used etc. It
>>> just works.
>>> 
>>> If we would use File Install, we add a well known and used instrument to
>>> install stuff into an OSGi framework. So if people are known and used to
>>> FileInstall, they are already familiar with this stuff. We don't have to
>>> add all the support in Sling - which I think is a good thing; we already
>>> have code for bundles and deployment packages. And imho we really need
>>> support for config files. With using FileInstall we just reuse code.
>>> Code which is developed and used by a much wider base.
>>> 
>>> With using File Install and copying stuff to a well defined directory we
>>> enable other use cases. If people want to deploy or remove stuff at
>>> runtime, they can just drop/remove stuff from this directory.
>>> 
>>> There are other scenarios possible where for example the launchpad app
>>> does not contain all the bundles anymore, but they are picked up by File
>>> Install etc.
>>> 
>>> So in short :) I don't see any downside of this except the disk space -
>>> but I see several advantages.
>>> 
>>> Regards
>>> Carsten
>>> -- 
>>> Carsten Ziegeler
>>> cziege...@apache.org
>> 

Reply via email to