This document discusses managing large distributed Eclipse server applications. It covers application stacks including servlets, JSP, OSGi bundles, and third party libraries. It also discusses integrating technologies like Jetty, Equinox, logging, clustering, provisioning, and the RAP framework. Specific challenges and solutions are provided around areas like integrating Jetty with OSGi, implementing a flexible logging system, using ZooKeeper for clustering and coordination, and leveraging p2 for provisioning. The document advocates contributing back through bug reports, patches, and code.
9. Jetty & OSGi
• How do I …
o make Servlets available
o for multiple tenants
o in different versions
o in different configurations
o without getting lost
11. Jetty & OSGi
• What we created …
OSGi Web App
OSGi Web App
OSGi Web App OSGi Bundle
OSGi Bundle
Servlets, Resources & Filters OSGi Bundle
Servlets, Resources & Filters
Session Isolation
Servlets, Resources & Filters
Session Isolation
Session Isolation
https://www.myshop.com/api https://my.ssldomain.com:8443/
https://www.myshop.com/api/v2 https://my.ssldomain.com:8444/
http://demo.na.mysystem.secret/ https://my.ssldomain.com:8445/
12. Jetty & OSGi
• What we created …
public class MyWebApp extends Application {
@Override
protected void doInit() throws CoreException {
getApplicationContext().registerServlet(…);
getApplicationContext().registerResources(…);
getApplicationContext().registerFilter(…);
}
}
13. Jetty & OSGi
• What we created …
osgi> http <cmd> [args]
ls … lists registered applications or providers
defineApp … defines an application
removeApp … removes an application definition
setAppProperty … sets/removes an application property
mount … mounts an application at the specified URL
unmount … unmounts the specified URL
start … starts an application
stop … stops an application
14. Jetty & OSGi
• What we created …
osgi> jetty <cmd> [args]
ls … list all connectors or certificates
addConnector … adds a connector
removeConnector … removes a connector
importCertificate … imports a certificate
removeCertificate … removes a certificate
42. Additional Pieces
• Distributed Processing
o Scheduler & Workers
o Quartz & Eclipse Jobs API
• Contextual Runtime
o Per tenant customization/configuration
o DI (provisional)