NAME

Bio::Das::ProServer::Config - configuration parsing and hooks

VERSION

$Revision: 687 $

SYNOPSIS

DESCRIPTION

Builds the ProServer configuration.

CONFIGURATION AND ENVIRONMENT

Configuration takes the following structure

[general]
interface         = *    # interface to bind to ('*' for all)
port              = 9000 # port to listen on
; response_* attributes for servers behind a reverse proxy:
response_hostname =      # overriding hostname for responses
response_port     =      # overriding port for responses
response_protocol =      # overriding protocol (http/s) for responses
response_baseuri  =      # overriding base-uri for responses
maxclients        = 10
pidfile           = 
logfile           = 
ensemblhome       =      # path to ensembl libs (for sharing across sources)
oraclehome        =      # path to oracle libs  (for sharing across sources)
bioperlhome       =      # path to bioperl libs (for sharing across sources)
serverroot        =      # path to root directory (for stylesheets/coordinates)
coordshome        =      # path to coordinate systems XML files
styleshome        =      # path to stylesheet XML files
http_proxy        =      # proxy for sources requiring web access
maintainer        =      # email address
strict_boundaries =      # whether to filter out-of-range segments
logformat         = %i %t %r %s

# then many of these with directives specific to each source
[sourcename]
adaptor        = adaptorpackage
title          = Source Name
description    = A description of The Source.
stylesheetfile = /path/to/stylesheet.xml
...

# e.g. for mysql:
transport = dbi
dbhost    = localhost
dbport    = 3306
dbuser    = proserverro
dbpass    = password

SUBROUTINES/METHODS

new - Constructor

my $oConfig = Bio::Das::ProServer::Config->new("/path/to/proserver.ini");

port - get accessor for configured port

my $sPort = $oConfig->port();

maxclients - get/set accessor for configured maxclients

my $sMaxClients = $oConfig->maxclients();

pidfile - get accessor for configured pidfile

my $sPidFile = $oConfig->pidfile();

logfile - get accessor for configured logfile

my $sLogFile = $oConfig->logfile();

logformat - get accessor for configured logformat

my $sLogformat = $oConfig->logformat();

Special variables:
%i      Remote IP
%h      Remote hostname
%t      Local time (YYYY-MM-DDTHH:MM:SS)
%r      Request URI
%s      HTTP status code

host - get accessor for configured host

my $sHost = $cfg->host();

Examines 'interface' and 'hostname' settings in that order

response_hostname - get accessor for configured response_hostname

Useful for setting the hostname in XML/HTML responses when behind a reverse-proxy.

my $sResponse_Hostname = $cfg->response_hostname();

Examines 'response_hostname', 'interface' and 'hostname' settings in that order

response_port - get accessor for configured response_port

Useful for setting the port in XML/HTML responses when behind a reverse-proxy.

my $sResponse_Port = $cfg->response_port();

Examines 'response_port' and 'port' settings in that order

response_protocol - get accessor for configured response_protocol

Useful for setting the protocol in XML/HTML responses when behind a reverse-proxy.

my $sResponse_Protocol = $cfg->response_protocol();

response_baseuri - get accessor for configured response_baseuri

Useful for setting the baseuri (i.e. preceeding /das) in XML/HTML responses when behind a reverse-proxy.

my $sResponse_Baseuri = $cfg->response_baseuri();

server_url - helper method for constructing a fully-qualified URL for the server

Useful for setting the full server URL in XML/HTML responses when behind a reverse-proxy.

my $sServer_url = $cfg->server_url();

interface - get accessor configured interface

my $sInterface = $cfg->interface();

adaptors - Build all known Bio::Das::ProServer::SourceAdaptors (including those Hydra-based)

my @aAdaptors = $oConfig->adaptors();

Note this can be an expensive call if lots of sources or large hydra sets are configured.

adaptor - Build a SourceAdaptor given a dsn (may be a hydra-based adaptor)

my $oSourceAdaptor = $oConfig->adaptor($sWantedDSN);

knows - Is a requested dsn known about?

my $bDSNIsKnown = $oConfig->knows($sWantedDSN);

das_version - Server-supported das version

my $sVersion = $oConfig->das_version();

By default 'DAS/1.53E';

server_version - Server release version

my $sVersion = $oConfig->server_version();

By default 'ProServer/2.7';

hydra_adaptor - Build a hydra-based SourceAdaptor given dsn and optional hydraname

my $oAdaptor = $oConfig->hydra_adaptor($sWantedDSN, $sHydraName); # fast

my $oAdaptor = $oConfig->hydra_adaptor($sWantedDSN); # slow, performs a full scan of any configured hydras

hydra - Build SourceHydra for a given dsn/hydraname

my $oHydra = $oConfig->hydra($sHydraName);

log - log to STDERR with timestamp

$oConfig->log('a message');

DIAGNOSTICS

DEPENDENCIES

INCOMPATIBILITIES

BUGS AND LIMITATIONS

AUTHOR

Roger Pettett <rmp@sanger.ac.uk>.

LICENSE AND COPYRIGHT

Copyright (c) 2006 The Sanger Institute

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See DISCLAIMER.txt for disclaimers of warranty.