[wildfly-dev] Redesigning http-upgrade configuration for management

Brian Stansberry brian.stansberry at redhat.com
Wed Sep 16 14:11:31 EDT 2015


On 9/16/15 12:33 PM, Emmanuel Hugonnet wrote:
> Hi,
> This is for management interfaces only.
> We need a capability to cover the fact that some management interfaces may provides jboss-remoting endpoints to be used by JMX.
> The native-interface provides this capability at the resource level, so this is nice and straightforward.
> Currently making an http-interface http-upgrade-enabled is done through the well named 'http-upgrade-enabled' attribute.
> But because of the use of an attribute we have no nice standard way to register the capability.
> One way to do that would be to use a child resource, "http-upgrade-support=on" to define the fact that this http-interface supports upgrade.

We need a different name for this. Address elements should be of the 
form category=specific_name.

This resource is the logical encapsulation of some sort of 
functionality. So we need to brainstorm and define what exactly that 
functionality is and what it may become and then hopefully the name for 
the resource will fall out of that.

For example, I believe http-upgrade is an implementation detail. What 
the resource is really about is providing JBoss Remoting-based 
management in an HTTP environment. We refer to that elsewhere as 
"native" (i.e. in 
/core-service=management/management-interface=native-interface) So is 
this resource primarily about native management?

> We could then move the code and services associated with this support to the addHandler and removeHandler.
> To keep backward compatibility :
>   - for the add / remove of current resource :
> it is easy to add a new step to add the new resource on the http-interface addHandler, and do the same for removal.

The removal should require reload, to encourage the user to understand 
that they may lose their connection to the server, and to avoid creating 
another situation where executing an op can result in an unclean 
execution from the client's point of view due to the connection closing.

>   - for the beloved http-upgrade-enabled attribute which is writeable but doesn't really do anything until the interface is restarted.
> Of course it could get deprecated but we would still have a writeable attribute that represents a duplicate state of the child resource.
> We may want to use the write-attribute handler on this attribute to call the resource ops without impacting the services, just changing the
> model.

If they set the value to 'false', yes. If they set it to true, putting 
the server into reload required is enough, as the boot handling should 
be adding the child resource when http-upgrade-enabled is 'true'.

>
> What do you think ?
>

There's the fact that http-upgrade-enabled currently supports 
expressions. We need to define all the semantics around that. Some thoughts:

1) If the user stores the expression value in the vault, that just can't 
work, as the evaluation of the expression in order to decide whether to 
add the child resource has to happen before the vault is available. I 
have no problem with that constraint, since using a vault expression 
here would be a real corner case. And this attribute has never been in 
EAP where we might have a greater requirement to continue to support old 
weird corner cases.

2) If the value doesn't have an expression, we can drop the attribute 
when marshaling, and just write the child element. But if it does have 
an expression we have to marshal the attribute back to xml. 
Unfortunately this precludes dropping the attribute from the current 
version of the xsd. :(

>
>
>
> _______________________________________________
> wildfly-dev mailing list
> wildfly-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/wildfly-dev
>


-- 
Brian Stansberry
Senior Principal Software Engineer
JBoss by Red Hat


More information about the wildfly-dev mailing list