diff --git a/dependencies.md b/dependencies.md index b6e32fc6..3763d0c8 100644 --- a/dependencies.md +++ b/dependencies.md @@ -266,6 +266,7 @@ | Dependency | License | | -------------------------------------- | --------------------------------------------- | +| [Project Keeper shared test setup][54] | [The MIT License][55] | | [Maven Project Version Getter][64] | [MIT License][65] | | [JUnit Jupiter Engine][20] | [Eclipse Public License v2.0][21] | | [JUnit Jupiter Params][20] | [Eclipse Public License v2.0][21] | @@ -328,6 +329,7 @@ | [Apache Maven Site Plugin][34] | [Apache-2.0][1] | | [SonarQube Scanner for Maven][35] | [GNU LGPL 3][36] | | [Apache Maven Toolchains Plugin][37] | [Apache-2.0][1] | +| [Apache Maven Javadoc Plugin][46] | [Apache-2.0][1] | | [Apache Maven Compiler Plugin][38] | [Apache-2.0][1] | | [Apache Maven Enforcer Plugin][0] | [Apache-2.0][1] | | [Maven Flatten Plugin][39] | [Apache Software Licenese][1] | diff --git a/doc/changes/changes_4.5.0.md b/doc/changes/changes_4.5.0.md index 9adc57a4..d5694a60 100644 --- a/doc/changes/changes_4.5.0.md +++ b/doc/changes/changes_4.5.0.md @@ -15,6 +15,10 @@ This release allows customization of the java version in `actions/setup-java` st * #598: Reverted changes to PK's template for IDE Eclipse `javax.annotation.Nonnull` +## Refactoring + +* #596: Fixed build with Java 21 + ## Dependency Updates ### Project Keeper Root Project @@ -116,6 +120,7 @@ This release allows customization of the java version in `actions/setup-java` st #### Test Dependency Updates * Updated `com.exasol:maven-project-version-getter:1.2.0` to `1.2.1` +* Added `com.exasol:project-keeper-shared-test-setup:4.5.0` #### Plugin Dependency Updates @@ -137,6 +142,7 @@ This release allows customization of the java version in `actions/setup-java` st #### Plugin Dependency Updates +* Added `org.apache.maven.plugins:maven-javadoc-plugin:3.11.1` * Updated `org.apache.maven.plugins:maven-site-plugin:3.9.1` to `3.21.0` * Updated `org.apache.maven.plugins:maven-surefire-plugin:3.5.1` to `3.5.2` * Updated `org.codehaus.mojo:versions-maven-plugin:2.17.1` to `2.18.0` diff --git a/maven-project-crawler/pom.xml b/maven-project-crawler/pom.xml index da0373dd..5b1dcf31 100644 --- a/maven-project-crawler/pom.xml +++ b/maven-project-crawler/pom.xml @@ -42,6 +42,10 @@ semver4j + + com.exasol + project-keeper-shared-test-setup + org.apache.maven maven-core diff --git a/maven-project-crawler/src/test/java/com/exasol/projectkeeper/MavenProjectCrawlerMojoIT.java b/maven-project-crawler/src/test/java/com/exasol/projectkeeper/MavenProjectCrawlerMojoIT.java index 0952bc7f..e0c8ea73 100644 --- a/maven-project-crawler/src/test/java/com/exasol/projectkeeper/MavenProjectCrawlerMojoIT.java +++ b/maven-project-crawler/src/test/java/com/exasol/projectkeeper/MavenProjectCrawlerMojoIT.java @@ -25,6 +25,7 @@ import com.exasol.projectkeeper.shared.dependencies.ProjectDependency; import com.exasol.projectkeeper.shared.dependencychanges.NewDependency; import com.exasol.projectkeeper.shared.mavenprojectcrawler.*; +import com.exasol.projectkeeper.test.TestMavenModel; @Tag("integration") class MavenProjectCrawlerMojoIT { diff --git a/maven-project-crawler/src/test/java/com/exasol/projectkeeper/TestMavenModel.java b/maven-project-crawler/src/test/java/com/exasol/projectkeeper/TestMavenModel.java deleted file mode 100644 index de7d4282..00000000 --- a/maven-project-crawler/src/test/java/com/exasol/projectkeeper/TestMavenModel.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.exasol.projectkeeper; - -import java.io.FileWriter; -import java.io.IOException; -import java.nio.file.Path; - -import org.apache.maven.model.*; -import org.apache.maven.model.io.xpp3.MavenXpp3Writer; -import org.codehaus.plexus.util.xml.Xpp3Dom; - -public class TestMavenModel extends Model { - private static final long serialVersionUID = -554596503224484792L; - public static final String PROJECT_ARTIFACT_ID = "my-test-project"; - public static final String PROJECT_NAME = "my test project"; - public static final String PROJECT_VERSION = "0.1.0"; - public static final String PROJECT_GROUP_ID = "com.example"; - - @SuppressWarnings("this-escape") // Required by 3rd party parent class - public TestMavenModel() { - this.setBuild(new Build()); - this.setVersion(PROJECT_VERSION); - this.setArtifactId(PROJECT_ARTIFACT_ID); - this.setName(PROJECT_NAME); - this.setGroupId(PROJECT_GROUP_ID); - this.setModelVersion("4.0.0"); - } - - public void addDependency(final String artifactId, final String groupId, final String scope, final String version) { - final Dependency dependency = new Dependency(); - dependency.setGroupId(groupId); - dependency.setArtifactId(artifactId); - dependency.setVersion(version); - dependency.setScope(scope); - this.addDependency(dependency); - } - - public TestMavenModel configureAssemblyPluginFinalName(final String finalName) { - final Plugin plugin = new Plugin(); - plugin.setArtifactId("maven-assembly-plugin"); - final Xpp3Dom configuration = new Xpp3Dom("configuration"); - final Xpp3Dom finalNameElement = new Xpp3Dom("finalName"); - finalNameElement.setValue(finalName); - configuration.addChild(finalNameElement); - plugin.setConfiguration(configuration); - return withPlugin(plugin); - } - - public TestMavenModel withPlugin(final Plugin plugin) { - this.getBuild().addPlugin(plugin); - return this; - } - - public void setJavaVersionProperty(final String javaVersion) { - this.addProperty("java.version", javaVersion); - } - - public void writeAsPomToProject(final Path projectDir) throws IOException { - try (final FileWriter fileWriter = new FileWriter(projectDir.resolve("pom.xml").toFile())) { - new MavenXpp3Writer().write(fileWriter, this); - } - } -} diff --git a/maven-project-crawler/src/test/java/com/exasol/projectkeeper/validators/changesfile/DependencyUpdateReaderTest.java b/maven-project-crawler/src/test/java/com/exasol/projectkeeper/validators/changesfile/DependencyUpdateReaderTest.java index f2422a6c..c3b87051 100644 --- a/maven-project-crawler/src/test/java/com/exasol/projectkeeper/validators/changesfile/DependencyUpdateReaderTest.java +++ b/maven-project-crawler/src/test/java/com/exasol/projectkeeper/validators/changesfile/DependencyUpdateReaderTest.java @@ -20,12 +20,12 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.TempDir; -import com.exasol.projectkeeper.TestMavenModel; import com.exasol.projectkeeper.TestRepo; import com.exasol.projectkeeper.pom.MavenProjectFromFileReader; import com.exasol.projectkeeper.shared.dependencies.BaseDependency.Type; import com.exasol.projectkeeper.shared.dependencychanges.DependencyChangeReport; import com.exasol.projectkeeper.shared.dependencychanges.UpdatedDependency; +import com.exasol.projectkeeper.test.TestMavenModel; class DependencyUpdateReaderTest { @@ -93,4 +93,4 @@ public MavenProject readProject(final File pomFile) { } } } -} \ No newline at end of file +} diff --git a/maven-project-crawler/src/test/java/com/exasol/projectkeeper/validators/changesfile/LastReleasePomFileReaderTest.java b/maven-project-crawler/src/test/java/com/exasol/projectkeeper/validators/changesfile/LastReleasePomFileReaderTest.java index d69d1faf..602a4085 100644 --- a/maven-project-crawler/src/test/java/com/exasol/projectkeeper/validators/changesfile/LastReleasePomFileReaderTest.java +++ b/maven-project-crawler/src/test/java/com/exasol/projectkeeper/validators/changesfile/LastReleasePomFileReaderTest.java @@ -17,8 +17,8 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.TempDir; -import com.exasol.projectkeeper.TestMavenModel; import com.exasol.projectkeeper.TestRepo; +import com.exasol.projectkeeper.test.TestMavenModel; class LastReleasePomFileReaderTest { private static final String CURRENT_VERSION = "1.0.0"; @@ -159,4 +159,4 @@ private String makeRelease(final TestRepo git, final String name, final Path dir git.addAll().commit().createTag(name); return Files.readString(directory.resolve("pom.xml")); } -} \ No newline at end of file +} diff --git a/project-keeper-maven-plugin/src/main/java/com/exasol/projectkeeper/plugin/AbstractProjectKeeperMojo.java b/project-keeper-maven-plugin/src/main/java/com/exasol/projectkeeper/plugin/AbstractProjectKeeperMojo.java index 62d7be3f..13afcd8a 100644 --- a/project-keeper-maven-plugin/src/main/java/com/exasol/projectkeeper/plugin/AbstractProjectKeeperMojo.java +++ b/project-keeper-maven-plugin/src/main/java/com/exasol/projectkeeper/plugin/AbstractProjectKeeperMojo.java @@ -27,6 +27,9 @@ public abstract class AbstractProjectKeeperMojo extends AbstractMojo { @Parameter(defaultValue = "${session}", readonly = true) private MavenSession session; + AbstractProjectKeeperMojo() { + } + /** * Get a project-keeper core. * diff --git a/project-keeper-maven-plugin/src/main/java/com/exasol/projectkeeper/plugin/ProjectKeeperFixMojo.java b/project-keeper-maven-plugin/src/main/java/com/exasol/projectkeeper/plugin/ProjectKeeperFixMojo.java index 5f310cea..088f1baa 100644 --- a/project-keeper-maven-plugin/src/main/java/com/exasol/projectkeeper/plugin/ProjectKeeperFixMojo.java +++ b/project-keeper-maven-plugin/src/main/java/com/exasol/projectkeeper/plugin/ProjectKeeperFixMojo.java @@ -14,6 +14,8 @@ @Mojo(name = "fix") // [impl->dsn~mvn-fix-goal~1] public class ProjectKeeperFixMojo extends AbstractProjectKeeperMojo { + ProjectKeeperFixMojo() { + } @Override protected void runProjectKeeper(final ProjectKeeper projectKeeper) throws MojoFailureException { diff --git a/project-keeper-maven-plugin/src/main/java/com/exasol/projectkeeper/plugin/ProjectKeeperUpdateDependenciesMojo.java b/project-keeper-maven-plugin/src/main/java/com/exasol/projectkeeper/plugin/ProjectKeeperUpdateDependenciesMojo.java index aac03317..aa36f249 100644 --- a/project-keeper-maven-plugin/src/main/java/com/exasol/projectkeeper/plugin/ProjectKeeperUpdateDependenciesMojo.java +++ b/project-keeper-maven-plugin/src/main/java/com/exasol/projectkeeper/plugin/ProjectKeeperUpdateDependenciesMojo.java @@ -13,6 +13,8 @@ */ @Mojo(name = "update-dependencies") public class ProjectKeeperUpdateDependenciesMojo extends AbstractProjectKeeperMojo { + ProjectKeeperUpdateDependenciesMojo() { + } @Override protected void runProjectKeeper(final ProjectKeeper projectKeeper) throws MojoFailureException { diff --git a/project-keeper-maven-plugin/src/main/java/com/exasol/projectkeeper/plugin/ProjectKeeperVerifyMojo.java b/project-keeper-maven-plugin/src/main/java/com/exasol/projectkeeper/plugin/ProjectKeeperVerifyMojo.java index e28c1875..03f78883 100644 --- a/project-keeper-maven-plugin/src/main/java/com/exasol/projectkeeper/plugin/ProjectKeeperVerifyMojo.java +++ b/project-keeper-maven-plugin/src/main/java/com/exasol/projectkeeper/plugin/ProjectKeeperVerifyMojo.java @@ -15,6 +15,8 @@ @Mojo(name = "verify", defaultPhase = LifecyclePhase.PACKAGE) // [impl->dsn~mvn-verify-goal~1] public class ProjectKeeperVerifyMojo extends AbstractProjectKeeperMojo { + ProjectKeeperVerifyMojo() { + } @Override protected void runProjectKeeper(final ProjectKeeper projectKeeper) throws MojoFailureException { diff --git a/project-keeper-maven-plugin/src/main/java/com/exasol/projectkeeper/plugin/ProjectKeeperVerifyReleaseMojo.java b/project-keeper-maven-plugin/src/main/java/com/exasol/projectkeeper/plugin/ProjectKeeperVerifyReleaseMojo.java index 6d2d3dd5..53aeb9df 100644 --- a/project-keeper-maven-plugin/src/main/java/com/exasol/projectkeeper/plugin/ProjectKeeperVerifyReleaseMojo.java +++ b/project-keeper-maven-plugin/src/main/java/com/exasol/projectkeeper/plugin/ProjectKeeperVerifyReleaseMojo.java @@ -13,6 +13,8 @@ */ @Mojo(name = "verify-release") public class ProjectKeeperVerifyReleaseMojo extends AbstractProjectKeeperMojo { + ProjectKeeperVerifyReleaseMojo() { + } @Override protected void runProjectKeeper(final ProjectKeeper projectKeeper) throws MojoFailureException { diff --git a/project-keeper/src/main/java/com/exasol/projectkeeper/ApStyleFormatter.java b/project-keeper/src/main/java/com/exasol/projectkeeper/ApStyleFormatter.java index 08293f1e..024bc185 100644 --- a/project-keeper/src/main/java/com/exasol/projectkeeper/ApStyleFormatter.java +++ b/project-keeper/src/main/java/com/exasol/projectkeeper/ApStyleFormatter.java @@ -6,6 +6,8 @@ public class ApStyleFormatter { /** + * Convert string to a human readable value. + * * @param string name to be converted * @return human readable format for input string */ diff --git a/project-keeper/src/main/java/com/exasol/projectkeeper/LicenseNameReader.java b/project-keeper/src/main/java/com/exasol/projectkeeper/LicenseNameReader.java index 696f7b86..47e57573 100644 --- a/project-keeper/src/main/java/com/exasol/projectkeeper/LicenseNameReader.java +++ b/project-keeper/src/main/java/com/exasol/projectkeeper/LicenseNameReader.java @@ -11,6 +11,9 @@ */ public class LicenseNameReader { + LicenseNameReader() { + } + /** * Read the name of the license (first line of LICENSE file). * diff --git a/project-keeper/src/main/java/com/exasol/projectkeeper/sources/AnalyzedMavenSource.java b/project-keeper/src/main/java/com/exasol/projectkeeper/sources/AnalyzedMavenSource.java index b6d9a717..609f197a 100644 --- a/project-keeper/src/main/java/com/exasol/projectkeeper/sources/AnalyzedMavenSource.java +++ b/project-keeper/src/main/java/com/exasol/projectkeeper/sources/AnalyzedMavenSource.java @@ -41,52 +41,86 @@ private AnalyzedMavenSource(final AnalyzedMavenSourceBuilder builder) { this.isRootProject = builder.isRootProject; } - /** @return new builder for an {@link AnalyzedMavenSource}. */ + /** + * Create a new builder. + * + * @return new builder for an {@link AnalyzedMavenSource}. + */ public static AnalyzedMavenSource.AnalyzedMavenSourceBuilder builder() { return new AnalyzedMavenSource.AnalyzedMavenSourceBuilder(); } - /** @return source path, e.g. {@code project-dir/module/pom.xml} */ + /** + * Get source path. + * + * @return source path, e.g. {@code project-dir/module/pom.xml} + */ @Override public Path getPath() { return this.path; } - /** @return modules */ + /** + * Get modules. + * + * @return modules + */ @Override public Set getModules() { return this.modules; } - /** @return advertise this source or not */ + /** + * Check if this should be advertised. + * + * @return advertise this source or not + */ @Override public boolean isAdvertised() { return this.advertise; } - /** @return Maven artifact ID */ + /** + * Get Maven artifact ID. + * + * @return Maven artifact ID + */ public String getArtifactId() { return this.artifactId; } - /** @return project name */ + /** + * Get project name. + * + * @return project name + */ @Override public String getProjectName() { return this.projectName; } - /** @return Project version */ + /** + * Get project version. + * + * @return Project version + */ @Override public String getVersion() { return this.version; } - /** @return artifact file name or {@code null} if no artifact is built */ + /** + * Get release artifact name. + * + * @return artifact file name or {@code null} if no artifact is built + */ public String getReleaseArtifactName() { return this.releaseArtifactName; } /** + * Get Java version. + * * @return Java version used for compiling and testing the project. Read from the {@code properties/java.version} * element of the {@code pom.xml} file. Defaults to {@link PomFileGenerator#DEFAULT_JAVA_VERSION}. */ @@ -94,19 +128,25 @@ public String getJavaVersion() { return this.javaVersion; } - /** @return dependency changes */ + /** + * Get dependency changes. + * + * @return dependency changes + */ @Override public DependencyChangeReport getDependencyChanges() { return this.dependencyChanges; } - /** @return dependencies */ + /** Get current dependencies. @return current dependencies */ @Override public ProjectDependencies getDependencies() { return this.dependencies; } /** + * Check if this is the root project. + * * @return {@code true} if this is the main maven project in the repo (if pom lies directly in repo) */ public boolean isRootProject() { @@ -134,6 +174,8 @@ private AnalyzedMavenSourceBuilder() { } /** + * Set source path. + * * @param path source path e.g. {@code project-dir/module/pom.xml} * @return {@code this}. */ @@ -143,6 +185,8 @@ public AnalyzedMavenSource.AnalyzedMavenSourceBuilder path(final Path path) { } /** + * Set PK modules. + * * @param modules modules * @return {@code this}. */ @@ -152,6 +196,8 @@ public AnalyzedMavenSource.AnalyzedMavenSourceBuilder modules(final Set getModules() { return modules; } - /** @return {@code true} if this source should be advertised */ @Override public boolean isAdvertised() { return advertise; } - /** @return module name */ + /** + * Get the module name. + * + * @return module name + */ public String getModuleName() { return moduleName; } - /** @return project name */ @Override public String getProjectName() { return projectName; } - /** @return version */ @Override public String getVersion() { return version; } - /** @return dependency changes */ @Override public DependencyChangeReport getDependencyChanges() { return dependencyChanges; } - /** @return dependencies */ @Override public ProjectDependencies getDependencies() { return dependencies; } /** + * Check if this is the root project. + * * @return {@code true} if this is the main project in the repo, i.e. if build script (e.g. go.mod) lies directly in * repo */ @@ -107,7 +108,11 @@ public boolean isRootProject() { return isRootProject; } - /** @return a new builder for {@link AnalyzedSourceImpl} */ + /** + * Create a new builder. + * + * @return a new builder for {@link AnalyzedSourceImpl} + */ public static AnalyzedSourceImpl.AnalyzedSourceImplBuilder builder() { return new AnalyzedSourceImpl.AnalyzedSourceImplBuilder(); } @@ -131,6 +136,8 @@ private AnalyzedSourceImplBuilder() { } /** + * Set source path. + * * @param path source path * @return {@code this}. */ @@ -140,6 +147,8 @@ public AnalyzedSourceImpl.AnalyzedSourceImplBuilder path(final Path path) { } /** + * Set PK modules. + * * @param modules enabled modules * @return {@code this}. */ @@ -149,6 +158,8 @@ public AnalyzedSourceImpl.AnalyzedSourceImplBuilder modules(final Set changes = new ArrayList<>(); /** + * Set previous dependencies. + * * @param dependencies previous list of dependencies * @return this for fluent programming */ @@ -37,6 +44,8 @@ public DependencyChanges from(final Optional> dependen } /** + * Set current dependencies. + * * @param dependencies current list of dependencies * @return this for fluent programming */ @@ -50,6 +59,8 @@ private static Map toMap(final List build() { diff --git a/project-keeper/src/main/java/com/exasol/projectkeeper/sources/analyze/generic/GitService.java b/project-keeper/src/main/java/com/exasol/projectkeeper/sources/analyze/generic/GitService.java index 0424f99b..bb2499fd 100644 --- a/project-keeper/src/main/java/com/exasol/projectkeeper/sources/analyze/generic/GitService.java +++ b/project-keeper/src/main/java/com/exasol/projectkeeper/sources/analyze/generic/GitService.java @@ -8,8 +8,14 @@ * Separate class to enable mocking access to Git repository. */ public class GitService { + /** Create a new instance */ + public GitService() { + // Empty constructor required by javadoc + } /** + * Get a Git repository. + * * @param folder root folder of the current project * @return {@link GitRepository} */ diff --git a/project-keeper/src/main/java/com/exasol/projectkeeper/sources/analyze/golang/GoBinary.java b/project-keeper/src/main/java/com/exasol/projectkeeper/sources/analyze/golang/GoBinary.java index de0d1e83..e1b5b5a7 100644 --- a/project-keeper/src/main/java/com/exasol/projectkeeper/sources/analyze/golang/GoBinary.java +++ b/project-keeper/src/main/java/com/exasol/projectkeeper/sources/analyze/golang/GoBinary.java @@ -82,6 +82,8 @@ boolean isInstalled() { } /** + * Get the command. + * * @return command for execution in a process */ public String command() { diff --git a/project-keeper/src/main/java/com/exasol/projectkeeper/sources/analyze/npm/NpmDependencyChanges.java b/project-keeper/src/main/java/com/exasol/projectkeeper/sources/analyze/npm/NpmDependencyChanges.java index bc970be4..90306f05 100644 --- a/project-keeper/src/main/java/com/exasol/projectkeeper/sources/analyze/npm/NpmDependencyChanges.java +++ b/project-keeper/src/main/java/com/exasol/projectkeeper/sources/analyze/npm/NpmDependencyChanges.java @@ -16,6 +16,8 @@ public class NpmDependencyChanges { /** + * Create a new instance. + * * @param current current release * @param previous previous release or empty optional * @return {@link DependencyChangeReport} diff --git a/project-keeper/src/main/java/com/exasol/projectkeeper/stream/CollectingConsumer.java b/project-keeper/src/main/java/com/exasol/projectkeeper/stream/CollectingConsumer.java index ff0fe5b1..48da1dc8 100644 --- a/project-keeper/src/main/java/com/exasol/projectkeeper/stream/CollectingConsumer.java +++ b/project-keeper/src/main/java/com/exasol/projectkeeper/stream/CollectingConsumer.java @@ -15,6 +15,9 @@ public class CollectingConsumer implements StreamConsumer { private final CountDownLatch countDownLatch = new CountDownLatch(1); private final StringBuilder stringBuilder = new StringBuilder(); + CollectingConsumer() { + } + @Override public void accept(final String line) { this.stringBuilder.append(line).append("\n"); diff --git a/project-keeper/src/main/java/com/exasol/projectkeeper/validators/OwnVersionValidator.java b/project-keeper/src/main/java/com/exasol/projectkeeper/validators/OwnVersionValidator.java index 09be3196..a9606a39 100644 --- a/project-keeper/src/main/java/com/exasol/projectkeeper/validators/OwnVersionValidator.java +++ b/project-keeper/src/main/java/com/exasol/projectkeeper/validators/OwnVersionValidator.java @@ -26,6 +26,8 @@ public class OwnVersionValidator implements Validator { /** + * Create a validator for running as a maven plugin. + * * @param currentVersion current version of PK in order to validate if there is an update available. * @param updater instance of {@link Updater} in order to accept the latest version and to perform a * self-update by replacing the version of PK maven plugin in the user's pom file. diff --git a/project-keeper/src/main/java/com/exasol/projectkeeper/validators/changesfile/ChangesFileName.java b/project-keeper/src/main/java/com/exasol/projectkeeper/validators/changesfile/ChangesFileName.java index 390c6df5..8b28e948 100644 --- a/project-keeper/src/main/java/com/exasol/projectkeeper/validators/changesfile/ChangesFileName.java +++ b/project-keeper/src/main/java/com/exasol/projectkeeper/validators/changesfile/ChangesFileName.java @@ -18,6 +18,8 @@ public final class ChangesFileName implements Comparable { public static final Pattern PATTERN = Pattern.compile("changes_(" + Version.PATTERN.pattern() + ")\\.md"); /** + * Get Changes file name for the given path. + * * @param path path to create a {@link ChangesFileName} for * @return If path matches regular expression for valid changes filenames then an {@link Optional} containing a new * instance of {@link ChangesFileName}, otherwise {@code Optional.empty()}. @@ -43,6 +45,8 @@ public ChangesFileName(final String version) { } /** + * Get the filename. + * * @return filename of the current {@link ChangesFileName} as string */ public String filename() { @@ -55,6 +59,8 @@ public int compareTo(final ChangesFileName o) { } /** + * Get the version number. + * * @return version number contained in the filename of current {@link ChangesFileName} */ public String version() { diff --git a/project-keeper/src/main/java/com/exasol/projectkeeper/validators/changesfile/NamedDependencyChangeReport.java b/project-keeper/src/main/java/com/exasol/projectkeeper/validators/changesfile/NamedDependencyChangeReport.java index d2744944..ba803223 100644 --- a/project-keeper/src/main/java/com/exasol/projectkeeper/validators/changesfile/NamedDependencyChangeReport.java +++ b/project-keeper/src/main/java/com/exasol/projectkeeper/validators/changesfile/NamedDependencyChangeReport.java @@ -22,12 +22,20 @@ public NamedDependencyChangeReport(final String sourceName, final DependencyChan this.report = report; } - /** @return source name */ + /** + * Get the source name. + * + * @return source name + */ public String getSourceName() { return sourceName; } - /** @return report */ + /** + * Get the report. + * + * @return report + */ public DependencyChangeReport getReport() { return report; } diff --git a/project-keeper/src/main/java/com/exasol/projectkeeper/validators/changesfile/dependencies/DependencyChangeReportRenderer.java b/project-keeper/src/main/java/com/exasol/projectkeeper/validators/changesfile/dependencies/DependencyChangeReportRenderer.java index 34695e34..4fd5927b 100644 --- a/project-keeper/src/main/java/com/exasol/projectkeeper/validators/changesfile/dependencies/DependencyChangeReportRenderer.java +++ b/project-keeper/src/main/java/com/exasol/projectkeeper/validators/changesfile/dependencies/DependencyChangeReportRenderer.java @@ -13,6 +13,10 @@ * String renderer for {@link DependencyChangeReport}. */ public class DependencyChangeReportRenderer { + /** Create a new instance */ + public DependencyChangeReportRenderer() { + // Empty constructor required by javadoc + } /** * Render a {@link DependencyChangeReport} to string. diff --git a/project-keeper/src/main/java/com/exasol/projectkeeper/validators/dependencies/renderer/DependencyPageRenderer.java b/project-keeper/src/main/java/com/exasol/projectkeeper/validators/dependencies/renderer/DependencyPageRenderer.java index ebba18b8..2bdeff70 100644 --- a/project-keeper/src/main/java/com/exasol/projectkeeper/validators/dependencies/renderer/DependencyPageRenderer.java +++ b/project-keeper/src/main/java/com/exasol/projectkeeper/validators/dependencies/renderer/DependencyPageRenderer.java @@ -18,6 +18,11 @@ public class DependencyPageRenderer { private static final String NEWLINE = System.lineSeparator(); + /** Create a new instance */ + public DependencyPageRenderer() { + // Empty constructor required by javadoc + } + /** * Convert a list of dependencies into a markdown dependency report. * diff --git a/project-keeper/src/main/java/com/exasol/projectkeeper/validators/files/ProjectFilesValidator.java b/project-keeper/src/main/java/com/exasol/projectkeeper/validators/files/ProjectFilesValidator.java index b4cb2a5a..50b5ca2a 100644 --- a/project-keeper/src/main/java/com/exasol/projectkeeper/validators/files/ProjectFilesValidator.java +++ b/project-keeper/src/main/java/com/exasol/projectkeeper/validators/files/ProjectFilesValidator.java @@ -97,6 +97,8 @@ private ContentValidator getContentValidator(final FileTemplate template) { } /** + * Create a new builder. + * * @return Builder for a new instance of {@link ProjectFilesValidator} */ public static Builder builder() { @@ -119,6 +121,8 @@ private Builder() { } /** + * Set project directory. + * * @param projectDirectory project's root directory * @return {@code this} for fluent programming */ @@ -128,6 +132,8 @@ public Builder projectDirectory(final Path projectDirectory) { } /** + * Set analyzed sources. + * * @param value list of analyzed sources * @return {@code this} for fluent programming */ @@ -137,6 +143,8 @@ public Builder analyzedSources(final List value) { } /** + * Set logger. + * * @param value logger to use for log messages * @return {@code this} for fluent programming */ @@ -146,6 +154,8 @@ public Builder logger(final Logger value) { } /** + * Set project keeper version. + * * @param value the version of the currently running project keeper * @return {@code this} for fluent programming */ @@ -155,6 +165,8 @@ public Builder projectKeeperVersion(final String value) { } /** + * Define if project has an NPM module. + * * @param value {@code true} if the current project contains an NPM module * @return {@code this} for fluent programming */ @@ -164,6 +176,8 @@ public Builder hasNpmModule(final boolean value) { } /** + * Set CI build options. + * * @param buildOptions CI build options * @return {@code this} for fluent programming */ @@ -173,6 +187,8 @@ public Builder ciBuildOptions(final BuildOptions buildOptions) { } /** + * Build a new instance. + * * @return new instance of {@link ProjectFilesValidator} */ public ProjectFilesValidator build() { diff --git a/project-keeper/src/main/java/com/exasol/projectkeeper/validators/finding/FindingsUngrouper.java b/project-keeper/src/main/java/com/exasol/projectkeeper/validators/finding/FindingsUngrouper.java index d3a9b4fe..d5d7af1a 100644 --- a/project-keeper/src/main/java/com/exasol/projectkeeper/validators/finding/FindingsUngrouper.java +++ b/project-keeper/src/main/java/com/exasol/projectkeeper/validators/finding/FindingsUngrouper.java @@ -7,6 +7,10 @@ * This class ungroups all {@link ValidationFindingGroup}s into one flat list. */ public class FindingsUngrouper { + /** Create a new instance */ + public FindingsUngrouper() { + // Empty constructor required by javadoc + } /** * Ungroup all {@link ValidationFindingGroup}s into one flat list. diff --git a/project-keeper/src/main/java/com/exasol/projectkeeper/validators/pom/builder/ChildrenBuilder.java b/project-keeper/src/main/java/com/exasol/projectkeeper/validators/pom/builder/ChildrenBuilder.java index 1d3bc94e..453d292d 100644 --- a/project-keeper/src/main/java/com/exasol/projectkeeper/validators/pom/builder/ChildrenBuilder.java +++ b/project-keeper/src/main/java/com/exasol/projectkeeper/validators/pom/builder/ChildrenBuilder.java @@ -6,10 +6,17 @@ import java.util.List; /** - * Builder for XML nodes with children + * Builder for XML nodes with children. + * + * @param child element builder */ public abstract class ChildrenBuilder> { + /** Create a new instance */ + protected ChildrenBuilder() { + // Empty constructor required by javadoc + } + /** * children builders of the current builder */ @@ -51,6 +58,8 @@ public T nullableChild(final NodeBuilder child) { } /** + * Add children. + * * @param children children to add to the current element * @return this for fluent programming */ @@ -60,6 +69,8 @@ public T children(final List children) { } /** + * Get typed this pointer. + * * @return instance of the current object to support generics */ protected abstract T getThis(); diff --git a/project-keeper/src/main/java/com/exasol/projectkeeper/validators/pom/builder/DocumentBuilder.java b/project-keeper/src/main/java/com/exasol/projectkeeper/validators/pom/builder/DocumentBuilder.java index 79f340ac..f5444280 100644 --- a/project-keeper/src/main/java/com/exasol/projectkeeper/validators/pom/builder/DocumentBuilder.java +++ b/project-keeper/src/main/java/com/exasol/projectkeeper/validators/pom/builder/DocumentBuilder.java @@ -16,6 +16,8 @@ public class DocumentBuilder extends ChildrenBuilder { } /** + * Build a new document. + * * @return new instance of {@link org.w3c.dom.Document} */ public Document build() { @@ -42,4 +44,4 @@ private Document createDocument() { protected DocumentBuilder getThis() { return this; } -} \ No newline at end of file +} diff --git a/project-keeper/src/main/java/com/exasol/projectkeeper/validators/pom/builder/NodeBuilder.java b/project-keeper/src/main/java/com/exasol/projectkeeper/validators/pom/builder/NodeBuilder.java index cd2fb392..6d1f3004 100644 --- a/project-keeper/src/main/java/com/exasol/projectkeeper/validators/pom/builder/NodeBuilder.java +++ b/project-keeper/src/main/java/com/exasol/projectkeeper/validators/pom/builder/NodeBuilder.java @@ -8,12 +8,16 @@ */ public interface NodeBuilder { /** + * Create a new node. + * * @param document document to use for building the Node * @return new instance of a {@link org.w3c.dom.Node} */ public Node build(Document document); /** + * Create a new document builder. + * * @return New instance of {@link DocumentBuilder} */ public static DocumentBuilder document() { @@ -21,6 +25,8 @@ public static DocumentBuilder document() { } /** + * Create a new element builder. + * * @param name name of the element to be built by this builder * @return New instance of {@link ElementBuilder} */ @@ -29,6 +35,8 @@ public static ElementBuilder element(final String name) { } /** + * Create a new element builder. + * * @param namespace XML namespace of the element * @param name name of the element to be built by this builder * @return New instance of {@link ElementBuilder} diff --git a/project-keeper/src/main/java/com/exasol/projectkeeper/validators/pom/plugin/ErrorCodeCrawlerPluginTemplateGenerator.java b/project-keeper/src/main/java/com/exasol/projectkeeper/validators/pom/plugin/ErrorCodeCrawlerPluginTemplateGenerator.java index 6f7c01ea..eb7502c7 100644 --- a/project-keeper/src/main/java/com/exasol/projectkeeper/validators/pom/plugin/ErrorCodeCrawlerPluginTemplateGenerator.java +++ b/project-keeper/src/main/java/com/exasol/projectkeeper/validators/pom/plugin/ErrorCodeCrawlerPluginTemplateGenerator.java @@ -13,6 +13,11 @@ public class ErrorCodeCrawlerPluginTemplateGenerator implements PluginTemplateGenerator { private static final String TEMPLATE = "maven_templates/error-code-crawler-maven-plugin.xml"; + /** Create a new instance */ + public ErrorCodeCrawlerPluginTemplateGenerator() { + // Empty constructor required by javadoc + } + @Override public Optional generateTemplate(final Collection enabledModules) { final Node pluginTemplate = new PluginTemplateReader().readPluginTemplate(TEMPLATE); diff --git a/project-keeper/src/main/java/com/exasol/projectkeeper/validators/pom/plugin/FailsafePluginTemplateGenerator.java b/project-keeper/src/main/java/com/exasol/projectkeeper/validators/pom/plugin/FailsafePluginTemplateGenerator.java index 620b6ef4..dd639333 100644 --- a/project-keeper/src/main/java/com/exasol/projectkeeper/validators/pom/plugin/FailsafePluginTemplateGenerator.java +++ b/project-keeper/src/main/java/com/exasol/projectkeeper/validators/pom/plugin/FailsafePluginTemplateGenerator.java @@ -16,6 +16,11 @@ public class FailsafePluginTemplateGenerator implements PluginTemplateGenerator private static final String TEST_COVERAGE_CONFIGURATION = "configuration/systemPropertyVariables/test.coverage"; private static final String TEMPLATE = "maven_templates/maven-failsafe-plugin.xml"; + /** Create a new instance */ + public FailsafePluginTemplateGenerator() { + // Empty constructor required by javadoc + } + @Override public Optional generateTemplate(final Collection enabledModules) { if (enabledModules.contains(ProjectKeeperModule.INTEGRATION_TESTS)) { diff --git a/project-keeper/src/main/java/com/exasol/projectkeeper/validators/pom/plugin/JacocoPluginTemplateGenerator.java b/project-keeper/src/main/java/com/exasol/projectkeeper/validators/pom/plugin/JacocoPluginTemplateGenerator.java index 9a9a4051..31f92b1b 100644 --- a/project-keeper/src/main/java/com/exasol/projectkeeper/validators/pom/plugin/JacocoPluginTemplateGenerator.java +++ b/project-keeper/src/main/java/com/exasol/projectkeeper/validators/pom/plugin/JacocoPluginTemplateGenerator.java @@ -16,6 +16,11 @@ public class JacocoPluginTemplateGenerator implements PluginTemplateGenerator { private static final String TEMPLATE = "maven_templates/jacoco-maven-plugin.xml"; + /** Create a new instance. */ + public JacocoPluginTemplateGenerator() { + // Empty constructor required by javadoc + } + @Override public Optional generateTemplate(final Collection enabledModules) { final Node pluginTemplate = new PluginTemplateReader().readPluginTemplate(TEMPLATE); diff --git a/project-keeper/src/main/java/com/exasol/projectkeeper/validators/pom/plugin/PluginTemplateReader.java b/project-keeper/src/main/java/com/exasol/projectkeeper/validators/pom/plugin/PluginTemplateReader.java index 637b6acf..a63c69a1 100644 --- a/project-keeper/src/main/java/com/exasol/projectkeeper/validators/pom/plugin/PluginTemplateReader.java +++ b/project-keeper/src/main/java/com/exasol/projectkeeper/validators/pom/plugin/PluginTemplateReader.java @@ -17,6 +17,9 @@ public class PluginTemplateReader { private static final DocumentBuilderFactory DOCUMENT_BUILDER_FACTORY = createXmlDocumentBuilderFactory(); + PluginTemplateReader() { + } + private static DocumentBuilderFactory createXmlDocumentBuilderFactory() { final DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factory.setAttribute(XMLConstants.ACCESS_EXTERNAL_DTD, ""); diff --git a/shared-test-setup/pom.xml b/shared-test-setup/pom.xml index 6b23f1e8..8ed66157 100644 --- a/shared-test-setup/pom.xml +++ b/shared-test-setup/pom.xml @@ -35,12 +35,20 @@ + + org.apache.maven.plugins + maven-javadoc-plugin + 3.11.1 + + + false + + org.apache.maven.plugins maven-compiler-plugin - -Xlint:all,-processing -Werror diff --git a/shared-test-setup/src/main/java/com/exasol/projectkeeper/test/TestMavenModel.java b/shared-test-setup/src/main/java/com/exasol/projectkeeper/test/TestMavenModel.java index ba972c56..72c49f10 100644 --- a/shared-test-setup/src/main/java/com/exasol/projectkeeper/test/TestMavenModel.java +++ b/shared-test-setup/src/main/java/com/exasol/projectkeeper/test/TestMavenModel.java @@ -89,12 +89,16 @@ public TestMavenModel writeAsPomToProject(final Path projectDir) { } public TestMavenModel configureAssemblyPluginFinalName() { + return configureAssemblyPluginFinalName("jar-name"); + } + + public TestMavenModel configureAssemblyPluginFinalName(final String finalName) { final Plugin plugin = new Plugin(); plugin.setArtifactId("maven-assembly-plugin"); final Xpp3Dom configuration = new Xpp3Dom("configuration"); - final Xpp3Dom finalName = new Xpp3Dom("finalName"); - finalName.setValue("my-jar"); - configuration.addChild(finalName); + final Xpp3Dom finalNameElement = new Xpp3Dom("finalName"); + finalNameElement.setValue(finalName); + configuration.addChild(finalNameElement); plugin.setConfiguration(configuration); return withPlugin(plugin); } @@ -111,4 +115,8 @@ public TestMavenModel withPlugin(final Plugin plugin) { this.getBuild().addPlugin(plugin); return this; } + + public void setJavaVersionProperty(final String javaVersion) { + this.addProperty("java.version", javaVersion); + } }