On 13/10/2009, at 2:52 PM, Jevica Arianne Zurbano wrote:
On Tue, Oct 13, 2009 at 8:12 AM, Brett Porter <[email protected]>
wrote:
On 12/10/2009, at 3:29 PM, [email protected] wrote:
-
/**
* ConsumerWantsFilePredicate
*
@@ -62,8 +63,19 @@
// Timestamp finished points to the last
successful
scan, not this current one.
if ( basefile.lastModified() < changesSince )
{
- // Skip file as no change has occured.
- satisfies = false;
+ // MRM-1246
+ // compares the lastModified of the
version-level
(basefile) and the project-level (parent) metadata
+ File parent =
basefile.getParentFile().getParentFile();
+
+ if ( parent.lastModified() >
basefile.lastModified() )
+ {
+ satisfies = true;
+ }
+ else
+ {
+ // Skip file as no change has occurred.
+ satisfies = false;
+ }
}
is this doing what it intends? It seems to be comparing the
timestamp of
the parent directory, not the parent metadata file, and not all files
passing through the predicate are metadata files.
It does update the parent metadata file. But I missed that not all
are of
metadata files.
Will make modifications for this to check the consumer type.
but basefile.getParentFile().getParentFile() is ".." for "maven-
metadata.xml", ie a directory. I don't think it is checking the right
timestamp. I also don't think building knowledge of the repository
format into this level of abstraction is appropriate.
Does disabling this change cause the tests to fail to verify they are
working?
I added a test to check the metadata before and after it has been
updated.
But I haven't added a test on the fix yet. I am still figuring out
where to
put the test since
the test should include scanning with the consumer.
However, the repo scanning tests are ran before the consumers are
built.
Any thoughts on this?
Usually you'd use a mock consumer to test whether it is called when
expected.
- Brett