@Override public Client register(Class<?> aClass){
  try {
    providerComponents.add(aClass.newInstance());
    return this;
  }
 catch (  InstantiationException e) {
    throw new RuntimeException("Failed to initialize provider",e);
  }
catch (  IllegalAccessException e) {
    throw new RuntimeException("Failed to access provider implementation",e);
  }
}

@ Override public Client register ( Class < ? > aClass ) { try { providerComponents . add ( aClass . newInstance ( ) ) ; return this ; } catch ( InstantiationException e ) { throw new RuntimeException ( "Failed to initialize provider" , e ) ; } catch ( IllegalAccessException e ) { throw new RuntimeException ( "Failed to access provider implementation" , e ) ; } }
register a provider class that is supported by the runtime .
