blob: 248e85dbcc59920509faee9da60344835b175c27 [file]
#!groovy
/*
* 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.
*/
t = new TestScripts(args)
/*
* Run the Spark quickstart from https://beam.apache.org/get-started/quickstart-java/
*/
t.describe 'Run Apache Beam Java SDK Quickstart - Spark'
t.intent 'Gets the WordCount Example Code'
QuickstartArchetype.generate(t)
t.intent 'Runs the WordCount Code with Spark runner'
// Run the wordcount example with the spark runner
// Retrieve classpath
def deps = t.run """mvn compile dependency:build-classpath -q \
-Dmdep.outputFile=/dev/stdout \
-Dmaven.wagon.http.retryHandler.class=default \
-Dmaven.wagon.http.retryHandler.count=5 \
-Dmaven.wagon.http.pool=false \
-Dmaven.wagon.httpconnectionManager.ttlSeconds=120 \
-Dhttp.keepAlive=false \
-Pspark-runner"""
def cp = "target/classes:${deps.trim()}"
def jvmArgs = "--add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED"
t.run """mvn exec:exec -q -Dexec.executable=java \
-Dexec.args="${jvmArgs} -cp '${cp}' org.apache.beam.examples.WordCount \
--inputFile=pom.xml --output=counts --runner=SparkRunner" """
// Verify text from the pom.xml input file
String result = t.run "grep Foundation counts*"
t.see "Foundation: 1", result
// Clean up
t.done()