Skip to content

Commit 63a66d9

Browse files
committed
added more PMD checks
1 parent b8e86cc commit 63a66d9

35 files changed

Lines changed: 375 additions & 275 deletions

code-quality.gradle

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,16 +34,36 @@ jacocoTestReport.dependsOn test
3434
check.dependsOn integrationTest
3535
check.dependsOn jacocoTestReport
3636

37+
findbugsIntegrationTest.enabled = false
3738
findbugsTest.enabled = false
3839

3940
findbugs {
4041
ignoreFailures = true //don't fail the gradle build if bugs are found
4142
}
4243

44+
pmdIntegrationTest.enabled = false
4345
pmdTest.enabled = false
4446

4547
pmd {
46-
ruleSets = ["java-basic", "java-braces", "java-empty"]
48+
ruleSets = [
49+
"java-basic",
50+
"java-braces",
51+
"java-clone",
52+
"java-codesize",
53+
"java-design",
54+
"java-empty",
55+
"java-finalizers",
56+
"java-imports",
57+
"java-j2ee",
58+
"java-javabeans",
59+
"java-optimizations",
60+
"java-strictexception",
61+
"java-strings",
62+
"java-sunsecure",
63+
"java-typeresolution",
64+
"java-unnecessary",
65+
"java-unusedcode"
66+
]
4767
}
4868

4969
jacocoTestReport {
@@ -57,7 +77,7 @@ jacocoTestReport {
5777
'gov.loc.repository.bagit/annotation/**',
5878
'gov.loc.repository.bagit/exceptions/**'])
5979
})
60-
}
80+
}
6181
}
6282

6383
//Keep this for easy viewing of html findbugs report

src/integration/java/gov/loc/repository/bagit/FileExistsVistor.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,25 +10,25 @@
1010
import org.junit.Assert;
1111

1212
public class FileExistsVistor extends SimpleFileVisitor<Path>{
13-
private final Path originalBag;
14-
private final Path newBag;
13+
private transient final Path originalBag;
14+
private transient final Path newBag;
1515

16-
public FileExistsVistor(Path originalBag, Path newBag){
16+
public FileExistsVistor(final Path originalBag, final Path newBag){
1717
this.originalBag = originalBag;
1818
this.newBag = newBag;
1919
}
2020

2121
@Override
22-
public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException {
22+
public FileVisitResult preVisitDirectory(final Path dir, final BasicFileAttributes attrs) throws IOException {
2323
Path relative = originalBag.relativize(dir);
2424
Assert.assertTrue(Files.exists(newBag.resolve(relative)));
2525

2626
return FileVisitResult.CONTINUE;
2727
}
2828

2929
@Override
30-
public FileVisitResult visitFile(Path path, BasicFileAttributes attrs)throws IOException{
31-
Path relative = originalBag.relativize(path);
30+
public FileVisitResult visitFile(final Path path, final BasicFileAttributes attrs)throws IOException{
31+
final Path relative = originalBag.relativize(path);
3232
Assert.assertTrue(Files.exists(newBag.resolve(relative)));
3333

3434
return FileVisitResult.CONTINUE;

src/main/java/gov/loc/repository/bagit/creator/AddPayloadToBagManifestVistor.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,18 +23,18 @@
2323
public class AddPayloadToBagManifestVistor extends SimpleFileVisitor<Path>{
2424
private static final Logger logger = LoggerFactory.getLogger(AddPayloadToBagManifestVistor.class);
2525

26-
private final Manifest manifest;
27-
private final MessageDigest messageDigest;
28-
private final boolean includeHiddenFiles;
26+
private transient final Manifest manifest;
27+
private transient final MessageDigest messageDigest;
28+
private transient final boolean includeHiddenFiles;
2929

30-
public AddPayloadToBagManifestVistor(Manifest manifest, MessageDigest messageDigest, boolean includeHiddenFiles){
30+
public AddPayloadToBagManifestVistor(final Manifest manifest, final MessageDigest messageDigest, final boolean includeHiddenFiles){
3131
this.manifest = manifest;
3232
this.messageDigest = messageDigest;
3333
this.includeHiddenFiles = includeHiddenFiles;
3434
}
3535

3636
@Override
37-
public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException {
37+
public FileVisitResult preVisitDirectory(final Path dir, final BasicFileAttributes attrs) throws IOException {
3838
if(!includeHiddenFiles && Files.isHidden(dir)){
3939
logger.debug("Skipping [{}] since we are ignoring hidden files", dir);
4040
return FileVisitResult.SKIP_SUBTREE;
@@ -49,13 +49,13 @@ public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) th
4949
}
5050

5151
@Override
52-
public FileVisitResult visitFile(Path path, BasicFileAttributes attrs)throws IOException{
52+
public FileVisitResult visitFile(final Path path, final BasicFileAttributes attrs)throws IOException{
5353
if(!includeHiddenFiles && Files.isHidden(path) && !path.endsWith(".keep")){
5454
logger.debug("Skipping [{}] since we are ignoring hidden files", path);
5555
}
5656
else{
57-
InputStream inputStream = Files.newInputStream(path, StandardOpenOption.READ);
58-
String hash = Hasher.hash(inputStream, messageDigest);
57+
final InputStream inputStream = Files.newInputStream(path, StandardOpenOption.READ);
58+
final String hash = Hasher.hash(inputStream, messageDigest);
5959
logger.debug("Adding [{}] to manifest with hash [{}]", path, hash);
6060
manifest.getFileToChecksumMap().put(path, hash);
6161
}

src/main/java/gov/loc/repository/bagit/creator/BagCreator.java

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,11 @@
2121
/**
2222
* Responsible for creating a bag in place.
2323
*/
24-
public class BagCreator {
24+
public final class BagCreator {
2525
private static final Logger logger = LoggerFactory.getLogger(BagVerifier.class);
2626

27+
private BagCreator(){}
28+
2729
/**
2830
* Creates a basic(only required elements) bag in place for version 0.97.
2931
* This method moves and creates files, thus if an error is thrown during operation it may leave the filesystem
@@ -36,24 +38,24 @@ public class BagCreator {
3638
* @throws IOException if there is a problem writing or moving file(s)
3739
* @return a {@link Bag} object representing the newly created bagit bag
3840
*/
39-
public static Bag bagInPlace(Path root, SupportedAlgorithm algorithm, boolean includeHidden) throws NoSuchAlgorithmException, IOException{
40-
Bag bag = new Bag(new Version(0, 97));
41+
public static Bag bagInPlace(final Path root, final SupportedAlgorithm algorithm, final boolean includeHidden) throws NoSuchAlgorithmException, IOException{
42+
final Bag bag = new Bag(new Version(0, 97));
4143
bag.setRootDir(root);
4244
logger.info("Creating a bag with version: [{}] in directory: [{}]", bag.getVersion(), root);
4345

44-
Path dataDir = root.resolve("data");
46+
final Path dataDir = root.resolve("data");
4547
Files.createDirectory(dataDir);
46-
DirectoryStream<Path> directoryStream = Files.newDirectoryStream(root);
47-
for(Path path : directoryStream){
48+
final DirectoryStream<Path> directoryStream = Files.newDirectoryStream(root);
49+
for(final Path path : directoryStream){
4850
if(!path.equals(dataDir) && !Files.isHidden(path) || includeHidden){
4951
Files.move(path, dataDir.resolve(path.getFileName()));
5052
}
5153
}
5254

5355
logger.info("Creating payload manifest");
54-
Manifest manifest = new Manifest(algorithm);
55-
MessageDigest messageDigest = MessageDigest.getInstance(algorithm.getMessageDigestName());
56-
AddPayloadToBagManifestVistor visitor = new AddPayloadToBagManifestVistor(manifest, messageDigest, includeHidden);
56+
final Manifest manifest = new Manifest(algorithm);
57+
final MessageDigest messageDigest = MessageDigest.getInstance(algorithm.getMessageDigestName());
58+
final AddPayloadToBagManifestVistor visitor = new AddPayloadToBagManifestVistor(manifest, messageDigest, includeHidden);
5759
Files.walkFileTree(dataDir, visitor);
5860

5961
bag.getPayLoadManifests().add(manifest);
@@ -77,18 +79,18 @@ public static Bag bagInPlace(Path root, SupportedAlgorithm algorithm, boolean in
7779
* @throws IOException if there is a problem writing files or .bagit directory
7880
*/
7981
@Incubating
80-
public static Bag createDotBagit(Path root, SupportedAlgorithm algorithm, boolean includeHidden) throws NoSuchAlgorithmException, IOException{
81-
Bag bag = new Bag(new Version(0, 98));
82+
public static Bag createDotBagit(final Path root, final SupportedAlgorithm algorithm, final boolean includeHidden) throws NoSuchAlgorithmException, IOException{
83+
final Bag bag = new Bag(new Version(0, 98));
8284
bag.setRootDir(root);
8385
logger.info("Creating a bag with version: [{}] in directory: [{}]", bag.getVersion(), root);
8486

85-
Path dotbagitDir = root.resolve(".bagit");
87+
final Path dotbagitDir = root.resolve(".bagit");
8688
Files.createDirectories(dotbagitDir);
8789

8890
logger.info("Creating payload manifest");
89-
Manifest manifest = new Manifest(algorithm);
90-
MessageDigest messageDigest = MessageDigest.getInstance(algorithm.getMessageDigestName());
91-
AddPayloadToBagManifestVistor visitor = new AddPayloadToBagManifestVistor(manifest, messageDigest, includeHidden);
91+
final Manifest manifest = new Manifest(algorithm);
92+
final MessageDigest messageDigest = MessageDigest.getInstance(algorithm.getMessageDigestName());
93+
final AddPayloadToBagManifestVistor visitor = new AddPayloadToBagManifestVistor(manifest, messageDigest, includeHidden);
9294
Files.walkFileTree(root, visitor);
9395

9496
bag.getPayLoadManifests().add(manifest);

src/main/java/gov/loc/repository/bagit/domain/Bag.java

Lines changed: 33 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,28 @@ public class Bag {
3636
//the current location of the bag on the filesystem
3737
private Path rootDir;
3838

39+
/**
40+
* empty bag with an invalid version
41+
*/
3942
public Bag(){
43+
//intentionally empty
4044
}
4145

42-
public Bag(Version version){
46+
/**
47+
* empty bag with the specified bag version
48+
*
49+
* @param version the version of the bag
50+
*/
51+
public Bag(final Version version){
4352
this.version = version;
4453
}
4554

46-
public Bag(Bag bag){
55+
/**
56+
* Create a new bag with the same values as the supplied bag
57+
*
58+
* @param bag the bag to clone
59+
*/
60+
public Bag(final Bag bag){
4761
this.version = bag.getVersion();
4862
this.fileEncoding = bag.fileEncoding;
4963
this.itemsToFetch = bag.getItemsToFetch();
@@ -61,57 +75,57 @@ public Set<Manifest> getPayLoadManifests() {
6175
return payLoadManifests;
6276
}
6377

64-
public void setPayLoadManifests(Set<Manifest> payLoadManifests) {
78+
public void setPayLoadManifests(final Set<Manifest> payLoadManifests) {
6579
this.payLoadManifests = payLoadManifests;
6680
}
6781

6882
public Set<Manifest> getTagManifests() {
6983
return tagManifests;
7084
}
7185

72-
public void setTagManifests(Set<Manifest> tagManifests) {
86+
public void setTagManifests(final Set<Manifest> tagManifests) {
7387
this.tagManifests = tagManifests;
7488
}
7589

7690
public List<FetchItem> getItemsToFetch() {
7791
return itemsToFetch;
7892
}
7993

80-
public void setItemsToFetch(List<FetchItem> itemsToFetch) {
94+
public void setItemsToFetch(final List<FetchItem> itemsToFetch) {
8195
this.itemsToFetch = itemsToFetch;
8296
}
8397

8498
public List<Pair<String, String>> getMetadata() {
8599
return metadata;
86100
}
87101

88-
public void setMetadata(List<Pair<String, String>> metadata) {
102+
public void setMetadata(final List<Pair<String, String>> metadata) {
89103
this.metadata = metadata;
90104
}
91105

92106
public Charset getFileEncoding() {
93107
return fileEncoding;
94108
}
95109

96-
public void setFileEncoding(Charset fileEncoding) {
110+
public void setFileEncoding(final Charset fileEncoding) {
97111
this.fileEncoding = fileEncoding;
98112
}
99113

100114
@Override
101115
public String toString() {
102-
StringBuilder sb = new StringBuilder();
103-
sb.append("Bag [version=").append(version);
104-
sb.append(", fileEncoding=").append(fileEncoding);
105-
sb.append(", payLoadManifests=[");
106-
for(Manifest payloadManifest : payLoadManifests){
116+
final StringBuilder sb = new StringBuilder(95);
117+
sb.append("Bag [version=").append(version).
118+
append(", fileEncoding=").append(fileEncoding).
119+
append(", payLoadManifests=[");
120+
for(final Manifest payloadManifest : payLoadManifests){
107121
sb.append(payloadManifest).append(' ');
108122
}
109123
sb.append("], tagManifests=[");
110-
for(Manifest tagManifest : tagManifests){
124+
for(final Manifest tagManifest : tagManifests){
111125
sb.append(tagManifest).append(' ');
112126
}
113-
sb.append("], itemsToFetch=").append(itemsToFetch);
114-
sb.append(", metadata=").append(metadata).append(']');
127+
sb.append("], itemsToFetch=").append(itemsToFetch).
128+
append(", metadata=").append(metadata).append(']');
115129

116130
return sb.toString();
117131
}
@@ -123,7 +137,7 @@ public int hashCode() {
123137
}
124138

125139
@Override
126-
public boolean equals(Object obj) {
140+
public boolean equals(final Object obj) {
127141
if (this == obj){
128142
return true;
129143
}
@@ -134,7 +148,7 @@ public boolean equals(Object obj) {
134148
return false;
135149
}
136150

137-
Bag other = (Bag) obj;
151+
final Bag other = (Bag) obj;
138152
return Objects.equals(this.version, other.getVersion()) &&
139153
Objects.equals(this.fileEncoding, other.getFileEncoding()) &&
140154
Objects.equals(this.payLoadManifests, other.getPayLoadManifests()) &&
@@ -147,11 +161,11 @@ public Path getRootDir() {
147161
return rootDir;
148162
}
149163

150-
public void setRootDir(Path rootDir) {
164+
public void setRootDir(final Path rootDir) {
151165
this.rootDir = rootDir;
152166
}
153167

154-
public void setVersion(Version version) {
168+
public void setVersion(final Version version) {
155169
this.version = version;
156170
}
157171
}

src/main/java/gov/loc/repository/bagit/domain/FetchItem.java

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,19 +22,19 @@ public class FetchItem {
2222
*/
2323
public final String path;
2424

25-
public FetchItem(URL url, Long length, String path){
25+
public FetchItem(final URL url, final Long length, final String path){
2626
this.url = url;
2727
this.length = length;
2828
this.path = path;
2929
}
3030

3131
@Override
3232
public String toString() {
33-
StringBuilder sb = new StringBuilder();
33+
final StringBuilder sb = new StringBuilder();
3434
sb.append(url).append(' ');
3535

3636
if(length < 0){
37-
sb.append('-').append(' ');
37+
sb.append("- ");
3838
}
3939
else{
4040
sb.append(length).append(' ');
@@ -44,4 +44,16 @@ public String toString() {
4444

4545
return sb.toString();
4646
}
47+
48+
public URL getUrl() {
49+
return url;
50+
}
51+
52+
public Long getLength() {
53+
return length;
54+
}
55+
56+
public String getPath() {
57+
return path;
58+
}
4759
}

src/main/java/gov/loc/repository/bagit/domain/KeyValuePair.java

Lines changed: 0 additions & 12 deletions
This file was deleted.

0 commit comments

Comments
 (0)