geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Jencks <>
Subject Re: Do Plugins need Prerequisites?
Date Thu, 13 Dec 2007 23:09:14 GMT
OK, so I agree the prereq feature is useful so I'll stop trying to  
remove it :-)

However I ***really*** don't think it should be used for assuring the  
correct web server.  I want to being install a plugin such as the web  
console and have it install the web server as a dependency.  To me  
this is an obvious use of the dependency facility.

I think we need some other kind of constraint such as "only one  
plugin of type X" to handle the "wrong web server" problem.  I don't  
think its a big enough immediate problem that we need it for 2.1.

david jencks

On Dec 13, 2007, at 11:38 AM, Paul McMahan wrote:

> Thanks Aaron for the thorough explanation.  I agree that the prereq  
> relationship provides useful information and functionality beyond  
> what the dependency relationship provides.  The plugins portlet in  
> the admin console will currently inspect the prerequisites for the  
> plugins listed in a remote catalog and will designate any plugins  
> that have missing prerequisites as being not compatible with the  
> server.  (Incompatible server or JVM versions are handled the same  
> way.)  I think that designation is useful as it prompts the user to  
> inspect the plugin's properties to get further details on what  
> steps they might need to take to prepare or reconfigure their  
> server -- e.g. manually create a db pool, replace a conflicting  
> component, etc.  I also think the prereq relationship is especially  
> useful because webapp plugins are not compatible between tomcat and  
> jetty assemblies, and like you say we don't want the plugin  
> installer to automatically install a second web container into an  
> assembly if the user picks the wrong plugin.
> Best wishes,
> Paul
> On Dec 13, 2007, at 1:21 PM, Aaron Mulder wrote:
>> On Dec 12, 2007 8:27 PM, David Jencks <> wrote:
>>> I must be missing something... how does the prerequisite system work
>>> better than dependencies here?  I'm not 100% sure of what currently
>>> happens when you try to install a plugin that has an unavailable
>>> dependency, but it certainly won't start even if its downloaded.
>> Originally I think, the plugin would refuse to download and install.
>> The idea was that if something was a dependency it was more or less
>> guaranteed to be available, whereas a prerequisite pretty much always
>> required manual intervention (except for Jetty/Tomcat, which I  
>> mention
>> below).
>> Dependencies and prerequisites could be combined, but my concern  
>> would
>> be how to clearly convey the directions for what the user needs to do
>> to get get plugin to work.  Like, if a plugin has 20 dependencies,  
>> and
>> one of them is something that the user has to manually deal with, how
>> do you emphasize to the user that in order to install the plugin,  
>> they
>> need to take that action?  If it's just in the dependency
>> "description", it seems like it would be lost among the 20
>> dependencies...  Unless we have some logic to detect which
>> dependencies can't be installed and emphasize those somehow.  I  
>> really
>> want to avoid the case where you identify the perfect plugin, install
>> it, and then confusingly, it's not running afterward.  You go to  
>> start
>> it, and it won't start, perhaps with a confusing error ("Dependency
>> foo wasn't installed?  Why not?  I thought this was supposed to be
>> automatic?  Crappy product!")  Again, so long as the user experience
>> is good, the plumbing doesn't matter so much.
>> I guess the other usage was to ensure you didn't install both Jetty
>> and Tomcat in the same environment.  As in, you have the Tomcat  
>> stack,
>> and you accidentally click a web app built against Jetty, we don't
>> want it to automatically download and install Jetty (because, among
>> other things, if the default ports conflict the server won't start,
>> and web app deployments suddenly get a lot more confusing if the
>> "wrong" engine handles it).  Also, it would be really unexpected that
>> you click a web app plugin link, and suddenly it's installing a new
>> Web server.  So I'm not sure we want Jetty or Tomcat to appear as
>> normal dependencies of a web app. Strike that, I'm pretty sure we
>> don't want it, unless web app deployments change to be
>> web-container-neutral so it would only install a Web container if one
>> wasn't already there.
>> Thanks,
>>        Aaron
>>>> On Dec 12, 2007 6:33 PM, David Jencks <>  
>>>> wrote:
>>>>> Aaron included a prerequisite feature for plugin metadata which is
>>>>> supposed to prevent you from installing a plugin if some  
>>>>> prerequisite
>>>>> plugin is missing.  After some thought I can't think of a  
>>>>> reason this
>>>>> would possibly be useful or more useful than a dependency,  
>>>>> where the
>>>>> needed plugin is simply installed for you.
>>>>> I disabled this functionality but forgot to discuss this point,  
>>>>> but
>>>>> now that Jarek has re-enabled it I think it's time for a  
>>>>> discussion.
>>>>> I do think there is some use for some feature that e.g. prevents
>>>>> installing jetty if tomcat is present, but I don't think
>>>>> prerequisites implement that in any useful way.
>>>>> comments?
>>>>> thanks
>>>>> david jencks

View raw message