mail.setSendable(false);
}
mail.setDefaultProperties();
Component factory = new Component(
"Mail.ConnectionFactory." + channel.getName(),
loader.getHelper().getClassObject(
SysUtil.PACKAGE + ".core.rpc.mail.MailConnectionFactoryLocator"),
Component.SINGLETON);
factory.addPrimitivePropertyInitializer("properties",
mail.getPropertyHolder().getProperties());
factory.addPrimitivePropertyInitializer("dataSource", mail.getName());
factory.addPrimitivePropertyInitializer("password", mail.getPassword());
factory.addPrimitivePropertyInitializer("user", mail.getUser());
if (mail.isSendable())
{
Component component = new Component("MailSender." + channel.getName(),
channel.getType().getSender(),
Component.SINGLETON);
component.addPrimitivePropertyInitializer("channel", mail);
component.addComponentPropertyInitializer("connectionFactory", factory);
loader.getMetadata().addComponent(component);
loader.addSingletonFixup(component);
mail.setSender(component);
}
if (mail.isReceivable())
{
Component component = new Component("MailReceiver." + channel.getName(),
channel.getType().getReceiver(),
Component.SINGLETON);
component.addPrimitivePropertyInitializer("channel", mail);
component.addComponentPropertyInitializer("connectionFactory", factory);
loader.getMetadata().addComponent(component);
loader.addSingletonFixup(component);
mail.setReceiver(component);
}
}