code: private void processEJBModulePersistenceXml(JPAApplInfo applInfo, ContainerInfo module, ClassLoader appClassloader) {
          final boolean isTraceOn = TraceComponent.isAnyTracingEnabled();
          if (isTraceOn && tc.isEntryEnabled())
              Tr.entry(tc, "processEJBModulePersistenceXml : " + applInfo.getApplName() +
                           "#" + module.getName());
  
          String archiveName = module.getName();
          Container ejbContainer = module.getContainer();
          ClassLoader ejbClassLoader = appClassloader;
  
          // ------------------------------------------------------------------------
          // 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:
          //
          // -> an EJB-JAR file
          // ------------------------------------------------------------------------
  
          // Obtain persistence.xml in META-INF
          Entry pxml = ejbContainer.getEntry("META-INF/persistence.xml");
          if (pxml != null) {
              String appName = applInfo.getApplName();
              URL puRoot = getPXmlRootURL(appName, archiveName, pxml);
              applInfo.addPersistenceUnits(new OSGiJPAPXml(applInfo, archiveName, JPAPuScope.EJB_Scope, puRoot, ejbClassLoader, pxml));
          }
  
          if (isTraceOn && tc.isEntryEnabled())
              Tr.exit(tc, "processEJBModulePersistenceXml : " + applInfo.getApplName() +
                          "#" + module.getName());
      }
docs: Locates and processes persistence.xml file in an EJB module. <p>
  
  @param applInfo the application archive information
  @param module   the EJB module archive information