Skip to content

Commit

Permalink
bump to embulk 0.10
Browse files Browse the repository at this point in the history
  • Loading branch information
yas-okadatech committed Nov 29, 2024
1 parent 1e2053a commit 75ded3a
Show file tree
Hide file tree
Showing 11 changed files with 111 additions and 96 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ jobs:
touch $HOME/.gem/credentials
chmod 0600 $HOME/.gem/credentials
printf -- "---\n:github: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
gem push --KEY github --host https://rubygems.pkg.github.com/${OWNER} ./pkg/*.gem
gem push --KEY github --host https://rubygems.pkg.github.com/${OWNER} ./build/gems/*.gem
env:
GEM_HOST_API_KEY: "Bearer ${{secrets.GITHUB_TOKEN}}"
OWNER: ${{ github.repository_owner }}
Expand Down
111 changes: 51 additions & 60 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,18 +1,19 @@
plugins {
id "com.jfrog.bintray" version "1.1"
id "com.github.jruby-gradle.base" version "1.5.0"
id "com.github.johnrengelman.shadow" version "6.1.0" apply false
id "java"
id "maven-publish"
id "org.embulk.embulk-plugins" version "0.5.5"
id "com.github.johnrengelman.shadow" version "6.1.0" apply false
id "checkstyle"
id "com.palantir.git-version" version "0.12.3"
id "com.diffplug.spotless" version "6.13.0"
}
import com.github.jrubygradle.JRubyExec

repositories {
mavenCentral()
jcenter()
}

group = "io.trocco"
description = "Dumps records to Kintone."
version = {
def vd = versionDetails()
if (vd.commitDistance == 0 && vd.lastTag ==~ /^[0-9]+\.[0-9]+\.[0-9]$/) {
Expand All @@ -27,25 +28,36 @@ sourceCompatibility = 1.8
targetCompatibility = 1.8

dependencies {
compileOnly "org.embulk:embulk-core:0.9.23"
def embulkVersion = "0.10.39"

compileOnly "org.embulk:embulk-api:${embulkVersion}"
compileOnly "org.embulk:embulk-spi:${embulkVersion}"
implementation "org.embulk:embulk-util-config:0.3.4"
implementation "org.embulk:embulk-util-retryhelper:0.9.0"
implementation "org.embulk:embulk-util-json:0.3.0"

implementation "com.google.inject:guice:4.0"
implementation "com.google.code.externalsortinginjava:externalsortinginjava:0.6.2"
implementation 'org.apache.commons:commons-lang3:3.4'
implementation project(path: ":shadow-kintone-java-client", configuration: "shadow")

testImplementation "junit:junit:4.+"
testImplementation "org.embulk:embulk-test:0.9.23"
testImplementation "org.embulk:embulk-standards:0.9.23"
testImplementation "org.embulk:embulk-deps-buffer:0.9.23"
testImplementation "org.embulk:embulk-deps-config:0.9.23"
testImplementation "org.embulk:embulk-core:${embulkVersion}"
testImplementation "org.embulk:embulk-deps:${embulkVersion}"
testImplementation "org.embulk:embulk-junit4:${embulkVersion}"
testImplementation "org.embulk:embulk-formatter-csv:${embulkVersion}"
testImplementation "org.embulk:embulk-input-file:${embulkVersion}"
testImplementation "org.embulk:embulk-parser-csv:${embulkVersion}"
testImplementation "org.mockito:mockito-inline:4.11.0"
testImplementation "ch.qos.logback:logback-classic:1.3.8"
testImplementation "net.jcip:jcip-annotations:1.0"
testImplementation 'javax.xml.bind:jaxb-api:2.3.1'
}

task classpath(type: Copy, dependsOn: ["jar"]) {
doFirst { file("classpath").deleteDir() }
from (configurations.runtimeClasspath + files(jar.archivePath))
into "classpath"
}
embulkPlugin {
mainClass = "org.embulk.output.kintone.KintoneOutputPlugin"
category = "output"
type = "kintone"
}
clean { delete "classpath" }

checkstyle {
Expand All @@ -65,53 +77,32 @@ task checkstyle(type: Checkstyle) {
source = sourceSets.main.allJava + sourceSets.test.allJava
}

task gem(type: JRubyExec, dependsOn: ["gemspec", "classpath"]) {
jrubyArgs "-S"
script "gem"
scriptArgs "build", "${project.name}.gemspec"
doLast { ant.move(file: "${project.name}-${project.version}.gem", todir: "pkg") }
}

task gemPush(type: JRubyExec, dependsOn: ["gem"]) {
jrubyArgs "-S"
script "gem"
scriptArgs "push", "pkg/${project.name}-${project.version}.gem"
}

task "package"(dependsOn: ["gemspec", "classpath"]) {
doLast {
println "> Build succeeded."
println "> You can run embulk with '-L ${file(".").absolutePath}' argument."
// This Gradle plugin's POM dependency modification works for "maven-publish" tasks.
//
// Note that "uploadArchives" is no longer supported. It is deprecated in Gradle 6 to be removed in Gradle 7.
// https://github.com/gradle/gradle/issues/3003#issuecomment-495025844
publishing {
publications {
embulkPluginMaven(MavenPublication) { // Publish it with "publishEmbulkPluginMavenPublicationToMavenRepository".
from components.java // Must be "components.java". The dependency modification works only for it.
}
}
}

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 = ["takeshi fujita"]
spec.summary = %[kintone output plugin for Embulk]
spec.description = %[Dumps records to Kintone.]
spec.email = ["tksfjt1024@gmail.com"]
spec.licenses = ["MIT"]
spec.homepage = "https://github.com/trocco-io/embulk-output-kintone"

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_dependency 'YOUR_GEM_DEPENDENCY', ['~> YOUR_GEM_DEPENDENCY_VERSION']
spec.add_development_dependency 'bundler', ['~> 1.0']
spec.add_development_dependency 'rake', ['~> 12.0']
end
/$)
repositories {
maven {
url = "${project.buildDir}/mavenPublishLocal"
}
}
}
clean { delete "${project.name}.gemspec" }
gem {
authors = ["takeshi fujita"]
summary = "kintone output plugin for Embulk"
email = ["tksfjt1024@gmail.com"]
licenses = ["MIT"]
homepage = "https://github.com/trocco-io/embulk-output-kintone"
}
gemPush {
host = "https://rubygems.org"
}

spotless {
java {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package org.embulk.output.kintone;

import java.util.List;
import org.embulk.config.Config;
import org.embulk.config.ConfigDefault;
import org.embulk.config.Task;
import org.embulk.util.config.Config;
import org.embulk.util.config.ConfigDefault;
import org.embulk.util.config.Task;

public interface KintoneColumnOption extends Task {
@Config("type")
Expand Down
15 changes: 11 additions & 4 deletions src/main/java/org/embulk/output/kintone/KintoneOutputPlugin.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,22 +8,29 @@
import org.embulk.config.TaskSource;
import org.embulk.output.kintone.reducer.ReducedPageOutput;
import org.embulk.output.kintone.reducer.Reducer;
import org.embulk.spi.Exec;
import org.embulk.spi.OutputPlugin;
import org.embulk.spi.Schema;
import org.embulk.spi.TransactionalPageOutput;
import org.embulk.util.config.ConfigMapper;
import org.embulk.util.config.ConfigMapperFactory;
import org.embulk.util.config.TaskMapper;

public class KintoneOutputPlugin implements OutputPlugin {
private static final ConfigMapperFactory CONFIG_MAPPER_FACTORY =
ConfigMapperFactory.builder().addDefaultModules().build();
private static final ConfigMapper CONFIG_MAPPER = CONFIG_MAPPER_FACTORY.createConfigMapper();
private static final TaskMapper TASK_MAPPER = CONFIG_MAPPER_FACTORY.createTaskMapper();

@Override
public ConfigDiff transaction(
ConfigSource config, Schema schema, int taskCount, OutputPlugin.Control control) {
PluginTask task = config.loadConfig(PluginTask.class);
PluginTask task = CONFIG_MAPPER.map(config, PluginTask.class);
task.setDerivedColumns(Collections.emptySet());
List<TaskReport> taskReports = control.run(task.dump());
return task.getReduceKeyName().isPresent()
? new Reducer(task, schema)
.reduce(taskReports, schema.lookupColumn(task.getReduceKeyName().get()))
: Exec.newConfigDiff();
: CONFIG_MAPPER_FACTORY.newConfigDiff();
}

@Override
Expand All @@ -38,7 +45,7 @@ public void cleanup(

@Override
public TransactionalPageOutput open(TaskSource taskSource, Schema schema, int taskIndex) {
PluginTask task = taskSource.loadTask(PluginTask.class);
PluginTask task = TASK_MAPPER.map(taskSource, PluginTask.class);
return task.getReduceKeyName().isPresent()
? new ReducedPageOutput(schema, taskIndex)
: new KintonePageOutput(task, schema);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package org.embulk.output.kintone;

import static org.embulk.spi.util.RetryExecutor.retryExecutor;
import static org.embulk.util.retryhelper.RetryExecutor.retryExecutor;

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
Expand Down Expand Up @@ -34,8 +34,8 @@
import org.embulk.spi.PageReader;
import org.embulk.spi.Schema;
import org.embulk.spi.TransactionalPageOutput;
import org.embulk.spi.util.RetryExecutor.RetryGiveupException;
import org.embulk.spi.util.RetryExecutor.Retryable;
import org.embulk.util.retryhelper.RetryGiveupException;
import org.embulk.util.retryhelper.Retryable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package org.embulk.output.kintone;

import org.embulk.config.Config;
import org.embulk.config.ConfigDefault;
import org.embulk.config.Task;
import org.embulk.util.config.Config;
import org.embulk.util.config.ConfigDefault;
import org.embulk.util.config.Task;

public interface KintoneRetryOption extends Task {
@Config("limit")
Expand Down
6 changes: 3 additions & 3 deletions src/main/java/org/embulk/output/kintone/PluginTask.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@
import java.util.Map;
import java.util.Optional;
import java.util.Set;
import org.embulk.config.Config;
import org.embulk.config.ConfigDefault;
import org.embulk.config.Task;
import org.embulk.output.kintone.record.Skip;
import org.embulk.spi.Column;
import org.embulk.util.config.Config;
import org.embulk.util.config.ConfigDefault;
import org.embulk.util.config.Task;

public interface PluginTask extends Task {
@Config("domain")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,9 @@
import org.embulk.spi.Exec;
import org.embulk.spi.PageBuilder;
import org.embulk.spi.Schema;
import org.embulk.spi.json.JsonParser;
import org.embulk.spi.type.Type;
import org.embulk.spi.type.Types;
import org.embulk.util.json.JsonParser;
import org.msgpack.value.ArrayValue;
import org.msgpack.value.MapValue;
import org.msgpack.value.Value;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,16 @@
import org.embulk.spi.Schema;
import org.embulk.spi.type.Type;
import org.embulk.spi.type.Types;
import org.embulk.util.config.ConfigMapper;
import org.embulk.util.config.ConfigMapperFactory;
import org.junit.Before;
import org.junit.Test;

public class KintoneClientTest extends TestKintoneOutputPlugin {
private static final ConfigMapperFactory CONFIG_MAPPER_FACTORY =
ConfigMapperFactory.builder().addDefaultModules().build();
private static final ConfigMapper CONFIG_MAPPER = CONFIG_MAPPER_FACTORY.createConfigMapper();

private ConfigSource config;

@Before
Expand Down Expand Up @@ -113,7 +119,7 @@ private void merge(ConfigSource config) {
}

private PluginTask task() {
return config.loadConfig(PluginTask.class);
return CONFIG_MAPPER.map(config, PluginTask.class);
}

private static Schema schema(Schema.Builder builder) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package org.embulk.output.kintone;

import com.fasterxml.jackson.databind.node.ObjectNode;
import java.util.Collections;
import java.util.List;
import org.embulk.config.TaskSource;
Expand Down Expand Up @@ -64,6 +65,16 @@ public void validate() {}
public TaskSource dump() {
return null;
}

@Override
public ObjectNode toObjectNode() {
return null;
}

@Override
public TaskSource toTaskSource() {
return null;
}
};
}
}
Loading

0 comments on commit 75ded3a

Please sign in to comment.