myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Hank Ibell <hwib...@gmail.com>
Subject Re: JIRA MYFACES-4022
Date Wed, 16 Dec 2015 22:24:28 GMT
I did another test with multiple web modules in an EAR with slightly
different flows that have the same flow id. I was able to successfully
enter the correct flow of each web module despite the flow ids being the
same and with the extension being shared.

Does anyone know if there is another case in mind that could break
something?

Regards,
Hank Ibell

On Wed, Dec 16, 2015 at 4:31 PM Thomas Andraschko <
andraschko.thomas@gmail.com> wrote:

> Oh, i see.
> The behavior is different in a EAR...
> That could really break something.
>
> 2015-12-16 22:26 GMT+01:00 Thomas Andraschko <andraschko.thomas@gmail.com>
> :
>
>> The CDI spec clearly states:
>> The container instantiates a single instance of each extension at the
>> beginning of the application initialization process and maintains a
>> reference to it until the application shuts down.
>>
>> So +1 for applying your patch.
>> In DeltaSpike we have many Extensions which would behave weird if the
>> Extensions instances would be shared across applications.
>>
>> 2015-12-16 22:12 GMT+01:00 Hank Ibell <hwibell@gmail.com>:
>>
>>> Hello,
>>>
>>> I tested MyFaces on WildFly and WebSphere Liberty, and it looks like
>>> FlowBuilderCDIExtension is not shared between different web applications
>>> that are not in the same EAR.
>>>
>>> Here is what I see from WildFly:
>>> ######################################
>>> WildFly: Deployment of an EAR with the two web modules:
>>> FlowBuilderCDIExtension is shared between the two web modules
>>>
>>> 11:40:36,826 INFO  [stdout] (MSC service thread 1-5) HWIBELL:
>>> FlowBuilderCDIExtension: *Extension
>>> org.apache.myfaces.flow.cdi.FlowBuilderCDIExtension@cb0c841b*:
>>> 11:40:36,827 INFO  [stdout] (MSC service thread 1-5) HWIBELL:
>>> FlowBuilderCDIExtension: Found flow Producer for Producer Method [Flow]
>>> with qualifiers [@FlowDefinition @Any] declared as [[BackedAnnotatedMethod]
>>> @Produces @FlowDefinition public
>>> internal.FlowFactory.defineTestFlow(@FlowBuilderParameter FlowBuilder)]
>>> declared on Managed Bean [class internal.FlowFactory] with qualifiers [@Any
>>> @Default]
>>> 11:40:36,884 INFO  [stdout] (MSC service thread 1-5) HWIBELL:
>>> FlowBuilderCDIExtension: *Extension
>>> org.apache.myfaces.flow.cdi.FlowBuilderCDIExtension@cb0c841b*:
>>> 11:40:36,884 INFO  [stdout] (MSC service thread 1-5) HWIBELL:
>>> FlowBuilderCDIExtension: Found flow Producer for Producer Method [Flow]
>>> with qualifiers [@FlowDefinition @Any] declared as [[BackedAnnotatedMethod]
>>> @Produces @FlowDefinition public
>>> internal.FlowFactory.defineTestFlow(@FlowBuilderParameter FlowBuilder)]
>>> declared on Managed Bean [class internal.FlowFactory] with qualifiers [@Any
>>> @Default]
>>> ...
>>>
>>> ######################################
>>> WildFly: Deployment of two separate web modules: FlowBuilderCDIExtension
>>> is different for each web application
>>>
>>> 2015-12-16 13:56:16,328 INFO  [stdout] (MSC service thread 1-4) HWIBELL:
>>> FlowBuilderCDIExtension: *Extension
>>> org.apache.myfaces.flow.cdi.FlowBuilderCDIExtension@fee8cb50*:
>>> 2015-12-16 13:56:16,331 INFO  [stdout] (MSC service thread 1-4) HWIBELL:
>>> FlowBuilderCDIExtension: Found flow Producer for Producer Method [Flow]
>>> with qualifiers [@FlowDefinition @Any] declared as [[BackedAnnotatedMethod]
>>> @Produces @FlowDefinition public
>>> internal1.FlowFactory.defineTestFlow(@FlowBuilderParameter FlowBuilder)]
>>> declared on Managed Bean [class internal1.FlowFactory] with qualifiers
>>> [@Any @Default]
>>> 2015-12-16 13:56:16,430 INFO  [stdout] (MSC service thread 1-3) HWIBELL:
>>> FlowBuilderCDIExtension: *Extension
>>> org.apache.myfaces.flow.cdi.FlowBuilderCDIExtension@988bd32f*:
>>> 2015-12-16 13:56:16,430 INFO  [stdout] (MSC service thread 1-3) HWIBELL:
>>> FlowBuilderCDIExtension: Found flow Producer for Producer Method [Flow]
>>> with qualifiers [@FlowDefinition @Any] declared as [[BackedAnnotatedMethod]
>>> @Produces @FlowDefinition public
>>> internal2.FlowFactory.defineTestFlow(@FlowBuilderParameter FlowBuilder)]
>>> declared on Managed Bean [class internal2.FlowFactory] with qualifiers
>>> [@Any @Default]
>>> ######################################
>>>
>>> The results from WebSphere Liberty are the same. Does anyone the best
>>> place to verify the lifetime of a CDI Extension instance?
>>>
>>>
>>>
>>> On Wed, Dec 16, 2015 at 10:52 AM, Leonardo Uribe <lu4242@gmail.com>
>>> wrote:
>>>
>>>> I'm not sure how the extension instance is created and its lifetime.
>>>> That's not documented, so we need to check that.
>>>> On Dec 16, 2015 4:03 AM, "Thomas Andraschko" <
>>>> andraschko.thomas@gmail.com> wrote:
>>>>
>>>>> Are you sure Leo?
>>>>> FlowBuilderCDIExtension should exist per WebApp.
>>>>>
>>>>> 2015-12-15 22:39 GMT+01:00 Leonardo Uribe <lu4242@gmail.com>:
>>>>>
>>>>>> Hi
>>>>>>
>>>>>> I remember the current solution works in a case where myfaces jars
>>>>>> are shared by different web applications. Suppose a TomEE environment.
The
>>>>>> solution proposed in the patch cause a problem when two webapps uses
faces
>>>>>> flow, because one app could find the flows of the other one (variable
for
>>>>>> FlowBuilderCDIExtension).
>>>>>>
>>>>>> I don't have idea if the solution proposed works in that case, so
we
>>>>>> need to check that before apply it.
>>>>>>
>>>>>> regards,
>>>>>>
>>>>>> Leonardo Uribe
>>>>>>
>>>>>>
>>>>>> 2015-12-15 14:58 GMT-05:00 Hank Ibell <hwibell@gmail.com>:
>>>>>>
>>>>>>> Hello Thomas,
>>>>>>>
>>>>>>> I did think injecting the FlowBuilderCDIExtension would work
-- I
>>>>>>> was quite surprised when it did. Also, after looking at the code
again, I
>>>>>>> agree that the lists should be ArrayList instead. Thank you for
the quick
>>>>>>> review and suggestions!
>>>>>>>
>>>>>>> The new patch has been attached to this email and to the JIRA.
>>>>>>>
>>>>>>>
>>>>>>> Regards,
>>>>>>> Hank Ibell
>>>>>>>
>>>>>>> On Mon, Dec 14, 2015 at 4:09 PM, Thomas Andraschko <
>>>>>>> andraschko.thomas@gmail.com> wrote:
>>>>>>>
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> i did a small review:
>>>>>>>>
>>>>>>>> 1) Why you don't use @Inject for the FlowBuilderCDIExtension
in the
>>>>>>>> FlowBuilderFactoryBean?
>>>>>>>> 2) Why do you use CopyOnWriteArrayList? ArrayList should
be fine as
>>>>>>>> the both lists are AppScoped and should only be used on startup.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> 2015-12-14 21:53 GMT+01:00 Hank Ibell <hwibell@gmail.com>:
>>>>>>>>
>>>>>>>>> Hello Thomas,
>>>>>>>>>
>>>>>>>>> Thank you for the information. :) I will wait for Leo's
review
>>>>>>>>> then.
>>>>>>>>>
>>>>>>>>> Regards,
>>>>>>>>> Hank Ibell
>>>>>>>>>
>>>>>>>>> On Mon, Dec 14, 2015 at 3:20 PM, Thomas Andraschko <
>>>>>>>>> andraschko.thomas@gmail.com> wrote:
>>>>>>>>>
>>>>>>>>>> Hi,
>>>>>>>>>>
>>>>>>>>>> first of all: thanks for the patch.
>>>>>>>>>>
>>>>>>>>>> As the last release-vote just passed last week, please
have a
>>>>>>>>>> little patience.
>>>>>>>>>>
>>>>>>>>>> AFAIR the flows-feature was the developed by Leo,
so it would be
>>>>>>>>>> the best if he could review it.
>>>>>>>>>> Otherwise i will check it.
>>>>>>>>>>
>>>>>>>>>> Regards,
>>>>>>>>>> Thomas
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> 2015-12-14 3:46 GMT+01:00 Hank Ibell <hwibell@gmail.com>:
>>>>>>>>>>
>>>>>>>>>>> Hello,
>>>>>>>>>>>
>>>>>>>>>>> It has been about a week since MYFACES-4022 [link
>>>>>>>>>>> <https://issues.apache.org/jira/browse/MYFACES-4022>]
has been
>>>>>>>>>>> opened and a potential patch has been submitted.
There has been no feedback
>>>>>>>>>>> on the issue however.
>>>>>>>>>>>
>>>>>>>>>>> Is there anything else that is needed so that
we can resolve
>>>>>>>>>>> this issue as soon as possible?
>>>>>>>>>>>
>>>>>>>>>>> Regards,
>>>>>>>>>>> Hank Ibell
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>
>>
>

Mime
View raw message