Fork me on GitHub

Soabase

A suite of Dropwizard bundles and utilities that aid in building Service Oriented Applications. Soabase is implementation neutral. However, default production-level implementations are provided.

Why Soabase?

Dropwizard was created to provide a turnkey solution for Java server applications. It standardizes the things that every Java server app needs and relieves the tedium of re-inventing the wheel every time you write a new Java server app.

Soabase extends this to Service Oriented Architecture applications. Writing clustered Java server applications requires writing the same things over and over. Every app needs a discovery service integrated with the REST client. They also need global configuration/attributes and global administration. Etc.

Features

  • Service Discovery
  • Load Balancing REST Client
    • Default implementations for both Jersey and Apache clients
    • Integrates with Service Discovery for retries, etc.
    • Supports plugging in any desired implementation
  • Distributed, Scoped Dynamic Attributes
    • Built in support for JDBC datasources via Mybatis or JDBI
    • Supports plugging in any desired implementation
  • Jersey-based Admin APIs
    • Add Jersey resources to the Admin port
    • Built in resources for SOA features
  • Administration Console
    • Customizable/extensible
    • Monitor all instances in the cluster
    • Watch any Dropwizard metric
    • Supports LDAP or custom authentication
  • Configuration Utilities
    • A flexible Dropwizard ConfigurationSourceProvider. Allows configuration to be either a string, an external file or a resource in the classpath. Special tokens are used to determine how to treat the argument.
    • A simple way of allowing shared bundles, etc. to access their custom configuration objects
  • Guice Integration
    • Bundle for adding Guice support to Jersey 2.0 Resources which supports most features of Guice's ServletModule

Usage

It is assumed that you are familiar with Dropwizard, bundles, etc. See the Getting Started page for details.

Examples

See the Examples page for a detailed example of Soabase.