Project Plan For AJDT - AspectJ Development Tools Project, version 2.0

Introduction

AJDT released 2.0.0 to coincide with Eclipse's Galileo release in late June. There are two streams, of this version, one for Eclipse 3.4, with version 2.0.0.e34x-*, and one for Eclipse 3.5 with version 2.0.0.e35x-*. These two streams are maintained as separate branches in CVS. Because of AJDT's tight integration with JDT, the Eclipse 3.4 stream will not install in Eclipse 3.5 and vice versa. Excepting these differences, the two streams use the same code base and have the same feature set. The recent 2.0.1 release is the last scheduled version targeting the Eclipse 3.4 stream. There will be no more changes to this stream unless a critical bug is discovered and fixed. We are planning to release an AJDT version for the Eclipse 3.6 stream to coincide with the Helios release in June 2010, and we will begin to release development snapshots of this stream in early 2010.

Release Deliverables

AJDT includes 6 plugins from two other EPL Eclipse.org projects:

  • The AspectJ project contributes three plugins. These plugins are org.aspectj.runtime , which contains the AspectJ runtime, org.aspectj.ajde , which contains AspectJ support for integrating with a development environment, and org.aspectj.weaver , which contains the AspectJ weaver and compiler.
  • The Equinox Aspects project , part of the Eqinox Incubator also contributes three plugins. These are org.eclipse.equinox.weaving.aspectj , which contains the equinox weaving service, org.eclipse.equinox.weaving.hook , which contains the OSGi framework extension for the weaving service to plug in, and org.eclipse.equinox.weaving.source , which contains Equinox Aspects source code.

Table of Contents

Release Milestones

Service releases of AJDT are released on an approximately 3 month schedule.
2.0.201/05/2010
Service refresh of AJDT for the 3.5 stream
2.0.303/20/2010
Service refresh of AJDT for the 3.5 stream. First stable development release targeting Eclipse 3.6. This is meant for early adopters, specifically for those at EclipseCon. The 3.5 and 3.6 streams will be largely similar although some functionality in the 3.6 may not be available yet.
2.0.406/30/2010
First public release of the 3.6 stream and service refresh of the 3.5 stream.
2.0.409/30/2010
Final scheduled release of the 3.5 stream and service refresh of the 3.6 stream.

Table of Contents

Target Environments

AJDT 2.0.0.e34x-* requires Eclipse 3.4 and AJDT 2.0.0.e35x-* requires Eclipse 3.5. As such, AJDT has the same JRE requirements as Eclipse.

Internationalization

English language bundles are available for many AJDT messages, but they have not been translated.

Table of Contents

Compatibility with Previous Releases

ADJT versions are designed to be backwards compatible with older versions of the same stream. However, since different streams run on different Eclipse versions, there is no compatibility between streams, even though the feature sets are largely the same.

Table of Contents

Themes and Priorities

Our current focus is three-fold: Intertype declaration support, IDE support for load-time weaving, and crosscutting model support across projects and binaries. These themes are generated from user requests in the community. As such, we want to maintain flexibility and put effort into new themes if they are coherently generated from the community.

Intertype Declaration support (ITD)

Third party projects such as ROO are pushing the limits of ITD functionality both in the compiler and the editor. Since this is a highly visible project with many potential users, we would like to encourage its adoption by facilitating the ITD editor support that it requires. This include facility for ITD-aware content assist, reconciling, refactoring, searching and navigation.

  • Committed
    • [plan] [itd] [jdt-weaving] [editor] ITD-aware eager parsing and reconciling [255848] (target milestone: 1.6.4)
    • [itd] [plan] [jdt-weaving] [completion] ITD aware content assist for .java files [258577] (target milestone: 1.6.4)
    • [plan] [itd] [content assist] ITD aware content assist does not filter out inaccessible ITDs [272547] (target milestone: 2.0.0)
    • [plan] [itd] Hyperlinking to ITD declarations [273334] (target milestone: 2.0.0)
    • [plan] [itd] declare parents and implements/extends problem [273914] (target milestone: 2.0.0)
    • [plan] [refactoring] [itd] push-in refactoring for removing ITDs [274608] (target milestone: 2.0.0)
    • [plan] [itd] [jdt-weaving] [completion] Content assist should include declarations from ITDs [252696] (target milestone: 1.6.4)
  • Proposed
    • [plan] [itd] [jdt-weaving] ITD Aware type hierarchies [256312] (target milestone: 2.0.2)
    • [plan] [reconciling] [content assist] [itd] ITD fields on interfaces cannot be referenced outside of the aspect that declares them [262969] (target milestone: 2.0.2)
    • [plan] [itd] indexing of ITD declarations [273335] (target milestone: 2.0.2)
    • [plan] [itd] Hyperlinking to ITD declarations [273334] (target milestone: 2.0.0)
    • [plan] [itd] declare parents and implements/extends problem [273914] (target milestone: 2.0.0)
    • [plan] [refactoring] [itd] push-in refactoring for removing ITDs [274608] (target milestone: 2.0.0)

IDE support for Load Time Weaving (LTW)

Currently, aspects applied to a project through LTW are not visible in the editor in the standard ways that compile time aspects are. These include gutter annotations and entries in the crosscutting view. Because there is no editing support, using LTW can be time consuming and error-prone. We will explore ways to gather and display LTW information to the programmer while editing.

  • Committed
    • No items.
  • Proposed
    • [plan] [ltw] aspectj_1_5_0.dtd is missing from aspectjweaver [130134] (target milestone: 2.0.2)
    • [plan] [ltw] Cannot use concrete-aspect with LTW launcher [131728] (target milestone: 2.0.2)
    • [plan] [LTW] Simplify the creation of aspect bundles [138207] (target milestone: 2.0.2)
    • [plan] [LTW] improvements to load-time weaving tools [260342] (target milestone: 2.0.2)
    • [plan] [LTW] Utilize the reusable Aspect matcher in the weaver bundle to show crosscutting relationships for LTW [265029] (target milestone: 2.0.2)

Crosscutting model support across projects and binaries (model)

Provide support for navigation and across the aspect path and in path.

  • Committed
    • [handles] [plan] Odd behavior in cross references view [263666] (target milestone: 2.0.0)
    • [plan] [linked folders] [handles] Cross reference view does not show joinpoints for projects with linked source folders [270202] (target milestone: 2.0.0)
    • [plan] [handles] ITD target types on in path [271269] (target milestone: 2.0.0)
    • [plan] [handles] [linked folders] Program element handles are not correct for linked source folders [253555] (target milestone: 2.0.0)
  • Proposed
    • [plan] [handles] Support Advice relationships in the crosscutting model on the inpath [273086] (target milestone: 2.0.2)
    • [plan] [handles] Show inverse relationships of elements on the aspect/inpath to the element in the current project that it relates to [273087] (target milestone: 2.0.2)

Table of Contents