[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[aspectj-dev] ajde implementation plans

There are a few things that still need to be implemented in AJDE for the 1.1
release, in priority order:

1. CROSSCUTTING STRUCTURE

Jim has done some of this already, but structure is still missing and some
elements are not showing up properly.  I will identify the items that still
need to be implemented or fixed and email aspectj-dev.  I'm considering this
my highest-priority implementation item.

2. BUILD OPTIONS

The following build options need to work: -injars, -aspectpath, and -outjar.
In addition the "Xlint" option settings should be supported.  I believe that
the best documentation for these options is in the 1.1 readme.  

Eclipse will be the first IDE client of these.  Adrian, I assume that you
and co will start hacking on them.  To add them take a look at the way that
the AjBuildConfig is created by the
org.aspectj.ajde.internal.CompilerAdapter.genBuildConfig method.  You need
to add the values for those options to the build config that's going to be
used for the compile.  

You could also expand the org.aspectj.ajde.BuildOptionsAdapter API to
understand the new options if you want to keep using that API and enable
other IDE extensions to use those options.  But I doubt that's high enough
priority to do at this point.

3. INCREMENTAL COMPILATION

At this point AJDE only does batch builds.  It's quick on smaller systems,
but it's not doing incremental builds.  You'll notice the following code in
on line 73 of org.aspectj.ajde.internal.CompilerAdapter.java:

if (firstBuild) {
  firstBuild = false;
  return buildManager.batchBuild(buildConfig, messageHandler);  
} else {
  // XXX incremental not implemented
  // return buildManager.incrementalBuild(buildConfig);
  return buildManager.batchBuild(buildConfig, messageHandler);
}

Which pretty much says it all.  But note that simply turning on
"incrementalBuild" won't work because some of the implementation in
"batchBuild" that CompilerAdapter relies on has to be present in
"incrementalBuild".  

Once (1) and (2) are done we should plan the implementation of incremental
building.

Regards,

Mik