You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by kh...@apache.org on 2021/09/19 15:06:58 UTC

[maven] branch MODELTESTS_IMPROVEMENT updated (6dab523 -> 656b81a)

This is an automated email from the ASF dual-hosted git repository.

khmarbaise pushed a change to branch MODELTESTS_IMPROVEMENT
in repository https://gitbox.apache.org/repos/asf/maven.git.


 discard 6dab523  WIP - Fixed code issue.
 discard 531d255  Added author.
 discard c63e722  Using displayName in Interface.
 discard d09bdc3  Removed all DisplayName annotations from test classes and replaced with DisplayName generator.
 discard 1ce0a2d  Removing code redundancy Using assertj, JUnit Jupiter
     add d8ad76b  [MNG-5728] Switch the default checksum policy from "warn" to "fail"
     add 06c3217  Merge branch 'MNG-5728' of https://gitbox.apache.org/repos/asf/maven
     add 26f1e81  Merge branch 'master' of https://gitbox.apache.org/repos/asf/maven
     add 2bdc0c5  remove unused imports
     add 251ba22  Revert "[MNG-5728] Switch the default checksum policy from "warn" to "fail""
     add 95ee890  [MNG-5728] Switch the default checksum policy from "warn" to "fail"
     add be8ced6  [MNG-7034] StackOverflowError thrown if a cycle exists in BOM imports
     add d8c2cc7  [MNG-6566] Plugins that require a certain phase should not fork goals that are already in the execution plan.
     add 2ef0e5b  Upgrade github actions cache and use m2 cache for integration testing as well
     add 2609cdc  [MNG-7045] Drop CDI API from Maven
     add 9f88494  [MNG-6957] Versionless reactor dependencies/parent should work even if modules are aggregated in reverse order
     add 7e21a52  [MNG-4660] Increase usefulness of logging
     add d2adab7  [MNG-6054] Remove super POM plugin management section
     add 72a125e  [MNG-7022] Remove o.a.m.lifecycle.mapping.Lifecycle optional mojos backward compat code
     add 7f63dac  [MNG-7021] Remove old MHELP backward compat code
     add 8c9c303  [MNG-7046] Revert MNG-5639 and make repo config static only
     add 673a7d1  Trim trailing whitespace
     add 8eda091  Replace tabs with proper count of spaces
     add 5c59834  Ignore .checkstyle
     add c79682b  [MNG-7057] Param style of Javadoc in ReactorModelPool is wrong
     add 2caed62  [MNG-4660] Increase usefulness of logging
     add 31ad2ff  Use system line separator wherever possible
     add 3709e2e  Improve README
     add 538de4d  [MNG-6888] Remove deprecated command line options
     add 94612f9  [MNG-7060] Let build fail fast in case any maven-gpg-plugin goal is called
     add 6e82d87  [MNG-7064] Use HTTPS for schema location in global settings.xml
     add a2d29b2  [MNG-7065] Ugrade global settings.xml to 1.1.0
     add 2201698  Apply consistent log argument quoting for sigle- and multi-valued args
     add a6d5e86  Use consistent static final loggers
     add e1e2c65  Fix Javadoc errors
     add a0c1bf3  Fix checkstyle error
     add b877445  [MNG-6909] Convert to JSR330 in tests - maven-core
     add 0e34b35  [MNG-6909] Convert to JSR330 in tests - maven-compat
     add b7510d6  [MNG-6909] Convert to JSR330 - use sisu plugin
     add 9166805  [MNG-6967] Improve the command line output from maven-artifact. - Clearly separate version from tokens in command line output.
     add eb43b9b  Fix Checkstyle violation.
     add 83dc690  [MNG-7071] Remove the profiles.xml warning, since the functionality is ignored since Maven 3.
     add bb916d0  [MNG-7035] Migrate unit tests to Unit 5
     add ceb08cf  Test for empty locations and avoid printing them
     add 8df10f9  Test for empty value and avoid needless space
     add 8defd16  [MNG-7051] Optionally skip non-existing profiles and break on missing required profiles.
     add 1e575a2  [MNG-7068] Active dependency management for Google Guice/Guava
     add eae3074  [MNG-7029] Remove super POM release profile
     add ab20190  Update ant from 1.10.8 to 1.10.9 in /maven-wrapper
     add 48fc108  [MNG-7077] Use JUnit 5 extension
     add f820b41  [MNG-7095] Fix resume for parallel builds
     add 619973b  [MNG-7063] Infinite loop using Shade plugin and JUnit 5 dependency
     add 84a1ff2  [MNG-7063] Add unittest to ensure rereading a pom won't return the cached Model
     add 441cf73  improve documentation
     add 9b5b8d4  extract AbstractMavenLifecycleParticipant dispatch methods
     add a515fbe  [MNG-7035] remove duplicate dependency (causing warning on build)
     add 8ceb6c6  [MNG-7063] Infinite loop using Shade plugin and JUnit 5 dependency
     add d740200  [MNG-7107] relax profile id validation, different from coordinate id
     add b23116d  [MNG-6114] Elements from the global settings should be ordered before elements from the user settings
     add a242c1a  [MNG-6471] Parallel builder should use the module name as thread name
     add c3dba0e  [MNG-6113] Rename the 'Central Repository' to 'Maven Central Repository' in the 4.0.0 super POM
     add 0e75baa  improve and fix javadoc
     add 9643ac6  [MNG-7051] When an optional profile could not be found, an info message should be thrown instead of a warning.
     add ad24f59  [MNG-7051] Return unmodifiable profile lists
     add aa90370  [MNG-7110] Different behavior of extensions restore configuration of importRequest
     add 9e19b57  [MNG-7111] Deadlock when reading pom
     add a5c68f7  Revert "[MNG-7046] Revert MNG-5639 and make repo config static only"
     add d5f77a3  [MNG-6399] - Lift JDK minimum to JDK 8
     add d87a1f5  [MNG-7119] Upgrade Maven Wagon to 3.4.3
     add 612dfdd  [MNG-3220] fix doc: dependencyManagement import require scope import
     add acd61cc  use Maven Resolver 1.6.2
     add 3b21386  [MNG-7116] add support for mirrorOf external:http:*
     add 28b4ea9  [MNG-7117] add support for blocked mirror
     add 6712567  [MNG-7118] block HTTP repositories by default
     add 1e19805  [MNG-6075] Increase the model validation level to the next minor level version
     add 3e65637  [MNG-6808] Provide Maven BOM
     add a028346  [MNG-7102] The child modules of excluded projects are now excluded as well, making the behavior consistent with MNG-6981.
     add c3cf294  [MNG-6511] Optional project selection
     add 1ab29f5  [MNG-7128] keep blocked attribute from mirrors in artifact repositories
     add c4cd93d  [MNG-7102] Exclude all children of aggregators, even if the aggregator was already removed from the reactor.
     add 276c6a8  [MNG-7127] fix MavenCliTest.testStyleColors test in JDK 16
     add 7c742c2  [MNG-7112] Do not select child modules when --non-recursive is given.
     add b6461a5  [MNG-6806] fix typo
     add 4612956  [MNG-6806] use ${project.version} to avoid rewriting on release
     add 87cd496  [MNG-6656] add reference documentation on build/consumer transformers
     add 22954a0  [MNG-6656] rename maven-xml module to maven-model-transform
     add aa6b88c  Maven 3.8.1 released
     add e25cf17  [MNG-6656] move to o.a.m.model.transform + .sax
     add 1b6caed  [MNG-6656] rename build+consumer filters to buildToRaw+rawToConsumer
     add 9decf53  [MNG-6806] configure site for BOM reference documentation
     add 521c4c2  Run GitHub actions integration tests with Java 16 (#456)
     add b79d708  [MNG-6806] improve documentation
     add 86b96bf  fix SCM url
     add 2e51e10  update staging site to https://maven.apache.org/ref/4-LATEST
     add c4df060  fix javadoc
     add a88d3f0  [MNG-7136] update Maven 4 dependencies schema
     add da34c1e  [MNG-7136] crop image to fit content
     add 53dead3  [MNG-7136] add forgotten maven-slf4j-wrapper
     add 1524af8  [MNG-5937] init site for Maven Wrapper reference documentation
     add 57b006f  [MNG-7035] add menu
     add 9c631ab  Extend mvn -h for various features of Maven 4
     add b08e4d2  [MNG-6917] add wrapper lifecycle to reference documentation
     add d6e70e2  [MNG-6917] Update maven-wrapper-plugin to 3.0.2
     add f4009a1  Run GitHub actions integration tests with Java 17-ea (#466)
     add 1a65351  Revert "[MNG-6772] Prevent Super POM central entry from overriding"
     add 32cdc2e  [MNG-7090] mvnDebug does not work on Java 11+ Submitted by: Guillaume Dufour
     add 9ba84aa  [MNG-7149] Introduce MAVEN_DEBUG_ADDRESS in mvnDebug scripts
     add 83e3664  [MNG-6294] Convert MavenPluginValidator into a JSR 330 component
     add 195fb62  [MNG-7079] Upgrade to jansi 2.2.0 and mave-shared-utils 3.3.4
     add 5d6c6e2  [MNG-6915] Format help according to the terminal width
     add 59c5466  [MNG-7080] Add a --color option to simplify color support
     add 3e91767  [MNG-7032] Evaluate --help and --version after configuring the logging/color
     add fc806a2  [MNG-7151] Upgrade Maven Resolver to 1.7.0
     add 3fabb63  [MNG-6802] Fix bug in FileProfileActivator  (#347)
     add a202308  [MNG-6915] Adapt the logging width to the terminal width, including sensible limits.
     add 5c45b3f  [MNG-7117] update link to settings xsd for version 1.2.0
     add 12f3e7e  Remove maven-test-support in favor of plexus-testing
     add ab95197  Fix Checkstyle reported issues with maven-shared-resources 3
     add 706826e  Upgrade Checkstyle Plugin to 3.1.2/Checkstyle to 8.41.1
     add 371faf7  [MNG-7165] Upgrade JAnsi to 2.3.3
     add f5d19f4  Run Maven ITs with more JDKs
     add 6b56fc8  [MNG-7175] Upgrade Maven Resolver to 1.7.1
     add 6bed162  [MNG-7172] Remove expansion of Jansi native libraries
     add 73e00ed  [MNG-6843] Parallel build fails due to missing JAR artifacts in compilePath
     add cbaf7f7  Change @since from 3.7.0 to 4.0.0
     add b551be7  Document hacks as such
     add 78fc373  Trim trailing whitespace
     add 3670933  Add new ignores
     add d8be2f0  Add RAT exclude
     add a70828c  [MNG-7180] Make --color option behave more like BSD/GNU grep's --color option
     add 1fc605d  [MNG-7181] Make --version support -q
     add a7010c5  [MNG-6840] Upgrade commons-lang3 to 3.12.0
     add 46410d3  Improve the use of checkstyle in the build (#477)
     add 1052ec5  [MNG-7184] document .mavenrc/mavenrc_pre.bat|cmd and MAVEN_SKIP_RC
     add e29a661  [MNG-7185] Describe explicit and recommended version for VersionRange.createFromVersionSpec()
     add e8b9cad  Wrap line in consistency with Command script
     add e9a54c6  Use proper term: directory
     add 94df4a8  Apply consistent formatting
     add 8712063  [MNG-7190] Load mavenrc from /usr/local/etc also in Bourne shell script
     add 2321e03  [MNG-7190] add /usr/local/etc/mavenrc to reference documentation
     add f582ce8  [MNG-7047] Validate that repo configuration does not contain any expression
     add 0696cf1  [MNG-7131] maven.config doesn't handle arguments with spaces in them
     add b8cdac5  [MNG-7189] Remove undocumented environment variable MAVEN_BASEDIR in startup scripts
     add 6b37fcb  [MNG-7191] Remove undocumented environment variable MAVEN_CONFIG in startup scripts
     add 1328d6e  [MNG-7192] Remove unsed MAVEN_CMD_LINE_ARGS environment variable in startup scripts
     add a2f8106  [MNG-6656] Features must use userProperties instead of systemProperties
     add f7a775b  [MNG-6648] 'mavenrc_pre' script does not receive arguments like mavenrc in Bourne shell does
     add a2ab329  Warn also on Windows when JAVA_HOME isn't set
     add 9c69c78  remove unused property
     add 5fa834f  [MNG-7010] Omit "NB: JAVA_HOME should point to a JDK not a JRE"
     add 021e53f  [MNG-7196] Upgrade Jansi to 2.3.4
     add 6c67c9d  [MNG-7197] Simplify exit code handling in Windows command startup script
     add a21be1d  [MNG-7195] Rework JAVA_HOME handling
     add 52c12da  [MNG-7195] Rework JAVA_HOME handling
     add 06bc508  [MNG-7198] Upgrade SLF4J to 1.7.32
     add 43eb189  [chore] Update CI environment
     add ef62d7a  Merge pull request #516 from aheritier/ci-maven
     add 750cb6c  [MNG-7199] MAVENHOME_CONFIG var in mvnlauncher script improperly handles two options at once
     add a2a3df3  [MNG-7203] Introduce a long option --verbose and deprecate --debug
     add 5acdfb6  [MNG-7205] Simplify/unify Cygwin/MingGW handling in startup scripts
     add 0137f35  Document Maven 3.8.2 release
     add f594c0b  Add ModelSource test for MNG-5669
     add 48a9e04  [MNG-7209] Introduce a user mavenrc.cmd in Windows command script
     add 0682a1c  [MNG-7208] Introduce a system-wide mavenrc.cmd in Windows command script
     add b20bfb1  [MNG-7208] Document system-wide mavenrc.cmd in Windows command script
     add 92d2c2e  [MNG-7209] Document user mavenrc.cmd in Windows command script
     add 76d7f58  [MNG-7226] DefaultModelBuilder.buildRawModel fails (#528)
     add 067171d  [MNG-7246] Upgrade Plexus Cipher and Sec Dispatcher to 2.0
     add aa30d96  [MNG-7247] Upgrade Maven Resolver to 1.7.2
     add 406c525  [MNG-7250] Upgrade Sisu Inject/Plexus to 0.3.5
     add a6e462b  [MNG-7251] Fix threadLocalArtifactsHolder leaking into cloned project
     add 6b6589b  [MNG-7219] [Regression] plexus-cipher missing from transitive dependencies
     add 23ffe33  [MNG-7236] The DefaultPluginVersionResolver should cache results for the session
     add 8c297e9  [MNG-7254] Expand Windows native libraries for Jansi due to JDK-8195129 (workaround)
     add a1ba330  [MNG-7253] Display relocation message defined in model
     new b75b2b5  Removing code redundancy Using assertj, JUnit Jupiter
     new bad36cd  Removed all DisplayName annotations from test classes and replaced with DisplayName generator.
     new f645340  Using displayName in Interface.
     new d462ac3  Added author.
     new d8c51cc  WIP - Fixed code issue.
     new 656b81a  Improved code.

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (6dab523)
            \
             N -- N -- N   refs/heads/MODELTESTS_IMPROVEMENT (656b81a)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 6 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .github/workflows/maven.yml                        |   16 +-
 .gitignore                                         |    2 +
 .mvn/readme.txt                                    |    1 +
 CONTRIBUTING.md                                    |    8 +-
 Jenkinsfile                                        |   12 +-
 README.md                                          |   28 +-
 apache-maven/README.txt                            |   12 +-
 apache-maven/maven-wrapper.pom                     |    8 +-
 apache-maven/pom.xml                               |    6 +-
 apache-maven/src/assembly/maven/bin/mvnDebug       |    9 +-
 apache-maven/src/assembly/maven/bin/mvnDebug.cmd   |   23 +-
 apache-maven/src/assembly/maven/component.xml      |   17 +-
 apache-maven/src/assembly/maven/conf/settings.xml  |   11 +-
 .../src/assembly/maven/conf/toolchains.xml         |   40 +-
 .../src/assembly/maven/lib/jansi-native/README.txt |   11 +-
 apache-maven/src/assembly/shared/init              |   82 +-
 apache-maven/src/assembly/shared/init.cmd          |    7 +-
 apache-maven/src/assembly/shared/mvnlauncher       |    3 +-
 apache-maven/src/assembly/shared/mvnlauncher.cmd   |    1 -
 apache-maven/src/assembly/shared/mvnwDebug         |    9 +-
 apache-maven/src/assembly/shared/mvnwDebug.cmd     |   23 +-
 apache-maven/src/assembly/shared/mvnwlauncher      |    1 -
 apache-maven/src/assembly/shared/mvnwlauncher.cmd  |    1 -
 apache-maven/src/assembly/shared/run               |   28 +-
 apache-maven/src/assembly/shared/run.cmd           |   10 +-
 apache-maven/src/assembly/shared/validate          |   28 +-
 apache-maven/src/assembly/shared/validate.cmd      |   29 +-
 apache-maven/src/assembly/wrapper/bin.xml          |    2 +-
 apache-maven/src/assembly/wrapper/script/download  |    2 +-
 .../src/assembly/wrapper/script/download.cmd       |   12 +-
 .../shared/.mvn/wrapper/maven-wrapper.properties   |    4 +-
 .../.mvn/wrapper/MavenWrapperDownloader.java       |   10 +-
 .../main/appended-resources/META-INF/LICENSE.vm    |    6 +-
 .../src/main/appended-resources/META-INF/NOTICE.vm |   20 +-
 .../main/appended-resources/licenses/CDDL-1.0.txt  |  384 -------
 ...f4j-api-1.7.30.txt => MIT-slf4j-api-1.7.32.txt} |    0
 .../unrecognized-javax.annotation-api-1.3.2.txt    |  759 +++++++++++++
 apache-maven/src/site/apt/index.apt.vm             |   43 +
 .../apache/maven/settings/GlobalSettingsTest.java  |   12 +-
 .../checkstyle-suppressions.xml                    |   16 +-
 doap_Maven.rdf                                     |   18 +
 .../maven/artifact/handler/ArtifactHandler.java    |    4 +-
 .../artifact/repository/ArtifactRepository.java    |    6 +
 .../repository/ArtifactRepositoryPolicy.java       |    4 +-
 .../MultipleArtifactsNotFoundException.java        |   10 +-
 .../artifact/versioning/ComparableVersion.java     |    3 +-
 .../versioning/DefaultArtifactVersion.java         |    2 +-
 .../maven/artifact/versioning/VersionRange.java    |    5 +-
 .../apache/maven/artifact/ArtifactUtilsTest.java   |    8 +-
 .../apache/maven/artifact/DefaultArtifactTest.java |   23 +-
 .../artifact/versioning/ComparableVersionIT.java   |   18 +-
 .../artifact/versioning/ComparableVersionTest.java |   41 +-
 .../versioning/DefaultArtifactVersionTest.java     |   62 +-
 .../artifact/versioning/VersionRangeTest.java      |  655 ++++++------
 maven-bom/pom.xml                                  |  149 +++
 .../src/site/apt/index.apt                         |    9 +-
 {maven-core => maven-bom}/src/site/site.xml        |   23 +-
 .../org/apache/maven/building/DefaultProblem.java  |    8 +-
 .../java/org/apache/maven/building/FileSource.java |    2 +-
 .../apache/maven/building/ProblemCollector.java    |    8 +-
 .../maven/building/ProblemCollectorFactory.java    |    6 +-
 .../org/apache/maven/building/StringSource.java    |    2 +-
 .../building/DefaultProblemCollectorTest.java      |   15 +-
 .../apache/maven/building/DefaultProblemTest.java  |   28 +-
 .../org/apache/maven/building/FileSourceTest.java  |   22 +-
 .../building/ProblemCollectorFactoryTest.java      |   12 +-
 .../apache/maven/building/StringSourceTest.java    |    6 +-
 .../org/apache/maven/building/UrlSourceTest.java   |   22 +-
 maven-compat/pom.xml                               |    2 +-
 .../repository/DefaultArtifactRepository.java      |   12 +
 .../profiles/activation/FileProfileActivator.java  |    2 +-
 .../maven/repository/DefaultMirrorSelector.java    |   53 +-
 .../repository/legacy/DefaultWagonManager.java     |    2 +-
 .../repository/legacy/LegacyRepositorySystem.java  |    5 +
 .../resolver/DefaultLegacyArtifactCollector.java   |    2 +-
 .../AbstractArtifactComponentTestCase.java         |  127 +--
 .../artifact/deployer/ArtifactDeployerTest.java    |   17 +-
 .../deployer/SimpleArtifactMetadataSource.java     |   13 +-
 .../factory/DefaultArtifactFactoryTest.java        |   25 +-
 .../artifact/installer/ArtifactInstallerTest.java  |   15 +-
 .../artifact/metadata/TestMetadataSource.java      |   11 +-
 .../repository/MavenArtifactRepositoryTest.java    |    7 +-
 .../resolver/ArtifactResolutionExceptionTest.java  |    6 +-
 .../artifact/resolver/ArtifactResolverTest.java    |   59 +-
 .../resolver/DefaultArtifactResolverTest.java      |   33 +-
 .../resolver/filter/AndArtifactFilterTest.java     |    8 +-
 .../resolver/filter/FilterHashEqualsTest.java      |    6 +-
 .../resolver/filter/OrArtifactFilterTest.java      |    8 +-
 .../resolver/filter/ScopeArtifactFilterTest.java   |   10 +-
 .../maven/artifact/testutils/TestFileManager.java  |   11 +-
 .../transform/TransformationManagerTest.java       |   34 +-
 .../manager/DefaultProfileManagerTest.java         |   37 +-
 .../project/AbstractMavenProjectTestCase.java      |   54 +-
 .../maven/project/ClasspathArtifactResolver.java   |    7 +-
 .../org/apache/maven/project/ModelUtilsTest.java   |   30 +-
 .../apache/maven/project/ProjectClasspathTest.java |   66 +-
 .../apache/maven/project/TestArtifactResolver.java |   16 +-
 .../maven/project/TestMavenRepositorySystem.java   |   14 +-
 .../apache/maven/project/TestProjectBuilder.java   |    7 +-
 .../AbstractProjectInheritanceTestCase.java        |    2 +
 .../inheritance/t00/ProjectInheritanceTest.java    |    4 +
 .../inheritance/t01/ProjectInheritanceTest.java    |    4 +
 .../inheritance/t02/ProjectInheritanceTest.java    |   45 +-
 .../inheritance/t03/ProjectInheritanceTest.java    |    4 +
 .../inheritance/t04/ProjectInheritanceTest.java    |   16 +-
 .../inheritance/t05/ProjectInheritanceTest.java    |   14 +-
 .../inheritance/t06/ProjectInheritanceTest.java    |   16 +-
 .../inheritance/t07/ProjectInheritanceTest.java    |   19 +-
 .../inheritance/t08/ProjectInheritanceTest.java    |   15 +-
 .../inheritance/t09/ProjectInheritanceTest.java    |   38 +-
 .../inheritance/t10/ProjectInheritanceTest.java    |   22 +-
 .../inheritance/t11/ProjectInheritanceTest.java    |    9 +-
 .../inheritance/t12/ProjectInheritanceTest.java    |    7 +-
 .../inheritance/t12scm/ProjectInheritanceTest.java |    5 +
 .../project/path/DefaultPathTranslatorTest.java    |    7 +-
 .../repository/DefaultMirrorSelectorTest.java      |   11 +-
 .../repository/LegacyRepositorySystemTest.java     |   53 +-
 .../maven/repository/MirrorProcessorTest.java      |   42 +-
 .../legacy/DefaultUpdateCheckManagerTest.java      |   26 +-
 .../repository/legacy/DefaultWagonManagerTest.java |  193 ++--
 .../legacy/LegacyRepositorySystemTest.java         |   40 +-
 .../maven/repository/legacy/PerLookupWagon.java    |    6 +-
 .../maven/repository/legacy/StringWagon.java       |    8 +-
 .../org/apache/maven/repository/legacy/WagonA.java |    9 +-
 .../org/apache/maven/repository/legacy/WagonB.java |    9 +-
 .../org/apache/maven/repository/legacy/WagonC.java |    9 +-
 .../resolver/DefaultArtifactCollectorTest.java     |  285 ++---
 .../conflict/AbstractConflictResolverTest.java     |   56 +-
 .../conflict/FarthestConflictResolverTest.java     |    5 +
 .../conflict/NearestConflictResolverTest.java      |    5 +
 .../conflict/NewestConflictResolverTest.java       |    5 +
 .../conflict/OldestConflictResolverTest.java       |    5 +
 .../DefaultClasspathTransformationTest.java        |  145 +--
 .../DefaultGraphConflictResolutionPolicyTest.java  |   35 +-
 .../metadata/DefaultGraphConflictResolverTest.java |  189 ++--
 .../repository/metadata/TestMetadataSource.java    |   17 +-
 .../org/apache/maven/its/a/0.1/a-0.1.pom           |    2 +-
 .../org/apache/maven/its/b/0.1/b-0.1.pom           |    2 +-
 .../test/resources/inheritance-repo/t04/p0/pom.xml |   12 +-
 .../test/resources/inheritance-repo/t10/p0/pom.xml |   14 +-
 .../t12scm/maven/p0/1.0/p0-1.0.pom                 |    4 +-
 .../t12scm/maven/p1/1.0/p1-1.0.pom                 |    2 +-
 maven-core/pom.xml                                 |   34 +-
 .../org/apache/maven/ArtifactFilterManager.java    |    4 +-
 .../main/java/org/apache/maven/DefaultMaven.java   |  191 +++-
 .../maven/DefaultProjectDependenciesResolver.java  |    2 +-
 ...xception.java => MissingProfilesException.java} |   11 +-
 .../org/apache/maven/ProjectCycleException.java    |    2 +-
 .../main/java/org/apache/maven/ReactorReader.java  |   90 +-
 .../java/org/apache/maven/RepositoryUtils.java     |    7 +-
 .../repository/LegacyLocalRepositoryManager.java   |    9 +
 .../repository/MavenArtifactRepository.java        |   32 +-
 .../metadata/AbstractRepositoryMetadata.java       |   10 +-
 .../resolver/ArtifactResolutionRequest.java        |   11 +-
 .../resolver/ArtifactResolutionResult.java         |   10 +-
 .../apache/maven/bridge/MavenRepositorySystem.java |   77 +-
 .../maven/exception/DefaultExceptionHandler.java   |   11 +-
 .../apache/maven/execution/ActivationSettings.java |   60 +-
 .../maven/execution/BuildResumptionAnalyzer.java   |    2 +-
 .../maven/execution/BuildResumptionData.java       |   35 +-
 .../execution/BuildResumptionDataRepository.java   |    6 +-
 .../execution/DefaultBuildResumptionAnalyzer.java  |  130 +--
 .../DefaultBuildResumptionDataRepository.java      |   35 +-
 .../execution/DefaultMavenExecutionRequest.java    |   73 +-
 .../DefaultMavenExecutionRequestPopulator.java     |   20 +-
 .../maven/execution/MavenExecutionRequest.java     |   58 +
 .../execution/MavenExecutionRequestPopulator.java  |    2 +-
 .../org/apache/maven/execution/MavenSession.java   |   28 +-
 .../apache/maven/execution/ProfileActivation.java  |  171 +++
 .../apache/maven/execution/ProjectActivation.java  |  207 ++++
 .../maven/extension/internal/CoreExports.java      |    2 +-
 .../apache/maven/graph/DefaultGraphBuilder.java    |  104 +-
 .../aether/ConsumerModelSourceTransformer.java     |   18 +-
 .../DefaultRepositorySystemSessionFactory.java     |    6 +-
 .../internal/aether/LoggingRepositoryListener.java |    2 +-
 .../maven/lifecycle/DefaultLifecycleExecutor.java  |   22 -
 .../apache/maven/lifecycle/DefaultLifecycles.java  |   16 +-
 .../java/org/apache/maven/lifecycle/Lifecycle.java |    2 +-
 .../maven/lifecycle/MojoExecutionConfigurator.java |    2 +-
 .../lifecycle/internal/BuildListCalculator.java    |    2 +-
 .../DefaultLifecycleExecutionPlanCalculator.java   |   86 +-
 .../internal/DefaultLifecyclePluginAnalyzer.java   |   12 +-
 .../lifecycle/internal/DependencyContext.java      |    2 +-
 .../internal/LifecycleDependencyResolver.java      |   14 +-
 .../internal/LifecycleExecutionPlanCalculator.java |    5 +-
 .../lifecycle/internal/LifecycleModuleBuilder.java |    2 +-
 .../maven/lifecycle/internal/LifecycleStarter.java |    2 +-
 .../lifecycle/internal/ProjectArtifactFactory.java |    2 +-
 .../maven/lifecycle/internal/TaskSegment.java      |    2 +-
 .../lifecycle/internal/builder/BuilderCommon.java  |   35 +-
 .../multithreaded/MultiThreadedBuilder.java        |   21 +-
 .../builder/multithreaded/ThreadOutputMuxer.java   |    2 +-
 .../lifecycle/mapping/DefaultLifecycleMapping.java |    2 +-
 .../apache/maven/lifecycle/mapping/Lifecycle.java  |    8 -
 .../maven/lifecycle/mapping/LifecycleMojo.java     |   14 +-
 .../maven/lifecycle/mapping/LifecyclePhase.java    |   26 +-
 .../maven/plugin/DefaultPluginArtifactsCache.java  |    4 +-
 .../maven/plugin/DefaultPluginDescriptorCache.java |    4 +-
 .../maven/plugin/DefaultPluginRealmCache.java      |    6 +-
 .../apache/maven/plugin/MavenPluginManager.java    |    2 +-
 .../maven/plugin/PluginParameterException.java     |   39 +-
 .../plugin/PluginParameterExpressionEvaluator.java |    6 +-
 .../plugin/internal/DefaultMavenPluginManager.java |   15 +-
 .../DefaultMavenPluginValidator.java}              |   46 +-
 .../plugin/internal/MavenPluginValidator.java      |   12 +-
 .../internal/DefaultPluginVersionResolver.java     |   89 +-
 .../maven/project/DefaultProjectBuilder.java       |  181 +---
 .../DefaultProjectDependenciesResolver.java        |   12 -
 .../org/apache/maven/project/MavenProject.java     |   98 +-
 .../maven/project/ProjectBuildingException.java    |    8 +-
 .../apache/maven/project/ProjectModelResolver.java |    4 +-
 .../apache/maven/project/ReactorModelCache.java    |  167 ---
 .../org/apache/maven/project/ReactorModelPool.java |   20 +-
 .../maven/project/RepositorySessionDecorator.java  |    4 +-
 .../project/artifact/ActiveProjectArtifact.java    |    2 +-
 .../artifact/DefaultProjectArtifactsCache.java     |   30 +-
 .../project/artifact/MavenMetadataSource.java      |   13 +-
 .../project/artifact/ProjectArtifactsCache.java    |    2 +-
 .../project/collector/DefaultProjectsSelector.java |    7 +-
 .../collector/MultiModuleCollectionStrategy.java   |   16 +-
 .../collector/PomlessCollectionStrategy.java       |    2 +-
 .../collector/ProjectCollectionStrategy.java       |    2 +-
 .../legacy/metadata/AbstractArtifactMetadata.java  |   10 +-
 .../settings/SettingsConfigurationException.java   |    4 +-
 .../apache/maven/toolchain/DefaultToolchain.java   |   10 +-
 .../maven/toolchain/DefaultToolchainManager.java   |    6 +-
 .../toolchain/DefaultToolchainManagerPrivate.java  |    2 +-
 .../maven/toolchain/RequirementMatcherFactory.java |    4 +-
 .../maven/toolchain/ToolchainManagerPrivate.java   |    2 +-
 .../apache/maven/toolchain/ToolchainPrivate.java   |    2 +-
 .../building/DefaultToolchainsBuilder.java         |    8 +-
 .../building/DefaultToolchainsBuildingRequest.java |    2 +-
 .../building/DefaultToolchainsBuildingResult.java  |   10 +-
 .../building/ToolchainsBuildingResult.java         |    2 +-
 .../maven/toolchain/java/DefaultJavaToolChain.java |    2 +-
 .../toolchain/merge/MavenToolchainMerger.java      |    6 +-
 .../DefaultConsumerPomXMLFilterFactory.java        |   37 +-
 maven-core/src/main/mdo/toolchains.mdo             |    8 +-
 .../main/resources/META-INF/maven/extension.xml    |   12 +-
 .../main/resources/META-INF/plexus/components.xml  |    2 +-
 maven-core/src/site/apt/index.apt                  |    2 +-
 maven-core/src/site/apt/lifecycles.apt.vm          |    8 +-
 maven-core/src/site/apt/offline-mode.apt           |    2 +-
 .../maven/AbstractCoreMavenComponentTestCase.java  |   58 +-
 .../java/org/apache/maven/DefaultMavenTest.java    |   54 +-
 .../maven/MavenLifecycleParticipantTest.java       |   16 +-
 .../src/test/java/org/apache/maven/MavenTest.java  |   30 +-
 .../maven/ProjectDependenciesResolverTest.java     |   32 +-
 .../artifact/handler/ArtifactHandlerTest.java      |   31 +-
 .../filter/ExclusionArtifactFilterTest.java        |   24 +-
 .../configuration/DefaultBeanConfiguratorTest.java |   21 +-
 .../exception/DefaultExceptionHandlerTest.java     |    4 +-
 .../DefaultBuildResumptionAnalyzerTest.java        |   25 +-
 .../DefaultBuildResumptionDataRepositoryTest.java  |   35 +-
 .../DefaultMavenExecutionRequestPopulatorTest.java |   28 +-
 .../maven/execution/DefaultMavenExecutionTest.java |    8 +-
 .../scope/internal/MojoExecutionScopeTest.java     |   20 +-
 .../maven/graph/DefaultGraphBuilderTest.java       |  270 +++--
 .../graph/DefaultProjectDependencyGraphTest.java   |   17 +-
 .../aether/ConsumerModelSourceTransformerTest.java |    8 +-
 .../maven/lifecycle/DefaultLifecyclesTest.java     |   64 +-
 .../lifecycle/LifecycleExecutorSubModulesTest.java |   50 +-
 .../maven/lifecycle/LifecycleExecutorTest.java     |  102 +-
 .../maven/lifecycle/MavenExecutionPlanTest.java    |   12 +-
 .../lifecycle/MojoExecutionXPathContainer.java     |    2 +-
 .../internal/BuildListCalculatorTest.java          |   13 +-
 .../lifecycle/internal/BuilderCommonTest.java      |   22 +-
 .../internal/ConcurrencyDependencyGraphTest.java   |   17 +-
 .../internal/LifecycleDependencyResolverTest.java  |   18 +-
 .../LifecycleExecutionPlanCalculatorTest.java      |    4 +
 .../LifecycleTaskSegmentCalculatorImplTest.java    |   13 +-
 .../lifecycle/internal/PhaseRecorderTest.java      |    9 +-
 .../lifecycle/internal/ProjectBuildListTest.java   |    8 +-
 .../ConcurrencyDependencyGraphTest.java            |   11 +-
 .../multithreaded/ThreadOutputMuxerTest.java       |   33 +-
 .../lifecycle/internal/stub/AboutTheStubs.html     |    4 +-
 .../stub/LifecycleExecutionPlanCalculatorStub.java |    4 +-
 .../stub/ProjectDependencyGraphStubTest.java       |   24 +-
 .../lifecycle/mapping/LifecyclePhaseTest.java      |   24 +-
 .../org/apache/maven/plugin/PluginManagerTest.java |   40 +-
 .../maven/plugin/PluginParameterExceptionTest.java |   97 +-
 .../PluginParameterExpressionEvaluatorTest.java    |   61 +-
 .../plugin/internal/DefaultLegacySupportTest.java  |    9 +-
 .../plugin/internal/MavenPluginValidatorTest.java  |  105 ++
 .../project/AbstractMavenProjectTestCase.java      |   50 +-
 .../project/DefaultMavenProjectBuilderTest.java    |  273 +++--
 .../project/ExtensionDescriptorBuilderTest.java    |   29 +-
 .../org/apache/maven/project/MavenProjectTest.java |  102 +-
 .../apache/maven/project/PomConstructionTest.java  |  274 +++--
 .../apache/maven/project/ProjectBuilderTest.java   |   86 +-
 .../maven/project/ProjectModelResolverTest.java    |  125 +--
 .../apache/maven/project/ProjectSorterTest.java    |   20 +-
 .../artifact/DefaultMavenMetadataCacheTest.java    |   17 +-
 .../artifact/DefaultProjectArtifactsCacheTest.java |   33 +-
 .../project/artifact/MavenMetadataSourceTest.java  |   67 +-
 .../canonical/CanonicalProjectBuilderTest.java     |    5 +
 .../maven/project/harness/PomTestWrapper.java      |    4 +-
 .../internal/DefaultRuntimeInformationTest.java    |   72 +-
 .../settings/PomConstructionWithSettingsTest.java  |   47 +-
 .../apache/maven/settings/SettingsUtilsTest.java   |   10 +-
 .../DefaultToolchainManagerPrivateTest.java        |   12 +-
 .../toolchain/DefaultToolchainManagerTest.java     |    8 +-
 .../maven/toolchain/DefaultToolchainTest.java      |   12 +-
 .../toolchain/RequirementMatcherFactoryTest.java   |   14 +-
 .../building/DefaultToolchainsBuilderTest.java     |   10 +-
 .../building/ToolchainsBuildingExceptionTest.java  |    4 +-
 .../toolchain/merge/MavenToolchainMergerTest.java  |    4 +-
 .../projects/lifecycle-dependency-resolver/pom.xml |    4 +-
 .../lifecycle-dependency-resolver/war/pom.xml      |    4 +-
 .../project-with-inheritance/pom.xml               |    2 +-
 .../project-with-inheritance/pom.xml               |    2 +-
 .../project-builder/it0063/jdk/jre/placeholder.txt |    2 +-
 .../it0063/jdk/jre/placeholder.txt                 |    2 +-
 .../org/apache/maven/its/a/0.1/a-0.1.pom           |    2 +-
 .../org/apache/maven/its/b/0.1/b-0.1.pom           |    2 +-
 .../config-with-plugin-mng/pom.xml                 |   75 +-
 .../dependency-scope-inheritance/pom.xml           |   28 +-
 .../duplicate-exclusions-dependency/pom.xml        |   56 +-
 .../w-plugin-mgmt/pom.xml                          |    2 +-
 .../resources-project-builder/micromailer/pom.xml  |  218 ++--
 .../micromailer/spice-parent-9.pom                 |  186 ++--
 .../parent-interpolation/pom.xml                   |   30 +-
 .../parent-interpolation/sub/pom.xml               |   16 +-
 .../plugin-inheritance-simple/pom.xml              |   31 +-
 .../plugin-inheritance-simple/sub/pom.xml          |   38 +-
 .../plugin-management-dependencies/pom.xml         |   44 +-
 .../plugin-management-duplicate/pom.xml            |   66 +-
 .../plugin-management-duplicate/sub/pom.xml        |   12 +-
 .../pluginmanagement-inherited/pom.xml             |   34 +-
 .../pluginmanagement-inherited/sub/pom.xml         |   32 +-
 .../profile-properties-interpolation/pom.xml       |   86 +-
 .../properties-no-duplication/sub/pom.xml          |    6 +-
 .../reporting-interpolation/pom.xml                |   10 +-
 .../resources-settings/settings-no-pom/pom.xml     |   22 +-
 .../settings-no-pom/settings.xml                   |   34 +-
 .../test-pom-and-settings-interpolation/pom.xml    |    4 +-
 .../test/resources/META-INF/plexus/components.xml  |    8 +-
 .../org/apache/maven/execution/resume.properties   |    3 +-
 .../3.0-SNAPSHOT/maven-artifact-3.0-SNAPSHOT.pom   |   52 +-
 .../test/test-extension/1/test-extension-1.pom     |    6 +-
 .../1/test-lifecycle-and-artifactHandler-1.pom     |    4 +-
 .../apache/maven/maven-parent/5/maven-parent-5.pom |   10 +-
 .../plexus-classworlds-1.2-alpha-10.pom            |    2 +-
 .../1.1.6/plexus-components-1.1.6.pom              |   18 +-
 .../plexus-container-default-1.0-alpha-32.pom      |    4 +-
 .../plexus/plexus/1.0.10/plexus-1.0.10.pom         |    2 +-
 .../plexus/plexus/1.0.11/plexus-1.0.11.pom         |    8 +-
 .../codehaus/plexus/plexus/1.0.4/plexus-1.0.4.pom  |    2 +-
 .../codehaus/plexus/plexus/1.0.8/plexus-1.0.8.pom  |    4 +-
 .../codehaus/plexus/plexus/1.0.9/plexus-1.0.9.pom  |    2 +-
 .../resources/org/apache/maven/lifecycle/pom.xml   |    2 +-
 .../tests/project-caching/1/project-caching-1.pom  |    4 +-
 .../toolchain/model/toolchains-jdks-extend.xml     |    2 +-
 .../grandchild-check/child/grandchild/pom.xml      |   15 +-
 .../projects/grandchild-check/child/pom.xml        |   16 +-
 .../resources/projects/grandchild-check/pom.xml    |   10 +-
 .../{modelsource => modelsourcebasedir}/pom.xml    |   12 +-
 .../pom.xml                                        |   10 +-
 .../pom.xml                                        |   10 +-
 .../parent-version-range-local-valid/pom.xml       |   10 +-
 .../pom.xml => resources/projects/reread/pom1.xml} |    6 +-
 .../pom.xml => resources/projects/reread/pom2.xml} |    7 +-
 maven-embedder/pom.xml                             |   34 +-
 .../main/java/org/apache/maven/cli/CLIManager.java |   44 +-
 .../org/apache/maven/cli/CLIReportingUtils.java    |    7 +
 .../main/java/org/apache/maven/cli/CliRequest.java |   10 +-
 .../main/java/org/apache/maven/cli/MavenCli.java   |  251 ++---
 .../SettingsXmlConfigurationProcessor.java         |   16 +-
 .../maven/cli/event/ExecutionEventLogger.java      |   49 +-
 .../maven/cli/logging/BaseSlf4jConfiguration.java  |    6 +-
 .../impl/UnsupportedSlf4jBindingConfiguration.java |    8 +-
 maven-embedder/src/site/apt/index.apt.vm           |    7 +-
 .../maven/cli/CLIManagerDocumentationTest.java     |    9 +-
 .../java/org/apache/maven/cli/CLIManagerTest.java  |   12 +-
 .../apache/maven/cli/CLIReportingUtilsTest.java    |    6 +-
 .../org/apache/maven/cli/CleanArgumentTest.java    |    4 +-
 .../java/org/apache/maven/cli/MavenCliTest.java    |  212 ++--
 .../maven/cli/event/ExecutionEventLoggerTest.java  |   62 +-
 .../maven/cli/transfer/FileSizeFormatTest.java     |   17 +-
 .../src/test/projects/config/.mvn/maven.config     |    5 +-
 .../mavenConfigProperties/.mvn/maven.config        |    4 +-
 maven-model-builder/pom.xml                        |   16 +-
 .../java/org/apache/maven/feature/Features.java    |   38 +-
 .../building/AbstractModelSourceTransformer.java   |   30 +-
 .../maven/model/building/ArtifactModelSource.java  |   12 +-
 .../building/BuildModelSourceTransformer.java      |   20 +-
 .../building/DefaultBuildPomXMLFilterFactory.java  |   53 +-
 .../maven/model/building/DefaultModelBuilder.java  | 1124 ++++++++++----------
 .../model/building/DefaultModelBuilderFactory.java |   10 +-
 .../building/DefaultModelBuildingRequest.java      |   28 +-
 .../model/building/DefaultModelBuildingResult.java |   30 +
 .../maven/model/building/DefaultModelProblem.java  |    7 +-
 .../building/DefaultModelSourceTransformer.java    |    4 +-
 .../model/building/DefaultTransformerContext.java  |  151 +++
 .../maven/model/building/FileModelSource.java      |   18 +-
 .../maven/model/building/FileToRawModelMerger.java |  190 ++++
 .../model/building/FilterModelBuildingRequest.java |   16 +-
 .../apache/maven/model/building/ModelBuilder.java  |    2 +
 .../model/building/ModelBuildingException.java     |    8 +-
 .../maven/model/building/ModelBuildingRequest.java |   34 +-
 .../maven/model/building/ModelBuildingResult.java  |    7 +
 .../apache/maven/model/building/ModelCache.java    |   64 +-
 .../apache/maven/model/building/ModelCacheTag.java |   10 +-
 .../org/apache/maven/model/building/ModelData.java |  113 +-
 .../apache/maven/model/building/ModelProblem.java  |    2 +-
 .../model/building/ModelSourceTransformer.java     |   14 +-
 .../maven/model/building/StringModelSource.java    |    2 +-
 .../maven/model/building/TransformerContext.java   |   20 +-
 ...sformer.java => TransformerContextBuilder.java} |   33 +-
 .../maven/model/building/TransformerException.java |    2 +-
 .../maven/model/building/UrlModelSource.java       |    2 +-
 .../StringVisitorModelInterpolator.java            |    2 +-
 .../apache/maven/model/io/DefaultModelReader.java  |   14 +-
 .../org/apache/maven/model/io/ModelReader.java     |    6 +
 .../ProfileActivationFilePathInterpolator.java     |  103 ++
 .../profile/activation/FileProfileActivator.java   |   66 +-
 .../model/validation/DefaultModelValidator.java    |  145 ++-
 .../resources/org/apache/maven/model/pom-4.0.0.xml |   76 +-
 maven-model-builder/src/site/apt/index.apt         |   29 +-
 .../model/building/ComplexActivationTest.java      |   10 +-
 .../building/DefaultModelBuilderFactoryTest.java   |   41 +-
 .../model/building/DefaultModelBuilderTest.java    |  160 +++
 .../maven/model/building/FileModelSourceTest.java  |   22 +-
 .../model/building/FileToRawModelMergerTest.java   |   13 +-
 .../model/building/SimpleProblemCollector.java     |    1 -
 .../DefaultInheritanceAssemblerTest.java           |   79 +-
 .../AbstractModelInterpolatorTest.java             |   42 +-
 .../interpolation/MavenBuildTimestampTest.java     |    8 +-
 .../StringSearchModelInterpolatorTest.java         |   37 +-
 .../StringVisitorModelInterpolatorTest.java        |    9 +-
 .../maven/model/merge/MavenModelMergerTest.java    |   12 +-
 .../maven/model/path/DefaultUrlNormalizerTest.java |    6 +-
 .../activation/AbstractProfileActivatorTest.java   |   24 +-
 .../activation/FileProfileActivatorTest.java       |  131 +++
 .../activation/JdkVersionProfileActivatorTest.java |    8 +
 .../activation/PropertyProfileActivatorTest.java   |   11 +
 .../validation/DefaultModelValidatorTest.java      |  209 ++--
 .../module-path-not-artifactId-child.xml           |    2 +-
 .../module-path-not-artifactId-expected.xml        |    2 +-
 ...-ids-pom.xml => invalid-coordinate-ids-pom.xml} |    0
 .../poms/validation/invalid-profile-ids.xml        |   43 +-
 .../raw-model/bad-ci-friendly-sha1plus.xml         |   18 +-
 .../raw-model/bad-ci-friendly-sha1plus2.xml        |   18 +-
 .../poms/validation/raw-model/bad-ci-friendly.xml  |   18 +-
 .../raw-model/bad-parent-version-latest.xml        |   30 +-
 .../raw-model/bad-parent-version-release.xml       |   30 +-
 .../raw-model/ok-ci-friendly-all-expressions.xml   |   18 +-
 .../raw-model/ok-ci-friendly-changelist.xml        |   18 +-
 .../raw-model/ok-ci-friendly-revision.xml          |   18 +-
 .../validation/raw-model/ok-ci-friendly-sha1.xml   |   18 +-
 .../repository-with-basedir-expression.xml         |   33 +-
 .../raw-model/repository-with-expression.xml       |   37 +-
 .../poms/validation/raw-model/self-referencing.xml |   32 +-
 {maven-xml => maven-model-transform}/pom.xml       |    9 +-
 .../model/transform}/AbstractEventXMLFilter.java   |   53 +-
 .../model/transform/BuildToRawPomXMLFilter.java    |   17 +-
 .../transform/BuildToRawPomXMLFilterFactory.java   |   69 +-
 .../transform/BuildToRawPomXMLFilterListener.java  |   10 +-
 .../model/transform}/CiFriendlyXMLFilter.java      |   34 +-
 .../maven/model/transform}/DependencyKey.java      |   26 +-
 .../maven/model/transform}/FastForwardFilter.java  |   23 +-
 .../maven/model/transform}/ModulesXMLFilter.java   |   22 +-
 .../maven/model/transform}/ParentXMLFilter.java    |   75 +-
 .../model/transform/RawToConsumerPomXMLFilter.java |   20 +-
 .../RawToConsumerPomXMLFilterFactory.java          |   56 +-
 .../transform}/ReactorDependencyXMLFilter.java     |   24 +-
 .../model/transform}/RelativePathXMLFilter.java    |   20 +-
 .../maven/model/transform}/RelativeProject.java    |   14 +-
 .../model/transform/sax}/AbstractSAXFilter.java    |   32 +-
 .../model/transform/sax}/CommentRenormalizer.java  |   10 +-
 .../maven/model/transform/sax}/Factories.java      |   19 +-
 .../maven/model/transform}/sax/SAXEvent.java       |    4 +-
 .../model/transform}/sax/SAXEventFactory.java      |   10 +-
 .../maven/model/transform}/sax/SAXEventUtils.java  |   12 +-
 maven-model-transform/src/site/apt/index.apt       |   73 ++
 .../src/site/site.xml                              |    0
 .../model/transform}/AbstractXMLFilterTests.java   |   66 +-
 .../model/transform}/CiFriendlyXMLFilterTest.java  |   25 +-
 .../model/transform}/ConsumerPomXMLFilterTest.java |  253 ++---
 .../model/transform}/ModulesXMLFilterTest.java     |  100 +-
 .../model/transform}/ParentXMLFilterTest.java      |   74 +-
 .../transform}/ReactorDependencyXMLFilterTest.java |  108 +-
 .../transform}/RelativePathXMLFilterTest.java      |   39 +-
 .../model/transform}/sax/ChainedFilterTest.java    |   12 +-
 .../transform/sax}/CommentRenormalizerTest.java    |   42 +-
 .../model/transform}/sax/SAXEventUtilsTest.java    |    8 +-
 maven-model/pom.xml                                |    6 +-
 .../org/apache/maven/model/merge/ModelMerger.java  |   12 +-
 maven-model/src/main/mdo/maven.mdo                 |    7 +-
 .../org/apache/maven/model/ModelTestInterface.java |   10 +-
 .../apache/maven/model/merge/ModelMergerTest.java  |   67 +-
 .../DuplicateMojoDescriptorException.java          |    4 +-
 .../maven/plugin/logging/SystemStreamLog.java      |    6 +-
 .../descriptor/PluginDescriptorBuilderTest.java    |    6 +-
 maven-resolver-provider/pom.xml                    |   19 +
 .../internal/ArtifactDescriptorReaderDelegate.java |    2 +-
 .../internal/ArtifactDescriptorUtils.java          |   18 +-
 .../internal/DefaultArtifactDescriptorReader.java  |   19 +-
 .../repository/internal/DefaultModelCache.java     |  153 ++-
 .../repository/internal/DefaultModelResolver.java  |    2 +-
 .../internal/DefaultVersionRangeResolver.java      |    2 +-
 .../internal/DefaultVersionResolver.java           |    2 +-
 .../repository/internal/MavenAetherModule.java     |   80 --
 .../internal/MavenRepositorySystemUtils.java       |    2 +
 .../internal/AbstractRepositoryTestCase.java       |   41 +-
 .../DefaultArtifactDescriptorReaderTest.java       |   17 +-
 .../internal/DefaultModelResolverTest.java         |  121 +--
 .../internal/DefaultVersionResolverTest.java       |   30 +-
 .../internal/MavenRepositorySystemUtilsTest.java   |    7 +-
 .../internal/RemoteSnapshotMetadataTest.java       |   17 +-
 .../repository/internal/RepositorySystemTest.java  |   20 +-
 maven-settings-builder/pom.xml                     |    2 +-
 .../settings/building/DefaultSettingsProblem.java  |    7 +-
 .../settings/building/FileSettingsSource.java      |    2 +-
 .../building/SettingsBuildingException.java        |    8 +-
 .../maven/settings/building/SettingsSource.java    |    2 +-
 .../settings/building/StringSettingsSource.java    |    2 +-
 .../maven/settings/building/UrlSettingsSource.java |    4 +-
 .../maven/settings/merge/MavenSettingsMerger.java  |    5 +-
 .../validation/DefaultSettingsValidator.java       |    2 +-
 .../DefaultSettingsBuilderFactoryTest.java         |    6 +-
 .../validation/DefaultSettingsValidatorTest.java   |   31 +-
 maven-settings/pom.xml                             |    2 +-
 maven-settings/src/main/mdo/settings.mdo           |   13 +
 maven-settings/src/site/apt/index.apt              |    2 +-
 .../org/slf4j/impl/MavenLoggerFactoryTest.java     |   20 +-
 maven-slf4j-wrapper/pom.xml                        |    5 +
 .../maven/logwrapper/LogLevelRecorderTest.java     |   10 +-
 maven-wrapper/pom.xml                              |    7 +-
 .../apache/maven/wrapper/BootstrapMainStarter.java |    2 +-
 .../java/org/apache/maven/wrapper/Installer.java   |    6 +-
 .../org/apache/maven/wrapper/MavenWrapperMain.java |    2 +-
 .../src/site/apt/index.apt                         |    8 +-
 .../src/site/site.xml                              |    0
 .../org/apache/maven/wrapper/DownloaderTest.java   |   19 +-
 .../org/apache/maven/wrapper/InstallerTest.java    |   24 +-
 .../apache/maven/wrapper/PathAssemblerTest.java    |   15 +-
 .../apache/maven/wrapper/WrapperExecutorTest.java  |  117 +-
 pom.xml                                            |  241 +++--
 src/site/resources/images/maven-deps.png           |  Bin 104566 -> 160957 bytes
 src/site/xdoc/index.xml                            |   73 +-
 src/site/xdoc/maven-deps.odg                       |  Bin 19887 -> 22491 bytes
 542 files changed, 10723 insertions(+), 8002 deletions(-)
 create mode 100644 .mvn/readme.txt
 delete mode 100644 apache-maven/src/main/appended-resources/licenses/CDDL-1.0.txt
 rename apache-maven/src/main/appended-resources/licenses/{MIT-slf4j-api-1.7.30.txt => MIT-slf4j-api-1.7.32.txt} (100%)
 create mode 100644 apache-maven/src/main/appended-resources/licenses/unrecognized-javax.annotation-api-1.3.2.txt
 create mode 100644 apache-maven/src/site/apt/index.apt.vm
 copy maven-embedder/src/examples/simple-project/settings.xml => build/checkstyle-suppressions.xml (68%)
 create mode 100644 maven-bom/pom.xml
 copy maven-model-builder/src/site/apt/super-pom.apt.vm => maven-bom/src/site/apt/index.apt (79%)
 copy {maven-core => maven-bom}/src/site/site.xml (73%)
 copy maven-core/src/main/java/org/apache/maven/{lifecycle/internal/builder/BuilderNotFoundException.java => MissingProfilesException.java} (75%)
 copy maven-plugin-api/src/main/java/org/apache/maven/plugin/descriptor/Requirement.java => maven-core/src/main/java/org/apache/maven/execution/ActivationSettings.java (50%)
 create mode 100644 maven-core/src/main/java/org/apache/maven/execution/ProfileActivation.java
 create mode 100644 maven-core/src/main/java/org/apache/maven/execution/ProjectActivation.java
 rename maven-core/src/main/java/org/apache/maven/plugin/{MavenPluginValidator.java => internal/DefaultMavenPluginValidator.java} (64%)
 copy maven-artifact/src/main/java/org/apache/maven/artifact/resolver/filter/ArtifactFilter.java => maven-core/src/main/java/org/apache/maven/plugin/internal/MavenPluginValidator.java (75%)
 delete mode 100644 maven-core/src/main/java/org/apache/maven/project/ReactorModelCache.java
 create mode 100644 maven-core/src/test/java/org/apache/maven/plugin/internal/MavenPluginValidatorTest.java
 copy maven-core/src/test/resources/projects/{modelsource => modelsourcebasedir}/pom.xml (60%)
 copy maven-core/src/test/{resources-project-builder/system-property-interpolation/pom.xml => resources/projects/reread/pom1.xml} (91%)
 copy maven-core/src/test/{resources-project-builder/system-property-interpolation/pom.xml => resources/projects/reread/pom2.xml} (91%)
 create mode 100644 maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultTransformerContext.java
 create mode 100644 maven-model-builder/src/main/java/org/apache/maven/model/building/FileToRawModelMerger.java
 copy maven-model-builder/src/main/java/org/apache/maven/model/building/{DefaultModelSourceTransformer.java => TransformerContextBuilder.java} (55%)
 create mode 100644 maven-model-builder/src/main/java/org/apache/maven/model/path/ProfileActivationFilePathInterpolator.java
 create mode 100644 maven-model-builder/src/test/java/org/apache/maven/model/building/DefaultModelBuilderTest.java
 create mode 100644 maven-model-builder/src/test/java/org/apache/maven/model/profile/activation/FileProfileActivatorTest.java
 rename maven-model-builder/src/test/resources/poms/validation/{invalid-ids-pom.xml => invalid-coordinate-ids-pom.xml} (100%)
 copy maven-core/src/test/resources-project-builder/multiple-repos/pom.xml => maven-model-builder/src/test/resources/poms/validation/invalid-profile-ids.xml (60%)
 copy maven-xml/pom.xml => maven-model-builder/src/test/resources/poms/validation/raw-model/repository-with-basedir-expression.xml (67%)
 copy maven-xml/pom.xml => maven-model-builder/src/test/resources/poms/validation/raw-model/repository-with-expression.xml (67%)
 rename {maven-xml => maven-model-transform}/pom.xml (85%)
 rename {maven-xml/src/main/java/org/apache/maven/xml/sax/filter => maven-model-transform/src/main/java/org/apache/maven/model/transform}/AbstractEventXMLFilter.java (92%)
 rename maven-xml/src/main/java/org/apache/maven/xml/sax/filter/BuildPomXMLFilter.java => maven-model-transform/src/main/java/org/apache/maven/model/transform/BuildToRawPomXMLFilter.java (81%)
 rename maven-xml/src/main/java/org/apache/maven/xml/sax/filter/BuildPomXMLFilterFactory.java => maven-model-transform/src/main/java/org/apache/maven/model/transform/BuildToRawPomXMLFilterFactory.java (67%)
 rename maven-xml/src/main/java/org/apache/maven/xml/sax/filter/BuildPomXMLFilterListener.java => maven-model-transform/src/main/java/org/apache/maven/model/transform/BuildToRawPomXMLFilterListener.java (86%)
 rename {maven-xml/src/main/java/org/apache/maven/xml/sax/filter => maven-model-transform/src/main/java/org/apache/maven/model/transform}/CiFriendlyXMLFilter.java (88%)
 rename {maven-xml/src/main/java/org/apache/maven/xml/sax/filter => maven-model-transform/src/main/java/org/apache/maven/model/transform}/DependencyKey.java (93%)
 rename {maven-xml/src/main/java/org/apache/maven/xml/sax/filter => maven-model-transform/src/main/java/org/apache/maven/model/transform}/FastForwardFilter.java (95%)
 rename {maven-xml/src/main/java/org/apache/maven/xml/sax/filter => maven-model-transform/src/main/java/org/apache/maven/model/transform}/ModulesXMLFilter.java (94%)
 rename {maven-xml/src/main/java/org/apache/maven/xml/sax/filter => maven-model-transform/src/main/java/org/apache/maven/model/transform}/ParentXMLFilter.java (86%)
 rename maven-xml/src/main/java/org/apache/maven/xml/sax/filter/ConsumerPomXMLFilter.java => maven-model-transform/src/main/java/org/apache/maven/model/transform/RawToConsumerPomXMLFilter.java (80%)
 rename maven-xml/src/main/java/org/apache/maven/xml/sax/filter/ConsumerPomXMLFilterFactory.java => maven-model-transform/src/main/java/org/apache/maven/model/transform/RawToConsumerPomXMLFilterFactory.java (54%)
 rename {maven-xml/src/main/java/org/apache/maven/xml/sax/filter => maven-model-transform/src/main/java/org/apache/maven/model/transform}/ReactorDependencyXMLFilter.java (95%)
 rename {maven-xml/src/main/java/org/apache/maven/xml/sax/filter => maven-model-transform/src/main/java/org/apache/maven/model/transform}/RelativePathXMLFilter.java (95%)
 rename {maven-xml/src/main/java/org/apache/maven/xml/sax/filter => maven-model-transform/src/main/java/org/apache/maven/model/transform}/RelativeProject.java (95%)
 rename {maven-xml/src/main/java/org/apache/maven/xml/sax/filter => maven-model-transform/src/main/java/org/apache/maven/model/transform/sax}/AbstractSAXFilter.java (89%)
 rename {maven-xml/src/main/java/org/apache/maven/xml/sax/ext => maven-model-transform/src/main/java/org/apache/maven/model/transform/sax}/CommentRenormalizer.java (95%)
 rename {maven-xml/src/main/java/org/apache/maven/xml => maven-model-transform/src/main/java/org/apache/maven/model/transform/sax}/Factories.java (89%)
 rename {maven-xml/src/main/java/org/apache/maven/xml => maven-model-transform/src/main/java/org/apache/maven/model/transform}/sax/SAXEvent.java (95%)
 rename {maven-xml/src/main/java/org/apache/maven/xml => maven-model-transform/src/main/java/org/apache/maven/model/transform}/sax/SAXEventFactory.java (98%)
 rename {maven-xml/src/main/java/org/apache/maven/xml => maven-model-transform/src/main/java/org/apache/maven/model/transform}/sax/SAXEventUtils.java (94%)
 create mode 100644 maven-model-transform/src/site/apt/index.apt
 copy {maven-slf4j-wrapper => maven-model-transform}/src/site/site.xml (100%)
 rename {maven-xml/src/test/java/org/apache/maven/xml/sax/filter => maven-model-transform/src/test/java/org/apache/maven/model/transform}/AbstractXMLFilterTests.java (91%)
 rename {maven-xml/src/test/java/org/apache/maven/xml/sax/filter => maven-model-transform/src/test/java/org/apache/maven/model/transform}/CiFriendlyXMLFilterTest.java (78%)
 rename {maven-xml/src/test/java/org/apache/maven/xml/sax/filter => maven-model-transform/src/test/java/org/apache/maven/model/transform}/ConsumerPomXMLFilterTest.java (65%)
 rename {maven-xml/src/test/java/org/apache/maven/xml/sax/filter => maven-model-transform/src/test/java/org/apache/maven/model/transform}/ModulesXMLFilterTest.java (54%)
 rename {maven-xml/src/test/java/org/apache/maven/xml/sax/filter => maven-model-transform/src/test/java/org/apache/maven/model/transform}/ParentXMLFilterTest.java (80%)
 rename {maven-xml/src/test/java/org/apache/maven/xml/sax/filter => maven-model-transform/src/test/java/org/apache/maven/model/transform}/ReactorDependencyXMLFilterTest.java (67%)
 rename {maven-xml/src/test/java/org/apache/maven/xml/sax/filter => maven-model-transform/src/test/java/org/apache/maven/model/transform}/RelativePathXMLFilterTest.java (90%)
 rename {maven-xml/src/test/java/org/apache/maven/xml => maven-model-transform/src/test/java/org/apache/maven/model/transform}/sax/ChainedFilterTest.java (96%)
 rename {maven-xml/src/test/java/org/apache/maven/xml/sax/ext => maven-model-transform/src/test/java/org/apache/maven/model/transform/sax}/CommentRenormalizerTest.java (68%)
 rename {maven-xml/src/test/java/org/apache/maven/xml => maven-model-transform/src/test/java/org/apache/maven/model/transform}/sax/SAXEventUtilsTest.java (88%)
 delete mode 100644 maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/MavenAetherModule.java
 copy maven-embedder/src/site/apt/cli.apt.vm => maven-wrapper/src/site/apt/index.apt (84%)
 copy {maven-slf4j-wrapper => maven-wrapper}/src/site/site.xml (100%)

[maven] 04/06: Added author.

Posted by kh...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

khmarbaise pushed a commit to branch MODELTESTS_IMPROVEMENT
in repository https://gitbox.apache.org/repos/asf/maven.git

commit d462ac314c5bdc94df202916ef651ae48d8dc464
Author: Karl Heinz Marbaise <kh...@apache.org>
AuthorDate: Tue Dec 10 18:31:51 2019 +0100

    Added author.
---
 .../src/test/java/org/apache/maven/model/ModelTestInterface.java     | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/maven-model/src/test/java/org/apache/maven/model/ModelTestInterface.java b/maven-model/src/test/java/org/apache/maven/model/ModelTestInterface.java
index b51bc3e..f4774b3 100644
--- a/maven-model/src/test/java/org/apache/maven/model/ModelTestInterface.java
+++ b/maven-model/src/test/java/org/apache/maven/model/ModelTestInterface.java
@@ -27,6 +27,11 @@ import org.junit.jupiter.api.Test;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatCode;
 
+/**
+ * Interface as a test template for all model tests.
+ *
+ * @author Karl Heinz Marbaise
+ */
 @DisplayNameGeneration( ModelTestInterface.NameGenerator.class )
 interface ModelTestInterface< T >
 {

[maven] 02/06: Removed all DisplayName annotations from test classes and replaced with DisplayName generator.

Posted by kh...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

khmarbaise pushed a commit to branch MODELTESTS_IMPROVEMENT
in repository https://gitbox.apache.org/repos/asf/maven.git

commit bad36cdc523ace1ffe1140a2dee30c8fed2590fe
Author: Karl Heinz Marbaise <kh...@apache.org>
AuthorDate: Mon Dec 9 20:33:58 2019 +0100

    Removed all DisplayName annotations from test classes and
    replaced with DisplayName generator.
---
 .../org/apache/maven/model/ActivationFileTest.java   |  3 ---
 .../org/apache/maven/model/ActivationOSTest.java     |  3 ---
 .../apache/maven/model/ActivationPropertyTest.java   |  3 ---
 .../java/org/apache/maven/model/ActivationTest.java  |  3 ---
 .../test/java/org/apache/maven/model/BuildTest.java  |  3 ---
 .../org/apache/maven/model/CiManagementTest.java     |  3 ---
 .../java/org/apache/maven/model/ContributorTest.java |  3 ---
 .../apache/maven/model/DependencyManagementTest.java |  3 ---
 .../java/org/apache/maven/model/DependencyTest.java  |  3 ---
 .../apache/maven/model/DeploymentRepositoryTest.java |  3 ---
 .../java/org/apache/maven/model/DeveloperTest.java   |  3 ---
 .../maven/model/DistributionManagementTest.java      |  3 ---
 .../java/org/apache/maven/model/ExclusionTest.java   |  3 ---
 .../java/org/apache/maven/model/ExtensionTest.java   |  3 ---
 .../org/apache/maven/model/IssueManagementTest.java  |  3 ---
 .../java/org/apache/maven/model/LicenseTest.java     |  3 ---
 .../java/org/apache/maven/model/MailingListTest.java |  3 ---
 .../test/java/org/apache/maven/model/ModelTest.java  |  3 ---
 .../org/apache/maven/model/ModelTestInterface.java   | 20 +++++++++++++++-----
 .../java/org/apache/maven/model/NotifierTest.java    |  3 ---
 .../org/apache/maven/model/OrganizationTest.java     |  3 ---
 .../test/java/org/apache/maven/model/ParentTest.java |  3 ---
 .../apache/maven/model/PluginConfigurationTest.java  |  3 ---
 .../org/apache/maven/model/PluginContainerTest.java  |  3 ---
 .../org/apache/maven/model/PluginExecutionTest.java  |  3 ---
 .../org/apache/maven/model/PluginManagementTest.java |  3 ---
 .../test/java/org/apache/maven/model/PluginTest.java |  3 ---
 .../org/apache/maven/model/PrerequisitesTest.java    |  3 ---
 .../java/org/apache/maven/model/ProfileTest.java     |  3 ---
 .../java/org/apache/maven/model/RelocationTest.java  |  3 ---
 .../org/apache/maven/model/ReportPluginTest.java     |  3 ---
 .../java/org/apache/maven/model/ReportSetTest.java   |  3 ---
 .../java/org/apache/maven/model/ReportingTest.java   |  3 ---
 .../org/apache/maven/model/RepositoryPolicyTest.java |  3 ---
 .../java/org/apache/maven/model/RepositoryTest.java  |  3 ---
 .../java/org/apache/maven/model/ResourceTest.java    |  3 ---
 .../test/java/org/apache/maven/model/ScmTest.java    |  3 ---
 .../test/java/org/apache/maven/model/SiteTest.java   |  3 ---
 38 files changed, 15 insertions(+), 116 deletions(-)

diff --git a/maven-model/src/test/java/org/apache/maven/model/ActivationFileTest.java b/maven-model/src/test/java/org/apache/maven/model/ActivationFileTest.java
index d86651d..d43d6cb 100644
--- a/maven-model/src/test/java/org/apache/maven/model/ActivationFileTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/ActivationFileTest.java
@@ -19,14 +19,11 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.DisplayName;
-
 /**
  * Tests {@code ActivationFile}.
  *
  * @author Benjamin Bentmann
  */
-@DisplayName( "ActivationFile" )
 class ActivationFileTest implements ModelTestInterface< ActivationFile >
 {
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/ActivationOSTest.java b/maven-model/src/test/java/org/apache/maven/model/ActivationOSTest.java
index 5820aed..bc823a4 100644
--- a/maven-model/src/test/java/org/apache/maven/model/ActivationOSTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/ActivationOSTest.java
@@ -19,14 +19,11 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.DisplayName;
-
 /**
  * Tests {@code ActivationOS}.
  *
  * @author Benjamin Bentmann
  */
-@DisplayName( "ActivationOS" )
 class ActivationOSTest implements ModelTestInterface< ActivationOS >
 {
 
diff --git a/maven-model/src/test/java/org/apache/maven/model/ActivationPropertyTest.java b/maven-model/src/test/java/org/apache/maven/model/ActivationPropertyTest.java
index 1727d29..4d618c7 100644
--- a/maven-model/src/test/java/org/apache/maven/model/ActivationPropertyTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/ActivationPropertyTest.java
@@ -19,14 +19,11 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.DisplayName;
-
 /**
  * Tests {@code ActivationProperty}.
  *
  * @author Benjamin Bentmann
  */
-@DisplayName( "ActivationProperty" )
 class ActivationPropertyTest implements ModelTestInterface< ActivationProperty >
 {
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/ActivationTest.java b/maven-model/src/test/java/org/apache/maven/model/ActivationTest.java
index 34d82e1..b22fc38 100644
--- a/maven-model/src/test/java/org/apache/maven/model/ActivationTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/ActivationTest.java
@@ -19,14 +19,11 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.DisplayName;
-
 /**
  * Tests {@code Activation}.
  *
  * @author Benjamin Bentmann
  */
-@DisplayName( "Activation" )
 class ActivationTest implements ModelTestInterface< Activation >
 {
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/BuildTest.java b/maven-model/src/test/java/org/apache/maven/model/BuildTest.java
index e1488ad..825db03 100644
--- a/maven-model/src/test/java/org/apache/maven/model/BuildTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/BuildTest.java
@@ -19,14 +19,11 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.DisplayName;
-
 /**
  * Tests {@code Build}.
  *
  * @author Benjamin Bentmann
  */
-@DisplayName( "Build" )
 class BuildTest implements ModelTestInterface< Build >
 {
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/CiManagementTest.java b/maven-model/src/test/java/org/apache/maven/model/CiManagementTest.java
index 5dacbfd..1b32bb3 100644
--- a/maven-model/src/test/java/org/apache/maven/model/CiManagementTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/CiManagementTest.java
@@ -19,14 +19,11 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.DisplayName;
-
 /**
  * Tests {@code CiManagement}.
  *
  * @author Benjamin Bentmann
  */
-@DisplayName( "CiManagement" )
 class CiManagementTest implements ModelTestInterface< CiManagement >
 {
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/ContributorTest.java b/maven-model/src/test/java/org/apache/maven/model/ContributorTest.java
index 3853cd1..249eb9b 100644
--- a/maven-model/src/test/java/org/apache/maven/model/ContributorTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/ContributorTest.java
@@ -19,14 +19,11 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.DisplayName;
-
 /**
  * Tests {@code Contributor}.
  *
  * @author Benjamin Bentmann
  */
-@DisplayName( "Contributore" )
 class ContributorTest implements ModelTestInterface< Contributor >
 {
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/DependencyManagementTest.java b/maven-model/src/test/java/org/apache/maven/model/DependencyManagementTest.java
index d4fd03a..3961c9a 100644
--- a/maven-model/src/test/java/org/apache/maven/model/DependencyManagementTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/DependencyManagementTest.java
@@ -19,14 +19,11 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.DisplayName;
-
 /**
  * Tests {@code DependencyManagement}.
  *
  * @author Benjamin Bentmann
  */
-@DisplayName( "DependencyManagement" )
 class DependencyManagementTest implements ModelTestInterface< DependencyManagement >
 {
 
diff --git a/maven-model/src/test/java/org/apache/maven/model/DependencyTest.java b/maven-model/src/test/java/org/apache/maven/model/DependencyTest.java
index 9438b97..29ae942 100644
--- a/maven-model/src/test/java/org/apache/maven/model/DependencyTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/DependencyTest.java
@@ -19,14 +19,11 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.DisplayName;
-
 /**
  * Tests {@code Dependency}.
  *
  * @author Benjamin Bentmann
  */
-@DisplayName( "Dependency" )
 class DependencyTest implements ModelTestInterface< Dependency >
 {
 
diff --git a/maven-model/src/test/java/org/apache/maven/model/DeploymentRepositoryTest.java b/maven-model/src/test/java/org/apache/maven/model/DeploymentRepositoryTest.java
index d598f6d..2e5d287 100644
--- a/maven-model/src/test/java/org/apache/maven/model/DeploymentRepositoryTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/DeploymentRepositoryTest.java
@@ -19,14 +19,11 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.DisplayName;
-
 /**
  * Tests {@code DeploymentRepository}.
  *
  * @author Benjamin Bentmann
  */
-@DisplayName( "DeploymentRepository" )
 class DeploymentRepositoryTest implements ModelTestInterface< DeploymentRepository >
 {
 
diff --git a/maven-model/src/test/java/org/apache/maven/model/DeveloperTest.java b/maven-model/src/test/java/org/apache/maven/model/DeveloperTest.java
index daa0e68..4886f93 100644
--- a/maven-model/src/test/java/org/apache/maven/model/DeveloperTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/DeveloperTest.java
@@ -19,14 +19,11 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.DisplayName;
-
 /**
  * Tests {@code Developer}.
  *
  * @author Benjamin Bentmann
  */
-@DisplayName( "Developer" )
 class DeveloperTest implements ModelTestInterface< Developer >
 {
 
diff --git a/maven-model/src/test/java/org/apache/maven/model/DistributionManagementTest.java b/maven-model/src/test/java/org/apache/maven/model/DistributionManagementTest.java
index c514ca0..df53365 100644
--- a/maven-model/src/test/java/org/apache/maven/model/DistributionManagementTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/DistributionManagementTest.java
@@ -19,14 +19,11 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.DisplayName;
-
 /**
  * Tests {@code DistributionManagement}.
  *
  * @author Benjamin Bentmann
  */
-@DisplayName( "DistributionManagement" )
 class DistributionManagementTest implements ModelTestInterface< DistributionManagement >
 {
 
diff --git a/maven-model/src/test/java/org/apache/maven/model/ExclusionTest.java b/maven-model/src/test/java/org/apache/maven/model/ExclusionTest.java
index 7595866..df10ef7 100644
--- a/maven-model/src/test/java/org/apache/maven/model/ExclusionTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/ExclusionTest.java
@@ -19,14 +19,11 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.DisplayName;
-
 /**
  * Tests {@code Exclusion}.
  *
  * @author Benjamin Bentmann
  */
-@DisplayName( "Exclusion" )
 class ExclusionTest implements ModelTestInterface< Exclusion >
 {
 
diff --git a/maven-model/src/test/java/org/apache/maven/model/ExtensionTest.java b/maven-model/src/test/java/org/apache/maven/model/ExtensionTest.java
index ed39bb5..564c7fc 100644
--- a/maven-model/src/test/java/org/apache/maven/model/ExtensionTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/ExtensionTest.java
@@ -19,14 +19,11 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.DisplayName;
-
 /**
  * Tests {@code Extension}.
  *
  * @author Benjamin Bentmann
  */
-@DisplayName( "Extension" )
 class ExtensionTest implements ModelTestInterface< Extension >
 {
 
diff --git a/maven-model/src/test/java/org/apache/maven/model/IssueManagementTest.java b/maven-model/src/test/java/org/apache/maven/model/IssueManagementTest.java
index bdd0b9f..29741b5 100644
--- a/maven-model/src/test/java/org/apache/maven/model/IssueManagementTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/IssueManagementTest.java
@@ -19,14 +19,11 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.DisplayName;
-
 /**
  * Tests {@code IssueManagement}.
  *
  * @author Benjamin Bentmann
  */
-@DisplayName( "IssueManagement" )
 class IssueManagementTest implements ModelTestInterface< IssueManagement >
 {
 
diff --git a/maven-model/src/test/java/org/apache/maven/model/LicenseTest.java b/maven-model/src/test/java/org/apache/maven/model/LicenseTest.java
index 5fef64a..d12c16c 100644
--- a/maven-model/src/test/java/org/apache/maven/model/LicenseTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/LicenseTest.java
@@ -19,14 +19,11 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.DisplayName;
-
 /**
  * Tests {@code License}.
  *
  * @author Benjamin Bentmann
  */
-@DisplayName( "License" )
 class LicenseTest implements ModelTestInterface< License >
 {
 
diff --git a/maven-model/src/test/java/org/apache/maven/model/MailingListTest.java b/maven-model/src/test/java/org/apache/maven/model/MailingListTest.java
index b2f3ebe..5050037 100644
--- a/maven-model/src/test/java/org/apache/maven/model/MailingListTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/MailingListTest.java
@@ -19,14 +19,11 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.DisplayName;
-
 /**
  * Tests {@code MailingList}.
  *
  * @author Benjamin Bentmann
  */
-@DisplayName( "MailingList" )
 class MailingListTest implements ModelTestInterface< MailingList >
 {
 
diff --git a/maven-model/src/test/java/org/apache/maven/model/ModelTest.java b/maven-model/src/test/java/org/apache/maven/model/ModelTest.java
index 2a16ba5..ee14a01 100644
--- a/maven-model/src/test/java/org/apache/maven/model/ModelTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/ModelTest.java
@@ -19,14 +19,11 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.DisplayName;
-
 /**
  * Tests {@code Model}.
  *
  * @author Benjamin Bentmann
  */
-@DisplayName( "Model" )
 class ModelTest implements ModelTestInterface< Model >
 {
 
diff --git a/maven-model/src/test/java/org/apache/maven/model/ModelTestInterface.java b/maven-model/src/test/java/org/apache/maven/model/ModelTestInterface.java
index d8108de..a69566b 100644
--- a/maven-model/src/test/java/org/apache/maven/model/ModelTestInterface.java
+++ b/maven-model/src/test/java/org/apache/maven/model/ModelTestInterface.java
@@ -19,12 +19,14 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.DisplayName;
+import org.junit.jupiter.api.DisplayNameGeneration;
+import org.junit.jupiter.api.DisplayNameGenerator;
 import org.junit.jupiter.api.Test;
 
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatCode;
 
+@DisplayNameGeneration( ModelTestInterface.NameGenerator.class )
 interface ModelTestInterface< T >
 {
     @SuppressWarnings( "unchecked" )
@@ -34,21 +36,18 @@ interface ModelTestInterface< T >
     }
 
     @Test
-    @DisplayName( "hashCode should not fail with null." )
     default void hashCodeNullSafe()
     {
         assertThatCode( () -> createNewInstance( this.getClass() ).hashCode() ).doesNotThrowAnyException();
     }
 
     @Test
-    @DisplayName( "equals should not fail with null." )
     default void equalsNullSafe() throws ReflectiveOperationException
     {
         assertThat( createNewInstance( this.getClass() ).equals( null ) ).isFalse();
     }
 
     @Test
-    @DisplayName( "equals should result in false for two different instances." )
     default void equalsSameToBeFalse() throws ReflectiveOperationException
     {
         T firstInstance = createNewInstance( this.getClass() );
@@ -57,9 +56,20 @@ interface ModelTestInterface< T >
     }
 
     @Test
-    @DisplayName( "toString should not be null." )
     default void toStringNullSafe() throws ReflectiveOperationException
     {
         assertThat( createNewInstance( this.getClass() ).toString() ).isNotNull();
     }
+
+    /**
+     * The @DisplayName will be the test class name without the trailing "Test".
+     */
+    class NameGenerator extends DisplayNameGenerator.Standard
+    {
+        public String generateDisplayNameForClass( Class<?> testClass )
+        {
+            String name = testClass.getSimpleName();
+            return name.substring(0, name.length() - 4);
+        }
+    }
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/NotifierTest.java b/maven-model/src/test/java/org/apache/maven/model/NotifierTest.java
index ab4defb..8081fba 100644
--- a/maven-model/src/test/java/org/apache/maven/model/NotifierTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/NotifierTest.java
@@ -19,14 +19,11 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.DisplayName;
-
 /**
  * Tests {@code Notifier}.
  *
  * @author Benjamin Bentmann
  */
-@DisplayName( "Notifier" )
 class NotifierTest implements ModelTestInterface< Notifier >
 {
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/OrganizationTest.java b/maven-model/src/test/java/org/apache/maven/model/OrganizationTest.java
index ef5eb4f..6394a9b 100644
--- a/maven-model/src/test/java/org/apache/maven/model/OrganizationTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/OrganizationTest.java
@@ -19,14 +19,11 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.DisplayName;
-
 /**
  * Tests {@code Organization}.
  *
  * @author Benjamin Bentmann
  */
-@DisplayName( "Organization" )
 class OrganizationTest implements ModelTestInterface< Organization >
 {
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/ParentTest.java b/maven-model/src/test/java/org/apache/maven/model/ParentTest.java
index 3419438..cc7451c 100644
--- a/maven-model/src/test/java/org/apache/maven/model/ParentTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/ParentTest.java
@@ -19,14 +19,11 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.DisplayName;
-
 /**
  * Tests {@code Parent}.
  *
  * @author Benjamin Bentmann
  */
-@DisplayName( "Parent" )
 class ParentTest implements ModelTestInterface< Parent >
 {
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/PluginConfigurationTest.java b/maven-model/src/test/java/org/apache/maven/model/PluginConfigurationTest.java
index 39642ba..b36b409 100644
--- a/maven-model/src/test/java/org/apache/maven/model/PluginConfigurationTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/PluginConfigurationTest.java
@@ -19,14 +19,11 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.DisplayName;
-
 /**
  * Tests {@code PluginConfiguration}.
  *
  * @author Benjamin Bentmann
  */
-@DisplayName( "PluginConfiguration" )
 class PluginConfigurationTest implements ModelTestInterface< PluginConfiguration >
 {
 
diff --git a/maven-model/src/test/java/org/apache/maven/model/PluginContainerTest.java b/maven-model/src/test/java/org/apache/maven/model/PluginContainerTest.java
index 9aab597..b212c3d 100644
--- a/maven-model/src/test/java/org/apache/maven/model/PluginContainerTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/PluginContainerTest.java
@@ -19,14 +19,11 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.DisplayName;
-
 /**
  * Tests {@code PluginContainer}.
  *
  * @author Benjamin Bentmann
  */
-@DisplayName( "PluginContainer" )
 class PluginContainerTest implements ModelTestInterface< PluginContainer >
 {
 
diff --git a/maven-model/src/test/java/org/apache/maven/model/PluginExecutionTest.java b/maven-model/src/test/java/org/apache/maven/model/PluginExecutionTest.java
index 8bd1241..280b9ee 100644
--- a/maven-model/src/test/java/org/apache/maven/model/PluginExecutionTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/PluginExecutionTest.java
@@ -19,14 +19,11 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.DisplayName;
-
 /**
  * Tests {@code PluginExecution}.
  *
  * @author Benjamin Bentmann
  */
-@DisplayName( "PluginExecution" )
 class PluginExecutionTest implements ModelTestInterface< PluginExecution >
 {
 
diff --git a/maven-model/src/test/java/org/apache/maven/model/PluginManagementTest.java b/maven-model/src/test/java/org/apache/maven/model/PluginManagementTest.java
index d53450a..e230536 100644
--- a/maven-model/src/test/java/org/apache/maven/model/PluginManagementTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/PluginManagementTest.java
@@ -19,14 +19,11 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.DisplayName;
-
 /**
  * Tests {@code PluginManagement}.
  *
  * @author Benjamin Bentmann
  */
-@DisplayName( "PluginManagement" )
 class PluginManagementTest implements ModelTestInterface< PluginManagement >
 {
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/PluginTest.java b/maven-model/src/test/java/org/apache/maven/model/PluginTest.java
index f75a9f1..6ed3497 100644
--- a/maven-model/src/test/java/org/apache/maven/model/PluginTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/PluginTest.java
@@ -19,14 +19,11 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.DisplayName;
-
 /**
  * Tests {@code Plugin}.
  *
  * @author Benjamin Bentmann
  */
-@DisplayName( "Plugin" )
 class PluginTest implements ModelTestInterface< Plugin >
 {
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/PrerequisitesTest.java b/maven-model/src/test/java/org/apache/maven/model/PrerequisitesTest.java
index c3b3150..2fc9f2f 100644
--- a/maven-model/src/test/java/org/apache/maven/model/PrerequisitesTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/PrerequisitesTest.java
@@ -19,14 +19,11 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.DisplayName;
-
 /**
  * Tests {@code Prerequisites}.
  *
  * @author Benjamin Bentmann
  */
-@DisplayName( "Prerequisites" )
 class PrerequisitesTest implements ModelTestInterface< Prerequisites >
 {
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/ProfileTest.java b/maven-model/src/test/java/org/apache/maven/model/ProfileTest.java
index 921fca3..0167304 100644
--- a/maven-model/src/test/java/org/apache/maven/model/ProfileTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/ProfileTest.java
@@ -19,14 +19,11 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.DisplayName;
-
 /**
  * Tests {@code Profile}.
  *
  * @author Benjamin Bentmann
  */
-@DisplayName( "Profile" )
 class ProfileTest implements ModelTestInterface< Profile >
 {
 
diff --git a/maven-model/src/test/java/org/apache/maven/model/RelocationTest.java b/maven-model/src/test/java/org/apache/maven/model/RelocationTest.java
index 92dd309..450fd83 100644
--- a/maven-model/src/test/java/org/apache/maven/model/RelocationTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/RelocationTest.java
@@ -19,14 +19,11 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.DisplayName;
-
 /**
  * Tests {@code Relocation}.
  *
  * @author Benjamin Bentmann
  */
-@DisplayName( "Relocation" )
 class RelocationTest implements ModelTestInterface< Relocation >
 {
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/ReportPluginTest.java b/maven-model/src/test/java/org/apache/maven/model/ReportPluginTest.java
index 15c6586..2c29149 100644
--- a/maven-model/src/test/java/org/apache/maven/model/ReportPluginTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/ReportPluginTest.java
@@ -19,14 +19,11 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.DisplayName;
-
 /**
  * Tests {@code ReportPlugin}.
  *
  * @author Benjamin Bentmann
  */
-@DisplayName( "ReportPlugin" )
 class ReportPluginTest implements ModelTestInterface< ReportPlugin >
 {
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/ReportSetTest.java b/maven-model/src/test/java/org/apache/maven/model/ReportSetTest.java
index 864c9c9..1d46cd3 100644
--- a/maven-model/src/test/java/org/apache/maven/model/ReportSetTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/ReportSetTest.java
@@ -19,14 +19,11 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.DisplayName;
-
 /**
  * Tests {@code ReportSet}.
  *
  * @author Benjamin Bentmann
  */
-@DisplayName( "ReportSet" )
 class ReportSetTest implements ModelTestInterface< ReportSet >
 {
 
diff --git a/maven-model/src/test/java/org/apache/maven/model/ReportingTest.java b/maven-model/src/test/java/org/apache/maven/model/ReportingTest.java
index 063b1e5..357855a 100644
--- a/maven-model/src/test/java/org/apache/maven/model/ReportingTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/ReportingTest.java
@@ -19,14 +19,11 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.DisplayName;
-
 /**
  * Tests {@code Reporting}.
  *
  * @author Benjamin Bentmann
  */
-@DisplayName( "Reporting" )
 class ReportingTest implements ModelTestInterface< Reporting >
 {
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/RepositoryPolicyTest.java b/maven-model/src/test/java/org/apache/maven/model/RepositoryPolicyTest.java
index 71c2b71..479c621 100644
--- a/maven-model/src/test/java/org/apache/maven/model/RepositoryPolicyTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/RepositoryPolicyTest.java
@@ -19,14 +19,11 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.DisplayName;
-
 /**
  * Tests {@code RepositoryPolicy}.
  *
  * @author Benjamin Bentmann
  */
-@DisplayName( "RepositoryPolicy" )
 class RepositoryPolicyTest implements ModelTestInterface< RepositoryPolicy >
 {
 
diff --git a/maven-model/src/test/java/org/apache/maven/model/RepositoryTest.java b/maven-model/src/test/java/org/apache/maven/model/RepositoryTest.java
index 713fa4a..319043a 100644
--- a/maven-model/src/test/java/org/apache/maven/model/RepositoryTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/RepositoryTest.java
@@ -19,14 +19,11 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.DisplayName;
-
 /**
  * Tests {@code Repository}.
  *
  * @author Benjamin Bentmann
  */
-@DisplayName( "Repository" )
 class RepositoryTest implements ModelTestInterface< Repository >
 {
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/ResourceTest.java b/maven-model/src/test/java/org/apache/maven/model/ResourceTest.java
index d09a3c6..30083f9 100644
--- a/maven-model/src/test/java/org/apache/maven/model/ResourceTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/ResourceTest.java
@@ -19,14 +19,11 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.DisplayName;
-
 /**
  * Tests {@code Resource}.
  *
  * @author Benjamin Bentmann
  */
-@DisplayName( "Resource" )
 class ResourceTest implements ModelTestInterface< Resource >
 {
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/ScmTest.java b/maven-model/src/test/java/org/apache/maven/model/ScmTest.java
index b244fb5..4bedb7e 100644
--- a/maven-model/src/test/java/org/apache/maven/model/ScmTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/ScmTest.java
@@ -19,14 +19,11 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.DisplayName;
-
 /**
  * Tests {@code Scm}.
  *
  * @author Benjamin Bentmann
  */
-@DisplayName( "Scm" )
 class ScmTest implements ModelTestInterface< Scm >
 {
 
diff --git a/maven-model/src/test/java/org/apache/maven/model/SiteTest.java b/maven-model/src/test/java/org/apache/maven/model/SiteTest.java
index 1d96718..6537547 100644
--- a/maven-model/src/test/java/org/apache/maven/model/SiteTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/SiteTest.java
@@ -19,14 +19,11 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.DisplayName;
-
 /**
  * Tests {@code Site}.
  *
  * @author Benjamin Bentmann
  */
-@DisplayName( "Site" )
 class SiteTest implements ModelTestInterface< Site >
 {
 }

[maven] 06/06: Improved code.

Posted by kh...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

khmarbaise pushed a commit to branch MODELTESTS_IMPROVEMENT
in repository https://gitbox.apache.org/repos/asf/maven.git

commit 656b81a57c8e99f78ab34450748939b156508e21
Author: Karl Heinz Marbaise <kh...@apache.org>
AuthorDate: Mon Aug 30 15:14:51 2021 +0200

    Improved code.
---
 .../maven/model/transform/CiFriendlyXMLFilterTest.java    | 13 +++----------
 .../maven/model/transform/ConsumerPomXMLFilterTest.java   |  2 +-
 maven-model/pom.xml                                       |  2 +-
 .../java/org/apache/maven/model/ModelTestInterface.java   | 10 +++++-----
 pom.xml                                                   | 15 +++++++++++----
 5 files changed, 21 insertions(+), 21 deletions(-)

diff --git a/maven-model-transform/src/test/java/org/apache/maven/model/transform/CiFriendlyXMLFilterTest.java b/maven-model-transform/src/test/java/org/apache/maven/model/transform/CiFriendlyXMLFilterTest.java
index 80cf84d..09245c6 100644
--- a/maven-model-transform/src/test/java/org/apache/maven/model/transform/CiFriendlyXMLFilterTest.java
+++ b/maven-model-transform/src/test/java/org/apache/maven/model/transform/CiFriendlyXMLFilterTest.java
@@ -19,16 +19,11 @@ package org.apache.maven.model.transform;
  * under the License.
  */
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.transform.TransformerException;
-
-import org.junit.jupiter.api.Test;
 import org.apache.maven.model.transform.sax.AbstractSAXFilter;
 import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 
-import org.xml.sax.SAXException;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class CiFriendlyXMLFilterTest extends AbstractXMLFilterTests
 {
@@ -42,9 +37,7 @@ public class CiFriendlyXMLFilterTest extends AbstractXMLFilterTests
     }
 
     @Override
-    protected AbstractSAXFilter getFilter()
-        throws TransformerException, SAXException, ParserConfigurationException
-    {
+    protected AbstractSAXFilter getFilter() {
         return filter;
     }
 
diff --git a/maven-model-transform/src/test/java/org/apache/maven/model/transform/ConsumerPomXMLFilterTest.java b/maven-model-transform/src/test/java/org/apache/maven/model/transform/ConsumerPomXMLFilterTest.java
index 4fe2c19..b1912ed 100644
--- a/maven-model-transform/src/test/java/org/apache/maven/model/transform/ConsumerPomXMLFilterTest.java
+++ b/maven-model-transform/src/test/java/org/apache/maven/model/transform/ConsumerPomXMLFilterTest.java
@@ -36,7 +36,7 @@ import org.junit.jupiter.api.Test;
 import org.xml.sax.SAXException;
 import org.xml.sax.ext.LexicalHandler;
 
-public class ConsumerPomXMLFilterTest extends AbstractXMLFilterTests
+class ConsumerPomXMLFilterTest extends AbstractXMLFilterTests
 {
     @Override
     protected String omitXmlDeclaration()
diff --git a/maven-model/pom.xml b/maven-model/pom.xml
index 39984d9..631b0b8 100644
--- a/maven-model/pom.xml
+++ b/maven-model/pom.xml
@@ -46,7 +46,7 @@ under the License.
     </dependency>
     <dependency>
       <groupId>org.junit.jupiter</groupId>
-      <artifactId>junit-jupiter-engine</artifactId>
+      <artifactId>junit-jupiter-api</artifactId>
       <scope>test</scope>
     </dependency>
     <dependency>
diff --git a/maven-model/src/test/java/org/apache/maven/model/ModelTestInterface.java b/maven-model/src/test/java/org/apache/maven/model/ModelTestInterface.java
index 75828ed..0f5c662 100644
--- a/maven-model/src/test/java/org/apache/maven/model/ModelTestInterface.java
+++ b/maven-model/src/test/java/org/apache/maven/model/ModelTestInterface.java
@@ -49,7 +49,7 @@ interface ModelTestInterface< T >
     @DisplayName( "equals should not fail with null." )
     default void equalsNullSafe() throws ReflectiveOperationException
     {
-        T newInstance = createValue().newInstance();
+        T newInstance = createValue().getDeclaredConstructor().newInstance();
         assertThat( newInstance.equals( null ) ).isFalse();
     }
 
@@ -57,16 +57,16 @@ interface ModelTestInterface< T >
     @DisplayName( "equals should result in false for two different instances." )
     default void equalsSameToBeFalse() throws ReflectiveOperationException
     {
-        T firstInstance = createValue().newInstance();
-        T secondInstance = createValue().newInstance();
-        assertThat( firstInstance.equals( secondInstance ) ).isFalse();
+        T firstInstance = createValue().getDeclaredConstructor().newInstance();
+        T secondInstance = createValue().getDeclaredConstructor().newInstance();
+        assertThat(firstInstance).isNotSameAs(secondInstance);
     }
 
     @Test
     @DisplayName( "toString should not be null." )
     default void toStringNullSafe() throws ReflectiveOperationException
     {
-        assertThat( createValue().newInstance().toString() ).isNotNull();
+        assertThat( createValue().getDeclaredConstructor().newInstance().toString() ).isNotNull();
     }
 
     /**
diff --git a/pom.xml b/pom.xml
index c1bb303..28be543 100644
--- a/pom.xml
+++ b/pom.xml
@@ -51,7 +51,7 @@ under the License.
     <classWorldsVersion>2.6.0</classWorldsVersion>
     <commonsCliVersion>1.4</commonsCliVersion>
     <commonsLangVersion>3.12.0</commonsLangVersion>
-    <junitVersion>5.7.0</junitVersion>
+    <junitVersion>5.7.2</junitVersion>
     <mockitoVersion>3.2.0</mockitoVersion>
     <plexusVersion>2.1.0</plexusVersion>
     <plexusInterpolationVersion>1.26</plexusInterpolationVersion>
@@ -448,10 +448,16 @@ under the License.
         <scope>test</scope>
       </dependency>
       <dependency>
-        <groupId>org.junit.jupiter</groupId>
-        <artifactId>junit-jupiter-params</artifactId>
+        <groupId>org.junit</groupId>
+        <artifactId>junit-bom</artifactId>
         <version>${junitVersion}</version>
-        <scope>test</scope>
+        <scope>import</scope>
+        <type>pom</type>
+      </dependency>
+      <dependency>
+        <groupId>org.assertj</groupId>
+        <artifactId>assertj-core</artifactId>
+        <version>3.20.2</version>
       </dependency>
     </dependencies>
     <!--bootstrap-start-comment-->
@@ -534,6 +540,7 @@ under the License.
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-surefire-plugin</artifactId>
+          <version>2.22.2</version>
           <configuration>
             <argLine>-Xmx256m</argLine>
             <environmentVariables>

[maven] 03/06: Using displayName in Interface.

Posted by kh...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

khmarbaise pushed a commit to branch MODELTESTS_IMPROVEMENT
in repository https://gitbox.apache.org/repos/asf/maven.git

commit f6453404b0342811840c054044b16d3b688eda8d
Author: Karl Heinz Marbaise <kh...@apache.org>
AuthorDate: Mon Dec 9 20:42:00 2019 +0100

    Using displayName in Interface.
---
 .../src/test/java/org/apache/maven/model/ModelTestInterface.java     | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/maven-model/src/test/java/org/apache/maven/model/ModelTestInterface.java b/maven-model/src/test/java/org/apache/maven/model/ModelTestInterface.java
index a69566b..b51bc3e 100644
--- a/maven-model/src/test/java/org/apache/maven/model/ModelTestInterface.java
+++ b/maven-model/src/test/java/org/apache/maven/model/ModelTestInterface.java
@@ -19,6 +19,7 @@ package org.apache.maven.model;
  * under the License.
  */
 
+import org.junit.jupiter.api.DisplayName;
 import org.junit.jupiter.api.DisplayNameGeneration;
 import org.junit.jupiter.api.DisplayNameGenerator;
 import org.junit.jupiter.api.Test;
@@ -36,18 +37,21 @@ interface ModelTestInterface< T >
     }
 
     @Test
+    @DisplayName( "hashCode should not fail with null." )
     default void hashCodeNullSafe()
     {
         assertThatCode( () -> createNewInstance( this.getClass() ).hashCode() ).doesNotThrowAnyException();
     }
 
     @Test
+    @DisplayName( "equals should not fail with null." )
     default void equalsNullSafe() throws ReflectiveOperationException
     {
         assertThat( createNewInstance( this.getClass() ).equals( null ) ).isFalse();
     }
 
     @Test
+    @DisplayName( "equals should result in false for two different instances." )
     default void equalsSameToBeFalse() throws ReflectiveOperationException
     {
         T firstInstance = createNewInstance( this.getClass() );
@@ -56,6 +60,7 @@ interface ModelTestInterface< T >
     }
 
     @Test
+    @DisplayName( "toString should not be null." )
     default void toStringNullSafe() throws ReflectiveOperationException
     {
         assertThat( createNewInstance( this.getClass() ).toString() ).isNotNull();

[maven] 05/06: WIP - Fixed code issue.

Posted by kh...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

khmarbaise pushed a commit to branch MODELTESTS_IMPROVEMENT
in repository https://gitbox.apache.org/repos/asf/maven.git

commit d8c51cc2089a6ff7742d52b03a05ac87fbe9a5e5
Author: Karl Heinz Marbaise <kh...@apache.org>
AuthorDate: Sat Feb 29 13:34:12 2020 +0100

    WIP - Fixed code issue.
---
 .../org/apache/maven/model/ActivationFileTest.java     |  5 +++++
 .../java/org/apache/maven/model/ActivationOSTest.java  |  5 +++++
 .../org/apache/maven/model/ActivationPropertyTest.java |  5 +++++
 .../java/org/apache/maven/model/ActivationTest.java    |  5 +++++
 .../test/java/org/apache/maven/model/BuildTest.java    |  5 +++++
 .../java/org/apache/maven/model/CiManagementTest.java  |  5 +++++
 .../java/org/apache/maven/model/ContributorTest.java   |  5 +++++
 .../apache/maven/model/DependencyManagementTest.java   |  5 +++++
 .../java/org/apache/maven/model/DependencyTest.java    |  5 +++++
 .../apache/maven/model/DeploymentRepositoryTest.java   |  5 +++++
 .../java/org/apache/maven/model/DeveloperTest.java     |  5 +++++
 .../apache/maven/model/DistributionManagementTest.java |  5 +++++
 .../java/org/apache/maven/model/ExclusionTest.java     |  5 +++++
 .../java/org/apache/maven/model/ExtensionTest.java     |  5 +++++
 .../org/apache/maven/model/IssueManagementTest.java    |  5 +++++
 .../test/java/org/apache/maven/model/LicenseTest.java  |  5 +++++
 .../java/org/apache/maven/model/MailingListTest.java   |  5 +++++
 .../test/java/org/apache/maven/model/ModelTest.java    |  5 +++++
 .../org/apache/maven/model/ModelTestInterface.java     | 18 ++++++++----------
 .../test/java/org/apache/maven/model/NotifierTest.java |  5 +++++
 .../java/org/apache/maven/model/OrganizationTest.java  |  5 +++++
 .../test/java/org/apache/maven/model/ParentTest.java   |  5 +++++
 .../apache/maven/model/PluginConfigurationTest.java    |  5 +++++
 .../org/apache/maven/model/PluginContainerTest.java    |  5 +++++
 .../org/apache/maven/model/PluginExecutionTest.java    |  5 +++++
 .../org/apache/maven/model/PluginManagementTest.java   |  5 +++++
 .../test/java/org/apache/maven/model/PluginTest.java   |  5 +++++
 .../java/org/apache/maven/model/PrerequisitesTest.java |  5 +++++
 .../test/java/org/apache/maven/model/ProfileTest.java  |  5 +++++
 .../java/org/apache/maven/model/RelocationTest.java    |  5 +++++
 .../java/org/apache/maven/model/ReportPluginTest.java  |  5 +++++
 .../java/org/apache/maven/model/ReportSetTest.java     |  5 +++++
 .../java/org/apache/maven/model/ReportingTest.java     |  5 +++++
 .../org/apache/maven/model/RepositoryPolicyTest.java   |  5 +++++
 .../java/org/apache/maven/model/RepositoryTest.java    |  5 +++++
 .../test/java/org/apache/maven/model/ResourceTest.java |  5 +++++
 .../src/test/java/org/apache/maven/model/ScmTest.java  |  5 +++++
 .../src/test/java/org/apache/maven/model/SiteTest.java |  5 +++++
 38 files changed, 193 insertions(+), 10 deletions(-)

diff --git a/maven-model/src/test/java/org/apache/maven/model/ActivationFileTest.java b/maven-model/src/test/java/org/apache/maven/model/ActivationFileTest.java
index d43d6cb..d420310 100644
--- a/maven-model/src/test/java/org/apache/maven/model/ActivationFileTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/ActivationFileTest.java
@@ -26,5 +26,10 @@ package org.apache.maven.model;
  */
 class ActivationFileTest implements ModelTestInterface< ActivationFile >
 {
+    @Override
+    public Class<ActivationFile> createValue()
+    {
+        return ActivationFile.class;
+    }
 }
 
diff --git a/maven-model/src/test/java/org/apache/maven/model/ActivationOSTest.java b/maven-model/src/test/java/org/apache/maven/model/ActivationOSTest.java
index bc823a4..0dd5134 100644
--- a/maven-model/src/test/java/org/apache/maven/model/ActivationOSTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/ActivationOSTest.java
@@ -27,4 +27,9 @@ package org.apache.maven.model;
 class ActivationOSTest implements ModelTestInterface< ActivationOS >
 {
 
+    @Override
+    public Class<ActivationOS> createValue()
+    {
+        return ActivationOS.class;
+    }
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/ActivationPropertyTest.java b/maven-model/src/test/java/org/apache/maven/model/ActivationPropertyTest.java
index 4d618c7..84d7e04 100644
--- a/maven-model/src/test/java/org/apache/maven/model/ActivationPropertyTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/ActivationPropertyTest.java
@@ -26,5 +26,10 @@ package org.apache.maven.model;
  */
 class ActivationPropertyTest implements ModelTestInterface< ActivationProperty >
 {
+    @Override
+    public Class<ActivationProperty> createValue()
+    {
+        return ActivationProperty.class;
+    }
 }
 
diff --git a/maven-model/src/test/java/org/apache/maven/model/ActivationTest.java b/maven-model/src/test/java/org/apache/maven/model/ActivationTest.java
index b22fc38..09163c7 100644
--- a/maven-model/src/test/java/org/apache/maven/model/ActivationTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/ActivationTest.java
@@ -26,5 +26,10 @@ package org.apache.maven.model;
  */
 class ActivationTest implements ModelTestInterface< Activation >
 {
+    @Override
+    public Class<Activation> createValue()
+    {
+        return Activation.class;
+    }
 }
 
diff --git a/maven-model/src/test/java/org/apache/maven/model/BuildTest.java b/maven-model/src/test/java/org/apache/maven/model/BuildTest.java
index 825db03..811f099 100644
--- a/maven-model/src/test/java/org/apache/maven/model/BuildTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/BuildTest.java
@@ -26,5 +26,10 @@ package org.apache.maven.model;
  */
 class BuildTest implements ModelTestInterface< Build >
 {
+    @Override
+    public Class<Build> createValue()
+    {
+        return Build.class;
+    }
 }
 
diff --git a/maven-model/src/test/java/org/apache/maven/model/CiManagementTest.java b/maven-model/src/test/java/org/apache/maven/model/CiManagementTest.java
index 1b32bb3..3a295fb 100644
--- a/maven-model/src/test/java/org/apache/maven/model/CiManagementTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/CiManagementTest.java
@@ -26,5 +26,10 @@ package org.apache.maven.model;
  */
 class CiManagementTest implements ModelTestInterface< CiManagement >
 {
+    @Override
+    public Class<CiManagement> createValue()
+    {
+        return CiManagement.class;
+    }
 }
 
diff --git a/maven-model/src/test/java/org/apache/maven/model/ContributorTest.java b/maven-model/src/test/java/org/apache/maven/model/ContributorTest.java
index 249eb9b..ece716b 100644
--- a/maven-model/src/test/java/org/apache/maven/model/ContributorTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/ContributorTest.java
@@ -26,4 +26,9 @@ package org.apache.maven.model;
  */
 class ContributorTest implements ModelTestInterface< Contributor >
 {
+    @Override
+    public Class<Contributor> createValue()
+    {
+        return Contributor.class;
+    }
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/DependencyManagementTest.java b/maven-model/src/test/java/org/apache/maven/model/DependencyManagementTest.java
index 3961c9a..c172cb2 100644
--- a/maven-model/src/test/java/org/apache/maven/model/DependencyManagementTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/DependencyManagementTest.java
@@ -27,4 +27,9 @@ package org.apache.maven.model;
 class DependencyManagementTest implements ModelTestInterface< DependencyManagement >
 {
 
+    @Override
+    public Class<DependencyManagement> createValue()
+    {
+        return DependencyManagement.class;
+    }
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/DependencyTest.java b/maven-model/src/test/java/org/apache/maven/model/DependencyTest.java
index 29ae942..dac3d7e 100644
--- a/maven-model/src/test/java/org/apache/maven/model/DependencyTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/DependencyTest.java
@@ -27,4 +27,9 @@ package org.apache.maven.model;
 class DependencyTest implements ModelTestInterface< Dependency >
 {
 
+    @Override
+    public Class<Dependency> createValue()
+    {
+        return Dependency.class;
+    }
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/DeploymentRepositoryTest.java b/maven-model/src/test/java/org/apache/maven/model/DeploymentRepositoryTest.java
index 2e5d287..c3664e8 100644
--- a/maven-model/src/test/java/org/apache/maven/model/DeploymentRepositoryTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/DeploymentRepositoryTest.java
@@ -27,4 +27,9 @@ package org.apache.maven.model;
 class DeploymentRepositoryTest implements ModelTestInterface< DeploymentRepository >
 {
 
+    @Override
+    public Class<DeploymentRepository> createValue()
+    {
+        return DeploymentRepository.class;
+    }
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/DeveloperTest.java b/maven-model/src/test/java/org/apache/maven/model/DeveloperTest.java
index 4886f93..746ed84 100644
--- a/maven-model/src/test/java/org/apache/maven/model/DeveloperTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/DeveloperTest.java
@@ -27,4 +27,9 @@ package org.apache.maven.model;
 class DeveloperTest implements ModelTestInterface< Developer >
 {
 
+    @Override
+    public Class<Developer> createValue()
+    {
+        return Developer.class;
+    }
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/DistributionManagementTest.java b/maven-model/src/test/java/org/apache/maven/model/DistributionManagementTest.java
index df53365..9cc4288 100644
--- a/maven-model/src/test/java/org/apache/maven/model/DistributionManagementTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/DistributionManagementTest.java
@@ -27,4 +27,9 @@ package org.apache.maven.model;
 class DistributionManagementTest implements ModelTestInterface< DistributionManagement >
 {
 
+    @Override
+    public Class<DistributionManagement> createValue()
+    {
+        return DistributionManagement.class;
+    }
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/ExclusionTest.java b/maven-model/src/test/java/org/apache/maven/model/ExclusionTest.java
index df10ef7..c9abf4b 100644
--- a/maven-model/src/test/java/org/apache/maven/model/ExclusionTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/ExclusionTest.java
@@ -27,4 +27,9 @@ package org.apache.maven.model;
 class ExclusionTest implements ModelTestInterface< Exclusion >
 {
 
+    @Override
+    public Class<Exclusion> createValue()
+    {
+        return Exclusion.class;
+    }
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/ExtensionTest.java b/maven-model/src/test/java/org/apache/maven/model/ExtensionTest.java
index 564c7fc..f0a9c39 100644
--- a/maven-model/src/test/java/org/apache/maven/model/ExtensionTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/ExtensionTest.java
@@ -27,4 +27,9 @@ package org.apache.maven.model;
 class ExtensionTest implements ModelTestInterface< Extension >
 {
 
+    @Override
+    public Class<Extension> createValue()
+    {
+        return Extension.class;
+    }
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/IssueManagementTest.java b/maven-model/src/test/java/org/apache/maven/model/IssueManagementTest.java
index 29741b5..2c56880 100644
--- a/maven-model/src/test/java/org/apache/maven/model/IssueManagementTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/IssueManagementTest.java
@@ -27,4 +27,9 @@ package org.apache.maven.model;
 class IssueManagementTest implements ModelTestInterface< IssueManagement >
 {
 
+    @Override
+    public Class<IssueManagement> createValue()
+    {
+        return IssueManagement.class;
+    }
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/LicenseTest.java b/maven-model/src/test/java/org/apache/maven/model/LicenseTest.java
index d12c16c..98b24da 100644
--- a/maven-model/src/test/java/org/apache/maven/model/LicenseTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/LicenseTest.java
@@ -27,4 +27,9 @@ package org.apache.maven.model;
 class LicenseTest implements ModelTestInterface< License >
 {
 
+    @Override
+    public Class<License> createValue()
+    {
+        return License.class;
+    }
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/MailingListTest.java b/maven-model/src/test/java/org/apache/maven/model/MailingListTest.java
index 5050037..d385287 100644
--- a/maven-model/src/test/java/org/apache/maven/model/MailingListTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/MailingListTest.java
@@ -27,4 +27,9 @@ package org.apache.maven.model;
 class MailingListTest implements ModelTestInterface< MailingList >
 {
 
+    @Override
+    public Class<MailingList> createValue()
+    {
+        return MailingList.class;
+    }
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/ModelTest.java b/maven-model/src/test/java/org/apache/maven/model/ModelTest.java
index ee14a01..01f8696 100644
--- a/maven-model/src/test/java/org/apache/maven/model/ModelTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/ModelTest.java
@@ -27,4 +27,9 @@ package org.apache.maven.model;
 class ModelTest implements ModelTestInterface< Model >
 {
 
+    @Override
+    public Class<Model> createValue()
+    {
+        return Model.class;
+    }
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/ModelTestInterface.java b/maven-model/src/test/java/org/apache/maven/model/ModelTestInterface.java
index f4774b3..75828ed 100644
--- a/maven-model/src/test/java/org/apache/maven/model/ModelTestInterface.java
+++ b/maven-model/src/test/java/org/apache/maven/model/ModelTestInterface.java
@@ -35,32 +35,30 @@ import static org.assertj.core.api.Assertions.assertThatCode;
 @DisplayNameGeneration( ModelTestInterface.NameGenerator.class )
 interface ModelTestInterface< T >
 {
-    @SuppressWarnings( "unchecked" )
-    default T createNewInstance(Class< ? > x) throws ReflectiveOperationException
-    {
-        return ( T ) x.getDeclaredConstructor().newInstance();
-    }
+
+    Class<T> createValue();
 
     @Test
     @DisplayName( "hashCode should not fail with null." )
     default void hashCodeNullSafe()
     {
-        assertThatCode( () -> createNewInstance( this.getClass() ).hashCode() ).doesNotThrowAnyException();
+        assertThatCode( () -> createValue().hashCode() ).doesNotThrowAnyException();
     }
 
     @Test
     @DisplayName( "equals should not fail with null." )
     default void equalsNullSafe() throws ReflectiveOperationException
     {
-        assertThat( createNewInstance( this.getClass() ).equals( null ) ).isFalse();
+        T newInstance = createValue().newInstance();
+        assertThat( newInstance.equals( null ) ).isFalse();
     }
 
     @Test
     @DisplayName( "equals should result in false for two different instances." )
     default void equalsSameToBeFalse() throws ReflectiveOperationException
     {
-        T firstInstance = createNewInstance( this.getClass() );
-        T secondInstance = createNewInstance( this.getClass() );
+        T firstInstance = createValue().newInstance();
+        T secondInstance = createValue().newInstance();
         assertThat( firstInstance.equals( secondInstance ) ).isFalse();
     }
 
@@ -68,7 +66,7 @@ interface ModelTestInterface< T >
     @DisplayName( "toString should not be null." )
     default void toStringNullSafe() throws ReflectiveOperationException
     {
-        assertThat( createNewInstance( this.getClass() ).toString() ).isNotNull();
+        assertThat( createValue().newInstance().toString() ).isNotNull();
     }
 
     /**
diff --git a/maven-model/src/test/java/org/apache/maven/model/NotifierTest.java b/maven-model/src/test/java/org/apache/maven/model/NotifierTest.java
index 8081fba..48605cc 100644
--- a/maven-model/src/test/java/org/apache/maven/model/NotifierTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/NotifierTest.java
@@ -26,4 +26,9 @@ package org.apache.maven.model;
  */
 class NotifierTest implements ModelTestInterface< Notifier >
 {
+    @Override
+    public Class<Notifier> createValue()
+    {
+        return Notifier.class;
+    }
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/OrganizationTest.java b/maven-model/src/test/java/org/apache/maven/model/OrganizationTest.java
index 6394a9b..b5f694e 100644
--- a/maven-model/src/test/java/org/apache/maven/model/OrganizationTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/OrganizationTest.java
@@ -26,4 +26,9 @@ package org.apache.maven.model;
  */
 class OrganizationTest implements ModelTestInterface< Organization >
 {
+    @Override
+    public Class<Organization> createValue()
+    {
+        return Organization.class;
+    }
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/ParentTest.java b/maven-model/src/test/java/org/apache/maven/model/ParentTest.java
index cc7451c..605c55c 100644
--- a/maven-model/src/test/java/org/apache/maven/model/ParentTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/ParentTest.java
@@ -26,4 +26,9 @@ package org.apache.maven.model;
  */
 class ParentTest implements ModelTestInterface< Parent >
 {
+    @Override
+    public Class<Parent> createValue()
+    {
+        return Parent.class;
+    }
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/PluginConfigurationTest.java b/maven-model/src/test/java/org/apache/maven/model/PluginConfigurationTest.java
index b36b409..5b92db9 100644
--- a/maven-model/src/test/java/org/apache/maven/model/PluginConfigurationTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/PluginConfigurationTest.java
@@ -27,4 +27,9 @@ package org.apache.maven.model;
 class PluginConfigurationTest implements ModelTestInterface< PluginConfiguration >
 {
 
+    @Override
+    public Class<PluginConfiguration> createValue()
+    {
+        return PluginConfiguration.class;
+    }
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/PluginContainerTest.java b/maven-model/src/test/java/org/apache/maven/model/PluginContainerTest.java
index b212c3d..ccda9dc 100644
--- a/maven-model/src/test/java/org/apache/maven/model/PluginContainerTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/PluginContainerTest.java
@@ -27,4 +27,9 @@ package org.apache.maven.model;
 class PluginContainerTest implements ModelTestInterface< PluginContainer >
 {
 
+    @Override
+    public Class<PluginContainer> createValue()
+    {
+        return PluginContainer.class;
+    }
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/PluginExecutionTest.java b/maven-model/src/test/java/org/apache/maven/model/PluginExecutionTest.java
index 280b9ee..8a48528 100644
--- a/maven-model/src/test/java/org/apache/maven/model/PluginExecutionTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/PluginExecutionTest.java
@@ -27,4 +27,9 @@ package org.apache.maven.model;
 class PluginExecutionTest implements ModelTestInterface< PluginExecution >
 {
 
+    @Override
+    public Class<PluginExecution> createValue()
+    {
+        return PluginExecution.class;
+    }
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/PluginManagementTest.java b/maven-model/src/test/java/org/apache/maven/model/PluginManagementTest.java
index e230536..f5e459b 100644
--- a/maven-model/src/test/java/org/apache/maven/model/PluginManagementTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/PluginManagementTest.java
@@ -26,4 +26,9 @@ package org.apache.maven.model;
  */
 class PluginManagementTest implements ModelTestInterface< PluginManagement >
 {
+    @Override
+    public Class<PluginManagement> createValue()
+    {
+        return PluginManagement.class;
+    }
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/PluginTest.java b/maven-model/src/test/java/org/apache/maven/model/PluginTest.java
index 6ed3497..5169d67 100644
--- a/maven-model/src/test/java/org/apache/maven/model/PluginTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/PluginTest.java
@@ -26,4 +26,9 @@ package org.apache.maven.model;
  */
 class PluginTest implements ModelTestInterface< Plugin >
 {
+    @Override
+    public Class<Plugin> createValue()
+    {
+        return Plugin.class;
+    }
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/PrerequisitesTest.java b/maven-model/src/test/java/org/apache/maven/model/PrerequisitesTest.java
index 2fc9f2f..bdd853f 100644
--- a/maven-model/src/test/java/org/apache/maven/model/PrerequisitesTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/PrerequisitesTest.java
@@ -26,4 +26,9 @@ package org.apache.maven.model;
  */
 class PrerequisitesTest implements ModelTestInterface< Prerequisites >
 {
+    @Override
+    public Class<Prerequisites> createValue()
+    {
+        return Prerequisites.class;
+    }
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/ProfileTest.java b/maven-model/src/test/java/org/apache/maven/model/ProfileTest.java
index 0167304..4fde5b7 100644
--- a/maven-model/src/test/java/org/apache/maven/model/ProfileTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/ProfileTest.java
@@ -27,4 +27,9 @@ package org.apache.maven.model;
 class ProfileTest implements ModelTestInterface< Profile >
 {
 
+    @Override
+    public Class<Profile> createValue()
+    {
+        return Profile.class;
+    }
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/RelocationTest.java b/maven-model/src/test/java/org/apache/maven/model/RelocationTest.java
index 450fd83..93cef72 100644
--- a/maven-model/src/test/java/org/apache/maven/model/RelocationTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/RelocationTest.java
@@ -26,4 +26,9 @@ package org.apache.maven.model;
  */
 class RelocationTest implements ModelTestInterface< Relocation >
 {
+    @Override
+    public Class<Relocation> createValue()
+    {
+        return Relocation.class;
+    }
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/ReportPluginTest.java b/maven-model/src/test/java/org/apache/maven/model/ReportPluginTest.java
index 2c29149..0c1ff95 100644
--- a/maven-model/src/test/java/org/apache/maven/model/ReportPluginTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/ReportPluginTest.java
@@ -26,4 +26,9 @@ package org.apache.maven.model;
  */
 class ReportPluginTest implements ModelTestInterface< ReportPlugin >
 {
+    @Override
+    public Class<ReportPlugin> createValue()
+    {
+        return ReportPlugin.class;
+    }
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/ReportSetTest.java b/maven-model/src/test/java/org/apache/maven/model/ReportSetTest.java
index 1d46cd3..52da631 100644
--- a/maven-model/src/test/java/org/apache/maven/model/ReportSetTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/ReportSetTest.java
@@ -27,4 +27,9 @@ package org.apache.maven.model;
 class ReportSetTest implements ModelTestInterface< ReportSet >
 {
 
+    @Override
+    public Class<ReportSet> createValue()
+    {
+        return ReportSet.class;
+    }
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/ReportingTest.java b/maven-model/src/test/java/org/apache/maven/model/ReportingTest.java
index 357855a..4940c80 100644
--- a/maven-model/src/test/java/org/apache/maven/model/ReportingTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/ReportingTest.java
@@ -26,4 +26,9 @@ package org.apache.maven.model;
  */
 class ReportingTest implements ModelTestInterface< Reporting >
 {
+    @Override
+    public Class<Reporting> createValue()
+    {
+        return Reporting.class;
+    }
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/RepositoryPolicyTest.java b/maven-model/src/test/java/org/apache/maven/model/RepositoryPolicyTest.java
index 479c621..5b13ee0 100644
--- a/maven-model/src/test/java/org/apache/maven/model/RepositoryPolicyTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/RepositoryPolicyTest.java
@@ -27,4 +27,9 @@ package org.apache.maven.model;
 class RepositoryPolicyTest implements ModelTestInterface< RepositoryPolicy >
 {
 
+    @Override
+    public Class<RepositoryPolicy> createValue()
+    {
+        return RepositoryPolicy.class;
+    }
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/RepositoryTest.java b/maven-model/src/test/java/org/apache/maven/model/RepositoryTest.java
index 319043a..9a52d92 100644
--- a/maven-model/src/test/java/org/apache/maven/model/RepositoryTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/RepositoryTest.java
@@ -26,5 +26,10 @@ package org.apache.maven.model;
  */
 class RepositoryTest implements ModelTestInterface< Repository >
 {
+    @Override
+    public Class<Repository> createValue()
+    {
+        return Repository.class;
+    }
 }
 
diff --git a/maven-model/src/test/java/org/apache/maven/model/ResourceTest.java b/maven-model/src/test/java/org/apache/maven/model/ResourceTest.java
index 30083f9..99921db 100644
--- a/maven-model/src/test/java/org/apache/maven/model/ResourceTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/ResourceTest.java
@@ -26,5 +26,10 @@ package org.apache.maven.model;
  */
 class ResourceTest implements ModelTestInterface< Resource >
 {
+    @Override
+    public Class<Resource> createValue()
+    {
+        return Resource.class;
+    }
 }
 
diff --git a/maven-model/src/test/java/org/apache/maven/model/ScmTest.java b/maven-model/src/test/java/org/apache/maven/model/ScmTest.java
index 4bedb7e..331e21f 100644
--- a/maven-model/src/test/java/org/apache/maven/model/ScmTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/ScmTest.java
@@ -27,6 +27,11 @@ package org.apache.maven.model;
 class ScmTest implements ModelTestInterface< Scm >
 {
 
+    @Override
+    public Class<Scm> createValue()
+    {
+        return Scm.class;
+    }
 }
 
 
diff --git a/maven-model/src/test/java/org/apache/maven/model/SiteTest.java b/maven-model/src/test/java/org/apache/maven/model/SiteTest.java
index 6537547..8a4a23a 100644
--- a/maven-model/src/test/java/org/apache/maven/model/SiteTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/SiteTest.java
@@ -26,4 +26,9 @@ package org.apache.maven.model;
  */
 class SiteTest implements ModelTestInterface< Site >
 {
+    @Override
+    public Class<Site> createValue()
+    {
+        return Site.class;
+    }
 }

[maven] 01/06: Removing code redundancy Using assertj, JUnit Jupiter

Posted by kh...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

khmarbaise pushed a commit to branch MODELTESTS_IMPROVEMENT
in repository https://gitbox.apache.org/repos/asf/maven.git

commit b75b2b5bcbeffd60396c60efe6f0d3ae9bd1c7e4
Author: Karl Heinz Marbaise <kh...@apache.org>
AuthorDate: Fri Nov 29 00:25:33 2019 +0100

    Removing code redundancy
    Using assertj, JUnit Jupiter
---
 maven-artifact/pom.xml                             |  5 ++
 maven-model/pom.xml                                | 22 +++++++-
 .../org/apache/maven/model/ActivationFileTest.java | 38 ++-----------
 .../org/apache/maven/model/ActivationOSTest.java   | 36 +-----------
 .../apache/maven/model/ActivationPropertyTest.java | 38 ++-----------
 .../org/apache/maven/model/ActivationTest.java     | 38 ++-----------
 .../java/org/apache/maven/model/BuildTest.java     | 38 ++-----------
 .../org/apache/maven/model/CiManagementTest.java   | 38 ++-----------
 .../org/apache/maven/model/ContributorTest.java    | 37 +-----------
 .../maven/model/DependencyManagementTest.java      | 36 +-----------
 .../org/apache/maven/model/DependencyTest.java     | 36 +-----------
 .../maven/model/DeploymentRepositoryTest.java      | 36 +-----------
 .../java/org/apache/maven/model/DeveloperTest.java | 36 +-----------
 .../maven/model/DistributionManagementTest.java    | 36 +-----------
 .../java/org/apache/maven/model/ExclusionTest.java | 36 +-----------
 .../java/org/apache/maven/model/ExtensionTest.java | 36 +-----------
 .../apache/maven/model/IssueManagementTest.java    | 36 +-----------
 .../java/org/apache/maven/model/LicenseTest.java   | 36 +-----------
 .../org/apache/maven/model/MailingListTest.java    | 36 +-----------
 .../java/org/apache/maven/model/ModelTest.java     | 36 +-----------
 .../org/apache/maven/model/ModelTestInterface.java | 65 ++++++++++++++++++++++
 .../java/org/apache/maven/model/NotifierTest.java  | 37 +-----------
 .../org/apache/maven/model/OrganizationTest.java   | 37 +-----------
 .../java/org/apache/maven/model/ParentTest.java    | 37 +-----------
 .../maven/model/PluginConfigurationTest.java       | 36 +-----------
 .../apache/maven/model/PluginContainerTest.java    | 36 +-----------
 .../apache/maven/model/PluginExecutionTest.java    | 36 +-----------
 .../apache/maven/model/PluginManagementTest.java   | 37 +-----------
 .../java/org/apache/maven/model/PluginTest.java    | 37 +-----------
 .../org/apache/maven/model/PrerequisitesTest.java  | 37 +-----------
 .../java/org/apache/maven/model/ProfileTest.java   | 36 +-----------
 .../org/apache/maven/model/RelocationTest.java     | 37 +-----------
 .../org/apache/maven/model/ReportPluginTest.java   | 37 +-----------
 .../java/org/apache/maven/model/ReportSetTest.java | 36 +-----------
 .../java/org/apache/maven/model/ReportingTest.java | 37 +-----------
 .../apache/maven/model/RepositoryPolicyTest.java   | 36 +-----------
 .../org/apache/maven/model/RepositoryTest.java     | 38 ++-----------
 .../java/org/apache/maven/model/ResourceTest.java  | 38 ++-----------
 .../test/java/org/apache/maven/model/ScmTest.java  | 36 ++----------
 .../test/java/org/apache/maven/model/SiteTest.java | 37 +-----------
 40 files changed, 210 insertions(+), 1239 deletions(-)

diff --git a/maven-artifact/pom.xml b/maven-artifact/pom.xml
index f47867b..03c002c 100644
--- a/maven-artifact/pom.xml
+++ b/maven-artifact/pom.xml
@@ -41,6 +41,11 @@ under the License.
       <groupId>org.apache.commons</groupId>
       <artifactId>commons-lang3</artifactId>
     </dependency>
+    <dependency>
+      <groupId>org.assertj</groupId>
+      <artifactId>assertj-core</artifactId>
+      <scope>test</scope>
+    </dependency>
   </dependencies>
 
   <build>
diff --git a/maven-model/pom.xml b/maven-model/pom.xml
index 83f4bf5..39984d9 100644
--- a/maven-model/pom.xml
+++ b/maven-model/pom.xml
@@ -19,7 +19,8 @@ specific language governing permissions and limitations
 under the License.
 -->
 
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
 
   <parent>
@@ -43,11 +44,30 @@ under the License.
       <artifactId>hamcrest-core</artifactId>
       <scope>test</scope>
     </dependency>
+    <dependency>
+      <groupId>org.junit.jupiter</groupId>
+      <artifactId>junit-jupiter-engine</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.assertj</groupId>
+      <artifactId>assertj-core</artifactId>
+      <scope>test</scope>
+    </dependency>
   </dependencies>
 
   <build>
     <plugins>
       <plugin>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <configuration>
+          <compilerArgs>
+            <arg>-Xlint:deprecation</arg>
+            <arg>-Xlint:unchecked</arg>
+          </compilerArgs>
+        </configuration>
+      </plugin>
+      <plugin>
         <groupId>org.codehaus.modello</groupId>
         <artifactId>modello-maven-plugin</artifactId>
         <configuration>
diff --git a/maven-model/src/test/java/org/apache/maven/model/ActivationFileTest.java b/maven-model/src/test/java/org/apache/maven/model/ActivationFileTest.java
index cbfdc2a..d86651d 100644
--- a/maven-model/src/test/java/org/apache/maven/model/ActivationFileTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/ActivationFileTest.java
@@ -19,45 +19,15 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import org.junit.jupiter.api.DisplayName;
 
 /**
  * Tests {@code ActivationFile}.
  *
  * @author Benjamin Bentmann
  */
-public class ActivationFileTest
+@DisplayName( "ActivationFile" )
+class ActivationFileTest implements ModelTestInterface< ActivationFile >
 {
-
-    @Test
-    public void testHashCodeNullSafe()
-    {
-        new ActivationFile().hashCode();
-    }
-
-    @Test
-    public void testEqualsNullSafe()
-    {
-        assertFalse( new ActivationFile().equals( null ) );
-
-        new ActivationFile().equals( new ActivationFile() );
-    }
-
-    @Test
-    public void testEqualsIdentity()
-    {
-        ActivationFile thing = new ActivationFile();
-        assertTrue( thing.equals( thing ) );
-    }
-
-    @Test
-    public void testToStringNullSafe()
-    {
-        assertNotNull( new ActivationFile().toString() );
-    }
-
 }
+
diff --git a/maven-model/src/test/java/org/apache/maven/model/ActivationOSTest.java b/maven-model/src/test/java/org/apache/maven/model/ActivationOSTest.java
index 3be5cd9..5820aed 100644
--- a/maven-model/src/test/java/org/apache/maven/model/ActivationOSTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/ActivationOSTest.java
@@ -19,45 +19,15 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import org.junit.jupiter.api.DisplayName;
 
 /**
  * Tests {@code ActivationOS}.
  *
  * @author Benjamin Bentmann
  */
-public class ActivationOSTest
+@DisplayName( "ActivationOS" )
+class ActivationOSTest implements ModelTestInterface< ActivationOS >
 {
 
-    @Test
-    public void testHashCodeNullSafe()
-    {
-        new ActivationOS().hashCode();
-    }
-
-    @Test
-    public void testEqualsNullSafe()
-    {
-        assertFalse( new ActivationOS().equals( null ) );
-
-        new ActivationOS().equals( new ActivationOS() );
-    }
-
-    @Test
-    public void testEqualsIdentity()
-    {
-        ActivationOS thing = new ActivationOS();
-        assertTrue( thing.equals( thing ) );
-    }
-
-    @Test
-    public void testToStringNullSafe()
-    {
-        assertNotNull( new ActivationOS().toString() );
-    }
-
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/ActivationPropertyTest.java b/maven-model/src/test/java/org/apache/maven/model/ActivationPropertyTest.java
index 564adc0..1727d29 100644
--- a/maven-model/src/test/java/org/apache/maven/model/ActivationPropertyTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/ActivationPropertyTest.java
@@ -19,45 +19,15 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import org.junit.jupiter.api.DisplayName;
 
 /**
  * Tests {@code ActivationProperty}.
  *
  * @author Benjamin Bentmann
  */
-public class ActivationPropertyTest
+@DisplayName( "ActivationProperty" )
+class ActivationPropertyTest implements ModelTestInterface< ActivationProperty >
 {
-
-    @Test
-    public void testHashCodeNullSafe()
-    {
-        new ActivationProperty().hashCode();
-    }
-
-    @Test
-    public void testEqualsNullSafe()
-    {
-        assertFalse( new ActivationProperty().equals( null ) );
-
-        new ActivationProperty().equals( new ActivationProperty() );
-    }
-
-    @Test
-    public void testEqualsIdentity()
-    {
-        ActivationProperty thing = new ActivationProperty();
-        assertTrue( thing.equals( thing ) );
-    }
-
-    @Test
-    public void testToStringNullSafe()
-    {
-        assertNotNull( new ActivationProperty().toString() );
-    }
-
 }
+
diff --git a/maven-model/src/test/java/org/apache/maven/model/ActivationTest.java b/maven-model/src/test/java/org/apache/maven/model/ActivationTest.java
index 520c0a9..34d82e1 100644
--- a/maven-model/src/test/java/org/apache/maven/model/ActivationTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/ActivationTest.java
@@ -19,45 +19,15 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import org.junit.jupiter.api.DisplayName;
 
 /**
  * Tests {@code Activation}.
  *
  * @author Benjamin Bentmann
  */
-public class ActivationTest
+@DisplayName( "Activation" )
+class ActivationTest implements ModelTestInterface< Activation >
 {
-
-    @Test
-    public void testHashCodeNullSafe()
-    {
-        new Activation().hashCode();
-    }
-
-    @Test
-    public void testEqualsNullSafe()
-    {
-        assertFalse( new Activation().equals( null ) );
-
-        new Activation().equals( new Activation() );
-    }
-
-    @Test
-    public void testEqualsIdentity()
-    {
-        Activation thing = new Activation();
-        assertTrue( thing.equals( thing ) );
-    }
-
-    @Test
-    public void testToStringNullSafe()
-    {
-        assertNotNull( new Activation().toString() );
-    }
-
 }
+
diff --git a/maven-model/src/test/java/org/apache/maven/model/BuildTest.java b/maven-model/src/test/java/org/apache/maven/model/BuildTest.java
index 3a14bd3..e1488ad 100644
--- a/maven-model/src/test/java/org/apache/maven/model/BuildTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/BuildTest.java
@@ -19,45 +19,15 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import org.junit.jupiter.api.DisplayName;
 
 /**
  * Tests {@code Build}.
  *
  * @author Benjamin Bentmann
  */
-public class BuildTest
+@DisplayName( "Build" )
+class BuildTest implements ModelTestInterface< Build >
 {
-
-    @Test
-    public void testHashCodeNullSafe()
-    {
-        new Build().hashCode();
-    }
-
-    @Test
-    public void testEqualsNullSafe()
-    {
-        assertFalse( new Build().equals( null ) );
-
-        new Build().equals( new Build() );
-    }
-
-    @Test
-    public void testEqualsIdentity()
-    {
-        Build thing = new Build();
-        assertTrue( thing.equals( thing ) );
-    }
-
-    @Test
-    public void testToStringNullSafe()
-    {
-        assertNotNull( new Build().toString() );
-    }
-
 }
+
diff --git a/maven-model/src/test/java/org/apache/maven/model/CiManagementTest.java b/maven-model/src/test/java/org/apache/maven/model/CiManagementTest.java
index ee6d41d..5dacbfd 100644
--- a/maven-model/src/test/java/org/apache/maven/model/CiManagementTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/CiManagementTest.java
@@ -19,45 +19,15 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import org.junit.jupiter.api.DisplayName;
 
 /**
  * Tests {@code CiManagement}.
  *
  * @author Benjamin Bentmann
  */
-public class CiManagementTest
+@DisplayName( "CiManagement" )
+class CiManagementTest implements ModelTestInterface< CiManagement >
 {
-
-    @Test
-    public void testHashCodeNullSafe()
-    {
-        new CiManagement().hashCode();
-    }
-
-    @Test
-    public void testEqualsNullSafe()
-    {
-        assertFalse( new CiManagement().equals( null ) );
-
-        new CiManagement().equals( new CiManagement() );
-    }
-
-    @Test
-    public void testEqualsIdentity()
-    {
-        CiManagement thing = new CiManagement();
-        assertTrue( thing.equals( thing ) );
-    }
-
-    @Test
-    public void testToStringNullSafe()
-    {
-        assertNotNull( new CiManagement().toString() );
-    }
-
 }
+
diff --git a/maven-model/src/test/java/org/apache/maven/model/ContributorTest.java b/maven-model/src/test/java/org/apache/maven/model/ContributorTest.java
index e2f3dbb..3853cd1 100644
--- a/maven-model/src/test/java/org/apache/maven/model/ContributorTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/ContributorTest.java
@@ -19,45 +19,14 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import org.junit.jupiter.api.DisplayName;
 
 /**
  * Tests {@code Contributor}.
  *
  * @author Benjamin Bentmann
  */
-public class ContributorTest
+@DisplayName( "Contributore" )
+class ContributorTest implements ModelTestInterface< Contributor >
 {
-
-    @Test
-    public void testHashCodeNullSafe()
-    {
-        new Contributor().hashCode();
-    }
-
-    @Test
-    public void testEqualsNullSafe()
-    {
-        assertFalse( new Contributor().equals( null ) );
-
-        new Contributor().equals( new Contributor() );
-    }
-
-    @Test
-    public void testEqualsIdentity()
-    {
-        Contributor thing = new Contributor();
-        assertTrue( thing.equals( thing ) );
-    }
-
-    @Test
-    public void testToStringNullSafe()
-    {
-        assertNotNull( new Contributor().toString() );
-    }
-
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/DependencyManagementTest.java b/maven-model/src/test/java/org/apache/maven/model/DependencyManagementTest.java
index e63d224..d4fd03a 100644
--- a/maven-model/src/test/java/org/apache/maven/model/DependencyManagementTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/DependencyManagementTest.java
@@ -19,45 +19,15 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import org.junit.jupiter.api.DisplayName;
 
 /**
  * Tests {@code DependencyManagement}.
  *
  * @author Benjamin Bentmann
  */
-public class DependencyManagementTest
+@DisplayName( "DependencyManagement" )
+class DependencyManagementTest implements ModelTestInterface< DependencyManagement >
 {
 
-    @Test
-    public void testHashCodeNullSafe()
-    {
-        new DependencyManagement().hashCode();
-    }
-
-    @Test
-    public void testEqualsNullSafe()
-    {
-        assertFalse( new DependencyManagement().equals( null ) );
-
-        new DependencyManagement().equals( new DependencyManagement() );
-    }
-
-    @Test
-    public void testEqualsIdentity()
-    {
-        DependencyManagement thing = new DependencyManagement();
-        assertTrue( thing.equals( thing ) );
-    }
-
-    @Test
-    public void testToStringNullSafe()
-    {
-        assertNotNull( new DependencyManagement().toString() );
-    }
-
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/DependencyTest.java b/maven-model/src/test/java/org/apache/maven/model/DependencyTest.java
index 6b7bc3f..9438b97 100644
--- a/maven-model/src/test/java/org/apache/maven/model/DependencyTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/DependencyTest.java
@@ -19,45 +19,15 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import org.junit.jupiter.api.DisplayName;
 
 /**
  * Tests {@code Dependency}.
  *
  * @author Benjamin Bentmann
  */
-public class DependencyTest
+@DisplayName( "Dependency" )
+class DependencyTest implements ModelTestInterface< Dependency >
 {
 
-    @Test
-    public void testHashCodeNullSafe()
-    {
-        new Dependency().hashCode();
-    }
-
-    @Test
-    public void testEqualsNullSafe()
-    {
-        assertFalse( new Dependency().equals( null ) );
-
-        new Dependency().equals( new Dependency() );
-    }
-
-    @Test
-    public void testEqualsIdentity()
-    {
-        Dependency thing = new Dependency();
-        assertTrue( thing.equals( thing ) );
-    }
-
-    @Test
-    public void testToStringNullSafe()
-    {
-        assertNotNull( new Dependency().toString() );
-    }
-
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/DeploymentRepositoryTest.java b/maven-model/src/test/java/org/apache/maven/model/DeploymentRepositoryTest.java
index c648ffd..d598f6d 100644
--- a/maven-model/src/test/java/org/apache/maven/model/DeploymentRepositoryTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/DeploymentRepositoryTest.java
@@ -19,45 +19,15 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import org.junit.jupiter.api.DisplayName;
 
 /**
  * Tests {@code DeploymentRepository}.
  *
  * @author Benjamin Bentmann
  */
-public class DeploymentRepositoryTest
+@DisplayName( "DeploymentRepository" )
+class DeploymentRepositoryTest implements ModelTestInterface< DeploymentRepository >
 {
 
-    @Test
-    public void testHashCodeNullSafe()
-    {
-        new DeploymentRepository().hashCode();
-    }
-
-    @Test
-    public void testEqualsNullSafe()
-    {
-        assertFalse( new DeploymentRepository().equals( null ) );
-
-        new DeploymentRepository().equals( new DeploymentRepository() );
-    }
-
-    @Test
-    public void testEqualsIdentity()
-    {
-        DeploymentRepository thing = new DeploymentRepository();
-        assertTrue( thing.equals( thing ) );
-    }
-
-    @Test
-    public void testToStringNullSafe()
-    {
-        assertNotNull( new DeploymentRepository().toString() );
-    }
-
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/DeveloperTest.java b/maven-model/src/test/java/org/apache/maven/model/DeveloperTest.java
index 61d86f0..daa0e68 100644
--- a/maven-model/src/test/java/org/apache/maven/model/DeveloperTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/DeveloperTest.java
@@ -19,45 +19,15 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import org.junit.jupiter.api.DisplayName;
 
 /**
  * Tests {@code Developer}.
  *
  * @author Benjamin Bentmann
  */
-public class DeveloperTest
+@DisplayName( "Developer" )
+class DeveloperTest implements ModelTestInterface< Developer >
 {
 
-    @Test
-    public void testHashCodeNullSafe()
-    {
-        new Developer().hashCode();
-    }
-
-    @Test
-    public void testEqualsNullSafe()
-    {
-        assertFalse( new Developer().equals( null ) );
-
-        new Developer().equals( new Developer() );
-    }
-
-    @Test
-    public void testEqualsIdentity()
-    {
-        Developer thing = new Developer();
-        assertTrue( thing.equals( thing ) );
-    }
-
-    @Test
-    public void testToStringNullSafe()
-    {
-        assertNotNull( new Developer().toString() );
-    }
-
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/DistributionManagementTest.java b/maven-model/src/test/java/org/apache/maven/model/DistributionManagementTest.java
index db8ba21..c514ca0 100644
--- a/maven-model/src/test/java/org/apache/maven/model/DistributionManagementTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/DistributionManagementTest.java
@@ -19,45 +19,15 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import org.junit.jupiter.api.DisplayName;
 
 /**
  * Tests {@code DistributionManagement}.
  *
  * @author Benjamin Bentmann
  */
-public class DistributionManagementTest
+@DisplayName( "DistributionManagement" )
+class DistributionManagementTest implements ModelTestInterface< DistributionManagement >
 {
 
-    @Test
-    public void testHashCodeNullSafe()
-    {
-        new DistributionManagement().hashCode();
-    }
-
-    @Test
-    public void testEqualsNullSafe()
-    {
-        assertFalse( new DistributionManagement().equals( null ) );
-
-        new DistributionManagement().equals( new DistributionManagement() );
-    }
-
-    @Test
-    public void testEqualsIdentity()
-    {
-        DistributionManagement thing = new DistributionManagement();
-        assertTrue( thing.equals( thing ) );
-    }
-
-    @Test
-    public void testToStringNullSafe()
-    {
-        assertNotNull( new DistributionManagement().toString() );
-    }
-
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/ExclusionTest.java b/maven-model/src/test/java/org/apache/maven/model/ExclusionTest.java
index 90e4b74..7595866 100644
--- a/maven-model/src/test/java/org/apache/maven/model/ExclusionTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/ExclusionTest.java
@@ -19,45 +19,15 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import org.junit.jupiter.api.DisplayName;
 
 /**
  * Tests {@code Exclusion}.
  *
  * @author Benjamin Bentmann
  */
-public class ExclusionTest
+@DisplayName( "Exclusion" )
+class ExclusionTest implements ModelTestInterface< Exclusion >
 {
 
-    @Test
-    public void testHashCodeNullSafe()
-    {
-        new Exclusion().hashCode();
-    }
-
-    @Test
-    public void testEqualsNullSafe()
-    {
-        assertFalse( new Exclusion().equals( null ) );
-
-        new Exclusion().equals( new Exclusion() );
-    }
-
-    @Test
-    public void testEqualsIdentity()
-    {
-        Exclusion thing = new Exclusion();
-        assertTrue( thing.equals( thing ) );
-    }
-
-    @Test
-    public void testToStringNullSafe()
-    {
-        assertNotNull( new Exclusion().toString() );
-    }
-
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/ExtensionTest.java b/maven-model/src/test/java/org/apache/maven/model/ExtensionTest.java
index 218ff50..ed39bb5 100644
--- a/maven-model/src/test/java/org/apache/maven/model/ExtensionTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/ExtensionTest.java
@@ -19,45 +19,15 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import org.junit.jupiter.api.DisplayName;
 
 /**
  * Tests {@code Extension}.
  *
  * @author Benjamin Bentmann
  */
-public class ExtensionTest
+@DisplayName( "Extension" )
+class ExtensionTest implements ModelTestInterface< Extension >
 {
 
-    @Test
-    public void testHashCodeNullSafe()
-    {
-        new Extension().hashCode();
-    }
-
-    @Test
-    public void testEqualsNullSafe()
-    {
-        assertFalse( new Extension().equals( null ) );
-
-        new Extension().equals( new Extension() );
-    }
-
-    @Test
-    public void testEqualsIdentity()
-    {
-        Extension thing = new Extension();
-        assertTrue( thing.equals( thing ) );
-    }
-
-    @Test
-    public void testToStringNullSafe()
-    {
-        assertNotNull( new Extension().toString() );
-    }
-
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/IssueManagementTest.java b/maven-model/src/test/java/org/apache/maven/model/IssueManagementTest.java
index 27e1eb0..bdd0b9f 100644
--- a/maven-model/src/test/java/org/apache/maven/model/IssueManagementTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/IssueManagementTest.java
@@ -19,45 +19,15 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import org.junit.jupiter.api.DisplayName;
 
 /**
  * Tests {@code IssueManagement}.
  *
  * @author Benjamin Bentmann
  */
-public class IssueManagementTest
+@DisplayName( "IssueManagement" )
+class IssueManagementTest implements ModelTestInterface< IssueManagement >
 {
 
-    @Test
-    public void testHashCodeNullSafe()
-    {
-        new IssueManagement().hashCode();
-    }
-
-    @Test
-    public void testEqualsNullSafe()
-    {
-        assertFalse( new IssueManagement().equals( null ) );
-
-        new IssueManagement().equals( new IssueManagement() );
-    }
-
-    @Test
-    public void testEqualsIdentity()
-    {
-        IssueManagement thing = new IssueManagement();
-        assertTrue( thing.equals( thing ) );
-    }
-
-    @Test
-    public void testToStringNullSafe()
-    {
-        assertNotNull( new IssueManagement().toString() );
-    }
-
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/LicenseTest.java b/maven-model/src/test/java/org/apache/maven/model/LicenseTest.java
index dd56616..5fef64a 100644
--- a/maven-model/src/test/java/org/apache/maven/model/LicenseTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/LicenseTest.java
@@ -19,45 +19,15 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import org.junit.jupiter.api.DisplayName;
 
 /**
  * Tests {@code License}.
  *
  * @author Benjamin Bentmann
  */
-public class LicenseTest
+@DisplayName( "License" )
+class LicenseTest implements ModelTestInterface< License >
 {
 
-    @Test
-    public void testHashCodeNullSafe()
-    {
-        new License().hashCode();
-    }
-
-    @Test
-    public void testEqualsNullSafe()
-    {
-        assertFalse( new License().equals( null ) );
-
-        new License().equals( new License() );
-    }
-
-    @Test
-    public void testEqualsIdentity()
-    {
-        License thing = new License();
-        assertTrue( thing.equals( thing ) );
-    }
-
-    @Test
-    public void testToStringNullSafe()
-    {
-        assertNotNull( new License().toString() );
-    }
-
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/MailingListTest.java b/maven-model/src/test/java/org/apache/maven/model/MailingListTest.java
index 5de9edc..b2f3ebe 100644
--- a/maven-model/src/test/java/org/apache/maven/model/MailingListTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/MailingListTest.java
@@ -19,45 +19,15 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import org.junit.jupiter.api.DisplayName;
 
 /**
  * Tests {@code MailingList}.
  *
  * @author Benjamin Bentmann
  */
-public class MailingListTest
+@DisplayName( "MailingList" )
+class MailingListTest implements ModelTestInterface< MailingList >
 {
 
-    @Test
-    public void testHashCodeNullSafe()
-    {
-        new MailingList().hashCode();
-    }
-
-    @Test
-    public void testEqualsNullSafe()
-    {
-        assertFalse( new MailingList().equals( null ) );
-
-        new MailingList().equals( new MailingList() );
-    }
-
-    @Test
-    public void testEqualsIdentity()
-    {
-        MailingList thing = new MailingList();
-        assertTrue( thing.equals( thing ) );
-    }
-
-    @Test
-    public void testToStringNullSafe()
-    {
-        assertNotNull( new MailingList().toString() );
-    }
-
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/ModelTest.java b/maven-model/src/test/java/org/apache/maven/model/ModelTest.java
index 37adc82..2a16ba5 100644
--- a/maven-model/src/test/java/org/apache/maven/model/ModelTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/ModelTest.java
@@ -19,45 +19,15 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import org.junit.jupiter.api.DisplayName;
 
 /**
  * Tests {@code Model}.
  *
  * @author Benjamin Bentmann
  */
-public class ModelTest
+@DisplayName( "Model" )
+class ModelTest implements ModelTestInterface< Model >
 {
 
-    @Test
-    public void testHashCodeNullSafe()
-    {
-        new Model().hashCode();
-    }
-
-    @Test
-    public void testEqualsNullSafe()
-    {
-        assertFalse( new Model().equals( null ) );
-
-        new Model().equals( new Model() );
-    }
-
-    @Test
-    public void testEqualsIdentity()
-    {
-        Model thing = new Model();
-        assertTrue( thing.equals( thing ) );
-    }
-
-    @Test
-    public void testToStringNullSafe()
-    {
-        assertNotNull( new Model().toString() );
-    }
-
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/ModelTestInterface.java b/maven-model/src/test/java/org/apache/maven/model/ModelTestInterface.java
new file mode 100644
index 0000000..d8108de
--- /dev/null
+++ b/maven-model/src/test/java/org/apache/maven/model/ModelTestInterface.java
@@ -0,0 +1,65 @@
+package org.apache.maven.model;
+
+/*
+ * 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.
+ */
+
+import org.junit.jupiter.api.DisplayName;
+import org.junit.jupiter.api.Test;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatCode;
+
+interface ModelTestInterface< T >
+{
+    @SuppressWarnings( "unchecked" )
+    default T createNewInstance(Class< ? > x) throws ReflectiveOperationException
+    {
+        return ( T ) x.getDeclaredConstructor().newInstance();
+    }
+
+    @Test
+    @DisplayName( "hashCode should not fail with null." )
+    default void hashCodeNullSafe()
+    {
+        assertThatCode( () -> createNewInstance( this.getClass() ).hashCode() ).doesNotThrowAnyException();
+    }
+
+    @Test
+    @DisplayName( "equals should not fail with null." )
+    default void equalsNullSafe() throws ReflectiveOperationException
+    {
+        assertThat( createNewInstance( this.getClass() ).equals( null ) ).isFalse();
+    }
+
+    @Test
+    @DisplayName( "equals should result in false for two different instances." )
+    default void equalsSameToBeFalse() throws ReflectiveOperationException
+    {
+        T firstInstance = createNewInstance( this.getClass() );
+        T secondInstance = createNewInstance( this.getClass() );
+        assertThat( firstInstance.equals( secondInstance ) ).isFalse();
+    }
+
+    @Test
+    @DisplayName( "toString should not be null." )
+    default void toStringNullSafe() throws ReflectiveOperationException
+    {
+        assertThat( createNewInstance( this.getClass() ).toString() ).isNotNull();
+    }
+}
diff --git a/maven-model/src/test/java/org/apache/maven/model/NotifierTest.java b/maven-model/src/test/java/org/apache/maven/model/NotifierTest.java
index 026632a..ab4defb 100644
--- a/maven-model/src/test/java/org/apache/maven/model/NotifierTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/NotifierTest.java
@@ -19,45 +19,14 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import org.junit.jupiter.api.DisplayName;
 
 /**
  * Tests {@code Notifier}.
  *
  * @author Benjamin Bentmann
  */
-public class NotifierTest
+@DisplayName( "Notifier" )
+class NotifierTest implements ModelTestInterface< Notifier >
 {
-
-    @Test
-    public void testHashCodeNullSafe()
-    {
-        new Notifier().hashCode();
-    }
-
-    @Test
-    public void testEqualsNullSafe()
-    {
-        assertFalse( new Notifier().equals( null ) );
-
-        new Notifier().equals( new Notifier() );
-    }
-
-    @Test
-    public void testEqualsIdentity()
-    {
-        Notifier thing = new Notifier();
-        assertTrue( thing.equals( thing ) );
-    }
-
-    @Test
-    public void testToStringNullSafe()
-    {
-        assertNotNull( new Notifier().toString() );
-    }
-
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/OrganizationTest.java b/maven-model/src/test/java/org/apache/maven/model/OrganizationTest.java
index ef19d2a..ef5eb4f 100644
--- a/maven-model/src/test/java/org/apache/maven/model/OrganizationTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/OrganizationTest.java
@@ -19,45 +19,14 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import org.junit.jupiter.api.DisplayName;
 
 /**
  * Tests {@code Organization}.
  *
  * @author Benjamin Bentmann
  */
-public class OrganizationTest
+@DisplayName( "Organization" )
+class OrganizationTest implements ModelTestInterface< Organization >
 {
-
-    @Test
-    public void testHashCodeNullSafe()
-    {
-        new Organization().hashCode();
-    }
-
-    @Test
-    public void testEqualsNullSafe()
-    {
-        assertFalse( new Organization().equals( null ) );
-
-        new Organization().equals( new Organization() );
-    }
-
-    @Test
-    public void testEqualsIdentity()
-    {
-        Organization thing = new Organization();
-        assertTrue( thing.equals( thing ) );
-    }
-
-    @Test
-    public void testToStringNullSafe()
-    {
-        assertNotNull( new Organization().toString() );
-    }
-
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/ParentTest.java b/maven-model/src/test/java/org/apache/maven/model/ParentTest.java
index d8690fc..3419438 100644
--- a/maven-model/src/test/java/org/apache/maven/model/ParentTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/ParentTest.java
@@ -19,45 +19,14 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import org.junit.jupiter.api.DisplayName;
 
 /**
  * Tests {@code Parent}.
  *
  * @author Benjamin Bentmann
  */
-public class ParentTest
+@DisplayName( "Parent" )
+class ParentTest implements ModelTestInterface< Parent >
 {
-
-    @Test
-    public void testHashCodeNullSafe()
-    {
-        new Parent().hashCode();
-    }
-
-    @Test
-    public void testEqualsNullSafe()
-    {
-        assertFalse( new Parent().equals( null ) );
-
-        new Parent().equals( new Parent() );
-    }
-
-    @Test
-    public void testEqualsIdentity()
-    {
-        Parent thing = new Parent();
-        assertTrue( thing.equals( thing ) );
-    }
-
-    @Test
-    public void testToStringNullSafe()
-    {
-        assertNotNull( new Parent().toString() );
-    }
-
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/PluginConfigurationTest.java b/maven-model/src/test/java/org/apache/maven/model/PluginConfigurationTest.java
index 3e52df7..39642ba 100644
--- a/maven-model/src/test/java/org/apache/maven/model/PluginConfigurationTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/PluginConfigurationTest.java
@@ -19,45 +19,15 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import org.junit.jupiter.api.DisplayName;
 
 /**
  * Tests {@code PluginConfiguration}.
  *
  * @author Benjamin Bentmann
  */
-public class PluginConfigurationTest
+@DisplayName( "PluginConfiguration" )
+class PluginConfigurationTest implements ModelTestInterface< PluginConfiguration >
 {
 
-    @Test
-    public void testHashCodeNullSafe()
-    {
-        new PluginConfiguration().hashCode();
-    }
-
-    @Test
-    public void testEqualsNullSafe()
-    {
-        assertFalse( new PluginConfiguration().equals( null ) );
-
-        new PluginConfiguration().equals( new PluginConfiguration() );
-    }
-
-    @Test
-    public void testEqualsIdentity()
-    {
-        PluginConfiguration thing = new PluginConfiguration();
-        assertTrue( thing.equals( thing ) );
-    }
-
-    @Test
-    public void testToStringNullSafe()
-    {
-        assertNotNull( new PluginConfiguration().toString() );
-    }
-
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/PluginContainerTest.java b/maven-model/src/test/java/org/apache/maven/model/PluginContainerTest.java
index ed4e9e3..9aab597 100644
--- a/maven-model/src/test/java/org/apache/maven/model/PluginContainerTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/PluginContainerTest.java
@@ -19,45 +19,15 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import org.junit.jupiter.api.DisplayName;
 
 /**
  * Tests {@code PluginContainer}.
  *
  * @author Benjamin Bentmann
  */
-public class PluginContainerTest
+@DisplayName( "PluginContainer" )
+class PluginContainerTest implements ModelTestInterface< PluginContainer >
 {
 
-    @Test
-    public void testHashCodeNullSafe()
-    {
-        new PluginContainer().hashCode();
-    }
-
-    @Test
-    public void testEqualsNullSafe()
-    {
-        assertFalse( new PluginContainer().equals( null ) );
-
-        new PluginContainer().equals( new PluginContainer() );
-    }
-
-    @Test
-    public void testEqualsIdentity()
-    {
-        PluginContainer thing = new PluginContainer();
-        assertTrue( thing.equals( thing ) );
-    }
-
-    @Test
-    public void testToStringNullSafe()
-    {
-        assertNotNull( new PluginContainer().toString() );
-    }
-
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/PluginExecutionTest.java b/maven-model/src/test/java/org/apache/maven/model/PluginExecutionTest.java
index 35b78bd..8bd1241 100644
--- a/maven-model/src/test/java/org/apache/maven/model/PluginExecutionTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/PluginExecutionTest.java
@@ -19,45 +19,15 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import org.junit.jupiter.api.DisplayName;
 
 /**
  * Tests {@code PluginExecution}.
  *
  * @author Benjamin Bentmann
  */
-public class PluginExecutionTest
+@DisplayName( "PluginExecution" )
+class PluginExecutionTest implements ModelTestInterface< PluginExecution >
 {
 
-    @Test
-    public void testHashCodeNullSafe()
-    {
-        new PluginExecution().hashCode();
-    }
-
-    @Test
-    public void testEqualsNullSafe()
-    {
-        assertFalse( new PluginExecution().equals( null ) );
-
-        new PluginExecution().equals( new PluginExecution() );
-    }
-
-    @Test
-    public void testEqualsIdentity()
-    {
-        PluginExecution thing = new PluginExecution();
-        assertTrue( thing.equals( thing ) );
-    }
-
-    @Test
-    public void testToStringNullSafe()
-    {
-        assertNotNull( new PluginExecution().toString() );
-    }
-
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/PluginManagementTest.java b/maven-model/src/test/java/org/apache/maven/model/PluginManagementTest.java
index b4d8266..d53450a 100644
--- a/maven-model/src/test/java/org/apache/maven/model/PluginManagementTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/PluginManagementTest.java
@@ -19,45 +19,14 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import org.junit.jupiter.api.DisplayName;
 
 /**
  * Tests {@code PluginManagement}.
  *
  * @author Benjamin Bentmann
  */
-public class PluginManagementTest
+@DisplayName( "PluginManagement" )
+class PluginManagementTest implements ModelTestInterface< PluginManagement >
 {
-
-    @Test
-    public void testHashCodeNullSafe()
-    {
-        new PluginManagement().hashCode();
-    }
-
-    @Test
-    public void testEqualsNullSafe()
-    {
-        assertFalse( new PluginManagement().equals( null ) );
-
-        new PluginManagement().equals( new PluginManagement() );
-    }
-
-    @Test
-    public void testEqualsIdentity()
-    {
-        PluginManagement thing = new PluginManagement();
-        assertTrue( thing.equals( thing ) );
-    }
-
-    @Test
-    public void testToStringNullSafe()
-    {
-        assertNotNull( new PluginManagement().toString() );
-    }
-
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/PluginTest.java b/maven-model/src/test/java/org/apache/maven/model/PluginTest.java
index d8e345b..f75a9f1 100644
--- a/maven-model/src/test/java/org/apache/maven/model/PluginTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/PluginTest.java
@@ -19,45 +19,14 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import org.junit.jupiter.api.DisplayName;
 
 /**
  * Tests {@code Plugin}.
  *
  * @author Benjamin Bentmann
  */
-public class PluginTest
+@DisplayName( "Plugin" )
+class PluginTest implements ModelTestInterface< Plugin >
 {
-
-    @Test
-    public void testHashCodeNullSafe()
-    {
-        new Plugin().hashCode();
-    }
-
-    @Test
-    public void testEqualsNullSafe()
-    {
-        assertFalse( new Plugin().equals( null ) );
-
-        new Plugin().equals( new Plugin() );
-    }
-
-    @Test
-    public void testEqualsIdentity()
-    {
-        Plugin thing = new Plugin();
-        assertTrue( thing.equals( thing ) );
-    }
-
-    @Test
-    public void testToStringNullSafe()
-    {
-        assertNotNull( new Plugin().toString() );
-    }
-
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/PrerequisitesTest.java b/maven-model/src/test/java/org/apache/maven/model/PrerequisitesTest.java
index 2c91e47..c3b3150 100644
--- a/maven-model/src/test/java/org/apache/maven/model/PrerequisitesTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/PrerequisitesTest.java
@@ -19,45 +19,14 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import org.junit.jupiter.api.DisplayName;
 
 /**
  * Tests {@code Prerequisites}.
  *
  * @author Benjamin Bentmann
  */
-public class PrerequisitesTest
+@DisplayName( "Prerequisites" )
+class PrerequisitesTest implements ModelTestInterface< Prerequisites >
 {
-
-    @Test
-    public void testHashCodeNullSafe()
-    {
-        new Prerequisites().hashCode();
-    }
-
-    @Test
-    public void testEqualsNullSafe()
-    {
-        assertFalse( new Prerequisites().equals( null ) );
-
-        new Prerequisites().equals( new Prerequisites() );
-    }
-
-    @Test
-    public void testEqualsIdentity()
-    {
-        Prerequisites thing = new Prerequisites();
-        assertTrue( thing.equals( thing ) );
-    }
-
-    @Test
-    public void testToStringNullSafe()
-    {
-        assertNotNull( new Prerequisites().toString() );
-    }
-
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/ProfileTest.java b/maven-model/src/test/java/org/apache/maven/model/ProfileTest.java
index ac719e4..921fca3 100644
--- a/maven-model/src/test/java/org/apache/maven/model/ProfileTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/ProfileTest.java
@@ -19,45 +19,15 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import org.junit.jupiter.api.DisplayName;
 
 /**
  * Tests {@code Profile}.
  *
  * @author Benjamin Bentmann
  */
-public class ProfileTest
+@DisplayName( "Profile" )
+class ProfileTest implements ModelTestInterface< Profile >
 {
 
-    @Test
-    public void testHashCodeNullSafe()
-    {
-        new Profile().hashCode();
-    }
-
-    @Test
-    public void testEqualsNullSafe()
-    {
-        assertFalse( new Profile().equals( null ) );
-
-        new Profile().equals( new Profile() );
-    }
-
-    @Test
-    public void testEqualsIdentity()
-    {
-        Profile thing = new Profile();
-        assertTrue( thing.equals( thing ) );
-    }
-
-    @Test
-    public void testToStringNullSafe()
-    {
-        assertNotNull( new Profile().toString() );
-    }
-
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/RelocationTest.java b/maven-model/src/test/java/org/apache/maven/model/RelocationTest.java
index ea825a6..92dd309 100644
--- a/maven-model/src/test/java/org/apache/maven/model/RelocationTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/RelocationTest.java
@@ -19,45 +19,14 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import org.junit.jupiter.api.DisplayName;
 
 /**
  * Tests {@code Relocation}.
  *
  * @author Benjamin Bentmann
  */
-public class RelocationTest
+@DisplayName( "Relocation" )
+class RelocationTest implements ModelTestInterface< Relocation >
 {
-
-    @Test
-    public void testHashCodeNullSafe()
-    {
-        new Relocation().hashCode();
-    }
-
-    @Test
-    public void testEqualsNullSafe()
-    {
-        assertFalse( new Relocation().equals( null ) );
-
-        new Relocation().equals( new Relocation() );
-    }
-
-    @Test
-    public void testEqualsIdentity()
-    {
-        Relocation thing = new Relocation();
-        assertTrue( thing.equals( thing ) );
-    }
-
-    @Test
-    public void testToStringNullSafe()
-    {
-        assertNotNull( new Relocation().toString() );
-    }
-
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/ReportPluginTest.java b/maven-model/src/test/java/org/apache/maven/model/ReportPluginTest.java
index 094d2d5..15c6586 100644
--- a/maven-model/src/test/java/org/apache/maven/model/ReportPluginTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/ReportPluginTest.java
@@ -19,45 +19,14 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import org.junit.jupiter.api.DisplayName;
 
 /**
  * Tests {@code ReportPlugin}.
  *
  * @author Benjamin Bentmann
  */
-public class ReportPluginTest
+@DisplayName( "ReportPlugin" )
+class ReportPluginTest implements ModelTestInterface< ReportPlugin >
 {
-
-    @Test
-    public void testHashCodeNullSafe()
-    {
-        new ReportPlugin().hashCode();
-    }
-
-    @Test
-    public void testEqualsNullSafe()
-    {
-        assertFalse( new ReportPlugin().equals( null ) );
-
-        new ReportPlugin().equals( new ReportPlugin() );
-    }
-
-    @Test
-    public void testEqualsIdentity()
-    {
-        ReportPlugin thing = new ReportPlugin();
-        assertTrue( thing.equals( thing ) );
-    }
-
-    @Test
-    public void testToStringNullSafe()
-    {
-        assertNotNull( new ReportPlugin().toString() );
-    }
-
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/ReportSetTest.java b/maven-model/src/test/java/org/apache/maven/model/ReportSetTest.java
index c0bb257..864c9c9 100644
--- a/maven-model/src/test/java/org/apache/maven/model/ReportSetTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/ReportSetTest.java
@@ -19,45 +19,15 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import org.junit.jupiter.api.DisplayName;
 
 /**
  * Tests {@code ReportSet}.
  *
  * @author Benjamin Bentmann
  */
-public class ReportSetTest
+@DisplayName( "ReportSet" )
+class ReportSetTest implements ModelTestInterface< ReportSet >
 {
 
-    @Test
-    public void testHashCodeNullSafe()
-    {
-        new ReportSet().hashCode();
-    }
-
-    @Test
-    public void testEqualsNullSafe()
-    {
-        assertFalse( new ReportSet().equals( null ) );
-
-        new ReportSet().equals( new ReportSet() );
-    }
-
-    @Test
-    public void testEqualsIdentity()
-    {
-        ReportSet thing = new ReportSet();
-        assertTrue( thing.equals( thing ) );
-    }
-
-    @Test
-    public void testToStringNullSafe()
-    {
-        assertNotNull( new ReportSet().toString() );
-    }
-
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/ReportingTest.java b/maven-model/src/test/java/org/apache/maven/model/ReportingTest.java
index 3b04d02..063b1e5 100644
--- a/maven-model/src/test/java/org/apache/maven/model/ReportingTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/ReportingTest.java
@@ -19,45 +19,14 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import org.junit.jupiter.api.DisplayName;
 
 /**
  * Tests {@code Reporting}.
  *
  * @author Benjamin Bentmann
  */
-public class ReportingTest
+@DisplayName( "Reporting" )
+class ReportingTest implements ModelTestInterface< Reporting >
 {
-
-    @Test
-    public void testHashCodeNullSafe()
-    {
-        new Reporting().hashCode();
-    }
-
-    @Test
-    public void testEqualsNullSafe()
-    {
-        assertFalse( new Reporting().equals( null ) );
-
-        new Reporting().equals( new Reporting() );
-    }
-
-    @Test
-    public void testEqualsIdentity()
-    {
-        Reporting thing = new Reporting();
-        assertTrue( thing.equals( thing ) );
-    }
-
-    @Test
-    public void testToStringNullSafe()
-    {
-        assertNotNull( new Reporting().toString() );
-    }
-
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/RepositoryPolicyTest.java b/maven-model/src/test/java/org/apache/maven/model/RepositoryPolicyTest.java
index 770bce2..71c2b71 100644
--- a/maven-model/src/test/java/org/apache/maven/model/RepositoryPolicyTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/RepositoryPolicyTest.java
@@ -19,45 +19,15 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import org.junit.jupiter.api.DisplayName;
 
 /**
  * Tests {@code RepositoryPolicy}.
  *
  * @author Benjamin Bentmann
  */
-public class RepositoryPolicyTest
+@DisplayName( "RepositoryPolicy" )
+class RepositoryPolicyTest implements ModelTestInterface< RepositoryPolicy >
 {
 
-    @Test
-    public void testHashCodeNullSafe()
-    {
-        new RepositoryPolicy().hashCode();
-    }
-
-    @Test
-    public void testEqualsNullSafe()
-    {
-        assertFalse( new RepositoryPolicy().equals( null ) );
-
-        new RepositoryPolicy().equals( new RepositoryPolicy() );
-    }
-
-    @Test
-    public void testEqualsIdentity()
-    {
-        RepositoryPolicy thing = new RepositoryPolicy();
-        assertTrue( thing.equals( thing ) );
-    }
-
-    @Test
-    public void testToStringNullSafe()
-    {
-        assertNotNull( new RepositoryPolicy().toString() );
-    }
-
 }
diff --git a/maven-model/src/test/java/org/apache/maven/model/RepositoryTest.java b/maven-model/src/test/java/org/apache/maven/model/RepositoryTest.java
index 62f32d7..713fa4a 100644
--- a/maven-model/src/test/java/org/apache/maven/model/RepositoryTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/RepositoryTest.java
@@ -19,45 +19,15 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import org.junit.jupiter.api.DisplayName;
 
 /**
  * Tests {@code Repository}.
  *
  * @author Benjamin Bentmann
  */
-public class RepositoryTest
+@DisplayName( "Repository" )
+class RepositoryTest implements ModelTestInterface< Repository >
 {
-
-    @Test
-    public void testHashCodeNullSafe()
-    {
-        new Repository().hashCode();
-    }
-
-    @Test
-    public void testEqualsNullSafe()
-    {
-        assertFalse( new Repository().equals( null ) );
-
-        new Repository().equals( new Repository() );
-    }
-
-    @Test
-    public void testEqualsIdentity()
-    {
-        Repository thing = new Repository();
-        assertTrue( thing.equals( thing ) );
-    }
-
-    @Test
-    public void testToStringNullSafe()
-    {
-        assertNotNull( new Repository().toString() );
-    }
-
 }
+
diff --git a/maven-model/src/test/java/org/apache/maven/model/ResourceTest.java b/maven-model/src/test/java/org/apache/maven/model/ResourceTest.java
index 3e5b1b3..d09a3c6 100644
--- a/maven-model/src/test/java/org/apache/maven/model/ResourceTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/ResourceTest.java
@@ -19,45 +19,15 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import org.junit.jupiter.api.DisplayName;
 
 /**
  * Tests {@code Resource}.
  *
  * @author Benjamin Bentmann
  */
-public class ResourceTest
+@DisplayName( "Resource" )
+class ResourceTest implements ModelTestInterface< Resource >
 {
-
-    @Test
-    public void testHashCodeNullSafe()
-    {
-        new Resource().hashCode();
-    }
-
-    @Test
-    public void testEqualsNullSafe()
-    {
-        assertFalse( new Resource().equals( null ) );
-
-        new Resource().equals( new Resource() );
-    }
-
-    @Test
-    public void testEqualsIdentity()
-    {
-        Resource thing = new Resource();
-        assertTrue( thing.equals( thing ) );
-    }
-
-    @Test
-    public void testToStringNullSafe()
-    {
-        assertNotNull( new Resource().toString() );
-    }
-
 }
+
diff --git a/maven-model/src/test/java/org/apache/maven/model/ScmTest.java b/maven-model/src/test/java/org/apache/maven/model/ScmTest.java
index a6ccc24..b244fb5 100644
--- a/maven-model/src/test/java/org/apache/maven/model/ScmTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/ScmTest.java
@@ -19,45 +19,17 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import org.junit.jupiter.api.DisplayName;
 
 /**
  * Tests {@code Scm}.
  *
  * @author Benjamin Bentmann
  */
-public class ScmTest
+@DisplayName( "Scm" )
+class ScmTest implements ModelTestInterface< Scm >
 {
 
-    @Test
-    public void testHashCodeNullSafe()
-    {
-        new Scm().hashCode();
-    }
-
-    @Test
-    public void testEqualsNullSafe()
-    {
-        assertFalse( new Scm().equals( null ) );
-
-        new Scm().equals( new Scm() );
-    }
-
-    @Test
-    public void testEqualsIdentity()
-    {
-        Scm thing = new Scm();
-        assertTrue( thing.equals( thing ) );
-    }
+}
 
-    @Test
-    public void testToStringNullSafe()
-    {
-        assertNotNull( new Scm().toString() );
-    }
 
-}
diff --git a/maven-model/src/test/java/org/apache/maven/model/SiteTest.java b/maven-model/src/test/java/org/apache/maven/model/SiteTest.java
index 5fe4975..1d96718 100644
--- a/maven-model/src/test/java/org/apache/maven/model/SiteTest.java
+++ b/maven-model/src/test/java/org/apache/maven/model/SiteTest.java
@@ -19,45 +19,14 @@ package org.apache.maven.model;
  * under the License.
  */
 
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import org.junit.jupiter.api.DisplayName;
 
 /**
  * Tests {@code Site}.
  *
  * @author Benjamin Bentmann
  */
-public class SiteTest
+@DisplayName( "Site" )
+class SiteTest implements ModelTestInterface< Site >
 {
-
-    @Test
-    public void testHashCodeNullSafe()
-    {
-        new Site().hashCode();
-    }
-
-    @Test
-    public void testEqualsNullSafe()
-    {
-        assertFalse( new Site().equals( null ) );
-
-        new Site().equals( new Site() );
-    }
-
-    @Test
-    public void testEqualsIdentity()
-    {
-        Site thing = new Site();
-        assertTrue( thing.equals( thing ) );
-    }
-
-    @Test
-    public void testToStringNullSafe()
-    {
-        assertNotNull( new Site().toString() );
-    }
-
 }