On Mon, Mar 11, 2019 at 9:19 PM Cheng Fang <cfang(a)redhat.com> wrote:
For ejb3 subsystem, 2 attributes (bean-cache and cache-container
under
passivation-store element) changed their access-type from read-only to
read-write. The change occurred in WildFly 16 (Dec 20, 2018
<
https://github.com/wildfly/wildfly/commit/f8ceb2daac6ee16b27991a402dcda63...>).
I created WFLY-11778 <
https://issues.jboss.org/browse/WFLY-11778> (Missing
ejb3 transformer tests) to track the ejb3 part of this issue.
Since there is no structural changes, and the new one has wider
access-type, any operations from old version HC should have no problem. Do
we still need transformer tests in this case?
A transformer is about a WF 16 master controlling a 15 or earlier HC. So
it's about dealing with the fact that the master can accept a
write-attribute for those attributes but if it tries to tell the legacy HC
to apply the operation, that HC cannot.
What does the failure look like if you have a WF 16 master and the
subordinate host is running 15 or earlier and you use write-attribute for
those? I suspect it looks ok.
It will fail because on the 15 host those attributes are not writable. And
that's fine; it has to fail. What a transformer would do in a case like
this would be to fail with a more understandable failure message (since the
master knows the real problem and can tailor the message, whereas the
legacy host just gets data it doesn't understand and might fail in an odd
way.) But in this case I think the legacy host would fail in an
understandable way, saying the attribute is not writable. A transformer on
the master probably wouldn't be written to produce a much better message.
Thanks,
Cheng
On Fri, Feb 8, 2019 at 10:41 AM Brian Stansberry <
brian.stansberry(a)redhat.com> wrote:
>
>
> On Fri, Feb 8, 2019 at 9:07 AM Kabir Khan <kkhan(a)redhat.com> wrote:
>
>> TL;DR: It looks like we may be missing transformer tests in the
>> following subsystems: ejb3, infinispan, jca, logging, undertow. I've not
>> dug in beyond that.
>>
>> Full:
>> We have been using ModelTestControllerVersion.EAP_7_2_0_TEMP (containing
>> WF14) for transformer testing until EAP 7.2.0 was released. [1] renames
>> this to be EAP_7_2_0 and points to EAP 7.2.0.
>>
>> In addition I have some WIP to update the full mixed domain and
>> subsystem tests to do the same. When doing this I noticed that the only
>> subsystem that had transformer tests referencing EAP_7_2_0_TEMP was
>> modcluster. I knew messaging-activemq had some changes, which Emmanuel is
>> looking at.
>>
>> I've run the model comparison tool against master/7.2.0: and see changes
>> which might be significant:
>>
>> ====== Resource root address: ["subsystem" => "ejb3"] -
Current version:
>> 0.0.0; legacy version: 5.0.0 =======
>> --- Problems for relative address to root ["passivation-store" =>
"*"]:
>> Different 'access-type' for attribute 'bean-cache'. Current:
>> "read-write"; legacy: "read-only"
>> Different 'access-type' for attribute 'cache-container'.
Current:
>> "read-write"; legacy: "read-only"
>>
>> ====== Resource root address: ["subsystem" =>
"infinispan"] - Current
>> version: 0.0.0; legacy version: 8.0.0 =======
>> * --- Problems for relative address to root ["remote-cache-container"
=>
>> "*"]:
>> Different 'default' for attribute 'protocol-version'. Current:
"2.9";
>> legacy: "2.8"
>>
>>
>> ====== Resource root address: ["subsystem" => "jca"] -
Current version:
>> 0.0.0; legacy version: 5.0.0 =======
>> --- Problems for relative address to root ["distributed-workmanager"
=>
>> "*","long-running-threads" => "*"]:
>> * Missing attributes in current: [handoff-executor]; missing in legacy []
>> * Missing parameters for operation 'add' in current: [handoff-executor];
>> missing in legacy []
>> --- Problems for relative address to root ["distributed-workmanager"
=>
>> "*","short-running-threads" => "*"]:
>> * Missing attributes in current: [handoff-executor]; missing in legacy []
>> * Missing parameters for operation 'add' in current: [handoff-executor];
>> missing in legacy []
>> --- Problems for relative address to root ["workmanager" =>
>> "*","long-running-threads" => "*"]:
>> * Missing attributes in current: [handoff-executor]; missing in legacy []
>> * Missing parameters for operation 'add' in current: [handoff-executor];
>> missing in legacy []
>> --- Problems for relative address to root ["workmanager" =>
>> "*","short-running-threads" => "*"]:
>> * Missing attributes in current: [handoff-executor]; missing in legacy []
>> * Missing parameters for operation 'add' in current: [handoff-executor];
>> missing in legacy []
>> --- Problems for relative address to root ["workmanager" =>
>> "default","long-running-threads" => "*"]:
>> * Missing attributes in current: [handoff-executor]; missing in legacy []
>> * Missing parameters for operation 'add' in current: [handoff-executor];
>> missing in legacy []
>> --- Problems for relative address to root ["workmanager" =>
>> "default","short-running-threads" => "*"]:
>> * Missing attributes in current: [handoff-executor]; missing in legacy []
>> * Missing parameters for operation 'add' in current: [handoff-executor];
>> missing in legacy []
>>
>>
>> ====== Resource root address: ["subsystem" => "logging"] -
Current
>> version: 0.0.0; legacy version: 7.0.0 =======
>> * --- Problems for relative address to root ["json-formatter" =>
"*"]:
>> Different 'default' for attribute 'record-delimiter'. Current:
"
>> "; legacy: ""
>> * --- Problems for relative address to root ["logging-profile" =>
>> "*","json-formatter" => "*"]:
>> Different 'default' for attribute 'record-delimiter'. Current:
"
>> "; legacy: ""
>> * --- Problems for relative address to root ["logging-profile" =>
>> "*","xml-formatter" => "*"]:
>> Different 'default' for attribute 'record-delimiter'. Current:
"
>> "; legacy: ""
>> * --- Problems for relative address to root ["xml-formatter" =>
"*"]:
>> Different 'default' for attribute 'record-delimiter'. Current:
"
>> "; legacy: ""
>>
>>
>> ====== Resource root address: ["subsystem" => "undertow"]
- Current
>> version: 0.0.0; legacy version: 7.0.0 =======
>> --- Problems for relative address to root
["application-security-domain"
>> => "*"]:
>> * Missing attributes in current: []; missing in legacy [enable-jaspi,
>> integrated-jaspi]
>> * Missing parameters for operation 'add' in current: []; missing in
>> legacy [enable-jaspi, integrated-jaspi]
>>
>> Although WF16 doesn't provide any domain mode guarantees for previous
>> releases, this will one day end up as a product release and then it is
>> important that we have these tests in place. It is easier to add them as we
>> go along than to retrofit them when that time comes.
>>
>
> Thanks, Kabir for running the check and for the heads up!
>
> This needs to be correct in WildFly regardless of any EAP requirements.
> I believe the domain mode transformation chain from WF 14 all the way back
> to at least 11 is correct. There is no reason it shouldn't be extended to
> 16.
>
> Even though any fix would only come in 16, the correct way to write the
> transformation for something that changed in 15 is as if it had been done
> in 15. Write the transformation code for 15 -> 14 (constants, method names
> etc) and then if there are further changes for 16 -> 15, do those. Let
> future readers of the code read code that reflects the history of the
> management API.
>
>>
>> Thanks,
>>
>> Kabir
>>
>>
>>
>> [1]
https://github.com/wildfly/wildfly-core/pull/3664
>> _______________________________________________
>> wildfly-dev mailing list
>> wildfly-dev(a)lists.jboss.org
>>
https://lists.jboss.org/mailman/listinfo/wildfly-dev
>
>
>
> --
> Brian Stansberry
> Manager, Senior Principal Software Engineer
> Red Hat
> _______________________________________________
> wildfly-dev mailing list
> wildfly-dev(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/wildfly-dev
--
Brian Stansberry
Manager, Senior Principal Software Engineer
Red Hat