Spring configuration files
===========================

A lot of the game's code (whether on the server side or on the web clients)
relies on the Spring framework. For most of the components, it is easier to
use XML configuration files rather than in-code configuration. This file
describes the common elements and guidelines to follow for the configuration
files.


Files in the main server package:

	lw-server.xml					Main configuration file
	
		This file contains the server's top-level configuration. It enables
		annotation-based component processing, adds the server termination
		component, and loads the configuration files for all elements of the
		server: transaction management, meta components, game components for
		both the "real" game and the "simple" implementation written for
		Milestone 1, session type definitions and commands.

	configuration/game.xml			"Real" game components

		This file acts as a loader for all configuration files the load
		elements of the "real" game - that is, parts of the game which have
		taken (or are taking) the form they should have in the final version.

	configuration/meta.xml			Meta components

		This file loads the configuration files for all "meta" components.
		A "meta" component is any component which is not directly related to
		the game itself, but it still necessary: for example account
		management or the bug tracking system fall into this category.

	configuration/transactions.xml	Transaction manager configuration

		This file contains the configuration for Spring's transaction
		management system. It defines the transaction manager and enables
		annotation-based transaction processing.


Files in general component definition packages:

	Most of the component definition packages will include one single
	configuration file which loads the components the package defines. This
	file will be found in either configuration/meta/ or configuration/game/
	depending on the purpose of the components. The file in question will
	be loaded from the corresponding file in the main server package.


Files in the legacyworlds-server-beans-simple package:

	This package includes its own top-level configuration file, unsurprisingly
	named configuration/simple.xml, which is included in the server's top-level
	configuration and loads all files in the configuration/simple/
	sub-directory. Since it corresponds to Milestone 1's "simple" game
	implementation, it should only be modified to remove components as they
	are moved or replaced.


Files in the legacyworlds-server-beans-user package:

	This package includes a "meta" components configuration file, which loads
	low-level session management components. In addition, it features the
	following configuration files:
	
		configuration/session-types.xml		Session types loader

			This file loads the configuration files for each specific type of
			session.

		configuration/session-types/		Session types definitions

			This directory contains configuration files which loads all
			components for some type of session. Each file should therefore
			load at least one session definer component, and a bunch of
			command handling components.