code: @SuppressWarnings("unchecked")
      @Override
      public Object getInjectionObjectInstance(Object targetObject, InjectionTargetContext targetContext) throws Exception {
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) {
              Tr.entry(tc, "getInjectionObjectInstance", new Object[] { Util.identity(targetObject), Util.identity(targetContext) });
          }
          WeldCreationalContext<Object> cc = null;
  
          if (targetContext == null) {
              if (!(targetObject instanceof Class<?>)) {
                  // Null target context is only valid when we're doing limited injection on an application main class
                  // where we're injecting into the static fields of the class and there is no instance.
                  throw new CDIException(Tr.formatMessage(tc, "no.injection.target.context.CWOWB1006E", targetObject));
              }
          } else {
              cc = targetContext.getInjectionTargetContextData(WeldCreationalContext.class);
          }
  
          WeldManager beanManager = (WeldManager) cdiRuntime.getCurrentBeanManager();
          if (cc == null) {
              //create a dependent scope
              if (beanManager != null) {
                  cc = beanManager.createCreationalContext(null);
              }
          }
  
          if (beanManager != null) {
              methodInvocationContext = beanManager.createCreationalContext(null);
          }
          Object retObj = InjectInjectionObjectFactory.getObjectInstance(this, targetObject, cc, methodInvocationContext, cdiRuntime);
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) {
              Tr.exit(tc, "getInjectionObjectInstance", Util.identity(retObj));
          }
  
          return retObj;
      }
docs: Returns the object to be injected.
  <p>
  
  This is a different (new) instance every time the method is called.
  <p>
  
  @throws Exception
  if a problem occurs while creating the instance to be
  injected.