embulk 0.3.2 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
}
|