From 94c777d1cc042059c4fdaf6ecd85490bd175ec12 Mon Sep 17 00:00:00 2001 From: vdrokov <57255656+vdrokov@users.noreply.github.com> Date: Thu, 21 Jan 2021 16:55:41 +0200 Subject: [PATCH] TESB-31563: Microservice: ClassNotFoundException: org.eclipse.jetty.client.HttpClientTransport (#3996) --- .../core/model/process/ProcessUtils.java | 31 +++++++++++++++++++ .../TalendProcessArgumentConstant.java | 2 ++ 2 files changed, 33 insertions(+) diff --git a/main/plugins/org.talend.core.runtime/src/main/java/org/talend/core/model/process/ProcessUtils.java b/main/plugins/org.talend.core.runtime/src/main/java/org/talend/core/model/process/ProcessUtils.java index 9ab1a40b99..80bb2ac714 100644 --- a/main/plugins/org.talend.core.runtime/src/main/java/org/talend/core/model/process/ProcessUtils.java +++ b/main/plugins/org.talend.core.runtime/src/main/java/org/talend/core/model/process/ProcessUtils.java @@ -21,6 +21,7 @@ import java.util.List; import java.util.Map; import org.apache.commons.lang.StringUtils; +import org.eclipse.emf.common.util.EList; import org.talend.commons.exception.ExceptionHandler; import org.talend.commons.exception.PersistenceException; import org.talend.commons.utils.VersionUtils; @@ -53,6 +54,7 @@ import org.talend.core.utils.BitwiseOptionUtils; import org.talend.designer.core.IDesignerCoreService; import org.talend.designer.core.model.utils.emf.talendfile.ContextParameterType; import org.talend.designer.core.model.utils.emf.talendfile.ContextType; +import org.talend.designer.core.model.utils.emf.talendfile.ElementParameterType; import org.talend.designer.core.model.utils.emf.talendfile.MetadataType; import org.talend.designer.core.model.utils.emf.talendfile.NodeType; import org.talend.designer.core.model.utils.emf.talendfile.ProcessType; @@ -1016,4 +1018,33 @@ public final class ProcessUtils { public static String escapeJava(String input) { return StringEscapeUtils.escapeJava(input); } + + public static boolean hasJettyEndpoint(ProcessType process) { + + EList nodesList = process.getNode(); + + boolean hasJettyEndpoint = hasJettyEndpoint(nodesList); + + return hasJettyEndpoint; + } + + private static boolean hasJettyEndpoint(EList nodesList) { + for (NodeType node : nodesList) { + if ("cMessagingEndpoint".equals(node.getComponentName())) { + for (Object elementParameter : node.getElementParameter()) { + ElementParameterType elementParameterType = (ElementParameterType)elementParameter; + + String name = elementParameterType.getName(); + String value = elementParameterType.getValue(); + + if ("URI".equals(name) && (value != null && StringUtils.startsWith(value.trim(), "\"jetty:"))) { + return true; + } + } + } + } + + return false; + } + } diff --git a/main/plugins/org.talend.core.runtime/src/main/java/org/talend/core/runtime/process/TalendProcessArgumentConstant.java b/main/plugins/org.talend.core.runtime/src/main/java/org/talend/core/runtime/process/TalendProcessArgumentConstant.java index ec4ffc64a2..771e525edc 100644 --- a/main/plugins/org.talend.core.runtime/src/main/java/org/talend/core/runtime/process/TalendProcessArgumentConstant.java +++ b/main/plugins/org.talend.core.runtime/src/main/java/org/talend/core/runtime/process/TalendProcessArgumentConstant.java @@ -52,6 +52,8 @@ public interface TalendProcessArgumentConstant { static final String ARG_NEED_RULES = "NEED_RULES"; + static final String ARG_NEED_JETTY_SERVER = "NEED_JETTY_SERVER"; + static final String ARG_ENABLE_WATCH = "ENABLE_WATCH"; static final String ARG_NEED_PIGUDFS = "NEED_PIGUDFS";