embulk-output-azure_blob_storage 0.1.1 → 0.1.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 780301179e35e336690948c80eb1f0be40969fda
4
- data.tar.gz: 0820d6fe2606320543583146126c0df179ff8dcf
3
+ metadata.gz: 8e7f5671df4655218d40ef364f9475e05f3cdaa4
4
+ data.tar.gz: 5ba40cd551788bdde07a5a08ea05998a3ee7f0cb
5
5
  SHA512:
6
- metadata.gz: 77f5049f878c6a82809226ebe49873ec31e6a16d475dd7991b9a729d3348be98885052bfa83c5bf97777bac053014532dec2c028e9add5b2f21d3729abe919f0
7
- data.tar.gz: 75dee87d6947f777e5a8e0211bbbb8dc9922bd6cbb7784a2853bb4a9f907f66ce05e572bb431e2d34a7ffe23c096b24b04a30c40d0075007b3f301f5e3b5f8b5
6
+ metadata.gz: c3330eefd6eab6363a399a09905c374c0b8c427fa367f44d545d2b7eba77c91e4480b7d76b360fa06307603532de9da227e90b5ca3380aa650087165de4c5149
7
+ data.tar.gz: 76c557136ad97309d1175433879ad7ae92ff2d5b826b72b772c724b624130685c2e53a748b1b079f6c3d914f90dda9ef86311a9536d2543f60cd69d546d10576
data/ChangeLog ADDED
@@ -0,0 +1,4 @@
1
+ Release 0.1.1 - 2015-11-16
2
+
3
+ * Added unit tests
4
+ * Refactored code
data/README.md CHANGED
@@ -60,10 +60,6 @@ $ ./gradlew test # -t to watch change of files and rebuild continuously
60
60
 
61
61
  To run unit tests, we need to configure the following environment variables.
62
62
 
63
- Additionally, following files will be needed to upload to existing GCS bucket.
64
- * [sample_01.csv](./src/test/resources/sample_01.csv)
65
- * [sample_02.csv](./src/test/resources/sample_02.csv)
66
-
67
63
  When environment variables are not set, skip some test cases.
68
64
 
69
65
  ```
data/build.gradle CHANGED
@@ -2,6 +2,7 @@ plugins {
2
2
  id "com.jfrog.bintray" version "1.1"
3
3
  id "com.github.jruby-gradle.base" version "0.1.5"
4
4
  id "java"
5
+ id "checkstyle"
5
6
  id "jacoco"
6
7
  }
7
8
  import com.github.jrubygradle.JRubyExec
@@ -16,17 +17,17 @@ configurations {
16
17
  sourceCompatibility = 1.7
17
18
  targetCompatibility = 1.7
18
19
 
19
- version = "0.1.1"
20
+ version = "0.1.2"
20
21
 
21
22
  dependencies {
22
- compile "org.embulk:embulk-core:0.7.5"
23
- provided "org.embulk:embulk-core:0.7.5"
23
+ compile "org.embulk:embulk-core:0.8.2"
24
+ provided "org.embulk:embulk-core:0.8.2"
24
25
 
25
26
  compile "com.microsoft.azure:azure-storage:4.0.0"
26
27
 
27
28
  testCompile "junit:junit:4.12"
28
- testCompile "org.embulk:embulk-core:0.7.5:tests"
29
- testCompile "org.embulk:embulk-standards:0.7.5"
29
+ testCompile "org.embulk:embulk-core:0.8.2:tests"
30
+ testCompile "org.embulk:embulk-standards:0.8.2"
30
31
  }
31
32
 
32
33
  task classpath(type: Copy, dependsOn: ["jar"]) {
@@ -36,27 +37,30 @@ task classpath(type: Copy, dependsOn: ["jar"]) {
36
37
  }
37
38
  clean { delete "classpath" }
38
39
 
39
- task gem(type: JRubyExec, dependsOn: ["gemspec", "classpath"]) {
40
- jrubyArgs "-rrubygems/gem_runner", "-eGem::GemRunner.new.run(ARGV)", "build"
41
- script "${project.name}.gemspec"
42
- doLast { ant.move(file: "${project.name}-${project.version}.gem", todir: "pkg") }
40
+ checkstyle {
41
+ configFile = file("${project.rootDir}/config/checkstyle/checkstyle.xml")
42
+ toolVersion = '6.14.1'
43
43
  }
44
-
45
- task gemPush(type: JRubyExec, dependsOn: ["gem"]) {
46
- jrubyArgs "-rrubygems/gem_runner", "-eGem::GemRunner.new.run(ARGV)", "push"
47
- script "pkg/${project.name}-${project.version}.gem"
44
+ checkstyleMain {
45
+ configFile = file("${project.rootDir}/config/checkstyle/default.xml")
46
+ ignoreFailures = true
47
+ }
48
+ checkstyleTest {
49
+ configFile = file("${project.rootDir}/config/checkstyle/default.xml")
50
+ ignoreFailures = true
51
+ }
52
+ task checkstyle(type: Checkstyle) {
53
+ classpath = sourceSets.main.output + sourceSets.test.output
54
+ source = sourceSets.main.allJava + sourceSets.test.allJava
48
55
  }
49
56
 
50
- task "package"(dependsOn: ["gemspec", "classpath"]) << {
51
- println "> Build succeeded."
52
- println "> You can run embulk with '-L ${file(".").absolutePath}' argument."
57
+ task gem(type: JRubyExec, dependsOn: ["build", "gemspec", "classpath"]) {
58
+ jrubyArgs "-rrubygems/gem_runner", "-eGem::GemRunner.new.run(ARGV)", "build"
59
+ script "build/gemspec"
60
+ doLast { ant.move(file: "${project.name}-${project.version}.gem", todir: "pkg") }
53
61
  }
54
62
 
55
- task gemspec {
56
- ext.gemspecFile = file("${project.name}.gemspec")
57
- inputs.file "build.gradle"
58
- outputs.file gemspecFile
59
- doLast { gemspecFile.write($/
63
+ task gemspec << { file("build/gemspec").write($/
60
64
  Gem::Specification.new do |spec|
61
65
  spec.name = "${project.name}"
62
66
  spec.version = "${project.version}"
@@ -75,6 +79,4 @@ Gem::Specification.new do |spec|
75
79
  spec.add_development_dependency 'rake', ['>= 10.0']
76
80
  end
77
81
  /$)
78
- }
79
82
  }
80
- clean { delete "${project.name}.gemspec" }
@@ -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,107 @@
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="MethodTypeParameterName">
89
+ <property name="format" value="^[A-Z][0-9]?$"/>
90
+ </module>
91
+
92
+ <module name="WhitespaceAround">
93
+ <property name="allowEmptyConstructors" value="true"/>
94
+ <property name="allowEmptyMethods" value="true"/>
95
+ <property name="ignoreEnhancedForColon" value="false"/>
96
+ <property name="tokens" value="
97
+ ASSIGN, BAND, BAND_ASSIGN, BOR, BOR_ASSIGN, BSR, BSR_ASSIGN,
98
+ BXOR, BXOR_ASSIGN, COLON, DIV, DIV_ASSIGN, EQUAL, GE, GT, LAND, LE,
99
+ LITERAL_ASSERT, LITERAL_CATCH, LITERAL_DO, LITERAL_ELSE,
100
+ LITERAL_FINALLY, LITERAL_FOR, LITERAL_IF, LITERAL_RETURN,
101
+ LITERAL_SYNCHRONIZED, LITERAL_TRY, LITERAL_WHILE,
102
+ LOR, LT, MINUS, MINUS_ASSIGN, MOD, MOD_ASSIGN, NOT_EQUAL,
103
+ PLUS, PLUS_ASSIGN, QUESTION, SL, SLIST, SL_ASSIGN, SR, SR_ASSIGN,
104
+ STAR, STAR_ASSIGN, TYPE_EXTENSION_AND"/>
105
+ </module>
106
+ </module>
107
+ </module>
Binary file
@@ -1,6 +1,6 @@
1
- #Tue Aug 11 00:26:20 PDT 2015
1
+ #Wed Jan 13 12:41:02 JST 2016
2
2
  distributionBase=GRADLE_USER_HOME
3
3
  distributionPath=wrapper/dists
4
4
  zipStoreBase=GRADLE_USER_HOME
5
5
  zipStorePath=wrapper/dists
6
- distributionUrl=https\://services.gradle.org/distributions/gradle-2.6-bin.zip
6
+ distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-bin.zip
@@ -1,31 +1,37 @@
1
1
  package org.embulk.output.azure_blob_storage;
2
2
 
3
- import java.io.File;
4
- import java.io.BufferedOutputStream;
5
- import java.io.FileInputStream;
6
- import java.io.FileOutputStream;
7
- import java.io.FileNotFoundException;
8
- import java.io.IOException;
9
- import java.net.URISyntaxException;
10
- import java.security.InvalidKeyException;
11
- import java.util.List;
12
3
  import com.google.common.base.Throwables;
4
+ import com.microsoft.azure.storage.CloudStorageAccount;
5
+ import com.microsoft.azure.storage.StorageException;
6
+ import com.microsoft.azure.storage.blob.CloudBlobClient;
7
+ import com.microsoft.azure.storage.blob.CloudBlobContainer;
8
+ import com.microsoft.azure.storage.blob.CloudBlockBlob;
13
9
  import org.embulk.config.Config;
14
- import org.embulk.config.ConfigException;
15
10
  import org.embulk.config.ConfigDefault;
16
- import org.embulk.config.ConfigSource;
17
11
  import org.embulk.config.ConfigDiff;
18
- import org.embulk.config.TaskReport;
12
+ import org.embulk.config.ConfigException;
13
+ import org.embulk.config.ConfigSource;
19
14
  import org.embulk.config.Task;
15
+ import org.embulk.config.TaskReport;
20
16
  import org.embulk.config.TaskSource;
17
+ import org.embulk.spi.Buffer;
21
18
  import org.embulk.spi.Exec;
22
19
  import org.embulk.spi.FileOutputPlugin;
23
20
  import org.embulk.spi.TransactionalFileOutput;
24
- import org.embulk.spi.Buffer;
25
- import com.microsoft.azure.storage.*;
26
- import com.microsoft.azure.storage.blob.*;
21
+
27
22
  import org.slf4j.Logger;
28
23
 
24
+ import java.io.BufferedOutputStream;
25
+ import java.io.File;
26
+ import java.io.FileInputStream;
27
+ import java.io.FileNotFoundException;
28
+ import java.io.FileOutputStream;
29
+
30
+ import java.io.IOException;
31
+ import java.net.URISyntaxException;
32
+ import java.security.InvalidKeyException;
33
+ import java.util.List;
34
+
29
35
  public class AzureBlobStorageFileOutputPlugin
30
36
  implements FileOutputPlugin
31
37
  {
@@ -68,7 +74,8 @@ public class AzureBlobStorageFileOutputPlugin
68
74
  log.info(String.format("container [%s] is not exists and created.", containerName));
69
75
  container.createIfNotExists();
70
76
  }
71
- } catch (StorageException | URISyntaxException | ConfigException ex) {
77
+ }
78
+ catch (StorageException | URISyntaxException | ConfigException ex) {
72
79
  Throwables.propagate(ex);
73
80
  }
74
81
 
@@ -97,14 +104,16 @@ public class AzureBlobStorageFileOutputPlugin
97
104
  CloudStorageAccount account;
98
105
  try {
99
106
  account = CloudStorageAccount.parse(connectionString);
100
- } catch (InvalidKeyException | URISyntaxException ex) {
107
+ }
108
+ catch (InvalidKeyException | URISyntaxException ex) {
101
109
  throw new ConfigException(ex.getMessage());
102
110
  }
103
111
  return account.createCloudBlobClient();
104
112
  }
105
113
 
106
114
  @Override
107
- public TransactionalFileOutput open(TaskSource taskSource, final int taskIndex) {
115
+ public TransactionalFileOutput open(TaskSource taskSource, final int taskIndex)
116
+ {
108
117
  final PluginTask task = taskSource.loadTask(PluginTask.class);
109
118
  return new AzureFileOutput(task, taskIndex);
110
119
  }
@@ -131,7 +140,8 @@ public class AzureBlobStorageFileOutputPlugin
131
140
  this.client = newAzureClient(task.getAccountName(), task.getAccountKey());
132
141
  try {
133
142
  this.container = client.getContainerReference(task.getContainer());
134
- } catch (URISyntaxException | StorageException ex) {
143
+ }
144
+ catch (URISyntaxException | StorageException ex) {
135
145
  Throwables.propagate(ex);
136
146
  }
137
147
  }
@@ -156,7 +166,8 @@ public class AzureBlobStorageFileOutputPlugin
156
166
  }
157
167
  log.info(String.format("Writing local file [%s]", filePath));
158
168
  output = new BufferedOutputStream(new FileOutputStream(filePath));
159
- } catch (FileNotFoundException ex) {
169
+ }
170
+ catch (FileNotFoundException ex) {
160
171
  throw Throwables.propagate(ex);
161
172
  }
162
173
  }
@@ -167,7 +178,8 @@ public class AzureBlobStorageFileOutputPlugin
167
178
  try {
168
179
  output.close();
169
180
  fileIndex++;
170
- } catch (IOException ex) {
181
+ }
182
+ catch (IOException ex) {
171
183
  throw Throwables.propagate(ex);
172
184
  }
173
185
  }
@@ -178,9 +190,11 @@ public class AzureBlobStorageFileOutputPlugin
178
190
  {
179
191
  try {
180
192
  output.write(buffer.array(), buffer.offset(), buffer.limit());
181
- } catch (IOException ex) {
193
+ }
194
+ catch (IOException ex) {
182
195
  throw Throwables.propagate(ex);
183
- } finally {
196
+ }
197
+ finally {
184
198
  buffer.release();
185
199
  }
186
200
  }
@@ -197,7 +211,8 @@ public class AzureBlobStorageFileOutputPlugin
197
211
  log.info(String.format("Upload completed [%s]", filePath));
198
212
  file.delete();
199
213
  log.info(String.format("Delete completed local file [%s]", filePath));
200
- } catch (StorageException | URISyntaxException | IOException ex) {
214
+ }
215
+ catch (StorageException | URISyntaxException | IOException ex) {
201
216
  Throwables.propagate(ex);
202
217
  }
203
218
  }
@@ -1,45 +1,43 @@
1
1
  package org.embulk.output.azure_blob_storage;
2
2
 
3
- import java.io.BufferedReader;
4
- import java.io.ByteArrayOutputStream;
5
- import java.io.FileInputStream;
6
- import java.io.IOException;
7
- import java.io.InputStream;
8
- import java.io.InputStreamReader;
9
- import java.lang.reflect.Method;
10
- import java.security.GeneralSecurityException;
11
- import java.util.Arrays;
12
- import java.util.List;
13
-
14
3
  import com.google.common.collect.ImmutableList;
15
4
  import com.google.common.collect.ImmutableMap;
16
5
  import com.google.common.collect.Lists;
17
-
6
+ import com.microsoft.azure.storage.blob.CloudBlob;
7
+ import com.microsoft.azure.storage.blob.CloudBlobClient;
8
+ import com.microsoft.azure.storage.blob.CloudBlobContainer;
18
9
  import org.embulk.EmbulkTestRuntime;
19
10
  import org.embulk.config.ConfigDiff;
20
11
  import org.embulk.config.ConfigSource;
21
12
  import org.embulk.config.TaskReport;
22
13
  import org.embulk.config.TaskSource;
14
+ import org.embulk.output.azure_blob_storage.AzureBlobStorageFileOutputPlugin.PluginTask;
23
15
  import org.embulk.spi.Buffer;
24
16
  import org.embulk.spi.Exec;
25
- import org.embulk.spi.Schema;
26
- import org.embulk.spi.OutputPlugin;
27
- import org.embulk.spi.FileOutputRunner;
28
17
  import org.embulk.spi.FileOutputPlugin;
18
+ import org.embulk.spi.FileOutputRunner;
19
+ import org.embulk.spi.OutputPlugin;
20
+ import org.embulk.spi.Schema;
29
21
  import org.embulk.spi.TransactionalFileOutput;
30
22
  import org.embulk.standards.CsvParserPlugin;
31
23
 
32
- import org.junit.BeforeClass;
33
24
  import org.junit.Before;
25
+ import org.junit.BeforeClass;
34
26
  import org.junit.Rule;
35
27
  import org.junit.Test;
36
28
  import static org.junit.Assert.assertEquals;
37
29
  import static org.junit.Assume.assumeNotNull;
38
30
 
39
- import com.microsoft.azure.storage.blob.CloudBlob;
40
- import com.microsoft.azure.storage.blob.CloudBlobClient;
41
- import com.microsoft.azure.storage.blob.CloudBlobContainer;
42
- import org.embulk.output.azure_blob_storage.AzureBlobStorageFileOutputPlugin.PluginTask;
31
+ import java.io.BufferedReader;
32
+ import java.io.ByteArrayOutputStream;
33
+ import java.io.FileInputStream;
34
+ import java.io.IOException;
35
+ import java.io.InputStream;
36
+ import java.io.InputStreamReader;
37
+ import java.lang.reflect.Method;
38
+ import java.security.GeneralSecurityException;
39
+ import java.util.Arrays;
40
+ import java.util.List;
43
41
 
44
42
  public class TestAzureBlobStorageFileOutputPlugin
45
43
  {
@@ -367,9 +365,9 @@ public class TestAzureBlobStorageFileOutputPlugin
367
365
  {
368
366
  ByteArrayOutputStream bo = new ByteArrayOutputStream();
369
367
  byte [] buffer = new byte[1024];
370
- while(true) {
368
+ while (true) {
371
369
  int len = is.read(buffer);
372
- if(len < 0) {
370
+ if (len < 0) {
373
371
  break;
374
372
  }
375
373
  bo.write(buffer, 0, len);
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: embulk-output-azure_blob_storage
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Satoshi Akama
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-11-16 00:00:00.000000000 Z
11
+ date: 2016-02-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
@@ -47,9 +47,11 @@ extra_rdoc_files: []
47
47
  files:
48
48
  - .gitignore
49
49
  - .travis.yml
50
+ - ChangeLog
50
51
  - README.md
51
52
  - build.gradle
52
- - embulk-output-azure_blob_storage.gemspec
53
+ - config/checkstyle/checkstyle.xml
54
+ - config/checkstyle/default.xml
53
55
  - gradle/wrapper/gradle-wrapper.jar
54
56
  - gradle/wrapper/gradle-wrapper.properties
55
57
  - gradlew
@@ -61,7 +63,7 @@ files:
61
63
  - src/test/resources/sample_02.csv
62
64
  - classpath/azure-storage-4.0.0.jar
63
65
  - classpath/commons-lang3-3.4.jar
64
- - classpath/embulk-output-azure_blob_storage-0.1.1.jar
66
+ - classpath/embulk-output-azure_blob_storage-0.1.2.jar
65
67
  - classpath/jackson-core-2.6.0.jar
66
68
  homepage: https://github.com/sakama/embulk-output-azure_blob_storage
67
69
  licenses:
@@ -1,18 +0,0 @@
1
-
2
- Gem::Specification.new do |spec|
3
- spec.name = "embulk-output-azure_blob_storage"
4
- spec.version = "0.1.1"
5
- spec.authors = ["Satoshi Akama"]
6
- spec.summary = %[Microsoft Azure blob Storage file output plugin for Embulk]
7
- spec.description = %[Stores files on Microsoft Azure blob Storage.]
8
- spec.email = ["satoshiakama@gmail.com"]
9
- spec.licenses = ["Apache-2.0"]
10
- spec.homepage = "https://github.com/sakama/embulk-output-azure_blob_storage"
11
-
12
- spec.files = `git ls-files`.split("\n") + Dir["classpath/*.jar"]
13
- spec.test_files = spec.files.grep(%r"^(test|spec)/")
14
- spec.require_paths = ["lib"]
15
-
16
- spec.add_development_dependency 'bundler', ['~> 1.0']
17
- spec.add_development_dependency 'rake', ['>= 10.0']
18
- end