Index: src/main/java/org/springframework/webflow/conversation/impl/ContainedConversation.java =================================================================== --- src/main/java/org/springframework/webflow/conversation/impl/ContainedConversation.java (revision 12756) +++ src/main/java/org/springframework/webflow/conversation/impl/ContainedConversation.java (working copy) @@ -33,7 +33,7 @@ * * @author Erwin Vervaet */ -class ContainedConversation implements Conversation, Serializable { +public class ContainedConversation implements Conversation, Serializable { private static final Log logger = LogFactory.getLog(SessionBindingConversationManager.class); Index: src/main/java/org/springframework/webflow/conversation/impl/ConversationContainer.java =================================================================== --- src/main/java/org/springframework/webflow/conversation/impl/ConversationContainer.java (revision 12756) +++ src/main/java/org/springframework/webflow/conversation/impl/ConversationContainer.java (working copy) @@ -34,7 +34,7 @@ * * @author Erwin Vervaet */ -class ConversationContainer implements Serializable { +public class ConversationContainer implements Serializable { /** * Maximum number of conversations in this container. -1 for unlimited. @@ -89,7 +89,7 @@ */ public synchronized Conversation createConversation(ConversationParameters parameters, ConversationLockFactory lockFactory) { - ContainedConversation conversation = new ContainedConversation(this, nextId(), lockFactory.createLock()); + ContainedConversation conversation = newContainedConversation(nextId(), lockFactory.createLock()); conversation.putAttribute("name", parameters.getName()); conversation.putAttribute("caption", parameters.getCaption()); conversation.putAttribute("description", parameters.getDescription()); @@ -144,4 +144,14 @@ private boolean maxExceeded() { return maxConversations > 0 && conversations.size() > maxConversations; } + + protected List getConversations() { + return conversations; + } + + // hook methods + + protected ContainedConversation newContainedConversation(ConversationId id, ConversationLock lock) { + return new ContainedConversation(this, id, lock); + } } \ No newline at end of file