code: @Override
      public T inject(ReferenceContext referenceContext) throws ManagedObjectException {
          T instance = getObject();
          //if there is no referenceContext then just skip straight to CDI injection
          if (referenceContext == null) {
              instance = cdiInjection(instance);
          } else {
              //get all the WS Injection Targets from the supplied reference context
              com.ibm.wsspi.injectionengine.InjectionTarget[] injectionTargets;
              try {
                  injectionTargets = referenceContext.getInjectionTargets(instance.getClass());
              } catch (InjectionException e) {
                  throw new ManagedObjectException(e);
              }
  
              InjectionTargetContext injectionContext = new InjectionTargetContext() {
                  @Override
                  public <S> S getInjectionTargetContextData(Class<S> data) {
                      return getContextData(data);
                  }
              };
              //call inject using the injection targets
              instance = inject(injectionTargets, injectionContext);
          }
  
          return instance;
      }
docs: {@inheritDoc}
  
  @throws CDIException