embulk-output-mailchimp 0.2.3 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. checksums.yaml +4 -4
  2. data/.coveralls.yml +1 -1
  3. data/.gitignore +10 -3
  4. data/.travis.yml +4 -7
  5. data/CHANGELOG.md +18 -0
  6. data/README.md +18 -17
  7. data/build.gradle +124 -0
  8. data/ci/travis_mailchimp.yml +8 -0
  9. data/circle.yml +16 -0
  10. data/classpath/embulk-base-restclient-0.5.0.jar +0 -0
  11. data/classpath/embulk-output-mailchimp-0.3.2.jar +0 -0
  12. data/classpath/embulk-util-retryhelper-jetty92-0.5.0.jar +0 -0
  13. data/classpath/jetty-client-9.2.14.v20151106.jar +0 -0
  14. data/classpath/jetty-http-9.2.14.v20151106.jar +0 -0
  15. data/classpath/jetty-io-9.2.14.v20151106.jar +0 -0
  16. data/classpath/jetty-util-9.2.14.v20151106.jar +0 -0
  17. data/config/checkstyle/checkstyle.xml +128 -0
  18. data/config/checkstyle/default.xml +108 -0
  19. data/gradle/wrapper/gradle-wrapper.jar +0 -0
  20. data/gradle/wrapper/gradle-wrapper.properties +6 -0
  21. data/gradlew +160 -0
  22. data/gradlew.bat +90 -0
  23. data/lib/embulk/output/mailchimp.rb +3 -172
  24. data/src/main/java/org/embulk/output/mailchimp/MailChimpAbstractRecordBuffer.java +320 -0
  25. data/src/main/java/org/embulk/output/mailchimp/MailChimpHttpClient.java +151 -0
  26. data/src/main/java/org/embulk/output/mailchimp/MailChimpOutputPlugin.java +18 -0
  27. data/src/main/java/org/embulk/output/mailchimp/MailChimpOutputPluginDelegate.java +164 -0
  28. data/src/main/java/org/embulk/output/mailchimp/MailChimpRecordBuffer.java +174 -0
  29. data/src/main/java/org/embulk/output/mailchimp/helper/MailChimpHelper.java +70 -0
  30. data/src/main/java/org/embulk/output/mailchimp/model/AuthMethod.java +58 -0
  31. data/src/main/java/org/embulk/output/mailchimp/model/CategoriesResponse.java +30 -0
  32. data/src/main/java/org/embulk/output/mailchimp/model/ErrorResponse.java +56 -0
  33. data/src/main/java/org/embulk/output/mailchimp/model/InterestCategoriesResponse.java +24 -0
  34. data/src/main/java/org/embulk/output/mailchimp/model/InterestResponse.java +30 -0
  35. data/src/main/java/org/embulk/output/mailchimp/model/InterestsResponse.java +24 -0
  36. data/src/main/java/org/embulk/output/mailchimp/model/MemberStatus.java +64 -0
  37. data/src/main/java/org/embulk/output/mailchimp/model/MetaDataResponse.java +36 -0
  38. data/src/main/java/org/embulk/output/mailchimp/model/ReportResponse.java +105 -0
  39. data/src/main/java/org/embulk/output/mailchimp/validation/ColumnDataValidator.java +40 -0
  40. data/src/test/java/org/embulk/output/mailchimp/CircleCICredentials.java +22 -0
  41. data/src/test/java/org/embulk/output/mailchimp/TestColumnDataValidator.java +43 -0
  42. data/src/test/java/org/embulk/output/mailchimp/TestMailChimpHelper.java +54 -0
  43. data/src/test/java/org/embulk/output/mailchimp/TestMailChimpOutputPlugin.java +158 -0
  44. data/src/test/resources/csv/email.csv +2 -0
  45. metadata +55 -122
  46. data/.ruby-version +0 -1
  47. data/Gemfile +0 -2
  48. data/Rakefile +0 -29
  49. data/embulk-output-mailchimp.gemspec +0 -27
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c5e90ff1e0d73bd9d852c2bb0cc53e954a8cf1ea
4
- data.tar.gz: 27cf142a0398730ef50bf36e0076802984133148
3
+ metadata.gz: d462b2519072612b11fffb5c9b1fb8757cbb4bdd
4
+ data.tar.gz: 16b9f327b2753b7c70b658f8b55f4b0f638da3f9
5
5
  SHA512:
6
- metadata.gz: d0582347cfa8550e37f5323a651b8d2f68760eb84dd27ba6bc1b08cce6dfd81aa205198d01b0e18749b027161162b477d06290e64281c8ec6bcd9f736c528de2
7
- data.tar.gz: 0b01f3c6a644537afde7b95da97b2f8c7dd966ab54738cab16f5c32cc85c0377bd9d8cd37459adb73dbdfa4c35433d732b847fb72c2f5db5ea087b088738d54f
6
+ metadata.gz: d9df5f728fcb0c1204d94e86e7091666d4c9b879cf5cf88c00080991a252cff2bb6e2c85cd86c4bd72b0a3784ae363fb6ff0569f50672927605b5d0d9d3703d8
7
+ data.tar.gz: 66e55275124e6eed5d405dd9a9a2b403ea934b06b8d6878d2f412aa5ac36fd4a50a63f90162a9cf11ad7df541f336e52472a0b1cc1e4a292530489d052ad04b3
data/.coveralls.yml CHANGED
@@ -1 +1 @@
1
- service_name: travis-ci
1
+ service_name: travis-ci
data/.gitignore CHANGED
@@ -1,6 +1,13 @@
1
1
  *~
2
2
  /pkg/
3
3
  /tmp/
4
- /.bundle/
5
- /Gemfile.lock
6
- /coverage/
4
+ *.gemspec
5
+ .gradle/
6
+ /classpath/
7
+ build/
8
+ .idea
9
+ /.settings/
10
+ /.metadata/
11
+ .classpath
12
+ .project
13
+ bin/
data/.travis.yml CHANGED
@@ -1,8 +1,5 @@
1
- language: jruby
2
- before_install:
3
- - rvm get head --auto-dotfiles
4
- - rvm install jruby-9.0.1.0
5
- - gem install bundler --version 1.10.6
6
- - bundle install
1
+ language: java
2
+ jdk:
3
+ - openjdk7
7
4
  script:
8
- - bundle exec rake cov
5
+ - ./gradlew clean checkstyle check jacocoTestReport
data/CHANGELOG.md CHANGED
@@ -1,3 +1,21 @@
1
+ ## 0.3.2 - 2017-05-30
2
+ - Rename `interest_categories` to `grouping_columns` to fix backward compatibility [#18](https://github.com/treasure-data/embulk-output-mailchimp/pull/18)
3
+
4
+ ## 0.3.1 - 2017-05-26
5
+ - Enable merge fields with case-insensitive [#17](https://github.com/treasure-data/embulk-output-mailchimp/pull/17)
6
+
7
+ ## 0.3.0.4 - 2017-05-24
8
+ - Fixed compatible with API v2 and changed data format [#16](https://github.com/treasure-data/embulk-output-mailchimp/pull/16)
9
+
10
+ ## 0.3.0.3 - 2017-05-18
11
+ - Fixed bug can not extract data center when use `api_key` as `auth_mode` [#15](https://github.com/treasure-data/embulk-output-mailchimp/pull/15)
12
+
13
+ ## 0.3.0.2 - 2017-05-18
14
+ - Enabled double_optin in configuration and use default status if schema has no column `status` [#15](https://github.com/treasure-data/embulk-output-mailchimp/pull/15)
15
+
16
+ ## 0.3.0.1 - 2017-05-11
17
+ - Enabled API v3 and supported OAuth2 beside API Key[#13](https://github.com/treasure-data/embulk-output-mailchimp/pull/13)
18
+
1
19
  ## 0.2.3 - 2016-03-24
2
20
 
3
21
  - Retry when Mailchimp server return Internal Server Error [#11](https://github.com/treasure-data/embulk-output-mailchimp/pull/11)
data/README.md CHANGED
@@ -13,38 +13,39 @@ add e-mail to List in MailChimp.
13
13
 
14
14
  ## Configuration
15
15
 
16
- - **apikey**: Mailchimp API key (string, required)
17
- - **list_id**: Mailchimp List id (string, required)
18
- - **double_optin**: control whether to send an opt-in confirmation email (boolean, default: true)
19
- - **update_existing**: control whether to update members that are already subscribed to the list or to return an error (boolean, default: false)
20
- - **replace_interests**: determine whether we replace the interest groups with the updated groups provided, or we add the provided groups to the member's interest groups (boolean, default: true)
16
+ - **auth_method**: MailChimp auth method (string, `api_key` or `oauth`, default: `api_key`)
17
+ - **apikey**: MailChimp API key (string, required if `auth_method` is `api_key`)
18
+ - **access_token**: MailChimp access token (string, required if `auth_method` is `oauth`)
19
+ - **list_id**: MailChimp List id (string, required)
21
20
  - **email_column**: column name for email (string, default: 'email')
22
21
  - **fname_column**: column name for first name (string, default: 'fname')
23
22
  - **lname_column**: column name for last name(string, default: 'lname')
24
- - **grouping_columns**: column names array for group name(array, default: nil)
23
+ - **update_existing**: control whether to update members that are already subscribed to the list or to return an error (boolean, default: false)
24
+ - **merge_fields**: Array for additional merge fields/ TAG in MailChimp dashboard (array, optional, default: nil)
25
+ - **grouping_columns**: Array for group names in MailChimp dashboard(array, default: nil)
26
+ - **double_optin**: control whether to send an opt-in confirmation email (boolean, default: true)
25
27
 
26
28
  ## Example
27
29
 
28
30
  ```yaml
29
31
  out:
30
32
  type: mailchimp
33
+ auth_method: api_key
31
34
  apikey: 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-XXX'
32
35
  list_id: 'XXXXXXXXXX'
33
- double_optin: false
34
36
  update_existing: false
35
- replace_interests: true
36
- email_column: 'e-mail'
37
- fname_column: 'first name'
38
- lname_column: 'lname'
37
+ double_optin: false
38
+ email_column: e-mail
39
+ fname_column: first name
40
+ lname_column: lname
41
+ merge_fields:
42
+ - website
39
43
  grouping_columns:
40
- - group_1
41
- - group_2
44
+ - interests
45
+ - location
46
+ replace_interests: true
42
47
  ```
43
48
 
44
- ## Mailchimp Client
45
-
46
- use https://bitbucket.org/mailchimp/mailchimp-api-ruby .
47
-
48
49
  ## Build
49
50
 
50
51
  ```
data/build.gradle ADDED
@@ -0,0 +1,124 @@
1
+ plugins {
2
+ id "com.jfrog.bintray" version "1.7.3"
3
+ id "com.github.jruby-gradle.base" version "0.1.5"
4
+ id "java"
5
+ id "checkstyle"
6
+ id "jacoco"
7
+ }
8
+ import com.github.jrubygradle.JRubyExec
9
+ repositories {
10
+ mavenCentral()
11
+ jcenter()
12
+ // TODO(dmikurube): Remove this after embulk-base-restclient goes to jcenter.
13
+ maven {
14
+ url "https://dl.bintray.com/embulk-base-restclient/maven"
15
+ }
16
+ }
17
+ configurations {
18
+ provided
19
+ }
20
+
21
+ version = "0.3.2"
22
+
23
+ sourceCompatibility = 1.7
24
+ targetCompatibility = 1.7
25
+
26
+ dependencies {
27
+ compile "org.embulk:embulk-core:0.8.15"
28
+ provided "org.embulk:embulk-core:0.8.15"
29
+ compile "org.embulk.base.restclient:embulk-base-restclient:0.5.0"
30
+ compile "org.embulk.base.restclient:embulk-util-retryhelper-jetty92:0.5.0"
31
+ // compile "YOUR_JAR_DEPENDENCY_GROUP:YOUR_JAR_DEPENDENCY_MODULE:YOUR_JAR_DEPENDENCY_VERSION"
32
+
33
+ testCompile "junit:junit:4.+"
34
+ testCompile "org.embulk:embulk-core:0.8.15:tests"
35
+ testCompile "org.embulk:embulk-test:0.8.15"
36
+ testCompile "org.embulk:embulk-standards:0.8.15"
37
+ testCompile "org.mockito:mockito-core:2.+"
38
+ }
39
+
40
+ test {
41
+ jvmArgs "-XX:MaxPermSize=128M"
42
+ // Set the timezone for testing somewhere other than my machine to increase the chances of catching timezone bugs
43
+ systemProperty 'user.timezone', 'PST'
44
+ testLogging {
45
+ events "passed", "skipped", "failed"
46
+ }
47
+ }
48
+
49
+ task classpath(type: Copy, dependsOn: ["jar"]) {
50
+ doFirst { file("classpath").deleteDir() }
51
+ from (configurations.runtime - configurations.provided + files(jar.archivePath))
52
+ into "classpath"
53
+ }
54
+ clean { delete "classpath" }
55
+
56
+ checkstyle {
57
+ configFile = file("${project.rootDir}/config/checkstyle/checkstyle.xml")
58
+ toolVersion = '6.14.1'
59
+ }
60
+ checkstyleMain {
61
+ configFile = file("${project.rootDir}/config/checkstyle/default.xml")
62
+ ignoreFailures = true
63
+ }
64
+ checkstyleTest {
65
+ configFile = file("${project.rootDir}/config/checkstyle/default.xml")
66
+ ignoreFailures = true
67
+ }
68
+ task checkstyle(type: Checkstyle) {
69
+ classpath = sourceSets.main.output + sourceSets.test.output
70
+ source = sourceSets.main.allJava + sourceSets.test.allJava
71
+ }
72
+
73
+ task gem(type: JRubyExec, dependsOn: ["gemspec", "classpath"]) {
74
+ jrubyArgs "-rrubygems/gem_runner", "-eGem::GemRunner.new.run(ARGV)", "build"
75
+ script "${project.name}.gemspec"
76
+ doLast { ant.move(file: "${project.name}-${project.version}.gem", todir: "pkg") }
77
+ }
78
+
79
+ task gemPush(type: JRubyExec, dependsOn: ["gem"]) {
80
+ jrubyArgs "-rrubygems/gem_runner", "-eGem::GemRunner.new.run(ARGV)", "push"
81
+ script "pkg/${project.name}-${project.version}.gem"
82
+ }
83
+
84
+ task "package"(dependsOn: ["gemspec", "classpath"]) << {
85
+ println "> Build succeeded."
86
+ println "> You can run embulk with '-L ${file(".").absolutePath}' argument."
87
+ }
88
+
89
+ jacocoTestReport {
90
+ group = "Reporting"
91
+ reports {
92
+ xml.enabled false
93
+ csv.enabled false
94
+ html.destination "${buildDir}/reports/coverage"
95
+ }
96
+ }
97
+
98
+ task gemspec {
99
+ ext.gemspecFile = file("${project.name}.gemspec")
100
+ inputs.file "build.gradle"
101
+ outputs.file gemspecFile
102
+ doLast { gemspecFile.write($/
103
+ Gem::Specification.new do |spec|
104
+ spec.name = "${project.name}"
105
+ spec.version = "${project.version}"
106
+ spec.authors = "Thang Nguyen"
107
+ spec.summary = %[Mailchimp output plugin for Embulk]
108
+ spec.description = %[Dumps records to MailChimp.]
109
+ spec.email = ["thang@treasure-data.com"]
110
+ spec.licenses = ["MIT"]
111
+ spec.homepage = "https://github.com/treasure-data/embulk-output-mailchimp"
112
+
113
+ spec.files = `git ls-files`.split("\n") + Dir["classpath/*.jar"]
114
+ spec.test_files = spec.files.grep(%r"^(test|spec)/")
115
+ spec.require_paths = ["lib"]
116
+
117
+ #spec.add_dependency 'YOUR_GEM_DEPENDENCY', ['~> YOUR_GEM_DEPENDENCY_VERSION']
118
+ spec.add_development_dependency 'bundler', ['~> 1.0']
119
+ spec.add_development_dependency 'rake', ['>= 10.0']
120
+ end
121
+ /$)
122
+ }
123
+ }
124
+ clean { delete "${project.name}.gemspec" }
@@ -0,0 +1,8 @@
1
+ type: mailchimp
2
+ auth_method: api_key
3
+ apikey: xxxxxxxxxxxxxxxxxxx
4
+ access_token: xxxxxxxxxxxxxxxxxxx
5
+ list_id: xxxxxxxxxxxxxxxxxxx
6
+ email_column: email
7
+ fname_column: fname
8
+ lname_column: lname
data/circle.yml ADDED
@@ -0,0 +1,16 @@
1
+ machine:
2
+ java:
3
+ version: openjdk7
4
+ environment:
5
+ TERM: "dumb"
6
+ EMBULK_OUTPUT_MAILCHIMP_TEST_CONFIG: "${HOME}/${TRAVIS_BUILD_DIR}/ci/travis_mailchimp.yml"
7
+
8
+ test:
9
+ override:
10
+ - ./gradlew clean checkstyle check jacocoTestReport
11
+ post:
12
+ - cp -R build/reports/* $CIRCLE_ARTIFACTS
13
+
14
+ notify:
15
+ webhooks:
16
+ - url: https://td-beda.herokuapp.com/circleci_callback
@@ -0,0 +1,128 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE module PUBLIC
3
+ "-//Puppy Crawl//DTD Check Configuration 1.3//EN"
4
+ "http://www.puppycrawl.com/dtds/configuration_1_3.dtd">
5
+ <module name="Checker">
6
+ <!-- https://github.com/facebook/presto/blob/master/src/checkstyle/checks.xml -->
7
+ <module name="FileTabCharacter"/>
8
+ <module name="NewlineAtEndOfFile">
9
+ <property name="lineSeparator" value="lf"/>
10
+ </module>
11
+ <module name="RegexpMultiline">
12
+ <property name="format" value="\r"/>
13
+ <property name="message" value="Line contains carriage return"/>
14
+ </module>
15
+ <module name="RegexpMultiline">
16
+ <property name="format" value=" \n"/>
17
+ <property name="message" value="Line has trailing whitespace"/>
18
+ </module>
19
+ <module name="RegexpMultiline">
20
+ <property name="format" value="\{\n\n"/>
21
+ <property name="message" value="Blank line after opening brace"/>
22
+ </module>
23
+ <module name="RegexpMultiline">
24
+ <property name="format" value="\n\n\s*\}"/>
25
+ <property name="message" value="Blank line before closing brace"/>
26
+ </module>
27
+ <module name="RegexpMultiline">
28
+ <property name="format" value="\n\n\n"/>
29
+ <property name="message" value="Multiple consecutive blank lines"/>
30
+ </module>
31
+ <module name="RegexpMultiline">
32
+ <property name="format" value="\n\n\Z"/>
33
+ <property name="message" value="Blank line before end of file"/>
34
+ </module>
35
+ <module name="RegexpMultiline">
36
+ <property name="format" value="Preconditions\.checkNotNull"/>
37
+ <property name="message" value="Use of checkNotNull"/>
38
+ </module>
39
+
40
+ <module name="TreeWalker">
41
+ <module name="EmptyBlock">
42
+ <property name="option" value="text"/>
43
+ <property name="tokens" value="
44
+ LITERAL_DO, LITERAL_ELSE, LITERAL_FINALLY, LITERAL_IF,
45
+ LITERAL_FOR, LITERAL_TRY, LITERAL_WHILE, INSTANCE_INIT, STATIC_INIT"/>
46
+ </module>
47
+ <module name="EmptyStatement"/>
48
+ <module name="EmptyForInitializerPad"/>
49
+ <module name="EmptyForIteratorPad">
50
+ <property name="option" value="space"/>
51
+ </module>
52
+ <module name="MethodParamPad">
53
+ <property name="allowLineBreaks" value="true"/>
54
+ <property name="option" value="nospace"/>
55
+ </module>
56
+ <module name="ParenPad"/>
57
+ <module name="TypecastParenPad"/>
58
+ <module name="NeedBraces"/>
59
+ <module name="LeftCurly">
60
+ <property name="option" value="nl"/>
61
+ <property name="tokens" value="CLASS_DEF, CTOR_DEF, INTERFACE_DEF, METHOD_DEF"/>
62
+ </module>
63
+ <module name="LeftCurly">
64
+ <property name="option" value="eol"/>
65
+ <property name="tokens" value="
66
+ LITERAL_CATCH, LITERAL_DO, LITERAL_ELSE, LITERAL_FINALLY, LITERAL_FOR,
67
+ LITERAL_IF, LITERAL_SWITCH, LITERAL_SYNCHRONIZED, LITERAL_TRY, LITERAL_WHILE"/>
68
+ </module>
69
+ <module name="RightCurly">
70
+ <property name="option" value="alone"/>
71
+ </module>
72
+ <module name="GenericWhitespace"/>
73
+ <module name="WhitespaceAfter"/>
74
+ <module name="NoWhitespaceBefore"/>
75
+
76
+ <module name="UpperEll"/>
77
+ <module name="DefaultComesLast"/>
78
+ <module name="ArrayTypeStyle"/>
79
+ <module name="MultipleVariableDeclarations"/>
80
+ <module name="ModifierOrder"/>
81
+ <module name="OneStatementPerLine"/>
82
+ <module name="StringLiteralEquality"/>
83
+ <module name="MutableException"/>
84
+ <module name="EqualsHashCode"/>
85
+ <module name="InnerAssignment"/>
86
+ <module name="InterfaceIsType"/>
87
+ <module name="HideUtilityClassConstructor"/>
88
+
89
+ <module name="MemberName"/>
90
+ <module name="LocalVariableName"/>
91
+ <module name="LocalFinalVariableName"/>
92
+ <module name="TypeName"/>
93
+ <module name="PackageName"/>
94
+ <module name="ParameterName"/>
95
+ <module name="StaticVariableName"/>
96
+ <module name="ClassTypeParameterName">
97
+ <property name="format" value="^[A-Z][0-9]?$"/>
98
+ </module>
99
+ <module name="MethodTypeParameterName">
100
+ <property name="format" value="^[A-Z][0-9]?$"/>
101
+ </module>
102
+
103
+ <module name="AvoidStarImport"/>
104
+ <module name="RedundantImport"/>
105
+ <module name="UnusedImports"/>
106
+ <module name="ImportOrder">
107
+ <property name="groups" value="*,javax,java"/>
108
+ <property name="separated" value="true"/>
109
+ <property name="option" value="bottom"/>
110
+ <property name="sortStaticImportsAlphabetically" value="true"/>
111
+ </module>
112
+
113
+ <module name="WhitespaceAround">
114
+ <property name="allowEmptyConstructors" value="true"/>
115
+ <property name="allowEmptyMethods" value="true"/>
116
+ <property name="ignoreEnhancedForColon" value="false"/>
117
+ <property name="tokens" value="
118
+ ASSIGN, BAND, BAND_ASSIGN, BOR, BOR_ASSIGN, BSR, BSR_ASSIGN,
119
+ BXOR, BXOR_ASSIGN, COLON, DIV, DIV_ASSIGN, EQUAL, GE, GT, LAND, LE,
120
+ LITERAL_ASSERT, LITERAL_CATCH, LITERAL_DO, LITERAL_ELSE,
121
+ LITERAL_FINALLY, LITERAL_FOR, LITERAL_IF, LITERAL_RETURN,
122
+ LITERAL_SYNCHRONIZED, LITERAL_TRY, LITERAL_WHILE,
123
+ LOR, LT, MINUS, MINUS_ASSIGN, MOD, MOD_ASSIGN, NOT_EQUAL,
124
+ PLUS, PLUS_ASSIGN, QUESTION, SL, SLIST, SL_ASSIGN, SR, SR_ASSIGN,
125
+ STAR, STAR_ASSIGN, TYPE_EXTENSION_AND"/>
126
+ </module>
127
+ </module>
128
+ </module>
@@ -0,0 +1,108 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE module PUBLIC
3
+ "-//Puppy Crawl//DTD Check Configuration 1.3//EN"
4
+ "http://www.puppycrawl.com/dtds/configuration_1_3.dtd">
5
+ <!--
6
+ This is a subset of ./checkstyle.xml which allows some loose styles
7
+ -->
8
+ <module name="Checker">
9
+ <module name="FileTabCharacter"/>
10
+ <module name="NewlineAtEndOfFile">
11
+ <property name="lineSeparator" value="lf"/>
12
+ </module>
13
+ <module name="RegexpMultiline">
14
+ <property name="format" value="\r"/>
15
+ <property name="message" value="Line contains carriage return"/>
16
+ </module>
17
+ <module name="RegexpMultiline">
18
+ <property name="format" value=" \n"/>
19
+ <property name="message" value="Line has trailing whitespace"/>
20
+ </module>
21
+ <module name="RegexpMultiline">
22
+ <property name="format" value="\n\n\n"/>
23
+ <property name="message" value="Multiple consecutive blank lines"/>
24
+ </module>
25
+ <module name="RegexpMultiline">
26
+ <property name="format" value="\n\n\Z"/>
27
+ <property name="message" value="Blank line before end of file"/>
28
+ </module>
29
+
30
+ <module name="TreeWalker">
31
+ <module name="EmptyBlock">
32
+ <property name="option" value="text"/>
33
+ <property name="tokens" value="
34
+ LITERAL_DO, LITERAL_ELSE, LITERAL_FINALLY, LITERAL_IF,
35
+ LITERAL_FOR, LITERAL_TRY, LITERAL_WHILE, INSTANCE_INIT, STATIC_INIT"/>
36
+ </module>
37
+ <module name="EmptyStatement"/>
38
+ <module name="EmptyForInitializerPad"/>
39
+ <module name="EmptyForIteratorPad">
40
+ <property name="option" value="space"/>
41
+ </module>
42
+ <module name="MethodParamPad">
43
+ <property name="allowLineBreaks" value="true"/>
44
+ <property name="option" value="nospace"/>
45
+ </module>
46
+ <module name="ParenPad"/>
47
+ <module name="TypecastParenPad"/>
48
+ <module name="NeedBraces"/>
49
+ <module name="LeftCurly">
50
+ <property name="option" value="nl"/>
51
+ <property name="tokens" value="CLASS_DEF, CTOR_DEF, INTERFACE_DEF, METHOD_DEF"/>
52
+ </module>
53
+ <module name="LeftCurly">
54
+ <property name="option" value="eol"/>
55
+ <property name="tokens" value="
56
+ LITERAL_CATCH, LITERAL_DO, LITERAL_ELSE, LITERAL_FINALLY, LITERAL_FOR,
57
+ LITERAL_IF, LITERAL_SWITCH, LITERAL_SYNCHRONIZED, LITERAL_TRY, LITERAL_WHILE"/>
58
+ </module>
59
+ <module name="RightCurly">
60
+ <property name="option" value="alone"/>
61
+ </module>
62
+ <module name="GenericWhitespace"/>
63
+ <module name="WhitespaceAfter"/>
64
+ <module name="NoWhitespaceBefore"/>
65
+
66
+ <module name="UpperEll"/>
67
+ <module name="DefaultComesLast"/>
68
+ <module name="ArrayTypeStyle"/>
69
+ <module name="MultipleVariableDeclarations"/>
70
+ <module name="ModifierOrder"/>
71
+ <module name="OneStatementPerLine"/>
72
+ <module name="StringLiteralEquality"/>
73
+ <module name="MutableException"/>
74
+ <module name="EqualsHashCode"/>
75
+ <module name="InnerAssignment"/>
76
+ <module name="InterfaceIsType"/>
77
+ <module name="HideUtilityClassConstructor"/>
78
+
79
+ <module name="MemberName"/>
80
+ <module name="LocalVariableName"/>
81
+ <module name="LocalFinalVariableName"/>
82
+ <module name="TypeName"/>
83
+ <module name="PackageName"/>
84
+ <module name="ParameterName"/>
85
+ <module name="StaticVariableName"/>
86
+ <module name="ClassTypeParameterName">
87
+ <property name="format" value="^[A-Z][0-9]?$"/>
88
+ </module>
89
+ <module name="MethodTypeParameterName">
90
+ <property name="format" value="^[A-Z][0-9]?$"/>
91
+ </module>
92
+
93
+ <module name="WhitespaceAround">
94
+ <property name="allowEmptyConstructors" value="true"/>
95
+ <property name="allowEmptyMethods" value="true"/>
96
+ <property name="ignoreEnhancedForColon" value="false"/>
97
+ <property name="tokens" value="
98
+ ASSIGN, BAND, BAND_ASSIGN, BOR, BOR_ASSIGN, BSR, BSR_ASSIGN,
99
+ BXOR, BXOR_ASSIGN, COLON, DIV, DIV_ASSIGN, EQUAL, GE, GT, LAND, LE,
100
+ LITERAL_ASSERT, LITERAL_CATCH, LITERAL_DO, LITERAL_ELSE,
101
+ LITERAL_FINALLY, LITERAL_FOR, LITERAL_IF, LITERAL_RETURN,
102
+ LITERAL_SYNCHRONIZED, LITERAL_TRY, LITERAL_WHILE,
103
+ LOR, LT, MINUS, MINUS_ASSIGN, MOD, MOD_ASSIGN, NOT_EQUAL,
104
+ PLUS, PLUS_ASSIGN, QUESTION, SL, SLIST, SL_ASSIGN, SR, SR_ASSIGN,
105
+ STAR, STAR_ASSIGN, TYPE_EXTENSION_AND"/>
106
+ </module>
107
+ </module>
108
+ </module>
Binary file
@@ -0,0 +1,6 @@
1
+ #Wed Jan 13 12:41:02 JST 2016
2
+ distributionBase=GRADLE_USER_HOME
3
+ distributionPath=wrapper/dists
4
+ zipStoreBase=GRADLE_USER_HOME
5
+ zipStorePath=wrapper/dists
6
+ distributionUrl=https\://services.gradle.org/distributions/gradle-3.2.1-bin.zip