diff --git a/pom.xml b/pom.xml index b4c1c82..0e8689d 100644 --- a/pom.xml +++ b/pom.xml @@ -11,17 +11,20 @@ UTF-8 2.0.17 - 2.25.3 + 2.25.4 4.7.7 3.8.0 - 0.1.0-SNAPSHOT - 4.17.0 + 0.1.0 + 4.18.1 + 2.21.2 2.0 ai.wanaku.code.engine.camel.CamelEngineMain - 3.2.1 + 3.4.0 3.5.5 1.26.0 - 5.11.0 + 5.14.3 + 7.6.0.202603022253-r + 2.71.0 @@ -44,7 +47,7 @@ ai.wanaku.sdk capabilities-bom - ${wanaku.sdk.version} + ${wanaku-capabilities-sdk.version} pom import @@ -70,7 +73,7 @@ ai.wanaku.sdk - capabilities-runtime + capabilities-runtimes-common ai.wanaku.sdk @@ -134,7 +137,7 @@ org.eclipse.jgit org.eclipse.jgit - 7.5.0.202512021534-r + ${jgit.version} @@ -212,10 +215,21 @@ - 2.71.0 + ${palantir-format-version.version} + + + + **/*.properties + **/*.proto + + + + true + jakarta|javax,org.w3c|org.xml,java|org|io|,,\#,org.junit|org.mockito|\#org.assertj|\#org.junit|\#org.mockito + diff --git a/src/main/java/ai/wanaku/code/engine/camel/CamelEngineMain.java b/src/main/java/ai/wanaku/code/engine/camel/CamelEngineMain.java index 30f398f..624d879 100644 --- a/src/main/java/ai/wanaku/code/engine/camel/CamelEngineMain.java +++ b/src/main/java/ai/wanaku/code/engine/camel/CamelEngineMain.java @@ -1,5 +1,15 @@ package ai.wanaku.code.engine.camel; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.concurrent.Callable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import io.grpc.Grpc; +import io.grpc.InsecureServerCredentials; +import io.grpc.Server; +import io.grpc.ServerBuilder; import ai.wanaku.capabilities.sdk.api.discovery.RegistrationManager; import ai.wanaku.capabilities.sdk.api.types.providers.ServiceTarget; import ai.wanaku.capabilities.sdk.api.types.providers.ServiceType; @@ -22,16 +32,6 @@ import ai.wanaku.code.engine.camel.init.Initializer; import ai.wanaku.code.engine.camel.init.InitializerFactory; import ai.wanaku.code.engine.camel.util.VersionHelper; -import io.grpc.Grpc; -import io.grpc.InsecureServerCredentials; -import io.grpc.Server; -import io.grpc.ServerBuilder; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.util.concurrent.Callable; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import picocli.CommandLine; public class CamelEngineMain implements Callable { diff --git a/src/main/java/ai/wanaku/code/engine/camel/WanakuCamelManager.java b/src/main/java/ai/wanaku/code/engine/camel/WanakuCamelManager.java index 421bde0..1521b57 100644 --- a/src/main/java/ai/wanaku/code/engine/camel/WanakuCamelManager.java +++ b/src/main/java/ai/wanaku/code/engine/camel/WanakuCamelManager.java @@ -1,13 +1,13 @@ package ai.wanaku.code.engine.camel; -import ai.wanaku.code.engine.camel.downloader.ResourceType; -import ai.wanaku.code.engine.camel.util.WanakuRoutesLoader; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.util.Map; import org.apache.camel.CamelContext; import org.apache.camel.impl.DefaultCamelContext; +import ai.wanaku.code.engine.camel.downloader.ResourceType; +import ai.wanaku.code.engine.camel.util.WanakuRoutesLoader; public class WanakuCamelManager { private final CamelContext context; diff --git a/src/main/java/ai/wanaku/code/engine/camel/codegen/CodeGenDiscoveryCallback.java b/src/main/java/ai/wanaku/code/engine/camel/codegen/CodeGenDiscoveryCallback.java index 9684bc1..2e382ba 100644 --- a/src/main/java/ai/wanaku/code/engine/camel/codegen/CodeGenDiscoveryCallback.java +++ b/src/main/java/ai/wanaku/code/engine/camel/codegen/CodeGenDiscoveryCallback.java @@ -1,12 +1,5 @@ package ai.wanaku.code.engine.camel.codegen; -import ai.wanaku.capabilities.sdk.api.discovery.DiscoveryCallback; -import ai.wanaku.capabilities.sdk.api.discovery.RegistrationManager; -import ai.wanaku.capabilities.sdk.api.types.providers.ServiceTarget; -import ai.wanaku.capabilities.sdk.services.ServicesHttpClient; -import ai.wanaku.code.engine.camel.downloader.DownloaderFactory; -import ai.wanaku.code.engine.camel.downloader.ResourceRefs; -import ai.wanaku.code.engine.camel.downloader.ResourceType; import java.net.URI; import java.nio.file.Files; import java.nio.file.Path; @@ -16,6 +9,13 @@ import java.util.concurrent.CountDownLatch; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import ai.wanaku.capabilities.sdk.api.discovery.DiscoveryCallback; +import ai.wanaku.capabilities.sdk.api.discovery.RegistrationManager; +import ai.wanaku.capabilities.sdk.api.types.providers.ServiceTarget; +import ai.wanaku.capabilities.sdk.services.ServicesHttpClient; +import ai.wanaku.code.engine.camel.downloader.DownloaderFactory; +import ai.wanaku.code.engine.camel.downloader.ResourceRefs; +import ai.wanaku.code.engine.camel.downloader.ResourceType; /** * Discovery callback that initializes and registers code generation tools. diff --git a/src/main/java/ai/wanaku/code/engine/camel/codegen/CodeGenToolRegistrar.java b/src/main/java/ai/wanaku/code/engine/camel/codegen/CodeGenToolRegistrar.java index 1946c54..6e703c4 100644 --- a/src/main/java/ai/wanaku/code/engine/camel/codegen/CodeGenToolRegistrar.java +++ b/src/main/java/ai/wanaku/code/engine/camel/codegen/CodeGenToolRegistrar.java @@ -1,12 +1,5 @@ package ai.wanaku.code.engine.camel.codegen; -import ai.wanaku.capabilities.sdk.api.types.InputSchema; -import ai.wanaku.capabilities.sdk.api.types.Property; -import ai.wanaku.capabilities.sdk.api.types.ToolReference; -import ai.wanaku.capabilities.sdk.services.ServicesHttpClient; -import ai.wanaku.code.engine.camel.codegen.tools.GenerateOrchestrationTool; -import ai.wanaku.code.engine.camel.codegen.tools.ReadKameletTool; -import ai.wanaku.code.engine.camel.codegen.tools.SearchServicesTool; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; @@ -14,6 +7,13 @@ import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import ai.wanaku.capabilities.sdk.api.types.InputSchema; +import ai.wanaku.capabilities.sdk.api.types.Property; +import ai.wanaku.capabilities.sdk.api.types.ToolReference; +import ai.wanaku.capabilities.sdk.services.ServicesHttpClient; +import ai.wanaku.code.engine.camel.codegen.tools.GenerateOrchestrationTool; +import ai.wanaku.code.engine.camel.codegen.tools.ReadKameletTool; +import ai.wanaku.code.engine.camel.codegen.tools.SearchServicesTool; /** * Registers and deregisters code generation tools with Wanaku. diff --git a/src/main/java/ai/wanaku/code/engine/camel/codegen/CodeGenToolService.java b/src/main/java/ai/wanaku/code/engine/camel/codegen/CodeGenToolService.java index 9235484..07bd425 100644 --- a/src/main/java/ai/wanaku/code/engine/camel/codegen/CodeGenToolService.java +++ b/src/main/java/ai/wanaku/code/engine/camel/codegen/CodeGenToolService.java @@ -1,12 +1,12 @@ package ai.wanaku.code.engine.camel.codegen; -import ai.wanaku.code.engine.camel.codegen.tools.GenerateOrchestrationTool; -import ai.wanaku.code.engine.camel.codegen.tools.ReadKameletTool; -import ai.wanaku.code.engine.camel.codegen.tools.SearchServicesTool; import java.net.URI; import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import ai.wanaku.code.engine.camel.codegen.tools.GenerateOrchestrationTool; +import ai.wanaku.code.engine.camel.codegen.tools.ReadKameletTool; +import ai.wanaku.code.engine.camel.codegen.tools.SearchServicesTool; /** * Service that handles code generation tool invocations. diff --git a/src/main/java/ai/wanaku/code/engine/camel/codegen/tools/GenerateOrchestrationTool.java b/src/main/java/ai/wanaku/code/engine/camel/codegen/tools/GenerateOrchestrationTool.java index addd64b..cff600e 100644 --- a/src/main/java/ai/wanaku/code/engine/camel/codegen/tools/GenerateOrchestrationTool.java +++ b/src/main/java/ai/wanaku/code/engine/camel/codegen/tools/GenerateOrchestrationTool.java @@ -1,9 +1,9 @@ package ai.wanaku.code.engine.camel.codegen.tools; -import ai.wanaku.code.engine.camel.codegen.CodeGenResourceLoader; import java.io.IOException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import ai.wanaku.code.engine.camel.codegen.CodeGenResourceLoader; /** * Tool that returns the orchestration template for code generation. diff --git a/src/main/java/ai/wanaku/code/engine/camel/codegen/tools/ReadKameletTool.java b/src/main/java/ai/wanaku/code/engine/camel/codegen/tools/ReadKameletTool.java index 1d0a102..52b1a3f 100644 --- a/src/main/java/ai/wanaku/code/engine/camel/codegen/tools/ReadKameletTool.java +++ b/src/main/java/ai/wanaku/code/engine/camel/codegen/tools/ReadKameletTool.java @@ -1,9 +1,9 @@ package ai.wanaku.code.engine.camel.codegen.tools; -import ai.wanaku.code.engine.camel.codegen.CodeGenResourceLoader; import java.io.IOException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import ai.wanaku.code.engine.camel.codegen.CodeGenResourceLoader; /** * Tool that reads the content of a Kamelet by name. diff --git a/src/main/java/ai/wanaku/code/engine/camel/codegen/tools/SearchServicesTool.java b/src/main/java/ai/wanaku/code/engine/camel/codegen/tools/SearchServicesTool.java index 645d506..bac2381 100644 --- a/src/main/java/ai/wanaku/code/engine/camel/codegen/tools/SearchServicesTool.java +++ b/src/main/java/ai/wanaku/code/engine/camel/codegen/tools/SearchServicesTool.java @@ -1,10 +1,10 @@ package ai.wanaku.code.engine.camel.codegen.tools; -import ai.wanaku.code.engine.camel.codegen.CodeGenConfig; -import ai.wanaku.code.engine.camel.codegen.CodeGenResourceLoader; import java.util.List; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import ai.wanaku.code.engine.camel.codegen.CodeGenConfig; +import ai.wanaku.code.engine.camel.codegen.CodeGenResourceLoader; /** * Tool that searches for available services (Kamelets) in the code generation package. diff --git a/src/main/java/ai/wanaku/code/engine/camel/downloader/DataStoreDownloader.java b/src/main/java/ai/wanaku/code/engine/camel/downloader/DataStoreDownloader.java index 453adf5..e826f21 100644 --- a/src/main/java/ai/wanaku/code/engine/camel/downloader/DataStoreDownloader.java +++ b/src/main/java/ai/wanaku/code/engine/camel/downloader/DataStoreDownloader.java @@ -1,8 +1,5 @@ package ai.wanaku.code.engine.camel.downloader; -import ai.wanaku.capabilities.sdk.api.types.DataStore; -import ai.wanaku.capabilities.sdk.api.types.WanakuResponse; -import ai.wanaku.capabilities.sdk.services.ServicesHttpClient; import java.net.URI; import java.nio.file.Files; import java.nio.file.Path; @@ -11,6 +8,9 @@ import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import ai.wanaku.capabilities.sdk.api.types.DataStore; +import ai.wanaku.capabilities.sdk.api.types.WanakuResponse; +import ai.wanaku.capabilities.sdk.services.ServicesHttpClient; public class DataStoreDownloader implements Downloader { private static final Logger LOG = LoggerFactory.getLogger(DataStoreDownloader.class); diff --git a/src/main/java/ai/wanaku/code/engine/camel/downloader/DownloaderFactory.java b/src/main/java/ai/wanaku/code/engine/camel/downloader/DownloaderFactory.java index f0bbd39..6369d06 100644 --- a/src/main/java/ai/wanaku/code/engine/camel/downloader/DownloaderFactory.java +++ b/src/main/java/ai/wanaku/code/engine/camel/downloader/DownloaderFactory.java @@ -1,10 +1,10 @@ package ai.wanaku.code.engine.camel.downloader; -import ai.wanaku.capabilities.sdk.services.ServicesHttpClient; import java.net.URI; import java.nio.file.Path; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import ai.wanaku.capabilities.sdk.services.ServicesHttpClient; /** * Factory for creating downloader instances based on URI scheme. diff --git a/src/main/java/ai/wanaku/code/engine/camel/downloader/ResourceDownloaderCallback.java b/src/main/java/ai/wanaku/code/engine/camel/downloader/ResourceDownloaderCallback.java index 3424101..fbea935 100644 --- a/src/main/java/ai/wanaku/code/engine/camel/downloader/ResourceDownloaderCallback.java +++ b/src/main/java/ai/wanaku/code/engine/camel/downloader/ResourceDownloaderCallback.java @@ -1,9 +1,5 @@ package ai.wanaku.code.engine.camel.downloader; -import ai.wanaku.capabilities.sdk.api.discovery.DiscoveryCallback; -import ai.wanaku.capabilities.sdk.api.discovery.RegistrationManager; -import ai.wanaku.capabilities.sdk.api.types.providers.ServiceTarget; -import ai.wanaku.capabilities.sdk.common.exceptions.WanakuWebException; import java.net.URI; import java.nio.file.Path; import java.util.HashMap; @@ -12,6 +8,10 @@ import java.util.concurrent.CountDownLatch; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import ai.wanaku.capabilities.sdk.api.discovery.DiscoveryCallback; +import ai.wanaku.capabilities.sdk.api.discovery.RegistrationManager; +import ai.wanaku.capabilities.sdk.api.types.providers.ServiceTarget; +import ai.wanaku.capabilities.sdk.common.exceptions.WanakuWebException; public class ResourceDownloaderCallback implements DiscoveryCallback { private static final Logger LOG = LoggerFactory.getLogger(ResourceDownloaderCallback.class); diff --git a/src/main/java/ai/wanaku/code/engine/camel/downloader/TarBz2Downloader.java b/src/main/java/ai/wanaku/code/engine/camel/downloader/TarBz2Downloader.java index 30b151c..8d60356 100644 --- a/src/main/java/ai/wanaku/code/engine/camel/downloader/TarBz2Downloader.java +++ b/src/main/java/ai/wanaku/code/engine/camel/downloader/TarBz2Downloader.java @@ -1,9 +1,5 @@ package ai.wanaku.code.engine.camel.downloader; -import ai.wanaku.capabilities.sdk.api.types.DataStore; -import ai.wanaku.capabilities.sdk.api.types.WanakuResponse; -import ai.wanaku.capabilities.sdk.services.ServicesHttpClient; -import ai.wanaku.code.engine.camel.util.ArchiveExtractor; import java.io.ByteArrayInputStream; import java.net.URI; import java.nio.file.Files; @@ -13,6 +9,10 @@ import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import ai.wanaku.capabilities.sdk.api.types.DataStore; +import ai.wanaku.capabilities.sdk.api.types.WanakuResponse; +import ai.wanaku.capabilities.sdk.services.ServicesHttpClient; +import ai.wanaku.code.engine.camel.util.ArchiveExtractor; /** * Downloads and extracts tar.bz2 archives from the Wanaku data store. diff --git a/src/main/java/ai/wanaku/code/engine/camel/grpc/CodeExecutorService.java b/src/main/java/ai/wanaku/code/engine/camel/grpc/CodeExecutorService.java index f4574c6..42c17d1 100644 --- a/src/main/java/ai/wanaku/code/engine/camel/grpc/CodeExecutorService.java +++ b/src/main/java/ai/wanaku/code/engine/camel/grpc/CodeExecutorService.java @@ -1,20 +1,22 @@ package ai.wanaku.code.engine.camel.grpc; -import ai.wanaku.capabilities.sdk.services.ServicesHttpClient; -import ai.wanaku.code.engine.camel.WanakuCamelManager; -import ai.wanaku.core.exchange.CodeExecutionReply; -import ai.wanaku.core.exchange.CodeExecutionRequest; -import ai.wanaku.core.exchange.CodeExecutorGrpc; -import ai.wanaku.core.exchange.ExecutionStatus; -import ai.wanaku.core.exchange.OutputType; -import io.grpc.stub.StreamObserver; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; +import java.time.Instant; import org.apache.camel.CamelContext; import org.apache.camel.ProducerTemplate; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import io.grpc.stub.StreamObserver; +import ai.wanaku.capabilities.sdk.services.ServicesHttpClient; +import ai.wanaku.code.engine.camel.WanakuCamelManager; +import ai.wanaku.core.exchange.v1.CodeExecutionReply; +import ai.wanaku.core.exchange.v1.CodeExecutionRequest; +import ai.wanaku.core.exchange.v1.CodeExecutorGrpc; +import ai.wanaku.core.exchange.v1.ExecutionStatus; +import ai.wanaku.core.exchange.v1.OutputType; +import com.google.protobuf.Timestamp; public class CodeExecutorService extends CodeExecutorGrpc.CodeExecutorImplBase { private static final Logger LOG = LoggerFactory.getLogger(CodeExecutorService.class); @@ -29,6 +31,14 @@ public CodeExecutorService(ServicesHttpClient servicesHttpClient, Path dataDir, this.defaultRepositories = defaultRepositories; } + private static Timestamp now() { + Instant instant = Instant.now(); + return Timestamp.newBuilder() + .setSeconds(instant.getEpochSecond()) + .setNanos(instant.getNano()) + .build(); + } + @Override public void executeCode(CodeExecutionRequest request, StreamObserver responseObserver) { LOG.info("Received code execution request for URI: {}", request.getUri()); @@ -41,14 +51,11 @@ public void executeCode(CodeExecutionRequest request, StreamObserver