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.
Lin
On Thu, Jul 3, 2008 at 12:16 PM, Joe Bohn <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> 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
>>>>
>>>
>>
>
>