Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.apache.maven.plugin.nar;
  
  /*
   * Licensed to the Apache Software Foundation (ASF) under one
   * or more contributor license agreements.  See the NOTICE file
   * distributed with this work for additional information
   * regarding copyright ownership.  The ASF licenses this file
   * to you 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.
  */
 
 import java.io.File;
 
Generates a NarSystem class with static methods to use inside the java part of the library. Runs in generate-resources rather than generate-sources to allow the maven-swig-plugin (which runs in generate-sources) to configure the nar plugin and to let it generate a proper system file.

Author(s):
Mark Donszelmann
Goal:
nar-system-generate
Phase:
generate-resources
RequiresProject:
 
 public class NarSystemMojo
     extends AbstractCompileMojo
 {
 
     public final void narExecute()
     {
         // get packageName if specified for JNI.
         String packageName = null;
         String narSystemName = null;
         File narSystemDirectory = null;
         boolean jniFound = false;
         for ( Iterator i = getLibraries().iterator(); !jniFound && i.hasNext(); )
         {
             Library library = (Libraryi.next();
             if ( library.getType().equals. ) 
 		 || library.getType().equals. )) 
             {
                 packageName = library.getNarSystemPackage();
                 narSystemName = library.getNarSystemName();
                 narSystemDirectory = new File(getTargetDirectory(), library.getNarSystemDirectory());
                 jniFound = true;
             }
         }
         
         if ( !jniFound || packageName == null)
         {
 	    if ( !jniFound ) {
 		getLog().debug("NAR: not building a shared or JNI library, so not generating NarSystem class.");
 	    } else {
 			      "NAR: no system package specified; unable to generate NarSystem class.");
 	    }
             return;
         }
 
         // make sure destination is there
         narSystemDirectory.mkdirs();
 
         getMavenProject().addCompileSourceRootnarSystemDirectory.getPath() );
 
         File fullDir = new FilenarSystemDirectorypackageName.replace'.''/' ) );
         fullDir.mkdirs();
 
         File narSystem = new FilefullDirnarSystemName + ".java" );
         getLog().info("Generating "+narSystem);
         try
         {
             String artifactId = getMavenProject().getArtifactId();
             String version = getMavenProject().getVersion();
             FileOutputStream fos = new FileOutputStreamnarSystem );
             PrintWriter p = new PrintWriterfos );
             p.println"// DO NOT EDIT: Generated by NarSystemGenerate." );
             p.println"package " + packageName + ";" );
             p.println"" );
             p.println"/**" );
             p.println" * Generated class to load the correct version of the jni library" );            
             p.println" *" );            
             p.println" * @author maven-nar-plugin" );            
            p.println" */" );            
            p.println"public final class NarSystem" );
            p.println"{" );
            p.println"" );
            p.println"    private NarSystem() " );
            p.println"    {" );
            p.println"    }" );
            p.println"" );
            p.println"   /**" );
            p.println"    * Load jni library: "+artifactId+"-"+version );            
            p.println"    *" );            
            p.println"    * @author maven-nar-plugin" );            
            p.println"    */" );            
            p.println"    public static void loadLibrary()" );
            p.println"    {" );
            p.println"        System.loadLibrary(\"" + artifactId + "-"
                + version + "\");" );
            p.println"    }" );
	    p.println("");
	    p.println("    public static int runUnitTests() {");
	    p.println("	       return new NarSystem().runUnitTestsNative();");
	    p.println("}");
	    p.println("");
	    p.println("    public native int runUnitTestsNative();");
            p.println"}" );
            p.close();
            fos.close();
        }
        catch ( IOException e )
        {
            throw new MojoExecutionException"Could not write '" + narSystemName + "'"e );
        }
    }
New to GrepCode? Check out our FAQ X