LTW can also be beneficial if you want to weave into code that you
don't own and perhaps don't even know which jar it resides in.

F.e. weave into all subtypes of JDBC's PreparedStatement. You might
not know which JDBC driver will be used at deployment time. If you use
LTW, this won't be any problem but when the right class is loaded then
it is woven transparently.

/Jonas

On 11/8/06, Matthew Webster <[EMAIL PROTECTED]> wrote:

Virender,

I would add another item to Adrian's list:
* you don't own or control the aspects you are using and want to allow them and 
your application to evolve independently without the need to rebuild and 
redeploy your application. In some ways a woven application becomes a blob a 
bit like an (old fashioned) .exe file. If an aspect changes it may no longer be 
binary compatible with your application or may rely on new cross-cutting 
behaviour that was not implemented when originally woven. Yes you will need to 
retest the application but not rebuild it. You may like to look at the Aspects 
Equinox Incubator 
(http://www.eclipse.org/equinox/incubator/aspects/getting_started.php211) where 
we are looking at this whole issue by exploiting OSGi dependencies and 
versioning.

As well as being a little old (pre-AspectJ5) the article you refer to is 
perhaps not the best guide to choosing LTW over another weaving phase in that 
it is making the case for built-in JVM aspect weaving. I support this effort in 
the long run but even if implemented in the JVM aspect weaving will still incur 
an overhead both in footprint and pathlength. You must therefore select LTW for 
the same reason you choose late binding and even JIT compilation in Java: 
flexibility and portability.

Matthew Webster
 AOSD Project
 Java Technology Centre, MP146
 IBM Hursley Park, Winchester,  SO21 2JN, England
 Telephone: +44 196 2816139 (external) 246139 (internal)
 Email: Matthew Webster/UK/IBM @ IBMGB, [EMAIL PROTECTED]
 http://w3.hursley.ibm.com/~websterm/213



 Adrian Colyer <[EMAIL PROTECTED]>
Sent by: [EMAIL PROTECTED]

08/11/2006 10:11

Please respond to
 [EMAIL PROTECTED]


To [EMAIL PROTECTED]

cc


Subject Re: [aspectj-users] Post-compile Weaving Vs Load-time Weaving








In general you build an application once, and run it many times. Load-time 
weaving means you pay the cost of weaving every time your application launches. 
If you do post-compile time weaving as part of your build process, then there 
will be no overhead at runtime and your application will start faster and use 
less memory. So I would always opt for post-compile time weaving unless:

* you need the flexibility of changing the set of aspects you are using from 
run to run
* you are using the aspects for temporary instrumentation (e.g. using Glassbox) 
- this is really a special case of the above
* you just want to try things out quickly and don't want the hassle of changing 
your build process

Load-time weaving can also sometimes be beneficial in speeding up certain 
development scenarios. In general however, why do at runtime what you could 
easily have done ahead of time...

Regards, Adrian.


On 8 Nov 2006, at 10:00, [EMAIL PROTECTED] wrote:


 Hi,

 I was analysing whether one should go for Post-compile weaving or Load-time 
weaving. I read on the bea site 
(http://dev2dev.bea.com/pub/a/2005/08/jvm_aop_1.html219) that Load-time weaving 
(using agents) affects both scalability and usability. Are these issues of 
scalability and usability applicable to post-compile weaving as well?

 Any help on the technical advantage of one over another would be highly 
appreciated.

 Thanks,
 Virender Singh,
 Consulting and Architecture Team,
 HSBC GLT, Pune , India


 ************************************************************
 HSBC Software Development (India) Pvt Ltd
 HSBC Center Riverside,West Avenue ,
 25 B Kalyani Nagar Pune  411 006 INDIA

 Telephone: +91 20 26683000
 Fax: +91 20 26681030
 ************************************************************

 ________________________________





 *******************************************************************
 This e-mail is confidential. It may also be legally privileged.
 If you are not the addressee you may not copy, forward, disclose
 or use any part of it. If you have received this message in error,
 please delete it and all copies from your system and notify the
 sender immediately by return e-mail.

 Internet communications cannot be guaranteed to be timely,
 secure, error or virus-free. The sender does not accept liability
 for any errors or omissions.
 *******************************************************************
 "SAVE PAPER - THINK BEFORE YOU PRINT!"
_______________________________________________
aspectj-users mailing list
[EMAIL PROTECTED]
https://dev.eclipse.org/mailman/listinfo/aspectj-users221
_______________________________________________
 aspectj-users mailing list
 [EMAIL PROTECTED]
 https://dev.eclipse.org/mailman/listinfo/aspectj-users223


_______________________________________________
aspectj-users mailing list
[EMAIL PROTECTED]
https://dev.eclipse.org/mailman/listinfo/aspectj-users225






--
Jonas Bonér

http://jonasboner.com
_______________________________________________
aspectj-users mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/aspectj-users

Reply via email to