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:28:47 GMT
Joe Bohn wrote:
> 
> 
> 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?

oops ... I had intended to answer this on the last response.  No, I did 
not check this in.  I just created a empty plugin containing all of the 
cars in a tomcat server instance mapped from 2.1 (or 2.1.1) to 
2.1.2-SNAPSHOT.  If we want to pursue that we'll need to add the jetty 
specific cars (cxf too) and address the client_artifact_aliases as well.

>> 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