Uploaded image for project: 'ShrinkWrap Descriptors'
  1. ShrinkWrap Descriptors
  2. SHRINKDESC-116

Descriptors 2.0 module BeansDescriptor API: common operations difficult, API confusing

    Details

    • Type: Feature Request
    • Status: Open (View Workflow)
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: None
    • Environment:

      Description

      The API for BeansDescriptor in the Descriptors 2.0 module (org.jboss.shrinkwrap.descriptors:shrinkwrap-descriptors-impl-javaee:jar:2.0.0-alpha-2) is confusing and hard to use for simple cases. It needs revision.

      The distinction between BeansDescriptor.createAlternatives() and BeansDescriptor.getOrCreateAlternatives() isn't clear. Does the former unconditionally replace any existing alternatives entry?

      There's no obvious .replace(oldBean, newBean) to swap alternatives. The descriptor needs simple methods for:

      • Removing an alternative
      • Replacing an alternative
      • Adding an alternative

      It almost appears that the descriptor module is trying to handle multiple <alternatives/> entries, if that's the purpose of BeansDescriptor.getAllAlternatives(). Weld doesn't permit multiple alternatives, as a test with multiple alternatives entries will show:

      org.jboss.weld.exceptions.DefinitionException: WELD-001203 <alternatives> can only be specified once, but appears multiple times: vfs:/content/demo.jar/META-INF/beans.xml@6

      ... and as far as I can tell the beans.xml xsd backs that up: http://java.sun.com/xml/ns/javaee/beans_1_0.xsd

      It doesn't make sense for the descriptors module to produce invalid descriptors; someone testing Weld code, JBoss descriptor loading, etc would use hand-crafted descriptors or descriptors produced using the XML APIs, not something like shrinkwrap descriptors. It really only needs to handle well-formed descriptors and should handle common tasks quickly and easily.

        Gliffy Diagrams

          Attachments

            Activity

              People

              • Assignee:
                mmatloka Michal Matloka
                Reporter:
                ringerc Craig Ringer
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated: