RE: [aspectwerkz-user] Speeding up roundtrip

"Khan, Atif (Matrix)" <[email protected]> Mon, 28 Nov 2005 09:44:03 -0500
Newsgroups gmane.comp.java.aspectwerkz.user
Message-ID <[email protected]>
I apologize for never following up on the previous thread. I would
definitely try to take out some time this week and send what I did.

 

Regards

Atif Khan

 

 

  _____  

From: Mattias Jiderhamn [mailto:[email protected]] 
Sent: Thursday, November 24, 2005 2:43 AM
To: [email protected]
Cc: Khan, Atif (Matrix)
Subject: RE: [aspectwerkz-user] Speeding up roundtrip

 

[Bringing an old thread to life again...]

Since we discussed this I have tried the other approach; trying to find out
why the online weaving is so slow. It was a bit hard since I'm not very used
to profiling and Alexandre has limited insight in our environment and
application.

Recently I also added Hibernate to the project, which adds to the reloading
time even furhter. Therefore I am now eager to try other alternatives.

Atif, could you post to the list the javac wrapper you were talkning about,
and an Ant file with usage example?
If it works for me, we can try to refine it and then contribute it to the AW
project.

In my dreams I would also like to create an IDE plugin, that does automatic
"post compile weaving" after compiling classes in IntelliJ.
But for now, an Ant task that only (compiles and) weaves changed classes
would be great.

Thanks in advance,

  Mattias Jiderhamn

At 2005-06-22 15:24, Khan, Atif (Matrix) wrote:



Let me clarify my environment a little.
 
My Eclipse IDE doesn't weave the classes using AspectWerkz. It uses a
separate directory for classes. We use ANT scripts to do out builds for
different environments and that's where we use Aspectwerkz and compile time
weaving.
 
Regards
Atif Khan

  _____  

From: Mattias Jiderhamn [ <mailto:[email protected]>
mailto:[email protected]] 
Sent: Wednesday, June 22, 2005 4:05 AM
To: [email protected]
Subject: RE: [aspectwerkz-user] Speeding up roundtrip

So your project still compiles against the weaved classes?
My experience is that I have to recompile all classes, or I will get
compilation errors.
But honestly, when I try to recreate this to post the error it works just
fine. I will get back to you if the problem reappears.

At 2005-06-21 16:56, you wrote:



I can definitely share this. I am just not sure how do I do that. Is this
something that I can contribute to the base of AspectWerkz?
 
I do not use a different output directory. So, I don't have to copy any
classes. Only the classes written to the text file by JAVAC task are weaved
by the AspectWerkzCTask.
 
Regards
Atif Khan

  _____  

From: Mattias Jiderhamn [ mailto:[email protected]
<mailto:[email protected]> ] 
Sent: Tuesday, June 21, 2005 10:12 AM
To: [email protected]
Subject: RE: [aspectwerkz-user] Speeding up roundtrip

Interresting. Is this something you would like to share?

Have you also made AspectWerkzC use a different output directory, or do you
make a copy of all the (modified) class files first, so that you don't have
to recompile all classes next time?

At 2005-06-21 15:13, you wrote:




We had the same issue. Our codebase is really big. So, what I did was to
override the "javac" ANT task to write the file list to a text file. Since
javac already checks for the timestamps, it only compiles the modified
classes. This way I have a list of only modified classes. I then extended
the AspectwerkzCTask to read the files from this text file and AOP compile
them. This way I don't have to weave the whole codebase evrytime. 

Regards 
Atif Khan 

-----Original Message----- 
From: Alexandre Vasseur [mailto:[email protected]
<mailto:[email protected]> ] 
Sent: Tuesday, June 21, 2005 7:04 AM 
To: [email protected] 
Subject: Re: [aspectwerkz-user] Speeding up roundtrip 

Hi 

... 

AspectWerkzC does not support writing to a different location. 
On the other hand you may be able to implement a wrapper that checks for
.class file timestamps to compile only modified files (then keep track of
the lastRun timestamp in some per project file)

Alex 

On 6/21/05, Mattias Jiderhamn <[email protected]> wrote: 
> Our application is big enough to require a few minutes of offline 
> weaving on my machine, so we use online weaving in development. On the 
> other hand, reloading the application in the web container using 
> online weaving isn't much better (say ½-1 minute). This makes 
> developing very slow, since the code-compile-test cycle has a lot of 
> weaving overhead. 
> 
> Is there any better way to do this? Can I have AspectWerkz weave only 
> modified classes offline? 
> If I weave the whole project and then try to compile in my IDE 
> (IntelliJ), I get compiler errors. Could I make AspectWerkzC output 
> the weaved files in a different directory, so that I can compile from 
> the IDE and then have AspectWerkz weave the modified classes only? 
> 
> Thanks in advance, 
>    Mattias Jiderhamn