Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[MNG-5222] - Maven 3 no longer logs warnings about deprecated parameter in plugin #285

Closed
wants to merge 1 commit into from

Conversation

belingueres
Copy link
Contributor

parameters

  • Added warning when setting deprecated parameter with value different
    than the default.
  • Stop using deprecated DebugConfigurationListener class.

Following this checklist to help us incorporate your
contribution quickly and easily:

  • Make sure there is a JIRA issue filed
    for the change (usually before you start working on it). Trivial changes like typos do not
    require a JIRA issue. Your pull request should address just this issue, without
    pulling in other changes.
  • Each commit in the pull request should have a meaningful subject line and body.
  • Format the pull request title like [MNG-XXX] - Fixes bug in ApproximateQuantiles,
    where you replace MNG-XXX with the appropriate JIRA issue. Best practice
    is to use the JIRA issue title in the pull request title and in the first line of the
    commit message.
  • Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
  • Run mvn clean verify to make sure basic checks pass. A more thorough check will
    be performed on your pull request automatically.
  • You have run the Core IT successfully.

If your pull request is about ~20 lines of code you don't need to sign an
Individual Contributor License Agreement if you are unsure
please ask on the developers list.

To make clear that you license your contribution under
the Apache License Version 2.0, January 2004
you have to acknowledge this by using the following check-box.

@slachiewicz
Copy link
Member

Do you have any example of a plugin where you can check the effect of this change?

@belingueres
Copy link
Contributor Author

m-compiler-p has some deprecated parameters.

@slachiewicz
Copy link
Member

ok, looks good to me.

[INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ maven-model ---
[WARNING]   Parameter 'optimize' (User Parameter 'maven.compiler.optimize') is deprecated. This property is a no-op in {@code javac}.

if ( parameter.getExpression() != null )
{
String userParam = parameter.getExpression().replace( "${", "'" ).replace( '}', '\'' );
sb.append( " (User Parameter " ).append( userParam ).append( ")" );
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is called User Property, not User Parameter.
Also be aware that the difference between expression and default-value wasn't that clear in the past, so there are still plugins around with odd values. So only show it in case of a valid expression.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you have and example of such an old plugin? How do I know if it is a "valid expression" at this stage of the plugin execution?

@hboutemy
Copy link
Member

while working on MNG-5001 (failure on read-only parameters), I imagine I'll work on this one also

question: do you have an example of deprecated parameter on a plugin available in the wild (ideally Maven 2 compatible) so we can easily test behaviour with misc Maven versions, please?

@belingueres
Copy link
Contributor Author

belingueres commented Apr 22, 2020

@hboutemy please see maven-compiler-plugin. It has deprecated compilerArguments and optimize properties.

@michael-o
Copy link
Member

Is there still interest in this for Maven 4?

@slachiewicz slachiewicz changed the title [MNG-5222] - Maven 3 no longer logs warnings about deprecated plugin [MNG-5222] - Maven 3 no longer logs warnings about deprecated parameter in plugin Oct 10, 2021
@slawekjaranowski
Copy link
Member

I hope it is interested also for 3.x
Change not seems too complicated and can be finished / refreshed and merged.

1 similar comment
@slawekjaranowski
Copy link
Member

I hope it is interested also for 3.x
Change not seems too complicated and can be finished / refreshed and merged.

@slawekjaranowski
Copy link
Member

@belingueres Thanks for your contributions.
I will try to process forward this change.

First I kindly ask you to rebase with current code base - we will see if build pass.

@belingueres belingueres force-pushed the MNG-5222 branch 2 times, most recently from c9f8dd7 to cd3beee Compare March 16, 2022 04:37
@belingueres
Copy link
Contributor Author

@slawekjaranowski Rebased and changed logger for SLF4J.
Built maven-core ok.
Ran core-its with one single failure on mng-4913 (I don't know if its related to this change)

Copy link
Member

@slawekjaranowski slawekjaranowski left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Responsibility of ValidatingConfigurationListener is to check configurations - so I don't mix it ...

Proposition
create class: CompositeConfigurationListener implements ConfigurationListener

  • with constructor (List<ConfigurationListener> listeners )
  • in implementation we call each listener

We can leave DebugConfigurationListener for show debug values
and create next DeprecatedConfigurationListener with logging about deprecated params

Copy link
Member

@slawekjaranowski slawekjaranowski left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I consulted with other and reviewed again, there are not many lines of code here, so in this simple case is acceptable to put in one class.

Class DebugConfigurationListener can be removed.

Pleas look at rest of my comments.

@slawekjaranowski
Copy link
Member

Summarize current discussion:

  • please delegate to DebugConfigurationListener
  • please use logger = LoggerFactory.getLogger(...) in ValidatingConfigurationListener
  • protect warnDeprecated by loger.isWarnEnabled
  • call warnDeprecated from notify method

and will be ok for me

@slawekjaranowski
Copy link
Member

@belingueres thanks - please squash to one commit it will be easier for cherry pick
@slachiewicz I see that you created branch MNG-5222, do you want to finish it? If no I take care about it.

@slachiewicz
Copy link
Member

Feel free to drop my branch - that was just quick rebase of original pr.

parameters

- Added warning when setting deprecated parameter with value different
than the default.
- Changed Logger to SLF4J.
@slawekjaranowski
Copy link
Member

Branch for change created with simple fix after IT tests - #705
and IT tests - apache/maven-integration-testing#143

@slawekjaranowski
Copy link
Member

@belingueres Thanks for contributing - your commit and credential will be preserved in my PR, this one can be closed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants