Smarter import framework
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).
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
The extension point is org.eclipse.ui.ide.projectConfigurators from org.eclipse.ui.ide version 3.12/M6
See as example http://git.eclipse.org/c/e4/org.eclipse.e4.ui.git/tree/bundles/org.eclipse.e4.ui.importer.java/ for an implementation, only the extension point needs to be updated compared to this version.
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.
- Discuss on the e4-dev mailing-list
- Report bugs via https://bugs.eclipse.org/bugs/enter_bug.cgi?product=e4&component=UI . Add firstname.lastname@example.org as CC of this bug.
- Suggest patches with [Gerrit https://git.eclipse.org/r/#/admin/projects/e4/org.eclipse.e4.ui] . Add email@example.com as reviewer.