This is an automated email from the ASF dual-hosted git repository.
tiagobento pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-kie-tools.git
The following commit(s) were added to refs/heads/main by this push:
new 3152f8c9b5e kie-issues#1338: 'Thread blocked' Exception in console
when starting 'jbpm-quarkus-devui' & 'sonataflow-quarkus-devui' (#2437)
3152f8c9b5e is described below
commit 3152f8c9b5e8301ef09595735fa41bcdfa8028ab
Author: Pere Fernández <[email protected]>
AuthorDate: Thu Jun 20 19:37:48 2024 +0200
kie-issues#1338: 'Thread blocked' Exception in console when starting
'jbpm-quarkus-devui' & 'sonataflow-quarkus-devui' (#2437)
---
.../docker-compose/docker-compose.yml | 8 +-
.../src/main/resources/application.properties | 1 -
.../jbpm-quarkus-devui-runtime/pom.xml | 5 ++
.../devui/runtime/dataindex/DataIndexClient.java | 53 ------------
.../quarkus/devui/runtime/dataindex/jobs/Job.java | 45 ----------
.../devui/runtime/dataindex/jobs/JobsData.java | 45 ----------
.../devui/runtime/dataindex/jobs/JobsResponse.java | 40 ---------
.../dataindex/processes/ProcessInstance.java | 45 ----------
.../dataindex/processes/ProcessInstancesData.java | 45 ----------
.../processes/ProcessInstancesResponse.java | 40 ---------
.../devui/runtime/dataindex/tasks/Task.java | 45 ----------
.../runtime/dataindex/tasks/TaskResponseData.java | 45 ----------
.../runtime/dataindex/tasks/TasksResponse.java | 36 --------
.../devui/runtime/rpc/JBPMDevuiJsonRPCService.java | 98 +++++++++++++++-------
.../src/main/resources/application.properties | 2 -
.../stunner/client/lienzo/resources/css/fonts.css | 21 +++--
.../sonataflow-quarkus-devui/pom.xml | 5 ++
.../tools/runtime/dataindex/DataIndexClient.java | 41 ---------
.../dataindex/workflows/WorkflowInstance.java | 45 ----------
.../dataindex/workflows/WorkflowInstancesData.java | 45 ----------
.../workflows/WorkflowInstancesResponse.java | 40 ---------
.../SonataFlowQuarkusExtensionJsonRPCService.java | 76 ++++++++++++++---
.../src/main/resources/application.properties | 2 -
23 files changed, 158 insertions(+), 670 deletions(-)
diff --git
a/examples/jbpm-compact-architecture-example/docker-compose/docker-compose.yml
b/examples/jbpm-compact-architecture-example/docker-compose/docker-compose.yml
index 95032f77340..70aede878f4 100644
---
a/examples/jbpm-compact-architecture-example/docker-compose/docker-compose.yml
+++
b/examples/jbpm-compact-architecture-example/docker-compose/docker-compose.yml
@@ -97,17 +97,11 @@ services:
depends_on:
jbpm-compact-architecture-example-service:
condition: service_started
- keycloak:
- condition: service_healthy
volumes:
- ./svg/:/home/kogito/data/svg/
environment:
- RUNTIME_TOOLS_MANAGEMENT_CONSOLE_KOGITO_ENV_MODE: "PROD"
+ RUNTIME_TOOLS_MANAGEMENT_CONSOLE_KOGITO_ENV_MODE: "DEV"
RUNTIME_TOOLS_MANAGEMENT_CONSOLE_DATA_INDEX_ENDPOINT:
http://${DOCKER_GATEWAY_HOST:-host.docker.internal}:8080/graphql
- KOGITO_CONSOLES_KEYCLOAK_HEALTH_CHECK_URL:
http://localhost:8480/auth/realms/kogito/.well-known/openid-configuration
- KOGITO_CONSOLES_KEYCLOAK_URL: http://localhost:8480/auth
- KOGITO_CONSOLES_KEYCLOAK_REALM: kogito
- KOGITO_CONSOLES_KEYCLOAK_CLIENT_ID: kogito-console-quarkus
task-console:
container_name: task-console
diff --git
a/examples/jbpm-compact-architecture-example/src/main/resources/application.properties
b/examples/jbpm-compact-architecture-example/src/main/resources/application.properties
index b2a3bf6b7fe..dc61d25a145 100644
---
a/examples/jbpm-compact-architecture-example/src/main/resources/application.properties
+++
b/examples/jbpm-compact-architecture-example/src/main/resources/application.properties
@@ -39,7 +39,6 @@ quarkus.native.native-image-xmx=8g
%container.quarkus.container-image.tag=${project.version}
%container.quarkus.container-image.name=jppm-compact-architecture-example-service
-%dev.quarkus.kogito.devservices.enabled=false
%dev.jbpm.devui.users.jdoe.groups=admin,HR,IT
# Disabling OIDC
diff --git a/packages/jbpm-quarkus-devui/jbpm-quarkus-devui-runtime/pom.xml
b/packages/jbpm-quarkus-devui/jbpm-quarkus-devui-runtime/pom.xml
index 6ac36aa9d75..b07f83ca31c 100644
--- a/packages/jbpm-quarkus-devui/jbpm-quarkus-devui-runtime/pom.xml
+++ b/packages/jbpm-quarkus-devui/jbpm-quarkus-devui-runtime/pom.xml
@@ -90,6 +90,11 @@
<artifactId>commons-lang3</artifactId>
</dependency>
+ <dependency>
+ <groupId>io.vertx</groupId>
+ <artifactId>vertx-web-client</artifactId>
+ </dependency>
+
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
diff --git
a/packages/jbpm-quarkus-devui/jbpm-quarkus-devui-runtime/src/main/java/org/jbpm/quarkus/devui/runtime/dataindex/DataIndexClient.java
b/packages/jbpm-quarkus-devui/jbpm-quarkus-devui-runtime/src/main/java/org/jbpm/quarkus/devui/runtime/dataindex/DataIndexClient.java
deleted file mode 100644
index 4ef8f592b1b..00000000000
---
a/packages/jbpm-quarkus-devui/jbpm-quarkus-devui-runtime/src/main/java/org/jbpm/quarkus/devui/runtime/dataindex/DataIndexClient.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.jbpm.quarkus.devui.runtime.dataindex;
-
-import org.eclipse.microprofile.rest.client.inject.RegisterRestClient;
-import org.jbpm.quarkus.devui.runtime.dataindex.jobs.JobsResponse;
-import
org.jbpm.quarkus.devui.runtime.dataindex.processes.ProcessInstancesResponse;
-import org.jbpm.quarkus.devui.runtime.dataindex.tasks.TasksResponse;
-
-import jakarta.enterprise.context.ApplicationScoped;
-import jakarta.ws.rs.Consumes;
-import jakarta.ws.rs.POST;
-import jakarta.ws.rs.Path;
-import jakarta.ws.rs.core.MediaType;
-
-import static
org.jbpm.quarkus.devui.runtime.dataindex.DataIndexClient.DATA_INDEX_CONFIG_KEY;
-
-@Path("/graphql")
-@RegisterRestClient(configKey = DATA_INDEX_CONFIG_KEY)
-@ApplicationScoped
-public interface DataIndexClient {
-
- String DATA_INDEX_CONFIG_KEY = "kogito.data-index.url";
-
- @POST
- @Consumes(MediaType.APPLICATION_JSON)
- ProcessInstancesResponse queryProcessInstances(String query);
-
- @POST
- @Consumes(MediaType.APPLICATION_JSON)
- TasksResponse queryTasks(String query);
-
- @POST
- @Consumes(MediaType.APPLICATION_JSON)
- JobsResponse queryJobs(String query);
-}
diff --git
a/packages/jbpm-quarkus-devui/jbpm-quarkus-devui-runtime/src/main/java/org/jbpm/quarkus/devui/runtime/dataindex/jobs/Job.java
b/packages/jbpm-quarkus-devui/jbpm-quarkus-devui-runtime/src/main/java/org/jbpm/quarkus/devui/runtime/dataindex/jobs/Job.java
deleted file mode 100644
index 2deac440854..00000000000
---
a/packages/jbpm-quarkus-devui/jbpm-quarkus-devui-runtime/src/main/java/org/jbpm/quarkus/devui/runtime/dataindex/jobs/Job.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.jbpm.quarkus.devui.runtime.dataindex.jobs;
-
-public class Job {
-
- private String id;
-
- public Job() {
- }
-
- public Job(final String id) {
- this.id = id;
- }
-
- public String getId() {
- return id;
- }
-
- public void setId(final String id) {
- this.id = id;
- }
-
- @Override
- public String toString() {
- return id;
- }
-}
diff --git
a/packages/jbpm-quarkus-devui/jbpm-quarkus-devui-runtime/src/main/java/org/jbpm/quarkus/devui/runtime/dataindex/jobs/JobsData.java
b/packages/jbpm-quarkus-devui/jbpm-quarkus-devui-runtime/src/main/java/org/jbpm/quarkus/devui/runtime/dataindex/jobs/JobsData.java
deleted file mode 100644
index ef7f6173f8c..00000000000
---
a/packages/jbpm-quarkus-devui/jbpm-quarkus-devui-runtime/src/main/java/org/jbpm/quarkus/devui/runtime/dataindex/jobs/JobsData.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.jbpm.quarkus.devui.runtime.dataindex.jobs;
-
-import java.util.List;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-
-public class JobsData {
-
- @JsonProperty("Jobs")
- private List<Job> jobsList;
-
- public JobsData() {
- }
-
- public JobsData(final List<Job> jobsList) {
- this.jobsList = jobsList;
- }
-
- public List<Job> getJobs() {
- return jobsList;
- }
-
- public void setJobs(final List<Job> jobsList) {
- this.jobsList = jobsList;
- }
-}
diff --git
a/packages/jbpm-quarkus-devui/jbpm-quarkus-devui-runtime/src/main/java/org/jbpm/quarkus/devui/runtime/dataindex/jobs/JobsResponse.java
b/packages/jbpm-quarkus-devui/jbpm-quarkus-devui-runtime/src/main/java/org/jbpm/quarkus/devui/runtime/dataindex/jobs/JobsResponse.java
deleted file mode 100644
index 5bdb6751cfb..00000000000
---
a/packages/jbpm-quarkus-devui/jbpm-quarkus-devui-runtime/src/main/java/org/jbpm/quarkus/devui/runtime/dataindex/jobs/JobsResponse.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.jbpm.quarkus.devui.runtime.dataindex.jobs;
-
-public class JobsResponse {
-
- private JobsData data;
-
- public JobsResponse() {
- }
-
- public JobsResponse(final JobsData data) {
- this.data = data;
- }
-
- public JobsData getData() {
- return data;
- }
-
- public void setData(final JobsData data) {
- this.data = data;
- }
-}
diff --git
a/packages/jbpm-quarkus-devui/jbpm-quarkus-devui-runtime/src/main/java/org/jbpm/quarkus/devui/runtime/dataindex/processes/ProcessInstance.java
b/packages/jbpm-quarkus-devui/jbpm-quarkus-devui-runtime/src/main/java/org/jbpm/quarkus/devui/runtime/dataindex/processes/ProcessInstance.java
deleted file mode 100644
index d79f89dbf80..00000000000
---
a/packages/jbpm-quarkus-devui/jbpm-quarkus-devui-runtime/src/main/java/org/jbpm/quarkus/devui/runtime/dataindex/processes/ProcessInstance.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.jbpm.quarkus.devui.runtime.dataindex.processes;
-
-public class ProcessInstance {
-
- private String id;
-
- public ProcessInstance() {
- }
-
- public ProcessInstance(final String id) {
- this.id = id;
- }
-
- public String getId() {
- return id;
- }
-
- public void setId(final String id) {
- this.id = id;
- }
-
- @Override
- public String toString() {
- return id;
- }
-}
diff --git
a/packages/jbpm-quarkus-devui/jbpm-quarkus-devui-runtime/src/main/java/org/jbpm/quarkus/devui/runtime/dataindex/processes/ProcessInstancesData.java
b/packages/jbpm-quarkus-devui/jbpm-quarkus-devui-runtime/src/main/java/org/jbpm/quarkus/devui/runtime/dataindex/processes/ProcessInstancesData.java
deleted file mode 100644
index cb3ea875f59..00000000000
---
a/packages/jbpm-quarkus-devui/jbpm-quarkus-devui-runtime/src/main/java/org/jbpm/quarkus/devui/runtime/dataindex/processes/ProcessInstancesData.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.jbpm.quarkus.devui.runtime.dataindex.processes;
-
-import java.util.List;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-
-public class ProcessInstancesData {
-
- @JsonProperty("ProcessInstances")
- private List<ProcessInstance> instances;
-
- public ProcessInstancesData() {
- }
-
- public ProcessInstancesData(final List<ProcessInstance> instances) {
- this.instances = instances;
- }
-
- public List<ProcessInstance> getProcessInstances() {
- return instances;
- }
-
- public void setProcessInstances(final List<ProcessInstance>
processInstancesList) {
- this.instances = processInstancesList;
- }
-}
diff --git
a/packages/jbpm-quarkus-devui/jbpm-quarkus-devui-runtime/src/main/java/org/jbpm/quarkus/devui/runtime/dataindex/processes/ProcessInstancesResponse.java
b/packages/jbpm-quarkus-devui/jbpm-quarkus-devui-runtime/src/main/java/org/jbpm/quarkus/devui/runtime/dataindex/processes/ProcessInstancesResponse.java
deleted file mode 100644
index 87761bcc565..00000000000
---
a/packages/jbpm-quarkus-devui/jbpm-quarkus-devui-runtime/src/main/java/org/jbpm/quarkus/devui/runtime/dataindex/processes/ProcessInstancesResponse.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.jbpm.quarkus.devui.runtime.dataindex.processes;
-
-public class ProcessInstancesResponse {
-
- private ProcessInstancesData data;
-
- public ProcessInstancesResponse() {
- }
-
- public ProcessInstancesResponse(final ProcessInstancesData data) {
- this.data = data;
- }
-
- public ProcessInstancesData getData() {
- return data;
- }
-
- public void setData(final ProcessInstancesData data) {
- this.data = data;
- }
-}
diff --git
a/packages/jbpm-quarkus-devui/jbpm-quarkus-devui-runtime/src/main/java/org/jbpm/quarkus/devui/runtime/dataindex/tasks/Task.java
b/packages/jbpm-quarkus-devui/jbpm-quarkus-devui-runtime/src/main/java/org/jbpm/quarkus/devui/runtime/dataindex/tasks/Task.java
deleted file mode 100644
index 231806f09c6..00000000000
---
a/packages/jbpm-quarkus-devui/jbpm-quarkus-devui-runtime/src/main/java/org/jbpm/quarkus/devui/runtime/dataindex/tasks/Task.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.jbpm.quarkus.devui.runtime.dataindex.tasks;
-
-public class Task {
-
- private String id;
-
- public Task() {
- }
-
- public Task(final String id) {
- this.id = id;
- }
-
- public String getId() {
- return id;
- }
-
- public void setId(final String id) {
- this.id = id;
- }
-
- @Override
- public String toString() {
- return id;
- }
-}
diff --git
a/packages/jbpm-quarkus-devui/jbpm-quarkus-devui-runtime/src/main/java/org/jbpm/quarkus/devui/runtime/dataindex/tasks/TaskResponseData.java
b/packages/jbpm-quarkus-devui/jbpm-quarkus-devui-runtime/src/main/java/org/jbpm/quarkus/devui/runtime/dataindex/tasks/TaskResponseData.java
deleted file mode 100644
index e824b816b6a..00000000000
---
a/packages/jbpm-quarkus-devui/jbpm-quarkus-devui-runtime/src/main/java/org/jbpm/quarkus/devui/runtime/dataindex/tasks/TaskResponseData.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.jbpm.quarkus.devui.runtime.dataindex.tasks;
-
-import java.util.List;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-
-public class TaskResponseData {
-
- @JsonProperty("UserTaskInstances")
- private List<Task> tasks;
-
- public TaskResponseData() {
- }
-
- public TaskResponseData(final List<Task> tasks) {
- this.tasks = tasks;
- }
-
- public List<Task> getTasks() {
- return tasks;
- }
-
- public void setTasks(final List<Task> userTaskInstancesList) {
- this.tasks = userTaskInstancesList;
- }
-}
diff --git
a/packages/jbpm-quarkus-devui/jbpm-quarkus-devui-runtime/src/main/java/org/jbpm/quarkus/devui/runtime/dataindex/tasks/TasksResponse.java
b/packages/jbpm-quarkus-devui/jbpm-quarkus-devui-runtime/src/main/java/org/jbpm/quarkus/devui/runtime/dataindex/tasks/TasksResponse.java
deleted file mode 100644
index d9689da799f..00000000000
---
a/packages/jbpm-quarkus-devui/jbpm-quarkus-devui-runtime/src/main/java/org/jbpm/quarkus/devui/runtime/dataindex/tasks/TasksResponse.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.jbpm.quarkus.devui.runtime.dataindex.tasks;
-
-public class TasksResponse {
-
- private TaskResponseData data;
-
- public TasksResponse() {
- }
-
- public TaskResponseData getData() {
- return data;
- }
-
- public void setData(final TaskResponseData data) {
- this.data = data;
- }
-}
diff --git
a/packages/jbpm-quarkus-devui/jbpm-quarkus-devui-runtime/src/main/java/org/jbpm/quarkus/devui/runtime/rpc/JBPMDevuiJsonRPCService.java
b/packages/jbpm-quarkus-devui/jbpm-quarkus-devui-runtime/src/main/java/org/jbpm/quarkus/devui/runtime/rpc/JBPMDevuiJsonRPCService.java
index fab15b3e67d..2e62a776691 100644
---
a/packages/jbpm-quarkus-devui/jbpm-quarkus-devui-runtime/src/main/java/org/jbpm/quarkus/devui/runtime/rpc/JBPMDevuiJsonRPCService.java
+++
b/packages/jbpm-quarkus-devui/jbpm-quarkus-devui-runtime/src/main/java/org/jbpm/quarkus/devui/runtime/rpc/JBPMDevuiJsonRPCService.java
@@ -19,61 +19,101 @@
package org.jbpm.quarkus.devui.runtime.rpc;
-import java.util.function.Supplier;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.Optional;
-import org.eclipse.microprofile.rest.client.inject.RestClient;
-import org.jbpm.quarkus.devui.runtime.dataindex.DataIndexClient;
+import io.smallrye.mutiny.Uni;
+import io.vertx.core.Vertx;
+import io.vertx.core.json.JsonObject;
+import io.vertx.ext.web.client.WebClient;
+import io.vertx.ext.web.client.WebClientOptions;
+import jakarta.annotation.PostConstruct;
+import org.eclipse.microprofile.config.ConfigProvider;
import org.jbpm.quarkus.devui.runtime.forms.FormsStorage;
-import com.fasterxml.jackson.databind.ObjectMapper;
-
-import io.smallrye.common.annotation.NonBlocking;
-
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
@ApplicationScoped
public class JBPMDevuiJsonRPCService {
+ private static final String DATA_INDEX_URL = "kogito.data-index.url";
+
+ private static final Logger LOGGER =
LoggerFactory.getLogger(JBPMDevuiJsonRPCService.class);
+
+ public static final String PROCESS_INSTANCES = "ProcessInstances";
+ public static final String USER_TASKS = "UserTaskInstances";
+ public static final String JOBS = "Jobs";
+
public static final String ALL_TASKS_IDS_QUERY = "{ \"operationName\":
\"getAllTasksIds\", \"query\": \"query getAllTasksIds{ UserTaskInstances{ id }
}\" }";
public static final String ALL_PROCESS_INSTANCES_IDS_QUERY = "{
\"operationName\": \"getAllProcessesIds\", \"query\": \"query
getAllProcessesIds{ ProcessInstances{ id } }\" }";
public static final String ALL_JOBS_IDS_QUERY = "{ \"operationName\":
\"getAllJobsIds\", \"query\": \"query getAllJobsIds{ Jobs{ id } }\" }";
- private final ObjectMapper mapper;
- private final DataIndexClient dataIndexClient;
+ private WebClient dataIndexWebClient;
+
+ private final Vertx vertx;
private final FormsStorage formsStorage;
@Inject
- public JBPMDevuiJsonRPCService(ObjectMapper mapper, @RestClient
DataIndexClient dataIndexClient, FormsStorage formsStorage) {
- this.mapper = mapper;
- this.dataIndexClient = dataIndexClient;
+ public JBPMDevuiJsonRPCService(Vertx vertx, FormsStorage formsStorage) {
+ this.vertx = vertx;
this.formsStorage = formsStorage;
}
- @NonBlocking
- public String queryProcessInstancesCount() {
- return doQuery(() ->
this.dataIndexClient.queryProcessInstances(ALL_PROCESS_INSTANCES_IDS_QUERY).getData().getProcessInstances().size());
+ @PostConstruct
+ public void init() {
+ Optional<String> dataIndexURL =
ConfigProvider.getConfig().getOptionalValue(DATA_INDEX_URL, String.class);
+ dataIndexURL.ifPresent(this::initDataIndexWebClient);
}
- @NonBlocking
- public String queryTasksCount() {
- return doQuery(() ->
this.dataIndexClient.queryTasks(ALL_TASKS_IDS_QUERY).getData().getTasks().size());
+ private void initDataIndexWebClient(String dataIndexURL) {
+ try {
+ this.dataIndexWebClient = WebClient.create(vertx,
buildWebClientOptions(dataIndexURL));
+ } catch (Exception ex) {
+ LOGGER.warn("Cannot configure dataIndexWebClient with
'kogito.data-index.url'='{}':", dataIndexURL, ex);
+ }
}
- @NonBlocking
- public String queryJobsCount() {
- return doQuery(() ->
this.dataIndexClient.queryJobs(ALL_JOBS_IDS_QUERY).getData().getJobs().size());
+ protected WebClientOptions buildWebClientOptions(String dataIndexURL)
throws MalformedURLException {
+ URL url = new URL(dataIndexURL);
+ return new WebClientOptions()
+ .setDefaultHost(url.getHost())
+ .setDefaultPort((url.getPort() != -1 ? url.getPort() :
url.getDefaultPort()))
+ .setSsl(url.getProtocol().compareToIgnoreCase("https") == 0);
}
- @NonBlocking
- public String getFormsCount() {
- return doQuery(this.formsStorage::getFormsCount);
+ public Uni<String> queryProcessInstancesCount() {
+ return doQuery(ALL_PROCESS_INSTANCES_IDS_QUERY, PROCESS_INSTANCES);
}
- private String doQuery(Supplier<Integer> countSupplier) {
- try {
- return String.valueOf(countSupplier.get());
- } catch (Exception ex) {
- return "-";
+ public Uni<String> queryTasksCount() {
+ return doQuery(ALL_TASKS_IDS_QUERY, USER_TASKS);
+ }
+
+ public Uni<String> queryJobsCount() {
+ return doQuery(ALL_JOBS_IDS_QUERY, JOBS);
+ }
+
+ private Uni<String> doQuery(String query, String graphModelName) {
+ if(dataIndexWebClient == null) {
+ LOGGER.warn("Cannot perform '{}' query, dataIndexWebClient
couldn't be set. Is DataIndex correctly? Please verify '{}' value",
graphModelName, DATA_INDEX_URL);
+ return Uni.createFrom().item("-");
}
+ return
Uni.createFrom().completionStage(this.dataIndexWebClient.post("/graphql")
+ .putHeader("content-type", "application/json")
+ .sendJson(new JsonObject(query))
+ .map(response -> {
+ if(response.statusCode() == 200) {
+ JsonObject responseData =
response.bodyAsJsonObject().getJsonObject("data");
+ return
String.valueOf(responseData.getJsonArray(graphModelName).size());
+ }
+ return "-";
+ }).toCompletionStage());
+ }
+
+ public Uni<String> getFormsCount() {
+ return
Uni.createFrom().item(String.valueOf(this.formsStorage.getFormsCount()));
}
}
diff --git
a/packages/jbpm-quarkus-devui/jbpm-quarkus-devui-runtime/src/main/resources/application.properties
b/packages/jbpm-quarkus-devui/jbpm-quarkus-devui-runtime/src/main/resources/application.properties
index 915c3125f06..4cc7054e5fe 100644
---
a/packages/jbpm-quarkus-devui/jbpm-quarkus-devui-runtime/src/main/resources/application.properties
+++
b/packages/jbpm-quarkus-devui/jbpm-quarkus-devui-runtime/src/main/resources/application.properties
@@ -17,6 +17,4 @@
# under the License.
#
-quarkus.rest-client."kogito.data-index.url".url=${kogito.data-index.url}/
-
jbpm.devui.users.admin.groups=admin
\ No newline at end of file
diff --git
a/packages/serverless-workflow-diagram-editor/kie-wb-common-stunner/kie-wb-common-stunner-client/kie-wb-common-stunner-lienzo/src/main/resources/org/kie/workbench/common/stunner/client/lienzo/resources/css/fonts.css
b/packages/serverless-workflow-diagram-editor/kie-wb-common-stunner/kie-wb-common-stunner-client/kie-wb-common-stunner-lienzo/src/main/resources/org/kie/workbench/common/stunner/client/lienzo/resources/css/fonts.css
index d7abfe38b5f..c086bd265e7 100644
---
a/packages/serverless-workflow-diagram-editor/kie-wb-common-stunner/kie-wb-common-stunner-client/kie-wb-common-stunner-lienzo/src/main/resources/org/kie/workbench/common/stunner/client/lienzo/resources/css/fonts.css
+++
b/packages/serverless-workflow-diagram-editor/kie-wb-common-stunner/kie-wb-common-stunner-client/kie-wb-common-stunner-lienzo/src/main/resources/org/kie/workbench/common/stunner/client/lienzo/resources/css/fonts.css
@@ -19,7 +19,8 @@
@font-face {
font-family: PatternFlyIcons-webfont;
- src:
url(data:font/truetype;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMg8SBkcAAAC8AAAAYGNtYXDnr509AAABHAAAAHRnYXNwAAAAEAAAAZAAAAAIZ2x5ZpSslA4AAAGYAABJTGhlYWQMjE0rAABK5AAAADZoaGVhCOYDuQAASxwAAAAkaG10eADYAmsAAEtAAAABCGxvY2HyteDIAABMSAAAAIZtYXhwAFYBMwAATNAAAAAgbmFtZathkjwAAEzwAAADtHBvc3QAAwAAAABQpAAAACAAAwQDAZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADpGgPA/8AAQAPAAEAAAAABAAAAAAAAAAAAAAAgAAAAAAADAAAAAwAAABwAAQADAAAAHAADAAEAAAAcAAQAWAAAABIAEAADAAIAAQAg5
[...]
+ src:
+
url(data:font/truetype;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMg8SBkcAAAC8AAAAYGNtYXDnr509AAABHAAAAHRnYXNwAAAAEAAAAZAAAAAIZ2x5ZpSslA4AAAGYAABJTGhlYWQMjE0rAABK5AAAADZoaGVhCOYDuQAASxwAAAAkaG10eADYAmsAAEtAAAABCGxvY2HyteDIAABMSAAAAIZtYXhwAFYBMwAATNAAAAAgbmFtZathkjwAAEzwAAADtHBvc3QAAwAAAABQpAAAACAAAwQDAZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADpGgPA/8AAQAPAAEAAAAABAAAAAAAAAAAAAAAgAAAAAAADAAAAAwAAABwAAQADAAAAHAADAAEAAAAcAAQAWAAAABIAEAADAAIAAQAg5gvm
[...]
format("truetype"),
url(data:font/woff;charset=utf-8;base64,d09GRgABAAAAAFEQAAsAAAAAUMQAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAABPUy8yAAABCAAAAGAAAABgDxIGR2NtYXAAAAFoAAAAdAAAAHTnr509Z2FzcAAAAdwAAAAIAAAACAAAABBnbHlmAAAB5AAASUwAAElMlKyUDmhlYWQAAEswAAAANgAAADYMjE0raGhlYQAAS2gAAAAkAAAAJAjmA7lobXR4AABLjAAAAQgAAAEIANgCa2xvY2EAAEyUAAAAhgAAAIbyteDIbWF4cAAATRwAAAAgAAAAIABWATNuYW1lAABNPAAAA7QAAAO0q2GSPHBvc3QAAFDwAAAAIAAAACAAAwAAAAMEAwGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAA6RoDwP/A
[...]
format("woff");
@@ -31,7 +32,8 @@
font-family: "Open Sans";
font-style: normal;
font-weight: 300;
- src:
url(data:font/woff;charset=utf-8;base64,d09GRgABAAAAAFboABMAAAAAkdgAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABqAAAABwAAAAcY1TPb0dERUYAAAHEAAAAHgAAACABHQAER1BPUwAAAeQAAASjAAAJni1yF0JHU1VCAAAGiAAAAIEAAACooGOIoU9TLzIAAAcMAAAAXgAAAGCgeJYQY21hcAAAB2wAAAGiAAACChPwNFFjdnQgAAAJEAAAADAAAAA8KSwFzmZwZ20AAAlAAAAE+gAACZGLC3pBZ2FzcAAADjwAAAAIAAAACAAAABBnbHlmAAAORAAAP5gAAGuMNHBVFmhlYWQAAE3cAAAAMwAAADYBP5OYaGhlYQAAThAAAAAfAAAAJA7HBVtobXR4AABOMAAAAj8AAAPA2pJeG2xvY2EAAFBwAAAB1gAAAeIsKxIMbWF4cAAAUkgAA
[...]
+ src:
+
url(data:font/woff;charset=utf-8;base64,d09GRgABAAAAAFboABMAAAAAkdgAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABqAAAABwAAAAcY1TPb0dERUYAAAHEAAAAHgAAACABHQAER1BPUwAAAeQAAASjAAAJni1yF0JHU1VCAAAGiAAAAIEAAACooGOIoU9TLzIAAAcMAAAAXgAAAGCgeJYQY21hcAAAB2wAAAGiAAACChPwNFFjdnQgAAAJEAAAADAAAAA8KSwFzmZwZ20AAAlAAAAE+gAACZGLC3pBZ2FzcAAADjwAAAAIAAAACAAAABBnbHlmAAAORAAAP5gAAGuMNHBVFmhlYWQAAE3cAAAAMwAAADYBP5OYaGhlYQAAThAAAAAfAAAAJA7HBVtobXR4AABOMAAAAj8AAAPA2pJeG2xvY2EAAFBwAAAB1gAAAeIsKxIMbWF4cAAAUkgAAAAg
[...]
format("woff"),
url(data:font/truetype;charset=utf-8;base64,AAEAAAATAQAABAAwRkZUTWNUz28AAAE8AAAAHEdERUYBHQAEAAABWAAAACBHUE9TLXIXQgAAAXgAAAmeR1NVQqBjiKEAAAsYAAAAqE9TLzKgeJYQAAALwAAAAGBjbWFwE/A0UQAADCAAAAIKY3Z0ICksBc4AAA4sAAAAPGZwZ22LC3pBAAAOaAAACZFnYXNwAAAAEAAAF/wAAAAIZ2x5ZjRwVRYAABgEAABrjGhlYWQBP5OYAACDkAAAADZoaGVhDscFWwAAg8gAAAAkaG10eNqSXhsAAIPsAAADwGxvY2EsKxIMAACHrAAAAeJtYXhwAxsCcgAAiZAAAAAgbmFtZXdjmykAAImwAAAEjHBvc3TvsKWfAACOPAAAAwJwcmVw80Qi7AAAkUAAAACQd2ViZmdFUa8AAJHQAAAABgAAAAEAAAAAzD2izwAAAADJ
[...]
format("truetype");
@@ -41,7 +43,8 @@
font-family: "Open Sans";
font-style: normal;
font-weight: 400;
- src:
url(data:font/woff;charset=utf-8;base64,d09GRgABAAAAAFiEABMAAAAAlVgAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABqAAAABwAAAAcY0fsj0dERUYAAAHEAAAAHgAAACABHQAER1BPUwAAAeQAAASjAAAJni1yF0JHU1VCAAAGiAAAAIEAAACooGOIoU9TLzIAAAcMAAAAYAAAAGCg5Zl/Y21hcAAAB2wAAAGiAAACChPwNFFjdnQgAAAJEAAAADAAAAA8KcYGO2ZwZ20AAAlAAAAE+gAACZGLC3pBZ2FzcAAADjwAAAAIAAAACAAAABBnbHlmAAAORAAAQT4AAG9wUmq8LWhlYWQAAE+EAAAAMwAAADYBBJSCaGhlYQAAT7gAAAAfAAAAJA6MBRlobXR4AABP2AAAAkUAAAPA/YtZ22xvY2EAAFIgAAAB2AAAAeK6VZ9mbWF4cAAAU/gAA
[...]
+ src:
+
url(data:font/woff;charset=utf-8;base64,d09GRgABAAAAAFiEABMAAAAAlVgAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABqAAAABwAAAAcY0fsj0dERUYAAAHEAAAAHgAAACABHQAER1BPUwAAAeQAAASjAAAJni1yF0JHU1VCAAAGiAAAAIEAAACooGOIoU9TLzIAAAcMAAAAYAAAAGCg5Zl/Y21hcAAAB2wAAAGiAAACChPwNFFjdnQgAAAJEAAAADAAAAA8KcYGO2ZwZ20AAAlAAAAE+gAACZGLC3pBZ2FzcAAADjwAAAAIAAAACAAAABBnbHlmAAAORAAAQT4AAG9wUmq8LWhlYWQAAE+EAAAAMwAAADYBBJSCaGhlYQAAT7gAAAAfAAAAJA6MBRlobXR4AABP2AAAAkUAAAPA/YtZ22xvY2EAAFIgAAAB2AAAAeK6VZ9mbWF4cAAAU/gAAAAg
[...]
format("woff"),
url(data:font/truetype;charset=utf-8;base64,AAEAAAATAQAABAAwRkZUTWNH7I8AAAE8AAAAHEdERUYBHQAEAAABWAAAACBHUE9TLXIXQgAAAXgAAAmeR1NVQqBjiKEAAAsYAAAAqE9TLzKg5Zl/AAALwAAAAGBjbWFwE/A0UQAADCAAAAIKY3Z0ICnGBjsAAA4sAAAAPGZwZ22LC3pBAAAOaAAACZFnYXNwAAAAEAAAF/wAAAAIZ2x5ZlJqvC0AABgEAABvcGhlYWQBBJSCAACHdAAAADZoaGVhDowFGQAAh6wAAAAkaG10eP2LWdsAAIfQAAADwGxvY2G6VZ9mAACLkAAAAeJtYXhwAxsCBwAAjXQAAAAgbmFtZWcOjDoAAI2UAAAEKHBvc3TvsKWfAACRvAAAAwJwcmVw80Qi7AAAlMAAAACQd2ViZme2Ua8AAJVQAAAABgAAAAEAAAAAzD2izwAAAADJ
[...]
format("truetype");
@@ -51,7 +54,8 @@
font-family: "Open Sans";
font-style: normal;
font-weight: 600;
- src:
url(data:font/woff;charset=utf-8;base64,d09GRgABAAAAAFl8ABMAAAAAmjQAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABqAAAABwAAAAcY1+l1kdERUYAAAHEAAAAHgAAACABHAAER1BPUwAAAeQAAASjAAAJni1yF0JHU1VCAAAGiAAAAIEAAACooGKInk9TLzIAAAcMAAAAXwAAAGChzJKHY21hcAAAB2wAAAGcAAACArdvbL5jdnQgAAAJCAAAADAAAAA8KnIGiWZwZ20AAAk4AAAE+gAACZGLC3pBZ2FzcAAADjQAAAAIAAAACAAAABBnbHlmAAAOPAAAQioAAHPogJkvrWhlYWQAAFBoAAAANAAAADYBA5UwaGhlYQAAUJwAAAAfAAAAJA6MBQtobXR4AABQvAAAAkkAAAO8FMhS1WxvY2EAAFMIAAAB1wAAAeCwVc5ibWF4cAAAVOAAA
[...]
+ src:
+
url(data:font/woff;charset=utf-8;base64,d09GRgABAAAAAFl8ABMAAAAAmjQAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABqAAAABwAAAAcY1+l1kdERUYAAAHEAAAAHgAAACABHAAER1BPUwAAAeQAAASjAAAJni1yF0JHU1VCAAAGiAAAAIEAAACooGKInk9TLzIAAAcMAAAAXwAAAGChzJKHY21hcAAAB2wAAAGcAAACArdvbL5jdnQgAAAJCAAAADAAAAA8KnIGiWZwZ20AAAk4AAAE+gAACZGLC3pBZ2FzcAAADjQAAAAIAAAACAAAABBnbHlmAAAOPAAAQioAAHPogJkvrWhlYWQAAFBoAAAANAAAADYBA5UwaGhlYQAAUJwAAAAfAAAAJA6MBQtobXR4AABQvAAAAkkAAAO8FMhS1WxvY2EAAFMIAAAB1wAAAeCwVc5ibWF4cAAAVOAAAAAg
[...]
format("woff"),
url(data:font/truetype;charset=utf-8;base64,AAEAAAATAQAABAAwRkZUTWNfpdYAAAE8AAAAHEdERUYBHAAEAAABWAAAACBHUE9TLXIXQgAAAXgAAAmeR1NVQqBiiJ4AAAsYAAAAqE9TLzKhzJKHAAALwAAAAGBjbWFwt29svgAADCAAAAICY3Z0ICpyBokAAA4kAAAAPGZwZ22LC3pBAAAOYAAACZFnYXNwAAAAEAAAF/QAAAAIZ2x5ZoCZL60AABf8AABz6GhlYWQBA5UwAACL5AAAADZoaGVhDowFCwAAjBwAAAAkaG10eBTIUtUAAIxAAAADvGxvY2GwVc5iAACP/AAAAeBtYXhwAxoCAQAAkdwAAAAgbmFtZXj0n2QAAJH8AAAEoHBvc3Slhu7VAACWnAAAAwBwcmVw80Qi7AAAmZwAAACQd2ViZmgKUa8AAJosAAAABgAAAAEAAAAAzD2izwAAAADJ
[...]
format("truetype");
@@ -61,7 +65,8 @@
font-family: "Open Sans";
font-style: normal;
font-weight: 700;
- src:
url(data:font/woff;charset=utf-8;base64,d09GRgABAAAAAFegABMAAAAAljQAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABqAAAABwAAAAcY1TTTkdERUYAAAHEAAAAHgAAACABHAAER1BPUwAAAeQAAASjAAAJni1yF0JHU1VCAAAGiAAAAIEAAACooGKInk9TLzIAAAcMAAAAYAAAAGCiSZvdY21hcAAAB2wAAAGcAAACArdvbL5jdnQgAAAJCAAAADIAAAA8K3MG4GZwZ20AAAk8AAAE+gAACZGLC3pBZ2FzcAAADjgAAAAIAAAACAAAABBnbHlmAAAOQAAAQHYAAHBYgHhZ+mhlYWQAAE64AAAANAAAADYBY5XaaGhlYQAATuwAAAAeAAAAJA8VBYlobXR4AABPDAAAAjgAAAO8MaBM1GxvY2EAAFFEAAAB1QAAAeB9T5rKbWF4cAAAUxwAA
[...]
+ src:
+
url(data:font/woff;charset=utf-8;base64,d09GRgABAAAAAFegABMAAAAAljQAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABqAAAABwAAAAcY1TTTkdERUYAAAHEAAAAHgAAACABHAAER1BPUwAAAeQAAASjAAAJni1yF0JHU1VCAAAGiAAAAIEAAACooGKInk9TLzIAAAcMAAAAYAAAAGCiSZvdY21hcAAAB2wAAAGcAAACArdvbL5jdnQgAAAJCAAAADIAAAA8K3MG4GZwZ20AAAk8AAAE+gAACZGLC3pBZ2FzcAAADjgAAAAIAAAACAAAABBnbHlmAAAOQAAAQHYAAHBYgHhZ+mhlYWQAAE64AAAANAAAADYBY5XaaGhlYQAATuwAAAAeAAAAJA8VBYlobXR4AABPDAAAAjgAAAO8MaBM1GxvY2EAAFFEAAAB1QAAAeB9T5rKbWF4cAAAUxwAAAAg
[...]
format("woff"),
url(data:font/truetype;charset=utf-8;base64,AAEAAAATAQAABAAwRkZUTWNU004AAAE8AAAAHEdERUYBHAAEAAABWAAAACBHUE9TLXIXQgAAAXgAAAmeR1NVQqBiiJ4AAAsYAAAAqE9TLzKiSZvdAAALwAAAAGBjbWFwt29svgAADCAAAAICY3Z0ICtzBuAAAA4kAAAAPGZwZ22LC3pBAAAOYAAACZFnYXNwAAAAEAAAF/QAAAAIZ2x5ZoB4WfoAABf8AABwWGhlYWQBY5XaAACIVAAAADZoaGVhDxUFiQAAiIwAAAAkaG10eDGgTNQAAIiwAAADvGxvY2F9T5rKAACMbAAAAeBtYXhwAyECPAAAjkwAAAAgbmFtZWfQjGgAAI5sAAAEMHBvc3Slhu7VAACSnAAAAwBwcmVw80Qi7AAAlZwAAACQd2ViZmhfUa8AAJYsAAAABgAAAAEAAAAAzD2izwAAAADJ
[...]
format("truetype");
@@ -71,7 +76,8 @@
font-family: "Open Sans";
font-style: normal;
font-weight: 800;
- src:
url(data:font/woff;charset=utf-8;base64,d09GRgABAAAAAFzUABMAAAAApCgAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABqAAAABwAAAAcY1+mnUdERUYAAAHEAAAAHgAAACABHAAER1BPUwAAAeQAAASjAAAJni1yF0JHU1VCAAAGiAAAAIEAAACooGKInk9TLzIAAAcMAAAAYAAAAGCit518Y21hcAAAB2wAAAGcAAACArdvbL5jdnQgAAAJCAAAADIAAAA8LRcHV2ZwZ20AAAk8AAAE+gAACZGLC3pBZ2FzcAAADjgAAAAIAAAACAAAABBnbHlmAAAOQAAARXkAAH3QJcmPh2hlYWQAAFO8AAAANAAAADYCJ5aeaGhlYQAAU/AAAAAgAAAAJBAKBfRobXR4AABUEAAAAk0AAAO8TuVBAWxvY2EAAFZgAAAB1AAAAeDsOw0sbWF4cAAAWDQAA
[...]
+ src:
+
url(data:font/woff;charset=utf-8;base64,d09GRgABAAAAAFzUABMAAAAApCgAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABqAAAABwAAAAcY1+mnUdERUYAAAHEAAAAHgAAACABHAAER1BPUwAAAeQAAASjAAAJni1yF0JHU1VCAAAGiAAAAIEAAACooGKInk9TLzIAAAcMAAAAYAAAAGCit518Y21hcAAAB2wAAAGcAAACArdvbL5jdnQgAAAJCAAAADIAAAA8LRcHV2ZwZ20AAAk8AAAE+gAACZGLC3pBZ2FzcAAADjgAAAAIAAAACAAAABBnbHlmAAAOQAAARXkAAH3QJcmPh2hlYWQAAFO8AAAANAAAADYCJ5aeaGhlYQAAU/AAAAAgAAAAJBAKBfRobXR4AABUEAAAAk0AAAO8TuVBAWxvY2EAAFZgAAAB1AAAAeDsOw0sbWF4cAAAWDQAAAAg
[...]
format("woff"),
url(data:font/truetype;charset=utf-8;base64,AAEAAAATAQAABAAwRkZUTWNfpp0AAAE8AAAAHEdERUYBHAAEAAABWAAAACBHUE9TLXIXQgAAAXgAAAmeR1NVQqBiiJ4AAAsYAAAAqE9TLzKit518AAALwAAAAGBjbWFwt29svgAADCAAAAICY3Z0IC0XB1cAAA4kAAAAPGZwZ22LC3pBAAAOYAAACZFnYXNwAAAAEAAAF/QAAAAIZ2x5ZiXJj4cAABf8AAB90GhlYWQCJ5aeAACVzAAAADZoaGVhEAoF9AAAlgQAAAAkaG10eE7lQQEAAJYoAAADvGxvY2HsOw0sAACZ5AAAAeBtYXhwAyECPAAAm8QAAAAgbmFtZXqaoH4AAJvkAAAEqnBvc3Slhu7VAACgkAAAAwBwcmVw80Qi7AAAo5AAAACQd2ViZmi7Ua8AAKQgAAAABgAAAAEAAAAAzD2izwAAAADJ
[...]
format("truetype");
@@ -79,7 +85,8 @@
@font-face {
font-family: "Glyphicons Halflings";
- src:
url(data:font/woff2;charset=utf-8;base64,d09GMgABAAAAAEZsAA8AAAAAsVwAAEYJAAECTQAAAAAAAAAAAAAAAAAAAAAAAAAAP0ZGVE0cGiAGYACMcggEEQgKgqkkgeVlATYCJAOGdAuEMAAEIAWHIgeVUT93ZWJmBhtljDXsmI+A80Cgwj/+vggK2vaIIBusdPb/n5SghozBk8fY3CwzKw8ycQ3LRhauWU8b7AQmPrHpsWLSbaQ1gVqO5kgksapZihmcvXvsSAlqZIYL1YkM/LIl97nZp395IqcEA/f21yuNQLmMXb2rZZ/7e/rS+3aQoE5jiykOu275k8k/fj/okKRo8gD/nl/nJmkfxsrIHdGdBcGkiz+6PvzlXksg+3a0LRtj240x7fSAEokyS6Dhebf1LCdu5KvgAAco8DNFd2ngQgUXgqAmqf8L6c5UtGxo2DBNGtLY2tKGZOVZ2HLx77Kss250
[...]
+ src:
+
url(data:font/woff2;charset=utf-8;base64,d09GMgABAAAAAEZsAA8AAAAAsVwAAEYJAAECTQAAAAAAAAAAAAAAAAAAAAAAAAAAP0ZGVE0cGiAGYACMcggEEQgKgqkkgeVlATYCJAOGdAuEMAAEIAWHIgeVUT93ZWJmBhtljDXsmI+A80Cgwj/+vggK2vaIIBusdPb/n5SghozBk8fY3CwzKw8ycQ3LRhauWU8b7AQmPrHpsWLSbaQ1gVqO5kgksapZihmcvXvsSAlqZIYL1YkM/LIl97nZp395IqcEA/f21yuNQLmMXb2rZZ/7e/rS+3aQoE5jiykOu275k8k/fj/okKRo8gD/nl/nJmkfxsrIHdGdBcGkiz+6PvzlXksg+3a0LRtj240x7fSAEokyS6Dhebf1LCdu5KvgAAco8DNFd2ngQgUXgqAmqf8L6c5UtGxo2DBNGtLY2tKGZOVZ2HLx77Kss250ad5
[...]
format("woff2"),
url(data:font/truetype;charset=utf-8;base64,AAEAAAAPAIAAAwBwRkZUTW0ql9wAAAD8AAAAHEdERUYBRAAEAAABGAAAACBPUy8yZ7lriQAAATgAAABgY21hcNqt44EAAAGYAAAGcmN2dCAAKAL4AAAIDAAAAARnYXNw//8AAwAACBAAAAAIZ2x5Zn1dwm8AAAgYAACUpGhlYWQFTS/YAACcvAAAADZoaGVhCkQEEQAAnPQAAAAkaG10eNLHIGAAAJ0YAAADdGxvY2Fv+5XOAACgjAAAAjBtYXhwAWoA2AAAorwAAAAgbmFtZbMsoJsAAKLcAAADonBvc3S6o+U1AACmgAAACtF3ZWJmwxhUUAAAsVQAAAAGAAAAAQAAAADMPaLPAAAAANB2gXUAAAAA0HZzlwABAAAADgAAABgAAAAAAAIAAQABARYAAQAEAAAAAgAAAAMEiwGQAAUABAMMAtAAAABaAwwC
[...]
format("truetype");
diff --git a/packages/sonataflow-quarkus-devui/sonataflow-quarkus-devui/pom.xml
b/packages/sonataflow-quarkus-devui/sonataflow-quarkus-devui/pom.xml
index da723e43c0a..d2af94d419f 100644
--- a/packages/sonataflow-quarkus-devui/sonataflow-quarkus-devui/pom.xml
+++ b/packages/sonataflow-quarkus-devui/sonataflow-quarkus-devui/pom.xml
@@ -85,6 +85,11 @@
<artifactId>commons-lang3</artifactId>
</dependency>
+ <dependency>
+ <groupId>io.vertx</groupId>
+ <artifactId>vertx-web-client</artifactId>
+ </dependency>
+
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
diff --git
a/packages/sonataflow-quarkus-devui/sonataflow-quarkus-devui/src/main/java/org/kie/sonataflow/swf/tools/runtime/dataindex/DataIndexClient.java
b/packages/sonataflow-quarkus-devui/sonataflow-quarkus-devui/src/main/java/org/kie/sonataflow/swf/tools/runtime/dataindex/DataIndexClient.java
deleted file mode 100644
index f8d28872d4d..00000000000
---
a/packages/sonataflow-quarkus-devui/sonataflow-quarkus-devui/src/main/java/org/kie/sonataflow/swf/tools/runtime/dataindex/DataIndexClient.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.kie.sonataflow.swf.tools.runtime.dataindex;
-
-import org.eclipse.microprofile.rest.client.inject.RegisterRestClient;
-import
org.kie.sonataflow.swf.tools.runtime.dataindex.workflows.WorkflowInstancesResponse;
-
-import jakarta.enterprise.context.ApplicationScoped;
-import jakarta.ws.rs.Consumes;
-import jakarta.ws.rs.POST;
-import jakarta.ws.rs.Path;
-import jakarta.ws.rs.core.MediaType;
-
-@Path("/graphql")
-@RegisterRestClient(configKey = DataIndexClient.DATA_INDEX_CONFIG_KEY)
-@ApplicationScoped
-public interface DataIndexClient {
-
- String DATA_INDEX_CONFIG_KEY = "kogito.data-index.url";
-
- @POST
- @Consumes(MediaType.APPLICATION_JSON)
- WorkflowInstancesResponse queryWorkflows(String query);
-}
diff --git
a/packages/sonataflow-quarkus-devui/sonataflow-quarkus-devui/src/main/java/org/kie/sonataflow/swf/tools/runtime/dataindex/workflows/WorkflowInstance.java
b/packages/sonataflow-quarkus-devui/sonataflow-quarkus-devui/src/main/java/org/kie/sonataflow/swf/tools/runtime/dataindex/workflows/WorkflowInstance.java
deleted file mode 100644
index d20e872ace5..00000000000
---
a/packages/sonataflow-quarkus-devui/sonataflow-quarkus-devui/src/main/java/org/kie/sonataflow/swf/tools/runtime/dataindex/workflows/WorkflowInstance.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.kie.sonataflow.swf.tools.runtime.dataindex.workflows;
-
-public class WorkflowInstance {
-
- private String id;
-
- public WorkflowInstance() {
- }
-
- public WorkflowInstance(final String id) {
- this.id = id;
- }
-
- public String getId() {
- return id;
- }
-
- public void setId(final String id) {
- this.id = id;
- }
-
- @Override
- public String toString() {
- return id;
- }
-}
diff --git
a/packages/sonataflow-quarkus-devui/sonataflow-quarkus-devui/src/main/java/org/kie/sonataflow/swf/tools/runtime/dataindex/workflows/WorkflowInstancesData.java
b/packages/sonataflow-quarkus-devui/sonataflow-quarkus-devui/src/main/java/org/kie/sonataflow/swf/tools/runtime/dataindex/workflows/WorkflowInstancesData.java
deleted file mode 100644
index df7f26ff8de..00000000000
---
a/packages/sonataflow-quarkus-devui/sonataflow-quarkus-devui/src/main/java/org/kie/sonataflow/swf/tools/runtime/dataindex/workflows/WorkflowInstancesData.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.kie.sonataflow.swf.tools.runtime.dataindex.workflows;
-
-import java.util.List;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-
-public class WorkflowInstancesData {
-
- @JsonProperty("ProcessInstances")
- private List<WorkflowInstance> instances;
-
- public WorkflowInstancesData() {
- }
-
- public WorkflowInstancesData(final List<WorkflowInstance> instances) {
- this.instances = instances;
- }
-
- public List<WorkflowInstance> getWorkflows() {
- return instances;
- }
-
- public void setWorkflowInstances(final List<WorkflowInstance>
workflowInstancesList) {
- this.instances = workflowInstancesList;
- }
-}
diff --git
a/packages/sonataflow-quarkus-devui/sonataflow-quarkus-devui/src/main/java/org/kie/sonataflow/swf/tools/runtime/dataindex/workflows/WorkflowInstancesResponse.java
b/packages/sonataflow-quarkus-devui/sonataflow-quarkus-devui/src/main/java/org/kie/sonataflow/swf/tools/runtime/dataindex/workflows/WorkflowInstancesResponse.java
deleted file mode 100644
index bfd36dfb6b6..00000000000
---
a/packages/sonataflow-quarkus-devui/sonataflow-quarkus-devui/src/main/java/org/kie/sonataflow/swf/tools/runtime/dataindex/workflows/WorkflowInstancesResponse.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.kie.sonataflow.swf.tools.runtime.dataindex.workflows;
-
-public class WorkflowInstancesResponse {
-
- private WorkflowInstancesData data;
-
- public WorkflowInstancesResponse() {
- }
-
- public WorkflowInstancesResponse(final WorkflowInstancesData data) {
- this.data = data;
- }
-
- public WorkflowInstancesData getData() {
- return data;
- }
-
- public void setData(final WorkflowInstancesData data) {
- this.data = data;
- }
-}
diff --git
a/packages/sonataflow-quarkus-devui/sonataflow-quarkus-devui/src/main/java/org/kie/sonataflow/swf/tools/runtime/rpc/SonataFlowQuarkusExtensionJsonRPCService.java
b/packages/sonataflow-quarkus-devui/sonataflow-quarkus-devui/src/main/java/org/kie/sonataflow/swf/tools/runtime/rpc/SonataFlowQuarkusExtensionJsonRPCService.java
index cd5b2570edf..92d7091aece 100644
---
a/packages/sonataflow-quarkus-devui/sonataflow-quarkus-devui/src/main/java/org/kie/sonataflow/swf/tools/runtime/rpc/SonataFlowQuarkusExtensionJsonRPCService.java
+++
b/packages/sonataflow-quarkus-devui/sonataflow-quarkus-devui/src/main/java/org/kie/sonataflow/swf/tools/runtime/rpc/SonataFlowQuarkusExtensionJsonRPCService.java
@@ -16,31 +16,83 @@
package org.kie.sonataflow.swf.tools.runtime.rpc;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.Optional;
import java.util.function.Supplier;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import io.smallrye.common.annotation.NonBlocking;
+import io.smallrye.mutiny.Uni;
+import io.vertx.core.Vertx;
+import io.vertx.core.json.JsonObject;
+import io.vertx.ext.web.client.WebClient;
+import io.vertx.ext.web.client.WebClientOptions;
+import jakarta.annotation.PostConstruct;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
-import org.eclipse.microprofile.rest.client.inject.RestClient;
-import org.kie.sonataflow.swf.tools.runtime.dataindex.DataIndexClient;
+import org.eclipse.microprofile.config.ConfigProvider;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
@ApplicationScoped
public class SonataFlowQuarkusExtensionJsonRPCService {
+ private static final String DATA_INDEX_URL = "kogito.data-index.url";
+
+ private static final Logger LOGGER =
LoggerFactory.getLogger(SonataFlowQuarkusExtensionJsonRPCService.class);
+
+ public static final String PROCESS_INSTANCES = "ProcessInstances";
+
public static final String ALL_WORKFLOWS_IDS_QUERY = "{ \"operationName\":
\"getAllProcessesIds\", \"query\": \"query getAllProcessesIds{
ProcessInstances{ id } }\" }";
- private final ObjectMapper mapper;
- private final DataIndexClient dataIndexClient;
+ private WebClient dataIndexWebClient;
+
+ private final Vertx vertx;
@Inject
- public SonataFlowQuarkusExtensionJsonRPCService(ObjectMapper mapper,
@RestClient DataIndexClient dataIndexClient) {
- this.mapper = mapper;
- this.dataIndexClient = dataIndexClient;
+ public SonataFlowQuarkusExtensionJsonRPCService(Vertx vertx) {
+ this.vertx = vertx;
+ }
+
+ @PostConstruct
+ public void init() {
+ Optional<String> dataIndexURL =
ConfigProvider.getConfig().getOptionalValue(DATA_INDEX_URL, String.class);
+ dataIndexURL.ifPresent(this::initDataIndexWebClient);
+ }
+
+ private void initDataIndexWebClient(String dataIndexURL) {
+ try {
+ this.dataIndexWebClient = WebClient.create(vertx,
buildWebClientOptions(dataIndexURL));
+ } catch (Exception ex) {
+ LOGGER.warn("Cannot configure dataIndexWebClient with
'kogito.data-index.url'='{}':", dataIndexURL, ex);
+ }
+ }
+
+ protected WebClientOptions buildWebClientOptions(String dataIndexURL)
throws MalformedURLException {
+ URL url = new URL(dataIndexURL);
+ return new WebClientOptions()
+ .setDefaultHost(url.getHost())
+ .setDefaultPort((url.getPort() != -1 ? url.getPort() :
url.getDefaultPort()))
+ .setSsl(url.getProtocol().compareToIgnoreCase("https") == 0);
+ }
+
+ public Uni<String> queryWorkflowsCount() {
+ return doQuery(ALL_WORKFLOWS_IDS_QUERY, PROCESS_INSTANCES);
}
- @NonBlocking
- public String queryWorkflowsCount() {
- return doQuery(() ->
this.dataIndexClient.queryWorkflows(ALL_WORKFLOWS_IDS_QUERY).getData().getWorkflows().size());
+ private Uni<String> doQuery(String query, String graphModelName) {
+ if(dataIndexWebClient == null) {
+ LOGGER.warn("Cannot perform '{}' query, dataIndexWebClient
couldn't be set. Is DataIndex correctly? Please verify '{}' value",
graphModelName, DATA_INDEX_URL);
+ return Uni.createFrom().item("-");
+ }
+ return
Uni.createFrom().completionStage(this.dataIndexWebClient.post("/graphql")
+ .putHeader("content-type", "application/json")
+ .sendJson(new JsonObject(query))
+ .map(response -> {
+ if(response.statusCode() == 200) {
+ JsonObject responseData =
response.bodyAsJsonObject().getJsonObject("data");
+ return
String.valueOf(responseData.getJsonArray(graphModelName).size());
+ }
+ return "-";
+ }).toCompletionStage());
}
private String doQuery(Supplier<Integer> countSupplier) {
diff --git
a/packages/sonataflow-quarkus-devui/sonataflow-quarkus-devui/src/main/resources/application.properties
b/packages/sonataflow-quarkus-devui/sonataflow-quarkus-devui/src/main/resources/application.properties
index ff385055a76..fe95886d5c1 100644
---
a/packages/sonataflow-quarkus-devui/sonataflow-quarkus-devui/src/main/resources/application.properties
+++
b/packages/sonataflow-quarkus-devui/sonataflow-quarkus-devui/src/main/resources/application.properties
@@ -16,5 +16,3 @@
# specific language governing permissions and limitations
# under the License.
#
-
-quarkus.rest-client."kogito.data-index.url".url=${kogito.data-index.url}/
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]