commit 82719958f93bbdeb3693f7b3762f058664377b16 Author: crusader Date: Mon Apr 23 19:37:40 2018 +0900 ing diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..60af490 --- /dev/null +++ b/.gitignore @@ -0,0 +1,88 @@ +# Created by .ignore support plugin (hsz.mobi) +### JetBrains template +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff: +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/dictionaries + +# Sensitive or high-churn files: +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.xml +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml + +# Gradle: +.idea/**/gradle.xml +.idea/**/libraries + +# Mongo Explorer plugin: +.idea/**/mongoSettings.xml + +## File-based project format: +*.iws + +## Plugin-specific files: + +# IntelliJ +/out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties +### Maven template + +pom.xml.tag +pom.xml.releaseBackup +pom.xml.versionsBackup +pom.xml.next +release.properties +dependency-reduced-pom.xml +buildNumber.properties +.mvn/timing.properties + +# Avoid ignoring Maven wrapper jar file (.jar files are usually ignored) +!/.mvn/wrapper/maven-wrapper.jar +### Java template +# Compiled class file +*.class + +# Log file +*.log + +# BlueJ files +*.ctxt +14 +# Mobile Tools for Java (J2ME) +.mtj.tmp/ + +# Package Files # +*.jar +*.war +*.ear +*.zip +*.tar.gz +*.rar + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* + +.idea/ +*.iml +/target/ +.settings/ +.classpath +.project diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..81d81a5 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,27 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + + { + "type": "java", + "name": "Debug", + "request": "launch", + "cwd": "${workspaceFolder}", + "console": "internalConsole", + "stopOnEntry": false, + "mainClass": "com.loafle.overflow.central.Central", + "projectName": "central", + "args": "50006" + }, + { + "type": "java", + "name": "Debug (Attach)", + "request": "attach", + "hostName": "localhost", + "port": 0 + } + ] +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..1133129 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "java.configuration.updateBuildConfiguration": "automatic" +} \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..7bb9866 --- /dev/null +++ b/pom.xml @@ -0,0 +1,53 @@ + + + 4.0.0 + + + com.loafle + maven_parent_jar + 1.0.0-RELEASE + + + com.loafle.overflow + container-java + jar + 1.0.0-SNAPSHOT + com.loafle.overflow.container-java + + + 1.0.0-SNAPSHOT + 1.0.0-SNAPSHOT + 1.0.0-SNAPSHOT + + 5.0.5.RELEASE + + + + + com.loafle.commons + server-java + ${commons.server-java.version} + + + com.loafle.overflow + commons-java + ${overflow.commons-java.version} + + + com.loafle.overflow + crawler-java + ${overflow.crawler-java.version} + + + + org.springframework + spring-context + ${spring.version} + + + + + + diff --git a/src/main/java/com/loafle/overflow/container/Container.java b/src/main/java/com/loafle/overflow/container/Container.java new file mode 100644 index 0000000..6ef48be --- /dev/null +++ b/src/main/java/com/loafle/overflow/container/Container.java @@ -0,0 +1,9 @@ +package com.loafle.overflow.container; + +/** + * Container + */ +public class Container { + public static final String CONTAINER_CRAWLERS = "CONTAINER_CRAWLERS"; + +} \ No newline at end of file diff --git a/src/main/java/com/loafle/overflow/container/service/CrawlerService.java b/src/main/java/com/loafle/overflow/container/service/CrawlerService.java new file mode 100644 index 0000000..6c363bb --- /dev/null +++ b/src/main/java/com/loafle/overflow/container/service/CrawlerService.java @@ -0,0 +1,76 @@ +package com.loafle.overflow.container.service; + +import java.util.Map; + +import javax.annotation.Resource; + +import com.loafle.overflow.container.Container; +import com.loafle.overflow.crawler.Crawler; +import com.loafle.overflow.module.core.exception.OverflowException; +import com.loafle.overflow.module.core.interfaces.Service; +import com.loafle.overflow.module.sensorconfig.model.SensorConfig; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; + +/** + * CrawlerService + */ +@org.springframework.stereotype.Service("CrawlerService") +public class CrawlerService implements Service { + private static final Logger logger = LoggerFactory.getLogger(CrawlerService.class); + + @Autowired + private SensorConfigService sensorConfigService; + + @Resource(name=Container.CONTAINER_CRAWLERS) + private Map crawlers; + + @Override + public void initService() throws Exception { + if (null == this.crawlers) { + throw new Exception("Crawlers is not set"); + } + } + + @Override + public void startService() throws Exception { + + } + + @Override + public void stopService() { + + } + + @Override + public void destroyService() { + + } + + public void Auth(String crawlerName, Map authInfoMap) throws OverflowException { + Crawler crawler = this.crawlers.get(crawlerName); + if (null == crawler) { + throw new OverflowException(String.format("There is no crawler[%s]", crawlerName), null); + } + + crawler.auth(authInfoMap); + } + + public Map Get(String sensorConfigID) throws OverflowException { + SensorConfig sensorConfig = this.sensorConfigService.getSensorConfig(sensorConfigID); + if (null == sensorConfig) { + throw new OverflowException(String.format("There is no sensor config for id[%s]", sensorConfigID), null); + } + + String crawlerName = sensorConfig.getCrawler().getName(); + Crawler crawler = this.crawlers.get(crawlerName); + if (null == crawler) { + throw new OverflowException(String.format("There is no crawler[%s] for id[%s]", crawlerName, sensorConfigID), null); + } + + return crawler.get(sensorConfig); + } + +} diff --git a/src/main/java/com/loafle/overflow/container/service/ProbeService.java b/src/main/java/com/loafle/overflow/container/service/ProbeService.java new file mode 100644 index 0000000..7664c3b --- /dev/null +++ b/src/main/java/com/loafle/overflow/container/service/ProbeService.java @@ -0,0 +1,35 @@ +package com.loafle.overflow.container.service; + +import com.loafle.overflow.module.core.exception.OverflowException; +import com.loafle.overflow.module.core.interfaces.Service; + +/** + * ProbeService + */ +@org.springframework.stereotype.Service("ProbeService") +public class ProbeService implements Service { + + @Override + public void initService() throws Exception { + + } + + @Override + public void startService() throws Exception { + + } + + @Override + public void stopService() { + + } + + @Override + public void destroyService() { + + } + + public void send(String method, Object... params) throws OverflowException { + + } +} \ No newline at end of file diff --git a/src/main/java/com/loafle/overflow/container/service/SensorConfigService.java b/src/main/java/com/loafle/overflow/container/service/SensorConfigService.java new file mode 100644 index 0000000..8d5aa30 --- /dev/null +++ b/src/main/java/com/loafle/overflow/container/service/SensorConfigService.java @@ -0,0 +1,98 @@ +package com.loafle.overflow.container.service; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import com.loafle.overflow.module.core.exception.OverflowException; +import com.loafle.overflow.module.core.interfaces.Service; +import com.loafle.overflow.module.sensorconfig.model.SensorConfig; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * SensorConfigService + */ +@org.springframework.stereotype.Service("SensorConfigService") +public class SensorConfigService implements Service { + private static final Logger logger = LoggerFactory.getLogger(SensorConfigService.class); + + private Map sensorConfigs; + + @Override + public void initService() throws Exception { + this.sensorConfigs = new HashMap<>(); + } + + @Override + public void startService() throws Exception { + + } + + @Override + public void stopService() { + + } + + @Override + public void destroyService() { + + } + + SensorConfig getSensorConfig(String configID) { + return this.sensorConfigs.get(configID); + } + + public void InitConfig(List sensorConfigs) throws OverflowException { + if (null == sensorConfigs || 0 == sensorConfigs.size()) { + return; + } + + for (SensorConfig sensorConfig : sensorConfigs) { + this.sensorConfigs.put(sensorConfig.getConfigID(), sensorConfig); + } + logger.debug("Sensor configs[%d] were added", sensorConfigs.size()); + } + + public void AddConfig(SensorConfig sensorConfig) throws OverflowException { + if (null == sensorConfig) { + throw new OverflowException("Sensor config is not valid", null); + } + + String configID = sensorConfig.getConfigID(); + if (this.sensorConfigs.containsKey(configID)) { + throw new OverflowException(String.format("Sensor config[%s] is exist already", configID), null); + } + + this.sensorConfigs.put(configID, sensorConfig); + + logger.debug("Sensor config[%s] was added", configID); + } + + public void UddConfig(SensorConfig sensorConfig) throws OverflowException { + if (null == sensorConfig) { + throw new OverflowException("Sensor config is not valid", null); + } + + String configID = sensorConfig.getConfigID(); + if (!this.sensorConfigs.containsKey(configID)) { + throw new OverflowException(String.format("Sensor config[%s] is not exist", configID), null); + } + + this.sensorConfigs.remove(configID); + this.sensorConfigs.put(configID, sensorConfig); + + logger.debug("Sensor config[%s] was updated", configID); + } + + public void RddConfig(String configID) throws OverflowException { + if (!this.sensorConfigs.containsKey(configID)) { + throw new OverflowException(String.format("Sensor config[%s] is not exist", configID), null); + } + + this.sensorConfigs.remove(configID); + + logger.debug("Sensor config[%s] was removed", configID); + } +} \ No newline at end of file diff --git a/src/main/resources/_ b/src/main/resources/_ new file mode 100644 index 0000000..e69de29 diff --git a/src/test/resources/logback.xml b/src/test/resources/logback.xml new file mode 100644 index 0000000..575281e --- /dev/null +++ b/src/test/resources/logback.xml @@ -0,0 +1,17 @@ + + + commons_java + + + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{32} - %msg%n + + + + + + + + + \ No newline at end of file