[Building Sakai] FW: Roles system move

Dunstall, Christopher CDunstall at csu.edu.au
Mon Feb 7 15:41:27 PST 2011


Hi all,

We're making a change to our in-house authz group provider to use a series of tables we've added to the SAKAI db schema.

I originally patched it to use the existing Sakai DB service, using SqlService and SqlReader. However (see below) Steve Githens suggested that it's not advisable to use this method and that I should use the base DataSource and get a connection that way.

Considering we're using 2.4.x, I'd like to know if this is a shared attitude towards the 2.4.x SqlService and that we really should steer clear of it wherever possible?

Regards,

Chris Dunstall | Service Support - Applications
Technology Integration/OLE Virtual Team
Division of Information Technology | Charles Sturt University | Bathurst, NSW

Ph: 02 63384818 | Fax: 02 63384181


-----Original Message-----
From: Roma, David 
Sent: Monday, 7 February 2011 3:29 PM
To: Dunstall, Christopher
Cc: Walsh, Mark; Bristow, Paul
Subject: Roles system move

Hey Chris, 

I asked mark to do a quick code review of your change for the roles system. Any reason why you went for the SQLReader and SQLservice ?? bit of a worry given steves comment from ages ago..

Cheers,
D.

-----Original Message-----
From: Walsh, Mark 
Sent: Monday, 7 February 2011 3:20 PM
To: Roma, David
Subject: FW: FW: ContentHostingService suggestions.

Hi Dave,

I had a look at the code changes [1] as requested.

I noticed that we appear to be going from using javax.sql.DataSource to using SqlReader and SqlService.

As per the email below from Steve Githens, using SqlReader and SqlService might not be a good idea.
Perhaps continuing to use javax.sql.DataSource might be a better idea.

[1] Code to be reviewed
http://svn.csu.edu.au/svnweb/index.cgi/svn/diff/sakai/interact/trunk/providers/csuGroup/src/java/org/sakaiproject/provider/authzGroup/csuGroupProvider.java?rev1=14060;rev2=14061

Regards,
Mark Walsh.
-----Original Message-----
From: Steven Githens [mailto:swgithen at mtu.edu] 
Sent: Wednesday, 7 April 2010 11:49 AM
To: Walsh, Mark
Cc: Roma, David; swgithen at mtu.edu
Subject: Re: FW: ContentHostingService suggestions.

Hi Mark,

Yeah, the SqlService is old and crappy.  You should just fetch a JDBC 
connection from Sakai's pool.  You can inject the spring bean called 
javax.sql.DataSource ( or use 
ComponentManager.get("javax.sql.DataSource") if what you're working on 
isn't a Spring instantiated bean ).

This is a real DataSource that you can borrowConnection, commit, and 
then close ( you definately still have to close them yourself ).  Thats 
the best way these days to get and do manual SQL in Sakai.

Also, I've been getting over a cold, so I think I'm going to need to hit 
the hay here real soon ( I actually took the day off of work yesterday 
).  Apologies for most likely missing tonight, I'll plan on joining in 
tomorrow during the stand up call.

-Steve

Walsh, Mark wrote:
> Hi Steve,
>
> For my first attempt with ContentHosting service, I tried contentHostingService.getAllResources("/attachment/MSI_PDF/") method, to get back all MSI resources, then looped through all the results to find the pdfs published for a single outline.
>
> I suspect this implementation using ContentHosting might be considered too slow.
>
> Is SqlReader,SqlService the correct way to query the sakai schema for this information ??
> I seem to recall that SqlReader,SqlService might be old (possibly buggy ways) of communicating with the sakai database schema.
>
> Is there any particular sakai way I should be using, to run a query something like the following:
> select * from content_resource where in_collection  ='/attachment/MSI_PDF/' and resource_id like '%ITC702_200970_B_D%'
>
> Regards,
> Mark Walsh.
>
> -----Original Message-----
> From: Steven Githens [mailto:swgithen at mtu.edu]
> Sent: Wednesday, 31 March 2010 9:15 AM
> To: Walsh, Mark
> Cc: Roma, David
> Subject: Re: ContentHostingService suggestions.
>
> Walsh, Mark wrote:
>   
>> Hi Steve,
>>
>> One of the new functions to be added to MSI, is ability to display all
>> previously saved pdf's outlines.
>>
>> For example, in devel environment, if I was interested in outline
>> ITC702_200970_B_D, it would mean finding the following pdf's:
>>
>> /attachment/MSI_PDF/ITC702_200970_B_D-21_December_2009-Version_1.pdf
>>
>> /attachment/MSI_PDF/ITC702_200970_B_D-21_December_2009-Version_2.pdf
>>
>> /attachment/MSI_PDF/ITC702_200970_B_D-21_December_2009-Version_3.pdf
>>
>> /attachment/MSI_PDF/ITC702_200970_B_D-22_December_2009-Version_4.pdf
>>
>> I could write some SQL to do the above, as shown below:
>>
>> select * from content_resource where in_collection
>> ='/attachment/MSI_PDF/' and resource_id like '%ITC702_200970_B_D%'
>>
>>     
>
> Hi Mark,
>
> After a quick browse through the API, it doesn't look like any of the
> find methods do what we need here. I'm guessing it would be slow to do a
> contentHostingService.getCollection("/attachment/MSI_PDF"...) and then
> iterate through it's resources to match the names.
>
> The best way might actually be to do a database query. Assuming it's
> read-only it's not the worst thing in the world.
>
> I'll let you know if I think of something else.
>
> -s
>
>
>
>   
>> I suspect I should be using the ContentHostingService, and not direct
>> sql to find this information.
>>
>> I'm just not to sure what search methods in the ContentHostingService
>> I should be using ??
>>
>> Any suggestions, examples, tips etc... are welcome.
>>
>> Regards,
>>
>> Mark Walsh.
>>
>>     
>
>   



More information about the sakai-dev mailing list