001    /**
002     * Copyright (c) 2000-present Liferay, Inc. All rights reserved.
003     *
004     * This library is free software; you can redistribute it and/or modify it under
005     * the terms of the GNU Lesser General Public License as published by the Free
006     * Software Foundation; either version 2.1 of the License, or (at your option)
007     * any later version.
008     *
009     * This library is distributed in the hope that it will be useful, but WITHOUT
010     * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
011     * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
012     * details.
013     */
014    
015    package com.liferay.portal.service;
016    
017    import com.liferay.portal.asset.LayoutRevisionAssetRendererFactory;
018    import com.liferay.portal.kernel.search.IndexerRegistryUtil;
019    import com.liferay.portal.kernel.trash.TrashHandlerRegistryUtil;
020    import com.liferay.portal.kernel.workflow.WorkflowHandlerRegistryUtil;
021    import com.liferay.portlet.asset.AssetRendererFactoryRegistryUtil;
022    import com.liferay.portlet.asset.model.AssetRendererFactory;
023    import com.liferay.portlet.assetpublisher.util.AssetIndexer;
024    import com.liferay.portlet.blogs.asset.BlogsEntryAssetRendererFactory;
025    import com.liferay.portlet.blogs.trash.BlogsEntryTrashHandler;
026    import com.liferay.portlet.blogs.util.BlogsIndexer;
027    import com.liferay.portlet.blogs.workflow.BlogsEntryWorkflowHandler;
028    import com.liferay.portlet.bookmarks.asset.BookmarksEntryAssetRendererFactory;
029    import com.liferay.portlet.bookmarks.asset.BookmarksFolderAssetRendererFactory;
030    import com.liferay.portlet.bookmarks.util.BookmarksEntryIndexer;
031    import com.liferay.portlet.bookmarks.util.BookmarksFolderIndexer;
032    import com.liferay.portlet.directory.asset.UserAssetRendererFactory;
033    import com.liferay.portlet.directory.workflow.UserWorkflowHandler;
034    import com.liferay.portlet.documentlibrary.asset.DLFileEntryAssetRendererFactory;
035    import com.liferay.portlet.documentlibrary.asset.DLFolderAssetRendererFactory;
036    import com.liferay.portlet.documentlibrary.trash.DLFileEntryTrashHandler;
037    import com.liferay.portlet.documentlibrary.trash.DLFileShortcutTrashHandler;
038    import com.liferay.portlet.documentlibrary.trash.DLFolderTrashHandler;
039    import com.liferay.portlet.documentlibrary.util.DLFileEntryIndexer;
040    import com.liferay.portlet.documentlibrary.util.DLFolderIndexer;
041    import com.liferay.portlet.documentlibrary.workflow.DLFileEntryWorkflowHandler;
042    import com.liferay.portlet.dynamicdatalists.asset.DDLRecordAssetRendererFactory;
043    import com.liferay.portlet.dynamicdatalists.util.DDLIndexer;
044    import com.liferay.portlet.dynamicdatalists.workflow.DDLRecordWorkflowHandler;
045    import com.liferay.portlet.journal.asset.JournalArticleAssetRendererFactory;
046    import com.liferay.portlet.journal.asset.JournalFolderAssetRendererFactory;
047    import com.liferay.portlet.journal.trash.JournalArticleTrashHandler;
048    import com.liferay.portlet.journal.util.JournalArticleIndexer;
049    import com.liferay.portlet.journal.util.JournalFolderIndexer;
050    import com.liferay.portlet.journal.workflow.JournalArticleWorkflowHandler;
051    import com.liferay.portlet.messageboards.asset.MBCategoryAssetRendererFactory;
052    import com.liferay.portlet.messageboards.asset.MBDiscussionAssetRendererFactory;
053    import com.liferay.portlet.messageboards.asset.MBMessageAssetRendererFactory;
054    import com.liferay.portlet.messageboards.trash.MBCategoryTrashHandler;
055    import com.liferay.portlet.messageboards.trash.MBMessageTrashHandler;
056    import com.liferay.portlet.messageboards.trash.MBThreadTrashHandler;
057    import com.liferay.portlet.messageboards.util.MBMessageIndexer;
058    import com.liferay.portlet.messageboards.workflow.MBDiscussionWorkflowHandler;
059    import com.liferay.portlet.messageboards.workflow.MBMessageWorkflowHandler;
060    import com.liferay.portlet.trash.util.TrashIndexer;
061    import com.liferay.portlet.usersadmin.util.ContactIndexer;
062    import com.liferay.portlet.usersadmin.util.OrganizationIndexer;
063    import com.liferay.portlet.usersadmin.util.UserIndexer;
064    import com.liferay.portlet.wiki.asset.WikiPageAssetRendererFactory;
065    import com.liferay.portlet.wiki.trash.WikiNodeTrashHandler;
066    import com.liferay.portlet.wiki.trash.WikiPageTrashHandler;
067    import com.liferay.portlet.wiki.util.WikiNodeIndexer;
068    import com.liferay.portlet.wiki.util.WikiPageIndexer;
069    import com.liferay.portlet.wiki.workflow.WikiPageWorkflowHandler;
070    
071    /**
072     * @author Roberto D??az
073     */
074    public class PortalRegisterTestUtil {
075    
076            protected static void registerAssetRendererFactories() {
077                    if (_assetRendererFactoriesRegistered) {
078                            return;
079                    }
080    
081                    for (Class<?> clazz : _ASSET_RENDERER_FACTORY_CLASSES) {
082                            try {
083                                    AssetRendererFactory assetRendererFactory =
084                                            (AssetRendererFactory)clazz.newInstance();
085    
086                                    assetRendererFactory.setClassName(
087                                            assetRendererFactory.getClassName());
088    
089                                    AssetRendererFactoryRegistryUtil.register(assetRendererFactory);
090                            }
091                            catch (IllegalAccessException iae) {
092                                    iae.printStackTrace();
093                            }
094                            catch (InstantiationException ie) {
095                                    ie.printStackTrace();
096                            }
097                    }
098    
099                    _assetRendererFactoriesRegistered = true;
100            }
101    
102            protected static void registerIndexers() {
103                    if (_indexersRegistered) {
104                            return;
105                    }
106    
107                    IndexerRegistryUtil.register(new AssetIndexer());
108                    IndexerRegistryUtil.register(new BlogsIndexer());
109                    IndexerRegistryUtil.register(new ContactIndexer());
110                    IndexerRegistryUtil.register(new BookmarksEntryIndexer());
111                    IndexerRegistryUtil.register(new BookmarksFolderIndexer());
112                    IndexerRegistryUtil.register(new DDLIndexer());
113                    IndexerRegistryUtil.register(new DLFileEntryIndexer());
114                    IndexerRegistryUtil.register(new DLFolderIndexer());
115                    IndexerRegistryUtil.register(new JournalArticleIndexer());
116                    IndexerRegistryUtil.register(new JournalFolderIndexer());
117                    IndexerRegistryUtil.register(new MBMessageIndexer());
118                    IndexerRegistryUtil.register(new OrganizationIndexer());
119                    IndexerRegistryUtil.register(new TrashIndexer());
120                    IndexerRegistryUtil.register(new UserIndexer());
121                    IndexerRegistryUtil.register(new WikiNodeIndexer());
122                    IndexerRegistryUtil.register(new WikiPageIndexer());
123    
124                    _indexersRegistered = true;
125            }
126    
127            protected static void registerTrashHandlers() {
128                    if (_trashHandlersRegistered) {
129                            return;
130                    }
131    
132                    TrashHandlerRegistryUtil.register(new BlogsEntryTrashHandler());
133                    TrashHandlerRegistryUtil.register(new DLFileEntryTrashHandler());
134                    TrashHandlerRegistryUtil.register(new DLFileShortcutTrashHandler());
135                    TrashHandlerRegistryUtil.register(new DLFolderTrashHandler());
136                    TrashHandlerRegistryUtil.register(new JournalArticleTrashHandler());
137                    TrashHandlerRegistryUtil.register(new MBCategoryTrashHandler());
138                    TrashHandlerRegistryUtil.register(new MBMessageTrashHandler());
139                    TrashHandlerRegistryUtil.register(new MBThreadTrashHandler());
140                    TrashHandlerRegistryUtil.register(new WikiNodeTrashHandler());
141                    TrashHandlerRegistryUtil.register(new WikiPageTrashHandler());
142    
143                    _trashHandlersRegistered = true;
144            }
145    
146            protected static void registerWorkflowHandlers() {
147                    if (_workflowHandlersRegistered) {
148                            return;
149                    }
150    
151                    WorkflowHandlerRegistryUtil.register(new BlogsEntryWorkflowHandler());
152                    WorkflowHandlerRegistryUtil.register(new DDLRecordWorkflowHandler());
153                    WorkflowHandlerRegistryUtil.register(new DLFileEntryWorkflowHandler());
154                    WorkflowHandlerRegistryUtil.register(
155                            new JournalArticleWorkflowHandler());
156                    WorkflowHandlerRegistryUtil.register(new MBDiscussionWorkflowHandler());
157                    WorkflowHandlerRegistryUtil.register(new MBMessageWorkflowHandler());
158                    WorkflowHandlerRegistryUtil.register(new UserWorkflowHandler());
159                    WorkflowHandlerRegistryUtil.register(new WikiPageWorkflowHandler());
160    
161                    _workflowHandlersRegistered = true;
162            }
163    
164            private static final Class<?>[] _ASSET_RENDERER_FACTORY_CLASSES = {
165                    BlogsEntryAssetRendererFactory.class,
166                    BookmarksEntryAssetRendererFactory.class,
167                    BookmarksFolderAssetRendererFactory.class,
168                    DDLRecordAssetRendererFactory.class,
169                    DLFileEntryAssetRendererFactory.class,
170                    DLFolderAssetRendererFactory.class,
171                    JournalArticleAssetRendererFactory.class,
172                    JournalFolderAssetRendererFactory.class,
173                    LayoutRevisionAssetRendererFactory.class,
174                    MBCategoryAssetRendererFactory.class,
175                    MBDiscussionAssetRendererFactory.class,
176                    MBMessageAssetRendererFactory.class, UserAssetRendererFactory.class,
177                    WikiPageAssetRendererFactory.class
178            };
179    
180            private static boolean _assetRendererFactoriesRegistered;
181            private static boolean _indexersRegistered;
182            private static boolean _trashHandlersRegistered;
183            private static boolean _workflowHandlersRegistered;
184    
185    }