socket client

This commit is contained in:
현성필
2024-05-03 16:40:04 +09:00
parent 2cb27295cf
commit 839f3c3141
109 changed files with 1836 additions and 963 deletions
@@ -1,5 +1,6 @@
package com.eactive.testmaster.server.dto;
import java.util.List;
import javax.validation.constraints.NotEmpty;
public class ServerDTO {
@@ -22,17 +23,7 @@ public class ServerDTO {
private boolean enabled = true;
private boolean messageKeyInclude = false;
private Integer messageKeyOffset;
private Integer messageKeyLength;
private boolean lengthFieldInclude = false;
private Integer lengthFieldOffset;
private Integer lengthFieldLength;
private List<ServerOptionDTO> serverOptions;
public Long getId() {
return id;
@@ -90,51 +81,11 @@ public class ServerDTO {
this.enabled = enabled;
}
public boolean isMessageKeyInclude() {
return messageKeyInclude;
public List<ServerOptionDTO> getServerOptions() {
return serverOptions;
}
public void setMessageKeyInclude(boolean messageKeyInclude) {
this.messageKeyInclude = messageKeyInclude;
}
public Integer getMessageKeyOffset() {
return messageKeyOffset;
}
public void setMessageKeyOffset(Integer messageKeyOffset) {
this.messageKeyOffset = messageKeyOffset;
}
public Integer getMessageKeyLength() {
return messageKeyLength;
}
public void setMessageKeyLength(Integer messageKeyLength) {
this.messageKeyLength = messageKeyLength;
}
public boolean isLengthFieldInclude() {
return lengthFieldInclude;
}
public void setLengthFieldInclude(boolean lengthFieldInclude) {
this.lengthFieldInclude = lengthFieldInclude;
}
public Integer getLengthFieldOffset() {
return lengthFieldOffset;
}
public void setLengthFieldOffset(Integer lengthFieldOffset) {
this.lengthFieldOffset = lengthFieldOffset;
}
public Integer getLengthFieldLength() {
return lengthFieldLength;
}
public void setLengthFieldLength(Integer lengthFieldLength) {
this.lengthFieldLength = lengthFieldLength;
public void setServerOptions(List<ServerOptionDTO> serverOptions) {
this.serverOptions = serverOptions;
}
}
@@ -0,0 +1,74 @@
package com.eactive.testmaster.server.dto;
public class ServerOptionDTO {
private Long optionId;
private String optionKey;
private String optionName;
private String defaultValue;
private Integer offset;
private Integer length;
private boolean enabled;
public Long getOptionId() {
return optionId;
}
public void setOptionId(Long optionId) {
this.optionId = optionId;
}
public String getOptionKey() {
return optionKey;
}
public void setOptionKey(String optionKey) {
this.optionKey = optionKey;
}
public String getOptionName() {
return optionName;
}
public void setOptionName(String optionName) {
this.optionName = optionName;
}
public String getDefaultValue() {
return defaultValue;
}
public void setDefaultValue(String defaultValue) {
this.defaultValue = defaultValue;
}
public Integer getOffset() {
return offset;
}
public void setOffset(Integer offset) {
this.offset = offset;
}
public Integer getLength() {
return length;
}
public void setLength(Integer length) {
this.length = length;
}
public boolean isEnabled() {
return enabled;
}
public void setEnabled(boolean enabled) {
this.enabled = enabled;
}
}
@@ -1,6 +1,17 @@
package com.eactive.testmaster.server.entity;
import javax.persistence.*;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Transient;
@Entity
@Table(name = "SERVER")
@@ -23,23 +34,8 @@ public class Server {
@Column(name = "IS_ENABLED", columnDefinition = "boolean default true")
private boolean enabled;
@Column(name = "MESSAGE_KEY_INCLUDE", columnDefinition = "boolean default false")
private boolean messageKeyInclude;
@Column(name = "MESSAGE_KEY_OFFSET", columnDefinition = "integer")
private Integer messageKeyOffset;
@Column(name = "MESSAGE_KEY_LENGTH", columnDefinition = "integer")
private Integer messageKeyLength;
@Column(name = "LENGTH_FIELD_INCLUDE", columnDefinition = "boolean default false")
private boolean lengthFieldInclude;
@Column(name = "LENGTH_FIELD_OFFSET", columnDefinition = "integer")
private Integer lengthFieldOffset;
@Column(name = "LENGTH_FIELD_LENGTH", columnDefinition = "integer")
private Integer lengthFieldLength;
@OneToMany(mappedBy = "server", cascade = CascadeType.ALL, fetch = FetchType.LAZY, orphanRemoval = true)
private List<ServerOption> serverOptions = new ArrayList<>();
public Long getId() {
return id;
@@ -97,52 +93,12 @@ public class Server {
this.enabled = enabled;
}
public boolean isMessageKeyInclude() {
return messageKeyInclude;
public List<ServerOption> getServerOptions() {
return serverOptions;
}
public void setMessageKeyInclude(boolean messageKeyInclude) {
this.messageKeyInclude = messageKeyInclude;
}
public boolean isLengthFieldInclude() {
return lengthFieldInclude;
}
public void setLengthFieldInclude(boolean lengthFieldInclude) {
this.lengthFieldInclude = lengthFieldInclude;
}
public Integer getMessageKeyOffset() {
return messageKeyOffset;
}
public void setMessageKeyOffset(Integer messageKeyOffset) {
this.messageKeyOffset = messageKeyOffset;
}
public Integer getMessageKeyLength() {
return messageKeyLength;
}
public void setMessageKeyLength(Integer messageKeyLength) {
this.messageKeyLength = messageKeyLength;
}
public Integer getLengthFieldOffset() {
return lengthFieldOffset;
}
public void setLengthFieldOffset(Integer lengthFieldOffset) {
this.lengthFieldOffset = lengthFieldOffset;
}
public Integer getLengthFieldLength() {
return lengthFieldLength;
}
public void setLengthFieldLength(Integer lengthFieldLength) {
this.lengthFieldLength = lengthFieldLength;
public void setServerOptions(List<ServerOption> serverOptions) {
this.serverOptions = serverOptions;
}
@Transient
@@ -0,0 +1,103 @@
package com.eactive.testmaster.server.entity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
@Entity
@Table(name = "SERVER_OPTION")
public class ServerOption {
@ManyToOne
@JoinColumn(name = "SERVER_ID", nullable = false)
private Server server;
@Id
@Column(name = "OPTION_ID")
@GeneratedValue(strategy = GenerationType.AUTO)
private Long optionId;
private String optionKey;
private String optionName;
private String defaultValue;
@Column(name = "MESSAGE_OFFSET")
private Integer offset;
@Column(name = "MESSAGE_LENGTH")
private Integer length;
@Column(name = "OPTION_ENABLED")
private boolean enabled = true;
public Server getServer() {
return server;
}
public void setServer(Server server) {
this.server = server;
}
public Long getOptionId() {
return optionId;
}
public void setOptionId(Long optionId) {
this.optionId = optionId;
}
public String getOptionKey() {
return optionKey;
}
public void setOptionKey(String optionKey) {
this.optionKey = optionKey;
}
public String getOptionName() {
return optionName;
}
public void setOptionName(String optionName) {
this.optionName = optionName;
}
public String getDefaultValue() {
return defaultValue;
}
public void setDefaultValue(String defaultValue) {
this.defaultValue = defaultValue;
}
public Integer getOffset() {
return offset;
}
public void setOffset(Integer offset) {
this.offset = offset;
}
public Integer getLength() {
return length;
}
public void setLength(Integer length) {
this.length = length;
}
public boolean isEnabled() {
return enabled;
}
public void setEnabled(boolean enabled) {
this.enabled = enabled;
}
}
@@ -3,9 +3,12 @@ package com.eactive.testmaster.server.mapper;
import com.eactive.testmaster.common.exception.NotFoundException;
import com.eactive.testmaster.server.dto.ServerDTO;
import com.eactive.testmaster.server.dto.ServerOptionDTO;
import com.eactive.testmaster.server.entity.Server;
import com.eactive.testmaster.server.entity.ServerRepository;
import com.eactive.testmaster.server.entity.ServerOption;
import com.eactive.testmaster.server.repository.ServerRepository;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
@@ -47,12 +50,7 @@ public class ServerMapper {
dto.setScheme(server.getScheme());
dto.setBasePath(server.getBasePath());
dto.setEnabled(server.isEnabled());
dto.setLengthFieldInclude(server.isLengthFieldInclude());
dto.setMessageKeyInclude(server.isMessageKeyInclude());
dto.setLengthFieldLength(server.getLengthFieldLength());
dto.setLengthFieldOffset(server.getLengthFieldOffset());
dto.setMessageKeyLength(server.getMessageKeyLength());
dto.setMessageKeyOffset(server.getMessageKeyOffset());
dto.setServerOptions(mapOptionsDTO(server.getServerOptions()));
return dto;
}
@@ -72,15 +70,66 @@ public class ServerMapper {
server.setScheme(dto.getScheme());
server.setBasePath(dto.getBasePath());
server.setEnabled(dto.isEnabled());
server.setLengthFieldInclude(dto.isLengthFieldInclude());
server.setMessageKeyInclude(dto.isMessageKeyInclude());
server.setLengthFieldLength(dto.getLengthFieldLength());
server.setLengthFieldOffset(dto.getLengthFieldOffset());
server.setMessageKeyLength(dto.getMessageKeyLength());
server.setMessageKeyOffset(dto.getMessageKeyOffset());
server.setServerOptions(mapOptions(dto.getServerOptions()));
return server;
}
public List<ServerOption> mapOptions(List<ServerOptionDTO> dtos) {
if (dtos == null) {
return null;
}
return dtos.stream().map(this::map).filter(Objects::nonNull).collect(Collectors.toList());
}
public List<ServerOptionDTO> mapOptionsDTO(List<ServerOption> entities) {
if (entities == null) {
return null;
}
return entities.stream().map(this::map).filter(Objects::nonNull).collect(Collectors.toList());
}
public ServerOption map(ServerOptionDTO dto){
if (dto == null) {
return null;
}
if (dto.getOptionKey() == null && dto.getOptionName() == null && dto.getDefaultValue() == null && dto.getOffset() == null && dto.getLength() == null) {
return null;
}
ServerOption serverOption = new ServerOption();
serverOption.setOptionId(dto.getOptionId());
serverOption.setOptionKey(dto.getOptionKey());
serverOption.setOptionName(dto.getOptionName());
serverOption.setDefaultValue(dto.getDefaultValue());
serverOption.setOffset(dto.getOffset());
serverOption.setLength(dto.getLength());
serverOption.setEnabled(dto.isEnabled());
return serverOption;
}
public ServerOptionDTO map(ServerOption entity){
if (entity == null) {
return null;
}
ServerOptionDTO dto = new ServerOptionDTO();
dto.setOptionId(entity.getOptionId());
dto.setOptionKey(entity.getOptionKey());
dto.setOptionName(entity.getOptionName());
dto.setDefaultValue(entity.getDefaultValue());
dto.setOffset(entity.getOffset());
dto.setLength(entity.getLength());
dto.setEnabled(entity.isEnabled());
return dto;
}
public List<ServerDTO> map(List<Server> servers) {
return servers.stream().map(this::map).collect(Collectors.toList());
@@ -1,5 +1,6 @@
package com.eactive.testmaster.server.entity;
package com.eactive.testmaster.server.repository;
import com.eactive.testmaster.server.entity.Server;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
@@ -2,7 +2,7 @@ package com.eactive.testmaster.server.service;
import com.eactive.testmaster.common.exception.NotFoundException;
import com.eactive.testmaster.server.entity.Server;
import com.eactive.testmaster.server.entity.ServerRepository;
import com.eactive.testmaster.server.repository.ServerRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
@@ -27,6 +27,10 @@ public class ServerMgmtService {
}
public void create(Server server) {
server.getServerOptions().forEach(serverOption -> {
serverOption.setEnabled(true);
serverOption.setServer(server);
});
serverRepository.save(server);
}
@@ -39,12 +43,15 @@ public class ServerMgmtService {
server.setBasePath(updated.getBasePath());
server.setPort(updated.getPort());
server.setEnabled(updated.isEnabled());
server.setLengthFieldInclude(updated.isLengthFieldInclude());
server.setMessageKeyInclude(updated.isMessageKeyInclude());
server.setMessageKeyLength(updated.getMessageKeyLength());
server.setMessageKeyOffset(updated.getMessageKeyOffset());
server.setLengthFieldLength(updated.getLengthFieldLength());
server.setLengthFieldOffset(updated.getLengthFieldOffset());
server.getServerOptions().clear();
if (updated.getServerOptions() != null) {
updated.getServerOptions().forEach(serverOption -> {
serverOption.setServer(server);
serverOption.setEnabled(true);
server.getServerOptions().add(serverOption);
});
}
serverRepository.save(server);