docs: @FFDCIgnore({ ClassNotFoundException.class, LinkageError.class })
      public Map<String, Class<?>> loadBdaClasses(Set<String> internalClassNames, Set<String> additionalClassNames) throws CDIException {
          Map<String, Class<?>> classes = new HashMap<String, Class<?>>();
  
          ClassLoader classLoader = getClassLoader();
  
          for (String className : additionalClassNames) {
              try {
                  Class<?> clazz = classLoader.loadClass(className);
                  classes.put(className, clazz);
              } catch (ClassNotFoundException e) {
                  // skip classes that can't be loaded
                  if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                      Tr.debug(tc, "Skipping additional class which can't be loaded", className, classLoader);
                  }
              } catch (LinkageError e) {
                  // skip classes that have linkage errors
                  if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                      Tr.debug(tc, "Skipping additional class which can't be loaded", className, classLoader);
                  }
              }
          }
  
          for (String className : internalClassNames) {
              try {
                  Class<?> clazz = classLoader.loadClass(className);
                  // only add the class if it was loaded by the archive class loader
                  if (clazz.getClassLoader() == classLoader) {
                      classes.put(className, clazz);
                  } else {
                      if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                          Tr.debug(tc, "Skipping class which is external to the BDA", clazz, clazz.getClassLoader(), classLoader);
                      }
                  }
              } catch (ClassNotFoundException e) {
                  //skip over classes that can't be loaded
                  if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                      Tr.debug(tc, "Skipping class which can't be loaded", className, classLoader);
                  }
              } catch (LinkageError e) {
                  // skip classes that have linkage errors
                  if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                      Tr.debug(tc, "Skipping class which can't be loaded", className, classLoader);
                  }
              }
          }
          return classes;
      }