[jira] [Commented] (MRESOLVER-307) Support listing of workspace artifacts
[ https://issues.apache.org/jira/browse/MRESOLVER-307?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17678990#comment-17678990 ] ASF GitHub Bot commented on MRESOLVER-307: -- laeubi commented on PR #230: URL: https://github.com/apache/maven-resolver/pull/230#issuecomment-1397943417 As @cstamas has explained, this might not be useful for resolver if it never has a need to call the API, so lets close this, probabbly some time later but it won't be hard to recover or re-implement it. > Support listing of workspace artifacts > -- > > Key: MRESOLVER-307 > URL: https://issues.apache.org/jira/browse/MRESOLVER-307 > Project: Maven Resolver > Issue Type: Improvement >Reporter: Christoph Läubrich >Priority: Major > > Currently the WorkspaceReader has a way to list versions or resolve the file > for an artifact, but there is no way of really get a list of workspace > artifacts itself. > The javadoc states: > {quote}Manages a repository backed by the IDE workspace, a build session or a > similar ad-hoc collection of artifacts.{quote} > so the goal is to have a way getting hold of the "collection of artifacts" > this Workspacereader manages. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (MRESOLVER-307) Support listing of workspace artifacts
[ https://issues.apache.org/jira/browse/MRESOLVER-307?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17678992#comment-17678992 ] Christoph Läubrich commented on MRESOLVER-307: -- Can someone with more JIRA power than me please close this? > Support listing of workspace artifacts > -- > > Key: MRESOLVER-307 > URL: https://issues.apache.org/jira/browse/MRESOLVER-307 > Project: Maven Resolver > Issue Type: Improvement >Reporter: Christoph Läubrich >Priority: Major > > Currently the WorkspaceReader has a way to list versions or resolve the file > for an artifact, but there is no way of really get a list of workspace > artifacts itself. > The javadoc states: > {quote}Manages a repository backed by the IDE workspace, a build session or a > similar ad-hoc collection of artifacts.{quote} > so the goal is to have a way getting hold of the "collection of artifacts" > this Workspacereader manages. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (MRESOLVER-307) Support listing of workspace artifacts
[ https://issues.apache.org/jira/browse/MRESOLVER-307?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17678991#comment-17678991 ] ASF GitHub Bot commented on MRESOLVER-307: -- laeubi closed pull request #230: MRESOLVER-307 - Support listing of workspace artifacts URL: https://github.com/apache/maven-resolver/pull/230 > Support listing of workspace artifacts > -- > > Key: MRESOLVER-307 > URL: https://issues.apache.org/jira/browse/MRESOLVER-307 > Project: Maven Resolver > Issue Type: Improvement >Reporter: Christoph Läubrich >Priority: Major > > Currently the WorkspaceReader has a way to list versions or resolve the file > for an artifact, but there is no way of really get a list of workspace > artifacts itself. > The javadoc states: > {quote}Manages a repository backed by the IDE workspace, a build session or a > similar ad-hoc collection of artifacts.{quote} > so the goal is to have a way getting hold of the "collection of artifacts" > this Workspacereader manages. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (MRESOLVER-307) Support listing of workspace artifacts
[ https://issues.apache.org/jira/browse/MRESOLVER-307?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17678788#comment-17678788 ] ASF GitHub Bot commented on MRESOLVER-307: -- gnodet commented on code in PR #230: URL: https://github.com/apache/maven-resolver/pull/230#discussion_r1081479002 ## maven-resolver-api/src/main/java/org/eclipse/aether/repository/WorkspaceReader.java: ## @@ -21,13 +21,18 @@ import java.io.File; import java.util.List; +import java.util.stream.Stream; import org.eclipse.aether.artifact.Artifact; /** * Manages a repository backed by the IDE workspace, a build session or a similar ad-hoc collection of artifacts. + * Note: Implementors are strongly advised to inherit from {@link AbstractWorkspaceReader} instead of directly + * implementing this interface. * * @see org.eclipse.aether.RepositorySystemSession#getWorkspaceReader() + * @noimplement This interface is not intended to be implemented by clients. + * @noextend This interface is not intended to be extended by clients. Review Comment: I _think_ `client` is to be understood in the context of the resolver, i.e. any piece of software using the resolver. The main client is maven, and it's the one implementing this interface. This interface is pure SPI and _should be provided_ by the client. > Support listing of workspace artifacts > -- > > Key: MRESOLVER-307 > URL: https://issues.apache.org/jira/browse/MRESOLVER-307 > Project: Maven Resolver > Issue Type: Improvement >Reporter: Christoph Läubrich >Priority: Major > > Currently the WorkspaceReader has a way to list versions or resolve the file > for an artifact, but there is no way of really get a list of workspace > artifacts itself. > The javadoc states: > {quote}Manages a repository backed by the IDE workspace, a build session or a > similar ad-hoc collection of artifacts.{quote} > so the goal is to have a way getting hold of the "collection of artifacts" > this Workspacereader manages. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (MRESOLVER-307) Support listing of workspace artifacts
[ https://issues.apache.org/jira/browse/MRESOLVER-307?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17678772#comment-17678772 ] ASF GitHub Bot commented on MRESOLVER-307: -- laeubi commented on code in PR #230: URL: https://github.com/apache/maven-resolver/pull/230#discussion_r1081454851 ## maven-resolver-api/src/main/java/org/eclipse/aether/repository/WorkspaceReader.java: ## @@ -21,13 +21,18 @@ import java.io.File; import java.util.List; +import java.util.stream.Stream; import org.eclipse.aether.artifact.Artifact; /** * Manages a repository backed by the IDE workspace, a build session or a similar ad-hoc collection of artifacts. + * Note: Implementors are strongly advised to inherit from {@link AbstractWorkspaceReader} instead of directly + * implementing this interface. * * @see org.eclipse.aether.RepositorySystemSession#getWorkspaceReader() + * @noimplement This interface is not intended to be implemented by clients. + * @noextend This interface is not intended to be extended by clients. Review Comment: See https://github.com/apache/maven-resolver/pull/230#issuecomment-1345642240 > Ideally, I'd make this in 2.0 of resolver, and would introduce "safety measures" like for the rest: iface directly should not be implemented, but provide a "support class"? And here https://github.com/apache/maven-resolver/pull/230#issuecomment-1345989051 You reference a class that uses ``` @noimplement This interface is not intended to be implemented by clients. @noextend This interface is not intended to be extended by clients. ``` so maybe I misunderstood? > Support listing of workspace artifacts > -- > > Key: MRESOLVER-307 > URL: https://issues.apache.org/jira/browse/MRESOLVER-307 > Project: Maven Resolver > Issue Type: Improvement >Reporter: Christoph Läubrich >Priority: Major > > Currently the WorkspaceReader has a way to list versions or resolve the file > for an artifact, but there is no way of really get a list of workspace > artifacts itself. > The javadoc states: > {quote}Manages a repository backed by the IDE workspace, a build session or a > similar ad-hoc collection of artifacts.{quote} > so the goal is to have a way getting hold of the "collection of artifacts" > this Workspacereader manages. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (MRESOLVER-307) Support listing of workspace artifacts
[ https://issues.apache.org/jira/browse/MRESOLVER-307?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17678749#comment-17678749 ] ASF GitHub Bot commented on MRESOLVER-307: -- cstamas commented on code in PR #230: URL: https://github.com/apache/maven-resolver/pull/230#discussion_r1081401160 ## maven-resolver-api/src/main/java/org/eclipse/aether/repository/WorkspaceReader.java: ## @@ -21,13 +21,18 @@ import java.io.File; import java.util.List; +import java.util.stream.Stream; import org.eclipse.aether.artifact.Artifact; /** * Manages a repository backed by the IDE workspace, a build session or a similar ad-hoc collection of artifacts. + * Note: Implementors are strongly advised to inherit from {@link AbstractWorkspaceReader} instead of directly + * implementing this interface. * * @see org.eclipse.aether.RepositorySystemSession#getWorkspaceReader() + * @noimplement This interface is not intended to be implemented by clients. + * @noextend This interface is not intended to be extended by clients. Review Comment: Um, where did I do that? If I did, it was a mistake... > Support listing of workspace artifacts > -- > > Key: MRESOLVER-307 > URL: https://issues.apache.org/jira/browse/MRESOLVER-307 > Project: Maven Resolver > Issue Type: Improvement >Reporter: Christoph Läubrich >Priority: Major > > Currently the WorkspaceReader has a way to list versions or resolve the file > for an artifact, but there is no way of really get a list of workspace > artifacts itself. > The javadoc states: > {quote}Manages a repository backed by the IDE workspace, a build session or a > similar ad-hoc collection of artifacts.{quote} > so the goal is to have a way getting hold of the "collection of artifacts" > this Workspacereader manages. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (MRESOLVER-307) Support listing of workspace artifacts
[ https://issues.apache.org/jira/browse/MRESOLVER-307?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17678748#comment-17678748 ] ASF GitHub Bot commented on MRESOLVER-307: -- laeubi commented on code in PR #230: URL: https://github.com/apache/maven-resolver/pull/230#discussion_r1081395840 ## maven-resolver-api/src/main/java/org/eclipse/aether/repository/WorkspaceReader.java: ## @@ -21,13 +21,18 @@ import java.io.File; import java.util.List; +import java.util.stream.Stream; import org.eclipse.aether.artifact.Artifact; /** * Manages a repository backed by the IDE workspace, a build session or a similar ad-hoc collection of artifacts. + * Note: Implementors are strongly advised to inherit from {@link AbstractWorkspaceReader} instead of directly + * implementing this interface. * * @see org.eclipse.aether.RepositorySystemSession#getWorkspaceReader() + * @noimplement This interface is not intended to be implemented by clients. + * @noextend This interface is not intended to be extended by clients. Review Comment: This was not my idea but @cstamas asked for this :-) > Support listing of workspace artifacts > -- > > Key: MRESOLVER-307 > URL: https://issues.apache.org/jira/browse/MRESOLVER-307 > Project: Maven Resolver > Issue Type: Improvement >Reporter: Christoph Läubrich >Priority: Major > > Currently the WorkspaceReader has a way to list versions or resolve the file > for an artifact, but there is no way of really get a list of workspace > artifacts itself. > The javadoc states: > {quote}Manages a repository backed by the IDE workspace, a build session or a > similar ad-hoc collection of artifacts.{quote} > so the goal is to have a way getting hold of the "collection of artifacts" > this Workspacereader manages. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (MRESOLVER-307) Support listing of workspace artifacts
[ https://issues.apache.org/jira/browse/MRESOLVER-307?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17678735#comment-17678735 ] ASF GitHub Bot commented on MRESOLVER-307: -- gnodet commented on code in PR #230: URL: https://github.com/apache/maven-resolver/pull/230#discussion_r1081330592 ## maven-resolver-api/src/main/java/org/eclipse/aether/repository/WorkspaceReader.java: ## @@ -55,4 +60,11 @@ */ List findVersions( Artifact artifact ); +/** + * List all available artifacts this workspace repository manages. + * + * @return a stream of artifacts in no particular order + */ +Stream listArtifacts(); Review Comment: > Eclipse-plugin never calls that API, >resolver does Where ? That's exactly my point. I can't see any usage of this new method. If really needed, it should be provided by maven, not the resolver it seems. >and possibly maven-plugins call it (that run in the IDE but are not developed by the IDE maintainers). > > The rationale is to allow for a `maven-plugin` to discover all projects (e.g. in a reactor build or IDE), currently one can only call `MavenSession.getProjects()` / `MavenSession.getAllProjects()` but these are usually populated for different purpose (e.g. `-am` / `-amd`) and require MavenProjects to be setup (so no way to find out "artifacts" only). Yes, and the projects listed has changed in maven 4.x, and I'm working on another change. So if this method is to be used for anything else than a hint, it should be more clear about the artifacts returned or how the return stream can be used imho. > > e.g. in Eclipse PDE there is a "TargetPlatform", that contains all available artifacts a project can resolve and projects then can use these to resolve their dependencies, also this is something where it could be used and Tycho currently exposes this with a special component (that obviously only plugins can use that "know" Tycho/PDE). > > So this is more "maven" generic, just think about my build fails with > > > can't find my.atifact in any remote-repository > > I can write a plugin that scans all artifacts using fuzzy-search and gives a message: > > > Did you probabbly mean `my.artifact` instead of `my.atifact` Sounds good, but if the implementation simply iterates on all projects, not sure why adding it here since this has nothing to do with the resolver really. > Support listing of workspace artifacts > -- > > Key: MRESOLVER-307 > URL: https://issues.apache.org/jira/browse/MRESOLVER-307 > Project: Maven Resolver > Issue Type: Improvement >Reporter: Christoph Läubrich >Priority: Major > > Currently the WorkspaceReader has a way to list versions or resolve the file > for an artifact, but there is no way of really get a list of workspace > artifacts itself. > The javadoc states: > {quote}Manages a repository backed by the IDE workspace, a build session or a > similar ad-hoc collection of artifacts.{quote} > so the goal is to have a way getting hold of the "collection of artifacts" > this Workspacereader manages. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (MRESOLVER-307) Support listing of workspace artifacts
[ https://issues.apache.org/jira/browse/MRESOLVER-307?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17678734#comment-17678734 ] ASF GitHub Bot commented on MRESOLVER-307: -- gnodet commented on code in PR #230: URL: https://github.com/apache/maven-resolver/pull/230#discussion_r1081324959 ## maven-resolver-api/src/main/java/org/eclipse/aether/repository/WorkspaceReader.java: ## @@ -21,13 +21,18 @@ import java.io.File; import java.util.List; +import java.util.stream.Stream; import org.eclipse.aether.artifact.Artifact; /** * Manages a repository backed by the IDE workspace, a build session or a similar ad-hoc collection of artifacts. + * Note: Implementors are strongly advised to inherit from {@link AbstractWorkspaceReader} instead of directly + * implementing this interface. * * @see org.eclipse.aether.RepositorySystemSession#getWorkspaceReader() + * @noimplement This interface is not intended to be implemented by clients. + * @noextend This interface is not intended to be extended by clients. Review Comment: I think that's exactly the opposite. The resolver does not provide any concrete implementation, so one has to be provided to the resolver. > Support listing of workspace artifacts > -- > > Key: MRESOLVER-307 > URL: https://issues.apache.org/jira/browse/MRESOLVER-307 > Project: Maven Resolver > Issue Type: Improvement >Reporter: Christoph Läubrich >Priority: Major > > Currently the WorkspaceReader has a way to list versions or resolve the file > for an artifact, but there is no way of really get a list of workspace > artifacts itself. > The javadoc states: > {quote}Manages a repository backed by the IDE workspace, a build session or a > similar ad-hoc collection of artifacts.{quote} > so the goal is to have a way getting hold of the "collection of artifacts" > this Workspacereader manages. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (MRESOLVER-307) Support listing of workspace artifacts
[ https://issues.apache.org/jira/browse/MRESOLVER-307?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17678722#comment-17678722 ] ASF GitHub Bot commented on MRESOLVER-307: -- laeubi commented on code in PR #230: URL: https://github.com/apache/maven-resolver/pull/230#discussion_r1081304362 ## maven-resolver-api/src/main/java/org/eclipse/aether/repository/WorkspaceReader.java: ## @@ -55,4 +60,11 @@ */ List findVersions( Artifact artifact ); +/** + * List all available artifacts this workspace repository manages. + * + * @return a stream of artifacts in no particular order + */ +Stream listArtifacts(); Review Comment: Eclipse-plugin never calls that API, resolver does and possibly maven-plugins call it (that run in the IDE but are not developed by the IDE maintainers). The rationale is to allow for a `maven-plugin` to discover all projects (e.g. in a reactor build or IDE), currently one can only call `MavenSession.getProjects()` / `MavenSession.getAllProjects()` but these are usually populated for different purpose (e.g. `-am` / `-amd`) and require MavenProjects to be setup (so no way to find out "artifacts" only). e.g. in Eclipse PDE there is a "TargetPlatform", that contains all available artifacts a project can resolve and projects then can use these to resolve their dependencies, also this is something where it could be used and Tycho currently exposes this with a special component (that obviously only plugins can use that "know" Tycho/PDE). So this is more "maven" generic, just think about my build fails with > can't find my.atifact in any remote-repository I can write a plugin that scans all artifacts using fuzzy-search and gives a message: > Did you probabbly mean `my.artifact` instead of `my.atifact` > Support listing of workspace artifacts > -- > > Key: MRESOLVER-307 > URL: https://issues.apache.org/jira/browse/MRESOLVER-307 > Project: Maven Resolver > Issue Type: Improvement >Reporter: Christoph Läubrich >Priority: Major > > Currently the WorkspaceReader has a way to list versions or resolve the file > for an artifact, but there is no way of really get a list of workspace > artifacts itself. > The javadoc states: > {quote}Manages a repository backed by the IDE workspace, a build session or a > similar ad-hoc collection of artifacts.{quote} > so the goal is to have a way getting hold of the "collection of artifacts" > this Workspacereader manages. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (MRESOLVER-307) Support listing of workspace artifacts
[ https://issues.apache.org/jira/browse/MRESOLVER-307?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17678690#comment-17678690 ] ASF GitHub Bot commented on MRESOLVER-307: -- gnodet commented on code in PR #230: URL: https://github.com/apache/maven-resolver/pull/230#discussion_r1081249124 ## maven-resolver-api/src/main/java/org/eclipse/aether/repository/WorkspaceReader.java: ## @@ -55,4 +60,11 @@ */ List findVersions( Artifact artifact ); +/** + * List all available artifacts this workspace repository manages. + * + * @return a stream of artifacts in no particular order + */ +Stream listArtifacts(); Review Comment: > After reconsidering this change, I am -1 on it (now or 2.x), reasons: > > * I see no point of adding new methods to resolver interface that resolver itself is NOT going to use > * obviously, these methods are needed to some "integrator" of resolver, but as can be seen on example of Maven (as one of integrator), one can introduces specific reader (in maven it is MavenWorkspaceReader) and decorate it by adding specific methods to it > * also,by adding methods here we would force any other integrator to implement them even if they would not need it (as resolver itself is not using these either). @laeubi why do you need this additional method if you will the eclipse integration provides both the implementation and the caller ? I fail to understand the benefit here... > Support listing of workspace artifacts > -- > > Key: MRESOLVER-307 > URL: https://issues.apache.org/jira/browse/MRESOLVER-307 > Project: Maven Resolver > Issue Type: Improvement >Reporter: Christoph Läubrich >Priority: Major > > Currently the WorkspaceReader has a way to list versions or resolve the file > for an artifact, but there is no way of really get a list of workspace > artifacts itself. > The javadoc states: > {quote}Manages a repository backed by the IDE workspace, a build session or a > similar ad-hoc collection of artifacts.{quote} > so the goal is to have a way getting hold of the "collection of artifacts" > this Workspacereader manages. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (MRESOLVER-307) Support listing of workspace artifacts
[ https://issues.apache.org/jira/browse/MRESOLVER-307?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17678680#comment-17678680 ] ASF GitHub Bot commented on MRESOLVER-307: -- laeubi commented on code in PR #230: URL: https://github.com/apache/maven-resolver/pull/230#discussion_r1081222797 ## maven-resolver-api/src/main/java/org/eclipse/aether/repository/WorkspaceReader.java: ## @@ -55,4 +60,11 @@ */ List findVersions( Artifact artifact ); +/** + * List all available artifacts this workspace repository manages. + * + * @return a stream of artifacts in no particular order + */ +Stream listArtifacts(); Review Comment: Attached Artifacts are also returned now. > Support listing of workspace artifacts > -- > > Key: MRESOLVER-307 > URL: https://issues.apache.org/jira/browse/MRESOLVER-307 > Project: Maven Resolver > Issue Type: Improvement >Reporter: Christoph Läubrich >Priority: Major > > Currently the WorkspaceReader has a way to list versions or resolve the file > for an artifact, but there is no way of really get a list of workspace > artifacts itself. > The javadoc states: > {quote}Manages a repository backed by the IDE workspace, a build session or a > similar ad-hoc collection of artifacts.{quote} > so the goal is to have a way getting hold of the "collection of artifacts" > this Workspacereader manages. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (MRESOLVER-307) Support listing of workspace artifacts
[ https://issues.apache.org/jira/browse/MRESOLVER-307?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17678675#comment-17678675 ] ASF GitHub Bot commented on MRESOLVER-307: -- laeubi commented on code in PR #230: URL: https://github.com/apache/maven-resolver/pull/230#discussion_r1081211988 ## maven-resolver-api/src/main/java/org/eclipse/aether/repository/WorkspaceReader.java: ## @@ -55,4 +60,11 @@ */ List findVersions( Artifact artifact ); +/** + * List all available artifacts this workspace repository manages. + * + * @return a stream of artifacts in no particular order + */ +Stream listArtifacts(); Review Comment: This is an implementation detail a repository might choose what it claims to be "contained" and I would assume that each of the returned artifacts also return a File if I call `findArtifact` / `findVersion` / `findModel` so this seem consistent for me. So probably the ReactorRepository should be adjusted to use "find" as well? > Support listing of workspace artifacts > -- > > Key: MRESOLVER-307 > URL: https://issues.apache.org/jira/browse/MRESOLVER-307 > Project: Maven Resolver > Issue Type: Improvement >Reporter: Christoph Läubrich >Priority: Major > > Currently the WorkspaceReader has a way to list versions or resolve the file > for an artifact, but there is no way of really get a list of workspace > artifacts itself. > The javadoc states: > {quote}Manages a repository backed by the IDE workspace, a build session or a > similar ad-hoc collection of artifacts.{quote} > so the goal is to have a way getting hold of the "collection of artifacts" > this Workspacereader manages. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (MRESOLVER-307) Support listing of workspace artifacts
[ https://issues.apache.org/jira/browse/MRESOLVER-307?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17678674#comment-17678674 ] ASF GitHub Bot commented on MRESOLVER-307: -- laeubi commented on code in PR #230: URL: https://github.com/apache/maven-resolver/pull/230#discussion_r1081211988 ## maven-resolver-api/src/main/java/org/eclipse/aether/repository/WorkspaceReader.java: ## @@ -55,4 +60,11 @@ */ List findVersions( Artifact artifact ); +/** + * List all available artifacts this workspace repository manages. + * + * @return a stream of artifacts in no particular order + */ +Stream listArtifacts(); Review Comment: This is an implementation detail a repository might choose what it claims to be "contained" and I would assume that each of the returned artifacts also return a File if I call `findArtifact` / `findVersion` / `findModel` so this seem consistent for me. > Support listing of workspace artifacts > -- > > Key: MRESOLVER-307 > URL: https://issues.apache.org/jira/browse/MRESOLVER-307 > Project: Maven Resolver > Issue Type: Improvement >Reporter: Christoph Läubrich >Priority: Major > > Currently the WorkspaceReader has a way to list versions or resolve the file > for an artifact, but there is no way of really get a list of workspace > artifacts itself. > The javadoc states: > {quote}Manages a repository backed by the IDE workspace, a build session or a > similar ad-hoc collection of artifacts.{quote} > so the goal is to have a way getting hold of the "collection of artifacts" > this Workspacereader manages. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (MRESOLVER-307) Support listing of workspace artifacts
[ https://issues.apache.org/jira/browse/MRESOLVER-307?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17678666#comment-17678666 ] ASF GitHub Bot commented on MRESOLVER-307: -- gnodet commented on code in PR #230: URL: https://github.com/apache/maven-resolver/pull/230#discussion_r1081198571 ## maven-resolver-api/src/main/java/org/eclipse/aether/repository/WorkspaceReader.java: ## @@ -55,4 +60,11 @@ */ List findVersions( Artifact artifact ); +/** + * List all available artifacts this workspace repository manages. + * + * @return a stream of artifacts in no particular order + */ +Stream listArtifacts(); Review Comment: Given the implementation in https://github.com/apache/maven/pull/913/files#diff-f9e3f0f97d42ff3256cbce238fa8de9cc37a14cfb961d408fc0f4d02f5dd1577R128-R133, I think it should be clearly documented that the returned stream contains the primary artifacts only, i.e. one artifact per maven module. Attached artifacts are not returned. > Support listing of workspace artifacts > -- > > Key: MRESOLVER-307 > URL: https://issues.apache.org/jira/browse/MRESOLVER-307 > Project: Maven Resolver > Issue Type: Improvement >Reporter: Christoph Läubrich >Priority: Major > > Currently the WorkspaceReader has a way to list versions or resolve the file > for an artifact, but there is no way of really get a list of workspace > artifacts itself. > The javadoc states: > {quote}Manages a repository backed by the IDE workspace, a build session or a > similar ad-hoc collection of artifacts.{quote} > so the goal is to have a way getting hold of the "collection of artifacts" > this Workspacereader manages. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (MRESOLVER-307) Support listing of workspace artifacts
[ https://issues.apache.org/jira/browse/MRESOLVER-307?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17678535#comment-17678535 ] ASF GitHub Bot commented on MRESOLVER-307: -- cstamas commented on PR #230: URL: https://github.com/apache/maven-resolver/pull/230#issuecomment-1396567377 After reconsidering this change, I am -1 on it (now or 2.x), reasons: * I see no point of adding new methods to resolver interface that resolver itself is NOT going to use * obviously, these methods are needed to some "integrator" of resolver, but as can be seen on example of Maven (as one of integrator), one can introduces specific reader (in maven it is MavenWorkspaceReader) and decorate it by adding specific methods to it * also,by adding methods here we would force any other integrator to implement them even if they would not need it (as resolver itself is not using these either). > Support listing of workspace artifacts > -- > > Key: MRESOLVER-307 > URL: https://issues.apache.org/jira/browse/MRESOLVER-307 > Project: Maven Resolver > Issue Type: Improvement >Reporter: Christoph Läubrich >Priority: Major > > Currently the WorkspaceReader has a way to list versions or resolve the file > for an artifact, but there is no way of really get a list of workspace > artifacts itself. > The javadoc states: > {quote}Manages a repository backed by the IDE workspace, a build session or a > similar ad-hoc collection of artifacts.{quote} > so the goal is to have a way getting hold of the "collection of artifacts" > this Workspacereader manages. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (MRESOLVER-307) Support listing of workspace artifacts
[ https://issues.apache.org/jira/browse/MRESOLVER-307?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17647940#comment-17647940 ] ASF GitHub Bot commented on MRESOLVER-307: -- gnodet commented on PR #230: URL: https://github.com/apache/maven-resolver/pull/230#issuecomment-1352742772 > It is a bit japicm as well, see here [siom79/japicmp#201](https://github.com/siom79/japicmp/issues/201) > > But presence of "indirection" in form of support class allows us: > > * to move iface from source to binary only compat check (then build would not fail) > * implement any newly added methods in support class, to retain source compatibility > I bet there are cases like in Maven as well, but somewhere we have to start 😄 I don't buy the argument that using a class solves the incompatibility problem. If you add this class to the API, the exact same problem happens with the class. You still have a possible source incompatibility. I do think classes with default methods are useless, but for specific reasons (like you usually only want to implement a single method among a lot of methods, such as a listener interface). For a more common interface, where you usually want to implement all methods, there's no benefit imho. > Support listing of workspace artifacts > -- > > Key: MRESOLVER-307 > URL: https://issues.apache.org/jira/browse/MRESOLVER-307 > Project: Maven Resolver > Issue Type: Improvement >Reporter: Christoph Läubrich >Priority: Major > > Currently the WorkspaceReader has a way to list versions or resolve the file > for an artifact, but there is no way of really get a list of workspace > artifacts itself. > The javadoc states: > {quote}Manages a repository backed by the IDE workspace, a build session or a > similar ad-hoc collection of artifacts.{quote} > so the goal is to have a way getting hold of the "collection of artifacts" > this Workspacereader manages. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (MRESOLVER-307) Support listing of workspace artifacts
[ https://issues.apache.org/jira/browse/MRESOLVER-307?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17645983#comment-17645983 ] ASF GitHub Bot commented on MRESOLVER-307: -- laeubi commented on PR #230: URL: https://github.com/apache/maven-resolver/pull/230#issuecomment-1346120213 @cstamas I now adjusted the code, the only think left is that one might want to move the interface from `org.eclipse.aether.repository.WorkspaceReader` > `org.eclipse.aether.spi.repository.WorkspaceReader` but I don't know if this is sufficient. > Support listing of workspace artifacts > -- > > Key: MRESOLVER-307 > URL: https://issues.apache.org/jira/browse/MRESOLVER-307 > Project: Maven Resolver > Issue Type: Improvement >Reporter: Christoph Läubrich >Priority: Major > > Currently the WorkspaceReader has a way to list versions or resolve the file > for an artifact, but there is no way of really get a list of workspace > artifacts itself. > The javadoc states: > {quote}Manages a repository backed by the IDE workspace, a build session or a > similar ad-hoc collection of artifacts.{quote} > so the goal is to have a way getting hold of the "collection of artifacts" > this Workspacereader manages. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (MRESOLVER-307) Support listing of workspace artifacts
[ https://issues.apache.org/jira/browse/MRESOLVER-307?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17645953#comment-17645953 ] ASF GitHub Bot commented on MRESOLVER-307: -- laeubi commented on PR #230: URL: https://github.com/apache/maven-resolver/pull/230#issuecomment-1346011941 > implement any newly added methods in support class, to retain source compatibility I still don'T get why this is considdered more "source compatible" than a default interface method because both seem only source compatible?!? But anyways so I would 1. add `noimplement` / `noextend` 2. add an `AbstractWorkspaceReaderClass` (?) 3. Wait for 2.0 ... > Support listing of workspace artifacts > -- > > Key: MRESOLVER-307 > URL: https://issues.apache.org/jira/browse/MRESOLVER-307 > Project: Maven Resolver > Issue Type: Improvement >Reporter: Christoph Läubrich >Priority: Major > > Currently the WorkspaceReader has a way to list versions or resolve the file > for an artifact, but there is no way of really get a list of workspace > artifacts itself. > The javadoc states: > {quote}Manages a repository backed by the IDE workspace, a build session or a > similar ad-hoc collection of artifacts.{quote} > so the goal is to have a way getting hold of the "collection of artifacts" > this Workspacereader manages. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (MRESOLVER-307) Support listing of workspace artifacts
[ https://issues.apache.org/jira/browse/MRESOLVER-307?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17645945#comment-17645945 ] ASF GitHub Bot commented on MRESOLVER-307: -- cstamas commented on PR #230: URL: https://github.com/apache/maven-resolver/pull/230#issuecomment-1346002536 It is a bit japicm as well, see here https://github.com/siom79/japicmp/issues/201 But presence of "indirection" in form of support class allows us: * to move iface from source to binary only compat change (then build would not fail) * implement any newly added methods in support class, to retain source compatibility I bet there are cases like in Maven as well, but somewhere we have to start :smile: > Support listing of workspace artifacts > -- > > Key: MRESOLVER-307 > URL: https://issues.apache.org/jira/browse/MRESOLVER-307 > Project: Maven Resolver > Issue Type: Improvement >Reporter: Christoph Läubrich >Priority: Major > > Currently the WorkspaceReader has a way to list versions or resolve the file > for an artifact, but there is no way of really get a list of workspace > artifacts itself. > The javadoc states: > {quote}Manages a repository backed by the IDE workspace, a build session or a > similar ad-hoc collection of artifacts.{quote} > so the goal is to have a way getting hold of the "collection of artifacts" > this Workspacereader manages. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (MRESOLVER-307) Support listing of workspace artifacts
[ https://issues.apache.org/jira/browse/MRESOLVER-307?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17645941#comment-17645941 ] ASF GitHub Bot commented on MRESOLVER-307: -- laeubi commented on PR #230: URL: https://github.com/apache/maven-resolver/pull/230#issuecomment-1345995022 > allows us to introduce methods that would be otherwise breaking, and provide some default logic. I'm not really understand the difference to a default implemented interface method?!? > FORBIDS direct implementation At laest maven extends AND implements this interface, I think this will still be possible but "discouraged"? > Support listing of workspace artifacts > -- > > Key: MRESOLVER-307 > URL: https://issues.apache.org/jira/browse/MRESOLVER-307 > Project: Maven Resolver > Issue Type: Improvement >Reporter: Christoph Läubrich >Priority: Major > > Currently the WorkspaceReader has a way to list versions or resolve the file > for an artifact, but there is no way of really get a list of workspace > artifacts itself. > The javadoc states: > {quote}Manages a repository backed by the IDE workspace, a build session or a > similar ad-hoc collection of artifacts.{quote} > so the goal is to have a way getting hold of the "collection of artifacts" > this Workspacereader manages. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (MRESOLVER-307) Support listing of workspace artifacts
[ https://issues.apache.org/jira/browse/MRESOLVER-307?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17645939#comment-17645939 ] ASF GitHub Bot commented on MRESOLVER-307: -- cstamas commented on PR #230: URL: https://github.com/apache/maven-resolver/pull/230#issuecomment-1345989051 In short: japicmp fails with a reason, this is a breakage. Longer story: We have a page https://maven.apache.org/resolver/api-compatibility.html that explains how we "expect" clients to behave, and what we promise. In this case, this PR breaks our promise. This is why common (but not applied to all) approach is visible on this example: Listener interface https://github.com/apache/maven-resolver/blob/ce54f7f371eaf37657413d7b7135171aa88cba40/maven-resolver-api/src/main/java/org/eclipse/aether/transfer/TransferListener.java FORBIDS direct implementation, instead, it directs you to https://github.com/apache/maven-resolver/blob/ce54f7f371eaf37657413d7b7135171aa88cba40/maven-resolver-api/src/main/java/org/eclipse/aether/transfer/AbstractTransferListener.java support class. Now, we cannot "enforce" this in any way (so "bad" clients still can directly implement interface), but according to that page, then they are "on their own". The presence of support class in chain `iface -> support class -> impl` allows us to introduce methods that would be otherwise breaking. Problem is, WorkspaceReader is NOT introduced in that set (see japicmp config). We may change that of course > Support listing of workspace artifacts > -- > > Key: MRESOLVER-307 > URL: https://issues.apache.org/jira/browse/MRESOLVER-307 > Project: Maven Resolver > Issue Type: Improvement >Reporter: Christoph Läubrich >Priority: Major > > Currently the WorkspaceReader has a way to list versions or resolve the file > for an artifact, but there is no way of really get a list of workspace > artifacts itself. > The javadoc states: > {quote}Manages a repository backed by the IDE workspace, a build session or a > similar ad-hoc collection of artifacts.{quote} > so the goal is to have a way getting hold of the "collection of artifacts" > this Workspacereader manages. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (MRESOLVER-307) Support listing of workspace artifacts
[ https://issues.apache.org/jira/browse/MRESOLVER-307?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17645919#comment-17645919 ] ASF GitHub Bot commented on MRESOLVER-307: -- laeubi commented on PR #230: URL: https://github.com/apache/maven-resolver/pull/230#issuecomment-1345910655 > implements this class, but also Tycho, m2e Tycho/m2e is actually the reason I'd like to have such method :-) > so a LOT of breakage here... That's the question, do we really "break" anything? As it is a default implemented method, everything will compile as before and no one will really notice even though it is not 100% binary compatible. > Ideally, I'd make this in 2.0 of resolver, Is there actually any plan for 2.0 release anywhere soon or is it more "sometimes in the future"? Should I target another branch? If 2.x is the way to go I'll update this to not use a default method then, beside this do you think this can be done that way or are there any other concerns? > and would introduce "safety measures" like for the rest: iface directly should not be implemented, but provide a "support class"? What do you mean by "support class"? And how is it more safe than in interface? I think interfaces are more appropriate for this and are as safe as an (abstract) class? > Support listing of workspace artifacts > -- > > Key: MRESOLVER-307 > URL: https://issues.apache.org/jira/browse/MRESOLVER-307 > Project: Maven Resolver > Issue Type: Improvement >Reporter: Christoph Läubrich >Priority: Major > > Currently the WorkspaceReader has a way to list versions or resolve the file > for an artifact, but there is no way of really get a list of workspace > artifacts itself. > The javadoc states: > {quote}Manages a repository backed by the IDE workspace, a build session or a > similar ad-hoc collection of artifacts.{quote} > so the goal is to have a way getting hold of the "collection of artifacts" > this Workspacereader manages. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (MRESOLVER-307) Support listing of workspace artifacts
[ https://issues.apache.org/jira/browse/MRESOLVER-307?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17645846#comment-17645846 ] ASF GitHub Bot commented on MRESOLVER-307: -- cstamas commented on PR #230: URL: https://github.com/apache/maven-resolver/pull/230#issuecomment-1345642240 This is for sure incompatible change (hence the build failure), so I'd be careful here: Maven implements this class, but also Tycho, m2e etc... so a LOT of breakage here... Ideally, I'd make this in 2.0 of resolver, and would introduce "safety measures" like for the rest: iface directly should not be implemented, but provide a "support class"? > Support listing of workspace artifacts > -- > > Key: MRESOLVER-307 > URL: https://issues.apache.org/jira/browse/MRESOLVER-307 > Project: Maven Resolver > Issue Type: Improvement >Reporter: Christoph Läubrich >Priority: Major > > Currently the WorkspaceReader has a way to list versions or resolve the file > for an artifact, but there is no way of really get a list of workspace > artifacts itself. > The javadoc states: > {quote}Manages a repository backed by the IDE workspace, a build session or a > similar ad-hoc collection of artifacts.{quote} > so the goal is to have a way getting hold of the "collection of artifacts" > this Workspacereader manages. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (MRESOLVER-307) Support listing of workspace artifacts
[ https://issues.apache.org/jira/browse/MRESOLVER-307?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17645726#comment-17645726 ] ASF GitHub Bot commented on MRESOLVER-307: -- laeubi commented on PR #230: URL: https://github.com/apache/maven-resolver/pull/230#issuecomment-1345467776 @cstamas @olamy maybe you can take a look here? > Support listing of workspace artifacts > -- > > Key: MRESOLVER-307 > URL: https://issues.apache.org/jira/browse/MRESOLVER-307 > Project: Maven Resolver > Issue Type: Improvement >Reporter: Christoph Läubrich >Priority: Major > > Currently the WorkspaceReader has a way to list versions or resolve the file > for an artifact, but there is no way of really get a list of workspace > artifacts itself. > The javadoc states: > {quote}Manages a repository backed by the IDE workspace, a build session or a > similar ad-hoc collection of artifacts.{quote} > so the goal is to have a way getting hold of the "collection of artifacts" > this Workspacereader manages. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (MRESOLVER-307) Support listing of workspace artifacts
[ https://issues.apache.org/jira/browse/MRESOLVER-307?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17645725#comment-17645725 ] ASF GitHub Bot commented on MRESOLVER-307: -- laeubi opened a new pull request, #230: URL: https://github.com/apache/maven-resolver/pull/230 Add support for listing artifacts a `WorkspaceReader` know about. See https://issues.apache.org/jira/browse/MRESOLVER-307 Currently the build fails because of an incompatibility: > There is at least one incompatibility: > org.eclipse.aether.repository.WorkspaceReader.listArtifacts():METHOD_NEW_DEFAULT As `WorkspaceReader` is a very specialized class and there is a default implementation I won't expect much problems but I'm not sure how to handle this here. Maybe it would be better to even not default implement it to make consumers aware of the new method? Any guidance would be appreciated. > Support listing of workspace artifacts > -- > > Key: MRESOLVER-307 > URL: https://issues.apache.org/jira/browse/MRESOLVER-307 > Project: Maven Resolver > Issue Type: Improvement >Reporter: Christoph Läubrich >Priority: Major > > Currently the WorkspaceReader has a way to list versions or resolve the file > for an artifact, but there is no way of really get a list of workspace > artifacts itself. > The javadoc states: > {quote}Manages a repository backed by the IDE workspace, a build session or a > similar ad-hoc collection of artifacts.{quote} > so the goal is to have a way getting hold of the "collection of artifacts" > this Workspacereader manages. -- This message was sent by Atlassian Jira (v8.20.10#820010)