Wenjun Ruan
2 years ago
committed by
GitHub
21 changed files with 24 additions and 947 deletions
@ -1,43 +0,0 @@ |
|||||||
<?xml version="1.0" encoding="UTF-8"?> |
|
||||||
<!-- |
|
||||||
~ Licensed to the Apache Software Foundation (ASF) under one or more |
|
||||||
~ contributor license agreements. See the NOTICE file distributed with |
|
||||||
~ this work for additional information regarding copyright ownership. |
|
||||||
~ The ASF licenses this file to You under the Apache License, Version 2.0 |
|
||||||
~ (the "License"); you may not use this file except in compliance with |
|
||||||
~ the License. You may obtain a copy of the License at |
|
||||||
~ |
|
||||||
~ http://www.apache.org/licenses/LICENSE-2.0 |
|
||||||
~ |
|
||||||
~ Unless required by applicable law or agreed to in writing, software |
|
||||||
~ distributed under the License is distributed on an "AS IS" BASIS, |
|
||||||
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
||||||
~ See the License for the specific language governing permissions and |
|
||||||
~ limitations under the License. |
|
||||||
--> |
|
||||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
|
||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> |
|
||||||
<modelVersion>4.0.0</modelVersion> |
|
||||||
<parent> |
|
||||||
<groupId>org.apache.dolphinscheduler</groupId> |
|
||||||
<artifactId>dolphinscheduler-task-plugin</artifactId> |
|
||||||
<version>dev-SNAPSHOT</version> |
|
||||||
</parent> |
|
||||||
|
|
||||||
<artifactId>dolphinscheduler-task-blocking</artifactId> |
|
||||||
<packaging>jar</packaging> |
|
||||||
|
|
||||||
<dependencies> |
|
||||||
<dependency> |
|
||||||
<groupId>org.apache.dolphinscheduler</groupId> |
|
||||||
<artifactId>dolphinscheduler-spi</artifactId> |
|
||||||
<scope>provided</scope> |
|
||||||
</dependency> |
|
||||||
<dependency> |
|
||||||
<groupId>org.apache.dolphinscheduler</groupId> |
|
||||||
<artifactId>dolphinscheduler-task-api</artifactId> |
|
||||||
<version>${project.version}</version> |
|
||||||
</dependency> |
|
||||||
</dependencies> |
|
||||||
|
|
||||||
</project> |
|
@ -1,50 +0,0 @@ |
|||||||
/* |
|
||||||
* Licensed to the Apache Software Foundation (ASF) under one or more |
|
||||||
* contributor license agreements. See the NOTICE file distributed with |
|
||||||
* this work for additional information regarding copyright ownership. |
|
||||||
* The ASF licenses this file to You under the Apache License, Version 2.0 |
|
||||||
* (the "License"); you may not use this file except in compliance with |
|
||||||
* the License. You may obtain a copy of the License at |
|
||||||
* |
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
* |
|
||||||
* Unless required by applicable law or agreed to in writing, software |
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS, |
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
||||||
* See the License for the specific language governing permissions and |
|
||||||
* limitations under the License. |
|
||||||
*/ |
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.task.blocking; |
|
||||||
|
|
||||||
import org.apache.dolphinscheduler.common.utils.JSONUtils; |
|
||||||
import org.apache.dolphinscheduler.plugin.task.api.AbstractTask; |
|
||||||
import org.apache.dolphinscheduler.plugin.task.api.TaskChannel; |
|
||||||
import org.apache.dolphinscheduler.plugin.task.api.TaskExecutionContext; |
|
||||||
import org.apache.dolphinscheduler.plugin.task.api.parameters.AbstractParameters; |
|
||||||
import org.apache.dolphinscheduler.plugin.task.api.parameters.BlockingParameters; |
|
||||||
import org.apache.dolphinscheduler.plugin.task.api.parameters.ParametersNode; |
|
||||||
import org.apache.dolphinscheduler.plugin.task.api.parameters.resource.ResourceParametersHelper; |
|
||||||
|
|
||||||
public class BlockingTaskChannel implements TaskChannel { |
|
||||||
|
|
||||||
@Override |
|
||||||
public void cancelApplication(boolean status) { |
|
||||||
|
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public AbstractTask createTask(TaskExecutionContext taskRequest) { |
|
||||||
return null; |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public AbstractParameters parseParameters(ParametersNode parametersNode) { |
|
||||||
return JSONUtils.parseObject(parametersNode.getTaskParams(), BlockingParameters.class); |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public ResourceParametersHelper getResources(String parameters) { |
|
||||||
return null; |
|
||||||
} |
|
||||||
} |
|
@ -1,47 +0,0 @@ |
|||||||
/* |
|
||||||
* Licensed to the Apache Software Foundation (ASF) under one or more |
|
||||||
* contributor license agreements. See the NOTICE file distributed with |
|
||||||
* this work for additional information regarding copyright ownership. |
|
||||||
* The ASF licenses this file to You under the Apache License, Version 2.0 |
|
||||||
* (the "License"); you may not use this file except in compliance with |
|
||||||
* the License. You may obtain a copy of the License at |
|
||||||
* |
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
* |
|
||||||
* Unless required by applicable law or agreed to in writing, software |
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS, |
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
||||||
* See the License for the specific language governing permissions and |
|
||||||
* limitations under the License. |
|
||||||
*/ |
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.task.blocking; |
|
||||||
|
|
||||||
import static org.apache.dolphinscheduler.plugin.task.api.TaskConstants.TASK_TYPE_BLOCKING; |
|
||||||
|
|
||||||
import org.apache.dolphinscheduler.plugin.task.api.TaskChannel; |
|
||||||
import org.apache.dolphinscheduler.plugin.task.api.TaskChannelFactory; |
|
||||||
import org.apache.dolphinscheduler.spi.params.base.PluginParams; |
|
||||||
|
|
||||||
import java.util.List; |
|
||||||
|
|
||||||
import com.google.auto.service.AutoService; |
|
||||||
|
|
||||||
@AutoService(TaskChannelFactory.class) |
|
||||||
public class BlockingTaskChannelFactory implements TaskChannelFactory { |
|
||||||
|
|
||||||
@Override |
|
||||||
public TaskChannel create() { |
|
||||||
return new BlockingTaskChannel(); |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public String getName() { |
|
||||||
return TASK_TYPE_BLOCKING; |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public List<PluginParams> getParams() { |
|
||||||
return null; |
|
||||||
} |
|
||||||
} |
|
@ -1,43 +0,0 @@ |
|||||||
<?xml version="1.0" encoding="UTF-8"?> |
|
||||||
<!-- |
|
||||||
~ Licensed to the Apache Software Foundation (ASF) under one or more |
|
||||||
~ contributor license agreements. See the NOTICE file distributed with |
|
||||||
~ this work for additional information regarding copyright ownership. |
|
||||||
~ The ASF licenses this file to You under the Apache License, Version 2.0 |
|
||||||
~ (the "License"); you may not use this file except in compliance with |
|
||||||
~ the License. You may obtain a copy of the License at |
|
||||||
~ |
|
||||||
~ http://www.apache.org/licenses/LICENSE-2.0 |
|
||||||
~ |
|
||||||
~ Unless required by applicable law or agreed to in writing, software |
|
||||||
~ distributed under the License is distributed on an "AS IS" BASIS, |
|
||||||
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
||||||
~ See the License for the specific language governing permissions and |
|
||||||
~ limitations under the License. |
|
||||||
--> |
|
||||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
|
||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> |
|
||||||
<modelVersion>4.0.0</modelVersion> |
|
||||||
<parent> |
|
||||||
<groupId>org.apache.dolphinscheduler</groupId> |
|
||||||
<artifactId>dolphinscheduler-task-plugin</artifactId> |
|
||||||
<version>dev-SNAPSHOT</version> |
|
||||||
</parent> |
|
||||||
|
|
||||||
<artifactId>dolphinscheduler-task-conditions</artifactId> |
|
||||||
<packaging>jar</packaging> |
|
||||||
|
|
||||||
<dependencies> |
|
||||||
<dependency> |
|
||||||
<groupId>org.apache.dolphinscheduler</groupId> |
|
||||||
<artifactId>dolphinscheduler-spi</artifactId> |
|
||||||
<scope>provided</scope> |
|
||||||
</dependency> |
|
||||||
<dependency> |
|
||||||
<groupId>org.apache.dolphinscheduler</groupId> |
|
||||||
<artifactId>dolphinscheduler-task-api</artifactId> |
|
||||||
<version>${project.version}</version> |
|
||||||
</dependency> |
|
||||||
</dependencies> |
|
||||||
|
|
||||||
</project> |
|
@ -1,50 +0,0 @@ |
|||||||
/* |
|
||||||
* Licensed to the Apache Software Foundation (ASF) under one or more |
|
||||||
* contributor license agreements. See the NOTICE file distributed with |
|
||||||
* this work for additional information regarding copyright ownership. |
|
||||||
* The ASF licenses this file to You under the Apache License, Version 2.0 |
|
||||||
* (the "License"); you may not use this file except in compliance with |
|
||||||
* the License. You may obtain a copy of the License at |
|
||||||
* |
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
* |
|
||||||
* Unless required by applicable law or agreed to in writing, software |
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS, |
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
||||||
* See the License for the specific language governing permissions and |
|
||||||
* limitations under the License. |
|
||||||
*/ |
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.task.conditions; |
|
||||||
|
|
||||||
import org.apache.dolphinscheduler.common.utils.JSONUtils; |
|
||||||
import org.apache.dolphinscheduler.plugin.task.api.AbstractTask; |
|
||||||
import org.apache.dolphinscheduler.plugin.task.api.TaskChannel; |
|
||||||
import org.apache.dolphinscheduler.plugin.task.api.TaskExecutionContext; |
|
||||||
import org.apache.dolphinscheduler.plugin.task.api.parameters.AbstractParameters; |
|
||||||
import org.apache.dolphinscheduler.plugin.task.api.parameters.ConditionsParameters; |
|
||||||
import org.apache.dolphinscheduler.plugin.task.api.parameters.ParametersNode; |
|
||||||
import org.apache.dolphinscheduler.plugin.task.api.parameters.resource.ResourceParametersHelper; |
|
||||||
|
|
||||||
public class ConditionsTaskChannel implements TaskChannel { |
|
||||||
|
|
||||||
@Override |
|
||||||
public void cancelApplication(boolean status) { |
|
||||||
|
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public AbstractTask createTask(TaskExecutionContext taskRequest) { |
|
||||||
return null; |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public AbstractParameters parseParameters(ParametersNode parametersNode) { |
|
||||||
return JSONUtils.parseObject(parametersNode.getTaskParams(), ConditionsParameters.class); |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public ResourceParametersHelper getResources(String parameters) { |
|
||||||
return null; |
|
||||||
} |
|
||||||
} |
|
@ -1,67 +0,0 @@ |
|||||||
/* |
|
||||||
* Licensed to the Apache Software Foundation (ASF) under one or more |
|
||||||
* contributor license agreements. See the NOTICE file distributed with |
|
||||||
* this work for additional information regarding copyright ownership. |
|
||||||
* The ASF licenses this file to You under the Apache License, Version 2.0 |
|
||||||
* (the "License"); you may not use this file except in compliance with |
|
||||||
* the License. You may obtain a copy of the License at |
|
||||||
* |
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
* |
|
||||||
* Unless required by applicable law or agreed to in writing, software |
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS, |
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
||||||
* See the License for the specific language governing permissions and |
|
||||||
* limitations under the License. |
|
||||||
*/ |
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.task.conditions; |
|
||||||
|
|
||||||
import static org.apache.dolphinscheduler.plugin.task.api.TaskConstants.TASK_TYPE_CONDITIONS; |
|
||||||
|
|
||||||
import org.apache.dolphinscheduler.plugin.task.api.TaskChannel; |
|
||||||
import org.apache.dolphinscheduler.plugin.task.api.TaskChannelFactory; |
|
||||||
import org.apache.dolphinscheduler.spi.params.base.ParamsOptions; |
|
||||||
import org.apache.dolphinscheduler.spi.params.base.PluginParams; |
|
||||||
import org.apache.dolphinscheduler.spi.params.base.Validate; |
|
||||||
import org.apache.dolphinscheduler.spi.params.input.InputParam; |
|
||||||
import org.apache.dolphinscheduler.spi.params.radio.RadioParam; |
|
||||||
|
|
||||||
import java.util.ArrayList; |
|
||||||
import java.util.List; |
|
||||||
|
|
||||||
import com.google.auto.service.AutoService; |
|
||||||
|
|
||||||
@AutoService(TaskChannelFactory.class) |
|
||||||
public class ConditionsTaskChannelFactory implements TaskChannelFactory { |
|
||||||
|
|
||||||
@Override |
|
||||||
public TaskChannel create() { |
|
||||||
return new ConditionsTaskChannel(); |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public String getName() { |
|
||||||
return TASK_TYPE_CONDITIONS; |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public List<PluginParams> getParams() { |
|
||||||
List<PluginParams> paramsList = new ArrayList<>(); |
|
||||||
|
|
||||||
InputParam nodeName = InputParam.newBuilder("name", "$t('Node name')") |
|
||||||
.addValidate(Validate.newBuilder() |
|
||||||
.setRequired(true) |
|
||||||
.build()) |
|
||||||
.build(); |
|
||||||
|
|
||||||
RadioParam runFlag = RadioParam.newBuilder("runFlag", "RUN_FLAG") |
|
||||||
.addParamsOptions(new ParamsOptions("NORMAL", "NORMAL", false)) |
|
||||||
.addParamsOptions(new ParamsOptions("FORBIDDEN", "FORBIDDEN", false)) |
|
||||||
.build(); |
|
||||||
|
|
||||||
paramsList.add(nodeName); |
|
||||||
paramsList.add(runFlag); |
|
||||||
return paramsList; |
|
||||||
} |
|
||||||
} |
|
@ -1,43 +0,0 @@ |
|||||||
<?xml version="1.0" encoding="UTF-8"?> |
|
||||||
<!-- |
|
||||||
~ Licensed to the Apache Software Foundation (ASF) under one or more |
|
||||||
~ contributor license agreements. See the NOTICE file distributed with |
|
||||||
~ this work for additional information regarding copyright ownership. |
|
||||||
~ The ASF licenses this file to You under the Apache License, Version 2.0 |
|
||||||
~ (the "License"); you may not use this file except in compliance with |
|
||||||
~ the License. You may obtain a copy of the License at |
|
||||||
~ |
|
||||||
~ http://www.apache.org/licenses/LICENSE-2.0 |
|
||||||
~ |
|
||||||
~ Unless required by applicable law or agreed to in writing, software |
|
||||||
~ distributed under the License is distributed on an "AS IS" BASIS, |
|
||||||
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
||||||
~ See the License for the specific language governing permissions and |
|
||||||
~ limitations under the License. |
|
||||||
--> |
|
||||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
|
||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> |
|
||||||
<modelVersion>4.0.0</modelVersion> |
|
||||||
<parent> |
|
||||||
<groupId>org.apache.dolphinscheduler</groupId> |
|
||||||
<artifactId>dolphinscheduler-task-plugin</artifactId> |
|
||||||
<version>dev-SNAPSHOT</version> |
|
||||||
</parent> |
|
||||||
|
|
||||||
<artifactId>dolphinscheduler-task-dependent</artifactId> |
|
||||||
<packaging>jar</packaging> |
|
||||||
|
|
||||||
<dependencies> |
|
||||||
<dependency> |
|
||||||
<groupId>org.apache.dolphinscheduler</groupId> |
|
||||||
<artifactId>dolphinscheduler-spi</artifactId> |
|
||||||
<scope>provided</scope> |
|
||||||
</dependency> |
|
||||||
<dependency> |
|
||||||
<groupId>org.apache.dolphinscheduler</groupId> |
|
||||||
<artifactId>dolphinscheduler-task-api</artifactId> |
|
||||||
<version>${project.version}</version> |
|
||||||
</dependency> |
|
||||||
</dependencies> |
|
||||||
|
|
||||||
</project> |
|
@ -1,54 +0,0 @@ |
|||||||
/* |
|
||||||
* Licensed to the Apache Software Foundation (ASF) under one or more |
|
||||||
* contributor license agreements. See the NOTICE file distributed with |
|
||||||
* this work for additional information regarding copyright ownership. |
|
||||||
* The ASF licenses this file to You under the Apache License, Version 2.0 |
|
||||||
* (the "License"); you may not use this file except in compliance with |
|
||||||
* the License. You may obtain a copy of the License at |
|
||||||
* |
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
* |
|
||||||
* Unless required by applicable law or agreed to in writing, software |
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS, |
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
||||||
* See the License for the specific language governing permissions and |
|
||||||
* limitations under the License. |
|
||||||
*/ |
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.task.dependent; |
|
||||||
|
|
||||||
import org.apache.dolphinscheduler.common.utils.JSONUtils; |
|
||||||
import org.apache.dolphinscheduler.plugin.task.api.AbstractTask; |
|
||||||
import org.apache.dolphinscheduler.plugin.task.api.TaskChannel; |
|
||||||
import org.apache.dolphinscheduler.plugin.task.api.TaskExecutionContext; |
|
||||||
import org.apache.dolphinscheduler.plugin.task.api.parameters.AbstractParameters; |
|
||||||
import org.apache.dolphinscheduler.plugin.task.api.parameters.DependentParameters; |
|
||||||
import org.apache.dolphinscheduler.plugin.task.api.parameters.ParametersNode; |
|
||||||
import org.apache.dolphinscheduler.plugin.task.api.parameters.resource.ResourceParametersHelper; |
|
||||||
|
|
||||||
import org.apache.commons.lang3.StringUtils; |
|
||||||
|
|
||||||
public class DependentTaskChannel implements TaskChannel { |
|
||||||
|
|
||||||
@Override |
|
||||||
public void cancelApplication(boolean status) { |
|
||||||
|
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public AbstractTask createTask(TaskExecutionContext taskRequest) { |
|
||||||
return null; |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public AbstractParameters parseParameters(ParametersNode parametersNode) { |
|
||||||
return JSONUtils.parseObject(StringUtils.isEmpty(parametersNode.getDependence()) |
|
||||||
? parametersNode.getTaskParams() |
|
||||||
: parametersNode.getDependence(), DependentParameters.class); |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public ResourceParametersHelper getResources(String parameters) { |
|
||||||
return null; |
|
||||||
} |
|
||||||
} |
|
@ -1,47 +0,0 @@ |
|||||||
/* |
|
||||||
* Licensed to the Apache Software Foundation (ASF) under one or more |
|
||||||
* contributor license agreements. See the NOTICE file distributed with |
|
||||||
* this work for additional information regarding copyright ownership. |
|
||||||
* The ASF licenses this file to You under the Apache License, Version 2.0 |
|
||||||
* (the "License"); you may not use this file except in compliance with |
|
||||||
* the License. You may obtain a copy of the License at |
|
||||||
* |
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
* |
|
||||||
* Unless required by applicable law or agreed to in writing, software |
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS, |
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
||||||
* See the License for the specific language governing permissions and |
|
||||||
* limitations under the License. |
|
||||||
*/ |
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.task.dependent; |
|
||||||
|
|
||||||
import static org.apache.dolphinscheduler.plugin.task.api.TaskConstants.TASK_TYPE_DEPENDENT; |
|
||||||
|
|
||||||
import org.apache.dolphinscheduler.plugin.task.api.TaskChannel; |
|
||||||
import org.apache.dolphinscheduler.plugin.task.api.TaskChannelFactory; |
|
||||||
import org.apache.dolphinscheduler.spi.params.base.PluginParams; |
|
||||||
|
|
||||||
import java.util.List; |
|
||||||
|
|
||||||
import com.google.auto.service.AutoService; |
|
||||||
|
|
||||||
@AutoService(TaskChannelFactory.class) |
|
||||||
public class DependentTaskChannelFactory implements TaskChannelFactory { |
|
||||||
|
|
||||||
@Override |
|
||||||
public TaskChannel create() { |
|
||||||
return new DependentTaskChannel(); |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public String getName() { |
|
||||||
return TASK_TYPE_DEPENDENT; |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public List<PluginParams> getParams() { |
|
||||||
return null; |
|
||||||
} |
|
||||||
} |
|
@ -1,43 +0,0 @@ |
|||||||
<?xml version="1.0" encoding="UTF-8"?> |
|
||||||
<!-- |
|
||||||
~ Licensed to the Apache Software Foundation (ASF) under one or more |
|
||||||
~ contributor license agreements. See the NOTICE file distributed with |
|
||||||
~ this work for additional information regarding copyright ownership. |
|
||||||
~ The ASF licenses this file to You under the Apache License, Version 2.0 |
|
||||||
~ (the "License"); you may not use this file except in compliance with |
|
||||||
~ the License. You may obtain a copy of the License at |
|
||||||
~ |
|
||||||
~ http://www.apache.org/licenses/LICENSE-2.0 |
|
||||||
~ |
|
||||||
~ Unless required by applicable law or agreed to in writing, software |
|
||||||
~ distributed under the License is distributed on an "AS IS" BASIS, |
|
||||||
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
||||||
~ See the License for the specific language governing permissions and |
|
||||||
~ limitations under the License. |
|
||||||
--> |
|
||||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
|
||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> |
|
||||||
<modelVersion>4.0.0</modelVersion> |
|
||||||
<parent> |
|
||||||
<groupId>org.apache.dolphinscheduler</groupId> |
|
||||||
<artifactId>dolphinscheduler-task-plugin</artifactId> |
|
||||||
<version>dev-SNAPSHOT</version> |
|
||||||
</parent> |
|
||||||
|
|
||||||
<artifactId>dolphinscheduler-task-subprocess</artifactId> |
|
||||||
<packaging>jar</packaging> |
|
||||||
|
|
||||||
<dependencies> |
|
||||||
<dependency> |
|
||||||
<groupId>org.apache.dolphinscheduler</groupId> |
|
||||||
<artifactId>dolphinscheduler-spi</artifactId> |
|
||||||
<scope>provided</scope> |
|
||||||
</dependency> |
|
||||||
<dependency> |
|
||||||
<groupId>org.apache.dolphinscheduler</groupId> |
|
||||||
<artifactId>dolphinscheduler-task-api</artifactId> |
|
||||||
<version>${project.version}</version> |
|
||||||
</dependency> |
|
||||||
</dependencies> |
|
||||||
|
|
||||||
</project> |
|
@ -1,50 +0,0 @@ |
|||||||
/* |
|
||||||
* Licensed to the Apache Software Foundation (ASF) under one or more |
|
||||||
* contributor license agreements. See the NOTICE file distributed with |
|
||||||
* this work for additional information regarding copyright ownership. |
|
||||||
* The ASF licenses this file to You under the Apache License, Version 2.0 |
|
||||||
* (the "License"); you may not use this file except in compliance with |
|
||||||
* the License. You may obtain a copy of the License at |
|
||||||
* |
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
* |
|
||||||
* Unless required by applicable law or agreed to in writing, software |
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS, |
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
||||||
* See the License for the specific language governing permissions and |
|
||||||
* limitations under the License. |
|
||||||
*/ |
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.task.subprocess; |
|
||||||
|
|
||||||
import org.apache.dolphinscheduler.common.utils.JSONUtils; |
|
||||||
import org.apache.dolphinscheduler.plugin.task.api.AbstractTask; |
|
||||||
import org.apache.dolphinscheduler.plugin.task.api.TaskChannel; |
|
||||||
import org.apache.dolphinscheduler.plugin.task.api.TaskExecutionContext; |
|
||||||
import org.apache.dolphinscheduler.plugin.task.api.parameters.AbstractParameters; |
|
||||||
import org.apache.dolphinscheduler.plugin.task.api.parameters.ParametersNode; |
|
||||||
import org.apache.dolphinscheduler.plugin.task.api.parameters.SubProcessParameters; |
|
||||||
import org.apache.dolphinscheduler.plugin.task.api.parameters.resource.ResourceParametersHelper; |
|
||||||
|
|
||||||
public class SubProcessTaskChannel implements TaskChannel { |
|
||||||
|
|
||||||
@Override |
|
||||||
public void cancelApplication(boolean status) { |
|
||||||
|
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public AbstractTask createTask(TaskExecutionContext taskRequest) { |
|
||||||
return null; |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public AbstractParameters parseParameters(ParametersNode parametersNode) { |
|
||||||
return JSONUtils.parseObject(parametersNode.getTaskParams(), SubProcessParameters.class); |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public ResourceParametersHelper getResources(String parameters) { |
|
||||||
return null; |
|
||||||
} |
|
||||||
} |
|
@ -1,47 +0,0 @@ |
|||||||
/* |
|
||||||
* Licensed to the Apache Software Foundation (ASF) under one or more |
|
||||||
* contributor license agreements. See the NOTICE file distributed with |
|
||||||
* this work for additional information regarding copyright ownership. |
|
||||||
* The ASF licenses this file to You under the Apache License, Version 2.0 |
|
||||||
* (the "License"); you may not use this file except in compliance with |
|
||||||
* the License. You may obtain a copy of the License at |
|
||||||
* |
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
* |
|
||||||
* Unless required by applicable law or agreed to in writing, software |
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS, |
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
||||||
* See the License for the specific language governing permissions and |
|
||||||
* limitations under the License. |
|
||||||
*/ |
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.task.subprocess; |
|
||||||
|
|
||||||
import static org.apache.dolphinscheduler.plugin.task.api.TaskConstants.TASK_TYPE_SUB_PROCESS; |
|
||||||
|
|
||||||
import org.apache.dolphinscheduler.plugin.task.api.TaskChannel; |
|
||||||
import org.apache.dolphinscheduler.plugin.task.api.TaskChannelFactory; |
|
||||||
import org.apache.dolphinscheduler.spi.params.base.PluginParams; |
|
||||||
|
|
||||||
import java.util.List; |
|
||||||
|
|
||||||
import com.google.auto.service.AutoService; |
|
||||||
|
|
||||||
@AutoService(TaskChannelFactory.class) |
|
||||||
public class SubProcessTaskChannelFactory implements TaskChannelFactory { |
|
||||||
|
|
||||||
@Override |
|
||||||
public TaskChannel create() { |
|
||||||
return new SubProcessTaskChannel(); |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public String getName() { |
|
||||||
return TASK_TYPE_SUB_PROCESS; |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public List<PluginParams> getParams() { |
|
||||||
return null; |
|
||||||
} |
|
||||||
} |
|
@ -1,43 +0,0 @@ |
|||||||
<?xml version="1.0" encoding="UTF-8"?> |
|
||||||
<!-- |
|
||||||
~ Licensed to the Apache Software Foundation (ASF) under one or more |
|
||||||
~ contributor license agreements. See the NOTICE file distributed with |
|
||||||
~ this work for additional information regarding copyright ownership. |
|
||||||
~ The ASF licenses this file to You under the Apache License, Version 2.0 |
|
||||||
~ (the "License"); you may not use this file except in compliance with |
|
||||||
~ the License. You may obtain a copy of the License at |
|
||||||
~ |
|
||||||
~ http://www.apache.org/licenses/LICENSE-2.0 |
|
||||||
~ |
|
||||||
~ Unless required by applicable law or agreed to in writing, software |
|
||||||
~ distributed under the License is distributed on an "AS IS" BASIS, |
|
||||||
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
||||||
~ See the License for the specific language governing permissions and |
|
||||||
~ limitations under the License. |
|
||||||
--> |
|
||||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
|
||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> |
|
||||||
<modelVersion>4.0.0</modelVersion> |
|
||||||
<parent> |
|
||||||
<groupId>org.apache.dolphinscheduler</groupId> |
|
||||||
<artifactId>dolphinscheduler-task-plugin</artifactId> |
|
||||||
<version>dev-SNAPSHOT</version> |
|
||||||
</parent> |
|
||||||
|
|
||||||
<artifactId>dolphinscheduler-task-switch</artifactId> |
|
||||||
<packaging>jar</packaging> |
|
||||||
|
|
||||||
<dependencies> |
|
||||||
<dependency> |
|
||||||
<groupId>org.apache.dolphinscheduler</groupId> |
|
||||||
<artifactId>dolphinscheduler-spi</artifactId> |
|
||||||
<scope>provided</scope> |
|
||||||
</dependency> |
|
||||||
<dependency> |
|
||||||
<groupId>org.apache.dolphinscheduler</groupId> |
|
||||||
<artifactId>dolphinscheduler-task-api</artifactId> |
|
||||||
<version>${project.version}</version> |
|
||||||
</dependency> |
|
||||||
</dependencies> |
|
||||||
|
|
||||||
</project> |
|
@ -1,40 +0,0 @@ |
|||||||
/* |
|
||||||
* Licensed to the Apache Software Foundation (ASF) under one or more |
|
||||||
* contributor license agreements. See the NOTICE file distributed with |
|
||||||
* this work for additional information regarding copyright ownership. |
|
||||||
* The ASF licenses this file to You under the Apache License, Version 2.0 |
|
||||||
* (the "License"); you may not use this file except in compliance with |
|
||||||
* the License. You may obtain a copy of the License at |
|
||||||
* |
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
* |
|
||||||
* Unless required by applicable law or agreed to in writing, software |
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS, |
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
||||||
* See the License for the specific language governing permissions and |
|
||||||
* limitations under the License. |
|
||||||
*/ |
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.task.switchtask; |
|
||||||
|
|
||||||
public class SwitchCondition { |
|
||||||
|
|
||||||
private String condition; |
|
||||||
private Long nextNode; |
|
||||||
|
|
||||||
public String getCondition() { |
|
||||||
return condition; |
|
||||||
} |
|
||||||
|
|
||||||
public void setCondition(String condition) { |
|
||||||
this.condition = condition; |
|
||||||
} |
|
||||||
|
|
||||||
public Long getNextNode() { |
|
||||||
return nextNode; |
|
||||||
} |
|
||||||
|
|
||||||
public void setNextNode(Long nextNode) { |
|
||||||
this.nextNode = nextNode; |
|
||||||
} |
|
||||||
} |
|
@ -1,104 +0,0 @@ |
|||||||
/* |
|
||||||
* Licensed to the Apache Software Foundation (ASF) under one or more |
|
||||||
* contributor license agreements. See the NOTICE file distributed with |
|
||||||
* this work for additional information regarding copyright ownership. |
|
||||||
* The ASF licenses this file to You under the Apache License, Version 2.0 |
|
||||||
* (the "License"); you may not use this file except in compliance with |
|
||||||
* the License. You may obtain a copy of the License at |
|
||||||
* |
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
* |
|
||||||
* Unless required by applicable law or agreed to in writing, software |
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS, |
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
||||||
* See the License for the specific language governing permissions and |
|
||||||
* limitations under the License. |
|
||||||
*/ |
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.task.switchtask; |
|
||||||
|
|
||||||
import org.apache.dolphinscheduler.plugin.task.api.model.Property; |
|
||||||
import org.apache.dolphinscheduler.plugin.task.api.model.ResourceInfo; |
|
||||||
import org.apache.dolphinscheduler.plugin.task.api.parameters.AbstractParameters; |
|
||||||
|
|
||||||
import org.apache.commons.collections4.CollectionUtils; |
|
||||||
import org.apache.commons.lang3.StringUtils; |
|
||||||
|
|
||||||
import java.util.List; |
|
||||||
|
|
||||||
public class SwitchParameters extends AbstractParameters { |
|
||||||
|
|
||||||
/** |
|
||||||
* shell script |
|
||||||
*/ |
|
||||||
private String rawScript; |
|
||||||
|
|
||||||
/** |
|
||||||
* local parameters |
|
||||||
*/ |
|
||||||
public List<Property> localParams; |
|
||||||
|
|
||||||
private SwitchResult switchResult; |
|
||||||
|
|
||||||
/** |
|
||||||
* resource list |
|
||||||
*/ |
|
||||||
private List<ResourceInfo> resourceList; |
|
||||||
|
|
||||||
public String getRawScript() { |
|
||||||
return rawScript; |
|
||||||
} |
|
||||||
|
|
||||||
public void setRawScript(String rawScript) { |
|
||||||
this.rawScript = rawScript; |
|
||||||
} |
|
||||||
|
|
||||||
public List<ResourceInfo> getResourceList() { |
|
||||||
return resourceList; |
|
||||||
} |
|
||||||
|
|
||||||
public void setResourceList(List<ResourceInfo> resourceList) { |
|
||||||
this.resourceList = resourceList; |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public List<Property> getLocalParams() { |
|
||||||
return localParams; |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public void setLocalParams(List<Property> localParams) { |
|
||||||
this.localParams = localParams; |
|
||||||
} |
|
||||||
|
|
||||||
public SwitchResult getSwitchResult() { |
|
||||||
return switchResult; |
|
||||||
} |
|
||||||
|
|
||||||
public void setSwitchResult(SwitchResult switchResult) { |
|
||||||
this.switchResult = switchResult; |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public boolean checkParameters() { |
|
||||||
// default next node should not be null
|
|
||||||
boolean defaultNode = switchResult != null && switchResult.getNextNode() != null; |
|
||||||
if (!defaultNode) { |
|
||||||
return false; |
|
||||||
} |
|
||||||
// validate conditions must have next node
|
|
||||||
List<SwitchCondition> conditions = this.switchResult.getDependTaskList(); |
|
||||||
if (CollectionUtils.isNotEmpty(conditions)) { |
|
||||||
if (conditions.stream() |
|
||||||
.anyMatch(e -> (StringUtils.isNotEmpty(e.getCondition()) && e.getNextNode() == null))) { |
|
||||||
return false; |
|
||||||
} |
|
||||||
} |
|
||||||
return true; |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public List<ResourceInfo> getResourceFilesList() { |
|
||||||
return resourceList; |
|
||||||
} |
|
||||||
} |
|
@ -1,43 +0,0 @@ |
|||||||
/* |
|
||||||
* Licensed to the Apache Software Foundation (ASF) under one or more |
|
||||||
* contributor license agreements. See the NOTICE file distributed with |
|
||||||
* this work for additional information regarding copyright ownership. |
|
||||||
* The ASF licenses this file to You under the Apache License, Version 2.0 |
|
||||||
* (the "License"); you may not use this file except in compliance with |
|
||||||
* the License. You may obtain a copy of the License at |
|
||||||
* |
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
* |
|
||||||
* Unless required by applicable law or agreed to in writing, software |
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS, |
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
||||||
* See the License for the specific language governing permissions and |
|
||||||
* limitations under the License. |
|
||||||
*/ |
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.task.switchtask; |
|
||||||
|
|
||||||
import java.util.List; |
|
||||||
|
|
||||||
public class SwitchResult { |
|
||||||
|
|
||||||
private List<SwitchCondition> dependTaskList; |
|
||||||
|
|
||||||
private Long nextNode; |
|
||||||
|
|
||||||
public List<SwitchCondition> getDependTaskList() { |
|
||||||
return dependTaskList; |
|
||||||
} |
|
||||||
|
|
||||||
public void setDependTaskList(List<SwitchCondition> dependTaskList) { |
|
||||||
this.dependTaskList = dependTaskList; |
|
||||||
} |
|
||||||
|
|
||||||
public Long getNextNode() { |
|
||||||
return nextNode; |
|
||||||
} |
|
||||||
|
|
||||||
public void setNextNode(Long nextNode) { |
|
||||||
this.nextNode = nextNode; |
|
||||||
} |
|
||||||
} |
|
@ -1,49 +0,0 @@ |
|||||||
/* |
|
||||||
* Licensed to the Apache Software Foundation (ASF) under one or more |
|
||||||
* contributor license agreements. See the NOTICE file distributed with |
|
||||||
* this work for additional information regarding copyright ownership. |
|
||||||
* The ASF licenses this file to You under the Apache License, Version 2.0 |
|
||||||
* (the "License"); you may not use this file except in compliance with |
|
||||||
* the License. You may obtain a copy of the License at |
|
||||||
* |
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
* |
|
||||||
* Unless required by applicable law or agreed to in writing, software |
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS, |
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
||||||
* See the License for the specific language governing permissions and |
|
||||||
* limitations under the License. |
|
||||||
*/ |
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.task.switchtask; |
|
||||||
|
|
||||||
import org.apache.dolphinscheduler.common.utils.JSONUtils; |
|
||||||
import org.apache.dolphinscheduler.plugin.task.api.AbstractTask; |
|
||||||
import org.apache.dolphinscheduler.plugin.task.api.TaskChannel; |
|
||||||
import org.apache.dolphinscheduler.plugin.task.api.TaskExecutionContext; |
|
||||||
import org.apache.dolphinscheduler.plugin.task.api.parameters.AbstractParameters; |
|
||||||
import org.apache.dolphinscheduler.plugin.task.api.parameters.ParametersNode; |
|
||||||
import org.apache.dolphinscheduler.plugin.task.api.parameters.resource.ResourceParametersHelper; |
|
||||||
|
|
||||||
public class SwitchTaskChannel implements TaskChannel { |
|
||||||
|
|
||||||
@Override |
|
||||||
public void cancelApplication(boolean status) { |
|
||||||
|
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public AbstractTask createTask(TaskExecutionContext taskRequest) { |
|
||||||
return null; |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public AbstractParameters parseParameters(ParametersNode parametersNode) { |
|
||||||
return JSONUtils.parseObject(parametersNode.getTaskParams(), SwitchParameters.class); |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public ResourceParametersHelper getResources(String parameters) { |
|
||||||
return null; |
|
||||||
} |
|
||||||
} |
|
@ -1,46 +0,0 @@ |
|||||||
/* |
|
||||||
* Licensed to the Apache Software Foundation (ASF) under one or more |
|
||||||
* contributor license agreements. See the NOTICE file distributed with |
|
||||||
* this work for additional information regarding copyright ownership. |
|
||||||
* The ASF licenses this file to You under the Apache License, Version 2.0 |
|
||||||
* (the "License"); you may not use this file except in compliance with |
|
||||||
* the License. You may obtain a copy of the License at |
|
||||||
* |
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
* |
|
||||||
* Unless required by applicable law or agreed to in writing, software |
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS, |
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
||||||
* See the License for the specific language governing permissions and |
|
||||||
* limitations under the License. |
|
||||||
*/ |
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.task.switchtask; |
|
||||||
|
|
||||||
import org.apache.dolphinscheduler.plugin.task.api.TaskChannel; |
|
||||||
import org.apache.dolphinscheduler.plugin.task.api.TaskChannelFactory; |
|
||||||
import org.apache.dolphinscheduler.plugin.task.api.TaskConstants; |
|
||||||
import org.apache.dolphinscheduler.spi.params.base.PluginParams; |
|
||||||
|
|
||||||
import java.util.List; |
|
||||||
|
|
||||||
import com.google.auto.service.AutoService; |
|
||||||
|
|
||||||
@AutoService(TaskChannelFactory.class) |
|
||||||
public class SwitchTaskChannelFactory implements TaskChannelFactory { |
|
||||||
|
|
||||||
@Override |
|
||||||
public TaskChannel create() { |
|
||||||
return new SwitchTaskChannel(); |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public String getName() { |
|
||||||
return TaskConstants.TASK_TYPE_SWITCH; |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public List<PluginParams> getParams() { |
|
||||||
return null; |
|
||||||
} |
|
||||||
} |
|
Loading…
Reference in new issue