diff --git a/src/main/java/com/loafle/bridge/discoveryport/controller/DiscoveryPortController.java b/src/main/java/com/loafle/bridge/discoveryport/controller/DiscoveryPortController.java index b7db3d6..9d1bd9c 100644 --- a/src/main/java/com/loafle/bridge/discoveryport/controller/DiscoveryPortController.java +++ b/src/main/java/com/loafle/bridge/discoveryport/controller/DiscoveryPortController.java @@ -1,13 +1,19 @@ package com.loafle.bridge.discoveryport.controller; +import com.loafle.bridge.discoveryport.constant.PortType; import com.loafle.bridge.discoveryport.entity.DiscoveryPort; import com.loafle.bridge.discoveryport.repository.DiscoveryPortRepository; +import com.loafle.bridge.discoveryservice.entity.DiscoveryService; 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; +import javax.transaction.Transactional; +import java.util.ArrayList; +import java.util.List; + /** * Created by root on 16. 11. 15. */ @@ -22,4 +28,22 @@ public class DiscoveryPortController { public DiscoveryPort get(@PathVariable(value = "id") long id) { return repository.findOne(id); } + + @RequestMapping(value ="/index") + @Transactional + public void index() { + DiscoveryPort p = new DiscoveryPort(PortType.TCP,(short)12786); + + List ss = new ArrayList<>(); + + repository.save(p); + + ss.add(new DiscoveryService(p,PortType.TCP,"DNS")); + ss.add(new DiscoveryService(p,PortType.TCP,"TEST")); + ss.add(new DiscoveryService(p,PortType.TCP,"ABB")); + + p.setServices(ss); + + repository.save(p); + } } 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 520b18b..d5816c4 100644 --- a/src/main/java/com/loafle/bridge/discoveryport/entity/DiscoveryPort.java +++ b/src/main/java/com/loafle/bridge/discoveryport/entity/DiscoveryPort.java @@ -1,6 +1,7 @@ package com.loafle.bridge.discoveryport.entity; import com.loafle.bridge.discoveryport.constant.PortType; +import com.loafle.bridge.discoveryservice.entity.DiscoveryService; import javax.persistence.*; import java.util.Date; @@ -33,21 +34,21 @@ public class DiscoveryPort { @OneToMany(mappedBy = "port") private List histories; -// @OneToMany(mappedBy = "port") -// private List services; -// -// public List getServices() { -// return services; -// } -// -// public void setServices(List services) { -// this.services = services; -// } + @OneToMany(mappedBy = "port" ,cascade = CascadeType.ALL) + 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(columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP", nullable = false) + @Column(columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP", nullable = false, insertable = false) private Date updateDate; @@ -99,9 +100,6 @@ 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 21e1150..d52cc1b 100644 --- a/src/main/java/com/loafle/bridge/discoveryport/entity/ServiceScanHistory.java +++ b/src/main/java/com/loafle/bridge/discoveryport/entity/ServiceScanHistory.java @@ -16,10 +16,14 @@ public class ServiceScanHistory { @GeneratedValue(strategy = GenerationType.AUTO) private long id; + @Column(columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP", nullable = false, insertable = false, updatable = false) + private Date createDate; + @ManyToOne(fetch = FetchType.LAZY) @JoinColumn private DiscoveryPort port; + @Column(nullable = false) private String serviceName; @@ -27,8 +31,7 @@ public class ServiceScanHistory { @Enumerated(EnumType.STRING) private DirectionType direction; - @Column(columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP", nullable = false, insertable = false, updatable = false) - private Date createDate; + @Lob @Column(nullable = false) 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 fc81375..3a4058a 100644 --- a/src/main/java/com/loafle/bridge/discoveryservice/entity/DiscoveryService.java +++ b/src/main/java/com/loafle/bridge/discoveryservice/entity/DiscoveryService.java @@ -1,6 +1,7 @@ package com.loafle.bridge.discoveryservice.entity; import com.loafle.bridge.discoveryport.constant.PortType; +import com.loafle.bridge.discoveryport.entity.DiscoveryPort; import javax.persistence.*; import java.util.Date; @@ -14,16 +15,16 @@ public class DiscoveryService { @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; -// } + @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) @@ -35,12 +36,13 @@ public class DiscoveryService { @Column(columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP", nullable = false, insertable = false, updatable = false) private Date createDate; - @Column(columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP", nullable = false) + @Column(columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP", nullable = false ,insertable = false) private Date updateDate; public DiscoveryService() {} - public DiscoveryService(PortType t, String serviceName) { + public DiscoveryService(DiscoveryPort port,PortType t, String serviceName) { + this.port = port; this.portType = t; this.serviceName = serviceName; } @@ -63,9 +65,6 @@ public class DiscoveryService { } public Date getUpdateDate() { - if (this.updateDate == null) { - this.updateDate = new Date(); - } return updateDate; } diff --git a/src/main/resources/database.properties b/src/main/resources/database.properties index aa54933..8703c98 100644 --- a/src/main/resources/database.properties +++ b/src/main/resources/database.properties @@ -1,5 +1,5 @@ ## DataSource configuration -spring.datasource.url=jdbc:h2:file:~/data/test +spring.datasource.url=jdbc:h2:file:~/data/test;DB_CLOSE_ON_EXIT=FALSE spring.datasource.username=sa spring.datasource.password=qwe123 spring.datasource.driver-class-name=org.h2.Driver diff --git a/src/test/java/com/loafle/bridge/discoveryservice/repository/DiscoveryServiceRepositoryTest.java b/src/test/java/com/loafle/bridge/discoveryservice/repository/DiscoveryServiceRepositoryTest.java index 980e898..94eb6e6 100644 --- a/src/test/java/com/loafle/bridge/discoveryservice/repository/DiscoveryServiceRepositoryTest.java +++ b/src/test/java/com/loafle/bridge/discoveryservice/repository/DiscoveryServiceRepositoryTest.java @@ -2,6 +2,8 @@ package com.loafle.bridge.discoveryservice.repository; import com.loafle.bridge.Application; import com.loafle.bridge.discoveryport.constant.PortType; +import com.loafle.bridge.discoveryport.entity.DiscoveryPort; +import com.loafle.bridge.discoveryport.repository.DiscoveryPortRepository; import com.loafle.bridge.discoveryservice.entity.DiscoveryService; import org.apache.log4j.Logger; import org.junit.After; @@ -12,6 +14,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import javax.transaction.Transactional; +import java.util.ArrayList; import java.util.List; import static org.junit.Assert.assertEquals; @@ -25,14 +29,28 @@ import static org.junit.Assert.assertEquals; public class DiscoveryServiceRepositoryTest { @Autowired - private DiscoveryServiceRepository repo; + private DiscoveryPortRepository repo; + + + private Logger log = Logger.getLogger(this.getClass()); @Before + @Transactional public void Before() { - repo.save(new DiscoveryService(PortType.TLS,"HTTP")); - repo.save(new DiscoveryService(PortType.TCP,"WMI")); - repo.save(new DiscoveryService(PortType.UDP,"DNS")); + + DiscoveryPort p = new DiscoveryPort(PortType.TCP,(short)12786); + + List ss = new ArrayList<>(); + + ss.add(new DiscoveryService(p,PortType.TCP,"DNS")); + ss.add(new DiscoveryService(p,PortType.TCP,"TEST")); + ss.add(new DiscoveryService(p,PortType.TCP,"ABB")); + + p.setServices(ss); + + repo.save(p); + } @After @@ -41,8 +59,10 @@ public class DiscoveryServiceRepositoryTest { } @Test + @Transactional public void TestBefore() { - List l = repo.findAll(); - assertEquals(3, l.size()); + List ll = repo.findAll(); + assertEquals(1,ll.size()); + assertEquals(3,ll.get(0).getServices().size()); } } \ No newline at end of file