[gradebook2-dev] GB2 Refactor Question - ImportExportUtility

Duffy Gillman duffy at rsmart.com
Mon Jun 28 13:07:39 PDT 2010


Hey folks,

    I've attached a diff against the GB2 1.1.2 codebase for your  
inspection and/or inclusion.  Here is a summary of the changes:

In ImportExportUtility:

1) refactored and changed signature of exportGradebook(...)
     - this method now prepares a RawFile object and makes no output
     - this is now called by either exportGradebookCSV or  
exportGradebookXLS
     - setting of response headers and generating filename have been  
pushed up to the client objects which call upon ImportExportUtility
2) removed the private methods createXLS97File() and createCSVFile();  
their function has been moved into the two methods below
3) created exportGradebookXLS() and exportGradebookCSV(); these are  
now public and should be called where client objects previsously  
called exportGradebook()

In ImportHandler (all in doGet(...)):

1) Now contains conditional logic to handle xls or csv file export
2) Prepends headers to response before calling ImportExportUtility
3) calls either exportGradebookCSV() or exportGradebookXLS depending  
on fileType parameter

In GradebookExportController:

1) see changes made to ImportHandler

* * *

Thanks for supporting this change.  Let me know if there is a better  
way for me to submit the modifications, or if there are any tweaks to  
this refactor which ought to be made.

Thanks.

   Duffy

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: gb2-fileexport-vs-1.1.2.txt
Url: http://collab.sakaiproject.org/pipermail/gradebook2-dev/attachments/20100628/00c99ddb/attachment-0001.txt 
-------------- next part --------------



On Jun 25, 2010, at 11:33 PM, Thomas Amsler wrote:

> This makes sense.
> +1
>
> -- Thomas  
>
> On Fri, Jun 25, 2010 at 1:41 PM, Jon Gorrono <jpgorrono at ucdavis.edu>  
> wrote:
> Hi, Duffy.
>
> Thomas Amsler is the project lead now that James is gone. There is
> also a collab mailing list: gradebook2-dev at collab.sakaiproject.org...
>
> Seems like a reasonable modification... the exportGradebook method
> already takes a Printwriter param, but it is not used. I suspect that
> the HttpServletResponse was added later in order to set the Headers
> for download filetype... but this could be done in two steps, with
> your server process accessing  'in-between'
>
> I'll let other chime in but I would vote for you do go ahead as you  
> say...
>
> On Fri, Jun 25, 2010 at 12:43 PM, Duffy Gillman <duffy at rsmart.com>  
> wrote:
> > Jon,
> >
> >   I'm not sure to whom I should direct this question.  I hope you  
> don't mind
> > me starting with you.  Please let me know if I need to bug someone  
> else. ;)
> >
> >   I'm trying to build a Quartz job that will loop through all  
> existing
> > Gradebooks and export them.  Looking at the GB2 code it appears my  
> only
> > option is to work through a Servlet.  The ImportExportUtility  
> class which
> > produces Excel and CSV files expects an HttpResponse object into  
> which it
> > will stream the file content as the export is generated.  It looks  
> like it
> > would be a very simple matter to refactor the export routine to  
> take a
> > generic IO class (either PrintWriter or OutputStream) so that it  
> would be
> > possible to generate grade dumps on the server side.  The existing
> > exportGradebook(...) method could simply call the new method, or the
> > Servlet-specific code (getting an OutputStream from the  
> HttpResponse,
> > setting headers, etc.) could be bumped up into whatever code calls
> > exportGradebook(...)
> >
> >   Would this be a useful modification that I should contribute back?
> >
> >   Please let me know.
> >
> >
> > Thanks,
> >
> >   Duffy
> >
> >
>
>
>
> --
> Jon Gorrono
> PGP Key: 0x5434509D -
> http{pgp.mit.edu:11371/pks/lookup?search=0x5434509D&op=index}
> GSWoT Introducer - {GSWoT:US75 5434509D Jon P. Gorrono <jpgorrono -  
> gswot.org>}
> http{ats.ucdavis.edu}
> _______________________________________________
> gradebook2-dev mailing list
> gradebook2-dev at collab.sakaiproject.org
> http://collab.sakaiproject.org/mailman/listinfo/gradebook2-dev
>



More information about the gradebook2-dev mailing list