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

E4/UI/Smart Import

< E4‎ | UI
Revision as of 02:39, 23 March 2015 by Mistria.redhat.com (Talk | contribs) (Get it)

Smarter import framework

Purpose

Currently, when importing a project, users are facing the difficult choices of What project they're importing and How to import it. The various technologies involved in a project can easily be detected by some automated check, such as presence of some file, some content in a file, some files with some extension. The purpose of the framework is to use such interesting data to automatically detect what is a project and automatically configure it as best, with very minimal effort from user.

This is targeting all users, not only newbies, since the diversity of technologies become something that affect all developers. A regular project can easily blend half a dozen "structuring" technologies (programming languages, build and dependencies management tools, frameworks...).

Since projects are also modular, and that a real-life project is actually a set of Eclipse projects, the framework also does its best to detect the various modules, by crawling the source tree and reporting some directories as Eclipse projects when they have strong enough markers (pom.xml, MANIFEST.MF and other files that make it sure a given folder is an Eclipse project).

Get it

Description p2 repo URL Source Comment
Framework + JDT & PDE extensions http://download.eclipse.org/e4/snapshots/org.eclipse.e4.ui http://git.eclipse.org/c/e4/org.eclipse.e4.ui.git/ bundles/org.eclipse.e4.ui.importer*
EGit integration http://download.eclipse.org/egit/updates-nightly http://git.eclipse.org/c/egit/egit.git/tree/org.eclipse.egit.ui.importer Additional EGit clone/import wizard delegating to Smart Import. Since version 4.0
JBoss Tools Playground (Maven, JSDT, WTP, THyM) extensions http://download.jboss.org/jbosstools/builds/staging/jbosstools-playground_master/all/repo/ https://github.com/jbosstools/jbosstools-playground plugins/org.jboss.tools.easymport* This is meant to be moved to individual projects

Extensions in JBoss Tools Playgroundare moving to their related projects (JSDT, WTP, EGit...) and will be listed there as they get available for installation

UI entry points

This new framework has 3 main entry points so far:

  • One is a Import project(s) from Folder... under the file menu. This menu entry is inspired by the "Open Project"
  • Another is in the Import wizard, under the General category: Local folder as project(s) into workspace
  • If you have installed EGit extension, there is also another EGit Import wizard that instead of asking user to select how to import working directory will delegate it to this import framework

Add support for a new project type

See as example http://git.eclipse.org/c/e4/org.eclipse.e4.ui.git/tree/bundles/org.eclipse.e4.ui.importer.java/

In plugin.xml define an extension for your project type. Don't forget to add a good activeWhen expression in order to avoid useless loading of some bundles affecting IDE performances. Then implement a ProjectConfigurator. Project Configurator will be responsible for doing fine-grained checks on the imported working directory and decide whether some directory must become an Eclipse project (method shouldBeAnEclipseProject), whether it can contribute to the configuration of an Eclipse project (method configure) and then what to do to configure the project.

Contribute

Back to the top