1 package com.codehaus.mojo.vfs;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.commons.vfs2.FileObject;
23 import org.apache.commons.vfs2.FileSystemException;
24 import org.apache.commons.vfs2.FileSystemOptions;
25 import org.apache.maven.plugin.MojoExecutionException;
26 import org.apache.maven.plugin.MojoFailureException;
27 import org.apache.maven.plugins.annotations.Mojo;
28 import org.codehaus.mojo.vfs.VfsFileSet;
29 import org.codehaus.mojo.vfs.VfsFileSetManager;
30 import org.codehaus.mojo.vfs.internal.DefaultVfsFileSetManager;
31 import org.sonatype.plexus.components.sec.dispatcher.SecDispatcherException;
32
33
34
35
36 @Mojo( name = "remove", requiresProject = true, threadSafe = true )
37 public class RemoveVfsMojo
38 extends AbstractVfsActionMojo
39 {
40
41 public void execute()
42 throws MojoExecutionException, MojoFailureException
43 {
44
45 if ( !this.initialize() )
46 {
47 return;
48 }
49
50 for ( MojoVfsFileSet fileset : filesets )
51 {
52 try
53 {
54 FileSystemOptions sourceOpts = this.getFileSystemOptions( fileset.getSourceId(), fileset.getSource() );
55
56 VfsFileSet vfsFileSet = new VfsFileSet();
57 vfsFileSet.copyBase( fileset );
58
59 FileObject sourceObj = getFileSystemManager().resolveFile( fileset.getSource(), sourceOpts );
60 vfsFileSet.setSource( sourceObj );
61
62 VfsFileSetManager fileSetManager = new DefaultVfsFileSetManager();
63 fileSetManager.delete( vfsFileSet );
64 }
65 catch ( FileSystemException e )
66 {
67 throw new MojoFailureException( "Unable to perform a remove operation", e );
68 }
69 catch ( SecDispatcherException e )
70 {
71 throw new MojoFailureException( "Unable to perform a remove operation", e );
72 }
73
74 }
75
76 }
77 }