jira.codehaus.org

  • Log In Access more options
    • Online Help
    • Keyboard Shortcuts
    • About JIRA
    • JIRA Credits
    • What?s New
  • Dashboards Access more options (Alt+d)
  • Projects Access more options (Alt+p)
  • Issues Access more options (Alt+i)
  • Maven 2 & 3
  • MNG-4162

Removal of all reporting logic from the core of Maven

  • Log In
  • Views
    • XML
    • Word
    • Printable

Details

  • Type: Improvement Improvement
  • Status: Closed Closed
  • Priority: Major Major
  • Resolution: Fixed
  • Affects Version/s: None
  • Fix Version/s: 3.0-beta-1
  • Component/s: None
  • Labels:
    None
  • Complexity:
    Intermediate

Description

Any reporting implementation will be implemented as a plugin. Maven will provide any information, APIs, and extension points to make this possible. But the conflation of building with reporting in the core makes it almost impossible for anyone two understand the distinction, makes it impossible to have alternate implementations and couple many tools like Doxia directly to the core which is unacceptable for Maven 3.x.

  • Options
    • Sort By Name
    • Sort By Date
    • Ascending
    • Descending
    • Download All

Attachments

  1. Text File
    MNG-4162.patch
    17/Aug/09 5:11 PM
    16 kB
    Olivier Lamy

Issue Links

is related to

Bug - A problem which impairs or prevents the functions of the product. MPIR-174 remove use of container.getLoggerManager() (to be compatible wih maven 3.x)

  • Major - Major loss of function.
  • Closed - The issue is considered finished, the resolution is correct. Issues which are not closed can be reopened.
relates to

Bug - A problem which impairs or prevents the functions of the product. MNG-4261 site plugin doesn't generate reports

  • Blocker - Blocks development and/or testing work, production could not run
  • Closed - The issue is considered finished, the resolution is correct. Issues which are not closed can be reopened.
  • Options
    • Show All
    • Show Open

Sub-Tasks

1.
Deprecate all methods in MavenProject that relate to reporting. Sub-task Closed Closed Benjamin Bentmann
 

Activity

Ascending order - Click to sort in descending order
  • All
  • Comments
  • Work Log
  • History
  • Activity
Hide
Permalink
Olivier Lamy added a comment - 01/Aug/09 4:42 PM

branches started :

  • core : https://svn.apache.org/repos/asf/maven/components/branches/MNG-4162/
  • site plugin : https://svn.apache.org/repos/asf/maven/plugins/branches/maven-site-plugin-3.x
Show
Olivier Lamy added a comment - 01/Aug/09 4:42 PM branches started :
  • core : https://svn.apache.org/repos/asf/maven/components/branches/MNG-4162/
  • site plugin : https://svn.apache.org/repos/asf/maven/plugins/branches/maven-site-plugin-3.x
Hide
Permalink
Olivier Lamy added a comment - 03/Aug/09 3:32 PM

I have commit stuff in core branch.
No big chance only new methods and some move from private to public.
No objections to merge to trunk ?

Show
Olivier Lamy added a comment - 03/Aug/09 3:32 PM I have commit stuff in core branch. No big chance only new methods and some move from private to public. No objections to merge to trunk ?
Hide
Permalink
Olivier Lamy added a comment - 03/Aug/09 5:02 PM

The approach used creating for each report plugin : creating a new ClassRealm with parent maven-site-plugin-realm with parent core realm.
Following imported from maven-site-plugin realm :

  • org.apache.maven.reporting.MavenReport
  • org.codehaus.doxia.sink.Sink
  • org.apache.maven.doxia.sink.Sink
  • org.apache.maven.doxia.sink.SinkEventAttributes

Note need to add org.apache.maven.artifact.manager.WagonConfigurationException in compat.
So I now have the famous issue with :

... 15 more
Caused by: java.lang.NoSuchMethodError: org.codehaus.plexus.PlexusContainer.getLoggerManager()Lorg/codehaus/plexus/logging/LoggerManager;
        at org.apache.maven.report.projectinfo.DependenciesReport.executeReport(DependenciesReport.java:222)
        at org.apache.maven.reporting.AbstractMavenReport.generate(AbstractMavenReport.java:90)
        at org.apache.maven.plugins.site.ReportDocumentRenderer.renderDocument(ReportDocumentRenderer.java:145)
        ... 19 more
Show
Olivier Lamy added a comment - 03/Aug/09 5:02 PM The approach used creating for each report plugin : creating a new ClassRealm with parent maven-site-plugin-realm with parent core realm. Following imported from maven-site-plugin realm :
  • org.apache.maven.reporting.MavenReport
  • org.codehaus.doxia.sink.Sink
  • org.apache.maven.doxia.sink.Sink
  • org.apache.maven.doxia.sink.SinkEventAttributes
Note need to add org.apache.maven.artifact.manager.WagonConfigurationException in compat. So I now have the famous issue with :
... 15 more
Caused by: java.lang.NoSuchMethodError: org.codehaus.plexus.PlexusContainer.getLoggerManager()Lorg/codehaus/plexus/logging/LoggerManager;
        at org.apache.maven.report.projectinfo.DependenciesReport.executeReport(DependenciesReport.java:222)
        at org.apache.maven.reporting.AbstractMavenReport.generate(AbstractMavenReport.java:90)
        at org.apache.maven.plugins.site.ReportDocumentRenderer.renderDocument(ReportDocumentRenderer.java:145)
        ... 19 more
Hide
Permalink
Olivier Lamy added a comment - 04/Aug/09 4:29 PM

note rev 800978 is needed for be able to use maven-project-info-reports-plugin.

Show
Olivier Lamy added a comment - 04/Aug/09 4:29 PM note rev 800978 is needed for be able to use maven-project-info-reports-plugin.
Hide
Permalink
Olivier Lamy added a comment - 04/Aug/09 7:07 PM

So it looks to works fine now.
Please review core branches.
Note no huge hack has been added only new methods.
Please review before merging.
Thanks

Show
Olivier Lamy added a comment - 04/Aug/09 7:07 PM So it looks to works fine now. Please review core branches. Note no huge hack has been added only new methods. Please review before merging. Thanks
Hide
Permalink
Olivier Lamy added a comment - 17/Aug/09 5:11 PM

merge from branch MNG-4162

Show
Olivier Lamy added a comment - 17/Aug/09 5:11 PM merge from branch MNG-4162
Hide
Permalink
Benjamin Bentmann added a comment - 18/Aug/09 8:20 AM

Olivier, we can't consume the patch as is. The problem is that the Site Plugin heavily reuses the plugin manager. However, the plugin manager is coded to support build plugins, i.e. makes certain assumptions about its use. With the Site Plugin reusing it in its current form, we would for instance end up with plugin realms for build and report plugins getting crippled and hard to debug class loading errors during reactor builds.

I'm going to look into refactoring the plugin manager. I envision a little layering where we have some general-purpose plugin management components on top of which both the core's plugin manager and the Site Plugin's plugin manager can easily support build plugins and report plugins, respectively.

Show
Benjamin Bentmann added a comment - 18/Aug/09 8:20 AM Olivier, we can't consume the patch as is. The problem is that the Site Plugin heavily reuses the plugin manager. However, the plugin manager is coded to support build plugins, i.e. makes certain assumptions about its use. With the Site Plugin reusing it in its current form, we would for instance end up with plugin realms for build and report plugins getting crippled and hard to debug class loading errors during reactor builds. I'm going to look into refactoring the plugin manager. I envision a little layering where we have some general-purpose plugin management components on top of which both the core's plugin manager and the Site Plugin's plugin manager can easily support build plugins and report plugins, respectively.
Hide
Permalink
Olivier Lamy added a comment - 26/Aug/09 3:20 PM

first part of this working. Currently only for "simple" report plugins.
Now we have to work with complicated report plugins which fork lifecycle (surefire report, cobertura).

Show
Olivier Lamy added a comment - 26/Aug/09 3:20 PM first part of this working. Currently only for "simple" report plugins. Now we have to work with complicated report plugins which fork lifecycle (surefire report, cobertura).
Hide
Permalink
Jason van Zyl added a comment - 15/Nov/09 7:06 AM

This is all done isn't it, the site plugin just doesn't work 100% right?

Show
Jason van Zyl added a comment - 15/Nov/09 7:06 AM This is all done isn't it, the site plugin just doesn't work 100% right?
Hide
Permalink
Olivier Lamy added a comment - 15/Nov/09 12:24 PM

I have to review the its and understand the failures. (https://grid.sonatype.org/ci/view/Maven%203.0.x/job/maven-site-plugin-3.x/).
It looks something has changed (in classworld I think) and now some reporting plugins breaks.
But I haven't yet investigated.

Show
Olivier Lamy added a comment - 15/Nov/09 12:24 PM I have to review the its and understand the failures. (https://grid.sonatype.org/ci/view/Maven%203.0.x/job/maven-site-plugin-3.x/). It looks something has changed (in classworld I think) and now some reporting plugins breaks. But I haven't yet investigated.
Hide
Permalink
Benjamin Bentmann added a comment - 25/Mar/10 5:01 PM

The converter of the <reporting> section is finished and the new Site Plugin is flipped over to use its own configuration, ITs look good.

Show
Benjamin Bentmann added a comment - 25/Mar/10 5:01 PM The converter of the <reporting> section is finished and the new Site Plugin is flipped over to use its own configuration, ITs look good.
Hide
Permalink
Christopher Hunt added a comment - 03/Nov/10 5:31 PM

Am I correct in assuming that the 2.x reporting section of a pom file is completely incompatible with Maven 3? This has been my observation at least, and I suspect that it will impact on the uptake of Maven 3. I understand the motivation in factoring out the report plugin from core, but I would favour deprecation of the reporting section in the pom over removal in order to have Maven 3 become widely adopted.

Show
Christopher Hunt added a comment - 03/Nov/10 5:31 PM Am I correct in assuming that the 2.x reporting section of a pom file is completely incompatible with Maven 3? This has been my observation at least, and I suspect that it will impact on the uptake of Maven 3. I understand the motivation in factoring out the report plugin from core, but I would favour deprecation of the reporting section in the pom over removal in order to have Maven 3 become widely adopted.
Hide
Permalink
Dennis Lundberg added a comment - 04/Nov/10 1:29 PM

Christopher, the Site Plugin for Maven 3 has a built-in converter, that is able to read the <reporting> section of a POM and convert it into the new model used in Maven 3. So it is possible to use <reporting> with Maven 3. Read more on the Site Plugin 3.x site:
http://maven.apache.org/plugins/maven-site-plugin-3.0-beta-3/maven-3.html

Show
Dennis Lundberg added a comment - 04/Nov/10 1:29 PM Christopher, the Site Plugin for Maven 3 has a built-in converter, that is able to read the <reporting> section of a POM and convert it into the new model used in Maven 3. So it is possible to use <reporting> with Maven 3. Read more on the Site Plugin 3.x site: http://maven.apache.org/plugins/maven-site-plugin-3.0-beta-3/maven-3.html

People

  • Assignee:
    Benjamin Bentmann
    Reporter:
    Jason van Zyl
Vote (1)
Watch (4)

Dates

  • Created:
    16/May/09 9:43 AM
    Updated:
    04/Nov/10 1:29 PM
    Resolved:
    25/Mar/10 5:01 PM
  • Atlassian JIRA (v5.0.4#731-sha1:3aa7374)
  • Report a problem
  • Powered by a free Atlassian JIRA open source license for Codehaus. Try JIRA - bug tracking software for your team.