Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[program-gen] Emit invoke options and invoke output options in generated programs #1586

Merged
merged 12 commits into from
Jan 14, 2025
Merged
1 change: 1 addition & 0 deletions CHANGELOG_PENDING.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,6 @@
- Avoid calling invokes with dependencies on unknown resources
- Fix generation of untyped maps and array literals
- Implement `InvokeOptionsBuilder` and `InvokeOutputOptionsBuilder`
- Emit invoke options and invoke output options in generated programs

### Bug Fixes
1 change: 0 additions & 1 deletion pkg/cmd/pulumi-language-java/language_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,6 @@ func TestLanguage(t *testing.T) {
// skip them with an informative message until they are fixed.
var expectedFailures = map[string]string{
"l1-output-string": "#1562 Large string literals are not generated correctly",
"l2-invoke-options": "#1563 Invoke argument and result handling",
"l2-invoke-options-depends-on": "#1563 Invoke argument and result handling",
"l2-invoke-secrets": "#1563 Invoke argument and result handling",
"l2-map-keys": "#1561 Map literals are not generated correctly",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ public static void stack(Context ctx) {
.value(SimpleinvokeFunctions.secretInvoke(SecretInvokeArgs.builder()
.value("hello")
.secretResponse(first.value())
.build()).applyValue(invoke -> invoke.secret()))
.build()).applyValue(_invoke -> _invoke.secret()))
.build());

}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
name: l2-invoke-options
runtime: java
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.pulumi</groupId>
<artifactId>l2-invoke-options</artifactId>
<version>1.0-SNAPSHOT</version>

<properties>
<encoding>UTF-8</encoding>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<maven.compiler.release>11</maven.compiler.release>
<mainClass>generated_program.App</mainClass>
<mainArgs/>
</properties>

<repositories>
<repository>
<id>repository-0</id>
<url>REPOSITORY</url>
</repository>
</repositories>

<dependencies>
<dependency>
<groupId>com.pulumi</groupId>
<artifactId>pulumi</artifactId>
<version>CORE.VERSION</version>
</dependency>
<dependency>
<groupId>com.pulumi</groupId>
<artifactId>simple-invoke</artifactId>
<version>10.0.0</version>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.2.2</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>${mainClass}</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.4.2</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>${mainClass}</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-my-jar-with-dependencies</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<mainClass>${mainClass}</mainClass>
<commandlineArgs>${mainArgs}</commandlineArgs>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-wrapper-plugin</artifactId>
<version>3.1.1</version>
<configuration>
<mavenVersion>3.8.5</mavenVersion>
</configuration>
</plugin>
</plugins>
</build>
</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.simpleinvoke.Provider;
import com.pulumi.simpleinvoke.SimpleinvokeFunctions;
import com.pulumi.simpleinvoke.inputs.MyInvokeArgs;
import com.pulumi.deployment.InvokeOptions;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}

public static void stack(Context ctx) {
var explicitProvider = new Provider("explicitProvider");

final var data = SimpleinvokeFunctions.myInvoke(MyInvokeArgs.builder()
.value("hello")
.build(), InvokeOptions.builder()
.provider(explicitProvider)
.parent(explicitProvider)
.version("10.0.0")
.pluginDownloadURL("https://example.com/github/example")
.build());

ctx.export("hello", data.applyValue(_data -> _data.result()));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@ public static void main(String[] args) {
public static void stack(Context ctx) {
ctx.export("hello", SimpleinvokeFunctions.myInvoke(MyInvokeArgs.builder()
.value("hello")
.build()).applyValue(invoke -> invoke.result()));
.build()).applyValue(_invoke -> _invoke.result()));
ctx.export("goodbye", SimpleinvokeFunctions.myInvoke(MyInvokeArgs.builder()
.value("goodbye")
.build()).applyValue(invoke -> invoke.result()));
.build()).applyValue(_invoke -> _invoke.result()));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ public static void stack(Context ctx) {

ctx.export("outputInput", SimpleinvokeFunctions.myInvoke(MyInvokeArgs.builder()
.value(res.text())
.build()).applyValue(invoke -> invoke.result()));
.build()).applyValue(_invoke -> _invoke.result()));
ctx.export("unit", SimpleinvokeFunctions.unit(UnitArgs.builder()
.build()).applyValue(invoke -> invoke.result()));
.build()).applyValue(_invoke -> _invoke.result()));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@
import com.pulumi.assetarchive.AssetResourceArgs;
import com.pulumi.assetarchive.ArchiveResource;
import com.pulumi.assetarchive.ArchiveResourceArgs;
import com.pulumi.asset.FileAsset;
import com.pulumi.asset.AssetArchive;
import com.pulumi.asset.FileArchive;
import com.pulumi.asset.StringAsset;
import com.pulumi.asset.FileAsset;
import com.pulumi.asset.RemoteAsset;
import com.pulumi.asset.AssetArchive;
import com.pulumi.asset.StringAsset;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
Expand Down
Loading
Loading