embulk-output-elasticsearch5 0.1.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: fb678c687d200121d03d61d7d850f131d8daf48b
4
+ data.tar.gz: 2b514fcefd2c994d5685ccf335109ad5b3c0f77d
5
+ SHA512:
6
+ metadata.gz: 623a488e51fc2035bfa1c53cf276478e1f02a749b9c34be40f6fe232f2f294e94a2f9bd6e8a472bf3f682dd7b38100206dc72851d3bcbdf62485ac3d970691c4
7
+ data.tar.gz: 43742e43ef5db38d4935fa3e9480322992fed76c54cff9fc7548b7c64c5a30ba43e14288a890b9f19c4f12bf7e2910eb20a1176d84aebc5fd2d26a287f8a6b00
data/.gitignore ADDED
@@ -0,0 +1,7 @@
1
+ *~
2
+ *.iml
3
+ .idea
4
+ build/
5
+ /classpath/
6
+ /.gradle
7
+ /pkg/
data/CHANGELOG.md ADDED
@@ -0,0 +1,51 @@
1
+ ## 0.3.1 - 2016-06-21
2
+
3
+ * [maintenance] Update Elasticsearch client to 2.3.3 [#25](https://github.com/muga/embulk-output-elasticsearch/pull/25)
4
+
5
+ ## 0.3.0 - 2016-02-22
6
+
7
+ * [maintenance] Upgrade Embulk v08 [#21](https://github.com/muga/embulk-output-elasticsearch/pull/21)
8
+
9
+ ## 0.2.1 - 2016-02-05
10
+
11
+ * [maintenance] Fix bug. Force to fail jobs if nodes down while executing [#19](https://github.com/muga/embulk-output-elasticsearch/pull/19)
12
+
13
+ ## 0.2.0 - 2016-01-26
14
+
15
+ * [new feature] Support Elasticsearch 2.x [#12](https://github.com/muga/embulk-output-elasticsearch/pull/12)
16
+ * [new feature] Added replace mode [#15](https://github.com/muga/embulk-output-elasticsearch/pull/15)
17
+ * [maintenance] Fix id param's behavior [#14](https://github.com/muga/embulk-output-elasticsearch/pull/14)
18
+ * [maintenance] Added unit tests [#17](https://github.com/muga/embulk-output-elasticsearch/pull/17)
19
+ * [maintenance] Upgraded Embulk to v0.7.7
20
+
21
+ ## 0.1.8 - 2015-08-19
22
+
23
+ * [maintenance] Upgraded Embulk to v0.7.0
24
+ * [maintenance] Upgraded Elasticsearch to v1.5.2
25
+
26
+ ## 0.1.7 - 2015-05-09
27
+
28
+ * [maintenance] Fixed handling null value [#10](https://github.com/muga/embulk-output-elasticsearch/pull/10)
29
+
30
+ ## 0.1.6 - 2015-04-14
31
+
32
+ * [new feature] Added bulk_size parameter [#8](https://github.com/muga/embulk-output-elasticsearch/pull/8)
33
+
34
+ ## 0.1.5 - 2015-03-26
35
+
36
+ * [new feature] Added cluster_name parameter [#7](https://github.com/muga/embulk-output-elasticsearch/pull/7)
37
+
38
+ ## 0.1.4 - 2015-03-19
39
+
40
+ * [maintenance] Fixed parameter names index_name to index, doc_id_column to id. [#5](https://github.com/muga/embulk-output-elasticsearch/pull/5)
41
+ * [maintenance] Fixed typo at parameter [#6](https://github.com/muga/embulk-output-elasticsearch/pull/6)
42
+
43
+ ## 0.1.3 - 2015-02-25
44
+
45
+ * [new feature] Supported timestamp column [#4](https://github.com/muga/embulk-output-elasticsearch/pull/4)
46
+
47
+ ## 0.1.2 - 2015-02-24
48
+
49
+ ## 0.1.1 - 2015-02-16
50
+
51
+ ## 0.1.0 - 2015-02-16
data/README.md ADDED
@@ -0,0 +1,117 @@
1
+ # Elasticsearch output plugin for Embulk
2
+
3
+ **Notice** This plugin doesn't support [Amazon(AWS) Elasticsearch Service](https://aws.amazon.com/elasticsearch-service/).
4
+ Plugin uses [Transport Client](https://www.elastic.co/guide/en/elasticsearch/client/java-api/2.0/transport-client.html) but AWS Elasticsearch doesn't support this method.
5
+ > The service supports HTTP on port 80, but does not support TCP transport.
6
+ - *[Amazon Elasticsearch Service Limits](http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/aes-limits.html)*
7
+
8
+ ## Overview
9
+
10
+ * **Plugin type**: output
11
+ * **Rollback supported**: no
12
+ * **Resume supported**: no
13
+ * **Cleanup supported**: no
14
+
15
+ ## Configuration
16
+
17
+ - **mode**: "insert" or "replace". See below(string, optional, default is insert)
18
+ - **nodes**: list of nodes. nodes are pairs of host and port (list, required)
19
+ - **cluster_name**: name of the cluster (string, default is "elasticsearch")
20
+ - **index**: index name (string, required)
21
+ - **index_type**: index type (string, required)
22
+ - **id**: document id column (string, default is null)
23
+ - **bulk_actions**: Sets when to flush a new bulk request based on the number of actions currently added. (int, default is 1000)
24
+ - **bulk_size**: Sets when to flush a new bulk request based on the size of actions currently added. (long, default is 5242880)
25
+ - **concurrent_requests**: concurrent_requests (int, default is 5)
26
+
27
+ ### Modes
28
+
29
+ #### insert:
30
+
31
+ default.
32
+ This mode writes data to existing index.
33
+
34
+ #### replace:
35
+
36
+ 1. Create new temporary index
37
+ 2. Insert data into the new index
38
+ 3. replace the alias with the new index. If alias doesn't exists, plugin will create new alias.
39
+ 4. Delete existing (old) index if exists
40
+
41
+ Index should not exists with the same name as the alias
42
+
43
+ ```yaml
44
+ out:
45
+ type: elasticsearch
46
+ mode: replace
47
+ nodes:
48
+ - {host: localhost, port: 9300}
49
+ index: <alias name> # plugin generates index name like <index>_%Y%m%d-%H%M%S
50
+ index_type: <index type>
51
+ ```
52
+
53
+ ## Example
54
+
55
+ ```yaml
56
+ out:
57
+ type: elasticsearch
58
+ mode: insert
59
+ nodes:
60
+ - {host: localhost, port: 9300}
61
+ index: <index name>
62
+ index_type: <index type>
63
+ ```
64
+
65
+ ## Build
66
+
67
+ ```
68
+ $ ./gradlew gem # -t to watch change of files and rebuild continuously
69
+ ```
70
+
71
+ ## Test
72
+
73
+ ```
74
+ $ ./gradlew test # -t to watch change of files and rebuild continuously
75
+ ```
76
+
77
+ To run unit tests, we need to configure the following environment variables.
78
+
79
+ When environment variables are not set, skip almost test cases.
80
+
81
+ ```
82
+ ES_HOST
83
+ ES_PORT(optional, if needed, default: 9300)
84
+ ES_INDEX
85
+ ES_INDEX_TYPE
86
+ ```
87
+
88
+ If you're using Mac OS X El Capitan and GUI Applications(IDE), like as follows.
89
+ ```
90
+ $ vi ~/Library/LaunchAgents/environment.plist
91
+ <?xml version="1.0" encoding="UTF-8"?>
92
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
93
+ <plist version="1.0">
94
+ <dict>
95
+ <key>Label</key>
96
+ <string>my.startup</string>
97
+ <key>ProgramArguments</key>
98
+ <array>
99
+ <string>sh</string>
100
+ <string>-c</string>
101
+ <string>
102
+ launchctl setenv ES_HOST example.com
103
+ launchctl setenv ES_PORT 9300
104
+ launchctl setenv ES_INDEX embulk
105
+ launchctl setenv ES_INDEX_TYPE embulk
106
+ </string>
107
+ </array>
108
+ <key>RunAtLoad</key>
109
+ <true/>
110
+ </dict>
111
+ </plist>
112
+
113
+ $ launchctl load ~/Library/LaunchAgents/environment.plist
114
+ $ launchctl getenv ES_INDEX //try to get value.
115
+
116
+ Then start your applications.
117
+ ```
data/build.gradle ADDED
@@ -0,0 +1,110 @@
1
+ plugins {
2
+ id "com.jfrog.bintray" version "1.1"
3
+ id "com.github.jruby-gradle.base" version "0.1.5"
4
+ id "java"
5
+ id "jacoco"
6
+ id "checkstyle"
7
+ }
8
+ import com.github.jrubygradle.JRubyExec
9
+ repositories {
10
+ mavenCentral()
11
+ jcenter()
12
+ mavenLocal()
13
+ }
14
+ configurations {
15
+ provided
16
+ }
17
+
18
+ version = "0.1.0"
19
+
20
+ compileJava.options.encoding = 'UTF-8' // source encoding
21
+ sourceCompatibility = 1.7
22
+ targetCompatibility = 1.7
23
+
24
+ dependencies {
25
+ compile "org.embulk:embulk-core:0.8.5"
26
+ provided "org.embulk:embulk-core:0.8.5"
27
+ compile "org.elasticsearch:elasticsearch:5.1.1"
28
+ compile "org.elasticsearch.client:transport:5.1.1"
29
+
30
+ testCompile "junit:junit:4.+"
31
+ testCompile "org.embulk:embulk-core:0.8.5:tests"
32
+ testCompile "org.embulk:embulk-standards:0.8.5"
33
+ }
34
+
35
+ task classpath(type: Copy, dependsOn: ["jar"]) {
36
+ doFirst { file("classpath").deleteDir() }
37
+ from (configurations.runtime - configurations.provided + files(jar.archivePath))
38
+ into "classpath"
39
+ }
40
+ clean { delete 'classpath' }
41
+
42
+ checkstyle {
43
+ configFile = file("${project.rootDir}/config/checkstyle/checkstyle.xml")
44
+ toolVersion = '6.14.1'
45
+ }
46
+ checkstyleMain {
47
+ configFile = file("${project.rootDir}/config/checkstyle/default.xml")
48
+ ignoreFailures = true
49
+ }
50
+ checkstyleTest {
51
+ configFile = file("${project.rootDir}/config/checkstyle/default.xml")
52
+ ignoreFailures = true
53
+ }
54
+ task checkstyle(type: Checkstyle) {
55
+ classpath = sourceSets.main.output + sourceSets.test.output
56
+ source = sourceSets.main.allJava + sourceSets.test.allJava
57
+ }
58
+
59
+ //task copyDependencies(type:Copy) {
60
+ // new File("$buildDir/libs/dependencies").mkdirs()
61
+ // into "$buildDir/libs/dependencies" from configurations.runtime
62
+ //}
63
+
64
+ task gem(type: JRubyExec, dependsOn: ["build", "gemspec", "classpath"]) {
65
+ jrubyArgs "-rrubygems/gem_runner", "-eGem::GemRunner.new.run(ARGV)", "build"
66
+ script "build/gemspec"
67
+ doLast { ant.move(file: "${project.name}-${project.version}.gem", todir: "pkg") }
68
+ }
69
+
70
+ task gemPush(type: JRubyExec, dependsOn: ["gem"]) {
71
+ jrubyArgs "-rrubygems/gem_runner", "-eGem::GemRunner.new.run(ARGV)", "push"
72
+ script "pkg/${project.name}-${project.version}.gem"
73
+ }
74
+
75
+ task "package"(dependsOn: ["gemspec", "classpath"]) << {
76
+ println "> Build succeeded."
77
+ println "> You can run embulk with '-L ${file(".").absolutePath}' argument."
78
+ }
79
+
80
+ task gemspec << { file("build/gemspec").write($/
81
+ Gem::Specification.new do |spec|
82
+ spec.name = "${project.name}"
83
+ spec.version = "${project.version}"
84
+ spec.authors = ["Muga Nishizawa"]
85
+ spec.summary = %[Elasticsearch5 output plugin for Embulk]
86
+ spec.description = %[Elasticsearch5 output plugin is an Embulk plugin that loads records to Elasticsearch read by any input plugins. Search the input plugins by "embulk-input" keyword.]
87
+ spec.email = ["muga.nishizawa@gmail.com","tristan.slominski@gmail.com"]
88
+ spec.licenses = ["Apache 2.0"]
89
+ spec.homepage = "https://github.com/tristanls/embulk-output-elasticsearch"
90
+
91
+ spec.files = `git ls-files`.split("\n") + Dir["classpath/*.jar"]
92
+ spec.test_files = spec.files.grep(%r"^(test|spec)/")
93
+ spec.require_paths = ["lib"]
94
+ spec.executables = spec.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
95
+ spec.has_rdoc = false
96
+
97
+ spec.add_development_dependency "bundler", [">= 1.0"]
98
+ spec.add_development_dependency "rake", [">= 10.0"]
99
+ spec.add_development_dependency "test-unit", ["~> 3.0.2"]
100
+ end
101
+ /$)
102
+ }
103
+
104
+ jacocoTestReport {
105
+ afterEvaluate {
106
+ classDirectories = files(classDirectories.files.collect {
107
+ fileTree(dir: it, exclude: 'org/embulk/output/elasticsearch/ElasticsearchOutputPlugin$1.class')
108
+ })
109
+ }
110
+ }
@@ -0,0 +1,130 @@
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
+ <property name="format" value="^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$"/>
97
+ </module>
98
+ <module name="ClassTypeParameterName">
99
+ <property name="format" value="^[A-Z][0-9]?$"/>
100
+ </module>
101
+ <module name="MethodTypeParameterName">
102
+ <property name="format" value="^[A-Z][0-9]?$"/>
103
+ </module>
104
+
105
+ <module name="AvoidStarImport"/>
106
+ <module name="RedundantImport"/>
107
+ <module name="UnusedImports"/>
108
+ <module name="ImportOrder">
109
+ <property name="groups" value="*,javax,java"/>
110
+ <property name="separated" value="true"/>
111
+ <property name="option" value="bottom"/>
112
+ <property name="sortStaticImportsAlphabetically" value="true"/>
113
+ </module>
114
+
115
+ <module name="WhitespaceAround">
116
+ <property name="allowEmptyConstructors" value="true"/>
117
+ <property name="allowEmptyMethods" value="true"/>
118
+ <property name="ignoreEnhancedForColon" value="false"/>
119
+ <property name="tokens" value="
120
+ ASSIGN, BAND, BAND_ASSIGN, BOR, BOR_ASSIGN, BSR, BSR_ASSIGN,
121
+ BXOR, BXOR_ASSIGN, COLON, DIV, DIV_ASSIGN, EQUAL, GE, GT, LAND, LE,
122
+ LITERAL_ASSERT, LITERAL_CATCH, LITERAL_DO, LITERAL_ELSE,
123
+ LITERAL_FINALLY, LITERAL_FOR, LITERAL_IF, LITERAL_RETURN,
124
+ LITERAL_SYNCHRONIZED, LITERAL_TRY, LITERAL_WHILE,
125
+ LOR, LT, MINUS, MINUS_ASSIGN, MOD, MOD_ASSIGN, NOT_EQUAL,
126
+ PLUS, PLUS_ASSIGN, QUESTION, SL, SLIST, SL_ASSIGN, SR, SR_ASSIGN,
127
+ STAR, STAR_ASSIGN, TYPE_EXTENSION_AND"/>
128
+ </module>
129
+ </module>
130
+ </module>
@@ -0,0 +1,110 @@
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
+ <property name="format" value="^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$"/>
87
+ </module>
88
+ <module name="ClassTypeParameterName">
89
+ <property name="format" value="^[A-Z][0-9]?$"/>
90
+ </module>
91
+ <module name="MethodTypeParameterName">
92
+ <property name="format" value="^[A-Z][0-9]?$"/>
93
+ </module>
94
+
95
+ <module name="WhitespaceAround">
96
+ <property name="allowEmptyConstructors" value="true"/>
97
+ <property name="allowEmptyMethods" value="true"/>
98
+ <property name="ignoreEnhancedForColon" value="false"/>
99
+ <property name="tokens" value="
100
+ ASSIGN, BAND, BAND_ASSIGN, BOR, BOR_ASSIGN, BSR, BSR_ASSIGN,
101
+ BXOR, BXOR_ASSIGN, COLON, DIV, DIV_ASSIGN, EQUAL, GE, GT, LAND, LE,
102
+ LITERAL_ASSERT, LITERAL_CATCH, LITERAL_DO, LITERAL_ELSE,
103
+ LITERAL_FINALLY, LITERAL_FOR, LITERAL_IF, LITERAL_RETURN,
104
+ LITERAL_SYNCHRONIZED, LITERAL_TRY, LITERAL_WHILE,
105
+ LOR, LT, MINUS, MINUS_ASSIGN, MOD, MOD_ASSIGN, NOT_EQUAL,
106
+ PLUS, PLUS_ASSIGN, QUESTION, SL, SLIST, SL_ASSIGN, SR, SR_ASSIGN,
107
+ STAR, STAR_ASSIGN, TYPE_EXTENSION_AND"/>
108
+ </module>
109
+ </module>
110
+ </module>