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

Java 1.0 Blog Post #13953

Merged
merged 35 commits into from
Feb 11, 2025
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
b34df70
Java 1.0 initial commit
kramhuber Feb 4, 2025
f34e72f
address linting errors
kramhuber Feb 4, 2025
bbb9730
address linting issues
kramhuber Feb 4, 2025
883aa8d
adding image and small lint tweeks
meagancojocar Feb 4, 2025
84c0091
Soft disclaimer about Auto API iterations
kramhuber Feb 5, 2025
56623f8
Update content/blog/java-1-0/index.md
kramhuber Feb 6, 2025
f606ef3
Update content/blog/java-1-0/index.md
kramhuber Feb 6, 2025
3726a30
Language fixup
kramhuber Feb 6, 2025
12b33e5
Switch example over to OCI
kramhuber Feb 7, 2025
0427f41
Kill whitespace linting issues
kramhuber Feb 7, 2025
d06a318
Nits
kramhuber Feb 7, 2025
20f6858
Add Auto API snippets
kramhuber Feb 10, 2025
f6bac34
trim whitespace
kramhuber Feb 10, 2025
0542079
meta image update
kramhuber Feb 10, 2025
7cd8f26
Update content/blog/java-1-0/index.md
kramhuber Feb 10, 2025
357f416
Update content/blog/java-1-0/index.md
kramhuber Feb 10, 2025
03219c9
Update content/blog/java-1-0/index.md
kramhuber Feb 10, 2025
0944d3c
Update content/blog/java-1-0/index.md
kramhuber Feb 10, 2025
7d91b3f
Update content/blog/java-1-0/index.md
kramhuber Feb 10, 2025
09d8d35
Update content/blog/java-1-0/index.md
kramhuber Feb 10, 2025
ffc3ea5
Update content/blog/java-1-0/index.md
kramhuber Feb 10, 2025
90b7396
Update content/blog/java-1-0/index.md
kramhuber Feb 10, 2025
9839eca
sdk link
kramhuber Feb 10, 2025
6926cfc
Merge branch 'mhuber/java-1-0' of https://github.com/pulumi/docs into…
kramhuber Feb 10, 2025
f4d5153
Update content/blog/java-1-0/index.md
kramhuber Feb 10, 2025
03f1187
Update content/blog/java-1-0/index.md
kramhuber Feb 10, 2025
459f664
Update content/blog/java-1-0/index.md
kramhuber Feb 10, 2025
ca86614
Update content/blog/java-1-0/index.md
kramhuber Feb 10, 2025
b72eaea
Fix link to databaseMigration example
justinvp Feb 10, 2025
dd304e1
Update to today's date
justinvp Feb 10, 2025
88bf4b4
Update content/blog/java-1-0/index.md
kramhuber Feb 10, 2025
3fce980
Update content/blog/java-1-0/index.md
kramhuber Feb 10, 2025
13521e4
Timestamp
justinvp Feb 11, 2025
505eeb4
Merge branch 'mhuber/java-1-0' of https://github.com/pulumi/docs into…
meagancojocar Feb 11, 2025
fcb757c
Update index.md
meagancojocar Feb 11, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
91 changes: 91 additions & 0 deletions content/blog/java-1-0/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
---
title: "Pulumi's Java SDK is Now Generally Available"
meagancojocar marked this conversation as resolved.
Show resolved Hide resolved
date: 2025-02-06
justinvp marked this conversation as resolved.
Show resolved Hide resolved
draft: false

meta_desc: "Pulumi’s Java SDK is now generally available. It enables organizations of all sizes to build infrastructure using a proven, safe, and familiar language."
meta_image: meta.png

authors:
- justin-vanpatten
- mark-huber
kramhuber marked this conversation as resolved.
Show resolved Hide resolved
tags:
- java
- features
- releases

social:
twitter: "☕ The Pulumi Java SDK is now Generally Available! Manage your infrastructure using the composable, strongly typed programming language you already know and love - now including the powerful Pulumi Automation API!"
linkedin: "Java, the world’s most trusted enterprise programming language, is now generally available in Pulumi. You can now leverage Java’s familiar, expressive, and safe syntax to manage your infrastructure in a composable and scalable way.

Learn more about automating everything you run in the cloud with Java: [Link]"
---

One of Pulumi’s core features is the ability to [model infrastructure](https://www.pulumi.com/docs/iac/concepts/) using well-traveled, familiar general-purpose programming languages. Users have built Pulumi programs with first-class support for TypeScript, Python, Go, YAML, and C# for the past seven years. Today, we’re welcoming another language into the mix, as Java is now officially generally available.

<!--more-->

We introduced Java in preview in 2022. Since then, we’ve grown our Java support based on feedback from the expanding set of companies that have adopted Pulumi Java in production workloads. Let’s look at some examples of using Java to power your Pulumi programs.
kramhuber marked this conversation as resolved.
Show resolved Hide resolved

## Familiar Composability

Using Java with Pulumi lets you model your infrastructure using familiar patterns. Paired with our rich abstractions, you can efficiently build Pulumi programs. For instance, let’s take a look at an example from our docs that shows how, in a few lines of code, you can:
kramhuber marked this conversation as resolved.
Show resolved Hide resolved

1. Instantiate and override the defaults for the default Pulumi AWS Provider

```java
var useast1 = new Provider("useast1",
ProviderArgs.builder().region("us-east-1").build());
```

2. Define an ACM certificate, passing along the defaults defined in Step 1

```java
var cert = new Certificate("cert",
CertificateArgs.builder()
.domainName("pulumi.com")
.validationMethod("EMAIL")
.build(),
CustomResourceOptions.builder()
.provider(useast1)
.build());
```

3. Instantiate an ELB listener, injecting the cert from above

```java
var listener = new Listener("listener",
ListenerArgs.builder()
.loadBalancerArn(loadBalancerArn)
.port(443)
.protocol("HTTPS")
.sslPolicy("ELBSecurityPolicy-2016-08")
.certificateArn(cert.arn())
.defaultActions(ListenerDefaultActionArgs.builder()
.targetGroupArn(targetGroupArn)
.type("forward")
.build())
.build());
```

With just a few lines of code (especially by Java standards), we were able to use out-of-the-box abstractions (Pulumi providers) and the builder pattern (a Java favorite) to compose a set of strongly typed, easy-to-reason about resources.

## Automation Abstractions with the Pulumi Automation API
kramhuber marked this conversation as resolved.
Show resolved Hide resolved

With the introduction of Java 1.0, we’re also excited to announce that the [Automation API](https://www.pulumi.com/docs/iac/using-pulumi/automation-api/) is now supported in Java. The Automation API is a fully typed SDK that allows you to interact with Pulumi programs outside the Pulumi CLI. You can directly access and orchestrate your Pulumi projects and stacks with the SDK. This allows you to integrate Pulumi into other systems, such as CI/CD pipelines or internal tooling.
kramhuber marked this conversation as resolved.
Show resolved Hide resolved

```java
TODO
```

We're excited to bring the Automation API to the Java SDK for the first time and anticipate rapid iterations as feedback comes in.

## Get Started with Pulumi Java
kramhuber marked this conversation as resolved.
Show resolved Hide resolved

To learn more about and to get started with Pulumi Java, you can check out the following resources:

* [Java SDK Repo](https://github.com/pulumi/pulumi-java): The Java SDK is fully open-source, and we’re excited to get your feedback or review any pull requests

* [Examples Repo](https://github.com/pulumi/examples): The Pulumi examples repo has many examples of Pulumi Java programs to help you get up and running with Pulumi Java.

* [Pulumi Java Converter](https://www.pulumi.com/docs/iac/adopting-pulumi/converters/): The Pulumi converter tool efficiently migrates existing IaC applications, such as Terraform, ARM, and Bicep, to Pulumi Java.
Binary file added content/blog/java-1-0/meta.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 4 additions & 0 deletions data/team/team/mark-huber.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
id = "mark-huber"
name = "Mark Huber"
title = "Product Manager"
status = "active"
Binary file added static/images/team/mark-huber.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading