Skip to content

Commit 749aaeb

Browse files
committed
chore(citrus-http): review and code cleanup
pr: #1224 `citrus-http` module.
1 parent 53d09e0 commit 749aaeb

17 files changed

+147
-166
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package org.citrusframework.http.config.xml;
2+
3+
import jakarta.servlet.http.Cookie;
4+
import org.citrusframework.http.message.HttpMessage;
5+
import org.w3c.dom.Element;
6+
7+
import java.util.List;
8+
9+
import static java.lang.Boolean.parseBoolean;
10+
import static java.lang.Integer.parseInt;
11+
12+
final class CookieUtils {
13+
14+
private CookieUtils() {
15+
// Static utility class
16+
}
17+
18+
static void setCookieElement(HttpMessage httpMessage, List<?> cookieElements) {
19+
for (Object item : cookieElements) {
20+
Element cookieElement = (Element) item;
21+
Cookie cookie = new Cookie(cookieElement.getAttribute("name"), cookieElement.getAttribute("value"));
22+
23+
if (cookieElement.hasAttribute("path")) {
24+
cookie.setPath(cookieElement.getAttribute("path"));
25+
}
26+
27+
if (cookieElement.hasAttribute("domain")) {
28+
cookie.setDomain(cookieElement.getAttribute("domain"));
29+
}
30+
31+
if (cookieElement.hasAttribute("max-age")) {
32+
cookie.setMaxAge(parseInt(cookieElement.getAttribute("max-age")));
33+
}
34+
35+
if (cookieElement.hasAttribute("secure")) {
36+
cookie.setSecure(parseBoolean(cookieElement.getAttribute("secure")));
37+
}
38+
39+
httpMessage.cookie(cookie);
40+
}
41+
}
42+
}

Diff for: endpoints/citrus-http/src/main/java/org/citrusframework/http/config/xml/HttpReceiveResponseActionParser.java

+3-26
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616

1717
package org.citrusframework.http.config.xml;
1818

19-
import jakarta.servlet.http.Cookie;
2019
import org.citrusframework.config.util.BeanDefinitionParserUtils;
2120
import org.citrusframework.config.xml.DescriptionElementParser;
2221
import org.citrusframework.config.xml.ReceiveMessageActionParser;
@@ -36,8 +35,8 @@
3635
import java.util.List;
3736

3837
import static java.lang.Boolean.parseBoolean;
39-
import static java.lang.Integer.parseInt;
4038
import static org.citrusframework.config.xml.MessageSelectorParser.doParse;
39+
import static org.citrusframework.http.config.xml.CookieUtils.setCookieElement;
4140
import static org.springframework.util.xml.DomUtils.getChildElementByTagName;
4241
import static org.springframework.util.xml.DomUtils.getChildElementsByTagName;
4342

@@ -103,28 +102,7 @@ protected BeanDefinitionBuilder createBeanDefinitionBuilder(Element element,
103102
}
104103

105104
List<?> cookieElements = getChildElementsByTagName(headers, "cookie");
106-
for (Object item : cookieElements) {
107-
Element cookieElement = (Element) item;
108-
Cookie cookie = new Cookie(cookieElement.getAttribute("name"), cookieElement.getAttribute("value"));
109-
110-
if (cookieElement.hasAttribute("path")) {
111-
cookie.setPath(cookieElement.getAttribute("path"));
112-
}
113-
114-
if (cookieElement.hasAttribute("domain")) {
115-
cookie.setDomain(cookieElement.getAttribute("domain"));
116-
}
117-
118-
if (cookieElement.hasAttribute("max-age")) {
119-
cookie.setMaxAge(parseInt(cookieElement.getAttribute("max-age")));
120-
}
121-
122-
if (cookieElement.hasAttribute("secure")) {
123-
cookie.setSecure(parseBoolean(cookieElement.getAttribute("secure")));
124-
}
125-
126-
httpMessage.cookie(cookie);
127-
}
105+
setCookieElement(httpMessage, cookieElements);
128106

129107
boolean ignoreCase = !headers.hasAttribute("ignore-case") || parseBoolean(headers.getAttribute("ignore-case"));
130108
validationContexts.stream()
@@ -135,8 +113,7 @@ protected BeanDefinitionBuilder createBeanDefinitionBuilder(Element element,
135113

136114
doParse(element, builder);
137115

138-
HttpMessageBuilder httpMessageBuilder = createMessageBuilder(
139-
httpMessage);
116+
HttpMessageBuilder httpMessageBuilder = createMessageBuilder(httpMessage);
140117
DefaultMessageBuilder messageContentBuilder = constructMessageBuilder(body, builder);
141118

142119
httpMessageBuilder.setName(messageContentBuilder.getName());

Diff for: endpoints/citrus-http/src/main/java/org/citrusframework/http/config/xml/HttpSendRequestActionParser.java

+9-11
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,6 @@
1616

1717
package org.citrusframework.http.config.xml;
1818

19-
import java.util.ArrayList;
20-
import java.util.List;
21-
2219
import jakarta.servlet.http.Cookie;
2320
import org.citrusframework.config.util.BeanDefinitionParserUtils;
2421
import org.citrusframework.config.xml.DescriptionElementParser;
@@ -37,20 +34,21 @@
3734
import org.springframework.util.xml.DomUtils;
3835
import org.w3c.dom.Element;
3936

37+
import java.util.ArrayList;
38+
import java.util.List;
39+
4040
/**
4141
* @since 2.4
4242
*/
4343
public class HttpSendRequestActionParser extends SendMessageActionParser {
4444

4545
@Override
4646
public BeanDefinition parse(Element element, ParserContext parserContext) {
47-
BeanDefinitionBuilder builder = createBeanDefinitionBuilder(
48-
element, parserContext);
47+
BeanDefinitionBuilder builder = createBeanDefinitionBuilder(element, parserContext);
4948
return builder.getBeanDefinition();
5049
}
5150

52-
protected BeanDefinitionBuilder createBeanDefinitionBuilder(Element element,
53-
ParserContext parserContext) {
51+
protected BeanDefinitionBuilder createBeanDefinitionBuilder(Element element, ParserContext parserContext) {
5452
BeanDefinitionBuilder builder = parseComponent(element, parserContext);
5553
builder.addPropertyValue("name", "http:" + element.getLocalName());
5654

@@ -146,8 +144,7 @@ protected BeanDefinitionBuilder createBeanDefinitionBuilder(Element element,
146144
}
147145
}
148146

149-
HttpMessageBuilder httpMessageBuilder = createMessageBuilder(
150-
httpMessage);
147+
HttpMessageBuilder httpMessageBuilder = createMessageBuilder(httpMessage);
151148
DefaultMessageBuilder messageContentBuilder = constructMessageBuilder(body, builder);
152149

153150
httpMessageBuilder.setName(messageContentBuilder.getName());
@@ -162,19 +159,20 @@ protected BeanDefinitionBuilder createBeanDefinitionBuilder(Element element,
162159
if (!variableExtractors.isEmpty()) {
163160
builder.addPropertyValue("variableExtractors", variableExtractors);
164161
}
162+
165163
return builder;
166164
}
167165

168166
protected Element getRequestElement(Element element) {
169167
if (element.hasChildNodes()) {
170168
return DomUtils.getChildElements(element).get(0);
171169
}
170+
172171
throw new BeanCreationException("No request element specified for http send - invalid test action definition");
173172
}
174173

175174
protected Element getHeadersElement(Element requestElement) {
176-
Element headers = DomUtils.getChildElementByTagName(requestElement, "headers");
177-
return headers;
175+
return DomUtils.getChildElementByTagName(requestElement, "headers");
178176
}
179177

180178
/**

Diff for: endpoints/citrus-http/src/main/java/org/citrusframework/http/config/xml/HttpSendResponseActionParser.java

+2-25
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616

1717
package org.citrusframework.http.config.xml;
1818

19-
import jakarta.servlet.http.Cookie;
2019
import org.citrusframework.config.xml.SendMessageActionParser;
2120
import org.citrusframework.http.message.HttpMessage;
2221
import org.citrusframework.http.message.HttpMessageBuilder;
@@ -30,10 +29,9 @@
3029

3130
import java.util.List;
3231

33-
import static java.lang.Boolean.parseBoolean;
34-
import static java.lang.Integer.parseInt;
3532
import static org.citrusframework.config.util.BeanDefinitionParserUtils.setPropertyReference;
3633
import static org.citrusframework.config.xml.DescriptionElementParser.doParse;
34+
import static org.citrusframework.http.config.xml.CookieUtils.setCookieElement;
3735
import static org.citrusframework.util.StringUtils.hasText;
3836

3937
/**
@@ -78,28 +76,7 @@ public BeanDefinition parse(Element element, ParserContext parserContext) {
7876
}
7977

8078
List<?> cookieElements = DomUtils.getChildElementsByTagName(headers, "cookie");
81-
for (Object item : cookieElements) {
82-
Element cookieElement = (Element) item;
83-
Cookie cookie = new Cookie(cookieElement.getAttribute("name"), cookieElement.getAttribute("value"));
84-
85-
if (cookieElement.hasAttribute("path")) {
86-
cookie.setPath(cookieElement.getAttribute("path"));
87-
}
88-
89-
if (cookieElement.hasAttribute("domain")) {
90-
cookie.setDomain(cookieElement.getAttribute("domain"));
91-
}
92-
93-
if (cookieElement.hasAttribute("max-age")) {
94-
cookie.setMaxAge(parseInt(cookieElement.getAttribute("max-age")));
95-
}
96-
97-
if (cookieElement.hasAttribute("secure")) {
98-
cookie.setSecure(parseBoolean(cookieElement.getAttribute("secure")));
99-
}
100-
101-
httpMessage.cookie(cookie);
102-
}
79+
setCookieElement(httpMessage, cookieElements);
10380
}
10481

10582
Element body = DomUtils.getChildElementByTagName(element, "body");

Diff for: endpoints/citrus-http/src/main/java/org/citrusframework/http/interceptor/LoggingClientInterceptor.java

+2-6
Original file line numberDiff line numberDiff line change
@@ -81,9 +81,7 @@ public void handleRequest(String request) {
8181
logger.debug("Sending Http request message");
8282
messageListener.onOutboundMessage(new RawMessage(request), contextFactory.getObject());
8383
} else {
84-
if (logger.isDebugEnabled()) {
85-
logger.debug("Sending Http request message:" + NEWLINE + request);
86-
}
84+
logger.debug("Sending Http request message:{}{}", NEWLINE, request);
8785
}
8886
}
8987

@@ -97,9 +95,7 @@ public void handleResponse(String response) {
9795
logger.debug("Received Http response message");
9896
messageListener.onInboundMessage(new RawMessage(response), contextFactory.getObject());
9997
} else {
100-
if (logger.isDebugEnabled()) {
101-
logger.debug("Received Http response message:" + NEWLINE + response);
102-
}
98+
logger.debug("Received Http response message:{}{}", NEWLINE, response);
10399
}
104100
}
105101

Diff for: endpoints/citrus-http/src/main/java/org/citrusframework/http/interceptor/LoggingHandlerInterceptor.java

+5-9
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,6 @@
1818

1919
import jakarta.servlet.http.HttpServletRequest;
2020
import jakarta.servlet.http.HttpServletResponse;
21-
import java.io.IOException;
22-
import java.util.Enumeration;
23-
2421
import org.citrusframework.context.TestContextFactory;
2522
import org.citrusframework.http.controller.HttpMessageController;
2623
import org.citrusframework.message.RawMessage;
@@ -33,6 +30,9 @@
3330
import org.springframework.web.servlet.HandlerInterceptor;
3431
import org.springframework.web.servlet.ModelAndView;
3532

33+
import java.io.IOException;
34+
import java.util.Enumeration;
35+
3636
import static java.lang.System.lineSeparator;
3737

3838
/**
@@ -80,9 +80,7 @@ public void handleRequest(String request) {
8080
logger.debug("Received Http request");
8181
messageListener.onInboundMessage(new RawMessage(request), contextFactory.getObject());
8282
} else {
83-
if (logger.isDebugEnabled()) {
84-
logger.debug("Received Http request:" + NEWLINE + request);
85-
}
83+
logger.debug("Received Http request:{}{}", NEWLINE, request);
8684
}
8785
}
8886

@@ -95,9 +93,7 @@ public void handleResponse(String response) {
9593
logger.debug("Sending Http response");
9694
messageListener.onOutboundMessage(new RawMessage(response), contextFactory.getObject());
9795
} else {
98-
if (logger.isDebugEnabled()) {
99-
logger.debug("Sending Http response:" + NEWLINE + response);
100-
}
96+
logger.debug("Sending Http response:{}{}", NEWLINE, response);
10197
}
10298
}
10399

Diff for: endpoints/citrus-http/src/main/java/org/citrusframework/http/message/HttpMessageUtils.java

+13-10
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,20 @@
1616

1717
package org.citrusframework.http.message;
1818

19-
import static org.citrusframework.http.message.HttpMessageHeaders.HTTP_QUERY_PARAMS;
20-
import static org.citrusframework.util.StringUtils.hasText;
19+
import org.apache.commons.lang3.tuple.Pair;
20+
import org.citrusframework.message.Message;
21+
import org.citrusframework.message.MessageHeaders;
2122

2223
import java.util.Arrays;
23-
import java.util.Collections;
2424
import java.util.List;
2525
import java.util.Map;
26-
import java.util.stream.Collectors;
27-
import org.apache.commons.lang3.tuple.Pair;
28-
import org.citrusframework.message.Message;
29-
import org.citrusframework.message.MessageHeaders;
26+
27+
import static java.util.Collections.emptyMap;
28+
import static java.util.stream.Collectors.groupingBy;
29+
import static java.util.stream.Collectors.mapping;
30+
import static java.util.stream.Collectors.toList;
31+
import static org.citrusframework.http.message.HttpMessageHeaders.HTTP_QUERY_PARAMS;
32+
import static org.citrusframework.util.StringUtils.hasText;
3033

3134
/**
3235
* @since 2.7.5
@@ -95,9 +98,9 @@ public static Map<String, List<String>> getQueryParameterMap(HttpMessage httpMes
9598
String value = keyAndValue.length > 1 ? keyAndValue[1] : "";
9699
return Pair.of(key, value);
97100
})
98-
.collect(Collectors.groupingBy(
99-
Pair::getLeft, Collectors.mapping(Pair::getRight, Collectors.toList())));
101+
.collect(groupingBy(Pair::getLeft,mapping(Pair::getRight,toList())));
100102
}
101-
return Collections.emptyMap();
103+
104+
return emptyMap();
102105
}
103106
}

0 commit comments

Comments
 (0)