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()

Reply via email to