diff --git a/src/main/java/com/eactive/eai/custom/alarm/AlarmService.java b/src/main/java/com/eactive/eai/custom/alarm/AlarmService.java index 6f28796..cc07095 100644 --- a/src/main/java/com/eactive/eai/custom/alarm/AlarmService.java +++ b/src/main/java/com/eactive/eai/custom/alarm/AlarmService.java @@ -1,9 +1,11 @@ package com.eactive.eai.custom.alarm; -import java.util.ArrayList; import java.util.Arrays; +import java.util.Collection; import java.util.Collections; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.Optional; import java.util.Properties; @@ -12,11 +14,12 @@ import org.springframework.stereotype.Service; import com.eactive.eai.common.property.PropManager; import com.eactive.eai.common.util.Jsons; import com.eactive.eai.common.util.Logger; +import com.eactive.eai.custom.alarm.key.AlarmKey; import com.eactive.eai.custom.alarm.key.DynamicAlarmKey; import com.eactive.eai.custom.alarm.policy.AlarmPolicy; import com.eactive.eai.custom.alarm.policy.CounterPolicy; +import com.eactive.eai.custom.alarm.policy.SendPolicy; import com.eactive.eai.custom.alarm.policy.TimerPolicy; -import com.google.gson.Gson; import com.google.gson.JsonObject; @Service @@ -28,9 +31,9 @@ public class AlarmService { final static String ALARM_KEY = "Alarm"; final static String ALARM_RECIVER = "{RECIVER}"; - public List getAlarmPolicy() { + public Map getAlarmPolicy() { - List policyList = new ArrayList(); + Map policyMap = new HashMap(); try { @@ -40,22 +43,24 @@ public class AlarmService { String keyName = (String) key; String configStr = (String) value; - if (keyName.contains(ALARM_RECIVER)) - return; + if (keyName.contains(ALARM_RECIVER)) return; - policyList.add(buildAlarmPolicy(keyName, configStr)); + AlarmPolicy newPolicy = buildAlarmPolicy(keyName, configStr); + + + policyMap.put(newPolicy.getAlarmKey(), newPolicy); }); } catch (Exception e) { - logger.error("getAlarmPolicy fail.", e); - return Collections.EMPTY_LIST; + logger.warn("getAlarmPolicy fail.", e); + return Collections.EMPTY_MAP; } - return null; + return policyMap; } - AlarmPolicy buildAlarmPolicy(String key, String configJsonStr) { + private AlarmPolicy buildAlarmPolicy(String key, String configJsonStr) { JsonObject alarmConfig = Jsons.GSON.fromJson(configJsonStr, JsonObject.class); @@ -77,4 +82,45 @@ public class AlarmService { return alarmPolicy; } + + public Map getSendPolicy() { + + Map policyMap = new HashMap(); + + try { + + Properties props = PropManager.getInstance().getProperties(ALARM_GROUP); + + props.forEach((key, value) -> { + String keyName = (String) key; + String configStr = (String) value; + + if (!keyName.contains(ALARM_RECIVER)) return; + + SendPolicy newPolicy = buildSendPolicy(keyName, configStr); + + + policyMap.put(newPolicy.getAlarmKey(), newPolicy); + + }); + + } catch (Exception e) { + logger.warn("getSendPolicy fail.", e); + return Collections.EMPTY_MAP; + } + + return policyMap; + } + + private SendPolicy buildSendPolicy(String key, String configStr) { + + List reciverList = Optional.ofNullable(configStr).map( t -> Arrays.asList(t.split(",")) ).orElse(Collections.EMPTY_LIST); + + key = key.replaceAll(ALARM_RECIVER, "").trim(); + + SendPolicy sendPolicy = new SendPolicy(key, reciverList); + + return sendPolicy; + + } } diff --git a/src/main/java/com/eactive/eai/custom/alarm/AlarmStateManager.java b/src/main/java/com/eactive/eai/custom/alarm/AlarmStateManager.java index 8d4bfd8..ef0e5ed 100644 --- a/src/main/java/com/eactive/eai/custom/alarm/AlarmStateManager.java +++ b/src/main/java/com/eactive/eai/custom/alarm/AlarmStateManager.java @@ -2,77 +2,117 @@ package com.eactive.eai.custom.alarm; import java.util.ArrayList; import java.util.List; +import java.util.Map; import java.util.Optional; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import com.eactive.eai.common.util.Logger; import com.eactive.eai.custom.alarm.event.AlarmEvent; +import com.eactive.eai.custom.alarm.key.AlarmKey; +import com.eactive.eai.custom.alarm.policy.AlarmPolicy; +import com.eactive.eai.custom.alarm.policy.CounterPolicy; +import com.eactive.eai.custom.alarm.policy.SendPolicy; +import com.eactive.eai.custom.alarm.ums.UmsService; +import com.eactive.eai.custom.alarm.ums.payload.IUmsGsonObject; +import com.eactive.eai.custom.alarm.ums.payload.ObpMonitoringUmsTemplate; +import com.eactive.eai.custom.alarm.ums.payload.UmsRequestPayload; @Component public class AlarmStateManager { - - - List registerAlarmList = new ArrayList(); - - private final ScheduledExecutorService scheduler; - - protected static Logger logger = Logger.getLogger(Logger.LOGGER_DEFAULT); - - - public AlarmStateManager() { - - this.scheduler = Executors.newSingleThreadScheduledExecutor(r -> { - Thread t = new Thread(r); - t.setName("AlarmStateManager-worker"); - t.setDaemon(false); - return t; - }); - - scheduler.scheduleWithFixedDelay(() -> { - try { - // === 여기에 지속 실행할 로직 === - fireAlarm(); + List registerAlarmList = new ArrayList(); - } catch (Throwable e) { - // 반드시 예외 잡기 (안 잡으면 스케줄 자체가 죽음) - logger.error("fireAlarm fail", e); - } + private final ScheduledExecutorService scheduler; - }, 0, 5, TimeUnit.SECONDS); // 최초 0초, 이후 5초 간격 + protected static Logger logger = Logger.getLogger(Logger.LOGGER_DEFAULT); + + @Autowired + AlarmService alarmService; + + @Autowired + UmsService usmService; + + public AlarmStateManager() { + + this.scheduler = Executors.newSingleThreadScheduledExecutor(r -> { + Thread t = new Thread(r); + t.setName("AlarmStateManager-worker"); + t.setDaemon(false); + return t; + }); + + scheduler.scheduleWithFixedDelay(() -> { + + try { + // === 여기에 지속 실행할 로직 === + fireAlarm(); + + } catch (Throwable e) { + // 반드시 예외 잡기 (안 잡으면 스케줄 자체가 죽음) + logger.error("fireAlarm fail", e); + } + + }, 0, 5, TimeUnit.SECONDS); // 최초 0초, 이후 5초 간격 + } + + public void onEvnet(AlarmEvent alaramEvent) { + + Optional existEvent = registerAlarmList.stream().filter(e -> e.equals(alaramEvent)).findFirst(); + + if (existEvent.isPresent()) { + AlarmEvent event = existEvent.get(); + event.onOcurr(); + } else { + registerAlarmList.add(alaramEvent); } - - - public void onEvnet(AlarmEvent alaramEvent) { - - Optional existEvent = - registerAlarmList.stream() - .filter(e -> e.equals(alaramEvent)) - .findFirst(); - if (existEvent.isPresent()) { - AlarmEvent event = existEvent.get(); - event.onOcurr(); - } else { - registerAlarmList.add(alaramEvent); - } + } + + private void fireAlarm() { + + Map alarmPolicyMap = alarmService.getAlarmPolicy(); + Map sendPolicyMap = alarmService.getSendPolicy(); + + for (AlarmEvent event : registerAlarmList) { + + AlarmPolicy alarmPolicy = alarmPolicyMap.get(event.getKey()); + + if (alarmPolicy.isAlarmTriggered(event)) { + + SendPolicy sendPolicy = sendPolicyMap.get(event.getKey()); + + } } - - private void fireAlarm() { - - for(AlarmEvent event : registerAlarmList) { - - - - } - + + } + + private void send(SendPolicy sendPolicy, AlarmEvent event) { + + UmsRequestPayload payload = null; + + try { + + List cellPhoneList = sendPolicy.getCellpohoneList(); + + for (String cellPhone : cellPhoneList) { + + payload = UmsRequestPayload.builder() + .content(ObpMonitoringUmsTemplate.builder().message(event.getMessage()).build()) + .cellphone(cellPhone).build(); + + usmService.send(payload); + } + + } catch (Exception e) { + logger.error(String.format("Alarm message delivery failed (UMS), payload=%s", payload), e); + } - - + } } \ No newline at end of file diff --git a/src/main/java/com/eactive/eai/custom/alarm/condition/AlarmCondition.java b/src/main/java/com/eactive/eai/custom/alarm/condition/AlarmCondition.java index 7d852f4..996dbd0 100644 --- a/src/main/java/com/eactive/eai/custom/alarm/condition/AlarmCondition.java +++ b/src/main/java/com/eactive/eai/custom/alarm/condition/AlarmCondition.java @@ -6,9 +6,8 @@ import lombok.Getter; @Builder @Getter public class AlarmCondition { - AlarmLevel level; - final long ocurredAt; - long lastOcurredAt; + final long ocurredAt = System.currentTimeMillis(); + long lastOcurredAt; // 일단, 미사용 long count = 1; public void onOcurr() { diff --git a/src/main/java/com/eactive/eai/custom/alarm/event/AlarmEvent.java b/src/main/java/com/eactive/eai/custom/alarm/event/AlarmEvent.java index 1d29a3f..fa435b8 100644 --- a/src/main/java/com/eactive/eai/custom/alarm/event/AlarmEvent.java +++ b/src/main/java/com/eactive/eai/custom/alarm/event/AlarmEvent.java @@ -4,6 +4,8 @@ import java.util.Objects; import com.eactive.eai.custom.alarm.condition.AlarmCondition; import com.eactive.eai.custom.alarm.key.AlarmKey; +import com.eactive.eai.custom.alarm.policy.AlarmPolicy; +import com.eactive.eai.custom.alarm.policy.CounterPolicy; import lombok.Builder; import lombok.Getter; @@ -34,4 +36,6 @@ public class AlarmEvent { public int hashCode() { return Objects.hash(key); } + + } diff --git a/src/main/java/com/eactive/eai/custom/alarm/key/CoreAlarmKey.java b/src/main/java/com/eactive/eai/custom/alarm/key/CoreAlarmKey.java index eae718b..70c5027 100644 --- a/src/main/java/com/eactive/eai/custom/alarm/key/CoreAlarmKey.java +++ b/src/main/java/com/eactive/eai/custom/alarm/key/CoreAlarmKey.java @@ -1,9 +1,12 @@ package com.eactive.eai.custom.alarm.key; -public enum CoreAlarmKey implements AlarmKey { - CircuitBreaker; - @Override - public String code() { - return name(); - } +public final class CoreAlarmKey { + + private CoreAlarmKey() { } + + public static final AlarmKey CircuitBreaker = new DynamicAlarmKey("CircuitBreaker"); + + public static final AlarmKey Timeout = new DynamicAlarmKey("Timeout"); + + } \ No newline at end of file diff --git a/src/main/java/com/eactive/eai/custom/alarm/policy/AlarmPolicy.java b/src/main/java/com/eactive/eai/custom/alarm/policy/AlarmPolicy.java index 2f42186..d1230b6 100644 --- a/src/main/java/com/eactive/eai/custom/alarm/policy/AlarmPolicy.java +++ b/src/main/java/com/eactive/eai/custom/alarm/policy/AlarmPolicy.java @@ -1,5 +1,6 @@ package com.eactive.eai.custom.alarm.policy; +import com.eactive.eai.custom.alarm.condition.AlarmCondition; import com.eactive.eai.custom.alarm.event.AlarmEvent; import com.eactive.eai.custom.alarm.key.AlarmKey; @@ -36,11 +37,12 @@ public abstract class AlarmPolicy { return coolDownMs; } - abstract boolean isAlarmTriggered(AlarmEvent event); + public abstract boolean isAlarmTriggered(AlarmEvent event); + - public boolean hasElapsed(long baseTimeMs, long currentTimeMs) { + public boolean hasElapsed(long baseTimeMs) { - return currentTimeMs - baseTimeMs >= timeWindowMs; + return System.currentTimeMillis() - baseTimeMs >= timeWindowMs; } diff --git a/src/main/java/com/eactive/eai/custom/alarm/policy/CounterPolicy.java b/src/main/java/com/eactive/eai/custom/alarm/policy/CounterPolicy.java index 97f763d..65d3f7f 100644 --- a/src/main/java/com/eactive/eai/custom/alarm/policy/CounterPolicy.java +++ b/src/main/java/com/eactive/eai/custom/alarm/policy/CounterPolicy.java @@ -9,7 +9,7 @@ public class CounterPolicy extends AlarmPolicy { } @Override - boolean isAlarmTriggered(AlarmEvent event) { + public boolean isAlarmTriggered(AlarmEvent event) { if (!event.equals(getAlarmKey())) { return false; diff --git a/src/main/java/com/eactive/eai/custom/alarm/policy/SendPolicy.java b/src/main/java/com/eactive/eai/custom/alarm/policy/SendPolicy.java new file mode 100644 index 0000000..945881d --- /dev/null +++ b/src/main/java/com/eactive/eai/custom/alarm/policy/SendPolicy.java @@ -0,0 +1,22 @@ +package com.eactive.eai.custom.alarm.policy; + +import java.util.ArrayList; +import java.util.List; + +import com.eactive.eai.custom.alarm.key.AlarmKey; +import com.eactive.eai.custom.alarm.key.DynamicAlarmKey; + +import lombok.Getter; + +@Getter +public class SendPolicy { + + final AlarmKey alarmKey; + + final List cellpohoneList = new ArrayList(); + + public SendPolicy(String alarmKey, List cellPhoneList) { + this.alarmKey = new DynamicAlarmKey(alarmKey); + } + +} diff --git a/src/main/java/com/eactive/eai/custom/alarm/policy/TimerPolicy.java b/src/main/java/com/eactive/eai/custom/alarm/policy/TimerPolicy.java index b56dde7..0a51b02 100644 --- a/src/main/java/com/eactive/eai/custom/alarm/policy/TimerPolicy.java +++ b/src/main/java/com/eactive/eai/custom/alarm/policy/TimerPolicy.java @@ -11,16 +11,15 @@ public class TimerPolicy extends AlarmPolicy { } @Override - boolean isAlarmTriggered(AlarmEvent event) { + public boolean isAlarmTriggered(AlarmEvent event) { if (event.equals(getAlarmKey())) { AlarmCondition condition = event.getCondition(); long baseTimeMs = condition.getOcurredAt(); - long lastTimeMs = condition.getLastOcurredAt(); - if (hasElapsed(baseTimeMs, lastTimeMs)) { + if (hasElapsed(baseTimeMs)) { return true; } else { return false; diff --git a/src/main/java/com/eactive/eai/custom/alarm/ums/UmsSendManager.java b/src/main/java/com/eactive/eai/custom/alarm/ums/UmsSendManager.java new file mode 100644 index 0000000..dfab3b5 --- /dev/null +++ b/src/main/java/com/eactive/eai/custom/alarm/ums/UmsSendManager.java @@ -0,0 +1,62 @@ +package com.eactive.eai.custom.alarm.ums; + +import java.util.Queue; +import java.util.concurrent.ConcurrentLinkedQueue; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import com.eactive.eai.common.util.Logger; +import com.eactive.eai.custom.alarm.ums.payload.UmsRequestPayload; + +@Component +public class UmsSendManager { + + private final ScheduledExecutorService scheduler; + + protected static Logger logger = Logger.getLogger(Logger.LOGGER_DEFAULT); + + Queue queue = new ConcurrentLinkedQueue(); + + @Autowired + UmsService umsService; + + public UmsSendManager() { + this.scheduler = Executors.newSingleThreadScheduledExecutor(r -> { + Thread t = new Thread(r); + t.setName("AlarmStateManager-worker"); + t.setDaemon(false); + return t; + }); + + scheduler.scheduleWithFixedDelay(() -> { + + try { + // === 여기에 지속 실행할 로직 === + sendMessage(); + + } catch (Throwable e) { + // 반드시 예외 잡기 (안 잡으면 스케줄 자체가 죽음) + logger.error("fireAlarm fail", e); + } + + }, 0, 5, TimeUnit.SECONDS); // 최초 0초, 이후 5초 간격 + } + + void sendMessage() throws Exception { + UmsRequestPayload payload; + while ((payload = queue.poll()) != null) { + umsService.send(payload); + } + + } + + public void enqueue(UmsRequestPayload payload) { + queue.offer(payload); + } + + +} diff --git a/src/main/java/com/eactive/eai/custom/alarm/ums/UmsService.java b/src/main/java/com/eactive/eai/custom/alarm/ums/UmsService.java index 08b6135..4b1b981 100644 --- a/src/main/java/com/eactive/eai/custom/alarm/ums/UmsService.java +++ b/src/main/java/com/eactive/eai/custom/alarm/ums/UmsService.java @@ -2,8 +2,6 @@ package com.eactive.eai.custom.alarm.ums; import java.io.IOException; import java.nio.charset.Charset; -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; import java.util.Arrays; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; @@ -21,8 +19,10 @@ import org.apache.hc.core5.util.Timeout; import org.springframework.stereotype.Component; import org.springframework.util.StreamUtils; +import com.eactive.eai.common.util.Jsons; import com.eactive.eai.common.util.Logger; -import com.google.gson.Gson; +import com.eactive.eai.custom.alarm.ums.payload.UmsRequestPayload; +import com.eactive.eai.custom.alarm.ums.payload.ValidationUtil; import com.google.gson.JsonSyntaxException; @Component @@ -36,18 +36,16 @@ public class UmsService { private final static String CONTENT_TYPE = "application/json; charset=utf-8"; private final static String AUTHORIZATION_FMT = "Bearer %s"; - Future send(String cpno, String message, UmsBizWorkCode code) throws Exception { + public Future send(UmsRequestPayload payload) throws Exception { - if (message == null) { + if (payload.getContent() == null) { throw new IllegalArgumentException("content is null"); } - String guid = String.format("APM-%s", - DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS").format(LocalDateTime.now())); - UmsRequestPayload payload = UmsRequestPayload.builder().messageIdentityNo(guid).msgBizWorkCode(code.getCode()) - .content(ObpMonitoringUmsTemplate.builder().message(message).build()).cellphone(cpno) - .msgSndChnlCd(UmsRequestPayload.ChannelCode.KM).build(); +// UmsRequestPayload payload = UmsRequestPayload.builder() +// .content(ObpMonitoringUmsTemplate.builder().message(message).build()).cellphone(cpno) +// .build(); try { ValidationUtil.validateOrThrow(payload); @@ -66,8 +64,8 @@ public class UmsService { private Future call(String url, UmsRequestPayload requestPayload) throws Exception { ExecutorService executor = Executors.newSingleThreadExecutor(); - Gson gson = new Gson(); - String json = gson.toJson(requestPayload); + + String json = Jsons.GSON.toJson(requestPayload); HttpPost httpPost = new HttpPost(UMS_URL + url); httpPost.setHeader("Content-Type", CONTENT_TYPE); @@ -97,7 +95,7 @@ public class UmsService { if (logger.isDebugEnabled()) { logger.debug("Response - {}", body); } - result = gson.fromJson(body, UmsCallResult.class); + result = Jsons.GSON.fromJson(body, UmsCallResult.class); result.setUmsMessageId(requestPayload.getMessageIdentityNo()); result.setSuccess(true); return result; diff --git a/src/main/java/com/eactive/eai/custom/alarm/ums/IUmsGsonObject.java b/src/main/java/com/eactive/eai/custom/alarm/ums/payload/IUmsGsonObject.java similarity index 59% rename from src/main/java/com/eactive/eai/custom/alarm/ums/IUmsGsonObject.java rename to src/main/java/com/eactive/eai/custom/alarm/ums/payload/IUmsGsonObject.java index 58037b1..a1b7220 100644 --- a/src/main/java/com/eactive/eai/custom/alarm/ums/IUmsGsonObject.java +++ b/src/main/java/com/eactive/eai/custom/alarm/ums/payload/IUmsGsonObject.java @@ -1,4 +1,4 @@ -package com.eactive.eai.custom.alarm.ums; +package com.eactive.eai.custom.alarm.ums.payload; /** * GSON Serialize 용 Object diff --git a/src/main/java/com/eactive/eai/custom/alarm/ums/ObpMonitoringUmsTemplate.java b/src/main/java/com/eactive/eai/custom/alarm/ums/payload/ObpMonitoringUmsTemplate.java similarity index 83% rename from src/main/java/com/eactive/eai/custom/alarm/ums/ObpMonitoringUmsTemplate.java rename to src/main/java/com/eactive/eai/custom/alarm/ums/payload/ObpMonitoringUmsTemplate.java index 1570885..9f5af06 100644 --- a/src/main/java/com/eactive/eai/custom/alarm/ums/ObpMonitoringUmsTemplate.java +++ b/src/main/java/com/eactive/eai/custom/alarm/ums/payload/ObpMonitoringUmsTemplate.java @@ -1,4 +1,4 @@ -package com.eactive.eai.custom.alarm.ums; +package com.eactive.eai.custom.alarm.ums.payload; import com.google.gson.annotations.SerializedName; import lombok.Builder; diff --git a/src/main/java/com/eactive/eai/custom/alarm/ums/UmsBizWorkCode.java b/src/main/java/com/eactive/eai/custom/alarm/ums/payload/UmsBizWorkCode.java similarity index 88% rename from src/main/java/com/eactive/eai/custom/alarm/ums/UmsBizWorkCode.java rename to src/main/java/com/eactive/eai/custom/alarm/ums/payload/UmsBizWorkCode.java index 898f4b6..d669b23 100644 --- a/src/main/java/com/eactive/eai/custom/alarm/ums/UmsBizWorkCode.java +++ b/src/main/java/com/eactive/eai/custom/alarm/ums/payload/UmsBizWorkCode.java @@ -1,4 +1,4 @@ -package com.eactive.eai.custom.alarm.ums; +package com.eactive.eai.custom.alarm.ums.payload; import lombok.Getter; diff --git a/src/main/java/com/eactive/eai/custom/alarm/ums/UmsRequestPayload.java b/src/main/java/com/eactive/eai/custom/alarm/ums/payload/UmsRequestPayload.java similarity index 91% rename from src/main/java/com/eactive/eai/custom/alarm/ums/UmsRequestPayload.java rename to src/main/java/com/eactive/eai/custom/alarm/ums/payload/UmsRequestPayload.java index 6e11bd1..51fc6f6 100644 --- a/src/main/java/com/eactive/eai/custom/alarm/ums/UmsRequestPayload.java +++ b/src/main/java/com/eactive/eai/custom/alarm/ums/payload/UmsRequestPayload.java @@ -1,4 +1,4 @@ -package com.eactive.eai.custom.alarm.ums; +package com.eactive.eai.custom.alarm.ums.payload; import com.google.gson.annotations.SerializedName; import lombok.Builder; @@ -22,13 +22,15 @@ public class UmsRequestPayload { @Length(min = 1, max = 50) @NotEmpty @SerializedName("MSG_IDNT_NO") - private String messageIdentityNo; + @Builder.Default + private String messageIdentityNo = String.format("APM-%s",DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS").format(LocalDateTime.now())); // MSG_BZWK_CD string 메시지업무코드 30 O UMS에 등록된 메시지업무코드(AS-IS 템플릿ID) @NotEmpty @Length(min = 1, max = 30) @SerializedName("MSG_BZWK_CD") - private String msgBizWorkCode; + @Builder.Default + private String msgBizWorkCode = UmsBizWorkCode.MONITORING.getCode(); // 메시지업무파라미터내용 / 4000 / JSONObject // MSG_BZWK_PARAM_CTNT object 메시지업무파라미터내용 4000 메시지업무코드의 템플릿에서 사용하는 변수와 변수값 diff --git a/src/main/java/com/eactive/eai/custom/alarm/ums/ValidationUtil.java b/src/main/java/com/eactive/eai/custom/alarm/ums/payload/ValidationUtil.java similarity index 97% rename from src/main/java/com/eactive/eai/custom/alarm/ums/ValidationUtil.java rename to src/main/java/com/eactive/eai/custom/alarm/ums/payload/ValidationUtil.java index 7aacc4f..ecb8cf8 100644 --- a/src/main/java/com/eactive/eai/custom/alarm/ums/ValidationUtil.java +++ b/src/main/java/com/eactive/eai/custom/alarm/ums/payload/ValidationUtil.java @@ -1,4 +1,4 @@ -package com.eactive.eai.custom.alarm.ums; +package com.eactive.eai.custom.alarm.ums.payload; import java.util.Set; import java.util.stream.Collectors; diff --git a/src/main/java/com/eactive/eai/custom/alarm/ums/VerifyPhoneUmsTemplate.java b/src/main/java/com/eactive/eai/custom/alarm/ums/payload/VerifyPhoneUmsTemplate.java similarity index 82% rename from src/main/java/com/eactive/eai/custom/alarm/ums/VerifyPhoneUmsTemplate.java rename to src/main/java/com/eactive/eai/custom/alarm/ums/payload/VerifyPhoneUmsTemplate.java index 7af2586..4840fbf 100644 --- a/src/main/java/com/eactive/eai/custom/alarm/ums/VerifyPhoneUmsTemplate.java +++ b/src/main/java/com/eactive/eai/custom/alarm/ums/payload/VerifyPhoneUmsTemplate.java @@ -1,4 +1,4 @@ -package com.eactive.eai.custom.alarm.ums; +package com.eactive.eai.custom.alarm.ums.payload; import com.google.gson.annotations.SerializedName; import lombok.Builder;