From 38d088cce06836953f70e169472726e2c85de5e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=ED=98=84=EC=84=B1=ED=95=84?= Date: Tue, 22 Aug 2023 11:18:28 +0900 Subject: [PATCH] =?UTF-8?q?=EB=B6=88=ED=95=84=EC=9A=94=20=ED=8C=8C?= =?UTF-8?q?=EC=9D=BC=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../httpmockserver/datatables/Column.java | 55 ------ .../datatables/DataTablesRequest.java | 66 ------- .../datatables/DataTablesResponse.java | 61 ------ .../httpmockserver/datatables/Direction.java | 5 - .../httpmockserver/datatables/Order.java | 27 --- .../httpmockserver/datatables/Search.java | 27 --- .../socket/BytesMessageSpec.java | 186 ------------------ .../socket/BytesMessageSpecDao.java | 15 -- .../socket/BytesMessageSpecService.java | 27 --- .../socket/BytesMessageSpecServiceImpl.java | 87 -------- .../socket/EchoReplaceString.java | 53 ----- .../socket/EchoSocketServer.java | 79 -------- .../socket/EchoSocketServerHandler.java | 143 -------------- .../socket/LengthHeaderFrameDecoder.java | 54 ----- .../basecodes/BaseScript.java.template | 16 -- 15 files changed, 901 deletions(-) delete mode 100644 src/main/java/com/eactive/httpmockserver/datatables/Column.java delete mode 100644 src/main/java/com/eactive/httpmockserver/datatables/DataTablesRequest.java delete mode 100644 src/main/java/com/eactive/httpmockserver/datatables/DataTablesResponse.java delete mode 100644 src/main/java/com/eactive/httpmockserver/datatables/Direction.java delete mode 100644 src/main/java/com/eactive/httpmockserver/datatables/Order.java delete mode 100644 src/main/java/com/eactive/httpmockserver/datatables/Search.java delete mode 100644 src/main/java/com/eactive/httpmockserver/socket/BytesMessageSpec.java delete mode 100644 src/main/java/com/eactive/httpmockserver/socket/BytesMessageSpecDao.java delete mode 100644 src/main/java/com/eactive/httpmockserver/socket/BytesMessageSpecService.java delete mode 100644 src/main/java/com/eactive/httpmockserver/socket/BytesMessageSpecServiceImpl.java delete mode 100644 src/main/java/com/eactive/httpmockserver/socket/EchoReplaceString.java delete mode 100644 src/main/java/com/eactive/httpmockserver/socket/EchoSocketServer.java delete mode 100644 src/main/java/com/eactive/httpmockserver/socket/EchoSocketServerHandler.java delete mode 100644 src/main/java/com/eactive/httpmockserver/socket/LengthHeaderFrameDecoder.java delete mode 100644 src/main/resources/basecodes/BaseScript.java.template diff --git a/src/main/java/com/eactive/httpmockserver/datatables/Column.java b/src/main/java/com/eactive/httpmockserver/datatables/Column.java deleted file mode 100644 index 56a346e..0000000 --- a/src/main/java/com/eactive/httpmockserver/datatables/Column.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.eactive.httpmockserver.datatables; - -public class Column { - private String data; - private String name; - private Boolean searchable; - private Boolean orderable; - private Search search; - - public String getData() { - return data; - } - - public void setData(String data) { - this.data = data; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public Boolean getSearchable() { - return searchable; - } - - public void setSearchable(Boolean searchable) { - this.searchable = searchable; - } - - public Boolean getOrderable() { - return orderable; - } - - public void setOrderable(Boolean orderable) { - this.orderable = orderable; - } - - public Search getSearch() { - return search; - } - - public void setSearch(Search search) { - this.search = search; - } - - @Override - public String toString() { - return "Column [data=" + data + ", name=" + name + ", searchable=" + searchable + ", orderable=" + orderable - + ", search=" + search + "]"; - } -} diff --git a/src/main/java/com/eactive/httpmockserver/datatables/DataTablesRequest.java b/src/main/java/com/eactive/httpmockserver/datatables/DataTablesRequest.java deleted file mode 100644 index 0006e4e..0000000 --- a/src/main/java/com/eactive/httpmockserver/datatables/DataTablesRequest.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.eactive.httpmockserver.datatables; - -import java.util.List; - -public class DataTablesRequest { - private int start; - private int length; - private int draw; - private List order; - private List columns; - private Search search; - - public int getStart() { - return start; - } - - public void setStart(int start) { - this.start = start; - } - - public int getLength() { - return length; - } - - public void setLength(int length) { - this.length = length; - } - - public int getDraw() { - return draw; - } - - public void setDraw(int draw) { - this.draw = draw; - } - - public List getOrder() { - return order; - } - - public void setOrder(List order) { - this.order = order; - } - - public List getColumns() { - return columns; - } - - public void setColumns(List columns) { - this.columns = columns; - } - - public Search getSearch() { - return search; - } - - public void setSearch(Search search) { - this.search = search; - } - - @Override - public String toString() { - return "DataTablesRequest [start=" + start + ", length=" + length + ", draw=" + draw + ", order=" + order - + ", columns=" + columns + ", search=" + search + "]"; - } -} diff --git a/src/main/java/com/eactive/httpmockserver/datatables/DataTablesResponse.java b/src/main/java/com/eactive/httpmockserver/datatables/DataTablesResponse.java deleted file mode 100644 index c1c6f6a..0000000 --- a/src/main/java/com/eactive/httpmockserver/datatables/DataTablesResponse.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.eactive.httpmockserver.datatables; - -import java.util.List; - -public class DataTablesResponse { - public DataTablesResponse(List data) { - this.data = data; - } - - private List data; - private long recordsFiltered; - private long recordsTotal; - private int draw; - private String error; - - public List getData() { - return data; - } - - public void setData(List data) { - this.data = data; - } - - public long getRecordsFiltered() { - return recordsFiltered; - } - - public void setRecordsFiltered(long recordsFiltered) { - this.recordsFiltered = recordsFiltered; - } - - public long getRecordsTotal() { - return recordsTotal; - } - - public void setRecordsTotal(long recordsTotal) { - this.recordsTotal = recordsTotal; - } - - public int getDraw() { - return draw; - } - - public void setDraw(int draw) { - this.draw = draw; - } - - public String getError() { - return error; - } - - public void setError(String error) { - this.error = error; - } - - @Override - public String toString() { - return "DataTablesResponse [data=" + data + ", recordsFiltered=" + recordsFiltered + ", recordsTotal=" - + recordsTotal + ", draw=" + draw + ", error=" + error + "]"; - } -} diff --git a/src/main/java/com/eactive/httpmockserver/datatables/Direction.java b/src/main/java/com/eactive/httpmockserver/datatables/Direction.java deleted file mode 100644 index 33ec1d2..0000000 --- a/src/main/java/com/eactive/httpmockserver/datatables/Direction.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.eactive.httpmockserver.datatables; - -public enum Direction { - asc, desc; -} \ No newline at end of file diff --git a/src/main/java/com/eactive/httpmockserver/datatables/Order.java b/src/main/java/com/eactive/httpmockserver/datatables/Order.java deleted file mode 100644 index 5bf038b..0000000 --- a/src/main/java/com/eactive/httpmockserver/datatables/Order.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.eactive.httpmockserver.datatables; - -public class Order { - private Integer column; - private Direction dir; - - public Integer getColumn() { - return column; - } - - public void setColumn(Integer column) { - this.column = column; - } - - public Direction getDir() { - return dir; - } - - public void setDir(Direction dir) { - this.dir = dir; - } - - @Override - public String toString() { - return "Order [column=" + column + ", dir=" + dir + "]"; - } -} diff --git a/src/main/java/com/eactive/httpmockserver/datatables/Search.java b/src/main/java/com/eactive/httpmockserver/datatables/Search.java deleted file mode 100644 index 339314a..0000000 --- a/src/main/java/com/eactive/httpmockserver/datatables/Search.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.eactive.httpmockserver.datatables; - -public class Search { - private String value; - private String regexp; - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - - public String getRegexp() { - return regexp; - } - - public void setRegexp(String regexp) { - this.regexp = regexp; - } - - @Override - public String toString() { - return "Search [value=" + value + ", regexp=" + regexp + "]"; - } -} diff --git a/src/main/java/com/eactive/httpmockserver/socket/BytesMessageSpec.java b/src/main/java/com/eactive/httpmockserver/socket/BytesMessageSpec.java deleted file mode 100644 index 2131c68..0000000 --- a/src/main/java/com/eactive/httpmockserver/socket/BytesMessageSpec.java +++ /dev/null @@ -1,186 +0,0 @@ -package com.eactive.httpmockserver.socket; - -import javax.persistence.*; -import javax.validation.Valid; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Positive; -import javax.validation.constraints.PositiveOrZero; -import java.io.Serializable; -import java.util.ArrayList; -import java.util.List; - -@SuppressWarnings("serial") -@Entity -public class BytesMessageSpec implements Serializable { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; - - @NotBlank - @Column(length = 100, nullable = false) - private String specName; - - @Column(length = 1) - private String llFieldInclude; - - @Column(length = 1) - private String llFieldLengthInclude; - - @Positive - @NotNull - private Integer llFieldLength; - - private Integer llFieldLengthAlpha; - - @PositiveOrZero - private Integer llFieldOffset; - - @Column(length = 20) - private String llFieldType; - - @Column(length = 20) - private String encode; - - @Positive - @NotNull - private Integer port; - - @Positive - private Integer sleepSeconds; - - @Column - @Lob - private String responseBody; - - @Column(length = 1) - private String useYn; - - @Valid - @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL, orphanRemoval = true) - @JoinColumn(name = "BYTE_MESSAGE_SPEC_ID") - @OrderBy("position") - private List echoReplaceStringList = new ArrayList(); - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getSpecName() { - return specName; - } - - public void setSpecName(String specName) { - this.specName = specName; - } - - public String getLlFieldInclude() { - return llFieldInclude; - } - - public void setLlFieldInclude(String llFieldInclude) { - this.llFieldInclude = llFieldInclude; - } - - public String getLlFieldLengthInclude() { - return llFieldLengthInclude; - } - - public void setLlFieldLengthInclude(String llFieldLengthInclude) { - this.llFieldLengthInclude = llFieldLengthInclude; - } - - public Integer getLlFieldLength() { - return llFieldLength; - } - - public void setLlFieldLength(Integer llFieldLength) { - this.llFieldLength = llFieldLength; - } - - public Integer getLlFieldLengthAlpha() { - return llFieldLengthAlpha; - } - - public void setLlFieldLengthAlpha(Integer llFieldLengthAlpha) { - this.llFieldLengthAlpha = llFieldLengthAlpha; - } - - public Integer getLlFieldOffset() { - return llFieldOffset; - } - - public void setLlFieldOffset(Integer llFieldOffset) { - this.llFieldOffset = llFieldOffset; - } - - public String getLlFieldType() { - return llFieldType; - } - - public void setLlFieldType(String llFieldType) { - this.llFieldType = llFieldType; - } - - public String getEncode() { - return encode; - } - - public void setEncode(String encode) { - this.encode = encode; - } - - public Integer getPort() { - return port; - } - - public void setPort(Integer port) { - this.port = port; - } - - public Integer getSleepSeconds() { - return sleepSeconds; - } - - public void setSleepSeconds(Integer sleepSeconds) { - this.sleepSeconds = sleepSeconds; - } - - public String getResponseBody() { - return responseBody; - } - - public void setResponseBody(String responseBody) { - this.responseBody = responseBody; - } - - public String getUseYn() { - return useYn; - } - - public void setUseYn(String useYn) { - this.useYn = useYn; - } - - public List getEchoReplaceStringList() { - return echoReplaceStringList; - } - - public void setEchoReplaceStringList(List echoReplaceStringList) { - this.echoReplaceStringList = echoReplaceStringList; - } - - @Override - public String toString() { - return "BytesMessageSpec [id=" + id + ", specName=" + specName + ", llFieldInclude=" + llFieldInclude - + ", llFieldLengthInclude=" + llFieldLengthInclude + ", llFieldLength=" + llFieldLength - + ", llFieldLengthAlpha=" + llFieldLengthAlpha + ", llFieldOffset=" + llFieldOffset + ", llFieldType=" - + llFieldType + ", encode=" + encode + ", port=" + port + ", sleepSeconds=" + sleepSeconds - + ", responseBody=" + responseBody + ", useYn=" + useYn + ", EchoReplaceStringList=" - + echoReplaceStringList + "]"; - } -} diff --git a/src/main/java/com/eactive/httpmockserver/socket/BytesMessageSpecDao.java b/src/main/java/com/eactive/httpmockserver/socket/BytesMessageSpecDao.java deleted file mode 100644 index 81ee06e..0000000 --- a/src/main/java/com/eactive/httpmockserver/socket/BytesMessageSpecDao.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.eactive.httpmockserver.socket; - -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.Modifying; -import org.springframework.data.jpa.repository.Query; -import org.springframework.stereotype.Repository; - -@Repository -public interface BytesMessageSpecDao extends JpaRepository { - BytesMessageSpec findFirstByUseYn(String useYn); - - @Modifying - @Query(value = "update BytesMessageSpec b set b.useYn='N' where b.id <> ?1") - void updateUnuseOthers(Long id); -} diff --git a/src/main/java/com/eactive/httpmockserver/socket/BytesMessageSpecService.java b/src/main/java/com/eactive/httpmockserver/socket/BytesMessageSpecService.java deleted file mode 100644 index 93345e6..0000000 --- a/src/main/java/com/eactive/httpmockserver/socket/BytesMessageSpecService.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.eactive.httpmockserver.socket; - -import org.springframework.data.domain.Example; -import org.springframework.data.domain.Pageable; - -import java.util.List; -import java.util.Optional; - -public interface BytesMessageSpecService { - public BytesMessageSpec findActiveBytesMessageSpec(); - - public List findAllBytesMessageSpecs(Pageable pageable); - - public List findAllBytesMessageSpecs(Example example, Pageable pageable); - - public long getRecordsCount(Example example); - - public Optional findById(Long id); - - public BytesMessageSpec save(BytesMessageSpec spec); - - public BytesMessageSpec update(BytesMessageSpec spec); - - public void delete(Long id); - - public void setUnuseOthers(Long id); -} diff --git a/src/main/java/com/eactive/httpmockserver/socket/BytesMessageSpecServiceImpl.java b/src/main/java/com/eactive/httpmockserver/socket/BytesMessageSpecServiceImpl.java deleted file mode 100644 index cf6a868..0000000 --- a/src/main/java/com/eactive/httpmockserver/socket/BytesMessageSpecServiceImpl.java +++ /dev/null @@ -1,87 +0,0 @@ -package com.eactive.httpmockserver.socket; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.domain.Example; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Pageable; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Propagation; -import org.springframework.transaction.annotation.Transactional; - -import java.util.ArrayList; -import java.util.List; -import java.util.Optional; - -@Service -@Transactional(propagation = Propagation.SUPPORTS) -public class BytesMessageSpecServiceImpl implements BytesMessageSpecService { - @Autowired - private BytesMessageSpecDao dao; - - @Override - public BytesMessageSpec findActiveBytesMessageSpec() { - return dao.findFirstByUseYn("Y"); - } - - @Override - public List findAllBytesMessageSpecs(Pageable pageable) { - Page pagedResult = dao.findAll(pageable); - if (pagedResult.hasContent()) { - return pagedResult.getContent(); - } else { - return new ArrayList(); - } - } - - @Override - public List findAllBytesMessageSpecs(Example example, Pageable pageable) { - if (example == null) { - return findAllBytesMessageSpecs(pageable); - } - - Page pagedResult = dao.findAll(example, pageable); - if (pagedResult.hasContent()) { - return pagedResult.getContent(); - } else { - return new ArrayList(); - } - } - - @Override - public Optional findById(Long id) { - return dao.findById(id); - } - - @Override - public long getRecordsCount(Example example) { - if (example == null) { - return dao.count(); - } else { - return dao.count(example); - } - } - - @Override - @Transactional(propagation = Propagation.REQUIRED, readOnly = false) - public BytesMessageSpec save(BytesMessageSpec spec) { - return dao.save(spec); - } - - @Override - @Transactional(propagation = Propagation.REQUIRED, readOnly = false) - public BytesMessageSpec update(BytesMessageSpec spec) { - return dao.save(spec); - } - - @Override - @Transactional(propagation = Propagation.REQUIRED, readOnly = false) - public void delete(Long id) { - dao.deleteById(id); - } - - @Override - @Transactional(propagation = Propagation.REQUIRED, readOnly = false) - public void setUnuseOthers(Long id) { - dao.updateUnuseOthers(id); - } -} diff --git a/src/main/java/com/eactive/httpmockserver/socket/EchoReplaceString.java b/src/main/java/com/eactive/httpmockserver/socket/EchoReplaceString.java deleted file mode 100644 index e37c172..0000000 --- a/src/main/java/com/eactive/httpmockserver/socket/EchoReplaceString.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.eactive.httpmockserver.socket; - -import javax.persistence.*; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.PositiveOrZero; -import java.io.Serializable; - -@SuppressWarnings("serial") -@Entity -public class EchoReplaceString implements Serializable { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; - - @PositiveOrZero - @NotNull - @Column(nullable = false) - private Integer position; - - @NotBlank - @Column(length = 5000, nullable = false) - private String replaceString; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Integer getPosition() { - return position; - } - - public void setPosition(Integer position) { - this.position = position; - } - - public String getReplaceString() { - return replaceString; - } - - public void setReplaceString(String replaceString) { - this.replaceString = replaceString; - } - - @Override - public String toString() { - return "EchoReplaceString [id=" + id + ", position=" + position + ", replaceString=" + replaceString + "]"; - } -} diff --git a/src/main/java/com/eactive/httpmockserver/socket/EchoSocketServer.java b/src/main/java/com/eactive/httpmockserver/socket/EchoSocketServer.java deleted file mode 100644 index 3707da1..0000000 --- a/src/main/java/com/eactive/httpmockserver/socket/EchoSocketServer.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.eactive.httpmockserver.socket; - -import io.netty.bootstrap.ServerBootstrap; -import io.netty.channel.*; -import io.netty.channel.nio.NioEventLoopGroup; -import io.netty.channel.socket.SocketChannel; -import io.netty.channel.socket.nio.NioServerSocketChannel; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Component; - -import javax.annotation.PreDestroy; -import javax.persistence.NoResultException; - -@Component -public class EchoSocketServer { - private final Logger logger = LoggerFactory.getLogger(this.getClass()); - - private BytesMessageSpec spec; - - EventLoopGroup bossGroup; - EventLoopGroup workerGroup; - ChannelFuture channelFuture; - - public EchoSocketServer() { - } - - public EchoSocketServer(BytesMessageSpec spec) { - this.spec = spec; - } - - public void start() throws Exception { - if (spec == null) { - throw new NoResultException(); - } - - int port = (spec.getPort() == null ? 38181 : spec.getPort().intValue()); - bossGroup = new NioEventLoopGroup(); - workerGroup = new NioEventLoopGroup(); - try { - ServerBootstrap server = new ServerBootstrap(); - // @formatter:off - server.group(bossGroup, workerGroup) - .channel(NioServerSocketChannel.class) - .childHandler(new ChannelInitializer() { - @Override - protected void initChannel(SocketChannel ch) throws Exception { - ChannelPipeline pipeline = ch.pipeline(); - pipeline.addLast(new LengthHeaderFrameDecoder(spec)); - pipeline.addLast(new EchoSocketServerHandler(spec)); - } - }) - .option(ChannelOption.SO_BACKLOG, 128) - .childOption(ChannelOption.SO_KEEPALIVE, false); - // @formatter:on - - channelFuture = server.bind(port).sync(); - channelFuture.channel().closeFuture().sync().channel(); - logger.info(port + " port bounded"); - } catch (Exception e) { - logger.error(e.getMessage()); - throw e; - } finally { - bossGroup.shutdownGracefully(); - workerGroup.shutdownGracefully(); - } - } - - @PreDestroy - public void stop() { - try { - bossGroup.shutdownGracefully().sync(); - workerGroup.shutdownGracefully().sync(); - channelFuture.channel().closeFuture().sync(); - } catch (InterruptedException e) { - logger.error(e.getMessage()); - } - } -} diff --git a/src/main/java/com/eactive/httpmockserver/socket/EchoSocketServerHandler.java b/src/main/java/com/eactive/httpmockserver/socket/EchoSocketServerHandler.java deleted file mode 100644 index 8617092..0000000 --- a/src/main/java/com/eactive/httpmockserver/socket/EchoSocketServerHandler.java +++ /dev/null @@ -1,143 +0,0 @@ -package com.eactive.httpmockserver.socket; - -import io.netty.buffer.ByteBuf; -import io.netty.buffer.ByteBufUtil; -import io.netty.buffer.Unpooled; -import io.netty.channel.ChannelHandler.Sharable; -import io.netty.channel.ChannelHandlerContext; -import io.netty.channel.ChannelInboundHandlerAdapter; -import org.apache.commons.lang3.BooleanUtils; -import org.apache.commons.lang3.StringUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Component; - -import java.io.UnsupportedEncodingException; - -@Component -@Sharable -public class EchoSocketServerHandler extends ChannelInboundHandlerAdapter { - private final Logger logger = LoggerFactory.getLogger(this.getClass()); - - private BytesMessageSpec spec; - - public EchoSocketServerHandler() { - } - - public EchoSocketServerHandler(BytesMessageSpec spec) { - this.spec = spec; - } - - @Override - public void handlerAdded(ChannelHandlerContext ctx) { - logger.info("EchoSocketServer handlerAdded"); - } - - @Override - public void channelActive(ChannelHandlerContext ctx) { - logger.info("Remote Address: " + ctx.channel().remoteAddress().toString()); - } - - @Override - public void channelRead(ChannelHandlerContext ctx, Object msg) { - logger.info("EchoSocketServer channelRead"); - - try { - spec.setEncode(StringUtils.defaultIfBlank(spec.getEncode(), "euc-kr")); - String message = new String(ByteBufUtil.getBytes((ByteBuf) msg), spec.getEncode()); - logger.info("=================================================="); - logger.info("Received Message=" + message); - logger.info("=================================================="); - - // length + content - String responseMsg = assignResponseMessage(message); - logger.info("=================================================="); - logger.info("Response Message=" + responseMsg); - logger.info("=================================================="); - - // sleep - if (spec.getSleepSeconds() != null) { - int sleepSeconds = spec.getSleepSeconds().intValue(); - if (sleepSeconds > 0) { - logger.info("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); - logger.info("Start Sleep {} Seconds.", sleepSeconds); - logger.info("..."); - Thread.sleep(sleepSeconds * 1000l); - logger.info("......"); - logger.info("Finished Sleep {} Seconds.", sleepSeconds); - logger.info("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); - } - } - - ctx.write(Unpooled.wrappedBuffer(responseMsg.getBytes(spec.getEncode()))); - } catch (Exception e) { - logger.error(e.getMessage()); - } - } - - private String assignResponseMessage(String body) throws UnsupportedEncodingException { - int llFieldLength = (spec.getLlFieldLength() == null ? 8 : spec.getLlFieldLength().intValue()); - - if (StringUtils.isNotBlank(spec.getResponseBody())) { - return appendLengthField(StringUtils.substring(spec.getResponseBody(), llFieldLength), spec); - } - - if (spec.getEchoReplaceStringList() != null) { - byte[] bytes = body.getBytes(spec.getEncode()); - for (EchoReplaceString echoReplaceString : spec.getEchoReplaceStringList()) { - bytes = replaceString(bytes, echoReplaceString.getPosition().intValue(), - echoReplaceString.getReplaceString().getBytes(spec.getEncode()), llFieldLength); - } - - body = new String(bytes, spec.getEncode()); - } - - return appendLengthField(body, spec); - } - - private byte[] replaceString(byte[] bytes, int position, byte[] replaceBytes, int llFieldLength) { - int idx = position - llFieldLength; - if (idx < 0 || bytes.length < idx) { - logger.warn("//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**"); - logger.warn("//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**"); - logger.warn("invalid postion(MessageSize={}, postion={})", bytes.length + llFieldLength, position); - return bytes; - } - - if (bytes.length < idx + replaceBytes.length) { - byte[] newBytes = new byte[idx + replaceBytes.length]; - System.arraycopy(bytes, 0, newBytes, 0, idx); - System.arraycopy(replaceBytes, 0, newBytes, idx, replaceBytes.length); - return newBytes; - } - - System.arraycopy(replaceBytes, 0, bytes, idx, replaceBytes.length); - return bytes; - } - - public static String appendLengthField(String body, BytesMessageSpec spec) throws UnsupportedEncodingException { - int llFieldLength = (spec.getLlFieldLength() == null ? 8 : spec.getLlFieldLength().intValue()); - int length = body.getBytes(spec.getEncode()).length; - if (BooleanUtils.toBoolean(spec.getLlFieldLengthInclude())) { - length += llFieldLength; - } - return String.format("%0" + llFieldLength + "d%s", length, body); - } - - @Override - public void channelReadComplete(ChannelHandlerContext ctx) throws Exception { - logger.info("EchoSocketServer channelReadComplete"); - ctx.flush(); - } - - @Override - public void handlerRemoved(ChannelHandlerContext ctx) { - logger.info("EchoSocketServer handlerRemoved"); - } - - @Override - public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) { - ctx.close(); - cause.printStackTrace(); - } -} \ No newline at end of file diff --git a/src/main/java/com/eactive/httpmockserver/socket/LengthHeaderFrameDecoder.java b/src/main/java/com/eactive/httpmockserver/socket/LengthHeaderFrameDecoder.java deleted file mode 100644 index 0cc29d9..0000000 --- a/src/main/java/com/eactive/httpmockserver/socket/LengthHeaderFrameDecoder.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.eactive.httpmockserver.socket; - -import io.netty.buffer.ByteBuf; -import io.netty.buffer.ByteBufUtil; -import io.netty.channel.ChannelHandlerContext; -import io.netty.handler.codec.ReplayingDecoder; -import org.apache.commons.lang3.BooleanUtils; -import org.apache.commons.lang3.math.NumberUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.List; - -public class LengthHeaderFrameDecoder extends ReplayingDecoder { - private final Logger logger = LoggerFactory.getLogger(this.getClass()); - - private boolean readLength; - private int length; - private BytesMessageSpec spec; - - public LengthHeaderFrameDecoder() { - } - - public LengthHeaderFrameDecoder(BytesMessageSpec spec) { - this.spec = spec; - } - - @Override - protected void decode(ChannelHandlerContext ctx, ByteBuf buf, List out) throws Exception { - int llFieldLength = (spec.getLlFieldLength() == null ? 8 : spec.getLlFieldLength().intValue()); - - if (!readLength) { - ByteBuf lengthFrame = buf.readBytes(llFieldLength); - length = assignMessageLength(ByteBufUtil.getBytes(lengthFrame)); - readLength = true; - logger.info("MessageLength = " + length); - checkpoint(); - } - - if (readLength) { - int contentLength = (BooleanUtils.toBoolean(spec.getLlFieldLengthInclude()) ? length - llFieldLength - : length); - ByteBuf frame = buf.readBytes(contentLength); - readLength = false; - checkpoint(); - out.add(frame); - } - } - - private int assignMessageLength(byte[] bytes) { - String lengthStr = new String(bytes); - return NumberUtils.toInt(lengthStr); - } -} diff --git a/src/main/resources/basecodes/BaseScript.java.template b/src/main/resources/basecodes/BaseScript.java.template deleted file mode 100644 index dad1a83..0000000 --- a/src/main/resources/basecodes/BaseScript.java.template +++ /dev/null @@ -1,16 +0,0 @@ -package com.eactive.httpmockserver.script.dynamic; -import com.eactive.httpmockserver.script.Script; -//IMPORT 클래스는 여기에 정의해 주세요 - -public class implements Script{ - /** - * Script Process Function - * @param requestMessage 수신 받은 요청 메시지 - * @param responseMessage 정의된 응답 메시지 - * @return 스크립트 수행 후 응답 할 메시지 - * @throws Exception - */ - public String postProcess(String requestMessage, String responseMessage) throws Exception { - return responseMessage; - } - } \ No newline at end of file