Creative Commons Attribution- NonCommercial-ShareAlike 2.5 License Sakai Programmer's Café Sakai development and app/tool tips Aaron Zeckoski

Slides:



Advertisements
Similar presentations
Creative Commons Attribution- NonCommercial-ShareAlike 2.5 License Sakai Programmer's Café Sakai development tips Aaron Zeckoski
Advertisements

Creative Commons Attribution- NonCommercial-ShareAlike 2.5 License Sakai Programmer's Café Sakai Tool Naming Tips Aaron Zeckoski
Ravi Mathur Updated December 5,  ODTBX uses Git (see the ODTBX Git Tutorial) ODTBXODTBX Git Tutorial ◦ SourceForge account needed (free). SourceForge.
FI-WARE Collaborative Tools Miguel Carrillo (Telefónica I+D)
Creative Commons Attribution- NonCommercial-ShareAlike 2.5 License Sakai Programmers’ Café Sakai NWU Workshop, South Africa Recap of Sakai Services Antranig.
A digital commerce consultancy san francisco ~ new york ~ london ~ chişinău ~ guadalajara Apache Cayenne Object Relational Mapping.
Developing CAS in Eclipse
Java development infrastructure at FMI Pekka Rantala FMI.
Source Control in MATLAB A tool for tracking changes in software development projects. Stuart Nelis & Rachel Sheldon.
Developing the NSDL User Portal Dean Krafft, Cornell University
Business Intelligence (3 of 3): Technically Speaking, This is How We Did It PRESENTED BY.
Web Applications Basics. Introduction to Web Web features Clent/Server HTTP HyperText Markup Language URL addresses Web server - a computer program that.
What does QA mean to Sakai? Megan May – Sakai Foundation Aaron Zeckoski – CARET Alan Berg – UVA David Horwitz – Cape Town Seth Theriault- Columbia Linda.
Creating a Hello App Using Google App Engine. What are Google apps? Apps is an abbreviation for application. An app is a piece of software. It can run.
Creative Commons Attribution- NonCommercial-ShareAlike 2.5 License Sakai Programmer's Café Configuring Sakai from Outside the Web Application Tony Atkins.
Creative Commons Attribution- NonCommercial-ShareAlike 2.5 License Sakai Programmer's Café Sakai Montreal CRIM Workshop Data Persistence and Intro to Hibernate.
Open Source Workshop1 IBM Software Group Working with Apache Tuscany A Hands-On Workshop Luciano Resende Haleh.
Maven and Stack Starter Michael Youngstrom. Notes This is a training NOT a presentation Please ask questions Prerequisites – Introduction to Java Stack.
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
Fall CIS 764 Database Systems Engineering L3: Two Assignments Relating to J2EE.
Chris Hyzer University of Pennsylvania
Wikis are websites where pages can be edited using an online document editor. Users can easily edit and share content. Enterprise wikis are platforms.
Tomcat Spencer Uresk. Notes This is a training NOT a presentation Please ask questions This is being recorded
CMPUT 391 – Database Management Systems Department of Computing Science University of Alberta CMPUT 391 Database Management Systems Web based Applications,
UPortal 101 JA-SIG Pre-conference Seminar Susan Bramhall & Andrew Petro Vancouver, BC, June 4, 2006.
JAVA SERVER PAGES. 2 SERVLETS The purpose of a servlet is to create a Web page in response to a client request Servlets are written in Java, with a little.
Creative Commons Attribution- NonCommercial-ShareAlike 2.5 License Sakai Programmers’ Café Introduction to Sakai and Sakai Services Aaron Zeckoski
Development Environment Matthew Sell, CSSE Student MASS Research Participant, October 2014.
Sakai Best Practices Alan Berg, Interim QA Director, Sakai Foundation Aaron Zeckoski, Software Engineer, Unicon and Maint Team Lead, Sakai.
Deploying Sakai: First Steps David Haines University of Michigan.
Configuring Sakai John Leasia Sakai Vancouver Conference May 30 – June 2, 2006.
Creative Commons Attribution- NonCommercial-ShareAlike 2.5 License Sakai Programmer's Café Sakai Montreal CRIM Workshop Introduction to Spring Framework,
The Simplest Possible Tool - Iteration 1 Vancouver Bootcamp Mike Osterman
June 12th, th Sakai Conference - Amsterdam Sakai 2.4.x System Administrator’s Guide Tony Atkins 7th Sakai Conference Amsterdam, Netherlands June12th,
Grouper Training Developers and Architects Advanced Topics Chris Hyzer Internet2 University of Pennsylvania This work licensed under a Creative Commons.
Creative Commons Attribution- NonCommercial-ShareAlike 2.5 License Sakai Programmer's Café Sakai Persistence and Hibernate Aaron Zeckoski
JDBC Tutorial CSCI 201L Jeffrey Miller, Ph.D. HTTP :// WWW - SCF. USC. EDU /~ CSCI 201 USC CSCI 201L.
Getting Involved in Sakai Peter A. Knoop Project Coordinator Sakai Foundation/University of Michigan 8th Sakai Conference4-7 December 2007Newport Beach.
Creative Commons Attribution- NonCommercial-ShareAlike 2.5 License Sakai Programmer's Café Sakai Training Workshop Tata Interactive Systems Mumbai, India.
Connect. Communicate. Collaborate PerfsonarUI plug-in tutorial Nina Jeliazkova ISTF, Bulgaria.
Persistence – Iteration 4 Vancouver Bootcamp Aaron Zeckoski
Creative Commons Attribution- NonCommercial-ShareAlike 2.5 License Sakai Programmer's Café Sakai Montreal CRIM Workshop Sakai code exercises Aaron Zeckoski.
Sakai WebApp Structure
IPT – Getting Started June Online Resources Project Website Requirements Server Preparation Installation Running IPT Installation Demo Upgrade/Reinstall.
Unlocking the Community Toolchest Tony Atkins UHI Millenium Institute.
Where is OSP? OSP Resources & Pathways. Websites: OSP & Sakai OSP: –Being redesigned—as we speak—to provide.
RCE Platform Technology (RPT) Mark Arndt User Support.
Persistence – Iteration 4 Vancouver Bootcamp Aaron Zeckoski
Creative Commons Attribution- NonCommercial-ShareAlike 2.5 License Sakai Programmer's Café Introduction to Reasonable Server Faces Aaron Zeckoski
Part 4: FCM and the UM University of Reading, December 2015.
CTools Build Process David Haines University of Michigan.
(1) Introduction to Subversion (SVN) and Google Project Hosting Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences.
Creative Commons Attribution- NonCommercial-ShareAlike 2.5 License Sakai Programmer's Café Sakai Training Workshop University of Amsterdam Aaron Zeckoski.
Google App Engine using Java 1. Outline Getting started Guestbook example Todo example Simplified Madlib 2.
Custom Authentication Providers For DotNetNuke v5.0 Stan Schultes – Sarasota, FL Florida Community Leader
SourceForge Enterprise Edition and Collaborative Development Aaron Hamid 7/18/06.
Creative Commons Attribution- NonCommercial-ShareAlike 2.5 License Sakai Programmer's Café Sakai Montreal CRIM Workshop Comparative Display Technologies.
| 1 EBSCOadmin EBSCO Support EDS Wiki Renata Wlodarczyk | EBSCO.
Google App Engine using Java 1. Outline Getting started Guestbook example Todo example Simplified Madlib 2.
9/21/04 James Gallagher Server Installation and Testing: Hands-on ● Install the CGI server with the HDF and FreeForm handlers ● Link data so the server.
Integrating ArcSight with Enterprise Ticketing Systems
Integrating ArcSight with Enterprise Ticketing Systems
What are they? The Package Repository Client is a set of Tcl scripts that are capable of locating, downloading, and installing packages for both Tcl and.
Persistence – Iteration 4 Vancouver Bootcamp
Pal‐Store E‐commerce Website
Contributing to Open Source Projects
Aaron Zeckoski Sakai Tool Naming Tips Aaron Zeckoski
Sakai WebApp Structure
Aaron Zeckoski Tomcat Debugging Aaron Zeckoski
How to use.
Presentation transcript:

Creative Commons Attribution- NonCommercial-ShareAlike 2.5 License Sakai Programmer's Café Sakai development and app/tool tips Aaron Zeckoski

2 Where to get information and development tips URL:

3 Sakai foundation website The main website for the Sakai foundation and Sakai project is: – Find information about upcoming Sakai conferences and other Sakai related news Find out what schools are using Sakai Figure out why it is called Sakai

4 Programmers Cafe The best source of information for developers wanting to work in Sakai is the programmers café website – Info you can find there: –Tutorials –Tips –Documentation –Sample code

5 Sakai Collab The Sakai Collab server runs a current version of Sakai and provides a place for the community to collaborate using Sakai, demo Sakai, or try out toolsSakai Collab serverSakai The collab server is also used to manage all the Sakai mailing lists and to manage some documentation –

6 sakai-dev list The sakai-dev list is a great place to ask development questions How sign up for sakai-dev list 1.Create account on Sakai Collab and login – 2.Click Membership link on left 3.Click Joinable Sites link at top 4.Click Join link for DG: Development Send to the list at:

7 Sakai Confluence and JIRA Sakai uses Confluence (an enterprise Wiki) to document projects and Sakai related activityConfluence – Sakai uses JIRA (bug tracker) for issue and bug tracking related to Sakai developmentJIRA –

8 Sakai source code The Sakai source code is stored in a Subversion repository Subversion –Main Sakai source Includes the entire Sakai source plus provisional tools –Sakai Contrib (contribution) Includes contributed source for various Sakai projects

9 Eclipse The vast majority of Sakai developers use Eclipse for development Eclipse –You can use other development environments but Eclipse has some advantages: Supported (eclipse files in the Sakai code base) Well understood (support docs and knowledge) Extended tools (appbuilder plugin) Can get commercial support if desired: – URL:

10 Development Environment Getting a good development environment setup is critical to working with Sakai code Complete step by step instructions are available in the programmers café: –Development Setup WalkthroughDevelopment Setup Walkthrough Include various tips that will make developing in Sakai easier

11 Sakai API Javadocs The Sakai API Javadocs are available with the release documents here:Javadocs – The link to the Javadocs is a little over halfway down (link named “JavaDocs”) –Here is the link for the current release (2.3.0) Javadocs for the trunk are available –

12 More Sakai javadocs You can build javadocs for the Sakai source code you have checked out Run the following command from the root directory of your copy of the Sakai source –maven sakai:javadoc The javadocs will be generated here – /target/sakai-javadoc.zip URL:

13 Naming Best Practices and Tips

14 Sakai tool environment Many tools exist in a typical Sakai installation –As a developer, you have to be careful when working in a large scale environment The primary issue is with naming collisions –Some names must be unique in the Sakai instance (not used by any other installed tools) Tools have many interconnections and use a custom request cycle so some programming practices must be followed

15 Namespace collisions Most namespace collisions will cause an error to occur on tomcat startup Typically you will see that part of the spring tree died and therefore all spring beans are destroyed Sometimes Sakai will still load but the offending tool will not Tip: Watch tomcat logs when starting up new tools URL:

16 Sakai tool xml file naming The tool id (e.g. sakai.tasklist) in the tool xml file must be unique –Typical id is sakai.toolname –Tool xml file located in tool/src/webapp/tools/ Typical filename is sakai.toolname.xml <tool id="sakai.tasklist" title="Programmer's Cafe - Task List" description="Programmer's Cafe - Task List">

17 Sakai project.xml naming The id (e.g. sakai-tasklist-tool) in each project.xml file must be unique –Typical id is sakai-toolname-location –Maven project.xml files are located throughout a typical Sakai app 3../../master/project.xml Programmer's Cafe - Task List sakaiproject sakai-tasklist-tool ${sakai.version}...

18 Spring bean naming The id ( e.g. org.sakaiproject.logic.CrudPlusLogic ) of each bean in components.xml must be unique –Convention for the id is to use the fully qualified classpath of the interface for the class –component.xml must be located in impl/pack/src/webapp/WEB-INF/ <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" " <bean id="org.sakaiproject.crudplus.logic.CrudPlusLogic" class="org.sakaiproject.crudplus.logic.impl.CrudPlusLogicImpl" init-method="init">

19 Database table naming Database table names have to be unique since Sakai shares a common schema (or database) Convention is to prefix the table name with the tool name (e.g. TOOLNAME_TABLE) –Good names: SAM_ANSWER, EVAL_ANSWER, GB_GRADES –Bad names: ANSWER, GRADE, CONFIG

20 Hibernate HBM files All Hibernate HBM files have to have unique names since Sakai uses one common Hibernate SessionFactory Convention is to prefix the hbm filename with the tool name (e.g. ToolnameItem.hbm.xml) –Good names: EvalAnswer.hbm.xml, TasklistTask.hbm.xml –Bad names: Answer.hbm.xml, Task.hbm.xml, Item.hbm.xml

21 Hibernate Persistent Classnames All Hibernate persistent classes must have unique classnames (this does not include the fully qualified classpath) Convention is to prefix the class name with the tool name (e.g. ToolnameItem.java) –Good: EvalAnswer.java, TasklistTask.java –Bad: Answer.java, Task.java

22 web.xml servlet name The servlet-name in the web.xml file must match the tool id from the tool xml file –web.xml is located in tool/src/webapp/WEB-INF –If this does not match you will get an uninformative NPE (Null Pointer Exception) in the tomcat log and the tool will fail to load sakai.tasklist org.sakaiproject.tool.tasklist.TasklistTool 1

23 Questions?