embulk 0.3.2 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -13
- data/.travis.yml +16 -0
- data/Gemfile +0 -1
- data/README.md +37 -19
- data/Rakefile +5 -37
- data/bin/embulk +1 -1
- data/build.gradle +178 -95
- data/embulk-core/build.gradle +1 -1
- data/embulk-core/src/main/java/org/embulk/command/Runner.java +11 -10
- data/embulk-core/src/main/java/org/embulk/config/ConfigDiff.java +26 -0
- data/embulk-core/src/main/java/org/embulk/config/ConfigInject.java +14 -0
- data/embulk-core/src/main/java/org/embulk/config/DataSourceImpl.java +2 -2
- data/embulk-core/src/main/java/org/embulk/config/DataSourceSerDe.java +4 -3
- data/embulk-core/src/main/java/org/embulk/config/TaskSerDe.java +5 -3
- data/embulk-core/src/main/java/org/embulk/config/TaskValidationException.java +1 -0
- data/embulk-core/src/main/java/org/embulk/exec/ExecutionResult.java +6 -6
- data/embulk-core/src/main/java/org/embulk/exec/GuessExecutor.java +19 -19
- data/embulk-core/src/main/java/org/embulk/exec/LocalExecutor.java +61 -36
- data/embulk-core/src/main/java/org/embulk/plugin/InjectedPluginSource.java +4 -0
- data/embulk-core/src/main/java/org/embulk/plugin/PluginManager.java +16 -1
- data/embulk-core/src/main/java/org/embulk/spi/Column.java +1 -1
- data/embulk-core/src/main/java/org/embulk/spi/{SchemaVisitor.java → ColumnVisitor.java} +1 -1
- data/embulk-core/src/main/java/org/embulk/spi/Exec.java +3 -3
- data/embulk-core/src/main/java/org/embulk/spi/ExecSession.java +2 -2
- data/embulk-core/src/main/java/org/embulk/spi/FileInputPlugin.java +3 -3
- data/embulk-core/src/main/java/org/embulk/spi/FileInputRunner.java +3 -3
- data/embulk-core/src/main/java/org/embulk/spi/FileOutputPlugin.java +3 -3
- data/embulk-core/src/main/java/org/embulk/spi/FileOutputRunner.java +3 -3
- data/embulk-core/src/main/java/org/embulk/spi/FilterPlugin.java +1 -1
- data/embulk-core/src/main/java/org/embulk/spi/GuessPlugin.java +2 -2
- data/embulk-core/src/main/java/org/embulk/spi/InputPlugin.java +3 -3
- data/embulk-core/src/main/java/org/embulk/spi/OutputPlugin.java +3 -3
- data/embulk-core/src/main/java/org/embulk/spi/PluginClassLoader.java +80 -0
- data/embulk-core/src/main/java/org/embulk/spi/Schema.java +1 -1
- data/embulk-core/src/main/java/org/embulk/spi/time/TimestampFormatter.java +2 -2
- data/embulk-core/src/main/java/org/embulk/spi/time/TimestampParser.java +2 -2
- data/embulk-core/src/main/java/org/embulk/spi/util/Filters.java +1 -1
- data/embulk-core/src/main/java/org/embulk/spi/util/LineEncoder.java +2 -2
- data/embulk-core/src/main/java/org/embulk/spi/util/PagePrinter.java +6 -6
- data/embulk-core/src/main/java/org/embulk/spi/util/Pages.java +6 -6
- data/embulk-core/src/test/java/org/embulk/GuiceBinder.java +1 -1
- data/embulk-core/src/test/java/org/embulk/plugin/MockPluginSource.java +1 -0
- data/embulk-core/src/test/java/org/embulk/spi/MockFormatterPlugin.java +2 -2
- data/embulk-core/src/test/java/org/embulk/spi/PageTestUtils.java +1 -1
- data/embulk-core/src/test/java/org/embulk/spi/TestFileInputRunner.java +3 -3
- data/embulk-core/src/test/java/org/embulk/spi/TestFileOutputRunner.java +4 -4
- data/embulk-docs/Makefile +178 -0
- data/embulk-docs/build.gradle +20 -0
- data/embulk-docs/make.bat +243 -0
- data/embulk-docs/push-gh-pages.sh +29 -0
- data/embulk-docs/src/conf.py +260 -0
- data/embulk-docs/src/index.rst +19 -0
- data/embulk-docs/src/release.rst +14 -0
- data/embulk-docs/src/release/release-0.1.0.rst +8 -0
- data/embulk-docs/src/release/release-0.2.0.rst +16 -0
- data/embulk-docs/src/release/release-0.2.1.rst +19 -0
- data/embulk-docs/src/release/release-0.3.0.rst +34 -0
- data/embulk-docs/src/release/release-0.3.1.rst +11 -0
- data/embulk-docs/src/release/release-0.3.2.rst +15 -0
- data/embulk-docs/src/release/release-0.4.0.rst +74 -0
- data/embulk-standards/build.gradle +0 -1
- data/embulk-standards/src/main/java/org/embulk/standards/CsvFormatterPlugin.java +2 -2
- data/embulk-standards/src/main/java/org/embulk/standards/CsvParserPlugin.java +12 -3
- data/embulk-standards/src/main/java/org/embulk/standards/GzipFileDecoderPlugin.java +2 -2
- data/embulk-standards/src/main/java/org/embulk/standards/LocalFileInputPlugin.java +49 -26
- data/embulk-standards/src/main/java/org/embulk/standards/LocalFileOutputPlugin.java +16 -17
- data/embulk-standards/src/main/java/org/embulk/standards/NullOutputPlugin.java +4 -4
- data/embulk-standards/src/main/java/org/embulk/standards/StandardPluginModule.java +0 -1
- data/embulk-standards/src/main/java/org/embulk/standards/StdoutOutputPlugin.java +5 -5
- data/gradle/wrapper/gradle-wrapper.jar +0 -0
- data/gradle/wrapper/gradle-wrapper.properties +2 -2
- data/lib/embulk/buffer.rb +2 -2
- data/lib/embulk/column.rb +6 -6
- data/lib/embulk/command/embulk_example.rb +1 -1
- data/lib/embulk/command/embulk_new_plugin.rb +87 -0
- data/lib/embulk/command/embulk_run.rb +84 -26
- data/lib/embulk/data/bundle/Gemfile +12 -20
- data/lib/embulk/data/bundle/embulk/{filter_example.rb → filter/example.rb} +3 -3
- data/lib/embulk/data/bundle/embulk/{input_example.rb → input/example.rb} +3 -3
- data/lib/embulk/data/bundle/embulk/{output_example.rb → output/example.rb} +3 -3
- data/lib/embulk/data/new/LICENSE.txt +21 -0
- data/lib/embulk/data/new/README.md.erb +75 -0
- data/lib/embulk/data/new/gitignore.erb +12 -0
- data/lib/embulk/data/new/java/build.gradle.erb +57 -0
- data/lib/embulk/data/new/java/decoder.java.erb +40 -0
- data/lib/embulk/data/new/java/encoder.java.erb +40 -0
- data/lib/embulk/data/new/java/file_input.java.erb +64 -0
- data/lib/embulk/data/new/java/file_output.java.erb +66 -0
- data/lib/embulk/data/new/java/filter.java.erb +47 -0
- data/lib/embulk/data/new/java/formatter.java.erb +45 -0
- data/lib/embulk/data/new/java/gradle/wrapper/gradle-wrapper.jar +0 -0
- data/lib/embulk/data/new/java/gradle/wrapper/gradle-wrapper.properties +6 -0
- data/lib/embulk/data/new/java/gradlew +164 -0
- data/lib/embulk/data/new/java/gradlew.bat +90 -0
- data/lib/embulk/data/new/java/input.java.erb +69 -0
- data/lib/embulk/data/new/java/output.java.erb +65 -0
- data/lib/embulk/data/new/java/parser.java.erb +51 -0
- data/lib/embulk/data/new/java/plugin_loader.rb.erb +3 -0
- data/lib/embulk/data/new/java/test.java.erb +5 -0
- data/lib/embulk/data/new/ruby/Gemfile +2 -0
- data/lib/embulk/data/new/ruby/Rakefile +1 -0
- data/lib/embulk/data/new/ruby/filter.rb.erb +39 -0
- data/lib/embulk/data/new/ruby/gemspec.erb +19 -0
- data/lib/embulk/data/new/ruby/input.rb.erb +47 -0
- data/lib/embulk/data/new/ruby/output.rb.erb +59 -0
- data/lib/embulk/data/package_data.rb +64 -0
- data/lib/embulk/data_source.rb +2 -2
- data/lib/embulk/decoder_plugin.rb +27 -0
- data/lib/embulk/encoder_plugin.rb +27 -0
- data/lib/embulk/error.rb +3 -0
- data/lib/embulk/file_input_plugin.rb +27 -0
- data/lib/embulk/file_output_plugin.rb +27 -0
- data/lib/embulk/filter_plugin.rb +28 -9
- data/lib/embulk/formatter_plugin.rb +105 -0
- data/lib/embulk/guess_csv.rb +10 -1
- data/lib/embulk/guess_plugin.rb +22 -27
- data/lib/embulk/input_plugin.rb +34 -20
- data/lib/embulk/java/bootstrap.rb +5 -0
- data/lib/embulk/java/imports.rb +7 -0
- data/lib/embulk/java_plugin.rb +84 -0
- data/lib/embulk/output_plugin.rb +35 -19
- data/lib/embulk/page.rb +1 -1
- data/lib/embulk/page_builder.rb +1 -1
- data/lib/embulk/parser_plugin.rb +76 -0
- data/lib/embulk/plugin.rb +130 -65
- data/lib/embulk/plugin_registry.rb +19 -8
- data/lib/embulk/schema.rb +4 -4
- data/lib/embulk/version.rb +1 -1
- data/settings.gradle +1 -0
- metadata +123 -90
- data/ChangeLog +0 -46
- data/embulk-cli/pom.xml +0 -94
- data/embulk-core/pom.xml +0 -148
- data/embulk-core/src/main/java/org/embulk/config/NextConfig.java +0 -26
- data/embulk-standards/pom.xml +0 -68
- data/embulk-standards/src/main/java/org/embulk/standards/S3FileInputPlugin.java +0 -250
- data/embulk-standards/src/test/java/org/embulk/standards/TestS3FileInputPlugin.java +0 -43
- data/pom.xml +0 -541
checksums.yaml
CHANGED
|
@@ -1,15 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
|
|
5
|
-
data.tar.gz: !binary |-
|
|
6
|
-
NzkyM2I3NzI2YmY4M2EyNGI3MzA1ODYyYmIwMzgxZjdkMzYxODg3Yg==
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: bf78740441995394000d1ada6d8ca939cda77754
|
|
4
|
+
data.tar.gz: 9da2b0b76a8b702dffa2063fcc626e1ea25698af
|
|
7
5
|
SHA512:
|
|
8
|
-
metadata.gz:
|
|
9
|
-
|
|
10
|
-
N2JjODJhOTE1M2EwYmQxMjBiNWEzNmNjNjJkZDRiOTUyMjMzMTBlMGNiMTYx
|
|
11
|
-
YzIxNGRjMTk2OTI5YzQwYjQ5NTcyODQ0ZGQzOTJhYzA2YTU3NmM=
|
|
12
|
-
data.tar.gz: !binary |-
|
|
13
|
-
ZGUxMzk0ZjcyNWRmMTNhY2IwYzFlODg3NGMzOGMyMzlhNzM5YjllZjkyMWMy
|
|
14
|
-
ZTc5Yjk2YzY0MWE2MTBmODZhNmVjMWMzZjdjMDg0YWRkNDBmZGIwZWVjN2Rl
|
|
15
|
-
NzFiN2EwNmU2Y2M3MzdiMWVhMDUxZDRmZDE1YzBlYWVjYzk0YTU=
|
|
6
|
+
metadata.gz: 12cec9ae89bab146559eaa68e2cc57a6ac71a48e18b81b3c393077842dc7f30b7fb8ea41502538c23d1ae0ca2e64f428cacd534e04f06d59d39d6e096b9b2d79
|
|
7
|
+
data.tar.gz: 513f463830ac564a873bf11a0a58905f57c4de91f4415718b428721cc836ca54d25c3293869b1974652189c9c29f4969c120d8ce1ada72e5d55e7025e7108234
|
data/.travis.yml
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
language: java
|
|
2
|
+
jdk:
|
|
3
|
+
- oraclejdk8
|
|
4
|
+
sudo: false
|
|
5
|
+
addons:
|
|
6
|
+
apt_packages:
|
|
7
|
+
- sphinx
|
|
8
|
+
- yardoc
|
|
9
|
+
script:
|
|
10
|
+
- ./gradlew check
|
|
11
|
+
- ./embulk-docs/push-gh-pages.sh
|
|
12
|
+
env:
|
|
13
|
+
global:
|
|
14
|
+
GIT_USER_NAME: travis
|
|
15
|
+
GIT_USER_NAME: travis@embulk.org
|
|
16
|
+
secure: ZiDtC073/oAXtPkXZYP9MoVBidLrrjeAV8PeXICtTzVMxR4Td5QDifiTy2NNStVLT+1g6NgzjSK9XFpDyVFb2cNy+9EOP+FoSC6Q0gRD/9nIrvB/LAtiDDfLqRtUrvPjN6U8BF3Zm2IvwTP77ml8bZZy3SH9ob4NQhxxEXVtynI=
|
data/Gemfile
CHANGED
data/README.md
CHANGED
|
@@ -97,28 +97,50 @@ java -jar embulk.jar cleanup config.yml -r resume-state.yml
|
|
|
97
97
|
### Build
|
|
98
98
|
|
|
99
99
|
```
|
|
100
|
-
|
|
100
|
+
./gradlew cli # creates pkg/embulk-VERSION.jar
|
|
101
|
+
./gradlew gem # creates pkg/embulk-VERSION.gem
|
|
101
102
|
```
|
|
102
103
|
|
|
103
|
-
You can see JaCoCo's test coverage report at
|
|
104
|
+
You can see JaCoCo's test coverage report at `${project}/build/reports/tests/index.html`
|
|
105
|
+
You can see Findbug's report at `${project}/build/reports/findbug/main.html` # FIXME coverage information is not included somehow
|
|
106
|
+
|
|
107
|
+
You can use `classpath` task to use `./bin/embulk` for development:
|
|
104
108
|
|
|
105
|
-
To build by Gradle, run:
|
|
106
109
|
```
|
|
107
|
-
./gradlew
|
|
110
|
+
./gradlew classpath # -x test: skip test
|
|
111
|
+
./bin/embulk
|
|
108
112
|
```
|
|
109
|
-
|
|
113
|
+
|
|
114
|
+
To deploy artifacts to your local maven repository at ~/.m2/repository/:
|
|
115
|
+
|
|
110
116
|
```
|
|
111
117
|
./gradlew install
|
|
112
118
|
```
|
|
113
|
-
|
|
119
|
+
|
|
120
|
+
To compile the source code of embulk-core project only:
|
|
121
|
+
|
|
114
122
|
```
|
|
115
123
|
./gradlew :embulk-core:compileJava
|
|
116
124
|
```
|
|
117
|
-
|
|
125
|
+
|
|
126
|
+
Task `dependencies` shows dependency tree of embulk-core project:
|
|
127
|
+
|
|
118
128
|
```
|
|
119
129
|
./gradlew :embulk-core:dependencies
|
|
120
130
|
```
|
|
121
131
|
|
|
132
|
+
### Documents
|
|
133
|
+
|
|
134
|
+
Embulk uses Sphinx, YARD (Ruby API) and JavaDoc (Java API) for document generation.
|
|
135
|
+
|
|
136
|
+
```
|
|
137
|
+
brew install python
|
|
138
|
+
pip install sphinx
|
|
139
|
+
gem install yard
|
|
140
|
+
./gradlew site
|
|
141
|
+
# documents are: embulk-docs/build/html
|
|
142
|
+
```
|
|
143
|
+
|
|
122
144
|
### Release
|
|
123
145
|
|
|
124
146
|
You need to add your bintray account information to ~/.gradle/gradle.properties
|
|
@@ -128,24 +150,20 @@ bintray_user=(bintray user name)
|
|
|
128
150
|
bintray_api_key=(bintray api key)
|
|
129
151
|
```
|
|
130
152
|
|
|
131
|
-
|
|
153
|
+
Update following files:
|
|
132
154
|
|
|
133
|
-
*
|
|
134
|
-
*
|
|
135
|
-
* lib/embulk/version.rb
|
|
155
|
+
* embulk-docs/src/release/release-VERSION.rst (release note)
|
|
156
|
+
* build.gradle (version number)
|
|
157
|
+
* lib/embulk/version.rb (version number)
|
|
136
158
|
|
|
137
159
|
Then, build and upload using gradle:
|
|
138
160
|
|
|
139
161
|
```
|
|
162
|
+
./gradlew releaseCheck
|
|
163
|
+
./gradlew cli gem
|
|
140
164
|
./gradlew bintrayUpload
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
Finally, you need to manually upload the single-file jar package to bintray.
|
|
144
|
-
Run `rake` and upload embulk-VERSION.jar from "Upload Files" link at https://bintray.com/embulk/maven/embulk/VERSION/upload.
|
|
145
|
-
|
|
146
|
-
```
|
|
147
|
-
rake
|
|
148
|
-
# embulk-VERSION.jar is built
|
|
165
|
+
gem push pkg/embulk-....gem
|
|
166
|
+
open "https://bintray.com/embulk/maven/embulk" # and upload pkg/embulk-....jar
|
|
149
167
|
```
|
|
150
168
|
|
|
151
169
|
See also:
|
data/Rakefile
CHANGED
|
@@ -15,44 +15,12 @@ end
|
|
|
15
15
|
|
|
16
16
|
desc "Clean java code and copy files"
|
|
17
17
|
task :clean do
|
|
18
|
-
sh "
|
|
19
|
-
rm_rf "classpath"
|
|
18
|
+
sh "./gradlew clean"
|
|
20
19
|
end
|
|
21
20
|
|
|
22
|
-
desc "
|
|
23
|
-
task :
|
|
24
|
-
sh "
|
|
25
|
-
rm_rf "classpath"
|
|
26
|
-
mkdir_p "classpath"
|
|
27
|
-
cp Dir["embulk-cli/target/dependency/*.jar"], "classpath"
|
|
28
|
-
targets = Dir["embulk-cli/target/embulk-cli-*.jar"]
|
|
29
|
-
targets.reject! {|target| target =~ /-sources.jar$/ || target =~ /-executable.jar$/ }
|
|
30
|
-
cp targets, "classpath"
|
|
21
|
+
desc "Build and copy jar files to ./classpath"
|
|
22
|
+
task :classpath do
|
|
23
|
+
sh "./gradlew classpath"
|
|
31
24
|
end
|
|
32
25
|
|
|
33
|
-
|
|
34
|
-
task :jar do
|
|
35
|
-
require_relative 'lib/embulk/version'
|
|
36
|
-
executable = Dir["embulk-cli/target/embulk-cli-*-executable.jar"].sort.last
|
|
37
|
-
executable_data = File.read(executable).force_encoding('ASCII-8BIT')
|
|
38
|
-
header = <<EOF
|
|
39
|
-
#!/bin/sh
|
|
40
|
-
exec java -jar "$0" "$@"
|
|
41
|
-
exit 127
|
|
42
|
-
EOF
|
|
43
|
-
data = header.force_encoding('ASCII-8BIT') + executable_data
|
|
44
|
-
path = "embulk-#{Embulk::VERSION}.jar"
|
|
45
|
-
rm_f path
|
|
46
|
-
File.open(path, 'wb', 0755) {|f| f.write data }
|
|
47
|
-
puts "Created #{path}"
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
desc "Run clean, compile, build and jar"
|
|
51
|
-
task :all do
|
|
52
|
-
Rake::Task["clean"].invoke
|
|
53
|
-
Rake::Task["compile"].invoke
|
|
54
|
-
Rake::Task["build"].invoke
|
|
55
|
-
Rake::Task["jar"].invoke
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
task :default => :all
|
|
26
|
+
task :default => :classpath
|
data/bin/embulk
CHANGED
|
@@ -45,7 +45,7 @@ jruby_complete = Dir.entries(classpath_dir).find {|jar| jar =~ /jruby-complete-[
|
|
|
45
45
|
unless jruby_complete
|
|
46
46
|
STDERR.puts "Could not find jruby-complete at #{embulk_home}/classpath directory."
|
|
47
47
|
if embulk_home == '.'
|
|
48
|
-
STDERR.puts "Did you run
|
|
48
|
+
STDERR.puts "Did you run ./gradlew classpath? You need to build java code and create ./classpath directory first."
|
|
49
49
|
end
|
|
50
50
|
raise SystemExit.new(1)
|
|
51
51
|
end
|
data/build.gradle
CHANGED
|
@@ -1,37 +1,104 @@
|
|
|
1
|
-
// TODO this build.gradle file just works but not well-written yet...
|
|
2
1
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
}
|
|
10
|
-
dependencies {
|
|
11
|
-
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.0'
|
|
12
|
-
classpath 'com.github.ben-manes:gradle-versions-plugin:0.7'
|
|
13
|
-
}
|
|
2
|
+
plugins {
|
|
3
|
+
id 'com.jfrog.bintray' version '1.1'
|
|
4
|
+
id 'com.github.ben-manes.versions' version '0.7'
|
|
5
|
+
id 'com.github.jruby-gradle.base' version '0.1.5'
|
|
6
|
+
id 'com.github.johnrengelman.shadow' version '1.2.0'
|
|
7
|
+
id 'java'
|
|
14
8
|
}
|
|
15
9
|
|
|
16
10
|
allprojects {
|
|
11
|
+
group = 'org.embulk'
|
|
12
|
+
version = '0.4.0'
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
subprojects {
|
|
16
|
+
apply plugin: 'maven' // install jar files to the local repo: $ gradle install
|
|
17
|
+
apply plugin: 'java'
|
|
18
|
+
apply plugin: 'findbugs'
|
|
19
|
+
apply plugin: 'jacoco'
|
|
20
|
+
|
|
17
21
|
repositories {
|
|
18
22
|
mavenCentral()
|
|
19
23
|
jcenter()
|
|
20
24
|
}
|
|
21
25
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
26
|
+
compileJava.options.encoding = 'UTF-8' // source encoding
|
|
27
|
+
sourceCompatibility = 1.7
|
|
28
|
+
targetCompatibility = 1.7
|
|
25
29
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
30
|
+
configurations {
|
|
31
|
+
// guice depends on asm and cglib but version of the libraries conflict
|
|
32
|
+
// with ones bundled in jruby-complete and cause bytecode compatibility error
|
|
33
|
+
compile.exclude group: 'asm', module: 'asm'
|
|
34
|
+
compile.exclude group: 'org.sonatype.sisu.inject', module: 'cglib'
|
|
35
|
+
}
|
|
29
36
|
|
|
30
|
-
|
|
31
|
-
|
|
37
|
+
// determine which dependencies have updates: $ gradle dependencyUpdates
|
|
38
|
+
dependencies {
|
|
39
|
+
compile 'com.google.guava:guava:18.0'
|
|
40
|
+
compile 'com.google.inject:guice:3.0'
|
|
41
|
+
compile 'com.google.inject.extensions:guice-multibindings:3.0'
|
|
42
|
+
compile 'javax.inject:javax.inject:1'
|
|
43
|
+
compile 'com.fasterxml.jackson.core:jackson-annotations:2.5.0'
|
|
44
|
+
compile 'com.fasterxml.jackson.core:jackson-core:2.5.0'
|
|
45
|
+
compile 'com.fasterxml.jackson.core:jackson-databind:2.5.0'
|
|
46
|
+
compile 'com.fasterxml.jackson.datatype:jackson-datatype-guava:2.5.0'
|
|
47
|
+
compile 'com.fasterxml.jackson.datatype:jackson-datatype-joda:2.5.0'
|
|
48
|
+
compile 'com.fasterxml.jackson.module:jackson-module-guice:2.5.0'
|
|
49
|
+
compile 'log4j:log4j:1.2.17'
|
|
50
|
+
compile 'org.slf4j:slf4j-api:1.7.10'
|
|
51
|
+
compile 'org.slf4j:slf4j-log4j12:1.7.10'
|
|
52
|
+
compile 'org.jruby:jruby-complete:1.7.19'
|
|
53
|
+
compile 'com.google.code.findbugs:annotations:3.0.0'
|
|
54
|
+
compile 'org.yaml:snakeyaml:1.14'
|
|
55
|
+
compile 'javax.validation:validation-api:1.1.0.Final'
|
|
56
|
+
compile 'org.apache.bval:bval-jsr303:0.5'
|
|
57
|
+
compile 'io.airlift:slice:0.9'
|
|
58
|
+
compile 'joda-time:joda-time:2.7'
|
|
59
|
+
compile 'io.netty:netty-buffer:5.0.0.Alpha1'
|
|
60
|
+
compile 'com.ibm.icu:icu4j:54.1.1'
|
|
61
|
+
|
|
62
|
+
testCompile 'junit:junit:4.12'
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
gradle.projectsEvaluated {
|
|
66
|
+
tasks.withType(JavaCompile) {
|
|
67
|
+
options.compilerArgs << "-Xlint:unchecked" //<< "-Xlint:deprecation"
|
|
68
|
+
}
|
|
69
|
+
tasks.withType(FindBugs) {
|
|
70
|
+
reports {
|
|
71
|
+
xml.enabled = false
|
|
72
|
+
html.enabled = true
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
findbugs {
|
|
78
|
+
ignoreFailures = true
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// add javadoc/source jar tasks as artifacts to be released
|
|
82
|
+
task sourcesJar(type: Jar, dependsOn: classes) {
|
|
83
|
+
classifier = 'sources'
|
|
84
|
+
from sourceSets.main.allSource
|
|
85
|
+
}
|
|
86
|
+
task javadocJar(type: Jar, dependsOn: javadoc) {
|
|
87
|
+
classifier = 'javadoc'
|
|
88
|
+
from javadoc.destinationDir
|
|
89
|
+
}
|
|
90
|
+
artifacts {
|
|
91
|
+
archives sourcesJar, javadocJar
|
|
92
|
+
}
|
|
32
93
|
|
|
33
|
-
|
|
34
|
-
|
|
94
|
+
javadoc {
|
|
95
|
+
options {
|
|
96
|
+
locale = 'en_US'
|
|
97
|
+
encoding = 'UTF-8'
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
// upload artifacts to Bintray: $ gradle bintrayUpload
|
|
35
102
|
bintray {
|
|
36
103
|
// write at your bintray user name and api key to ~/.gradle/gradle.properties file:
|
|
37
104
|
// bintray_user=frsyuki
|
|
@@ -42,7 +109,7 @@ allprojects {
|
|
|
42
109
|
publications = ['mavenJava']
|
|
43
110
|
|
|
44
111
|
dryRun = false
|
|
45
|
-
publish = false // TODO
|
|
112
|
+
publish = false // TODO automate uploading embulk.jar and make this true
|
|
46
113
|
|
|
47
114
|
pkg {
|
|
48
115
|
userOrg = 'embulk'
|
|
@@ -70,86 +137,102 @@ allprojects {
|
|
|
70
137
|
}
|
|
71
138
|
}
|
|
72
139
|
|
|
73
|
-
|
|
74
|
-
apply plugin: '
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
'com.google.guava:guava:17.0',
|
|
87
|
-
'com.google.inject:guice:3.0',
|
|
88
|
-
'com.google.inject.extensions:guice-multibindings:3.0',
|
|
89
|
-
'javax.inject:javax.inject:1',
|
|
90
|
-
'com.fasterxml.jackson.core:jackson-annotations:2.4.3',
|
|
91
|
-
'com.fasterxml.jackson.core:jackson-core:2.4.3',
|
|
92
|
-
'com.fasterxml.jackson.core:jackson-databind:2.4.3',
|
|
93
|
-
'com.fasterxml.jackson.datatype:jackson-datatype-guava:2.4.3',
|
|
94
|
-
'com.fasterxml.jackson.datatype:jackson-datatype-joda:2.4.3',
|
|
95
|
-
'com.fasterxml.jackson.module:jackson-module-guice:2.4.3',
|
|
96
|
-
'log4j:log4j:1.2.17',
|
|
97
|
-
'org.slf4j:slf4j-api:1.7.9',
|
|
98
|
-
'org.slf4j:slf4j-log4j12:1.7.9',
|
|
99
|
-
'org.jruby:jruby-complete:1.7.16.1',
|
|
100
|
-
'com.google.code.findbugs:annotations:3.0.0',
|
|
101
|
-
'org.yaml:snakeyaml:1.14',
|
|
102
|
-
'javax.validation:validation-api:1.1.0.Final',
|
|
103
|
-
'org.apache.bval:bval-jsr303:0.5',
|
|
104
|
-
'io.airlift:slice:0.7',
|
|
105
|
-
'joda-time:joda-time:2.3',
|
|
106
|
-
'io.netty:netty-buffer:4.0.24.Final',
|
|
107
|
-
'com.ibm.icu:icu4j:53.1'
|
|
108
|
-
|
|
109
|
-
testCompile 'junit:junit:4.10',
|
|
110
|
-
'org.mockito:mockito-core:1.9.5'
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
// custom tasks for creating source/javadoc jars
|
|
114
|
-
task sourcesJar(type: Jar, dependsOn: classes) {
|
|
115
|
-
classifier = 'sources'
|
|
116
|
-
from sourceSets.main.allSource
|
|
140
|
+
project(':embulk-cli') {
|
|
141
|
+
apply plugin: 'com.github.johnrengelman.shadow'
|
|
142
|
+
|
|
143
|
+
shadowJar {
|
|
144
|
+
manifest {
|
|
145
|
+
attributes 'Implementation-Title': project.name,
|
|
146
|
+
'Implementation-Version': project.version,
|
|
147
|
+
'Implementation-Vendor-Id': project.group,
|
|
148
|
+
'Specification-Title': project.name,
|
|
149
|
+
'Specification-Version': project.version,
|
|
150
|
+
'Main-Class': 'org.embulk.cli.Main'
|
|
151
|
+
}
|
|
152
|
+
append("${parent.projectDir}/COPYING")
|
|
117
153
|
}
|
|
118
154
|
|
|
119
|
-
task
|
|
120
|
-
|
|
121
|
-
from
|
|
155
|
+
task classpath(type: Copy) {
|
|
156
|
+
doFirst { file("${parent.projectDir}/classpath").mkdirs() }
|
|
157
|
+
from configurations.runtime
|
|
158
|
+
into "${parent.projectDir}/classpath"
|
|
122
159
|
}
|
|
160
|
+
}
|
|
123
161
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
162
|
+
task classpath(dependsOn: ['build', ':embulk-cli:classpath']) << { }
|
|
163
|
+
clean { delete 'classpath' }
|
|
164
|
+
|
|
165
|
+
task cli(dependsOn: ':embulk-cli:shadowJar') << {
|
|
166
|
+
file('pkg').mkdirs()
|
|
167
|
+
File f = file("pkg/embulk-${project.version}.jar")
|
|
168
|
+
f.write('''\
|
|
169
|
+
#!/bin/sh
|
|
170
|
+
exec java -jar "$0" "$@"
|
|
171
|
+
exit 127
|
|
172
|
+
''')
|
|
173
|
+
f.append(file("embulk-cli/build/libs/embulk-cli-${project.version}-all.jar").readBytes())
|
|
174
|
+
f.setExecutable(true)
|
|
175
|
+
}
|
|
128
176
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
177
|
+
import com.github.jrubygradle.JRubyExec
|
|
178
|
+
task gem(type: JRubyExec) {
|
|
179
|
+
jrubyArgs '-rrubygems/gem_runner', '-eGem::GemRunner.new.run(ARGV)', 'build'
|
|
180
|
+
script 'build/gemspec'
|
|
181
|
+
doLast { ant.move(file: "${project.name}-${project.version}.gem", todir: "pkg") }
|
|
182
|
+
}
|
|
183
|
+
gem.dependsOn('gemspec')
|
|
184
|
+
gem.dependsOn('classpath')
|
|
133
185
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
186
|
+
task releaseCheck << {
|
|
187
|
+
if (!file("lib/embulk/version.rb").getText().contains("${project.version}")) {
|
|
188
|
+
throw new GradleException("lib/embulk/version.rb doesn't include ${project.version}")
|
|
189
|
+
}
|
|
190
|
+
String date = new Date().format("yyyy-MM-dd")
|
|
191
|
+
if (!file("embulk-docs/src/release/release-${project.version}.rst").getText().contains(date)) {
|
|
192
|
+
throw new GradleException("ChangeLog doesn't include entry for ${project.version}")
|
|
139
193
|
}
|
|
194
|
+
println "Ready. Run ./gradlew release"
|
|
195
|
+
}
|
|
140
196
|
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
groupId project.group
|
|
145
|
-
artifactId project.name
|
|
146
|
-
version project.version
|
|
197
|
+
task release(dependsOn: ["cli", "gem"]) << {
|
|
198
|
+
println """
|
|
199
|
+
manual operations:
|
|
147
200
|
|
|
148
|
-
|
|
201
|
+
git commit -a -m v${project.version}
|
|
202
|
+
git tag v${project.version}
|
|
203
|
+
gem push pkg/embulk-${project.version}.gem"
|
|
204
|
+
./gradlew bintrayUpload
|
|
205
|
+
open "https://bintray.com/embulk/maven/embulk/${project.version}/view" # and upload pkg/embulk-${project.version}.jar
|
|
149
206
|
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
207
|
+
"""
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
task gemspec << {
|
|
211
|
+
file('build').mkdirs()
|
|
212
|
+
file('build/gemspec').write($/
|
|
213
|
+
Gem::Specification.new do |gem|
|
|
214
|
+
gem.name = "embulk"
|
|
215
|
+
gem.version = "${project.version}"
|
|
216
|
+
|
|
217
|
+
gem.summary = "Embulk, a plugin-based parallel bulk data loader"
|
|
218
|
+
gem.description = "Embulk is an open-source, plugin-based bulk data loader to scale and simplify data management across heterogeneous data stores. It can collect and ship any kinds of data in high throughput with transaction control."
|
|
219
|
+
gem.authors = ["Sadayuki Furuhashi"]
|
|
220
|
+
gem.email = ["frsyuki@gmail.com"]
|
|
221
|
+
gem.license = "Apache 2.0"
|
|
222
|
+
gem.homepage = "https://github.com/embulk/embulk"
|
|
223
|
+
|
|
224
|
+
gem.files = `git ls-files`.split("\n") + Dir["classpath/*.jar"]
|
|
225
|
+
gem.test_files = gem.files.grep(%r"^(test|spec)/")
|
|
226
|
+
gem.executables = gem.files.grep(%r"^bin/").map{ |f| File.basename(f) }
|
|
227
|
+
gem.require_paths = ["lib"]
|
|
228
|
+
gem.has_rdoc = false
|
|
229
|
+
|
|
230
|
+
gem.add_development_dependency "bundler", [">= 1.0"]
|
|
231
|
+
gem.add_development_dependency "rake", [">= 0.10.0"]
|
|
232
|
+
gem.add_development_dependency "rspec", ["~> 2.11"]
|
|
233
|
+
gem.add_development_dependency "json", ["~> 1.7"]
|
|
234
|
+
gem.add_development_dependency "yard", ["~> 0.8.7"]
|
|
235
|
+
gem.add_development_dependency "kramdown", ["~> 1.5.0"]
|
|
236
|
+
end
|
|
237
|
+
/$)
|
|
155
238
|
}
|