package org.apache.maven.plugin.assembly.stubs; /* * Copyright 2001-2006 The Apache Software Foundation. * * Licensed 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 org.codehaus.plexus.archiver.war.WarArchiver; import org.codehaus.plexus.archiver.ArchiverException; import java.util.Map; import java.util.HashMap; import java.io.File; import java.io.IOException; /** * @author Edwin Punzalan */ public class WarArchiverStub extends WarArchiver { private Map files = new HashMap(); private File destFile; private int fileMode = 0; private int dirMode = 0; private boolean includeEmptyDirs = false; private boolean ignoreWebxml = false; public void createArchive() throws ArchiverException, IOException { destFile.getParentFile().mkdirs(); destFile.delete(); if ( !destFile.createNewFile() ) { throw new ArchiverException( "Unable to create archive file: " + destFile.getAbsolutePath() ); } } public void addDirectory( File file ) throws ArchiverException { addDirectory( file, "" ); } public void addDirectory( File file, String string ) throws ArchiverException { addDirectory( file, string, null, null ); } public void addDirectory( File file, String[] strings, String[] strings1 ) throws ArchiverException { addDirectory( file, file.getName(), strings, strings1 ); } public void addDirectory( File file, String string, String[] includes, String[] excludes ) throws ArchiverException { System.out.println( "Adding dir " + file.getPath() ); files.put( file, new ArchiverFile( file, string, includes, excludes ) ); } public void addFile( File file, String string ) throws ArchiverException { addFile( file, string, 0 ); } public void addFile( File file, String string, int i ) throws ArchiverException { System.out.println( "Adding file " + file.getPath() ); ArchiverFile archiverFile = new ArchiverFile( file, string, null, null ); archiverFile.setFileMode( i ); files.put( file, archiverFile ); } public File getDestFile() { return destFile; } public void setDestFile( File file ) { destFile = file; } public void setDefaultFileMode( int i ) { fileMode = i; } public int getDefaultFileMode() { return fileMode; } public void setDefaultDirectoryMode( int i ) { dirMode = i; } public int getDefaultDirectoryMode() { return dirMode; } public boolean getIncludeEmptyDirs() { return includeEmptyDirs; } public void setIncludeEmptyDirs( boolean b ) { includeEmptyDirs = b; } public Map getFiles() { return files; } public void setIgnoreWebxml( boolean ignore ) { this.ignoreWebxml = ignore; } public boolean getIgnoreWebxml() { return ignoreWebxml; } public class ArchiverFile { private File file; private String outputName; private String[] includes, excludes; private int fileMode; private ArchiverFile( File file, String outputName, String[] includes, String[] excludes ) { this.file = file; this.outputName = outputName; this.includes = includes; this.excludes = excludes; } public File getFile() { return file; } public void setFile( File file ) { this.file = file; } public String getOutputName() { return outputName; } public void setOutputName( String outputName ) { this.outputName = outputName; } public String[] getIncludes() { return includes; } public void setIncludes( String[] includes ) { this.includes = includes; } public String[] getExcludes() { return excludes; } public void setExcludes( String[] excludes ) { this.excludes = excludes; } public int getFileMode() { return fileMode; } public void setFileMode( int fileMode ) { this.fileMode = fileMode; } } }