diff --git a/.gitignore b/.gitignore
index 886c8a8..8dd429c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -63,3 +63,4 @@ pom.xml.releaseBackup
pom.xml.versionsBackup
release.properties
/sample/dev.sh
+/sample/maas.sh
diff --git a/deployment/pom.xml b/deployment/pom.xml
index d7706f4..e42a5e7 100644
--- a/deployment/pom.xml
+++ b/deployment/pom.xml
@@ -11,7 +11,7 @@
Quarkus Chappie - Deployment
- 0.0.13
+ 999-SNAPSHOT
diff --git a/deployment/src/main/java/io/quarkiverse/chappie/deployment/devservice/ChappieDevServiceProcessor.java b/deployment/src/main/java/io/quarkiverse/chappie/deployment/devservice/ChappieDevServiceProcessor.java
index 0b2d5a1..a1c8512 100644
--- a/deployment/src/main/java/io/quarkiverse/chappie/deployment/devservice/ChappieDevServiceProcessor.java
+++ b/deployment/src/main/java/io/quarkiverse/chappie/deployment/devservice/ChappieDevServiceProcessor.java
@@ -29,17 +29,20 @@
import io.quarkus.deployment.annotations.BuildSteps;
import io.quarkus.deployment.builditem.DevServicesResultBuildItem;
import io.quarkus.deployment.dev.devservices.GlobalDevServicesConfig;
+import io.quarkus.devui.spi.buildtime.FooterLogBuildItem;
import io.quarkus.runtime.util.ClassPathUtils;
+import io.smallrye.mutiny.operators.multi.processors.BroadcastProcessor;
@BuildSteps(onlyIf = { IsDevelopment.class, GlobalDevServicesConfig.Enabled.class })
public class ChappieDevServiceProcessor {
private static Process process;
private static ChappieClient chappieClient;
- private static final Logger LOG = Logger.getLogger("Quarkus Assistant");
+ private static final Logger LOG = Logger.getLogger(ChappieDevServiceProcessor.class);
@BuildStep
public void createContainer(BuildProducer devServicesResultProducer,
BuildProducer chappieClientProducer,
+ BuildProducer footerLogProducer,
ExtensionVersionBuildItem extensionVersionBuildItem,
Optional ollamaBuildItem,
ChappieConfig config) {
@@ -47,6 +50,13 @@ public void createContainer(BuildProducer devService
if (process == null && (config.openai().apiKey().isPresent() || config.openai().baseUrl().isPresent()
|| ollamaBuildItem.isPresent())) {
+ BroadcastProcessor logProcessor = BroadcastProcessor.create();
+
+ // Dev UI Log stream
+ footerLogProducer.produce(new FooterLogBuildItem("Assistant", () -> {
+ return logProcessor.convert().toPublisher();
+ }));
+
Map properties = new HashMap<>();
int port = findAvailablePort(4315);
@@ -54,11 +64,8 @@ public void createContainer(BuildProducer devService
properties.put("quarkus.http.host", "localhost");
properties.put("quarkus.http.port", String.valueOf(port));
-
- if (config.devservices().log()) {
- properties.put("chappie.log.request", "true");
- properties.put("chappie.log.response", "true");
- }
+ properties.put("chappie.log.request", "true");
+ properties.put("chappie.log.response", "true");
properties.put("chappie.timeout", config.devservices().timeout());
if (config.openai().apiKey().isPresent() || config.openai().baseUrl().isPresent()) {
@@ -82,7 +89,7 @@ public void createContainer(BuildProducer devService
}
try {
- runServer(extVersion, properties, config.devservices().log());
+ runServer(extVersion, properties, logProcessor);
Runtime.getRuntime().addShutdownHook(new Thread(() -> {
if (process != null && process.isAlive()) {
process.destroy();
@@ -207,7 +214,8 @@ private Path getChappieBaseDir(String version) {
return Path.of(userHome, ".chappie/" + version);
}
- private void runServer(String version, Map properties, boolean log) throws IOException {
+ private void runServer(String version, Map properties, BroadcastProcessor logProcessor)
+ throws IOException {
Path chappieServer = getChappieServer(version);
List command = new ArrayList<>();
@@ -223,21 +231,15 @@ private void runServer(String version, Map properties, boolean l
process = processBuilder.start();
- new Thread(() -> handleStream(process.getInputStream(), "OUTPUT", log)).start();
- new Thread(() -> handleStream(process.getErrorStream(), "ERROR", log)).start();
+ new Thread(() -> handleStream(process.getInputStream(), logProcessor)).start();
+ new Thread(() -> handleStream(process.getErrorStream(), logProcessor)).start();
}
- private void handleStream(java.io.InputStream inputStream, String type, boolean log) {
+ private void handleStream(java.io.InputStream inputStream, BroadcastProcessor logProcessor) {
try (BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream))) {
String line;
while ((line = reader.readLine()) != null) {
- if (type.equals("ERROR")) {
- LOG.error(line);
- } else if (log) {
- LOG.info(line);
- } else {
- LOG.debug(line);
- }
+ logProcessor.onNext(line);
}
} catch (IOException e) {
LOG.error("Error in Quarkus Assistant", e);
diff --git a/deployment/src/main/java/io/quarkiverse/chappie/deployment/devservice/DevServicesConfig.java b/deployment/src/main/java/io/quarkiverse/chappie/deployment/devservice/DevServicesConfig.java
index 7906169..a19dd94 100644
--- a/deployment/src/main/java/io/quarkiverse/chappie/deployment/devservice/DevServicesConfig.java
+++ b/deployment/src/main/java/io/quarkiverse/chappie/deployment/devservice/DevServicesConfig.java
@@ -9,12 +9,6 @@
@ConfigGroup
public interface DevServicesConfig {
- /**
- * Show the log of the dev service in the application log
- */
- @WithDefault("false")
- boolean log();
-
/**
* The default port where the inference server listens for requests
*/
diff --git a/pom.xml b/pom.xml
index 793cf18..fc0abdc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -31,7 +31,7 @@
17
UTF-8
UTF-8
- 3.14.2
+ 3.16.0.CR1