Description

The application services would allow fully functional Turbine applications to be packaged up in the form of JAR files and deployed during Turbine startup.

Requirements

  • Turbine would probably process a directory of JAR files that contain sub-applications. The manifest would contain a set of instructions to be used by the application service so that the sub-application would be processed correctly and usable by Turbine. This may be the module.packages to add, or template paths to add, or whatever else is needed to bootstrap the sub-application.
  • Module packages have to be dynamically configurable. The assembler broker must accept additional packages to look in for modules after the system has started.
  • Must be able to load templates from JAR files. Velocity can do this, and it can probably be done for the other template services as well.
  • Configuration information must be able to enter a running Turbine application. A sub application might have many forms of configuration info. It might be properties that have to be accessible via TurbineResources. Or it might configuration information to be used by one of the services, say for example an intake XML descriptor for the input forms used in the sub-application.

    The services in general might need some work to allow dynamic configuration so that sub-applications can really work properly.
  • Sub-applications may require certain operations to be executed in order to run. This might be a forum application that has an SQL schema that needs to be inserted in order to function. These stops could either be performed by Ant, or scripts that could be executed by the proposed BSF (Bean Scripting Framework) service.
  • Sub-applications will require a unique id to to keep things like templates in their own namespace. Eventually there may also be other entities that need to be kept separate. We could probably start a catalog of sub-applications to make sure that people don't use a unique id already being used by another sub-application in existence.
  • Extension do DynamicURI and derivates to support new parameter (sub-application selector)