| /* |
| * 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. |
| */ |
| import groovy.json.JsonOutput |
| |
| apply plugin: org.apache.beam.gradle.BeamModulePlugin |
| applyJavaNature( |
| validateShadowJar: false, |
| shadowClosure: { |
| append "reference.conf" |
| }, |
| ) |
| |
| description = "Apache Beam :: Runners :: Flink :: Job Server" |
| |
| apply plugin: "application" |
| |
| mainClassName = "org.apache.beam.runners.flink.FlinkJobServerDriver" |
| |
| configurations { |
| validatesPortableRunner |
| } |
| |
| configurations.all { |
| // replace commons logging with the jcl-over-slf4j bridge |
| exclude group: "commons-logging", module: "commons-logging" |
| } |
| |
| dependencies { |
| compile project(path: ":beam-runners-flink_2.11", configuration: "shadow") |
| compile group: "org.slf4j", name: "jcl-over-slf4j", version: dependencies.create(project.library.java.slf4j_api).getVersion() |
| validatesPortableRunner project(path: ":beam-runners-flink_2.11", configuration: "shadowTest") |
| validatesPortableRunner project(path: ":beam-sdks-java-core", configuration: "shadowTest") |
| validatesPortableRunner project(path: ":beam-runners-core-java", configuration: "shadowTest") |
| validatesPortableRunner project(path: ":beam-runners-reference-java", configuration: "shadowTest") |
| compile project(path: ":beam-sdks-java-extensions-google-cloud-platform-core", configuration: "shadow") |
| compile library.java.slf4j_simple |
| // TODO: Enable AWS and HDFS file system. |
| } |
| |
| // NOTE: runShadow must be used in order to run the job server. The standard run |
| // task will not work because the flink runner classes only exist in the shadow |
| // jar. |
| runShadow { |
| args = [] |
| if (project.hasProperty('jobHost')) |
| args += ["--job-host=${project.property('jobHost')}"] |
| if (project.hasProperty('artifactsDir')) |
| args += ["--artifacts-dir=${project.property('artifactsDir')}"] |
| if (project.hasProperty('cleanArtifactsPerJob')) |
| args += ["--clean-artifacts-per-job"] |
| if (project.hasProperty('flinkMasterUrl')) |
| args += ["--flink-master-url=${project.property('flinkMasterUrl')}"] |
| |
| // Enable remote debugging. |
| jvmArgs = ["-Xdebug", "-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005"] |
| if (project.hasProperty("logLevel")) |
| jvmArgs += ["-Dorg.slf4j.simpleLogger.defaultLogLevel=${project.property('logLevel')}"] |
| } |
| |
| createPortableValidatesRunnerTask( |
| jobServerDriver: "org.apache.beam.runners.flink.FlinkJobServerDriver", |
| jobServerConfig: "--clean-artifacts-per-job,--job-host=localhost", |
| testClasspathConfiguration: configurations.validatesPortableRunner |
| ) |