code: private List<ServiceRegistration<?>> registerLibraryServices(final Library library, Set<String> serviceNames) {
          final BundleContext context = getGatewayBundleContext(library);
          if (context == null) {
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                  Tr.debug(tc, "registerLibraryServices: can't find bundle ", library.id());
              }
              return Collections.emptyList();
          }
  
          final List<ServiceInfo> serviceInfos = new LinkedList<ServiceInfo>();
          for (final ArtifactContainer ac : library.getContainers()) {
              final ArtifactEntry servicesFolder = ac.getEntry("META-INF/services");
              if (servicesFolder == null) {
                  if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                      Tr.debug(tc, "No META-INF services folder in the container: ", ac);
                  }
                  continue;
              }
              serviceInfos.addAll(getListOfServicesForContainer(servicesFolder.convertToContainer(), library, serviceNames));
          }
  
          final List<ServiceRegistration<?>> libServices;
          if (serviceInfos.size() == 0) {
              if (TraceComponent.isAnyTracingEnabled() && tc.isInfoEnabled()) {
                  Tr.warning(tc, "bell.no.services.found", library.id());
              }
              libServices = Collections.emptyList();
          } else {
              libServices = registerServices(serviceInfos, library, context);
          }
          return libServices;
      }
docs: 1) Retrieve all the meta-inf services entries from the library
  2) For each line in each services file, create an instance of the specified implementation class
  3) Use the library's gateway bundle context to register each instance in the service registry with the following properties:
  - implementation.class=com.acme.whatever.MyImpl
  - exported.from=LibraryId
  4) Store the service registrations in a collection, indexed by library (by library instance not library id, since library ID can be null when we remove it)