From 11edd6ed3c247c13e7743494a095d2c37d6c9acc Mon Sep 17 00:00:00 2001 From: sanagaraj-pivotal Date: Fri, 8 Apr 2022 14:37:38 +0530 Subject: [PATCH 1/6] HTTP Failing test --- .../actions/MuleToJavaDSLHttpOutbound.java | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 components/sbm-recipes-mule-to-boot/src/test/java/org/springframework/sbm/mule/actions/MuleToJavaDSLHttpOutbound.java diff --git a/components/sbm-recipes-mule-to-boot/src/test/java/org/springframework/sbm/mule/actions/MuleToJavaDSLHttpOutbound.java b/components/sbm-recipes-mule-to-boot/src/test/java/org/springframework/sbm/mule/actions/MuleToJavaDSLHttpOutbound.java new file mode 100644 index 000000000..4762b35de --- /dev/null +++ b/components/sbm-recipes-mule-to-boot/src/test/java/org/springframework/sbm/mule/actions/MuleToJavaDSLHttpOutbound.java @@ -0,0 +1,50 @@ +/* + * Copyright 2021 - 2022 the original author or authors. + * + * 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 + * + * https://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.springframework.sbm.mule.actions; + +import org.junit.jupiter.api.Test; + +import static org.assertj.core.api.Assertions.assertThat; + +public class MuleToJavaDSLHttpOutbound extends JavaDSLActionBaseTest { + private static final String xml = "\n" + + "\n" + + "\n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + "\n"; + + @Test + public void supportForHttpOutboundRequest() { + addXMLFileToResource(xml); + runAction(); + assertThat(projectContext.getProjectJavaSources().list()).hasSize(1); + assertThat(projectContext.getProjectJavaSources().list().get(0).print()) + .isEqualTo("Hello World"); + } +} From ee38a044170b2a5413bad3ba9aa9038ea517b40d Mon Sep 17 00:00:00 2001 From: sanagaraj-pivotal Date: Wed, 13 Apr 2022 12:40:06 +0530 Subject: [PATCH 2/6] Passing Test --- .../http/HttpRequestTranslator.java | 60 ++++--------------- .../mule/actions/JavaDSLActionBaseTest.java | 4 +- .../actions/MuleToJavaDSLHttpOutbound.java | 35 ++++++++--- 3 files changed, 44 insertions(+), 55 deletions(-) diff --git a/components/sbm-recipes-mule-to-boot/src/main/java/org/springframework/sbm/mule/actions/javadsl/translators/http/HttpRequestTranslator.java b/components/sbm-recipes-mule-to-boot/src/main/java/org/springframework/sbm/mule/actions/javadsl/translators/http/HttpRequestTranslator.java index 356ed3d0f..e158510bc 100644 --- a/components/sbm-recipes-mule-to-boot/src/main/java/org/springframework/sbm/mule/actions/javadsl/translators/http/HttpRequestTranslator.java +++ b/components/sbm-recipes-mule-to-boot/src/main/java/org/springframework/sbm/mule/actions/javadsl/translators/http/HttpRequestTranslator.java @@ -31,10 +31,9 @@ import java.io.IOException; import java.io.StringReader; import java.io.StringWriter; -import java.util.Collections; -import java.util.HashMap; -import java.util.Map; -import java.util.Optional; +import java.util.*; + +import static java.util.Collections.emptySet; /** * Translator for {@code } elements.spring integration @@ -46,9 +45,6 @@ @Component public class HttpRequestTranslator implements MuleComponentToSpringIntegrationDslTranslator { - @Autowired - private Configuration configuration; - @Override public Class getSupportedMuleType() { return RequestType.class; @@ -60,45 +56,15 @@ public DslSnippet translate(RequestType component, MuleConfigurations muleConfigurations, String flowName) { - - String templateStr = "return IntegrationFlows\n" + - " .from\n" + - " (\n" + - " Http.inboundChannelAdapter(\"${host}<#if port?has_content>:${port}/${basePath}\")\n" + - " .requestMapping(m -> m.methods(HttpMethod.GET))\n" + - "<#if responseTimeout?has_content>" + - " .replyTimeout(${responseTimeout})\n" + - "" + - " )\n" + - " .channel(INBOUND_DEMO_CHANNEL)\n" + - " .get();"; - - try { - Map data = new HashMap<>(); - - // TODO: requires access to config, e.g. muleMigrationContext.getConfigRef("...") - String configRef = component.getConfigRef(); - Optional configurationTypeAdapter = muleConfigurations.find(configRef); - if(configurationTypeAdapter.isPresent()) { - RequestConfigType cast = (RequestConfigType) configurationTypeAdapter.get().getMuleConfiguration(); - data.put("host", cast.getHost()); - data.put("port", cast.getPort()); - } - - - data.put("basePath", component.getPath()); - data.put("method", component.getMethod()); - data.put("responseTimeout", component.getResponseTimeout()); - Template t = new Template("name", new StringReader(templateStr), configuration); - StringWriter stringWriter = new StringWriter(); - t.process(data, - stringWriter); - return new DslSnippet(stringWriter.toString(), Collections.emptySet()); - } catch (IOException | TemplateException e) { - e.printStackTrace(); - } - - - return null; + return new DslSnippet( + " .headerFilter(\"accept-encoding\", false)\n" + + " .handle(\n" + + " Http.outboundGateway(\"https://catfact.ninja:443/fact\")\n" + + " .httpMethod(HttpMethod.GET)\n" + + " //FIXME: Use appropriate response class type here instead of String.class\n" + + " .expectedResponseType(String.class)\n" + + " )", + Set.of("org.springframework.http.HttpMethod") + ); } } diff --git a/components/sbm-recipes-mule-to-boot/src/test/java/org/springframework/sbm/mule/actions/JavaDSLActionBaseTest.java b/components/sbm-recipes-mule-to-boot/src/test/java/org/springframework/sbm/mule/actions/JavaDSLActionBaseTest.java index 7199037eb..c9eb5bacc 100644 --- a/components/sbm-recipes-mule-to-boot/src/test/java/org/springframework/sbm/mule/actions/JavaDSLActionBaseTest.java +++ b/components/sbm-recipes-mule-to-boot/src/test/java/org/springframework/sbm/mule/actions/JavaDSLActionBaseTest.java @@ -30,6 +30,7 @@ import org.springframework.sbm.mule.actions.javadsl.translators.dwl.DwlTransformTranslator; import org.springframework.sbm.mule.actions.javadsl.translators.http.HttpListenerConfigTypeAdapter; import org.springframework.sbm.mule.actions.javadsl.translators.http.HttpListenerTranslator; +import org.springframework.sbm.mule.actions.javadsl.translators.http.HttpRequestTranslator; import org.springframework.sbm.mule.actions.javadsl.translators.logging.LoggingTranslator; import org.springframework.sbm.mule.actions.javadsl.translators.wmq.WmqConnectorTypeAdapter; import org.springframework.sbm.mule.actions.javadsl.translators.wmq.WmqInboundEndpointTranslator; @@ -73,7 +74,8 @@ public void setup() { new TransformerTranslator(), new WmqOutboundEndpointTranslator(), new WmqInboundEndpointTranslator(), - new DwlTransformTranslator() + new DwlTransformTranslator(), + new HttpRequestTranslator() ); List topLevelTypeFactories = List.of( new FlowTopLevelElementFactory(translators), diff --git a/components/sbm-recipes-mule-to-boot/src/test/java/org/springframework/sbm/mule/actions/MuleToJavaDSLHttpOutbound.java b/components/sbm-recipes-mule-to-boot/src/test/java/org/springframework/sbm/mule/actions/MuleToJavaDSLHttpOutbound.java index 4762b35de..39d30e244 100644 --- a/components/sbm-recipes-mule-to-boot/src/test/java/org/springframework/sbm/mule/actions/MuleToJavaDSLHttpOutbound.java +++ b/components/sbm-recipes-mule-to-boot/src/test/java/org/springframework/sbm/mule/actions/MuleToJavaDSLHttpOutbound.java @@ -19,7 +19,7 @@ import static org.assertj.core.api.Assertions.assertThat; -public class MuleToJavaDSLHttpOutbound extends JavaDSLActionBaseTest { +public class MuleToJavaDSLHttpOutbound extends JavaDSLActionBaseTest { private static final String xml = "\n" + "\n" + "\n" + " \n" + - " \n" + + " \n" + " \n" + - " \n" + - " \n" + - " \n" + + " \n" + + " \n" + " \n" + " \n" + - "\n"; + ""; @Test public void supportForHttpOutboundRequest() { @@ -45,6 +44,28 @@ public void supportForHttpOutboundRequest() { runAction(); assertThat(projectContext.getProjectJavaSources().list()).hasSize(1); assertThat(projectContext.getProjectJavaSources().list().get(0).print()) - .isEqualTo("Hello World"); + .isEqualTo("package com.example.javadsl;\n" + + "import org.springframework.context.annotation.Bean;\n" + + "import org.springframework.context.annotation.Configuration;\n" + + "import org.springframework.http.HttpMethod;\n" + + "import org.springframework.integration.dsl.IntegrationFlow;\n" + + "import org.springframework.integration.dsl.IntegrationFlows;\n" + + "import org.springframework.integration.http.dsl.Http;\n" + + "\n" + + "@Configuration\n" + + "public class FlowConfigurations {\n" + + " @Bean\n" + + " IntegrationFlow httpFlow() {\n" + + " return IntegrationFlows.from(Http.inboundChannelAdapter(\"/gimme-a-cat-fact\")).handle((p, h) -> p)\n" + + " .headerFilter(\"accept-encoding\", false)\n" + + " .handle(\n" + + " Http.outboundGateway(\"https://catfact.ninja:443/fact\")\n" + + " .httpMethod(HttpMethod.GET)\n" + + " //FIXME: Use appropriate response class type here instead of String.class\n" + + " .expectedResponseType(String.class)\n" + + " )\n" + + " .handle((p, h) -> \"#[payload]\")\n" + + " .get();\n" + + " }}"); } } From f3dd0ab66fc86e9bccc966f38234c63e08ec016a Mon Sep 17 00:00:00 2001 From: sanagaraj-pivotal Date: Wed, 13 Apr 2022 12:51:41 +0530 Subject: [PATCH 3/6] Passing Test, refactor --- .../http/HttpRequestTranslator.java | 38 ++++++++++--------- 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/components/sbm-recipes-mule-to-boot/src/main/java/org/springframework/sbm/mule/actions/javadsl/translators/http/HttpRequestTranslator.java b/components/sbm-recipes-mule-to-boot/src/main/java/org/springframework/sbm/mule/actions/javadsl/translators/http/HttpRequestTranslator.java index e158510bc..6ec676147 100644 --- a/components/sbm-recipes-mule-to-boot/src/main/java/org/springframework/sbm/mule/actions/javadsl/translators/http/HttpRequestTranslator.java +++ b/components/sbm-recipes-mule-to-boot/src/main/java/org/springframework/sbm/mule/actions/javadsl/translators/http/HttpRequestTranslator.java @@ -15,25 +15,15 @@ */ package org.springframework.sbm.mule.actions.javadsl.translators.http; -import freemarker.template.Configuration; -import freemarker.template.Template; -import freemarker.template.TemplateException; -import org.mulesoft.schema.mule.http.RequestConfigType; import org.mulesoft.schema.mule.http.RequestType; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.sbm.mule.actions.javadsl.translators.DslSnippet; import org.springframework.sbm.mule.actions.javadsl.translators.MuleComponentToSpringIntegrationDslTranslator; -import org.springframework.sbm.mule.api.toplevel.configuration.ConfigurationTypeAdapter; import org.springframework.sbm.mule.api.toplevel.configuration.MuleConfigurations; import org.springframework.stereotype.Component; import javax.xml.namespace.QName; -import java.io.IOException; -import java.io.StringReader; -import java.io.StringWriter; import java.util.*; -import static java.util.Collections.emptySet; /** * Translator for {@code } elements.spring integration @@ -50,21 +40,33 @@ public Class getSupportedMuleType() { return RequestType.class; } + private static final String template = " .headerFilter(\"accept-encoding\", false)\n" + + " .handle(\n" + + " Http.outboundGateway(\"https://catfact.ninja:443$PATH\")\n" + + " .httpMethod(HttpMethod.$METHOD)\n" + + " //FIXME: Use appropriate response class type here instead of String.class\n" + + " .expectedResponseType(String.class)\n" + + " )"; + @Override public DslSnippet translate(RequestType component, QName name, MuleConfigurations muleConfigurations, String flowName) { - return new DslSnippet( - " .headerFilter(\"accept-encoding\", false)\n" + - " .handle(\n" + - " Http.outboundGateway(\"https://catfact.ninja:443/fact\")\n" + - " .httpMethod(HttpMethod.GET)\n" + - " //FIXME: Use appropriate response class type here instead of String.class\n" + - " .expectedResponseType(String.class)\n" + - " )", + template + .replace("$PATH", emptyStringIfNull(component.getPath())) + .replace("$METHOD", defaultToGetIfNull(component.getMethod())) + , Set.of("org.springframework.http.HttpMethod") ); } + + private String defaultToGetIfNull(String originalValue) { + return originalValue == null ? "GET" : originalValue; + } + + private String emptyStringIfNull(String value) { + return value == null ? "" : value; + } } From 6152945e63809668e39452f155cab3af1ce5ec39 Mon Sep 17 00:00:00 2001 From: sanagaraj-pivotal Date: Wed, 13 Apr 2022 14:00:50 +0530 Subject: [PATCH 4/6] Host and port are not hardcoded anymore --- .../javadsl/translators/http/HttpRequestTranslator.java | 8 +++++++- .../configuration/MuleConfigurationsExtractor.java | 6 +++++- .../sbm/mule/actions/JavaDSLActionBaseTest.java | 4 +++- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/components/sbm-recipes-mule-to-boot/src/main/java/org/springframework/sbm/mule/actions/javadsl/translators/http/HttpRequestTranslator.java b/components/sbm-recipes-mule-to-boot/src/main/java/org/springframework/sbm/mule/actions/javadsl/translators/http/HttpRequestTranslator.java index 6ec676147..ab2756af5 100644 --- a/components/sbm-recipes-mule-to-boot/src/main/java/org/springframework/sbm/mule/actions/javadsl/translators/http/HttpRequestTranslator.java +++ b/components/sbm-recipes-mule-to-boot/src/main/java/org/springframework/sbm/mule/actions/javadsl/translators/http/HttpRequestTranslator.java @@ -15,6 +15,7 @@ */ package org.springframework.sbm.mule.actions.javadsl.translators.http; +import org.mulesoft.schema.mule.http.RequestConfigType; import org.mulesoft.schema.mule.http.RequestType; import org.springframework.sbm.mule.actions.javadsl.translators.DslSnippet; import org.springframework.sbm.mule.actions.javadsl.translators.MuleComponentToSpringIntegrationDslTranslator; @@ -42,7 +43,7 @@ public Class getSupportedMuleType() { private static final String template = " .headerFilter(\"accept-encoding\", false)\n" + " .handle(\n" + - " Http.outboundGateway(\"https://catfact.ninja:443$PATH\")\n" + + " Http.outboundGateway(\"https://$HOST:$PORT$PATH\")\n" + " .httpMethod(HttpMethod.$METHOD)\n" + " //FIXME: Use appropriate response class type here instead of String.class\n" + " .expectedResponseType(String.class)\n" + @@ -53,10 +54,15 @@ public DslSnippet translate(RequestType component, QName name, MuleConfigurations muleConfigurations, String flowName) { + + RequestConfigType config = + (RequestConfigType) muleConfigurations.getConfigurations().get(component.getConfigRef()).getMuleConfiguration(); return new DslSnippet( template .replace("$PATH", emptyStringIfNull(component.getPath())) .replace("$METHOD", defaultToGetIfNull(component.getMethod())) + .replace("$HOST", emptyStringIfNull(config.getHost())) + .replace("$PORT", emptyStringIfNull(config.getPort())) , Set.of("org.springframework.http.HttpMethod") ); diff --git a/components/sbm-recipes-mule-to-boot/src/main/java/org/springframework/sbm/mule/api/toplevel/configuration/MuleConfigurationsExtractor.java b/components/sbm-recipes-mule-to-boot/src/main/java/org/springframework/sbm/mule/api/toplevel/configuration/MuleConfigurationsExtractor.java index ccc7e25f1..05aa1c3b7 100644 --- a/components/sbm-recipes-mule-to-boot/src/main/java/org/springframework/sbm/mule/api/toplevel/configuration/MuleConfigurationsExtractor.java +++ b/components/sbm-recipes-mule-to-boot/src/main/java/org/springframework/sbm/mule/api/toplevel/configuration/MuleConfigurationsExtractor.java @@ -51,7 +51,11 @@ public Map> extractAllConfigurations(List aClass = jaxbElement.getValue().getClass(); - Set configTypes = Set.of(RequestConfigType.class, ConfigurationType.class, AbstractConnectorType.class, ListenerConfigType.class); + Set configTypes = Set.of(RequestConfigType.class, + ConfigurationType.class, + AbstractConnectorType.class, + ListenerConfigType.class + ); return configTypes.stream() .anyMatch(ct -> ct.isAssignableFrom(aClass)); } diff --git a/components/sbm-recipes-mule-to-boot/src/test/java/org/springframework/sbm/mule/actions/JavaDSLActionBaseTest.java b/components/sbm-recipes-mule-to-boot/src/test/java/org/springframework/sbm/mule/actions/JavaDSLActionBaseTest.java index c9eb5bacc..64129402b 100644 --- a/components/sbm-recipes-mule-to-boot/src/test/java/org/springframework/sbm/mule/actions/JavaDSLActionBaseTest.java +++ b/components/sbm-recipes-mule-to-boot/src/test/java/org/springframework/sbm/mule/actions/JavaDSLActionBaseTest.java @@ -31,6 +31,7 @@ import org.springframework.sbm.mule.actions.javadsl.translators.http.HttpListenerConfigTypeAdapter; import org.springframework.sbm.mule.actions.javadsl.translators.http.HttpListenerTranslator; import org.springframework.sbm.mule.actions.javadsl.translators.http.HttpRequestTranslator; +import org.springframework.sbm.mule.actions.javadsl.translators.http.RequestConfigTypeAdapter; import org.springframework.sbm.mule.actions.javadsl.translators.logging.LoggingTranslator; import org.springframework.sbm.mule.actions.javadsl.translators.wmq.WmqConnectorTypeAdapter; import org.springframework.sbm.mule.actions.javadsl.translators.wmq.WmqInboundEndpointTranslator; @@ -86,7 +87,8 @@ public void setup() { List.of( new AmqpConfigTypeAdapter(), new HttpListenerConfigTypeAdapter(), - new WmqConnectorTypeAdapter() + new WmqConnectorTypeAdapter(), + new RequestConfigTypeAdapter() ) ); MuleMigrationContextFactory muleMigrationContextFactory = new MuleMigrationContextFactory(new MuleConfigurationsExtractor(configurationTypeAdapterFactory)); From e8130ad1d428dfd75e015436dde7051e6b54f9af Mon Sep 17 00:00:00 2001 From: sanagaraj-pivotal Date: Wed, 13 Apr 2022 14:05:28 +0530 Subject: [PATCH 5/6] protocol is not hardcoded anymore --- .../translators/http/HttpRequestTranslator.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/components/sbm-recipes-mule-to-boot/src/main/java/org/springframework/sbm/mule/actions/javadsl/translators/http/HttpRequestTranslator.java b/components/sbm-recipes-mule-to-boot/src/main/java/org/springframework/sbm/mule/actions/javadsl/translators/http/HttpRequestTranslator.java index ab2756af5..914cebb1d 100644 --- a/components/sbm-recipes-mule-to-boot/src/main/java/org/springframework/sbm/mule/actions/javadsl/translators/http/HttpRequestTranslator.java +++ b/components/sbm-recipes-mule-to-boot/src/main/java/org/springframework/sbm/mule/actions/javadsl/translators/http/HttpRequestTranslator.java @@ -43,7 +43,7 @@ public Class getSupportedMuleType() { private static final String template = " .headerFilter(\"accept-encoding\", false)\n" + " .handle(\n" + - " Http.outboundGateway(\"https://$HOST:$PORT$PATH\")\n" + + " Http.outboundGateway(\"$PROTOCOL://$HOST:$PORT$PATH\")\n" + " .httpMethod(HttpMethod.$METHOD)\n" + " //FIXME: Use appropriate response class type here instead of String.class\n" + " .expectedResponseType(String.class)\n" + @@ -55,21 +55,24 @@ public DslSnippet translate(RequestType component, MuleConfigurations muleConfigurations, String flowName) { + // TODO: What if config is null ? RequestConfigType config = (RequestConfigType) muleConfigurations.getConfigurations().get(component.getConfigRef()).getMuleConfiguration(); return new DslSnippet( template .replace("$PATH", emptyStringIfNull(component.getPath())) - .replace("$METHOD", defaultToGetIfNull(component.getMethod())) + .replace("$METHOD", defaultToValueIfNull(component.getMethod(), "GET")) .replace("$HOST", emptyStringIfNull(config.getHost())) .replace("$PORT", emptyStringIfNull(config.getPort())) + .replace("$PROTOCOL", defaultToValueIfNull(config.getProtocol(), "http").toLowerCase()) , Set.of("org.springframework.http.HttpMethod") ); } - private String defaultToGetIfNull(String originalValue) { - return originalValue == null ? "GET" : originalValue; + private String defaultToValueIfNull(String originalValue, String defaultValue) { + + return originalValue == null ? defaultValue : originalValue; } private String emptyStringIfNull(String value) { From 503546542abbf8614d7de83b41927f422604f99f Mon Sep 17 00:00:00 2001 From: sanagaraj-pivotal Date: Wed, 13 Apr 2022 15:53:45 +0530 Subject: [PATCH 6/6] Null pointer exception guards --- .../http/HttpRequestTranslator.java | 22 ++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/components/sbm-recipes-mule-to-boot/src/main/java/org/springframework/sbm/mule/actions/javadsl/translators/http/HttpRequestTranslator.java b/components/sbm-recipes-mule-to-boot/src/main/java/org/springframework/sbm/mule/actions/javadsl/translators/http/HttpRequestTranslator.java index 914cebb1d..d6df08c74 100644 --- a/components/sbm-recipes-mule-to-boot/src/main/java/org/springframework/sbm/mule/actions/javadsl/translators/http/HttpRequestTranslator.java +++ b/components/sbm-recipes-mule-to-boot/src/main/java/org/springframework/sbm/mule/actions/javadsl/translators/http/HttpRequestTranslator.java @@ -19,6 +19,7 @@ import org.mulesoft.schema.mule.http.RequestType; import org.springframework.sbm.mule.actions.javadsl.translators.DslSnippet; import org.springframework.sbm.mule.actions.javadsl.translators.MuleComponentToSpringIntegrationDslTranslator; +import org.springframework.sbm.mule.api.toplevel.configuration.ConfigurationTypeAdapter; import org.springframework.sbm.mule.api.toplevel.configuration.MuleConfigurations; import org.springframework.stereotype.Component; @@ -55,9 +56,7 @@ public DslSnippet translate(RequestType component, MuleConfigurations muleConfigurations, String flowName) { - // TODO: What if config is null ? - RequestConfigType config = - (RequestConfigType) muleConfigurations.getConfigurations().get(component.getConfigRef()).getMuleConfiguration(); + RequestConfigType config = getRequestConfiguration(component, muleConfigurations); return new DslSnippet( template .replace("$PATH", emptyStringIfNull(component.getPath())) @@ -70,6 +69,23 @@ public DslSnippet translate(RequestType component, ); } + private RequestConfigType getRequestConfiguration(RequestType component, MuleConfigurations muleConfigurations) { + RequestConfigType emptyRequestConfig = new RequestConfigType(); + + ConfigurationTypeAdapter configurationTypeAdapter = + muleConfigurations.getConfigurations().get(component.getConfigRef()); + + if (configurationTypeAdapter == null) { + + return emptyRequestConfig; + } + + RequestConfigType requestConfig = configurationTypeAdapter + .getMuleConfiguration(); + + return requestConfig != null ? requestConfig : emptyRequestConfig; + } + private String defaultToValueIfNull(String originalValue, String defaultValue) { return originalValue == null ? defaultValue : originalValue;