Hi,

I'd like to record the senders and recipients of the messages in a db
table. I think I'm having headaches in getting a JdbcDataSource from a
mailet. So I have to come up with the following. I know, it has problems;
getting the configuration from the config.xml file by defining the path,
for example.

public void init() {
        Configuration config;
        Configuration[] dataStoreConfig;
        Configuration[] compConfs;
        
        try {
            configBuilder = new DefaultConfigurationBuilder();
            config =
configBuilder.buildFromFile("./dist/apps/james/conf/config.xml"); //Fixme: 
            dataStoreConfig = config.getChildren("data-store");
            compConfs = dataStoreConfig[0].getChildren();

            componentSelector = new ExcaliburComponentSelector();

componentSelector.setLogger(Hierarchy.getDefaultHierarchy().getLoggerFor("data-store"));
 
// Fixme:
            componentSelector.configure(compConfs[0]);
            componentSelector.initialize();

            dataSource = (JdbcDataSource)
componentSelector.select("mailetsource");
            storeSQL = "insert into SenderRecipients (sender, recipients,
size) " +
                "values (?, ?, ?)";
            conn = (JdbcConnection) dataSource.getConnection();
            ps = conn.prepareStatement(storeSQL);
        } catch(Exeption e) {
          //...
        }          
}

I think it would be nicer if the matchers and mailets in James become
Avalon Components, so that the compose(), configure(), and initialize()
would be executed by Avalon. I don't know anything better than the code
above. 

Maybe there's a way to get a reference to a Block or Component from
classes which are not Avalon components. As I understand it, Avalon
components are usable if they are initialized from Avalon blocks (so that 
they can have a reference to the (system's) ExcaliburComponentManager. Or
I could be just plain wrong...

BTW, building Avalon components by feeding the Configuration into the
ComponentSelector is really neat, I believe.

Oki



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to