Skip to content

Commit 285c5a8

Browse files
authored
[DSIP-28] Donnot scan whole bean under classpath (apache#15874)
1 parent a9decc9 commit 285c5a8

File tree

61 files changed

+911
-871
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

61 files changed

+911
-871
lines changed

dolphinscheduler-alert/dolphinscheduler-alert-server/src/main/java/org/apache/dolphinscheduler/alert/AlertServer.java

+7-6
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,13 @@
2323
import org.apache.dolphinscheduler.alert.rpc.AlertRpcServer;
2424
import org.apache.dolphinscheduler.alert.service.AlertBootstrapService;
2525
import org.apache.dolphinscheduler.alert.service.ListenerEventPostService;
26+
import org.apache.dolphinscheduler.common.CommonConfiguration;
2627
import org.apache.dolphinscheduler.common.constants.Constants;
2728
import org.apache.dolphinscheduler.common.lifecycle.ServerLifeCycleManager;
2829
import org.apache.dolphinscheduler.common.thread.DefaultUncaughtExceptionHandler;
2930
import org.apache.dolphinscheduler.common.thread.ThreadUtils;
30-
import org.apache.dolphinscheduler.plugin.registry.jdbc.JdbcRegistryAutoConfiguration;
31+
import org.apache.dolphinscheduler.dao.DaoConfiguration;
32+
import org.apache.dolphinscheduler.registry.api.RegistryConfiguration;
3133

3234
import javax.annotation.PostConstruct;
3335
import javax.annotation.PreDestroy;
@@ -37,14 +39,13 @@
3739
import org.springframework.beans.factory.annotation.Autowired;
3840
import org.springframework.boot.SpringApplication;
3941
import org.springframework.boot.autoconfigure.SpringBootApplication;
40-
import org.springframework.context.annotation.ComponentScan;
41-
import org.springframework.context.annotation.FilterType;
42+
import org.springframework.context.annotation.Import;
4243

4344
@Slf4j
45+
@Import({CommonConfiguration.class,
46+
DaoConfiguration.class,
47+
RegistryConfiguration.class})
4448
@SpringBootApplication
45-
@ComponentScan(value = "org.apache.dolphinscheduler", excludeFilters = {
46-
@ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, value = JdbcRegistryAutoConfiguration.class)
47-
})
4849
public class AlertServer {
4950

5051
@Autowired

dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/ApiApplicationServer.java

+14-12
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,17 @@
1818
package org.apache.dolphinscheduler.api;
1919

2020
import org.apache.dolphinscheduler.api.metrics.ApiServerMetrics;
21+
import org.apache.dolphinscheduler.common.CommonConfiguration;
2122
import org.apache.dolphinscheduler.common.enums.PluginType;
2223
import org.apache.dolphinscheduler.common.thread.DefaultUncaughtExceptionHandler;
24+
import org.apache.dolphinscheduler.dao.DaoConfiguration;
2325
import org.apache.dolphinscheduler.dao.PluginDao;
2426
import org.apache.dolphinscheduler.dao.entity.PluginDefine;
25-
import org.apache.dolphinscheduler.plugin.registry.jdbc.JdbcRegistryAutoConfiguration;
27+
import org.apache.dolphinscheduler.plugin.storage.api.StorageConfiguration;
2628
import org.apache.dolphinscheduler.plugin.task.api.TaskChannelFactory;
2729
import org.apache.dolphinscheduler.plugin.task.api.TaskPluginManager;
30+
import org.apache.dolphinscheduler.registry.api.RegistryConfiguration;
31+
import org.apache.dolphinscheduler.service.ServiceConfiguration;
2832
import org.apache.dolphinscheduler.spi.params.PluginParamsTransfer;
2933
import org.apache.dolphinscheduler.spi.params.base.PluginParams;
3034

@@ -38,21 +42,19 @@
3842
import org.springframework.boot.autoconfigure.SpringBootApplication;
3943
import org.springframework.boot.context.event.ApplicationReadyEvent;
4044
import org.springframework.boot.web.servlet.ServletComponentScan;
41-
import org.springframework.context.annotation.ComponentScan;
42-
import org.springframework.context.annotation.FilterType;
45+
import org.springframework.context.annotation.Import;
4346
import org.springframework.context.event.EventListener;
4447

48+
@Slf4j
49+
@Import({DaoConfiguration.class,
50+
CommonConfiguration.class,
51+
ServiceConfiguration.class,
52+
StorageConfiguration.class,
53+
RegistryConfiguration.class})
4554
@ServletComponentScan
4655
@SpringBootApplication
47-
@ComponentScan(value = "org.apache.dolphinscheduler", excludeFilters = {
48-
@ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, value = JdbcRegistryAutoConfiguration.class)
49-
})
50-
@Slf4j
5156
public class ApiApplicationServer {
5257

53-
@Autowired
54-
private TaskPluginManager taskPluginManager;
55-
5658
@Autowired
5759
private PluginDao pluginDao;
5860

@@ -66,8 +68,8 @@ public static void main(String[] args) {
6668
public void run(ApplicationReadyEvent readyEvent) {
6769
log.info("Received spring application context ready event will load taskPlugin and write to DB");
6870
// install task plugin
69-
taskPluginManager.loadPlugin();
70-
for (Map.Entry<String, TaskChannelFactory> entry : taskPluginManager.getTaskChannelFactoryMap().entrySet()) {
71+
TaskPluginManager.loadPlugin();
72+
for (Map.Entry<String, TaskChannelFactory> entry : TaskPluginManager.getTaskChannelFactoryMap().entrySet()) {
7173
String taskPluginName = entry.getKey();
7274
TaskChannelFactory taskChannelFactory = entry.getValue();
7375
List<PluginParams> params = taskChannelFactory.getParams();

dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/dto/task/TaskUpdateRequest.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,10 @@
2525

2626
import org.apache.commons.beanutils.BeanUtils;
2727

28-
import java.lang.reflect.InvocationTargetException;
2928
import java.util.Date;
3029

3130
import lombok.Data;
31+
import lombok.SneakyThrows;
3232

3333
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
3434
import com.fasterxml.jackson.annotation.JsonInclude;
@@ -107,7 +107,8 @@ public class TaskUpdateRequest {
107107
* @param taskDefinition exists task definition object
108108
* @return task definition
109109
*/
110-
public TaskDefinition mergeIntoTaskDefinition(TaskDefinition taskDefinition) throws InvocationTargetException, IllegalAccessException, InstantiationException, NoSuchMethodException {
110+
@SneakyThrows
111+
public TaskDefinition mergeIntoTaskDefinition(TaskDefinition taskDefinition) {
111112
TaskDefinition taskDefinitionDeepCopy = (TaskDefinition) BeanUtils.cloneBean(taskDefinition);
112113
assert taskDefinitionDeepCopy != null;
113114
if (this.name != null) {

dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessDefinitionServiceImpl.java

+2-5
Original file line numberDiff line numberDiff line change
@@ -238,9 +238,6 @@ public class ProcessDefinitionServiceImpl extends BaseServiceImpl implements Pro
238238
@Autowired
239239
private DataSourceMapper dataSourceMapper;
240240

241-
@Autowired
242-
private TaskPluginManager taskPluginManager;
243-
244241
@Autowired
245242
private WorkFlowLineageService workFlowLineageService;
246243

@@ -424,7 +421,7 @@ private List<TaskDefinitionLog> generateTaskDefinitionList(String taskDefinition
424421
throw new ServiceException(Status.DATA_IS_NOT_VALID, taskDefinitionJson);
425422
}
426423
for (TaskDefinitionLog taskDefinitionLog : taskDefinitionLogs) {
427-
if (!taskPluginManager.checkTaskParameters(ParametersNode.builder()
424+
if (!TaskPluginManager.checkTaskParameters(ParametersNode.builder()
428425
.taskType(taskDefinitionLog.getTaskType())
429426
.taskParams(taskDefinitionLog.getTaskParams())
430427
.dependence(taskDefinitionLog.getDependence())
@@ -1618,7 +1615,7 @@ public Map<String, Object> checkProcessNodeList(String processTaskRelationJson,
16181615

16191616
// check whether the process definition json is normal
16201617
for (TaskNode taskNode : taskNodes) {
1621-
if (!taskPluginManager.checkTaskParameters(ParametersNode.builder()
1618+
if (!TaskPluginManager.checkTaskParameters(ParametersNode.builder()
16221619
.taskType(taskNode.getType())
16231620
.taskParams(taskNode.getTaskParams())
16241621
.dependence(taskNode.getDependence())

dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessInstanceServiceImpl.java

+1-12
Original file line numberDiff line numberDiff line change
@@ -70,11 +70,9 @@
7070
import org.apache.dolphinscheduler.dao.mapper.ProcessInstanceMapper;
7171
import org.apache.dolphinscheduler.dao.mapper.ProjectMapper;
7272
import org.apache.dolphinscheduler.dao.mapper.RelationSubWorkflowMapper;
73-
import org.apache.dolphinscheduler.dao.mapper.ScheduleMapper;
7473
import org.apache.dolphinscheduler.dao.mapper.TaskDefinitionLogMapper;
7574
import org.apache.dolphinscheduler.dao.mapper.TaskDefinitionMapper;
7675
import org.apache.dolphinscheduler.dao.mapper.TaskInstanceMapper;
77-
import org.apache.dolphinscheduler.dao.mapper.TenantMapper;
7876
import org.apache.dolphinscheduler.dao.repository.ProcessInstanceDao;
7977
import org.apache.dolphinscheduler.dao.repository.ProcessInstanceMapDao;
8078
import org.apache.dolphinscheduler.dao.repository.TaskInstanceDao;
@@ -177,18 +175,9 @@ public class ProcessInstanceServiceImpl extends BaseServiceImpl implements Proce
177175
@Autowired
178176
UsersService usersService;
179177

180-
@Autowired
181-
private TenantMapper tenantMapper;
182-
183178
@Autowired
184179
TaskDefinitionMapper taskDefinitionMapper;
185180

186-
@Autowired
187-
private TaskPluginManager taskPluginManager;
188-
189-
@Autowired
190-
private ScheduleMapper scheduleMapper;
191-
192181
@Autowired
193182
private RelationSubWorkflowMapper relationSubWorkflowMapper;
194183

@@ -725,7 +714,7 @@ public Map<String, Object> updateProcessInstance(User loginUser, long projectCod
725714
return result;
726715
}
727716
for (TaskDefinitionLog taskDefinitionLog : taskDefinitionLogs) {
728-
if (!taskPluginManager.checkTaskParameters(ParametersNode.builder()
717+
if (!TaskPluginManager.checkTaskParameters(ParametersNode.builder()
729718
.taskType(taskDefinitionLog.getTaskType())
730719
.taskParams(taskDefinitionLog.getTaskParams())
731720
.dependence(taskDefinitionLog.getDependence())

0 commit comments

Comments
 (0)