[GitHub] [maven-mvnd] guw commented on issue #836: `Could not acquire write lock for…` errors

2023-09-12 Thread via GitHub


guw commented on issue #836:
URL: https://github.com/apache/maven-mvnd/issues/836#issuecomment-1716956801

   @cstamas We are using Apache Resolver 1.9.13 in a different project and 
started to see the locking issues as well. Can it be related to a slow file 
system? When was this locking introduced? Given that this is outside of `mvnd` 
should the issue be moved to the Maven Resolver project?
   
   ```
   java.lang.IllegalStateException: Could not acquire lock(s)
   at 
org.eclipse.aether.internal.impl.synccontext.named.NamedLockFactoryAdapter$AdaptedLockSyncContext.acquire(NamedLockFactoryAdapter.java:219)
   at 
org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:271)
   at 
org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:259)
   at 
org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:242)
   at 
org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:231)
   at 
org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.readArtifactDescriptor(DefaultArtifactDescriptorReader.java:172)
   at 
org.eclipse.aether.internal.impl.collect.df.DfDependencyCollector.resolveCachedArtifactDescriptor(DfDependencyCollector.java:382)
   at 
org.eclipse.aether.internal.impl.collect.df.DfDependencyCollector.getArtifactDescriptorResult(DfDependencyCollector.java:368)
   at 
org.eclipse.aether.internal.impl.collect.df.DfDependencyCollector.processDependency(DfDependencyCollector.java:218)
   at 
org.eclipse.aether.internal.impl.collect.df.DfDependencyCollector.processDependency(DfDependencyCollector.java:156)
   at 
org.eclipse.aether.internal.impl.collect.df.DfDependencyCollector.process(DfDependencyCollector.java:138)
   at 
org.eclipse.aether.internal.impl.collect.df.DfDependencyCollector.doCollectDependencies(DfDependencyCollector.java:108)
   at 
org.eclipse.aether.internal.impl.collect.DependencyCollectorDelegate.collectDependencies(DependencyCollectorDelegate.java:222)
   at 
org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.collectDependencies(DefaultDependencyCollector.java:87)
   at 
org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveDependencies(DefaultRepositorySystem.java:327)
   at ...
   Suppressed: java.lang.IllegalStateException: Attempt 1: Could not 
acquire write lock for 'artifact:junit:junit:4.13.2' in 30 SECONDS
   at 
org.eclipse.aether.internal.impl.synccontext.named.NamedLockFactoryAdapter$AdaptedLockSyncContext.acquire(NamedLockFactoryAdapter.java:202)
   ... 30 more
   Suppressed: java.lang.IllegalStateException: Attempt 2: Could not 
acquire write lock for 'artifact:junit:junit:4.13.2' in 30 SECONDS
   at 
org.eclipse.aether.internal.impl.synccontext.named.NamedLockFactoryAdapter$AdaptedLockSyncContext.acquire(NamedLockFactoryAdapter.java:202)
   ... 30 more
   ```


-- 
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-unsubscr...@maven.apache.org

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



[jira] [Resolved] (MJAVADOC-755) Clean up deprecated and unpreferred methods in JavadocUtil

2023-09-12 Thread Henning Schmiedehausen (Jira)


 [ 
https://issues.apache.org/jira/browse/MJAVADOC-755?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Henning Schmiedehausen resolved MJAVADOC-755.
-
Resolution: Fixed

> Clean up deprecated and unpreferred methods in JavadocUtil
> --
>
> Key: MJAVADOC-755
> URL: https://issues.apache.org/jira/browse/MJAVADOC-755
> Project: Maven Javadoc Plugin
>  Issue Type: Improvement
>Reporter: Elliotte Rusty Harold
>Assignee: Elliotte Rusty Harold
>Priority: Minor
> Fix For: 3.6.0
>
>




--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (MJAVADOC-773) Clean up deprecated and unpreferred methods in JavadocUtil

2023-09-12 Thread Henning Schmiedehausen (Jira)


[ 
https://issues.apache.org/jira/browse/MJAVADOC-773?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17764446#comment-17764446
 ] 

Henning Schmiedehausen commented on MJAVADOC-773:
-

track [https://github.com/apache/maven-javadoc-plugin/pull/210] 

> Clean up deprecated and unpreferred methods in JavadocUtil
> --
>
> Key: MJAVADOC-773
> URL: https://issues.apache.org/jira/browse/MJAVADOC-773
> Project: Maven Javadoc Plugin
>  Issue Type: Improvement
>Reporter: Henning Schmiedehausen
>Assignee: Elliotte Rusty Harold
>Priority: Minor
> Fix For: 3.6.0
>
>




--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Closed] (MJAVADOC-755) Clean up deprecated and unpreferred methods in JavadocUtil

2023-09-12 Thread Henning Schmiedehausen (Jira)


 [ 
https://issues.apache.org/jira/browse/MJAVADOC-755?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Henning Schmiedehausen closed MJAVADOC-755.
---

> Clean up deprecated and unpreferred methods in JavadocUtil
> --
>
> Key: MJAVADOC-755
> URL: https://issues.apache.org/jira/browse/MJAVADOC-755
> Project: Maven Javadoc Plugin
>  Issue Type: Improvement
>Reporter: Elliotte Rusty Harold
>Assignee: Elliotte Rusty Harold
>Priority: Minor
> Fix For: 3.6.0
>
>




--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (MJAVADOC-773) Clean up deprecated and unpreferred methods in JavadocUtil

2023-09-12 Thread Henning Schmiedehausen (Jira)


 [ 
https://issues.apache.org/jira/browse/MJAVADOC-773?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Henning Schmiedehausen updated MJAVADOC-773:

Fix Version/s: (was: 3.6.0)

> Clean up deprecated and unpreferred methods in JavadocUtil
> --
>
> Key: MJAVADOC-773
> URL: https://issues.apache.org/jira/browse/MJAVADOC-773
> Project: Maven Javadoc Plugin
>  Issue Type: Improvement
>Reporter: Henning Schmiedehausen
>Assignee: Elliotte Rusty Harold
>Priority: Minor
>




--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (MJAVADOC-773) Clean up deprecated and unpreferred methods in JavadocUtil

2023-09-12 Thread Henning Schmiedehausen (Jira)
Henning Schmiedehausen created MJAVADOC-773:
---

 Summary: Clean up deprecated and unpreferred methods in JavadocUtil
 Key: MJAVADOC-773
 URL: https://issues.apache.org/jira/browse/MJAVADOC-773
 Project: Maven Javadoc Plugin
  Issue Type: Improvement
Reporter: Henning Schmiedehausen
Assignee: Elliotte Rusty Harold
 Fix For: 3.6.0






--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Closed] (MJAVADOC-760) Cleanup dependency declarations as best possible

2023-09-12 Thread Henning Schmiedehausen (Jira)


 [ 
https://issues.apache.org/jira/browse/MJAVADOC-760?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Henning Schmiedehausen closed MJAVADOC-760.
---

> Cleanup dependency declarations as best possible
> 
>
> Key: MJAVADOC-760
> URL: https://issues.apache.org/jira/browse/MJAVADOC-760
> Project: Maven Javadoc Plugin
>  Issue Type: Improvement
>Reporter: Elliotte Rusty Harold
>Assignee: Elliotte Rusty Harold
>Priority: Minor
> Fix For: 3.6.0
>
>
> [WARNING] Used undeclared dependencies found:
> [WARNING]org.eclipse.sisu:org.eclipse.sisu.plexus:jar:0.3.5:compile
> [WARNING]org.slf4j:slf4j-api:jar:1.7.36:compile
> [WARNING]org.apache.maven.shared:maven-shared-utils:jar:3.3.4:compile
> [WARNING]org.eclipse.aether:aether-impl:jar:1.0.0.v20140518:provided
> [WARNING]javax.servlet:javax.servlet-api:jar:3.1.0:test
> [WARNING]org.hamcrest:hamcrest-core:jar:1.3:test
> [WARNING]org.eclipse.aether:aether-util:jar:1.0.0.v20140518:compile
> [WARNING]org.codehaus.plexus:plexus-io:jar:3.4.0:compile
> [WARNING]org.codehaus.plexus:plexus-archiver:jar:4.4.0:compile
> [WARNING]org.eclipse.aether:aether-api:jar:1.0.0.v20140518:compile
> [WARNING]org.eclipse.jetty:jetty-util:jar:9.4.50.v20221201:test
> [WARNING] Unused declared dependencies found:
> [WARNING]org.eclipse.jetty:jetty-client:jar:9.4.50.v20221201:test
> [WARNING]
> org.eclipse.aether:aether-connector-basic:jar:1.0.0.v20140518:test
> [WARNING]
> org.eclipse.aether:aether-transport-wagon:jar:1.0.0.v20140518:test
> [WARNING]org.apache.maven.wagon:wagon-http:jar:shaded:2.4:test
> [WARNING]org.slf4j:slf4j-simple:jar:1.7.36:test
> [WARNING] Non-test scoped test only dependencies found:
> [WARNING]org.slf4j:slf4j-api:jar:1.7.36:compile



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Closed] (MJAVADOC-701) javadoc site is broken for projects that contain modules

2023-09-12 Thread Henning Schmiedehausen (Jira)


 [ 
https://issues.apache.org/jira/browse/MJAVADOC-701?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Henning Schmiedehausen closed MJAVADOC-701.
---

> javadoc site is broken for projects that contain modules
> 
>
> Key: MJAVADOC-701
> URL: https://issues.apache.org/jira/browse/MJAVADOC-701
> Project: Maven Javadoc Plugin
>  Issue Type: Bug
>  Components: javadoc
>Affects Versions: 3.3.1
> Environment: Maven home: /usr/local/Cellar/maven/3.8.4/libexec
> Java version: 17.0.1, vendor: Eclipse Adoptium, runtime: 
> /Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home
> Default locale: en_US, platform encoding: UTF-8
> OS name: "mac os x", version: "11.5", arch: "x86_64", family: "mac"
>Reporter: Henning Schmiedehausen
>Assignee: Henning Schmiedehausen
>Priority: Major
> Fix For: 3.6.0
>
>
> How to reproduce:
>  
> {{% git clone [https://github.com/hgschmie/pg-embedded.git]}}
> {{% cd pg-embedded}}
> {{% git checkout -b 4.0-branch pg-embedded-4.0}}
> {{% ./mvnw clean site}}
> {{% ls target/site/apidocs}}
> {{allclasses-index.html     jquery-ui.overrides.css    script-dir}}
> {{allpackages-index.html    legal                      script.js}}
> {{constant-values.html      member-search-index.js     search.js}}
> {{de                        module-search-index.js     src-html}}
> {{deprecated-list.html      overview-summary.html      stylesheet.css}}
> {{element-list              overview-tree.html         tag-search-index.js}}
> {{index-all.html            package-search-index.js    type-search-index.js}}
> {{index.html                resources}}
> {{% ./mvnw clean install site}}
> {{% ls target/site/apidocs}}
> {{allclasses-index.html                overview-tree.html}}
> {{allpackages-index.html               package-search-index.js}}
> {{constant-values.html                 resources}}
> {{{color:#ff}*de.softwareforge.testing.postgres*{color}    script-dir}}
> {{deprecated-list.html                 script.js}}
> {{element-list                         search.js}}
> {{index-all.html                       src}}
> {{index.html                           src-html}}
> {{jquery-ui.overrides.css              stylesheet.css}}
> {{legal                                tag-search-index.js}}
> {{member-search-index.js            type-search-index.js}}
> {{module-search-index.js}}
> ==> If the build only creates the site (run aggregate-no-fork, javadoc, 
> javadoc-no-fork), it will not contain the module subfolder 
> (de.softwareforge.testing.postgres)
> ==> if the build also runs the "javadoc:jar" goal, the site will contain the 
> module subfolder
>  
> I have looked through the debug output and the options to the maven javadoc 
> plugin execution but nothing stands out. Just that one builds the module 
> javadoc correctly and the other does not.
>  
>  
>  
>  
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Closed] (MJAVADOC-771) Upgrade Parent to 40

2023-09-12 Thread Henning Schmiedehausen (Jira)


 [ 
https://issues.apache.org/jira/browse/MJAVADOC-771?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Henning Schmiedehausen closed MJAVADOC-771.
---

> Upgrade Parent to 40
> 
>
> Key: MJAVADOC-771
> URL: https://issues.apache.org/jira/browse/MJAVADOC-771
> Project: Maven Javadoc Plugin
>  Issue Type: Dependency upgrade
>Reporter: Slawomir Jaranowski
>Assignee: Henning Schmiedehausen
>Priority: Major
> Fix For: 3.6.0
>
>




--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Closed] (MJAVADOC-769) javadoc plugin can not deal with transitive filename based modules

2023-09-12 Thread Henning Schmiedehausen (Jira)


 [ 
https://issues.apache.org/jira/browse/MJAVADOC-769?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Henning Schmiedehausen closed MJAVADOC-769.
---

> javadoc plugin can not deal with transitive filename based modules
> --
>
> Key: MJAVADOC-769
> URL: https://issues.apache.org/jira/browse/MJAVADOC-769
> Project: Maven Javadoc Plugin
>  Issue Type: Bug
>  Components: javadoc
>Affects Versions: 3.5.0
>Reporter: Henning Schmiedehausen
>Assignee: Henning Schmiedehausen
>Priority: Major
> Fix For: 3.6.0
>
>
> clone this repository: https://github.com/hgschmie/mjavadoc769
> This builds an artifact, a tests artifact and a javadoc jar. 
> When building this for Java 9+ compatibility (javadoc generate a list of 
> modules) and using modules with Automatic-Module-Name enabled, the javadoc 
> plugin can not access the optional dependencies:
> {code}
> ERROR] Exit code: 1
> [ERROR] 
> /Users/henning/scratch/mjavadoc769/src/main/java/mavenbugs/mjavadoc769/InternalImportBindingBuilder.java:88:
>  error: cannot access Provider
> [ERROR] static final class InternalBindingProvider implements 
> Provider {
> [ERROR]  ^
> [ERROR]   class file for javax.inject.Provider not found
> [ERROR] 1 error
> [ERROR] Command line was: 
> /Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home/bin/javadoc 
> -J-Xmx1024m @options @packages
> {code}
> Note that all other plugins (compiler, surefire) work fine. Just the javadoc 
> plugin does not.
> {code}
> --add-modules
> ALL-MODULE-PATH
> --module-path
> '/Users/henning/.m2/repository/org/checkerframework/checker-qual/3.12.0/checker-qual-3.12.0.jar:/Users/henning/.m2/repository/jakarta/inject/jakarta.inject-api/2.0.1.MR/jakarta.inject-api-2.0.1.MR.jar:/Users/henning/.m2/repository/com/google/inject/guice/5.1.0/guice-5.1.0.jar:/Users/henning/.m2/repository/com/google/errorprone/error_prone_annotations/2.11.0/error_prone_annotations-2.11.0.jar:/Users/henning/.m2/repository/com/google/guava/guava/31.1-jre/guava-31.1-jre.jar:/Users/henning/scratch/mjavadoc769/target/mjavadoc769-1.0-SNAPSHOT.jar'
> --patch-module
> mavenbugs.mjavadoc769='/Users/henning/scratch/mjavadoc769/src/main/java:/Users/henning/scratch/mjavadoc769/target/generated-sources/annotations:/Users/henning/.m2/repository/aopalliance/aopalliance/1.0/aopalliance-1.0.jar:/Users/henning/.m2/repository/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar:/Users/henning/.m2/repository/com/google/guava/listenablefuture/.0-empty-to-avoid-conflict-with-guava/listenablefuture-.0-empty-to-avoid-conflict-with-guava.jar:/Users/henning/.m2/repository/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar:/Users/henning/.m2/repository/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar:/Users/henning/.m2/repository/javax/inject/javax.inject/1/javax.inject-1.jar'
> -encoding
> 'UTF-8'
> -public
> -quiet
> --release
> 11
> -bottom
> 'Copyright  2023. All rights reserved.'
> -charset
> 'UTF-8'
> -d
> '/Users/henning/scratch/mjavadoc769/target/apidocs'
> -docencoding
> 'UTF-8'
> -Xdoclint:none
> -doctitle
> 'mjavadoc769 1.0-SNAPSHOT API'
> -linkoffline
> 'https://docs.oracle.com/en/java/javase/11/docs/api' 
> '/Users/henning/scratch/mjavadoc769/target/javadoc-bundle-options'
> -nohelp
> -use
> -version
> -windowtitle
> 'mjavadoc769 1.0-SNAPSHOT API'
> {code}
> The javadoc plugin decides that the "javax.inject-1.jar" is added to the 
> classpath even though it is an optional dependency of the main module. 
> Contrary to this, the jakarta.inject-api-2.0.1.MR.jar is added to the module 
> path.
> The reason for this may be that the jakarta module contains a module-info 
> (hidden in META-INF/versions/9/) while the javax.inject jar does not.
> However, the checker-qual 
> (org/checkerframework/checker-qual/3.12.0/checker-qual-3.12.0.jar) dependency 
> is put on the module path even though it does not contain a module-info file. 
> However, it contains an {{Automatic-Module-Name}} entry in META-INF/MANIFEST.
> It seems that the javadoc plugin treats automatic dependencies with entry in 
> the manifest different from automatic dependencies determined by filename. 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Closed] (MJAVADOC-642) Setting maven.javadoc.isoffline seems to have no effect

2023-09-12 Thread Henning Schmiedehausen (Jira)


 [ 
https://issues.apache.org/jira/browse/MJAVADOC-642?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Henning Schmiedehausen closed MJAVADOC-642.
---

> Setting maven.javadoc.isoffline seems to have no effect
> ---
>
> Key: MJAVADOC-642
> URL: https://issues.apache.org/jira/browse/MJAVADOC-642
> Project: Maven Javadoc Plugin
>  Issue Type: Bug
>  Components: jar
>Affects Versions: 3.1.1
>Reporter: Thomas Cunningham
>Assignee: Henning Schmiedehausen
>Priority: Major
> Fix For: 3.6.0
>
>
> I'm trying to work around MJAVADOC-641 and the proxy issues that we are 
> having, and I'd like to set isOffline to true.     I tried to do this my 
> setting -Dmaven.javadoc.isOffline=true in my maven invocation, and it doesn't 
> seem to take effect.    Setting isOffline to true within the  
> allows my build to succeed.
> Am I using the wrong command line property for isOffline?



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Closed] (MJAVADOC-733) Alternative doclet page points to an SEO spammy page

2023-09-12 Thread Henning Schmiedehausen (Jira)


 [ 
https://issues.apache.org/jira/browse/MJAVADOC-733?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Henning Schmiedehausen closed MJAVADOC-733.
---

> Alternative doclet page points to an SEO spammy page
> 
>
> Key: MJAVADOC-733
> URL: https://issues.apache.org/jira/browse/MJAVADOC-733
> Project: Maven Javadoc Plugin
>  Issue Type: Bug
>Reporter: Gary D. Gregory
>Assignee: Henning Schmiedehausen
>Priority: Critical
> Fix For: 3.6.0
>
>
> On the page 
> https://maven.apache.org/plugins/maven-javadoc-plugin/examples/alternate-doclet.html
>  the site http://www.umlgraph.org/ is no longer valid.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Closed] (MJAVADOC-742) [REGRESSION] Transitive dependencies of docletArtifact missing

2023-09-12 Thread Henning Schmiedehausen (Jira)


 [ 
https://issues.apache.org/jira/browse/MJAVADOC-742?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Henning Schmiedehausen closed MJAVADOC-742.
---

> [REGRESSION] Transitive dependencies of docletArtifact missing
> --
>
> Key: MJAVADOC-742
> URL: https://issues.apache.org/jira/browse/MJAVADOC-742
> Project: Maven Javadoc Plugin
>  Issue Type: Bug
>  Components: javadoc
>Affects Versions: 3.5.0
>Reporter: Patrick Ruckstuhl
>Assignee: Tamas Cservenak
>Priority: Blocker
> Fix For: 3.6.0
>
>
> It looks like with 3.5.0 transitive dependencies of the docletArtifact are no 
> longer added to the classpath and generation fails with class not found. 
> Reverting back to 3.4.1 everything works fine.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Assigned] (MJAVADOC-760) Cleanup dependency declarations as best possible

2023-09-12 Thread Henning Schmiedehausen (Jira)


 [ 
https://issues.apache.org/jira/browse/MJAVADOC-760?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Henning Schmiedehausen reassigned MJAVADOC-760:
---

Assignee: Elliotte Rusty Harold

> Cleanup dependency declarations as best possible
> 
>
> Key: MJAVADOC-760
> URL: https://issues.apache.org/jira/browse/MJAVADOC-760
> Project: Maven Javadoc Plugin
>  Issue Type: Improvement
>Reporter: Elliotte Rusty Harold
>Assignee: Elliotte Rusty Harold
>Priority: Minor
> Fix For: 3.6.0
>
>
> [WARNING] Used undeclared dependencies found:
> [WARNING]org.eclipse.sisu:org.eclipse.sisu.plexus:jar:0.3.5:compile
> [WARNING]org.slf4j:slf4j-api:jar:1.7.36:compile
> [WARNING]org.apache.maven.shared:maven-shared-utils:jar:3.3.4:compile
> [WARNING]org.eclipse.aether:aether-impl:jar:1.0.0.v20140518:provided
> [WARNING]javax.servlet:javax.servlet-api:jar:3.1.0:test
> [WARNING]org.hamcrest:hamcrest-core:jar:1.3:test
> [WARNING]org.eclipse.aether:aether-util:jar:1.0.0.v20140518:compile
> [WARNING]org.codehaus.plexus:plexus-io:jar:3.4.0:compile
> [WARNING]org.codehaus.plexus:plexus-archiver:jar:4.4.0:compile
> [WARNING]org.eclipse.aether:aether-api:jar:1.0.0.v20140518:compile
> [WARNING]org.eclipse.jetty:jetty-util:jar:9.4.50.v20221201:test
> [WARNING] Unused declared dependencies found:
> [WARNING]org.eclipse.jetty:jetty-client:jar:9.4.50.v20221201:test
> [WARNING]
> org.eclipse.aether:aether-connector-basic:jar:1.0.0.v20140518:test
> [WARNING]
> org.eclipse.aether:aether-transport-wagon:jar:1.0.0.v20140518:test
> [WARNING]org.apache.maven.wagon:wagon-http:jar:shaded:2.4:test
> [WARNING]org.slf4j:slf4j-simple:jar:1.7.36:test
> [WARNING] Non-test scoped test only dependencies found:
> [WARNING]org.slf4j:slf4j-api:jar:1.7.36:compile



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[GitHub] [maven] w6et commented on pull request #1228: resolve Circular dependencies for project org.apache.maven:maven-xml-impl and rename name

2023-09-12 Thread via GitHub


w6et commented on PR #1228:
URL: https://github.com/apache/maven/pull/1228#issuecomment-1716661838

   > @w6et Could you please remove the module name change ?
   
   Done, @gnodet 


-- 
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-unsubscr...@maven.apache.org

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



[jira] [Commented] (MNG-7820) Remove dependency on plexus-utils

2023-09-12 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/MNG-7820?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17764414#comment-17764414
 ] 

ASF GitHub Bot commented on MNG-7820:
-

gnodet commented on code in PR #1208:
URL: https://github.com/apache/maven/pull/1208#discussion_r1323636892


##
maven-core/src/main/java/org/apache/maven/utils/introspection/ReflectionValueExtractor.java:
##
@@ -0,0 +1,325 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.maven.utils.introspection;
+
+import java.lang.ref.WeakReference;
+import java.lang.reflect.Array;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.List;
+import java.util.Map;
+import java.util.WeakHashMap;
+
+/**
+ * 
+ * Using simple dotted expressions to extract the values from an Object 
instance, For example we might want to extract a
+ * value like: project.build.sourceDirectory
+ * 
+ * 
+ * The implementation supports indexed, nested and mapped properties similar 
to the JSP way.
+ * 
+ *
+ * @author mailto:ja...@maven.org;>Jason van Zyl 
+ * @author mailto:vincent.sive...@gmail.com;>Vincent Siveton
+ *
+ * @see http://struts.apache.org/1.x/struts-taglib/indexedprops.html;>http://struts.apache.org/1.x/struts-taglib/indexedprops.html
+ */
+public class ReflectionValueExtractor {
+private static final Class[] CLASS_ARGS = new Class[0];
+
+private static final Object[] OBJECT_ARGS = new Object[0];
+
+/**
+ * Use a WeakHashMap here, so the keys (Class objects) can be garbage 
collected. This approach prevents permgen
+ * space overflows due to retention of discarded classloaders.
+ */
+private static final Map, WeakReference> CLASS_MAPS = 
new WeakHashMap<>();
+
+static final int EOF = -1;

Review Comment:
   Fixed





> Remove dependency on plexus-utils
> -
>
> Key: MNG-7820
> URL: https://issues.apache.org/jira/browse/MNG-7820
> Project: Maven
>  Issue Type: Task
>Reporter: Guillaume Nodet
>Priority: Major
> Fix For: 4.0.0-alpha-8
>
>




--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (MNG-7820) Remove dependency on plexus-utils

2023-09-12 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/MNG-7820?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17764415#comment-17764415
 ] 

ASF GitHub Bot commented on MNG-7820:
-

gnodet commented on code in PR #1208:
URL: https://github.com/apache/maven/pull/1208#discussion_r1323637084


##
maven-core/src/main/java/org/apache/maven/toolchain/java/JavaToolchainFactory.java:
##
@@ -86,9 +86,9 @@ public ToolchainPrivate createToolchain(ToolchainModel model) 
throws Misconfigur
 throw new MisconfiguredToolchainException(
 "Java toolchain without the " + 
JavaToolchainImpl.KEY_JAVAHOME + " configuration element.");
 }
-File normal = new File(FileUtils.normalize(javahome.getValue()));
+File normal = Paths.get(javahome.getValue()).normalize().toFile();

Review Comment:
   Fixed



##
maven-core/src/main/java/org/apache/maven/toolchain/java/JavaToolchainImpl.java:
##
@@ -53,7 +53,7 @@ public String toString() {
 }
 
 public String findTool(String toolName) {
-File toRet = findTool(toolName, new 
File(FileUtils.normalize(getJavaHome(;
+File toRet = findTool(toolName, 
Paths.get(getJavaHome()).normalize().toFile());

Review Comment:
   Fixed





> Remove dependency on plexus-utils
> -
>
> Key: MNG-7820
> URL: https://issues.apache.org/jira/browse/MNG-7820
> Project: Maven
>  Issue Type: Task
>Reporter: Guillaume Nodet
>Priority: Major
> Fix For: 4.0.0-alpha-8
>
>




--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[GitHub] [maven] gnodet commented on a diff in pull request #1208: [MNG-7820] Remove dependency on plexus-utils

2023-09-12 Thread via GitHub


gnodet commented on code in PR #1208:
URL: https://github.com/apache/maven/pull/1208#discussion_r1323637084


##
maven-core/src/main/java/org/apache/maven/toolchain/java/JavaToolchainFactory.java:
##
@@ -86,9 +86,9 @@ public ToolchainPrivate createToolchain(ToolchainModel model) 
throws Misconfigur
 throw new MisconfiguredToolchainException(
 "Java toolchain without the " + 
JavaToolchainImpl.KEY_JAVAHOME + " configuration element.");
 }
-File normal = new File(FileUtils.normalize(javahome.getValue()));
+File normal = Paths.get(javahome.getValue()).normalize().toFile();

Review Comment:
   Fixed



##
maven-core/src/main/java/org/apache/maven/toolchain/java/JavaToolchainImpl.java:
##
@@ -53,7 +53,7 @@ public String toString() {
 }
 
 public String findTool(String toolName) {
-File toRet = findTool(toolName, new 
File(FileUtils.normalize(getJavaHome(;
+File toRet = findTool(toolName, 
Paths.get(getJavaHome()).normalize().toFile());

Review Comment:
   Fixed



-- 
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-unsubscr...@maven.apache.org

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



[GitHub] [maven] gnodet commented on a diff in pull request #1208: [MNG-7820] Remove dependency on plexus-utils

2023-09-12 Thread via GitHub


gnodet commented on code in PR #1208:
URL: https://github.com/apache/maven/pull/1208#discussion_r1323636892


##
maven-core/src/main/java/org/apache/maven/utils/introspection/ReflectionValueExtractor.java:
##
@@ -0,0 +1,325 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.maven.utils.introspection;
+
+import java.lang.ref.WeakReference;
+import java.lang.reflect.Array;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.List;
+import java.util.Map;
+import java.util.WeakHashMap;
+
+/**
+ * 
+ * Using simple dotted expressions to extract the values from an Object 
instance, For example we might want to extract a
+ * value like: project.build.sourceDirectory
+ * 
+ * 
+ * The implementation supports indexed, nested and mapped properties similar 
to the JSP way.
+ * 
+ *
+ * @author mailto:ja...@maven.org;>Jason van Zyl 
+ * @author mailto:vincent.sive...@gmail.com;>Vincent Siveton
+ *
+ * @see http://struts.apache.org/1.x/struts-taglib/indexedprops.html;>http://struts.apache.org/1.x/struts-taglib/indexedprops.html
+ */
+public class ReflectionValueExtractor {
+private static final Class[] CLASS_ARGS = new Class[0];
+
+private static final Object[] OBJECT_ARGS = new Object[0];
+
+/**
+ * Use a WeakHashMap here, so the keys (Class objects) can be garbage 
collected. This approach prevents permgen
+ * space overflows due to retention of discarded classloaders.
+ */
+private static final Map, WeakReference> CLASS_MAPS = 
new WeakHashMap<>();
+
+static final int EOF = -1;

Review Comment:
   Fixed



-- 
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-unsubscr...@maven.apache.org

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



[jira] [Commented] (MNG-7820) Remove dependency on plexus-utils

2023-09-12 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/MNG-7820?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17764413#comment-17764413
 ] 

ASF GitHub Bot commented on MNG-7820:
-

gnodet commented on code in PR #1208:
URL: https://github.com/apache/maven/pull/1208#discussion_r1323636571


##
maven-core/src/main/java/org/apache/maven/utils/introspection/ReflectionValueExtractor.java:
##
@@ -0,0 +1,325 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.maven.utils.introspection;
+
+import java.lang.ref.WeakReference;
+import java.lang.reflect.Array;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.List;
+import java.util.Map;
+import java.util.WeakHashMap;
+
+/**
+ * 
+ * Using simple dotted expressions to extract the values from an Object 
instance, For example we might want to extract a
+ * value like: project.build.sourceDirectory
+ * 
+ * 
+ * The implementation supports indexed, nested and mapped properties similar 
to the JSP way.
+ * 
+ *
+ * @author mailto:ja...@maven.org;>Jason van Zyl 
+ * @author mailto:vincent.sive...@gmail.com;>Vincent Siveton
+ *
+ * @see http://struts.apache.org/1.x/struts-taglib/indexedprops.html;>http://struts.apache.org/1.x/struts-taglib/indexedprops.html
+ */
+public class ReflectionValueExtractor {
+private static final Class[] CLASS_ARGS = new Class[0];
+
+private static final Object[] OBJECT_ARGS = new Object[0];
+
+/**
+ * Use a WeakHashMap here, so the keys (Class objects) can be garbage 
collected. This approach prevents permgen
+ * space overflows due to retention of discarded classloaders.
+ */
+private static final Map, WeakReference> CLASS_MAPS = 
new WeakHashMap<>();
+
+static final int EOF = -1;
+
+static final char PROPERTY_START = '.';
+
+static final char INDEXED_START = '[';
+
+static final char INDEXED_END = ']';
+
+static final char MAPPED_START = '(';
+
+static final char MAPPED_END = ')';
+
+static class Tokenizer {
+final String expression;
+
+int idx;
+
+Tokenizer(String expression) {
+this.expression = expression;
+}
+
+public int peekChar() {
+return idx < expression.length() ? expression.charAt(idx) : EOF;
+}
+
+public int skipChar() {
+return idx < expression.length() ? expression.charAt(idx++) : EOF;
+}
+
+public String nextToken(char delimiter) {
+int start = idx;
+
+while (idx < expression.length() && delimiter != 
expression.charAt(idx)) {
+idx++;
+}
+
+// delimiter MUST be present
+if (idx <= start || idx >= expression.length()) {
+return null;
+}
+
+return expression.substring(start, idx++);
+}
+
+public String nextPropertyName() {
+final int start = idx;
+
+while (idx < expression.length() && 
Character.isJavaIdentifierPart(expression.charAt(idx))) {
+idx++;
+}
+
+// property name does not require delimiter
+if (idx <= start || idx > expression.length()) {
+return null;
+}
+
+return expression.substring(start, idx);
+}
+
+public int getPosition() {
+return idx < expression.length() ? idx : EOF;
+}
+
+// to make tokenizer look pretty in debugger
+@Override
+public String toString() {
+return idx < expression.length() ? expression.substring(idx) : 
"";
+}
+}
+
+private ReflectionValueExtractor() {}
+
+/**
+ * The implementation supports indexed, nested and mapped 
properties.
+ *
+ * 
+ * nested properties should be defined by a dot, i.e. 
"user.address.street"
+ * indexed properties (java.util.List or array instance) should be 
contains (\\w+)\\[(\\d+)\\]
+ * pattern, i.e. "user.addresses[1].street"
+ * mapped properties should be contains (\\w+)\\((.+)\\) 
pattern, i.e.
+ * "user.addresses(myAddress).street"

[jira] [Commented] (MNG-7820) Remove dependency on plexus-utils

2023-09-12 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/MNG-7820?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17764411#comment-17764411
 ] 

ASF GitHub Bot commented on MNG-7820:
-

gnodet commented on code in PR #1208:
URL: https://github.com/apache/maven/pull/1208#discussion_r1323636017


##
maven-core/src/main/java/org/apache/maven/utils/introspection/ReflectionValueExtractor.java:
##
@@ -0,0 +1,325 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.maven.utils.introspection;
+
+import java.lang.ref.WeakReference;
+import java.lang.reflect.Array;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.List;
+import java.util.Map;
+import java.util.WeakHashMap;
+
+/**
+ * 
+ * Using simple dotted expressions to extract the values from an Object 
instance, For example we might want to extract a
+ * value like: project.build.sourceDirectory
+ * 
+ * 
+ * The implementation supports indexed, nested and mapped properties similar 
to the JSP way.
+ * 
+ *
+ * @author mailto:ja...@maven.org;>Jason van Zyl 
+ * @author mailto:vincent.sive...@gmail.com;>Vincent Siveton
+ *
+ * @see http://struts.apache.org/1.x/struts-taglib/indexedprops.html;>http://struts.apache.org/1.x/struts-taglib/indexedprops.html
+ */
+public class ReflectionValueExtractor {
+private static final Class[] CLASS_ARGS = new Class[0];
+
+private static final Object[] OBJECT_ARGS = new Object[0];
+
+/**
+ * Use a WeakHashMap here, so the keys (Class objects) can be garbage 
collected. This approach prevents permgen
+ * space overflows due to retention of discarded classloaders.
+ */
+private static final Map, WeakReference> CLASS_MAPS = 
new WeakHashMap<>();
+
+static final int EOF = -1;
+
+static final char PROPERTY_START = '.';
+
+static final char INDEXED_START = '[';
+
+static final char INDEXED_END = ']';
+
+static final char MAPPED_START = '(';
+
+static final char MAPPED_END = ')';
+
+static class Tokenizer {
+final String expression;
+
+int idx;
+
+Tokenizer(String expression) {
+this.expression = expression;
+}
+
+public int peekChar() {
+return idx < expression.length() ? expression.charAt(idx) : EOF;
+}
+
+public int skipChar() {
+return idx < expression.length() ? expression.charAt(idx++) : EOF;
+}
+
+public String nextToken(char delimiter) {
+int start = idx;
+
+while (idx < expression.length() && delimiter != 
expression.charAt(idx)) {
+idx++;
+}
+
+// delimiter MUST be present
+if (idx <= start || idx >= expression.length()) {
+return null;
+}
+
+return expression.substring(start, idx++);
+}
+
+public String nextPropertyName() {
+final int start = idx;
+
+while (idx < expression.length() && 
Character.isJavaIdentifierPart(expression.charAt(idx))) {
+idx++;
+}
+
+// property name does not require delimiter
+if (idx <= start || idx > expression.length()) {
+return null;
+}
+
+return expression.substring(start, idx);
+}
+
+public int getPosition() {
+return idx < expression.length() ? idx : EOF;
+}
+
+// to make tokenizer look pretty in debugger
+@Override
+public String toString() {
+return idx < expression.length() ? expression.substring(idx) : 
"";
+}
+}
+
+private ReflectionValueExtractor() {}
+
+/**
+ * The implementation supports indexed, nested and mapped 
properties.
+ *
+ * 
+ * nested properties should be defined by a dot, i.e. 
"user.address.street"
+ * indexed properties (java.util.List or array instance) should be 
contains (\\w+)\\[(\\d+)\\]
+ * pattern, i.e. "user.addresses[1].street"
+ * mapped properties should be contains (\\w+)\\((.+)\\) 
pattern, i.e.
+ * "user.addresses(myAddress).street"

[GitHub] [maven] gnodet commented on a diff in pull request #1208: [MNG-7820] Remove dependency on plexus-utils

2023-09-12 Thread via GitHub


gnodet commented on code in PR #1208:
URL: https://github.com/apache/maven/pull/1208#discussion_r1323636571


##
maven-core/src/main/java/org/apache/maven/utils/introspection/ReflectionValueExtractor.java:
##
@@ -0,0 +1,325 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.maven.utils.introspection;
+
+import java.lang.ref.WeakReference;
+import java.lang.reflect.Array;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.List;
+import java.util.Map;
+import java.util.WeakHashMap;
+
+/**
+ * 
+ * Using simple dotted expressions to extract the values from an Object 
instance, For example we might want to extract a
+ * value like: project.build.sourceDirectory
+ * 
+ * 
+ * The implementation supports indexed, nested and mapped properties similar 
to the JSP way.
+ * 
+ *
+ * @author mailto:ja...@maven.org;>Jason van Zyl 
+ * @author mailto:vincent.sive...@gmail.com;>Vincent Siveton
+ *
+ * @see http://struts.apache.org/1.x/struts-taglib/indexedprops.html;>http://struts.apache.org/1.x/struts-taglib/indexedprops.html
+ */
+public class ReflectionValueExtractor {
+private static final Class[] CLASS_ARGS = new Class[0];
+
+private static final Object[] OBJECT_ARGS = new Object[0];
+
+/**
+ * Use a WeakHashMap here, so the keys (Class objects) can be garbage 
collected. This approach prevents permgen
+ * space overflows due to retention of discarded classloaders.
+ */
+private static final Map, WeakReference> CLASS_MAPS = 
new WeakHashMap<>();
+
+static final int EOF = -1;
+
+static final char PROPERTY_START = '.';
+
+static final char INDEXED_START = '[';
+
+static final char INDEXED_END = ']';
+
+static final char MAPPED_START = '(';
+
+static final char MAPPED_END = ')';
+
+static class Tokenizer {
+final String expression;
+
+int idx;
+
+Tokenizer(String expression) {
+this.expression = expression;
+}
+
+public int peekChar() {
+return idx < expression.length() ? expression.charAt(idx) : EOF;
+}
+
+public int skipChar() {
+return idx < expression.length() ? expression.charAt(idx++) : EOF;
+}
+
+public String nextToken(char delimiter) {
+int start = idx;
+
+while (idx < expression.length() && delimiter != 
expression.charAt(idx)) {
+idx++;
+}
+
+// delimiter MUST be present
+if (idx <= start || idx >= expression.length()) {
+return null;
+}
+
+return expression.substring(start, idx++);
+}
+
+public String nextPropertyName() {
+final int start = idx;
+
+while (idx < expression.length() && 
Character.isJavaIdentifierPart(expression.charAt(idx))) {
+idx++;
+}
+
+// property name does not require delimiter
+if (idx <= start || idx > expression.length()) {
+return null;
+}
+
+return expression.substring(start, idx);
+}
+
+public int getPosition() {
+return idx < expression.length() ? idx : EOF;
+}
+
+// to make tokenizer look pretty in debugger
+@Override
+public String toString() {
+return idx < expression.length() ? expression.substring(idx) : 
"";
+}
+}
+
+private ReflectionValueExtractor() {}
+
+/**
+ * The implementation supports indexed, nested and mapped 
properties.
+ *
+ * 
+ * nested properties should be defined by a dot, i.e. 
"user.address.street"
+ * indexed properties (java.util.List or array instance) should be 
contains (\\w+)\\[(\\d+)\\]
+ * pattern, i.e. "user.addresses[1].street"
+ * mapped properties should be contains (\\w+)\\((.+)\\) 
pattern, i.e.
+ * "user.addresses(myAddress).street"
+ * 
+ *
+ * @param expression not null expression
+ * @param root not null object
+ * @return the object defined by the expression
+ */
+public static Object evaluate(String expression, Object root) {
+ 

[GitHub] [maven] gnodet commented on a diff in pull request #1208: [MNG-7820] Remove dependency on plexus-utils

2023-09-12 Thread via GitHub


gnodet commented on code in PR #1208:
URL: https://github.com/apache/maven/pull/1208#discussion_r1323636017


##
maven-core/src/main/java/org/apache/maven/utils/introspection/ReflectionValueExtractor.java:
##
@@ -0,0 +1,325 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.maven.utils.introspection;
+
+import java.lang.ref.WeakReference;
+import java.lang.reflect.Array;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.List;
+import java.util.Map;
+import java.util.WeakHashMap;
+
+/**
+ * 
+ * Using simple dotted expressions to extract the values from an Object 
instance, For example we might want to extract a
+ * value like: project.build.sourceDirectory
+ * 
+ * 
+ * The implementation supports indexed, nested and mapped properties similar 
to the JSP way.
+ * 
+ *
+ * @author mailto:ja...@maven.org;>Jason van Zyl 
+ * @author mailto:vincent.sive...@gmail.com;>Vincent Siveton
+ *
+ * @see http://struts.apache.org/1.x/struts-taglib/indexedprops.html;>http://struts.apache.org/1.x/struts-taglib/indexedprops.html
+ */
+public class ReflectionValueExtractor {
+private static final Class[] CLASS_ARGS = new Class[0];
+
+private static final Object[] OBJECT_ARGS = new Object[0];
+
+/**
+ * Use a WeakHashMap here, so the keys (Class objects) can be garbage 
collected. This approach prevents permgen
+ * space overflows due to retention of discarded classloaders.
+ */
+private static final Map, WeakReference> CLASS_MAPS = 
new WeakHashMap<>();
+
+static final int EOF = -1;
+
+static final char PROPERTY_START = '.';
+
+static final char INDEXED_START = '[';
+
+static final char INDEXED_END = ']';
+
+static final char MAPPED_START = '(';
+
+static final char MAPPED_END = ')';
+
+static class Tokenizer {
+final String expression;
+
+int idx;
+
+Tokenizer(String expression) {
+this.expression = expression;
+}
+
+public int peekChar() {
+return idx < expression.length() ? expression.charAt(idx) : EOF;
+}
+
+public int skipChar() {
+return idx < expression.length() ? expression.charAt(idx++) : EOF;
+}
+
+public String nextToken(char delimiter) {
+int start = idx;
+
+while (idx < expression.length() && delimiter != 
expression.charAt(idx)) {
+idx++;
+}
+
+// delimiter MUST be present
+if (idx <= start || idx >= expression.length()) {
+return null;
+}
+
+return expression.substring(start, idx++);
+}
+
+public String nextPropertyName() {
+final int start = idx;
+
+while (idx < expression.length() && 
Character.isJavaIdentifierPart(expression.charAt(idx))) {
+idx++;
+}
+
+// property name does not require delimiter
+if (idx <= start || idx > expression.length()) {
+return null;
+}
+
+return expression.substring(start, idx);
+}
+
+public int getPosition() {
+return idx < expression.length() ? idx : EOF;
+}
+
+// to make tokenizer look pretty in debugger
+@Override
+public String toString() {
+return idx < expression.length() ? expression.substring(idx) : 
"";
+}
+}
+
+private ReflectionValueExtractor() {}
+
+/**
+ * The implementation supports indexed, nested and mapped 
properties.
+ *
+ * 
+ * nested properties should be defined by a dot, i.e. 
"user.address.street"
+ * indexed properties (java.util.List or array instance) should be 
contains (\\w+)\\[(\\d+)\\]
+ * pattern, i.e. "user.addresses[1].street"
+ * mapped properties should be contains (\\w+)\\((.+)\\) 
pattern, i.e.
+ * "user.addresses(myAddress).street"
+ * 
+ *
+ * @param expression not null expression
+ * @param root not null object
+ * @return the object defined by the expression
+ */
+public static Object evaluate(String expression, Object root) {
+ 

[GitHub] [maven-site] slawekjaranowski opened a new pull request, #449: Improvements to release procedure

2023-09-12 Thread via GitHub


slawekjaranowski opened a new pull request, #449:
URL: https://github.com/apache/maven-site/pull/449

   - link to doc of GPG key preparation
   - more detail about preparing release notes


-- 
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-unsubscr...@maven.apache.org

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



[jira] [Commented] (MDEP-871) 3.6.0 reporting Used undeclared dependency that is only used indirectly

2023-09-12 Thread Jira


[ 
https://issues.apache.org/jira/browse/MDEP-871?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17764388#comment-17764388
 ] 

Michael Dürig commented on MDEP-871:


> an indirect usage still counts.

How is an indirect usage different from a transitive dependency?

> 3.6.0 reporting Used undeclared dependency that is only used indirectly 
> 
>
> Key: MDEP-871
> URL: https://issues.apache.org/jira/browse/MDEP-871
> Project: Maven Dependency Plugin
>  Issue Type: Bug
>  Components: analyze
>Affects Versions: 3.6.0
>Reporter: Joe Barnett
>Priority: Major
>
> reproducer project: 
> [https://github.com/josephlbarnett/mdep-3.6.0-analyze-reproducer]
> if you change the maven-dependency-plugin version to 3.5.0 in the above 
> project, the maven build will pass.
>  
> It appears that referencing an interface that extends another interface (and 
> calling a method in that interface) is pulling that extended interface in as 
> a used dependency?  In this case the 
> `software.amazon.awssdk.services.kms.KmsClientBuilder` interface extends an 
> interface from the aws-core jar 
> (`software.amazon.awssdk.awscore.client.builder.AwsClientBuilder`), and the 
> example code calls the `.region()` method.   In 3.5.0 the aws-core dependency 
> was not treated as used, but in 3.6.0 it is.  Unclear if this is only 
> interface extension or classes implementing interfaces would have a similar 
> problem?
>  
> Is this intended behavior?



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (MNG-7820) Remove dependency on plexus-utils

2023-09-12 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/MNG-7820?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17764342#comment-17764342
 ] 

ASF GitHub Bot commented on MNG-7820:
-

gnodet commented on code in PR #1208:
URL: https://github.com/apache/maven/pull/1208#discussion_r1323448246


##
maven-core/src/main/java/org/apache/maven/utils/introspection/ReflectionValueExtractor.java:
##
@@ -0,0 +1,325 @@
+/*

Review Comment:
   I've explained those earlier.  They come from Apache, so I think it's safe 
to remove the headers on the 3 files from this package.  That's what I did in a 
more recent commit.





> Remove dependency on plexus-utils
> -
>
> Key: MNG-7820
> URL: https://issues.apache.org/jira/browse/MNG-7820
> Project: Maven
>  Issue Type: Task
>Reporter: Guillaume Nodet
>Priority: Major
> Fix For: 4.0.0-alpha-8
>
>




--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[GitHub] [maven] gnodet commented on a diff in pull request #1208: [MNG-7820] Remove dependency on plexus-utils

2023-09-12 Thread via GitHub


gnodet commented on code in PR #1208:
URL: https://github.com/apache/maven/pull/1208#discussion_r1323448246


##
maven-core/src/main/java/org/apache/maven/utils/introspection/ReflectionValueExtractor.java:
##
@@ -0,0 +1,325 @@
+/*

Review Comment:
   I've explained those earlier.  They come from Apache, so I think it's safe 
to remove the headers on the 3 files from this package.  That's what I did in a 
more recent commit.



-- 
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-unsubscr...@maven.apache.org

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



[GitHub] [maven-integration-testing] gnodet opened a new pull request, #292: Fix ITs

2023-09-12 Thread via GitHub


gnodet opened a new pull request, #292:
URL: https://github.com/apache/maven-integration-testing/pull/292

   (no comment)


-- 
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-unsubscr...@maven.apache.org

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



[jira] [Commented] (MDEP-871) 3.6.0 reporting Used undeclared dependency that is only used indirectly

2023-09-12 Thread Jared Stehler (Jira)


[ 
https://issues.apache.org/jira/browse/MDEP-871?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17764318#comment-17764318
 ] 

Jared Stehler commented on MDEP-871:


This seems to have been introduced with 
[https://github.com/apache/maven-dependency-analyzer/pull/82]

The change is to read type references from the class constants pool.

but from what I can tell, this is working as designed? to me, an indirect usage 
still counts.

 

> 3.6.0 reporting Used undeclared dependency that is only used indirectly 
> 
>
> Key: MDEP-871
> URL: https://issues.apache.org/jira/browse/MDEP-871
> Project: Maven Dependency Plugin
>  Issue Type: Bug
>  Components: analyze
>Affects Versions: 3.6.0
>Reporter: Joe Barnett
>Priority: Major
>
> reproducer project: 
> [https://github.com/josephlbarnett/mdep-3.6.0-analyze-reproducer]
> if you change the maven-dependency-plugin version to 3.5.0 in the above 
> project, the maven build will pass.
>  
> It appears that referencing an interface that extends another interface (and 
> calling a method in that interface) is pulling that extended interface in as 
> a used dependency?  In this case the 
> `software.amazon.awssdk.services.kms.KmsClientBuilder` interface extends an 
> interface from the aws-core jar 
> (`software.amazon.awssdk.awscore.client.builder.AwsClientBuilder`), and the 
> example code calls the `.region()` method.   In 3.5.0 the aws-core dependency 
> was not treated as used, but in 3.6.0 it is.  Unclear if this is only 
> interface extension or classes implementing interfaces would have a similar 
> problem?
>  
> Is this intended behavior?



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (MNG-7864) Fix the S390x to use IT branches

2023-09-12 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/MNG-7864?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17764314#comment-17764314
 ] 

ASF GitHub Bot commented on MNG-7864:
-

gnodet commented on code in PR #1239:
URL: https://github.com/apache/maven/pull/1239#discussion_r1323371796


##
Jenkinsfile.s390x.its:
##
@@ -0,0 +1,58 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+pipeline {
+  agent { node { 's390x' } }
+  options {
+durabilityHint('PERFORMANCE_OPTIMIZED')
+buildDiscarder(logRotator(numToKeepStr: '20', artifactNumToKeepStr: '5'))
+timeout(time: 180, unit: 'MINUTES')
+  }
+  parameters {
+string( defaultValue: 'master', description: 'Core Its branch (default 
master)',
+name: 'ITS_BRANCH' )

Review Comment:
   I did not imply to go through GitHub actions, but maybe the shell script 
from the GitHub action could be reused somehow in the Jenkins pipeline in order 
to find the correct remote repository + branch to use.





> Fix the S390x to use IT branches
> 
>
> Key: MNG-7864
> URL: https://issues.apache.org/jira/browse/MNG-7864
> Project: Maven
>  Issue Type: Bug
>Reporter: Guillaume Nodet
>Priority: Major
>
> When testing a PR, the maven-integration-testing branch with the same name 
> should be used instead of master if it exists.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[GitHub] [maven] gnodet commented on a diff in pull request #1239: [MNG-7864] Fix the S390x to use IT branches

2023-09-12 Thread via GitHub


gnodet commented on code in PR #1239:
URL: https://github.com/apache/maven/pull/1239#discussion_r1323371796


##
Jenkinsfile.s390x.its:
##
@@ -0,0 +1,58 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+pipeline {
+  agent { node { 's390x' } }
+  options {
+durabilityHint('PERFORMANCE_OPTIMIZED')
+buildDiscarder(logRotator(numToKeepStr: '20', artifactNumToKeepStr: '5'))
+timeout(time: 180, unit: 'MINUTES')
+  }
+  parameters {
+string( defaultValue: 'master', description: 'Core Its branch (default 
master)',
+name: 'ITS_BRANCH' )

Review Comment:
   I did not imply to go through GitHub actions, but maybe the shell script 
from the GitHub action could be reused somehow in the Jenkins pipeline in order 
to find the correct remote repository + branch to use.



-- 
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-unsubscr...@maven.apache.org

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



[jira] [Assigned] (MSHARED-1300) Order of dependencies is not always retained when filtering

2023-09-12 Thread Slawomir Jaranowski (Jira)


 [ 
https://issues.apache.org/jira/browse/MSHARED-1300?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Slawomir Jaranowski reassigned MSHARED-1300:


Assignee: Elliotte Rusty Harold

> Order of dependencies is not always retained when filtering
> ---
>
> Key: MSHARED-1300
> URL: https://issues.apache.org/jira/browse/MSHARED-1300
> Project: Maven Shared Components
>  Issue Type: Bug
>  Components: maven-common-artifact-filters
>Reporter: Kamil Jarosz
>Assignee: Elliotte Rusty Harold
>Priority: Major
> Fix For: maven-common-artifact-filters-next-release
>
>
> {{AbstractArtifactFeatureFilter}} does not retain the order of dependencies 
> when filtering using multiple includes. The dependencies will be ordered 
> first by their respective includes.
> For instance when filtering the following set of dependencies using 
> {{org.apache.maven.shared.artifact.filter.collection.TypeFilter}}
> {code:java}
> com.example:dependency-a:jar:1.0
> com.example:dependency-b:war:1.0
> com.example:dependency-c:zip:1.0
> {code}
> with includes {{zip,jar}} and excludes {{{}war{}}}, I will get the following:
> {code:java}
> com.example:dependency-c:zip:1.0
> com.example:dependency-a:jar:1.0
> {code}
> where dependencies are ordered by their type according to the the includes. I 
> would expect that the filter retains the original order of dependencies, 
> irrespective of the order of includes, i.e.
> {code:java}
> com.example:dependency-a:jar:1.0
> com.example:dependency-c:zip:1.0
> {code}
> This is caused by an invalid order of loops in 
> {{{}org.apache.maven.shared.artifact.filter.collection.AbstractArtifactFeatureFilter#filterIncludes{}}},
>  where includes are traversed first instead of artifacts.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (SUREFIRE-2194) JUnit 5: Implementing tests in test class and nested class results in incorrect reporting

2023-09-12 Thread Michael Osipov (Jira)


[ 
https://issues.apache.org/jira/browse/SUREFIRE-2194?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17764227#comment-17764227
 ] 

Michael Osipov commented on SUREFIRE-2194:
--

I see your point, it should be consistent.

> JUnit 5: Implementing tests in test class and nested class results in 
> incorrect reporting
> -
>
> Key: SUREFIRE-2194
> URL: https://issues.apache.org/jira/browse/SUREFIRE-2194
> Project: Maven Surefire
>  Issue Type: Bug
>  Components: JUnit 5.x support, Maven Surefire Plugin
>Affects Versions: 3.1.2
>Reporter: Jochen Kraushaar
>Priority: Minor
>
> h3. Example Test Class
> {code:java}
> import org.junit.jupiter.api.Nested;
> import org.junit.jupiter.api.Test;
> import static org.junit.jupiter.api.Assertions.assertTrue;
> class ExampleTest {
> @Test
> void outerTest() {
> assertTrue(true);
> }
> @Nested
> class InnerExampleTest {
> @Test
> void innerTest() {
> assertTrue(true);
> }
> }
> }
> {code}
> h3. Expected Result
> *One* {{TEST-ExampleTest.xml}} file containing the results of both tests or 
> *two* files ({{{}TEST-ExampleTest.xml{}}} and 
> {{{}TEST-ExampleTest$InnerExampleTest.xml{}}}) containing the results of 
> their tests.
> h3. Actual Result
>  * {{TEST-ExampleTest.xml}} does not contain any test case.
>  * {{TEST-ExampleTest$InnerExampleTest.xml}} contains results for both test 
> cases.
> h3. Workaround
> Do not put any tests into the parent class if nested classes are used.
> h3. Analysis
> {{org.apache.maven.surefire.junitplatform.RunListenerAdapter}} does not 
> distinguish between the parent and the nested classes. Both are reported as 
> new test sets.
> {{org.apache.maven.plugin.surefire.report.TestSetRunListener}} does not 
> support nested test sets, so the test set of the nested class overrides the 
> test set of the parent class.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (SUREFIRE-2194) JUnit 5: Implementing tests in test class and nested class results in incorrect reporting

2023-09-12 Thread Jochen Kraushaar (Jira)


 [ 
https://issues.apache.org/jira/browse/SUREFIRE-2194?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jochen Kraushaar updated SUREFIRE-2194:
---
Description: 
h3. Example Test Class
{code:java}
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;

import static org.junit.jupiter.api.Assertions.assertTrue;

class ExampleTest {

@Test
void outerTest() {
assertTrue(true);
}

@Nested
class InnerExampleTest {
@Test
void innerTest() {
assertTrue(true);
}
}
}
{code}
h3. Expected Result

*One* {{TEST-ExampleTest.xml}} file containing the results of both tests or 
*two* files ({{{}TEST-ExampleTest.xml{}}} and 
{{{}TEST-ExampleTest$InnerExampleTest.xml{}}}) containing the results of their 
tests.
h3. Actual Result
 * {{TEST-ExampleTest.xml}} does not contain any test case.
 * {{TEST-ExampleTest$InnerExampleTest.xml}} contains results for both test 
cases.

h3. Workaround

Do not put any tests into the parent class if nested classes are used.
h3. Analysis

{{org.apache.maven.surefire.junitplatform.RunListenerAdapter}} does not 
distinguish between the parent and the nested classes. Both are reported as new 
test sets.

{{org.apache.maven.plugin.surefire.report.TestSetRunListener}} does not support 
nested test sets, so the test set of the nested class overrides the test set of 
the parent class.

  was:
h3. Example Test Class
{code:java}
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;

import static org.junit.jupiter.api.Assertions.assertTrue;

class ExampleTest {

@Test
void outerTest() {
assertTrue(true);
}

@Nested
class InnerExampleTest {
@Test
void innerTest() {
assertTrue(true);
}
}
}
{code}
h3. Expected Result

*One* {{TEST-ExampleTest.xml}} file containing the results of both tests or 
*two* files ({{{}TEST-ExampleTest.xml{}}} and 
{{{}TEST-ExampleTest$InnerExampleTest.xml{}}}) containing the results of their 
tests.
h3. Actual Result
 * {{TEST-ExampleTest.xml}} does not contain any test case.
 * {{TEST-ExampleTest$InnerExampleTest.xml}} contains results for both test 
cases.

h3. Workaround

Do not put any tests into the parent class if nested classes are used.
h3. Analysis

{{org.apache.maven.surefire.junitplatform.RunListenerAdapter}} does not 
distinguish between the parent and the nested classes. Both are reported as new 
test sets.

{{org.apache.maven.plugin.surefire.report.TestSetRunListener}} does not support 
nested test sets, so the test set of the nested class overrides the test set of 
the nested class.


> JUnit 5: Implementing tests in test class and nested class results in 
> incorrect reporting
> -
>
> Key: SUREFIRE-2194
> URL: https://issues.apache.org/jira/browse/SUREFIRE-2194
> Project: Maven Surefire
>  Issue Type: Bug
>  Components: JUnit 5.x support, Maven Surefire Plugin
>Affects Versions: 3.1.2
>Reporter: Jochen Kraushaar
>Priority: Minor
>
> h3. Example Test Class
> {code:java}
> import org.junit.jupiter.api.Nested;
> import org.junit.jupiter.api.Test;
> import static org.junit.jupiter.api.Assertions.assertTrue;
> class ExampleTest {
> @Test
> void outerTest() {
> assertTrue(true);
> }
> @Nested
> class InnerExampleTest {
> @Test
> void innerTest() {
> assertTrue(true);
> }
> }
> }
> {code}
> h3. Expected Result
> *One* {{TEST-ExampleTest.xml}} file containing the results of both tests or 
> *two* files ({{{}TEST-ExampleTest.xml{}}} and 
> {{{}TEST-ExampleTest$InnerExampleTest.xml{}}}) containing the results of 
> their tests.
> h3. Actual Result
>  * {{TEST-ExampleTest.xml}} does not contain any test case.
>  * {{TEST-ExampleTest$InnerExampleTest.xml}} contains results for both test 
> cases.
> h3. Workaround
> Do not put any tests into the parent class if nested classes are used.
> h3. Analysis
> {{org.apache.maven.surefire.junitplatform.RunListenerAdapter}} does not 
> distinguish between the parent and the nested classes. Both are reported as 
> new test sets.
> {{org.apache.maven.plugin.surefire.report.TestSetRunListener}} does not 
> support nested test sets, so the test set of the nested class overrides the 
> test set of the parent class.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (SUREFIRE-2194) JUnit 5: Implementing tests in test class and nested class results in incorrect reporting

2023-09-12 Thread Jochen Kraushaar (Jira)


[ 
https://issues.apache.org/jira/browse/SUREFIRE-2194?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17764220#comment-17764220
 ] 

Jochen Kraushaar commented on SUREFIRE-2194:


The results of {{ExampleTest#outerTest}} are written to 
{{TEST-ExampleTest$InnerExampleTest.xml}}, which is misleading as the test is 
not part of {{ExampleTest$InnerExampleTest}}.

In our project this is a big problem, as QA will not approve our software if 
the test results are put into the wrong result set.

> JUnit 5: Implementing tests in test class and nested class results in 
> incorrect reporting
> -
>
> Key: SUREFIRE-2194
> URL: https://issues.apache.org/jira/browse/SUREFIRE-2194
> Project: Maven Surefire
>  Issue Type: Bug
>  Components: JUnit 5.x support, Maven Surefire Plugin
>Affects Versions: 3.1.2
>Reporter: Jochen Kraushaar
>Priority: Minor
>
> h3. Example Test Class
> {code:java}
> import org.junit.jupiter.api.Nested;
> import org.junit.jupiter.api.Test;
> import static org.junit.jupiter.api.Assertions.assertTrue;
> class ExampleTest {
> @Test
> void outerTest() {
> assertTrue(true);
> }
> @Nested
> class InnerExampleTest {
> @Test
> void innerTest() {
> assertTrue(true);
> }
> }
> }
> {code}
> h3. Expected Result
> *One* {{TEST-ExampleTest.xml}} file containing the results of both tests or 
> *two* files ({{{}TEST-ExampleTest.xml{}}} and 
> {{{}TEST-ExampleTest$InnerExampleTest.xml{}}}) containing the results of 
> their tests.
> h3. Actual Result
>  * {{TEST-ExampleTest.xml}} does not contain any test case.
>  * {{TEST-ExampleTest$InnerExampleTest.xml}} contains results for both test 
> cases.
> h3. Workaround
> Do not put any tests into the parent class if nested classes are used.
> h3. Analysis
> {{org.apache.maven.surefire.junitplatform.RunListenerAdapter}} does not 
> distinguish between the parent and the nested classes. Both are reported as 
> new test sets.
> {{org.apache.maven.plugin.surefire.report.TestSetRunListener}} does not 
> support nested test sets, so the test set of the nested class overrides the 
> test set of the nested class.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (SUREFIRE-2194) JUnit 5: Implementing tests in test class and nested class results in incorrect reporting

2023-09-12 Thread Michael Osipov (Jira)


[ 
https://issues.apache.org/jira/browse/SUREFIRE-2194?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17764210#comment-17764210
 ] 

Michael Osipov commented on SUREFIRE-2194:
--

Why do you consider this a a bug and why is this a problem?

> JUnit 5: Implementing tests in test class and nested class results in 
> incorrect reporting
> -
>
> Key: SUREFIRE-2194
> URL: https://issues.apache.org/jira/browse/SUREFIRE-2194
> Project: Maven Surefire
>  Issue Type: Bug
>  Components: JUnit 5.x support, Maven Surefire Plugin
>Affects Versions: 3.1.2
>Reporter: Jochen Kraushaar
>Priority: Minor
>
> h3. Example Test Class
> {code:java}
> import org.junit.jupiter.api.Nested;
> import org.junit.jupiter.api.Test;
> import static org.junit.jupiter.api.Assertions.assertTrue;
> class ExampleTest {
> @Test
> void outerTest() {
> assertTrue(true);
> }
> @Nested
> class InnerExampleTest {
> @Test
> void innerTest() {
> assertTrue(true);
> }
> }
> }
> {code}
> h3. Expected Result
> *One* {{TEST-ExampleTest.xml}} file containing the results of both tests or 
> *two* files ({{{}TEST-ExampleTest.xml{}}} and 
> {{{}TEST-ExampleTest$InnerExampleTest.xml{}}}) containing the results of 
> their tests.
> h3. Actual Result
>  * {{TEST-ExampleTest.xml}} does not contain any test case.
>  * {{TEST-ExampleTest$InnerExampleTest.xml}} contains results for both test 
> cases.
> h3. Workaround
> Do not put any tests into the parent class if nested classes are used.
> h3. Analysis
> {{org.apache.maven.surefire.junitplatform.RunListenerAdapter}} does not 
> distinguish between the parent and the nested classes. Both are reported as 
> new test sets.
> {{org.apache.maven.plugin.surefire.report.TestSetRunListener}} does not 
> support nested test sets, so the test set of the nested class overrides the 
> test set of the nested class.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (SUREFIRE-2194) JUnit 5: Implementing tests in test class and nested class results in incorrect reporting

2023-09-12 Thread Jochen Kraushaar (Jira)


 [ 
https://issues.apache.org/jira/browse/SUREFIRE-2194?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jochen Kraushaar updated SUREFIRE-2194:
---
Description: 
h3. Example Test Class
{code:java}
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;

import static org.junit.jupiter.api.Assertions.assertTrue;

class ExampleTest {

@Test
void outerTest() {
assertTrue(true);
}

@Nested
class InnerExampleTest {
@Test
void innerTest() {
assertTrue(true);
}
}
}
{code}
h3. Expected Result

*One* {{TEST-ExampleTest.xml}} file containing the results of both tests or 
*two* files ({{{}TEST-ExampleTest.xml{}}} and 
{{{}TEST-ExampleTest$InnerExampleTest.xml{}}}) containing the results of their 
tests.
h3. Actual Result
 * {{TEST-ExampleTest.xml}} does not contain any test case.
 * {{TEST-ExampleTest$InnerExampleTest.xml}} contains results for both test 
cases.

h3. Workaround

Do not put any tests into the parent class if nested classes are used.
h3. Analysis

{{org.apache.maven.surefire.junitplatform.RunListenerAdapter}} does not 
distinguish between the parent and the nested classes. Both are reported as new 
test sets.

{{org.apache.maven.plugin.surefire.report.TestSetRunListener}} does not support 
nested test sets, so the test set of the nested class overrides the test set of 
the nested class.

  was:
h3. Example Test Class
{code:java}
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;

import static org.junit.jupiter.api.Assertions.assertTrue;

class ExampleTest {

@Test
void outerTest() {
assertTrue(true);
}

@Nested
class InnerExampleTest {
@Test
void innerTest() {
assertTrue(true);
}
}
}
{code}
h3. Expected Result

*One* {{TEST-ExampleTest.xml}} file containing the results of both tests or 
*two* files ({{{}TEST-ExampleTest.xml{}}} and 
{{{}TEST-ExampleTest$InnerExampleTest.xml{}}}) containing the results of their 
tests.
h3. Actual Result
 * {{TEST-ExampleTest.xml}} does not contain any test case.
 * {{TEST-ExampleTest$InnerExampleTest.xml}} contains results for both test 
cases.

h3. Workaround

Do not put any tests into the parent class if nested classes are used.
h3. Analysis

{{org.apache.maven.surefire.junitplatform.RunListenerAdapter}} does not 
distinguish between the parent and the nested classes. Both are reported as new 
test sets.

{{ org.apache.maven.plugin.surefire.report.TestSetRunListener}} does not 
support nested test sets, so the test set of the nested class overrides the 
test set of the nested class.


> JUnit 5: Implementing tests in test class and nested class results in 
> incorrect reporting
> -
>
> Key: SUREFIRE-2194
> URL: https://issues.apache.org/jira/browse/SUREFIRE-2194
> Project: Maven Surefire
>  Issue Type: Bug
>  Components: JUnit 5.x support, Maven Surefire Plugin
>Affects Versions: 3.1.2
>Reporter: Jochen Kraushaar
>Priority: Minor
>
> h3. Example Test Class
> {code:java}
> import org.junit.jupiter.api.Nested;
> import org.junit.jupiter.api.Test;
> import static org.junit.jupiter.api.Assertions.assertTrue;
> class ExampleTest {
> @Test
> void outerTest() {
> assertTrue(true);
> }
> @Nested
> class InnerExampleTest {
> @Test
> void innerTest() {
> assertTrue(true);
> }
> }
> }
> {code}
> h3. Expected Result
> *One* {{TEST-ExampleTest.xml}} file containing the results of both tests or 
> *two* files ({{{}TEST-ExampleTest.xml{}}} and 
> {{{}TEST-ExampleTest$InnerExampleTest.xml{}}}) containing the results of 
> their tests.
> h3. Actual Result
>  * {{TEST-ExampleTest.xml}} does not contain any test case.
>  * {{TEST-ExampleTest$InnerExampleTest.xml}} contains results for both test 
> cases.
> h3. Workaround
> Do not put any tests into the parent class if nested classes are used.
> h3. Analysis
> {{org.apache.maven.surefire.junitplatform.RunListenerAdapter}} does not 
> distinguish between the parent and the nested classes. Both are reported as 
> new test sets.
> {{org.apache.maven.plugin.surefire.report.TestSetRunListener}} does not 
> support nested test sets, so the test set of the nested class overrides the 
> test set of the nested class.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (SUREFIRE-2194) JUnit 5: Implementing tests in test class and nested class results in incorrect reporting

2023-09-12 Thread Jochen Kraushaar (Jira)
Jochen Kraushaar created SUREFIRE-2194:
--

 Summary: JUnit 5: Implementing tests in test class and nested 
class results in incorrect reporting
 Key: SUREFIRE-2194
 URL: https://issues.apache.org/jira/browse/SUREFIRE-2194
 Project: Maven Surefire
  Issue Type: Bug
  Components: JUnit 5.x support, Maven Surefire Plugin
Affects Versions: 3.1.2
Reporter: Jochen Kraushaar


h3. Example Test Class
{code:java}
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;

import static org.junit.jupiter.api.Assertions.assertTrue;

class ExampleTest {

@Test
void outerTest() {
assertTrue(true);
}

@Nested
class InnerExampleTest {
@Test
void innerTest() {
assertTrue(true);
}
}
}
{code}
h3. Expected Result

*One* {{TEST-ExampleTest.xml}} file containing the results of both tests or 
*two* files ({{{}TEST-ExampleTest.xml{}}} and 
{{{}TEST-ExampleTest$InnerExampleTest.xml{}}}) containing the results of their 
tests.
h3. Actual Result
 * {{TEST-ExampleTest.xml}} does not contain any test case.
 * {{TEST-ExampleTest$InnerExampleTest.xml}} contains results for both test 
cases.

h3. Workaround

Do not put any tests into the parent class if nested classes are used.
h3. Analysis

{{org.apache.maven.surefire.junitplatform.RunListenerAdapter}} does not 
distinguish between the parent and the nested classes. Both are reported as new 
test sets.

{{ org.apache.maven.plugin.surefire.report.TestSetRunListener}} does not 
support nested test sets, so the test set of the nested class overrides the 
test set of the nested class.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (MSHARED-1302) commons-io to 2.13.0

2023-09-12 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/MSHARED-1302?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17764191#comment-17764191
 ] 

ASF GitHub Bot commented on MSHARED-1302:
-

elharo opened a new pull request, #34:
URL: https://github.com/apache/maven-common-artifact-filters/pull/34

   (no comment)




> commons-io to 2.13.0
> 
>
> Key: MSHARED-1302
> URL: https://issues.apache.org/jira/browse/MSHARED-1302
> Project: Maven Shared Components
>  Issue Type: Dependency upgrade
>  Components: maven-common-artifact-filters
>Reporter: Elliotte Rusty Harold
>Priority: Minor
> Fix For: maven-common-artifact-filters-next-release
>
>
> or whatever's current when someone gets to this



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[GitHub] [maven-common-artifact-filters] elharo opened a new pull request, #34: [MSHARED-1302] upgrade commons-io to 2.13.0

2023-09-12 Thread via GitHub


elharo opened a new pull request, #34:
URL: https://github.com/apache/maven-common-artifact-filters/pull/34

   (no comment)


-- 
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-unsubscr...@maven.apache.org

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



[jira] [Updated] (MSHARED-1303) Declare and undeclare used and unused dependencies

2023-09-12 Thread Elliotte Rusty Harold (Jira)


 [ 
https://issues.apache.org/jira/browse/MSHARED-1303?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Elliotte Rusty Harold updated MSHARED-1303:
---
Summary: Declare and undeclare used and unused dependencies  (was: Declare 
and undelcare used and unused dependencies)

> Declare and undeclare used and unused dependencies
> --
>
> Key: MSHARED-1303
> URL: https://issues.apache.org/jira/browse/MSHARED-1303
> Project: Maven Shared Components
>  Issue Type: Improvement
>  Components: maven-common-artifact-filters
>Reporter: Elliotte Rusty Harold
>Priority: Minor
> Fix For: maven-common-artifact-filters-next-release
>
>
> [WARNING] Used undeclared dependencies found:
> [WARNING]org.eclipse.aether:aether-util:jar:1.0.0.v20140518:provided
> [WARNING]org.eclipse.aether:aether-api:jar:1.0.0.v20140518:provided
> [WARNING] Unused declared dependencies found:
> [WARNING]org.apache.maven.resolver:maven-resolver-api:jar:1.6.3:provided
> [WARNING]org.apache.maven.resolver:maven-resolver-util:jar:1.6.3:provided
> [WARNING]org.openjdk.jmh:jmh-generator-annprocess:jar:1.35:test



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (MSHARED-1302) commons-io to 2.13.0

2023-09-12 Thread Elliotte Rusty Harold (Jira)


 [ 
https://issues.apache.org/jira/browse/MSHARED-1302?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Elliotte Rusty Harold updated MSHARED-1302:
---
Component/s: maven-common-artifact-filters

> commons-io to 2.13.0
> 
>
> Key: MSHARED-1302
> URL: https://issues.apache.org/jira/browse/MSHARED-1302
> Project: Maven Shared Components
>  Issue Type: Dependency upgrade
>  Components: maven-common-artifact-filters
>Reporter: Elliotte Rusty Harold
>Priority: Minor
> Fix For: maven-common-artifact-filters-next-release
>
>
> or whatever's current when someone gets to this



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (MSHARED-1303) Declare and undelcare used and unused dependencies

2023-09-12 Thread Elliotte Rusty Harold (Jira)
Elliotte Rusty Harold created MSHARED-1303:
--

 Summary: Declare and undelcare used and unused dependencies
 Key: MSHARED-1303
 URL: https://issues.apache.org/jira/browse/MSHARED-1303
 Project: Maven Shared Components
  Issue Type: Improvement
  Components: maven-common-artifact-filters
Reporter: Elliotte Rusty Harold
 Fix For: maven-common-artifact-filters-next-release


[WARNING] Used undeclared dependencies found:
[WARNING]org.eclipse.aether:aether-util:jar:1.0.0.v20140518:provided
[WARNING]org.eclipse.aether:aether-api:jar:1.0.0.v20140518:provided
[WARNING] Unused declared dependencies found:
[WARNING]org.apache.maven.resolver:maven-resolver-api:jar:1.6.3:provided
[WARNING]org.apache.maven.resolver:maven-resolver-util:jar:1.6.3:provided
[WARNING]org.openjdk.jmh:jmh-generator-annprocess:jar:1.35:test



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (MNG-7820) Remove dependency on plexus-utils

2023-09-12 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/MNG-7820?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17764167#comment-17764167
 ] 

ASF GitHub Bot commented on MNG-7820:
-

elharo commented on code in PR #1208:
URL: https://github.com/apache/maven/pull/1208#discussion_r1322972137


##
maven-core/src/main/java/org/apache/maven/toolchain/java/JavaToolchainFactory.java:
##
@@ -86,9 +86,9 @@ public ToolchainPrivate createToolchain(ToolchainModel model) 
throws Misconfigur
 throw new MisconfiguredToolchainException(
 "Java toolchain without the " + 
JavaToolchainImpl.KEY_JAVAHOME + " configuration element.");
 }
-File normal = new File(FileUtils.normalize(javahome.getValue()));
+File normal = Paths.get(javahome.getValue()).normalize().toFile();

Review Comment:
   No need to convert to a File; just use Files.exists(path) below



##
maven-core/src/main/java/org/apache/maven/utils/introspection/ReflectionValueExtractor.java:
##
@@ -0,0 +1,325 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.maven.utils.introspection;
+
+import java.lang.ref.WeakReference;
+import java.lang.reflect.Array;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.List;
+import java.util.Map;
+import java.util.WeakHashMap;
+
+/**
+ * 
+ * Using simple dotted expressions to extract the values from an Object 
instance, For example we might want to extract a

Review Comment:
   run on sentence



##
maven-core/src/main/java/org/apache/maven/utils/introspection/ReflectionValueExtractor.java:
##
@@ -0,0 +1,325 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.maven.utils.introspection;
+
+import java.lang.ref.WeakReference;
+import java.lang.reflect.Array;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.List;
+import java.util.Map;
+import java.util.WeakHashMap;
+
+/**
+ * 
+ * Using simple dotted expressions to extract the values from an Object 
instance, For example we might want to extract a
+ * value like: project.build.sourceDirectory
+ * 
+ * 
+ * The implementation supports indexed, nested and mapped properties similar 
to the JSP way.
+ * 
+ *
+ * @author mailto:ja...@maven.org;>Jason van Zyl 
+ * @author mailto:vincent.sive...@gmail.com;>Vincent Siveton
+ *
+ * @see http://struts.apache.org/1.x/struts-taglib/indexedprops.html;>http://struts.apache.org/1.x/struts-taglib/indexedprops.html
+ */
+public class ReflectionValueExtractor {
+private static final Class[] CLASS_ARGS = new Class[0];
+
+private static final Object[] OBJECT_ARGS = new Object[0];
+
+/**
+ * Use a WeakHashMap here, so the keys (Class objects) can be garbage 
collected. This approach prevents permgen
+ * space overflows due to retention of discarded classloaders.
+ */
+private static final Map, WeakReference> CLASS_MAPS = 
new WeakHashMap<>();
+
+static final int EOF = -1;
+
+static final char PROPERTY_START = '.';
+
+static final char INDEXED_START = '[';
+
+static final char INDEXED_END = ']';
+
+static final char MAPPED_START = '(';
+
+static final char MAPPED_END = ')';
+
+static class Tokenizer {
+final String expression;
+
+int idx;
+
+

[GitHub] [maven] elharo commented on a diff in pull request #1208: [MNG-7820] Remove dependency on plexus-utils

2023-09-12 Thread via GitHub


elharo commented on code in PR #1208:
URL: https://github.com/apache/maven/pull/1208#discussion_r1322972137


##
maven-core/src/main/java/org/apache/maven/toolchain/java/JavaToolchainFactory.java:
##
@@ -86,9 +86,9 @@ public ToolchainPrivate createToolchain(ToolchainModel model) 
throws Misconfigur
 throw new MisconfiguredToolchainException(
 "Java toolchain without the " + 
JavaToolchainImpl.KEY_JAVAHOME + " configuration element.");
 }
-File normal = new File(FileUtils.normalize(javahome.getValue()));
+File normal = Paths.get(javahome.getValue()).normalize().toFile();

Review Comment:
   No need to convert to a File; just use Files.exists(path) below



##
maven-core/src/main/java/org/apache/maven/utils/introspection/ReflectionValueExtractor.java:
##
@@ -0,0 +1,325 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.maven.utils.introspection;
+
+import java.lang.ref.WeakReference;
+import java.lang.reflect.Array;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.List;
+import java.util.Map;
+import java.util.WeakHashMap;
+
+/**
+ * 
+ * Using simple dotted expressions to extract the values from an Object 
instance, For example we might want to extract a

Review Comment:
   run on sentence



##
maven-core/src/main/java/org/apache/maven/utils/introspection/ReflectionValueExtractor.java:
##
@@ -0,0 +1,325 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.maven.utils.introspection;
+
+import java.lang.ref.WeakReference;
+import java.lang.reflect.Array;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.List;
+import java.util.Map;
+import java.util.WeakHashMap;
+
+/**
+ * 
+ * Using simple dotted expressions to extract the values from an Object 
instance, For example we might want to extract a
+ * value like: project.build.sourceDirectory
+ * 
+ * 
+ * The implementation supports indexed, nested and mapped properties similar 
to the JSP way.
+ * 
+ *
+ * @author mailto:ja...@maven.org;>Jason van Zyl 
+ * @author mailto:vincent.sive...@gmail.com;>Vincent Siveton
+ *
+ * @see http://struts.apache.org/1.x/struts-taglib/indexedprops.html;>http://struts.apache.org/1.x/struts-taglib/indexedprops.html
+ */
+public class ReflectionValueExtractor {
+private static final Class[] CLASS_ARGS = new Class[0];
+
+private static final Object[] OBJECT_ARGS = new Object[0];
+
+/**
+ * Use a WeakHashMap here, so the keys (Class objects) can be garbage 
collected. This approach prevents permgen
+ * space overflows due to retention of discarded classloaders.
+ */
+private static final Map, WeakReference> CLASS_MAPS = 
new WeakHashMap<>();
+
+static final int EOF = -1;
+
+static final char PROPERTY_START = '.';
+
+static final char INDEXED_START = '[';
+
+static final char INDEXED_END = ']';
+
+static final char MAPPED_START = '(';
+
+static final char MAPPED_END = ')';
+
+static class Tokenizer {
+final String expression;
+
+int idx;
+
+Tokenizer(String expression) {
+this.expression = expression;
+}
+
+public int peekChar() {
+return idx < expression.length() ? expression.charAt(idx) : EOF;
+}
+
+public int 

[jira] [Commented] (MNG-7864) Fix the S390x to use IT branches

2023-09-12 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/MNG-7864?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17764156#comment-17764156
 ] 

ASF GitHub Bot commented on MNG-7864:
-

vivkong commented on code in PR #1239:
URL: https://github.com/apache/maven/pull/1239#discussion_r1322968946


##
Jenkinsfile.s390x.its:
##
@@ -0,0 +1,58 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+pipeline {
+  agent { node { 's390x' } }
+  options {
+durabilityHint('PERFORMANCE_OPTIMIZED')
+buildDiscarder(logRotator(numToKeepStr: '20', artifactNumToKeepStr: '5'))
+timeout(time: 180, unit: 'MINUTES')
+  }
+  parameters {
+string( defaultValue: 'master', description: 'Core Its branch (default 
master)',
+name: 'ITS_BRANCH' )

Review Comment:
   Thank you for your review.  I used the existing 
[Jenkinsfile.its](https://github.com/apache/maven/blob/master/Jenkinsfile.its#L28)
 file as a reference and assumed the parameter is set when the Jenkins build is 
kicked off (as I cannot access the Jenkins configuration).  I don't expect 
s390x builds to be run with Github actions as there's no s390x support for 
Github actions at this moment.  How does the Jenkins build get triggered with 
each PR?  I cannot find information on this and would appreciate any pointers.  
Thanks.





> Fix the S390x to use IT branches
> 
>
> Key: MNG-7864
> URL: https://issues.apache.org/jira/browse/MNG-7864
> Project: Maven
>  Issue Type: Bug
>Reporter: Guillaume Nodet
>Priority: Major
>
> When testing a PR, the maven-integration-testing branch with the same name 
> should be used instead of master if it exists.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[GitHub] [maven] vivkong commented on a diff in pull request #1239: [MNG-7864] Fix the S390x to use IT branches

2023-09-12 Thread via GitHub


vivkong commented on code in PR #1239:
URL: https://github.com/apache/maven/pull/1239#discussion_r1322968946


##
Jenkinsfile.s390x.its:
##
@@ -0,0 +1,58 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+pipeline {
+  agent { node { 's390x' } }
+  options {
+durabilityHint('PERFORMANCE_OPTIMIZED')
+buildDiscarder(logRotator(numToKeepStr: '20', artifactNumToKeepStr: '5'))
+timeout(time: 180, unit: 'MINUTES')
+  }
+  parameters {
+string( defaultValue: 'master', description: 'Core Its branch (default 
master)',
+name: 'ITS_BRANCH' )

Review Comment:
   Thank you for your review.  I used the existing 
[Jenkinsfile.its](https://github.com/apache/maven/blob/master/Jenkinsfile.its#L28)
 file as a reference and assumed the parameter is set when the Jenkins build is 
kicked off (as I cannot access the Jenkins configuration).  I don't expect 
s390x builds to be run with Github actions as there's no s390x support for 
Github actions at this moment.  How does the Jenkins build get triggered with 
each PR?  I cannot find information on this and would appreciate any pointers.  
Thanks.



-- 
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-unsubscr...@maven.apache.org

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



[jira] [Created] (MSHARED-1302) commons-io to 2.13.0

2023-09-12 Thread Elliotte Rusty Harold (Jira)
Elliotte Rusty Harold created MSHARED-1302:
--

 Summary: commons-io to 2.13.0
 Key: MSHARED-1302
 URL: https://issues.apache.org/jira/browse/MSHARED-1302
 Project: Maven Shared Components
  Issue Type: Dependency upgrade
Reporter: Elliotte Rusty Harold
 Fix For: maven-common-artifact-filters-next-release


or whatever's current when someone gets to this



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (MSHARED-1301) Upgrade Parent to 39 and cleanup

2023-09-12 Thread Elliotte Rusty Harold (Jira)
Elliotte Rusty Harold created MSHARED-1301:
--

 Summary: Upgrade Parent to 39 and cleanup
 Key: MSHARED-1301
 URL: https://issues.apache.org/jira/browse/MSHARED-1301
 Project: Maven Shared Components
  Issue Type: Dependency upgrade
  Components: maven-common-artifact-filters
Reporter: Elliotte Rusty Harold
 Fix For: maven-common-artifact-filters-next-release


will require a spotless run



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Closed] (MSHARED-1300) Order of dependencies is not always retained when filtering

2023-09-12 Thread Elliotte Rusty Harold (Jira)


 [ 
https://issues.apache.org/jira/browse/MSHARED-1300?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Elliotte Rusty Harold closed MSHARED-1300.
--

> Order of dependencies is not always retained when filtering
> ---
>
> Key: MSHARED-1300
> URL: https://issues.apache.org/jira/browse/MSHARED-1300
> Project: Maven Shared Components
>  Issue Type: Bug
>  Components: maven-common-artifact-filters
>Reporter: Kamil Jarosz
>Priority: Major
> Fix For: maven-common-artifact-filters-next-release
>
>
> {{AbstractArtifactFeatureFilter}} does not retain the order of dependencies 
> when filtering using multiple includes. The dependencies will be ordered 
> first by their respective includes.
> For instance when filtering the following set of dependencies using 
> {{org.apache.maven.shared.artifact.filter.collection.TypeFilter}}
> {code:java}
> com.example:dependency-a:jar:1.0
> com.example:dependency-b:war:1.0
> com.example:dependency-c:zip:1.0
> {code}
> with includes {{zip,jar}} and excludes {{{}war{}}}, I will get the following:
> {code:java}
> com.example:dependency-c:zip:1.0
> com.example:dependency-a:jar:1.0
> {code}
> where dependencies are ordered by their type according to the the includes. I 
> would expect that the filter retains the original order of dependencies, 
> irrespective of the order of includes, i.e.
> {code:java}
> com.example:dependency-a:jar:1.0
> com.example:dependency-c:zip:1.0
> {code}
> This is caused by an invalid order of loops in 
> {{{}org.apache.maven.shared.artifact.filter.collection.AbstractArtifactFeatureFilter#filterIncludes{}}},
>  where includes are traversed first instead of artifacts.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (MSHARED-1300) Order of dependencies is not always retained when filtering

2023-09-12 Thread Elliotte Rusty Harold (Jira)


 [ 
https://issues.apache.org/jira/browse/MSHARED-1300?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Elliotte Rusty Harold updated MSHARED-1300:
---
Component/s: maven-common-artifact-filters

> Order of dependencies is not always retained when filtering
> ---
>
> Key: MSHARED-1300
> URL: https://issues.apache.org/jira/browse/MSHARED-1300
> Project: Maven Shared Components
>  Issue Type: Bug
>  Components: maven-common-artifact-filters
>Reporter: Kamil Jarosz
>Priority: Major
>
> {{AbstractArtifactFeatureFilter}} does not retain the order of dependencies 
> when filtering using multiple includes. The dependencies will be ordered 
> first by their respective includes.
> For instance when filtering the following set of dependencies using 
> {{org.apache.maven.shared.artifact.filter.collection.TypeFilter}}
> {code:java}
> com.example:dependency-a:jar:1.0
> com.example:dependency-b:war:1.0
> com.example:dependency-c:zip:1.0
> {code}
> with includes {{zip,jar}} and excludes {{{}war{}}}, I will get the following:
> {code:java}
> com.example:dependency-c:zip:1.0
> com.example:dependency-a:jar:1.0
> {code}
> where dependencies are ordered by their type according to the the includes. I 
> would expect that the filter retains the original order of dependencies, 
> irrespective of the order of includes, i.e.
> {code:java}
> com.example:dependency-a:jar:1.0
> com.example:dependency-c:zip:1.0
> {code}
> This is caused by an invalid order of loops in 
> {{{}org.apache.maven.shared.artifact.filter.collection.AbstractArtifactFeatureFilter#filterIncludes{}}},
>  where includes are traversed first instead of artifacts.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (MSHARED-1300) Order of dependencies is not always retained when filtering

2023-09-12 Thread Elliotte Rusty Harold (Jira)


 [ 
https://issues.apache.org/jira/browse/MSHARED-1300?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Elliotte Rusty Harold updated MSHARED-1300:
---
Fix Version/s: maven-common-artifact-filters-next-release

> Order of dependencies is not always retained when filtering
> ---
>
> Key: MSHARED-1300
> URL: https://issues.apache.org/jira/browse/MSHARED-1300
> Project: Maven Shared Components
>  Issue Type: Bug
>  Components: maven-common-artifact-filters
>Reporter: Kamil Jarosz
>Priority: Major
> Fix For: maven-common-artifact-filters-next-release
>
>
> {{AbstractArtifactFeatureFilter}} does not retain the order of dependencies 
> when filtering using multiple includes. The dependencies will be ordered 
> first by their respective includes.
> For instance when filtering the following set of dependencies using 
> {{org.apache.maven.shared.artifact.filter.collection.TypeFilter}}
> {code:java}
> com.example:dependency-a:jar:1.0
> com.example:dependency-b:war:1.0
> com.example:dependency-c:zip:1.0
> {code}
> with includes {{zip,jar}} and excludes {{{}war{}}}, I will get the following:
> {code:java}
> com.example:dependency-c:zip:1.0
> com.example:dependency-a:jar:1.0
> {code}
> where dependencies are ordered by their type according to the the includes. I 
> would expect that the filter retains the original order of dependencies, 
> irrespective of the order of includes, i.e.
> {code:java}
> com.example:dependency-a:jar:1.0
> com.example:dependency-c:zip:1.0
> {code}
> This is caused by an invalid order of loops in 
> {{{}org.apache.maven.shared.artifact.filter.collection.AbstractArtifactFeatureFilter#filterIncludes{}}},
>  where includes are traversed first instead of artifacts.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Resolved] (MSHARED-1300) Order of dependencies is not always retained when filtering

2023-09-12 Thread Elliotte Rusty Harold (Jira)


 [ 
https://issues.apache.org/jira/browse/MSHARED-1300?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Elliotte Rusty Harold resolved MSHARED-1300.

Resolution: Fixed

> Order of dependencies is not always retained when filtering
> ---
>
> Key: MSHARED-1300
> URL: https://issues.apache.org/jira/browse/MSHARED-1300
> Project: Maven Shared Components
>  Issue Type: Bug
>  Components: maven-common-artifact-filters
>Reporter: Kamil Jarosz
>Priority: Major
> Fix For: maven-common-artifact-filters-next-release
>
>
> {{AbstractArtifactFeatureFilter}} does not retain the order of dependencies 
> when filtering using multiple includes. The dependencies will be ordered 
> first by their respective includes.
> For instance when filtering the following set of dependencies using 
> {{org.apache.maven.shared.artifact.filter.collection.TypeFilter}}
> {code:java}
> com.example:dependency-a:jar:1.0
> com.example:dependency-b:war:1.0
> com.example:dependency-c:zip:1.0
> {code}
> with includes {{zip,jar}} and excludes {{{}war{}}}, I will get the following:
> {code:java}
> com.example:dependency-c:zip:1.0
> com.example:dependency-a:jar:1.0
> {code}
> where dependencies are ordered by their type according to the the includes. I 
> would expect that the filter retains the original order of dependencies, 
> irrespective of the order of includes, i.e.
> {code:java}
> com.example:dependency-a:jar:1.0
> com.example:dependency-c:zip:1.0
> {code}
> This is caused by an invalid order of loops in 
> {{{}org.apache.maven.shared.artifact.filter.collection.AbstractArtifactFeatureFilter#filterIncludes{}}},
>  where includes are traversed first instead of artifacts.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (MSHARED-1300) Order of dependencies is not always retained when filtering

2023-09-12 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/MSHARED-1300?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17764145#comment-17764145
 ] 

ASF GitHub Bot commented on MSHARED-1300:
-

elharo merged PR #33:
URL: https://github.com/apache/maven-common-artifact-filters/pull/33




> Order of dependencies is not always retained when filtering
> ---
>
> Key: MSHARED-1300
> URL: https://issues.apache.org/jira/browse/MSHARED-1300
> Project: Maven Shared Components
>  Issue Type: Bug
>Reporter: Kamil Jarosz
>Priority: Major
>
> {{AbstractArtifactFeatureFilter}} does not retain the order of dependencies 
> when filtering using multiple includes. The dependencies will be ordered 
> first by their respective includes.
> For instance when filtering the following set of dependencies using 
> {{org.apache.maven.shared.artifact.filter.collection.TypeFilter}}
> {code:java}
> com.example:dependency-a:jar:1.0
> com.example:dependency-b:war:1.0
> com.example:dependency-c:zip:1.0
> {code}
> with includes {{zip,jar}} and excludes {{{}war{}}}, I will get the following:
> {code:java}
> com.example:dependency-c:zip:1.0
> com.example:dependency-a:jar:1.0
> {code}
> where dependencies are ordered by their type according to the the includes. I 
> would expect that the filter retains the original order of dependencies, 
> irrespective of the order of includes, i.e.
> {code:java}
> com.example:dependency-a:jar:1.0
> com.example:dependency-c:zip:1.0
> {code}
> This is caused by an invalid order of loops in 
> {{{}org.apache.maven.shared.artifact.filter.collection.AbstractArtifactFeatureFilter#filterIncludes{}}},
>  where includes are traversed first instead of artifacts.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[GitHub] [maven-common-artifact-filters] elharo merged pull request #33: [MSHARED-1300] Order of dependencies is not always retained when filtering

2023-09-12 Thread via GitHub


elharo merged PR #33:
URL: https://github.com/apache/maven-common-artifact-filters/pull/33


-- 
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-unsubscr...@maven.apache.org

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



[jira] [Updated] (MSHARED-1300) Order of dependencies is not always retained when filtering

2023-09-12 Thread Kamil Jarosz (Jira)


 [ 
https://issues.apache.org/jira/browse/MSHARED-1300?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Kamil Jarosz updated MSHARED-1300:
--
Description: 
{{AbstractArtifactFeatureFilter}} does not retain the order of dependencies 
when filtering using multiple includes. The dependencies will be ordered first 
by their respective includes.

For instance when filtering the following set of dependencies using 
{{org.apache.maven.shared.artifact.filter.collection.TypeFilter}}
{code:java}
com.example:dependency-a:jar:1.0
com.example:dependency-b:war:1.0
com.example:dependency-c:zip:1.0
{code}
with includes {{zip,jar}} and excludes {{{}war{}}}, I will get the following:
{code:java}
com.example:dependency-c:zip:1.0
com.example:dependency-a:jar:1.0
{code}
where dependencies are ordered by their type according to the the includes. I 
would expect that the filter retains the original order of dependencies, 
irrespective of the order of includes, i.e.
{code:java}
com.example:dependency-a:jar:1.0
com.example:dependency-c:zip:1.0
{code}
This is caused by an invalid order of loops in 
{{{}org.apache.maven.shared.artifact.filter.collection.AbstractArtifactFeatureFilter#filterIncludes{}}},
 where includes are traversed first instead of artifacts.

  was:
{{AbstractArtifactFeatureFilter}} does not retain order of dependencies when 
filtering using multiple includes. The dependencies will be ordered first by 
their respective includes.

For instance when filtering the following set of dependencies using 
{{org.apache.maven.shared.artifact.filter.collection.TypeFilter}}
{code:java}
com.example:dependency-a:jar:1.0
com.example:dependency-b:war:1.0
com.example:dependency-c:zip:1.0
{code}
with includes {{zip,jar}} and excludes {{{}war{}}}, I will get the following:
{code:java}
com.example:dependency-c:zip:1.0
com.example:dependency-a:jar:1.0
{code}
Where dependencies are ordered by their type according to the the includes. I 
would expect that the filter retains the original order of dependencies, 
irrespective of the order of includes, i.e.
{code:java}
com.example:dependency-a:jar:1.0
com.example:dependency-c:zip:1.0
{code}

This is caused by an invalid order of loops in 
{{{}org.apache.maven.shared.artifact.filter.collection.AbstractArtifactFeatureFilter#filterIncludes{}}},
 where includes are traversed first instead of artifacts.


> Order of dependencies is not always retained when filtering
> ---
>
> Key: MSHARED-1300
> URL: https://issues.apache.org/jira/browse/MSHARED-1300
> Project: Maven Shared Components
>  Issue Type: Bug
>Reporter: Kamil Jarosz
>Priority: Major
>
> {{AbstractArtifactFeatureFilter}} does not retain the order of dependencies 
> when filtering using multiple includes. The dependencies will be ordered 
> first by their respective includes.
> For instance when filtering the following set of dependencies using 
> {{org.apache.maven.shared.artifact.filter.collection.TypeFilter}}
> {code:java}
> com.example:dependency-a:jar:1.0
> com.example:dependency-b:war:1.0
> com.example:dependency-c:zip:1.0
> {code}
> with includes {{zip,jar}} and excludes {{{}war{}}}, I will get the following:
> {code:java}
> com.example:dependency-c:zip:1.0
> com.example:dependency-a:jar:1.0
> {code}
> where dependencies are ordered by their type according to the the includes. I 
> would expect that the filter retains the original order of dependencies, 
> irrespective of the order of includes, i.e.
> {code:java}
> com.example:dependency-a:jar:1.0
> com.example:dependency-c:zip:1.0
> {code}
> This is caused by an invalid order of loops in 
> {{{}org.apache.maven.shared.artifact.filter.collection.AbstractArtifactFeatureFilter#filterIncludes{}}},
>  where includes are traversed first instead of artifacts.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (MSHARED-1300) Order of dependencies is not always retained when filtering

2023-09-12 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/MSHARED-1300?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17764103#comment-17764103
 ] 

ASF GitHub Bot commented on MSHARED-1300:
-

kjarosh opened a new pull request, #33:
URL: https://github.com/apache/maven-common-artifact-filters/pull/33

   This PR fixes the bug described in 
https://issues.apache.org/jira/browse/MSHARED-1300




> Order of dependencies is not always retained when filtering
> ---
>
> Key: MSHARED-1300
> URL: https://issues.apache.org/jira/browse/MSHARED-1300
> Project: Maven Shared Components
>  Issue Type: Bug
>Reporter: Kamil Jarosz
>Priority: Major
>
> {{AbstractArtifactFeatureFilter}} does not retain order of dependencies when 
> filtering using multiple includes. The dependencies will be ordered first by 
> their respective includes.
> For instance when filtering the following set of dependencies using 
> {{org.apache.maven.shared.artifact.filter.collection.TypeFilter}}
> {code:java}
> com.example:dependency-a:jar:1.0
> com.example:dependency-b:war:1.0
> com.example:dependency-c:zip:1.0
> {code}
> with includes {{zip,jar}} and excludes {{{}war{}}}, I will get the following:
> {code:java}
> com.example:dependency-c:zip:1.0
> com.example:dependency-a:jar:1.0
> {code}
> Where dependencies are ordered by their type according to the the includes. I 
> would expect that the filter retains the original order of dependencies, 
> irrespective of the order of includes, i.e.
> {code:java}
> com.example:dependency-a:jar:1.0
> com.example:dependency-c:zip:1.0
> {code}
> This is caused by an invalid order of loops in 
> {{{}org.apache.maven.shared.artifact.filter.collection.AbstractArtifactFeatureFilter#filterIncludes{}}},
>  where includes are traversed first instead of artifacts.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (MSHARED-1300) Order of dependencies is not always retained when filtering

2023-09-12 Thread Kamil Jarosz (Jira)
Kamil Jarosz created MSHARED-1300:
-

 Summary: Order of dependencies is not always retained when 
filtering
 Key: MSHARED-1300
 URL: https://issues.apache.org/jira/browse/MSHARED-1300
 Project: Maven Shared Components
  Issue Type: Bug
Reporter: Kamil Jarosz


{{AbstractArtifactFeatureFilter}} does not retain order of dependencies when 
filtering using multiple includes. The dependencies will be ordered first by 
their respective includes.

For instance when filtering the following set of dependencies using 
{{org.apache.maven.shared.artifact.filter.collection.TypeFilter}}
{code:java}
com.example:dependency-a:jar:1.0
com.example:dependency-b:war:1.0
com.example:dependency-c:zip:1.0
{code}
with includes {{zip,jar}} and excludes {{{}war{}}}, I will get the following:
{code:java}
com.example:dependency-c:zip:1.0
com.example:dependency-a:jar:1.0
{code}
Where dependencies are ordered by their type according to the the includes. I 
would expect that the filter retains the original order of dependencies, 
irrespective of the order of includes, i.e.
{code:java}
com.example:dependency-a:jar:1.0
com.example:dependency-c:zip:1.0
{code}

This is caused by an invalid order of loops in 
{{{}org.apache.maven.shared.artifact.filter.collection.AbstractArtifactFeatureFilter#filterIncludes{}}},
 where includes are traversed first instead of artifacts.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)