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.directory.asset.UserAssetRendererFactory;
029    import com.liferay.portlet.directory.workflow.UserWorkflowHandler;
030    import com.liferay.portlet.documentlibrary.asset.DLFileEntryAssetRendererFactory;
031    import com.liferay.portlet.documentlibrary.asset.DLFolderAssetRendererFactory;
032    import com.liferay.portlet.documentlibrary.trash.DLFileEntryTrashHandler;
033    import com.liferay.portlet.documentlibrary.trash.DLFileShortcutTrashHandler;
034    import com.liferay.portlet.documentlibrary.trash.DLFolderTrashHandler;
035    import com.liferay.portlet.documentlibrary.util.DLFileEntryIndexer;
036    import com.liferay.portlet.documentlibrary.util.DLFolderIndexer;
037    import com.liferay.portlet.documentlibrary.workflow.DLFileEntryWorkflowHandler;
038    import com.liferay.portlet.dynamicdatalists.asset.DDLRecordAssetRendererFactory;
039    import com.liferay.portlet.dynamicdatalists.util.DDLIndexer;
040    import com.liferay.portlet.dynamicdatalists.workflow.DDLRecordWorkflowHandler;
041    import com.liferay.portlet.journal.asset.JournalArticleAssetRendererFactory;
042    import com.liferay.portlet.journal.asset.JournalFolderAssetRendererFactory;
043    import com.liferay.portlet.journal.trash.JournalArticleTrashHandler;
044    import com.liferay.portlet.journal.util.JournalArticleIndexer;
045    import com.liferay.portlet.journal.util.JournalFolderIndexer;
046    import com.liferay.portlet.journal.workflow.JournalArticleWorkflowHandler;
047    import com.liferay.portlet.messageboards.asset.MBCategoryAssetRendererFactory;
048    import com.liferay.portlet.messageboards.asset.MBDiscussionAssetRendererFactory;
049    import com.liferay.portlet.messageboards.asset.MBMessageAssetRendererFactory;
050    import com.liferay.portlet.messageboards.trash.MBCategoryTrashHandler;
051    import com.liferay.portlet.messageboards.trash.MBMessageTrashHandler;
052    import com.liferay.portlet.messageboards.trash.MBThreadTrashHandler;
053    import com.liferay.portlet.messageboards.util.MBMessageIndexer;
054    import com.liferay.portlet.messageboards.workflow.MBDiscussionWorkflowHandler;
055    import com.liferay.portlet.messageboards.workflow.MBMessageWorkflowHandler;
056    import com.liferay.portlet.trash.util.TrashIndexer;
057    import com.liferay.portlet.usersadmin.util.ContactIndexer;
058    import com.liferay.portlet.usersadmin.util.OrganizationIndexer;
059    import com.liferay.portlet.usersadmin.util.UserIndexer;
060    import com.liferay.portlet.wiki.asset.WikiPageAssetRendererFactory;
061    import com.liferay.portlet.wiki.trash.WikiNodeTrashHandler;
062    import com.liferay.portlet.wiki.trash.WikiPageTrashHandler;
063    import com.liferay.portlet.wiki.util.WikiNodeIndexer;
064    import com.liferay.portlet.wiki.util.WikiPageIndexer;
065    import com.liferay.portlet.wiki.workflow.WikiPageWorkflowHandler;
066    
067    /**
068     * @author Roberto D??az
069     */
070    public class PortalRegisterTestUtil {
071    
072            protected static void registerAssetRendererFactories() {
073                    if (_assetRendererFactoriesRegistered) {
074                            return;
075                    }
076    
077                    for (Class<?> clazz : _ASSET_RENDERER_FACTORY_CLASSES) {
078                            try {
079                                    AssetRendererFactory assetRendererFactory =
080                                            (AssetRendererFactory)clazz.newInstance();
081    
082                                    assetRendererFactory.setClassName(
083                                            assetRendererFactory.getClassName());
084    
085                                    AssetRendererFactoryRegistryUtil.register(assetRendererFactory);
086                            }
087                            catch (IllegalAccessException iae) {
088                                    iae.printStackTrace();
089                            }
090                            catch (InstantiationException ie) {
091                                    ie.printStackTrace();
092                            }
093                    }
094    
095                    _assetRendererFactoriesRegistered = true;
096            }
097    
098            protected static void registerIndexers() {
099                    if (_indexersRegistered) {
100                            return;
101                    }
102    
103                    IndexerRegistryUtil.register(new AssetIndexer());
104                    IndexerRegistryUtil.register(new BlogsIndexer());
105                    IndexerRegistryUtil.register(new ContactIndexer());
106                    IndexerRegistryUtil.register(new DDLIndexer());
107                    IndexerRegistryUtil.register(new DLFileEntryIndexer());
108                    IndexerRegistryUtil.register(new DLFolderIndexer());
109                    IndexerRegistryUtil.register(new JournalArticleIndexer());
110                    IndexerRegistryUtil.register(new JournalFolderIndexer());
111                    IndexerRegistryUtil.register(new MBMessageIndexer());
112                    IndexerRegistryUtil.register(new OrganizationIndexer());
113                    IndexerRegistryUtil.register(new TrashIndexer());
114                    IndexerRegistryUtil.register(new UserIndexer());
115                    IndexerRegistryUtil.register(new WikiNodeIndexer());
116                    IndexerRegistryUtil.register(new WikiPageIndexer());
117    
118                    _indexersRegistered = true;
119            }
120    
121            protected static void registerTrashHandlers() {
122                    if (_trashHandlersRegistered) {
123                            return;
124                    }
125    
126                    TrashHandlerRegistryUtil.register(new BlogsEntryTrashHandler());
127                    TrashHandlerRegistryUtil.register(new DLFileEntryTrashHandler());
128                    TrashHandlerRegistryUtil.register(new DLFileShortcutTrashHandler());
129                    TrashHandlerRegistryUtil.register(new DLFolderTrashHandler());
130                    TrashHandlerRegistryUtil.register(new JournalArticleTrashHandler());
131                    TrashHandlerRegistryUtil.register(new MBCategoryTrashHandler());
132                    TrashHandlerRegistryUtil.register(new MBMessageTrashHandler());
133                    TrashHandlerRegistryUtil.register(new MBThreadTrashHandler());
134                    TrashHandlerRegistryUtil.register(new WikiNodeTrashHandler());
135                    TrashHandlerRegistryUtil.register(new WikiPageTrashHandler());
136    
137                    _trashHandlersRegistered = true;
138            }
139    
140            protected static void registerWorkflowHandlers() {
141                    if (_workflowHandlersRegistered) {
142                            return;
143                    }
144    
145                    WorkflowHandlerRegistryUtil.register(new BlogsEntryWorkflowHandler());
146                    WorkflowHandlerRegistryUtil.register(new DDLRecordWorkflowHandler());
147                    WorkflowHandlerRegistryUtil.register(new DLFileEntryWorkflowHandler());
148                    WorkflowHandlerRegistryUtil.register(
149                            new JournalArticleWorkflowHandler());
150                    WorkflowHandlerRegistryUtil.register(new MBDiscussionWorkflowHandler());
151                    WorkflowHandlerRegistryUtil.register(new MBMessageWorkflowHandler());
152                    WorkflowHandlerRegistryUtil.register(new UserWorkflowHandler());
153                    WorkflowHandlerRegistryUtil.register(new WikiPageWorkflowHandler());
154    
155                    _workflowHandlersRegistered = true;
156            }
157    
158            private static final Class<?>[] _ASSET_RENDERER_FACTORY_CLASSES = {
159                    BlogsEntryAssetRendererFactory.class,
160                    DDLRecordAssetRendererFactory.class,
161                    DLFileEntryAssetRendererFactory.class,
162                    DLFolderAssetRendererFactory.class,
163                    JournalArticleAssetRendererFactory.class,
164                    JournalFolderAssetRendererFactory.class,
165                    LayoutRevisionAssetRendererFactory.class,
166                    MBCategoryAssetRendererFactory.class,
167                    MBDiscussionAssetRendererFactory.class,
168                    MBMessageAssetRendererFactory.class, UserAssetRendererFactory.class,
169                    WikiPageAssetRendererFactory.class
170            };
171    
172            private static boolean _assetRendererFactoriesRegistered;
173            private static boolean _indexersRegistered;
174            private static boolean _trashHandlersRegistered;
175            private static boolean _workflowHandlersRegistered;
176    
177    }