Joe Bohn 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 ...
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