docs: private void processWebModulePersistenceXml(JPAApplInfo applInfo, ContainerInfo warContainerInfo, ClassLoader warClassLoader) {
          final boolean isTraceOn = TraceComponent.isAnyTracingEnabled();
          if (isTraceOn && tc.isEntryEnabled()) {
              Tr.entry(tc, "processWebModulePersistenceXml : " + applInfo.getApplName() + "#" + warContainerInfo);
          }
  
          String archiveName = warContainerInfo.getName();
          Container warContainer = warContainerInfo.getContainer();
  
          // ------------------------------------------------------------------------
          // JPA 2.0 Specification - 8.2 Persistence Unit Packaging
          //
          // A persistence unit is defined by a persistence.xml file. The jar file or
          // directory whose META-INF directory contains the persistence.xml file is
          // termed the root of the persistence unit. In Java EE environments, the
          // root of a persistence unit may be one of the following:
          //
          // -> the WEB-INF/classes directory of a WAR file
          // -> a jar file in the WEB-INF/lib directory of a WAR file
          // ------------------------------------------------------------------------
  
          // Obtain any persistence.xml in WEB-INF/classes/META-INF
          Entry pxml = warContainer.getEntry("WEB-INF/classes/META-INF/persistence.xml");
          if (pxml != null) {
              String appName = applInfo.getApplName();
              URL puRoot = getPXmlRootURL(appName, archiveName, pxml);
              applInfo.addPersistenceUnits(new OSGiJPAPXml(applInfo, archiveName, JPAPuScope.Web_Scope, puRoot, warClassLoader, pxml));
          }
  
          // Obtain any persistenc.xml in WEB-INF/lib/*.jar. This includes 'utility'
          // jars and web fragments. Any PUs found are WEB scoped and considered to
          // be in the WAR, so just use the WAR archiveName (don't use a root prefix
          // that is prepended to the jar/fragment name).
          Entry webInfLib = warContainer.getEntry("WEB-INF/lib/");
          if (webInfLib != null) {
              try {
                  Container webInfLibContainer = webInfLib.adapt(Container.class);
                  processLibraryJarPersistenceXml(applInfo, webInfLibContainer, archiveName, null, JPAPuScope.Web_Scope, warClassLoader);
              } catch (UnableToAdaptException ex) {
                  // Should never occur... just propagate failure
                  throw new RuntimeException("Failure locating persistence.xml", ex);
              }
          }
  
          if (isTraceOn && tc.isEntryEnabled())
              Tr.exit(tc, "processWebModulePersistenceXml : " + applInfo.getApplName() +
                          "#" + warContainer);
      }