This commit is contained in:
jackdaw 2016-11-16 12:23:21 +09:00
parent ea914f8ce7
commit 04da526b05
7 changed files with 183 additions and 16 deletions

View File

@ -6,7 +6,8 @@ package com.loafle.bridge.discoveryport.constant;
public enum PortType { public enum PortType {
TCP("TCP"), TCP("TCP"),
UDP("UDP"); UDP("UDP"),
TLS("TLS");
private String stringValue; private String stringValue;
PortType(String string) {stringValue = string;} PortType(String string) {stringValue = string;}

View File

@ -10,28 +10,44 @@ import java.util.List;
public class DiscoveryPort { public class DiscoveryPort {
@Id @Id
@Column(name = "ID")
@GeneratedValue(strategy = GenerationType.AUTO) @GeneratedValue(strategy = GenerationType.AUTO)
private long id; private long id;
// @ManyToOne // @ManyToOne
// @JoinColumn(name = "HOST_ID", nullable = false) // @JoinColumn(name = "HOST_ID", nullable = false)
// private DiscoveryHost host; // private DiscoveryHost host;
//public DiscoveryHost getHost() {
@Column(name = "PORT_TYPE",nullable = false) // return host;
//}
//
// public void setHost(DiscoveryHost host) {
// this.host = host;
// }
@Column(nullable = false)
@Enumerated(EnumType.STRING) @Enumerated(EnumType.STRING)
private PortType portType; private PortType portType;
@Column(name = "PORT_NUMBER",nullable = false) @Column(nullable = false)
private short portNumber; private short portNumber;
@OneToMany(mappedBy = "port" , fetch = FetchType.LAZY) @OneToMany(mappedBy = "port")
private List<ServiceScanHistory> histories; private List<ServiceScanHistory> histories;
@Column(name = "CREATE_DATE", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP", nullable = false, insertable = false, updatable = false) // @OneToMany(mappedBy = "port")
// private List<DiscoveryService> services;
//
// public List<DiscoveryService> getServices() {
// return services;
// }
//
// public void setServices(List<DiscoveryService> services) {
// this.services = services;
// }
@Column(columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP", nullable = false, insertable = false, updatable = false)
private Date createDate; 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; private Date updateDate;
@ -83,6 +99,9 @@ public class DiscoveryPort {
} }
public Date getUpdateDate() { public Date getUpdateDate() {
if (this.updateDate == null) {
this.updateDate = new Date();
}
return updateDate; return updateDate;
} }

View File

@ -13,28 +13,38 @@ import java.util.Date;
public class ServiceScanHistory { public class ServiceScanHistory {
@Id @Id
@Column(name = "ID")
@GeneratedValue(strategy = GenerationType.AUTO) @GeneratedValue(strategy = GenerationType.AUTO)
private long id; private long id;
@ManyToOne(fetch = FetchType.LAZY) @ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "PORT_ID") @JoinColumn
private DiscoveryPort port; private DiscoveryPort port;
@Column(name = "SERVICE_NAME", nullable = false) @Column(nullable = false)
private String serviceName; private String serviceName;
@Column(name = "DIRECTION", nullable = false) @Column(nullable = false)
@Enumerated(EnumType.STRING) @Enumerated(EnumType.STRING)
private DirectionType direction; 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; private Date createDate;
@Lob @Lob
@Column(name = "PACKET", nullable = false) @Column(nullable = false)
private byte[] packet; private byte[] packet;
@Column
private String description;
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public ServiceScanHistory() {} public ServiceScanHistory() {}
public ServiceScanHistory(DiscoveryPort port, String serviceName, DirectionType direction, byte[] packet, Date createAt) { public ServiceScanHistory(DiscoveryPort port, String serviceName, DirectionType direction, byte[] packet, Date createAt) {

View File

@ -1,7 +1,23 @@
package com.loafle.bridge.discoveryservice.controller; 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. * Created by root on 16. 11. 15.
*/ */
@RestController
public class DiscoveryServiceController { 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);
}
} }

View File

@ -1,7 +1,75 @@
package com.loafle.bridge.discoveryservice.entity; 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. * Created by root on 16. 11. 15.
*/ */
@Entity
public class DiscoveryService { 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;
}
} }

View File

@ -1,7 +1,12 @@
package com.loafle.bridge.discoveryservice.repository; 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. * Created by root on 16. 11. 15.
*/ */
public class DiscoveryServiceRepository { @RepositoryRestResource(collectionResourceRel = "discoveryService", path = "discoveryService")
public interface DiscoveryServiceRepository extends JpaRepository<DiscoveryService, Long> {
} }

View File

@ -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<DiscoveryService> l = repo.findAll();
assertEquals(3, l.size());
}
}