SlideShare una empresa de Scribd logo
1 de 18
Ge#ng
started

with
Sakai
development
               Steve
Swinsburg
  Senior
So8ware
Engineer
/
Sakai
Fellow
2009
       The
Australian
NaBonal
University
               September
2010
Development
environment
                                                What
are
Sakai
tools?
                                                     The
Kernel
                                                Dependency
injecBon



                                                  Overview


4th
Australian
Sakai
Conference
‐
September
15‐17,
2010                 2
Development
environment
• Requirements:
  • Java
1.6
  • Maven
2.2.1
  • Tomcat
5.5.30
• Sakai
Programmer’s
Cafe
  • Includes
manual
and
code
samples
  • h_p://bit.ly/sakai‐programmers‐cafe
• Sakai
app
builder
  • Eclipse
plugin
      4th
Australian
Sakai
Conference
‐
September
15‐17,
2010   3
What
are
Sakai
tools?


•   A
collecBon
of
webapps
•   Shared
API’s
•   Linked
implementaBons
•   Glued
together
(via
Spring)



        4th
Australian
Sakai
Conference
‐
September
15‐17,
2010   4
Sakai
tools
(the
webapp)
• Just
a
normal
webapp
with
a
bit
of
‘glue
in

  web.xml

• The
webapp
servlet
  • Standard
Tomcat
setup,
registers
the
app
  
   <servlet>
          <servlet-name>sakai.myapp</servlet-name>
          <servlet-class>
              org.sakaiproject.myapp.tool.MyAppServlet
          </servlet-class>
      </servlet>



       4th
Australian
Sakai
Conference
‐
September
15‐17,
2010   5
Sakai
tools
(the
webapp)
• The
request
filter

  • Maintains
the
session
   <filter>
       <filter-name>sakai.request</filter-name>
       <filter-class>
            org.sakaiproject.util.RequestFilter
       </filter-class>
       <!-- can configure this with init-params -->
   </filter>
   <filter-mapping>
       <filter-name>sakai.request</filter-name>
       <servlet-name>sakai.myapp</servlet-name>
       <dispatcher>REQUEST</dispatcher>
       <dispatcher>FORWARD</dispatcher>
       <dispatcher>INCLUDE</dispatcher>
   </filter-mapping>

       4th
Australian
Sakai
Conference
‐
September
15‐17,
2010   6
Sakai
tools
(the
webapp)
• A
tool
listener:
<listener>
    <listener-class>
        org.sakaiproject.util.ToolListener
    </listener-class>
</listener>


• OpBonal
Sakai/Spring
listener:




<listener>
    <listener-class>
        org.sakaiproject.util.ContextLoaderListener
    </listener-class>
</listener>



       4th
Australian
Sakai
Conference
‐
September
15‐17,
2010   7
Sakai
tools
(the
webapp)
• The
tool
registraBon:
  • Special
convenBon
/
locaBon
  • Must
have
unique
id’s
that
match
  • WEBAPP/tools/sakai.myapp.xml
  <?xml version="1.0"?>
  <registration>
      <tool id="sakai.myapp"
          title="My Great Application"
          description="This is my new great application">
          <category name="myworkspace" />
          <configuration name="functions.require" />
      </tool>
  </registration>



       4th
Australian
Sakai
Conference
‐
September
15‐17,
2010   8
Sakai
tools
(the
webapp)
• Many
different
frameworks
  • Wicket,
RSF,
JSP,
Servlets,
even
HTML/JS
  • Some
have
their
own
web.xml
setup


• Portal
wrapper
and
your
markup
to
give
a

  consistent
look
and
feel

• JSR‐168
portlet
support

      4th
Australian
Sakai
Conference
‐
September
15‐17,
2010   9
The
rest
of
Sakai




4th
Australian
Sakai
Conference
‐
September
15‐17,
2010   10
The
rest
of
Sakai




4th
Australian
Sakai
Conference
‐
September
15‐17,
2010   11
The Component Manager
• Webapps
normally
run
in
isolaBon
• To
allow
communicaBon,
service
is
separated
from

  the
webapp.
• ComponentManager
loads
the

  ‘components’
(services)
and
makes
them
available

  to
the
webapps,
thus
allowing
communicaBon.




      4th
Australian
Sakai
Conference
‐
September
15‐17,
2010   12
The Kernel
• Previously
were
inside
tools
themselves
• Split
out
the
core
services
into
a
‘kernel’
  • UserDirectoryService
  • SiteService
  • ToolService
  • SecurityService
  • EmailService
  • EventTrackingService
  • ContentHosBngService
       4th
Australian
Sakai
Conference
‐
September
15‐17,
2010   13
Dependency
injecBon
• Via
Spring
(preferred):
  • Service wiring in TOMCAT/components/
    myapp-pack/WEB-INF/components.xml
  • setters (getters) in the impl class

 <bean id="org.sakaiproject.myapp.logic.SakaiProxy"
    class="org.sakaiproject.myapp.logic.SakaiProxyImpl”
    init-method="init">
       <property name="securityService"
       ref="org.sakaiproject.authz.api.SecurityService" />
       <property name="userDirectoryService"
       ref="org.sakaiproject.user.api.UserDirectoryService" />
 </bean>



        4th
Australian
Sakai
Conference
‐
September
15‐17,
2010   14
Dependency
injecBon
• Via
the
ComponentManager
staBc
cover
• No
Spring
wiring
needed
• Useful
upgrade
for
legacy
code
   • Directly
in
class,
in
init/constructor
private UserDirectoryService uds;

ComponentManager manager =
org.sakaiproject.component.cover.ComponentManager.getInstance();

uds =
(UserDirectoryService)manager.get(UserDirectoryService.class);



        4th
Australian
Sakai
Conference
‐
September
15‐17,
2010   15
Dependency
injecBon
• Via
the
staBc
covers
• StaBc
methods
around
API
methods
that
delegate

  to
actual
API
method
• Deprecated!
Don’t
use
them!


                                        no code sample!




      4th
Australian
Sakai
Conference
‐
September
15‐17,
2010   16
Dependency
injecBon
• For
a
simple
webapp
with
no
service
API,
inject

  directly
into
the
webapp
via
Spring
  • e.g.
servlets

    TOMCAT/webapps/myapp-tool/WEB-INF/
    applicationContext.xml




       4th
Australian
Sakai
Conference
‐
September
15‐17,
2010   17
Questions?



Development
environment
walkthrough,
Eclipse
plugin,
best
pracBces,

HOWTOs
and
code
samples
all
available
on
Confluence



                  h,p://bit.ly/sakai‐programmers‐cafe




  4th
Australian
Sakai
Conference
‐
September
15‐17,
2010              18

Más contenido relacionado

Similar a Getting started with Sakai development

Building Enterprise Apps with Sencha & DeftJS
Building Enterprise Apps with Sencha & DeftJSBuilding Enterprise Apps with Sencha & DeftJS
Building Enterprise Apps with Sencha & DeftJSryancanulla
 
React or Angular and SharePoint Framework Development
React or Angular and SharePoint Framework DevelopmentReact or Angular and SharePoint Framework Development
React or Angular and SharePoint Framework DevelopmentDarin Dickey
 
SOA/SCA FraScAti
SOA/SCA FraScAtiSOA/SCA FraScAti
SOA/SCA FraScAtiInria
 
Storlets Project Update for Train
Storlets Project Update for TrainStorlets Project Update for Train
Storlets Project Update for TrainKota Tsuyuzaki
 
Kick Start your Application Development and Management Strategy
Kick Start your Application Development and Management Strategy Kick Start your Application Development and Management Strategy
Kick Start your Application Development and Management Strategy WSO2
 
Commercial Development And Sakai
Commercial Development And SakaiCommercial Development And Sakai
Commercial Development And Sakaimbanting
 
Apidays Paris 2023 - OpenAPI 3.1 and Spring-Boot 3 - What's New?, Badr Nass L...
Apidays Paris 2023 - OpenAPI 3.1 and Spring-Boot 3 - What's New?, Badr Nass L...Apidays Paris 2023 - OpenAPI 3.1 and Spring-Boot 3 - What's New?, Badr Nass L...
Apidays Paris 2023 - OpenAPI 3.1 and Spring-Boot 3 - What's New?, Badr Nass L...apidays
 
Java Community and Overview Track - March 2016
Java Community and Overview Track - March 2016Java Community and Overview Track - March 2016
Java Community and Overview Track - March 2016Yolande Poirier
 
JCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptxJCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptxGrace Jansen
 
Jakarta EE: Today and Tomorrow
Jakarta EE: Today and TomorrowJakarta EE: Today and Tomorrow
Jakarta EE: Today and TomorrowDmitry Kornilov
 
OracleDeveloperMeetup - London 19-12-17
OracleDeveloperMeetup - London 19-12-17OracleDeveloperMeetup - London 19-12-17
OracleDeveloperMeetup - London 19-12-17Phil Wilkins
 
VAST 8.0
VAST 8.0VAST 8.0
VAST 8.0ESUG
 
Media Mosa : Architecture and Features, Utrecht, 10 June 2010
Media Mosa : Architecture and Features, Utrecht,  10 June 2010Media Mosa : Architecture and Features, Utrecht,  10 June 2010
Media Mosa : Architecture and Features, Utrecht, 10 June 2010Frans Ward
 
Cisco ONE Enterprise Cloud (UCSD) Hands-on Lab
Cisco ONE Enterprise Cloud (UCSD) Hands-on LabCisco ONE Enterprise Cloud (UCSD) Hands-on Lab
Cisco ONE Enterprise Cloud (UCSD) Hands-on LabCisco Canada
 
Resume_2016Aug
Resume_2016AugResume_2016Aug
Resume_2016AugI-Fan Chu
 
Lightweight Java in the Cloud
Lightweight Java in the CloudLightweight Java in the Cloud
Lightweight Java in the CloudBruno Borges
 
MediaMosa architecture & features
MediaMosa architecture & features MediaMosa architecture & features
MediaMosa architecture & features MediaMosa
 

Similar a Getting started with Sakai development (20)

Sakai Overview 06-2004
Sakai Overview 06-2004Sakai Overview 06-2004
Sakai Overview 06-2004
 
Masakari project onboarding
Masakari project onboardingMasakari project onboarding
Masakari project onboarding
 
Building Enterprise Apps with Sencha & DeftJS
Building Enterprise Apps with Sencha & DeftJSBuilding Enterprise Apps with Sencha & DeftJS
Building Enterprise Apps with Sencha & DeftJS
 
React or Angular and SharePoint Framework Development
React or Angular and SharePoint Framework DevelopmentReact or Angular and SharePoint Framework Development
React or Angular and SharePoint Framework Development
 
SOA/SCA FraScAti
SOA/SCA FraScAtiSOA/SCA FraScAti
SOA/SCA FraScAti
 
Storlets Project Update for Train
Storlets Project Update for TrainStorlets Project Update for Train
Storlets Project Update for Train
 
Kick Start your Application Development and Management Strategy
Kick Start your Application Development and Management Strategy Kick Start your Application Development and Management Strategy
Kick Start your Application Development and Management Strategy
 
Commercial Development And Sakai
Commercial Development And SakaiCommercial Development And Sakai
Commercial Development And Sakai
 
Apidays Paris 2023 - OpenAPI 3.1 and Spring-Boot 3 - What's New?, Badr Nass L...
Apidays Paris 2023 - OpenAPI 3.1 and Spring-Boot 3 - What's New?, Badr Nass L...Apidays Paris 2023 - OpenAPI 3.1 and Spring-Boot 3 - What's New?, Badr Nass L...
Apidays Paris 2023 - OpenAPI 3.1 and Spring-Boot 3 - What's New?, Badr Nass L...
 
Java Community and Overview Track - March 2016
Java Community and Overview Track - March 2016Java Community and Overview Track - March 2016
Java Community and Overview Track - March 2016
 
JCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptxJCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptx
 
Jakarta EE: Today and Tomorrow
Jakarta EE: Today and TomorrowJakarta EE: Today and Tomorrow
Jakarta EE: Today and Tomorrow
 
BEST REST in OpenStack
BEST REST in OpenStackBEST REST in OpenStack
BEST REST in OpenStack
 
OracleDeveloperMeetup - London 19-12-17
OracleDeveloperMeetup - London 19-12-17OracleDeveloperMeetup - London 19-12-17
OracleDeveloperMeetup - London 19-12-17
 
VAST 8.0
VAST 8.0VAST 8.0
VAST 8.0
 
Media Mosa : Architecture and Features, Utrecht, 10 June 2010
Media Mosa : Architecture and Features, Utrecht,  10 June 2010Media Mosa : Architecture and Features, Utrecht,  10 June 2010
Media Mosa : Architecture and Features, Utrecht, 10 June 2010
 
Cisco ONE Enterprise Cloud (UCSD) Hands-on Lab
Cisco ONE Enterprise Cloud (UCSD) Hands-on LabCisco ONE Enterprise Cloud (UCSD) Hands-on Lab
Cisco ONE Enterprise Cloud (UCSD) Hands-on Lab
 
Resume_2016Aug
Resume_2016AugResume_2016Aug
Resume_2016Aug
 
Lightweight Java in the Cloud
Lightweight Java in the CloudLightweight Java in the Cloud
Lightweight Java in the Cloud
 
MediaMosa architecture & features
MediaMosa architecture & features MediaMosa architecture & features
MediaMosa architecture & features
 

Último

Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 

Último (20)

Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 

Getting started with Sakai development

Notas del editor