Hi Andrew,

Thanks for the answer. I actually have applied the 1st approach, the
pointcuts and advices defined in aspectA are applied to serviceA only and
it's working well. However the issue is with memory I believe even though
only specific pointcut is applied, the class has been woven by other
unrelated aspects and this consumes memory. I monitored my app and I noticed
a large increase of memory usage since AspectJ got implemented. I took the
heap dump and significant portion of it are AspectJ related instances.

My app has lots of aspects and lots of "include within" classes. As I watch
from the log, each of this "include within" class is woven with number of
aspects that I have, even though only specific aspect will be applied later
by the pointcut. Suppose If i have 20 aspects and 30 "include within"
classes the total number will be 600. I am trying to reduce the memory usage
of my AspectJ implementation as much as i can so it can go into production
but currently I am blocked.

Could you elaborate on the 2nd approach? I am trying to weave only specific
aspect to its specific class(es).

Regards,
- Yohan chandra -

On Wed, Oct 20, 2010 at 5:36 PM, Andrew Eisenberg <and...@eisenberg.as>wrote:

> > 1. Will servicesA be woven with all the three aspects (aspectA,B,C)?
> Correct.
>
> > 2. If Yes, is there any way to configure specific aspect to weave only
> > specific class(es), example: AspectA weaves only servicesA?
>
> Not directly, but there are two suggestions:
>
> 1. Within each specific aspect, you can add a within() pointcut to
> each of your advice declarations and this will ensure that AspectA is
> only applied to ServiceA.  Eg, something like this:
>
> pointcut canApplyTo() : within(ServiceA);
>
> after() : doingSomethingAwesome() && canApplyTo() {
>   ...
> }
>
> 2. Separate each of your service and aspects into separate modules to
> pair serviceA and aspectA, etc.
>
> I'd strongly recommend #1.
> _______________________________________________
> 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

Reply via email to