]
Ivo Studensky reassigned WFCORE-4707:
-------------------------------------
Assignee: Ivo Studensky (was: Jeff Mesnil)
OperationContext.getCapabilityServiceName(String, String...)
generates wrong ServiceName if capability is not registered and dynamic part contains a
DOT
--------------------------------------------------------------------------------------------------------------------------------------------------------
Key: WFCORE-4707
URL:
https://issues.redhat.com/browse/WFCORE-4707
Project: WildFly Core
Issue Type: Bug
Components: Management
Affects Versions: 10.0.0.Final
Reporter: Paul Ferraro
Assignee: Ivo Studensky
Priority: Major
Consider the call:
{code:java}
OperationContext.getCapabilityServiceName("test", "foo.bar");
{code}
This method first resolves the qualified capability name as "test.foo.bar". If
no capability is registered with that name, the service name is generated using:
{code:java}
ServiceNameFactory.parseServiceName("test.foo.bar");
{code}
This generates a ServiceName with 3 elements.
However, when this capability is actually created with name of "test" and
dynamic part "foo.bar", its service name will contain 2 elements, not 3.
i.e.
{code:java}
RuntimeCapability.Builder.of("test", true,
ServiceType.class).fromBaseCapability("foo.bar").getCapabilityServiceName();
{code}
Interestingly, the correspond method return by the
OperationContext.getCapabilityServiceSupport() implementation does this correctly.
i.e.
{code:java}
OperationContext.getCapabilityServiceSupport().getCapabilityServiceName("test",
"foo.bar");
{code}
returns the result of:
{code:java}
ServiceNameFactory.parseServiceName("test").append("foo.bar");
{code}