Skip to content

Commit f1c4809

Browse files
author
Fred Simon
committed
First modif of per project maven and ivy descriptor flag
1 parent a95644f commit f1c4809

File tree

2 files changed

+30
-30
lines changed

2 files changed

+30
-30
lines changed

Diff for: .gitignore

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
.gradle
22
*.iml
3-
build
4-
out
3+
/build
4+
/*/build
5+
/*/out
56
build-info.ipr
67
build-info.iws

Diff for: build-info-extractor-gradle/src/main/groovy/org/jfrog/build/extractor/gradle/BuildInfoRecorderTask.java

+27-28
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,15 @@
1616

1717
package org.jfrog.build.extractor.gradle;
1818

19-
import com.google.common.collect.*;
19+
import com.google.common.collect.ArrayListMultimap;
20+
import com.google.common.collect.Maps;
21+
import com.google.common.collect.Multimap;
22+
import com.google.common.collect.Sets;
2023
import groovy.lang.Closure;
2124
import org.apache.commons.lang.StringUtils;
2225
import org.apache.ivy.core.IvyPatternHelper;
2326
import org.apache.tools.ant.util.FileUtils;
2427
import org.gradle.api.DefaultTask;
25-
import org.gradle.api.GradleException;
2628
import org.gradle.api.Project;
2729
import org.gradle.api.Task;
2830
import org.gradle.api.artifacts.Configuration;
@@ -76,15 +78,11 @@ public class BuildInfoRecorderTask extends DefaultTask {
7678
@Input
7779
private final Multimap<String, CharSequence> properties = ArrayListMultimap.create();
7880

81+
private final Map<String, Boolean> flags = Maps.newHashMap();
82+
7983
private boolean lastInGraph = false;
8084

8185
private Map<String, String> propsToAdd;
82-
private static final ImmutableMap<String, String> PROP_TRANSLATE = ImmutableMap.of(
83-
PUBLISH_IVY, ClientConfigurationFields.IVY,
84-
PUBLISH_POM, ClientConfigurationFields.MAVEN,
85-
PUBLISH_ARTIFACTS, ClientConfigurationFields.PUBLISH_ARTIFACTS,
86-
PUBLISH_BUILD_INFO, ClientConfigurationFields.PUBLISH_BUILD_INFO
87-
);
8886

8987
@Input
9088
@Optional
@@ -93,7 +91,7 @@ public Boolean getPublishBuildInfo() {
9391
}
9492

9593
public void setPublishBuildInfo(Boolean publishBuildInfo) {
96-
validateFlag(PUBLISH_BUILD_INFO, publishBuildInfo);
94+
setFlag(PUBLISH_BUILD_INFO, publishBuildInfo);
9795
}
9896

9997
@Input
@@ -103,7 +101,7 @@ public Boolean getPublishArtifacts() {
103101
}
104102

105103
public void setPublishArtifacts(Boolean publishArtifacts) {
106-
validateFlag(PUBLISH_ARTIFACTS, publishArtifacts);
104+
setFlag(PUBLISH_ARTIFACTS, publishArtifacts);
107105
}
108106

109107
@Input
@@ -113,7 +111,7 @@ public Boolean getPublishIvy() {
113111
}
114112

115113
public void setPublishIvy(Boolean publishIvy) {
116-
validateFlag(PUBLISH_IVY, publishIvy);
114+
setFlag(PUBLISH_IVY, publishIvy);
117115
}
118116

119117
@Input
@@ -123,26 +121,15 @@ public Boolean getPublishPom() {
123121
}
124122

125123
public void setPublishPom(Boolean publishPom) {
126-
validateFlag(PUBLISH_POM, publishPom);
124+
setFlag(PUBLISH_POM, publishPom);
127125
}
128126

129127
private Boolean getFlag(String flagName) {
130-
String publisherPropKey = PROP_TRANSLATE.get(flagName);
131-
ArtifactoryPluginConvention convention = GradlePluginUtils.getArtifactoryConvention(getProject());
132-
ArtifactoryClientConfiguration.PublisherHandler publisherHandler = convention.getConfiguration().publisher;
133-
return publisherHandler.getBooleanValue(publisherPropKey);
128+
return flags.get(flagName);
134129
}
135130

136-
private void validateFlag(String flagName, Boolean newValue) {
137-
String publisherPropKey = PROP_TRANSLATE.get(flagName);
138-
ArtifactoryPluginConvention convention = GradlePluginUtils.getArtifactoryConvention(getProject());
139-
ArtifactoryClientConfiguration.PublisherHandler publisherHandler = convention.getConfiguration().publisher;
140-
Boolean currentValue = publisherHandler.getBooleanValue(publisherPropKey);
141-
if (newValue != null && currentValue != null && !currentValue.equals(newValue)) {
142-
throw new GradleException("Support for build info recording settings on per project basis, not supported yet!\n" +
143-
"Task " + getPath() + " validation for " + flagName + " flag failed.");
144-
}
145-
publisherHandler.setBooleanValue(publisherPropKey, newValue);
131+
private void setFlag(String flagName, Boolean newValue) {
132+
flags.put(flagName, newValue);
146133
}
147134

148135
public void setLastInGraph(boolean lastInGraph) {
@@ -289,7 +276,7 @@ public void projectsEvaluated() {
289276

290277
// Set ivy descriptor parameters
291278
TaskContainer tasks = project.getTasks();
292-
if (acc.publisher.isIvy()) {
279+
if (this.isPublishIvy(acc.publisher.isIvy())) {
293280
Configuration archiveConf = project.getConfigurations().findByName(Dependency.ARCHIVES_CONFIGURATION);
294281
if (ivyDescriptor == null && archiveConf != null) {
295282
// Flag to publish the Ivy XML file, but no ivy descriptor file inputted, activate default upload${configuration}.
@@ -309,7 +296,7 @@ public void projectsEvaluated() {
309296
}
310297

311298
// Set maven pom parameters
312-
if (acc.publisher.isMaven()) {
299+
if (isPublishMaven(acc)) {
313300
if (mavenDescriptor == null) {
314301
// Flag to publish the Maven POM, but no pom file inputted, activate default Maven install.
315302
// if the project doesn't have the maven install task, throw an exception
@@ -329,6 +316,18 @@ public void projectsEvaluated() {
329316
}
330317
}
331318

319+
private Boolean isPublishMaven(ArtifactoryClientConfiguration acc) {
320+
if (getPublishPom() == null)
321+
return acc.publisher.isMaven();
322+
return getPublishPom();
323+
}
324+
325+
private boolean isPublishIvy(Boolean defaultValue) {
326+
if (getPublishIvy() == null)
327+
return defaultValue;
328+
return getPublishIvy();
329+
}
330+
332331
private ArtifactoryClientConfiguration getArtifactoryClientConfiguration(Project project) {
333332
return GradlePluginUtils.getArtifactoryConvention(project).getConfiguration();
334333
}

0 commit comments

Comments
 (0)