apache / apache/maven

[MNG-7007] Remove documented backward compatibility

Open
#8,028 8 comments 0 reactions 0 assignees View on GitHub
maintenance priority:minor
Dominant language
Java
Stars
5.3k
Forks
3.1k
Avg merge
20h 40m
Merged PRs (30d)
275

Description

**[Michael Osipov](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=michael-o)** opened **[MNG-7007](https://issues.apache.org/jira/browse/MNG-7007?redirect=false)** and commented

These spots document backward compatibility:

```
./maven-core/src/main/java/org/apache/maven/execution/MavenSession.java: // Backward compat
./maven-core/src/main/java/org/apache/maven/plugin/DefaultBuildPluginManager.java: // This is necessary to avoid creating compatibility problems for existing plugins that use
./maven-core/src/main/java/org/apache/maven/plugin/LegacySupport.java: * Helps to provide backward-compatibility with plugins that use legacy components. Warning: This is an
./maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultLegacySupport.java: * Helps to provide backward-compatibility with plugins that use legacy components. Warning: This is an
./maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingHelper.java: * This is purely for backward-compat with 2.x where consisting of a single artifact where
./maven-core/src/main/java/org/apache/maven/project/DuplicateArtifactAttachmentException.java: * Currently, this modification would create compatibility problems for existing plugins.
./maven-core/src/main/java/org/apache/maven/project/MavenProject.java: * @throws DuplicateArtifactAttachmentException will never happen but leave it for backward compatibility
./maven-core/src/main/java/org/apache/maven/project/artifact/DefaultMetadataSource.java: * This realizes the metadata source via the default hint to provide backward-compat with Maven 2.x whose Plexus version
./maven-core/src/main/java/org/apache/maven/toolchain/java/DefaultJavaToolChain.java: * Provides backwards compatibility with Maven 3.2.3 and earlier. Clients that do not require compatibility with Maven
./maven-core/src/main/java/org/apache/maven/toolchain/java/DefaultJavaToolChain.java: * @deprecated clients that do not require compatibility with Maven 3.2.3 and earlier should link to
./maven-core/src/main/java/org/apache/maven/toolchain/java/JavaToolchainFactory.java: // use DefaultJavaToolChain for compatibility with maven 3.2.3 and earlier
./maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuildingRequest.java: * Denotes validation as performed by Maven 2.0. This validation level is meant as a compatibility mode to allow
./maven-model-builder/src/main/java/org/apache/maven/model/inheritance/DefaultInheritanceAssembler.java: * sake of backward-compat with 2.x (MNG-5000). In general, it is wrong to
./maven-model-builder/src/main/java/org/apache/maven/model/normalization/DefaultModelNormalizer.java: * NOTE: This is primarily to keep backward-compat with Maven 2.x which did not validate that dependencies are
./maven-model-builder/src/main/java/org/apache/maven/model/normalization/DefaultModelNormalizer.java: * the first occurrence. So when we're in lenient/compat mode, we have to deal with such broken POMs and mimic
./maven-model-builder/src/main/java/org/apache/maven/model/validation/DefaultModelValidator.java: * order to don't break backward-compat with those, only warn but don't error out.
./maven-model-builder/src/main/java/org/apache/maven/model/validation/DefaultModelValidator.java: // note this will not be hit for Maven 1.x project.xml as it is an incompatible schema
```

They need to be reviewed one by one and removed if possible.

---

**Affects:** 3.6.3

**Sub-tasks:**
- [MNG-7166](https://issues.apache.org/jira/browse/MNG-7166) DefaultModelNormalizer remove compat code

**Issue Links:**
- [MNG-7260](https://issues.apache.org/jira/browse/MNG-7260) Remove old deprecated code

- [MNG-7020](https://issues.apache.org/jira/browse/MNG-7020) Remove Maven 2 WagonExcluder backward compat code

- [MNG-7021](https://issues.apache.org/jira/browse/MNG-7021) Remove old MHELP backward compat code

- [MNG-7022](https://issues.apache.org/jira/browse/MNG-7022) Remove o.a.m.lifecycle.mapping.Lifecycle optional mojos backward compat code

- [MNG-6888](https://issues.apache.org/jira/browse/MNG-6888) Remove deprecated command line options

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.