Eclipse Project Import implementation
This page tracks implementation of EclipseProjectImportOnePager.
Some background in EclipseProjectSupport.
UI review: EclipseProjectImportUIReview
- Jesse Glick - core code
- David Konečný - core and Java EE-related code
- Jakub Franc - user research
- Mikhail Kondratyev, Maksim Khramov - testing
Three new modules created in trunk:
If you open these in the IDE, set projectimport.eclipse.core as the main project and click Debug to test the functionality.
- M1 - (P1) Everything that worked in 6.1 should continue to work.
- (P3) Ability to open a project directly from Open Project rather than going through File > Import Project (or New Project).
rejected at least for 6.5
- M2 (P3) Run configurations (for main classes) should be imported. JesseGlick
(Not currently supported in NB web projects but could be.)
- M1 (P2) Source tree includes and excludes should be imported.
- M2 - (P3) Implement source tree includes and excludes for web projects.
- M1 - (P1) Unit test roots should be imported and treated as tests.
- M2 - (P1) Should be possible to resynchronize metadata (at least classpath) from Eclipse -> NetBeans at any time.
- M2 - (P2) Desirable to do so automatically (or offer to do so when applicable) upon opening the project, rather than forcing user to select a special menu item.
- M2 - Could be done from File > Import Project > Resynchronize Eclipse
- M2 - Resynchronize whole workspace rather than individual projects
- Automatically synchronize when .classpath is noticed to be modified?
- M2 - (P2) Should avoid clobbering customizations made in NetBeans; either skip over such properties or prompt the user whether to clobber or skip.
- M2 - (P3) Desirable to merge customizations made to complex properties such as the classpath, i.e. recreate classpath items picked up from Eclipse's .classpath while retaining extra items added in NetBeans.
- (P2) Would be nice to offer to selectively push NB customizations back to Eclipse metadata, where this can be done safely and accurately.
- M1 (P1) Eclipse transitive dependencies "flattened" into NetBeans dependencies.
- M1 (P1) Europa/Ganymede (WTP) web projects should be imported in basic form. DavidKonecny
- M2 - (P2) JPA support.
- (P3) Import of Spring facet.
- (P3) Hibernate
- M2 - (P2) JSF
- M2 (P1) Compiler options imported (where available in javac).
- (P3) Import of Java EE server configuration. DavidKonecny
- M1 (P3) Import of JDK configuration.
- M1 (P1) Can import external source folder links.
- M1 (P2) Eclipse "artificial" variables used to define file/folder locations imported as NB variables.
- M2 - (P2) Detect unsupported configs and list them to user at the end of import wizard
There is no plan to provide Java ME functionality in Eclipse projects. Anyway ME applications are usually small enough that they can be created from scratch (so cross-IDE support is less of a concern), and NetBeans is probably the best IDE for ME development to begin with (so we would be attracting fewer users).
Not all IDE setup may be imported; for example, Java EE server configuration might not translate well.
Eclipse projects are usually contained in a workspace, which defines additional metadata, such as defaults for project settings, or locations of libraries. It is sometimes useful to open "naked" projects, as these can sometimes be found e.g. in popular open-source projects. Nevertheless, the core use case of this feature is to open projects found in a workspace. Naked projects may lack important metadata that would improve accuracy of the import.
Various details of Eclipse projects simply do not map precisely to NetBeans projects. For example:
- different source roots in a project may have different include/exclude lists in Eclipse but not in NetBeans
- many Eclipse compiler flags are not available for javac
More significant aspects of project configuration which fail to be imported will be noted as "problems" in the import wizard.