diff --git a/pom.xml b/pom.xml index 8ef6721..301e51a 100644 --- a/pom.xml +++ b/pom.xml @@ -50,7 +50,7 @@ com.loafle.overflow commons-java - 1.0.111-SNAPSHOT + 1.0.113-SNAPSHOT diff --git a/src/main/java/com/loafle/overflow/central/module/meta/dao/MetaDisplayItemMappingDAO.java b/src/main/java/com/loafle/overflow/central/module/meta/dao/MetaDisplayItemMappingDAO.java index 99fd533..4fab9ff 100644 --- a/src/main/java/com/loafle/overflow/central/module/meta/dao/MetaDisplayItemMappingDAO.java +++ b/src/main/java/com/loafle/overflow/central/module/meta/dao/MetaDisplayItemMappingDAO.java @@ -16,4 +16,6 @@ public interface MetaDisplayItemMappingDAO extends JpaRepository findAllByMetaCrawlerMappingId(Long metaCrawlerMappingID); List findAllByMetaDisplayItemId(Long metaDisplayItemID); + + List findAllByMetaCrawlerMappingIdAndIsDefaultTrueAndIsRequiredTrue(Long metaDisplayItemID); } diff --git a/src/main/java/com/loafle/overflow/central/module/meta/service/CentralMetaDisplayItemMappingService.java b/src/main/java/com/loafle/overflow/central/module/meta/service/CentralMetaDisplayItemMappingService.java index 1432ed8..a6e1eec 100644 --- a/src/main/java/com/loafle/overflow/central/module/meta/service/CentralMetaDisplayItemMappingService.java +++ b/src/main/java/com/loafle/overflow/central/module/meta/service/CentralMetaDisplayItemMappingService.java @@ -15,8 +15,8 @@ import java.util.List; */ @Service("MetaDisplayItemMappingService") public class CentralMetaDisplayItemMappingService implements MetaDisplayItemMappingService { - @Autowired - private MetaDisplayItemMappingDAO metaDisplayItemMappingDAO; + @Autowired + private MetaDisplayItemMappingDAO metaDisplayItemMappingDAO; @Override public MetaDisplayItemMapping regist(MetaDisplayItemMapping metaDisplayItemMapping) throws OverflowException { @@ -29,7 +29,8 @@ public class CentralMetaDisplayItemMappingService implements MetaDisplayItemMapp } @Override - public List readAllByMetaCrawlerMappingID(Long metaCrawlerMappingID) throws OverflowException { + public List readAllByMetaCrawlerMappingID(Long metaCrawlerMappingID) + throws OverflowException { return this.metaDisplayItemMappingDAO.findAllByMetaCrawlerMappingId(metaCrawlerMappingID); } @@ -37,4 +38,9 @@ public class CentralMetaDisplayItemMappingService implements MetaDisplayItemMapp public List readAll() throws OverflowException { return this.metaDisplayItemMappingDAO.findAll(); } + + public List readAllDefault(Long metaCrawlerMappingID) throws OverflowException { + return this.metaDisplayItemMappingDAO + .findAllByMetaCrawlerMappingIdAndIsDefaultTrueAndIsRequiredTrue(metaCrawlerMappingID); + } } diff --git a/src/main/java/com/loafle/overflow/central/module/sensor/service/CentralSensorConfigService.java b/src/main/java/com/loafle/overflow/central/module/sensor/service/CentralSensorConfigService.java new file mode 100644 index 0000000..750883e --- /dev/null +++ b/src/main/java/com/loafle/overflow/central/module/sensor/service/CentralSensorConfigService.java @@ -0,0 +1,13 @@ +package com.loafle.overflow.central.module.sensor.service; + +import com.loafle.overflow.model.sensor.Sensor; + +import org.springframework.stereotype.Service; + +@Service("SensorConfigService") +public class CentralSensorConfigService { + + public void regist(Sensor sensor) { + + } +} \ No newline at end of file diff --git a/src/main/java/com/loafle/overflow/central/module/sensor/service/CentralSensorService.java b/src/main/java/com/loafle/overflow/central/module/sensor/service/CentralSensorService.java index 1624ae9..7041774 100644 --- a/src/main/java/com/loafle/overflow/central/module/sensor/service/CentralSensorService.java +++ b/src/main/java/com/loafle/overflow/central/module/sensor/service/CentralSensorService.java @@ -1,13 +1,16 @@ package com.loafle.overflow.central.module.sensor.service; +import com.loafle.overflow.central.module.meta.service.CentralMetaCrawlerMappingService; +import com.loafle.overflow.central.module.meta.service.CentralMetaDisplayItemMappingService; import com.loafle.overflow.central.module.sensor.dao.SensorDAO; +import com.loafle.overflow.central.module.target.service.CentralTargetService; import com.loafle.overflow.core.exception.OverflowException; +import com.loafle.overflow.model.meta.MetaCrawlerMapping; import com.loafle.overflow.model.meta.MetaDisplayItemMapping; import com.loafle.overflow.model.meta.MetaSensorStatus; import com.loafle.overflow.model.sensor.Sensor; import com.loafle.overflow.model.target.Target; import com.loafle.overflow.service.central.sensor.SensorService; -import com.loafle.overflow.service.central.target.TargetService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -23,12 +26,37 @@ public class CentralSensorService implements SensorService { @Autowired private SensorDAO sensorDAO; - @Autowired private CentralSensorItemService sensorItemService; - @Autowired - private TargetService targetService; + private CentralTargetService targetService; + @Autowired + private CentralMetaCrawlerMappingService metaCrawlerMappingService; + @Autowired + private CentralMetaDisplayItemMappingService metaDisplayItemMappingService; + @Autowired + private CentralSensorConfigService sensorConfigService; + + public void registDefaults(List targets) throws OverflowException { + for (Target target : targets) { + this.registDefault(target); + } + } + + private void registDefault(Target target) throws OverflowException { + List metaCrawlerMappings = this.metaCrawlerMappingService + .readAllByMetaTargetTypeKey(target.getMetaTargetType().getKey()); + for (MetaCrawlerMapping metaCrawlerMapping : metaCrawlerMappings) { + if (metaCrawlerMapping.getDefault()) { + Sensor sensor = new Sensor(); + sensor.setMetaCrawlerMapping(metaCrawlerMapping); + sensor.setInterval(metaCrawlerMapping.getDefaultInterval()); + sensor.setTarget(target); + + this.regist(sensor, this.metaDisplayItemMappingService.readAllDefault(metaCrawlerMapping.getId())); + } + } + } @Transactional @Override @@ -44,14 +72,17 @@ public class CentralSensorService implements SensorService { sensor.setName(targetTypeName + " Sensor via " + crawlerName); } sensor.setMetaSensorStatus(MetaSensorStatus.Enum.RUNNING.to()); - Sensor s = this.sensorDAO.save(sensor); - s.setItemCount(0); + Sensor retSensor = this.sensorDAO.save(sensor); + retSensor.setItemCount(0); this.targetService.increaseSensorCount(targetID); for (MetaDisplayItemMapping metaDisplayItemMapping : metaDisplayItemMappings) { - this.sensorItemService.regist(s, metaDisplayItemMapping); + this.sensorItemService.regist(retSensor, metaDisplayItemMapping); } - return s; + + this.sensorConfigService.regist(retSensor); + + return retSensor; } @Transactional @@ -61,7 +92,7 @@ public class CentralSensorService implements SensorService { if (null == sensor) { throw new OverflowException(String.format("ID[%d] of Sensor is not valid", sensorID)); } - this.sensorItemService.readAllBySensorID(sensorID); + this.sensorItemService.removeAllBySensorID(sensorID); for (MetaDisplayItemMapping metaDisplayItemMapping : metaDisplayItemMappings) { this.sensorItemService.regist(sensor, metaDisplayItemMapping); } diff --git a/src/main/java/com/loafle/overflow/central/module/target/service/CentralTargetService.java b/src/main/java/com/loafle/overflow/central/module/target/service/CentralTargetService.java index 715fae6..d93b80d 100644 --- a/src/main/java/com/loafle/overflow/central/module/target/service/CentralTargetService.java +++ b/src/main/java/com/loafle/overflow/central/module/target/service/CentralTargetService.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.List; import com.loafle.overflow.central.module.probe.service.CentralProbeService; +import com.loafle.overflow.central.module.sensor.service.CentralSensorService; import com.loafle.overflow.central.module.target.dao.TargetDAO; import com.loafle.overflow.core.exception.OverflowException; import com.loafle.overflow.model.infra.Infra; @@ -30,6 +31,8 @@ public class CentralTargetService implements TargetService { private InfraService infraService; @Autowired private CentralProbeService probeService; + @Autowired + private CentralSensorService sensorService; @Transactional public Target regist(Target target, Long probeID) throws OverflowException { @@ -105,6 +108,9 @@ public class CentralTargetService implements TargetService { probe.setTargetCount(targetCount); this.probeService.modify(probe); + // FIXME : process asynchronously + this.sensorService.registDefaults(registered); + return registered; } diff --git a/src/main/resources/common/init.meta.sql b/src/main/resources/common/init.meta.sql index ff70694..1c17783 100644 --- a/src/main/resources/common/init.meta.sql +++ b/src/main/resources/common/init.meta.sql @@ -1212,11 +1212,7 @@ VALUES ( 1 , 'service.health.response_time' , 'Service Response Time' ); -INSERT INTO public.meta_display_item_mapping - ( id , meta_crawler_mapping_id , meta_display_item_id , is_default , priority ) -VALUES - ( 1 , 252 , 1 , 'true' , 1 ); - +INSERT INTO public.meta_display_item_mapping ( id , meta_crawler_mapping_id , meta_display_item_id , is_default , priority , is_required , meta_display_item_category_id ) VALUES ( 1 , 252 , 1 , 'true' , 1 , 'true' , 1 ); INSERT INTO public.meta_collection_item ( id , key , item , item_class ) diff --git a/src/test/java/com/loafle/overflow/central/module/sensor/service/SensorServiceTest.java b/src/test/java/com/loafle/overflow/central/module/sensor/service/SensorServiceTest.java index ef16cdb..3a6d50f 100644 --- a/src/test/java/com/loafle/overflow/central/module/sensor/service/SensorServiceTest.java +++ b/src/test/java/com/loafle/overflow/central/module/sensor/service/SensorServiceTest.java @@ -49,6 +49,8 @@ public class SensorServiceTest { List metaCrawlerMappings = this.metaCrawlerMappingDAO.findAll(); sensor.setMetaCrawlerMapping(metaCrawlerMappings.get(0)); + sensor.setInterval(metaCrawlerMappings.get(0).getDefaultInterval()); + Sensor result = this.sensorService.regist(sensor, this.metaDisplayItemMappingService.findAll()); Assert.assertNotNull(result); }