001 /**
002 * GRANITE DATA SERVICES
003 * Copyright (C) 2006-2013 GRANITE DATA SERVICES S.A.S.
004 *
005 * This file is part of the Granite Data Services Platform.
006 *
007 * Granite Data Services is free software; you can redistribute it and/or
008 * modify it under the terms of the GNU Lesser General Public
009 * License as published by the Free Software Foundation; either
010 * version 2.1 of the License, or (at your option) any later version.
011 *
012 * Granite Data Services is distributed in the hope that it will be useful,
013 * but WITHOUT ANY WARRANTY; without even the implied warranty of
014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser
015 * General Public License for more details.
016 *
017 * You should have received a copy of the GNU Lesser General Public
018 * License along with this library; if not, write to the Free Software
019 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
020 * USA, or see <http://www.gnu.org/licenses/>.
021 */
022 package org.granite.tide.seam;
023
024 import static org.jboss.seam.ScopeType.EVENT;
025 import static org.jboss.seam.ScopeType.STATELESS;
026 import static org.jboss.seam.annotations.Install.FRAMEWORK;
027
028 import java.util.List;
029
030 import org.jboss.seam.annotations.Factory;
031 import org.jboss.seam.annotations.Install;
032 import org.jboss.seam.annotations.Name;
033 import org.jboss.seam.annotations.Scope;
034 import org.jboss.seam.annotations.intercept.BypassInterceptors;
035 import org.jboss.seam.core.ConversationEntry;
036 import org.jboss.seam.core.ConversationList;
037
038 /**
039 * Override for the conversation list factory that puts the list in event scope
040 *
041 * @author William DRAI
042 */
043 @Scope(STATELESS)
044 @Name("org.jboss.seam.core.conversationListFactory")
045 @Install(precedence=FRAMEWORK)
046 @BypassInterceptors
047 public class TideConversationList extends ConversationList {
048
049 /**
050 * TODO Check if we should use another method ?
051 * Not sure if it will break standard behaviour with JSF (put the list in PAGE scope)
052 */
053 @Factory(value="org.granite.tide.conversationList", autoCreate=true, scope=EVENT)
054 @Override
055 public List<ConversationEntry> getConversationEntryList() {
056 return createConversationEntryList();
057 }
058 }