I'm looking for a Java library/framework that will allow me to build RCP applications which have rich editor like user facing features (think Eclipse, Netbeans, IntelliJ) The following features should be handeled out of the Box:
- I should be able to create views in my Code (tool windows), when such a window is opened it should be possible for the user to dock it to the sides of the main window and stack multiple tool windows in tabs between which the user can change. Undocked Views should also be possible
- I should be able to define "actions" in my Code (for example: "Save file") this action should appear in a user configurable menu and on a toolbar, the user should be able to rearrange the toolbar at will.
- I should not need to deploy modules to the framework. Meaning I don't want to build "jar" files and drop them somewhere. Rather I'd like to be able to start my application directly from a main class which will then detect my modules added to it in some way (service discovery?) this should allow me to create a single jar containing my application AND the framework, also it should allow me to directly start and debug the application from an IDE without requiring remote debugging
Features 1 and 2 are provided by the Netbeans Platform and Eclipse RCP however both require deploying things (Eclipse supports loading of unjarred modules which is nicer but still not great - I can't build a single jar of the final product) as far as I can tell Netbeans does not even support loading of unjarred modules.
What are my options?
Edit: the "running from ide without building jars" aspect of the deployless setup is what I'm looking for mostly, Eclipse kind of allows that but only when also using Eclipse as the IDE to develop the application (as the Eclipse Plugin build system is.. Strange). Generally when having to deploy modules to some system it takew much longer to see the code changes in action. -> turnaround time for play framework or embedded jetty are much lower than for websphere for example. I would like a fast and hassle free development -> running app process ideally using a modern build system (maven, gradle, sbt?) and intellij as IDE. Building Eclipse plugins using maven unfortunately is not smooth.