ing
This commit is contained in:
parent
88cd40bc05
commit
2fccbc85bb
2
.vscode/launch.json
vendored
2
.vscode/launch.json
vendored
|
@ -13,7 +13,7 @@
|
|||
"stopOnEntry": false,
|
||||
"mainClass": "com.loafle.overflow.container.general.GeneralContainer",
|
||||
"projectName": "container_general",
|
||||
"args": "${workspaceFolder}/general.pid"
|
||||
"args": "60000"
|
||||
},
|
||||
{
|
||||
"type": "java",
|
||||
|
|
8
pom.xml
8
pom.xml
|
@ -26,7 +26,7 @@
|
|||
<overflow.container-java.version>1.0.0-SNAPSHOT</overflow.container-java.version>
|
||||
|
||||
<netty.version>4.1.17.Final</netty.version>
|
||||
<gson.version>2.8.2</gson.version>
|
||||
<jackson.mapper.version>1.9.13</jackson.mapper.version>
|
||||
<spring.version>5.0.5.RELEASE</spring.version>
|
||||
|
||||
<mysql-connector-java.version>6.0.6</mysql-connector-java.version>
|
||||
|
@ -76,9 +76,9 @@
|
|||
<version>${netty.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.google.code.gson</groupId>
|
||||
<artifactId>gson</artifactId>
|
||||
<version>${gson.version}</version>
|
||||
<groupId>org.codehaus.jackson</groupId>
|
||||
<artifactId>jackson-mapper-asl</artifactId>
|
||||
<version>${jackson.mapper.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
|
|
|
@ -2,8 +2,8 @@ package com.loafle.overflow.container.general;
|
|||
|
||||
import com.loafle.overflow.container.Container;
|
||||
import com.loafle.overflow.container.configuration.ContainerConfiguration;
|
||||
import com.loafle.overflow.container.general.server.GeneralContainerConfiguration;
|
||||
import com.loafle.overflow.container.general.server.GeneralContainerServer;
|
||||
import com.loafle.overflow.container.general.client.GeneralContainerClient;
|
||||
import com.loafle.overflow.container.general.client.GeneralContainerConfiguration;
|
||||
|
||||
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
|
||||
|
||||
|
@ -17,12 +17,22 @@ public class GeneralContainer {
|
|||
String pidFilePath = args[0];
|
||||
|
||||
try (AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext()) {
|
||||
context.getBeanFactory().registerSingleton(Container.PIDFILE_PATH, pidFilePath);
|
||||
context.register(ContainerConfiguration.class, GeneralContainerConfiguration.class);
|
||||
context.getBeanFactory().registerSingleton(Container.PORT_NUMBER, pidFilePath);
|
||||
context.register(GeneralContainerConfiguration.class, ContainerConfiguration.class);
|
||||
context.refresh();
|
||||
context.registerShutdownHook();
|
||||
GeneralContainerServer server = context.getBean(GeneralContainerServer.class);
|
||||
server.start();
|
||||
GeneralContainerClient client = context.getBean(GeneralContainerClient.class);
|
||||
Runtime.getRuntime().addShutdownHook(new Thread() {
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
client.stop();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
});
|
||||
client.start();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
package com.loafle.overflow.container.general.server;
|
||||
package com.loafle.overflow.container.general.client;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import com.loafle.overflow.container.general.service.Service;
|
||||
import com.loafle.overflow.container.server.ContainerServer;
|
||||
import com.loafle.overflow.container.client.ContainerClient;
|
||||
import com.loafle.overflow.core.annotation.RPCService;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
@ -14,17 +14,17 @@ import org.springframework.stereotype.Component;
|
|||
import static com.loafle.overflow.core.interfaces.Service.execServices;
|
||||
import static com.loafle.overflow.core.interfaces.Service.ServiceMethodType;
|
||||
|
||||
/**
|
||||
* GeneralContainerClient
|
||||
*/
|
||||
@Component
|
||||
public class GeneralContainerServer extends ContainerServer {
|
||||
public class GeneralContainerClient extends ContainerClient {
|
||||
@Autowired
|
||||
private ApplicationContext applicationContext;
|
||||
|
||||
private Map<Class<?>, Object> services;
|
||||
|
||||
public GeneralContainerServer() {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void init() throws Exception {
|
||||
super.init();
|
||||
|
||||
|
@ -39,23 +39,18 @@ public class GeneralContainerServer extends ContainerServer {
|
|||
});
|
||||
|
||||
execServices(this.services, ServiceMethodType.INIT, Service.OrderedServices, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
}
|
||||
protected void onStart() throws Exception {
|
||||
super.onStart();
|
||||
|
||||
execServices(this.services, ServiceMethodType.START, Service.OrderedServices, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onStop() throws Exception {
|
||||
execServices(this.services, ServiceMethodType.STOP, Service.OrderedServices, true);
|
||||
|
||||
super.onStop();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void destroy() throws Exception {
|
||||
execServices(this.services, ServiceMethodType.DESTROY, Service.OrderedServices, true);
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
package com.loafle.overflow.container.general.client;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Map;
|
||||
|
||||
import com.loafle.commons.server.websocket.client.Client;
|
||||
import com.loafle.overflow.config.container.ContainerProtocol;
|
||||
import com.loafle.overflow.config.probe.ContainerType;
|
||||
import com.loafle.overflow.container.Container;
|
||||
import com.loafle.overflow.container.general.crawler.Crawlers;
|
||||
import com.loafle.overflow.crawler.Crawler;
|
||||
|
||||
import org.codehaus.jackson.map.DeserializationConfig;
|
||||
import org.codehaus.jackson.map.ObjectMapper;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.ComponentScan;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
import io.netty.handler.codec.http.DefaultHttpHeaders;
|
||||
import io.netty.handler.codec.http.HttpHeaders;
|
||||
import io.netty.handler.codec.http.websocketx.WebSocketClientHandshaker;
|
||||
import io.netty.handler.codec.http.websocketx.WebSocketClientHandshakerFactory;
|
||||
import io.netty.handler.codec.http.websocketx.WebSocketVersion;
|
||||
|
||||
/**
|
||||
* GeneralContainerConfiguration
|
||||
*/
|
||||
@Configuration
|
||||
@ComponentScan(basePackages = { "com.loafle.overflow" })
|
||||
public class GeneralContainerConfiguration {
|
||||
@Autowired
|
||||
@Qualifier(Client.SERVER_URI)
|
||||
protected URI serverURI;
|
||||
|
||||
@Bean(Client.HANDSHAKER)
|
||||
public WebSocketClientHandshaker handshaker() {
|
||||
HttpHeaders customHeaders = new DefaultHttpHeaders();
|
||||
customHeaders.add(ContainerProtocol.HTTPRequestHeaderKey_Container_Method, ContainerProtocol.HTTPRequestHeaderValue_Container_Method_Connect);
|
||||
customHeaders.add(ContainerProtocol.HTTPRequestHeaderKey_Container_Type, ContainerType.GENERNAL.toString());
|
||||
|
||||
return WebSocketClientHandshakerFactory.newHandshaker(serverURI, WebSocketVersion.V13, null, false, customHeaders);
|
||||
}
|
||||
|
||||
@Bean(Container.CRAWLERS)
|
||||
public Map<String, Crawler> crawlers() {
|
||||
return Crawlers.getCrawlers();
|
||||
}
|
||||
|
||||
@Bean
|
||||
public ObjectMapper objectMapper() {
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
objectMapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
|
||||
return objectMapper;
|
||||
}
|
||||
}
|
|
@ -1,15 +1,16 @@
|
|||
package com.loafle.overflow.container.general.crawler.impl.wmi;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.loafle.overflow.core.exception.OverflowException;
|
||||
import com.loafle.overflow.crawler.Crawler;
|
||||
import com.loafle.overflow.model.sensorconfig.ResultSet;
|
||||
import com.loafle.overflow.model.sensorconfig.SensorConfig;
|
||||
|
||||
import org.codehaus.jackson.map.DeserializationConfig;
|
||||
import org.codehaus.jackson.map.ObjectMapper;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.net.URL;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
|
@ -17,10 +18,11 @@ import java.util.List;
|
|||
import java.util.Map;
|
||||
|
||||
public class WMICrawler implements Crawler {
|
||||
private Gson gson;
|
||||
private ObjectMapper objectMapper;
|
||||
|
||||
public WMICrawler() {
|
||||
this.gson = new Gson();
|
||||
this.objectMapper = new ObjectMapper();
|
||||
objectMapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -87,7 +89,7 @@ public class WMICrawler implements Crawler {
|
|||
SensorConfig metaConfig = null;
|
||||
for (String fi : metaFiles) {
|
||||
if (fi.indexOf("meta_") > -1) {
|
||||
metaConfig = new Gson().fromJson(new InputStreamReader(new FileInputStream(new File(path + "/" + fi))), SensorConfig.class);
|
||||
metaConfig = this.objectMapper.readValue(new FileInputStream(new File(path + "/" + fi)), SensorConfig.class);
|
||||
if (metaConfig != null) {
|
||||
retList.add(metaConfig);
|
||||
}
|
||||
|
|
|
@ -1,34 +0,0 @@
|
|||
package com.loafle.overflow.container.general.server;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.loafle.overflow.container.Container;
|
||||
import com.loafle.overflow.container.general.crawler.Crawlers;
|
||||
import com.loafle.overflow.crawler.Crawler;
|
||||
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.ComponentScan;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
import io.netty.channel.ChannelHandler;
|
||||
|
||||
/**
|
||||
* GeneralContainerConfiguration
|
||||
*/
|
||||
@Configuration
|
||||
@ComponentScan(basePackages = { "com.loafle.overflow" })
|
||||
public class GeneralContainerConfiguration {
|
||||
|
||||
@Bean(Container.PIPELINE_CHANNEL_HANDLERS)
|
||||
public List<ChannelHandler> pipelineChannelHandlers() {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
|
||||
@Bean(Container.CRAWLERS)
|
||||
public Map<String, Crawler> crawlers() {
|
||||
return Crawlers.getCrawlers();
|
||||
}
|
||||
|
||||
}
|
|
@ -1,10 +1,16 @@
|
|||
package com.loafle.overflow.container.general.crawler;
|
||||
|
||||
import org.codehaus.jackson.map.DeserializationConfig;
|
||||
import org.codehaus.jackson.map.ObjectMapper;
|
||||
import org.junit.Before;
|
||||
|
||||
public abstract class CrawlerTest {
|
||||
protected ObjectMapper objectMapper;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
this.objectMapper = new ObjectMapper();
|
||||
objectMapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package com.loafle.overflow.container.general.crawler.impl.database;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.loafle.overflow.container.general.crawler.CrawlerTest;
|
||||
import com.loafle.overflow.model.sensorconfig.SensorConfig;
|
||||
|
||||
|
@ -38,9 +37,8 @@ public abstract class DatabaseCrawlerTest extends CrawlerTest {
|
|||
protected SensorConfig getSensorConfig(String path) throws IOException {
|
||||
ClassLoader classLoader = getClass().getClassLoader();
|
||||
String filePath = classLoader.getResource(path).getFile();
|
||||
InputStreamReader inputStreamReader = new InputStreamReader(new FileInputStream(new File(filePath)));
|
||||
SensorConfig c = this.objectMapper.readValue(new FileInputStream(new File(filePath)), SensorConfig.class);
|
||||
|
||||
SensorConfig c = new Gson().fromJson(inputStreamReader, SensorConfig.class);
|
||||
return c;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package com.loafle.overflow.container.general.crawler.impl.jmx.tomcat;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.loafle.overflow.container.general.crawler.impl.jmx.JMXCrawler;
|
||||
import com.loafle.overflow.container.general.crawler.impl.jmx.JMXCrawlerTest;
|
||||
import com.loafle.overflow.model.sensorconfig.SensorConfig;
|
||||
|
@ -10,7 +9,6 @@ import org.junit.Test;
|
|||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.net.URL;
|
||||
import java.util.Map;
|
||||
|
||||
|
@ -30,10 +28,7 @@ public class TomcatCrawlerTest extends JMXCrawlerTest {
|
|||
ClassLoader classLoader = getClass().getClassLoader();
|
||||
URL url = classLoader.getResource("config/tomcat/");
|
||||
String filePath = classLoader.getResource("config/tomcat/example1.json").getFile();
|
||||
|
||||
InputStreamReader inputStreamReader = new InputStreamReader(new FileInputStream(new File(filePath)));
|
||||
|
||||
SensorConfig c = new Gson().fromJson(inputStreamReader, SensorConfig.class);
|
||||
SensorConfig c = this.objectMapper.readValue(new FileInputStream(new File(filePath)), SensorConfig.class);
|
||||
|
||||
JMXCrawler cr = new JMXCrawler();
|
||||
Map<String, String> result = cr.get(c);
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package com.loafle.overflow.container.general.crawler.impl.mongodb;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.loafle.overflow.container.general.crawler.CrawlerTest;
|
||||
import com.loafle.overflow.model.sensorconfig.SensorConfig;
|
||||
|
||||
|
@ -9,7 +8,6 @@ import org.junit.Test;
|
|||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.util.Map;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
|
@ -23,9 +21,7 @@ public class MongoDBCrawlerTest extends CrawlerTest {
|
|||
// read test resources config/example.json
|
||||
ClassLoader classLoader = getClass().getClassLoader();
|
||||
String filePath = classLoader.getResource("config/mongodb/example.json").getFile();
|
||||
InputStreamReader inputStreamReader = new InputStreamReader(new FileInputStream(new File(filePath)));
|
||||
|
||||
SensorConfig c = new Gson().fromJson(inputStreamReader, SensorConfig.class);
|
||||
SensorConfig c = this.objectMapper.readValue(new FileInputStream(new File(filePath)), SensorConfig.class);
|
||||
|
||||
MongoDBCrawler cr = new MongoDBCrawler();
|
||||
Map<String, String> m = cr.get(c);
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package com.loafle.overflow.container.general.crawler.impl.redis;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.loafle.overflow.container.general.crawler.CrawlerTest;
|
||||
import com.loafle.overflow.model.sensorconfig.SensorConfig;
|
||||
|
||||
|
@ -9,7 +8,6 @@ import org.junit.Test;
|
|||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.util.Map;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
|
@ -21,10 +19,7 @@ public class RedisCralwerTest extends CrawlerTest {
|
|||
public void collectMetric() throws Exception {
|
||||
ClassLoader classLoader = getClass().getClassLoader();
|
||||
String filePath = classLoader.getResource("config/redis/example.json").getFile();
|
||||
|
||||
InputStreamReader inputStreamReader = new InputStreamReader(new FileInputStream(new File(filePath)));
|
||||
|
||||
SensorConfig c = new Gson().fromJson(inputStreamReader, SensorConfig.class);
|
||||
SensorConfig c = this.objectMapper.readValue(new FileInputStream(new File(filePath)), SensorConfig.class);
|
||||
|
||||
RedisCralwer rc = new RedisCralwer();
|
||||
print("", rc.get(c));
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package com.loafle.overflow.container.general.crawler.impl.snmp;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.loafle.overflow.container.general.crawler.CrawlerTest;
|
||||
import com.loafle.overflow.model.sensorconfig.SensorConfig;
|
||||
|
||||
|
@ -34,10 +33,7 @@ public class SNMPCrawlerTest extends CrawlerTest {
|
|||
SNMPCrawler c = new SNMPCrawler();
|
||||
ClassLoader classLoader = getClass().getClassLoader();
|
||||
String filePath = classLoader.getResource("config/snmp/examplev3.json").getFile();
|
||||
|
||||
InputStreamReader inputStreamReader = new InputStreamReader(new FileInputStream(new File(filePath)));
|
||||
|
||||
SensorConfig config = new Gson().fromJson(inputStreamReader, SensorConfig.class);
|
||||
SensorConfig config = this.objectMapper.readValue(new FileInputStream(new File(filePath)), SensorConfig.class);
|
||||
|
||||
Map<String, String> result = c.get(config);
|
||||
|
||||
|
@ -52,10 +48,7 @@ public class SNMPCrawlerTest extends CrawlerTest {
|
|||
|
||||
ClassLoader classLoader = getClass().getClassLoader();
|
||||
String filePath = classLoader.getResource("config/snmp/examplev2.json").getFile();
|
||||
|
||||
InputStreamReader inputStreamReader = new InputStreamReader(new FileInputStream(new File(filePath)));
|
||||
|
||||
SensorConfig config = new Gson().fromJson(inputStreamReader, SensorConfig.class);
|
||||
SensorConfig config = this.objectMapper.readValue(new FileInputStream(new File(filePath)), SensorConfig.class);
|
||||
|
||||
Map<String, String> result = c.get(config);
|
||||
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package com.loafle.overflow.container.general.crawler.impl.wmi;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.loafle.overflow.container.general.crawler.CrawlerTest;
|
||||
import com.loafle.overflow.model.sensorconfig.ResultSet;
|
||||
import com.loafle.overflow.model.sensorconfig.SensorConfig;
|
||||
|
@ -13,7 +12,6 @@ import org.junit.Test;
|
|||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.net.URL;
|
||||
import java.util.*;
|
||||
|
||||
|
@ -74,9 +72,7 @@ public class WMICrawlerTest extends CrawlerTest {
|
|||
ClassLoader classLoader = getClass().getClassLoader();
|
||||
String filePath = classLoader.getResource("config/wmi").getFile();
|
||||
System.out.println(filePath);
|
||||
InputStreamReader inputStreamReader = new InputStreamReader(new FileInputStream(new File(filePath)));
|
||||
|
||||
SensorConfig config = new Gson().fromJson(inputStreamReader, SensorConfig.class);
|
||||
SensorConfig config = this.objectMapper.readValue(new FileInputStream(new File(filePath)), SensorConfig.class);
|
||||
|
||||
// Config c = mapper.readValue(new File(classLoader.getResource("config").getFile()),Config.class);
|
||||
|
||||
|
@ -104,9 +100,7 @@ public class WMICrawlerTest extends CrawlerTest {
|
|||
ClassLoader classLoader = getClass().getClassLoader();
|
||||
String filePath = classLoader.getResource("config/wmi/example.json").getFile();
|
||||
System.out.println(filePath);
|
||||
InputStreamReader inputStreamReader = new InputStreamReader(new FileInputStream(new File(filePath)));
|
||||
|
||||
SensorConfig config = new Gson().fromJson(inputStreamReader, SensorConfig.class);
|
||||
SensorConfig config = this.objectMapper.readValue(new FileInputStream(new File(filePath)), SensorConfig.class);
|
||||
|
||||
System.out.println(config);
|
||||
}
|
||||
|
@ -117,8 +111,7 @@ public class WMICrawlerTest extends CrawlerTest {
|
|||
ClassLoader classLoader = getClass().getClassLoader();
|
||||
String filePath = classLoader.getResource("config/wmi/meta/meta_network.json").getFile();
|
||||
|
||||
InputStreamReader inputStreamReader = new InputStreamReader(new FileInputStream(new File(filePath)));
|
||||
SensorConfig config = new Gson().fromJson(inputStreamReader, SensorConfig.class);
|
||||
SensorConfig config = this.objectMapper.readValue(new FileInputStream(new File(filePath)), SensorConfig.class);
|
||||
|
||||
// Map<String, Object> map = new HashMap<>();
|
||||
// map.put("id", "administrator");
|
||||
|
@ -159,8 +152,7 @@ public class WMICrawlerTest extends CrawlerTest {
|
|||
ClassLoader classLoader = getClass().getClassLoader();
|
||||
String filePath = classLoader.getResource("config/wmi/test.json").getFile();
|
||||
|
||||
InputStreamReader inputStreamReader = new InputStreamReader(new FileInputStream(new File(filePath)));
|
||||
SensorConfig config = new Gson().fromJson(inputStreamReader, SensorConfig.class);
|
||||
SensorConfig config = this.objectMapper.readValue(new FileInputStream(new File(filePath)), SensorConfig.class);
|
||||
|
||||
List<SensorConfig> metaConfigList = loadMetaConfig();
|
||||
|
||||
|
@ -198,8 +190,7 @@ public class WMICrawlerTest extends CrawlerTest {
|
|||
|
||||
for (String fi : metaFiles) {
|
||||
if (fi.indexOf("meta_") > -1) {
|
||||
InputStreamReader inputStreamReader = new InputStreamReader(new FileInputStream(new File(path + "/" + fi)));
|
||||
SensorConfig config = new Gson().fromJson(inputStreamReader, SensorConfig.class);
|
||||
SensorConfig config = this.objectMapper.readValue(new FileInputStream(new File(path + "/" + fi)), SensorConfig.class);
|
||||
if (config != null) {
|
||||
retList.add(config);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user