docs: public Reference createDefinitionReference(String bindingName, String type, Map<String, Object> properties) throws InjectionException {
          final boolean isTraceOn = TraceComponent.isAnyTracingEnabled();
          if (isTraceOn && tc.isEntryEnabled()) {
              Map<String, Object> traceProps = properties;
              if (traceProps.containsKey("password")) {
                  traceProps = new HashMap<String, Object>(properties);
                  traceProps.put("password", "********");
              }
  
              Tr.entry(tc, "createDefinitionReference: bindingName=" + bindingName + ", type=" + type, traceProps);
          }
  
          Reference ref;
          try {
              InternalInjectionEngine injectionEngine = (InternalInjectionEngine) InjectionEngineAccessor.getInstance();
              ref = injectionEngine.createDefinitionReference(ivNameSpaceConfig, ivInjectionScope, getJndiName(), bindingName, type, properties);
          } catch (Exception ex) {
              if (isTraceOn && tc.isEntryEnabled())
                  Tr.exit(tc, "createDefinitionReference", ex);
              throw new InjectionException(ex);
          }
  
          if (isTraceOn && tc.isEntryEnabled())
              Tr.exit(tc, "createDefinitionReference", ref);
          return ref;
      }