Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
import org.apache.streampark.shaded.org.slf4j.spi.LoggerFactoryBinder;

import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.InputStream;
import java.net.URL;
import java.nio.charset.StandardCharsets;

Expand Down Expand Up @@ -97,27 +97,26 @@ private ShadedContextInitializer(LoggerContext loggerContext) {
public void configureByResource(URL url) {
AssertUtils.notNull(url, "URL argument cannot be null");
String path = url.getPath();
if (path.endsWith("xml")) {
JoranConfigurator configurator = new JoranConfigurator();
configurator.setContext(loggerContext);
try {
String text =
FileUtils.readFile(new File(path))
.replaceAll("org.slf4j", SHADED_PACKAGE + ".org.slf4j")
.replaceAll("ch.qos.logback", SHADED_PACKAGE + ".ch.qos.logback")
.replaceAll("org.apache.log4j", SHADED_PACKAGE + ".org.apache.log4j");
ByteArrayInputStream input =
new ByteArrayInputStream(text.getBytes(StandardCharsets.UTF_8));
configurator.doConfigure(input);
} catch (Exception e) {
throw new LogbackException("Failed to configure logger context from " + url, e);
}
} else {
if (path == null || !path.endsWith("xml")) {
throw new LogbackException(
"Unexpected filename extension of file ["
+ url
+ "]. Should be .xml");
}
JoranConfigurator configurator = new JoranConfigurator();
configurator.setContext(loggerContext);
try (InputStream inputStream = url.openStream()) {
String text =
new String(inputStream.readAllBytes(), StandardCharsets.UTF_8)
.replaceAll("org.slf4j", SHADED_PACKAGE + ".org.slf4j")
.replaceAll("ch.qos.logback", SHADED_PACKAGE + ".ch.qos.logback")
.replaceAll("org.apache.log4j", SHADED_PACKAGE + ".org.apache.log4j");
ByteArrayInputStream input =
new ByteArrayInputStream(text.getBytes(StandardCharsets.UTF_8));
configurator.doConfigure(input);
} catch (Exception e) {
throw new LogbackException("Failed to configure logger context from " + url, e);
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -137,55 +137,55 @@
FlinkApplicationActionService {

@Qualifier("streamparkDeployExecutor")
@Autowired

Check warning on line 140 in streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/application/impl/FlinkApplicationActionServiceImpl.java

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Remove this field injection and use constructor injection instead.

See more on https://sonarcloud.io/project/issues?id=apache_incubator-streampark&issues=AaBg4aT97dgh_6Sy_vJM&open=AaBg4aT97dgh_6Sy_vJM&pullRequest=4509
private Executor executorService;

@Autowired

Check warning on line 143 in streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/application/impl/FlinkApplicationActionServiceImpl.java

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Remove this field injection and use constructor injection instead.

See more on https://sonarcloud.io/project/issues?id=apache_incubator-streampark&issues=AaBg4aT97dgh_6Sy_vJN&open=AaBg4aT97dgh_6Sy_vJN&pullRequest=4509
private FlinkApplicationBackupService backUpService;

@Autowired

Check warning on line 146 in streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/application/impl/FlinkApplicationActionServiceImpl.java

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Remove this field injection and use constructor injection instead.

See more on https://sonarcloud.io/project/issues?id=apache_incubator-streampark&issues=AaBg4aT97dgh_6Sy_vJO&open=AaBg4aT97dgh_6Sy_vJO&pullRequest=4509
private FlinkApplicationManageService applicationManageService;

@Autowired

Check warning on line 149 in streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/application/impl/FlinkApplicationActionServiceImpl.java

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Remove this field injection and use constructor injection instead.

See more on https://sonarcloud.io/project/issues?id=apache_incubator-streampark&issues=AaBg4aT97dgh_6Sy_vJP&open=AaBg4aT97dgh_6Sy_vJP&pullRequest=4509
private FlinkApplicationInfoService applicationInfoService;

@Autowired

Check warning on line 152 in streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/application/impl/FlinkApplicationActionServiceImpl.java

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Remove this field injection and use constructor injection instead.

See more on https://sonarcloud.io/project/issues?id=apache_incubator-streampark&issues=AaBg4aT97dgh_6Sy_vJQ&open=AaBg4aT97dgh_6Sy_vJQ&pullRequest=4509
private FlinkApplicationConfigService configService;

@Autowired

Check warning on line 155 in streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/application/impl/FlinkApplicationActionServiceImpl.java

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Remove this field injection and use constructor injection instead.

See more on https://sonarcloud.io/project/issues?id=apache_incubator-streampark&issues=AaBg4aT97dgh_6Sy_vJR&open=AaBg4aT97dgh_6Sy_vJR&pullRequest=4509
private ApplicationLogService applicationLogService;

@Autowired

Check warning on line 158 in streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/application/impl/FlinkApplicationActionServiceImpl.java

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Remove this field injection and use constructor injection instead.

See more on https://sonarcloud.io/project/issues?id=apache_incubator-streampark&issues=AaBg4aT97dgh_6Sy_vJS&open=AaBg4aT97dgh_6Sy_vJS&pullRequest=4509
private FlinkEnvService flinkEnvService;

@Autowired

Check warning on line 161 in streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/application/impl/FlinkApplicationActionServiceImpl.java

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Remove this field injection and use constructor injection instead.

See more on https://sonarcloud.io/project/issues?id=apache_incubator-streampark&issues=AaBg4aT97dgh_6Sy_vJT&open=AaBg4aT97dgh_6Sy_vJT&pullRequest=4509
private FlinkSqlService flinkSqlService;

@Autowired

Check warning on line 164 in streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/application/impl/FlinkApplicationActionServiceImpl.java

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Remove this field injection and use constructor injection instead.

See more on https://sonarcloud.io/project/issues?id=apache_incubator-streampark&issues=AaBg4aT97dgh_6Sy_vJU&open=AaBg4aT97dgh_6Sy_vJU&pullRequest=4509
private SavepointService savepointService;

@Autowired

Check warning on line 167 in streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/application/impl/FlinkApplicationActionServiceImpl.java

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Remove this field injection and use constructor injection instead.

See more on https://sonarcloud.io/project/issues?id=apache_incubator-streampark&issues=AaBg4aT97dgh_6Sy_vJV&open=AaBg4aT97dgh_6Sy_vJV&pullRequest=4509
private SettingService settingService;

@Autowired

Check warning on line 170 in streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/application/impl/FlinkApplicationActionServiceImpl.java

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Remove this field injection and use constructor injection instead.

See more on https://sonarcloud.io/project/issues?id=apache_incubator-streampark&issues=AaBg4aT97dgh_6Sy_vJW&open=AaBg4aT97dgh_6Sy_vJW&pullRequest=4509
private FlinkK8sWatcher k8SFlinkTrackMonitor;

@Autowired

Check warning on line 173 in streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/application/impl/FlinkApplicationActionServiceImpl.java

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Remove this field injection and use constructor injection instead.

See more on https://sonarcloud.io/project/issues?id=apache_incubator-streampark&issues=AaBg4aT97dgh_6Sy_vJX&open=AaBg4aT97dgh_6Sy_vJX&pullRequest=4509
private FlinkApplicationBuildPipelineService appBuildPipeService;

@Autowired

Check warning on line 176 in streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/application/impl/FlinkApplicationActionServiceImpl.java

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Remove this field injection and use constructor injection instead.

See more on https://sonarcloud.io/project/issues?id=apache_incubator-streampark&issues=AaBg4aT97dgh_6Sy_vJY&open=AaBg4aT97dgh_6Sy_vJY&pullRequest=4509
private FlinkClusterService flinkClusterService;

@Autowired

Check warning on line 179 in streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/application/impl/FlinkApplicationActionServiceImpl.java

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Remove this field injection and use constructor injection instead.

See more on https://sonarcloud.io/project/issues?id=apache_incubator-streampark&issues=AaBg4aT97dgh_6Sy_vJZ&open=AaBg4aT97dgh_6Sy_vJZ&pullRequest=4509
private VariableService variableService;

@Autowired

Check warning on line 182 in streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/application/impl/FlinkApplicationActionServiceImpl.java

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Remove this field injection and use constructor injection instead.

See more on https://sonarcloud.io/project/issues?id=apache_incubator-streampark&issues=AaBg4aT97dgh_6Sy_vJa&open=AaBg4aT97dgh_6Sy_vJa&pullRequest=4509
private ResourceService resourceService;

@Autowired

Check warning on line 185 in streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/application/impl/FlinkApplicationActionServiceImpl.java

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Remove this field injection and use constructor injection instead.

See more on https://sonarcloud.io/project/issues?id=apache_incubator-streampark&issues=AaBg4aT97dgh_6Sy_vJb&open=AaBg4aT97dgh_6Sy_vJb&pullRequest=4509
private FlinkClusterWatcher flinkClusterWatcher;

@Autowired

Check warning on line 188 in streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/application/impl/FlinkApplicationActionServiceImpl.java

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Remove this field injection and use constructor injection instead.

See more on https://sonarcloud.io/project/issues?id=apache_incubator-streampark&issues=AaBg4aT97dgh_6Sy_vJc&open=AaBg4aT97dgh_6Sy_vJc&pullRequest=4509
private FlinkK8sWatcherWrapper k8sWatcherWrapper;

private final Map<Long, CompletableFuture<SubmitResponse>> startFutureMap =
Expand Down Expand Up @@ -653,7 +653,7 @@
FlinkSql flinkSql = flinkSqlService.getEffective(application.getId(), false);
AssertUtils.notNull(flinkSql);
// 1) dist_userJar
String sqlDistJar = ServiceHelper.getFlinkSqlClientJar(flinkEnv);

Check warning on line 656 in streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/application/impl/FlinkApplicationActionServiceImpl.java

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Remove this unused "sqlDistJar" local variable.

See more on https://sonarcloud.io/project/issues?id=apache_incubator-streampark&issues=AaBg4aT97dgh_6Sy_vJe&open=AaBg4aT97dgh_6Sy_vJe&pullRequest=4509
// 2) appConfig
appConf =
applicationConfig == null
Expand All @@ -661,13 +661,16 @@
: String.format("yaml://%s", applicationConfig.getContent());
// 3) client
if (FlinkDeployMode.YARN_APPLICATION == deployModeEnum) {
String clientPath = Workspace.remote().APP_CLIENT();
flinkUserJar = String.format("%s/%s", clientPath, sqlDistJar);
flinkUserJar =
application.getAppHome()
+ "/streampark-flinkjob_"
+ application.getJobName().replaceAll("\\s+", "_")
+ ".jar";
}
break;

case PYFLINK:
Resource resource =

Check warning on line 673 in streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/application/impl/FlinkApplicationActionServiceImpl.java

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Declare a separate variable in each case group; sharing this local variable across groups obscures its scope.

See more on https://sonarcloud.io/project/issues?id=apache_incubator-streampark&issues=AaBg4aT97dgh_6Sy_vJd&open=AaBg4aT97dgh_6Sy_vJd&pullRequest=4509
resourceService.findByResourceName(application.getTeamId(), application.getJar());

ApiAlertException.throwIfNull(
Expand Down Expand Up @@ -719,7 +722,7 @@
case STREAMPARK_FLINK:
flinkUserJar =
String.format(
"%s/%s",

Check failure on line 725 in streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/application/impl/FlinkApplicationActionServiceImpl.java

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Define a constant instead of duplicating this literal "%s/%s" 3 times.

See more on https://sonarcloud.io/project/issues?id=apache_incubator-streampark&issues=AaBg4aT97dgh_6Sy_vJL&open=AaBg4aT97dgh_6Sy_vJL&pullRequest=4509
application.getAppLib(),
application.getModule().concat(Constants.JAR_SUFFIX));
break;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -98,41 +98,41 @@
implements
FlinkApplicationBuildPipelineService {

@Autowired

Check warning on line 101 in streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/application/impl/FlinkApplicationBuildPipelineServiceImpl.java

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Remove this field injection and use constructor injection instead.

See more on https://sonarcloud.io/project/issues?id=apache_incubator-streampark&issues=AaBg4aTA7dgh_6Sy_vI_&open=AaBg4aTA7dgh_6Sy_vI_&pullRequest=4509
private FlinkEnvService flinkEnvService;

@Autowired

Check warning on line 104 in streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/application/impl/FlinkApplicationBuildPipelineServiceImpl.java

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Remove this field injection and use constructor injection instead.

See more on https://sonarcloud.io/project/issues?id=apache_incubator-streampark&issues=AaBg4aTA7dgh_6Sy_vJA&open=AaBg4aTA7dgh_6Sy_vJA&pullRequest=4509
private FlinkSqlService flinkSqlService;

@Autowired

Check warning on line 107 in streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/application/impl/FlinkApplicationBuildPipelineServiceImpl.java

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Remove this field injection and use constructor injection instead.

See more on https://sonarcloud.io/project/issues?id=apache_incubator-streampark&issues=AaBg4aTA7dgh_6Sy_vJB&open=AaBg4aTA7dgh_6Sy_vJB&pullRequest=4509
private FlinkApplicationBackupService backUpService;

@Autowired

Check warning on line 110 in streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/application/impl/FlinkApplicationBuildPipelineServiceImpl.java

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Remove this field injection and use constructor injection instead.

See more on https://sonarcloud.io/project/issues?id=apache_incubator-streampark&issues=AaBg4aTA7dgh_6Sy_vJC&open=AaBg4aTA7dgh_6Sy_vJC&pullRequest=4509
private SettingService settingService;

@Autowired

Check warning on line 113 in streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/application/impl/FlinkApplicationBuildPipelineServiceImpl.java

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Remove this field injection and use constructor injection instead.

See more on https://sonarcloud.io/project/issues?id=apache_incubator-streampark&issues=AaBg4aTA7dgh_6Sy_vJD&open=AaBg4aTA7dgh_6Sy_vJD&pullRequest=4509
private MessageService messageService;

@Autowired

Check warning on line 116 in streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/application/impl/FlinkApplicationBuildPipelineServiceImpl.java

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Remove this field injection and use constructor injection instead.

See more on https://sonarcloud.io/project/issues?id=apache_incubator-streampark&issues=AaBg4aTA7dgh_6Sy_vJE&open=AaBg4aTA7dgh_6Sy_vJE&pullRequest=4509
private FlinkApplicationManageService applicationManageService;

@Autowired

Check warning on line 119 in streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/application/impl/FlinkApplicationBuildPipelineServiceImpl.java

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Remove this field injection and use constructor injection instead.

See more on https://sonarcloud.io/project/issues?id=apache_incubator-streampark&issues=AaBg4aTA7dgh_6Sy_vJF&open=AaBg4aTA7dgh_6Sy_vJF&pullRequest=4509
private FlinkApplicationInfoService applicationInfoService;

@Autowired

Check warning on line 122 in streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/application/impl/FlinkApplicationBuildPipelineServiceImpl.java

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Remove this field injection and use constructor injection instead.

See more on https://sonarcloud.io/project/issues?id=apache_incubator-streampark&issues=AaBg4aTA7dgh_6Sy_vJG&open=AaBg4aTA7dgh_6Sy_vJG&pullRequest=4509
private ApplicationLogService applicationLogService;

@Autowired

Check warning on line 125 in streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/application/impl/FlinkApplicationBuildPipelineServiceImpl.java

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Remove this field injection and use constructor injection instead.

See more on https://sonarcloud.io/project/issues?id=apache_incubator-streampark&issues=AaBg4aTA7dgh_6Sy_vJH&open=AaBg4aTA7dgh_6Sy_vJH&pullRequest=4509
private FlinkAppHttpWatcher flinkAppHttpWatcher;

@Autowired

Check warning on line 128 in streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/application/impl/FlinkApplicationBuildPipelineServiceImpl.java

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Remove this field injection and use constructor injection instead.

See more on https://sonarcloud.io/project/issues?id=apache_incubator-streampark&issues=AaBg4aTA7dgh_6Sy_vJI&open=AaBg4aTA7dgh_6Sy_vJI&pullRequest=4509
private FlinkApplicationConfigService applicationConfigService;

@Autowired

Check warning on line 131 in streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/application/impl/FlinkApplicationBuildPipelineServiceImpl.java

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Remove this field injection and use constructor injection instead.

See more on https://sonarcloud.io/project/issues?id=apache_incubator-streampark&issues=AaBg4aTA7dgh_6Sy_vJJ&open=AaBg4aTA7dgh_6Sy_vJJ&pullRequest=4509
private ResourceService resourceService;

@Qualifier("streamparkBuildPipelineExecutor")
@Autowired

Check warning on line 135 in streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/application/impl/FlinkApplicationBuildPipelineServiceImpl.java

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Remove this field injection and use constructor injection instead.

See more on https://sonarcloud.io/project/issues?id=apache_incubator-streampark&issues=AaBg4aTA7dgh_6Sy_vJK&open=AaBg4aTA7dgh_6Sy_vJK&pullRequest=4509
private ExecutorService executorService;

private static final Cache<Long, DockerPullSnapshot> DOCKER_PULL_PG_SNAPSHOTS = Caffeine.newBuilder()
Expand Down Expand Up @@ -367,8 +367,9 @@
yarnProvidedPath = app.getAppHome();
localWorkspace = app.getLocalAppHome();
}
FlinkYarnApplicationBuildRequest yarnAppRequest = buildFlinkYarnApplicationBuildRequest(app, mainClass,
localWorkspace, yarnProvidedPath);
FlinkYarnApplicationBuildRequest yarnAppRequest =
buildFlinkYarnApplicationBuildRequest(
app, mainClass, localWorkspace, yarnProvidedPath, flinkEnv);
log.info("Submit params to building pipeline : {}", yarnAppRequest);
return FlinkYarnApplicationBuildPipeline.of(yarnAppRequest);
case YARN_PER_JOB:
Expand Down Expand Up @@ -400,13 +401,21 @@
@Nonnull FlinkApplication app,
String mainClass,
String localWorkspace,
String yarnProvidedPath) {
String yarnProvidedPath,
FlinkEnv flinkEnv) {
String sqlDistJar = ServiceHelper.getFlinkSqlClientJar(flinkEnv);
String localSqlClientJar =
Workspace.local().APP_CLIENT().concat("/").concat(sqlDistJar);
return new FlinkYarnApplicationBuildRequest(
app.getJobName(),
mainClass,
app.getLocalAppHome(),
localWorkspace,
yarnProvidedPath,
localSqlClientJar,
app.getJobTypeEnum(),
app.getDeployModeEnum(),
flinkEnv.getFlinkVersion(),
getMergedDependencyInfo(app));
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,19 +78,19 @@
"Queue label '%s' isn't available in database, please add it first.";

@Qualifier("streamparkClusterExecutor")
@Autowired

Check warning on line 81 in streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/FlinkClusterServiceImpl.java

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Remove this field injection and use constructor injection instead.

See more on https://sonarcloud.io/project/issues?id=apache_incubator-streampark&issues=AaBg4aKK7dgh_6Sy_vI6&open=AaBg4aKK7dgh_6Sy_vI6&pullRequest=4509
private ExecutorService executorService;

@Autowired

Check warning on line 84 in streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/FlinkClusterServiceImpl.java

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Remove this field injection and use constructor injection instead.

See more on https://sonarcloud.io/project/issues?id=apache_incubator-streampark&issues=AaBg4aKK7dgh_6Sy_vI7&open=AaBg4aKK7dgh_6Sy_vI7&pullRequest=4509
private FlinkEnvService flinkEnvService;

@Autowired

Check warning on line 87 in streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/FlinkClusterServiceImpl.java

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Remove this field injection and use constructor injection instead.

See more on https://sonarcloud.io/project/issues?id=apache_incubator-streampark&issues=AaBg4aKK7dgh_6Sy_vI8&open=AaBg4aKK7dgh_6Sy_vI8&pullRequest=4509
private FlinkApplicationInfoService applicationInfoService;

@Autowired

Check warning on line 90 in streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/FlinkClusterServiceImpl.java

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Remove this field injection and use constructor injection instead.

See more on https://sonarcloud.io/project/issues?id=apache_incubator-streampark&issues=AaBg4aKK7dgh_6Sy_vI9&open=AaBg4aKK7dgh_6Sy_vI9&pullRequest=4509
private YarnQueueService yarnQueueService;

@Autowired

Check warning on line 93 in streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/FlinkClusterServiceImpl.java

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Remove this field injection and use constructor injection instead.

See more on https://sonarcloud.io/project/issues?id=apache_incubator-streampark&issues=AaBg4aKK7dgh_6Sy_vI-&open=AaBg4aKK7dgh_6Sy_vI-&pullRequest=4509
private FlinkClusterWatcher flinkClusterWatcher;

@Override
Expand Down Expand Up @@ -417,7 +417,7 @@
flinkCluster.getId(),
getKubernetesDeployDesc(flinkCluster, "shutdown"));
Future<ShutDownResponse> future = executorService.submit(() -> FlinkClient.shutdown(stopRequest));
return future.get(60, TimeUnit.SECONDS);
return future.get(300, TimeUnit.SECONDS);
}

private DeployResponse deployInternal(FlinkCluster flinkCluster) throws InterruptedException, ExecutionException, TimeoutException {
Expand All @@ -430,7 +430,7 @@
getKubernetesDeployDesc(flinkCluster, "start"));
log.info("Deploy cluster request {}", deployRequest);
Future<DeployResponse> future = executorService.submit(() -> FlinkClient.deploy(deployRequest));
return future.get(60, TimeUnit.SECONDS);
return future.get(300, TimeUnit.SECONDS);
}

private void checkActiveIfNeeded(FlinkCluster flinkCluster) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,19 +62,19 @@
@Component
public class FlinkClusterWatcher {

@Autowired

Check warning on line 65 in streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/watcher/FlinkClusterWatcher.java

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Remove this field injection and use constructor injection instead.

See more on https://sonarcloud.io/project/issues?id=apache_incubator-streampark&issues=AaBg4aWj7dgh_6Sy_vJf&open=AaBg4aWj7dgh_6Sy_vJf&pullRequest=4509
private FlinkClusterService flinkClusterService;

@Autowired

Check warning on line 68 in streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/watcher/FlinkClusterWatcher.java

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Remove this field injection and use constructor injection instead.

See more on https://sonarcloud.io/project/issues?id=apache_incubator-streampark&issues=AaBg4aWj7dgh_6Sy_vJg&open=AaBg4aWj7dgh_6Sy_vJg&pullRequest=4509
private AlertService alertService;

@Autowired

Check warning on line 71 in streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/watcher/FlinkClusterWatcher.java

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Remove this field injection and use constructor injection instead.

See more on https://sonarcloud.io/project/issues?id=apache_incubator-streampark&issues=AaBg4aWj7dgh_6Sy_vJh&open=AaBg4aWj7dgh_6Sy_vJh&pullRequest=4509
private FlinkApplicationInfoService applicationInfoService;

private static final Timeout HTTP_TIMEOUT = Timeout.ofSeconds(5L);

@Qualifier("flinkClusterWatchingExecutor")
@Autowired

Check warning on line 77 in streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/watcher/FlinkClusterWatcher.java

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Remove this field injection and use constructor injection instead.

See more on https://sonarcloud.io/project/issues?id=apache_incubator-streampark&issues=AaBg4aWj7dgh_6Sy_vJi&open=AaBg4aWj7dgh_6Sy_vJi&pullRequest=4509
private Executor executorService;

private Long lastWatchTime = 0L;
Expand Down Expand Up @@ -196,6 +196,7 @@
private ClusterState httpClusterState(FlinkCluster flinkCluster) {
switch (flinkCluster.getFlinkDeployModeEnum()) {
case REMOTE:
case KUBERNETES_NATIVE_SESSION:
return httpRemoteClusterState(flinkCluster);
case YARN_SESSION:
return httpYarnSessionClusterState(flinkCluster);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -119,9 +119,9 @@ public SubmitResponse jobGraphSubmit(
flinkConfig,
jarFile,
() -> getK8sClusterDescriptor(flinkConfig)
.retrieve(flinkConfig.getString(KubernetesConfigOptions.CLUSTER_ID))
.retrieve(flinkConfig.get(KubernetesConfigOptions.CLUSTER_ID))
.getClusterClient(),
() -> flinkConfig.getString(KubernetesConfigOptions.CLUSTER_ID));
() -> flinkConfig.get(KubernetesConfigOptions.CLUSTER_ID));
logInfo(
"[flink-submit] flink job has been submitted. "
+ flinkConfIdentifierInfo(flinkConfig)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,10 @@ public void setConfig(SubmitRequest submitRequest, Configuration flinkConfig) {
providedLibs.add(hdfsWorkspace.appJars());

if (submitRequest.jobType() == FlinkJobType.FLINK_SQL) {
providedLibs.add(
WORKSPACE.APP_SHIMS() + "/flink-" + submitRequest.flinkVersion().majorVersion());
// Flink SQL yarn-application builds a fat jar that already shades version-specific
// shims. Adding the HDFS shims directory here makes parent-first classloading pick
// shims-base ahead of shims-base-v2 and breaks Flink 2.x (NoSuchMethodError on
// FlinkConfiguration).
String jobLib = WORKSPACE.APP_WORKSPACE() + "/" + submitRequest.id() + "/lib";
try {
if (HdfsUtils.exists(jobLib)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,11 +34,9 @@
import org.apache.commons.lang3.StringUtils;
import org.apache.flink.client.deployment.ClusterSpecification;
import org.apache.flink.client.program.ClusterClient;
import org.apache.flink.client.program.PackagedProgram;
import org.apache.flink.configuration.Configuration;
import org.apache.flink.configuration.DeploymentOptions;
import org.apache.flink.configuration.DeploymentOptionsInternal;
import org.apache.flink.runtime.jobgraph.JobGraph;
import org.apache.flink.util.FlinkException;
import org.apache.flink.yarn.YarnClusterDescriptor;
import org.apache.flink.yarn.configuration.YarnConfigOptions;
Expand Down Expand Up @@ -90,36 +88,17 @@

@Override
public SubmitResponse doSubmit(SubmitRequest submitRequest, Configuration flinkConfig) throws FlinkException {
return callAsFlinkException(
() -> {
Tuple2<ApplicationId, YarnClusterDescriptor> yarnClusterDescriptor =
getYarnClusterDescriptor(flinkConfig);
ApplicationId yarnClusterId = yarnClusterDescriptor._1();
YarnClusterDescriptor clusterDescriptor = yarnClusterDescriptor._2();

Tuple2<PackagedProgram, JobGraph> programJobGraph =
getJobGraph(flinkConfig, submitRequest, submitRequest.userJarFile());
PackagedProgram packageProgram = programJobGraph._1();
JobGraph jobGraph = programJobGraph._2();

ClusterClient<ApplicationId> client =
clusterDescriptor.retrieve(yarnClusterId).getClusterClient();
String jobId = client.submitJob(jobGraph).get().toString();
String jobManagerUrl = client.getWebInterfaceURL();

logInfo(
String.format(
"%n-------------------------<<applicationId>>------------------------%n"
+ "Flink Job Started: jobId: %s , applicationId: %s%n"
+ "__________________________________________________________________%n",
jobId, yarnClusterId));

SubmitResponse resp =
new SubmitResponse(
yarnClusterId.toString(), flinkConfig.toMap(), jobId, jobManagerUrl);
closeSubmit(submitRequest, packageProgram, client, clusterDescriptor);
return resp;
});
Tuple2<ApplicationId, YarnClusterDescriptor> yarnClusterDescriptor =
getYarnClusterDescriptor(flinkConfig);
ApplicationId yarnClusterId = yarnClusterDescriptor._1();
YarnClusterDescriptor clusterDescriptor = yarnClusterDescriptor._2();
return submitJobGraphToCluster(
submitRequest,
flinkConfig,
submitRequest.userJarFile(),
() -> clusterDescriptor.retrieve(yarnClusterId).getClusterClient(),
() -> yarnClusterId.toString(),
clusterDescriptor);
}

@Override
Expand Down Expand Up @@ -196,7 +175,7 @@

private DeployResponse tryReuseExistingYarnSession(
DeployRequest deployRequest,
YarnClusterDescriptor clusterDescriptor) throws Exception {

Check warning on line 178 in streampark-flink/streampark-flink-client/streampark-flink-client-core/src/main/java/org/apache/streampark/flink/client/impl/YarnSessionClient.java

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Replace generic exceptions with specific library exceptions or a custom exception.

See more on https://sonarcloud.io/project/issues?id=apache_incubator-streampark&issues=AaBg4aZF7dgh_6Sy_vJl&open=AaBg4aZF7dgh_6Sy_vJl&pullRequest=4509
try {
FinalApplicationStatus applicationStatus =
clusterDescriptor
Expand Down Expand Up @@ -224,7 +203,7 @@
}
}

public ShutDownResponse shutdown(ShutDownRequest shutDownRequest) throws Exception {

Check warning on line 206 in streampark-flink/streampark-flink-client/streampark-flink-client-core/src/main/java/org/apache/streampark/flink/client/impl/YarnSessionClient.java

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Replace generic exceptions with specific library exceptions or a custom exception.

See more on https://sonarcloud.io/project/issues?id=apache_incubator-streampark&issues=AaBg4aZF7dgh_6Sy_vJm&open=AaBg4aZF7dgh_6Sy_vJm&pullRequest=4509
YarnClusterDescriptor clusterDescriptor = null;
ClusterClient<ApplicationId> client = null;
try {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ public Set<String> flinkExtraLibPaths() {
public String offerDockerfileContent() {
return "FROM " + flinkBaseImage + "\n"
+ "RUN mkdir -p " + FLINK_HOME + "/usrlib\n"
+ "COPY " + extraLibName() + " " + FLINK_HOME + "/lib/\n"
+ "COPY " + extraLibName() + "/. " + FLINK_HOME + "/lib/\n"
+ "COPY " + mainJarName() + " " + FLINK_HOME + "/usrlib/" + mainJarName() + "\n";
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ public String offerDockerfileContent() {
dockerfile
.append("COPY ")
.append(extraLibName())
.append(" ")
.append("/. ")
.append(FLINK_HOME)
.append("/lib/\n")
.append("COPY ")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@
import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
Expand Down Expand Up @@ -145,7 +146,7 @@
"[StreamPark] streampark-packer: failed to delete existing uber jar: "
+ outFatJarPath);
}
Set<File> jarSet = new HashSet<>();
Set<File> jarSet = new LinkedHashSet<>();
for (String lib : jarLibs) {
File libFile = new File(lib);
if (!libFile.exists()) {
Expand All @@ -156,11 +157,14 @@
} else if (libFile.isDirectory()) {
File[] files = libFile.listFiles();
if (files != null) {
List<File> dirJars = new ArrayList<>();
for (File f : files) {
if (isJarFile(f)) {
jarSet.add(f);
dirJars.add(f);
}
}
dirJars.sort(ShimJarMergeOrder.COMPARATOR);
jarSet.addAll(dirJars);
}
}
}
Expand Down Expand Up @@ -219,7 +223,7 @@
* necessary. Only compile scope dependencies will be resolved.
*/
@Nonnull
public static List<File> resolveArtifacts(@Nullable Set<Artifact> mavenArtifacts) throws Exception {

Check warning on line 226 in streampark-flink/streampark-flink-packer/src/main/java/org/apache/streampark/flink/packer/maven/MavenTool.java

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Replace generic exceptions with specific library exceptions or a custom exception.

See more on https://sonarcloud.io/project/issues?id=apache_incubator-streampark&issues=AaBg4aYK7dgh_6Sy_vJk&open=AaBg4aYK7dgh_6Sy_vJk&pullRequest=4509
if (mavenArtifacts == null) {
return Collections.emptyList();
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
/*
* 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.streampark.flink.packer.maven;

import java.io.File;
import java.util.Comparator;

/** Controls duplicate class resolution when shading StreamPark shims into a fat jar. */
final class ShimJarMergeOrder {

private static final String SHIMS_BASE_PREFIX = "streampark-flink-shims-base-";
private static final String SHIMS_BASE_V2_PREFIX = "streampark-flink-shims-base-v2-";

static final Comparator<File> COMPARATOR = Comparator.comparingInt(ShimJarMergeOrder::mergeOrder);

private ShimJarMergeOrder() {
}

private static int mergeOrder(File jar) {
String name = jar.getName();
if (name.startsWith(SHIMS_BASE_V2_PREFIX)) {
return 0;
}
if (name.startsWith(SHIMS_BASE_PREFIX)) {
return 1;
}
return 2;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
/*
* 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.streampark.flink.packer.pipeline;

import org.apache.streampark.flink.packer.maven.Artifact;
import org.apache.streampark.flink.packer.maven.DependencyInfo;
import org.apache.streampark.flink.packer.maven.MavenTool;

import java.io.File;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;

/** Shared dependency helpers for Flink SQL build pipelines. */
public final class FlinkSqlDependencySupport {

private static final Artifact SNAKEYAML = new Artifact("org.yaml", "snakeyaml", "2.0");

private FlinkSqlDependencySupport() {
}

public static DependencyInfo withSnakeyaml(DependencyInfo dependencyInfo) {
Set<String> extJarLibs = new HashSet<>(dependencyInfo.extJarLibs());
addSnakeyaml(extJarLibs);
return new DependencyInfo(dependencyInfo.mavenArts(), extJarLibs);
}

public static void addSnakeyaml(Set<String> extJarLibs) {
String appHome = System.getProperty("app.home", "/streampark");
File snakeyaml = new File(appHome, "lib/snakeyaml-2.0.jar");
if (snakeyaml.isFile()) {
extJarLibs.add(snakeyaml.getAbsolutePath());
return;
}
try {
MavenTool.resolveArtifacts(Collections.singleton(SNAKEYAML))
.stream()
.map(File::getAbsolutePath)
.forEach(extJarLibs::add);
} catch (Exception e) {
throw new IllegalStateException("Failed to resolve snakeyaml for Flink SQL application build", e);
}
}
}
Loading
Loading