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 = "move", requiresProject = true, threadSafe = true )
37 public class MoveVfsMojo
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 FileSystemOptions destOpts =
56 this.getFileSystemOptions( fileset.getDestinationId(), fileset.getDestination() );
57
58 VfsFileSet vfsFileSet = new VfsFileSet();
59 vfsFileSet.copyBase( fileset );
60
61 FileObject sourceObj = getFileSystemManager().resolveFile( fileset.getSource(), sourceOpts );
62 vfsFileSet.setSource( sourceObj );
63
64 FileObject destObj = getFileSystemManager().resolveFile( fileset.getDestination(), destOpts );
65 vfsFileSet.setDestination( destObj );
66
67 VfsFileSetManager fileSetManager = new DefaultVfsFileSetManager();
68 fileSetManager.move( vfsFileSet );
69 }
70 catch ( FileSystemException e )
71 {
72 throw new MojoFailureException( "Unable to perform a move operation", e );
73 }
74 catch ( SecDispatcherException e )
75 {
76 throw new MojoFailureException( "Unable to perform a move operation", e );
77 }
78 }
79 }
80 }