code: @Process(actionType = CreateConnector.class)
      public void createConnector(final CreateConnector action, final Dispatcher.Channel channel) {
  
          final List<Property> connectors = getModelsFor(action.getAddressTemplate());
          // First create the connector, then create the security=sasl singleton and finally
          // create the sasl-policy=policy singleton
          Outcome<FunctionContext> outcome = new Outcome<FunctionContext>() {
              @Override
              public void onFailure(FunctionContext context) {
                  channel.nack(context.getError());
              }
  
              @Override
              public void onSuccess(FunctionContext context) {
                  lastModifiedInstance = action.getInstanceName();
                  read(action.getAddressTemplate().getResourceType(), getModelsFor(action.getAddressTemplate()), channel);
              }
          };
  
          AddressTemplate securityAddress = action.getAddressTemplate().append("security=" + SASL_SINGLETON);
          AddressTemplate policyAddress = securityAddress.append("sasl-policy=" + POLICY_SINGLETON);
          new Async<FunctionContext>(new Progress.Nop()).waterfall(new FunctionContext(), outcome,
                  new CreateConnectorFn(dispatcher, statementContext, action.getAddressTemplate(),
                          action.getInstanceName(), action.getNewModel()),
                  new CreateSaslSingleton(dispatcher, statementContext, action.getInstanceName(), securityAddress),
                  new CreateSaslSingleton(dispatcher, statementContext, action.getInstanceName(), policyAddress));
      }
docs: ------------------------------------------------------ connectors