You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by Peter Donald <do...@apache.org> on 2001/05/03 01:41:55 UTC
Re: Proposal to factor Common code in James Protocol Servers
into AbstractService.
At 05:11 2/5/01 -0700, Harmeet Bedi wrote:
>Here is a specific proposal.
>a) have AbstractService handle configure and any other code in James
>protocol servers for logging etc.
I would prefer a sub-class of AbstractService ... see below
>b) James protocol servers POP3Server etc. will only implement 1 method
><createFactory>. Nothing else.
Actually I think that we can even avoid this - see below...
>This is not directly related to the 'Logging' emails but, but by reducing
>code it would be easier to spot inconsistencies.
>
>thoughts, votes ?
I like the idea - but I would prefer it to be prototyped in James first.
Perhaps something like
public class DefaultNetworkService
extends AbstractService {
protected Class m_clazz;
protected ConnectionHandlerFactory createFactory()
{
return new DefaultHandlerFactory( m_clazz );
}
public void configure( final Configuration configuration )
throws ConfigurationException {
m_port = configuration.getChild( "port" ).getValueAsInteger();
try
{
final String bindAddress = configuration.getChild( "bind"
).getValue( null );
if( null != bindAddress )
{
m_bindTo = InetAddress.getByName( bindAddress );
}
}
catch( final UnknownHostException unhe )
{
throw new ConfigurationException( "Malformed bind parameter",
unhe );
}
m_serverSocketType =
configuration.getChild( "socket-type" ).getValue( "plain" );
try
{
String className =
configuration.getChild( "handler" ).getValue( "class" );
m_class = Class.forName( className );
}
super.configure( configuration.getChild( "handler" ) );
}
}
Cheers,
Pete
*-----------------------------------------------------*
| "Faced with the choice between changing one's mind, |
| and proving that there is no need to do so - almost |
| everyone gets busy on the proof." |
| - John Kenneth Galbraith |
*-----------------------------------------------------*
---------------------------------------------------------------------
To unsubscribe, e-mail: james-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: james-dev-help@jakarta.apache.org