code: JarFile createBootProxyJar() throws IOException {
          File dataFile = bundleContext.getDataFile("boot-proxy.jar");
  
          // Create the file if it doesn't already exist
          if (!dataFile.exists()) {
              dataFile.createNewFile();
          }
  
          // Generate a manifest
          Manifest manifest = createBootJarManifest();
  
          // Create the file
          FileOutputStream fileOutputStream = new FileOutputStream(dataFile, false);
          JarOutputStream jarOutputStream = new JarOutputStream(fileOutputStream, manifest);
  
          // Add the jar path entries to reduce class load times
          createDirectoryEntries(jarOutputStream, BOOT_DELEGATED_PACKAGE);
  
          // Map the template classes into the delegation package and add to the jar
          Bundle bundle = bundleContext.getBundle();
          Enumeration<?> entryPaths = bundle.getEntryPaths(TEMPLATE_CLASSES_PATH);
          if (entryPaths != null) {
              while (entryPaths.hasMoreElements()) {
                  URL sourceClassResource = bundle.getEntry((String) entryPaths.nextElement());
                  if (sourceClassResource != null)
                      writeRemappedClass(sourceClassResource, jarOutputStream, BOOT_DELEGATED_PACKAGE);
              }
          }
  
          jarOutputStream.close();
          fileOutputStream.close();
  
          return new JarFile(dataFile);
      }
docs: Create a jar file that contains the proxy code that will live in the
  boot delegation package.
  
  @return the jar file containing the proxy code to append to the boot
  class path
  
  @throws IOException if a file I/O error occurs