Article:
 |
|
Aspect-Oriented Programming and JBoss
|
| Subject: |
|
Logging and tracing code |
| Date: |
|
2003-05-29 14:22:58 |
| From: |
|
anonymous2
|
Response to: Logging and tracing code
|
|
All of those things (security, transactions, clustering) are all great, but any reasonable engineer is going to find a lot of things to be concerned about with this approach.
First, AOP is hacking the byte-code at runtime. This is a huge red flag that if it is really no problem needs to be addressed up front.
Second, can I debug it? Can I step through line by line as the method gets called and the aspects get invoked, then as the main body runs and the aspects are re-invoked, etc.
Third, has this technology ever been used IN PRODUCTION? We have heard a lot about AOP theory and example implementations from PARC, but what about real use on a web application has a healthy amount of tables and real business logic with transactional edge cases?
Plus there are possible interaction issues. What if my security aspect requires a database lookup within a nested transaction aspect? Will it find a read-lock table and go into deadlock?
|
Showing messages 1 through 1 of 1.
-
Logging and tracing code
2003-05-29 15:24:12
warjort
[View]
1) We have been "hacking" bytecode for a while
within jboss. How do you think we implement
abstract getters/setters for Entity beans?
It is a one time operation during classloading
or deployment.
Sun do it themselves in their
java.lang.reflect.Proxy implementation.
2) Try changing java to jdb in the examples.
Most good IDEs will let you filter packages
such as org.jboss.aop if you aren't interested
in the plumbing.
3) The byte code engineering, no.
But the aspect implementations are based
on tried and tested production code we have
been using in our EJB containers for a while.
We are bringing EJB to the POJO.
4) Would you really ask for a read-lock or
even use a transaction when checking a
user/password table?
In any case, security will be one of the first
aspects in the chain, you don't want people
starting transactions or wasting other
resources if they are not authorised to the
operation.
Regards,
Adrian