docs: private static void addBundle(final Object bundleWiring, final ClassLoader classLoader,
              final ClasspathOrder classpathOrderOut, final Set<Object> bundles, final ScanSpec scanSpec,
              final LogNode log) {
          // Track the bundles we've processed to prevent loops
          bundles.add(bundleWiring);
  
          // Get the revision for this wiring
          final Object revision = ReflectionUtils.invokeMethod(bundleWiring, "getRevision", false);
          // Get the contents
          final Object content = ReflectionUtils.invokeMethod(revision, "getContent", false);
          final String location = content != null ? getContentLocation(content) : null;
          if (location != null) {
              // Add the bundle object
              classpathOrderOut.addClasspathEntry(location, classLoader, scanSpec, log);
  
              // And any embedded content
              final List<?> embeddedContent = (List<?>) ReflectionUtils.invokeMethod(revision, "getContentPath",
                      false);
              if (embeddedContent != null) {
                  for (final Object embedded : embeddedContent) {
                      if (embedded != content) {
                          final String embeddedLocation = embedded != null ? getContentLocation(embedded) : null;
                          if (embeddedLocation != null) {
                              classpathOrderOut.addClasspathEntry(embeddedLocation, classLoader, scanSpec, log);
                          }
                      }
                  }
              }
          }
      }