Maven
  1. Maven
  2. MNG-2293

maven-plugin-descriptor: Not possible to define a default implementation for a field defined by its interface

    Details

    • Type: New Feature New Feature
    • Status: Closed Closed
    • Priority: Critical Critical
    • Resolution: Fixed
    • Affects Version/s: 2.0.4
    • Fix Version/s: 2.0.5
    • Component/s: Sites & Reporting
    • Labels:
      None
    • Complexity:
      Intermediate
    • Testcase included:
      yes
    • Number of attachments :
      7

      Description

      MOJO-393 is about letting the user define an alternate configuration element, thus changing the way the webstart plugin works.

      For that the idea was to make the mojo field an interface, provide a default implementation in the plugin and let the user use plexus to instanciate a new implemenation.

      so for most users we would have:

      <configuration>
        <bla>
        </bla>
      </configuration>

      and for some:

      <configuration>
        <bla implementation="com....bla">
        </bla>
      </configuration>

      Unfortunately, today I am forced to specify the implementation in both cases. There's no way to inform the plugin to use the default implementation.

      The plugin.xml contains:

              <parameter>
                <name>bla</name>
                <type>...BlaInterface</type> <!-- that will fail -->
                 ...
              </parameter>

      I tried to use

       /**@parameter implementation="...BlaImplementation"*/
       BlaInterface bla;

      but that fails as well.

      Marking critical because it doesn't allow me add new features to the plugin without breaking the config.xml.

      1. dependency-mistery.log
        12 kB
        Jerome Lacoste
      2. it0106.tar.bz2
        2 kB
        Jerome Lacoste
      3. MNG-2293.diff
        20 kB
        Jerome Lacoste
      4. MNG-2293.diff
        27 kB
        Jerome Lacoste
      5. MNG-2293-plugins.diff
        1.0 kB
        Jerome Lacoste
      6. patch-MNG-2293.diff
        6 kB
        Jerome Lacoste
      7. patch-MNG-2293-source2.tar.bz2
        0.7 kB
        Jerome Lacoste

        Issue Links

          Activity

          Hide
          Jerome Lacoste added a comment -

          I don't get why it doesn't depend on the other issue as PLX-219 went
          into plexus alpha-10-SNAPSHOT. Could there be some local repository caching issue of
          some sort?

          Show
          Jerome Lacoste added a comment - I don't get why it doesn't depend on the other issue as PLX-219 went into plexus alpha-10-SNAPSHOT. Could there be some local repository caching issue of some sort?
          Hide
          Jerome Lacoste added a comment -

          I removed link to MNG-2352 as Kenney found out it wasn't dependent on it. Don't get it as PLX-219 made it in alpha-10. So maybe PLX-219 wasn't a blocker neither?

          Show
          Jerome Lacoste added a comment - I removed link to MNG-2352 as Kenney found out it wasn't dependent on it. Don't get it as PLX-219 made it in alpha-10. So maybe PLX-219 wasn't a blocker neither?
          Hide
          Jerome Lacoste added a comment -

          I believe this has not been properly fixed. I am now working on MWEBSTART-18 using maven 2.0.5 and maven doesn't add the default <implementation> to the generated plugin.xml file. Maybe my integration test was incorrect which led Kenney to think that MNG-2352 was not a blocker ?

          In the end, I think we need to make sure that the fix for PLX-219 is used by maven. Will try to trouble shoot the issue.

          Show
          Jerome Lacoste added a comment - I believe this has not been properly fixed. I am now working on MWEBSTART-18 using maven 2.0.5 and maven doesn't add the default <implementation> to the generated plugin.xml file. Maybe my integration test was incorrect which led Kenney to think that MNG-2352 was not a blocker ? In the end, I think we need to make sure that the fix for PLX-219 is used by maven. Will try to trouble shoot the issue.
          Hide
          Kenney Westerhof added a comment -

          Added a comment to MWEBSTART-18. I think the invalid use of 'implementation="$

          {....}

          " is what's causing this error.
          As far as I can see, the implementation attribute works properly in 2.0.5.

          Show
          Kenney Westerhof added a comment - Added a comment to MWEBSTART-18 . I think the invalid use of 'implementation="$ {....} " is what's causing this error. As far as I can see, the implementation attribute works properly in 2.0.5.
          Hide
          Dennis Lundberg added a comment -

          For this to work you also need new versions of maven-plugin-tools (2.1) and maven-plugin-plugin (2.3). I'm currently pushing to release theses on the dev list. If the votes go well they should be available within a week.

          Show
          Dennis Lundberg added a comment - For this to work you also need new versions of maven-plugin-tools (2.1) and maven-plugin-plugin (2.3). I'm currently pushing to release theses on the dev list. If the votes go well they should be available within a week.

            People

            • Assignee:
              Kenney Westerhof
              Reporter:
              Jerome Lacoste
            • Votes:
              1 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: