Start line:  
End line:  

Snippet Preview

Snippet HTML Code

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

Layout which expands a nar file into:
 nar/noarch/include
 nar/aol/<aol>-<type>/bin
 nar/aol/<aol>-<type>/lib
 
This loayout has a one-to-one relation with the aol-type version of the nar.

Author(s):
Mark Donszelmann (Mark.Donszelmann@gmail.com)
 
 public class NarLayout21
     extends AbstractNarLayout
 {
     private NarFileLayout fileLayout;
 
     public NarLayout21Log log )
     {
         superlog );
         this. = new NarFileLayout10();
     }
 
     public File getNoArchDirectoryFile baseDirString artifactIdString version )
     {
         return new FilebaseDirartifactId + "-" + version + "-" + . );
     }
 
     private File getAolDirectoryFile baseDirString artifactIdString versionString aolString type )
     {
         return new FilebaseDirartifactId + "-" + version + "-" + aol + "-" + type );
     }
 
     /*
      * (non-Javadoc)
      * @see org.apache.maven.plugin.nar.NarLayout#getIncludeDirectory(java.io.File)
      */
     public final File getIncludeDirectoryFile baseDirString artifactIdString version )
     {
         return new FilegetNoArchDirectorybaseDirartifactIdversion ), .getIncludeDirectory() );
     }
 
     /*
      * (non-Javadoc)
      * @see org.apache.maven.plugin.nar.NarLayout#getLibDir(java.io.File, org.apache.maven.plugin.nar.AOL,
      * java.lang.String)
      */
     public final File getLibDirectoryFile baseDirString artifactIdString versionString aolString type )
         throws MojoExecutionException
     {
         if ( type.equals. ) )
         {
             throw new MojoExecutionException(
                                               "NAR: for type EXECUTABLE call getBinDirectory instead of getLibDirectory" );
         }
 
         File dir = getAolDirectorybaseDirartifactIdversionaoltype );
         dir = new Filedir.getLibDirectoryaoltype ) );
         return dir;
     }
 
     /*
      * (non-Javadoc)
      * @see org.apache.maven.plugin.nar.NarLayout#getLibDir(java.io.File, org.apache.maven.plugin.nar.AOL,
      * java.lang.String)
      */
    public final File getBinDirectoryFile baseDirString artifactIdString versionString aol )
    {
        File dir = getAolDirectorybaseDirartifactIdversionaol. );
        dir = new Filedir.getBinDirectoryaol ) );
        return dir;
    }
    /*
     * (non-Javadoc)
     * @see org.apache.maven.plugin.nar.NarLayout#attachNars(java.io.File, org.apache.maven.project.MavenProjectHelper,
     * org.apache.maven.project.MavenProject, org.apache.maven.plugin.nar.NarInfo)
     */
    public final void attachNarsFile baseDirArchiverManager archiverManagerMavenProjectHelper projectHelper,
                                  MavenProject projectNarInfo narInfo )
        throws MojoExecutionException
    {
        if ( getNoArchDirectorybaseDirproject.getArtifactId(), project.getVersion() ).exists() )
        {
            attachNararchiverManagerprojectHelperproject.,
                       getNoArchDirectorybaseDirproject.getArtifactId(), project.getVersion() ), "*/**" );
            narInfo.setNarnull.project.getGroupId() + ":" + project.getArtifactId() + ":"
                + . + ":" + . );
        }
        // list all directories in basedir, scan them for classifiers
        String[] subDirs = baseDir.list();
        for ( int i = 0; ( subDirs != null ) && ( i < subDirs.length ); i++ )
        {
            String artifactIdVersion = project.getArtifactId() + "-" + project.getVersion();
            // skip entries not belonging to this project
            if ( !subDirs[i].startsWithartifactIdVersion ) )
                continue;
            String classifier = subDirs[i].substringartifactIdVersion.length() + 1 );
            // skip noarch here
            if ( classifier.equals. ) )
                continue;
            File dir = new FilebaseDirsubDirs[i] );
            attachNararchiverManagerprojectHelperprojectclassifierdir"*/**" );
            int lastDash = classifier.lastIndexOf'-' );
            String type = classifier.substringlastDash + 1 );
            AOL aol = new AOLclassifier.substring( 0, lastDash - 1 ) );
            if ( type.equals. ) )
            {
                if ( narInfo.getBindingaolnull ) == null )
                {
                    narInfo.setBindingaol. );
                }
                if ( narInfo.getBindingnullnull ) == null )
                {
                    narInfo.setBindingnull. );
                }
            }
            else
            {
                // and not set or override if SHARED
                if ( ( narInfo.getBindingaolnull ) == null ) || !type.equals. ) )
                {
                    narInfo.setBindingaoltype );
                }
                // and not set or override if SHARED
                if ( ( narInfo.getBindingnullnull ) == null ) || !type.equals. ) )
                {
                    narInfo.setBindingnulltype );
                }
            }
            narInfo.setNarnulltypeproject.getGroupId() + ":" + project.getArtifactId() + ":"
                + . + ":" + "${aol}" + "-" + type );
        }
    }
    public void unpackNarFile unpackDirectoryArchiverManager archiverManagerFile fileString osString linkerName,
                           AOL defaultAOL )
    {
        File dir = getNarUnpackDirectory(unpackDirectoryfile);
        boolean process = false;
        if ( !unpackDirectory.exists() )
        {
            unpackDirectory.mkdirs();
            process = true;
        }
        else if ( !dir.exists() )
        {
            process = true;
        }
        else if ( file.lastModified() > dir.lastModified() )
        {
            try
            {
                FileUtils.deleteDirectorydir );
            }
            catch ( IOException e )
            {
                throw new MojoExecutionException"Could not delete directory: " + dire );
            }
            process = true;
        }
        if ( process )
        {
            unpackNarAndProcessarchiverManagerfilediroslinkerNamedefaultAOL );
        }
    }
    public File getNarUnpackDirectory(File baseUnpackDirectoryFile narFile)
    {
        File dir = new File
            baseUnpackDirectory
            FileUtils.basenamenarFile.getPath(), "." + . ));
        return dir;
    }
New to GrepCode? Check out our FAQ X