Hello Hervé.

Did the reproducer help you in any way?

Regards
-- 
Alexander Kriegisch
https://scrum-master.de


Alexander Kriegisch schrieb am 23.09.2023 10:00 (GMT +07:00):

> Hello Hervé.
> 
>>> I tried to upgrade those
>>> dependencies to the most recent Doxia and Sitetools versions.
> 
>> by "most recent", do you mean most recent from 1.x or 2.0.0-M*?
> 
> I mean 2.0.0-M*. Actually, the project works nicely and I would have
> ignored the Dependabot suggestions, but all those Maven warnings about
> outdated or EOL components made me start upgrading them. I was under the
> impression that Doxia milestones are just as stable and production-ready
> as Surefire ones, so I did not think much and gaven them a go.
> 
>> 1.x should not cause issues
>>
>> 2.0.0-M*, as expected from the version number, is more risky and not yet 
>> fully
>> 
>> stable
> 
> Then maybe it is better to revert to 1.x and let users live live with the
> Plexus warnings for a little longer.
> 
>> Such reporting plugin coding has so many ways to be done that sharing a 
>> reproducer is the easiest way to have concrete view on what is happening, 
>> particularly if you're going to 2.0.0-M*
> 
> Sure, it is about https://github.com/dev-aspectj/aspectj-maven-plugin.
> 
> On the main branch,
>   -- an older commit like 93110452 shows the (stable) situation before I
>      started various and sundry plugins and dependencies,
>   -- second-latest commit 7b8706a7 - see also build
>      
> https://github.com/dev-aspectj/aspectj-maven-plugin/actions/runs/6230950536
>      - shows an intermediate step in which the plugin's reporting
>      goalfails in integration tests,
>   -- latest commit 1a819a4e stabilises the integration tests, but is a
>      hacky work-in-progress commit that needs to be cleaned up. You
>      asked for a reproducer, so I pushed the commit.
> 
> You can build the plugin quickly, if you deactivate the
> 'integration-test' profile. In order to reproduce the problem, run
> something like
> 
> mvn -Dinvoker.test=CreateReport verify -P integration-test
> 
> on the lat6est commit, but locally revert this change in AjcReportMojo.java:
> https://github.com/dev-aspectj/aspectj-maven-plugin/commit/1a819a4e0b2c3cd34797c3122488ea5833cf9fd5#diff-64f2431d9507f2996b65ccf8f9a4e202923d456e31579f3809ef4d648509b62e
> 
> Regards
> --
> Xander
> https://scrum-master.de
> 
> 
>> Le jeudi 7 septembre 2023, 04:35:29 CEST Alexander Kriegisch a écrit :
>>> Hello Maven community.
>>> 
>>> In a Maven plugin using old 1.x Doxia and Sitetool versions, I am getting
>>> warnings because those again use an EOL Plexus component. The details are
>>> not so important, the important part is that I tried to upgrade those
>>> dependencies to the most recent Doxia and Sitetools versions.
>>> 
>>> One class in the plugin extends
>>> org.apache.maven.reporting.AbstractMavenReport. It implements an
>>> executeReport(Locale) method, which so far was fine. But now, it also
>>> inherits execute() from the abstract parent class. The latter method is
>>> always called when using the reporting goal for my plugin. The result is an
>>> error like this:
>>> 
>>>   Caused by: java.lang.NullPointerException: Cannot invoke
>>> "org.apache.maven.doxia.tools.SiteTool.getSiteLocales(String)" because
>>> "this.siteTool" is null at
>>> org.apache.maven.reporting.AbstractMavenReport.getLocale
>>> (AbstractMavenReport.java:400) at
>>> org.apache.maven.reporting.AbstractMavenReport.reportToMarkup
>>> (AbstractMavenReport.java:212) at
>>> org.apache.maven.reporting.AbstractMavenReport.execute
>>> (AbstractMavenReport.java:189)
>>> 
>>> I see that AbstractMavenReport defines the 'siteTool' field as follows:
>>> 
>>>   @Component
>>>   protected SiteTool siteTool;
>>> 
>>> I am wondering why that field is null. Should it not be populated
>>> automatically by dependency injection? I have a dirty workaround for this
>>> problem:
>>> 
>>>   @Override
>>>   public void execute() throws MojoExecutionException {
>>>       //super.execute();
>>>       try {
>>>           executeReport(Locale.getDefault());
>>>       }
>>>       catch (MavenReportException e) {
>>>           throw new MojoExecutionException(e);
>>>       }
>>>   }
>>> 
>>> This way, 'siteTool' is not used and method SiteTool.getSiteLocales(String)
>>> never called. But I guess, that is not a good solution to the problem. How
>>> are plugin implementors meant to deal with this situation? Or is this some
>>> kind of bug? I am unsure how to proceed. I am by no means a Maven plugin
>>> buff and merely helping to keep an existing plugin alive. I would be
>>> grateful for hints.
>>> 
>>> Regards
>> 
>> 
>> 
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
>> For additional commands, e-mail: users-h...@maven.apache.org
>> 
>> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
> For additional commands, e-mail: users-h...@maven.apache.org
> 
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
For additional commands, e-mail: users-h...@maven.apache.org

Reply via email to