balunasj
:
alexsmirnov: agenda is posted in the channel topic
[
10:06am
]
balunasj
:
alexsmirnov: Pete and Stan can't make it today - so I think we should keep the jsf-test discussion in email
[
10:07am
]
balunasj
:
alexsmirnov: sound good - or would you like to discuss for a bit?
[
10:08am
]
alexsmirnov
:
I want to have your and nick's opinion.
[
10:09am
]
balunasj
:
on the testing choices?
[
10:10am
]
balunasj
:
alexsmirnov: I have mixed feelings as I said in the email and see two options.
[
10:11am
]
alexsmirnov
:
Yes. Because even different development habits could provide different opinion.
[
10:13am
]
balunasj
:
I talked enough for now - nbelaevski how about your thoughts?
[
10:13am
]
alexsmirnov
:
I'm usually writing tests from bottom to tom, although some 'theory' suggest to write them from top to buttom.
[
10:13am
]
balunasj
:
[
10:14am
]
alexsmirnov
:
For each level, test can check current level only, because lowest level dependencies are already proved by low-level tests.
[
10:15am
]
nbelaevski
:
balunasj: i was happy enough with Shale testing framework containing mocks for main JSF objects
[
10:16am
]
nbelaevski
:
so i'm for continuing jsf-test
[
10:16am
]
balunasj
:
nbelaevski: ok - any other thoughts on the pros/cons for the other issues in the list?
[
10:16am
]
balunasj
:
I'll post here:
[
10:17am
]
balunasj
:
1) We use JSFUnit for all unit tests ( class lvl, integration, etc...) and assume that Stan will work with us closely to optimize for speed.
[
10:17am
]
balunasj
:
-- Then when JBoss embedded in completed and JSFUnit 2.0 is released we will have a very small migration effort to take advantage.
[
10:17am
]
balunasj
:
-- We also would not need to maintain the testing environment, and would have a point of contact for assistance.
[
10:17am
]
balunasj
:
-- This will also help cross project marketing.
[
10:17am
]
balunasj
:
-- The down side is that in the short term the class lvl test suite will take longer to run (I wish I had some unbiased #s).
[
10:17am
]
balunasj
:
-- We will also need to identify how to best test class lvl objects.
[
10:17am
]
alexsmirnov
:
Mock objects are better for fine-granulated testing of utility methods or classes. I fell they are necessary for our tests. Shale has no JSF 2.0 mocks, and has some inconvinient design solutions.
[
10:17am
]
balunasj
:
2) We use the discussed jsf-test/mock environment for class lvl testing, and JSFUnit for integration/component lvl testing.
[
10:17am
]
balunasj
:
-- In the short term this gives us a speed boost to the class lvl testing which is executed most often by developers.
[
10:17am
]
balunasj
:
-- We also would not need to figure out how to shoe-horn JSFUnit into class lvl tests.
[
10:17am
]
balunasj
:
-- The downside is that we will then have two testing environments, one that we need to maintain ourselves.
[
10:17am
]
balunasj
:
-- Also when JSFUnit 2.0 is released with JBoss embedded it will be a much harder to migrate to it.
[
10:17am
]
balunasj
:
-- We also would not be "eating our own dog food" as a company and cross project seeding.
[
10:18am
]
balunasj
:
alexsmirnov: nbelaevski so you are advocating option #2 above?
[
10:19am
]
balunasj
:
Because I still feel that we need to use JSFUnit for non-fine-grained unit testing - i.e. component lvl no matter which way we handle class lvl tests
[
10:19am
]
ircwidget left the chat room. (Remote closed the connection)
[
10:20am
]
balunasj
:
Because I agree that for the fine-grained tests JSFUnit feels like overkill ( container, httpunit, etc...) 
[
10:20am
]
balunasj
:
what I don't want to see is the jsf-test project grow into a big project that requires lots of maintence
[
10:21am
]
balunasj
:
and we start bluring the lines between JSFUnit and jsf-test
[
10:21am
]
alexsmirnov
:
I prefer to option #2. I prefer to avoid real environment for low-level tests not by speed reasons only, but, more important, to simplify envirionment and eliminate errors from other parts of code.
[
10:21am
]
balunasj
:
alexsmirnov: What do you mean "eliminate errors from other parts of code."
[
10:23am
]
nbelaevski
:
balunasj: currently, a small part of JSF functionality is necessary for tests
[
10:23am
]
alexsmirnov
:
Suppose, we got some test crashed. With real server and framework it could be hard to distinguish errors from JSF ( or other components of our project ) and issues in the tested code.
[
10:23am
]
nbelaevski
:
scope maps, EL-expressions, support for faces messages
[
10:24am
]
balunasj
:
nbelaevski: my concern is when I start seeing jsf-test using httpunit and growing in the direction
[
10:25am
]
balunasj
:
alexsmirnov: That is what I thought you meant - live environment == more variables when errors happen.
[
10:25am
]
nbelaevski
:
balunasj: i've used HtmlUnit to test a4j:queue - it's mostly for JS execution there
[
10:25am
]
balunasj
:
nbelaevski: you mean through jsf-test?  or just in general?
[
10:25am
]
nbelaevski
:
balunasj: I think that JS unit testing frameworks are far from ideal, so integration with HtmlUnit is a good thing
[
10:26am
]
alexsmirnov
:
balunasj: sure, but htmlunit and Seleniom tests are supposed to run with real environment, there jsfunit would be helpfull, especially with embedded fast-run servers.
[
10:26am
]
nbelaevski
:
balunasj: through jsf-test
[
10:26am
]
balunasj
:
nbelaevski: right - but for those tests I think that we should be using JSFUnit for the reasons above
[
10:27am
]
balunasj
:
nbelaevski: The problem I see is that originally we are talking about a "somewhat" basic mock library for low level testing
[
10:27am
]
nbelaevski
:
balunasj: yes, sorry, i'm a little offtopic
[
10:28am
]
balunasj
:
nbelaevski: then it starts growing into web container mock, integrating httpunit, and covering for a JS unit test framework
[
10:28am
]
balunasj
:
nbelaevski: I don'y think you are off topic   this is a good discussion
[
10:29am
]
balunasj
:
We can't spend too much more time on this because we need to brainstorm on ALPHA1
[
10:29am
]
alexsmirnov
:
Yes, but jsf-test was designed for mid-level tests. Jsfunis is not yet have embedded container.
[
10:30am
]
balunasj
:
alexsmirnov: But your biggest argument for jsf-test is low level testing and how the mocks make it easy to
[
10:30am
]
balunasj
:
test
[
10:30am
]
alexsmirnov
:
And that is already working.
[
10:30am
]
nbelaevski
:
balunasj: in fact, i'd like to have all JS testing done by HtmlUnit
[
10:30am
]
balunasj
:
lets take a step back - alexsmirnov do you see a place for JSFUnit at all in the testing of RichFaces?
[
10:31am
]
nbelaevski
:
balunasj: that's because we can write test scenarios on Java, not on JavaScript + better quality of xUnit frameworks
[
10:32am
]
alexsmirnov
:
Yes, JsfUnit should be fine for integration tests and, with speed-up embedded container, for component-level tests too.
[
10:32am
]
balunasj
:
nbelaevski: I can see that - but I think that is one place where JSFUnit (using httpunit internally) can provide a lot of benefit on top of httpunit.
[
10:32am
]
nbelaevski
:
balunasj: and JSF is not necessary for this. but HTTP server is necessary
[
10:34am
]
balunasj
:
alexsmirnov: I guess what I'm saying is that I think JSFUnit might be worth the extra time ( until JSFUnit 2.0 comes out) for the mid-level tests
[
10:34am
]
balunasj
:
alexsmirnov: as I said above I get concerned over time to maintain this
[
10:34am
]
balunasj
:
alexsmirnov: Stan is willing to work with us, and maintain this code
[
10:35am
]
nbelaevski
:
balunasj: alexsmirnov: let's give JSFUnit a trial - write couple of tests and compare?
[
10:36am
]
nbelaevski
:
balunasj: do you know whether it is currently possible to configure JSFUnit to be run fully automatically on CI server
[
10:36am
]
balunasj
:
nbelaevski: agree I think this is a good start to see where there may be overlap we can avoid.
[
10:36am
]
balunasj
:
nbelaevski: it is
[
10:36am
]
nbelaevski
:
balunasj: so that it'll download server, deploy JSF, etc...
[
10:37am
]
nbelaevski
:
i'masking because Stan said 5 Jan that manual .jar replacement is necessary
[
10:37am
]
balunasj
:
I'm not sure at that level - I wish stan were here for this part
[
10:37am
]
balunasj
:
Why don't you add this to the email discussion and stan can respond that way
[
10:38am
]
nbelaevski
:
that's just come to my mind. i'll mail him
[
10:38am
]
balunasj
:
nbelaevski: then we can get him involved in your trial, and let us know where there might be tricks.
[
10:38am
]
balunasj
:
nbelaevski: I think that CI integration without manual manipulation is critical for this too
[
10:38am
]
balunasj
:
OK this leaves us only 20 min for ALPHA discussions
[
10:39am
]
nbelaevski
:
balunasj: ok
[
10:40am
]
balunasj
:
Take a look at the agenda for a starting point
[
10:40am
]
alexsmirnov
:
Ok. I think we could enforce jsfunit to meet real development requirements and improve usability of that project too.
[
10:40am
]
balunasj
:
alexsmirnov: I agree - I think we could provide real world - extreme use cases for JSFUnit
[
10:41am
]
balunasj
:
So first step I would like us to brainstorm on ALPHA1 features, and functionality
[
10:41am
]
balunasj
:
all: I'm curious what other peoples thoughts are on this? 
[
10:41am
]
alexsmirnov
:
At the same time, that seems necessary to evolve seam mock project for low-level tests.
[
10:42am
]
nbelaevski
:
alexsmirnov: agree
[
10:42am
]
balunasj
:
alexsmirnov: I can agree with that as well - not sure JSFUnit will ever be a low lvl mock tool
[
10:43am
]
balunasj
:
alexsmirnov: that being said we need to defined and keep in mind what that project is and stay true to its core - not evolve it into something it should not be.
[
10:43am
]
alexsmirnov
:
We also have a lack of javascript tests, and I have a little ideas how to test client-side scripts.
[
10:43am
]
balunasj
:
alexsmirnov: nbelaevski : I know we have 17 open issues for ALPHA in jira, but I'm not sure if they represent what needs to be completed for a true ALPHA
[
10:43am
]
nbelaevski
:
alexsmirnov: balunasj: http://www.jboss.org/community/wiki/WorkingWithStubs - let's check this in depth
[
10:44am
]
nbelaevski
:
alexsmirnov: balunasj: yes, 17
[
10:44am
]
ppitonak left the chat room. (Read error: 104 (Connection reset by peer))
[
10:44am
]
balunasj
:
nbelaevski: interesting - find for the wiki - alexsmirnov I'd be curious what your thoughts are compared to your work?
[
10:45am
]
balunasj
:
alexsmirnov: we need to focus on ALPHA for now though
[
10:45am
]
alexsmirnov
:
Really, that article is obsolette. JsfUnit has removed all mock/stub objects from distribution far ago.
[
10:45am
]
balunasj
:
nbelaevski: sorry nick meant to say 27 - not 17
[
10:45am
]
alexsmirnov
:
Let's go to alpha.
[
10:46am
]
nbelaevski
:
yes, alpha
[
10:46am
]
nbelaevski
:
first, we are missing tasks for components
[
10:46am
]
balunasj
:
ok so high level features CDK, Core functionality, very limited components ( a4j sub-set)
[
10:47am
]
balunasj
:
nbelaevski: agree - what did you have in mind?
[
10:47am
]
nbelaevski
:
balunasj: i meant that there no tasks for these components in JIRA
[
10:48am
]
nbelaevski
:
balunasj: if we deliver skinning in alpha, we might want to include couple of visual components. e.g. panel
[
10:48am
]
balunasj
:
nbelaevski: right - I agree there are none   I was asking your thought for what initial set we should focus on.
[
10:49am
]
nbelaevski
:
balunasj: we need to plug in Ilya
[
10:49am
]
nbelaevski
:
for BA procedures
[
10:49am
]
balunasj
:
nbelaevski: To be honest I was thinking of skinning for an ALPHA2 - have ALPHA1 for basic functionality and a4j components
[
10:50am
]
alexsmirnov
:
Out of topic, but that is related to planing project: does anybody know, is it possible in JIRA to make tasks and subtasks in the different projects ?
[
10:50am
]
balunasj
:
alexsmirnov: I do not believe direct subtasks - although I wish you could.
[
10:51am
]
balunasj
:
The best way to do that might be to link to a task that then has the sub-tasks
[
10:51am
]
artdaw left the chat room.
[
10:51am
]
nbelaevski
:
ok, so
[
10:52am
]
nbelaevski
:
basic components set: commandLink, commandButton, poll, push
[
10:52am
]
alexsmirnov
:
JSF 2.0 requires 'head' and 'body' components to inject script/styles dependencies. I think we should rewrite 'page' component to provide the same structure in single component.
[
10:53am
]
balunasj
:
nbelaevski: agree with that, also thinking of output panel
[
10:53am
]
balunasj
:
and perhaps log
[
10:54am
]
nbelaevski
:
yes
[
10:54am
]
balunasj
:
just to let people see what we are going client side
[
10:54am
]
nbelaevski
:
mediaOutput
[
10:54am
]
alexsmirnov
:
It is also seems important to have base DataTable functionality. Many people complain about standard UIData functionality ( I'm too ), and we have a lot of components based on that.
[
10:55am
]
balunasj
:
alexsmirnov: that is a good point and I agree - but it could be a time consuming task - do you agree
[
10:55am
]
balunasj
:
maybe we need that for ALPHA2?
[
10:55am
]
nbelaevski
:
status + jsFunction
[
10:55am
]
alexsmirnov
:
As I already wrote, improved data table would be also contributed to the JSF 2.1
[
10:55am
]
nbelaevski
:
i'd like to see dataTable in alpha1
[
10:56am
]
balunasj
:
nbelaevski: status +1 - I would like to see this as a behavior in JSF 2.0 - btw
[
10:56am
]
nbelaevski
:
what about region?
[
10:56am
]
nbelaevski
:
Max Katz was asking yeterday about it...
[
10:57am
]
balunasj
:
JSF 2.0 has the concept of "execute" so I think region could be a good one.
[
10:57am
]
alexsmirnov
:
I think we could drop region at all. That functionality was incorporated into 'process' set.
[
10:57am
]
balunasj
:
alexsmirnov: can you "execute" on a h: panal and
[
10:57am
]
balunasj
:
have it limit what gets processed ?
[
10:57am
]
alexsmirnov
:
Sure, it's named 'execute'
[
10:58am
]
nbelaevski
:
region is cool to specify parameters for several components
[
10:58am
]
balunasj
:
ok so region is not really needed then because you can already point "execute="<some-panel-id>""
[
10:58am
]
balunasj
:
and have it limit to the items there.
[
10:59am
]
balunasj
:
guys - I'm going to need to drop off the conversation in a minute - but this is exactly the converstaion I wanted to have.
[
10:59am
]
alexsmirnov
:
Yes, exactly. Many developers complain by 'region' because it allows to limit execution to single component only.
[
10:59am
]
balunasj
:
I'll join back asap, but I can stay on for thenext few min
[
10:59am
]
nbelaevski
:
what framework features to pospone for alpha2?
[
11:00am
]
balunasj
:
nbelaevski: next good question
[
11:00am
]
balunasj
:
nbelaevski: I think the answer would be any features not needed by the components we have planned for ALPHA 1
[
11:01am
]
nbelaevski
:
ok, got you
[
11:01am
]
balunasj
:
I think we should think about getting ALPHA out asap - sometime in august if possible - so if we need to limit functionality it is ok
[
11:02am
]
balunasj
:
I just want something out there that people can play with
[
11:02am
]
nbelaevski
:
yes, as we've planned
[
11:02am
]
alexsmirnov
:
What about skins and themes ? That seems as one of most important features, but components really do not depend of that, skin works at framework level only.
[
11:02am
]
balunasj
:
and feelback
[
11:02am
]
nbelaevski
:
alexsmirnov: we're still missing some way to switch CSS for skins
[
11:02am
]
balunasj
:
alexsmirnov: I was thinking that skins and theme's could be a good one for ALPHA2
[
11:02am
]
nbelaevski
:
it's served by JSF, not by us
[
11:03am
]
balunasj
:
Give time for Lex_Dmitriev and us to figure out how we want to handle it.
[
11:03am
]
nbelaevski
:
nbelaevski: as for now we can plug in our renderer for CSS and have it working
[
11:03am
]
nbelaevski
:
i've already checked it
[
11:03am
]
balunasj
:
ok got to go - I'll be back on in 15min or sooner.
[
11:03am
]
alexsmirnov
:
ok
[
11:03am
]
nbelaevski
:
balunasj: ok
[
11:03am
]
You are now known as balunasj_biab.
[
11:09am
]
ilya_shaikovsky left the chat room. ("x3irc 7 client - http://x3irc.ru/")
[
11:13am
]
You left the chat by being disconnected from the server.
[
11:13am
]
You rejoined the room.
[
11:13am
]
You were promoted to operator by ChanServ.
[
11:17am
]
balunasj
:
ok I'm back
[
11:17am
]
balunasj
:
alexsmirnov: do we want to continue or take this and make a wiki then break down more there?
[
11:17am
]
balunasj
:
nbelaevski: ^
[
11:17am
]
nbelaevski
:
balunasj: i'm back too
[
11:18am
]
nbelaevski
:
let's take this
[
11:19am
]
balunasj
:
nbelaevski: take this to the wiki? 
[
11:19am
]
nbelaevski
:
i guess we do not have enough time to deliver Selenium tests for this release
[
11:19am
]
nbelaevski
:
balunasj: yes, list of components to include
[
11:19am
]
alexsmirnov
:
I think we already have most of these things on wiki, just rewrite these articles according to releases.
[
11:19am
]
balunasj
:
nbelaevski: no, although I do think that we need a very basic example
[
11:20am
]
balunasj
:
nbelaevski: *yes
[
11:20am
]
nbelaevski
:
balunasj: i just wanted to ask about example
[
11:20am
]
balunasj
:
we need an example that demonstrates the the components we are including
[
11:20am
]
balunasj
:
to give users a head start in how it is going to work.
[
11:21am
]
balunasj
:
alexsmirnov: I agree, but I also think that the current wiki's are for the whole release and not broken down into releases
[
11:22am
]
alexsmirnov
:
I guess selenium tests are concern for Prabhat, aren't they ?
[
11:22am
]
balunasj
:
nbelaevski: is that what you were thinking about the example?
[
11:22am
]
balunasj
:
alexsmirnov: yes - officially although we will have a lot of say and input
[
11:23am
]
balunasj
:
I think first step is to create an example that can then be automated.
[
11:23am
]
nbelaevski
:
balunasj: we definitely need something for test internally
[
11:23am
]
balunasj
:
nbelaevski: we could start the 4.0 live demo, but not sure we will have enough for that -
[
11:23am
]
balunasj
:
that might be another ALPHA2
[
11:23am
]
nbelaevski
:
balunasj: agree
[
11:24am
]
nbelaevski
:
i've already created core-demo application. we can put everything there
[
11:24am
]
balunasj
:
nbelaevski: ok so a basic core example - where is that now?
[
11:24am
]
torben_ left the chat room. ("Leaving")
[
11:24am
]
balunasj
:
alexsmirnov: what about the CDK?
[
11:24am
]
nbelaevski
:
balunasj: examples/components/core-demo
[
11:24am
]
balunasj
:
nbelaevski: doh - should have guessed that
[
11:24am
]
nbelaevski
:
balunasj: forgot to say 'trunk'
[
11:25am
]
balunasj
:
nbelaevski: I got ya
[
11:27am
]
balunasj
:
nbelaevski: We also need to talk about the assembler - this is something I would be interesting in looking at if I have the time.
[
11:27am
]
balunasj
:
nbelaevski: for ALHPA this would be very basic
[
11:27am
]
alexsmirnov
:
balunasj: CDK is seems necessary for visual components. That is also shave a lot of manual work for all components.
[
11:27am
]
nbelaevski
:
balunasj: yes
[
11:28am
]
balunasj
:
alexsmirnov: agree - although we are not planning any major visual components for ALPHA. 
[
11:28am
]
balunasj
:
alexsmirnov: How much functionality do you think could be ready by - say - mid august?
[
11:29am
]
abelevich left the chat room. (Read error: 110 (Connection timed out))
[
11:29am
]
rruss1 joined the chat room.
[
11:29am
]
balunasj_biab left the chat room. (Read error: 110 (Connection timed out))
[
11:30am
]
alexsmirnov
:
balunasj: I wish to finish CDK at that time, although there could be some problems, the whole structure seems clean for me.
[
11:31am
]
balunasj
:
alexsmirnov: that's why its called an ALPHA
[
11:31am
]
balunasj
:
ok so I have enough to start the wiki page
[
11:32am
]
balunasj
:
we can update and move forward with the planning.  Please post any new jira's from this and I'll let you know when I post the wiki.
[
11:33am
]
balunasj
:
Thanks guys this was a good talk
[
11:33am
]
balunasj
:
We'll continue the test talk in email.
[
11:34am
]
nbelaevski
:
balunasj: thank you too!