Hi, I'm having some problems using jing and trang with an old project which has a dependancy on the 20020724 versions of them, along with the 20020414 version of msv (and associated jars). I'm not in a position to update to the latest version. Not all of the versions used are available on ibiblio, and for the sake of ensuring that the correct version are being picked up, I've added them under a group id of "kris". The jar files work from the command prompt with a set classpath. This is my first attempt at writing a plugin, so I could be setting the classpath incorrectly or something.
The relevant entries in the project.xml file are: <dependency> <groupId>kris</groupId> <artifactId>msv</artifactId> <version>20020414</version> </dependency> <dependency> <groupId>kris</groupId> <artifactId>isorelax</artifactId> <version>20020707</version> </dependency> <dependency> <groupId>kris</groupId> <artifactId>xsdlib</artifactId> <version>20020414</version> </dependency> <dependency> <groupId>kris</groupId> <artifactId>jing</artifactId> <version>20020724</version> </dependency> <dependency> <groupId>kris</groupId> <artifactId>trang</artifactId> <version>20020724</version> </dependency> and in the plugin.jelly file, in a goal there is the following ant taskdef: <ant:taskdef name="schemacheck" classname="blah.blah.SchemaCheckTask"> <ant:classpath> <ant:pathelement location="${plugin.getDependencyPath('log4j:log4j')}"/> <ant:pathelement location="${plugin.getDependencyPath('xerces:xerces')}"/> <ant:pathelement location="${plugin.getDependencyPath('kris:msv')}"/> <ant:pathelement location="${plugin.getDependencyPath('kris:isorelax')}"/> <ant:pathelement location="${plugin.getDependencyPath('kris:xsdlib')}"/> <ant:pathelement location="${plugin.getDependencyPath('kris:jing')}"/> <ant:pathelement location="${plugin.getDependencyPath('kris:trang')}"/> </ant:classpath> </ant:taskdef> when I run the goal, I get the following AbstractMethodError java.lang.AbstractMethodError: com.thaiopensource.relaxng.edit.SchemaBuilderImpl$ElementAnnotationBuild erImpl.addText(Ljava/lang/String;Lcom/thaiopensource/relaxng/parse/Locat ion;Lcom/thaiopensource/relaxng/parse/CommentList;)V at com.thaiopensource.relaxng.parse.compact.CompactSyntax.Documentation(Unk nown Source) at com.thaiopensource.relaxng.parse.compact.CompactSyntax.Annotations(Unkno wn Source) at com.thaiopensource.relaxng.parse.compact.CompactSyntax.GrammarComponent( Unknown Source) at com.thaiopensource.relaxng.parse.compact.CompactSyntax.GrammarBody(Unkno wn Source) at com.thaiopensource.relaxng.parse.compact.CompactSyntax.IncludedGrammar(U nknown Source) at com.thaiopensource.relaxng.parse.compact.CompactSyntax.parseInclude(Unkn own Source) at com.thaiopensource.relaxng.parse.compact.CompactParseable.parseInclude(U nknown Source) [SNIP] The interesting part is that the Documentation class does not exist in jing-20020414, but it does in jing-20030619, referenced only by the pom plugin (as far as I can tell). The method it is attempting to call does not exist in trang-20020414, but it does in trang-20030619. Therefore, I can deduce that the version being used are jing-20030619 and trang-20020414. It seems to me that even though I have supplied the correct version of jing on the classpath, the version of jing depended on by the pom plugin is interfering, and the correct version of trang is on the classpath. I noticed that there is a classpath element in the dependancy of jing-20030619 in the pom plugin: <properties> <classloader>root</classloader> </properties> Perhaps this is forcing the classloader to use it over anything I define? I noticed that in the classloader resolution, the SchemaBuilderImpl is loaded from the ant loader, whereas the jing classes are loaded from the parent loader. [...relaxng.edit is in trang, ...relaxng.parse is in jing] [SNIP] [schemacheck] [DEBUG] Class com.thaiopensource.relaxng.output.rng.RngOutputFormat loaded from ant loader [schemacheck] [DEBUG] Finding class com.thaiopensource.relaxng.edit.PatternVisitor [schemacheck] [DEBUG] Class com.thaiopensource.relaxng.edit.PatternVisitor loaded from ant loader [schemacheck] [DEBUG] Class org.relaxng.datatype.helpers.DatatypeLibraryLoader loaded from parent loader [schemacheck] [DEBUG] Finding class com.thaiopensource.relaxng.edit.SchemaBuilderImpl [schemacheck] [DEBUG] Class com.thaiopensource.relaxng.parse.SchemaBuilder loaded from parent loader [schemacheck] [DEBUG] Class com.thaiopensource.relaxng.edit.SchemaBuilderImpl loaded from ant loader [schemacheck] [DEBUG] Class org.xml.sax.Locator loaded from parent loader [schemacheck] [DEBUG] Class com.thaiopensource.relaxng.parse.ElementAnnotationBuilder loaded from parent loader [schemacheck] [DEBUG] Class com.thaiopensource.relaxng.parse.Annotations loaded from parent loader [schemacheck] [DEBUG] Class com.thaiopensource.relaxng.parse.DataPatternBuilder loaded from parent loader [schemacheck] [DEBUG] Class com.thaiopensource.relaxng.parse.CommentList loaded from parent loader [schemacheck] [DEBUG] Class com.thaiopensource.relaxng.parse.Location loaded from parent loader [SNIP] I can also see that other classes, such as those from the msv, are being loaded by the ant loader. Can anyone help me? Thanks in advance, Kris. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]