[Building Sakai] Clog tool version for Sakai 2.9.1

JUAN JOSé MEROñO SáNCHEZ jjmerono at um.es
Thu Jul 4 02:33:37 PDT 2013


Hi,

     There are no duplicates deployed, only 0.9.4 version present. I'm 
not upgrading any version is a new installation. These are clog tables 
in Oracle:

CREATE TABLE CLOG_POST
(
    POST_ID          CHAR (36) NOT NULL,
    SITE_ID          VARCHAR2 (255),
    TITLE            VARCHAR2 (255) NOT NULL,
    CONTENT          CLOB NOT NULL,
    CREATED_DATE     TIMESTAMP NOT NULL,
    MODIFIED_DATE    TIMESTAMP,
    CREATOR_ID       VARCHAR2 (255) NOT NULL,
    KEYWORDS         VARCHAR2 (255),
    ALLOW_COMMENTS   NUMBER (10, 0),
    VISIBILITY       VARCHAR2 (16) NOT NULL,
    PRIMARY KEY (POST_ID)
);

CREATE TABLE CLOG_AUTOSAVED_POST
(
    POST_ID          CHAR (36) NOT NULL,
    SITE_ID          VARCHAR2 (255),
    TITLE            VARCHAR2 (255) NOT NULL,
    CONTENT          CLOB NOT NULL,
    CREATED_DATE     TIMESTAMP NOT NULL,
    MODIFIED_DATE    TIMESTAMP,
    CREATOR_ID       VARCHAR2 (255) NOT NULL,
    KEYWORDS         VARCHAR2 (255),
    ALLOW_COMMENTS   NUMBER (10, 0),
    VISIBILITY       VARCHAR2 (16) NOT NULL,
    PRIMARY KEY (POST_ID)
);

CREATE TABLE CLOG_COMMENT
(
    COMMENT_ID      CHAR (36) NOT NULL,
    POST_ID         CHAR (36) NOT NULL,
    SITE_ID         VARCHAR2 (255) NOT NULL,
    CREATOR_ID      CHAR (36) NOT NULL,
    CREATED_DATE    TIMESTAMP NOT NULL,
    MODIFIED_DATE   TIMESTAMP NOT NULL,
    CONTENT         CLOB NOT NULL,
    PRIMARY KEY (COMMENT_ID)
);

CREATE TABLE CLOG_AUTHOR
(
    USER_ID          CHAR (36) NOT NULL,
    SITE_ID          VARCHAR2 (255) NOT NULL,
    TOTAL_POSTS      NUMBER (10, 0) NOT NULL,
    LAST_POST_DATE   TIMESTAMP,
    TOTAL_COMMENTS   NUMBER (10, 0) NOT NULL,
    PRIMARY KEY (USER_ID, SITE_ID)
)

     After adding a new post, it appears in the database, but keywords 
column is empty (null) and fails when try to display posts. If I add 
something manually in keywords column then the post appears and 
everything works.
I've added this line in Post.java to avoid NPE, I don't know if mysql 
returns "" instead of null so this only affects Oracle installations, 
but with this line everything works.

     public void setKeywordsText(String keywordsText) {
/*if (keywordsText==null) return;*/
         String[] keywordsArray = keywordsText.split(",");
         setKeywords(Arrays.asList(keywordsArray));
     }

Another better way to fix the problem? Thanks !!


El 04/07/2013 9:38, Steve Swinsburg escribió:
> Hi,
>
> This may be an oracle only bug. Though can you first check you have no 
> duplicates deployed:
>
> [steve:~/dev/sakai/tomcat/2.9.x]$ find . -name clog*
> ./components/clog-pack
> ./components/clog-pack/META-INF/maven/org.sakaiproject.clog/clog-pack
> ./components/clog-pack/WEB-INF/lib/clog-impl-0.9.4.jar
> ./shared/lib/clog-api-0.9.4.jar
> ./shared/lib/clog-help-0.9.4.jar
> ./webapps/clog-tool
> ./webapps/clog-tool/clog-translations-en_DEBUG.js
> ./webapps/clog-tool/clog-translations-en_GB.js
> ./webapps/clog-tool/clog-translations-es_ES.js
> ./webapps/clog-tool/clog-translations-pt_PT.js
> ./webapps/clog-tool/clog-translations-sv_SE.js
> ./webapps/clog-tool/clog-translations-tr_TR.js
> ./webapps/clog-tool/css/clog.css
> ./webapps/clog-tool/js/clog.js
> ./webapps/clog-tool/js/clog_permissions.js
> ./webapps/clog-tool/js/clog_utils.js
> ./webapps/clog-tool/META-INF/maven/org.sakaiproject.clog/clog-tool
> ./webapps/clog-tool/tools/clog.xml
> ./webapps/clog-tool/tools/clogadmin.xml
> ./webapps/clog-tool/WEB-INF/classes/clog-rss.properties
> ./webapps/clog-tool/WEB-INF/classes/clog.properties
> ./webapps/clog-tool/WEB-INF/classes/org/sakaiproject/clog
> ./webapps/clog-tool/WEB-INF/classes/org/sakaiproject/clogadmin
> ./webapps/clog-tool.war
> ./work/Catalina/localhost/clog-tool
>
> Also, from what version clog are you upgrading? Can you post the 
> structure of the clog_post table? Are the contents of the entry in 
> that table for the particular post correct? I wonder if there was an 
> issue with it saving the data.
>
> cheers,
> Steve
>
>
> On Wed, Jul 3, 2013 at 11:02 PM, JUAN JOSé MEROñO SáNCHEZ 
> <jjmerono at um.es <mailto:jjmerono at um.es>> wrote:
>
>
>     We are trying to deploy Clog 0.9.4 in Sakai 2.9.2 using Oracle,
>     but we've got this error when we try to add a new entry.
>
>     INFO
>     org.sakaiproject.clog.tool.entityprovider.ClogPostEntityProvider -
>     Failed to get post with id 'a99b812b-5344-467c-ab36-a78e40fedb8a'.
>     This could happen if this is the first time a post has been saved
>     or published.
>     java.lang.Exception: getPost: Unable to find post with
>     id:a99b812b-5344-467c-ab36-a78e40fedb8a
>             at
>     org.sakaiproject.clog.impl.PersistenceManager.getPost(PersistenceManager.java:514)
>             at
>     org.sakaiproject.clog.impl.ClogManagerImpl.getPostHeader(ClogManagerImpl.java:101)
>             at
>     org.sakaiproject.clog.tool.entityprovider.ClogPostEntityProvider.createEntity(ClogPostEntityProvider.java:132)
>             at
>     org.sakaiproject.entitybroker.rest.EntityHandlerImpl.handleEntityAccess(EntityHandlerImpl.java:667)
>             at
>     org.sakaiproject.entitybroker.util.servlet.DirectServlet.dispatch(DirectServlet.java:183)
>             at
>     org.sakaiproject.entitybroker.servlet.SakaiDirectServlet.dispatch(SakaiDirectServlet.java:146)
>             at
>     org.sakaiproject.entitybroker.util.servlet.DirectServlet.handleRequest(DirectServlet.java:154)
>             at
>     org.sakaiproject.entitybroker.util.servlet.DirectServlet.service(DirectServlet.java:132)
>             at
>     javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
>             at
>     org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
>             at
>     org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>             at
>     org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:695)
>             at
>     org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
>             at
>     org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>             at
>     org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
>             at
>     org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
>             at
>     org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
>             at
>     org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
>             at
>     org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
>             at
>     org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
>             at
>     org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
>             at
>     org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
>             at
>     org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
>             at
>     org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
>             at
>     org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
>             at
>     java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
>             at
>     java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
>             at java.lang.Thread.run(Thread.java:722)
>     DEBUG umu.sakai.login.event.UmuLoginEvent  - Evento:
>     clog.post.created::/clog/e2968dfa-2579-4afb-b87d-d6aacb502846/posts/a99b812b-5344-467c-ab36-a78e40fedb8a
>     DEBUG
>     org.sakaiproject.search.component.service.impl.SearchNotificationAction
>     - Notify clog.post.created
>     DEBUG
>     org.sakaiproject.search.component.service.impl.SearchIndexBuilderImpl
>     - Add resource
>     org.sakaiproject.event.impl.BaseNotificationService$BaseNotification
>     Edit at 1d62945::0:clog.post.created@/clog/e2968dfa-2579-4afb-b87d-d6aacb502846/posts/a99b812b-5344-467c-ab36-a78e40fedb8a
>     <mailto:Edit at 1d62945::0:clog.post.created@/clog/e2968dfa-2579-4afb-b87d-d6aacb502846/posts/a99b812b-5344-467c-ab36-a78e40fedb8a>[m,
>     2]
>     DEBUG
>     org.sakaiproject.search.component.service.impl.SearchIndexBuilderImpl
>     - new entitycontent producer
>     DEBUG
>     org.sakaiproject.search.component.service.impl.SearchIndexBuilderImpl
>     - Matched Entity Content Producer for event
>     0:clog.post.created@/clog/e2968dfa-2579-4afb-b87d-d6aacb502846/posts/a99b812b-5344-467c-ab36-a78e40fedb8a[m,
>     2] with org.sakaiproject.clog.impl.ClogContentProducer at de6bc2
>     DEBUG
>     org.sakaiproject.search.component.service.impl.SearchIndexBuilderImpl
>     - SEARCHBUILDER: Added Resource 1
>     /clog/e2968dfa-2579-4afb-b87d-d6aacb502846/posts/a99b812b-5344-467c-ab36-a78e40fedb8a
>     WARN  org.sakaiproject.clog.impl.ClogManagerImpl  - getEntity():
>     java.lang.NullPointerException
>     WARN  org.sakaiproject.event.impl.ClusterEventTracking -
>     postEvent, notifyObservers(), event:
>     0:clog.post.created@/clog/e2968dfa-2579-4afb-b87d-d6aacb502846/posts/a99b812b-5344-467c-ab36-a78e40fedb8a[m,
>     2]
>     java.lang.NullPointerException
>             at
>     org.sakaiproject.clog.impl.NewPostNotification.getSubject(NewPostNotification.java:91)
>             at
>     org.sakaiproject.clog.impl.NewPostNotification.getHeaders(NewPostNotification.java:105)
>             at
>     org.sakaiproject.util.EmailNotification.reNotify(EmailNotification.java:221)
>             at
>     org.sakaiproject.util.EmailNotification.notify(EmailNotification.java:161)
>             at
>     org.sakaiproject.event.impl.BaseNotificationService$BaseNotification.notify(BaseNotificationService.java:1111)
>             at
>     org.sakaiproject.event.impl.BaseNotificationService.update(BaseNotificationService.java:613)
>             at java.util.Observable.notifyObservers(Observable.java:159)
>             at
>     org.sakaiproject.event.impl.BaseEventTrackingService.notifyObservers(BaseEventTrackingService.java:126)
>             at
>     org.sakaiproject.event.impl.ClusterEventTracking.postEvent(ClusterEventTracking.java:305)
>             at
>     org.sakaiproject.event.impl.BaseEventTrackingService.post(BaseEventTrackingService.java:276)
>             at
>     org.sakaiproject.clog.impl.SakaiProxyImpl.postEvent(SakaiProxyImpl.java:451)
>             at
>     org.sakaiproject.clog.tool.entityprovider.ClogPostEntityProvider.createEntity(ClogPostEntityProvider.java:145)
>             at
>     org.sakaiproject.entitybroker.rest.EntityHandlerImpl.handleEntityAccess(EntityHandlerImpl.java:667)
>             at
>     org.sakaiproject.entitybroker.util.servlet.DirectServlet.dispatch(DirectServlet.java:183)
>             at
>     org.sakaiproject.entitybroker.servlet.SakaiDirectServlet.dispatch(SakaiDirectServlet.java:146)
>             at
>     org.sakaiproject.entitybroker.util.servlet.DirectServlet.handleRequest(DirectServlet.java:154)
>             at
>     org.sakaiproject.entitybroker.util.servlet.DirectServlet.service(DirectServlet.java:132)
>             at
>     javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
>             at
>     org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
>             at
>     org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>             at
>     org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:695)
>             at
>     org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
>             at
>     org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>             at
>     org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
>             at
>     org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
>             at
>     org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
>             at
>     org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
>             at
>     org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
>             at
>     org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
>             at
>     org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
>             at
>     org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
>             at
>     org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
>             at
>     org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
>             at
>     org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
>             at
>     java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
>             at
>     java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
>             at java.lang.Thread.run(Thread.java:722)
>     ERROR
>     org.sakaiproject.clog.tool.entityprovider.ClogPostEntityProvider -
>     Caught exception whilst getting posts.
>     java.lang.NullPointerException
>             at
>     org.sakaiproject.clog.api.datamodel.Post.setKeywordsText(Post.java:102)
>             at
>     org.sakaiproject.clog.impl.PersistenceManager.transformResultSetInPostCollection(PersistenceManager.java:625)
>             at
>     org.sakaiproject.clog.impl.PersistenceManager.getPosts(PersistenceManager.java:476)
>             at
>     org.sakaiproject.clog.impl.ClogManagerImpl.getPosts(ClogManagerImpl.java:119)
>             at
>     org.sakaiproject.clog.tool.entityprovider.ClogPostEntityProvider.getEntities(ClogPostEntityProvider.java:223)
>             at
>     org.sakaiproject.entitybroker.impl.EntityBrokerManagerImpl.internalGetEntities(EntityBrokerManagerImpl.java:590)
>             at
>     org.sakaiproject.entitybroker.impl.EntityBrokerManagerImpl.getEntitiesData(EntityBrokerManagerImpl.java:442)
>             at
>     org.sakaiproject.entitybroker.rest.EntityHandlerImpl.handleEntityAccess(EntityHandlerImpl.java:561)
>             at
>     org.sakaiproject.entitybroker.util.servlet.DirectServlet.dispatch(DirectServlet.java:183)
>             at
>     org.sakaiproject.entitybroker.servlet.SakaiDirectServlet.dispatch(SakaiDirectServlet.java:146)
>             at
>     org.sakaiproject.entitybroker.util.servlet.DirectServlet.handleRequest(DirectServlet.java:154)
>             at
>     org.sakaiproject.entitybroker.util.servlet.DirectServlet.service(DirectServlet.java:132)
>             at
>     javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
>             at
>     org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
>             at
>     org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>             at
>     org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:695)
>             at
>     org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
>             at
>     org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>             at
>     org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
>             at
>     org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
>             at
>     org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
>             at
>     org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
>             at
>     org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
>             at
>     org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
>             at
>     org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
>             at
>     org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
>             at
>     org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
>             at
>     org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
>             at
>     org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
>             at
>     java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
>             at
>     java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
>             at java.lang.Thread.run(Thread.java:722)
>     INFO: EntityEncodingManager: No entities to format (json) and
>     output for ref (/clog-post)
>
>     Any idea?
>
>     El 03/07/2013 9:25, Steve Swinsburg escribió:
>>     Yep 0.9.4 is in the wild.
>>
>>     Cheers
>>     Steve
>>
>>     Sent from my iPhone
>>
>>     On 03/07/2013, at 17:02, Adrian Fish <adrian.r.fish at gmail.com
>>     <mailto:adrian.r.fish at gmail.com>> wrote:
>>
>>>     Steve, you've just tagged 0.9.4, right?
>>>
>>>     Marco, sorry for not getting back earlier. My day job at the
>>>     moment does not involve a lot of Sakai so I have to wait 'til
>>>     I'm at home to do Sakai stuff. Steve's done the business with a
>>>     0.9.4 tag so I'd just do some testing on that. As he says, make
>>>     sure you clear out all the old jars so you don't get dll hell.
>>>
>>>     Cheers,
>>>     Adrian.
>>>
>>>
>>>
>>>
>>>     On 3 July 2013 00:26, Steve Swinsburg <steve.swinsburg at gmail.com
>>>     <mailto:steve.swinsburg at gmail.com>> wrote:
>>>
>>>         Clog 0.9.4 should be released today so just hold out for
>>>         that. And that works well with 2.9. Make sure you remove old
>>>         versions from tomcat, that is probably the cause of the
>>>         problem you are getting.
>>>
>>>         Cheers
>>>         Steve
>>>
>>>         Sent from my iPhone
>>>
>>>         On 03/07/2013, at 0:54, Marco Antonio Bernal Cataño
>>>         <bernalmarcoa at gmail.com <mailto:bernalmarcoa at gmail.com>> wrote:
>>>
>>>>         Adrian , I was  this error in the import to clog, whit clog
>>>>         0.9.3 in sakai-2.9.2 :
>>>>
>>>>         org.springframework.beans.factory.BeanCreationException:
>>>>         Error creating bean with name
>>>>         'org.sakaiproject.clog.api.ClogManager' defined in file
>>>>         [/opt/sakai92cindi/components/clog-pack/WEB-INF/components.xml]:
>>>>         Error setting property values; nested exception is
>>>>         org.springframework.beans.NotWritablePropertyException:
>>>>         Invalid property 'importBlog1Data' of bean class
>>>>         [org.sakaiproject.clog.impl.ClogManagerImpl]: Bean property
>>>>         'importBlog1Data' is not writable or has an invalid setter
>>>>         method. Does the parameter type of the setter match the
>>>>         return type of the getter?
>>>>
>>>>         And if I use the clogAdmin  to import only populate the
>>>>         post tlables and no  the clog_author table.
>>>>
>>>>         Are  you recommend work whith  clog trunk with  sakai 2.9.2 ?
>>>>
>>>>
>>>>         2013/7/1 Adrian Fish <adrian.r.fish at gmail.com
>>>>         <mailto:adrian.r.fish at gmail.com>>
>>>>
>>>>             Trunk and 0.9.3 are a lot different. Trunk should be
>>>>             cool on 2.9.1 though. What problems have you encountered?
>>>>
>>>>             Cheers,
>>>>             Adrian.
>>>>
>>>>
>>>>             On 1 July 2013 16:28, Jaco Gillman
>>>>             <jaco at opencollab.co.za <mailto:jaco at opencollab.co.za>>
>>>>             wrote:
>>>>
>>>>                 Hi All
>>>>
>>>>                 I am trying to install Clog on a Sakai 2.9.1
>>>>                 release. Which Clog tag version must I use or must
>>>>                 trunk be used? I checked out both Clog-trunk and
>>>>                 Clog-0.9.3, compared them with each other which
>>>>                 shows a lot of differences. Trunk does not seem to
>>>>                 cater for Sakai 2.9.1 or am I wrong? Online
>>>>                 documentation also seems to be a outdated...
>>>>
>>>>                 Any help/advice would be much appreciated.
>>>>
>>>>                 Regards,
>>>>
>>>>                 *Jaco Gillman*
>>>>
>>>>                 Java Developer
>>>>
>>>>                 opencollab
>>>>
>>>>                 *Tel*: +27 21 970 4017  | *Fax*:**+27 21 914 3098
>>>>
>>>>                 *Email*: jaco at opencollab.co.za
>>>>                 <mailto:jaco at opencollab.co.za>  | *Skype*: gillmanjc
>>>>
>>>>                 *Web*: www.opencollab.co.za
>>>>                 <http://www.opencollab.co.za/>
>>>>
>>>>
>>>>                 ------------------------------------------------------------------------
>>>>                 See OpenCollab email disclaimer at
>>>>                 http://www.opencollab.co.za/email-disclaimer
>>>>                 _______________________________________________
>>>>                 sakai-dev mailing list
>>>>                 sakai-dev at collab.sakaiproject.org
>>>>                 <mailto: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
>>>>                 <mailto:sakai-dev-unsubscribe at collab.sakaiproject.org>
>>>>                 with a subject of "unsubscribe"
>>>>
>>>>
>>>>
>>>>             _______________________________________________
>>>>             sakai-dev mailing list
>>>>             sakai-dev at collab.sakaiproject.org
>>>>             <mailto: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
>>>>             <mailto:sakai-dev-unsubscribe at collab.sakaiproject.org>
>>>>             with a subject of "unsubscribe"
>>>>
>>>>
>>>>         _______________________________________________
>>>>         sakai-dev mailing list
>>>>         sakai-dev at collab.sakaiproject.org
>>>>         <mailto: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
>>>>         <mailto:sakai-dev-unsubscribe at collab.sakaiproject.org> with
>>>>         a subject of "unsubscribe"
>>>
>>>
>>
>>
>>     _______________________________________________
>>     sakai-dev mailing list
>>     sakai-dev at collab.sakaiproject.org  <mailto:sakai-dev at collab.sakaiproject.org>
>>     http://collab.sakaiproject.org/mailman/listinfo/sakai-dev
>>
>>     TO UNSUBSCRIBE: send email tosakai-dev-unsubscribe at collab.sakaiproject.org  <mailto:sakai-dev-unsubscribe at collab.sakaiproject.org>  with a subject of "unsubscribe"
>
>
>     _______________________________________________
>     sakai-dev mailing list
>     sakai-dev at collab.sakaiproject.org
>     <mailto: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
>     <mailto: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"

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://collab.sakaiproject.org/pipermail/sakai-dev/attachments/20130704/f58c0ebb/attachment.html 


More information about the sakai-dev mailing list