Mike, it is fantastic to see such great progress on this!
Before we can apply this patch, we need all new files to have headers with the new license and Guillaume name should be in the @author tag. Assuming Guillaume don't mind the license change (but it would be good to confirm that), can you please update the patch for that?
I also wonder if you are interested to continue working on improving this feature to better fit into the m2eclipse code? For example, after very brief review of your code I have several suggestions and questions:
- first of all we really need basic tests to cover backend code (separate from the UI), see for example MavenBuilderTest and other tests in the org.maven.ide.eclipse.tests project
- I think it is better to use embedded maven runtime instead of spawning new JVM. It would allow to provide better error reporting, and will be faster. You can obtain embedder from MavenEmbedderManager and use MavenEmbedder.execute()
- what was the reason to create FileBrowser instead of directly using swt FileDialog? See for example, pom selection in the Maven launch configuration UI
- org.maven.ide.eclipse.internal.builder package is intended for the project builder and functionality you added there belong more to org.maven.ide.eclipse.internal.launch
- Util class is not intended for any UI code and similar functionality is available in the SelectionUtil class, which could be extended if needed
- deployment repositories can be retrieved from <distributionManagement>. Wizard should allow to select pom.xml where that section is declared (or pick it up from the selection wizard was started from), and also allow to specify repository manually.
Regarding wizard UI design:
- can you please elaborate on the reasons to allow to deploy to multiple repositories? Maven practice is that artifact should come from one repository
- I haven't looked at the implemented wizard UI, but from your description it sound like it only allow to deploy one artifact at a time. I think it worth to explore to have a list of artifacts (with add/remove buttons, similar to on from "materialize maven project" wizard). So, user can select multiple artifacts for import and also allow to edit their pom parameters. then list can be smart to identify that artifacts have classifier and simplify configuration.