From ade6c057927bf3b6a94f3574af5d9c6ae54a379c Mon Sep 17 00:00:00 2001 From: Juho Jeong Date: Sun, 28 Apr 2024 18:59:06 +0900 Subject: [PATCH] Update --- .../component/session/AbstractSessionHandler.java | 3 +++ .../component/session/DefaultSessionManager.java | 13 +++++++++++-- .../aspectran/core/context/rule/DispatchRule.java | 6 +----- .../aspectran/core/context/rule/ItemRuleMap.java | 2 +- .../aspectran/core/context/rule/ItemRuleUtils.java | 5 +---- 5 files changed, 17 insertions(+), 12 deletions(-) diff --git a/core/src/main/java/com/aspectran/core/component/session/AbstractSessionHandler.java b/core/src/main/java/com/aspectran/core/component/session/AbstractSessionHandler.java index 8b35e26f9..872be667b 100755 --- a/core/src/main/java/com/aspectran/core/component/session/AbstractSessionHandler.java +++ b/core/src/main/java/com/aspectran/core/component/session/AbstractSessionHandler.java @@ -73,6 +73,9 @@ public String getWorkerName() { } protected void setWorkerName(String workerName) { + if (isInitialized()) { + throw new IllegalStateException("Already initialized"); + } if (workerName != null && workerName.contains(".")) { throw new IllegalArgumentException("Worker name cannot contain '.'"); } diff --git a/core/src/main/java/com/aspectran/core/component/session/DefaultSessionManager.java b/core/src/main/java/com/aspectran/core/component/session/DefaultSessionManager.java index e3f30eb4c..50936e214 100755 --- a/core/src/main/java/com/aspectran/core/component/session/DefaultSessionManager.java +++ b/core/src/main/java/com/aspectran/core/component/session/DefaultSessionManager.java @@ -28,6 +28,7 @@ import com.aspectran.utils.thread.Scheduler; import java.io.IOException; +import java.util.concurrent.atomic.AtomicInteger; /** * Implementation of SessionManager. @@ -39,6 +40,10 @@ public class DefaultSessionManager extends AbstractSessionHandler private static final Logger logger = LoggerFactory.getLogger(DefaultSessionManager.class); + private static final String UNNAMED_WORKER_PREFIX = "unnamed"; + + private static final AtomicInteger uniqueNumberIssuer = new AtomicInteger(); + private ApplicationAdapter applicationAdapter; private SessionManagerConfig sessionManagerConfig; @@ -97,6 +102,7 @@ protected void doInitialize() throws Exception { if (logger.isDebugEnabled()) { logger.debug("Initializing " + getComponentName()); } + setWorkerName(UNNAMED_WORKER_PREFIX + uniqueNumberIssuer.getAndIncrement()); } else { if (logger.isDebugEnabled()) { logger.debug("Initializing " + new ToStringBuilder(getComponentName(), sessionManagerConfig)); @@ -105,7 +111,10 @@ protected void doInitialize() throws Exception { clusterEnabled = true; } if (sessionManagerConfig.hasWorkerName()) { + uniqueNumberIssuer.getAndIncrement(); setWorkerName(sessionManagerConfig.getWorkerName()); + } else { + setWorkerName(UNNAMED_WORKER_PREFIX + uniqueNumberIssuer.getAndIncrement()); } if (sessionManagerConfig.hasMaxIdleSeconds()) { setDefaultMaxIdleSecs(sessionManagerConfig.getMaxIdleSeconds()); @@ -120,9 +129,9 @@ protected void doInitialize() throws Exception { if (getScheduler() == null) { String schedulerName; if (getWorkerName() != null) { - schedulerName = "S-Scheduler-" + getWorkerName(); + schedulerName = "Scheduler-" + getWorkerName(); } else { - schedulerName = String.format("S-Scheduler-%x", hashCode()); + schedulerName = String.format("Scheduler@%x", hashCode()); } Scheduler scheduler = new ScheduledExecutorScheduler(schedulerName, false); setScheduler(scheduler); diff --git a/core/src/main/java/com/aspectran/core/context/rule/DispatchRule.java b/core/src/main/java/com/aspectran/core/context/rule/DispatchRule.java index 34ae9e91f..40623aed3 100644 --- a/core/src/main/java/com/aspectran/core/context/rule/DispatchRule.java +++ b/core/src/main/java/com/aspectran/core/context/rule/DispatchRule.java @@ -240,11 +240,7 @@ public String toString(ViewDispatcher viewDispatcher, String targetName) { @NonNull public static DispatchRule newInstance(String name, String dispatcherName, String contentType, String encoding, Boolean defaultResponse) throws IllegalRuleException { - if (name == null) { - throw new IllegalRuleException("name must not be null"); - } - DispatchRule dr = new DispatchRule(); - dr.setName(name); + DispatchRule dr = newInstance(name); dr.setDispatcherName(dispatcherName); dr.setContentType(contentType); dr.setEncoding(encoding); diff --git a/core/src/main/java/com/aspectran/core/context/rule/ItemRuleMap.java b/core/src/main/java/com/aspectran/core/context/rule/ItemRuleMap.java index 3ab967ff9..1f49880e5 100755 --- a/core/src/main/java/com/aspectran/core/context/rule/ItemRuleMap.java +++ b/core/src/main/java/com/aspectran/core/context/rule/ItemRuleMap.java @@ -52,7 +52,7 @@ public ItemRuleMap(ItemRuleMap itemRuleMap) { * @param itemRule the item rule * @return the item rule */ - public ItemRule putItemRule(ItemRule itemRule) { + public ItemRule putItemRule(@NonNull ItemRule itemRule) { if (itemRule.isAutoNamed()) { autoNaming(itemRule); } diff --git a/core/src/main/java/com/aspectran/core/context/rule/ItemRuleUtils.java b/core/src/main/java/com/aspectran/core/context/rule/ItemRuleUtils.java index 060332014..7b00d3e04 100644 --- a/core/src/main/java/com/aspectran/core/context/rule/ItemRuleUtils.java +++ b/core/src/main/java/com/aspectran/core/context/rule/ItemRuleUtils.java @@ -40,10 +40,7 @@ * * @since 6.3.0 */ -public class ItemRuleUtils { - - private ItemRuleUtils() { - } +public abstract class ItemRuleUtils { /** * Returns the {@code Class} according to the given item value.