SlideShare a Scribd company logo
1 of 36
Download to read offline
Building Server-Side Eclipse based web
    applications


                                                              Tutorial




        Building Server-Side Eclipse based web applications | Tutorial
        © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation;
1       Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
The authors

    Jochen Hiller                                                                  Simon Kaegi
    Deutsche Telekom AG, Germany                                                   IBM Rational Software, Canada
    jo.hiller@googlemail.com                                                       simon_kaegi@ca.ibm.com
                                                                                   Equinox, E4 Committer


                                                                                   Gunnar Wagenknecht
                                                                                   AGETO, Germany
                                                                                   gunnar@wagenknecht.org
                                                                                   Eclipse Committer




           Building Server-Side Eclipse based web applications | Tutorial
           © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation;
2          Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
Overview
    • Introduction to Server-Side Eclipse
    • Developing Server-Side Eclipse applications
    • Deploying Server-Side Eclipse applications
    • Monitoring and Debugging Server-Side Eclipse
      applications
    • Summary




         Building Server-Side Eclipse based web applications | Tutorial
         © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation;
3        Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
What is Server-Side Eclipse (SSE)?
    • Recognition… that many of the features that have made RCP successful are
     equally applicable in server-side contexts.
          Standardized component model (OSGi)
          Pervasive extensibility – Extension Registry
          Runtime provisioning
    • Integration... with existing server-side infrastructure and technologies
          J2EE Application Servers
          Servlets and JSPs
          Application Frameworks
          …
    • Jeff McAffer stated at EclipseCon 2007, Equinox BOF:
          Server-Side Eclipse is a concept, a marketing name, to illustrate possible usage scenarios (like
          RCP).
    • The new top level project Eclipse Runtime is an umbrella project for a lot of
      server-related projects


            Building Server-Side Eclipse based web applications | Tutorial
            © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation;
4           Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
What motivates developers to use SSE?
       Web developer                                       RCP developer                                Infrastructure developer
         JavaTM EE                                              RCP                                                 application
         application                                          application                                           framework

       + component model        + server support                                                                + component model
       + use 3rd party plug-ins + re-use plugins                                                                   • modular
                                + distributed                                                                      • flexible
                                  applications                                                                     • dynamic




        Building Server-Side Eclipse based web applications | Tutorial
        © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation;
5       Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
SSE Based Web Applications
    • Component based (Bundles)

    • Use the OSGi HttpService (Servlet API)
        Explicitly (code) or declaratively (extension registry)


    • Consistent development story independent of
      deployment constraints
        Support for an embedded HttpService
        Support for running embedded in Application Servers



         Building Server-Side Eclipse based web applications | Tutorial
         © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation;
6        Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
Overview
    • Introduction to Server-Side Eclipse
    • Developing Server-Side Eclipse applications
    • Deploying Server-Side Eclipse applications
    • Monitoring and Debugging Server-Side Eclipse
      applications
    • Summary




         Building Server-Side Eclipse based web applications | Tutorial
         © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation;
7        Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
Integrating Java EE with the OSGi HttpService
• Replaces web deploy descriptor (e.g. “web.xml”)
• URL mapping differences
• Servlet API support
     ServletContext / HttpContext differences
     Does not provide “direct” support for Filters, Listeners.
• Dynamic Registration
  void registerResources(String alias, String name, HttpContext context)
  void registerServlet(String alias, Servlet servlet, Dictionary initparams, HttpContext context)
  void unregister(String alias)




       Building Server-Side Eclipse based web applications | Tutorial
       © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation;
       Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
URL Mapping Differences
void registerResources(String alias, String name, HttpContext context)

• “alias” roughly equivalent to <url-mapping>
      alias of “/myContent” is equivalent to
      <url-mapping>
          /myContent/*
      </url-mapping>


• “name” provides a base path when looking up resources in the
  HttpContext.
                                                                                                Supported in Equinox

• No support for extension mappings                                                             Syntax is:
                                                                                                                    {path}/*.jsp
• No implicit welcome file support
      eg. mapping “/” to “/index.html”



       Building Server-Side Eclipse based web applications | Tutorial
       © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation;
       Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
HttpContext
• Maps 1-1 to a ServletContext                                              Method Summary

                                                                            String getMimeType(String name)
• Allows implementation of custom
  HttpContext
                                                                            URL getResource(String name)

• MIME type retrieval                                                       boolean handleSecurity(
• resource retrieval                                                          HttpServletRequest request,
                                                                              HttpServletResponse response)
• authentication

• Does not directly support:                                                     Supported in Equinox (via Reflection)
     getNamedDispatcher
     getResourcePaths                                                            Set getResourcePaths(String path)
     getInitParameters (*)
     “Context Path” (*)


       Building Server-Side Eclipse based web applications | Tutorial
       © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation;
       Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
Servlets and Filters
What’s missing…                                                                (*) = Workarounds Available:

• Filter (*)                                                                   • Technique is to wrap-and-adapt your
                                                                                 Servlet or Resource.
• HttpSessionListener                                                              Servlet wrapped = new
                                                                                   ContextListenerServletAdaptor(
• HttpSessionAttributeListener                                                        myServlet, myListener);
• HttpSessionActivationListener                                                    registerServlet(“/myPath”, wrapped,
                                                                                   params, myHttpContext);

• ServletContextListener (*)                                                   • See
                                                                                 org.eclipse.equinox.http.helper[s]
• ServletContextAttributeListener
                                                                                 in the Equinox-Incubator CVS
• ServletRequestListener
                                                                               • not currently API but supported
• ServletRequestAttributeListener



          Building Server-Side Eclipse based web applications | Tutorial
          © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation;
          Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
Dynamic Registration
Two main techniques:
• Code-based
      Lifecycle: tied to Bundle START and STOP
      More Complex but provides greater control
• Extension Registry (org.eclipse.equinox.http.registry)
      Lifecycle: tied to Bundle RESOLVED and UNRESOLVED
      Simpler in most cases


• Declarative Services / Spring

URL Space is also dynamic and shared across all registrations
      No more than one registration per “alias”
      Worth planning – useful techniques with relative URLs


       Building Server-Side Eclipse based web applications | Tutorial
       © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation;
       Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
JSP Support
• Provided by:
    org.eclipse.equinox.jsp.jasper.JspServlet


<< public JspServlet(Bundle bundle, String bundleResourcePath, String alias) >>



• No default constructor

• Requires compilation / runtime context from “bundle”
• JSP lookup consistent with OSGi HttpService resource
  registration.

        Building Server-Side Eclipse based web applications | Tutorial
        © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation;
        Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
JSP Support – Extension Registry
• Extension Registry Support provided by:
  org.eclipse.equinox.jsp.jasper.registry.JspFactory
• ExecutableExtensionFactory
 <!--* © Copyright 2007 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corp.;                        All rights reserved.        This source code
 is made available under the terms of the Eclipse Public License, v1.0. -->


 <extension
    point=quot;org.eclipse.equinox.http.registry.servletsquot;>
  <servlet
     alias=quot;/myPath/*.jsp“
     class=quot;org.eclipse.equinox.jsp.jasper.registry.JSPFactory:/bundlePathquot;>
  </servlet>
 </extension>




• Use “{path}/*.jsp” style alias for JSPs.
        Allows a “{path}” resource registration to support more efficiently serving
        static resources without an alias namespace collision.


          Building Server-Side Eclipse based web applications | Tutorial
          © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation;
          Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
Exercises
     • Start Eclipse & configure target platform
     • Hello Servlet
     • Hello JSP
     • Hello Servlet Registry
     • Hello JSP Registry




          Building Server-Side Eclipse based web applications | Tutorial
          © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation;
15        Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
Overview
     • Introduction to Server-Side Eclipse
     • Developing Server-Side Eclipse applications
     • Deploying Server-Side Eclipse applications
     • Monitoring and Debugging Server-Side Eclipse
       applications
     • Summary




          Building Server-Side Eclipse based web applications | Tutorial
          © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation;
16        Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
Recommended deployment scenarios
     Deployment depends on target infrastructure:

     • Standalone Equinox server application
         Embedded HttpService
         Lightweight solution – good choice for development
         Distribute like Eclipse RCP application


     • Run application in External Application Server
         Recommended as production solution
         Deploy as standard WAR application (scripts provided)


          Building Server-Side Eclipse based web applications | Tutorial
          © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation;
17        Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
Equinox embedding an HttpService
     •   Run Equinox as standalone application
     •   Multiple processes isolated
     •   Embedded HttpService (e.g. Jetty)
     •   Application functionality based on bundles, Servlets, JSPs, ...
     •   Add web services as bundle
     •   Server management based on bundles




                                                                        Source: Jeff McAffer, Eclipse Summit Europe, Server-Side Symposium, Oct 12nd 2006



              Building Server-Side Eclipse based web applications | Tutorial
              © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation;
18            Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
Deploying standalone Equinox server
                • Choose target platform
                • Add platform specific launchers if required
                • Add common services and bundles (see Eclipse Orbit!)
                • Add application plug-ins
                • Group bundles / plug-ins as features
                                                                                                                                          Application plug-ins
                                                                                            ...                      ...
                  Servlet                JSP                   Bundles

                                                                                                                                          Common services
     Launcher




                                                             commons-                                           Update
                   Jetty               Jasper                                           3rdParty
                                                                                                                                          (see Orbit)
                                                             logging, ...                                     Configurator

                                                             Equinox                                                                      Server-Side Eclipse

                                                    Operating System

                       Building Server-Side Eclipse based web applications | Tutorial
                       © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation;
19                     Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
Deploying Standalone Equinox server
     • Deploy like an RCP application
           Plugins / Feature / Product based export
           You have to include SSE related plugins
           Maintain config.ini for starting bundles
     • Important config.ini settings:
                                                                                     # start an OSGi console
           osgi.console=true
                                                                                     # do NOT shutdown OSGi
           osgi.noShutdown=true
                                                                                     # do NOT start an Eclipse application
           eclipse.ignoreApp=true
     • Or use commandline arguments when using Eclipse starter:
                                                                                     # enable OSGi console
           -console
                                                                                     # same as osgi.noShutdown=true
           -noExit
                                                                                     # start application with <id>
           -application <id>




             Building Server-Side Eclipse based web applications | Tutorial
             © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation;
20           Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
Deploy Standard Equinox – Running the Server
     • Start Equinox server
     java –Dorg.osgi.service.http.port=8080 
          –jar pluginsorg.eclipse.equinox.launcher_<version>.jar 
          –console -noExit




            Building Server-Side Eclipse based web applications | Tutorial
            © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation;
21          Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
Application Server running an embedded Equinox
     • Launch Equinox in traditional application server
     • Isolation between multiple web applications/Equinox instances
     • Forwarding (Lite) HttpService exposes application server
       capabilities
     • Application functionality based on bundles, Servlets, JSPs, ...
     • Bridging aspect is referred to as the Servletbridge




            Building Server-Side Eclipse based web applications | Tutorial
            © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation;
22          Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
What is the Servletbridge?
                  … a bridge between the servlet and OSGi world

     Servlet - side                                                                        OSGi - side
     • Eclipse framework launcher                                                          • Proxy Servlet that registers with
                                                                                             Bridge Servlet
     • Bridge Servlet with a call-back
       registration point                                                                  • OSGi HttpService

                                                                 1                           5
                           Bridge Servlet                                                               Proxy Servlet

                                                               Servlet              OSGi
                                            2                                                                           4

                                                                        3
                    Framework Launcher                                                                    HttpService




              Building Server-Side Eclipse based web applications | Tutorial
              © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation;
23            Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
What is the Servletbridge?
                                               Servlet               OSGi




     Incoming Request                                                                                Registered Request Handler
                                                 Servletbridge
                                                                                                     OSGi HttpService
                                                                                                               registerResource(…)
                                                                                                               registerServlet(…)




          Incoming requests are “proxied” through the
          Servletbridge to registered request handlers.



              Building Server-Side Eclipse based web applications | Tutorial
              © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation;
24            Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
Deploying Equinox Inside an Application Server

     • Deploy similar to an RCP application but in a Web Archive
     /WEB-INF
       /web.xml (with one servlet entry assigning all incoming requests to the BridgeServlet)
       /lib/servletbridge.jar (the classes associated with the equinox.servletbridge)
       /eclipse (the eclipse platform directory)
           launch.ini (contains framework properties that will allow override of any eclipse specific
              System Properties)
           /configuration (contains config.ini which lists the bundles you want to have available at
              startup)
           /features
           /plugins
     • org.eclipse.equinox.servletbridge Project
             /scripts/webappBuilder.xml (Ant Script for building WAR file)
             /templates (contains the WAR directory structure)




               Building Server-Side Eclipse based web applications | Tutorial
               © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation;
25             Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
Deploying Equinox inside Application Server
     • Online Demo




          Building Server-Side Eclipse based web applications | Tutorial
          © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation;
26        Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
Exercises
     • Create feature for build/export
     • Export standalone server using product export
     • Create & deploy WAR file using Servlet bridge




          Building Server-Side Eclipse based web applications | Tutorial
          © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation;
27        Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
Overview
     • Introduction to Server-Side Eclipse
     • Developing Server-Side Eclipse applications
     • Deploying Server-Side Eclipse applications
     • Monitoring and Debugging Server-Side Eclipse
       applications
     • Summary




          Building Server-Side Eclipse based web applications | Tutorial
          © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation;
28        Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
Logging in Equinox Jetty 6 Integration
     • Jetty logging now controllable in 3.5

     • -Dorg.eclipse.equinox.http.jetty.log.stderr.threshold=<level>

          quot;debugquot;, quot;infoquot;, quot;warnquot;, quot;errorquot;, and quot;off“
          Default is “warn”


     • Log will happen to STDERR only (for now)

     • Outlook: deeper integration with Extended Equinox
       Log Service (3.6)


            Building Server-Side Eclipse based web applications | Tutorial
            © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation;
29          Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
Debugging: Where to hook in
     • Hook either in
         OSGi world
         ServetBridge
     • Startup problems:
         FrameworkLauncher
     • Central access:
       ProxyServlet
         Hook in processAlias


          Building Server-Side Eclipse based web applications | Tutorial
          © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation;
30        Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
Servlet Bridge Management Commands

     “web.xml” allows configuration of initial parameters:
     • commandline Allows all non-VM command line parameterizations of Eclipse.
       The default value is quot;-console“ which should be cleared for production.
     • enableFrameworkControls (true / false) - Controls whether or not the sp_* control URLs are
       accessible
            sp_deploy - Copies the contents of /platform to the install area (the servlet context tempdir is used -
            parameterizable someday)
            sp_undeploy - Removes the copy of Eclipse from the install area
            sp_redeploy - Resets the platform (e.g. stops, undeploys, deploys, starts)
            sp_start - Starts a deployed platform
            sp_stop - Stops the platform
            sp_test - Provides a sanity check and determines if an OSGi based servlet is ready to accept requests
     • frameworkLauncherClass – allows customization of the launcher
     • extendedFrameworkExports – additional java package exports from the web application.
       Servlet API is automatically exported.




              Building Server-Side Eclipse based web applications | Tutorial
              © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation;
31            Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
Knopflerfish HTTP Console
     • Provides convenient way to manage bundles at
       runtime
     • Works within Servlet Bridge




          Building Server-Side Eclipse based web applications | Tutorial
          © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation;
32        Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
Overview
     • Introduction to Server-Side Eclipse
     • Developing Server-Side Eclipse applications
     • Deploying Server-Side Eclipse applications
     • Monitoring and Debugging Server-Side Eclipse
       applications
     • Summary




          Building Server-Side Eclipse based web applications | Tutorial
          © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation;
33        Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
Summary - Looking forward...
     • Eclipse >3.3 supports building OSGi based web applications for:
          Equinox based RCP and headless applications
          Equinox embedded in an application server

     • Outlook for Eclipse 3.5
          Jetty 6

     • Jetty joined Eclipse                              much tigther integration expected

     • Outlook for OSGi Spec work
          Enterprise Expert Group
          Http Service according 2.5 Spec
          “WebContainer” alike support, but with OSGi dynamics




           Building Server-Side Eclipse based web applications | Tutorial
           © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation;
34         Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
For more information...
     Project hub:
      http://www.eclipse.org/equinox/server

     Newsgroup:
      news://news.eclipse.org/eclipse.technology.equinox

     Dev Mailing List:
      equinox-dev@eclipse.org

                                                            Thank-you


          Building Server-Side Eclipse based web applications | Tutorial
          © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation;
35        Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
Legal Notices
     • Java and all Java-based trademarks are trademarks of Sun
       Microsystems, Inc. in the United States, other countries, or both

     • Microsoft, Windows, Windows NT, and the Windows logo are trademarks
       of Microsoft Corporation in the United States, other countries, or both.

     • Linux is a registered trademark of Linus Torvalds in the United States,
       other countries, or both.

     • Other company, product, or service names may be trademarks or service
       marks of others




            Building Server-Side Eclipse based web applications | Tutorial
            © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation;
36          Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license

More Related Content

What's hot

What's new in Nuxeo 5.2? - Solutions Linux 2009
What's new in Nuxeo 5.2? - Solutions Linux 2009What's new in Nuxeo 5.2? - Solutions Linux 2009
What's new in Nuxeo 5.2? - Solutions Linux 2009Stefane Fermigier
 
CDI Integration in OSGi - Emily Jiang
CDI Integration in OSGi - Emily JiangCDI Integration in OSGi - Emily Jiang
CDI Integration in OSGi - Emily Jiangmfrancis
 
Building Server Applications with EclipseRT
Building Server Applications with EclipseRTBuilding Server Applications with EclipseRT
Building Server Applications with EclipseRTGunnar Wagenknecht
 
Tycho Tutorial EclipseCon 2013
Tycho Tutorial EclipseCon 2013Tycho Tutorial EclipseCon 2013
Tycho Tutorial EclipseCon 2013jsievers
 
Framework Engineering
Framework EngineeringFramework Engineering
Framework EngineeringYoungSu Son
 
Maximise the Power of OSGi - Carsten Ziegeler & David Bosschaert
Maximise the Power of OSGi - Carsten Ziegeler & David BosschaertMaximise the Power of OSGi - Carsten Ziegeler & David Bosschaert
Maximise the Power of OSGi - Carsten Ziegeler & David Bosschaertmfrancis
 
Introduction to WebMvc.fn
Introduction to WebMvc.fnIntroduction to WebMvc.fn
Introduction to WebMvc.fnVMware Tanzu
 
Spring Cloud in a Nutshell
Spring Cloud in a NutshellSpring Cloud in a Nutshell
Spring Cloud in a NutshellTsuyoshi Miyake
 
Reactive Web Applications
Reactive Web ApplicationsReactive Web Applications
Reactive Web ApplicationsRossen Stoyanchev
 
CRX Best practices
CRX Best practicesCRX Best practices
CRX Best practiceslisui0807
 
Introduction to Reactive Streams and Reactor 2.5
Introduction to Reactive Streams and Reactor 2.5Introduction to Reactive Streams and Reactor 2.5
Introduction to Reactive Streams and Reactor 2.5Stéphane Maldini
 
Simplifying Apache Geode with Spring Data
Simplifying Apache Geode with Spring DataSimplifying Apache Geode with Spring Data
Simplifying Apache Geode with Spring DataVMware Tanzu
 
Introduction to cloud-native application development: with Heroku and Spring ...
Introduction to cloud-native application development: with Heroku and Spring ...Introduction to cloud-native application development: with Heroku and Spring ...
Introduction to cloud-native application development: with Heroku and Spring ...Roberto Casadei
 
The DevOps paradigm - the evolution of IT professionals and opensource toolkit
The DevOps paradigm - the evolution of IT professionals and opensource toolkitThe DevOps paradigm - the evolution of IT professionals and opensource toolkit
The DevOps paradigm - the evolution of IT professionals and opensource toolkitMarco Ferrigno
 
State of Securing Restful APIs s12gx2015
State of Securing Restful APIs s12gx2015State of Securing Restful APIs s12gx2015
State of Securing Restful APIs s12gx2015robwinch
 
Universal Declarative Services
Universal Declarative ServicesUniversal Declarative Services
Universal Declarative Servicesschemouil
 
Effective Spring on Kubernetes
Effective Spring on KubernetesEffective Spring on Kubernetes
Effective Spring on KubernetesNeven Cvetković
 
Igalia Focus and Goals 2020 (2019 WebKit Contributors Meeting)
Igalia Focus and Goals 2020 (2019 WebKit Contributors Meeting)Igalia Focus and Goals 2020 (2019 WebKit Contributors Meeting)
Igalia Focus and Goals 2020 (2019 WebKit Contributors Meeting)Igalia
 

What's hot (20)

What's new in Nuxeo 5.2? - Solutions Linux 2009
What's new in Nuxeo 5.2? - Solutions Linux 2009What's new in Nuxeo 5.2? - Solutions Linux 2009
What's new in Nuxeo 5.2? - Solutions Linux 2009
 
CDI Integration in OSGi - Emily Jiang
CDI Integration in OSGi - Emily JiangCDI Integration in OSGi - Emily Jiang
CDI Integration in OSGi - Emily Jiang
 
Building Server Applications with EclipseRT
Building Server Applications with EclipseRTBuilding Server Applications with EclipseRT
Building Server Applications with EclipseRT
 
Tycho Tutorial EclipseCon 2013
Tycho Tutorial EclipseCon 2013Tycho Tutorial EclipseCon 2013
Tycho Tutorial EclipseCon 2013
 
Framework Engineering
Framework EngineeringFramework Engineering
Framework Engineering
 
Maximise the Power of OSGi - Carsten Ziegeler & David Bosschaert
Maximise the Power of OSGi - Carsten Ziegeler & David BosschaertMaximise the Power of OSGi - Carsten Ziegeler & David Bosschaert
Maximise the Power of OSGi - Carsten Ziegeler & David Bosschaert
 
Introduction to WebMvc.fn
Introduction to WebMvc.fnIntroduction to WebMvc.fn
Introduction to WebMvc.fn
 
Spring Cloud in a Nutshell
Spring Cloud in a NutshellSpring Cloud in a Nutshell
Spring Cloud in a Nutshell
 
Shree duth awasthi_cv
Shree duth awasthi_cvShree duth awasthi_cv
Shree duth awasthi_cv
 
Reactive Web Applications
Reactive Web ApplicationsReactive Web Applications
Reactive Web Applications
 
CRX Best practices
CRX Best practicesCRX Best practices
CRX Best practices
 
Introduction to Reactive Streams and Reactor 2.5
Introduction to Reactive Streams and Reactor 2.5Introduction to Reactive Streams and Reactor 2.5
Introduction to Reactive Streams and Reactor 2.5
 
Simplifying Apache Geode with Spring Data
Simplifying Apache Geode with Spring DataSimplifying Apache Geode with Spring Data
Simplifying Apache Geode with Spring Data
 
Introduction to cloud-native application development: with Heroku and Spring ...
Introduction to cloud-native application development: with Heroku and Spring ...Introduction to cloud-native application development: with Heroku and Spring ...
Introduction to cloud-native application development: with Heroku and Spring ...
 
Maven nutshell
Maven nutshellMaven nutshell
Maven nutshell
 
The DevOps paradigm - the evolution of IT professionals and opensource toolkit
The DevOps paradigm - the evolution of IT professionals and opensource toolkitThe DevOps paradigm - the evolution of IT professionals and opensource toolkit
The DevOps paradigm - the evolution of IT professionals and opensource toolkit
 
State of Securing Restful APIs s12gx2015
State of Securing Restful APIs s12gx2015State of Securing Restful APIs s12gx2015
State of Securing Restful APIs s12gx2015
 
Universal Declarative Services
Universal Declarative ServicesUniversal Declarative Services
Universal Declarative Services
 
Effective Spring on Kubernetes
Effective Spring on KubernetesEffective Spring on Kubernetes
Effective Spring on Kubernetes
 
Igalia Focus and Goals 2020 (2019 WebKit Contributors Meeting)
Igalia Focus and Goals 2020 (2019 WebKit Contributors Meeting)Igalia Focus and Goals 2020 (2019 WebKit Contributors Meeting)
Igalia Focus and Goals 2020 (2019 WebKit Contributors Meeting)
 

Viewers also liked

Open Source programmieren und dafĂĽr Gehalt bekommen @ AGETO
Open Source programmieren und dafĂĽr Gehalt bekommen @ AGETOOpen Source programmieren und dafĂĽr Gehalt bekommen @ AGETO
Open Source programmieren und dafĂĽr Gehalt bekommen @ AGETOGunnar Wagenknecht
 
Managing large and distributed Eclipse server applications.
Managing large and distributed Eclipse server applications.Managing large and distributed Eclipse server applications.
Managing large and distributed Eclipse server applications.Gunnar Wagenknecht
 
Developing Runtime Applications with Eclipse Gyrex
Developing Runtime Applications with Eclipse GyrexDeveloping Runtime Applications with Eclipse Gyrex
Developing Runtime Applications with Eclipse GyrexGunnar Wagenknecht
 
An Introduction to EclipseRT
An Introduction to EclipseRTAn Introduction to EclipseRT
An Introduction to EclipseRTGunnar Wagenknecht
 
Running a Succesful Open Source Project
Running a Succesful Open Source ProjectRunning a Succesful Open Source Project
Running a Succesful Open Source ProjectGunnar Wagenknecht
 
A Scalable Stack for Modular Web Applications
A Scalable Stack for Modular Web ApplicationsA Scalable Stack for Modular Web Applications
A Scalable Stack for Modular Web ApplicationsGunnar Wagenknecht
 
Tasty Recipes for OSGi Bundles
Tasty Recipes for OSGi BundlesTasty Recipes for OSGi Bundles
Tasty Recipes for OSGi BundlesGunnar Wagenknecht
 
Tips & Tricks for Maven Tycho
Tips & Tricks for Maven TychoTips & Tricks for Maven Tycho
Tips & Tricks for Maven TychoGunnar Wagenknecht
 

Viewers also liked (8)

Open Source programmieren und dafĂĽr Gehalt bekommen @ AGETO
Open Source programmieren und dafĂĽr Gehalt bekommen @ AGETOOpen Source programmieren und dafĂĽr Gehalt bekommen @ AGETO
Open Source programmieren und dafĂĽr Gehalt bekommen @ AGETO
 
Managing large and distributed Eclipse server applications.
Managing large and distributed Eclipse server applications.Managing large and distributed Eclipse server applications.
Managing large and distributed Eclipse server applications.
 
Developing Runtime Applications with Eclipse Gyrex
Developing Runtime Applications with Eclipse GyrexDeveloping Runtime Applications with Eclipse Gyrex
Developing Runtime Applications with Eclipse Gyrex
 
An Introduction to EclipseRT
An Introduction to EclipseRTAn Introduction to EclipseRT
An Introduction to EclipseRT
 
Running a Succesful Open Source Project
Running a Succesful Open Source ProjectRunning a Succesful Open Source Project
Running a Succesful Open Source Project
 
A Scalable Stack for Modular Web Applications
A Scalable Stack for Modular Web ApplicationsA Scalable Stack for Modular Web Applications
A Scalable Stack for Modular Web Applications
 
Tasty Recipes for OSGi Bundles
Tasty Recipes for OSGi BundlesTasty Recipes for OSGi Bundles
Tasty Recipes for OSGi Bundles
 
Tips & Tricks for Maven Tycho
Tips & Tricks for Maven TychoTips & Tricks for Maven Tycho
Tips & Tricks for Maven Tycho
 

Similar to Building Server-Side Eclipse based web applications

La sécurité avec Kubernetes et les conteneurs Docker (June 19th, 2019)
La sécurité avec Kubernetes et les conteneurs Docker (June 19th, 2019)La sécurité avec Kubernetes et les conteneurs Docker (June 19th, 2019)
La sécurité avec Kubernetes et les conteneurs Docker (June 19th, 2019)Alexandre Roman
 
Resilient Microservices with Spring Cloud
Resilient Microservices with Spring CloudResilient Microservices with Spring Cloud
Resilient Microservices with Spring CloudVMware Tanzu
 
Kubernetes for the VI Admin
Kubernetes for the VI AdminKubernetes for the VI Admin
Kubernetes for the VI AdminKendrick Coleman
 
When to use Serverless? When to use Kubernetes?
When to use Serverless? When to use Kubernetes?When to use Serverless? When to use Kubernetes?
When to use Serverless? When to use Kubernetes?Niklas Heidloff
 
Red Hat Forum Benelux 2015
Red Hat Forum Benelux 2015Red Hat Forum Benelux 2015
Red Hat Forum Benelux 2015Microsoft
 
COMPRO- WEB ALBUM & MOTION ANALYZER
COMPRO- WEB ALBUM  & MOTION ANALYZERCOMPRO- WEB ALBUM  & MOTION ANALYZER
COMPRO- WEB ALBUM & MOTION ANALYZERAshish Tanwer
 
Node.js Tools Ecosystem
Node.js Tools EcosystemNode.js Tools Ecosystem
Node.js Tools EcosystemRocket Software
 
GWT training session 1
GWT training session 1GWT training session 1
GWT training session 1SNEHAL MASNE
 
Migrating Java JBoss EAP Applications to Kubernetes With S2I
Migrating Java JBoss EAP Applications to Kubernetes With S2IMigrating Java JBoss EAP Applications to Kubernetes With S2I
Migrating Java JBoss EAP Applications to Kubernetes With S2IKonveyor Community
 
Codecentric At Ajax World Conference San Jose
Codecentric At Ajax World Conference San JoseCodecentric At Ajax World Conference San Jose
Codecentric At Ajax World Conference San JoseFabian Lange
 
Ultimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on KubernetesUltimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on Kuberneteskloia
 
Deploying R for Production - SRUG
Deploying R for Production - SRUGDeploying R for Production - SRUG
Deploying R for Production - SRUGHolger Hellebro
 
Red Hat and kubernetes: awesome stuff coming your way
Red Hat and kubernetes:  awesome stuff coming your wayRed Hat and kubernetes:  awesome stuff coming your way
Red Hat and kubernetes: awesome stuff coming your wayJohannes Brännström
 
Web Applications Support with the Chromium Embedded Framework on AGL
Web Applications Support with the Chromium Embedded Framework on AGLWeb Applications Support with the Chromium Embedded Framework on AGL
Web Applications Support with the Chromium Embedded Framework on AGLIgalia
 
Apache Felix Web Console
Apache Felix Web ConsoleApache Felix Web Console
Apache Felix Web ConsoleFelix Meschberger
 
GWT Training - Session 1/3
GWT Training - Session 1/3GWT Training - Session 1/3
GWT Training - Session 1/3Faiz Bashir
 
Jakarta Tech Talk: How to develop your first cloud-native Application with Java
Jakarta Tech Talk: How to develop your first cloud-native Application with JavaJakarta Tech Talk: How to develop your first cloud-native Application with Java
Jakarta Tech Talk: How to develop your first cloud-native Application with JavaNiklas Heidloff
 
Resource Oriented Architecture in Wireless Sensor Network
Resource Oriented Architecture in Wireless Sensor NetworkResource Oriented Architecture in Wireless Sensor Network
Resource Oriented Architecture in Wireless Sensor NetworkThomas Pham
 
Deploy Application on Kubernetes
Deploy Application on KubernetesDeploy Application on Kubernetes
Deploy Application on KubernetesOpsta
 
RIA front-ends: Flex, GWT integration in Nuxeo
RIA front-ends: Flex, GWT integration in NuxeoRIA front-ends: Flex, GWT integration in Nuxeo
RIA front-ends: Flex, GWT integration in NuxeoNuxeo
 

Similar to Building Server-Side Eclipse based web applications (20)

La sécurité avec Kubernetes et les conteneurs Docker (June 19th, 2019)
La sécurité avec Kubernetes et les conteneurs Docker (June 19th, 2019)La sécurité avec Kubernetes et les conteneurs Docker (June 19th, 2019)
La sécurité avec Kubernetes et les conteneurs Docker (June 19th, 2019)
 
Resilient Microservices with Spring Cloud
Resilient Microservices with Spring CloudResilient Microservices with Spring Cloud
Resilient Microservices with Spring Cloud
 
Kubernetes for the VI Admin
Kubernetes for the VI AdminKubernetes for the VI Admin
Kubernetes for the VI Admin
 
When to use Serverless? When to use Kubernetes?
When to use Serverless? When to use Kubernetes?When to use Serverless? When to use Kubernetes?
When to use Serverless? When to use Kubernetes?
 
Red Hat Forum Benelux 2015
Red Hat Forum Benelux 2015Red Hat Forum Benelux 2015
Red Hat Forum Benelux 2015
 
COMPRO- WEB ALBUM & MOTION ANALYZER
COMPRO- WEB ALBUM  & MOTION ANALYZERCOMPRO- WEB ALBUM  & MOTION ANALYZER
COMPRO- WEB ALBUM & MOTION ANALYZER
 
Node.js Tools Ecosystem
Node.js Tools EcosystemNode.js Tools Ecosystem
Node.js Tools Ecosystem
 
GWT training session 1
GWT training session 1GWT training session 1
GWT training session 1
 
Migrating Java JBoss EAP Applications to Kubernetes With S2I
Migrating Java JBoss EAP Applications to Kubernetes With S2IMigrating Java JBoss EAP Applications to Kubernetes With S2I
Migrating Java JBoss EAP Applications to Kubernetes With S2I
 
Codecentric At Ajax World Conference San Jose
Codecentric At Ajax World Conference San JoseCodecentric At Ajax World Conference San Jose
Codecentric At Ajax World Conference San Jose
 
Ultimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on KubernetesUltimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on Kubernetes
 
Deploying R for Production - SRUG
Deploying R for Production - SRUGDeploying R for Production - SRUG
Deploying R for Production - SRUG
 
Red Hat and kubernetes: awesome stuff coming your way
Red Hat and kubernetes:  awesome stuff coming your wayRed Hat and kubernetes:  awesome stuff coming your way
Red Hat and kubernetes: awesome stuff coming your way
 
Web Applications Support with the Chromium Embedded Framework on AGL
Web Applications Support with the Chromium Embedded Framework on AGLWeb Applications Support with the Chromium Embedded Framework on AGL
Web Applications Support with the Chromium Embedded Framework on AGL
 
Apache Felix Web Console
Apache Felix Web ConsoleApache Felix Web Console
Apache Felix Web Console
 
GWT Training - Session 1/3
GWT Training - Session 1/3GWT Training - Session 1/3
GWT Training - Session 1/3
 
Jakarta Tech Talk: How to develop your first cloud-native Application with Java
Jakarta Tech Talk: How to develop your first cloud-native Application with JavaJakarta Tech Talk: How to develop your first cloud-native Application with Java
Jakarta Tech Talk: How to develop your first cloud-native Application with Java
 
Resource Oriented Architecture in Wireless Sensor Network
Resource Oriented Architecture in Wireless Sensor NetworkResource Oriented Architecture in Wireless Sensor Network
Resource Oriented Architecture in Wireless Sensor Network
 
Deploy Application on Kubernetes
Deploy Application on KubernetesDeploy Application on Kubernetes
Deploy Application on Kubernetes
 
RIA front-ends: Flex, GWT integration in Nuxeo
RIA front-ends: Flex, GWT integration in NuxeoRIA front-ends: Flex, GWT integration in Nuxeo
RIA front-ends: Flex, GWT integration in Nuxeo
 

Recently uploaded

My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 

Recently uploaded (20)

My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 

Building Server-Side Eclipse based web applications

  • 1. Building Server-Side Eclipse based web applications Tutorial Building Server-Side Eclipse based web applications | Tutorial © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation; 1 Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
  • 2. The authors Jochen Hiller Simon Kaegi Deutsche Telekom AG, Germany IBM Rational Software, Canada jo.hiller@googlemail.com simon_kaegi@ca.ibm.com Equinox, E4 Committer Gunnar Wagenknecht AGETO, Germany gunnar@wagenknecht.org Eclipse Committer Building Server-Side Eclipse based web applications | Tutorial © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation; 2 Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
  • 3. Overview • Introduction to Server-Side Eclipse • Developing Server-Side Eclipse applications • Deploying Server-Side Eclipse applications • Monitoring and Debugging Server-Side Eclipse applications • Summary Building Server-Side Eclipse based web applications | Tutorial © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation; 3 Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
  • 4. What is Server-Side Eclipse (SSE)? • Recognition… that many of the features that have made RCP successful are equally applicable in server-side contexts. Standardized component model (OSGi) Pervasive extensibility – Extension Registry Runtime provisioning • Integration... with existing server-side infrastructure and technologies J2EE Application Servers Servlets and JSPs Application Frameworks … • Jeff McAffer stated at EclipseCon 2007, Equinox BOF: Server-Side Eclipse is a concept, a marketing name, to illustrate possible usage scenarios (like RCP). • The new top level project Eclipse Runtime is an umbrella project for a lot of server-related projects Building Server-Side Eclipse based web applications | Tutorial © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation; 4 Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
  • 5. What motivates developers to use SSE? Web developer RCP developer Infrastructure developer JavaTM EE RCP application application application framework + component model + server support + component model + use 3rd party plug-ins + re-use plugins • modular + distributed • flexible applications • dynamic Building Server-Side Eclipse based web applications | Tutorial © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation; 5 Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
  • 6. SSE Based Web Applications • Component based (Bundles) • Use the OSGi HttpService (Servlet API) Explicitly (code) or declaratively (extension registry) • Consistent development story independent of deployment constraints Support for an embedded HttpService Support for running embedded in Application Servers Building Server-Side Eclipse based web applications | Tutorial © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation; 6 Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
  • 7. Overview • Introduction to Server-Side Eclipse • Developing Server-Side Eclipse applications • Deploying Server-Side Eclipse applications • Monitoring and Debugging Server-Side Eclipse applications • Summary Building Server-Side Eclipse based web applications | Tutorial © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation; 7 Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
  • 8. Integrating Java EE with the OSGi HttpService • Replaces web deploy descriptor (e.g. “web.xml”) • URL mapping differences • Servlet API support ServletContext / HttpContext differences Does not provide “direct” support for Filters, Listeners. • Dynamic Registration void registerResources(String alias, String name, HttpContext context) void registerServlet(String alias, Servlet servlet, Dictionary initparams, HttpContext context) void unregister(String alias) Building Server-Side Eclipse based web applications | Tutorial © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation; Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
  • 9. URL Mapping Differences void registerResources(String alias, String name, HttpContext context) • “alias” roughly equivalent to <url-mapping> alias of “/myContent” is equivalent to <url-mapping> /myContent/* </url-mapping> • “name” provides a base path when looking up resources in the HttpContext. Supported in Equinox • No support for extension mappings Syntax is: {path}/*.jsp • No implicit welcome file support eg. mapping “/” to “/index.html” Building Server-Side Eclipse based web applications | Tutorial © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation; Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
  • 10. HttpContext • Maps 1-1 to a ServletContext Method Summary String getMimeType(String name) • Allows implementation of custom HttpContext URL getResource(String name) • MIME type retrieval boolean handleSecurity( • resource retrieval HttpServletRequest request, HttpServletResponse response) • authentication • Does not directly support: Supported in Equinox (via Reflection) getNamedDispatcher getResourcePaths Set getResourcePaths(String path) getInitParameters (*) “Context Path” (*) Building Server-Side Eclipse based web applications | Tutorial © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation; Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
  • 11. Servlets and Filters What’s missing… (*) = Workarounds Available: • Filter (*) • Technique is to wrap-and-adapt your Servlet or Resource. • HttpSessionListener Servlet wrapped = new ContextListenerServletAdaptor( • HttpSessionAttributeListener myServlet, myListener); • HttpSessionActivationListener registerServlet(“/myPath”, wrapped, params, myHttpContext); • ServletContextListener (*) • See org.eclipse.equinox.http.helper[s] • ServletContextAttributeListener in the Equinox-Incubator CVS • ServletRequestListener • not currently API but supported • ServletRequestAttributeListener Building Server-Side Eclipse based web applications | Tutorial © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation; Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
  • 12. Dynamic Registration Two main techniques: • Code-based Lifecycle: tied to Bundle START and STOP More Complex but provides greater control • Extension Registry (org.eclipse.equinox.http.registry) Lifecycle: tied to Bundle RESOLVED and UNRESOLVED Simpler in most cases • Declarative Services / Spring URL Space is also dynamic and shared across all registrations No more than one registration per “alias” Worth planning – useful techniques with relative URLs Building Server-Side Eclipse based web applications | Tutorial © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation; Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
  • 13. JSP Support • Provided by: org.eclipse.equinox.jsp.jasper.JspServlet << public JspServlet(Bundle bundle, String bundleResourcePath, String alias) >> • No default constructor • Requires compilation / runtime context from “bundle” • JSP lookup consistent with OSGi HttpService resource registration. Building Server-Side Eclipse based web applications | Tutorial © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation; Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
  • 14. JSP Support – Extension Registry • Extension Registry Support provided by: org.eclipse.equinox.jsp.jasper.registry.JspFactory • ExecutableExtensionFactory <!--* © Copyright 2007 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corp.; All rights reserved. This source code is made available under the terms of the Eclipse Public License, v1.0. --> <extension point=quot;org.eclipse.equinox.http.registry.servletsquot;> <servlet alias=quot;/myPath/*.jsp“ class=quot;org.eclipse.equinox.jsp.jasper.registry.JSPFactory:/bundlePathquot;> </servlet> </extension> • Use “{path}/*.jsp” style alias for JSPs. Allows a “{path}” resource registration to support more efficiently serving static resources without an alias namespace collision. Building Server-Side Eclipse based web applications | Tutorial © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation; Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
  • 15. Exercises • Start Eclipse & configure target platform • Hello Servlet • Hello JSP • Hello Servlet Registry • Hello JSP Registry Building Server-Side Eclipse based web applications | Tutorial © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation; 15 Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
  • 16. Overview • Introduction to Server-Side Eclipse • Developing Server-Side Eclipse applications • Deploying Server-Side Eclipse applications • Monitoring and Debugging Server-Side Eclipse applications • Summary Building Server-Side Eclipse based web applications | Tutorial © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation; 16 Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
  • 17. Recommended deployment scenarios Deployment depends on target infrastructure: • Standalone Equinox server application Embedded HttpService Lightweight solution – good choice for development Distribute like Eclipse RCP application • Run application in External Application Server Recommended as production solution Deploy as standard WAR application (scripts provided) Building Server-Side Eclipse based web applications | Tutorial © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation; 17 Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
  • 18. Equinox embedding an HttpService • Run Equinox as standalone application • Multiple processes isolated • Embedded HttpService (e.g. Jetty) • Application functionality based on bundles, Servlets, JSPs, ... • Add web services as bundle • Server management based on bundles Source: Jeff McAffer, Eclipse Summit Europe, Server-Side Symposium, Oct 12nd 2006 Building Server-Side Eclipse based web applications | Tutorial © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation; 18 Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
  • 19. Deploying standalone Equinox server • Choose target platform • Add platform specific launchers if required • Add common services and bundles (see Eclipse Orbit!) • Add application plug-ins • Group bundles / plug-ins as features Application plug-ins ... ... Servlet JSP Bundles Common services Launcher commons- Update Jetty Jasper 3rdParty (see Orbit) logging, ... Configurator Equinox Server-Side Eclipse Operating System Building Server-Side Eclipse based web applications | Tutorial © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation; 19 Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
  • 20. Deploying Standalone Equinox server • Deploy like an RCP application Plugins / Feature / Product based export You have to include SSE related plugins Maintain config.ini for starting bundles • Important config.ini settings: # start an OSGi console osgi.console=true # do NOT shutdown OSGi osgi.noShutdown=true # do NOT start an Eclipse application eclipse.ignoreApp=true • Or use commandline arguments when using Eclipse starter: # enable OSGi console -console # same as osgi.noShutdown=true -noExit # start application with <id> -application <id> Building Server-Side Eclipse based web applications | Tutorial © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation; 20 Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
  • 21. Deploy Standard Equinox – Running the Server • Start Equinox server java –Dorg.osgi.service.http.port=8080 –jar pluginsorg.eclipse.equinox.launcher_<version>.jar –console -noExit Building Server-Side Eclipse based web applications | Tutorial © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation; 21 Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
  • 22. Application Server running an embedded Equinox • Launch Equinox in traditional application server • Isolation between multiple web applications/Equinox instances • Forwarding (Lite) HttpService exposes application server capabilities • Application functionality based on bundles, Servlets, JSPs, ... • Bridging aspect is referred to as the Servletbridge Building Server-Side Eclipse based web applications | Tutorial © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation; 22 Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
  • 23. What is the Servletbridge? … a bridge between the servlet and OSGi world Servlet - side OSGi - side • Eclipse framework launcher • Proxy Servlet that registers with Bridge Servlet • Bridge Servlet with a call-back registration point • OSGi HttpService 1 5 Bridge Servlet Proxy Servlet Servlet OSGi 2 4 3 Framework Launcher HttpService Building Server-Side Eclipse based web applications | Tutorial © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation; 23 Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
  • 24. What is the Servletbridge? Servlet OSGi Incoming Request Registered Request Handler Servletbridge OSGi HttpService registerResource(…) registerServlet(…) Incoming requests are “proxied” through the Servletbridge to registered request handlers. Building Server-Side Eclipse based web applications | Tutorial © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation; 24 Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
  • 25. Deploying Equinox Inside an Application Server • Deploy similar to an RCP application but in a Web Archive /WEB-INF /web.xml (with one servlet entry assigning all incoming requests to the BridgeServlet) /lib/servletbridge.jar (the classes associated with the equinox.servletbridge) /eclipse (the eclipse platform directory) launch.ini (contains framework properties that will allow override of any eclipse specific System Properties) /configuration (contains config.ini which lists the bundles you want to have available at startup) /features /plugins • org.eclipse.equinox.servletbridge Project /scripts/webappBuilder.xml (Ant Script for building WAR file) /templates (contains the WAR directory structure) Building Server-Side Eclipse based web applications | Tutorial © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation; 25 Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
  • 26. Deploying Equinox inside Application Server • Online Demo Building Server-Side Eclipse based web applications | Tutorial © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation; 26 Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
  • 27. Exercises • Create feature for build/export • Export standalone server using product export • Create & deploy WAR file using Servlet bridge Building Server-Side Eclipse based web applications | Tutorial © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation; 27 Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
  • 28. Overview • Introduction to Server-Side Eclipse • Developing Server-Side Eclipse applications • Deploying Server-Side Eclipse applications • Monitoring and Debugging Server-Side Eclipse applications • Summary Building Server-Side Eclipse based web applications | Tutorial © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation; 28 Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
  • 29. Logging in Equinox Jetty 6 Integration • Jetty logging now controllable in 3.5 • -Dorg.eclipse.equinox.http.jetty.log.stderr.threshold=<level> quot;debugquot;, quot;infoquot;, quot;warnquot;, quot;errorquot;, and quot;off“ Default is “warn” • Log will happen to STDERR only (for now) • Outlook: deeper integration with Extended Equinox Log Service (3.6) Building Server-Side Eclipse based web applications | Tutorial © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation; 29 Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
  • 30. Debugging: Where to hook in • Hook either in OSGi world ServetBridge • Startup problems: FrameworkLauncher • Central access: ProxyServlet Hook in processAlias Building Server-Side Eclipse based web applications | Tutorial © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation; 30 Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
  • 31. Servlet Bridge Management Commands “web.xml” allows configuration of initial parameters: • commandline Allows all non-VM command line parameterizations of Eclipse. The default value is quot;-console“ which should be cleared for production. • enableFrameworkControls (true / false) - Controls whether or not the sp_* control URLs are accessible sp_deploy - Copies the contents of /platform to the install area (the servlet context tempdir is used - parameterizable someday) sp_undeploy - Removes the copy of Eclipse from the install area sp_redeploy - Resets the platform (e.g. stops, undeploys, deploys, starts) sp_start - Starts a deployed platform sp_stop - Stops the platform sp_test - Provides a sanity check and determines if an OSGi based servlet is ready to accept requests • frameworkLauncherClass – allows customization of the launcher • extendedFrameworkExports – additional java package exports from the web application. Servlet API is automatically exported. Building Server-Side Eclipse based web applications | Tutorial © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation; 31 Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
  • 32. Knopflerfish HTTP Console • Provides convenient way to manage bundles at runtime • Works within Servlet Bridge Building Server-Side Eclipse based web applications | Tutorial © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation; 32 Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
  • 33. Overview • Introduction to Server-Side Eclipse • Developing Server-Side Eclipse applications • Deploying Server-Side Eclipse applications • Monitoring and Debugging Server-Side Eclipse applications • Summary Building Server-Side Eclipse based web applications | Tutorial © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation; 33 Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
  • 34. Summary - Looking forward... • Eclipse >3.3 supports building OSGi based web applications for: Equinox based RCP and headless applications Equinox embedded in an application server • Outlook for Eclipse 3.5 Jetty 6 • Jetty joined Eclipse much tigther integration expected • Outlook for OSGi Spec work Enterprise Expert Group Http Service according 2.5 Spec “WebContainer” alike support, but with OSGi dynamics Building Server-Side Eclipse based web applications | Tutorial © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation; 34 Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
  • 35. For more information... Project hub: http://www.eclipse.org/equinox/server Newsgroup: news://news.eclipse.org/eclipse.technology.equinox Dev Mailing List: equinox-dev@eclipse.org Thank-you Building Server-Side Eclipse based web applications | Tutorial © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation; 35 Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
  • 36. Legal Notices • Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both • Microsoft, Windows, Windows NT, and the Windows logo are trademarks of Microsoft Corporation in the United States, other countries, or both. • Linux is a registered trademark of Linus Torvalds in the United States, other countries, or both. • Other company, product, or service names may be trademarks or service marks of others Building Server-Side Eclipse based web applications | Tutorial © Copyright 2007, 2008, 2009 Jochen Hiller, Simon Kaegi, Gunnar Wagenknecht, IBM Corporation; 36 Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license