7 Replies Latest reply on Aug 5, 2016 3:53 AM by Matous Jobanek

    A new name and API for MavenImporter

    Matous Jobanek Novice

      Hi all,

       

      after some time, I'm reopening the issue related to renaming of MavenImporter class. There where some discussions around that on Jira [1], GitHub [2] and on Andrew's Twitter [3]. However, there was no agreement on the name. Additionally, I think that subsequently the whole API should change as well and that hasn't been solved either.

       

      First of all I'd like to ask you:

      Does anyone use this feature (MavenImporter) or is interested in it? I want to find out whether the effort of renaming/refactoring and maybe some additional implementation would be worth it...

       

       

      My proposals:

      Having considered all the suggestions and approaches I'm proposing three options (the first one is my favorite :-)):

       

      1)

       ShrinkWrap.create(ArchiveMavenAssembler.class, "archive.war")
              .configuredFromFile("/path/to/settings.xml")    
              .usingPomFile("/path/to/pom")            
              .withBuildOutput()
              .withTestBuildOutput()
              .withDependencies()                
              .as(WebArchive.class)    
      
      

      2)

      ShrinkWrap.create(ArchiveMavenAssembler.class)
              .configuredFromFile("/path/to/settings.xml")
              .usingPomFile("/path/to/pom")            
              .addBuildOutput()
              .addTestBuildOutput()
              .addDependencies()        
              .produce(WebArchive.class, "archive.war");    
      

       

      3)

      ShrinkWrap.create(ArchiveUsingMaven.class, "archive.war")
              .withMavenConfiguredFromFile("/path/to/settings.xml")
              .withPomLoadedFromFile("/path/to/pom")            
              .addBuildOutput()            
              .addTestBuildOutput()
              .addDependencies()        
              .as(WebArchive.class);        
      

       

       

      Do you like it or do you hate it? Please tell me what you think...

       

      I guess that EmbeddedGradleImporter should be renamed as well. Too keep the names consistent I would choose ArchiveGradleAssembler (ArchiveUsingGradle). The API could be the same as it is now except for methods "importBuildOutput" - they would be renamed analogically.

       

      The current implementation (API) will be kept till next major release and marked as "@Depracated".

       

      [1] https://issues.jboss.org/browse/SHRINKRES-132

      [2] https://github.com/shrinkwrap/resolver/pull/49

      [3] https://twitter.com/ALRubinger/status/360141924742606848

       

       

      Thank you

      Matous