Skip to content

Commit 5cd14e8

Browse files
authored
feat: add jobVersion field to Run in Java client (#2808)
Signed-off-by: David Goss <[email protected]>
1 parent f1eabc4 commit 5cd14e8

File tree

4 files changed

+29
-0
lines changed

4 files changed

+29
-0
lines changed

clients/java/src/main/java/marquez/client/models/Run.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ public final class Run extends RunMeta {
2828
@Nullable private final Instant startedAt;
2929
@Nullable private final Long durationMs;
3030
@Nullable private final Instant endedAt;
31+
@Nullable private final JobVersionId jobVersion;
3132
@Getter private final Map<String, Object> facets;
3233
@Getter private final List<InputDatasetVersion> inputDatasetVersions;
3334
@Getter private final List<OutputDatasetVersion> outputDatasetVersions;
@@ -43,6 +44,7 @@ public Run(
4344
@Nullable final Instant endedAt,
4445
@Nullable final Long durationMs,
4546
@Nullable final Map<String, String> args,
47+
@Nullable final JobVersionId jobVersion,
4648
@Nullable final Map<String, Object> facets,
4749
@Nullable final List<InputDatasetVersion> inputDatasetVersions,
4850
@Nullable final List<OutputDatasetVersion> outputDatasetVersions) {
@@ -53,6 +55,7 @@ public Run(
5355
this.startedAt = startedAt;
5456
this.durationMs = durationMs;
5557
this.endedAt = endedAt;
58+
this.jobVersion = jobVersion;
5659
this.facets = (facets == null) ? ImmutableMap.of() : ImmutableMap.copyOf(facets);
5760
this.inputDatasetVersions =
5861
(inputDatasetVersions == null) ? Collections.emptyList() : inputDatasetVersions;
@@ -72,6 +75,10 @@ public Optional<Long> getDurationMs() {
7275
return Optional.ofNullable(durationMs);
7376
}
7477

78+
public Optional<JobVersionId> getJobVersion() {
79+
return Optional.ofNullable(jobVersion);
80+
}
81+
7582
public boolean hasFacets() {
7683
return !facets.isEmpty();
7784
}

clients/java/src/test/java/marquez/client/MarquezClientTest.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@
8787
import marquez.client.models.JobId;
8888
import marquez.client.models.JobMeta;
8989
import marquez.client.models.JobType;
90+
import marquez.client.models.JobVersionId;
9091
import marquez.client.models.JsonGenerator;
9192
import marquez.client.models.LineageEvent;
9293
import marquez.client.models.Namespace;
@@ -243,6 +244,8 @@ public class MarquezClientTest {
243244
private static final URL LOCATION = newLocation();
244245
private static final JobType JOB_TYPE = newJobType();
245246
private static final String JOB_DESCRIPTION = newDescription();
247+
private static final JobVersionId JOB_VERSION =
248+
new JobVersionId(JOB_ID.getNamespace(), JOB_ID.getName(), CURRENT_VERSION);
246249
private static final Job JOB =
247250
new Job(
248251
JOB_ID,
@@ -287,6 +290,7 @@ public class MarquezClientTest {
287290
ENDED_AT,
288291
DURATION,
289292
RUN_ARGS,
293+
JOB_VERSION,
290294
null,
291295
INPUT_RUN_DATASET_FACETS,
292296
OUTPUT_RUN_DATASET_FACETS);
@@ -302,6 +306,7 @@ public class MarquezClientTest {
302306
ENDED_AT,
303307
DURATION,
304308
RUN_ARGS,
309+
JOB_VERSION,
305310
null,
306311
INPUT_RUN_DATASET_FACETS,
307312
OUTPUT_RUN_DATASET_FACETS);
@@ -317,6 +322,7 @@ public class MarquezClientTest {
317322
ENDED_AT,
318323
DURATION,
319324
RUN_ARGS,
325+
JOB_VERSION,
320326
null,
321327
INPUT_RUN_DATASET_FACETS,
322328
OUTPUT_RUN_DATASET_FACETS);
@@ -332,6 +338,7 @@ public class MarquezClientTest {
332338
ENDED_AT,
333339
DURATION,
334340
RUN_ARGS,
341+
JOB_VERSION,
335342
null,
336343
INPUT_RUN_DATASET_FACETS,
337344
OUTPUT_RUN_DATASET_FACETS);
@@ -347,6 +354,7 @@ public class MarquezClientTest {
347354
ENDED_AT,
348355
DURATION,
349356
RUN_ARGS,
357+
JOB_VERSION,
350358
null,
351359
INPUT_RUN_DATASET_FACETS,
352360
OUTPUT_RUN_DATASET_FACETS);
@@ -377,6 +385,7 @@ public class MarquezClientTest {
377385
ENDED_AT,
378386
DURATION,
379387
RUN_ARGS,
388+
JOB_VERSION,
380389
null,
381390
INPUT_RUN_DATASET_FACETS,
382391
OUTPUT_RUN_DATASET_FACETS),

clients/java/src/test/java/marquez/client/models/JsonGenerator.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -319,6 +319,18 @@ private static ObjectNode toObj(final Run run) {
319319
obj.put("startedAt", run.getStartedAt().map(ISO_INSTANT::format).orElse(null));
320320
obj.put("endedAt", run.getEndedAt().map(ISO_INSTANT::format).orElse(null));
321321
obj.put("durationMs", run.getDurationMs().orElse(null));
322+
obj.set(
323+
"jobVersion",
324+
run.getJobVersion()
325+
.map(
326+
jobVersionId -> {
327+
final ObjectNode jobVersion = MAPPER.createObjectNode();
328+
jobVersion.put("namespace", jobVersionId.getNamespace());
329+
jobVersion.put("name", jobVersionId.getName());
330+
jobVersion.put("version", jobVersionId.getVersion().toString());
331+
return jobVersion;
332+
})
333+
.orElse(null));
322334
obj.putArray("inputDatasetVersions").addAll(inputDatasetVersions);
323335
obj.putArray("outputDatasetVersions").addAll(outputDatasetVersions);
324336

clients/java/src/test/java/marquez/client/models/ModelGenerator.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,7 @@ public static Run newRun() {
250250
newRunArgs(),
251251
null,
252252
null,
253+
null,
253254
null);
254255
}
255256

0 commit comments

Comments
 (0)