[seam-dev] Javassist limitation?

Max Rydahl Andersen max.andersen at redhat.com
Tue May 20 02:38:19 EDT 2008


On Mon, 19 May 2008 20:40:40 +0200, Kabir Khan <kabir.khan at jboss.com> wrote:

> Yeah, you either need to do it when the bean class is first loaded
> (using the -javaagent switch), or as a post compilation step. What are
> you referring to wrt AspectJ?

I was just opposing that AspectJ should have some mystical voodoo power compared to 
javassist.

AFAIK the only way for AspectJ or javaassist to provide innerMethod calls to be proxied
is by controlling the classloader OR disallowing the new operator to be used and only
hand out instances via factories.

-max

> On 19 May 2008, at 19:34, Max Rydahl Andersen wrote:
>
>> On Mon, 19 May 2008 20:31:51 +0200, Kabir Khan
>> <kabir.khan at jboss.com> wrote:
>>
>>> From what Ales said, the problem is intercepting calls internally in
>>> an EJB without calling via the container.
>>> If you don't want to use a full AOP solution, then javassist can be
>>> used to replace calls by using the javassist.expr.ExprEditor class
>>
>>
>> IFF you have control over the classloader...right ?
>>
>> /max
>>
>>> On 19 May 2008, at 19:15, Ales Justin wrote:
>>>
>>>> Probably if you use aspectj and its extensions to the language, then
>>>> that needs to be compiled, possibly resulting in wanted behavior.
>>>>
>>>> I guess you could use javassist to push interception code into your
>>>> components - probably what we're doing with jboss aop and pre-weaved
>>>> code.
>>>>
>>>> CC-ing Kabir to clear things up. :-)
>>>>
>>>> Max Rydahl Andersen wrote:
>>>>> How can AspectJ do this without having control over the
>>>>> classloader ?
>>>>> AFAIK they have the exact same limitations.
>>>>> /max
>>>>>>> Seam uses javassist, but we use it to generate proxies not to
>>>>>>> instrument the
>>>>>>> code.
>>>>>> Yep, exactly what I was about to write in response. So essentially
>>>>>> we
>>>>>> are getting the same behavior as we would with a JDK proxy.
>>>>>>
>>>>>> So the decision for the future is to whether this is just the way
>>>>>> life
>>>>>> is going to be or whether we need to find a general approach to
>>>>>> allow
>>>>>> more fine-grained interceptor calls. I doubt that JBoss AOP is the
>>>>>> only library that solves this problem. I have no doubt the Spring
>>>>>> guys
>>>>>> will just love to kick us over this issue (given that AspectJ can
>>>>>> handle it). One response is that simplicity is better.
>>>>>>
>>>>>> -Dan
>>>>>>
>>>>> _______________________________________________
>>>>> seam-dev mailing list
>>>>> seam-dev at lists.jboss.org
>>>>> https://lists.jboss.org/mailman/listinfo/seam-dev
>>>
>>>
>>
>>
>>
>
> 






More information about the seam-dev mailing list