Integration

Extend is easily expanded using a service modules. The service modules always have access to all modules they depend on and access to the core server's application context.

Danube

Integration with Danube is done through several service archives: main, web server one, danube-velocity, danube-freemarker and danube-spring webflow modules. The Danube archive sets up an web server while others are integrations of Danube with respectively Velocity , FreeMarker and Spring Webflow providing glue code, spring application server code (for correcting paths - for paths to appear archive centric), appropriate third party libraries and configurations.

The integration provides module and module loader implementations. For an archive or a directory to be considered to be loaded by this integration it has to have suffix ".war" and must have file named "web-service.xml" in the root of the archive. The module provides an application context read from the "web-service.xml" file. Unlike in the service archive here no beans are treated as services. Aside that, class loading and application context enclosing are the same.

Soon the module is deployed and started an bean named "web-application" of ConnectionHandler type is obtained and passed to a Prefix , using module's name as first part of the context path, to the main selector of Danube. If special tag <context-path> is added at the beginning of the beans section of the xml file then that string is going to be used instead.

Jetty

Jetty web server is added in a similar way as Danube - as an service archive defining module loader that knows how to load an archive (or a directory) that ends with ".war" and has "WEB-INF/web.xml" file in it. This later one is for J2EE web applications to be distinguished from Danube's web applications.

A J2EE web application module is deployed under context path of module's name, but if application context file "WEB-INF/web-application.xml" exists and special tag <context-path> is added at the beginning of the beans section then that string is used instead.

Note: Default port for Jetty undex extend is 8100 but it can be easily changed inside of service.xml file in jetty.sar folder.

Tomcat

Tomcat web server is added in a similar way as Jetty - as an service archive defining module loader that knows how to load an archive (or a directory) that ends with ".war" and has "WEB-INF/web.xml" file in it. This later one is for J2EE web applications to be distinguished from Danube's web applications.

A J2EE web application module is deployed under context path of module's name, but if application context file "WEB-INF/web-application.xml" exists and special tag <context-path> is added at the beginning of the beans section then that string is used instead.

Note: Default port for Jetty undex extend is 8090 but it can be easily changed inside of service.xml file in tomcat.sar folder.

Other

There are other technologies that will benefit of being adopted to run under Extend. Spring Framework's simplicity and power of configuration is the major benefit any component can have from being adopted.

Adding new elements to the spring application server can be done by simply adoptoing Module and if needed ModuleLoader interfaces. Using service archives, the spring framework for configuration and the server for handing life cycle are tools for adopting independent pieces of software to work with Extend.