Skip to content

Commit

Permalink
Build it with the "org.embulk.embulk-plugins" Gradle plugin
Browse files Browse the repository at this point in the history
Along with that,
* Upgrade the Gradle wrapper to use Gradle 6.2.1
* Upgrade the Bintray Gradle plugin to 1.8.4 (latest)
* Upgrade depending embulk-core to 0.9.23 (latest)
* Set JavaCompile option for deprecation and unchecked
* Replace Exec.getLogger with LoggerFactory.getLogger
* Replace Throwables.propagate with just RuntimeException
  • Loading branch information
dmikurube committed Mar 4, 2020
1 parent 8a34be9 commit c59be25
Show file tree
Hide file tree
Showing 17 changed files with 191 additions and 198 deletions.
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
## 0.6.0 - 2020-03-05
* Build with the "org.embulk.embulk-plugins" Gradle plugin

## 0.5.3 - 2019-11-19
* [new feature] Added additional headers to the Http requests [#94](https://github.com/treasure-data/embulk-output-td/pul/94) addressed by [#93](https://github.com/treasure-data/embulk-output-td/issues/93)
* Also exposes `port` configuration (by default will use 80 and 443).
Expand Down
145 changes: 64 additions & 81 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,60 +1,93 @@
plugins {
id "com.jfrog.bintray" version "1.7"
id "com.github.jruby-gradle.base" version "0.1.5"
id "com.jfrog.bintray" version "1.8.4"
id "java"
id "maven" // install jar files to the local repo: $ gradle install
id "maven-publish"
id "org.embulk.embulk-plugins" version "0.3.0"
}

apply from: 'gradle/check.gradle'

import com.github.jrubygradle.JRubyExec
repositories {
mavenCentral()
jcenter()
mavenLocal()
}
configurations {
provided
}

group = "org.embulk.output.td"
version = "0.5.3"
version = "0.6.0"
description = "TreasureData output plugin is an Embulk plugin that loads records to TreasureData read by any input plugins. Search the input plugins by 'embulk-output' keyword."

compileJava.options.encoding = 'UTF-8' // source encoding
sourceCompatibility = 1.8
targetCompatibility = 1.8

tasks.withType(JavaCompile) {
options.encoding = "UTF-8"
options.compilerArgs << "-Xlint:deprecation" << "-Xlint:unchecked"
}

dependencies {
compile "org.embulk:embulk-core:0.8.+"
provided "org.embulk:embulk-core:0.8.+"
compile "org.embulk:embulk-standards:0.8.+"
provided "org.embulk:embulk-standards:0.8.+"
compile "org.msgpack:msgpack-core:0.8.+"
provided "org.msgpack:msgpack-core:0.8.+"
compile "com.treasuredata.client:td-client:0.8.4"

testCompile "junit:junit:4.+"
compileOnly "org.embulk:embulk-core:0.9.23"

compile("com.treasuredata.client:td-client:0.8.4") {
// The "org.embulk.embulk-plugins" shows warnings about dependencies
// because Jackson-related libraries and Guava are not excluded.
//
// It is known, and accepted now, because embulk-output-td-0.5.3.gem
// included them while they conflict with embulk-core's dependencies.
//
// TODO: Resolve this.

exclude group: "com.google.inject", module: "guice"
exclude group: "com.google.inject.extensions", module: "guice-multibindings"
exclude group: "org.slf4j", module: "slf4j-api"
exclude group: "aopalliance", module: "aopalliance"
exclude group: "javax.inject", module: "javax.inject"
}

testCompile "junit:junit:4.13"
testCompile "org.bigtesting:fixd:1.0.0"
testCompile "org.embulk:embulk-core:0.8.+:tests"
testCompile "org.embulk:embulk-core:0.9.23:tests"
testCompile "org.embulk:embulk-standards:0.9.23"
testCompile "org.embulk:embulk-deps-buffer:0.9.23"
testCompile "org.embulk:embulk-deps-config:0.9.23"
testCompile "org.mockito:mockito-core:1.9.5"
testCompile "com.github.tomakehurst:wiremock-jre8:2.25.1"
}

embulkPlugin {
mainClass = "org.embulk.output.td.TdOutputPlugin"
category = "output"
type = "td"
}

javadoc {
options {
locale = 'en_US'
encoding = 'UTF-8'
}
}

// add tests/javadoc/source jar tasks as artifacts to be released
task testsJar(type: Jar, dependsOn: classes) {
classifier = "tests"
from sourceSets.test.output
}
task sourcesJar(type: Jar, dependsOn: classes) {
classifier = "sources"
from sourceSets.main.allSource
}
task javadocJar(type: Jar, dependsOn: javadoc) {
classifier = "javadoc"
from javadoc.destinationDir
}

// bintray and publishing
bintray {
// write at your bintray user name and api key to ~/.gradle/gradle.properties file:
user = project.hasProperty('bintray_user') ? bintray_user : ''
key = project.hasProperty('bintray_api_key') ? bintray_api_key : ''

publications = ['bintrayMavenRelease']
publications = [ "embulkMavenRelease" ]
publish = true

pkg {
Expand All @@ -74,9 +107,10 @@ bintray {
}
}
}

publishing {
publications {
bintrayMavenRelease(MavenPublication) {
embulkMavenRelease(MavenPublication) {
from components.java
artifact testsJar
artifact sourcesJar
Expand All @@ -85,66 +119,15 @@ publishing {
}
}

task classpath(type: Copy, dependsOn: ["jar"]) {
doFirst { file("classpath").deleteDir() }
from (configurations.runtime - configurations.provided + files(jar.archivePath))
into "classpath"
gem {
authors = [ "Muga Nishizawa" ]
email = [ "[email protected]" ]
summary = "TreasureData output plugin for Embulk"
homepage = "https://github.com/treasure-data/embulk-output-td"
licenses = [ "Apache 2.0" ]
}
clean { delete 'classpath' }

// add tests/javadoc/source jar tasks as artifacts to be released
task testsJar(type: Jar, dependsOn: classes) {
classifier = 'tests'
from sourceSets.test.output
}
task sourcesJar(type: Jar, dependsOn: classes) {
classifier = 'sources'
from sourceSets.main.allSource
}
task javadocJar(type: Jar, dependsOn: javadoc) {
classifier = 'javadoc'
from javadoc.destinationDir
}

task gem(type: JRubyExec, dependsOn: ["gemspec", "classpath"]) {
jrubyArgs "-rrubygems/gem_runner", "-eGem::GemRunner.new.run(ARGV)", "build"
script "${project.name}.gemspec"
doLast { ant.move(file: "${project.name}-${project.version}.gem", todir: "pkg") }
}

task gemPush(type: JRubyExec, dependsOn: ["gem"]) {
jrubyArgs "-rrubygems/gem_runner", "-eGem::GemRunner.new.run(ARGV)", "push"
script "pkg/${project.name}-${project.version}.gem"
}

task "package"(dependsOn: ["gemspec", "classpath"]) << {
println "> Build succeeded."
println "> You can run embulk with '-L ${file(".").absolutePath}' argument."
}

task gemspec {
ext.gemspecFile = file("${project.name}.gemspec")
inputs.file "build.gradle"
outputs.file gemspecFile
doLast { gemspecFile.write($/
Gem::Specification.new do |spec|
spec.name = "${project.name}"
spec.version = "${project.version}"
spec.authors = ["Muga Nishizawa"]
spec.summary = %[TreasureData output plugin for Embulk]
spec.description = %[TreasureData output plugin is an Embulk plugin that loads records to TreasureData read by any input plugins. Search the input plugins by 'embulk-output' keyword.]
spec.email = ["[email protected]"]
spec.licenses = ["Apache 2.0"]
spec.homepage = "https://github.com/treasure-data/embulk-output-td"

spec.files = `git ls-files`.split("\n") + Dir["classpath/*.jar"]
spec.test_files = spec.files.grep(%r"^(test|spec)/")
spec.require_paths = ["lib"]

spec.add_development_dependency 'bundler', ['~> 1.0']
spec.add_development_dependency 'rake', ['>= 10.0']
end
/$)
}
gemPush {
host = "https://rubygems.org"
outputs.upToDateWhen { false }
}
clean { delete "${project.name}.gemspec" }
13 changes: 0 additions & 13 deletions circle.yml

This file was deleted.

18 changes: 0 additions & 18 deletions embulk-output-td.gemspec

This file was deleted.

9 changes: 1 addition & 8 deletions gradle/check.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,6 @@ checkstyle {
//configFile = rootProject.file('./checkstyle.xml') // default {project.projectDir}/config/checkstyle/checkstyle.xml
}

// FindBugs
// @see https://docs.gradle.org/2.5/userguide/findbugs_plugin.html
apply plugin: 'findbugs'
findbugs {
ignoreFailures = true
}

// PMD
// @see https://docs.gradle.org/2.5/userguide/pmd_plugin.html
apply plugin: 'pmd'
Expand All @@ -27,7 +20,7 @@ tasks.withType(Pmd) {
apply plugin: 'jacoco'
jacocoTestReport { // will use td-client v0.6.x
afterEvaluate {
classDirectories = files(classDirectories.files.collect {
classDirectories.from = files(classDirectories.files.collect {
fileTree(dir: it, exclude: 'com/treasuredata/api/**')
})
}
Expand Down
17 changes: 17 additions & 0 deletions gradle/dependency-locks/embulkPluginRuntime.lockfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# This is a Gradle generated file for dependency locking.
# Manual edits can break the build and are not advised.
# This file is expected to be part of source control.
com.fasterxml.jackson.core:jackson-annotations:2.8.1
com.fasterxml.jackson.core:jackson-core:2.8.1
com.fasterxml.jackson.core:jackson-databind:2.8.1
com.fasterxml.jackson.datatype:jackson-datatype-guava:2.8.1
com.fasterxml.jackson.datatype:jackson-datatype-json-org:2.8.1
com.google.guava:guava:21.0
com.googlecode.json-simple:json-simple:1.1.1
com.squareup.okhttp3:okhttp-urlconnection:3.9.0
com.squareup.okhttp3:okhttp:3.9.0
com.squareup.okio:okio:1.13.0
com.treasuredata.client:td-client:0.8.4
junit:junit:4.10
org.apache.geronimo.bundles:json:20090211_1
org.hamcrest:hamcrest-core:1.1
Binary file modified gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
3 changes: 1 addition & 2 deletions gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
#Tue Aug 08 17:33:43 PDT 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.2.1-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-3.2.1-bin.zip
Loading

0 comments on commit c59be25

Please sign in to comment.