// Copyright 2017 Google Inc. // // Licensed 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. // [START gradle] buildscript { // Configuration for building repositories { jcenter() // Bintray's repository - a fast Maven Central mirror & more mavenCentral() } dependencies { classpath 'com.google.cloud.tools:appengine-gradle-plugin:1.3.1' classpath 'org.akhikhl.gretty:gretty:+' } } apply plugin: 'java' apply plugin: 'war' apply plugin: 'org.akhikhl.gretty' // To get webappcopy apply plugin: 'com.google.cloud.tools.appengine' group = 'com.example.google.cloud.bigtable' version = '0.1-SNAPSHOT' sourceCompatibility = 1.8 targetCompatibility = 1.8 tasks.withType(JavaCompile) { options.encoding = 'UTF-8' } repositories { maven { url "https://oss.sonatype.org/content/repositories/snapshots" } jcenter() mavenCentral() } dependencies { compile group: 'com.google.cloud.bigtable', name: 'bigtable-hbase-1.2', version:'0.9.6.2' compile group: 'org.apache.hbase', name: 'hbase-client', version:'1.2.4' compile group: 'io.netty', name: 'netty-tcnative-boringssl-static', version:'1.1.33.Fork26' compile group: 'jstl', name: 'jstl', version:'1.2' providedCompile group: 'javax.servlet', name: 'javax.servlet-api', version:'3.1.0' testCompile group: 'com.google.truth', name: 'truth', version:'0.30' testCompile group: 'junit', name: 'junit', version:'4.12' testCompile group: 'org.mockito', name: 'mockito-all', version:'1.10.19' } import org.apache.tools.ant.filters.ReplaceTokens gretty { contextPath = '/' servletContainer = 'jetty9' jvmArgs = [ '-DBIGTABLE_PROJECT=' + System.getProperty("bigtable.projectID"), '-DBIGTABLE_INSTANCE=' + System.getProperty("bigtable.instanceID")] webappCopy { // Enable filtering on all xml files in WEB-INF filesMatching "**/WEB-INF/*.xml", { FileCopyDetails fileDetails -> logger.lifecycle 'File filtered: {}', fileDetails.path filter (ReplaceTokens, tokens: [ 'bigtable.projectID' : System.getProperty("bigtable.projectID"), 'bigtable.instanceID': System.getProperty("bigtable.instanceID") ]) } } } // Always run unit tests appengineDeploy.dependsOn test // [START model] appengine { run { } deploy { // deploy configuration stopPreviousVersion = true // default - stop the current version promote = true // default - & make this the current version } } test { useJUnit() testLogging.showStandardStreams = true systemProperty 'BIGTABLE_PROJECT', System.getProperty("bigtable.projectID") systemProperty 'BIGTABLE_INSTANCE',System.getProperty("bigtable.instanceID") beforeTest { descriptor -> logger.lifecycle("test: " + descriptor + " Running") } onOutput { descriptor, event -> logger.lifecycle("test: " + descriptor + ": " + event.message ) } afterTest { descriptor, result -> logger.lifecycle("test: " + descriptor + ": " + result ) } } // [END model] // [END gradle]