Hi,
So far we have discussed and thrown about implementation ideas for low level
aspects (ie those that change the TaskModel/ContextClassLoader/Logger
priority etc).
We have yet to discuss any of the higher order aspects such as those needed
by GUMP. They are higher order as they require cooperation from the task to
complete the action.
For instance to support the features required by gump the tasks have to be
willing to obey ClassPath directives given by AspectHandler implementation.
To facilitate this I was thinking of establishing a pattern something like
interface ClassPathAware
{
void setSomeSpecificPropertiesOfClassPath();
}
...
class ClassPathAspect
{
void postCreate( Task task )
{
if( task instanceof ClassPathAware )
{
//...insert black magic here...
((ClassPathAware)task).setSomeSpecificPropertiesOfClassPath();
}
}
}
So for every higher order aspect there would be two components. The
AspecttHandler and the interface. Tasks that wish to participate with this
aspect or understand it will implement the interface and be passed parameters
as appropriate. Thoughts?
Cheers,
Pete
*-----------------------------------------------------*
| "Faced with the choice between changing one's mind, |
| and proving that there is no need to do so - almost |
| everyone gets busy on the proof." |
| - John Kenneth Galbraith |
*-----------------------------------------------------*