Community
Participate
Working Groups
The API analysis builder uses non-API methods/classes from JCore to determine the set of classes it needs to analyze in an incremental build. (See the ApiAnalysisBuilder class in the org.eclipse.pde.api.tools project for the disouraged accesses). It would be better for the builder to use public API if it could be made available. Basically, we need to be able to determine what classes are dependent on a given class file in terms of compilation (i.e. which classes need to be re-analyzed when change is made). Note that we also need to determine this when non-structural changes are made in addition to when structural changes are made. For example, changing java doc (changing an API restriction) requires the API analysis builder to run.
The complete list of references to internal JDT/Core code is: org.eclipse.jdt.internal.core.JavaModelManager getJavaModelManager() getLastBuiltState(IProject, IProgressMonitor) org.eclipse.jdt.internal.core.builder.ReferenceCollection internQualifiedNames(StringSet) internSimpleNames(StringSet) includes(char[][][] qualifiedNames, char[][] simpleNames, char[][] rootNames) org.eclipse.jdt.internal.core.builder.State getReferences() org.eclipse.jdt.internal.core.builder.StringSet StringSet(int) elementSize add(String) clear() org.eclipse.jdt.internal.compiler.util.SimpleLookupTable keyTable valueTable New tests org.eclipse.jdt.core.tests.builder.FriendDependencyTests have been added to keep track of these references.