Yep I don't think it is a good idea to make them final We could add some tooling to the Maven-plugin-plugin to scan for annotated method (would need a new annotation) so that plugins using or overriding would get a hard error (similar to @Restricted(NoExternalUse) in Jenkins
That would allow to retain binary compatibility for existing compiler usage but force code fixes when building new plugin releases On Sat 4 Feb 2017 at 09:12, Stuart McCulloch <[email protected]> wrote: > Note making a method final will break binary compatibility if someone has > previously overridden that method - in such cases they'd get a verify error > running with the new binary: > > https://docs.oracle.com/javase/specs/jls/se7/html/jls-13.html#jls-13.4.17 > > > On 4 Feb 2017 01:59, "Christian Schulte" <[email protected]> wrote: > > Can we make the deprecated methods final, please? It's still binary > compatible when final. If someone has overridden such a deprecated > method, he will get a compile time error and will notice he needs to > override the new method instead. > > Am 02/04/17 um 00:21 schrieb [email protected]: > > Repository: maven > > Updated Branches: > > refs/heads/MNG-6165 [created] 87c6346a0 > > > > > > [MNG-6165] Deprecate and replace incorrectly spelled public API > > > > Spelling fixes: > > > > * spelling: collector > > * spelling: executions > > * spelling: repositories > > * spelling: workspace > > > > This closes #101 > > > > > > Project: http://git-wip-us.apache.org/repos/asf/maven/repo > > Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/87c6346a > > Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/87c6346a > > Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/87c6346a > > > > Branch: refs/heads/MNG-6165 > > Commit: 87c6346a0db61384db0e66b9482e0ed832823b07 > > Parents: 1740265 > > Author: Josh Soref <[email protected]> > > Authored: Mon Jan 23 04:57:23 2017 +0000 > > Committer: Michael Osipov <[email protected]> > > Committed: Sat Feb 4 00:20:48 2017 +0100 > > > > ---------------------------------------------------------------------- > > .../repository/MetadataResolutionRequest.java | 20 > +++++++++++++++++++- > > .../legacy/LegacyRepositorySystem.java | 2 +- > > .../DelegatingLocalArtifactRepository.java | 9 +++++++++ > > .../LifecycleExecutionPlanCalculatorStub.java | 13 ++++++++++++- > > .../AbstractModelInterpolatorTest.java | 18 ++++++++++++++---- > > 5 files changed, 55 insertions(+), 7 deletions(-) > > ---------------------------------------------------------------------- > > > > > > http://git-wip-us.apache.org/repos/asf/maven/blob/87c6346a/ > maven-compat/src/main/java/org/apache/maven/repository/ > MetadataResolutionRequest.java > > ---------------------------------------------------------------------- > > diff --git > a/maven-compat/src/main/java/org/apache/maven/repository/MetadataResolutionRequest.java > b/maven-compat/src/main/java/org/apache/maven/repository/ > MetadataResolutionRequest.java > > index c98dd05..4fb0e32 100644 > > --- a/maven-compat/src/main/java/org/apache/maven/repository/ > MetadataResolutionRequest.java > > +++ b/maven-compat/src/main/java/org/apache/maven/repository/ > MetadataResolutionRequest.java > > @@ -108,14 +108,32 @@ public class MetadataResolutionRequest > > return this; > > } > > > > + /** > > + * @deprecated instead use {@link #getRemoteRepositories()} > > + */ > > + @Deprecated > > public List<ArtifactRepository> getRemoteRepostories() > > { > > + return getRemoteRepositories(); > > + } > > + > > + public List<ArtifactRepository> getRemoteRepositories() > > + { > > return remoteRepositories; > > } > > > > + /** > > + * @deprecated instead use {@link #setRemoteRepositories()} > > + */ > > + @Deprecated > > public MetadataResolutionRequest setRemoteRepostories( > List<ArtifactRepository> remoteRepostories ) > > { > > - this.remoteRepositories = remoteRepostories; > > + return setRemoteRepositories(remoteRepositories); > > + } > > + > > + public MetadataResolutionRequest setRemoteRepositories( > List<ArtifactRepository> remoteRepositories ) > > + { > > + this.remoteRepositories = remoteRepositories; > > > > return this; > > } > > > > http://git-wip-us.apache.org/repos/asf/maven/blob/87c6346a/ > maven-compat/src/main/java/org/apache/maven/repository/ > legacy/LegacyRepositorySystem.java > > ---------------------------------------------------------------------- > > diff --git a/maven-compat/src/main/java/org/apache/maven/repository/ > legacy/LegacyRepositorySystem.java b/maven-compat/src/main/java/ > org/apache/maven/repository/legacy/LegacyRepositorySystem.java > > index bd5988a..8d4d407 100644 > > --- a/maven-compat/src/main/java/org/apache/maven/repository/ > legacy/LegacyRepositorySystem.java > > +++ b/maven-compat/src/main/java/org/apache/maven/repository/ > legacy/LegacyRepositorySystem.java > > @@ -329,7 +329,7 @@ public class LegacyRepositorySystem > > DelegatingLocalArtifactRepository > delegatingLocalRepository = > > (DelegatingLocalArtifactRepository) > request.getLocalRepository(); > > > > - LocalArtifactRepository orig = > delegatingLocalRepository. > getIdeWorspace(); > > + LocalArtifactRepository orig = > delegatingLocalRepository. > getIdeWorkspace(); > > > > delegatingLocalRepository.setIdeWorkspace( ideWorkspace > ); > > > > > > http://git-wip-us.apache.org/repos/asf/maven/blob/87c6346a/ > maven-core/src/main/java/org/apache/maven/repository/ > DelegatingLocalArtifactRepository.java > > ---------------------------------------------------------------------- > > diff --git a/maven-core/src/main/java/org/apache/maven/repository/ > DelegatingLocalArtifactRepository.java b/maven-core/src/main/java/ > org/apache/maven/repository/DelegatingLocalArtifactRepository.java > > index 90c1fa9..1ae5ba2 100644 > > --- a/maven-core/src/main/java/org/apache/maven/repository/ > DelegatingLocalArtifactRepository.java > > +++ b/maven-core/src/main/java/org/apache/maven/repository/ > DelegatingLocalArtifactRepository.java > > @@ -61,8 +61,17 @@ public class DelegatingLocalArtifactRepository > > this.ideWorkspace = localRepository; > > } > > > > + /** > > + * @deprecated instead use {@link #getIdeWorkspace()} > > + */ > > + @Deprecated > > public LocalArtifactRepository getIdeWorspace() > > { > > + return getIdeWorkspace(); > > + } > > + > > + public LocalArtifactRepository getIdeWorkspace() > > + { > > return ideWorkspace; > > } > > > > > > http://git-wip-us.apache.org/repos/asf/maven/blob/87c6346a/ > maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/ > LifecycleExecutionPlanCalculatorStub.java > > ---------------------------------------------------------------------- > > diff --git a/maven-core/src/test/java/org/apache/maven/lifecycle/ > internal/stub/LifecycleExecutionPlanCalculatorStub.java > b/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/ > LifecycleExecutionPlanCalculatorStub.java > > index ad08549..e03ab1a 100644 > > --- a/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/ > LifecycleExecutionPlanCalculatorStub.java > > +++ b/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/ > LifecycleExecutionPlanCalculatorStub.java > > @@ -87,12 +87,23 @@ public class LifecycleExecutionPlanCalculatorStub > > > > public final static MojoDescriptor SITE_DEPLOY = > createMojoDescriptor( "site-deploy" ); > > > > - > > + /** > > + * @deprecated instead use {@link #getNumberOfExecutions()} > > + */ > > + @Deprecated > > public int getNumberOfExceutions( ProjectBuildList projectBuildList > ) > > throws InvalidPluginDescriptorException, > PluginVersionResolutionException, PluginDescriptorParsingException, > > NoPluginFoundForPrefixException, MojoNotFoundException, > PluginNotFoundException, PluginResolutionException, > > LifecyclePhaseNotFoundException, LifecycleNotFoundException > > { > > + return getNumberOfExecutions(projectBuildList); > > + } > > + > > + public int getNumberOfExecutions( ProjectBuildList projectBuildList > ) > > + throws InvalidPluginDescriptorException, > PluginVersionResolutionException, PluginDescriptorParsingException, > > + NoPluginFoundForPrefixException, MojoNotFoundException, > PluginNotFoundException, PluginResolutionException, > > + LifecyclePhaseNotFoundException, LifecycleNotFoundException > > + { > > int result = 0; > > for ( ProjectSegment projectBuild : projectBuildList ) > > { > > > > http://git-wip-us.apache.org/repos/asf/maven/blob/87c6346a/ > maven-model-builder/src/test/java/org/apache/maven/model/interpolation/ > AbstractModelInterpolatorTest.java > > ---------------------------------------------------------------------- > > diff --git a/maven-model-builder/src/test/java/org/apache/maven/ > model/interpolation/AbstractModelInterpolatorTest.java > b/maven-model-builder/src/test/java/org/apache/maven/model/interpolation/ > AbstractModelInterpolatorTest.java > > index b56bc15..8e88f5c 100644 > > --- a/maven-model-builder/src/test/java/org/apache/maven/ > model/interpolation/AbstractModelInterpolatorTest.java > > +++ b/maven-model-builder/src/test/java/org/apache/maven/ > model/interpolation/AbstractModelInterpolatorTest.java > > @@ -67,9 +67,19 @@ public abstract class AbstractModelInterpolatorTest > > assertEquals( "Expected no fatals", 0, > collector.getFatals().size() ); > > } > > > > + /** > > + * @deprecated instead use {@link #assertCollectorState()} > > + */ > > + @Deprecated > > protected void assertColllectorState( int numFatals, int numErrors, > int numWarnings, > > SimpleProblemCollector > collector ) > > { > > + assertCollectorState(numFatals, numErrors, numWarnings, > collector); > > + } > > + > > + protected void assertCollectorState( int numFatals, int numErrors, > int numWarnings, > > + SimpleProblemCollector > collector ) > > + { > > assertEquals( "Errors", numErrors, collector.getErrors().size() > ); > > assertEquals( "Warnings", numWarnings, > collector.getWarnings().size() ); > > assertEquals( "Fatals", numFatals, collector.getFatals().size() > ); > > @@ -178,7 +188,7 @@ public abstract class AbstractModelInterpolatorTest > > > > final SimpleProblemCollector collector = new > SimpleProblemCollector(); > > interpolator.interpolateModel( model, null, > createModelBuildingRequest( context ), collector ); > > - assertColllectorState( 0, 1, 0, collector ); > > + assertCollectorState( 0, 1, 0, collector ); > > } > > catch ( Exception e ) > > { > > @@ -247,7 +257,7 @@ public abstract class AbstractModelInterpolatorTest > > final SimpleProblemCollector collector = new > SimpleProblemCollector(); > > Model out = > > interpolator.interpolateModel( model, new File( "." ), > createModelBuildingRequest( context ), collector ); > > - assertColllectorState(0, 0, 1, collector ); > > + assertCollectorState(0, 0, 1, collector ); > > > > assertEquals( "3.8.1", ( out.getDependencies().get( 0 ) > ).getVersion() ); > > } > > @@ -305,7 +315,7 @@ public abstract class AbstractModelInterpolatorTest > > final SimpleProblemCollector collector = new > SimpleProblemCollector(); > > Model out = > > interpolator.interpolateModel( model, new File( "." ), > createModelBuildingRequest( context ), collector ); > > - assertColllectorState( 0, 0, 2, collector ); > > + assertCollectorState( 0, 0, 2, collector ); > > > > assertEquals( "foo-3.8.1", ( out.getDependencies().get( 0 ) > ).getVersion() ); > > } > > @@ -450,7 +460,7 @@ public abstract class AbstractModelInterpolatorTest > > > > final SimpleProblemCollector collector = new > SimpleProblemCollector(); > > Model out = interpolator.interpolateModel( model, null, > createModelBuildingRequest( context ), collector ); > > - assertColllectorState( 0, 0, 2, collector ); > > + assertCollectorState( 0, 0, 2, collector ); > > > > > > List<Resource> outResources = out.getBuild().getResources(); > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > -- Sent from my phone
