For Aaron's point (1) I have created an minor issue and assigned to
myself to investigate whether it's possible to get rid of
PatternMatcher.matches(String fileName).
It seems to me that all file matching in Hackystat should be done with
PatternMatcher.matches(WorkspaceFile workspaceFile).
The difference is the latter strips off workspace root before doing the
comparison.
Cheers,
Cedric
Philip Johnson wrote:
Great comments, Aaron! The screen adaptation of your Memoirs can't be
far off. :-)
Some quick thoughts:
* In the long run, the best way to simplify the debugging of the DPDs
is to reimplement them with the new design. In fact, my attempts to
debug the old DailyProjectFileMetrics class was what led me to the new
design in the first place.
* I agree that at some point, an abstract DPD class (or classes) could
significantly simplify DPD implementation. I'm just not sure yet of
the "design space" for DPDs, so I'm content to copy-and-modify for
now. I know the agilists are cringing, but there's a significant
ripple effect from refactoring and I want to understand the problem
better before going down that path.
* I agree with you that the "global" testuser is a bad idea, and in
fact the DPD documentation illustrates the better way, which is to
create a new test user with its own dataset:
<http://hackydev.ics.hawaii.edu/hackyDevSite/external/docbook/ch20s05.html>
* I also agree with you that the test framework should provide a way
to set the workspace root. I'm not sure why that wasn't done in the
first place. I've created a Jira issue:
<http://hackydev.ics.hawaii.edu:8080/browse/HACK-783>
* Again, the slowness issue with the dependency DPD should be
addressed by moving to the new design. This is actually good to do
while the old implementation is still around so that you can do
comparisons. There's some documentation on this at:
<http://hackydev.ics.hawaii.edu/hackyDevSite/external/docbook/ch20s06.html>
I'm still trying to get my head above water teaching-wise, and if that
happens, I hope to help make some tangible progress on some of these
issues.
Cheers,
Philip
--On Thursday, September 07, 2006 12:34 AM -1000 Aaron Kagawa
<[EMAIL PROTECTED]> wrote:
Hey Guys,
I just finished what i thought was going to be a minor fix, but it
turned out to be a
long and confusing fix, to the Workspace Dependency Analysis
(HACK-732). Here is what
I was having trouble with.
1) It took me a pretty long time to track bug in the
DailyProjectDependency2
implementation noted in HACK-779. It turns out that that the
FilePattern wasn't
matching against the Workspace (or WorkspaceFile) object. Instead it
was just matching
against the filePath in the Dependency data. This has since been
fixed by Cedric. So,
here is my point. Wouldn't it be nice if the individual DailyProjectData
implementations did not have to worry about that sort of detail.
Maybe after we
convert some more DPD implementations to the new design we can start
to think about
abstracting some of the common code out.
2) It also took me a while to find HACK-781. The problem is that
some users have
workspaces have file extensions. For some reason, I never thought to
check that and was
left scratching my head for a while why I was getting workspaces with
file extensions.
to get rid of these, i deleted the user.workspace.xml file and the
WorkspaceSeal. but
this isn't a long term solution. why are these workspaces being
created. i know that i
raised this issue before. what was the solution back then?
3) I had some minor issues with the creation of test projects. Our
test framework does
not allow use to set the workspace root. I'm not sure why that is.
I vote to change
that. Anyway, one obvious reason why we should do this is that the
first issue was not
detected until I set up a real project with a workspace root.
4) I've come to realize that our test data isn't very organized at
all. What would
happen if moduleA had FileMetric data on 2006-06-01.xml and moduleB
had a totally
different set of FileMetric data on the same day?
5) I think that the DailyProjectDependency2 implementation can
replace the old
DailyProjectDependency implementation. However, in the longer term I
think we would
want to redo the DPD to use the new design. Oh... By the way, can we
make a better
DrillDown section in the DailyProjectDetails for the dependency data?
What should go in
there?
Anyway, HACK-732 is completed. The only problem that I see right now
is that it is
pretty slow. It calculates the 4 dependency metrics for every
workspace that has Java
code in a project. Well it takes a while on my comp because I don't
have enough RAM
(anyone want to donate? I have a Dell Dimension 8400. hahaha).
thanks, Aaron