Geronimo
  1. Geronimo
  2. GERONIMO-2409

Provide config/module aliasing ability

    Details

    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.2
    • Fix Version/s: 1.2
    • Component/s: core
    • Security Level: public (Regular issues)
    • Labels:
      None

      Description

      It's sort of impossible to swap a basic configuration such as transaction with a substitute such as transaction-jta11: there are too many modules that depend on it that all have to be rebuilt just because you changed one name.

      To fix this we need some way to substitute one module (configuration) for another. We might aim for a function-based registry rather than a name based one, but that is more that I want to think about right now.

      I've done some simple experiments and it looks like some trivial changes in DefaultArtifactResolver, the car maven plugin, and an additional properties file in the server at least let you swap modules and get the server started. I expected that changes in the kernel gbean lookups and Configuration gbean lookups would be necessary as well, but I haven't needed them yet.

      I think the changes so far should be applied since they clarify the explicit version resolution code and enable at least some module swapping. I suspect we'll find out soon if more work is needed.

        Activity

        Hide
        David Jencks added a comment -

        rev 472213 added a client_artifact_aliases.properties file in boilerplate-j2ee so the client can swap stuff too.

        Show
        David Jencks added a comment - rev 472213 added a client_artifact_aliases.properties file in boilerplate-j2ee so the client can swap stuff too.
        Hide
        David Jencks added a comment -

        I'm still not entirely sure why this works but we haven't seen any problems yet.

        Show
        David Jencks added a comment - I'm still not entirely sure why this works but we haven't seen any problems yet.
        Hide
        Rick McGuire added a comment -

        It would be nice if this aliasing carried through to at least deploy start/stop. This would be very handy for applications where they have a dependency on a system module where there might be multiple choices (e.g., j2ee-corba, where there's a Sun ORB option or a Yoko ORB option). The artifact_aliases entry can identify the default by mapping j2ee-corba to one of the options, and the system administrator need only worry about starting/stopping the j2ee-corba module without needing to know which option was selected for use.

        Show
        Rick McGuire added a comment - It would be nice if this aliasing carried through to at least deploy start/stop. This would be very handy for applications where they have a dependency on a system module where there might be multiple choices (e.g., j2ee-corba, where there's a Sun ORB option or a Yoko ORB option). The artifact_aliases entry can identify the default by mapping j2ee-corba to one of the options, and the system administrator need only worry about starting/stopping the j2ee-corba module without needing to know which option was selected for use.
        Hide
        David Jencks added a comment -

        I've committed in rev 447920 enough to get my experimental jee5 servers to start, by changing only the artifact resolution code. I don't really see why it works yet: I expected we'd need similar code in Configuration and Kernel gbean lookup methods. I'm leaving this open until we find out if more work is needed.

        Show
        David Jencks added a comment - I've committed in rev 447920 enough to get my experimental jee5 servers to start, by changing only the artifact resolution code. I don't really see why it works yet: I expected we'd need similar code in Configuration and Kernel gbean lookup methods. I'm leaving this open until we find out if more work is needed.
        Hide
        Jeff Genender added a comment -

        +1...looks good to me

        Show
        Jeff Genender added a comment - +1...looks good to me
        Hide
        Joe Bohn added a comment -

        Not sure if voting still matters ... but here's my +1

        Show
        Joe Bohn added a comment - Not sure if voting still matters ... but here's my +1
        Hide
        David Jencks added a comment -

        Change the explicit version resolution to do module aliasing as well. This removes the ability to have a version for an entire groupId. I originally included this only because I was too lazy to write up an entire explicit_versions.properties for the entire server. Since Jason has made the car plugin automatically generate a complete explicit_versions file for each car, I think removing this functionality is a step forward.

        Show
        David Jencks added a comment - Change the explicit version resolution to do module aliasing as well. This removes the ability to have a version for an entire groupId. I originally included this only because I was too lazy to write up an entire explicit_versions.properties for the entire server. Since Jason has made the car plugin automatically generate a complete explicit_versions file for each car, I think removing this functionality is a step forward.

          People

          • Assignee:
            David Jencks
            Reporter:
            David Jencks
          • Votes:
            3 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development