private void generateJnlpFile(JnlpFile jnlpFile, String libPath) throws MojoExecutionException {

    File jnlpOutputFile = new File(getWorkDirectory(), jnlpFile.getOutputFilename());

    Set jarResources = new LinkedHashSet();
    jarResources.addAll(jnlpFile.getJarResources());

    if (this.commonJarResources != null && !this.commonJarResources.isEmpty()) {

      for (Iterator itr = this.commonJarResources.iterator(); itr.hasNext(); ) {
        JarResource jarResource = (JarResource) itr.next();
        jarResources.add(jarResource);
      }

      jarResources.addAll(this.commonJarResources);
    }

    JarResourcesGenerator jnlpGenerator =
        new JarResourcesGenerator(
            getProject(),
            getTemplateDirectory(),
            "default-jnlp-servlet-template.vm",
            jnlpOutputFile,
            jnlpFile.getTemplateFilename(),
            jarResources,
            jnlpFile.getMainClass(),
            getWebstartJarURLForVelocity(),
            libPath);

    jnlpGenerator.setExtraConfig(getGeneratorExtraConfig());

    try {
      jnlpGenerator.generate();
    } catch (Exception e) {
      throw new MojoExecutionException(
          "The following error occurred attempting to generate "
              + "the JNLP deployment descriptor: "
              + e,
          e);
    }
  }