JBM 2.0 JDBCPersistenceManager - volunteers?
timfox Dec 1, 2007 8:07 AMHello All-
For JBM 2.0, the main persistence mechanism is not via JDBC, but we still need to provide a simple JDBC PersistenceManager implementation, that uses JDBC.
I'm looking for volunteers to implement this.
The Persistence Manager interface is pretty simple, currently :
public interface PersistenceManager
{
/**
* Persist a message reference in the specified queue also persisting the message if it is not already
* persisted
* @param queue The queue to persist it in
* @param ref The MessageReference to persist
* @param tx The transactional context, or null if no transactional context
* @throws Exception
*/
void addReference(PersistenceTransaction tx, Queue queue, MessageReference ref) throws Exception;
/**
* Remove a message reference from persistent storage for the specified queue, also removing the the
* associated message if it is not in any more queues
* @param queue The queue to remove from
* @param ref The MessageReference to remove
* @param tx The transactional context, or null if no transactional context
* @throws Exception
*/
void removeReference(PersistenceTransaction tx, Queue queue, MessageReference ref) throws Exception;
/**
* Update the delivery count for the specified MessageReference
*
* @param queue The queue
* @param ref The MessageReference
* @throws Exception
*/
void updateDeliveryCount(Queue queue, MessageReference ref) throws Exception;
/**
* Create a PersistenceTransaction
* @return The PersistenceTransaction
* @throws Exception
*/
PersistenceTransaction createTransaction() throws Exception;
/**
*
* @param reference
* @return
*/
boolean duplicateExists(MessageReference reference);
/**
* Load the specified queues from persistent storage
* @param queues The map of queues to load
* @throws Exception
*/
void loadQueues(Map<Long, Queue> queues) throws Exception;
}
The JDBCPersistenceManager implementation should use HIbernate (at least the dialects) to actually do the performance - we don't want to have to provide different configs for different databases as we did in JBM 1.x.
Any volunteers?