View Javadoc

1   /*
2    * #%L
3    * Native ARchive plugin for Maven
4    * %%
5    * Copyright (C) 2002 - 2014 NAR Maven Plugin developers.
6    * %%
7    * Licensed under the Apache License, Version 2.0 (the "License");
8    * you may not use this file except in compliance with the License.
9    * You may obtain a copy of the License at
10   * 
11   * http://www.apache.org/licenses/LICENSE-2.0
12   * 
13   * Unless required by applicable law or agreed to in writing, software
14   * distributed under the License is distributed on an "AS IS" BASIS,
15   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16   * See the License for the specific language governing permissions and
17   * limitations under the License.
18   * #L%
19   */
20  package com.github.maven_nar;
21  
22  import org.apache.maven.execution.MavenSession;
23  import org.apache.maven.plugin.MojoExecutionException;
24  import org.apache.maven.plugin.MojoFailureException;
25  import org.apache.maven.plugins.annotations.Component;
26  import org.apache.maven.plugins.annotations.LifecyclePhase;
27  import org.apache.maven.plugins.annotations.Mojo;
28  import org.apache.maven.plugins.annotations.ResolutionScope;
29  import org.apache.maven.toolchain.ToolchainManager;
30  
31  /**
32   * Compiles class files into c/c++ headers using "javah". Any class file that
33   * contains methods that were declared
34   * "native" will be run through javah.
35   *
36   * @requiresSession
37   * @author Mark Donszelmann
38   */
39  @Mojo(name = "nar-javah", defaultPhase = LifecyclePhase.COMPILE, requiresDependencyResolution = ResolutionScope.COMPILE)
40  public class NarJavahMojo extends AbstractNarMojo {
41    @Component
42    private ToolchainManager toolchainManager;
43  
44    @Component
45    private MavenSession session;
46  
47    protected final MavenSession getSession() {
48      return this.session;
49    }
50  
51    protected final ToolchainManager getToolchainManager() {
52      return this.toolchainManager;
53    }
54  
55    @Override
56    public final void narExecute() throws MojoExecutionException, MojoFailureException {
57      getJavah().execute();
58    }
59  }