You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sj...@apache.org on 2024/10/06 08:22:48 UTC
(maven-archetype) 01/01: [ARCHETYPE-681] Fix output from archetype verification
This is an automated email from the ASF dual-hosted git repository.
sjaranowski pushed a commit to branch ARCHETYPE-681
in repository https://gitbox.apache.org/repos/asf/maven-archetype.git
commit 411936228169317b022316887fedce57382ba180
Author: Slawomir Jaranowski <s....@gmail.com>
AuthorDate: Sun Oct 6 10:22:32 2024 +0200
[ARCHETYPE-681] Fix output from archetype verification
---
.../test-settings.xml | 4 ++++
.../ARCHETYPE-606_include-gitignore/verify.groovy | 23 ++++++++++++++++++++++
.../ARCHETYPE-622_main_build_settings/pom.xml | 2 +-
.../test-settings.xml | 4 ++++
.../verify.groovy | 19 ++++++++++--------
.../projects/build-and-run-its/test-settings.xml | 4 ++++
.../it/projects/build-archetype/test-settings.xml | 4 ++++
.../it/projects/build-ignore-eol/test-settings.xml | 4 ++++
.../apache/maven/archetype/mojos/FileLogger.java | 18 ++++-------------
.../maven/archetype/mojos/IntegrationTestMojo.java | 4 +---
10 files changed, 60 insertions(+), 26 deletions(-)
diff --git a/maven-archetype-plugin/src/it/projects/ARCHETYPE-606_include-gitignore/test-settings.xml b/maven-archetype-plugin/src/it/projects/ARCHETYPE-606_include-gitignore/test-settings.xml
index ab9e16e4..cb295a6b 100644
--- a/maven-archetype-plugin/src/it/projects/ARCHETYPE-606_include-gitignore/test-settings.xml
+++ b/maven-archetype-plugin/src/it/projects/ARCHETYPE-606_include-gitignore/test-settings.xml
@@ -32,9 +32,11 @@ under the License.
<url>@localRepositoryUrl@</url>
<releases>
<enabled>true</enabled>
+ <checksumPolicy>ignore</checksumPolicy>
</releases>
<snapshots>
<enabled>true</enabled>
+ <checksumPolicy>ignore</checksumPolicy>
</snapshots>
</repository>
</repositories>
@@ -44,9 +46,11 @@ under the License.
<url>@localRepositoryUrl@</url>
<releases>
<enabled>true</enabled>
+ <checksumPolicy>ignore</checksumPolicy>
</releases>
<snapshots>
<enabled>true</enabled>
+ <checksumPolicy>ignore</checksumPolicy>
</snapshots>
</pluginRepository>
</pluginRepositories>
diff --git a/maven-archetype-plugin/src/it/projects/ARCHETYPE-606_include-gitignore/verify.groovy b/maven-archetype-plugin/src/it/projects/ARCHETYPE-606_include-gitignore/verify.groovy
new file mode 100644
index 00000000..77eac963
--- /dev/null
+++ b/maven-archetype-plugin/src/it/projects/ARCHETYPE-606_include-gitignore/verify.groovy
@@ -0,0 +1,23 @@
+/*
+ * 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.
+ */
+
+buildLog = new File( basedir, '../../logs/ARCHETYPE-606_include-gitignore/build.log' ).text
+assert buildLog.contains( '[INFO] Invoking post-archetype-generation goals: compile' ) : 'post-archetype-generation invocation not recorder in log'
+assert buildLog.contains( '[INFO] [INFO]' ) : 'output of post-archetype-generation should be present in log'
+
diff --git a/maven-archetype-plugin/src/it/projects/ARCHETYPE-622_main_build_settings/pom.xml b/maven-archetype-plugin/src/it/projects/ARCHETYPE-622_main_build_settings/pom.xml
index b7ae168f..9d90bf78 100644
--- a/maven-archetype-plugin/src/it/projects/ARCHETYPE-622_main_build_settings/pom.xml
+++ b/maven-archetype-plugin/src/it/projects/ARCHETYPE-622_main_build_settings/pom.xml
@@ -56,8 +56,8 @@ under the License.
<properties>
<maven.compiler.source>${maven.compiler.source}</maven.compiler.source>
<maven.compiler.target>${maven.compiler.target}</maven.compiler.target>
-
</properties>
+ <streamLogs>false</streamLogs>
</configuration>
</plugin>
<plugin>
diff --git a/maven-archetype-plugin/src/it/projects/ARCHETYPE-622_main_build_settings/test-settings.xml b/maven-archetype-plugin/src/it/projects/ARCHETYPE-622_main_build_settings/test-settings.xml
index ab9e16e4..cb295a6b 100644
--- a/maven-archetype-plugin/src/it/projects/ARCHETYPE-622_main_build_settings/test-settings.xml
+++ b/maven-archetype-plugin/src/it/projects/ARCHETYPE-622_main_build_settings/test-settings.xml
@@ -32,9 +32,11 @@ under the License.
<url>@localRepositoryUrl@</url>
<releases>
<enabled>true</enabled>
+ <checksumPolicy>ignore</checksumPolicy>
</releases>
<snapshots>
<enabled>true</enabled>
+ <checksumPolicy>ignore</checksumPolicy>
</snapshots>
</repository>
</repositories>
@@ -44,9 +46,11 @@ under the License.
<url>@localRepositoryUrl@</url>
<releases>
<enabled>true</enabled>
+ <checksumPolicy>ignore</checksumPolicy>
</releases>
<snapshots>
<enabled>true</enabled>
+ <checksumPolicy>ignore</checksumPolicy>
</snapshots>
</pluginRepository>
</pluginRepositories>
diff --git a/maven-archetype-plugin/src/it/projects/ARCHETYPE-622_main_build_settings/verify.groovy b/maven-archetype-plugin/src/it/projects/ARCHETYPE-622_main_build_settings/verify.groovy
index 272ea5a5..363e7a84 100644
--- a/maven-archetype-plugin/src/it/projects/ARCHETYPE-622_main_build_settings/verify.groovy
+++ b/maven-archetype-plugin/src/it/projects/ARCHETYPE-622_main_build_settings/verify.groovy
@@ -21,24 +21,27 @@
import java.io.*
import org.codehaus.plexus.util.*
-def basedir = new File(basedir, "target/test-classes/projects/basic/project/basic")
-assert basedir.exists() : "${basedir} is missing."
+def basedirTargetProject = new File(basedir, "target/test-classes/projects/basic/project/basic")
+assert basedirTargetProject.exists() : "${basedirTargetProject} is missing."
-def main = new File(basedir, "src/main")
+def main = new File(basedirTargetProject, "src/main")
def app = new File(main, "java/build/archetype/App.java")
// check <fileset packaged="true">
assert app.isFile() : "${app} file is missing or not a file."
-def buildLog = new File(basedir, "build.log")
-def content = FileUtils.fileRead(buildLog, "UTF-8")
+def buildLog = new File(basedirTargetProject, "build.log").text
-assert content.contains("Archetype tests executed!") :
+assert buildLog.contains("Archetype tests executed!") :
"build.log missing System.out.println from verify.groovy"
// we expect the archetype:integration-test to use the settings.xml from the main Maven build - so downloading should happen
// also from local.central specified in the test-settings.xml
-assert content.contains("local.central (file://") :
+assert buildLog.contains("local.central (file://") :
"test-settings.xml wasn't passed from the main Maven build!: 'local.central (file://' was NOT found in the output! The output was:\n${content}"
def settingsXmlPath = new File("maven-archetype-plugin/target/it/projects/ARCHETYPE-622_main_build_settings/target/archetype-it", "archetype-settings.xml").toPath().toString().replace("\\", "\\\\")
-assert content.matches("(?s).*\\[DEBUG\\] Reading user settings from .*" + settingsXmlPath + ".*") : "test-settings.xml wasn't passed from the main Maven build!: 'Reading user settings from ... archetype-settings.xml' was NOT found in the output! The output was:\n${content}"
+assert buildLog.matches("(?s).*\\[DEBUG\\] Reading user settings from .*" + settingsXmlPath + ".*") : "test-settings.xml wasn't passed from the main Maven build!: 'Reading user settings from ... archetype-settings.xml' was NOT found in the output! The output was: ${buildLog}"
+
+def mainBuildLog = new File( basedir, "../../logs/ARCHETYPE-622_main_build_settings/build.log" ).text
+assert mainBuildLog.contains('[INFO] Invoking post-archetype-generation goals: compile') : 'post-archetype-generation invocation not recorder in log'
+assert !mainBuildLog.contains('[INFO] [INFO]') : 'output of post-archetype-generation should not be present in log'
\ No newline at end of file
diff --git a/maven-archetype-plugin/src/it/projects/build-and-run-its/test-settings.xml b/maven-archetype-plugin/src/it/projects/build-and-run-its/test-settings.xml
index ab9e16e4..cb295a6b 100644
--- a/maven-archetype-plugin/src/it/projects/build-and-run-its/test-settings.xml
+++ b/maven-archetype-plugin/src/it/projects/build-and-run-its/test-settings.xml
@@ -32,9 +32,11 @@ under the License.
<url>@localRepositoryUrl@</url>
<releases>
<enabled>true</enabled>
+ <checksumPolicy>ignore</checksumPolicy>
</releases>
<snapshots>
<enabled>true</enabled>
+ <checksumPolicy>ignore</checksumPolicy>
</snapshots>
</repository>
</repositories>
@@ -44,9 +46,11 @@ under the License.
<url>@localRepositoryUrl@</url>
<releases>
<enabled>true</enabled>
+ <checksumPolicy>ignore</checksumPolicy>
</releases>
<snapshots>
<enabled>true</enabled>
+ <checksumPolicy>ignore</checksumPolicy>
</snapshots>
</pluginRepository>
</pluginRepositories>
diff --git a/maven-archetype-plugin/src/it/projects/build-archetype/test-settings.xml b/maven-archetype-plugin/src/it/projects/build-archetype/test-settings.xml
index ab9e16e4..cb295a6b 100644
--- a/maven-archetype-plugin/src/it/projects/build-archetype/test-settings.xml
+++ b/maven-archetype-plugin/src/it/projects/build-archetype/test-settings.xml
@@ -32,9 +32,11 @@ under the License.
<url>@localRepositoryUrl@</url>
<releases>
<enabled>true</enabled>
+ <checksumPolicy>ignore</checksumPolicy>
</releases>
<snapshots>
<enabled>true</enabled>
+ <checksumPolicy>ignore</checksumPolicy>
</snapshots>
</repository>
</repositories>
@@ -44,9 +46,11 @@ under the License.
<url>@localRepositoryUrl@</url>
<releases>
<enabled>true</enabled>
+ <checksumPolicy>ignore</checksumPolicy>
</releases>
<snapshots>
<enabled>true</enabled>
+ <checksumPolicy>ignore</checksumPolicy>
</snapshots>
</pluginRepository>
</pluginRepositories>
diff --git a/maven-archetype-plugin/src/it/projects/build-ignore-eol/test-settings.xml b/maven-archetype-plugin/src/it/projects/build-ignore-eol/test-settings.xml
index ab9e16e4..cb295a6b 100644
--- a/maven-archetype-plugin/src/it/projects/build-ignore-eol/test-settings.xml
+++ b/maven-archetype-plugin/src/it/projects/build-ignore-eol/test-settings.xml
@@ -32,9 +32,11 @@ under the License.
<url>@localRepositoryUrl@</url>
<releases>
<enabled>true</enabled>
+ <checksumPolicy>ignore</checksumPolicy>
</releases>
<snapshots>
<enabled>true</enabled>
+ <checksumPolicy>ignore</checksumPolicy>
</snapshots>
</repository>
</repositories>
@@ -44,9 +46,11 @@ under the License.
<url>@localRepositoryUrl@</url>
<releases>
<enabled>true</enabled>
+ <checksumPolicy>ignore</checksumPolicy>
</releases>
<snapshots>
<enabled>true</enabled>
+ <checksumPolicy>ignore</checksumPolicy>
</snapshots>
</pluginRepository>
</pluginRepositories>
diff --git a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/FileLogger.java b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/FileLogger.java
index 18332eff..a02ec3e0 100644
--- a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/FileLogger.java
+++ b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/FileLogger.java
@@ -40,18 +40,14 @@ package org.apache.maven.archetype.mojos;
import java.io.File;
import java.io.IOException;
+import org.apache.maven.plugin.logging.Log;
import org.apache.maven.shared.invoker.InvocationOutputHandler;
-import org.apache.maven.shared.scriptinterpreter.ExecutionLogger;
-import org.apache.maven.shared.scriptinterpreter.FileLoggerMirrorHandler;
-import org.slf4j.Logger;
/**
* @since 2.2
*/
-class FileLogger extends org.apache.maven.shared.scriptinterpreter.FileLogger
- implements InvocationOutputHandler, ExecutionLogger, FileLoggerMirrorHandler {
+class FileLogger extends org.apache.maven.shared.scriptinterpreter.FileLogger implements InvocationOutputHandler {
- Logger logger;
/**
* Creates a new logger that writes to the specified file.
*
@@ -69,13 +65,7 @@ class FileLogger extends org.apache.maven.shared.scriptinterpreter.FileLogger
* @param log The mojo logger to additionally output messages to, may be <code>null</code> if not used.
* @throws java.io.IOException If the output file could not be created.
*/
- FileLogger(File outputFile, Logger log) throws IOException {
- super(outputFile);
- logger = log;
- }
-
- @Override
- public void consumeOutput(String message) {
- logger.info(message);
+ FileLogger(File outputFile, Log log) throws IOException {
+ super(outputFile, log::info);
}
}
diff --git a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/IntegrationTestMojo.java b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/IntegrationTestMojo.java
index 4543ed4c..8b2de572 100644
--- a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/IntegrationTestMojo.java
+++ b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/IntegrationTestMojo.java
@@ -69,7 +69,6 @@ import org.codehaus.plexus.util.StringUtils;
import org.codehaus.plexus.util.introspection.ReflectionValueExtractor;
import org.codehaus.plexus.util.xml.XmlStreamReader;
import org.codehaus.plexus.util.xml.XmlStreamWriter;
-import org.slf4j.LoggerFactory;
/**
* <p>Execute the archetype integration tests, consisting in generating projects from the current archetype and optionally
@@ -588,7 +587,6 @@ public class IntegrationTestMojo extends AbstractMojo {
if (logger != null) {
request.setErrorHandler(logger);
-
request.setOutputHandler(logger);
}
@@ -659,7 +657,7 @@ public class IntegrationTestMojo extends AbstractMojo {
File outputLog = new File(basedir, "build.log");
if (streamLogs) {
- logger = new FileLogger(outputLog, LoggerFactory.getLogger(getClass()));
+ logger = new FileLogger(outputLog, getLog());
} else {
logger = new FileLogger(outputLog);
}