Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
Copyright 2013 Cloudera Inc. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
 
 package org.kitesdk.maven.plugins;
 
 import java.io.File;
 import java.util.List;
 import  org.apache.hadoop.fs.Path;
 
 import static org.twdata.maven.mojoexecutor.MojoExecutor.*;

Package an application on the local filesystem.
 
 @Mojo(name = "package-app", defaultPhase = .,
     requiresDependencyResolution = .)
 public class PackageAppMojo extends AbstractAppMojo {

  
The tool class to run. The specified class must have a standard Java main method.
 
   @Parameter(property = "kite.toolClass", required = true)
   private String toolClass;

  
Arguments to pass to the tool, in addition to those generated by addDependenciesToDistributedCache and hadoopConfiguration.
 
   @Parameter(property = "kite.args")
   private String[] args;

  
Whether to add dependencies in the runtime classpath to Hadoop's distributed cache so that they are added to the classpath for MapReduce tasks (via -libjars).
 
   @Parameter(property = "kite.addDependenciesToDistributedCache",
       defaultValue = "true")
   private boolean addDependenciesToDistributedCache;

  
Hadoop configuration properties.
 
   @Parameter(property = "kite.hadoopConfiguration")
   private Properties hadoopConfiguration;

  
The type of the application (workflow, coordination, or bundle).
 
   // TODO: support applications which are more than one type
   @Parameter(property = "kite.applicationType",
       defaultValue = "workflow")
   private String applicationType;

  
Whether the workflow.xml should be generated or not.
 
   @Parameter(property = "kite.generateWorkflowXml", defaultValue = "true")
   private boolean generateWorkflowXml = true;

  
Character encoding for the auto-generated workflow file.
 
   @Parameter(property = "kite.workflowFileEncoding", defaultValue = "UTF-8")
   private String encoding;

  
The version of the Oozie workflow schema.
 
   @Parameter(property = "kite.schemaVersion", defaultValue = "0.4")
   private String schemaVersion;

  
The name of the workflow.
  @Parameter(property = "kite.workflowName", defaultValue = "${project.build.finalName}")
  private String workflowName;

  
The coordinator.xml file to use (only for applications of type coordinator).
  @Parameter(property = "kite.coordinatorFile",
      defaultValue = "${basedir}/src/main/oozie/coordinator.xml")
  private File coordinatorFile;
  public void execute() throws MojoExecutionExceptionMojoFailureException {
    try {
      String buildDirectory = .getBuild().getDirectory();
      FileUtils.copyInputStreamToFile(
          getClass().getClassLoader().getResourceAsStream("assembly/oozie-app.xml"),
          new File(buildDirectory + "/assembly/oozie-app.xml"));
    } catch (IOException e) {
      throw new MojoExecutionException("Error copying assembly"e);
    }
        plugin(groupId("org.apache.maven.plugins"),
            artifactId("maven-assembly-plugin"),
            version("2.3")),
        goal("single"),
        configuration(element("descriptors",
            element("descriptor""${project.build.directory}/assembly/oozie-app.xml"))),
    if () {
      File outputDir = new File(.getBuild().getDirectory(), );
      File workflowXml = new File(outputDir"workflow.xml");
      String hadoopFs = .getProperty("fs.default.name");
      if (hadoopFs == null) {
        throw new MojoExecutionException("Missing property 'fs.default.name' in " +
            "hadoopConfiguration");
      }
      String hadoopJobTracker = .getProperty("mapred.job.tracker");
      if (hadoopJobTracker == null) {
        throw new MojoExecutionException("Missing property 'mapred.job.tracker' in " +
            "hadoopConfiguration");
      }
      List<Path> libJars = new ArrayList<Path>();
        File lib = new File(outputDir"lib");
        Collection<Filedeps = FileUtils.listFiles(libnew String[]{"jar"}, false);
        for (File dep : deps) {
          Path libJarPath = new Path(new Path(getAppPath(), "lib"), dep.getName());
          libJarPath = new Path(hadoopFslibJarPath);
          libJars.add(libJarPath);
        }
      }
      Workflow workflow = new Workflow(workflowXml,
          hadoopFshadoopJobTrackerlibJars);
      WorkflowXmlWriter workflowXmlWriter = new WorkflowXmlWriter();
      workflowXmlWriter.write(workflow);
    }
    if ("coordinator".equals()) {
      File outputDir = new File(.getBuild().getDirectory(), );
      File coordinatorXml = new File(outputDir"coordinator.xml");
      try {
        FileUtils.copyFile(coordinatorXml);
      } catch (IOException e) {
        throw new MojoExecutionException("Error copying coordinator file"e);
      }
    }
  }
New to GrepCode? Check out our FAQ X