You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beam.apache.org by lc...@apache.org on 2017/11/17 22:30:07 UTC
[36/50] [abbrv] beam git commit: Enable FFMP -> JavaCC path to
generate Beam SQL parser for sdks/java/extensions/sql
Enable FFMP -> JavaCC path to generate Beam SQL parser for sdks/java/extensions/sql
Project: http://git-wip-us.apache.org/repos/asf/beam/repo
Commit: http://git-wip-us.apache.org/repos/asf/beam/commit/6f55ccd2
Tree: http://git-wip-us.apache.org/repos/asf/beam/tree/6f55ccd2
Diff: http://git-wip-us.apache.org/repos/asf/beam/diff/6f55ccd2
Branch: refs/heads/master
Commit: 6f55ccd2801a3d07b40c8efc43baff43e0e66b8e
Parents: aff736f
Author: Luke Cwik <lc...@google.com>
Authored: Fri Nov 17 13:46:24 2017 -0800
Committer: Luke Cwik <lc...@google.com>
Committed: Fri Nov 17 14:27:16 2017 -0800
----------------------------------------------------------------------
build.gradle | 1 +
runners/core-construction-java/build.gradle | 2 +-
sdks/java/extensions/sql/build.gradle | 47 +++++++++++++++++++++++-
3 files changed, 48 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/beam/blob/6f55ccd2/build.gradle
----------------------------------------------------------------------
diff --git a/build.gradle b/build.gradle
index 8e2b4a5..2d55701 100644
--- a/build.gradle
+++ b/build.gradle
@@ -168,6 +168,7 @@ buildscript {
classpath "gradle.plugin.com.palantir.gradle.docker:gradle-docker:0.13.0" // Enable building Docker containers
classpath "cz.malohlava:visteg:1.0.3" // Enable generating Gradle task dependencies as ".dot" files
classpath "com.github.jengelman.gradle.plugins:shadow:2.0.1" // Enable shading Java dependencies
+ classpath "ca.coglinc:javacc-gradle-plugin:2.4.0" // Enable the JavaCC parser generator
}
}
http://git-wip-us.apache.org/repos/asf/beam/blob/6f55ccd2/runners/core-construction-java/build.gradle
----------------------------------------------------------------------
diff --git a/runners/core-construction-java/build.gradle b/runners/core-construction-java/build.gradle
index 8572372..1750024 100644
--- a/runners/core-construction-java/build.gradle
+++ b/runners/core-construction-java/build.gradle
@@ -31,7 +31,7 @@ test {
dependencies {
compile library.java.guava
- compileOnly librarj.java.findbugs_annotations
+ compileOnly library.java.findbugs_annotations
shadow project(path: ":beam-model-parent:beam-model-pipeline", configuration: "shadow")
shadow project(path: ":beam-model-parent:beam-model-job-management", configuration: "shadow")
shadow project(path: ":beam-sdks-parent:beam-sdks-java-parent:beam-sdks-java-core", configuration: "shadow")
http://git-wip-us.apache.org/repos/asf/beam/blob/6f55ccd2/sdks/java/extensions/sql/build.gradle
----------------------------------------------------------------------
diff --git a/sdks/java/extensions/sql/build.gradle b/sdks/java/extensions/sql/build.gradle
index 38335c0..9cd9304 100644
--- a/sdks/java/extensions/sql/build.gradle
+++ b/sdks/java/extensions/sql/build.gradle
@@ -18,6 +18,7 @@
apply from: project(":").file("build_rules.gradle")
applyJavaNature()
+apply plugin: 'ca.coglinc.javacc'
description = "Apache Beam :: SDKs :: Java :: Extensions :: SQL"
@@ -25,10 +26,22 @@ test {
jvmArgs "-da"
}
+configurations {
+ // Create an fmppTask configuration representing the dependencies
+ // required to define and execute the Ant FMPP task.
+ // TODO: Migrate to a FMPP plugin once one exists
+ fmppTask
+ fmppTemplates
+}
+
+
def calcite_version = "1.13.0"
def avatica_version = "1.10.0"
dependencies {
+ fmppTask "net.sourceforge.fmpp:fmpp:0.9.15"
+ fmppTask "org.freemarker:freemarker:2.3.25-incubating"
+ fmppTemplates "org.apache.calcite:calcite-core:$calcite_version"
compile library.java.guava
compile "org.apache.calcite:calcite-core:$calcite_version"
compile "org.apache.calcite:calcite-linq4j:$calcite_version"
@@ -49,7 +62,39 @@ dependencies {
testCompile library.java.mockito_core
}
-// TODO: Add support for generating fmpp
+// Copy Caclcite templates and our own template into the build directory
+// so we have one location for the FMPP task to parse.
+task copyFmppTemplatesFromSrc(type: Copy) {
+ from "src/main/codegen"
+ into "build/templates-fmpp/codegen"
+}
+task copyFmppTemplatesFromCalciteCore(type: Copy) {
+ dependsOn configurations.fmppTemplates
+ File calciteCoreJar = files(configurations.fmppTemplates.files).filter {
+ it.name.startsWith("calcite-core")
+ }.singleFile
+ from zipTree(calciteCoreJar)
+ include "**/Parser.jj"
+ into "${project.buildDir}/templates-fmpp"
+}
+
+// Generate the FMPP sources from the FMPP templates.
+def generateFmppOutputDir = "${project.buildDir}/generated-fmpp"
+task generateFmppSources {
+ dependsOn configurations.fmppTask
+ dependsOn copyFmppTemplatesFromSrc
+ dependsOn copyFmppTemplatesFromCalciteCore
+ doLast {
+ ant.taskdef(name: "fmpp", classname: "fmpp.tools.AntTask", classpath: configurations.fmppTask.asPath)
+ ant.fmpp(configuration: "src/main/codegen/config.fmpp", sourceRoot: "${project.buildDir}/templates-fmpp/codegen/templates", outputRoot: generateFmppOutputDir)
+ }
+}
+
+compileJavacc {
+ dependsOn generateFmppSources
+ inputDirectory = file(generateFmppOutputDir)
+ arguments = [grammar_encoding: "UTF-8", static: "false", lookahead: "2"]
+}
shadowJar {
dependencies {