ing
This commit is contained in:
parent
8625e10e00
commit
591f5f5e9a
14
pom.xml
14
pom.xml
|
@ -25,10 +25,10 @@
|
||||||
<spring.data.jpa.version>1.11.4.RELEASE</spring.data.jpa.version>
|
<spring.data.jpa.version>1.11.4.RELEASE</spring.data.jpa.version>
|
||||||
<spring.data.redis.version>1.8.7.RELEASE</spring.data.redis.version>
|
<spring.data.redis.version>1.8.7.RELEASE</spring.data.redis.version>
|
||||||
<spring.crypto.version>4.2.3.RELEASE</spring.crypto.version>
|
<spring.crypto.version>4.2.3.RELEASE</spring.crypto.version>
|
||||||
|
<gson.version>2.8.2</gson.version>
|
||||||
<hibernate.version>5.2.10.Final</hibernate.version>
|
<hibernate.version>5.2.10.Final</hibernate.version>
|
||||||
<javax.mail.version>1.4.7</javax.mail.version>
|
<javax.mail.version>1.4.7</javax.mail.version>
|
||||||
<javax.mail-api.version>1.6.0</javax.mail-api.version>
|
<javax.mail-api.version>1.6.0</javax.mail-api.version>
|
||||||
<jackson.mapper.version>1.9.13</jackson.mapper.version>
|
|
||||||
<apache.velocity.version>1.7</apache.velocity.version>
|
<apache.velocity.version>1.7</apache.velocity.version>
|
||||||
<docker.registry.name>docker.loafle.net/overflow</docker.registry.name>
|
<docker.registry.name>docker.loafle.net/overflow</docker.registry.name>
|
||||||
<googleauth.version>1.1.2</googleauth.version>
|
<googleauth.version>1.1.2</googleauth.version>
|
||||||
|
@ -97,12 +97,6 @@
|
||||||
<version>9.4-1200-jdbc41</version>
|
<version>9.4-1200-jdbc41</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.codehaus.jackson</groupId>
|
|
||||||
<artifactId>jackson-mapper-asl</artifactId>
|
|
||||||
<version>${jackson.mapper.version}</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-entitymanager -->
|
<!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-entitymanager -->
|
||||||
<dependency>
|
<dependency>
|
||||||
|
@ -124,6 +118,12 @@
|
||||||
<version>${spring.crypto.version}</version>
|
<version>${spring.crypto.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.google.code.gson</groupId>
|
||||||
|
<artifactId>gson</artifactId>
|
||||||
|
<version>${gson.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<!-- Mail -->
|
<!-- Mail -->
|
||||||
<!-- https://mvnrepository.com/artifact/javax.mail/mail -->
|
<!-- https://mvnrepository.com/artifact/javax.mail/mail -->
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
package com.loafle.overflow.central.module.discovery.service;
|
package com.loafle.overflow.central.module.discovery.service;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
import com.loafle.overflow.central.commons.service.MessagePublisher;
|
import com.loafle.overflow.central.commons.service.MessagePublisher;
|
||||||
import com.loafle.overflow.central.commons.utils.SessionMetadata;
|
import com.loafle.overflow.central.commons.utils.SessionMetadata;
|
||||||
import com.loafle.overflow.core.annotation.ProbeAPI;
|
import com.loafle.overflow.core.annotation.ProbeAPI;
|
||||||
|
@ -10,11 +8,9 @@ import com.loafle.overflow.core.exception.OverflowException;
|
||||||
import com.loafle.overflow.model.discovery.*;
|
import com.loafle.overflow.model.discovery.*;
|
||||||
|
|
||||||
import com.loafle.overflow.service.central.discovery.DiscoveryService;
|
import com.loafle.overflow.service.central.discovery.DiscoveryService;
|
||||||
import org.codehaus.jackson.map.ObjectMapper;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -23,76 +19,68 @@ import java.util.Date;
|
||||||
@Service("DiscoveryService")
|
@Service("DiscoveryService")
|
||||||
public class CentralDiscoveryService implements DiscoveryService {
|
public class CentralDiscoveryService implements DiscoveryService {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private MessagePublisher messagePublisher;
|
private MessagePublisher messagePublisher;
|
||||||
|
|
||||||
public void startDiscovery(DiscoveryStartInfo startInfo) throws OverflowException,IOException {
|
@WebappAPI
|
||||||
|
public void discoverZone(String probeID, DiscoverZone discoveryZone) throws OverflowException {
|
||||||
|
String requesterSessionID = SessionMetadata.getSessionID();
|
||||||
|
|
||||||
ObjectMapper objectMapper = new ObjectMapper();
|
messagePublisher.publishToProbe(probeID, "DiscoveryService.DiscoverZone", requesterSessionID, discoveryZone);
|
||||||
|
}
|
||||||
|
|
||||||
String json = objectMapper.writeValueAsString(startInfo);
|
@WebappAPI
|
||||||
|
public void discoverHost(String probeID, Zone zone, DiscoverHost discoveryHost) throws OverflowException {
|
||||||
|
String requesterSessionID = SessionMetadata.getSessionID();
|
||||||
|
|
||||||
System.out.println("Start Discovery");
|
messagePublisher.publishToProbe(probeID, "DiscoveryService.DiscoverHost", requesterSessionID, zone, discoveryHost);
|
||||||
System.out.println(json);
|
}
|
||||||
// this.messagePublisher.publishToProbe("/auth", noAuthProbe.getTempProbeKey(), "NoAuthProbeService.acceptNoAuthProbe", probe.getProbeKey());
|
|
||||||
}
|
|
||||||
|
|
||||||
@WebappAPI
|
@WebappAPI
|
||||||
public void discoverZone(String probeID, DiscoverZone discoveryZone) throws OverflowException {
|
public void discoverPort(String probeID, Host host, DiscoverPort discoveryPort) throws OverflowException {
|
||||||
String requesterSessionID = SessionMetadata.getSessionID();
|
String requesterSessionID = SessionMetadata.getSessionID();
|
||||||
|
|
||||||
messagePublisher.publishToProbe(probeID, "DiscoveryService.DiscoverZone", requesterSessionID, discoveryZone);
|
|
||||||
}
|
|
||||||
|
|
||||||
@WebappAPI
|
messagePublisher.publishToProbe(probeID, "DiscoveryService.DiscoverPort", requesterSessionID, host, discoveryPort);
|
||||||
public void discoverHost(String probeID, Zone zone, DiscoverHost discoveryHost) throws OverflowException {
|
}
|
||||||
String requesterSessionID = SessionMetadata.getSessionID();
|
|
||||||
|
|
||||||
messagePublisher.publishToProbe(probeID, "DiscoveryService.DiscoverHost", requesterSessionID, zone, discoveryHost);
|
|
||||||
}
|
|
||||||
|
|
||||||
@WebappAPI
|
|
||||||
public void discoverPort(String probeID, Host host, DiscoverPort discoveryPort) throws OverflowException {
|
|
||||||
String requesterSessionID = SessionMetadata.getSessionID();
|
|
||||||
|
|
||||||
messagePublisher.publishToProbe(probeID, "DiscoveryService.DiscoverPort", requesterSessionID, host, discoveryPort);
|
|
||||||
}
|
|
||||||
|
|
||||||
@WebappAPI
|
@WebappAPI
|
||||||
public void discoverService(String probeID, Port port, com.loafle.overflow.model.discovery.DiscoverService discoveryService) throws OverflowException {
|
public void discoverService(String probeID, Port port,
|
||||||
String requesterSessionID = SessionMetadata.getSessionID();
|
com.loafle.overflow.model.discovery.DiscoverService discoveryService) throws OverflowException {
|
||||||
|
String requesterSessionID = SessionMetadata.getSessionID();
|
||||||
messagePublisher.publishToProbe(probeID, "DiscoveryService.DiscoverService", requesterSessionID, port, discoveryService);
|
|
||||||
}
|
|
||||||
|
|
||||||
@ProbeAPI
|
messagePublisher.publishToProbe(probeID, "DiscoveryService.DiscoverService", requesterSessionID, port,
|
||||||
public void discoverStart(String requesterSessionID, Date startDate) throws OverflowException {
|
discoveryService);
|
||||||
messagePublisher.publishToMemberSession(requesterSessionID, "DiscoveryService.discoveryStart", startDate);
|
}
|
||||||
}
|
|
||||||
|
@ProbeAPI
|
||||||
@ProbeAPI
|
public void discoverStart(String requesterSessionID, Date startDate) throws OverflowException {
|
||||||
public void discoverStop(String requesterSessionID, Date stopDate) throws OverflowException {
|
messagePublisher.publishToMemberSession(requesterSessionID, "DiscoveryService.discoveryStart", startDate);
|
||||||
messagePublisher.publishToMemberSession(requesterSessionID, "DiscoveryService.discoveryStop", stopDate);
|
}
|
||||||
}
|
|
||||||
|
@ProbeAPI
|
||||||
@ProbeAPI
|
public void discoverStop(String requesterSessionID, Date stopDate) throws OverflowException {
|
||||||
public void discoveredZone(String requesterSessionID, Zone zone) throws OverflowException {
|
messagePublisher.publishToMemberSession(requesterSessionID, "DiscoveryService.discoveryStop", stopDate);
|
||||||
messagePublisher.publishToMemberSession(requesterSessionID, "DiscoveryService.discoveredZone", zone);
|
}
|
||||||
}
|
|
||||||
|
@ProbeAPI
|
||||||
@ProbeAPI
|
public void discoveredZone(String requesterSessionID, Zone zone) throws OverflowException {
|
||||||
public void discoveredHost(String requesterSessionID, Host host) throws OverflowException {
|
messagePublisher.publishToMemberSession(requesterSessionID, "DiscoveryService.discoveredZone", zone);
|
||||||
messagePublisher.publishToMemberSession(requesterSessionID, "DiscoveryService.discoveredHost", host);
|
}
|
||||||
}
|
|
||||||
|
@ProbeAPI
|
||||||
@ProbeAPI
|
public void discoveredHost(String requesterSessionID, Host host) throws OverflowException {
|
||||||
public void discoveredPort(String requesterSessionID, Port port) throws OverflowException {
|
messagePublisher.publishToMemberSession(requesterSessionID, "DiscoveryService.discoveredHost", host);
|
||||||
messagePublisher.publishToMemberSession(requesterSessionID, "DiscoveryService.discoveredPort", port);
|
}
|
||||||
}
|
|
||||||
|
@ProbeAPI
|
||||||
|
public void discoveredPort(String requesterSessionID, Port port) throws OverflowException {
|
||||||
|
messagePublisher.publishToMemberSession(requesterSessionID, "DiscoveryService.discoveredPort", port);
|
||||||
|
}
|
||||||
|
|
||||||
|
@ProbeAPI
|
||||||
|
public void discoveredService(String requesterSessionID, com.loafle.overflow.model.discovery.Service service)
|
||||||
|
throws OverflowException {
|
||||||
|
messagePublisher.publishToMemberSession(requesterSessionID, "DiscoveryService.discoveredService", service);
|
||||||
|
}
|
||||||
|
|
||||||
@ProbeAPI
|
|
||||||
public void discoveredService(String requesterSessionID, com.loafle.overflow.model.discovery.Service service) throws OverflowException {
|
|
||||||
messagePublisher.publishToMemberSession(requesterSessionID, "DiscoveryService.discoveredService", service);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
|
@ -1,5 +1,7 @@
|
||||||
package com.loafle.overflow.central.module.generator.service;
|
package com.loafle.overflow.central.module.generator.service;
|
||||||
|
|
||||||
|
import com.google.gson.Gson;
|
||||||
|
import com.google.gson.reflect.TypeToken;
|
||||||
import com.loafle.overflow.central.commons.utils.StringConvertor;
|
import com.loafle.overflow.central.commons.utils.StringConvertor;
|
||||||
import com.loafle.overflow.core.exception.OverflowException;
|
import com.loafle.overflow.core.exception.OverflowException;
|
||||||
import com.loafle.overflow.core.type.PortType;
|
import com.loafle.overflow.core.type.PortType;
|
||||||
|
@ -17,8 +19,6 @@ import com.loafle.overflow.model.sensorconfig.SensorConfig;
|
||||||
import com.loafle.overflow.model.sensorconfig.Target;
|
import com.loafle.overflow.model.sensorconfig.Target;
|
||||||
import com.loafle.overflow.service.central.auth.AuthCrawlerService;
|
import com.loafle.overflow.service.central.auth.AuthCrawlerService;
|
||||||
|
|
||||||
import org.codehaus.jackson.map.ObjectMapper;
|
|
||||||
import org.codehaus.jackson.type.TypeReference;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
@ -32,81 +32,79 @@ import java.util.Map;
|
||||||
@Service("InfraHostGenerator")
|
@Service("InfraHostGenerator")
|
||||||
public class InfraHostGenerator {
|
public class InfraHostGenerator {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private GenerateUtil generateUtil;
|
private GenerateUtil generateUtil;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private InfraHostWMIGenerator infraHostWMIGenerator;
|
private InfraHostWMIGenerator infraHostWMIGenerator;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private AuthCrawlerService authCrawlerService;
|
private AuthCrawlerService authCrawlerService;
|
||||||
|
|
||||||
public String process(Sensor dbSensor, List<SensorItem> sensorItems, Infra infra) throws Exception {
|
@Autowired
|
||||||
|
private Gson gson;
|
||||||
|
|
||||||
InfraHost infraHost = (InfraHost) infra;
|
public String process(Sensor dbSensor, List<SensorItem> sensorItems, Infra infra) throws Exception {
|
||||||
|
|
||||||
SensorConfig sensorConfig = new SensorConfig();
|
InfraHost infraHost = (InfraHost) infra;
|
||||||
sensorConfig.setConfigID(String.valueOf(dbSensor.getId()));
|
|
||||||
|
|
||||||
Target target = this.createTarget(infraHost, dbSensor);
|
SensorConfig sensorConfig = new SensorConfig();
|
||||||
|
sensorConfig.setConfigID(String.valueOf(dbSensor.getId()));
|
||||||
|
|
||||||
if (target == null) {
|
Target target = this.createTarget(infraHost, dbSensor);
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
sensorConfig.setTarget(target);
|
if (target == null) {
|
||||||
|
return null;
|
||||||
// FIXME: Interval
|
|
||||||
Schedule schedule = new Schedule();
|
|
||||||
schedule.setInterval("5");
|
|
||||||
sensorConfig.setSchedule(schedule);
|
|
||||||
|
|
||||||
Crawler crawler = this.generateUtil.getCrawler(dbSensor.getCrawler());
|
|
||||||
sensorConfig.setCrawler(crawler);
|
|
||||||
|
|
||||||
Map<Integer, MetaSensorItemKey> keyMap = this.generateUtil.initMappingMap(dbSensor.getCrawler());
|
|
||||||
|
|
||||||
if (dbSensor.getCrawler().getId() == MetaCrawlerEnum.WMI_CRAWLER.getValue()) {
|
|
||||||
this.infraHostWMIGenerator.process(sensorItems, keyMap, dbSensor, sensorConfig);
|
|
||||||
}
|
|
||||||
|
|
||||||
ObjectMapper objectMapper = new ObjectMapper();
|
|
||||||
return objectMapper.writeValueAsString(sensorConfig);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private Target createTarget(InfraHost infraHost, Sensor dbSensor)
|
sensorConfig.setTarget(target);
|
||||||
throws Exception {
|
|
||||||
|
|
||||||
AuthCrawler authCrawler = this.authCrawlerService.readAuth(dbSensor.getCrawler(), dbSensor.getTarget());
|
// FIXME: Interval
|
||||||
|
Schedule schedule = new Schedule();
|
||||||
|
schedule.setInterval("5");
|
||||||
|
sensorConfig.setSchedule(schedule);
|
||||||
|
|
||||||
if (authCrawler == null) {
|
Crawler crawler = this.generateUtil.getCrawler(dbSensor.getCrawler());
|
||||||
return null;
|
sensorConfig.setCrawler(crawler);
|
||||||
}
|
|
||||||
|
|
||||||
Target target = new Target();
|
Map<Integer, MetaSensorItemKey> keyMap = this.generateUtil.initMappingMap(dbSensor.getCrawler());
|
||||||
Connection connection = new Connection();
|
|
||||||
connection.setIp(StringConvertor.intToIp(infraHost.getIp()));
|
|
||||||
|
|
||||||
HashMap<String, String> optionMap;
|
if (dbSensor.getCrawler().getId() == MetaCrawlerEnum.WMI_CRAWLER.getValue()) {
|
||||||
optionMap = new ObjectMapper().readValue(authCrawler.getAuthJson(),
|
this.infraHostWMIGenerator.process(sensorItems, keyMap, dbSensor, sensorConfig);
|
||||||
new TypeReference<HashMap<String, String>>() {
|
|
||||||
});
|
|
||||||
|
|
||||||
if (dbSensor.getCrawler().getId() == MetaCrawlerEnum.WMI_CRAWLER.getValue()) {
|
|
||||||
connection.setPort(135);
|
|
||||||
connection.setPortType(PortType.TCP);
|
|
||||||
connection.setSsl(false);
|
|
||||||
|
|
||||||
target.setConnection(connection);
|
|
||||||
|
|
||||||
Map<String, Object> auth = new HashMap<>();
|
|
||||||
auth.put("id", optionMap.get("ID"));
|
|
||||||
auth.put("pw", optionMap.get("PassWord"));
|
|
||||||
|
|
||||||
target.setAuth(auth);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
return target;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return gson.toJson(sensorConfig);
|
||||||
|
}
|
||||||
|
|
||||||
|
private Target createTarget(InfraHost infraHost, Sensor dbSensor) throws Exception {
|
||||||
|
|
||||||
|
AuthCrawler authCrawler = this.authCrawlerService.readAuth(dbSensor.getCrawler(), dbSensor.getTarget());
|
||||||
|
|
||||||
|
if (authCrawler == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
Target target = new Target();
|
||||||
|
Connection connection = new Connection();
|
||||||
|
connection.setIp(StringConvertor.intToIp(infraHost.getIp()));
|
||||||
|
|
||||||
|
HashMap<String, String> optionMap = this.gson.fromJson(authCrawler.getAuthJson(), TypeToken.getParameterized(HashMap.class, String.class, String.class).getType());
|
||||||
|
|
||||||
|
if (dbSensor.getCrawler().getId() == MetaCrawlerEnum.WMI_CRAWLER.getValue()) {
|
||||||
|
connection.setPort(135);
|
||||||
|
connection.setPortType(PortType.TCP);
|
||||||
|
connection.setSsl(false);
|
||||||
|
|
||||||
|
target.setConnection(connection);
|
||||||
|
|
||||||
|
Map<String, Object> auth = new HashMap<>();
|
||||||
|
auth.put("id", optionMap.get("ID"));
|
||||||
|
auth.put("pw", optionMap.get("PassWord"));
|
||||||
|
|
||||||
|
target.setAuth(auth);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return target;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
package com.loafle.overflow.central.module.generator.service;
|
package com.loafle.overflow.central.module.generator.service;
|
||||||
|
|
||||||
|
import com.google.gson.Gson;
|
||||||
|
import com.google.gson.reflect.TypeToken;
|
||||||
import com.loafle.overflow.model.meta.MetaSensorItemKey;
|
import com.loafle.overflow.model.meta.MetaSensorItemKey;
|
||||||
import com.loafle.overflow.model.sensor.Sensor;
|
import com.loafle.overflow.model.sensor.Sensor;
|
||||||
import com.loafle.overflow.model.sensor.SensorItem;
|
import com.loafle.overflow.model.sensor.SensorItem;
|
||||||
|
@ -9,8 +11,6 @@ import com.loafle.overflow.model.sensorconfig.MappingInfo;
|
||||||
import com.loafle.overflow.model.sensorconfig.QueryInfo;
|
import com.loafle.overflow.model.sensorconfig.QueryInfo;
|
||||||
import com.loafle.overflow.model.sensorconfig.SensorConfig;
|
import com.loafle.overflow.model.sensorconfig.SensorConfig;
|
||||||
|
|
||||||
import org.codehaus.jackson.map.ObjectMapper;
|
|
||||||
import org.codehaus.jackson.type.TypeReference;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
@ -29,6 +29,9 @@ public class InfraHostWMIGenerator {
|
||||||
@Autowired
|
@Autowired
|
||||||
private GenerateUtil generateUtil;
|
private GenerateUtil generateUtil;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private Gson gson;
|
||||||
|
|
||||||
public void process(List<SensorItem> sensorItems, Map<Integer, MetaSensorItemKey> keyMap, Sensor dbSensor,
|
public void process(List<SensorItem> sensorItems, Map<Integer, MetaSensorItemKey> keyMap, Sensor dbSensor,
|
||||||
SensorConfig sensorConfig) throws Exception {
|
SensorConfig sensorConfig) throws Exception {
|
||||||
|
|
||||||
|
@ -84,9 +87,7 @@ public class InfraHostWMIGenerator {
|
||||||
|
|
||||||
String json = tempItemKey.getOption();
|
String json = tempItemKey.getOption();
|
||||||
if (json != null && json.length() > 0) {
|
if (json != null && json.length() > 0) {
|
||||||
HashMap<String, Object> optionMap;
|
HashMap<String, String> optionMap = this.gson.fromJson(json, TypeToken.getParameterized(HashMap.class, String.class, String.class).getType());
|
||||||
optionMap = new ObjectMapper().readValue(json, new TypeReference<HashMap<String, Object>>() {
|
|
||||||
});
|
|
||||||
|
|
||||||
Object obj = null;
|
Object obj = null;
|
||||||
obj = optionMap.get("appends");
|
obj = optionMap.get("appends");
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
package com.loafle.overflow.central.module.generator.service;
|
package com.loafle.overflow.central.module.generator.service;
|
||||||
|
|
||||||
|
import com.google.gson.Gson;
|
||||||
|
import com.google.gson.reflect.TypeToken;
|
||||||
import com.loafle.overflow.central.commons.utils.StringConvertor;
|
import com.loafle.overflow.central.commons.utils.StringConvertor;
|
||||||
import com.loafle.overflow.core.type.PortType;
|
import com.loafle.overflow.core.type.PortType;
|
||||||
import com.loafle.overflow.model.auth.AuthCrawler;
|
import com.loafle.overflow.model.auth.AuthCrawler;
|
||||||
|
@ -16,8 +18,6 @@ import com.loafle.overflow.model.sensorconfig.SensorConfig;
|
||||||
import com.loafle.overflow.model.sensorconfig.Target;
|
import com.loafle.overflow.model.sensorconfig.Target;
|
||||||
import com.loafle.overflow.service.central.auth.AuthCrawlerService;
|
import com.loafle.overflow.service.central.auth.AuthCrawlerService;
|
||||||
|
|
||||||
import org.codehaus.jackson.map.ObjectMapper;
|
|
||||||
import org.codehaus.jackson.type.TypeReference;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
@ -44,6 +44,9 @@ public class InfraServiceGenerator {
|
||||||
@Autowired
|
@Autowired
|
||||||
private AuthCrawlerService authCrawlerService;
|
private AuthCrawlerService authCrawlerService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private Gson gson;
|
||||||
|
|
||||||
public String process(Sensor dbSensor, List<SensorItem> sensorItems, Infra infra) throws Exception {
|
public String process(Sensor dbSensor, List<SensorItem> sensorItems, Infra infra) throws Exception {
|
||||||
com.loafle.overflow.model.infra.InfraService infraService = (com.loafle.overflow.model.infra.InfraService)infra;
|
com.loafle.overflow.model.infra.InfraService infraService = (com.loafle.overflow.model.infra.InfraService)infra;
|
||||||
|
|
||||||
|
@ -75,8 +78,7 @@ public class InfraServiceGenerator {
|
||||||
this.infraServiceJMXGenerator.process(sensorItems, keyMap, dbSensor, sensorConfig);
|
this.infraServiceJMXGenerator.process(sensorItems, keyMap, dbSensor, sensorConfig);
|
||||||
}
|
}
|
||||||
|
|
||||||
ObjectMapper objectMapper = new ObjectMapper();
|
return gson.toJson(sensorConfig);
|
||||||
return objectMapper.writeValueAsString(sensorConfig);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private Target createTarget(InfraService infraService, Sensor sensor) throws Exception {
|
private Target createTarget(InfraService infraService, Sensor sensor) throws Exception {
|
||||||
|
@ -96,8 +98,7 @@ public class InfraServiceGenerator {
|
||||||
|
|
||||||
target.setConnection(connection);
|
target.setConnection(connection);
|
||||||
|
|
||||||
HashMap<String,String> optionMap;
|
HashMap<String, String> optionMap = this.gson.fromJson(authCrawler.getAuthJson(), TypeToken.getParameterized(HashMap.class, String.class, String.class).getType());
|
||||||
optionMap = new ObjectMapper().readValue(authCrawler.getAuthJson(), new TypeReference<HashMap<String,String>>() {});
|
|
||||||
|
|
||||||
Map<String, Object> auth = new HashMap<>();
|
Map<String, Object> auth = new HashMap<>();
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
package com.loafle.overflow.central.module.generator.service;
|
package com.loafle.overflow.central.module.generator.service;
|
||||||
|
|
||||||
|
import com.google.gson.Gson;
|
||||||
|
import com.google.gson.reflect.TypeToken;
|
||||||
import com.loafle.overflow.model.meta.MetaSensorItemKey;
|
import com.loafle.overflow.model.meta.MetaSensorItemKey;
|
||||||
import com.loafle.overflow.model.sensor.Sensor;
|
import com.loafle.overflow.model.sensor.Sensor;
|
||||||
import com.loafle.overflow.model.sensor.SensorItem;
|
import com.loafle.overflow.model.sensor.SensorItem;
|
||||||
|
@ -9,8 +11,6 @@ import com.loafle.overflow.model.sensorconfig.MappingInfo;
|
||||||
import com.loafle.overflow.model.sensorconfig.QueryInfo;
|
import com.loafle.overflow.model.sensorconfig.QueryInfo;
|
||||||
import com.loafle.overflow.model.sensorconfig.SensorConfig;
|
import com.loafle.overflow.model.sensorconfig.SensorConfig;
|
||||||
|
|
||||||
import org.codehaus.jackson.map.ObjectMapper;
|
|
||||||
import org.codehaus.jackson.type.TypeReference;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
@ -28,6 +28,9 @@ public class InfraServiceJMXGenerator {
|
||||||
@Autowired
|
@Autowired
|
||||||
private GenerateUtil generateUtil;
|
private GenerateUtil generateUtil;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private Gson gson;
|
||||||
|
|
||||||
public void process(List<SensorItem> sensorItems, Map<Integer, MetaSensorItemKey> keyMap, Sensor dbSensor,
|
public void process(List<SensorItem> sensorItems, Map<Integer, MetaSensorItemKey> keyMap, Sensor dbSensor,
|
||||||
SensorConfig sensorConfig) throws Exception {
|
SensorConfig sensorConfig) throws Exception {
|
||||||
Map<String, List<MetaSensorItemKey>> metricMap = null;
|
Map<String, List<MetaSensorItemKey>> metricMap = null;
|
||||||
|
@ -70,9 +73,7 @@ public class InfraServiceJMXGenerator {
|
||||||
List<String> arrayCol = null;
|
List<String> arrayCol = null;
|
||||||
|
|
||||||
if (json != null && json.length() > 0) {
|
if (json != null && json.length() > 0) {
|
||||||
HashMap<String, Object> optionMap;
|
HashMap<String, String> optionMap = this.gson.fromJson(json, TypeToken.getParameterized(HashMap.class, String.class, String.class).getType());
|
||||||
optionMap = new ObjectMapper().readValue(json, new TypeReference<HashMap<String, Object>>() {
|
|
||||||
});
|
|
||||||
|
|
||||||
Object obj = null;
|
Object obj = null;
|
||||||
obj = optionMap.get("aliases");
|
obj = optionMap.get("aliases");
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
package com.loafle.overflow.central.module.generator.service;
|
package com.loafle.overflow.central.module.generator.service;
|
||||||
|
|
||||||
|
import com.google.gson.Gson;
|
||||||
|
import com.google.gson.reflect.TypeToken;
|
||||||
import com.loafle.overflow.core.exception.OverflowException;
|
import com.loafle.overflow.core.exception.OverflowException;
|
||||||
import com.loafle.overflow.model.meta.MetaSensorItemKey;
|
import com.loafle.overflow.model.meta.MetaSensorItemKey;
|
||||||
import com.loafle.overflow.model.sensor.Sensor;
|
import com.loafle.overflow.model.sensor.Sensor;
|
||||||
|
@ -10,10 +12,6 @@ import com.loafle.overflow.model.sensorconfig.MappingInfo;
|
||||||
import com.loafle.overflow.model.sensorconfig.QueryInfo;
|
import com.loafle.overflow.model.sensorconfig.QueryInfo;
|
||||||
import com.loafle.overflow.model.sensorconfig.SensorConfig;
|
import com.loafle.overflow.model.sensorconfig.SensorConfig;
|
||||||
|
|
||||||
import org.codehaus.jackson.JsonParseException;
|
|
||||||
import org.codehaus.jackson.map.JsonMappingException;
|
|
||||||
import org.codehaus.jackson.map.ObjectMapper;
|
|
||||||
import org.codehaus.jackson.type.TypeReference;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
@ -31,6 +29,8 @@ public class InfraServiceMysqlGenerator {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private GenerateUtil generateUtil;
|
private GenerateUtil generateUtil;
|
||||||
|
@Autowired
|
||||||
|
private Gson gson;
|
||||||
|
|
||||||
public void process(List<SensorItem> sensorItems, Map<Integer, MetaSensorItemKey> keyMap, Sensor dbSensor,
|
public void process(List<SensorItem> sensorItems, Map<Integer, MetaSensorItemKey> keyMap, Sensor dbSensor,
|
||||||
SensorConfig sensorConfig) throws Exception {
|
SensorConfig sensorConfig) throws Exception {
|
||||||
|
@ -83,9 +83,7 @@ public class InfraServiceMysqlGenerator {
|
||||||
|
|
||||||
String json = tempItemKey.getOption();
|
String json = tempItemKey.getOption();
|
||||||
if (json != null && json.length() > 0) {
|
if (json != null && json.length() > 0) {
|
||||||
HashMap<String, Object> optionMap;
|
HashMap<String, String> optionMap = this.gson.fromJson(json, TypeToken.getParameterized(HashMap.class, String.class, String.class).getType());
|
||||||
optionMap = new ObjectMapper().readValue(json, new TypeReference<HashMap<String, Object>>() {
|
|
||||||
});
|
|
||||||
|
|
||||||
Object obj = null;
|
Object obj = null;
|
||||||
obj = optionMap.get("valueColumn");
|
obj = optionMap.get("valueColumn");
|
||||||
|
|
|
@ -4,10 +4,8 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.data.domain.Page;
|
import org.springframework.data.domain.Page;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import com.loafle.overflow.core.exception.OverflowException;
|
|
||||||
import com.loafle.overflow.core.model.PageParams;
|
import com.loafle.overflow.core.model.PageParams;
|
||||||
import com.loafle.overflow.model.infra.Infra;
|
import com.loafle.overflow.model.infra.Infra;
|
||||||
import com.loafle.overflow.model.sensor.Sensor;
|
import com.loafle.overflow.model.sensor.Sensor;
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
package com.loafle.overflow.central.module.noauthprobe.service;
|
package com.loafle.overflow.central.module.noauthprobe.service;
|
||||||
|
|
||||||
|
import com.google.gson.Gson;
|
||||||
|
import com.google.gson.reflect.TypeToken;
|
||||||
import com.loafle.overflow.central.commons.service.MessagePublisher;
|
import com.loafle.overflow.central.commons.service.MessagePublisher;
|
||||||
import com.loafle.overflow.central.commons.stereotype.ProbeAPI;
|
import com.loafle.overflow.central.commons.stereotype.ProbeAPI;
|
||||||
import com.loafle.overflow.central.commons.stereotype.WebappAPI;
|
import com.loafle.overflow.central.commons.stereotype.WebappAPI;
|
||||||
|
@ -20,8 +22,6 @@ import com.loafle.overflow.service.central.domain.DomainMemberService;
|
||||||
import com.loafle.overflow.service.central.noauthprobe.NoAuthProbeService;
|
import com.loafle.overflow.service.central.noauthprobe.NoAuthProbeService;
|
||||||
import com.loafle.overflow.service.central.probe.ProbeService;
|
import com.loafle.overflow.service.central.probe.ProbeService;
|
||||||
|
|
||||||
import org.codehaus.jackson.map.ObjectMapper;
|
|
||||||
import org.codehaus.jackson.type.TypeReference;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
@ -46,15 +46,15 @@ public class CentralNoAuthProbeService implements NoAuthProbeService{
|
||||||
@Autowired
|
@Autowired
|
||||||
private ProbeService probeService;
|
private ProbeService probeService;
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private ObjectMapper objectMapper;
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private MessagePublisher messagePublisher;
|
private MessagePublisher messagePublisher;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private DomainMemberService domainMemberService;
|
private DomainMemberService domainMemberService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private Gson gson;
|
||||||
|
|
||||||
@ProbeAPI
|
@ProbeAPI
|
||||||
public NoAuthProbe regist(NoAuthProbe noAuthProbe) throws OverflowException{
|
public NoAuthProbe regist(NoAuthProbe noAuthProbe) throws OverflowException{
|
||||||
|
|
||||||
|
@ -99,12 +99,7 @@ public class CentralNoAuthProbeService implements NoAuthProbeService{
|
||||||
probe.setAuthorizeMember(new Member(domainMember.getMember().getId()));
|
probe.setAuthorizeMember(new Member(domainMember.getMember().getId()));
|
||||||
probe.setStatus(new MetaProbeStatus((short)1));
|
probe.setStatus(new MetaProbeStatus((short)1));
|
||||||
|
|
||||||
Map<String, Object> objMap = null;
|
HashMap<String, Object> objMap = this.gson.fromJson(noAuthProbe.getDescription(), TypeToken.getParameterized(HashMap.class, String.class, Object.class).getType());
|
||||||
try {
|
|
||||||
objMap = this.objectMapper.readValue(noAuthProbe.getDescription(), new TypeReference<HashMap<String,Object>>() {});
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
Map<String, String> hostMap = (Map<String, String>) objMap.get("host");
|
Map<String, String> hostMap = (Map<String, String>) objMap.get("host");
|
||||||
Map<String, String> netMap = (Map<String, String>) objMap.get("network");
|
Map<String, String> netMap = (Map<String, String>) objMap.get("network");
|
||||||
|
|
||||||
|
|
|
@ -1,18 +1,15 @@
|
||||||
package com.loafle.overflow.central.proxy;
|
package com.loafle.overflow.central.proxy;
|
||||||
|
|
||||||
import com.google.gson.internal.Primitives;
|
import com.google.gson.Gson;
|
||||||
import com.google.protobuf.ByteString;
|
import com.google.protobuf.ByteString;
|
||||||
import com.loafle.overflow.core.exception.OverflowException;
|
import com.loafle.overflow.core.exception.OverflowException;
|
||||||
|
|
||||||
import org.codehaus.jackson.map.DeserializationConfig;
|
|
||||||
import org.codehaus.jackson.map.ObjectMapper;
|
|
||||||
import org.codehaus.jackson.type.JavaType;
|
|
||||||
import org.springframework.aop.support.AopUtils;
|
import org.springframework.aop.support.AopUtils;
|
||||||
import org.springframework.beans.BeansException;
|
import org.springframework.beans.BeansException;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.context.ApplicationContext;
|
import org.springframework.context.ApplicationContext;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.lang.reflect.*;
|
import java.lang.reflect.*;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -26,15 +23,13 @@ public class ServiceInvoker {
|
||||||
// @Autowired
|
// @Autowired
|
||||||
private ApplicationContext context;
|
private ApplicationContext context;
|
||||||
|
|
||||||
private ObjectMapper objectMapper;
|
|
||||||
|
|
||||||
private Map<String, Cache> serviceCacheMap;
|
private Map<String, Cache> serviceCacheMap;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private Gson gson;
|
||||||
|
|
||||||
public ServiceInvoker(ApplicationContext context) {
|
public ServiceInvoker(ApplicationContext context) {
|
||||||
this.context = context;
|
this.context = context;
|
||||||
objectMapper = new ObjectMapper();
|
|
||||||
objectMapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
|
|
||||||
|
|
||||||
serviceCacheMap = new HashMap<>();
|
serviceCacheMap = new HashMap<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -122,15 +117,7 @@ public class ServiceInvoker {
|
||||||
}
|
}
|
||||||
|
|
||||||
private Object getValue(Type parameterType, String json) throws IllegalArgumentException {
|
private Object getValue(Type parameterType, String json) throws IllegalArgumentException {
|
||||||
JavaType targetType = objectMapper.getTypeFactory().constructType(parameterType);
|
return this.gson.fromJson(json, parameterType);
|
||||||
if (!Primitives.isPrimitive(parameterType) && !parameterType.getTypeName().equals(String.class.getName())) {
|
|
||||||
try {
|
|
||||||
return objectMapper.readValue(json, targetType);
|
|
||||||
} catch (IOException e) {
|
|
||||||
throw new IllegalArgumentException("");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return objectMapper.convertValue(json, targetType);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private Object[] getParameters(Type[] parameterTypes, List<ByteString> params) throws IllegalArgumentException {
|
private Object[] getParameters(Type[] parameterTypes, List<ByteString> params) throws IllegalArgumentException {
|
||||||
|
@ -187,11 +174,7 @@ public class ServiceInvoker {
|
||||||
throw new OverflowException("internal error", e);
|
throw new OverflowException("internal error", e);
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
jsonInString = this.gson.toJson(result);
|
||||||
jsonInString = objectMapper.writeValueAsString(result);
|
|
||||||
} catch (IOException e) {
|
|
||||||
throw new OverflowException("internal error", e);
|
|
||||||
}
|
|
||||||
|
|
||||||
return jsonInString;
|
return jsonInString;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
package com.loafle.overflow.central.redis.service;
|
package com.loafle.overflow.central.redis.service;
|
||||||
|
|
||||||
|
import com.google.gson.Gson;
|
||||||
import com.loafle.overflow.central.commons.service.MessagePublisher;
|
import com.loafle.overflow.central.commons.service.MessagePublisher;
|
||||||
import com.loafle.overflow.core.exception.OverflowException;
|
import com.loafle.overflow.core.exception.OverflowException;
|
||||||
import com.loafle.overflow.core.model.PublishMessage;
|
import com.loafle.overflow.core.model.PublishMessage;
|
||||||
import com.loafle.overflow.model.member.Member;
|
import com.loafle.overflow.model.member.Member;
|
||||||
import com.loafle.overflow.service.central.member.MemberService;
|
import com.loafle.overflow.service.central.member.MemberService;
|
||||||
|
|
||||||
import org.codehaus.jackson.map.ObjectMapper;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.cache.annotation.Cacheable;
|
import org.springframework.cache.annotation.Cacheable;
|
||||||
import org.springframework.data.redis.core.RedisTemplate;
|
import org.springframework.data.redis.core.RedisTemplate;
|
||||||
|
@ -20,114 +20,113 @@ import java.util.Map;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class RedisMessagePublisher implements MessagePublisher {
|
public class RedisMessagePublisher implements MessagePublisher {
|
||||||
private static final String CHANNEL_WEBAPP = "/webapp";
|
private static final String CHANNEL_WEBAPP = "/webapp";
|
||||||
private static final String CHANNEL_NOAUTH_PROBE = "/auth";
|
private static final String CHANNEL_NOAUTH_PROBE = "/auth";
|
||||||
private static final String CHANNEL_PROBE = "/probe";
|
private static final String CHANNEL_PROBE = "/probe";
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private RedisTemplate<String, Object> redisTemplate;
|
private RedisTemplate<String, Object> redisTemplate;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ObjectMapper objectMapper;
|
private Gson gson;
|
||||||
@Autowired
|
@Autowired
|
||||||
private MemberService memberService;
|
private MemberService memberService;
|
||||||
|
|
||||||
private Map<String, ChannelTopic> topics;
|
private Map<String, ChannelTopic> topics;
|
||||||
|
|
||||||
public RedisMessagePublisher() {
|
public RedisMessagePublisher() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public RedisMessagePublisher(final RedisTemplate<String, Object> redisTemplate,
|
||||||
|
final Map<String, ChannelTopic> topics) {
|
||||||
|
this.redisTemplate = redisTemplate;
|
||||||
|
this.topics = topics;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void publishToDomainMembers(final long domainID, final String method, final Object... params)
|
||||||
|
throws OverflowException {
|
||||||
|
PublishMessage message = new PublishMessage();
|
||||||
|
message.setTargetType(PublishMessage.TargetType.MEMBER);
|
||||||
|
message.setTargets(getMemberListByDomainID(domainID));
|
||||||
|
this.publish(CHANNEL_WEBAPP, message, method, params);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void publishToDomainMembersByProbeKey(final String probeKey, final String method, final Object... params)
|
||||||
|
throws OverflowException {
|
||||||
|
PublishMessage message = new PublishMessage();
|
||||||
|
message.setTargetType(PublishMessage.TargetType.MEMBER);
|
||||||
|
message.setTargets(getMemberListByProbeKey(probeKey));
|
||||||
|
this.publish(CHANNEL_WEBAPP, message, method, params);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void publishToMember(final String memberID, final String method, final Object... params)
|
||||||
|
throws OverflowException {
|
||||||
|
PublishMessage message = new PublishMessage();
|
||||||
|
message.setTargetType(PublishMessage.TargetType.MEMBER);
|
||||||
|
message.addTarget(memberID);
|
||||||
|
this.publish(CHANNEL_WEBAPP, message, method, params);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void publishToMemberSession(final String memberSessionID, final String method, final Object... params)
|
||||||
|
throws OverflowException {
|
||||||
|
PublishMessage message = new PublishMessage();
|
||||||
|
message.setTargetType(PublishMessage.TargetType.MEMBER_SESSION);
|
||||||
|
message.addTarget(memberSessionID);
|
||||||
|
this.publish(CHANNEL_WEBAPP, message, method, params);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void publishToNoAuthProbe(final String tempProbeKey, final String method, final Object... params)
|
||||||
|
throws OverflowException {
|
||||||
|
PublishMessage message = new PublishMessage();
|
||||||
|
message.setTargetType(PublishMessage.TargetType.PROBE);
|
||||||
|
message.addTarget(tempProbeKey);
|
||||||
|
this.publish(CHANNEL_NOAUTH_PROBE, message, method, params);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void publishToProbe(final String probeKey, final String method, final Object... params)
|
||||||
|
throws OverflowException {
|
||||||
|
PublishMessage message = new PublishMessage();
|
||||||
|
message.setTargetType(PublishMessage.TargetType.PROBE);
|
||||||
|
message.addTarget(probeKey);
|
||||||
|
this.publish(CHANNEL_PROBE, message, method, params);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Cacheable("memberListByDomain")
|
||||||
|
protected List<String> getMemberListByDomainID(final long domainID) throws OverflowException {
|
||||||
|
return this.getMemberList(memberService.readAllByDomainID(domainID));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Cacheable("memberListByProbeKey")
|
||||||
|
protected List<String> getMemberListByProbeKey(final String probeKey) throws OverflowException {
|
||||||
|
return this.getMemberList(memberService.readAllByProbeKey(probeKey));
|
||||||
|
}
|
||||||
|
|
||||||
|
protected List<String> getMemberList(final List<Member> members) {
|
||||||
|
List<String> results = new ArrayList<>(members.size());
|
||||||
|
for (Member member : members) {
|
||||||
|
results.add(member.getEmail());
|
||||||
}
|
}
|
||||||
|
|
||||||
public RedisMessagePublisher(final RedisTemplate<String, Object> redisTemplate, final Map<String, ChannelTopic> topics) {
|
return results;
|
||||||
this.redisTemplate = redisTemplate;
|
}
|
||||||
this.topics = topics;
|
|
||||||
}
|
protected void publish(final String channel, PublishMessage message, final String method, Object... params) {
|
||||||
|
ChannelTopic topic = this.topics.get(channel);
|
||||||
public void publishToDomainMembers(final long domainID, final String method, final Object... params) throws OverflowException {
|
message.setMessage(new PublishMessage.PublishMessageBody(method, this.getMessageBody(params)));
|
||||||
PublishMessage message = new PublishMessage();
|
|
||||||
message.setTargetType(PublishMessage.TargetType.MEMBER);
|
String json = this.gson.toJson(message);
|
||||||
message.setTargets(getMemberListByDomainID(domainID));
|
redisTemplate.convertAndSend(topic.getTopic(), json);
|
||||||
this.publish(CHANNEL_WEBAPP, message, method, params);
|
}
|
||||||
}
|
|
||||||
public void publishToDomainMembersByProbeKey(final String probeKey, final String method, final Object... params) throws OverflowException {
|
protected List<String> getMessageBody(final Object... params) {
|
||||||
PublishMessage message = new PublishMessage();
|
List<String> results = new ArrayList<>(params.length);
|
||||||
message.setTargetType(PublishMessage.TargetType.MEMBER);
|
for (Object param : params) {
|
||||||
message.setTargets(getMemberListByProbeKey(probeKey));
|
if (param.getClass().equals(String.class)) {
|
||||||
this.publish(CHANNEL_WEBAPP, message, method, params);
|
results.add((String) param);
|
||||||
}
|
} else {
|
||||||
|
results.add(this.gson.toJson(param));
|
||||||
public void publishToMember(final String memberID, final String method, final Object... params) throws OverflowException {
|
}
|
||||||
PublishMessage message = new PublishMessage();
|
|
||||||
message.setTargetType(PublishMessage.TargetType.MEMBER);
|
|
||||||
message.addTarget(memberID);
|
|
||||||
this.publish(CHANNEL_WEBAPP, message, method, params);
|
|
||||||
}
|
|
||||||
public void publishToMemberSession(final String memberSessionID, final String method, final Object... params) throws OverflowException {
|
|
||||||
PublishMessage message = new PublishMessage();
|
|
||||||
message.setTargetType(PublishMessage.TargetType.MEMBER_SESSION);
|
|
||||||
message.addTarget(memberSessionID);
|
|
||||||
this.publish(CHANNEL_WEBAPP, message, method, params);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void publishToNoAuthProbe(final String tempProbeKey, final String method, final Object... params) throws OverflowException {
|
|
||||||
PublishMessage message = new PublishMessage();
|
|
||||||
message.setTargetType(PublishMessage.TargetType.PROBE);
|
|
||||||
message.addTarget(tempProbeKey);
|
|
||||||
this.publish(CHANNEL_NOAUTH_PROBE, message, method, params);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void publishToProbe(final String probeKey, final String method, final Object... params) throws OverflowException {
|
|
||||||
PublishMessage message = new PublishMessage();
|
|
||||||
message.setTargetType(PublishMessage.TargetType.PROBE);
|
|
||||||
message.addTarget(probeKey);
|
|
||||||
this.publish(CHANNEL_PROBE, message, method, params);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Cacheable("memberListByDomain")
|
|
||||||
protected List<String> getMemberListByDomainID(final long domainID) throws OverflowException {
|
|
||||||
return this.getMemberList(memberService.readAllByDomainID(domainID));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Cacheable("memberListByProbeKey")
|
|
||||||
protected List<String> getMemberListByProbeKey(final String probeKey) throws OverflowException {
|
|
||||||
return this.getMemberList(memberService.readAllByProbeKey(probeKey));
|
|
||||||
}
|
|
||||||
|
|
||||||
protected List<String> getMemberList(final List<Member> members) {
|
|
||||||
List<String> results = new ArrayList<>(members.size());
|
|
||||||
for (Member member: members) {
|
|
||||||
results.add(member.getEmail());
|
|
||||||
}
|
|
||||||
|
|
||||||
return results;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void publish(final String channel, PublishMessage message, final String method, Object... params) {
|
|
||||||
ChannelTopic topic = this.topics.get(channel);
|
|
||||||
message.setMessage(new PublishMessage.PublishMessageBody(method, this.getMessageBody(params)));
|
|
||||||
|
|
||||||
try {
|
|
||||||
String json = this.objectMapper.writeValueAsString(message);
|
|
||||||
redisTemplate.convertAndSend(topic.getTopic(), json);
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
protected List<String> getMessageBody(final Object... params) {
|
|
||||||
List<String> results = new ArrayList<>(params.length);
|
|
||||||
try {
|
|
||||||
for (Object param : params) {
|
|
||||||
if (param.getClass().equals(String.class)) {
|
|
||||||
results.add((String)param);
|
|
||||||
} else {
|
|
||||||
results.add(objectMapper.writeValueAsString(param));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
return results;
|
|
||||||
}
|
}
|
||||||
|
return results;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
package com.loafle.overflow.central.spring;
|
package com.loafle.overflow.central.spring;
|
||||||
|
|
||||||
import org.codehaus.jackson.map.DeserializationConfig;
|
import com.google.gson.Gson;
|
||||||
import org.codehaus.jackson.map.ObjectMapper;
|
|
||||||
import org.springframework.context.annotation.*;
|
import org.springframework.context.annotation.*;
|
||||||
import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
|
import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
|
||||||
|
|
||||||
|
@ -9,45 +9,34 @@ import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
|
||||||
* Created by insanity on 17. 6. 13.
|
* Created by insanity on 17. 6. 13.
|
||||||
*/
|
*/
|
||||||
@Configuration
|
@Configuration
|
||||||
@ComponentScan(basePackages = {"com.loafle.overflow"}, excludeFilters = @ComponentScan.Filter({Configuration.class}))
|
@ComponentScan(basePackages = {
|
||||||
@Import({
|
"com.loafle.overflow" }, excludeFilters = @ComponentScan.Filter({ Configuration.class }))
|
||||||
JdbcConfiguration.class,
|
@Import({ JdbcConfiguration.class, MailConfiguration.class, RedisConfiguration.class, CacheConfiguration.class })
|
||||||
MailConfiguration.class,
|
@PropertySource({ "classpath:database.properties", "classpath:mail.properties", "classpath:redis.properties",
|
||||||
RedisConfiguration.class,
|
"classpath:cache.properties" })
|
||||||
CacheConfiguration.class
|
|
||||||
})
|
|
||||||
@PropertySource({
|
|
||||||
"classpath:database.properties",
|
|
||||||
"classpath:mail.properties",
|
|
||||||
"classpath:redis.properties",
|
|
||||||
"classpath:cache.properties"
|
|
||||||
})
|
|
||||||
public class AppConfig {
|
public class AppConfig {
|
||||||
// @Bean
|
// @Bean
|
||||||
// public static PropertyPlaceholderConfigurer propertyPlaceholderConfigurer() {
|
// public static PropertyPlaceholderConfigurer propertyPlaceholderConfigurer() {
|
||||||
// PropertyPlaceholderConfigurer ppc = new PropertyPlaceholderConfigurer();
|
// PropertyPlaceholderConfigurer ppc = new PropertyPlaceholderConfigurer();
|
||||||
//// ppc.setLocation(new ClassPathResource("database.properties"));
|
//// ppc.setLocation(new ClassPathResource("database.properties"));
|
||||||
// ppc.setLocations(new Resource[] {
|
// ppc.setLocations(new Resource[] {
|
||||||
// new ClassPathResource("database.properties"),
|
// new ClassPathResource("database.properties"),
|
||||||
// new ClassPathResource("mail.properties"),
|
// new ClassPathResource("mail.properties"),
|
||||||
// new ClassPathResource("redis.properties")
|
// new ClassPathResource("redis.properties")
|
||||||
// });
|
// });
|
||||||
// ppc.setIgnoreUnresolvablePlaceholders(true);
|
// ppc.setIgnoreUnresolvablePlaceholders(true);
|
||||||
//
|
//
|
||||||
// return ppc;
|
// return ppc;
|
||||||
// }
|
// }
|
||||||
@Bean
|
@Bean
|
||||||
public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
|
public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
|
||||||
return new PropertySourcesPlaceholderConfigurer();
|
return new PropertySourcesPlaceholderConfigurer();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public ObjectMapper getObjectMapper() {
|
public Gson gson() {
|
||||||
|
Gson gson = new Gson();
|
||||||
|
|
||||||
ObjectMapper objectMapper = new ObjectMapper();
|
return gson;
|
||||||
|
}
|
||||||
objectMapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
|
|
||||||
|
|
||||||
return objectMapper;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
package com.loafle.overflow.central.spring;
|
package com.loafle.overflow.central.spring;
|
||||||
|
|
||||||
import org.codehaus.jackson.map.ObjectMapper;
|
|
||||||
import org.hibernate.cfg.Environment;
|
import org.hibernate.cfg.Environment;
|
||||||
import org.springframework.beans.factory.annotation.Qualifier;
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package com.loafle.overflow.central.module.infra.service;
|
package com.loafle.overflow.central.module.infra.service;
|
||||||
|
|
||||||
|
import com.google.gson.Gson;
|
||||||
import com.loafle.overflow.central.spring.AppConfigTest;
|
import com.loafle.overflow.central.spring.AppConfigTest;
|
||||||
import com.loafle.overflow.core.exception.OverflowException;
|
import com.loafle.overflow.core.exception.OverflowException;
|
||||||
import com.loafle.overflow.model.infra.InfraHost;
|
import com.loafle.overflow.model.infra.InfraHost;
|
||||||
|
@ -7,7 +8,6 @@ import com.loafle.overflow.model.infra.InfraOS;
|
||||||
import com.loafle.overflow.model.meta.MetaInfraType;
|
import com.loafle.overflow.model.meta.MetaInfraType;
|
||||||
import com.loafle.overflow.service.central.infra.InfraHostService;
|
import com.loafle.overflow.service.central.infra.InfraHostService;
|
||||||
|
|
||||||
import org.codehaus.jackson.map.ObjectMapper;
|
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
|
@ -26,6 +26,9 @@ public class InfraHostServiceTest {
|
||||||
@Autowired
|
@Autowired
|
||||||
private InfraHostService infraHostService;
|
private InfraHostService infraHostService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private Gson gson;
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
// @Ignore
|
// @Ignore
|
||||||
public void regist() throws Exception {
|
public void regist() throws Exception {
|
||||||
|
@ -55,8 +58,7 @@ public class InfraHostServiceTest {
|
||||||
|
|
||||||
InfraHost infraHost = this.infraHostService.read(1);
|
InfraHost infraHost = this.infraHostService.read(1);
|
||||||
|
|
||||||
ObjectMapper objectMapper = new ObjectMapper();
|
String json = gson.toJson(infraHost);
|
||||||
String json = objectMapper.writeValueAsString(infraHost);
|
|
||||||
|
|
||||||
System.out.println(json);
|
System.out.println(json);
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
package com.loafle.overflow.central.module.infra.service;
|
package com.loafle.overflow.central.module.infra.service;
|
||||||
|
|
||||||
|
import com.google.gson.Gson;
|
||||||
import com.loafle.overflow.central.spring.AppConfigTest;
|
import com.loafle.overflow.central.spring.AppConfigTest;
|
||||||
import com.loafle.overflow.model.infra.InfraMachine;
|
import com.loafle.overflow.model.infra.InfraMachine;
|
||||||
import com.loafle.overflow.model.meta.MetaInfraType;
|
import com.loafle.overflow.model.meta.MetaInfraType;
|
||||||
import com.loafle.overflow.service.central.infra.InfraMachineService;
|
import com.loafle.overflow.service.central.infra.InfraMachineService;
|
||||||
|
|
||||||
import org.codehaus.jackson.map.ObjectMapper;
|
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
|
@ -24,7 +24,10 @@ public class InfraMachineServiceTest {
|
||||||
@Autowired
|
@Autowired
|
||||||
private InfraMachineService infraMachineService;
|
private InfraMachineService infraMachineService;
|
||||||
|
|
||||||
// @Ignore
|
@Autowired
|
||||||
|
private Gson gson;
|
||||||
|
|
||||||
|
// @Ignore
|
||||||
@Test
|
@Test
|
||||||
public void regist() throws Exception {
|
public void regist() throws Exception {
|
||||||
|
|
||||||
|
@ -49,8 +52,7 @@ public class InfraMachineServiceTest {
|
||||||
|
|
||||||
InfraMachine infraMachine = this.infraMachineService.read(1);
|
InfraMachine infraMachine = this.infraMachineService.read(1);
|
||||||
|
|
||||||
ObjectMapper objectMapper = new ObjectMapper();
|
String json = gson.toJson(infraMachine);
|
||||||
String json = objectMapper.writeValueAsString(infraMachine);
|
|
||||||
System.out.println(json);
|
System.out.println(json);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
package com.loafle.overflow.central.module.infra.service;
|
package com.loafle.overflow.central.module.infra.service;
|
||||||
|
|
||||||
|
import com.google.gson.Gson;
|
||||||
import com.loafle.overflow.central.spring.AppConfigTest;
|
import com.loafle.overflow.central.spring.AppConfigTest;
|
||||||
import com.loafle.overflow.model.infra.InfraOS;
|
import com.loafle.overflow.model.infra.InfraOS;
|
||||||
import com.loafle.overflow.model.infra.InfraOSApplication;
|
import com.loafle.overflow.model.infra.InfraOSApplication;
|
||||||
import com.loafle.overflow.model.meta.MetaInfraType;
|
import com.loafle.overflow.model.meta.MetaInfraType;
|
||||||
import com.loafle.overflow.service.central.infra.InfraOSApplicationService;
|
import com.loafle.overflow.service.central.infra.InfraOSApplicationService;
|
||||||
|
|
||||||
import org.codehaus.jackson.map.ObjectMapper;
|
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
|
@ -24,6 +24,9 @@ public class InfraOSApplicationServiceTest {
|
||||||
@Autowired
|
@Autowired
|
||||||
private InfraOSApplicationService infraOSApplicationService;
|
private InfraOSApplicationService infraOSApplicationService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private Gson gson;
|
||||||
|
|
||||||
// @Ignore
|
// @Ignore
|
||||||
@Test
|
@Test
|
||||||
public void regist() throws Exception {
|
public void regist() throws Exception {
|
||||||
|
@ -53,9 +56,7 @@ public class InfraOSApplicationServiceTest {
|
||||||
|
|
||||||
Assert.assertNotNull(infraOSApplication);
|
Assert.assertNotNull(infraOSApplication);
|
||||||
|
|
||||||
ObjectMapper objectMapper = new ObjectMapper();
|
String json = gson.toJson(infraOSApplication);
|
||||||
|
|
||||||
String json = objectMapper.writeValueAsString(infraOSApplication);
|
|
||||||
System.out.println(json);
|
System.out.println(json);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
package com.loafle.overflow.central.module.infra.service;
|
package com.loafle.overflow.central.module.infra.service;
|
||||||
|
|
||||||
|
import com.google.gson.Gson;
|
||||||
import com.loafle.overflow.central.spring.AppConfigTest;
|
import com.loafle.overflow.central.spring.AppConfigTest;
|
||||||
import com.loafle.overflow.model.infra.InfraOS;
|
import com.loafle.overflow.model.infra.InfraOS;
|
||||||
import com.loafle.overflow.model.infra.InfraOSDaemon;
|
import com.loafle.overflow.model.infra.InfraOSDaemon;
|
||||||
import com.loafle.overflow.model.meta.MetaInfraType;
|
import com.loafle.overflow.model.meta.MetaInfraType;
|
||||||
import com.loafle.overflow.service.central.infra.InfraOSDaemonService;
|
import com.loafle.overflow.service.central.infra.InfraOSDaemonService;
|
||||||
|
|
||||||
import org.codehaus.jackson.map.ObjectMapper;
|
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
|
@ -24,6 +24,9 @@ public class InfraOSDaemonServiceTest {
|
||||||
@Autowired
|
@Autowired
|
||||||
private InfraOSDaemonService infraOSDaemonService;
|
private InfraOSDaemonService infraOSDaemonService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private Gson gson;
|
||||||
|
|
||||||
// @Ignore
|
// @Ignore
|
||||||
@Test
|
@Test
|
||||||
public void regist() throws Exception {
|
public void regist() throws Exception {
|
||||||
|
@ -52,8 +55,7 @@ public class InfraOSDaemonServiceTest {
|
||||||
InfraOSDaemon infraOSDaemon = this.infraOSDaemonService.read(1);
|
InfraOSDaemon infraOSDaemon = this.infraOSDaemonService.read(1);
|
||||||
Assert.assertNotNull(infraOSDaemon);
|
Assert.assertNotNull(infraOSDaemon);
|
||||||
|
|
||||||
ObjectMapper objectMapper = new ObjectMapper();
|
String json = gson.toJson(infraOSDaemon);
|
||||||
String json = objectMapper.writeValueAsString(infraOSDaemon);
|
|
||||||
System.out.println(json);
|
System.out.println(json);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package com.loafle.overflow.central.module.infra.service;
|
package com.loafle.overflow.central.module.infra.service;
|
||||||
|
|
||||||
|
import com.google.gson.Gson;
|
||||||
import com.loafle.overflow.central.spring.AppConfigTest;
|
import com.loafle.overflow.central.spring.AppConfigTest;
|
||||||
import com.loafle.overflow.core.exception.OverflowException;
|
import com.loafle.overflow.core.exception.OverflowException;
|
||||||
import com.loafle.overflow.model.infra.InfraOS;
|
import com.loafle.overflow.model.infra.InfraOS;
|
||||||
|
@ -23,6 +24,8 @@ public class InfraOSPortServiceTest {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private InfraOSPortService infraOSPortService;
|
private InfraOSPortService infraOSPortService;
|
||||||
|
@Autowired
|
||||||
|
private Gson gson;
|
||||||
|
|
||||||
// @Ignore
|
// @Ignore
|
||||||
@Test
|
@Test
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package com.loafle.overflow.central.module.infra.service;
|
package com.loafle.overflow.central.module.infra.service;
|
||||||
|
|
||||||
|
import com.google.gson.Gson;
|
||||||
import com.loafle.overflow.central.spring.AppConfigTest;
|
import com.loafle.overflow.central.spring.AppConfigTest;
|
||||||
import com.loafle.overflow.model.infra.InfraMachine;
|
import com.loafle.overflow.model.infra.InfraMachine;
|
||||||
import com.loafle.overflow.model.infra.InfraOS;
|
import com.loafle.overflow.model.infra.InfraOS;
|
||||||
|
@ -7,7 +8,6 @@ import com.loafle.overflow.model.meta.MetaInfraType;
|
||||||
import com.loafle.overflow.model.meta.MetaInfraVendor;
|
import com.loafle.overflow.model.meta.MetaInfraVendor;
|
||||||
import com.loafle.overflow.service.central.infra.InfraOSService;
|
import com.loafle.overflow.service.central.infra.InfraOSService;
|
||||||
|
|
||||||
import org.codehaus.jackson.map.ObjectMapper;
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
@ -23,6 +23,8 @@ public class InfraOSServiceTest {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private InfraOSService infraOSService;
|
private InfraOSService infraOSService;
|
||||||
|
@Autowired
|
||||||
|
private Gson gson;
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
// @Ignore
|
// @Ignore
|
||||||
|
@ -53,8 +55,7 @@ public class InfraOSServiceTest {
|
||||||
public void read() throws Exception {
|
public void read() throws Exception {
|
||||||
|
|
||||||
InfraOS infraOS = this.infraOSService.read(1);
|
InfraOS infraOS = this.infraOSService.read(1);
|
||||||
ObjectMapper objectMapper = new ObjectMapper();
|
String json = gson.toJson(infraOS);
|
||||||
String json = objectMapper.writeValueAsString(infraOS);
|
|
||||||
System.out.println(json);
|
System.out.println(json);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package com.loafle.overflow.central.module.infra.service;
|
package com.loafle.overflow.central.module.infra.service;
|
||||||
|
|
||||||
|
import com.google.gson.Gson;
|
||||||
import com.loafle.overflow.central.spring.AppConfigTest;
|
import com.loafle.overflow.central.spring.AppConfigTest;
|
||||||
import com.loafle.overflow.model.infra.InfraHost;
|
import com.loafle.overflow.model.infra.InfraHost;
|
||||||
import com.loafle.overflow.model.infra.InfraService;
|
import com.loafle.overflow.model.infra.InfraService;
|
||||||
|
@ -23,5 +24,7 @@ public class InfraServiceServiceTest {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private InfraServiceService infraServiceService;
|
private InfraServiceService infraServiceService;
|
||||||
|
@Autowired
|
||||||
|
private Gson gson;
|
||||||
|
|
||||||
}
|
}
|
|
@ -1,7 +1,5 @@
|
||||||
package com.loafle.overflow.central.spring;
|
package com.loafle.overflow.central.spring;
|
||||||
|
|
||||||
import org.codehaus.jackson.map.DeserializationConfig;
|
|
||||||
import org.codehaus.jackson.map.ObjectMapper;
|
|
||||||
import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;
|
import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;
|
||||||
import org.springframework.context.annotation.*;
|
import org.springframework.context.annotation.*;
|
||||||
import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
|
import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
|
||||||
|
@ -12,6 +10,8 @@ import org.springframework.test.context.TestPropertySource;
|
||||||
|
|
||||||
import static org.junit.Assert.*;
|
import static org.junit.Assert.*;
|
||||||
|
|
||||||
|
import com.google.gson.Gson;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by geek on 17. 8. 8.
|
* Created by geek on 17. 8. 8.
|
||||||
*/
|
*/
|
||||||
|
@ -51,12 +51,9 @@ public class AppConfigTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public ObjectMapper getObjectMapper() {
|
public Gson gson() {
|
||||||
|
Gson gson = new Gson();
|
||||||
ObjectMapper objectMapper = new ObjectMapper();
|
|
||||||
|
return gson;
|
||||||
objectMapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
|
|
||||||
|
|
||||||
return objectMapper;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user