From f0cc439b84e4692f17ebeae1ddac6f39881ae6de Mon Sep 17 00:00:00 2001 From: bQUARKz Date: Wed, 11 Mar 2026 17:35:30 +0000 Subject: [PATCH] added packer module --- .../api/building/PackerBuildRequest.java | 14 ++++++++++ .../api/building/PackerBuildResult.java | 28 +++++++++++++++++++ .../api/building/PackerBuildService.java | 9 ++++++ 3 files changed, 51 insertions(+) create mode 100644 prometeu-packer/src/main/java/p/packer/api/building/PackerBuildRequest.java create mode 100644 prometeu-packer/src/main/java/p/packer/api/building/PackerBuildResult.java create mode 100644 prometeu-packer/src/main/java/p/packer/api/building/PackerBuildService.java diff --git a/prometeu-packer/src/main/java/p/packer/api/building/PackerBuildRequest.java b/prometeu-packer/src/main/java/p/packer/api/building/PackerBuildRequest.java new file mode 100644 index 00000000..d90111d6 --- /dev/null +++ b/prometeu-packer/src/main/java/p/packer/api/building/PackerBuildRequest.java @@ -0,0 +1,14 @@ +package p.packer.api.building; + +import p.packer.api.PackerProjectContext; + +import java.util.Objects; + +public record PackerBuildRequest( + PackerProjectContext project, + boolean incremental) { + + public PackerBuildRequest { + Objects.requireNonNull(project, "project"); + } +} diff --git a/prometeu-packer/src/main/java/p/packer/api/building/PackerBuildResult.java b/prometeu-packer/src/main/java/p/packer/api/building/PackerBuildResult.java new file mode 100644 index 00000000..0fe3a54f --- /dev/null +++ b/prometeu-packer/src/main/java/p/packer/api/building/PackerBuildResult.java @@ -0,0 +1,28 @@ +package p.packer.api.building; + +import p.packer.api.PackerOperationStatus; +import p.packer.api.diagnostics.PackerDiagnostic; + +import java.nio.file.Path; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +public record PackerBuildResult( + PackerOperationStatus status, + String summary, + Path assetsArchive, + Map companionArtifacts, + List diagnostics) { + + public PackerBuildResult { + Objects.requireNonNull(status, "status"); + summary = Objects.requireNonNull(summary, "summary").trim(); + assetsArchive = Objects.requireNonNull(assetsArchive, "assetsArchive").toAbsolutePath().normalize(); + companionArtifacts = Map.copyOf(Objects.requireNonNull(companionArtifacts, "companionArtifacts")); + diagnostics = List.copyOf(Objects.requireNonNull(diagnostics, "diagnostics")); + if (summary.isBlank()) { + throw new IllegalArgumentException("summary must not be blank"); + } + } +} diff --git a/prometeu-packer/src/main/java/p/packer/api/building/PackerBuildService.java b/prometeu-packer/src/main/java/p/packer/api/building/PackerBuildService.java new file mode 100644 index 00000000..a435e27a --- /dev/null +++ b/prometeu-packer/src/main/java/p/packer/api/building/PackerBuildService.java @@ -0,0 +1,9 @@ +package p.packer.api.building; + +import p.packer.api.PackerOperationClass; + +public interface PackerBuildService { + PackerOperationClass operationClass(); + + PackerBuildResult build(PackerBuildRequest request); +}