You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@beehive.apache.org by Carlin Rogers <ca...@gmail.com> on 2007/08/17 23:23:12 UTC

Change to the FlowControllerChecker in the NetUI annotation processor

Hi All,

I'd like to make a change to the FlowControllerChecker to improve
compile/build performance in the NetUI AP by creating an optional
compile flag that could be used to bypass a costly call to
PackageDeclaration.getClasses().

I've done some profiling and noticed that the method
checkForOverlappingClasses() in FlowControllerChecker can be very
expensive for building certain applications in Eclipse. This routine
checks for a another page flow controller in the same package. When
the FlowControllerChecker runs, it asks for all the classes in its own
package to check if there's a second page flow in that same package.
APT searches for classes across the entire classpath and includes any
libraries as well as src directories in the project. The more packages
there are in the libraries and project src, the more costly this
operation becomes. A full clean build in a web project becomes...

for each page flow package
	for each jar on classpath and src folder on the src path
		get all of the classes in the package

We can't really change the program flow of APT so it would be great to
make this particular check optional.

An IDE can help users from creating multiple Controllers in the same
src directory helping safeguard against having another page flow in
the same package. Providing an APT compile option for the NetUI AP
would allow a build configuration that could get a significant
performance gain for a desired application.

If there are no objections to this work, I'll open an enhancement in
JIRA and get this in.

Thanks,
Carlin