|
View:
New views
2 Messages
—
Rating Filter:
Alert me
|
|
|
Faster incremental weavingHi,
I am evaluating the use of AspectJ in project that contains more than 2500 java source files. The project uses a complex ant build file that does a lot of different stuff (like creating and signing applet jars, pre-compiling jsps, jarjar some external libs etc). The same build process is used by around 20 developers, QA and release staff. As a lot of people run the build process several times a day, any change in build process that introduces large delays will not be acceptable. I have tried iajc ant task with "incremental" option. But the interactive nature of this process doesn't appear to be what I need. For example, when QA person receives a couple of java source files and a jsp, s/he needs to run the complete build process so classes are compiled and jsp gets copied to correct location. So waiting with an interactive prompt for incremental compilation won't work unless we run build process from two console windows simultaneously. Our current intended use of AspectJ is simple. Something along the line of advising methods marked with a custom annotation. I was wondering whether it makes sense to write a custom APT processor to weave only the classes that get recompiled by javac ant task? I understand that this setup will work correctly in very limited scenarios but still would like to explore this option. Any suggestions? Regards Tahir Akhtar _______________________________________________ aspectj-users mailing list aspectj-users@... https://dev.eclipse.org/mailman/listinfo/aspectj-users |
|
|
Re: Faster incremental weavingHi Tahir,
I don't particularly like the incremental ajc task and, yes, it works by behaving as a long running process. The incremental state needs to be held in memory between compiles. This could be held on disk and the task not require a long running process but I don't think we'll be tackling that in the 1.6.X timeframe. > Our current intended use of AspectJ is simple. Something along the line of > advising methods marked with a custom annotation. > I was wondering whether it makes sense to write a custom APT processor to > weave only the classes that get recompiled by javac ant task? > I understand that this setup will work correctly in very limited scenarios > but still would like to explore this option. I've not done that myself but it sounds like it would work. If the aspects change you'll of course need a bigger build, but if just a few simple files change that are affected purely by advice, I don't see why they cannot be woven 'standalone'. The act of advising a type should not cause its public interface to change (new/changed/removed methods/fields) and so it shouldn't cause you to need to recompile other types based on the weaving. Andy 2009/6/15 Tahir Akhtar <tahir@...>: > Hi, > I am evaluating the use of AspectJ in project that contains more than 2500 > java source files. > The project uses a complex ant build file that does a lot of different stuff > (like creating and signing applet jars, pre-compiling jsps, jarjar some > external libs etc). > The same build process is used by around 20 developers, QA and release > staff. As a lot of people run the build process several times a day, any > change in build process that introduces large delays will not be acceptable. > > I have tried iajc ant task with "incremental" option. But the interactive > nature of this process doesn't appear to be what I need. For example, when > QA person receives a couple of java source files and a jsp, s/he needs to > run the complete build process so classes are compiled and jsp gets copied > to correct location. So waiting with an interactive prompt for incremental > compilation won't work unless we run build process from two console windows > simultaneously. > > Our current intended use of AspectJ is simple. Something along the line of > advising methods marked with a custom annotation. > I was wondering whether it makes sense to write a custom APT processor to > weave only the classes that get recompiled by javac ant task? > I understand that this setup will work correctly in very limited scenarios > but still would like to explore this option. > > Any suggestions? > > Regards > Tahir Akhtar > > > _______________________________________________ > aspectj-users mailing list > aspectj-users@... > https://dev.eclipse.org/mailman/listinfo/aspectj-users > aspectj-users mailing list aspectj-users@... https://dev.eclipse.org/mailman/listinfo/aspectj-users |
| Free embeddable forum powered by Nabble | Forum Help |