If you&#39;re referring to the Conversation interface here: <a href="http://docs.jboss.org/cdi/api/1.0/javax/enterprise/context/Conversation.html" target="_blank">http://docs.jboss.org/cdi/api/1.0/javax/enterprise/context/Conversation.html</a><br>

<br>then NKarlsson&#39;s ConversationManager interface has more methods than the CDI version above, no?  So what do you mean by &quot;These are already available on CDI&#39;s Conversation interface.&quot;?  I think that ConversationManager is a better name for a manager component than simply Conversation.  What if I wanted to <code><b><a href="http://docs.jboss.org/cdi/api/1.0/javax/enterprise/context/Conversation.html#getTimeout%28%29">getTimeout</a></b>()</code>

of a non-current conversation in the case there are multiple concurrent conversations in the current session?<br><br>When comparing org.jboss.seam.core.Conversation class from Seam 2.x API, why are there so many *less* methods in the Conversation interface in CDI?  Are nested conversations removed in Weld/Seam3?<br>
<br><div class="gmail_quote">On Fri, Jan 29, 2010 at 8:42 AM, Pete Muir <span dir="ltr">&lt;<a href="mailto:pmuir@redhat.com" target="_blank">pmuir@redhat.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

These are already available on CDI&#39;s Conversation interface.<br>
<div><div></div><div><br>
On 29 Jan 2010, at 14:27, Arbi Sookazian wrote:<br>
<br>
&gt; How about begin() and end()?<br>
&gt;<br>
&gt; reference: <a href="http://docs.jboss.org/seam/2.2.0.GA/api/org/jboss/seam/core/Conversation.html" target="_blank">http://docs.jboss.org/seam/2.2.0.GA/api/org/jboss/seam/core/Conversation.html</a><br>
&gt;<br>
&gt; On Thu, Jan 28, 2010 at 11:56 PM, Nicklas Karlsson &lt;<a href="mailto:nickarls@gmail.com" target="_blank">nickarls@gmail.com</a>&gt; wrote:<br>
&gt; Hi,<br>
&gt;<br>
&gt;    There has been many requests for a standard ConversationManager<br>
&gt; API that could be used by other frameworks (SE, GraniteDS, Seam<br>
&gt; Remoting etc) so there was a short brainstorming session and we came<br>
&gt; up with the following proposal on which I now request your feedback.<br>
&gt;<br>
&gt; public interface ConversationManager<br>
&gt; {<br>
&gt;   /**<br>
&gt;    * Activates the conversation context<br>
&gt;    *<br>
&gt;    * @return The conversation manager<br>
&gt;    * @throws IllegalStateException if the context is already active<br>
&gt;    */<br>
&gt;   public abstract ConversationManager activateContext();<br>
&gt;<br>
&gt;   /**<br>
&gt;    * Deactivates the conversation context<br>
&gt;    *<br>
&gt;    * @return The conversation manager<br>
&gt;    * @throws IllegalStateException if the context is already deactivated<br>
&gt;    */<br>
&gt;   public abstract ConversationManager deactivateContext();<br>
&gt;<br>
&gt;   /**<br>
&gt;    * Checks the state of the conversation context<br>
&gt;    *<br>
&gt;    * @return true if the conversation context is active, false otherwise<br>
&gt;    */<br>
&gt;   public abstract boolean isContextActive();<br>
&gt;<br>
&gt;   /**<br>
&gt;    * Starts a new, transient conversation<br>
&gt;    *<br>
&gt;    * @return The conversation manager<br>
&gt;    * @throws IllegalStateException if there is already an active<br>
&gt; conversation or if the conversation context is not active<br>
&gt;    */<br>
&gt;   public abstract ConversationManager createTransientConversation();<br>
&gt;<br>
&gt;   /**<br>
&gt;    * Ends the current transient conversation<br>
&gt;    *<br>
&gt;    * @return The conversation manager<br>
&gt;    * @throws IllegalStateException if the current transaction is not<br>
&gt; transient or if the conversation context is not active<br>
&gt;    */<br>
&gt;   public abstract ConversationManager endTransientConversation();<br>
&gt;<br>
&gt;   /**<br>
&gt;    * Restores a long-running conversation.<br>
&gt;    *<br>
&gt;    * @param cid The id of the conversation to restore<br>
&gt;    * @return The conversation manager<br>
&gt;    * @throws NonexistentConversationException if the conversation id<br>
&gt; is null or not a known long-running conversation<br>
&gt;    * @throws IllegalStateException if there already an active<br>
&gt; conversation or if the conversation context is not active<br>
&gt;    */<br>
&gt;   public abstract ConversationManager restoreConversation(String cid);<br>
&gt;<br>
&gt;   /**<br>
&gt;    * Marks a long-running conversation transient<br>
&gt;    *<br>
&gt;    * @param cid The id of the conversation to make transient<br>
&gt;    * @return The conversation manager<br>
&gt;    * @throws NonexistentConversationException if the conversation id<br>
&gt; is null or not a known long-running conversation<br>
&gt;    * @throws IllegalStateException if the conversation context is not active<br>
&gt;    */<br>
&gt;   public abstract ConversationManager endConversation(String cid);<br>
&gt;<br>
&gt;   /**<br>
&gt;    * Marks all long-running conversations as transient and destroys them<br>
&gt;    *<br>
&gt;    * @return The conversation manager<br>
&gt;    * @throws IllegalStateException if the conversation context is not active<br>
&gt;    */<br>
&gt;   public abstract ConversationManager endAllConversations();<br>
&gt;<br>
&gt;   /**<br>
&gt;    * Returns the long-running conversation IDs<br>
&gt;    *<br>
&gt;    * @return The long-running conversations IDs<br>
&gt;    * @throws IllegalStateException if the conversation context is not active<br>
&gt;    */<br>
&gt;   public abstract Set&lt;String&gt; getConversations();<br>
&gt;<br>
&gt;   /**<br>
&gt;    * Returns a new, unused conversation ID<br>
&gt;    *<br>
&gt;    * @return A new, unused conversation ID<br>
&gt;    * @throws IllegalStateException if the conversation context is not active<br>
&gt;    */<br>
&gt;   public abstract String getNewConversationId();<br>
&gt;<br>
&gt;<br>
&gt;   /**<br>
&gt;    * Checks if a conversation ID is in use for any other conversation<br>
&gt; than the current one<br>
&gt;    *<br>
&gt;    * @return True if the conversation ID is in use, false otherwise<br>
&gt;    * @throws IllegalStateException if the conversation context is not active<br>
&gt;    */<br>
&gt;   public abstract boolean isConversationIdInUse(String id);<br>
&gt;<br>
&gt; }<br>
&gt;<br>
&gt; Does it do the job? Needs more ? Needs less? Violates the<br>
&gt; specification in any point (from JSF perspective)?<br>
&gt;<br>
&gt; ---<br>
&gt; Nik<br>
&gt; _______________________________________________<br>
&gt; weld-dev mailing list<br>
&gt; <a href="mailto:weld-dev@lists.jboss.org" target="_blank">weld-dev@lists.jboss.org</a><br>
&gt; <a href="https://lists.jboss.org/mailman/listinfo/weld-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/weld-dev</a><br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; weld-dev mailing list<br>
&gt; <a href="mailto:weld-dev@lists.jboss.org" target="_blank">weld-dev@lists.jboss.org</a><br>
&gt; <a href="https://lists.jboss.org/mailman/listinfo/weld-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/weld-dev</a><br>
<br>
</div></div></blockquote></div><br>