code: public IPromise connectRequiredServices() {
          Log.Info(this, "connecting required services ..");
          if ( requiredServices.size() == 0 ) {
              return resolve();
          }
          IPromise res = new Promise<>();
          serviceRegistry.get().getServiceMap().then((smap, err) -> {
              List<IPromise<Object>> servicePromis = new ArrayList();
              String[] servNames = getAllServiceNames();
              for (int i = 0; i < servNames.length; i++) {
                  String servName = servNames[i];
                  ServiceDescription serviceDescription = smap.get(servName);
                  if (serviceDescription != null && requiredServices.get(servName) instanceof Actor == false) {
                      if ( serviceDescription.getConnectable() == null ) {
                          Log.Error(this, "No connecteable defined for service "+serviceDescription.getName() );
                      }
                      IPromise connect;
                      try {
                          Log.Info(this,"connect "+serviceDescription.getConnectable());
                          connect = serviceDescription.getConnectable().connect(null, act -> serviceDisconnected(act) );
                      } catch (Throwable th) {
                          Log.Error(this, th, "failed to connect "+serviceDescription.getName() );
                          continue;
                      }
                      Promise notify = new Promise();
                      servicePromis.add(notify);
  
                      connect.then((actor, connectionError) -> {
                          if (actor != null) {
                              requiredServices.put(servName, actor);
                              Log.Info(this,"connected requireed service "+servName);
                              notify.complete();
                          } else {
                              requiredServices.put(servName,UNCONNECTED);
                              Log.Info(this,"connected requireed service "+servName);
                              Log.Warn(this, "failed to connect " + servName + " " + connectionError+" "+serviceDescription.getConnectable());
                              notify.reject("failed to connect " + servName + " " + connectionError);
                          }
                      });
                  } else {
                      // wrong ! service already connected
                      //requiredServices.put(servName,UNCONNECTED);
                  }
              }
              all(servicePromis).then( res );
          });
          return res;
      }
docs: try to connect required (unconnected) services, in case of failur UNCONNECTED is put into service hashmap instead
  @return