Skip to content

Commit

Permalink
Merge pull request #11 from mytang0/config
Browse files Browse the repository at this point in the history
Optimize configuration acquisition method
  • Loading branch information
mytang0 committed Apr 25, 2024
2 parents 423d928 + faa63c3 commit 9389cf6
Show file tree
Hide file tree
Showing 8 changed files with 69 additions and 46 deletions.
19 changes: 10 additions & 9 deletions brook-core/src/main/java/xyz/mytang0/brook/core/FlowExecutor.java
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@
import xyz.mytang0.brook.spi.cache.FlowCache;
import xyz.mytang0.brook.spi.cache.FlowCacheFactory;
import xyz.mytang0.brook.spi.computing.EngineActuator;
import xyz.mytang0.brook.spi.config.Configurator;
import xyz.mytang0.brook.spi.config.ConfiguratorFacade;
import xyz.mytang0.brook.spi.execution.ExecutionDAO;
import xyz.mytang0.brook.spi.executor.ExecutorFactory;
import xyz.mytang0.brook.spi.metadata.MetadataService;
Expand Down Expand Up @@ -111,17 +111,14 @@ public class FlowExecutor<T extends FlowTask> {


public FlowExecutor(FlowTaskRegistry<T> flowTaskRegistry) {
Configurator configurator = ExtensionDirector
.getExtensionLoader(Configurator.class)
.getDefaultExtension();
this.flowLockFacade = new FlowLockFacade(
configurator.getConfig(LockProperties.class)
ConfiguratorFacade.getConfig(LockProperties.class)
);
this.flowTaskRegistry = flowTaskRegistry;
this.flowAspect = new FlowAspect();
this.taskAspect = new TaskAspect();
this.metadataService = new MetadataFacade(
configurator.getConfig(MetadataProperties.class)
ConfiguratorFacade.getConfig(MetadataProperties.class)
);
this.engineActuator = ExtensionDirector
.getExtensionLoader(EngineActuator.class)
Expand All @@ -133,9 +130,13 @@ public FlowExecutor(FlowTaskRegistry<T> flowTaskRegistry) {
.getExtensionLoader(ExecutorFactory.class)
.getDefaultExtension()
.getExecutor(FLOW_STARTER);
this.queueProperties = configurator.getConfig(QueueProperties.class);
this.executionProperties = configurator.getConfig(ExecutionProperties.class);
this.delayedTaskMonitorProperties = configurator.getConfig(DelayedTaskMonitorProperties.class);
this.queueProperties =
ConfiguratorFacade.getConfig(QueueProperties.class);
this.executionProperties =
ConfiguratorFacade.getConfig(ExecutionProperties.class);
this.delayedTaskMonitorProperties =
ConfiguratorFacade.getConfig(DelayedTaskMonitorProperties.class);

DelayedTaskMonitor.init(this, flowLockFacade, delayedTaskMonitorProperties);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,8 @@
import lombok.Data;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.SystemUtils;
import xyz.mytang0.brook.common.extension.ExtensionDirector;
import xyz.mytang0.brook.spi.config.ConfigProperties;
import xyz.mytang0.brook.spi.config.Configurator;
import xyz.mytang0.brook.spi.config.ConfiguratorFacade;

import java.nio.file.Paths;

Expand All @@ -16,9 +15,7 @@ public class FlowLogService {
private final FlowLogProperties properties;

public FlowLogService() {
this.properties = ExtensionDirector
.getExtensionLoader(Configurator.class)
.getDefaultExtension()
this.properties = ConfiguratorFacade
.getConfig(FlowLogProperties.class);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,10 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import xyz.mytang0.brook.common.extension.ExtensionDirector;
import xyz.mytang0.brook.common.metadata.definition.FlowDef;
import xyz.mytang0.brook.core.metadata.MetadataFacade;
import xyz.mytang0.brook.core.metadata.MetadataProperties;
import xyz.mytang0.brook.spi.config.Configurator;
import xyz.mytang0.brook.spi.config.ConfiguratorFacade;

import javax.validation.Valid;

Expand All @@ -24,9 +23,7 @@ public class FlowMetadataController {

public FlowMetadataController() {
this.metadataFacade = new MetadataFacade(
ExtensionDirector
.getExtensionLoader(Configurator.class)
.getDefaultExtension()
ConfiguratorFacade
.getConfig(MetadataProperties.class)
);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,11 @@

import xyz.mytang0.brook.common.utils.StringUtils;
import lombok.Data;
import xyz.mytang0.brook.spi.config.ConfigProperties;

import java.time.Duration;

@ConfigProperties(prefix = "brook.metadata.http")
@Data
public class HTTPMetadataConfig {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,5 @@
package xyz.mytang0.brook.metadata.http;

import xyz.mytang0.brook.common.constants.Delimiter;
import xyz.mytang0.brook.common.extension.Disposable;
import xyz.mytang0.brook.common.extension.Selected;
import xyz.mytang0.brook.common.metadata.definition.FlowDef;
import xyz.mytang0.brook.common.utils.JsonUtils;
import xyz.mytang0.brook.spi.metadata.MetadataService;
import com.fasterxml.jackson.core.type.TypeReference;
import com.github.benmanes.caffeine.cache.Cache;
import com.github.benmanes.caffeine.cache.Caffeine;
Expand All @@ -20,6 +14,13 @@
import org.apache.http.impl.nio.reactor.IOReactorConfig;
import org.apache.http.protocol.HttpContext;
import org.apache.http.util.EntityUtils;
import xyz.mytang0.brook.common.constants.Delimiter;
import xyz.mytang0.brook.common.extension.Disposable;
import xyz.mytang0.brook.common.extension.Selected;
import xyz.mytang0.brook.common.metadata.definition.FlowDef;
import xyz.mytang0.brook.common.utils.JsonUtils;
import xyz.mytang0.brook.spi.config.ConfiguratorFacade;
import xyz.mytang0.brook.spi.metadata.MetadataService;

import java.io.IOException;
import java.io.Serializable;
Expand Down Expand Up @@ -57,7 +58,8 @@ public void cancelled() {
private volatile Cache<String, FlowDef> cache;

public HTTPMetadataService() {

this(ConfiguratorFacade
.getConfig(HTTPMetadataConfig.class));
}

public HTTPMetadataService(final HTTPMetadataConfig config) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,5 @@
package xyz.mytang0.brook.task.http;

import xyz.mytang0.brook.common.configuration.ConfigOption;
import xyz.mytang0.brook.common.configuration.ConfigOptions;
import xyz.mytang0.brook.common.configuration.Configuration;
import xyz.mytang0.brook.common.constants.Delimiter;
import xyz.mytang0.brook.common.extension.Disposable;
import xyz.mytang0.brook.common.metadata.definition.TaskDef;
import xyz.mytang0.brook.common.metadata.enums.TaskStatus;
import xyz.mytang0.brook.common.metadata.instance.TaskInstance;
import xyz.mytang0.brook.common.utils.ExceptionUtils;
import xyz.mytang0.brook.common.utils.JsonUtils;
import xyz.mytang0.brook.common.utils.StringUtils;
import xyz.mytang0.brook.common.utils.token.TokenHandler;
import xyz.mytang0.brook.common.utils.token.TokenParser;
import xyz.mytang0.brook.spi.task.FlowTask;
import org.apache.commons.collections4.MapUtils;
import org.apache.http.Header;
import org.apache.http.HttpEntity;
Expand All @@ -40,6 +26,21 @@
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HttpContext;
import org.apache.http.util.EntityUtils;
import xyz.mytang0.brook.common.configuration.ConfigOption;
import xyz.mytang0.brook.common.configuration.ConfigOptions;
import xyz.mytang0.brook.common.configuration.Configuration;
import xyz.mytang0.brook.common.constants.Delimiter;
import xyz.mytang0.brook.common.extension.Disposable;
import xyz.mytang0.brook.common.metadata.definition.TaskDef;
import xyz.mytang0.brook.common.metadata.enums.TaskStatus;
import xyz.mytang0.brook.common.metadata.instance.TaskInstance;
import xyz.mytang0.brook.common.utils.ExceptionUtils;
import xyz.mytang0.brook.common.utils.JsonUtils;
import xyz.mytang0.brook.common.utils.StringUtils;
import xyz.mytang0.brook.common.utils.token.TokenHandler;
import xyz.mytang0.brook.common.utils.token.TokenParser;
import xyz.mytang0.brook.spi.config.ConfiguratorFacade;
import xyz.mytang0.brook.spi.task.FlowTask;

import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
Expand All @@ -58,6 +59,8 @@
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;

import static org.apache.http.entity.ContentType.APPLICATION_FORM_URLENCODED;
import static org.apache.http.entity.ContentType.APPLICATION_JSON;
import static xyz.mytang0.brook.task.http.HTTPTask.Options.BODY;
import static xyz.mytang0.brook.task.http.HTTPTask.Options.CHARSET;
import static xyz.mytang0.brook.task.http.HTTPTask.Options.HEADERS;
Expand All @@ -67,8 +70,6 @@
import static xyz.mytang0.brook.task.http.HTTPTask.Options.STATUS_CODE;
import static xyz.mytang0.brook.task.http.HTTPTask.Options.URI;
import static xyz.mytang0.brook.task.http.HTTPTask.Options.VARIABLES;
import static org.apache.http.entity.ContentType.APPLICATION_FORM_URLENCODED;
import static org.apache.http.entity.ContentType.APPLICATION_JSON;

public class HTTPTask implements FlowTask, Disposable {

Expand Down Expand Up @@ -100,14 +101,15 @@ public void cancelled() {
}
};

private volatile boolean uninitialized = true;
private final HTTPTaskConfig config;

private volatile HTTPTaskConfig config;
private volatile boolean uninitialized = true;

private volatile CloseableHttpAsyncClient httpAsyncClient;

public void setConfig(HTTPTaskConfig config) {
this.config = config;
public HTTPTask() {
this.config = ConfiguratorFacade
.getConfig(HTTPTaskConfig.class);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
package xyz.mytang0.brook.task.http;

import lombok.Data;
import xyz.mytang0.brook.spi.config.ConfigProperties;

@ConfigProperties(prefix = "brook.task.http")
@Data
public class HTTPTaskConfig {

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package xyz.mytang0.brook.spi.config;

import xyz.mytang0.brook.common.extension.ExtensionDirector;

public class ConfiguratorFacade {

public static <T> T getConfig(Class<T> type) {
return ExtensionDirector
.getExtensionLoader(Configurator.class)
.getDefaultExtension()
.getConfig(type);
}

public static <T> T refreshConfig(Class<T> type) {
return ExtensionDirector
.getExtensionLoader(Configurator.class)
.getDefaultExtension()
.refreshConfig(type);
}
}

0 comments on commit 9389cf6

Please sign in to comment.