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



Reply via email to