Design Notes for auto complete of UI textfields for HAL

Version 1

    User story

     

    Any input text field that requires an existing value, for example a socket binding, thread-pool, datasource, factory, etc. should be provided as a drop down list for the user to select, this way makes the user input accurate to an existing entry. If the user do a typo in the input, the persistent model (domain.xml or standalone.xml) may not let Wildfly start.

     

    Examples:

    * Configuration / Subsystems / Mail

        see *socket binding* attribute

     

    * Configuration / Subsystems / Transactions - see *socket binding* attribute

     

        see *socket binding* attribute

        Jdbc store datasource - this looks like we should have combo box to select a datasource which is defined in datasources and xa-datasources

     

    Requirements

     

    Wildfly management model provides a capability reference functionality where an attribute references an existing entry in the domain model.

    Example:

    * Attribute outbound-socket-binding-ref of /profile=full/subsystem=remoting/remote-outbound-connection=*

    * Attribute data-source in /profile=full/subsystem=infinispan/cache-container=ejb/replicated-cache=*/store=binary-jdbc

     

    Actually not all extensions make use of this capability functionality, for example:

    * Attribute outbound-socket-binding-ref in /profile=full/subsystem=mail/mail-session=default/server=smtp

    * Attribute socket-binding in /profile=full/subsystem=transactions

    * Attribute security-realm of /profile=full/subsystem=remoting/remote-outbound-connection=*

     

    Wildfly at the kernel level provides the functionality to link dependencies, but not all extensions make use of them.

    HAL can statically link those dependencies, but they need to be mapped, the linked issues provided some examples.

     

    UI Component

     

    Ballroom project already contains a widget named SuggestBoxItem that is a textfield with a suggestion box, see sample below

    suggestion.png

    Details

     

    There are two tasks to implement this in HAL.

    1) Add support for capability-reference in ModelNodeFormBuilder, this way the text field is automatically generated to list the existent values.

    2) For those attributes that miss the capability-reference, manually add SuggestBoxItem and lookup the values in the management model.

     

     

     

    References

     

    https://issues.jboss.org/browse/EAP7-491

     

    https://issues.jboss.org/browse/PRODMGT-1499