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 Thu, 03 Jul 2008 18:08:46 GMT
Lin Sun wrote:
> I agree this should work for certain scenarios when the server doesn't
> provide the needed dependency.  I suggested this because we had
> jasper-deployer specified as scope=provided while we don't have jasper
> specified as scope=provided in this sample in 2.1 branch.
> 

Right ... I noticed that as well.  I was thinking that might be because 
of some special case scenarios with the deployers (it looks like most 
deployer dependencies are specified as provided in samples but not other 
dependencies). I don't really know, but I was thinking there might be 
some chicken/egg type issues with the deployer needing to be registered 
prior to the deployment of an item that required that deployer.  Perhaps 
the plugin install must ensure that all deployers called out in the 
geronimo-plugin.xml are available before actually interrogating the 
content of the plugin for dependencies?


> Lin
> 
> On Thu, Jul 3, 2008 at 12:16 PM, Joe Bohn <joe.bohn@earthlink.net> wrote:
>> Lin Sun wrote:
>>> Hi Joe,
>>>
>>> You could try adding
>>>
>>>            <scope>provided</scope>
>>>
>>> to the org.apache.geronimo.configs/jasper/{version}/car dependency in
>>> the pom.xml.   I 've seen a similar error like this before and by
>>> adding the scope fixed it.
>> Thanks Lin.  That does indeed solve (more correctly avoid) the problem.
>>  However, adding <provided> means that the dependency will not be downloaded
>> and must already be available.  That's not necessarily a bad thing, but it
>> could potentially limit the server configurations upon which the sample or
>> other plugins can be installed.   That's something that we can consider for
>> the samples but in any case I think we also need to get this scenario
>> working  ... where a dependency is not marked as "provided" but can still be
>> resolved with a different dependency via the artifact-alias that can be (or
>> already is) installed on the given server instance.
>>
>> Joe
>>
>>> Thanks,
>>>
>>> Lin
>>>
>>> On Wed, Jul 2, 2008 at 4:33 PM, Joe Bohn <joe.bohn@earthlink.net> wrote:
>>>> David Jencks wrote:
>>>>> Can you check if the plugin installer gbean is using the artifact
>>>>> resolver
>>>>> that knows about the aliases you installed?  If it's directly accessing
>>>>> the
>>>>> repository we need to change it to use the appropriate artifact resolver
>>>>> (after figuring out which artifact resolver that is)
>>>>>
>>>> Thanks for the help David.
>>>>
>>>> I'm still not sure exactly why this isn't working yet but I did learn a
>>>> few
>>>> things:
>>>>
>>>> - The PluginInstallerGBean is using an ArtifactResolver as it should be
>>>> and
>>>> not accessing the repository directly.
>>>> - Checking the ArtifactResolver instance shows that it is actually using
>>>> the
>>>> ExplicitDefaultArtifactResolver class.
>>>> - When I install my compatibility plugin I can see the point in the
>>>> PluginGBeanInstaller where it calls ExplicitDefaultArtifactResolver to
>>>> add
>>>> the alias entries.
>>>> - It appears to be the same instance of the
>>>> ExplicitDefaultArtifactResolver
>>>> for both adding the entries and when we later check to for items like the
>>>> jasper 2.1 car file dependency later on.
>>>> - When we query the artifact resolver for the jasper configID (via
>>>> queryArtifacts()) it does not come back with a match for some reason. It
>>>> seems that queryArtifacts() is inherited from DefaultArtifactResolver and
>>>> it's not clear to me if this class takes into consideration aliases that
>>>> were added.
>>>>
>>>> still looking ...
>>>>
>>>> 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