Maven 1

jsl:template Property 'match' has no write method

Details

  • Type: Bug Bug
  • Status: Closed Closed
  • Priority: Major Major
  • Resolution: Fixed
  • Affects Version/s: None
  • Fix Version/s: 1.1-beta-3
  • Component/s: None
  • Labels:
    None
  • Number of attachments :
    1

Description

classpath issue. Please post this to JIRA with maven --info output.

  • Brett

On Wed, 22 Sep 2004 10:12:13 +0200,
nicolas.chalumeau@arsoe-trelaze.com
<nicolas.chalumeau@arsoe-trelaze.com> wrote:
> I use cc 2.1.6 with the the 1.5 plugin. It seem I have a probleme with the
> jsl:template tag. I try by setting the properties maven.cruisecontrol.template=cruisecontrol or use it with the default value but there is no change
> allways the same message.
> I probally forgot to set some properties or don't set them with correct
> value.
>
> [Propri\351taire@draken ...maven-struts-module-plugin/]$ maven
> cruisecontrol:configure
> __ __
> | \/ |__ Apache_ ___
> | |\/| / ` \ V / -) ' \ ~ intelligent projects ~
> || |_,|_/__|||_| v. 1.0
>
> build:start:
>
> scm:parse-connection:
> [echo] Using connection:
> scm:cvs:pserver:nicolas@cvs.codeczar.com:/usr/ngasi/contexts/codeczar/cvs:maven-struts-module-plugin
> Using SCM method: cvs
> Using CVSROOT:
> :pserver:nicolas@cvs.codeczar.com:/usr/ngasi/contexts/codeczar/cvs
> Using module: maven-struts-module-plugin
>
> BUILD FAILED
> File...... C:\Documents and
> Settings\PropriÚtaire\.maven\cache\maven-cruisecontrol-plugin-1.5\plugin.jelly
> Element... j:include
> Line...... 72
> Column.... 51
> file:C:/Documents and
> Settings/PropriÚtaire/.maven/cache/maven-cruisecontrol-plugin-1.5/plugin-resources/cruisecontrol.jsl:30:52:
>
> <jsl:template
> > Property 'match' has no write method
> Total time: 4 seconds
> Finished at: Wed Sep 22 20:56:03 GMT+01:00 2004

I'm not on the same environment actually so I will add later the --info output.

Activity

Hide
Brett Porter added a comment -

ok... the --info bit is key to investigating this.

Show
Brett Porter added a comment - ok... the --info bit is key to investigating this.
Hide
Nicolas Chalumeau added a comment -

The --info output is in the attachment

Show
Nicolas Chalumeau added a comment - The --info output is in the attachment
Hide
Brett Porter added a comment -

this would be incompatible versions of jelly, as per the FAQ.

hopefully, this will become less of an issue in maven 1.1.

the only alternative is to synchronize versions across projects.

Show
Brett Porter added a comment - this would be incompatible versions of jelly, as per the FAQ. hopefully, this will become less of an issue in maven 1.1. the only alternative is to synchronize versions across projects.
Hide
Peter Lynch added a comment -

Sample output:

$maven site
__ __

\/ __ Apache_ ___
  \/ / ` \ V / -) ' \ ~ intelligent projects ~
_   _,_ _/___ _ _ v. 1.0.2

Plugin cache will be regenerated
build:start:

site:
xdoc:register-reports:
maven-changelog-plugin:register:

maven-changes-plugin:register:

maven-checkstyle-plugin:register:

maven-developer-activity-plugin:register:

faq:init:

maven-faq-plugin:register:

maven-file-activity-plugin:register:

xdoc:init:

maven-javadoc-plugin:register:
[mkdir] Created dir: /home/build/dev/inphonic/HEAD/mvno/dspp/target/javadoc/src
Tag library requested that is not present: 'simian' in plugin: 'maven-simian-plugin-1.5'

maven-jdepend-plugin:register:

maven-junit-report-plugin:register:

maven-jxr-plugin:register:

maven-license-plugin:register:

maven-pmd-plugin:register:

maven-tasklist-plugin:register:

maven-findbugs-plugin:register:

maven-simian-plugin:register:

site:run-reports:
[echo] Generating the Change Log...
maven-changelog-plugin:report:
[echo] Generating the changelog report
ChangeSet between 2005-08-27 and 2005-09-27: 12 entries

BUILD FAILED
File...... /home/build/.maven/cache/maven-xdoc-plugin-1.8/plugin.jelly
Element... j:include
Line...... 130
Column.... 55
file:/home/build/.maven/cache/maven-changelog-plugin-1.8.2/plugin-resources/changelog.jsl:30:35: <jsl:template> Property 'match' has no write method
Total time: 18 seconds
Finished at: Mon Sep 26 09:30:50 EDT 2005

===============================================================================

Checklist:
o make sure CLASSPATH is not set
o Make sure you old cache is empty. ie. rm -rf ~/.maven/cache. CAUTION: careful you don't delete some custom installed plugin sources here without backups.
o install final version of Maven 1.0.2 and update $MAVEN_HOME to point to it

Test case:
1. replace $MAVEN_HOME/plugins/maven-artifact-plugin-1.4.1.jar with maven-artifact-plugin-1.5.1.jar or maven-artifact-plugin-1.5.2.jar
2. call maven goals 'site' or 'site:deploy' or (likely) any plugin that generates a report via xdoc plugin or site plugin.
3. Notice that you get an error with a message "<jsl:template> Property 'match' has no write method"

WORKAROUND:
open artifact plugin project.xml that was extracted to you local cache. Typically this is found here
~/.maven/cache/maven-artifact-plugin-1.5.1/project.xml

comment out the commons-jelly 1.0-beta-4 dependency. Example:
<!--
<dependency>
<groupId>commons-jelly</groupId>
<artifactId>commons-jelly</artifactId>
<version>1.0-beta-4</version>
</dependency>
-->

Try your maven goal again. The problem should have been resolved. If not, then perhaps another plugin project.xml is loading commons-jelly core and overriding the one provided with core maven.

FWIW: I followed the above corrective measures and then proceeded to upgrade every other plugin one by one to the latest version as of Sept 26, 2005 running on Maven 1.0.2 and could not reproduce the problem with any other plugin/goal combination. The main goals used during testing were 'site' and 'site:deploy' however. It seems the main problem plugin is the artifact plugin.

I feel this is a bug in maven classloading though. One should design a plugin mechanism that avoids letting a plugin's dependencies cause other non-related plugins to fail. Also one could argue that the artifact plugin should not be depending on a common-jelly version so different from the one from maven core and that the artifact plugin has the real bug. So I will leave it up to Brett or Jason to decide if another issue should be opened to track this elesewhere.

Since the erorr message provided above makes no mention of the artifact plugin, it was only though many hours of trial and error I was able to deduce the artifact plugin's specific jelly depends was at fault.

The FAQ could be updated with more recent/pertinent info than just jelly version conflict. Otherwise there is no clear path to solve this problem.

As a more permanent site wide/common maven home fix, I modified the artifact plugin as above, made a new jar called maven-artifact-plugin-1.5.2.MAVEN-1450.jar ( modifying the currentVersion tag in the project.xml too) and replaced maven-artifact-plugin-1.5.2.jar with it. Now if individual caches get deleted, they will pick up a fixed artifact plugin jar file to extract and use to make sure the problem does not repeat itself.

Show
Peter Lynch added a comment - Sample output: $maven site __ __
\/ __ Apache_ ___
  \/ / ` \ V / -) ' \ ~ intelligent projects ~
_   _,_ _/___ _ _ v. 1.0.2
Plugin cache will be regenerated build:start: site: xdoc:register-reports: maven-changelog-plugin:register: maven-changes-plugin:register: maven-checkstyle-plugin:register: maven-developer-activity-plugin:register: faq:init: maven-faq-plugin:register: maven-file-activity-plugin:register: xdoc:init: maven-javadoc-plugin:register: [mkdir] Created dir: /home/build/dev/inphonic/HEAD/mvno/dspp/target/javadoc/src Tag library requested that is not present: 'simian' in plugin: 'maven-simian-plugin-1.5' maven-jdepend-plugin:register: maven-junit-report-plugin:register: maven-jxr-plugin:register: maven-license-plugin:register: maven-pmd-plugin:register: maven-tasklist-plugin:register: maven-findbugs-plugin:register: maven-simian-plugin:register: site:run-reports: [echo] Generating the Change Log... maven-changelog-plugin:report: [echo] Generating the changelog report ChangeSet between 2005-08-27 and 2005-09-27: 12 entries BUILD FAILED File...... /home/build/.maven/cache/maven-xdoc-plugin-1.8/plugin.jelly Element... j:include Line...... 130 Column.... 55 file:/home/build/.maven/cache/maven-changelog-plugin-1.8.2/plugin-resources/changelog.jsl:30:35: <jsl:template> Property 'match' has no write method Total time: 18 seconds Finished at: Mon Sep 26 09:30:50 EDT 2005 =============================================================================== Checklist: o make sure CLASSPATH is not set o Make sure you old cache is empty. ie. rm -rf ~/.maven/cache. CAUTION: careful you don't delete some custom installed plugin sources here without backups. o install final version of Maven 1.0.2 and update $MAVEN_HOME to point to it Test case: 1. replace $MAVEN_HOME/plugins/maven-artifact-plugin-1.4.1.jar with maven-artifact-plugin-1.5.1.jar or maven-artifact-plugin-1.5.2.jar 2. call maven goals 'site' or 'site:deploy' or (likely) any plugin that generates a report via xdoc plugin or site plugin. 3. Notice that you get an error with a message "<jsl:template> Property 'match' has no write method" WORKAROUND: open artifact plugin project.xml that was extracted to you local cache. Typically this is found here ~/.maven/cache/maven-artifact-plugin-1.5.1/project.xml comment out the commons-jelly 1.0-beta-4 dependency. Example: <!-- <dependency> <groupId>commons-jelly</groupId> <artifactId>commons-jelly</artifactId> <version>1.0-beta-4</version> </dependency> --> Try your maven goal again. The problem should have been resolved. If not, then perhaps another plugin project.xml is loading commons-jelly core and overriding the one provided with core maven. FWIW: I followed the above corrective measures and then proceeded to upgrade every other plugin one by one to the latest version as of Sept 26, 2005 running on Maven 1.0.2 and could not reproduce the problem with any other plugin/goal combination. The main goals used during testing were 'site' and 'site:deploy' however. It seems the main problem plugin is the artifact plugin. I feel this is a bug in maven classloading though. One should design a plugin mechanism that avoids letting a plugin's dependencies cause other non-related plugins to fail. Also one could argue that the artifact plugin should not be depending on a common-jelly version so different from the one from maven core and that the artifact plugin has the real bug. So I will leave it up to Brett or Jason to decide if another issue should be opened to track this elesewhere. Since the erorr message provided above makes no mention of the artifact plugin, it was only though many hours of trial and error I was able to deduce the artifact plugin's specific jelly depends was at fault. The FAQ could be updated with more recent/pertinent info than just jelly version conflict. Otherwise there is no clear path to solve this problem. As a more permanent site wide/common maven home fix, I modified the artifact plugin as above, made a new jar called maven-artifact-plugin-1.5.2.MAVEN-1450.jar ( modifying the currentVersion tag in the project.xml too) and replaced maven-artifact-plugin-1.5.2.jar with it. Now if individual caches get deleted, they will pick up a fixed artifact plugin jar file to extract and use to make sure the problem does not repeat itself.
Hide
Norman Jarvis added a comment -

This is still an issue in Maven 1.1-beta-2. Is this going to be fixed in the final Maven 1.1 release?

Show
Norman Jarvis added a comment - This is still an issue in Maven 1.1-beta-2. Is this going to be fixed in the final Maven 1.1 release?
Hide
Arnaud Heritier added a comment -

I upgraded all dependencies for maven 1.1 beta 3. Jelly 1.0 is used everywhere. Can you build it from trunk and test it, or can I send you a snapshot to see if you reproduce this error ?

Show
Arnaud Heritier added a comment - I upgraded all dependencies for maven 1.1 beta 3. Jelly 1.0 is used everywhere. Can you build it from trunk and test it, or can I send you a snapshot to see if you reproduce this error ?
Hide
Norman Jarvis added a comment -

Sure, Arnaud, send me a snapshot of maven-1.1-beta-3 and I will see if it is fixed.

Show
Norman Jarvis added a comment - Sure, Arnaud, send me a snapshot of maven-1.1-beta-3 and I will see if it is fixed.
Hide
Arnaud Heritier added a comment -

Fixed with the update of dependencies in core and plugins.
The snapshot available in [1] was validated by Norman.

[1] : http://people.apache.org/~aheritier/maven/1.X/snapshots/

Show
Arnaud Heritier added a comment - Fixed with the update of dependencies in core and plugins. The snapshot available in [1] was validated by Norman. [1] : http://people.apache.org/~aheritier/maven/1.X/snapshots/

People

Vote (1)
Watch (1)

Dates

  • Created:
    Updated:
    Resolved: