1 package org.codehaus.mojo.wagon;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.io.IOException;
23
24 import org.apache.maven.plugin.MojoExecutionException;
25 import org.apache.maven.wagon.ConnectionException;
26 import org.apache.maven.wagon.Wagon;
27 import org.apache.maven.wagon.WagonException;
28
29 public abstract class AbstractCopyMojo
30 extends AbstractDoubleWagonMojo
31 {
32
33 protected abstract void copy( Wagon src, Wagon target )
34 throws IOException, WagonException;
35
36 @Override
37 public void execute()
38 throws MojoExecutionException
39 {
40
41 if ( this.skip )
42 {
43 this.getLog().info( "Skip execution." );
44 return;
45 }
46
47 Wagon srcWagon = null;
48 Wagon targetWagon = null;
49
50 try
51 {
52 srcWagon = createWagon( sourceId, source );
53 targetWagon = createWagon( targetId, target );
54 copy( srcWagon, targetWagon );
55 }
56 catch ( Exception e )
57 {
58 throw new MojoExecutionException( "Error during performing repository copy", e );
59 }
60 finally
61 {
62 disconnectWagon( srcWagon );
63 disconnectWagon( targetWagon );
64 }
65
66 }
67
68 private void disconnectWagon( Wagon wagon )
69 {
70 try
71 {
72 if ( wagon != null )
73 {
74 wagon.disconnect();
75 }
76 }
77 catch ( ConnectionException e )
78 {
79 getLog().debug( "Error disconnecting wagon - ignored", e );
80 }
81 }
82
83 }