From 04da526b058282663df3a85fd661c7d4cbb769aa Mon Sep 17 00:00:00 2001 From: jackdaw Date: Wed, 16 Nov 2016 12:23:21 +0900 Subject: [PATCH] . --- .../discoveryport/constant/PortType.java | 3 +- .../discoveryport/entity/DiscoveryPort.java | 33 +++++++-- .../entity/ServiceScanHistory.java | 22 ++++-- .../DiscoveryServiceController.java | 16 +++++ .../entity/DiscoveryService.java | 68 +++++++++++++++++++ .../DiscoveryServiceRepository.java | 9 ++- .../DiscoveryServiceRepositoryTest.java | 48 +++++++++++++ 7 files changed, 183 insertions(+), 16 deletions(-) create mode 100644 src/test/java/com/loafle/bridge/discoveryservice/repository/DiscoveryServiceRepositoryTest.java diff --git a/src/main/java/com/loafle/bridge/discoveryport/constant/PortType.java b/src/main/java/com/loafle/bridge/discoveryport/constant/PortType.java index b07ac23..62966b1 100644 --- a/src/main/java/com/loafle/bridge/discoveryport/constant/PortType.java +++ b/src/main/java/com/loafle/bridge/discoveryport/constant/PortType.java @@ -6,7 +6,8 @@ package com.loafle.bridge.discoveryport.constant; public enum PortType { TCP("TCP"), - UDP("UDP"); + UDP("UDP"), + TLS("TLS"); private String stringValue; PortType(String string) {stringValue = string;} diff --git a/src/main/java/com/loafle/bridge/discoveryport/entity/DiscoveryPort.java b/src/main/java/com/loafle/bridge/discoveryport/entity/DiscoveryPort.java index cb4d574..520b18b 100644 --- a/src/main/java/com/loafle/bridge/discoveryport/entity/DiscoveryPort.java +++ b/src/main/java/com/loafle/bridge/discoveryport/entity/DiscoveryPort.java @@ -10,28 +10,44 @@ import java.util.List; public class DiscoveryPort { @Id - @Column(name = "ID") @GeneratedValue(strategy = GenerationType.AUTO) private long id; // @ManyToOne // @JoinColumn(name = "HOST_ID", nullable = false) // private DiscoveryHost host; - - @Column(name = "PORT_TYPE",nullable = false) +//public DiscoveryHost getHost() { +// return host; +//} +// +// public void setHost(DiscoveryHost host) { +// this.host = host; +// } + @Column(nullable = false) @Enumerated(EnumType.STRING) private PortType portType; - @Column(name = "PORT_NUMBER",nullable = false) + @Column(nullable = false) private short portNumber; - @OneToMany(mappedBy = "port" , fetch = FetchType.LAZY) + @OneToMany(mappedBy = "port") private List histories; - @Column(name = "CREATE_DATE", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP", nullable = false, insertable = false, updatable = false) +// @OneToMany(mappedBy = "port") +// private List services; +// +// public List getServices() { +// return services; +// } +// +// public void setServices(List services) { +// this.services = services; +// } + + @Column(columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP", nullable = false, insertable = false, updatable = false) private Date createDate; - @Column(name = "UPDATE_DATE", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP", nullable = false, insertable = false) + @Column(columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP", nullable = false) private Date updateDate; @@ -83,6 +99,9 @@ public class DiscoveryPort { } public Date getUpdateDate() { + if (this.updateDate == null) { + this.updateDate = new Date(); + } return updateDate; } diff --git a/src/main/java/com/loafle/bridge/discoveryport/entity/ServiceScanHistory.java b/src/main/java/com/loafle/bridge/discoveryport/entity/ServiceScanHistory.java index 555758f..21e1150 100644 --- a/src/main/java/com/loafle/bridge/discoveryport/entity/ServiceScanHistory.java +++ b/src/main/java/com/loafle/bridge/discoveryport/entity/ServiceScanHistory.java @@ -13,28 +13,38 @@ import java.util.Date; public class ServiceScanHistory { @Id - @Column(name = "ID") @GeneratedValue(strategy = GenerationType.AUTO) private long id; @ManyToOne(fetch = FetchType.LAZY) - @JoinColumn(name = "PORT_ID") + @JoinColumn private DiscoveryPort port; - @Column(name = "SERVICE_NAME", nullable = false) + @Column(nullable = false) private String serviceName; - @Column(name = "DIRECTION", nullable = false) + @Column(nullable = false) @Enumerated(EnumType.STRING) private DirectionType direction; - @Column(name = "CREATE_DATE", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP", nullable = false, insertable = false, updatable = false) + @Column(columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP", nullable = false, insertable = false, updatable = false) private Date createDate; @Lob - @Column(name = "PACKET", nullable = false) + @Column(nullable = false) private byte[] packet; + @Column + private String description; + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + public ServiceScanHistory() {} public ServiceScanHistory(DiscoveryPort port, String serviceName, DirectionType direction, byte[] packet, Date createAt) { diff --git a/src/main/java/com/loafle/bridge/discoveryservice/controller/DiscoveryServiceController.java b/src/main/java/com/loafle/bridge/discoveryservice/controller/DiscoveryServiceController.java index 69bb0b4..ccee053 100644 --- a/src/main/java/com/loafle/bridge/discoveryservice/controller/DiscoveryServiceController.java +++ b/src/main/java/com/loafle/bridge/discoveryservice/controller/DiscoveryServiceController.java @@ -1,7 +1,23 @@ package com.loafle.bridge.discoveryservice.controller; +import com.loafle.bridge.discoveryservice.entity.DiscoveryService; +import com.loafle.bridge.discoveryservice.repository.DiscoveryServiceRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + /** * Created by root on 16. 11. 15. */ +@RestController public class DiscoveryServiceController { + @Autowired + DiscoveryServiceRepository repository; + + @RequestMapping(value = "/discoveryService/{id}", method = RequestMethod.GET) + public DiscoveryService get(@PathVariable(value = "id") long id) { + return repository.findOne(id); + } } diff --git a/src/main/java/com/loafle/bridge/discoveryservice/entity/DiscoveryService.java b/src/main/java/com/loafle/bridge/discoveryservice/entity/DiscoveryService.java index 774b5dc..fc81375 100644 --- a/src/main/java/com/loafle/bridge/discoveryservice/entity/DiscoveryService.java +++ b/src/main/java/com/loafle/bridge/discoveryservice/entity/DiscoveryService.java @@ -1,7 +1,75 @@ package com.loafle.bridge.discoveryservice.entity; +import com.loafle.bridge.discoveryport.constant.PortType; + +import javax.persistence.*; +import java.util.Date; + /** * Created by root on 16. 11. 15. */ +@Entity public class DiscoveryService { + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private long id; + +// @ManyToOne +// @JoinColumn(nullable = false) +// private DiscoveryPort port; +// public DiscoveryPort getPort() { +// return port; +// } +// +// public void setPort(DiscoveryPort port) { +// this.port = port; +// } + + @Column(nullable = false) + @Enumerated(EnumType.STRING) + private PortType portType; + + @Column(nullable = false) + private String serviceName; + + @Column(columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP", nullable = false, insertable = false, updatable = false) + private Date createDate; + + @Column(columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP", nullable = false) + private Date updateDate; + + public DiscoveryService() {} + + public DiscoveryService(PortType t, String serviceName) { + this.portType = t; + this.serviceName = serviceName; + } + + public long getId() { + return id; + } + + public void setId(long id) { + this.id = id; + } + + + public Date getCreateDate() { + return createDate; + } + + public void setCreateDate(Date createDate) { + this.createDate = createDate; + } + + public Date getUpdateDate() { + if (this.updateDate == null) { + this.updateDate = new Date(); + } + return updateDate; + } + + public void setUpdateDate(Date updateDate) { + this.updateDate = updateDate; + } } diff --git a/src/main/java/com/loafle/bridge/discoveryservice/repository/DiscoveryServiceRepository.java b/src/main/java/com/loafle/bridge/discoveryservice/repository/DiscoveryServiceRepository.java index 6e0b671..fb1427b 100644 --- a/src/main/java/com/loafle/bridge/discoveryservice/repository/DiscoveryServiceRepository.java +++ b/src/main/java/com/loafle/bridge/discoveryservice/repository/DiscoveryServiceRepository.java @@ -1,7 +1,12 @@ package com.loafle.bridge.discoveryservice.repository; +import com.loafle.bridge.discoveryservice.entity.DiscoveryService; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.rest.core.annotation.RepositoryRestResource; + /** * Created by root on 16. 11. 15. */ -public class DiscoveryServiceRepository { -} +@RepositoryRestResource(collectionResourceRel = "discoveryService", path = "discoveryService") +public interface DiscoveryServiceRepository extends JpaRepository { +} \ No newline at end of file diff --git a/src/test/java/com/loafle/bridge/discoveryservice/repository/DiscoveryServiceRepositoryTest.java b/src/test/java/com/loafle/bridge/discoveryservice/repository/DiscoveryServiceRepositoryTest.java new file mode 100644 index 0000000..980e898 --- /dev/null +++ b/src/test/java/com/loafle/bridge/discoveryservice/repository/DiscoveryServiceRepositoryTest.java @@ -0,0 +1,48 @@ +package com.loafle.bridge.discoveryservice.repository; + +import com.loafle.bridge.Application; +import com.loafle.bridge.discoveryport.constant.PortType; +import com.loafle.bridge.discoveryservice.entity.DiscoveryService; +import org.apache.log4j.Logger; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +import java.util.List; + +import static org.junit.Assert.assertEquals; + +/** + * Created by root on 16. 11. 16. + */ + +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(classes = Application.class) +public class DiscoveryServiceRepositoryTest { + + @Autowired + private DiscoveryServiceRepository repo; + private Logger log = Logger.getLogger(this.getClass()); + + @Before + public void Before() { + repo.save(new DiscoveryService(PortType.TLS,"HTTP")); + repo.save(new DiscoveryService(PortType.TCP,"WMI")); + repo.save(new DiscoveryService(PortType.UDP,"DNS")); + } + + @After + public void After() { + repo.deleteAll(); + } + + @Test + public void TestBefore() { + List l = repo.findAll(); + assertEquals(3, l.size()); + } +} \ No newline at end of file