A longstanding and interesting question... As Eric mentioned, you can advise some join points and then include a check at each one whether to run the advice; you might implement the check using Pointcut or reflection or what have you. You cannot change an existing pointcut, but you can decide what code to run. (With some cheating you can change the result of an if(..) PCD, but it's clearer to change the advice.)
But you're foraging around a proposal that sounds interesting: to declare programmatically at runtime a concrete aspect using LTW that (only) affects the loading of subsequent classes. In principle this is doable (at some coherency risk vis-a-vis any classes loaded first), so the question becomes whether you can make a compelling use case, particularly if it involves a well-defined start/end point for defining subaspects programmatically. Wes > ------------Original Message------------ > From: stalsy <[EMAIL PROTECTED]> > To: aspectj-users@eclipse.org > Date: Sun, Oct-1-2006 11:40 AM > Subject: [aspectj-users] changing pointcut at runtime > > > Hi all, > > I'm a newbie in aspectj and I need to change a pointcut at runtime > based on > the user choice. > > I receive an input String from the user keyboard and I want create a > pointcut based on that input. Initially I've thinking at aspect > reflection, > but there isn't any "set" method for this pourpose. > > String comp = InitVars.getFilter(); // get an input from user keyboard > .... > AjType dt = AjTypeSystem.getAjType(DynTrace.class); // the aspect > (DynTrace.aj) in which I would insert new pointcut > Pointcut pc = dt.getPointcut("filter"); // take the old pointcut > PointcutExpression pce = pc.getPointcutExpression(); // take the > pointcut > old expression > > now how can I insert new pointcut expression( value of variable "comp" > ) in > this pointcut? There is another way to make this? > > ES: > > I get the input "component" from user. Than I would change the old > pointcut > public pointcut filter(): Scope() && execution(* *(..)); > to > public pointcut filter(): Scope() && execution(* component(..)); > > where component in pointcut expression is the value of component > variable. > > someone can help me, please? > > thank you in advance for replies, best regards > -- > View this message in context: > http://www.nabble.com/changing-pointcut-at-runtime-tf2365784.html#a6590719 > Sent from the AspectJ - users mailing list archive at Nabble.com. > > _______________________________________________ > aspectj-users mailing list > aspectj-users@eclipse.org > https://dev.eclipse.org/mailman/listinfo/aspectj-users > _______________________________________________ aspectj-users mailing list aspectj-users@eclipse.org https://dev.eclipse.org/mailman/listinfo/aspectj-users