Skip to content

Commit

Permalink
Fix crash bug at startup when no retryConfigurations in config (#13)
Browse files Browse the repository at this point in the history
  • Loading branch information
breischl authored and eocantu committed Oct 31, 2019
1 parent 701c308 commit 12f3f18
Show file tree
Hide file tree
Showing 11 changed files with 311 additions and 264 deletions.
11 changes: 9 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,18 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/).

## [Unreleased]
### Added

### Changed
- Fixed crash at startup when no `retryConfigurations` are specified in the config


## [1.0.0] - 2019-10-27
### Added
- Added support for R4j `Retry`

### Changed
- Updated to R4j 1.1.0. This is a major version bump that has a lot of breaking changes that will be user-visible. See R4j documentation for details.

##[0.0.1] - 2019-03-11
###Initial Version
## [0.0.1] - 2019-03-11
### Initial Version
- Created with initial support for CircuitBreakers
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ protected void configure() {
}

final List<RetryConfiguration> retryConfigs = config.getRetryConfigurations();
if (retryConfigs != null & !retryConfigs.isEmpty()) {
if (retryConfigs != null && !retryConfigs.isEmpty()) {
final InMemoryRetryRegistry retryRegistry = new InMemoryRetryRegistry();
for (final RetryConfiguration cfg : retryConfigs) {
final RetryConfig.Builder r4jConfigBuilder = cfg.toResilience4jConfigBuilder();
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package com.homeaway.dropwizard.bundle.resilience4j;

import java.io.File;
import java.net.URI;
import java.net.URL;

import com.google.common.io.Resources;

public class ResourceTestUtil {

/**
* Method to translate resource string into URL
*
* @param resourcePath path to a resource
* @return URL for the resource
*/
private static File resource(String resourcePath) {
try {
URL resource = Resources.getResource(ResourceTestUtil.class, resourcePath);
URI uri = resource.toURI();
return new File(uri);
} catch (Exception ex) {
throw new RuntimeException(ex);
}
}

public static String resourceAbsolutePath(String resourcePath) {
return resource(resourcePath).getAbsolutePath();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
package com.homeaway.dropwizard.bundle.resilience4j;

import java.util.ArrayList;
import java.util.List;

import org.apache.commons.lang3.tuple.Pair;

import io.dropwizard.Application;
import io.dropwizard.setup.Bootstrap;
import io.dropwizard.setup.Environment;
import io.github.resilience4j.circuitbreaker.CircuitBreakerConfig;
import io.github.resilience4j.retry.RetryConfig;

public class TestApplication extends Application<TestConfiguration> {

private List<Pair<String, CircuitBreakerConfig.Builder>> breakersSeenInConfiguration = new ArrayList<>();

private List<Pair<String, RetryConfig.Builder>> retryersSeenInConfiguration = new ArrayList<>();

@Override
public void initialize(Bootstrap<TestConfiguration> bootstrap) {
Resilience4jBundle<TestConfiguration> bundle =
new Resilience4jBundle<>(TestConfiguration::getResilience4j,
this::addBreakerConfigurationToTestList,
this::addRetryConfigurationToTestList);

bootstrap.addBundle(bundle);
}

@Override
public void run(TestConfiguration configuration, Environment environment) {
}

private void addBreakerConfigurationToTestList(String key, CircuitBreakerConfig.Builder builder) {
breakersSeenInConfiguration.add(Pair.of(key, builder));
}

private void addRetryConfigurationToTestList(String key, RetryConfig.Builder builder) {
retryersSeenInConfiguration.add(Pair.of(key, builder));
}

public List<Pair<String, CircuitBreakerConfig.Builder>> getBreakersSeenInConfiguration() {
return breakersSeenInConfiguration;
}

public List<Pair<String, RetryConfig.Builder>> getRetryersSeenInConfiguration() {
return retryersSeenInConfiguration;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.homeaway.dropwizard.bundle.resilience4j;

import com.homeaway.dropwizard.bundle.resilience4j.configuration.Resilience4jConfiguration;

import io.dropwizard.Configuration;

public class TestConfiguration extends Configuration {

private Resilience4jConfiguration resilience4j;

public Resilience4jConfiguration getResilience4j() {
return resilience4j;
}
}
Loading

0 comments on commit 12f3f18

Please sign in to comment.