This is an automated email from the ASF dual-hosted git repository.
lcwik pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/beam.git
The following commit(s) were added to refs/heads/master by this push:
new a142470 [BEAM-5328] Starter Archetype generation fix & correctness
test (#7715)
a142470 is described below
commit a1424707367bcb19310934e1f66c669c268c7906
Author: Mikhail-Ivanov <[email protected]>
AuthorDate: Wed Apr 10 00:56:53 2019 +0400
[BEAM-5328] Starter Archetype generation fix & correctness test (#7715)
---
release/src/main/groovy/StarterArchetype.groovy | 43 +++++++++++++++++++++++
release/src/main/groovy/starter-generation.groovy | 43 +++++++++++++++++++++++
2 files changed, 86 insertions(+)
diff --git a/release/src/main/groovy/StarterArchetype.groovy
b/release/src/main/groovy/StarterArchetype.groovy
new file mode 100644
index 0000000..030e550
--- /dev/null
+++ b/release/src/main/groovy/StarterArchetype.groovy
@@ -0,0 +1,43 @@
+#!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.
+ */
+
+class StarterArchetype {
+ def static generate(TestScripts t) {
+ // Generate a maven project from the snapshot repository
+ String output_text = t.run """mvn archetype:generate \
+ --update-snapshots \
+ -DarchetypeGroupId=org.apache.beam \
+ -DarchetypeArtifactId=beam-sdks-java-maven-archetypes-starter \
+ -DarchetypeVersion=${t.ver()} \
+ -DgroupId=org.example \
+ -DartifactId=beam-starter \
+ -Dversion="0.1" \
+ -Dpackage=org.apache.beam.starter \
+ -DinteractiveMode=false"""
+
+ // Check if it was generated
+ t.see "[INFO] BUILD SUCCESS", output_text
+ t.run "cd beam-starter"
+ output_text = t.run "ls"
+ t.see "pom.xml", output_text
+ t.see "src", output_text
+ String starterPipeline = t.run "ls
src/main/java/org/apache/beam/starter/"
+ t.see "StarterPipeline.java", starterPipeline
+ }
+}
diff --git a/release/src/main/groovy/starter-generation.groovy
b/release/src/main/groovy/starter-generation.groovy
new file mode 100644
index 0000000..fb11ff8
--- /dev/null
+++ b/release/src/main/groovy/starter-generation.groovy
@@ -0,0 +1,43 @@
+#!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)
+
+/*
+ * Generate a starter archetype project and ensure its correctness
+ */
+
+t.describe 'Generate project from starter archetype'
+
+t.intent 'Generates starter archetype project'
+StarterArchetype.generate(t)
+
+t.intent 'Runs the StarterPipeline Code with Direct runner'
+// Run the wordcount example with the Direct runner
+t.run """mvn compile exec:java -q \
+ -Dexec.mainClass=org.apache.beam.starter.StarterPipeline \
+ -Dexec.args="--inputFile=pom.xml --output=starterOutput"""
+
+// Verify output correctness
+String result = t.run "grep INFO starterOutput*"
+t.see "INFO: HELLO", result
+t.see "INFO: WORLD", result
+
+// Clean up
+t.done()