You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "wilx (via GitHub)" <gi...@apache.org> on 2026/07/30 23:45:42 UTC

[PR] [#742] Use project name in generated Apache NOTICE [maven-shade-plugin]

wilx opened a new pull request, #830:
URL: https://github.com/apache/maven-shade-plugin/pull/830

   ## Summary
   
   Use the Maven project name as the default project name in notices generated by
   `ApacheNoticeResourceTransformer`.
   
   The transformer previously initialized `projectName` to an empty string and the
   mojo never supplied the injected `MavenProject`. Consequently, configuring the
   transformer without an explicit `<projectName>` produced a blank generated
   NOTICE header even when the POM had a nonblank `<name>`.
   
   `ShadeMojo` now supplies `MavenProject#getName()` when the transformer project
   name is unset and the Maven project name is neither null nor blank. Explicit
   transformer configuration remains authoritative, and a missing or blank Maven
   project name preserves the previous empty behavior.
   
   The change includes unit coverage for the fallback rules, a failing-first
   integration test for the generated NOTICE, and documentation of the default.
   
   Fixes #742.
   
   ## Validation
   
   - `mvn -Prun-its clean verify`: 74 unit tests and 84 integration projects
     passed; two projects were skipped by their JRE-version conditions.
   - JDK 21 `mvn test`: 74 tests passed.
   - Maven 4 built the isolated regression project with the branch plugin and
     generated the expected NOTICE header.
   - `mvn site` passed.
   
   Following this checklist to help us incorporate your 
   contribution quickly and easily:
   
    - [x] Make sure there is a [JIRA issue](https://issues.apache.org/jira/browse/MSHADE) 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.
   
          This change is tracked by GitHub issue #742; no separate JIRA issue was opened.
    - [x] Each commit in the pull request should have a meaningful subject line and body.
    - [x] Format the pull request title like `[MSHADE-XXX] - Fixes bug in ApproximateQuantiles`,
          where you replace `MSHADE-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.
   
          The title uses `#742`, the repository's GitHub tracking issue.
    - [x] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
    - [x] Run `mvn clean verify` to make sure basic checks pass. A more thorough check will 
          be performed on your pull request automatically.
    - [x] You have run the integration tests successfully (`mvn -Prun-its clean verify`).
   
   If your pull request is about ~20 lines of code you don't need to sign an
   [Individual Contributor License Agreement](https://www.apache.org/licenses/icla.pdf) 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](http://www.apache.org/licenses/LICENSE-2.0)
   you have to acknowledge this by using the following check-box.
   
    - [x] I hereby declare this contribution to be licenced under the [Apache License Version 2.0, January 2004](http://www.apache.org/licenses/LICENSE-2.0)
   
    - [ ] In any other case, please file an [Apache Individual Contributor License Agreement](https://www.apache.org/licenses/icla.pdf).
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@maven.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] Use project name in generated Apache NOTICE [maven-shade-plugin]

Posted by "elharo (via GitHub)" <gi...@apache.org>.
elharo commented on code in PR #830:
URL: https://github.com/apache/maven-shade-plugin/pull/830#discussion_r3848203360


##########
src/main/java/org/apache/maven/plugins/shade/mojo/ShadeMojo.java:
##########
@@ -971,6 +972,9 @@ private List<ResourceTransformer> getResourceTransformers() throws MojoExecution
                 throw new MojoExecutionException(
                         "Failed to create shaded artifact: parameter transformers contains null (double-check XML attribute)");
             }
+            if (transformer instanceof ApacheNoticeResourceTransformer) {

Review Comment:
   might be necessary, but it would be cleaner if we could figure out some way to do this that doesn't require instanceof and casting. 



##########
src/main/java/org/apache/maven/plugins/shade/resource/ApacheNoticeResourceTransformer.java:
##########
@@ -79,6 +79,19 @@ public class ApacheNoticeResourceTransformer extends AbstractCompatibilityTransf
 
     private static final String NOTICE_MD_PATH = "META-INF/NOTICE.md";
 
+    /**
+     * Uses the Maven project name when no project name was configured explicitly.
+     *
+     * @param projectName the Maven project name
+     */
+    public void setProjectNameIfUnset(String projectName) {

Review Comment:
   why "if unset"? why not just set project name?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@maven.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] Use project name in generated Apache NOTICE [maven-shade-plugin]

Posted by "wilx (via GitHub)" <gi...@apache.org>.
wilx commented on code in PR #830:
URL: https://github.com/apache/maven-shade-plugin/pull/830#discussion_r3864914979


##########
src/main/java/org/apache/maven/plugins/shade/resource/ApacheNoticeResourceTransformer.java:
##########
@@ -79,6 +79,19 @@ public class ApacheNoticeResourceTransformer extends AbstractCompatibilityTransf
 
     private static final String NOTICE_MD_PATH = "META-INF/NOTICE.md";
 
+    /**
+     * Uses the Maven project name when no project name was configured explicitly.
+     *
+     * @param projectName the Maven project name
+     */
+    public void setProjectNameIfUnset(String projectName) {

Review Comment:
   The current name is descriptive. It does not need a different name. 



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@maven.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] Use project name in generated Apache NOTICE [maven-shade-plugin]

Posted by "slachiewicz (via GitHub)" <gi...@apache.org>.
slachiewicz merged PR #830:
URL: https://github.com/apache/maven-shade-plugin/pull/830


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@maven.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] Use project name in generated Apache NOTICE [maven-shade-plugin]

Posted by "elharo (via GitHub)" <gi...@apache.org>.
elharo commented on code in PR #830:
URL: https://github.com/apache/maven-shade-plugin/pull/830#discussion_r3856808303


##########
src/main/java/org/apache/maven/plugins/shade/resource/ApacheNoticeResourceTransformer.java:
##########
@@ -79,6 +79,19 @@ public class ApacheNoticeResourceTransformer extends AbstractCompatibilityTransf
 
     private static final String NOTICE_MD_PATH = "META-INF/NOTICE.md";
 
+    /**
+     * Uses the Maven project name when no project name was configured explicitly.
+     *
+     * @param projectName the Maven project name
+     */
+    public void setProjectNameIfUnset(String projectName) {

Review Comment:
   This still makes me queasy. My gut is that if someone calls this method, the project name should be set.
   
   Even if we keep the behavior as it, we need a better name. setDefaultProjectName? setFallbackProjectName? maybe something else.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@maven.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] Use project name in generated Apache NOTICE [maven-shade-plugin]

Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on PR #830:
URL: https://github.com/apache/maven-shade-plugin/pull/830#issuecomment-6455286988

   @slachiewicz Please assign appropriate label to PR according to the type of change.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@maven.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] Use project name in generated Apache NOTICE [maven-shade-plugin]

Posted by "wilx (via GitHub)" <gi...@apache.org>.
wilx commented on code in PR #830:
URL: https://github.com/apache/maven-shade-plugin/pull/830#discussion_r3855517770


##########
src/main/java/org/apache/maven/plugins/shade/resource/ApacheNoticeResourceTransformer.java:
##########
@@ -79,6 +79,19 @@ public class ApacheNoticeResourceTransformer extends AbstractCompatibilityTransf
 
     private static final String NOTICE_MD_PATH = "META-INF/NOTICE.md";
 
+    /**
+     * Uses the Maven project name when no project name was configured explicitly.
+     *
+     * @param projectName the Maven project name
+     */
+    public void setProjectNameIfUnset(String projectName) {

Review Comment:
   Because the field can be set via XML in the POM file, too. That takes precedence. If it is however not set via XML in POM, it will be set here. Thus if unset. 



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@maven.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] Use project name in generated Apache NOTICE [maven-shade-plugin]

Posted by "wilx (via GitHub)" <gi...@apache.org>.
wilx commented on PR #830:
URL: https://github.com/apache/maven-shade-plugin/pull/830#issuecomment-5232569198

   Rebased.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@maven.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org