Pankraz76 commented on code in PR #2347:
URL: https://github.com/apache/maven/pull/2347#discussion_r2094587418
##########
impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultDependencyResolver.java:
##########
@@ -67,6 +67,21 @@
@Named
@Singleton
public class DefaultDependencyResolver implements DependencyResolver {
+ /**
+ * Cache of information about the modules contained in a path element.
+ * This cache is created when first needed. It may be never created.
+ *
+ * <p><b>TODO:</b> This field should not be in this class, because the
cache should be global to the session.
+ * This field exists here only temporarily, until we clarified where to
store session-wide caches.</p>
+ *
+ * @see moduleCache()
+ */
+ private PathModularizationCache moduleCache;
+
+ /**
+ * Creates an initially empty resolver.
+ */
+ public DefaultDependencyResolver() {}
Review Comment:
who need this? will create very fragile object.
##########
impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultDependencyResolverResult.java:
##########
@@ -97,6 +99,24 @@ public class DefaultDependencyResolverResult implements
DependencyResolverResult
*/
private final PathModularizationCache cache;
+ /**
+ * Creates an initially empty result with a temporary cache.
+ * Callers should add path elements by calls to {@link
#addDependency(Node, Dependency, Predicate, Path)}.
+ *
+ * <p><b>WARNING: this constructor may be removed in a future Maven
release.</b>
+ * The reason is because {@code DefaultDependencyResolverResult} needs a
cache, which should
+ * preferably by session-wide. But we have not yet clarified how such
caches should be managed.</p>
+ *
+ * @param request the corresponding request
+ * @param exceptions the exceptions that occurred while building the
dependency graph
+ * @param root the root node of the dependency graph
+ * @param count estimated number of dependencies
+ */
+ public DefaultDependencyResolverResult(
+ DependencyResolverRequest request, List<Exception> exceptions,
Node root, int count) {
+ this(request, new PathModularizationCache(), exceptions, root, count);
Review Comment:
yes this gives dedication and option.
##########
impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultDependencyResolver.java:
##########
@@ -67,6 +67,21 @@
@Named
@Singleton
public class DefaultDependencyResolver implements DependencyResolver {
+ /**
+ * Cache of information about the modules contained in a path element.
+ * This cache is created when first needed. It may be never created.
+ *
+ * <p><b>TODO:</b> This field should not be in this class, because the
cache should be global to the session.
+ * This field exists here only temporarily, until we clarified where to
store session-wide caches.</p>
Review Comment:
```suggestion
* This field exists here only temporarily, until clarified where to
store session-wide caches.</p>
```
##########
impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultDependencyResolverResult.java:
##########
@@ -97,6 +99,24 @@ public class DefaultDependencyResolverResult implements
DependencyResolverResult
*/
private final PathModularizationCache cache;
+ /**
+ * Creates an initially empty result with a temporary cache.
+ * Callers should add path elements by calls to {@link
#addDependency(Node, Dependency, Predicate, Path)}.
+ *
+ * <p><b>WARNING: this constructor may be removed in a future Maven
release.</b>
+ * The reason is because {@code DefaultDependencyResolverResult} needs a
cache, which should
+ * preferably by session-wide. But we have not yet clarified how such
caches should be managed.</p>
+ *
+ * @param request the corresponding request
+ * @param exceptions the exceptions that occurred while building the
dependency graph
+ * @param root the root node of the dependency graph
+ * @param count estimated number of dependencies
+ */
+ public DefaultDependencyResolverResult(
+ DependencyResolverRequest request, List<Exception> exceptions,
Node root, int count) {
+ this(request, new PathModularizationCache(), exceptions, root, count);
Review Comment:
```suggestion
this(request, moduleCache(), exceptions, root, count);
```
##########
impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultDependencyResolverResult.java:
##########
@@ -107,14 +127,14 @@ public class DefaultDependencyResolverResult implements
DependencyResolverResult
* @param root the root node of the dependency graph
* @param count estimated number of dependencies
*/
- public DefaultDependencyResolverResult(
+ DefaultDependencyResolverResult(
DependencyResolverRequest request,
PathModularizationCache cache,
List<Exception> exceptions,
Node root,
int count) {
this.request = request;
- this.cache = cache;
+ this.cache = Objects.requireNonNull(cache);
Review Comment:
or here
```suggestion
this.cache = Objects.requireNonNull(moduleCache());
```
one of the suggestions is right. as `moduleCache()` is SSOT.
##########
impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultDependencyResolverResult.java:
##########
@@ -97,6 +99,24 @@ public class DefaultDependencyResolverResult implements
DependencyResolverResult
*/
private final PathModularizationCache cache;
+ /**
+ * Creates an initially empty result with a temporary cache.
+ * Callers should add path elements by calls to {@link
#addDependency(Node, Dependency, Predicate, Path)}.
+ *
+ * <p><b>WARNING: this constructor may be removed in a future Maven
release.</b>
+ * The reason is because {@code DefaultDependencyResolverResult} needs a
cache, which should
+ * preferably by session-wide. But we have not yet clarified how such
caches should be managed.</p>
Review Comment:
```suggestion
* preferably by session-wide. How to manage such caches, has not yet
been clarified.</p>
```
##########
impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultDependencyResolver.java:
##########
@@ -126,7 +141,11 @@ public DependencyResolverResult collect(@Nonnull
DependencyResolverRequest reque
final CollectResult result =
session.getRepositorySystem().collectDependencies(systemSession,
collectRequest);
return new DefaultDependencyResolverResult(
- null, null, result.getExceptions(),
session.getNode(result.getRoot(), request.getVerbose()), 0);
+ null,
+ moduleCache(),
Review Comment:
as its dry, and static, inline. Ide shoud give warning on method or
constructor that value is always same.
--
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: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]