[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [aspectj-users] aspectj and jsp load
|
The problem with allowing that setting in aop.xml is that I'd have to
initialize the weaver enough to discover the aop.xml and determine
that it didn't have to do anything - normally the settings in the
aop.xml are just for the instance of the weaver that is discovering
that aop.xml. A system property completely avoids all this messing
about, but I understand it can be a bit more fiddly to configure.
mmm, but I suppose if it is treated as a kind 'global' setting then I
could use aop.xml. The first time any aop.xml file is encountered,
this value would apply across all future classloaders encountered in
the system. In a 'typical' configuration where some other
classloaders are encountered first (before your Jsp ones), this would
probably behave how we'd like.
The list is comma delimited, yes.
Andy
On 5 January 2012 15:08, yohan chandra <yohan.chandra@xxxxxxxxx> wrote:
> Thanks,
>
> It works nicely, below is some log:
> Line 24: aj.weaving.loadersToSkip is set. Skipping loaders:
> 'weblogic.servlet.jsp.JspClassLoader'
> Line 172: aj.weaving.loadersToSkip = weblogic.servlet.jsp.JspClassLoader
> Line 7611: debug: no weaver created for loader
> 'weblogic.servlet.jsp.JspClassLoader'
> Line 7623: debug: no weaver created for loader
> 'weblogic.servlet.jsp.JspClassLoader'
> Line 7624: debug: no weaver created for loader
> 'weblogic.servlet.jsp.JspClassLoader'
> Line 7625: debug: no weaver created for loader
> 'weblogic.servlet.jsp.JspClassLoader'
> Line 7656: debug: no weaver created for loader
> 'weblogic.servlet.jsp.JspClassLoader'
> Line 7672: debug: no weaver created for loader
> 'weblogic.servlet.jsp.JspClassLoader'
> the weaver is not created for any JspClassLoader and the page is loaded very
> fast. with precompiled jsp, the jsp is displayed instantly, no more delay.
> Thanks a lot for the help.
>
> Is it possible to configure this outside of system property? probably in
> aop.xml?
> aj.weaving.loadersToSkip=weblogic.servlet.jsp.JspClassLoader
>
> How to set if I want to skip more loaders? is it coma delimited?
>
> Regards,
> - Yohan -
>
>
> On Wed, Jan 4, 2012 at 6:18 PM, Andy Clement <andrew.clement@xxxxxxxxx>
> wrote:
>>
>> ok, I just decided to implement what might help you here, if it proves
>> successful I'll commit it. You will need to use this special dev
>> build of AspectJ weaver:
>>
>>
>> http://www.eclipse.org/downloads/download.php?file=/tools/aspectj/dev/aspectjweaver-skiploaders.jar
>>
>> and set this system property:
>> aj.weaving.loadersToSkip=weblogic.servlet.jsp.JspClassLoader
>>
>> You will see debug output if the system property is picked up and then
>> again when loaders are ignored, like this:
>>
>> aj.weaving.loadersToSkip is set. Skipping loaders:
>> 'sun.misc.Launcher$AppClassLoader'
>>
>> debug: no weaver created for loader 'sun.misc.Launcher$AppClassLoader'
>>
>> I imagine you are just suffering the startup time of the weaver. let
>> me know how that works out for you.
>>
>> Incidentally the 'long' match times you are seeing for those spring
>> related pointcuts should improve with Spring 3.1, I saw a jira go by
>> the other day about optimizing them.
>>
>> cheers,
>> Andy
>>
>> On 3 January 2012 12:12, yohan chandra <yohan.chandra@xxxxxxxxx> wrote:
>> > Hi,
>> >
>> >> Are you confident your pointcuts aren't doing unnecessary matching, as
>> >> that will also hurt startup time. Are they all using within() clauses
>> >> to guard the set of types against which they will apply? You might
>> >> want to use the timers support to see if the pointcuts are spending a
>> >> lot of time matching:
>> >>
>> >>
>> >> http://andrewclement.blogspot.com/2009/a11/aspectj-profiling-pointcut-matching.html
>> >
>> >
>> > for within() clauses, I use include within options from aop.xml and only
>> > include necessary classes, for example:
>> > <include
>> > within="com.services.factory.account.AccountDbServicesCareImpl"/>
>> > <include
>> > within="com.services.factory.mobile.MobileDbServicesCareImpl"/>
>> > <include
>> >
>> > within="com.services.factory.resetpassword.CommonResetPasswordServicesImpl"/>
>> > <include within="com.services.tlg.utils.AddContractUtil"/>
>> > <include within="com.servlets.SalesPortalServlet"/>
>> > <include within="com.utils.CareComLogon"/>
>> > <include within="com.utils.CareLogonUtil"/>
>> > <include within="com.utils.CSSUtil"/>
>> > . . . .
>> >
>> > I have enabled the -timers option and below are from the logs:
>> > Line 4199: [ChangeAwareClassLoader@1e50bd5] info Pointcut fast matching
>> > cost
>> > (total=101ms for 3000 fast match calls):
>> > Line 4226: [ChangeAwareClassLoader@1e50bd5] info Pointcut matching cost
>> > (total=7805ms for 50000 joinpoint match calls):
>> >
>> > I checked the time logs, most of them are about 0-2ms, several 200ish
>> > ms,
>> > only two are outstanding (>1000ms):
>> > fast matching:
>> > Line 4200: [ChangeAwareClassLoader@1e50bd5] info Time:31ms (types:#428)
>> > fast
>> > matching against ((((execution(* *(..)) &&
>> > this(BindingTypePattern(java.lang.Object, 0))) &&
>> > @annotation(org.springframework.transaction.annotation.Transactional))
>> > &&
>> >
>> > persingleton(org.springframework.transaction.aspectj.AnnotationTransactionAspect))
>> > || (((execution(public *
>> > (@org.springframework.transaction.annotation.Transactional *).*(..)) &&
>> > this(BindingTypePattern(java.lang.Object, 0))) &&
>> > @this(org.springframework.transaction.annotation.Transactional)) &&
>> >
>> > persingleton(org.springframework.transaction.aspectj.AnnotationTransactionAspect)))
>> > Line 4205: [ChangeAwareClassLoader@1e50bd5] info Time:1ms (types:#108)
>> > fast
>> > matching against (((call(*
>> > com.cv.webservices.client.GenerateOOWQuestionsAnswers_Impl.*(..)) &&
>> > if())
>> > && persingleton(com.aspect.CustomerVerifyAdvice)) || ((call(*
>> > com.cv.webservices.client.GenerateOOWQuestionsAnswersPortType.*(..)) &&
>> > if()) && persingleton(com.aspect.CustomerVerifyAdvice)))
>> >
>> > matching:
>> > Line 4227: [ChangeAwareClassLoader@1e50bd5] info Time:1745ms (jps:#4104)
>> > matching against ((((execution(* *(..)) &&
>> > this(BindingTypePattern(java.lang.Object, 0))) &&
>> > @annotation(org.springframework.transaction.annotation.Transactional))
>> > &&
>> >
>> > persingleton(org.springframework.transaction.aspectj.AnnotationTransactionAspect))
>> > || (((execution(public *
>> > (@org.springframework.transaction.annotation.Transactional *).*(..)) &&
>> > this(BindingTypePattern(java.lang.Object, 0))) &&
>> > @this(org.springframework.transaction.annotation.Transactional)) &&
>> >
>> > persingleton(org.springframework.transaction.aspectj.AnnotationTransactionAspect)))
>> > Line 4233: [ChangeAwareClassLoader@1e50bd5] info Time:4174ms (jps:#8095)
>> > matching against (((call(*
>> > com.cv.webservices.client.GenerateOOWQuestionsAnswers_Impl.*(..)) &&
>> > if())
>> > && persingleton(com.aspect.CustomerVerifyAdvice)) || ((call(*
>> > com.cv.webservices.client.GenerateOOWQuestionsAnswersPortType.*(..)) &&
>> > if()) && persingleton(com.aspect.CustomerVerifyAdvice)))
>> >
>> > However I don't think the matching time is the issue because our
>> > application
>> > does not weave anything to the jsp classes (jsp is not even included in
>> > our
>> > aop.xml), I checked the log all this weaving time info is from
>> > changeAwareClassLoader only, nothing from the jspClassLoader.
>> >
>> > I observed the log, when the jsp is loaded, changeAwareClassLoader is
>> > not
>> > printing any log, the only related aspectj logs are registration of
>> > jspclassloaders and the aspects.
>> >
>> > I took the log for a page in our application and found out 8 jsp
>> > classloaders were registered and each registration took about ~1-2s (the
>> > log
>> > was moving slowly and after 1-2s another jsp class loader registration
>> > started and took about the same time)
>> > ...
>> > [JspClassLoader@14e2e89] info AspectJ Weaver Version 1.6.9 built on
>> > Monday
>> > Jul 5, 2010 at 15:28:35 GMT
>> > [JspClassLoader@14e2e89] info register classloader
>> > weblogic.servlet.jsp.JspClassLoader@14e2e89
>> > . . .
>> > [JspClassLoader@1b150] info AspectJ Weaver Version 1.6.9 built on Monday
>> > Jul
>> > 5, 2010 at 15:28:35 GMT
>> > [JspClassLoader@1b150] info register classloader
>> > weblogic.servlet.jsp.JspClassLoader@1b150
>> > . . .
>> > [JspClassLoader@1201afd] info AspectJ Weaver Version 1.6.9 built on
>> > Monday
>> > Jul 5, 2010 at 15:28:35 GMT
>> > [JspClassLoader@1201afd] info register classloader
>> > weblogic.servlet.jsp.JspClassLoader@1201afd
>> > . . .
>> > [JspClassLoader@c0cd51] info AspectJ Weaver Version 1.6.9 built on
>> > Monday
>> > Jul 5, 2010 at 15:28:35 GMT
>> > [JspClassLoader@c0cd51] info register classloader
>> > weblogic.servlet.jsp.JspClassLoader@c0cd51
>> > . . .
>> > [JspClassLoader@146b6a1] info AspectJ Weaver Version 1.6.9 built on
>> > Monday
>> > Jul 5, 2010 at 15:28:35 GMT
>> > [JspClassLoader@146b6a1] info register classloader
>> > weblogic.servlet.jsp.JspClassLoader@146b6a1
>> > . . .
>> > [JspClassLoader@1b52826] info AspectJ Weaver Version 1.6.9 built on
>> > Monday
>> > Jul 5, 2010 at 15:28:35 GMT
>> > [JspClassLoader@1b52826] info register classloader
>> > weblogic.servlet.jsp.JspClassLoader@1b52826
>> > . . .
>> > [JspClassLoader@1521eab] info AspectJ Weaver Version 1.6.9 built on
>> > Monday
>> > Jul 5, 2010 at 15:28:35 GMT
>> > [JspClassLoader@1521eab] info register classloader
>> > weblogic.servlet.jsp.JspClassLoader@1521eab
>> > . . .
>> > [JspClassLoader@1cdee1f] info AspectJ Weaver Version 1.6.9 built on
>> > Monday
>> > Jul 5, 2010 at 15:28:35 GMT
>> > [JspClassLoader@1cdee1f] info register classloader
>> > weblogic.servlet.jsp.JspClassLoader@1cdee1f
>> >
>> >
>> > Regards,
>> > - yohan chandra -
>> >
>> >
>> > _______________________________________________
>> > aspectj-users mailing list
>> > aspectj-users@xxxxxxxxxxx
>> > https://dev.eclipse.org/mailman/listinfo/aspectj-users
>> >
>> _______________________________________________
>> aspectj-users mailing list
>> aspectj-users@xxxxxxxxxxx
>> https://dev.eclipse.org/mailman/listinfo/aspectj-users
>
>
>
> _______________________________________________
> aspectj-users mailing list
> aspectj-users@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/aspectj-users
>