Skip to content

Commit eb9cd42

Browse files
committed
Added factory methods, clarified deprecations.
Set up deprecated methods for easy inlining.
1 parent ac5d221 commit eb9cd42

File tree

6 files changed

+131
-27
lines changed

6 files changed

+131
-27
lines changed

src/main/java/org/codehaus/plexus/archiver/AbstractArchiver.java

Lines changed: 25 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,6 @@
3434
import org.codehaus.plexus.PlexusContainer;
3535
import org.codehaus.plexus.archiver.manager.ArchiverManager;
3636
import org.codehaus.plexus.archiver.manager.NoSuchArchiverException;
37-
import org.codehaus.plexus.archiver.util.DefaultArchivedFileSet;
38-
import org.codehaus.plexus.archiver.util.DefaultFileSet;
3937
import org.codehaus.plexus.archiver.util.FilterSupport;
4038
import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
4139
import org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes;
@@ -53,6 +51,9 @@
5351
import org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable;
5452
import org.codehaus.plexus.util.IOUtil;
5553

54+
import static org.codehaus.plexus.archiver.util.DefaultArchivedFileSet.archivedFileSet;
55+
import static org.codehaus.plexus.archiver.util.DefaultFileSet.fileSet;
56+
5657
/**
5758
* @version $Id$
5859
*/
@@ -250,32 +251,30 @@ public void setIncludeEmptyDirs( final boolean includeEmptyDirs )
250251
public void addDirectory( final File directory )
251252
throws ArchiverException
252253
{
253-
addDirectory(directory, "");
254+
addFileSet( fileSet( directory ).prefixed( "" )
255+
.includeExclude( null, null ).includeEmptyDirs( includeEmptyDirs ) );
254256
}
255257

256258
public void addDirectory( final File directory, final String prefix )
257259
throws ArchiverException
258260
{
259-
addDirectory( directory, prefix, null, null );
261+
addFileSet( fileSet( directory ).prefixed( prefix )
262+
.includeExclude( null, null ).includeEmptyDirs( includeEmptyDirs ) );
260263
}
261264

262265
public void addDirectory( final File directory, final String[] includes, final String[] excludes )
263266
throws ArchiverException
264267
{
265-
addDirectory(directory, "", includes, excludes);
268+
addFileSet( fileSet( directory ).prefixed( "" )
269+
.includeExclude( includes, excludes ).includeEmptyDirs( includeEmptyDirs ) );
266270
}
267271

268272
public void addDirectory( final File directory, final String prefix, final String[] includes,
269273
final String[] excludes )
270274
throws ArchiverException
271275
{
272-
final DefaultFileSet fileSet = new DefaultFileSet();
273-
fileSet.setDirectory( directory );
274-
fileSet.setPrefix( prefix );
275-
fileSet.setIncludes( includes );
276-
fileSet.setExcludes( excludes );
277-
fileSet.setIncludingEmptyDirectories( includeEmptyDirs );
278-
addFileSet( fileSet );
276+
addFileSet( fileSet( directory ).prefixed( prefix )
277+
.includeExclude( includes, excludes ).includeEmptyDirs( includeEmptyDirs ) );
279278
}
280279

281280
public void addFileSet( final FileSet fileSet )
@@ -704,13 +703,11 @@ public void addArchivedFileSet( final File archiveFile, final String prefix, fin
704703
final String[] excludes )
705704
throws ArchiverException
706705
{
707-
final DefaultArchivedFileSet fileSet = new DefaultArchivedFileSet();
708-
fileSet.setArchive( archiveFile );
709-
fileSet.setPrefix( prefix );
710-
fileSet.setIncludes( includes );
711-
fileSet.setExcludes( excludes );
712-
fileSet.setIncludingEmptyDirectories( includeEmptyDirs );
713-
addArchivedFileSet( fileSet );
706+
addArchivedFileSet(
707+
archivedFileSet( archiveFile )
708+
.prefixed( prefix )
709+
.includeExclude( includes, excludes )
710+
.includeEmptyDirs( includeEmptyDirs ) );
714711
}
715712

716713
/**
@@ -719,7 +716,10 @@ public void addArchivedFileSet( final File archiveFile, final String prefix, fin
719716
public void addArchivedFileSet( final File archiveFile, final String prefix )
720717
throws ArchiverException
721718
{
722-
addArchivedFileSet( archiveFile, prefix, null, null );
719+
addArchivedFileSet(
720+
archivedFileSet( archiveFile )
721+
.prefixed( prefix )
722+
.includeEmptyDirs( includeEmptyDirs ) );
723723
}
724724

725725
/**
@@ -728,7 +728,10 @@ public void addArchivedFileSet( final File archiveFile, final String prefix )
728728
public void addArchivedFileSet( final File archiveFile, final String[] includes, final String[] excludes )
729729
throws ArchiverException
730730
{
731-
addArchivedFileSet(archiveFile, null, includes, excludes);
731+
addArchivedFileSet(
732+
archivedFileSet( archiveFile )
733+
.includeExclude( includes, excludes )
734+
.includeEmptyDirs( includeEmptyDirs ) );
732735
}
733736

734737
/**
@@ -737,7 +740,7 @@ public void addArchivedFileSet( final File archiveFile, final String[] includes,
737740
public void addArchivedFileSet( final File archiveFile )
738741
throws ArchiverException
739742
{
740-
addArchivedFileSet( archiveFile, null, null, null );
743+
addArchivedFileSet( archivedFileSet( archiveFile ).includeEmptyDirs( includeEmptyDirs ) );
741744
}
742745

743746
/**

src/main/java/org/codehaus/plexus/archiver/Archiver.java

Lines changed: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,25 +68,40 @@ void createArchive()
6868

6969
/**
7070
* Obsolete, use {@link #addFileSet(FileSet)}.
71+
* You can use "inline" of this method in your
72+
* IDE to get the proper implementation for this release.
73+
* @deprecated Will go away in next major version
7174
*/
75+
@Deprecated
7276
void addDirectory( File directory )
7377
throws ArchiverException;
7478

7579
/**
7680
* Obsolete, use {@link #addFileSet(FileSet)}.
81+
* You can use "inline" of this method in your
82+
* IDE to get the proper implementation for this release.
83+
* @deprecated Will go away in next major version
7784
*/
85+
@Deprecated
7886
void addDirectory( File directory, String prefix )
7987
throws ArchiverException;
8088

8189
/**
82-
* Obsolete, use {@link #addFileSet(FileSet)}.
90+
* Obsolete, use {@link #addFileSet(FileSet)}.You can use "inline" of this method in your
91+
* IDE to get the proper implementation for this release.
92+
* @deprecated Will go away in next major version
8393
*/
94+
@Deprecated
8495
void addDirectory( File directory, String[] includes, String[] excludes )
8596
throws ArchiverException;
8697

8798
/**
8899
* Obsolete, use {@link #addFileSet(FileSet)}.
100+
* You can use "inline" of this method in your
101+
* IDE to get the proper implementation for this release.
102+
* @deprecated Will go away in next major version
89103
*/
104+
@Deprecated
90105
void addDirectory( File directory, String prefix, String[] includes, String[] excludes )
91106
throws ArchiverException;
92107

@@ -108,16 +123,36 @@ void addFile( File inputFile, String destFileName )
108123

109124
void addFile( File inputFile, String destFileName, int permissions )
110125
throws ArchiverException;
111-
126+
/**
127+
* Obsolete, use {@link #addArchivedFileSet(ArchivedFileSet)}. You can use "inline" of this method in your
128+
* IDE to get the proper implementation for this release.
129+
* @deprecated Will go away in next major version
130+
*/
112131
void addArchivedFileSet( File archiveFile )
113132
throws ArchiverException;
114133

134+
/**
135+
* Obsolete, use {@link #addArchivedFileSet(ArchivedFileSet)}. You can use "inline" of this method in your
136+
* IDE to get the proper implementation for this release.
137+
* @deprecated Will go away in next major version
138+
*/
139+
@Deprecated
115140
void addArchivedFileSet( File archiveFile, String prefix )
116141
throws ArchiverException;
117142

143+
/**
144+
* Obsolete, use {@link #addArchivedFileSet(ArchivedFileSet)}. You can use "inline" of this method in your
145+
* IDE to get the proper implementation for this release.
146+
* @deprecated Will go away in next major version
147+
*/
118148
void addArchivedFileSet( File archiveFile, String[] includes, String[] excludes )
119149
throws ArchiverException;
120150

151+
/**
152+
* Obsolete, use {@link #addArchivedFileSet(ArchivedFileSet)}. You can use "inline" of this method in your
153+
* IDE to get the proper implementation for this release.
154+
* @deprecated Will go away in next major version
155+
*/
121156
void addArchivedFileSet( File archiveFile, String prefix, String[] includes, String[] excludes )
122157
throws ArchiverException;
123158

src/main/java/org/codehaus/plexus/archiver/util/AbstractFileSet.java

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
* Default implementation of {@link BaseFileSet}.
99
* @since 1.0-alpha-9
1010
*/
11-
public abstract class AbstractFileSet
11+
public abstract class AbstractFileSet<T extends AbstractFileSet>
1212
implements BaseFileSet
1313
{
1414
private String prefix;
@@ -122,4 +122,28 @@ public boolean isIncludingEmptyDirectories()
122122
{
123123
return includingEmptyDirectories;
124124
}
125+
126+
public T prefixed(String prefix){
127+
setPrefix( prefix );
128+
return (T)this;
129+
}
130+
131+
public T include(String[] includes){
132+
setIncludes( includes );
133+
return (T)this;
134+
}
135+
136+
public T exclude(String[] excludes){
137+
setExcludes( excludes );
138+
return (T) this;
139+
}
140+
141+
public T includeExclude( String[] includes, String[] excludes ){
142+
return (T) include( includes ).exclude( excludes );
143+
}
144+
145+
public T includeEmptyDirs( boolean includeEmptyDirectories ){
146+
setIncludingEmptyDirectories( includeEmptyDirectories );
147+
return (T) this;
148+
}
125149
}

src/main/java/org/codehaus/plexus/archiver/util/DefaultArchivedFileSet.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
* @since 1.0-alpha-9
1111
*/
1212
public class DefaultArchivedFileSet
13-
extends AbstractFileSet
13+
extends AbstractFileSet<DefaultArchivedFileSet>
1414
implements ArchivedFileSet
1515
{
1616
private File archive;
@@ -27,4 +27,14 @@ public File getArchive()
2727
{
2828
return archive;
2929
}
30+
31+
public static DefaultArchivedFileSet archivedFileSet( File archiveFile ){
32+
if (archiveFile == null)
33+
{
34+
throw new IllegalArgumentException( "Archive File cannot be null" );
35+
}
36+
final DefaultArchivedFileSet fileSet = new DefaultArchivedFileSet();
37+
fileSet.setArchive( archiveFile );
38+
return fileSet;
39+
}
3040
}

src/main/java/org/codehaus/plexus/archiver/util/DefaultFileSet.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
* @since 1.0-alpha-9
1111
*/
1212
public class DefaultFileSet
13-
extends AbstractFileSet
13+
extends AbstractFileSet<DefaultFileSet>
1414
implements FileSet
1515
{
1616
private File directory;
@@ -27,4 +27,11 @@ public File getDirectory()
2727
{
2828
return directory;
2929
}
30+
31+
public static DefaultFileSet fileSet( File directory ){
32+
final DefaultFileSet defaultFileSet = new DefaultFileSet();
33+
defaultFileSet.setDirectory( directory);
34+
return defaultFileSet;
35+
}
36+
3037
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package org.codehaus.plexus.archiver.util;
2+
3+
import junit.framework.TestCase;
4+
5+
import java.io.File;
6+
7+
import static org.codehaus.plexus.archiver.util.DefaultFileSet.fileSet;
8+
9+
/**
10+
* @author Kristian Rosenvold
11+
*/
12+
public class DefaultFileSetTest
13+
extends TestCase
14+
{
15+
public void testCreate()
16+
{
17+
final String[] includes = { "zz", "yy" };
18+
final String[] exc = { "xx1", "xx2" };
19+
final DefaultFileSet dfs = fileSet( new File( "foo" ) ).prefixed( "pfx" ).include( includes ).exclude( exc );
20+
assertEquals( "foo", dfs.getDirectory().getName() );
21+
assertEquals( "pfx", dfs.getPrefix() );
22+
assertEquals( "zz", dfs.getIncludes()[0] );
23+
assertEquals( "xx1", dfs.getExcludes()[0] );
24+
}
25+
}

0 commit comments

Comments
 (0)