Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * 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.
  */
 
 package org.apache.maven.plugin.nar;
 
 import java.io.File;
 

Author(s):
Mark Donszelmann (Mark.Donszelmann@gmail.com)
Version:
$Id$
 
 public abstract class AbstractNarLayout
     implements NarLayoutNarConstants
 {
     private Log log;
 
     protected AbstractNarLayoutLog log )
     {
         this. = log;
     }
 
     protected Log getLog()
     {
         return ;
     }
 
     protected final void attachNarArchiverManager archiverManagerMavenProjectHelper projectHelper,
                                     MavenProject projectString classifierFile dirString include )
         throws MojoExecutionException
     {
         File narFile =
             new Fileproject.getBuild().getDirectory(), project.getBuild().getFinalName() + "-" + classifier + "."
                 + . );
         if ( narFile.exists() )
         {
             narFile.delete();
         }
         try
         {
             Archiver archiver = archiverManager.getArchiver. );
             archiver.addDirectorydirnew String[] { include }, null );
             archiver.setDestFilenarFile );
             archiver.createArchive();
         }
         catch ( NoSuchArchiverException e )
         {
             throw new MojoExecutionException"NAR: cannot find archiver"e );
         }
         catch ( ArchiverException e )
         {
             throw new MojoExecutionException"NAR: cannot create NAR archive '" + narFile + "'"e );
         }
         catch ( IOException e )
         {
             throw new MojoExecutionException"NAR: cannot create NAR archive '" + narFile + "'"e );
         }
         projectHelper.attachArtifactproject.classifiernarFile );
     }
 
     protected void unpackNarAndProcessArchiverManager archiverManagerFile fileFile narLocationString os,
                                         String linkerNameAOL defaultAOL )
     {
 
         final String gpp = "g++";
         final String gcc = "gcc";
 
         narLocation.mkdirs();
 
        // unpack
        try
        {
            UnArchiver unArchiver;
            unArchiver = archiverManager.getUnArchiver. );
            unArchiver.setSourceFilefile );
            unArchiver.setDestDirectorynarLocation );
            unArchiver.extract();
        }
        catch ( NoSuchArchiverException e )
        {
            throw new MojoExecutionException"Error unpacking file: " + file + " to: " + narLocatione );
        }
        catch ( ArchiverException e )
        {
            throw new MojoExecutionException"Error unpacking file: " + file + " to: " + narLocatione );
        }
        // process
        if ( !NarUtil.getOSos ).equals. ) )
        {
            NarUtil.makeExecutablenew FilenarLocation"bin/" + defaultAOL ),  );
            // FIXME clumsy
            if ( defaultAOL.hasLinkergpp ) )
            {
                NarUtil.makeExecutablenew FilenarLocation"bin/"
                    + NarUtil.replacegppgccdefaultAOL.toString() ) ),  );
            }
            // add link to versioned so files
            NarUtil.makeLinknew FilenarLocation"lib/" + defaultAOL ),  );
        }
        if ( linkerName.equalsgcc ) || linkerName.equalsgpp ) )
        {
            NarUtil.runRanlibnew FilenarLocation"lib/" + defaultAOL ),  );
            // FIXME clumsy
            if ( defaultAOL.hasLinkergpp ) )
            {
                NarUtil.runRanlib(
                                   new FilenarLocation"lib/" + NarUtil.replacegppgccdefaultAOL.toString() ) ),
                                    );
            }
        }
        if ( NarUtil.getOSos ).equals. ) )
        {
            File[] dylibDirs = new File[2];
            dylibDirs[0] = new FilenarLocation"lib/" + defaultAOL + "/" + . );
            dylibDirs[1] = new FilenarLocation"lib/" + defaultAOL + "/" + . );
            NarUtil.runInstallNameTooldylibDirs );
        }
    }

    
    public static NarLayout getLayoutString layoutNameLog log )
        throws MojoExecutionException
    {
        String className =
            layoutName.indexOf'.' ) < 0 ? NarLayout21.class.getPackage().getName() + "." + layoutName : layoutName;
        log.debug"Using " + className );
        Class cls;
        try
        {
            cls = Class.forNameclassName );
            Constructor ctor = cls.getConstructornew Class[] { Log.class } );
            return (NarLayoutctor.newInstancenew Object[] { log } );
        }
        catch ( ClassNotFoundException e )
        {
            throw new MojoExecutionException"Cannot find class for layout " + classNamee );
        }
        catch ( InstantiationException e )
        {
            throw new MojoExecutionException"Cannot instantiate class for layout " + classNamee );
        }
        catch ( IllegalAccessException e )
        {
            throw new MojoExecutionException"Cannot access class for layout " + classNamee );
        }
        catch ( SecurityException e )
        {
            throw new MojoExecutionException"Cannot access class for layout " + classNamee );
        }
        catch ( NoSuchMethodException e )
        {
            throw new MojoExecutionException"Cannot find ctor(Log) for layout " + classNamee );
        }
        catch ( IllegalArgumentException e )
        {
            throw new MojoExecutionException"Wrong arguments ctor(Log) for layout " + classNamee );
        }
        catch ( InvocationTargetException e )
        {
            throw new MojoExecutionException"Cannot invokector(Log) for layout " + classNamee );
        }
    }
New to GrepCode? Check out our FAQ X