Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
[JENKINS-50709] Missing attached artifacts in pom typed project
  • Loading branch information
bingshiao committed Apr 10, 2018
1 parent 1913c23 commit b269fcc
Show file tree
Hide file tree
Showing 3 changed files with 234 additions and 7 deletions.
Expand Up @@ -492,12 +492,7 @@ public static List<MavenArtifact> listGeneratedArtifacts(Element mavenSpyLogs, b

Element artifactElt = XmlUtils.getUniqueChildElement(projectSucceededElt, "artifact");
MavenArtifact mavenArtifact = XmlUtils.newMavenArtifact(artifactElt);
if ("pom".equals(mavenArtifact.type)) {
// NO file is generated by Maven for pom projects, skip
continue;
}

{
if (!"pom".equals(mavenArtifact.type)) {
Element fileElt = XmlUtils.getUniqueChildElementOrNull(artifactElt, "file");
if (fileElt == null || fileElt.getTextContent() == null || fileElt.getTextContent().isEmpty()) {
if (LOGGER.isLoggable(Level.FINER)) {
Expand All @@ -514,8 +509,9 @@ public static List<MavenArtifact> listGeneratedArtifacts(Element mavenSpyLogs, b
mavenArtifact.repositoryUrl = XmlUtils.getUniqueChildElement(artifactDeployedEvent, "repository").getAttribute("url");
}
}
result.add(mavenArtifact);
}
result.add(mavenArtifact);

if (includeAttachedArtifacts) {
Element attachedArtifactsParentElt = XmlUtils.getUniqueChildElement(projectSucceededElt, "attachedArtifacts");
List<Element> attachedArtifactsElts = XmlUtils.getChildrenElements(attachedArtifactsParentElt, "artifact");
Expand Down
Expand Up @@ -326,4 +326,29 @@ public void test_listGeneratedArtifacts_including_generated_artifacts() throws E
}
}
}

@Test
public void test_listGeneratedArtifacts_includeAttachedArtifacts() throws Exception {
InputStream in = Thread.currentThread().getContextClassLoader()
.getResourceAsStream("org/jenkinsci/plugins/pipeline/maven/maven-spy-include-attached-artifacts.log");
in.getClass(); // check non null
Element mavenSpyLogs = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(in).getDocumentElement();
List<MavenArtifact> generatedArtifacts = XmlUtils.listGeneratedArtifacts(mavenSpyLogs, true);
System.out.println(generatedArtifacts);
Assert.assertThat(generatedArtifacts.size(), Matchers.is(2)); // pom artifact plus 1 attachment

for (MavenArtifact mavenArtifact : generatedArtifacts) {
Assert.assertThat(mavenArtifact.groupId, Matchers.is("com.example"));
Assert.assertThat(mavenArtifact.artifactId, Matchers.is("my-jar"));
if ("pom".equals(mavenArtifact.type)) {
Assert.assertThat(mavenArtifact.extension, Matchers.is("pom"));
Assert.assertThat(mavenArtifact.classifier, Matchers.isEmptyOrNullString());
} else if ("ova".equals(mavenArtifact.type)) {
Assert.assertThat(mavenArtifact.extension, Matchers.is("ova"));
Assert.assertThat(mavenArtifact.classifier, Matchers.isEmptyOrNullString());
} else {
throw new AssertionFailedError("Unsupported type for " + mavenArtifact);
}
}
}
}
@@ -0,0 +1,206 @@
<mavenExecution _time="2018-04-10 00:02:44.038">
<context _time="2018-04-10 00:02:44.044">
<systemProperties/>
<versionProperties/>
<workingDirectory/>
<userProperties/>
<plexus/>
</context>
<DefaultSettingsBuildingRequest class="org.apache.maven.settings.building.DefaultSettingsBuildingRequest" _time="2018-04-10 00:02:44.148">
<userSettingsFile>/Users/Shared/Jenkins/.m2/settings.xml</userSettingsFile>
<globalSettings>/Users/Shared/Jenkins/Home/tools/hudson.tasks.Maven_MavenInstallation/maven-3.5.3/conf/settings.xml</globalSettings>
</DefaultSettingsBuildingRequest>
<MavenExecutionRequest class="org.apache.maven.execution.DefaultMavenExecutionRequest" _time="2018-04-10 00:02:44.168">
<pom>/Users/Shared/Jenkins/Home/workspace/my-jar/pom.xml</pom>
<globalSettingsFile>/Users/Shared/Jenkins/Home/tools/hudson.tasks.Maven_MavenInstallation/maven-3.5.3/conf/settings.xml</globalSettingsFile>
<userSettingsFile>/Users/Shared/Jenkins/.m2/settings.xml</userSettingsFile>
<baseDirectory>/Users/Shared/Jenkins/Home/workspace/my-jar</baseDirectory>
</MavenExecutionRequest>
<ExecutionEvent type="ProjectDiscoveryStarted" class="org.apache.maven.lifecycle.internal.DefaultExecutionEvent" _time="2018-04-10 00:02:44.191">
<project/>
<no-execution-found/>
</ExecutionEvent>
<ExecutionEvent type="SessionStarted" class="org.apache.maven.lifecycle.internal.DefaultExecutionEvent" _time="2018-04-10 00:02:44.248">
<project baseDir="/Users/Shared/Jenkins/Home/workspace/my-jar" file="/Users/Shared/Jenkins/Home/workspace/my-jar/pom.xml" groupId="com.example" name="my-jar" artifactId="my-jar" version="0.5-SNAPSHOT">
<build sourceDirectory="/Users/Shared/Jenkins/Home/workspace/my-jar/src/main/java" directory="/Users/Shared/Jenkins/Home/workspace/my-jar/target"/>
</project>
<no-execution-found/>
</ExecutionEvent>
<ExecutionEvent type="ProjectStarted" class="org.apache.maven.lifecycle.internal.DefaultExecutionEvent" _time="2018-04-10 00:02:44.254">
<project baseDir="/Users/Shared/Jenkins/Home/workspace/my-jar" file="/Users/Shared/Jenkins/Home/workspace/my-jar/pom.xml" groupId="com.example" name="my-jar" artifactId="my-jar" version="0.5-SNAPSHOT">
<build sourceDirectory="/Users/Shared/Jenkins/Home/workspace/my-jar/src/main/java" directory="/Users/Shared/Jenkins/Home/workspace/my-jar/target"/>
</project>
<no-execution-found/>
</ExecutionEvent>
<ExecutionEvent type="MojoStarted" class="org.apache.maven.lifecycle.internal.DefaultExecutionEvent" _time="2018-04-10 00:02:44.371">
<project baseDir="/Users/Shared/Jenkins/Home/workspace/my-jar" file="/Users/Shared/Jenkins/Home/workspace/my-jar/pom.xml" groupId="com.example" name="my-jar" artifactId="my-jar" version="0.5-SNAPSHOT">
<build sourceDirectory="/Users/Shared/Jenkins/Home/workspace/my-jar/src/main/java" directory="/Users/Shared/Jenkins/Home/workspace/my-jar/target"/>
</project>
<plugin executionId="default-clean" goal="clean" lifecyclePhase="clean" groupId="org.apache.maven.plugins" artifactId="maven-clean-plugin" version="2.5">
<directory>${project.build.directory}</directory>
<excludeDefaultDirectories>${clean.excludeDefaultDirectories}</excludeDefaultDirectories>
<failOnError>${maven.clean.failOnError}</failOnError>
<followSymLinks>${clean.followSymLinks}</followSymLinks>
<outputDirectory>${project.build.outputDirectory}</outputDirectory>
<reportDirectory>${project.reporting.outputDirectory}</reportDirectory>
<retryOnError>${maven.clean.retryOnError}</retryOnError>
<skip>${clean.skip}</skip>
<testOutputDirectory>${project.build.testOutputDirectory}</testOutputDirectory>
<verbose>${clean.verbose}</verbose>
</plugin>
</ExecutionEvent>
<ExecutionEvent type="MojoSucceeded" class="org.apache.maven.lifecycle.internal.DefaultExecutionEvent" _time="2018-04-10 00:02:44.462">
<project baseDir="/Users/Shared/Jenkins/Home/workspace/my-jar" file="/Users/Shared/Jenkins/Home/workspace/my-jar/pom.xml" groupId="com.example" name="my-jar" artifactId="my-jar" version="0.5-SNAPSHOT">
<build sourceDirectory="/Users/Shared/Jenkins/Home/workspace/my-jar/src/main/java" directory="/Users/Shared/Jenkins/Home/workspace/my-jar/target"/>
</project>
<plugin executionId="default-clean" goal="clean" lifecyclePhase="clean" groupId="org.apache.maven.plugins" artifactId="maven-clean-plugin" version="2.5">
<directory>${project.build.directory}</directory>
<excludeDefaultDirectories>${clean.excludeDefaultDirectories}</excludeDefaultDirectories>
<failOnError>${maven.clean.failOnError}</failOnError>
<followSymLinks>${clean.followSymLinks}</followSymLinks>
<outputDirectory>${project.build.outputDirectory}</outputDirectory>
<reportDirectory>${project.reporting.outputDirectory}</reportDirectory>
<retryOnError>${maven.clean.retryOnError}</retryOnError>
<skip>${clean.skip}</skip>
<testOutputDirectory>${project.build.testOutputDirectory}</testOutputDirectory>
<verbose>${clean.verbose}</verbose>
</plugin>
</ExecutionEvent>
<ExecutionEvent type="MojoStarted" class="org.apache.maven.lifecycle.internal.DefaultExecutionEvent" _time="2018-04-10 00:02:44.462">
<project baseDir="/Users/Shared/Jenkins/Home/workspace/my-jar" file="/Users/Shared/Jenkins/Home/workspace/my-jar/pom.xml" groupId="com.example" name="my-jar" artifactId="my-jar" version="0.5-SNAPSHOT">
<build sourceDirectory="/Users/Shared/Jenkins/Home/workspace/my-jar/src/main/java" directory="/Users/Shared/Jenkins/Home/workspace/my-jar/target"/>
</project>
<plugin executionId="default" goal="attach-artifact" lifecyclePhase="package" groupId="org.codehaus.mojo" artifactId="build-helper-maven-plugin" version="3.0.0">
<artifacts>
<artifact>
<file>/Users/Shared/Jenkins/Home/workspace/my-jar/my-jar-0.5-SNAPSHOT.ova</file>
<type>ova</type>
</artifact>
</artifacts>
<basedir>${basedir}</basedir>
<mavenSession>${session}</mavenSession>
<project>${project}</project>
<runOnlyAtExecutionRoot>${buildhelper.runOnlyAtExecutionRoot}</runOnlyAtExecutionRoot>
<skipAttach>${buildhelper.skipAttach}</skipAttach>
</plugin>
</ExecutionEvent>
<ExecutionEvent type="MojoSucceeded" class="org.apache.maven.lifecycle.internal.DefaultExecutionEvent" _time="2018-04-10 00:02:44.703">
<project baseDir="/Users/Shared/Jenkins/Home/workspace/my-jar" file="/Users/Shared/Jenkins/Home/workspace/my-jar/pom.xml" groupId="com.example" name="my-jar" artifactId="my-jar" version="0.5-SNAPSHOT">
<build sourceDirectory="/Users/Shared/Jenkins/Home/workspace/my-jar/src/main/java" directory="/Users/Shared/Jenkins/Home/workspace/my-jar/target"/>
</project>
<plugin executionId="default" goal="attach-artifact" lifecyclePhase="package" groupId="org.codehaus.mojo" artifactId="build-helper-maven-plugin" version="3.0.0">
<artifacts>
<artifact>
<file>/Users/Shared/Jenkins/Home/workspace/my-jar/my-jar-0.5-SNAPSHOT.ova</file>
<type>ova</type>
</artifact>
</artifacts>
<basedir>${basedir}</basedir>
<mavenSession>${session}</mavenSession>
<project>${project}</project>
<runOnlyAtExecutionRoot>${buildhelper.runOnlyAtExecutionRoot}</runOnlyAtExecutionRoot>
<skipAttach>${buildhelper.skipAttach}</skipAttach>
</plugin>
</ExecutionEvent>
<ExecutionEvent type="MojoStarted" class="org.apache.maven.lifecycle.internal.DefaultExecutionEvent" _time="2018-04-10 00:02:44.704">
<project baseDir="/Users/Shared/Jenkins/Home/workspace/my-jar" file="/Users/Shared/Jenkins/Home/workspace/my-jar/pom.xml" groupId="com.example" name="my-jar" artifactId="my-jar" version="0.5-SNAPSHOT">
<build sourceDirectory="/Users/Shared/Jenkins/Home/workspace/my-jar/src/main/java" directory="/Users/Shared/Jenkins/Home/workspace/my-jar/target"/>
</project>
<plugin executionId="default-install" goal="install" lifecyclePhase="install" groupId="org.apache.maven.plugins" artifactId="maven-install-plugin" version="2.4">
<artifact>${project.artifact}</artifact>
<attachedArtifacts>${project.attachedArtifacts}</attachedArtifacts>
<createChecksum>${createChecksum}</createChecksum>
<localRepository>${localRepository}</localRepository>
<packaging>${project.packaging}</packaging>
<pomFile>${project.file}</pomFile>
<skip>${maven.install.skip}</skip>
<updateReleaseInfo>${updateReleaseInfo}</updateReleaseInfo>
</plugin>
</ExecutionEvent>
<ExecutionEvent type="MojoSucceeded" class="org.apache.maven.lifecycle.internal.DefaultExecutionEvent" _time="2018-04-10 00:02:44.808">
<project baseDir="/Users/Shared/Jenkins/Home/workspace/my-jar" file="/Users/Shared/Jenkins/Home/workspace/my-jar/pom.xml" groupId="com.example" name="my-jar" artifactId="my-jar" version="0.5-SNAPSHOT">
<build sourceDirectory="/Users/Shared/Jenkins/Home/workspace/my-jar/src/main/java" directory="/Users/Shared/Jenkins/Home/workspace/my-jar/target"/>
</project>
<plugin executionId="default-install" goal="install" lifecyclePhase="install" groupId="org.apache.maven.plugins" artifactId="maven-install-plugin" version="2.4">
<artifact>${project.artifact}</artifact>
<attachedArtifacts>${project.attachedArtifacts}</attachedArtifacts>
<createChecksum>${createChecksum}</createChecksum>
<localRepository>${localRepository}</localRepository>
<packaging>${project.packaging}</packaging>
<pomFile>${project.file}</pomFile>
<skip>${maven.install.skip}</skip>
<updateReleaseInfo>${updateReleaseInfo}</updateReleaseInfo>
</plugin>
</ExecutionEvent>
<ExecutionEvent type="MojoStarted" class="org.apache.maven.lifecycle.internal.DefaultExecutionEvent" _time="2018-04-10 00:02:44.808">
<project baseDir="/Users/Shared/Jenkins/Home/workspace/my-jar" file="/Users/Shared/Jenkins/Home/workspace/my-jar/pom.xml" groupId="com.example" name="my-jar" artifactId="my-jar" version="0.5-SNAPSHOT">
<build sourceDirectory="/Users/Shared/Jenkins/Home/workspace/my-jar/src/main/java" directory="/Users/Shared/Jenkins/Home/workspace/my-jar/target"/>
</project>
<plugin executionId="default-deploy" goal="deploy" lifecyclePhase="deploy" groupId="org.apache.maven.plugins" artifactId="maven-deploy-plugin" version="2.7">
<altDeploymentRepository>${altDeploymentRepository}</altDeploymentRepository>
<artifact>${project.artifact}</artifact>
<attachedArtifacts>${project.attachedArtifacts}</attachedArtifacts>
<localRepository>${localRepository}</localRepository>
<offline>${settings.offline}</offline>
<packaging>${project.packaging}</packaging>
<pomFile>${project.file}</pomFile>
<project>${project}</project>
<retryFailedDeploymentCount>${retryFailedDeploymentCount}</retryFailedDeploymentCount>
<skip>${maven.deploy.skip}</skip>
<updateReleaseInfo>${updateReleaseInfo}</updateReleaseInfo>
</plugin>
</ExecutionEvent>
<RepositoryEvent type="ARTIFACT_DEPLOYED" class="org.eclipse.aether.RepositoryEvent" _time="2018-04-10 00:02:44.912">
<artifact extension="pom" file="/Users/Shared/Jenkins/Home/workspace/my-jar/pom.xml" baseVersion="0.5-SNAPSHOT" groupId="com.example" classifier="" artifactId="my-jar" id="com.example:my-jar:pom:0.5-20180410.070244-14" version="0.5-20180410.070244-14" snapshot="true"/>
<repository layout="default" id="central" url="file://.repository"/>
</RepositoryEvent>
<RepositoryEvent type="ARTIFACT_DEPLOYED" class="org.eclipse.aether.RepositoryEvent" _time="2018-04-10 00:02:44.981">
<artifact extension="ova" file="/Users/Shared/Jenkins/Home/workspace/my-jar/my-jar-0.5-SNAPSHOT.ova" baseVersion="0.5-SNAPSHOT" groupId="com.example" classifier="" artifactId="my-jar" id="com.example:my-jar:ova:0.5-20180410.070244-14" version="0.5-20180410.070244-14" snapshot="true"/>
<repository layout="default" id="central" url="file://.repository"/>
</RepositoryEvent>
<ExecutionEvent type="MojoSucceeded" class="org.apache.maven.lifecycle.internal.DefaultExecutionEvent" _time="2018-04-10 00:02:44.993">
<project baseDir="/Users/Shared/Jenkins/Home/workspace/my-jar" file="/Users/Shared/Jenkins/Home/workspace/my-jar/pom.xml" groupId="com.example" name="my-jar" artifactId="my-jar" version="0.5-SNAPSHOT">
<build sourceDirectory="/Users/Shared/Jenkins/Home/workspace/my-jar/src/main/java" directory="/Users/Shared/Jenkins/Home/workspace/my-jar/target"/>
</project>
<plugin executionId="default-deploy" goal="deploy" lifecyclePhase="deploy" groupId="org.apache.maven.plugins" artifactId="maven-deploy-plugin" version="2.7">
<altDeploymentRepository>${altDeploymentRepository}</altDeploymentRepository>
<artifact>${project.artifact}</artifact>
<attachedArtifacts>${project.attachedArtifacts}</attachedArtifacts>
<localRepository>${localRepository}</localRepository>
<offline>${settings.offline}</offline>
<packaging>${project.packaging}</packaging>
<pomFile>${project.file}</pomFile>
<project>${project}</project>
<retryFailedDeploymentCount>${retryFailedDeploymentCount}</retryFailedDeploymentCount>
<skip>${maven.deploy.skip}</skip>
<updateReleaseInfo>${updateReleaseInfo}</updateReleaseInfo>
</plugin>
<artifactRepository>
<id>nexus.beescloud.com</id>
<url>https://nexus.beescloud.com/content/repositories/snapshots/</url>
</artifactRepository>
</ExecutionEvent>
<ExecutionEvent type="ProjectSucceeded" class="org.apache.maven.lifecycle.internal.DefaultExecutionEvent" _time="2018-04-10 00:02:44.993">
<project baseDir="/Users/Shared/Jenkins/Home/workspace/my-jar" file="/Users/Shared/Jenkins/Home/workspace/my-jar/pom.xml" groupId="com.example" name="my-jar" artifactId="my-jar" version="0.5-SNAPSHOT">
<build sourceDirectory="/Users/Shared/Jenkins/Home/workspace/my-jar/src/main/java" directory="/Users/Shared/Jenkins/Home/workspace/my-jar/target"/>
</project>
<no-execution-found/>
<artifact extension="pom" baseVersion="0.5-SNAPSHOT" groupId="com.example" artifactId="my-jar" id="com.example:my-jar:pom:0.5-SNAPSHOT" type="pom" version="0.5-20180410.070244-14" snapshot="true">
<file/>
</artifact>
<attachedArtifacts>
<artifact extension="ova" baseVersion="0.5-SNAPSHOT" groupId="com.example" artifactId="my-jar" id="com.example:my-jar:ova:0.5-SNAPSHOT" type="ova" version="0.5-20180410.070244-14" snapshot="true">
<file>/Users/Shared/Jenkins/Home/workspace/my-jar/my-jar-0.5-SNAPSHOT.ova</file>
</artifact>
</attachedArtifacts>
</ExecutionEvent>
<MavenExecutionResult class="org.apache.maven.execution.DefaultMavenExecutionResult" _time="2018-04-10 00:02:44.995">
<buildSummary baseDir="/Users/Shared/Jenkins/Home/workspace/my-jar" file="/Users/Shared/Jenkins/Home/workspace/my-jar/pom.xml" groupId="com.example" name="my-jar" artifactId="my-jar" time="740" version="0.5-SNAPSHOT" class="org.apache.maven.execution.BuildSuccess">
<build sourceDirectory="/Users/Shared/Jenkins/Home/workspace/my-jar/src/main/java" directory="/Users/Shared/Jenkins/Home/workspace/my-jar/target"/>
</buildSummary>
</MavenExecutionResult>
<!-- 2018-04-10 00:02:44.995 - close: -->
<!-- ignored:[org.apache.maven.settings.building.DefaultSettingsBuildingResult], -->
<!-- blackListed: [] -->

</mavenExecution>

0 comments on commit b269fcc

Please sign in to comment.