Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Extending JDT For Java Like Languages"

m
(Stakeholder languages: update link to reflect move to Eclipse.org)
Line 12: Line 12:
 
# Groovy [http://groovy.codehaus.org/Eclipse+Plugin Groovy-Eclipse]
 
# Groovy [http://groovy.codehaus.org/Eclipse+Plugin Groovy-Eclipse]
 
# Scala [http://www.scala-lang.org/node/94 ScalaIDE]
 
# Scala [http://www.scala-lang.org/node/94 ScalaIDE]
# Object Teams [http://www.objectteams.org/distrib/otdt.html Object Teams development tooling]
+
# Object Teams [[Object Teams Development Tooling]]
 
# JavaFX [http://javafx.com/docs/gettingstarted/eclipse-plugin/ JavaFX Eclipse plugin]
 
# JavaFX [http://javafx.com/docs/gettingstarted/eclipse-plugin/ JavaFX Eclipse plugin]
 
# [http://users.encs.concordia.ca/~dsrg/main/projects/jmleclipse/ JmlEclipse]
 
# [http://users.encs.concordia.ca/~dsrg/main/projects/jmleclipse/ JmlEclipse]

Revision as of 16:46, 26 October 2010

The Java Development tools provide a high quality development experience when working with pure Java code. However, Java-like languages (languages such as Groovy and Scala that compile to Java byte code and run on the JVM) are not supported directly in JDT. The rising popularity of these languages means that there is a push to provide the same quality of tool support for them as is available for Java. Furthermore, there is an expectation that tooling can support mixed langugage code-bases.

Currently, there are a patchwork of solutions for JDT's lack of extensibility, but there is a large amount of duplication between solutions and some solutions are incompatible.

On this page, we will sketch out the general requirements for tooling for these kinds of languages. There is a large amount of overlap of required functionality between all these languages, but there is also some that is specific to individual languages. There is no expectation that all of the suggestions on this page will be adopted into JDT, but there is a hope that some of these suggestions can be distilled down into a viable patch that can considered for inclusion in future versions of JDT.

Stakeholder languages

There are currently several Java-like languages that use various methods for providing Eclipse-based tools that extend JDT:

  1. AspectJ AJDT
  2. Groovy Groovy-Eclipse
  3. Scala ScalaIDE
  4. Object Teams Object Teams Development Tooling
  5. JavaFX JavaFX Eclipse plugin
  6. JmlEclipse

These tools either use AOP to weave into JDT in order to open up extensibility, or they ship with a feature patch on JDT core.

Over time, there is an expectation that this list will be growing as there is a push for stronger tool support for more JVM languages.

General areas of extensions

TODO: What are the general pieces that require extensibility?

Existing Solutions

TODO: Describe existing solutions and catalogue extensibility points, eg- aspects and patches

Open issues against JDT by stakeholder

Groovy-Eclipse

  1. Change to JUnit creation wizard: https://bugs.eclipse.org/bugs/show_bug.cgi?id=312204

Back to the top