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.
  */

Initial layout which expands a nar file into:
 nar/includue
 nar/bin
 nar/lib
 
this layout was abandoned because there is no one-to-one relation between the nar file and its directory structure. Therefore SNAPSHOTS could not be fully deleted when replaced.

Author(s):
Mark Donszelmann (Mark.Donszelmann@gmail.com)
 
 public class NarLayout20
     extends AbstractNarLayout
 {
     private NarFileLayout fileLayout;
 
     public NarLayout20Log log )
     {
         superlog );
         this. = new NarFileLayout10();
     }
 
     /*
      * (non-Javadoc)
      * @see org.apache.maven.plugin.nar.NarLayout#getNoArchDirectory(java.io.File)
      */
     public File getNoArchDirectoryFile baseDirString artifactIdString version )
     {
         return baseDir;
     }
 
     /*
      * (non-Javadoc)
      * @see org.apache.maven.plugin.nar.NarLayout#getIncludeDirectory(java.io.File)
      */
     public final File getIncludeDirectoryFile baseDirString artifactIdString version )
     {
         return new FilebaseDir.getIncludeDirectory() );
     }
 
     /*
      * (non-Javadoc)
      * @see org.apache.maven.plugin.nar.NarLayout#getLibDir(java.io.File, org.apache.maven.plugin.nar.AOL, String type)
      */
     public final File getLibDirectoryFile baseDirString artifactIdString versionString aolString type )
         throws MojoFailureException
     {
         if ( type.equals. ) )
         {
             throw new MojoFailureException"INTERNAL ERROR, Replace call to getLibDirectory with getBinDirectory" );
         }
 
         File dir = new FilebaseDir.getLibDirectoryaoltype ) );
         return dir;
     }
 
     /*
      * (non-Javadoc)
      * @see org.apache.maven.plugin.nar.NarLayout#getBinDirectory(java.io.File, java.lang.String)
      */
     public final File getBinDirectoryFile baseDirString artifactIdString versionString aol )
     {
         File dir = new FilebaseDir.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 ( getIncludeDirectorybaseDirproject.getArtifactId(), project.getVersion() ).exists() )
        {
            attachNararchiverManagerprojectHelperproject"noarch"baseDir"include/**" );
            narInfo.setNarnull"noarch"project.getGroupId() + ":" + project.getArtifactId() + ":"
                + . + ":" + "noarch" );
        }
        String[] binAOL = new FilebaseDir"bin" ).list();
        for ( int i = 0; ( binAOL != null ) && ( i < binAOL.length ); i++ )
        {
            attachNararchiverManagerprojectHelperprojectbinAOL[i] + "-" + .baseDir"bin/"
                + binAOL[i] + "/**" );
            narInfo.setNarnull.project.getGroupId() + ":" + project.getArtifactId() + ":"
                + . + ":" + "${aol}" + "-" + . );
            narInfo.setBindingnew AOLbinAOL[i] ), . );
            narInfo.setBindingnull. );
        }
        File libDir = new FilebaseDir"lib" );
        String[] libAOL = libDir.list();
        for ( int i = 0; ( libAOL != null ) && ( i < libAOL.length ); i++ )
        {
            String bindingType = null;
            String[] libType = new FilelibDirlibAOL[i] ).list();
            for ( int j = 0; ( libType != null ) && ( j < libType.length ); j++ )
            {
                attachNararchiverManagerprojectHelperprojectlibAOL[i] + "-" + libType[j], baseDir"lib/"
                    + libAOL[i] + "/" + libType[j] + "/**" );
                narInfo.setNarnulllibType[j], project.getGroupId() + ":" + project.getArtifactId() + ":"
                    + . + ":" + "${aol}" + "-" + libType[j] );
                // set if not set or override if SHARED
                if ( ( bindingType == null ) || libType[j].equals. ) )
                {
                    bindingType = libType[j];
                }
            }
            AOL aol = new AOLlibAOL[i] );
            if ( narInfo.getBindingaolnull ) == null )
            {
                narInfo.setBindingaolbindingType != null ? bindingType : . );
            }
            if ( narInfo.getBindingnullnull ) == null )
            {
                narInfo.setBindingnullbindingType != null ? bindingType : . );
            }
        }
    }
    public void unpackNarFile unpackDirArchiverManager archiverManagerFile fileString osString linkerName,
                           AOL defaultAOL )
    {
        File flagFile =
            new FileunpackDir, FileUtils.basenamefile.getPath(), "." + . ) + ".flag" );
        boolean process = false;
        if ( !unpackDir.exists() )
        {
            unpackDir.mkdirs();
            process = true;
        }
        else if ( !flagFile.exists() )
        {
            process = true;
        }
        else if ( file.lastModified() > flagFile.lastModified() )
        {
            process = true;
        }
        if ( process )
        {
            try
            {
                unpackNarAndProcessarchiverManagerfileunpackDiroslinkerNamedefaultAOL );
                FileUtils.fileDeleteflagFile.getPath() );
                FileUtils.fileWriteflagFile.getPath(), "" );
            }
            catch ( IOException e )
            {
                throw new MojoFailureException"Cannot create flag file: " + flagFile.getPath(), e );
            }
        }
    }
    public File getNarUnpackDirectory(File baseUnpackDirectoryFile narFile)
    {
        File dir = new File(
            baseUnpackDirectory,
            FileUtils.basenamenarFile.getPath(), "." + . ));
        return dir;
    }
New to GrepCode? Check out our FAQ X