embulk-input-marketo 0.6.7 → 0.6.8.alpha1
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 +4 -4
- data/CHANGELOG.md +3 -0
- data/build.gradle +4 -3
- data/src/main/java/org/embulk/input/marketo/rest/MarketoBaseRestClient.java +12 -6
- data/src/test/java/org/embulk/input/marketo/rest/MarketoBaseRestClientTest.java +26 -5
- metadata +5 -6
- data/src/test/java/org/embulk/input/marketo/TestMarketoInputPlugin.java +0 -5
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: d23d2cfa89b67071f75d5972006bfc13723f4879
         | 
| 4 | 
            +
              data.tar.gz: a23b0cc19c7e884d9e75126319e718244e7e7905
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 266e3cbbf8e3ee5bbe289fdb4b4327b6b6da510ca9bd09514f0e2b698ed25462fa13e297741f46804cd478eaf9f36cc09bd38a7de62ab17ced20ba4af7006a22
         | 
| 7 | 
            +
              data.tar.gz: d65566dbe869de9925df1055acfc7dfe7997e170222737e3f5953c77020f6e409d99a5ea5be727837878372d5b65f7be47c676b291266990aff92a271d8e8943
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    | @@ -1,3 +1,6 @@ | |
| 1 | 
            +
            ## 0.6.7 - 2018-02-26
         | 
| 2 | 
            +
            * [fixed] Remove de-duplication logic [#83](https://github.com/treasure-data/embulk-input-marketo/pull/83)
         | 
| 3 | 
            +
             | 
| 1 4 | 
             
            ## 0.6.6 - 2018-01-30
         | 
| 2 5 | 
             
            * [fixed] Fix JettyRetryHelper not closed [#82](https://github.com/treasure-data/embulk-input-marketo/pull/82)
         | 
| 3 6 |  | 
    
        data/build.gradle
    CHANGED
    
    | @@ -16,7 +16,7 @@ repositories { | |
| 16 16 | 
             
            configurations {
         | 
| 17 17 | 
             
                provided
         | 
| 18 18 | 
             
            }
         | 
| 19 | 
            -
            version = "0.6. | 
| 19 | 
            +
            version = "0.6.8.alpha1"
         | 
| 20 20 | 
             
            sourceCompatibility = 1.7
         | 
| 21 21 | 
             
            targetCompatibility = 1.7
         | 
| 22 22 |  | 
| @@ -43,12 +43,13 @@ checkstyle { | |
| 43 43 | 
             
                toolVersion = '6.14.1'
         | 
| 44 44 | 
             
            }
         | 
| 45 45 | 
             
            checkstyleMain {
         | 
| 46 | 
            +
                exclude '**/**/CsvTokenizer*'
         | 
| 46 47 | 
             
                configFile = file("${project.rootDir}/config/checkstyle/default.xml")
         | 
| 47 | 
            -
                ignoreFailures =  | 
| 48 | 
            +
                ignoreFailures = false
         | 
| 48 49 | 
             
            }
         | 
| 49 50 | 
             
            checkstyleTest {
         | 
| 50 51 | 
             
                configFile = file("${project.rootDir}/config/checkstyle/default.xml")
         | 
| 51 | 
            -
                ignoreFailures =  | 
| 52 | 
            +
                ignoreFailures = false
         | 
| 52 53 | 
             
            }
         | 
| 53 54 | 
             
            task checkstyle(type: Checkstyle) {
         | 
| 54 55 | 
             
                classpath = sourceSets.main.output + sourceSets.test.output
         | 
| @@ -112,6 +112,15 @@ public class MarketoBaseRestClient implements AutoCloseable | |
| 112 112 | 
             
                        {
         | 
| 113 113 | 
             
                            return response.getStatus() == 502;
         | 
| 114 114 | 
             
                        }
         | 
| 115 | 
            +
             | 
| 116 | 
            +
                        @Override
         | 
| 117 | 
            +
                        protected boolean isExceptionToRetry(Exception exception)
         | 
| 118 | 
            +
                        {
         | 
| 119 | 
            +
                            if (exception instanceof ExecutionException) {
         | 
| 120 | 
            +
                                return this.toRetry((Exception) exception.getCause());
         | 
| 121 | 
            +
                            }
         | 
| 122 | 
            +
                            return exception instanceof TimeoutException || exception instanceof SocketTimeoutException || exception instanceof EOFException || super.isExceptionToRetry(exception);
         | 
| 123 | 
            +
                        }
         | 
| 115 124 | 
             
                    });
         | 
| 116 125 |  | 
| 117 126 | 
             
                    MarketoAccessTokenResponse accessTokenResponse;
         | 
| @@ -189,11 +198,7 @@ public class MarketoBaseRestClient implements AutoCloseable | |
| 189 198 | 
             
                        protected boolean isExceptionToRetry(Exception exception)
         | 
| 190 199 | 
             
                        {
         | 
| 191 200 | 
             
                            if (exception instanceof ExecutionException) {
         | 
| 192 | 
            -
                                this.toRetry((Exception) exception.getCause());
         | 
| 193 | 
            -
                            }
         | 
| 194 | 
            -
                            //Anything that is EOFException or cause by EOF exception
         | 
| 195 | 
            -
                            if (exception instanceof EOFException || exception.getCause() instanceof EOFException) {
         | 
| 196 | 
            -
                                return true;
         | 
| 201 | 
            +
                                return this.toRetry((Exception) exception.getCause());
         | 
| 197 202 | 
             
                            }
         | 
| 198 203 | 
             
                            if (exception instanceof MarketoAPIException) {
         | 
| 199 204 | 
             
                                //Retry Authenticate Exception
         | 
| @@ -201,6 +206,7 @@ public class MarketoBaseRestClient implements AutoCloseable | |
| 201 206 | 
             
                                String code = error.getCode();
         | 
| 202 207 | 
             
                                switch (code) {
         | 
| 203 208 | 
             
                                    case "602":
         | 
| 209 | 
            +
                                    case "601":
         | 
| 204 210 | 
             
                                        LOGGER.info("Access token expired");
         | 
| 205 211 | 
             
                                        renewAccessToken();
         | 
| 206 212 | 
             
                                        return true;
         | 
| @@ -219,7 +225,7 @@ public class MarketoBaseRestClient implements AutoCloseable | |
| 219 225 | 
             
                                        return false;
         | 
| 220 226 | 
             
                                }
         | 
| 221 227 | 
             
                            }
         | 
| 222 | 
            -
                            return exception instanceof TimeoutException || exception instanceof SocketTimeoutException || super.isExceptionToRetry(exception);
         | 
| 228 | 
            +
                            return exception instanceof EOFException || exception instanceof TimeoutException || exception instanceof SocketTimeoutException || super.isExceptionToRetry(exception);
         | 
| 223 229 | 
             
                        }
         | 
| 224 230 | 
             
                    });
         | 
| 225 231 | 
             
                }
         | 
| @@ -26,9 +26,13 @@ import org.junit.Test; | |
| 26 26 | 
             
            import org.mockito.ArgumentCaptor;
         | 
| 27 27 | 
             
            import org.mockito.Mockito;
         | 
| 28 28 |  | 
| 29 | 
            +
            import java.io.EOFException;
         | 
| 30 | 
            +
            import java.net.SocketTimeoutException;
         | 
| 29 31 | 
             
            import java.nio.charset.StandardCharsets;
         | 
| 30 32 | 
             
            import java.util.HashMap;
         | 
| 31 33 | 
             
            import java.util.Map;
         | 
| 34 | 
            +
            import java.util.concurrent.ExecutionException;
         | 
| 35 | 
            +
            import java.util.concurrent.TimeoutException;
         | 
| 32 36 |  | 
| 33 37 | 
             
            /**
         | 
| 34 38 | 
             
             * Created by tai.khuu on 9/21/17.
         | 
| @@ -72,18 +76,25 @@ public class MarketoBaseRestClientTest | |
| 72 76 | 
             
                    Mockito.when(mockJetty92.requestWithRetry(Mockito.any(StringJetty92ResponseEntityReader.class), jetty92SingleRequesterArgumentCaptor.capture())).thenReturn("{\"access_token\": \"access_token\"}");
         | 
| 73 77 | 
             
                    String accessToken = marketoBaseRestClient.getAccessToken();
         | 
| 74 78 | 
             
                    Assert.assertEquals("access_token", accessToken);
         | 
| 75 | 
            -
                    Jetty92SingleRequester  | 
| 79 | 
            +
                    Jetty92SingleRequester jetty92SingleRequester = jetty92SingleRequesterArgumentCaptor.getValue();
         | 
| 76 80 | 
             
                    HttpClient client = Mockito.mock(HttpClient.class);
         | 
| 77 81 | 
             
                    Response.Listener listener = Mockito.mock(Response.Listener.class);
         | 
| 78 82 | 
             
                    Request mockRequest = Mockito.mock(Request.class);
         | 
| 79 83 | 
             
                    Mockito.when(client.newRequest(Mockito.eq(IDENTITY_END_POINT + MarketoRESTEndpoint.ACCESS_TOKEN.getEndpoint()))).thenReturn(mockRequest);
         | 
| 80 84 | 
             
                    Request request1 = Mockito.mock(Request.class);
         | 
| 81 85 | 
             
                    Mockito.when(mockRequest.method(Mockito.eq(HttpMethod.GET))).thenReturn(request1);
         | 
| 82 | 
            -
                     | 
| 86 | 
            +
                    jetty92SingleRequester.requestOnce(client, listener);
         | 
| 83 87 | 
             
                    Mockito.verify(request1, Mockito.times(1)).param(Mockito.eq("client_id"), Mockito.eq("clientId"));
         | 
| 84 88 | 
             
                    Mockito.verify(request1, Mockito.times(1)).param(Mockito.eq("client_secret"), Mockito.eq("clientSecret"));
         | 
| 85 89 | 
             
                    Mockito.verify(request1, Mockito.times(1)).param(Mockito.eq("grant_type"), Mockito.eq("client_credentials"));
         | 
| 86 | 
            -
                    Assert.assertTrue( | 
| 90 | 
            +
                    Assert.assertTrue(jetty92SingleRequester.toRetry(createHttpResponseException(502)));
         | 
| 91 | 
            +
                    Assert.assertTrue(jetty92SingleRequester.toRetry(new ExecutionException(new TimeoutException())));
         | 
| 92 | 
            +
                    Assert.assertTrue(jetty92SingleRequester.toRetry(new ExecutionException(new EOFException())));
         | 
| 93 | 
            +
                    Assert.assertTrue(jetty92SingleRequester.toRetry(new ExecutionException(new SocketTimeoutException())));
         | 
| 94 | 
            +
                    // Retry SocketTimeoutException, TimeoutException and EOFException
         | 
| 95 | 
            +
                    Assert.assertTrue(jetty92SingleRequester.toRetry(new SocketTimeoutException()));
         | 
| 96 | 
            +
                    Assert.assertTrue(jetty92SingleRequester.toRetry(new TimeoutException()));
         | 
| 97 | 
            +
                    Assert.assertTrue(jetty92SingleRequester.toRetry(new EOFException()));
         | 
| 87 98 | 
             
                }
         | 
| 88 99 | 
             
                @Test
         | 
| 89 100 | 
             
                public void testGetAccessTokenWithError()
         | 
| @@ -184,8 +195,18 @@ public class MarketoBaseRestClientTest | |
| 184 195 | 
             
                    Assert.assertTrue(jetty92SingleRequester.toRetry(createMarketoAPIException("606", "")));
         | 
| 185 196 | 
             
                    Assert.assertTrue(jetty92SingleRequester.toRetry(createMarketoAPIException("615", "")));
         | 
| 186 197 | 
             
                    Assert.assertTrue(jetty92SingleRequester.toRetry(createMarketoAPIException("602", "")));
         | 
| 187 | 
            -
             | 
| 188 | 
            -
                     | 
| 198 | 
            +
                    // Should retry 601 error too
         | 
| 199 | 
            +
                    Assert.assertTrue(jetty92SingleRequester.toRetry(createMarketoAPIException("601", "")));
         | 
| 200 | 
            +
                    // Retry wrap SocketTimeoutException, TimeoutException and EOFException
         | 
| 201 | 
            +
                    Assert.assertTrue(jetty92SingleRequester.toRetry(new ExecutionException(new TimeoutException())));
         | 
| 202 | 
            +
                    Assert.assertTrue(jetty92SingleRequester.toRetry(new ExecutionException(new EOFException())));
         | 
| 203 | 
            +
                    Assert.assertTrue(jetty92SingleRequester.toRetry(new ExecutionException(new SocketTimeoutException())));
         | 
| 204 | 
            +
                    // Retry SocketTimeoutException, TimeoutException and EOFException
         | 
| 205 | 
            +
                    Assert.assertTrue(jetty92SingleRequester.toRetry(new SocketTimeoutException()));
         | 
| 206 | 
            +
                    Assert.assertTrue(jetty92SingleRequester.toRetry(new TimeoutException()));
         | 
| 207 | 
            +
                    Assert.assertTrue(jetty92SingleRequester.toRetry(new EOFException()));
         | 
| 208 | 
            +
                   // Call 3 times First call then 602 error and  601 error
         | 
| 209 | 
            +
                    Mockito.verify(mockJetty92, Mockito.times(3)).requestWithRetry(Mockito.any(StringJetty92ResponseEntityReader.class), Mockito.any(Jetty92SingleRequester.class));
         | 
| 189 210 | 
             
                }
         | 
| 190 211 |  | 
| 191 212 | 
             
                private HttpResponseException createHttpResponseException(int statusCode)
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: embulk-input-marketo
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.6. | 
| 4 | 
            +
              version: 0.6.8.alpha1
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - uu59
         | 
| @@ -10,7 +10,7 @@ authors: | |
| 10 10 | 
             
            autorequire:
         | 
| 11 11 | 
             
            bindir: bin
         | 
| 12 12 | 
             
            cert_chain: []
         | 
| 13 | 
            -
            date: 2018- | 
| 13 | 
            +
            date: 2018-03-30 00:00:00.000000000 Z
         | 
| 14 14 | 
             
            dependencies:
         | 
| 15 15 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 16 16 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -94,7 +94,6 @@ files: | |
| 94 94 | 
             
            - src/main/java/org/embulk/input/marketo/rest/RecordPagingIterable.java
         | 
| 95 95 | 
             
            - src/test/java/org/embulk/input/marketo/MarketoServiceImplTest.java
         | 
| 96 96 | 
             
            - src/test/java/org/embulk/input/marketo/MarketoUtilsTest.java
         | 
| 97 | 
            -
            - src/test/java/org/embulk/input/marketo/TestMarketoInputPlugin.java
         | 
| 98 97 | 
             
            - src/test/java/org/embulk/input/marketo/delegate/ActivityBulkExtractInputPluginTest.java
         | 
| 99 98 | 
             
            - src/test/java/org/embulk/input/marketo/delegate/CampaignInputPluginTest.java
         | 
| 100 99 | 
             
            - src/test/java/org/embulk/input/marketo/delegate/LeadBulkExtractInputPluginTest.java
         | 
| @@ -125,9 +124,9 @@ files: | |
| 125 124 | 
             
            - src/test/resources/fixtures/program_response.json
         | 
| 126 125 | 
             
            - classpath/jetty-http-9.2.14.v20151106.jar
         | 
| 127 126 | 
             
            - classpath/embulk-base-restclient-0.5.3.jar
         | 
| 127 | 
            +
            - classpath/embulk-input-marketo-0.6.8.alpha1.jar
         | 
| 128 128 | 
             
            - classpath/jetty-client-9.2.14.v20151106.jar
         | 
| 129 129 | 
             
            - classpath/jetty-util-9.2.14.v20151106.jar
         | 
| 130 | 
            -
            - classpath/embulk-input-marketo-0.6.7.jar
         | 
| 131 130 | 
             
            - classpath/embulk-util-retryhelper-jetty92-0.5.3.jar
         | 
| 132 131 | 
             
            - classpath/jetty-io-9.2.14.v20151106.jar
         | 
| 133 132 | 
             
            homepage: https://github.com/treasure-data/embulk-input-marketo
         | 
| @@ -145,9 +144,9 @@ required_ruby_version: !ruby/object:Gem::Requirement | |
| 145 144 | 
             
                  version: '0'
         | 
| 146 145 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 147 146 | 
             
              requirements:
         | 
| 148 | 
            -
              - - ' | 
| 147 | 
            +
              - - '>'
         | 
| 149 148 | 
             
                - !ruby/object:Gem::Version
         | 
| 150 | 
            -
                  version:  | 
| 149 | 
            +
                  version: 1.3.1
         | 
| 151 150 | 
             
            requirements: []
         | 
| 152 151 | 
             
            rubyforge_project:
         | 
| 153 152 | 
             
            rubygems_version: 2.1.9
         |