Goodwill-access is synced to Maven Central. Simply add the dependency to your pom.xml:
<dependency> <groupId>com.ning</groupId> <artifactId>metrics.goodwill-access</artifactId> <version>0.0.6</version> </dependency>
The library offers both bulk fetch and lookup methods. Here is a complete working example:
private final GoodwillAccessor goodwillAccessor = new GoodwillAccessor(host, port); public Collection<String> getAllSchemataNames() { Collection<String> result = new ArrayList<String>(); try { List<GoodwillSchema> goodwillSchemata = goodwillAccessor.getSchemata().get(); for (GoodwillSchema goodwillSchema : goodwillSchemata) { result.add(goodwillSchema.getName()); } } catch (InterruptedException e) { throw new RuntimeException("Was interrupted while getting the list of schemata", e); } catch (ExecutionException e) { throw new RuntimeException("Problem getting the list of schemata", e); } return result; } public GoodwillSchema getSchema(String type) { try { return goodwillAccessor.getSchema(type).get(); } catch (InterruptedException e) { throw new RuntimeException(String.format("Was interrupted while getting schema: %s", type), e); } catch (ExecutionException e) { throw new RuntimeException(String.format("Problem getting schema: %s", type), e); } }
Note that Goodwill-access uses the Async HTTP client, so each method returns a Future on the requested object. This allows you fine tuning for performance demanding environments.