code: @Override
      public ClassLoadingButler adapt(Container root, OverlayContainer rootOverlay, ArtifactContainer artifactContainer, Container containerToAdapt) throws UnableToAdaptException {
          ClassLoadingButler butler = (ClassLoadingButler) rootOverlay.getFromNonPersistentCache(artifactContainer.getPath(), ClassLoadingButler.class);
          if (butler != null) {
              return butler;
          }
  
          butler = new ClassLoadingButlerImpl(containerToAdapt);
  
          rootOverlay.addToNonPersistentCache(artifactContainer.getPath(), ClassLoadingButler.class, butler);
          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
              Tr.debug(tc, "adapt adding container to map - container = " + containerToAdapt);
          }
  
          return butler;
      }
docs: /*
  (non-Javadoc)
  
  @see com.ibm.wsspi.adaptable.module.adapters.ContainerAdapter#adapt(com.ibm.wsspi.adaptable.module.Container, com.ibm.wsspi.adaptable.module.adapters.OverlayContainer,
  com.ibm.wsspi.artifact.ArtifactContainer, com.ibm.wsspi.adaptable.module.Container)