docs: private void processDynamicPrivileged(ComponentNameSpaceConfiguration compNSConfig) throws InjectionException {
          final boolean isTraceOn = TraceComponent.isAnyTracingEnabled();
          if (isTraceOn && tc.isEntryEnabled())
              Tr.entry(tc, "processDynamic");
  
          List<Class<?>> injectionClasses = compNSConfig.getInjectionClasses();
          if (isProcessDynamicNeeded(injectionClasses)) {
              Map<String, InjectionBinding<?>> completedInjectionBindings = new HashMap<String, InjectionBinding<?>>();
              for (InjectionBinding<?> binding : ivProcessedInjectionBindings) {
                  completedInjectionBindings.put(binding.getJndiName(), binding);
              }
  
              // Process injection metadata for the new injection classes.
              InjectionProcessorContextImpl context = ivInjectionEngine.createInjectionProcessorContext();
              context.ivCompletedInjectionBindings = completedInjectionBindings;
              compNSConfig.setInjectionProcessorContext(context);
              ivInjectionEngine.processInjectionMetaData(compNSConfig, injectionClasses);
  
              // Add new processed injection bindings.  If this is the first time
              // we've done dynamic processing, copy the ArrayList to a Set to
              // avoid duplicates.
              if (!ivAnyProcessDynamic) {
                  ivAnyProcessDynamic = true;
                  ivProcessedInjectionBindings = new LinkedHashSet<InjectionBinding<?>>(ivProcessedInjectionBindings);
              }
              ivProcessedInjectionBindings.addAll(context.ivProcessedInjectionBindings);
  
              // Add new declared injection targets.
              Map<Class<?>, List<InjectionTarget>> declaredTargets = ivInjectionEngine.getDeclaredInjectionTargets(context.ivProcessedInjectionBindings);
              ivDeclaredInjectionTargets.putAll(declaredTargets);
  
              //clear the cached list of injection targets for the dynamic classes
              for (Class<?> injectionClass : injectionClasses) {
                  ivInjectionTargetMap.remove(injectionClass);
              }
  
              // Now that injection targets are obtained, complete the context.
              context.metadataProcessingComplete();
  
              // Now that metadata has processed successfully, add all the classes
              // to the list of processed classes.
              if (ivProcessedInjectionClasses.size() <= svInjClassMapCacheSize) {
                  ivProcessedInjectionClasses.addAll(injectionClasses);
              }
          }
  
          if (isTraceOn && tc.isDebugEnabled())
              Tr.exit(tc, "processDynamic");
      }