[BAEL-8473] - Moved articles from spring-boot module to new spring-boot-client module
This commit is contained in:
@@ -1,32 +0,0 @@
|
||||
package org.baeldung.boot.client;
|
||||
|
||||
public class Details {
|
||||
|
||||
private String name;
|
||||
|
||||
private String login;
|
||||
|
||||
public Details() {
|
||||
}
|
||||
|
||||
public Details(String name, String login) {
|
||||
this.name = name;
|
||||
this.login = login;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getLogin() {
|
||||
return login;
|
||||
}
|
||||
|
||||
public void setLogin(String login) {
|
||||
this.login = login;
|
||||
}
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
package org.baeldung.boot.client;
|
||||
|
||||
import org.springframework.boot.web.client.RestTemplateBuilder;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.web.client.RestTemplate;
|
||||
|
||||
@Service
|
||||
public class DetailsServiceClient {
|
||||
|
||||
private final RestTemplate restTemplate;
|
||||
|
||||
public DetailsServiceClient(RestTemplateBuilder restTemplateBuilder) {
|
||||
restTemplate = restTemplateBuilder.build();
|
||||
}
|
||||
|
||||
public Details getUserDetails(String name) {
|
||||
return restTemplate.getForObject("/{name}/details", Details.class, name);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,24 +0,0 @@
|
||||
package org.baeldung.websocket.client;
|
||||
|
||||
public class Message {
|
||||
|
||||
private String from;
|
||||
private String text;
|
||||
|
||||
public String getText() {
|
||||
return text;
|
||||
}
|
||||
|
||||
public String getFrom() {
|
||||
return from;
|
||||
}
|
||||
|
||||
public void setFrom(String from) {
|
||||
this.from = from;
|
||||
}
|
||||
|
||||
public void setText(String text) {
|
||||
this.text = text;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,59 +0,0 @@
|
||||
package org.baeldung.websocket.client;
|
||||
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.springframework.messaging.simp.stomp.StompCommand;
|
||||
import org.springframework.messaging.simp.stomp.StompHeaders;
|
||||
import org.springframework.messaging.simp.stomp.StompSession;
|
||||
import org.springframework.messaging.simp.stomp.StompSessionHandlerAdapter;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
|
||||
/**
|
||||
* This class is an implementation for <code>StompSessionHandlerAdapter</code>.
|
||||
* Once a connection is established, We subscribe to /topic/messages and
|
||||
* send a sample message to server.
|
||||
*
|
||||
* @author Kalyan
|
||||
*
|
||||
*/
|
||||
public class MyStompSessionHandler extends StompSessionHandlerAdapter {
|
||||
|
||||
private Logger logger = LogManager.getLogger(MyStompSessionHandler.class);
|
||||
|
||||
@Override
|
||||
public void afterConnected(StompSession session, StompHeaders connectedHeaders) {
|
||||
logger.info("New session established : " + session.getSessionId());
|
||||
session.subscribe("/topic/messages", this);
|
||||
logger.info("Subscribed to /topic/messages");
|
||||
session.send("/app/chat", getSampleMessage());
|
||||
logger.info("Message sent to websocket server");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleException(StompSession session, StompCommand command, StompHeaders headers, byte[] payload, Throwable exception) {
|
||||
logger.error("Got an exception", exception);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type getPayloadType(StompHeaders headers) {
|
||||
return Message.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleFrame(StompHeaders headers, Object payload) {
|
||||
Message msg = (Message) payload;
|
||||
logger.info("Received : " + msg.getText() + " from : " + msg.getFrom());
|
||||
}
|
||||
|
||||
/**
|
||||
* A sample message instance.
|
||||
* @return instance of <code>Message</code>
|
||||
*/
|
||||
private Message getSampleMessage() {
|
||||
Message msg = new Message();
|
||||
msg.setFrom("Nicky");
|
||||
msg.setText("Howdy!!");
|
||||
return msg;
|
||||
}
|
||||
}
|
||||
@@ -1,30 +0,0 @@
|
||||
package org.baeldung.websocket.client;
|
||||
|
||||
import java.util.Scanner;
|
||||
|
||||
import org.springframework.messaging.converter.MappingJackson2MessageConverter;
|
||||
import org.springframework.messaging.simp.stomp.StompSessionHandler;
|
||||
import org.springframework.web.socket.client.WebSocketClient;
|
||||
import org.springframework.web.socket.client.standard.StandardWebSocketClient;
|
||||
import org.springframework.web.socket.messaging.WebSocketStompClient;
|
||||
|
||||
/**
|
||||
* Stand alone WebSocketStompClient.
|
||||
*
|
||||
*/
|
||||
public class StompClient {
|
||||
|
||||
private static String URL = "ws://localhost:8080/spring-mvc-java/chat";
|
||||
|
||||
public static void main(String[] args) {
|
||||
WebSocketClient client = new StandardWebSocketClient();
|
||||
WebSocketStompClient stompClient = new WebSocketStompClient(client);
|
||||
|
||||
stompClient.setMessageConverter(new MappingJackson2MessageConverter());
|
||||
|
||||
StompSessionHandler sessionHandler = new MyStompSessionHandler();
|
||||
stompClient.connect(URL, sessionHandler);
|
||||
|
||||
new Scanner(System.in).nextLine(); // Don't close immediately.
|
||||
}
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
package com.baeldung.websocket.client;
|
||||
|
||||
import org.baeldung.websocket.client.MyStompSessionHandler;
|
||||
import org.junit.Test;
|
||||
import org.mockito.Mockito;
|
||||
import org.springframework.messaging.simp.stomp.StompHeaders;
|
||||
import org.springframework.messaging.simp.stomp.StompSession;
|
||||
|
||||
public class MyStompSessionHandlerIntegrationTest {
|
||||
|
||||
@Test
|
||||
public void givenValidSession_whenConnected_SendsMessage() {
|
||||
StompSession mockSession = Mockito.mock(StompSession.class);
|
||||
StompHeaders mockHeader = Mockito.mock(StompHeaders.class);
|
||||
MyStompSessionHandler sessionHandler = new MyStompSessionHandler();
|
||||
sessionHandler.afterConnected(mockSession, mockHeader);
|
||||
Mockito.verify(mockSession).subscribe("/topic/messages", sessionHandler);
|
||||
Mockito.verify(mockSession).send(Mockito.anyString(), Mockito.anyObject());
|
||||
}
|
||||
}
|
||||
@@ -1,49 +0,0 @@
|
||||
package org.baeldung.boot.client;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.test.autoconfigure.web.client.RestClientTest;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.test.context.junit4.SpringRunner;
|
||||
import org.springframework.test.web.client.MockRestServiceServer;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.springframework.test.web.client.match.MockRestRequestMatchers.requestTo;
|
||||
import static org.springframework.test.web.client.response.MockRestResponseCreators.withSuccess;
|
||||
|
||||
import org.baeldung.boot.client.Details;
|
||||
import org.baeldung.boot.client.DetailsServiceClient;
|
||||
|
||||
@RunWith(SpringRunner.class)
|
||||
@RestClientTest(DetailsServiceClient.class)
|
||||
public class DetailsServiceClientIntegrationTest {
|
||||
|
||||
@Autowired
|
||||
private DetailsServiceClient client;
|
||||
|
||||
@Autowired
|
||||
private MockRestServiceServer server;
|
||||
|
||||
@Autowired
|
||||
private ObjectMapper objectMapper;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
String detailsString = objectMapper.writeValueAsString(new Details("John Smith", "john"));
|
||||
this.server.expect(requestTo("/john/details")).andRespond(withSuccess(detailsString, MediaType.APPLICATION_JSON));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void whenCallingGetUserDetails_thenClientExecutesCorrectCall() throws Exception {
|
||||
|
||||
Details details = this.client.getUserDetails("john");
|
||||
|
||||
assertThat(details.getLogin()).isEqualTo("john");
|
||||
assertThat(details.getName()).isEqualTo("John Smith");
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user