Rename Type#getName() to getId() and improve javadoc (#1198)

This commit is contained in:
Guillaume Nodet 2023-07-06 09:20:03 +02:00 committed by GitHub
parent 7563949f71
commit 9b12ccdeb0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 42 additions and 21 deletions

View File

@ -23,9 +23,9 @@ import org.apache.maven.api.annotations.Nonnull;
public interface Dependency extends Artifact { public interface Dependency extends Artifact {
/** /**
* The artifact type. * The dependency type.
* *
* @return the artifact type, never {@code null} * @return the dependency type, never {@code null}
*/ */
@Nonnull @Nonnull
Type getType(); Type getType();

View File

@ -20,14 +20,19 @@ package org.apache.maven.api;
import org.apache.maven.api.annotations.Experimental; import org.apache.maven.api.annotations.Experimental;
import org.apache.maven.api.annotations.Immutable; import org.apache.maven.api.annotations.Immutable;
import org.apache.maven.api.model.Dependency;
/** /**
* An artifact's{@code Type} represents a known kind of artifacts. * A dependency's {@code Type} is uniquely identified by a {@code String},
* Such types are often associated to an extension and possibly * and semantically represents a known <i>kind</i> of dependency.
* a classifier, for example {@code java-source} has a {@code jar} * <p>
* extension and a {@code sources} classifier. * It provides information about the file type (or extension) of the associated artifact,
* It is also used to determine if a given dependency should be * its default classifier, and how the artifact will be used in the build when creating
* included in the classpath or if its transitive dependencies should. * classpaths.
* <p>
* For example, the type {@code java-source} has a {@code jar} extension and a
* {@code sources} classifier. The artifact and its dependencies should be added
* to the classpath.
* *
* @since 4.0.0 * @since 4.0.0
*/ */
@ -43,27 +48,43 @@ public interface Type {
String TEST_JAR = "test-jar"; String TEST_JAR = "test-jar";
/** /**
* Returns the dependency type name. * Returns the dependency type id.
* The id uniquely identifies this <i>dependency type</i>.
* *
* @return the type name * @return the id of this type
*/ */
String getName(); String getId();
/** /**
* Get the file extension associated to the file represented by the dependency type. * Get the file extension of artifacts of this type.
* *
* @return the file extension * @return the file extension
*/ */
String getExtension(); String getExtension();
/** /**
* Get the classifier associated to the dependency type. * Get the default classifier associated to the dependency type.
* The default classifier can be overridden when specifying
* the {@link Dependency#getClassifier()}.
* *
* @return the classifier * @return the default classifier
*/ */
String getClassifier(); String getClassifier();
boolean isIncludesDependencies(); /**
* Specifies if the artifact contains java classes and should be
* added to the classpath.
*
* @return if the artifact should be added to the classpath
*/
boolean isAddedToClasspath(); boolean isAddedToClasspath();
/**
* Specifies if the artifact already embeds its own dependencies.
* This is the case for JEE packages or similar artifacts such as
* WARs, EARs, etc.
*
* @return if the artifact's dependencies are included in the artifact
*/
boolean isIncludesDependencies();
} }

View File

@ -89,7 +89,7 @@ public interface DependencyCoordinateFactoryRequest extends ArtifactCoordinateFa
.version(dependency.getVersion().asString()) .version(dependency.getVersion().asString())
.classifier(dependency.getClassifier()) .classifier(dependency.getClassifier())
.extension(dependency.getExtension()) .extension(dependency.getExtension())
.type(dependency.getType().getName()) .type(dependency.getType().getId())
.scope(dependency.getScope().id()) .scope(dependency.getScope().id())
.optional(dependency.isOptional()) .optional(dependency.isOptional())
.build(); .build();

View File

@ -52,7 +52,7 @@ public class DefaultTypeRegistry implements TypeRegistry {
boolean addedToClasspath = handler.isAddedToClasspath(); boolean addedToClasspath = handler.isAddedToClasspath();
return new Type() { return new Type() {
@Override @Override
public String getName() { public String getId() {
return id; return id;
} }

View File

@ -356,10 +356,10 @@ public class MavenCli {
} }
topDirectory = getCanonicalPath(topDirectory); topDirectory = getCanonicalPath(topDirectory);
cliRequest.topDirectory = topDirectory; cliRequest.topDirectory = topDirectory;
// We're very early in the process and we don't have the container set up yet, // We're very early in the process, and we don't have the container set up yet,
// so we rely on the JDK services to eventually look up a custom RootLocator. // so we rely on the JDK services to eventually look up a custom RootLocator.
// This is used to compute {@code session.rootDirectory} but all {@code project.rootDirectory} // This is used to compute {@code session.rootDirectory} but all {@code project.rootDirectory}
// properties will be compute through the RootLocator found in the container. // properties will be computed through the RootLocator found in the container.
RootLocator rootLocator = RootLocator rootLocator =
ServiceLoader.load(RootLocator.class).iterator().next(); ServiceLoader.load(RootLocator.class).iterator().next();
Path rootDirectory = rootLocator.findRoot(topDirectory); Path rootDirectory = rootLocator.findRoot(topDirectory);