On Thu, Oct 21, 2010 at 8:00 AM, yohan chandra <
yohan.chandra@xxxxxxxxx> wrote:
> 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 <
andrew@xxxxxxxxxxxx>
> 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@xxxxxxxxxxx
>>
https://dev.eclipse.org/mailman/listinfo/aspectj-users
>
>