Beispiel #1
0
 private static File createCopyDirectory(final File applicationDir) throws IOException {
   final File destApplicationFolder = File.createTempFile("gs_application_", "");
   FileUtils.forceDelete(destApplicationFolder);
   FileUtils.forceMkdir(destApplicationFolder);
   FileUtils.copyDirectory(applicationDir, destApplicationFolder, SVNFileFilter.getFilter());
   return destApplicationFolder;
 }
Beispiel #2
0
  /**
   * source folder structure: service.groovy something.zip install.sh start.sh ...
   *
   * <p>usmlib mylib1.jar mylib2.jar ...
   *
   * <p>output folder: ext service.groovy something.zip install.sh start.sh ... lib mylib1.jar
   * mylib2.jar ... usm.jar
   *
   * <p>META-INF spring pu.xml
   *
   * @param srcFolder
   * @param recipeDirOrFile
   * @return
   * @throws IOException
   * @throws PackagingException
   */
  private static File buildPuFolder(final Service service, final File recipeFile)
      throws IOException, PackagingException {
    final File srcFolder = recipeFile.getParentFile();
    final File destPuFolder = File.createTempFile("gs_usm_", "");
    FileUtils.forceDelete(destPuFolder);
    FileUtils.forceMkdir(destPuFolder);
    logger.finer("created temp directory " + destPuFolder.getAbsolutePath());

    // create folders
    final File extFolder = new File(destPuFolder, "/ext");
    FileUtils.forceMkdir(extFolder);
    final File libFolder = new File(destPuFolder.getAbsolutePath(), "/lib");
    FileUtils.forceMkdir(libFolder);
    final File springFolder = new File(destPuFolder.getAbsolutePath(), "/META-INF/spring");
    FileUtils.forceMkdir(springFolder);
    logger.finer("created pu structure under " + destPuFolder);

    // copy all files except usmlib from working dir to ext
    // FileUtils.copyDirectory(srcFolder, extFolder, new FileFilter() {
    //
    // @Override
    // public boolean accept(File pathname) {
    // boolean f1 = SVNFileFilter.getFilter().accept(pathname);
    // boolean f2 = !(pathname.isDirectory() && pathname.getName().equals("usmlib"));
    // return f1 && f2;
    // }
    // });
    FileUtils.copyDirectory(srcFolder, extFolder);

    logger.finer(
        "copied files from " + srcFolder.getAbsolutePath() + " to " + extFolder.getAbsolutePath());

    // copy all files from usmlib to lib
    final File srcUsmLibDir = new File(srcFolder, "usmlib");
    if (srcUsmLibDir.exists()) {
      FileUtils.copyDirectory(srcUsmLibDir, libFolder, SVNFileFilter.getFilter());
    }

    // copy usm.jar to lib
    final File usmLibDir = getUsmLibDir(service);
    final File srcUsmJar = new File(usmLibDir, "usm.jar");
    if (!srcUsmJar.exists()) {
      throw new PackagingException("could not find usm.jar");
    }
    FileUtils.copyDirectory(usmLibDir, libFolder, SVNFileFilter.getFilter());
    logger.finer("copied " + srcUsmJar.getName());

    // no pu.xml in source folder, lets copy the default one
    final InputStream puXmlStream =
        Packager.class.getClassLoader().getResourceAsStream("META-INF/spring/default_usm_pu.xml");
    if (puXmlStream == null) {
      throw new PackagingException("can not find locate default pu.xml");
    }
    final File destPuXml = new File(springFolder, "pu.xml");
    FileUtils.copyInputStreamToFile(puXmlStream, destPuXml);
    logger.finer("copied pu.xml");
    try {
      puXmlStream.close();
    } catch (final IOException e) {
      logger.log(Level.SEVERE, "failed to close default_usm_pu.xml stream", e);
    }

    copyExtendedServiceFiles(service, recipeFile, extFolder);

    logger.finer("created pu folder " + destPuFolder.getAbsolutePath());
    return destPuFolder;
  }