Here is the IRC chat we had around exposing DAS as an SCA container.


3[15:48] * ant_away is now known as ant_
3[15:50] * kevin_ has joined #TUSCANY
3[15:55] * Amita has joined #tuscany
[15:56] <ant_> hi Amita
[15:59] <Amita> Hi Ant
1[15:59] <lresende> hello Amita
[15:59] <Amita> Hi Luciano and Kevin, shall we start now?
[15:59] <kevin_> SOUNDS GOOD .... GOOD MORNING
[15:59] <kevin_> oops caps lock
1[16:00] <lresende> sure
2[16:00] * Amita has quit IRC (Client Quit)
3[16:00] * Amita has joined #tuscany
[16:00] <Amita> sorry lost connection for 1 min
[16:00] <kevin_> sorry i missed your invite last night
[16:00] <Amita> np
[16:01] <kevin_> did you and luciano get a chance to discuss the SCA
integration?
1[16:01] <lresende> we chated little bit, more towards getting the meeting
today
[16:01] <kevin_> i see
1[16:02] <lresende> i was just looking into the documentation and some code
provided by Amita
[16:02] <kevin_> i committed Luciano's sample this morning ... mayb e we can
start with that
1[16:02] <lresende> sure
[16:02] <ant_> quick question from me before you get into that,
1[16:02] <lresende> i conside the sample a first step on getting
integration between DAS and SCA
[16:02] <kevin_> you may have to help me with some terminology
[16:02] <kevin_> sure
[16:02] <kevin_> right
[16:02] <ant_> Amita, are you still looking at the stored procedure stuff?
[16:02] <kevin_> that makes sense
1[16:03] <lresende> in that, i expose DAS as simple SCA service and uses a
web app to consume it
[16:03] <Amita> looking at all CRUD+SP support and not only SP
1[16:03] <lresende> the service supports any kind of command supported by
das today
[16:03] <Amita> have a container supporting that for static and dynamic
approaches
[16:03] <ant_> so not a binding or container specifically for stored
procedures?
[16:03] <kevin_> ant , i think we can treat SP and CRUD the same
[16:03] <Amita> yes
[16:04] <ant_> was that a yes to me or kevin_?
[16:04] <Amita> yes - support all DAS commands not only SP
[16:04] <ant_> hmm
[16:05] <kevin_> ant ... do you think we need something specific to SP
[16:05] <Amita> ant - you have some point to deal with only SP - some
reason?
[16:05] <ant_> well thats what TUSCANY-876 was for. The use of DAS was just
an implementtaion detail
[16:06] <kevin_> my motivation id SCA/DAS
[16:06] <ant_> i understand
[16:06] <ant_> that
[16:06] <kevin_> do we need a seperate effort?
1[16:08] <lresende> ant: i have closed that, as Amita created a new one,
more generic... but looks like i should re-open that?
[16:08] <ant_> well both venkat and i have suggested that yes
[16:08] <kevin_> sounds like it is more and less generic :-)
[16:09] <ant_> you guys continue with what talking about on this chat, i
don't want to hold that up
[16:09] <kevin_> np, thanks
1[16:09] <lresende> thanks ant...
[16:09] <kevin_> luciano.  i did not see a working test with the sample
[16:10] <kevin_> is that in the works or, did i just miss it
[16:10] <Amita> ant, still not clear about separate effort for SP?
[16:10] <kevin_> ok
1[16:10] <lresende> kevin: you mean, junit testing for das.service ?
[16:10] <kevin_> any test ... junit woiuld be good ... htmlUnit
1[16:11] <lresende> i'm planning to have same way we do for companyweb,
with htmlUnit and TC
[16:11] <kevin_> i did not see a way to test the sample
[16:11] <kevin_> cool
1[16:11] <lresende> comming
1[16:11] <lresende> soon
[16:11] <ant_> Amita, you're a volunteer so I want you to work on what
interests you. TUSCANY-876 can wait for who ever is interested
[16:12] <Amita> kevin: Kevin - one question - could not get you point on
Update SQL - in code am using dObj.set(idx, val);
[16:12] <kevin_> amita/ant .  DAS/SCA integration is one thing ... I guess
that a generic SP integration couls be another
1[16:12] <lresende> TUSCANY-876 is reopened
[16:12] <Amita> OK
[16:13] <ant_> thx
[16:13] <kevin_> Amita.  Are you referring to my question about using Change
History to drive updates?
1[16:14] <lresende> ok, Amita, do you have specific topics, questions
around the das container ? or around das ?
[16:15] <Amita> yes - one question - about DAS
[16:15] <Amita> would like to know use of ConnectionInfo tag for a non web
scenario
[16:15] <Amita> is there some code - I can take a look at - where for non
web , it is used?
1[16:15] <lresende> ok, first...
1[16:16] <lresende> i think we should probably add a SCDL tag for
connection info
[16:16] <kevin_> the connection tag is only used today to specify a
DataSource
[16:16] <kevin_> so, that us is specific to DataSource not web
[16:17] <kevin_> the other option is to explicitly provide the DAS with a
JDBC Connection instance3
1[16:17] <lresende> as we might deploy the same service into a C++
environment, and that connection info would be invalid
[16:17] <Amita> yes
[16:18] <Amita> so in Java, how to make the context available ? in web - we
can have it in server conf of tomcat etc
[16:18] <kevin_> so, all RDB DAS test cases use the Connection instance
approach since ...
[16:18] <Amita> but when standalone and want to use Connection info, how to
do?
1[16:18] <lresende> you would use something like :
[16:18] <kevin_> i have not found a nice way to exercise DataSource in J2SE
1[16:18] <lresende> private static String _driverName = "
org.apache.derby.jdbc.EmbeddedDriver";
1[16:18] <lresende>     private static String _databaseURL =
"jdbc:derby:dastest;create=true";
1[16:18] <lresende>     private static Connection createConnection() {
1[16:18] <lresende>         Connection connection = null;
1[16:18] <lresende>         try {
1[16:18] <lresende>             Class.forName(_driverName).newInstance();
1[16:18] <lresende>             // Get a connection
1[16:18] <lresende>             connection = DriverManager.getConnection
(_databaseURL);
1[16:18] <lresende>             connection.setAutoCommit(false);
1[16:18] <lresende>         } catch (Exception except) {
1[16:18] <lresende>             except.printStackTrace();
1[16:18] <lresende>         }
1[16:18] <lresende>         return connection;
[16:18] <Amita> oh ok
[16:19] <kevin_> but that is not the question
[16:19] <Amita> another question
[16:19] <kevin_> the question (if i understand) is whether ConnectionInfo
means anything outside of a managed environment
[16:19] <Amita> in DAS - lot of useful code is in Test Framework
[16:20] <Amita> can it be part of DAS core?
[16:20] <kevin_> it is meaningful today only if DataSource is available
[16:20] <Amita> got it
[16:20] <kevin_> a better name might be DataSourceInfo
1[16:20] <lresende> what do you mean ? code in test framework if more
towards buiding an environment for testing the api, like creating a canned
db and populating it
1[16:21] <lresende> not sure you really want to move that to core
[16:21] <Amita> I mean - the explicit connection stuff
[16:21] <Amita> is in TestFrameWork
1[16:21] <lresende> (e.g what you have in dataAccessHelper )
[16:21] <Amita> yes
[16:21] <kevin_> there is an API on the DASFactory to provide a Connection
instance
[16:21] <kevin_> so, it is in the core
[16:21] <Amita> OK
[16:22] <Amita> OK
[16:22] <Amita> will use that
[16:22] <kevin_> let me know if you see a better way to do this
[16:22] <Amita> yes, thank you, will do
1[16:22] <lresende> so, in a real environment, some of those would be
unecessary, like populating the db, as a db would be available...
[16:23] <Amita> yes
[16:23] <kevin_> right.  that is all part of the test framework ...
1[16:23] <lresende> one way we simulate that, is also using integration
with TC, and setting up a pre-existing db there, for the client to use
[16:23] <kevin_> not in the "core"
1[16:23] <lresende> right.. and i don't see that in core.. right ?
[16:23] <kevin_> right
1[16:23] <lresende> k
[16:24] <Amita> another question, regarding static approach - in
CommandHelper -today
[16:24] <Amita> I have a very simple, logic for mapping Command<->API
3[16:24] * skurz_ has joined #tuscany
[16:25] <Amita> if we can have some code generation kind of tooling
[16:25] <kevin_> saw that ... looks interesting
[16:25] <Amita> and on the same lines
[16:25] <Amita> does DAS need to follow some convention for Command name?
1[16:25] <lresende> i think i heard people on the open source does not like
too much code generation
1[16:25] <lresende> can't we solve this with annotations /
[16:25] <kevin_> not today
1[16:25] <lresende> ?
[16:26] <Amita> kevin, what is not today?
[16:26] <kevin_> command naming conventions
[16:26] <Amita> ok
1[16:26] <lresende> ok, can i ask a question in your interface ?
1[16:27] <lresende> if I'm defining a service using CustomersOrdersService
interface...
1[16:27] <lresende> i'd expect order related methods there, right ?
1[16:27] <lresende> so, instead of execute.... we would have getOrders
[16:27] <Amita> yes
1[16:28] <lresende> and what I think you are considering dynamic way, we
might think about using Annotations or then we could introduce command
conventions
1[16:28] <lresende> where we would map getOrders to a getOrders command
1[16:28] <lresende> or...
1[16:29] <lresende> we would force the mapping to something like
1[16:29] <lresende> @AdHocQuery(SQL)
[16:29] <Amita> yes
1[16:29] <lresende> but i think we could start simple
1[16:29] <lresende> and keep growing
[16:29] <kevin_> yes
1[16:29] <lresende> so what you are providing is very good and give us a
start...
[16:29] <Amita> yes
[16:30] <kevin_> we should think about where this new container might live
1[16:30] <lresende> i have a question for ant and kevin and other old
commiters... what is best practice for two non-commiters to collaborate code
?
[16:30] <kevin_> is this part of DAS or part of SCA/
1[16:30] <lresende> the container would be part of SCA, i'd think
[16:31] <Amita> ok, another very basic question
[16:31] <Amita> about same
1[16:31] <lresende> and we might have the client in either place
1[16:31] <lresende> otherwise we would bring lot's of dependencies to DAS,
right ?
[16:31] <Amita> will it be useful to have service as well as container both
for the same thing?
[16:31] <kevin_> yes.  we don't want DAS to depend on SCA
1[16:32] <lresende> then it definetly should go into sca
1[16:32] <lresende> unless they don't want sca to depend on das :)
1[16:32] <lresende> Amita: didn't get your last question...
[16:32] <kevin_> Luciano has done the sample as a step towards a container
1[16:32] <lresende> y
[16:32] <kevin_> so, eventually, i think we want only the container\
1[16:33] <lresende> sample gives you today, the ability to expose das for a
multilingual environment
[16:33] <Amita> oh ok
[16:33] <Amita> yes
1[16:33] <lresende> so, C++, or other language can consume a das service
from java
[16:33] <Amita> another question Kevin
[16:34] <Amita> in todays RDB DAS, the need to support diff dbs - is served
through test framework
[16:34] <kevin_> demonstrated ... nt served
[16:34] <Amita> for ConnectionInfo - the URL will point to reqd db right?
[16:34] <kevin_> "not"
[16:34] <Amita> ok
[16:35] <Amita> I mean say test framework is not there (assume)
[16:35] <Amita> how I will do it using Connection Info?
[16:35] <kevin_> if the Connection instance mechanism is used hen that is
the path to some JDBC database
[16:35] <Amita> ok
[16:35] <kevin_> if ConnectionInfo is used then that specifies a specific
Datasource over a database
[16:35] <kevin_> not sure if I answered your question
[16:35] <Amita> but credentials etc? id/pwd
[16:36] <kevin_> that is taken care of before we get the connection
[16:36] <kevin_> unless i have missed something
[16:36] <Amita> what I want to ask...
[16:36] <Amita> if Test Framework does not exist
[16:37] <kevin_> if the client is providing the Connection then id/psswd has
been done
[16:37] <Amita> and I want connection to DB2 using xml config of DAS only
[16:37] <Amita> how will I do it?
[16:37] <kevin_> the CompanyWeb sample demos this
1[16:37] <lresende> but needs to be in a j2ee environment
1[16:37] <lresende> right ?
[16:37] <Amita> thats my question
1[16:37] <lresende> otherwise you have to pass the connection
[16:38] <kevin_> The xml config specifies a DataSource
[16:38] <kevin_> yes. as far as i know , DataSource is not available in J2SE
1[16:38] <lresende> so, back to my first comment, we might need to have
something on the SCDL level, that would work on both cases
[16:39] <kevin_> at one point, we considered allowing DriverManager info in
the config
[16:39] <Amita> ok
1[16:39] <lresende> and we would create a connection if J2SE
[16:39] <Amita> so not xml nbut scdl will need to serve this info
[16:39] <Amita> got it
1[16:39] <lresende> as one idea / options
[16:39] <kevin_> i have not thoought through that but it makes sense
2[16:40] * skurz_ has quit IRC ("Chatzilla 0.9.75 [Firefox
1.5.0.7/2006090918]")
1[16:40] <lresende> that would help when you want to deploy the service in
different language too
1[16:40] <lresende> as what we define in SCDL wounldn't be java specific
(eg DataSource)
[16:40] <kevin_> is that your concern ... that it miust be deployable to
J2SE and a managed environment without modification?
1[16:41] <lresende> or in c++, php ... yes
[16:41] <Amita> yes
[16:41] <kevin_> ok
[16:42] <Amita> also, another thing for Update support in DAS
1[16:43] <lresende> back to my previous question... any best practices for
Amita and I collaborate ? if I was a commiter, I'd have said... use
sandbox.. but i don't have apache acount yet...
[16:43] <Amita> if we look at the guide or WIKI etc
[16:43] <Amita> the client needs to first have a root and the do set()...etc
[16:43] <Amita> so if the DAS config has a command..
[16:43] <Amita> update x set y = z where ...
[16:44] <Amita> is there a chance that DAS will serve this like insert etc?
[16:44] <Amita> that is take care of getting DataObject and do set
internally
[16:44] <Amita> what is there in DAS today is
[16:44] <Amita> Update - using SDO
[16:44] <kevin_> i think i don't understand the question yet
[16:44] <Amita> and other methods using Command
[16:45] <kevin_> DAS.applyChanges(root)
[16:45] <Amita> so a diff way to support select/delete/insert
[16:45] <Amita> so only for Update DAS wants SDO
[16:45] <kevin_> processes the change history and ..
[16:45] <Amita> yes
[16:45] <kevin_> generates INSERT/UPDATE/DELETE statements
1[16:46] <lresende> so, this is preferend way... but we also support the
"other" way.. right kevin...
[16:46] <kevin_> yes
1[16:46] <lresende> just to make it clear for Amitsa
1[16:46] <lresende> Amita
[16:46] <Amita> ok, so it supports Command too? for Update?
1[16:46] <lresende> y
[16:47] <Amita> got it
[16:47] <Amita> thank you
1[16:47] <lresende> there is an exmple in BigBank i think... if not in the
test framework
[16:47] <kevin_> yeah, boith places ...
[16:47] <Amita> and for the container - we need to support both ways ?
[16:47] <kevin_> Amita ...
[16:47] <kevin_> that would be best
[16:48] <kevin_> i would start with the "preferred" way
[16:48] <kevin_> i have been working on some user level documentation here
...
[16:48] <kevin_>
http://wiki.apache.org/ws/Tuscany/TuscanyJava/DAS_Java_Overview/RDBDAS_Java_User_Guide
[16:48] <kevin_> not sure if you have seen it
[16:48] <Amita> yes
[16:48] <kevin_> ok\
1[16:49] <lresende> anyone: can we build incremental patches over patches ?
[16:49] <kevin_> regarding collaboration ...
1[16:50] <lresende> yes.. what's the best way ?
1[16:50] <lresende> i don't expect having a apache account anytime soon
(before 2 weeks i think)
[16:50] <kevin_> i think we should commit the container and develop it in
the trucnk
[16:50] <kevin_> as long as it never breaks the build
1[16:50] <lresende> we should consult SCA team, first
[16:51] <kevin_> I am happy to apply both of your patches as we develop of a
commo nbase
1[16:51] <lresende> as it would reside in their "land"
[16:51] <kevin_> off of
1[16:51] <lresende> k
[16:51] <kevin_> yeah, when we are ready we need to ask where it should go
1[16:51] <lresende> ok, i can initiate the discussion on that
[16:51] <kevin_> ant , are you still here?
[16:52] <Amita> can we discuss some work items for next steps?
[16:52] <kevin_> sure
1[16:52] <lresende> Amita... we also should refactor and cleanup what you
have in your jar
[16:52] <Amita> will help me in getting some direction
[16:52] <Amita> yes
1[16:52] <lresende> so, 1st goal should be to have a basica container and a
client app
1[16:52] <lresende> 1st - refactor clean up
1[16:53] <lresende> 2nd - create a client app (today is all together)
[16:53] <kevin_> and , perhaps, executing the basic test i suggeted
3[16:53] * cr22rc is now known as cr22rc_away
1[16:53] <lresende> k
1[16:53] <lresende> and we could have that in a J2EE env, so we could use
connectionInfo on the config xml for now
1[16:53] <lresende> once we have that...
1[16:54] <lresende> then we can start talking about adding capabilities...
right ?
1[16:54] <lresende> what you guys think ?
[16:54] <Amita> yes, will do that
[16:54] <kevin_> regarding J2EER, either way seems fine
[16:54] <kevin_> sounds good to me.
[16:54] <kevin_> i am very excited about this
1[16:54] <lresende> and Amita and I can discuss breaking up tasks
offline... is that ok ?
1[16:55] <lresende> yes.. it's good progress
[16:56] <kevin_> anything else?
1[16:56] <lresende> not from me...
1[16:56] <lresende> btw, i'll post the chat over the mailing list when we
are done
[16:56] <kevin_> great
1[16:56] <lresende> Amita: anything else ?
[16:56] <Amita> will ask any further questions in ML
1[16:57] <lresende> thanks
[16:57] <Amita> nothing as of now
[16:57] <Amita> this helped a lot
1[16:57] <lresende> thanks for your help as well
[16:57] <Amita> thanks both of you
[16:57] <kevin_> ok... then Luciano and I can get dinner and Amita can have
breakfast :-)
1[16:57] <lresende> :)
[16:57] <Amita> :), so we stop here?
[16:57] <kevin_> bye
1[16:57] <lresende> bye
[16:57] <Amita> bye, GN
3[16:58] * kevin_ has left #TUSCANY

Reply via email to