Women in Technology

Hear us Roar



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?

Main Topics Oldest First

Showing messages 1 through 1 of 1.

  • Logging and tracing code
    2003-05-29 15:24:12  warjort [View]

    A healthy sceptic :-)

    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