You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ol...@apache.org on 2016/05/01 12:56:42 UTC

[40/50] [abbrv] maven-aether git commit: Polished/extended API docs

Polished/extended API docs


Project: http://git-wip-us.apache.org/repos/asf/maven-aether/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven-aether/commit/6ef4a917
Tree: http://git-wip-us.apache.org/repos/asf/maven-aether/tree/6ef4a917
Diff: http://git-wip-us.apache.org/repos/asf/maven-aether/diff/6ef4a917

Branch: refs/heads/master
Commit: 6ef4a917003f5b68659f8f8dc83405b881a0fe3d
Parents: 570f98b
Author: Benjamin Bentmann <be...@sonatype.com>
Authored: Sun Oct 26 16:17:26 2014 +0100
Committer: Benjamin Bentmann <be...@sonatype.com>
Committed: Sun Oct 26 16:17:26 2014 +0100

----------------------------------------------------------------------
 .../aether/DefaultRepositorySystemSession.java  | 30 +++++++++++++-------
 .../org/eclipse/aether/RepositoryCache.java     | 17 ++++++-----
 .../java/org/eclipse/aether/SessionData.java    | 16 ++++++-----
 .../collection/DependencyGraphTransformer.java  | 11 +++++--
 .../aether/collection/DependencyManager.java    | 11 ++++---
 .../aether/collection/DependencySelector.java   | 11 ++++---
 .../aether/collection/DependencyTraverser.java  | 11 ++++---
 .../aether/collection/VersionFilter.java        | 13 +++++----
 .../aether/version/VersionConstraint.java       |  8 +++---
 .../spi/connector/layout/RepositoryLayout.java  |  7 +++--
 .../graph/transformer/ConflictResolver.java     | 26 +++++++++++------
 11 files changed, 100 insertions(+), 61 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven-aether/blob/6ef4a917/aether-api/src/main/java/org/eclipse/aether/DefaultRepositorySystemSession.java
----------------------------------------------------------------------
diff --git a/aether-api/src/main/java/org/eclipse/aether/DefaultRepositorySystemSession.java b/aether-api/src/main/java/org/eclipse/aether/DefaultRepositorySystemSession.java
index 194a661..363ede6 100644
--- a/aether-api/src/main/java/org/eclipse/aether/DefaultRepositorySystemSession.java
+++ b/aether-api/src/main/java/org/eclipse/aether/DefaultRepositorySystemSession.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2010, 2013 Sonatype, Inc.
+ * Copyright (c) 2010, 2014 Sonatype, Inc.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -36,10 +36,12 @@ import org.eclipse.aether.resolution.ResolutionErrorPolicy;
 import org.eclipse.aether.transfer.TransferListener;
 
 /**
- * A simple repository system session. <em>Note:</em> This class is not thread-safe. It is assumed that the mutators get
- * only called during an initialization phase and that the session itself is not changed when being used by the
- * repository system. It is recommended to call {@link #setReadOnly()} once the session has been fully initialized to
- * prevent accidental manipulation of it afterwards.
+ * A simple repository system session.
+ * <p>
+ * <strong>Note:</strong> This class is not thread-safe. It is assumed that the mutators get only called during an
+ * initialization phase and that the session itself is not changed once initialized and being used by the repository
+ * system. It is recommended to call {@link #setReadOnly()} once the session has been fully initialized to prevent
+ * accidental manipulation of it afterwards.
  */
 public final class DefaultRepositorySystemSession
     implements RepositorySystemSession
@@ -123,7 +125,9 @@ public final class DefaultRepositorySystemSession
 
     /**
      * Creates a shallow copy of the specified session. Actually, the copy is not completely shallow, all maps holding
-     * properties are copied as well. In other words, mutating the new session has no effect on the original session.
+     * system/user/config properties are copied as well. In other words, invoking any mutator on the new session itself
+     * has no effect on the original session. Other mutable objects like the session data and cache (if any) are not
+     * copied and will be shared with the original session unless reconfigured.
      * 
      * @param session The session to copy, must not be {@code null}.
      */
@@ -395,6 +399,7 @@ public final class DefaultRepositorySystemSession
     /**
      * Sets the system properties to use, e.g. for processing of artifact descriptors. System properties are usually
      * collected from the runtime environment like {@link System#getProperties()} and environment variables.
+     * <p>
      * <em>Note:</em> System properties are of type {@code Map<String, String>} and any key-value pair in the input map
      * that doesn't match this type will be silently ignored.
      * 
@@ -438,8 +443,10 @@ public final class DefaultRepositorySystemSession
     /**
      * Sets the user properties to use, e.g. for processing of artifact descriptors. User properties are similar to
      * system properties but are set on the discretion of the user and hence are considered of higher priority than
-     * system properties. <em>Note:</em> User properties are of type {@code Map<String, String>} and any key-value pair
-     * in the input map that doesn't match this type will be silently ignored.
+     * system properties in case of conflicts.
+     * <p>
+     * <em>Note:</em> User properties are of type {@code Map<String, String>} and any key-value pair in the input map
+     * that doesn't match this type will be silently ignored.
      * 
      * @param userProperties The user properties, may be {@code null} or empty if none.
      * @return This session for chaining, never {@code null}.
@@ -480,9 +487,10 @@ public final class DefaultRepositorySystemSession
 
     /**
      * Sets the configuration properties used to tweak internal aspects of the repository system (e.g. thread pooling,
-     * connector-specific behavior, etc.) <em>Note:</em> Configuration properties are of type
-     * {@code Map<String, Object>} and any key-value pair in the input map that doesn't match this type will be silently
-     * ignored.
+     * connector-specific behavior, etc.).
+     * <p>
+     * <em>Note:</em> Configuration properties are of type {@code Map<String, Object>} and any key-value pair in the
+     * input map that doesn't match this type will be silently ignored.
      * 
      * @param configProperties The configuration properties, may be {@code null} or empty if none.
      * @return This session for chaining, never {@code null}.

http://git-wip-us.apache.org/repos/asf/maven-aether/blob/6ef4a917/aether-api/src/main/java/org/eclipse/aether/RepositoryCache.java
----------------------------------------------------------------------
diff --git a/aether-api/src/main/java/org/eclipse/aether/RepositoryCache.java b/aether-api/src/main/java/org/eclipse/aether/RepositoryCache.java
index 95dbdfe..7363844 100644
--- a/aether-api/src/main/java/org/eclipse/aether/RepositoryCache.java
+++ b/aether-api/src/main/java/org/eclipse/aether/RepositoryCache.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2010, 2012 Sonatype, Inc.
+ * Copyright (c) 2010, 2014 Sonatype, Inc.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -23,9 +23,10 @@ public interface RepositoryCache
     /**
      * Puts the specified data into the cache. It is entirely up to the cache implementation how long this data will be
      * kept before being purged, i.e. callers must not make any assumptions about the lifetime of cached data.
-     * <strong>Warning:</strong> The cache will directly save the provided reference. If the cached data is mutable,
-     * i.e. could be modified after being put into the cache, the caller is responsible for creating a copy of the
-     * original data and store the copy in the cache.
+     * <p>
+     * <em>Warning:</em> The cache will directly save the provided reference. If the cached data is mutable, i.e. could
+     * be modified after being put into the cache, the caller is responsible for creating a copy of the original data
+     * and store the copy in the cache.
      * 
      * @param session The repository session during which the cache is accessed, must not be {@code null}.
      * @param key The key to use for lookup of the data, must not be {@code null}.
@@ -34,9 +35,11 @@ public interface RepositoryCache
     void put( RepositorySystemSession session, Object key, Object data );
 
     /**
-     * Gets the specified data from the cache. <strong>Warning:</strong> The cache will directly return the saved
-     * reference. If the cached data is to be modified after its retrieval, the caller is responsible to create a copy
-     * of the returned data and use this instead of the cache record.
+     * Gets the specified data from the cache.
+     * <p>
+     * <em>Warning:</em> The cache will directly return the saved reference. If the cached data is to be modified after
+     * its retrieval, the caller is responsible to create a copy of the returned data and use this instead of the cache
+     * record.
      * 
      * @param session The repository session during which the cache is accessed, must not be {@code null}.
      * @param key The key to use for lookup of the data, must not be {@code null}.

http://git-wip-us.apache.org/repos/asf/maven-aether/blob/6ef4a917/aether-api/src/main/java/org/eclipse/aether/SessionData.java
----------------------------------------------------------------------
diff --git a/aether-api/src/main/java/org/eclipse/aether/SessionData.java b/aether-api/src/main/java/org/eclipse/aether/SessionData.java
index a594d41..92930e7 100644
--- a/aether-api/src/main/java/org/eclipse/aether/SessionData.java
+++ b/aether-api/src/main/java/org/eclipse/aether/SessionData.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2010, 2012 Sonatype, Inc.
+ * Copyright (c) 2010, 2014 Sonatype, Inc.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -12,10 +12,12 @@ package org.eclipse.aether;
 
 /**
  * A container for data that is specific to a repository system session. Both components within the repository system
- * and clients of the system may use this storage to associate arbitrary data with a session. Unlike a cache, this
- * session data is not subject to purging. For this same reason, session data should also not be abused as a cache (i.e.
- * for storing values that can be re-calculated) to avoid memory exhaustion. <strong>Note:</strong> Actual
- * implementations must be thread-safe.
+ * and clients of the system may use this storage to associate arbitrary data with a session.
+ * <p>
+ * Unlike a cache, this session data is not subject to purging. For this same reason, session data should also not be
+ * abused as a cache (i.e. for storing values that can be re-calculated) to avoid memory exhaustion.
+ * <p>
+ * <strong>Note:</strong> Actual implementations must be thread-safe.
  * 
  * @see RepositorySystemSession#getData()
  * @noimplement This interface is not intended to be implemented by clients.
@@ -39,8 +41,8 @@ public interface SessionData
      * @param key The key under which to store the session data, must not be {@code null}.
      * @param oldValue The expected data currently associated with the key, may be {@code null}.
      * @param newValue The data to associate with the key, may be {@code null} to remove the mapping.
-     * @return {@code true} if the key mapping was updated to the specified value, {@code false} if the current key
-     *         mapping didn't match the expected value and was not updated.
+     * @return {@code true} if the key mapping was successfully updated from the old value to the new value,
+     *         {@code false} if the current key mapping didn't match the expected value and was not updated.
      */
     boolean set( Object key, Object oldValue, Object newValue );
 

http://git-wip-us.apache.org/repos/asf/maven-aether/blob/6ef4a917/aether-api/src/main/java/org/eclipse/aether/collection/DependencyGraphTransformer.java
----------------------------------------------------------------------
diff --git a/aether-api/src/main/java/org/eclipse/aether/collection/DependencyGraphTransformer.java b/aether-api/src/main/java/org/eclipse/aether/collection/DependencyGraphTransformer.java
index 22f9498..b3deebe 100644
--- a/aether-api/src/main/java/org/eclipse/aether/collection/DependencyGraphTransformer.java
+++ b/aether-api/src/main/java/org/eclipse/aether/collection/DependencyGraphTransformer.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2010, 2012 Sonatype, Inc.
+ * Copyright (c) 2010, 2014 Sonatype, Inc.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -14,8 +14,13 @@ import org.eclipse.aether.RepositoryException;
 import org.eclipse.aether.graph.DependencyNode;
 
 /**
- * Transforms a given dependency graph. <em>Note:</em> Dependency graphs may contain cycles, as such a graph transformer
- * needs to gracefully handle cyclic graphs, e.g. guard against infinite recursion. Implementations must be stateless.
+ * Transforms a given dependency graph.
+ * <p>
+ * <strong>Note:</strong> Implementations must be stateless.
+ * <p>
+ * <em>Warning:</em> Dependency graphs may generally contain cycles. As such a graph transformer that cannot assume for
+ * sure that cycles have already been eliminated must gracefully handle cyclic graphs, e.g. guard against infinite
+ * recursion.
  * 
  * @see org.eclipse.aether.RepositorySystemSession#getDependencyGraphTransformer()
  */

http://git-wip-us.apache.org/repos/asf/maven-aether/blob/6ef4a917/aether-api/src/main/java/org/eclipse/aether/collection/DependencyManager.java
----------------------------------------------------------------------
diff --git a/aether-api/src/main/java/org/eclipse/aether/collection/DependencyManager.java b/aether-api/src/main/java/org/eclipse/aether/collection/DependencyManager.java
index 3ee6b0e..e214f66 100644
--- a/aether-api/src/main/java/org/eclipse/aether/collection/DependencyManager.java
+++ b/aether-api/src/main/java/org/eclipse/aether/collection/DependencyManager.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2010, 2013 Sonatype, Inc.
+ * Copyright (c) 2010, 2014 Sonatype, Inc.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -13,9 +13,12 @@ package org.eclipse.aether.collection;
 import org.eclipse.aether.graph.Dependency;
 
 /**
- * Applies dependency management to the dependencies of a dependency node. Implementations must be stateless.
- * <em>Note:</em> This hook is called from a hot spot and therefore implementations should pay attention to performance.
- * Among others, implementations should provide a semantic {@link Object#equals(Object) equals()} method.
+ * Applies dependency management to the dependencies of a dependency node.
+ * <p>
+ * <strong>Note:</strong> Implementations must be stateless.
+ * <p>
+ * <em>Warning:</em> This hook is called from a hot spot and therefore implementations should pay attention to
+ * performance. Among others, implementations should provide a semantic {@link Object#equals(Object) equals()} method.
  * 
  * @see org.eclipse.aether.RepositorySystemSession#getDependencyManager()
  * @see org.eclipse.aether.RepositorySystem#collectDependencies(org.eclipse.aether.RepositorySystemSession,

http://git-wip-us.apache.org/repos/asf/maven-aether/blob/6ef4a917/aether-api/src/main/java/org/eclipse/aether/collection/DependencySelector.java
----------------------------------------------------------------------
diff --git a/aether-api/src/main/java/org/eclipse/aether/collection/DependencySelector.java b/aether-api/src/main/java/org/eclipse/aether/collection/DependencySelector.java
index a555c2f..de503be 100644
--- a/aether-api/src/main/java/org/eclipse/aether/collection/DependencySelector.java
+++ b/aether-api/src/main/java/org/eclipse/aether/collection/DependencySelector.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2010, 2013 Sonatype, Inc.
+ * Copyright (c) 2010, 2014 Sonatype, Inc.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -13,9 +13,12 @@ package org.eclipse.aether.collection;
 import org.eclipse.aether.graph.Dependency;
 
 /**
- * Decides what dependencies to include in the dependency graph. Implementations must be stateless. <em>Note:</em> This
- * hook is called from a hot spot and therefore implementations should pay attention to performance. Among others,
- * implementations should provide a semantic {@link Object#equals(Object) equals()} method.
+ * Decides what dependencies to include in the dependency graph.
+ * <p>
+ * <strong>Note:</strong> Implementations must be stateless.
+ * <p>
+ * <em>Warning:</em> This hook is called from a hot spot and therefore implementations should pay attention to
+ * performance. Among others, implementations should provide a semantic {@link Object#equals(Object) equals()} method.
  * 
  * @see org.eclipse.aether.RepositorySystemSession#getDependencySelector()
  * @see org.eclipse.aether.RepositorySystem#collectDependencies(org.eclipse.aether.RepositorySystemSession,

http://git-wip-us.apache.org/repos/asf/maven-aether/blob/6ef4a917/aether-api/src/main/java/org/eclipse/aether/collection/DependencyTraverser.java
----------------------------------------------------------------------
diff --git a/aether-api/src/main/java/org/eclipse/aether/collection/DependencyTraverser.java b/aether-api/src/main/java/org/eclipse/aether/collection/DependencyTraverser.java
index b237213..8140395 100644
--- a/aether-api/src/main/java/org/eclipse/aether/collection/DependencyTraverser.java
+++ b/aether-api/src/main/java/org/eclipse/aether/collection/DependencyTraverser.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2010, 2013 Sonatype, Inc.
+ * Copyright (c) 2010, 2014 Sonatype, Inc.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -13,9 +13,12 @@ package org.eclipse.aether.collection;
 import org.eclipse.aether.graph.Dependency;
 
 /**
- * Decides whether the dependencies of a dependency node should be traversed as well. Implementations must be stateless.
- * <em>Note:</em> This hook is called from a hot spot and therefore implementations should pay attention to performance.
- * Among others, implementations should provide a semantic {@link Object#equals(Object) equals()} method.
+ * Decides whether the dependencies of a dependency node should be traversed as well.
+ * <p>
+ * <strong>Note:</strong> Implementations must be stateless.
+ * <p>
+ * <em>Warning:</em> This hook is called from a hot spot and therefore implementations should pay attention to
+ * performance. Among others, implementations should provide a semantic {@link Object#equals(Object) equals()} method.
  * 
  * @see org.eclipse.aether.RepositorySystemSession#getDependencyTraverser()
  * @see org.eclipse.aether.RepositorySystem#collectDependencies(org.eclipse.aether.RepositorySystemSession,

http://git-wip-us.apache.org/repos/asf/maven-aether/blob/6ef4a917/aether-api/src/main/java/org/eclipse/aether/collection/VersionFilter.java
----------------------------------------------------------------------
diff --git a/aether-api/src/main/java/org/eclipse/aether/collection/VersionFilter.java b/aether-api/src/main/java/org/eclipse/aether/collection/VersionFilter.java
index 7d8b7c8..02e7ab3 100644
--- a/aether-api/src/main/java/org/eclipse/aether/collection/VersionFilter.java
+++ b/aether-api/src/main/java/org/eclipse/aether/collection/VersionFilter.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2013 Sonatype, Inc.
+ * Copyright (c) 2013, 2014 Sonatype, Inc.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -22,10 +22,13 @@ import org.eclipse.aether.version.Version;
 import org.eclipse.aether.version.VersionConstraint;
 
 /**
- * Decides which versions matching a version range should actually be considered for the dependency graph.
- * Implementations must be stateless. <em>Note:</em> This hook is called from a hot spot and therefore implementations
- * should pay attention to performance. Among others, implementations should provide a semantic
- * {@link Object#equals(Object) equals()} method.
+ * Decides which versions matching a version range should actually be considered for the dependency graph. The version
+ * filter is not invoked for dependencies that do not declare a version range but a single version.
+ * <p>
+ * <strong>Note:</strong> Implementations must be stateless.
+ * <p>
+ * <em>Warning:</em> This hook is called from a hot spot and therefore implementations should pay attention to
+ * performance. Among others, implementations should provide a semantic {@link Object#equals(Object) equals()} method.
  * 
  * @see org.eclipse.aether.RepositorySystemSession#getVersionFilter()
  * @see org.eclipse.aether.RepositorySystem#collectDependencies(org.eclipse.aether.RepositorySystemSession,

http://git-wip-us.apache.org/repos/asf/maven-aether/blob/6ef4a917/aether-api/src/main/java/org/eclipse/aether/version/VersionConstraint.java
----------------------------------------------------------------------
diff --git a/aether-api/src/main/java/org/eclipse/aether/version/VersionConstraint.java b/aether-api/src/main/java/org/eclipse/aether/version/VersionConstraint.java
index d4f6b52..dcb3b68 100644
--- a/aether-api/src/main/java/org/eclipse/aether/version/VersionConstraint.java
+++ b/aether-api/src/main/java/org/eclipse/aether/version/VersionConstraint.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2010, 2011 Sonatype, Inc.
+ * Copyright (c) 2010, 2014 Sonatype, Inc.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -11,9 +11,9 @@
 package org.eclipse.aether.version;
 
 /**
- * A constraint on versions for a dependency. A constraint can either consist of a version range or a single version. In
- * the first case, the constraint expresses a hard requirement on a version matching the range. In the second case, the
- * constraint expresses a soft requirement on a specific version (i.e. a recommendation).
+ * A constraint on versions for a dependency. A constraint can either consist of a version range (e.g. "[1, ]") or a
+ * single version (e.g. "1.1"). In the first case, the constraint expresses a hard requirement on a version matching the
+ * range. In the second case, the constraint expresses a soft requirement on a specific version (i.e. a recommendation).
  */
 public interface VersionConstraint
 {

http://git-wip-us.apache.org/repos/asf/maven-aether/blob/6ef4a917/aether-spi/src/main/java/org/eclipse/aether/spi/connector/layout/RepositoryLayout.java
----------------------------------------------------------------------
diff --git a/aether-spi/src/main/java/org/eclipse/aether/spi/connector/layout/RepositoryLayout.java b/aether-spi/src/main/java/org/eclipse/aether/spi/connector/layout/RepositoryLayout.java
index 1594e10..f200714 100644
--- a/aether-spi/src/main/java/org/eclipse/aether/spi/connector/layout/RepositoryLayout.java
+++ b/aether-spi/src/main/java/org/eclipse/aether/spi/connector/layout/RepositoryLayout.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2013 Sonatype, Inc.
+ * Copyright (c) 2013, 2014 Sonatype, Inc.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -18,8 +18,9 @@ import org.eclipse.aether.artifact.Artifact;
 import org.eclipse.aether.metadata.Metadata;
 
 /**
- * The layout for a remote repository whose artifacts/metadata can be addressed via URIs. Implementations must be
- * stateless.
+ * The layout for a remote repository whose artifacts/metadata can be addressed via URIs.
+ * <p>
+ * <strong>Note:</strong> Implementations must be stateless.
  */
 public interface RepositoryLayout
 {

http://git-wip-us.apache.org/repos/asf/maven-aether/blob/6ef4a917/aether-util/src/main/java/org/eclipse/aether/util/graph/transformer/ConflictResolver.java
----------------------------------------------------------------------
diff --git a/aether-util/src/main/java/org/eclipse/aether/util/graph/transformer/ConflictResolver.java b/aether-util/src/main/java/org/eclipse/aether/util/graph/transformer/ConflictResolver.java
index 7ce9685..2caebb5 100644
--- a/aether-util/src/main/java/org/eclipse/aether/util/graph/transformer/ConflictResolver.java
+++ b/aether-util/src/main/java/org/eclipse/aether/util/graph/transformer/ConflictResolver.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2012, 2013 Sonatype, Inc.
+ * Copyright (c) 2012, 2014 Sonatype, Inc.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -1144,7 +1144,9 @@ public final class ConflictResolver
      * An extension point of {@link ConflictResolver} that determines the winner among conflicting dependencies. The
      * winning node (and its children) will be retained in the dependency graph, the other nodes will get removed. The
      * version selector does not need to deal with potential scope conflicts, these will be addressed afterwards by the
-     * {@link ScopeSelector}. Implementations must be stateless.
+     * {@link ScopeSelector}.
+     * <p>
+     * <strong>Note:</strong> Implementations must be stateless.
      */
     public static abstract class VersionSelector
     {
@@ -1154,7 +1156,7 @@ public final class ConflictResolver
          * this method once per
          * {@link ConflictResolver#transformGraph(DependencyNode, DependencyGraphTransformationContext)} invocation to
          * allow implementations to prepare any auxiliary data that is needed for their operation. Given that
-         * implementations need to be stateless, a new instance needs to be returned to hold such auxiliary data. The
+         * implementations must be stateless, a new instance needs to be returned to hold such auxiliary data. The
          * default implementation simply returns the current instance which is appropriate for implementations which do
          * not require auxiliary data.
          * 
@@ -1186,7 +1188,9 @@ public final class ConflictResolver
     /**
      * An extension point of {@link ConflictResolver} that determines the effective scope of a dependency from a
      * potentially conflicting set of {@link ScopeDeriver derived scopes}. The scope selector gets invoked after the
-     * {@link VersionSelector} has picked the winning node. Implementations must be stateless.
+     * {@link VersionSelector} has picked the winning node.
+     * <p>
+     * <strong>Note:</strong> Implementations must be stateless.
      */
     public static abstract class ScopeSelector
     {
@@ -1196,7 +1200,7 @@ public final class ConflictResolver
          * this method once per
          * {@link ConflictResolver#transformGraph(DependencyNode, DependencyGraphTransformationContext)} invocation to
          * allow implementations to prepare any auxiliary data that is needed for their operation. Given that
-         * implementations need to be stateless, a new instance needs to be returned to hold such auxiliary data. The
+         * implementations must be stateless, a new instance needs to be returned to hold such auxiliary data. The
          * default implementation simply returns the current instance which is appropriate for implementations which do
          * not require auxiliary data.
          * 
@@ -1227,7 +1231,9 @@ public final class ConflictResolver
 
     /**
      * An extension point of {@link ConflictResolver} that determines the scope of a dependency in relation to the scope
-     * of its parent. Implementations must be stateless.
+     * of its parent.
+     * <p>
+     * <strong>Note:</strong> Implementations must be stateless.
      */
     public static abstract class ScopeDeriver
     {
@@ -1237,7 +1243,7 @@ public final class ConflictResolver
          * this method once per
          * {@link ConflictResolver#transformGraph(DependencyNode, DependencyGraphTransformationContext)} invocation to
          * allow implementations to prepare any auxiliary data that is needed for their operation. Given that
-         * implementations need to be stateless, a new instance needs to be returned to hold such auxiliary data. The
+         * implementations must be stateless, a new instance needs to be returned to hold such auxiliary data. The
          * default implementation simply returns the current instance which is appropriate for implementations which do
          * not require auxiliary data.
          * 
@@ -1268,7 +1274,9 @@ public final class ConflictResolver
     /**
      * An extension point of {@link ConflictResolver} that determines the effective optional flag of a dependency from a
      * potentially conflicting set of derived optionalities. The optionality selector gets invoked after the
-     * {@link VersionSelector} has picked the winning node. Implementations must be stateless.
+     * {@link VersionSelector} has picked the winning node.
+     * <p>
+     * <strong>Note:</strong> Implementations must be stateless.
      */
     public static abstract class OptionalitySelector
     {
@@ -1278,7 +1286,7 @@ public final class ConflictResolver
          * calls this method once per
          * {@link ConflictResolver#transformGraph(DependencyNode, DependencyGraphTransformationContext)} invocation to
          * allow implementations to prepare any auxiliary data that is needed for their operation. Given that
-         * implementations need to be stateless, a new instance needs to be returned to hold such auxiliary data. The
+         * implementations must be stateless, a new instance needs to be returned to hold such auxiliary data. The
          * default implementation simply returns the current instance which is appropriate for implementations which do
          * not require auxiliary data.
          *