Hello The Norther Organization has released Tammi 1.0 open source development framework for web applications at http://tammi.sourceforge.net/.
Tammi's design is based on the ideas by Jason et al. presented during planning of features for Turbine 3, i.e. a pipeline and valve based template processing, dynamically configurable service framework and jar based plug-in components. However, instead of being compatible with earlier versions Turbine, we decided to apply new solutions to speed up development. Hopefully, these solutions can be utilized back in Turbine in one form or another. The main differences between Tammi and Turbine are: Tammi's uses Sun's JMX as its service framework. As JMX provides a generic server for any kinds of objects, Tammi implements all of its logic, including filters, connectors, user interface variables, etc. as JMX MBeans. This also frees services from being singletons. Instead of proprietary pipelines, Tammi uses the filter chain mechanism of Servlet API 2.3. As Servlet API specifies only interfaces, we have simply extended them to implement Pipe Filters, Branching Filters, Secure Filters, etc. Instead of the RunData class, Tammi sticks to Servlet API's ServletRequest and ServletResponse interfaces and wraps them with filter specific implementations when applicable. Extensions are provided by saving extension objects as ServletRequest attributes made available through fixed attribute key naming. A more detailed list of differences includes: Services that are based on Turbine source are FactoryMBean, PoolMBean, ContentTypeMapMBean, TaskLoaderMBean, TemplateEngineMBean and VelocityEngine corresponding to FactoryService, PoolService, MimeTypeService, AssemblerBrokerService, TemplateService and VelocityService. Filters that are based on Turbine source are ContextFilterMBean, ActionFilterMBean, TemplateFilterMBean and LayoutFilterMBean corresponding to PullService and TemplateService (TemplateService have been split to several MBeans). Services having about the same functionality as Turbine are MBeanFinderMBean, LoggerMBean, SharedCacheMBean, SchedulerMBean and ScripterMBean corresponding to ServiceBroker, LoggingService, CacheService, SchedulerService and BSFService. TerminalFilterMBean, LocaleFilterMBean and ResourceFinderMBean correspond to an extended LocalizationService. HTML form validation with FormFilterMBean corresponds to IntakeService. Authentication is handled by HttpBasicAuthFilterMBean, HttpDigestAuthFilterMBean, HttpFormAuthFilterMBean, HttpSspiFilterMBean and TerminalAuthFilterMBean. The supported realms corresponding to SecurityService include MemoryRealmMBean, JndiRealmMBean and NativeRealmMBean. Additional services and filters include support for concurrency (ExecutorMBean, TimeoutMBean), support for relations (RelationMBean), support for dynamic data types and their conversions (VariableMBean, ConverterMBean), support for static content (ContentFilterMBean, CGIBinFilterMBean), support for native libraries (LibraryMBean), and support for an HTTP server (ConnectorMBean, SessionManagerMBean). Missing support for persistence will be a plug-in based on OJB. Preliminary versions are available at http://www.norther.org/. Regards Ilkka Priha [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
