code: @Override
      public Future<Void> registerProvider(String domain,
                                           Object provider,
                                           ProviderQos providerQos,
                                           boolean awaitGlobalRegistration,
                                           final Class<?> interfaceClass) {
          if (interfaceClass == null) {
              throw new IllegalArgumentException("Cannot registerProvider: interfaceClass may not be NULL");
          }
  
          registerInterfaceClassTypes(interfaceClass, "Cannot registerProvider");
          return capabilitiesRegistrar.registerProvider(domain, provider, providerQos, awaitGlobalRegistration);
      }
docs: Registers a provider in the joynr framework by JEE
  
  @param domain
  The domain the provider should be registered for. Has to be identical at the client to be able to find
  the provider.
  @param provider
  Instance of the provider implementation (has to extend a generated ...AbstractProvider).
  @param providerQos
  the provider's quality of service settings
  @param awaitGlobalRegistration
  If true, wait for global registration to complete or timeout, if required.
  @param interfaceClass
  The interface class of the provider.
  @return Returns a Future which can be used to check the registration status.