]
Brian Stansberry commented on WFLY-3705:
----------------------------------------
We have API compatibility requirements that would rule out forcing a user to add
recursive=true in order to get recursive-depth=2 to take effect. I've pinged [~hbraun]
the lead of our console to see if he has any thoughts re: treating recursive-depth
differently when recursive is undefined. The console might be heavily impacted by changes
in behavior. If he's ok with that kind of an approach, I am too.
Is that kind of approach what you meant by "adding more logic in the recursive vs
recursive-depth handling"? If not, do you have another idea?
read-resource recursive-depth has no effect when recursive=true
---------------------------------------------------------------
Key: WFLY-3705
URL:
https://issues.jboss.org/browse/WFLY-3705
Project: WildFly
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: Documentation, Domain Management
Affects Versions: 8.1.0.Final
Environment: Linux
aimobile-sm.servicemesh.com 3.15.7-200.fc20.x86_64 #1 SMP Mon
Jul 28 18:50:26 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
Reporter: Arcadiy Ivanov
Assignee: Brian Stansberry
The code inside ReadResourceHandler.doExecuteInternal(OperationContext context, ModelNode
operation) goes as follows:
{noformat}
final int recursiveDepth =
operation.get(ModelDescriptionConstants.RECURSIVE_DEPTH).asInt(0);
final boolean recursive = recursiveDepth > 0 ||
operation.get(ModelDescriptionConstants.RECURSIVE).asBoolean(false);
{noformat}
The [
documentation|https://docs.jboss.org/author/display/WFLY8/Global+operations]
states:
recursive-depth – (int) – The depth to which information about child resources should be
included *if recursive is {{true}*. If not set, the depth will be unlimited; i.e. all
descendant resources will be included.
The logic, however, as implemented goes - either recursive-depth is greater than zero OR
recursive is true.
The proper implementation should be:
{noformat}
final int recursiveDepth =
operation.get(ModelDescriptionConstants.RECURSIVE_DEPTH).asInt(0);
final boolean recursive =
operation.get(ModelDescriptionConstants.RECURSIVE).asBoolean(false) &&
(!operation.get(ModelDescriptionConstants.RECURSIVE_DEPTH).isDefined() ||
recursiveDepth > 0);
{noformat}
The above snippet works as follows: recurs IF recursive is set AND (either
recursive-depth is not defined OR recursive-depth is greater than 0).