geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Joe Bohn <joe.b...@earthlink.net>
Subject Re: version compatibility plugin?
Date Wed, 09 Jul 2008 20:12:17 GMT


Thanks for the post Lin.  I was going to start a new thread for this 
discussion.

I mentioned a third possibility in the Geronimo 2.1.2 plans thread ... 
that is adding the artifact alias entries for 2.1 & 2.1.1 directly into 
the 2.1.2 server image as part of the release.  I'm not exactly sure how 
I feel about this.  It would solve the problem and eliminate the need 
for a user to manually change the entries or install a compatibility 
plugin.  On the other hand it seems a bit heavy-handed and will expose 
the user a long list of alias entries if they need to manually change 
the file themselves.  I also wonder if there are any performance 
implications as the list gets longer.

All in all, the alias approach will work in the short term but I think 
it's just a band-aid fix.  At some point it is going to cause grief when 
things are not really compatible but the aliases allow a user to install 
anyway.  At some point we're going to have to invest in a more 
complicated and complete plugin solution that address compatibility more 
completely.

Joe

Lin Sun wrote:
> Hi Joe/All,
> 
> Finally I was able to deploy the jaxws-calculator car file onto the
> server, after adding a bunch of entries in the
> artifact-aliases.properties file, which is essentially the same as
> what your compatibility plugin does.
> 
> We'll have to quickly decide what to do with the compatability issue
> otherwise none of our sample will be installable on 2.1.2 server.
> 
> One approach is to release the compatibility plugin you worked on.
> Is this checked in?
> Pros: we can have this quickly and get ready for the 2.1.2 release.
> Cons: it is extra work for the user.
> 
> The other approach is to add the matching entries to the
> artifact-aliases.properties and client_artifact-aliases.properties on
> the fly.   We'll have to determine how to add them, what to add to
> different assemblies (can different assemblies have same entries if
> the extra entries don't hurt anything), etc.
> Pros: no extra work for the user, assuming the server can add the
> common matching entries to different assembly on the fly.
> Cons: Could take longer and is this appropriate for 2.1.2 given we'll
> release it very soon?




> 
> Thanks, Lin
> 
> On Tue, Jul 8, 2008 at 2:51 PM, Joe Bohn <joe.bohn@earthlink.net> wrote:
>> Lin Sun wrote:
>>> Yes, I am able to move onto the next missing dependency module.   Thanks.
>>>
>>> Is there a reason why we need both?  I thought we just need one and
>>> version can be omitted on the left side per
>>>
>>> http://cwiki.apache.org/GMOxDOC21/how-to-upgrade-jars-and-swap-modules.html
>> What you need depends on the way the dependency itself is specified.  If it
>> is specified with the version such as 2.1 then you need the /2.1/ entry.
>>  This is the case for the jsp sample.  If it is called out without a version
>> then you need the // entry.  The doc you referenced calls the former a
>> "fixed version".
>>
>> IIRC the jsp sample had 2.1 in the jasper dependency ... but it also had a
>> dependency on the tomcat/jetty car.  The tomcat/jetty car has a dependency
>> on jasper without the version.  You might not need the // entry but in
>> general it is usually best to provide both the versioned and non-versioned
>> entries.
>>
>> BTW, I was actually using a quick pass at a compatibility plugin I had
>> created for that included all of the cars for the tomcat server instance ...
>> so some other dependencies may have been resolved beyond jasper (such as the
>> tomcat dependency).
>>
>> Joe
>>
>>> Lin
>>>
>>> On Tue, Jul 8, 2008 at 2:06 PM, Joe Bohn <joe.bohn@earthlink.net> wrote:
>>>> Lin Sun wrote:
>>>>> Hi Joe,
>>>>>
>>>>> Is this scenario working for you after your fix?  I updated the
>>>>> artifact-aliases.properties file in var/config manually when server is
>>>>> shutdown -
>>>>>
>>>>>
>>>>> org.apache.geronimo.configs/jasper//car=org.apache.geronimo.configs/jasper/2.1.2-SNAPSHOT/car
>>>> You need one more additional entry  ...
>>>>
>>>> org.apache.geronimo.configs/jasper/2.1/car=org.apache.geronimo.configs/jasper/2.1.2-SNAPSHOT/car
>>>>
>>>> That worked for me.
>>>>
>>>> Joe
>>>>
>>>>
>>>>> However, I am still getting the "Missing dependency:
>>>>> org.apache.geronimo.configs/jasper/2.1/car" error.
>>>>>
>>>>> What am I missing?  Thanks, Lin
>>>>>
>>>>> On Thu, Jul 3, 2008 at 4:19 PM, Joe Bohn <joe.bohn@earthlink.net>
wrote:
>>>>>> Joe Bohn wrote:
>>>>>> Ok, I confirmed that DefaultArtifactResolver.queryArtifacts() was
not
>>>>>> including aliases for the query ... hence the problem.  Thanks to
a
>>>>>> good
>>>>>> pointer from David Jencks I was able to easily add this into the
query.
>>>>>> I
>>>>>> created GERONIMO-4182 for this problem and checked in a fix for
>>>>>> 2.1.2-SNAPSHOT and 2.2-SNAPSHOT.
>>>>>>
>>>>>> Unfortunately, that means that we won't be able to use a version
>>>>>> compatibility plugin for anything prior to 2.1.2/2.2 ... so we will
>>>>>> need
>>>>>> to
>>>>>> come up with another solution for samples or other plugins created
for
>>>>>> Geronimo 2.1 that we want to run on Geronimo 2.1.1.
>>>>>>
>>>>>> Joe
>>>>>>
>>>>>>
>>>>>>> Joe
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>> thanks
>>>>>>>> david jencks
>>>>>>>>
>>>>>>>> On Jul 2, 2008, at 8:46 AM, Joe Bohn wrote:
>>>>>>>>
>>>>>>>>> I attempted to create a version compatibility plugin
such that
>>>>>>>>> plugins
>>>>>>>>> with dependencies on 2.1 artifacts could attempt to be
installed in
>>>>>>>>> a
>>>>>>>>> 2.2-SNAPSHOT server image (mapping 2.1 car artifacts
to 2.2-SNAPSHOT
>>>>>>>>> car
>>>>>>>>> artifacts).  However, thus far I'm not having any success.
>>>>>>>>>
>>>>>>>>> The plugin is fairly simple.  Just a bunch of entries
for artifact
>>>>>>>>> aliases and no other content:
>>>>>>>>>
>>>>>>>>> <plugin-artifact>
>>>>>>>>> ...
>>>>>>>>> <artifact-alias
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> key="org.apache.geronimo.configs/jasper//car">org.apache.geronimo.configs/jasper/2.2-SNAPSHOT/car</artifact-alias>
>>>>>>>>> <artifact-alias
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> key="org.apache.geronimo.configs/jasper/2.1/car">org.apache.geronimo.configs/jasper/2.2-SNAPSHOT/car</artifact-alias>
>>>>>>>>> ...
>>>>>>>>>
>>>>>>>>> I also verified that after installing the compatibility
plugin that
>>>>>>>>> the
>>>>>>>>> entries are added to the artifact-aliases.properties
file in
>>>>>>>>> var/config:
>>>>>>>>>
>>>>>>>>> ...
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> org.apache.geronimo.configs/jasper//car=org.apache.geronimo.configs/jasper/2.2-SNAPSHOT/car
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> org.apache.geronimo.configs/jasper/2.1/car=org.apache.geronimo.configs/jasper/2.2-SNAPSHOT/car
>>>>>>>>> ...
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Yet, even with these entries, I still get essentially
the same error
>>>>>>>>> attempting to install samples created for 2.1 in a 2.2-SNAPSHOT
>>>>>>>>> server
>>>>>>>>> as I
>>>>>>>>> had without the artifact-alias entries.  I showed the
jasper entries
>>>>>>>>> above
>>>>>>>>> because that is the missing dependency when I attempt
to install the
>>>>>>>>> Tomcat
>>>>>>>>> JSP example plugin created for 2.1 on 2.2-SNAPSHOT (see
error
>>>>>>>>> below).
>>>>>>>>>  I had
>>>>>>>>> similar results on a 2.1.1 server when I attempted to
use a another
>>>>>>>>> compatibility plugin mapping 2.1 cars to 2.1.1.  Am I
missing
>>>>>>>>> something
>>>>>>>>> obvious?
>>>>>>>>>
>>>>>>>>> 11:22:45,918 ERROR [PluginInstallerGBean] Unable to install
plugin
>>>>>>>>> org.apache.geronimo.kernel.repository.MissingDependencyException:
>>>>>>>>> Plugin
>>>>>>>>> is not installable on Geronimo 2.2-SNAPSHOT
>>>>>>>>> Missing dependency: org.apache.geronimo.configs/jasper/2.1/car
>>>>>>>>>  at
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> org.apache.geronimo.system.plugin.PluginInstallerGBean.validatePlugin(PluginInstallerGBean.java:920)
>>>>>>>>>  at
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> org.apache.geronimo.system.plugin.PluginInstallerGBean.downloadArtifact(PluginInstallerGBean.java:1081)
>>>>>>>>> ...
>>>>>>>>>
>>>>>>>>> Joe
>>
> 


Mime
View raw message