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

Paul Mungai paulwando at gmail.com
Tue Jan 10 05:27:45 PST 2012


Hi David,

I have sakai-kernel-util-1.2.1. How do I deploy the lower version?


On Tue, Jan 10, 2012 at 12:57 PM, David Horwitz <david.horwitz at uct.ac.za>wrote:

> **
> Hi Paul,
>
> what version of kernel-util is deployed in the assignment2 components
> WEB-INF/lib folder?
>
> What I see:
>
> tomcat at srvslscle002:/home/david> ls
> /usr/local/sakai/components/sakai-assignment2-pack/WEB-INF/lib/sakai-kernel-util*
>
> /usr/local/sakai/components/sakai-assignment2-pack/WEB-INF/lib/sakai-kernel-util-1.1.10.jar
>
>
> Which runs in 2.8 with no problem
>
> D
>
> On 01/10/2012 12:46 PM, Paul Mungai wrote:
>
> Has anyone managed to deploy assignment2 in 2.8.0?
>
> I managed to build assignment2 successfully under 2.8.x as suggested.
>
> However I get an error when I try to add a new assignment (as reported
> earlier). The error is related to class FormattedText not being found:
>
> uccessive 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.logic.impl.ExternalLogicImpl.cleanupUserStrings(ExternalLogicImpl.java:165)
>     at
> org.sakaiproject.assignment2.logic.impl.AssignmentLogicImpl.saveAssignment(AssignmentLogicImpl.java:275)
>     at
> org.sakaiproject.assignment2.tool.beans.AssignmentAuthoringBean.internalProcessPost(AssignmentAuthoringBean.java:288)
>     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.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.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 java.net.URLClassLoader$1.run(URLClassLoader.java:202)
>     at java.security.AccessController.doPrivileged(Native Method)
>     at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
>     at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
>     at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
>     ... 83 more
>
>
>
> On Mon, Jan 9, 2012 at 8:59 PM, Paul Mungai <paulwando at gmail.com> wrote:
>
>> Thats true Johan,
>>
>>  But that is double work (one part in sakai and the other in turnitin
>> site) and there is no point really of having Sakai as the mediator in this
>> process.
>>
>>
>>  On Mon, Jan 9, 2012 at 8:45 PM, Jehan Badshah <jehan.badshah at nu.edu.pk>wrote:
>>
>>> You can also include exclude it using turnitin report (e.g., exclude
>>> checking from institutional repository)
>>>
>>>
>>>  but sakai community should help us by telling that link
>>> https://source.sakaiproject.org/contrib/turnitin/trunk/contentreview-impl/docs/readme.html
>>> is related to which sakai version.
>>>
>>>  and how to configure assignment with these options.
>>>
>>>
>>>
>>>
>>>  On Mon, Jan 9, 2012 at 11:37 PM, Paul Mungai <paulwando at gmail.com>wrote:
>>>
>>>> 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 <2012-01-09%2010>: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<%2B92%20%280%2951%20-%20111%20128%20128%20ext%20344>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>  --
>>>> 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
>>>>
>>>> _______________________________________________
>>>> 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<%2B92%20%280%2951%20-%20111%20128%20128%20ext%20344>
>>>
>>>
>>>
>>
>>
>>  --
>> 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
>
>
> _______________________________________________
> sakai-dev mailing listsakai-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

"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/20120110/71ab2134/attachment.html 


More information about the sakai-dev mailing list