Skip to content

Commit

Permalink
Add getProductDependenciesFile() to CompileRecommendedProductDependen…
Browse files Browse the repository at this point in the history
…cies (#1762)

Add getProductDependenciesFile() to CompileRecommendedProductDependencies
  • Loading branch information
crogoz authored Jan 28, 2025
1 parent 300395e commit 5c8b79d
Show file tree
Hide file tree
Showing 3 changed files with 52 additions and 7 deletions.
5 changes: 5 additions & 0 deletions changelog/@unreleased/pr-1762.v2.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
type: fix
fix:
description: Add getProductDependenciesFile() to CompileRecommendedProductDependencies
links:
- https://github.com/palantir/sls-packaging/pull/1762
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,12 @@
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import org.gradle.api.DefaultTask;
import org.gradle.api.file.DirectoryProperty;
import org.gradle.api.provider.SetProperty;
import org.gradle.api.tasks.Input;
import org.gradle.api.tasks.Internal;
import org.gradle.api.tasks.OutputDirectory;
import org.gradle.api.tasks.TaskAction;

Expand All @@ -33,20 +35,25 @@ public abstract class CompileRecommendedProductDependencies extends DefaultTask
@Input
abstract SetProperty<ProductDependency> getRecommendedProductDependencies();

/**
* Ensure that the sourcesJar task in {@link RecommendedProductDependenciesPlugin} includes {@code getProductDependenciesFile()}.
*/
@OutputDirectory
abstract DirectoryProperty getOutputDir();

@TaskAction
final void action() throws IOException {
File outputFile = getOutputDir()
.get()
@Internal
public final File getProductDependenciesFile() {
return getOutputDir()
.file(RecommendedProductDependenciesPlugin.RESOURCE_PATH)
.get()
.getAsFile();
}

outputFile.getParentFile().mkdirs();

@TaskAction
final void action() throws IOException {
Files.createDirectories(getProductDependenciesFile().toPath().getParent());
MAPPER.writeValue(
outputFile,
getProductDependenciesFile(),
RecommendedProductDependencies.builder()
.addAllRecommendedProductDependencies(
getRecommendedProductDependencies().get())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,39 @@ class RecommendedProductDependenciesPluginIntegrationSpec extends IntegrationSpe
dep.optional
}

def 'sourcesJar runs compileRecommendedProductDependencies'() {
//language=groovy
buildFile << """
recommendedProductDependencies {
productDependency {
productGroup = 'group'
productName = 'name'
minimumVersion = '1.0.0'
maximumVersion = '1.x.x'
recommendedVersion = '1.2.3'
}
}
java {
withSourcesJar()
}
""".stripIndent()

file('src/main/java/Main.java') << '''
public class Main {
public static void main(String[] args) { }
}
'''.stripIndent(true)

when:
def result = runTasksSuccessfully(':sourcesJar')

then:
result.wasExecuted("compileRecommendedProductDependencies")
fileExists("build/libs/${moduleName}-sources.jar")

}

def 'Jar includes recommended product dependencies'() {
buildFile << """
recommendedProductDependencies {
Expand Down

0 comments on commit 5c8b79d

Please sign in to comment.