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