[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-users] Compile-time signature

Any progress?

Cheers,
Fabian

2018-01-10 19:48 GMT+01:00 Andy Clement <andrew.clement@xxxxxxxxx>:
> The proper optimization here is to use the LDC byte code that takes a
> constant class, rather than the string variant and then class loading. The
> original AspectJ used the string form because LDC didn't take a class
> originally.  Over the years a few places have been updated but not
> everywhere ( thisEnclosingJoinPoint is one of them that hasn't been done I
> think). Let me have a look at what I can do. For a while we had to tolerate
> both modes because LDC class was quite new, but it has been there so long
> now I think we can assume you are on a JVM that will have it.
>
> cheers,
> Andy
>
>
> On 10 January 2018 at 01:42, Fabian Bergmark <fabian.bergmark@xxxxxxxxx>
> wrote:
>>
>> I'm using both AspectJ and Proguard in a project. On of my aspects
>> inserts MDC-information in logging messages, including source location
>> and method:
>>
>> void around() : call(void org.slf4j.Logger.trace(..)) || call(void
>> org.slf4j.Logger.debug(..)) || call(void org.slf4j.Logger.info(..)) ||
>> call(void org.slf4j.Logger.warn(..)) || call(void
>> org.slf4j.Logger.error(..)) {
>>         try (MDC.MDCCloseable c3 =
>> MDC.putCloseable("logging_aspect::location",
>> thisJoinPoint.getSourceLocation().toString());
>>               MDC.MDCCloseable c4 =
>> MDC.putCloseable("logging_aspect::method",
>> thisEnclosingJoinPointStaticPart.getSignature().toString())) {
>>             proceed();
>>         }
>>     }
>>
>> However, when enabling obfuscation in proguard, this results in log
>> messages like:
>>
>> "mdc" : {
>>     "logging_aspect::method" : "void
>>
>> java.lang.ClassNotFoundException.onCreateConnectionChannelResponse(ClassNotFoundException,
>> CreateConnectionChannelError, ConnectionStatus)",
>>     "logging_aspect::location" : "File.java:299"
>> }
>>
>> I think there should be a way to access the Signature at the time of
>> compilation. This would also be faster (?) than looking up classes
>> during runtime.
>> _______________________________________________
>> aspectj-users mailing list
>> aspectj-users@xxxxxxxxxxx
>> To change your delivery options, retrieve your password, or unsubscribe
>> from this list, visit
>> https://dev.eclipse.org/mailman/listinfo/aspectj-users
>
>
>
> _______________________________________________
> aspectj-users mailing list
> aspectj-users@xxxxxxxxxxx
> To change your delivery options, retrieve your password, or unsubscribe from
> this list, visit
> https://dev.eclipse.org/mailman/listinfo/aspectj-users