docs: @Override
      public void processXML()
                      throws InjectionException
      {
          final boolean isTraceOn = TraceComponent.isAnyTracingEnabled();
          if (isTraceOn && tc.isEntryEnabled())
              Tr.entry(tc, "processXML : " + this);
  
          List<? extends EJBRef> ejbRefs = ivNameSpaceConfig.getJNDIEnvironmentRefs(EJBRef.class);
          if (ejbRefs != null)
          {
              for (EJBRef ejbRef : ejbRefs)
              {
                  //If XML has previously been read and an injection binding with the same
                  //jndi name has been created, get the current injection binding and merge
                  //the new EJB Ref into it.
                  String jndiName = ejbRef.getName();
                  InjectionBinding<EJB> injectionBinding = ivAllAnnotationsCollection.get(jndiName);
                  if (injectionBinding != null) {
                      ((EJBInjectionBinding) injectionBinding).merge(ejbRef);
                  }
                  else
                  {
                      List<Description> descs = ejbRef.getDescriptions();
                      String lookupName = ejbRef.getLookupName();
                      EJB ejbAnnotation = new EJBImpl(ejbRef.getName(),
                                      null,
                                      ejbRef.getLink(),
                                      ejbRef.getMappedName(),
                                      descs.isEmpty() ? null : descs.get(0).getValue(),
                                      lookupName != null ? lookupName.trim() : null); // F743-21028.4
  
                      EJBInjectionBinding ejbBinding = new EJBInjectionBinding
                                      (ejbAnnotation,
                                                      ejbRef,
                                                      ivNameSpaceConfig);
  
                      // Process any injection-targets that may be specified.    d429866.1
                      // Add all of those found to the EJBInjectionBinding.        d432816
                      List<InjectionTarget> targets = ejbRef.getInjectionTargets();
  
                      if (!targets.isEmpty())
                      {
                          for (InjectionTarget target : targets)
                          {
                              Class<?> injectionType = ejbBinding.getInjectionClassTypeWithException();
                              String injectionName = target.getInjectionTargetName();
                              String injectionClassName = target.getInjectionTargetClassName();
                              ejbBinding.addInjectionTarget(injectionType, // d446474
                                                            injectionName,
                                                            injectionClassName);
                          }
                      }
  
                      // TODO : Support method injection and type compatibility
                      addInjectionBinding(ejbBinding);
                  }
              }
          }
  
          if (isTraceOn && tc.isEntryEnabled())
              Tr.exit(tc, "processXML : " + this);
      }