From b982107b9bc607d4c2eb519236c733eb898a0611 Mon Sep 17 00:00:00 2001 From: Dmitrii Tikhomirov Date: Mon, 5 Aug 2024 23:48:58 -0700 Subject: [PATCH 01/12] kie-issues#1386: Improve pom.xml generated by kn-workflow-plugin (#2468) --- .../e2e-tests/quarkus_build_test.go | 3 +- .../pkg/command/quarkus/quarkus_project.go | 30 +++++++++++++++++- .../command/quarkus/quarkus_project_test.go | 2 ++ .../pom1-expected.xml_no_auto_formatting | 31 ++++++++++++++++--- .../pkg/metadata/constants.go | 4 ++- 5 files changed, 62 insertions(+), 8 deletions(-) diff --git a/packages/kn-plugin-workflow/e2e-tests/quarkus_build_test.go b/packages/kn-plugin-workflow/e2e-tests/quarkus_build_test.go index 89e1837c4be..753677c86e3 100644 --- a/packages/kn-plugin-workflow/e2e-tests/quarkus_build_test.go +++ b/packages/kn-plugin-workflow/e2e-tests/quarkus_build_test.go @@ -123,8 +123,7 @@ func RunQuarkusBuildTest(t *testing.T, cfgTestInputQuarkusCreate CfgTestInputQua require.NoErrorf(t, err, "Expected nil error, got %v", err) // Run `quarkus build` command - args := transformQuarkusBuildCmdCfgToArgs(test.input); - AddSnapshotRepositoryDeclarationToPom(t, projectDir) + args := transformQuarkusBuildCmdCfgToArgs(test.input) _, err = ExecuteKnWorkflowQuarkus(args...) require.NoErrorf(t, err, "Expected nil error, got %v", err) diff --git a/packages/kn-plugin-workflow/pkg/command/quarkus/quarkus_project.go b/packages/kn-plugin-workflow/pkg/command/quarkus/quarkus_project.go index c39e124e9ba..7befb9aa0a9 100644 --- a/packages/kn-plugin-workflow/pkg/command/quarkus/quarkus_project.go +++ b/packages/kn-plugin-workflow/pkg/command/quarkus/quarkus_project.go @@ -33,6 +33,12 @@ type CreateQuarkusProjectConfig struct { DependenciesVersion metadata.DependenciesVersion } +type Repository struct { + Id string + Name string + Url string +} + func CreateQuarkusProject(cfg CreateQuarkusProjectConfig) error { if err := common.CheckProjectName(cfg.ProjectName); err != nil { return err @@ -94,6 +100,9 @@ func manipulatePomToKogito(filename string, cfg CreateQuarkusProjectConfig) erro } versionElement.SetText(cfg.DependenciesVersion.QuarkusVersion) + properties.CreateElement("kie.version").SetText(metadata.KogitoBomDependency.Version) + properties.CreateElement("kie.tooling.version").SetText(metadata.PluginVersion) + //Add kogito bom dependency depManagement := doc.FindElement("//dependencyManagement") if depManagement == nil { @@ -108,7 +117,7 @@ func manipulatePomToKogito(filename string, cfg CreateQuarkusProjectConfig) erro dependencyElement := dependenciesManagendChild.CreateElement("dependency") dependencyElement.CreateElement("groupId").SetText(metadata.KogitoBomDependency.GroupId) dependencyElement.CreateElement("artifactId").SetText(metadata.KogitoBomDependency.ArtifactId) - dependencyElement.CreateElement("version").SetText(metadata.KogitoBomDependency.Version) + dependencyElement.CreateElement("version").SetText("${kie.version}") dependencyElement.CreateElement("type").SetText(metadata.KogitoBomDependency.Type) dependencyElement.CreateElement("scope").SetText(metadata.KogitoBomDependency.Scope) @@ -127,6 +136,25 @@ func manipulatePomToKogito(filename string, cfg CreateQuarkusProjectConfig) erro } } + //add apache repository after profiles declaration + var repositories = []Repository{ + {Id: "apache-public-repository-group", Name: "Apache Public Repository Group", Url: "https://repository.apache.org/content/groups/public/"}, + {Id: "apache-snapshot-repository-group", Name: "Apache Snapshot Repository Group", Url: "https://repository.apache.org/content/groups/snapshots/"}, + } + + var project = doc.FindElement("//project") + repositoriesElement := project.FindElement("//repositories") + if repositoriesElement == nil { + repositoriesElement = project.CreateElement("repositories") + } + + for _, repo := range repositories { + var repository = repositoriesElement.CreateElement("repository") + repository.CreateElement("id").SetText(repo.Id) + repository.CreateElement("name").SetText(repo.Name) + repository.CreateElement("url").SetText(repo.Url) + } + doc.Indent(4) if err := doc.WriteToFile(filename); err != nil { diff --git a/packages/kn-plugin-workflow/pkg/command/quarkus/quarkus_project_test.go b/packages/kn-plugin-workflow/pkg/command/quarkus/quarkus_project_test.go index fc04e96a4d1..98ccab8c5e9 100644 --- a/packages/kn-plugin-workflow/pkg/command/quarkus/quarkus_project_test.go +++ b/packages/kn-plugin-workflow/pkg/command/quarkus/quarkus_project_test.go @@ -30,6 +30,8 @@ func TestManipulatePom(t *testing.T) { //setup metadata.KogitoVersion = "1.0.0.Final" + metadata.PluginVersion = "0.0.0" + metadata.KogitoBomDependency.Version = "0.0.0" inputPath := "testdata/pom1-input.xml_no_auto_formatting" expectedPath := "testdata/pom1-expected.xml_no_auto_formatting" diff --git a/packages/kn-plugin-workflow/pkg/command/quarkus/testdata/pom1-expected.xml_no_auto_formatting b/packages/kn-plugin-workflow/pkg/command/quarkus/testdata/pom1-expected.xml_no_auto_formatting index ecb8faa0730..bb3565def75 100644 --- a/packages/kn-plugin-workflow/pkg/command/quarkus/testdata/pom1-expected.xml_no_auto_formatting +++ b/packages/kn-plugin-workflow/pkg/command/quarkus/testdata/pom1-expected.xml_no_auto_formatting @@ -14,6 +14,8 @@ 0.0.1 true 3.2.5 + 0.0.0 + 0.0.0 @@ -34,7 +36,7 @@ org.kie.kogito kogito-bom - + ${kie.version} pom import @@ -85,20 +87,29 @@ org.kie - kie-addons-quarkus-source-files + kie-addons-quarkus-process-management - org.apache.kie.sonataflow - sonataflow-quarkus-devui + org.kie + kie-addons-quarkus-source-files org.kie kogito-addons-quarkus-data-index-inmemory + + org.kie + kogito-addons-quarkus-jobs-service-embedded + org.apache.kie.sonataflow sonataflow-quarkus + + org.apache.kie.sonataflow + sonataflow-quarkus-devui + ${kie.tooling.version} + @@ -172,4 +183,16 @@ + + + apache-public-repository-group + Apache Public Repository Group + https://repository.apache.org/content/groups/public/ + + + apache-snapshot-repository-group + Apache Snapshot Repository Group + https://repository.apache.org/content/groups/snapshots/ + + diff --git a/packages/kn-plugin-workflow/pkg/metadata/constants.go b/packages/kn-plugin-workflow/pkg/metadata/constants.go index 2b84c2b3361..601dee87cb6 100644 --- a/packages/kn-plugin-workflow/pkg/metadata/constants.go +++ b/packages/kn-plugin-workflow/pkg/metadata/constants.go @@ -40,10 +40,12 @@ var KogitoBomDependency = Dependency{ // of created and converted Quarkus projects. var KogitoDependencies = []Dependency{ {GroupId: "org.kie", ArtifactId: "kie-addons-quarkus-knative-eventing"}, + {GroupId: "org.kie", ArtifactId: "kie-addons-quarkus-process-management"}, {GroupId: "org.kie", ArtifactId: "kie-addons-quarkus-source-files"}, - {GroupId: "org.apache.kie.sonataflow", ArtifactId: "sonataflow-quarkus-devui", Version: PluginVersion}, {GroupId: "org.kie", ArtifactId: "kogito-addons-quarkus-data-index-inmemory"}, + {GroupId: "org.kie", ArtifactId: "kogito-addons-quarkus-jobs-service-embedded"}, {GroupId: "org.apache.kie.sonataflow", ArtifactId: "sonataflow-quarkus"}, + {GroupId: "org.apache.kie.sonataflow", ArtifactId: "sonataflow-quarkus-devui", Version: "${kie.tooling.version}"}, } const ( From 084154c3fcdb5f5eb0bd201400f392cd872bda5a Mon Sep 17 00:00:00 2001 From: Walter Medvedeo Date: Tue, 6 Aug 2024 17:18:13 +0200 Subject: [PATCH 02/12] kie-tools-2483: sonataflow-quarkus-devui: send the DevUI webapp a parameter to recognize we are in a local cluster (#2510) --- .../tools/deployment/DevConsoleProcessor.java | 9 ++++-- .../dev-ui/qwc-sonataflow-quarkus-devui.js | 25 +++++++++------- ...ataFlowQuarkusExtensionJsonRPCService.java | 30 +++++++++++-------- 3 files changed, 38 insertions(+), 26 deletions(-) diff --git a/packages/sonataflow-quarkus-devui/sonataflow-quarkus-devui-deployment/src/main/java/org/kie/sonataflow/swf/tools/deployment/DevConsoleProcessor.java b/packages/sonataflow-quarkus-devui/sonataflow-quarkus-devui-deployment/src/main/java/org/kie/sonataflow/swf/tools/deployment/DevConsoleProcessor.java index c047eda5dc5..b5e8285bb20 100644 --- a/packages/sonataflow-quarkus-devui/sonataflow-quarkus-devui-deployment/src/main/java/org/kie/sonataflow/swf/tools/deployment/DevConsoleProcessor.java +++ b/packages/sonataflow-quarkus-devui/sonataflow-quarkus-devui-deployment/src/main/java/org/kie/sonataflow/swf/tools/deployment/DevConsoleProcessor.java @@ -108,15 +108,18 @@ public CardPageBuildItem pages( String openapiPath = getProperty(configurationBuildItem, systemPropertyBuildItems, "quarkus.smallrye-openapi.path"); String devUIUrl = getProperty(configurationBuildItem, systemPropertyBuildItems, "kogito.dev-ui.url"); - String dataIndexUrl = getProperty(configurationBuildItem, systemPropertyBuildItems, "kogito.data-index.url"); + String dataIndexUrl = null; cardPageBuildItem.addBuildTimeData("extensionBasePath", uiPath); cardPageBuildItem.addBuildTimeData("openapiPath", openapiPath); cardPageBuildItem.addBuildTimeData("devUIUrl", devUIUrl); - cardPageBuildItem.addBuildTimeData("dataIndexUrl", dataIndexUrl); - boolean isLocalCluster = ConfigProvider.getConfig().getOptionalValue(IS_LOCAL_CLUSTER, Boolean.class).orElse(false); + boolean isLocalCluster = ConfigProvider.getConfig().getOptionalValue(IS_LOCAL_CLUSTER, Boolean.class).orElse(true); cardPageBuildItem.addBuildTimeData("isLocalCluster", isLocalCluster); + if (!isLocalCluster) { + dataIndexUrl = getProperty(configurationBuildItem, systemPropertyBuildItems, "kogito.data-index.url"); + } + cardPageBuildItem.addBuildTimeData("dataIndexUrl", dataIndexUrl); cardPageBuildItem.addPage(Page.webComponentPageBuilder() .componentLink("qwc-sonataflow-quarkus-devui.js") diff --git a/packages/sonataflow-quarkus-devui/sonataflow-quarkus-devui-deployment/src/main/resources/dev-ui/qwc-sonataflow-quarkus-devui.js b/packages/sonataflow-quarkus-devui/sonataflow-quarkus-devui-deployment/src/main/resources/dev-ui/qwc-sonataflow-quarkus-devui.js index a9075811e52..bd5920665c1 100644 --- a/packages/sonataflow-quarkus-devui/sonataflow-quarkus-devui-deployment/src/main/resources/dev-ui/qwc-sonataflow-quarkus-devui.js +++ b/packages/sonataflow-quarkus-devui/sonataflow-quarkus-devui-deployment/src/main/resources/dev-ui/qwc-sonataflow-quarkus-devui.js @@ -1,17 +1,20 @@ /* - * Copyright 2024 Red Hat, Inc. and/or its affiliates. + * 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 * - * Licensed 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 * - * 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. + * 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. */ import { html, LitElement } from "lit"; 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 d148ba7aa0c..a6cdc7e5de0 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 @@ -1,17 +1,20 @@ /* - * Copyright 2024 Red Hat, Inc. and/or its affiliates. + * 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 * - * Licensed 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 * - * 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. + * 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.rpc; @@ -43,6 +46,9 @@ public class SonataFlowQuarkusExtensionJsonRPCService { public static final String ALL_WORKFLOWS_IDS_QUERY = "{ \"operationName\": \"getAllProcessesIds\", \"query\": \"query getAllProcessesIds{ ProcessInstances{ id } }\" }"; + /** + * Configures if the sonataflow-quarkus-devui will execute deployed in a k8s. + */ public static final String IS_LOCAL_CLUSTER = "sonataflow.devui.isLocalCluster"; private WebClient dataIndexWebClient; @@ -58,7 +64,7 @@ public SonataFlowQuarkusExtensionJsonRPCService(Vertx vertx) { @PostConstruct public void init() { - isLocalCluster = ConfigProvider.getConfig().getOptionalValue(IS_LOCAL_CLUSTER, Boolean.class).orElse(false); + isLocalCluster = ConfigProvider.getConfig().getOptionalValue(IS_LOCAL_CLUSTER, Boolean.class).orElse(true); if (!isLocalCluster) { Optional dataIndexURL = ConfigProvider.getConfig().getOptionalValue(DATA_INDEX_URL, String.class); dataIndexURL.ifPresent(this::initDataIndexWebClient); From a013c209f8c359bfc170abc5e6d907a5f6e49a0f Mon Sep 17 00:00:00 2001 From: Jozef Marko Date: Tue, 6 Aug 2024 19:32:16 +0200 Subject: [PATCH 03/12] kie-issues#947: Playwright expansion phase - part 3 - DRDs (#2462) --- .../src/diagram/DrdSelectorPanel.tsx | 10 +- packages/dmn-editor/src/diagram/Palette.tsx | 12 +- .../src/propertiesPanel/ShapeOptions.tsx | 10 +- .../dmn-editor/tests-e2e/__fixtures__/base.ts | 10 + .../dmn-editor/tests-e2e/__fixtures__/drds.ts | 56 +++ .../tests-e2e/__fixtures__/drgNodes.ts | 42 ++ .../propertiesPanel/parts/shapeProperties.ts | 10 +- .../drds/drds-decision-missing-dependency.png | Bin 0 -> 41144 bytes .../drds-decision-no-missing-dependency.png | Bin 0 -> 57096 bytes .../drds/drds-decision-missing-dependency.png | Bin 0 -> 41199 bytes .../drds-decision-no-missing-dependency.png | Bin 0 -> 57144 bytes .../drds/drds-decision-missing-dependency.png | Bin 0 -> 36645 bytes .../drds-decision-no-missing-dependency.png | Bin 0 -> 43095 bytes .../drds/modelDecisionServicesInDrds.spec.ts | 242 +++++++++++ .../tests-e2e/drds/modelDrd.spec.ts | 376 ++++++++++++++++++ 15 files changed, 760 insertions(+), 8 deletions(-) create mode 100644 packages/dmn-editor/tests-e2e/__fixtures__/drds.ts create mode 100644 packages/dmn-editor/tests-e2e/__fixtures__/drgNodes.ts create mode 100644 packages/dmn-editor/tests-e2e/__screenshots__/Google-Chrome/drds/drds-decision-missing-dependency.png create mode 100644 packages/dmn-editor/tests-e2e/__screenshots__/Google-Chrome/drds/drds-decision-no-missing-dependency.png create mode 100644 packages/dmn-editor/tests-e2e/__screenshots__/chromium/drds/drds-decision-missing-dependency.png create mode 100644 packages/dmn-editor/tests-e2e/__screenshots__/chromium/drds/drds-decision-no-missing-dependency.png create mode 100644 packages/dmn-editor/tests-e2e/__screenshots__/webkit/drds/drds-decision-missing-dependency.png create mode 100644 packages/dmn-editor/tests-e2e/__screenshots__/webkit/drds/drds-decision-no-missing-dependency.png create mode 100644 packages/dmn-editor/tests-e2e/drds/modelDecisionServicesInDrds.spec.ts create mode 100644 packages/dmn-editor/tests-e2e/drds/modelDrd.spec.ts diff --git a/packages/dmn-editor/src/diagram/DrdSelectorPanel.tsx b/packages/dmn-editor/src/diagram/DrdSelectorPanel.tsx index 65f6b15cc7c..2f1f12611ee 100644 --- a/packages/dmn-editor/src/diagram/DrdSelectorPanel.tsx +++ b/packages/dmn-editor/src/diagram/DrdSelectorPanel.tsx @@ -72,7 +72,7 @@ export function DrdSelectorPanel() { columnGap: "40px", }} > -
+
DRDs @@ -115,7 +115,11 @@ export function DrdSelectorPanel() { )) || ( -
+
{drds.map((drd, i) => ( )} diff --git a/packages/dmn-editor/src/diagram/Palette.tsx b/packages/dmn-editor/src/diagram/Palette.tsx index 77a7f980b2a..665bb25f28d 100644 --- a/packages/dmn-editor/src/diagram/Palette.tsx +++ b/packages/dmn-editor/src/diagram/Palette.tsx @@ -102,7 +102,11 @@ export function Palette({ pulse }: { pulse: boolean }) { return ( <> -