code: @CheckForNull
      public ConnectorInvocationHandler create(final String fromParticipantId,
                                               final ArbitrationResult arbitrationResult,
                                               final MessagingQos qosSettings,
                                               String statelessAsyncParticipantId) {
          // iterate through  arbitrationResult.getDiscoveryEntries()
          // check if there is at least one Globally visible
          // set isGloballyVisible = true. otherwise = false
          boolean isGloballyVisible = false;
          Set<DiscoveryEntryWithMetaInfo> entries = arbitrationResult.getDiscoveryEntries();
          for (DiscoveryEntryWithMetaInfo entry : entries) {
              if (entry.getQos().getScope() == ProviderScope.GLOBAL) {
                  isGloballyVisible = true;
              }
              messageRouter.setToKnown(entry.getParticipantId());
          }
          messageRouter.addNextHop(fromParticipantId, libjoynrMessagingAddress, isGloballyVisible);
          return joynrMessagingConnectorFactory.create(fromParticipantId,
                                                       arbitrationResult.getDiscoveryEntries(),
                                                       qosSettings,
                                                       statelessAsyncParticipantId);
      }
docs: Creates a new connector object using concrete connector factories chosen by the endpointAddress which is passed
  in.
  
  @param fromParticipantId origin participant id
  @param arbitrationResult result of arbitration
  @param qosSettings QOS settings
  @param statelessAsyncParticipantId
  @return connector object