diff options
Diffstat (limited to 'docs/developer/ajdt/ajdt.core.workitems.txt')
-rw-r--r-- | docs/developer/ajdt/ajdt.core.workitems.txt | 255 |
1 files changed, 0 insertions, 255 deletions
diff --git a/docs/developer/ajdt/ajdt.core.workitems.txt b/docs/developer/ajdt/ajdt.core.workitems.txt deleted file mode 100644 index 866931ff8..000000000 --- a/docs/developer/ajdt/ajdt.core.workitems.txt +++ /dev/null @@ -1,255 +0,0 @@ -This document details what needs to be done in ajdt.core and -shadows/org.eclipse.jdt.core to provide full integration with the eclipse -JDT model and to support AJDT. - -0) Unit testing -============================================================================= -0.1) Determine how we can write efficient and comprehensive unit tests for all -that follows given the difficult swizzling etc. involved in creating a working -plugin. - -1) Builder integration -============================================================================= - -This work package enables the building of AspectJ projects in batch and -incremental mode, with problems found during compilation reported back to the -tasks view. It also supports management of the Aspectjrt.jar classpath variable -for AspectJ projects. - -A new subclass of JavaBuilder, AspectJBuilder has been introduced. This -delegates to AjIncrementalImageBuilder and AjBatchImageBuilder to perform -builds. - -1.1) Basic builder support - builds from source only, outputs to project -specified output directories, problem reporting integration. - -1.2) Add support for inpath, outjar, aspectpath in building. - This task depends on IAspectJProject and implementation being able to - manage and persist AspectJ specific path elements (see 3). - 1.2.1) batch mode - 1.2.2) incremental mode (requires delta processing) - -1.3) Aspectjrt classpath variable - -2) Reconciling & structure building -============================================================================= - -This work package enables updating of structure based views as the contents of -an editor buffer is edited, and reporting of warnings and errors (early error -annotations) in the editor buffer. - -When a CompilationUnit is asked to build its structure, it creates a -CompilationUnitStructureRequestor which is fed structure information by a -SourceElementParser (see 4). It also creates a new CompilationUnitProblemFinder -(Compiler subclass) and compiles the unit with it to detect any problems. - -2.1) Determine how to build AjCompilerAdapter for CompilationUnitProblemFinders -(which are created outside of AspectJBuilder). This involves where and how -BcelWorld etc. are managed for the project. - -2.2) As changes are made in an editor buffer, a CompilationUnitResolver continually -compiles the source and reports problems. This is another compiler subclass, and -we also need to determine how to build an AjCompilerAdapter for it. - -3) Java Model Extension -============================================================================= - -This work package is a needed foundation for almost any UI function that works -with program structure or elements (e.g. to display AspectJ content in an -outline view). - -This requires the creation of AspectJ element interfaces in the IJavaElement -hierarchy, and then corresponding classes that implement them. - -3.1) In the package org.aspectj.ajdt.core : - -* IAspectJModelExtension (extends org.eclipse.jdt.core.IModelExtension) -* IAspectJElement (root interface for aspectj elements) -* IAjType (extends IType, adds isAspect() ) -* IAspect (extends IAjType) -* IAdvice -* IPointcut -* IDeclareErrorOrWarning -* IDeclareParents -* IDeclareSoft -* IInterTypeField -* IInterTypeMethod -* IAspectJProject - -3.2) In the package org.aspectj.ajdt.internal.core, for each interface above, -add SourceXXX and SourceXXXElementInfo classes. - -3.3) In the package org.aspectj.ajdt.core.jdom, add classes IDOMxxx for each -interface in 3.1., plus implementation classes and SimpleDOMBuilder extension. - -3.4) In the package org.aspectj.ajdt.internal.compiler.env, add an -IGenericXXX and ISourceXXX interface for each element in 3.1 (these are -implemented by the classes in 3.2). - -4) Source Element Parsing (Java Model creation) -============================================================================= - -This work package populates the structure model on which the outline views -etc. depend. - -4.1) Extend ISourceElementRequestor with AspectJ AST nodes - -4.2) Extend SourceElementParser to implement appropriate requestor callbacks - -4.3) The 5 implementors of ISourceElementRequestor need updating to do the -appropriate thing with AspectJ elements: - - * CompilationUnitStructureRequestor (for outline view etc.) - * SimpleDOMBuilder (used by portions of UI that generate - code - refactoring? what else?) - * SourceElementRequestorAdapter - * SourceIndexRequestor (used by indexer, for searching and - type hierarchy) - * SourceMapper (used when attaching source to a jar file) - -4.4) This seems to be the point at which we need to implement the -IExtensionFactory so that we can cleanly create Aj versions of the above -without polluting the JDT (see UI design of the same). - -5) DOM extensions -============================================================================= - -This work package enables the source code of an aspectJ program to be -modelled as a structured document. Which user-interface actions will be -broken without this??? (refactoring?) - -5.1) In the package org.aspectj.jdt.core.dom, add counterparts to the AspectJ nodes -already defined in org.aspectj.internal.compiler.ast (not needed first time -round?) -5.2) Extend IDocumentElementRequestor interface -5.3) Extend DocumentElementParser -5.4) Extend DOMBuilder -5.5) Extend DOMFactory -5.6) Add CreateAspectJXxxOperation classes - -6) Code completion / code assist -============================================================================= - -This work package enables Ctrl+Space in an editor to offer completions on -pointcut names, aspect names, and inter-type declared methods and fields. - -6.1) Extend ICompletionRequestor interface -6.2) Extend ICompletionRequestor implementors (there are 9, 7 of which are -anonymous inner classes) -6.3) Extend CompletionEngine with pointcut -6.4) Extend ISelectionRequestor with pointcut -6.5) Investigate changes to SelectionEngine -6.6) Extend CompletionKeyword family -6.7) Add CompletionOnPointcut -6.8) Investigate changes to CompletionParser and CompletionScanner classes -6.9) Investigate changes in AssistParser -6.10) Extend keywords in 'impl' package -6.11) Add SelectionOnxxx classes for AspectJ in 'select' package -6.12) Investigate changes to SelectionParser and SelectionScanner - -7) Type Hierarchy -============================================================================= -This work package enables the type hierarchy view to correctly display the -hierarchy for aspects. - -7.1) Override hierarchy methods in IAjType -7.2) Extend ChangeCollector -7.3) Extend TypeHierarchy -7.4) Extend HierarchyBinaryType - -8) ".aj" File extension -============================================================================= -This work package ensures that AJDT treats .java and .aj files as equivalent. - -8.1) update SuffixConstants class -8.2) update Util class - -9) Java Model inclusion -============================================================================= -This work package ensures that all types in pure Java projects are visible -inside the AspectJ model. - -Extend model generation logic to look at project that have either the -AspectJ nature, OR the Java nature. - -10) Class formatting and dissassembling -============================================================================= - -This work package enables 'editing' of a .class file to present a view that -is aware of AspectJ elements (rather than seeing the generated aj-synthetic -stuff etc.). - -(can be deferred for now) - -10.1) Make jdt.internal.compiler.classfmt aware of aj-synthetic -10.2) Make "" understand aj-attributes for pointcut, advice etc. -10.3) Extend Field and MethodInfo with isAjSynthetic() -10.4) Extend jdt.internal.core.util.Dissassembler for aspectj - -11) Quick-fix support -============================================================================= -This work package enables quick fix suggestions to be made for AspectJ elements. - -11.1) Extend ICorrectionRequestor interface -11.2) Update implementors (in UI) - -12) Code formatting -============================================================================= -This work package ensures that formatting AspectJ source doesn't mess up -pointcut declarations etc. - -12.1) Update implementation of DefaultCodeFormatter for AspectJ -12.2) Extend CodeFormatterVisitor - -13) Searching -============================================================================= -This work package enables searching for AspectJ elements in the search dialog -and APIs. - -13.1) Expand IJavaSearch constants for Aj -13.2) Expand SearchPattern for Aj -13.3) Changes to search algorithm required?? -13.4) Extend ReferenceInfoAdapter -13.5) Extend IIndexSearchRequestor with aj types -13.6) Extend IndexSearchAdapter with aj types -13.7) Extend AbstractIndexer with aj types -13.8) Extend BinaryIndexer with aj types -13.9) Extend IIndexConstants -13.10) Extend SourceIndexRequestor (see also 4.3) -13.11) Add xxxLocator and Pattern classes for aj elements? - -14) Sorting -============================================================================= -This work package enables the correct sorting of AspectJ program elements -when an outline view is set to 'sorted' mode rather than showing elements in -their declared order (I think!). - -14.1) Extend SortElementBuilder -14.2) Extend SortJavaElement - -15) Cross-references -============================================================================= -This work package enables the cross-reference view and visualiser to -correctly display the cross-cutting structure of an aspectj program. - -15.1) Create cross-reference map on batch build (1 map for whole workspace) -15.2) Maintain cross-reference map on incremental build -15.3) Add interfaces to retrieve cross-references for AspectJ elements -15.4) Implement IXReferenceProvider - -16) Name lookups -============================================================================= -I'm not sure what user interface features need this... - -16.1) Extend IJavaElementRequestor -16.2) Extend SelectionRequestor, SingleTypeRequestor -16.3) Investigate other implementors - -17) Version upgrade -============================================================================= -17.1) port to Eclipse 3.0 M9 -17.2) port to Eclipse 3.0 final - -18) JDT DEBUG -============================================================================= -18.1) Extend jdt.internal.debug.core.hcr.JavaParseTreeBuilder ?
\ No newline at end of file |