Peter Firmstone wrote:
Thanks for the compliment.
I'm looking forward to having some help, programming alone isn't much
fun, I've been quite busy, so a short break to let others show off their
skills while I get some much needed rest is all good.
This is probably also a very good opportunity to finally get some much
needed peer review.
...
2. RevokeableDynamicPolicy and Security delegates. - experimental,
this could take some time, how to avoid divergence? Can we merge
trunk into skunk periodically to keep it up to date?
...
Yes, I think you can, and should, periodically merge the trunk head into
your skunk branch, to limit divergence.
Also, try to limit scattered divergences. For example, in some
situations you can get users of a feature onto an interface that works
with either old or new. Merging that sort of change, with the old style
handling of the interface, back into trunk would be relatively low risk.
After that, you work one part of the program relatively independently.
Factory methods can be useful for this sort of thing - you can change
the class of the interface implementation a factory returns without
having to edit its callers. They are much more flexible than constructors.
I'm thinking of replacing the current TaskManager.Task interface with
one in which the runAfter method returns a Task it needs to run after,
null if there is none, rather than just saying whether there is one.
Also, I want to get them off indexed access to Iterable access, so that
I am not forced to use a fast random access List to implement the
collection runAfter checks. It would only take a small change in the
current task manager to use that interface. Once that is done, I can
play with TaskManager scalability editing only TaskManager, not its callers.
Can you suggest some background reading for your security work? I have a
good background in proof-of-correctness (my bachelor's degree was in
mathematics) which might be a useful viewpoint for your peer review, but
I don't know enough about security within a Java program.
Patricia