Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
################################################################################### Copyright (C) 2009-2010 Swedish Meteorological and Hydrological Institute, SMHI, This file is part of the Beast library. Beast library is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Beast library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the Beast library library. If not, see <http://www.gnu.org/licenses/>. ################################################################################### The beast library (acronym undefined) is not intended to be used stand alone. It's main purpose is to provide the users a generic interface for passing on messages to various receivers determined by router rules. Since this library has been developed with the main purpose to support the BALTRAD exchange program, the default components delivered are defined for that specific purpose. 1) Database This library requires database access (postgresql), where it can define four tables for keeping track on the routing information. The tables needed are defined in the script: etc/create_db.sql 2) Message Manager The manager is preferably bundled as a spring-IOC container but you are of course free to wrap it manually if you want. The nessecary context.xml parts are. <bean id="xmlrpcgenerator" class="eu.baltrad.beast.adaptor.xmlrpc.XmlRpcCommandGenerator"/> <bean id="xmlrpcadaptormanager" class="eu.baltrad.beast.adaptor.xmlrpc.XmlRpcConfigurationManager" autowire="byType"/> <bean id="adaptormanager" class="eu.baltrad.beast.adaptor.BltAdaptorManager" autowire="byType"> <property name="typeRegistry"> <list> <ref bean="xmlrpcadaptormanager"/> </list> </property> </bean> <bean id="groovycreator" class="eu.baltrad.beast.rules.GroovyRuleCreator"/> <bean id="rulefactory" class="eu.baltrad.beast.rules.RuleFactory"> <property name="creators"> <list> <ref bean="groovycreator"/> </list> </property> </bean> <bean id="router" class="eu.baltrad.beast.router.impl.BltRouter" autowire="byType" /> <bean id="manager" class="eu.baltrad.beast.manager.BltMessageManager" autowire="byType"/> NOTE! Be certain that you get all injected dependencies in place before atempting to use the message routing. If you feel that you want to expand the scripting language support with more types, just add a new class implementing the IRuleCreator interface and add it to the list of creators in the rulefactory. 3) XmlRpc server The library comes bundled with a xmlrpc server that can be run stand alone processing xmlrpc requests comming from the message manager. You can find the context.xml configuration file in etc/xmlrpcserver-context.xml.