[Building Sakai] Create Turnitin Class & Assignment Process Flow in SAKAI

Paul Mungai paulwando at gmail.com
Mon Jan 9 10:37:44 PST 2012


Thanks Jehan,

I already have that setup, but the challenge comes when the lecturer wishes
to tweak the other turnitin options and not resolving to the default
options.

Assignment2 is meant to give more flexibility wrt turnitin but there seems
to be poor documentation and thus the back and forth exchange of emails.

On Mon, Jan 9, 2012 at 8:03 PM, Jehan Badshah <jehan.badshah at nu.edu.pk>wrote:

> Dear Paul Mungai
>
> With assignment2 turnitin service look like attached file,
> You can also view this video
> http://www.youtube.com/watch?v=qyJSePzJld4&feature=related
>
> What I suggested don't need installation of any other thing like what you
> are doing now, only download sakai 2.8.0 and install turnitin API with
> suggested changes and it will start work.
>
>
> If still you were facing problems then write me.
>
>
>
>
>
>
> On Mon, Jan 9, 2012 at 7:57 PM, Paul Mungai <paulwando at gmail.com> wrote:
>
>> Unfortunately I cannot get the dependencies:
>>
>> sakai-announcement-api-2.8-
>> SNAPSHOT
>> sakai-assignment-api-2.8-SNAPSHOT
>> sakai-calendar-api-2.8-SNAPSHOT
>> sakai-message-api-2.8-SNAPSHOT
>> sakai-mock-2.8-SNAPSHOT
>> sakai-taggable-api-2.8-SNAPSHOT
>>
>> The sources it tries accessing by default such as
>> http://source.sakaiproject.org/maven2-snapshots/org/sakaiproject/sakai-taggable-api/2.8-SNAPSHOT/sakai-taggable-api-2.8-SNAPSHOT.jar
>> have been moved.
>>
>> Any suggestions will be highly appreciated.
>>
>> Regards,
>> Paul Mungai
>>
>>
>> On Mon, Jan 9, 2012 at 3:22 PM, Paul Mungai <paulwando at gmail.com> wrote:
>>
>>>
>>> I now get you David, I realize I needed to run:
>>>
>>> sh prepare_for_sakai_env.sh
>>>
>>> within the assignment2 directory, which enabled me select the 2.8.x
>>> branch.
>>>
>>> Hope it works now.
>>>
>>>
>>> On Mon, Jan 9, 2012 at 1:42 PM, Paul Mungai <paulwando at gmail.com> wrote:
>>>
>>>> Thanks for the advise.
>>>>
>>>> Kindly advise if the page for add assignment in your case includes the
>>>> turnitin options as shown from the url below.
>>>>
>>>>
>>>> https://source.sakaiproject.org/contrib/turnitin/trunk/contentreview-impl/docs/readme.html
>>>>
>>>>
>>>> On Mon, Jan 9, 2012 at 12:32 PM, Jehan Badshah <jehan.badshah at nu.edu.pk
>>>> > wrote:
>>>>
>>>>> Dear Paul Mungai
>>>>>
>>>>> I am using sakai 2.8.0, assignment 2, and same version of content
>>>>> review and turnitin, I also faced you like problems, but now it is solved
>>>>> by doing slight changes in source code of turnitin API.
>>>>>
>>>>> From turnitin log I came to know that API is not calling
>>>>> createClass(), createAssignmment etc functions, due to which instructors,
>>>>> their classes and assignments are not creating on turnitin.comautomatically.
>>>>>
>>>>> It is the issue in source code, in
>>>>> file TurnitinReviewServiceImpl.java, in which statement (*
>>>>> turnitinConn.isUseSourceParameter())* always return true
>>>>>
>>>>>  due to which inside code is not executing for creation
>>>>> of instructors, their classes and assignments.
>>>>>
>>>>> *if (!turnitinConn.isUseSourceParameter()) { createClass(),
>>>>> createAssignment etc }*
>>>>> remove "!" from above statement (replace attached file), compile it,
>>>>> and hopfully it will start work.
>>>>>
>>>>> Further Turnitin API developers can help us, why source parameter
>>>>> making problem.
>>>>>
>>>>> If you need any further help then contact me.
>>>>>
>>>>> JIRA: https://jira.sakaiproject.org/browse/TII-123
>>>>>
>>>>>
>>>>> On Mon, Jan 9, 2012 at 2:04 PM,  Paul Mungai <paulwando at gmail.com >wrote:
>>>>>
>>>>>>
>>>>>>
>>>>>> ---------- Forwarded message ----------
>>>>>> From: Paul Mungai <paulwando at gmail.com>
>>>>>> Date: Mon, Jan 9, 2012 at 2:04 PM
>>>>>> Subject: Re: [Building Sakai] Create Turnitin Class & Assignment
>>>>>> Process Flow in SAKAI
>>>>>> To: sakai-dev Developers <sakai-dev at collab.sakaiproject.org>
>>>>>>
>>>>>>
>>>>>> If its the sakai version, I am running 2.8.0, then
>>>>>> assignment2-tag-1.0 and contentreview-2.9.1.
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Mon, Jan 9, 2012 at 10:52 AM, David Horwitz <
>>>>>> david.horwitz at uct.ac.za> wrote:
>>>>>>
>>>>>>> **
>>>>>>> It looks like you have updated to build against 2.9/Trunk? There has
>>>>>>> been a change to the kernel usage of the FormattedText class. You need to
>>>>>>> build against the 2.8 kernel so you pull in the 2.8 util class
>>>>>>>
>>>>>>> D
>>>>>>>
>>>>>>>
>>>>>>> On 01/09/2012 10:09 AM, Paul Mungai wrote:
>>>>>>>
>>>>>>> Another hiccup. When I try to add a new assignment2, the turnitin
>>>>>>> options are not there. The assignment does not get saved, I get this error:
>>>>>>>
>>>>>>>
>>>>>>> INFO: EntityEncodingManager: No entities to format (json) and output
>>>>>>> for ref (/assignment2)
>>>>>>> 2012-01-09 10:02:50,116 WARN (RSFActionHandler.java:235) - <Error
>>>>>>> invoking action>
>>>>>>> Target exception of class java.lang.NoClassDefFoundError
>>>>>>> Successive lines until stack trace show causes progressing to
>>>>>>> exception site:
>>>>>>> org/sakaiproject/util/api/FormattedText
>>>>>>> java.lang.NoClassDefFoundError:
>>>>>>> org/sakaiproject/util/api/FormattedText
>>>>>>>     at
>>>>>>> org.sakaiproject.assignment2.tool.beans.AssignmentAuthoringBean.cleanUpAssignment(AssignmentAuthoringBean.java:391)
>>>>>>>     at
>>>>>>> org.sakaiproject.assignment2.tool.beans.AssignmentAuthoringBean.internalProcessPost(AssignmentAuthoringBean.java:171)
>>>>>>>     at
>>>>>>> org.sakaiproject.assignment2.tool.beans.AssignmentAuthoringBean.processActionPost(AssignmentAuthoringBean.java:127)
>>>>>>>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>>>>     at
>>>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>>>>>>     at
>>>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>>>>>>     at java.lang.reflect.Method.invoke(Method.java:597)
>>>>>>>     at
>>>>>>> uk.org.ponder.reflect.JDKReflectiveCache.invokeMethod(JDKReflectiveCache.java:23)
>>>>>>>     at
>>>>>>> uk.org.ponder.reflect.JDKReflectiveCache.invokeMethod(JDKReflectiveCache.java:17)
>>>>>>>     at
>>>>>>> uk.org.ponder.reflect.JDKReflectiveCache.invokeMethod(JDKReflectiveCache.java:77)
>>>>>>>     at
>>>>>>> uk.org.ponder.reflect.ReflectiveCache.invokeMethod(ReflectiveCache.java:141)
>>>>>>>     at
>>>>>>> uk.org.ponder.mapping.support.DARApplier.invokeBeanMethod(DARApplier.java:179)
>>>>>>>     at
>>>>>>> uk.org.ponder.rsf.state.support.RSVCApplier.invokeAction(RSVCApplier.java:218)
>>>>>>>     at
>>>>>>> uk.org.ponder.rsf.processor.support.RSFActionHandler$1.run(RSFActionHandler.java:189)
>>>>>>>     at
>>>>>>> uk.org.ponder.util.CollectingRunnableInvoker$1.run(CollectingRunnableInvoker.java:25)
>>>>>>>     at
>>>>>>> uk.org.ponder.rsf.flow.support.BasicScopedAlterationWrapper.invokeRunnable(BasicScopedAlterationWrapper.java:59)
>>>>>>>     at
>>>>>>> uk.org.ponder.rsf.flow.support.BasicScopedAlterationWrapper$$FastClassByCGLIB$$84f89202.invoke(<generated>)
>>>>>>>     at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:191)
>>>>>>>     at
>>>>>>> org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:628)
>>>>>>>     at
>>>>>>> uk.org.ponder.rsf.flow.support.BasicScopedAlterationWrapper$$EnhancerByCGLIB$$100f0a2f.invokeRunnable(<generated>)
>>>>>>>     at
>>>>>>> uk.org.ponder.rsf.flow.support.BasicScopedAlterationWrapper$$FastClassByCGLIB$$84f89202.invoke(<generated>)
>>>>>>>     at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:191)
>>>>>>>     at
>>>>>>> org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:628)
>>>>>>>     at
>>>>>>> uk.org.ponder.rsf.flow.support.BasicScopedAlterationWrapper$$EnhancerByCGLIB$$100f0a2f.invokeRunnable(<generated>)
>>>>>>>     at
>>>>>>> uk.org.ponder.util.CollectingRunnableInvoker$1.run(CollectingRunnableInvoker.java:29)
>>>>>>>     at
>>>>>>> uk.org.ponder.util.CollectingRunnableInvoker.invokeWrappers(CollectingRunnableInvoker.java:22)
>>>>>>>     at
>>>>>>> uk.org.ponder.util.CollectingRunnableInvoker.invokeRunnable(CollectingRunnableInvoker.java:14)
>>>>>>>     at
>>>>>>> uk.org.ponder.rsf.processor.support.RSFActionHandler.handle(RSFActionHandler.java:165)
>>>>>>>     at
>>>>>>> uk.org.ponder.rsf.processor.support.RSFActionHandler$$FastClassByCGLIB$$e3b6899d.invoke(<generated>)
>>>>>>>     at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:191)
>>>>>>>     at
>>>>>>> org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:628)
>>>>>>>     at
>>>>>>> uk.org.ponder.rsf.processor.support.RSFActionHandler$$EnhancerByCGLIB$$a3edfaa8.handle(<generated>)
>>>>>>>     at
>>>>>>> uk.org.ponder.rsf.processor.support.RootHandlerBeanBase.handlePost(RootHandlerBeanBase.java:125)
>>>>>>>     at
>>>>>>> uk.org.ponder.rsf.processor.support.RootHandlerBeanBase.handle(RootHandlerBeanBase.java:82)
>>>>>>>     at sun.reflect.GeneratedMethodAccessor522.invoke(Unknown Source)
>>>>>>>     at
>>>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>>>>>>     at java.lang.reflect.Method.invoke(Method.java:597)
>>>>>>>     at
>>>>>>> uk.org.ponder.reflect.JDKReflectiveCache.invokeMethod(JDKReflectiveCache.java:23)
>>>>>>>     at
>>>>>>> uk.org.ponder.reflect.JDKReflectiveCache.invokeMethod(JDKReflectiveCache.java:17)
>>>>>>>     at
>>>>>>> uk.org.ponder.reflect.JDKReflectiveCache.invokeMethod(JDKReflectiveCache.java:77)
>>>>>>>     at
>>>>>>> uk.org.ponder.rsac.support.RSACBeanLocatorImpl.createBean(RSACBeanLocatorImpl.java:553)
>>>>>>>     at
>>>>>>> uk.org.ponder.rsac.support.RSACBeanLocatorImpl.access$000(RSACBeanLocatorImpl.java:75)
>>>>>>>     at
>>>>>>> uk.org.ponder.rsac.support.RSACBeanLocatorImpl$1.run(RSACBeanLocatorImpl.java:449)
>>>>>>>     at
>>>>>>> uk.org.ponder.rsac.RSACErrorBridge.invokeRunnable(RSACErrorBridge.java:38)
>>>>>>>     at
>>>>>>> uk.org.ponder.rsac.support.RSACBeanLocatorImpl.createBean(RSACBeanLocatorImpl.java:447)
>>>>>>>     at
>>>>>>> uk.org.ponder.rsac.support.RSACBeanLocatorImpl.getLocalBean(RSACBeanLocatorImpl.java:348)
>>>>>>>     at
>>>>>>> uk.org.ponder.rsac.support.RSACBeanLocatorImpl.getBean(RSACBeanLocatorImpl.java:379)
>>>>>>>     at
>>>>>>> uk.org.ponder.rsac.support.PerRequestInfo$1.locateBean(PerRequestInfo.java:49)
>>>>>>>     at
>>>>>>> uk.ac.cam.caret.sakai.rsf.servlet.ReasonableSakaiServlet.service(ReasonableSakaiServlet.java:65)
>>>>>>>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
>>>>>>>     at
>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
>>>>>>>     at
>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
>>>>>>>     at
>>>>>>> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:659)
>>>>>>>     at
>>>>>>> org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:457)
>>>>>>>     at
>>>>>>> org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:359)
>>>>>>>     at
>>>>>>> org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:311)
>>>>>>>     at
>>>>>>> org.sakaiproject.tool.impl.ActiveToolComponent$MyActiveTool.forward(ActiveToolComponent.java:511)
>>>>>>>     at
>>>>>>> org.sakaiproject.portal.charon.SkinnableCharonPortal.forwardTool(SkinnableCharonPortal.java:1429)
>>>>>>>     at
>>>>>>> org.sakaiproject.portal.charon.handlers.ToolHandler.doTool(ToolHandler.java:204)
>>>>>>>     at
>>>>>>> org.sakaiproject.portal.charon.handlers.ToolHandler.doGet(ToolHandler.java:96)
>>>>>>>     at
>>>>>>> org.sakaiproject.portal.charon.handlers.ToolHandler.doPost(ToolHandler.java:73)
>>>>>>>     at
>>>>>>> org.sakaiproject.portal.charon.SkinnableCharonPortal.doPost(SkinnableCharonPortal.java:1224)
>>>>>>>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
>>>>>>>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
>>>>>>>     at
>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
>>>>>>>     at
>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
>>>>>>>     at
>>>>>>> org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:659)
>>>>>>>     at
>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
>>>>>>>     at
>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
>>>>>>>     at
>>>>>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
>>>>>>>     at
>>>>>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
>>>>>>>     at
>>>>>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>>>>>>>     at
>>>>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
>>>>>>>     at
>>>>>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
>>>>>>>     at
>>>>>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
>>>>>>>     at
>>>>>>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:879)
>>>>>>>     at
>>>>>>> org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
>>>>>>>     at
>>>>>>> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
>>>>>>>     at
>>>>>>> org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
>>>>>>>     at
>>>>>>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
>>>>>>>     at java.lang.Thread.run(Thread.java:662)
>>>>>>> Caused by: java.lang.ClassNotFoundException:
>>>>>>> org.sakaiproject.util.api.FormattedText
>>>>>>>     at
>>>>>>> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1438)
>>>>>>>     at
>>>>>>> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1284)
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Mon, Jan 9, 2012 at 9:40 AM, Paul Mungai <paulwando at gmail.com>wrote:
>>>>>>>
>>>>>>>> Just checked the logs.
>>>>>>>>
>>>>>>>> That error appears if one has not added gradebook as a tool to the
>>>>>>>> site in question. I presume in the next iteration, the warning be more
>>>>>>>> accurate to the users noting that they manage their sites and not the
>>>>>>>> admin.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Mon, Jan 9, 2012 at 8:52 AM, Paul Mungai <paulwando at gmail.com>wrote:
>>>>>>>>
>>>>>>>>> Thanks Wagner,
>>>>>>>>>
>>>>>>>>> It built successfully when unit tests are turned off:
>>>>>>>>>
>>>>>>>>> mvn clean install sakai:deploy -Dmaven.test.skip=true
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> However, am now getting this warning when I attempt to add a new
>>>>>>>>> assignment (assignments2)
>>>>>>>>>
>>>>>>>>> My apologies, but there seems to have been an error. Please note
>>>>>>>>> the time/date and the server you are on (located in the footer) and contact
>>>>>>>>> the support center for assistance resolving this problem.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Fri, Jan 6, 2012 at 9:19 PM, Wagner, Michelle R. <
>>>>>>>>> wagnermr at iupui.edu> wrote:
>>>>>>>>>
>>>>>>>>>>  Hi Paul,
>>>>>>>>>> It looks like your build failed because there is a new method in
>>>>>>>>>> the GradebookService for Sakai 2.9 (isPointsPossibleValid) that is not
>>>>>>>>>> implemented in
>>>>>>>>>> org.sakaiproject.assignment2.logic.test.stubs.GradebookServiceStub in
>>>>>>>>>> Assignment2 1.0.  Assignment2 uses a mock of the GradebookService for its
>>>>>>>>>> unit tests since the two tools are so tightly integrated.  I believe for
>>>>>>>>>> now you can build with unit tests turned off to avoid this error (or add
>>>>>>>>>> the unimplemented method locally).  It may be time for an updated release
>>>>>>>>>> of Assignment2 to work against 2.9 with unit tests turned on.
>>>>>>>>>>
>>>>>>>>>> Have a great day,
>>>>>>>>>> Michelle
>>>>>>>>>>  ------------------------------
>>>>>>>>>> *From:* sakai-dev-bounces at collab.sakaiproject.org [
>>>>>>>>>> sakai-dev-bounces at collab.sakaiproject.org] on behalf of Paul
>>>>>>>>>> Mungai [paulwando at gmail.com]
>>>>>>>>>> *Sent:* Friday, January 06, 2012 12:27 PM
>>>>>>>>>> *To:* sakai-dev Developers
>>>>>>>>>> *Subject:* Re: [Building Sakai] Create Turnitin Class &
>>>>>>>>>> Assignment Process Flow in SAKAI
>>>>>>>>>>
>>>>>>>>>>   Thanks David.
>>>>>>>>>>
>>>>>>>>>> Just noted that for assignment2 (tag 1.0), one needs to first
>>>>>>>>>> deploy the following dependencies:
>>>>>>>>>>
>>>>>>>>>> sakai-announcement-api-2.9-SNAPSHOT
>>>>>>>>>> sakai-assignment-api-2.9-SNAPSHOT
>>>>>>>>>> sakai-calendar-api-2.9-SNAPSHOT
>>>>>>>>>> sakai-message-api-2.9-SNAPSHOT
>>>>>>>>>> sakai-mock-2.9-SNAPSHOT
>>>>>>>>>> sakai-taggable-api-2.9-SNAPSHOT
>>>>>>>>>> slf4j-log4j12-1.4.3
>>>>>>>>>>
>>>>>>>>>> However, the build (offline) for assignment2 still fails. The
>>>>>>>>>> following error appears:
>>>>>>>>>>
>>>>>>>>>> [ERROR] COMPILATION ERROR :
>>>>>>>>>> [INFO]
>>>>>>>>>> -------------------------------------------------------------
>>>>>>>>>> [ERROR]
>>>>>>>>>> /opt/sakai-2.8.0/assignment-tags-1.0/impl/src/test/org/sakaiproject/assignment2/logic/test/stubs/GradebookServiceStub.java:[57,7]
>>>>>>>>>> org.sakaiproject.assignment2.logic.test.stubs.GradebookServiceStub is not
>>>>>>>>>> abstract and does not override abstract method
>>>>>>>>>> isPointsPossibleValid(java.lang.String,org.sakaiproject.service.gradebook.shared.Assignment,java.lang.Double)
>>>>>>>>>> in org.sakaiproject.service.gradebook.shared.GradebookService
>>>>>>>>>> [INFO] 1 error
>>>>>>>>>> [INFO]
>>>>>>>>>> -------------------------------------------------------------
>>>>>>>>>> [INFO]
>>>>>>>>>> ------------------------------------------------------------------------
>>>>>>>>>> [ERROR] BUILD FAILURE
>>>>>>>>>> [INFO]
>>>>>>>>>> ------------------------------------------------------------------------
>>>>>>>>>> [INFO] Compilation failure
>>>>>>>>>> /opt/sakai-2.8.0/assignment-tags-1.0/impl/src/test/org/sakaiproject/assignment2/logic/test/stubs/GradebookServiceStub.java:[57,7]
>>>>>>>>>> org.sakaiproject.assignment2.logic.test.stubs.GradebookServiceStub is not
>>>>>>>>>> abstract and does not override abstract method
>>>>>>>>>> isPointsPossibleValid(java.lang.String,org.sakaiproject.service.gradebook.shared.Assignment,java.lang.Double)
>>>>>>>>>> in org.sakaiproject.service.gradebook.shared.GradebookService
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Could the previous deployment of assignment1 affect this?
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Regards,
>>>>>>>>>> Paul Mungai
>>>>>>>>>>
>>>>>>>>>> "Ability is what youre capable of doing. Motivation determines
>>>>>>>>>> what you do. Attitude determines how well you do it" By Lou Holtz, Notre
>>>>>>>>>> Dame Football Coach
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Regards,
>>>>>>>>> Paul Mungai
>>>>>>>>>
>>>>>>>>> "Ability is what youre capable of doing. Motivation determines
>>>>>>>>> what you do. Attitude determines how well you do it" By Lou Holtz, Notre
>>>>>>>>> Dame Football Coach
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Regards,
>>>>>>>> Paul Mungai
>>>>>>>>
>>>>>>>> "Ability is what youre capable of doing. Motivation determines what
>>>>>>>> you do. Attitude determines how well you do it" By Lou Holtz, Notre Dame
>>>>>>>> Football Coach
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Regards,
>>>>>>> Paul Mungai
>>>>>>>
>>>>>>> Skype: pwando
>>>>>>> Twitter: pwando
>>>>>>> Facebook: paulwando
>>>>>>> LinkedIn: http://za.linkedin.com/pub/paul-mungai/b/388/512
>>>>>>> Blog: http://pmungai.wordpress.com
>>>>>>> Flickr: http://bit.ly/b84lip
>>>>>>>
>>>>>>> "Ability is what youre capable of doing. Motivation determines what
>>>>>>> you do. Attitude determines how well you do it" By Lou Holtz, Notre Dame
>>>>>>> Football Coach
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> sakai-dev mailing list
>>>>>>> sakai-dev at collab.sakaiproject.orghttp://collab.sakaiproject.org/mailman/listinfo/sakai-dev
>>>>>>>
>>>>>>> TO UNSUBSCRIBE: send email to sakai-dev-unsubscribe at collab.sakaiproject.org with a subject of "unsubscribe"
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> sakai-dev mailing list
>>>>>>> sakai-dev at collab.sakaiproject.org
>>>>>>> http://collab.sakaiproject.org/mailman/listinfo/sakai-dev
>>>>>>>
>>>>>>> TO UNSUBSCRIBE: send email to
>>>>>>> sakai-dev-unsubscribe at collab.sakaiproject.org with a subject of
>>>>>>> "unsubscribe"
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Regards,
>>>>>> Paul Mungai
>>>>>>
>>>>>> Skype: pwando
>>>>>> Twitter: pwando
>>>>>> Facebook: paulwando
>>>>>> LinkedIn: http://za.linkedin.com/pub/paul-mungai/b/388/512
>>>>>> Blog: http://pmungai.wordpress.com
>>>>>> Flickr: http://bit.ly/b84lip
>>>>>>
>>>>>> "Ability is what youre capable of doing. Motivation determines what
>>>>>> you do. Attitude determines how well you do it" By Lou Holtz, Notre Dame
>>>>>> Football Coach
>>>>>>
>>>>>> _______________________________________________
>>>>>> sakai-dev mailing list
>>>>>> sakai-dev at collab.sakaiproject.org
>>>>>> http://collab.sakaiproject.org/mailman/listinfo/sakai-dev
>>>>>>
>>>>>> TO UNSUBSCRIBE: send email to
>>>>>> sakai-dev-unsubscribe at collab.sakaiproject.org with a subject of
>>>>>> "unsubscribe"
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>>
>>>>> Regards
>>>>> ----------------------------------------------------
>>>>> Jehan Badshah | Sr. Software Engineer
>>>>> FAST - National University of Computer and Emerging Sciences
>>>>> A.K. Brohi Road, H-11/4, Islamabad, Pakistan
>>>>> UAN: +92 (0)51 - 111 128 128 ext 344
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> sakai-dev mailing list
>>>>> sakai-dev at collab.sakaiproject.org
>>>>> http://collab.sakaiproject.org/mailman/listinfo/sakai-dev
>>>>>
>>>>> TO UNSUBSCRIBE: send email to
>>>>> sakai-dev-unsubscribe at collab.sakaiproject.org with a subject of
>>>>> "unsubscribe"
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Regards,
>>>> Paul Mungai
>>>>
>>>> "Ability is what youre capable of doing. Motivation determines what you
>>>> do. Attitude determines how well you do it" By Lou Holtz, Notre Dame
>>>> Football Coach
>>>>
>>>
>>>
>>>
>>> --
>>> Regards,
>>> Paul Mungai
>>>
>>> Skype: pwando
>>> Twitter: pwando
>>> Facebook: paulwando
>>> LinkedIn: http://za.linkedin.com/pub/paul-mungai/b/388/512
>>> Blog: http://pmungai.wordpress.com
>>> Flickr: http://bit.ly/b84lip
>>>
>>> "Ability is what youre capable of doing. Motivation determines what you
>>> do. Attitude determines how well you do it" By Lou Holtz, Notre Dame
>>> Football Coach
>>>
>>
>>
>>
>> --
>> Regards,
>> Paul Mungai
>>
>> Skype: pwando
>> Twitter: pwando
>> Facebook: paulwando
>> LinkedIn: http://za.linkedin.com/pub/paul-mungai/b/388/512
>> Blog: http://pmungai.wordpress.com
>> Flickr: http://bit.ly/b84lip
>>
>> "Ability is what youre capable of doing. Motivation determines what you
>> do. Attitude determines how well you do it" By Lou Holtz, Notre Dame
>> Football Coach
>>
>> _______________________________________________
>> sakai-dev mailing list
>> sakai-dev at collab.sakaiproject.org
>> http://collab.sakaiproject.org/mailman/listinfo/sakai-dev
>>
>> TO UNSUBSCRIBE: send email to
>> sakai-dev-unsubscribe at collab.sakaiproject.org with a subject of
>> "unsubscribe"
>>
>
>
>
> --
>
> Regards
> ----------------------------------------------------
> Jehan Badshah | Sr. Software Engineer
> FAST - National University of Computer and Emerging Sciences
> A.K. Brohi Road, H-11/4, Islamabad
> UAN: +92 (0)51 - 111 128 128 ext 344
>
>
>


-- 
Regards,
Paul Mungai


"Ability is what youre capable of doing. Motivation determines what you do.
Attitude determines how well you do it" By Lou Holtz, Notre Dame Football
Coach
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://collab.sakaiproject.org/pipermail/sakai-dev/attachments/20120109/b65bdae2/attachment.html 


More information about the sakai-dev mailing list