Maven
  1. Maven
  2. MNG-139

server definitions should be reusable - review use of repository IDs

    Details

    • Type: Task Task
    • Status: Closed
    • Priority: Major Major
    • Resolution: Incomplete
    • Affects Version/s: None
    • Fix Version/s: None
    • Labels:
      None

      Description

      currently if multiple projects use the same server for deployment, we are relying on inheritence to share the definition, or it must be copied. This applies similarly to the SCM connection and the dist/site management settings.

      It would be a good idea to be able to declare these elements in a deployed artifact.

      It may still be reasonable to do this through inheritence, but there is a chance we'll hit the need for multiple inheritence (because multiple projects inherit things from different sources), so we should enumerate the use cases and verify it.

      eg.
      A B
      / \ / \
      C D E

      Where A and B declare two different things that D uses both of, but which C and E desire only to inherit one of.

      This essentially using composition for some elements instead of inheritence.

        Issue Links

          Activity

          Transition Time In Source Status Execution Times Last Executer Last Execution Date
          Open Open Closed Closed
          3270d 23h 51m 1 Jason van Zyl 22/Jan/14 20:31
          Mark Thomas made changes -
          Workflow jira [ 12948835 ] Default workflow, editable Closed status [ 12988106 ]
          Mark Thomas made changes -
          Project Import Sun Apr 05 21:45:26 UTC 2015 [ 1428270326204 ]
          Mark Thomas made changes -
          Workflow jira [ 12711507 ] Default workflow, editable Closed status [ 12751398 ]
          Mark Thomas made changes -
          Project Import Sun Apr 05 08:49:45 UTC 2015 [ 1428223785911 ]
          Paul Benedict made changes -
          Fix Version/s Issues to be reviewed for 3.x [ 13145 ]
          Jason van Zyl made changes -
          Resolution Incomplete [ 4 ]
          Status Open [ 1 ] Closed [ 6 ]
          Hide
          Jason van Zyl added a comment -

          Please refer to https://cwiki.apache.org/confluence/display/MAVEN/The+Great+JIRA+Cleanup+of+2014 if you're wondering why this issue was closed out.

          Show
          Jason van Zyl added a comment - Please refer to https://cwiki.apache.org/confluence/display/MAVEN/The+Great+JIRA+Cleanup+of+2014 if you're wondering why this issue was closed out.
          Show
          Jason van Zyl added a comment - Please refer to https://cwiki.apache.org/confluence/display/MAVEN/The+Great+JIRA+Cleanup+of+2014
          Brett Porter made changes -
          Priority Trivial [ 5 ] Major [ 3 ]
          Brett Porter made changes -
          Summary server definitions should be reusable server definitions should be reusable - review use of repository IDs
          Fix Version/s 2.1 [ 13142 ]
          Fix Version/s 2.x [ 13145 ]
          Hide
          Brett Porter added a comment -

          still wanted, will write proposal for 2.2

          Show
          Brett Porter added a comment - still wanted, will write proposal for 2.2
          Jason van Zyl made changes -
          Fix Version/s 2.1.x [ 13142 ]
          Fix Version/s 2.1 [ 11704 ]
          Vincent Massol made changes -
          Workflow Maven [ 37411 ] Maven New [ 47569 ]
          Jason van Zyl made changes -
          Priority Critical [ 2 ] Trivial [ 5 ]
          Brett Porter made changes -
          Assignee Brett Porter [ brettporter ]
          Brett Porter made changes -
          Fix Version/s 2.1 [ 11704 ]
          Fix Version/s 2.0-beta-3 [ 12015 ]
          Brett Porter made changes -
          Link This issue depends upon MNG-401 [ MNG-401 ]
          Brett Porter made changes -
          Fix Version/s 2.0-beta-2 [ 11861 ]
          Fix Version/s 2.0-beta-3 [ 12015 ]
          Brett Porter made changes -
          Original Estimate 4h [ 14400 ]
          Fix Version/s 2.0-beta-2 [ 11861 ]
          Remaining Estimate 4h [ 14400 ]
          Fix Version/s 2.0-beta-1 [ 11040 ]
          Hide
          Brett Porter added a comment -

          scope is beyond what I was intending to implement - might push this back.

          One thing I'd like to do is eliminate the <id/> element in the repository definition, and instead store a unique key in the metadata at the root of the repository. That can be looked up once and retained, and used as the key for defining servers in settings.xml, ensuring consistency between environments, while still being portable across changing urls or different hostnames/redirects.

          Show
          Brett Porter added a comment - scope is beyond what I was intending to implement - might push this back. One thing I'd like to do is eliminate the <id/> element in the repository definition, and instead store a unique key in the metadata at the root of the repository. That can be looked up once and retained, and used as the key for defining servers in settings.xml, ensuring consistency between environments, while still being portable across changing urls or different hostnames/redirects.
          Hide
          Bob Allison added a comment -

          One place where problems can occur is using a mirror for codehaus while building m2. In the m2 top-level plugin, there is a repository named "snapshots" which points to "http://snapshots.maven.codehaus.org/maven2/" and a pluginRepository named "snapshots" which points to "http://snapshots.maven.codehaus.org/maven2/plugins". Creating a mirror of "snapshots" causes problems during the integration tests. The name used for the pluginRepository needs to be changed so it does not match the regular repository (that change allows the integration tests to succeed whether the pluginRepository is mirrored or not).

          Show
          Bob Allison added a comment - One place where problems can occur is using a mirror for codehaus while building m2. In the m2 top-level plugin, there is a repository named "snapshots" which points to "http://snapshots.maven.codehaus.org/maven2/" and a pluginRepository named "snapshots" which points to "http://snapshots.maven.codehaus.org/maven2/plugins". Creating a mirror of "snapshots" causes problems during the integration tests. The name used for the pluginRepository needs to be changed so it does not match the regular repository (that change allows the integration tests to succeed whether the pluginRepository is mirrored or not).
          Brett Porter made changes -
          Original Estimate 4h [ 14400 ]
          Remaining Estimate 4h [ 14400 ]
          Assignee Brett Porter [ brettporter ]
          Brett Porter made changes -
          Priority Major [ 3 ] Critical [ 2 ]
          Vincent Massol made changes -
          Workflow jira [ 30918 ] Maven [ 37411 ]
          Brett Porter made changes -
          Fix Version/s 2.0-beta-1 [ 11040 ]
          Environment
          Description currently if multiple projects use the same server for deployment, we are relying on inheritence to share the definition, or it must be copied. This applies similarly to the SCM connection and the dist/site management settings.

          It would be a good idea to be able to declare these elements in a deployed artifact.

          It may still be reasonable to do this through inheritence, but there is a chance we'll hit the need for multiple inheritence (because multiple projects inherit things from different sources), so we should enumerate the use cases and verify it.

          eg.
             A B
            / \ / \
           C D E

          Where A and B declare two different things that D uses both of, but which C and E desire only to inherit one of.

          This essentially using composition for some elements instead of inheritence.
          currently if multiple projects use the same server for deployment, we are relying on inheritence to share the definition, or it must be copied. This applies similarly to the SCM connection and the dist/site management settings.

          It would be a good idea to be able to declare these elements in a deployed artifact.

          It may still be reasonable to do this through inheritence, but there is a chance we'll hit the need for multiple inheritence (because multiple projects inherit things from different sources), so we should enumerate the use cases and verify it.

          eg.
             A B
            / \ / \
           C D E

          Where A and B declare two different things that D uses both of, but which C and E desire only to inherit one of.

          This essentially using composition for some elements instead of inheritence.
          Hide
          Brett Porter added a comment -

          consider or close this. we're butting up against some nastiness syncing id's at the moment.

          Show
          Brett Porter added a comment - consider or close this. we're butting up against some nastiness syncing id's at the moment.
          Brett Porter made changes -
          Field Original Value New Value
          Component/s design [ 11341 ]
          Brett Porter created issue -

            People

            • Assignee:
              Unassigned
              Reporter:
              Brett Porter
            • Votes:
              3 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development