Package japicmp.maven
Class JApiCmpMojo
- java.lang.Object
-
- org.apache.maven.plugin.AbstractMojo
-
- japicmp.maven.JApiCmpMojo
-
- All Implemented Interfaces:
org.apache.maven.plugin.ContextEnabled,org.apache.maven.plugin.Mojo
@Mojo(name="cmp", requiresDependencyResolution=COMPILE, defaultPhase=VERIFY, threadSafe=true) public class JApiCmpMojo extends org.apache.maven.plugin.AbstractMojo
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static classJApiCmpMojo.ConfigurationVersion
-
Field Summary
Fields Modifier and Type Field Description private org.apache.maven.artifact.factory.ArtifactFactoryartifactFactoryprivate java.util.List<org.apache.maven.artifact.repository.ArtifactRepository>artifactRepositoriesprivate booleanbreakBuildBasedOnSemanticVersioningprivate booleanbreakBuildBasedOnSemanticVersioningForMajorVersionZeroprivate booleanbreakBuildOnBinaryIncompatibleModificationsprivate booleanbreakBuildOnModificationsprivate booleanbreakBuildOnSourceIncompatibleModificationsprivate java.util.List<Dependency>dependenciesprivate org.apache.maven.artifact.repository.ArtifactRepositorylocalRepositoryprivate org.apache.maven.project.MavenProjectmavenProjectprivate org.apache.maven.artifact.metadata.ArtifactMetadataSourcemetadataSourceprivate org.apache.maven.plugin.MojoExecutionmojoExecutionprivate java.util.List<Dependency>newClassPathDependenciesprivate VersionnewVersionprivate java.util.List<DependencyDescriptor>newVersionsprivate java.util.List<Dependency>oldClassPathDependenciesprivate VersionoldVersionprivate java.util.List<DependencyDescriptor>oldVersionsprivate Optionsoptionsprivate Parameterparameterprivate java.io.FileprojectBuildDirprivate java.util.List<org.eclipse.aether.repository.RemoteRepository>remoteReposprivate org.eclipse.aether.RepositorySystemSessionrepoSessionprivate org.eclipse.aether.RepositorySystemrepoSystemprivate booleanskipprivate booleanskipHtmlReportprivate booleanskipXmlReportprivate java.lang.StringversionRangeWithProjectVersion
-
Constructor Summary
Constructors Constructor Description JApiCmpMojo()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private booleanbreakBuildBasedOnSemanticVersioning(Parameter parameter)private booleanbreakBuildBasedOnSemanticVersioningForMajorVersionZero(Parameter parameterParam)(package private) voidbreakBuildIfNecessary(java.util.List<JApiClass> jApiClasses, Parameter parameterParam, Options options, JarArchiveComparator jarArchiveComparator)private booleanbreakBuildOnBinaryIncompatibleModifications(Parameter parameterParam)private booleanbreakBuildOnModificationsParameter(Parameter parameterParam)private booleanbreakBuildOnSourceIncompatibleModifications(Parameter parameter)private java.lang.StringcreateFilename(MavenParameters mavenParameters)private java.io.FilecreateJapiCmpBaseDir(PluginParameters pluginParameters)voidexecute()(package private) Optional<XmlOutput>executeWithParameters(PluginParameters pluginParameters, MavenParameters mavenParameters)private voidfilterSnapshots(java.util.List<org.eclipse.aether.version.Version> versions)private voidfilterVersionPattern(java.util.List<org.eclipse.aether.version.Version> availableVersions, PluginParameters pluginParameters)private voidgenerateDiffOutput(MavenParameters mavenParameters, PluginParameters pluginParameters, Options options, java.util.List<JApiClass> jApiClasses, java.io.File jApiCmpBuildDir)private XmlOutputgenerateXmlOutput(java.util.List<JApiClass> jApiClasses, java.io.File jApiCmpBuildDir, Options options, MavenParameters mavenParameters, PluginParameters pluginParameters)private org.eclipse.aether.artifact.ArtifactgetComparisonArtifact(MavenParameters mavenParameters, PluginParameters pluginParameters, JApiCmpMojo.ConfigurationVersion configurationVersion)(package private) OptionsgetOptions(PluginParameters pluginParameters, MavenParameters mavenParameters)private java.lang.StringguessVersion(java.io.File file)private voidhandleMissingArtifactFile(PluginParameters pluginParameters, org.eclipse.aether.artifact.Artifact artifact)private booleanignoreMissingArtifact(PluginParameters pluginParameters, JApiCmpMojo.ConfigurationVersion configurationVersion)private booleanignoreMissingNewVersion(PluginParameters pluginParameters)private booleanignoreMissingNewVersion(PluginParameters pluginParameters, JApiCmpMojo.ConfigurationVersion configurationVersion)private booleanignoreMissingOldVersion(PluginParameters pluginParameters)private booleanignoreMissingOldVersion(PluginParameters pluginParameters, JApiCmpMojo.ConfigurationVersion configurationVersion)private booleanignoreNonResolvableArtifacts(PluginParameters pluginParameters)private booleanisPomModuleNeedingSkip(PluginParameters pluginParameters, MavenParameters mavenParameters)private java.lang.StringmapPackaging(java.lang.String packaging, boolean condition, java.lang.String mappedPackaging)private static <T> TnotNull(T value, java.lang.String msg)private voidpopulateArchivesListsFromParameters(PluginParameters pluginParameters, MavenParameters mavenParameters, java.util.List<JApiCmpArchive> oldArchives, java.util.List<JApiCmpArchive> newArchives)private voidprocessArtifacResult(org.eclipse.aether.artifact.DefaultArtifact artifactVersion, org.eclipse.aether.resolution.ArtifactResult artifactResult, PluginParameters pluginParameters, JApiCmpMojo.ConfigurationVersion configurationVersion)private java.util.Set<org.eclipse.aether.artifact.Artifact>resolveArtifact(Dependency dependency, MavenParameters mavenParameters, boolean transitively, PluginParameters pluginParameters, JApiCmpMojo.ConfigurationVersion configurationVersion)private java.util.Set<org.eclipse.aether.artifact.Artifact>resolveArtifact(org.eclipse.aether.artifact.Artifact artifact, MavenParameters mavenParameters, PluginParameters pluginParameters, JApiCmpMojo.ConfigurationVersion configurationVersion)private java.util.List<JApiCmpArchive>resolveConfigurationFileToFile(java.lang.String parameterName, ConfigurationFile configurationFile, JApiCmpMojo.ConfigurationVersion configurationVersion, PluginParameters pluginParameters)private java.util.List<JApiCmpArchive>resolveDependencyToFile(java.lang.String parameterName, Dependency dependency, MavenParameters mavenParameters, boolean transitively, PluginParameters pluginParameters, JApiCmpMojo.ConfigurationVersion configurationVersion)private java.util.List<JApiCmpArchive>retrieveFileFromConfiguration(DependencyDescriptor dependencyDescriptor, java.lang.String parameterName, MavenParameters mavenParameters, PluginParameters pluginParameters, JApiCmpMojo.ConfigurationVersion configurationVersion)private java.util.List<JApiCmpArchive>retrieveFileFromConfiguration(Version version, java.lang.String parameterName, MavenParameters mavenParameters, PluginParameters pluginParameters, JApiCmpMojo.ConfigurationVersion configurationVersion)private voidsetUpClassPath(JarArchiveComparatorOptions comparatorOptions, PluginParameters pluginParameters, MavenParameters mavenParameters)private voidsetUpClassPathUsingMavenProject(JarArchiveComparatorOptions comparatorOptions, MavenParameters mavenParameters, PluginParameters pluginParameters, JApiCmpMojo.ConfigurationVersion configurationVersion)private voidsetUpOverrideCompatibilityChanges(JarArchiveComparatorOptions comparatorOptions, PluginParameters pluginParameters)private booleanskipHtmlReport(PluginParameters pluginParameters)private booleanskipModule(PluginParameters pluginParameters, MavenParameters mavenParameters)private booleanskipXmlReport(PluginParameters pluginParameters)private java.lang.StringtoDescriptor(org.eclipse.aether.artifact.Artifact artifact)private voidwriteToFile(java.lang.String output, java.io.File outputfile)
-
-
-
Field Detail
-
oldVersion
@Parameter(required=false) private Version oldVersion
-
oldVersions
@Parameter(required=false) private java.util.List<DependencyDescriptor> oldVersions
-
newVersion
@Parameter(required=false) private Version newVersion
-
newVersions
@Parameter(required=false) private java.util.List<DependencyDescriptor> newVersions
-
parameter
@Parameter(required=false) private Parameter parameter
-
dependencies
@Parameter(required=false) private java.util.List<Dependency> dependencies
-
oldClassPathDependencies
@Parameter(required=false) private java.util.List<Dependency> oldClassPathDependencies
-
newClassPathDependencies
@Parameter(required=false) private java.util.List<Dependency> newClassPathDependencies
-
skip
@Parameter(property="japicmp.skip", required=false) private boolean skip
-
skipXmlReport
@Parameter(property="japicmp.skipXmlReport", required=false) private boolean skipXmlReport
-
skipHtmlReport
@Parameter(property="japicmp.skipHtmlReport", required=false) private boolean skipHtmlReport
-
breakBuildOnModifications
@Parameter(property="japicmp.breakBuildOnModifications", required=false) private boolean breakBuildOnModifications
-
breakBuildOnBinaryIncompatibleModifications
@Parameter(property="japicmp.breakBuildOnBinaryIncompatibleModifications", required=false) private boolean breakBuildOnBinaryIncompatibleModifications
-
breakBuildOnSourceIncompatibleModifications
@Parameter(property="japicmp.breakBuildOnSourceIncompatibleModifications", required=false) private boolean breakBuildOnSourceIncompatibleModifications
-
breakBuildBasedOnSemanticVersioning
@Parameter(property="japicmp.breakBuildBasedOnSemanticVersioning", required=false) private boolean breakBuildBasedOnSemanticVersioning
-
breakBuildBasedOnSemanticVersioningForMajorVersionZero
@Parameter(property="japicmp.breakBuildBasedOnSemanticVersioningForMajorVersionZero", required=false) private boolean breakBuildBasedOnSemanticVersioningForMajorVersionZero
-
projectBuildDir
@Parameter(property="project.build.directory", required=true) private java.io.File projectBuildDir
-
artifactFactory
@Component private org.apache.maven.artifact.factory.ArtifactFactory artifactFactory
-
repoSystem
@Component private org.eclipse.aether.RepositorySystem repoSystem
-
repoSession
@Parameter(defaultValue="${repositorySystemSession}", readonly=true) private org.eclipse.aether.RepositorySystemSession repoSession
-
remoteRepos
@Parameter(defaultValue="${project.remoteProjectRepositories}", readonly=true) private java.util.List<org.eclipse.aether.repository.RemoteRepository> remoteRepos
-
localRepository
@Parameter(defaultValue="${localRepository}") private org.apache.maven.artifact.repository.ArtifactRepository localRepository
-
artifactRepositories
@Parameter(defaultValue="${project.remoteArtifactRepositories}") private java.util.List<org.apache.maven.artifact.repository.ArtifactRepository> artifactRepositories
-
mavenProject
@Parameter(defaultValue="${project}") private org.apache.maven.project.MavenProject mavenProject
-
mojoExecution
@Parameter(defaultValue="${mojoExecution}", readonly=true) private org.apache.maven.plugin.MojoExecution mojoExecution
-
versionRangeWithProjectVersion
@Parameter(defaultValue="(,${project.version})", readonly=true) private java.lang.String versionRangeWithProjectVersion
-
metadataSource
@Component private org.apache.maven.artifact.metadata.ArtifactMetadataSource metadataSource
-
options
private Options options
-
-
Method Detail
-
execute
public void execute() throws org.apache.maven.plugin.MojoExecutionException, org.apache.maven.plugin.MojoFailureException- Throws:
org.apache.maven.plugin.MojoExecutionExceptionorg.apache.maven.plugin.MojoFailureException
-
executeWithParameters
Optional<XmlOutput> executeWithParameters(PluginParameters pluginParameters, MavenParameters mavenParameters) throws org.apache.maven.plugin.MojoFailureException, org.apache.maven.plugin.MojoExecutionException
- Throws:
org.apache.maven.plugin.MojoFailureExceptionorg.apache.maven.plugin.MojoExecutionException
-
setUpOverrideCompatibilityChanges
private void setUpOverrideCompatibilityChanges(JarArchiveComparatorOptions comparatorOptions, PluginParameters pluginParameters) throws org.apache.maven.plugin.MojoFailureException
- Throws:
org.apache.maven.plugin.MojoFailureException
-
skipModule
private boolean skipModule(PluginParameters pluginParameters, MavenParameters mavenParameters)
-
getComparisonArtifact
private org.eclipse.aether.artifact.Artifact getComparisonArtifact(MavenParameters mavenParameters, PluginParameters pluginParameters, JApiCmpMojo.ConfigurationVersion configurationVersion) throws org.apache.maven.plugin.MojoFailureException, org.apache.maven.plugin.MojoExecutionException
- Throws:
org.apache.maven.plugin.MojoFailureExceptionorg.apache.maven.plugin.MojoExecutionException
-
processArtifacResult
private void processArtifacResult(org.eclipse.aether.artifact.DefaultArtifact artifactVersion, org.eclipse.aether.resolution.ArtifactResult artifactResult, PluginParameters pluginParameters, JApiCmpMojo.ConfigurationVersion configurationVersion) throws org.apache.maven.plugin.MojoFailureException- Throws:
org.apache.maven.plugin.MojoFailureException
-
filterVersionPattern
private void filterVersionPattern(java.util.List<org.eclipse.aether.version.Version> availableVersions, PluginParameters pluginParameters) throws org.apache.maven.plugin.MojoFailureException- Throws:
org.apache.maven.plugin.MojoFailureException
-
filterSnapshots
private void filterSnapshots(java.util.List<org.eclipse.aether.version.Version> versions)
-
populateArchivesListsFromParameters
private void populateArchivesListsFromParameters(PluginParameters pluginParameters, MavenParameters mavenParameters, java.util.List<JApiCmpArchive> oldArchives, java.util.List<JApiCmpArchive> newArchives) throws org.apache.maven.plugin.MojoFailureException
- Throws:
org.apache.maven.plugin.MojoFailureException
-
breakBuildIfNecessary
void breakBuildIfNecessary(java.util.List<JApiClass> jApiClasses, Parameter parameterParam, Options options, JarArchiveComparator jarArchiveComparator) throws org.apache.maven.plugin.MojoFailureException, org.apache.maven.plugin.MojoExecutionException
- Throws:
org.apache.maven.plugin.MojoFailureExceptionorg.apache.maven.plugin.MojoExecutionException
-
breakBuildBasedOnSemanticVersioningForMajorVersionZero
private boolean breakBuildBasedOnSemanticVersioningForMajorVersionZero(Parameter parameterParam)
-
getOptions
Options getOptions(PluginParameters pluginParameters, MavenParameters mavenParameters) throws org.apache.maven.plugin.MojoFailureException
- Throws:
org.apache.maven.plugin.MojoFailureException
-
breakBuildOnModificationsParameter
private boolean breakBuildOnModificationsParameter(Parameter parameterParam)
-
breakBuildOnBinaryIncompatibleModifications
private boolean breakBuildOnBinaryIncompatibleModifications(Parameter parameterParam)
-
breakBuildOnSourceIncompatibleModifications
private boolean breakBuildOnSourceIncompatibleModifications(Parameter parameter)
-
breakBuildBasedOnSemanticVersioning
private boolean breakBuildBasedOnSemanticVersioning(Parameter parameter)
-
createJapiCmpBaseDir
private java.io.File createJapiCmpBaseDir(PluginParameters pluginParameters) throws org.apache.maven.plugin.MojoFailureException
- Throws:
org.apache.maven.plugin.MojoFailureException
-
generateDiffOutput
private void generateDiffOutput(MavenParameters mavenParameters, PluginParameters pluginParameters, Options options, java.util.List<JApiClass> jApiClasses, java.io.File jApiCmpBuildDir) throws java.io.IOException, org.apache.maven.plugin.MojoFailureException
- Throws:
java.io.IOExceptionorg.apache.maven.plugin.MojoFailureException
-
generateXmlOutput
private XmlOutput generateXmlOutput(java.util.List<JApiClass> jApiClasses, java.io.File jApiCmpBuildDir, Options options, MavenParameters mavenParameters, PluginParameters pluginParameters) throws java.io.IOException
- Throws:
java.io.IOException
-
skipHtmlReport
private boolean skipHtmlReport(PluginParameters pluginParameters)
-
skipXmlReport
private boolean skipXmlReport(PluginParameters pluginParameters)
-
createFilename
private java.lang.String createFilename(MavenParameters mavenParameters)
-
setUpClassPath
private void setUpClassPath(JarArchiveComparatorOptions comparatorOptions, PluginParameters pluginParameters, MavenParameters mavenParameters) throws org.apache.maven.plugin.MojoFailureException
- Throws:
org.apache.maven.plugin.MojoFailureException
-
setUpClassPathUsingMavenProject
private void setUpClassPathUsingMavenProject(JarArchiveComparatorOptions comparatorOptions, MavenParameters mavenParameters, PluginParameters pluginParameters, JApiCmpMojo.ConfigurationVersion configurationVersion) throws org.apache.maven.plugin.MojoFailureException
- Throws:
org.apache.maven.plugin.MojoFailureException
-
mapPackaging
private java.lang.String mapPackaging(java.lang.String packaging, boolean condition, java.lang.String mappedPackaging)
-
handleMissingArtifactFile
private void handleMissingArtifactFile(PluginParameters pluginParameters, org.eclipse.aether.artifact.Artifact artifact)
-
toDescriptor
private java.lang.String toDescriptor(org.eclipse.aether.artifact.Artifact artifact)
-
retrieveFileFromConfiguration
private java.util.List<JApiCmpArchive> retrieveFileFromConfiguration(DependencyDescriptor dependencyDescriptor, java.lang.String parameterName, MavenParameters mavenParameters, PluginParameters pluginParameters, JApiCmpMojo.ConfigurationVersion configurationVersion) throws org.apache.maven.plugin.MojoFailureException
- Throws:
org.apache.maven.plugin.MojoFailureException
-
retrieveFileFromConfiguration
private java.util.List<JApiCmpArchive> retrieveFileFromConfiguration(Version version, java.lang.String parameterName, MavenParameters mavenParameters, PluginParameters pluginParameters, JApiCmpMojo.ConfigurationVersion configurationVersion) throws org.apache.maven.plugin.MojoFailureException
- Throws:
org.apache.maven.plugin.MojoFailureException
-
resolveConfigurationFileToFile
private java.util.List<JApiCmpArchive> resolveConfigurationFileToFile(java.lang.String parameterName, ConfigurationFile configurationFile, JApiCmpMojo.ConfigurationVersion configurationVersion, PluginParameters pluginParameters) throws org.apache.maven.plugin.MojoFailureException
- Throws:
org.apache.maven.plugin.MojoFailureException
-
resolveDependencyToFile
private java.util.List<JApiCmpArchive> resolveDependencyToFile(java.lang.String parameterName, Dependency dependency, MavenParameters mavenParameters, boolean transitively, PluginParameters pluginParameters, JApiCmpMojo.ConfigurationVersion configurationVersion) throws org.apache.maven.plugin.MojoFailureException
- Throws:
org.apache.maven.plugin.MojoFailureException
-
guessVersion
private java.lang.String guessVersion(java.io.File file)
-
ignoreMissingArtifact
private boolean ignoreMissingArtifact(PluginParameters pluginParameters, JApiCmpMojo.ConfigurationVersion configurationVersion)
-
ignoreNonResolvableArtifacts
private boolean ignoreNonResolvableArtifacts(PluginParameters pluginParameters)
-
ignoreMissingOldVersion
private boolean ignoreMissingOldVersion(PluginParameters pluginParameters, JApiCmpMojo.ConfigurationVersion configurationVersion)
-
ignoreMissingNewVersion
private boolean ignoreMissingNewVersion(PluginParameters pluginParameters, JApiCmpMojo.ConfigurationVersion configurationVersion)
-
ignoreMissingOldVersion
private boolean ignoreMissingOldVersion(PluginParameters pluginParameters)
-
ignoreMissingNewVersion
private boolean ignoreMissingNewVersion(PluginParameters pluginParameters)
-
writeToFile
private void writeToFile(java.lang.String output, java.io.File outputfile) throws org.apache.maven.plugin.MojoFailureException, java.io.IOException- Throws:
org.apache.maven.plugin.MojoFailureExceptionjava.io.IOException
-
resolveArtifact
private java.util.Set<org.eclipse.aether.artifact.Artifact> resolveArtifact(Dependency dependency, MavenParameters mavenParameters, boolean transitively, PluginParameters pluginParameters, JApiCmpMojo.ConfigurationVersion configurationVersion) throws org.apache.maven.plugin.MojoFailureException
- Throws:
org.apache.maven.plugin.MojoFailureException
-
resolveArtifact
private java.util.Set<org.eclipse.aether.artifact.Artifact> resolveArtifact(org.eclipse.aether.artifact.Artifact artifact, MavenParameters mavenParameters, PluginParameters pluginParameters, JApiCmpMojo.ConfigurationVersion configurationVersion) throws org.apache.maven.plugin.MojoFailureException- Throws:
org.apache.maven.plugin.MojoFailureException
-
isPomModuleNeedingSkip
private boolean isPomModuleNeedingSkip(PluginParameters pluginParameters, MavenParameters mavenParameters)
-
notNull
private static <T> T notNull(T value, java.lang.String msg) throws org.apache.maven.plugin.MojoFailureException- Throws:
org.apache.maven.plugin.MojoFailureException
-
-