code: public static String extractBeanArchiveId(String beanArchiveRef, String base, String separator) {
          beanArchiveRef = beanArchiveRef.replace('\\', '/');
          StringBuilder id = new StringBuilder();
          id.append(base);
          id.append(BeanArchives.BEAN_ARCHIVE_ID_BASE_DELIMITER);
          if (beanArchiveRef.contains(separator)) {
              id.append(beanArchiveRef.substring(beanArchiveRef.indexOf(separator), beanArchiveRef.length()));
          } else {
              id.append(beanArchiveRef);
          }
          return id.toString();
      }
docs: Takes the {@link #getBeanArchiveRef()} value and extracts the bean archive id.
  <ol>
  <li>First, the windows file separators found in beanArchiveRef are converted to slashes</li>
  <li>{@code base} value is appended</li>
  <li>{@link BeanArchives#BEAN_ARCHIVE_ID_BASE_DELIMITER} is appended</li>
  <li>If the {@code beanArchiveRef} contains the separator, the substring (beginning at the separator index) is appended</li>
  <li>Otherwise, the whole {@code beanArchiveRef} value is appended</li>
  </ol>
  The id should be consistent between multiple occurrences of the deployment.
  
  @param beanArchiveRef
  @param base
  @param separator
  @return the extracted bean archive id