blob: 2ac1558e5cca1f394f478901afc7108943240467 [file] [log] [blame]
#!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()
/*
* Run the direct quickstart from https://beam.apache.org/get-started/quickstart-java/
*/
t.describe 'Run Apache Beam Java SDK Quickstart - Direct'
t.intent 'Gets the WordCount Code'
ver = System.env.snapshot_version ?: "2.3.0-SNAPSHOT"
// Generate a maven project from the snapshot repository
t.run """mvn archetype:generate \
-DarchetypeGroupId=org.apache.beam \
-DarchetypeArtifactId=beam-sdks-java-maven-archetypes-examples \
-DarchetypeVersion=$ver \
-DgroupId=org.example \
-DartifactId=word-count-beam \
-Dversion="0.1" \
-Dpackage=org.apache.beam.examples \
-DinteractiveMode=false"""
// Check if it was generated
t.see "[INFO] BUILD SUCCESS"
t.run "cd word-count-beam"
t.run "ls"
t.see "pom.xml"
t.see "src"
t.run "ls src/main/java/org/apache/beam/examples/"
t.see "WordCount.java"
t.intent 'Runs the WordCount Code with Direct runner'
// Run the workcount example with the direct runner
t.run """mvn compile exec:java \
-Dexec.mainClass=org.apache.beam.examples.WordCount \
-Dexec.args="--inputFile=pom.xml --output=counts" \
-Pdirect-runner"""
// Verify text from the pom.xml input file
t.run "grep Foundation counts*"
t.see "Foundation: 1"
// Clean up
t.done()