1
1
package org .codehaus .plexus .archiver ;
2
2
3
3
import org .codehaus .plexus .util .FileUtils ;
4
+ import org .codehaus .plexus .util .IOUtil ;
4
5
import org .codehaus .plexus .util .StringUtils ;
5
6
6
7
import java .io .File ;
10
11
import java .util .Collections ;
11
12
import java .util .List ;
12
13
13
-
14
14
/**
15
- * An @{ link ArchiveFinalizer} that process dot files with archiver directives
15
+ * An {@ link ArchiveFinalizer} that process dot files with archiver directives
16
16
* contained within. This basically means you can communicate archive creation
17
17
* instructions between processes using dot files.
18
18
*
21
21
public class DotDirectiveArchiveFinalizer
22
22
extends AbstractArchiveFinalizer
23
23
{
24
+
24
25
private static final String DEFAULT_DOT_FILE_PREFIX = ".plxarc" ;
25
26
26
27
private final File dotFileDirectory ;
@@ -42,51 +43,63 @@ public DotDirectiveArchiveFinalizer( File dotFileDirectory, String dotFilePrefix
42
43
public void finalizeArchiveCreation ( Archiver archiver )
43
44
throws ArchiverException
44
45
{
46
+ BufferedReader in = null ;
45
47
try
46
48
{
47
49
List dotFiles = FileUtils .getFiles ( dotFileDirectory , dotFilePrefix + "*" , null );
48
50
49
- for (Object dotFile1 : dotFiles ) {
50
- File dotFile = (File ) dotFile1 ;
51
-
52
- BufferedReader in = new BufferedReader (new FileReader (dotFile ));
53
-
54
- String line ;
51
+ for ( Object dotFile1 : dotFiles )
52
+ {
53
+ File dotFile = (File ) dotFile1 ;
55
54
56
- while ((line = in .readLine ()) != null ) {
57
- String [] s = StringUtils .split (line , ":" );
55
+ in = new BufferedReader ( new FileReader ( dotFile ) );
58
56
59
- if (s .length == 1 ) {
60
- File directory = new File (dotFileDirectory , s [0 ]);
57
+ for ( String line = in .readLine (); line != null ; line = in .readLine () )
58
+ {
59
+ String [] s = StringUtils .split ( line , ":" );
61
60
62
- System .out .println ("adding directory = " + directory );
61
+ if ( s .length == 1 )
62
+ {
63
+ File directory = new File ( dotFileDirectory , s [0 ] );
63
64
64
- archiver .addDirectory (directory );
65
- } else {
66
- File directory = new File (dotFileDirectory , s [0 ]);
65
+ System .out .println ( "adding directory = " + directory );
67
66
68
- System .out .println ("adding directory = " + directory + " to: " + s [1 ]);
67
+ archiver .addDirectory ( directory );
68
+ }
69
+ else
70
+ {
71
+ File directory = new File ( dotFileDirectory , s [0 ] );
69
72
70
- if (s [1 ].endsWith ("/" )) {
71
- archiver .addDirectory (directory , s [1 ]);
72
- } else {
73
- archiver .addDirectory (directory , s [1 ] + "/" );
74
- }
75
- }
76
- }
73
+ System .out .println ( "adding directory = " + directory + " to: " + s [1 ] );
77
74
78
- in .close ();
79
- }
75
+ if ( s [1 ].endsWith ( "/" ) )
76
+ {
77
+ archiver .addDirectory ( directory , s [1 ] );
78
+ }
79
+ else
80
+ {
81
+ archiver .addDirectory ( directory , s [1 ] + "/" );
82
+ }
83
+ }
84
+ }
80
85
86
+ in .close ();
87
+ in = null ;
88
+ }
81
89
}
82
90
catch ( IOException e )
83
91
{
84
92
throw new ArchiverException ( "Error processing dot files." , e );
85
93
}
94
+ finally
95
+ {
96
+ IOUtil .close ( in );
97
+ }
86
98
}
87
99
88
100
public List getVirtualFiles ()
89
101
{
90
102
return Collections .EMPTY_LIST ;
91
103
}
104
+
92
105
}
0 commit comments