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.tools;
016    
017    import com.liferay.portal.cache.MultiVMPoolImpl;
018    import com.liferay.portal.cache.SingleVMPoolImpl;
019    import com.liferay.portal.cache.key.SimpleCacheKeyGenerator;
020    import com.liferay.portal.cache.memory.MemoryPortalCacheManager;
021    import com.liferay.portal.json.JSONFactoryImpl;
022    import com.liferay.portal.kernel.cache.MultiVMPoolUtil;
023    import com.liferay.portal.kernel.cache.PortalCacheManager;
024    import com.liferay.portal.kernel.cache.PortalCacheManagerNames;
025    import com.liferay.portal.kernel.cache.SingleVMPoolUtil;
026    import com.liferay.portal.kernel.cache.key.CacheKeyGeneratorUtil;
027    import com.liferay.portal.kernel.json.JSONFactoryUtil;
028    import com.liferay.portal.kernel.microsofttranslator.MicrosoftTranslatorFactoryUtil;
029    import com.liferay.portal.kernel.util.DigesterUtil;
030    import com.liferay.portal.kernel.util.FastDateFormatFactoryUtil;
031    import com.liferay.portal.kernel.util.FileUtil;
032    import com.liferay.portal.kernel.util.FriendlyURLNormalizerUtil;
033    import com.liferay.portal.kernel.util.HtmlUtil;
034    import com.liferay.portal.kernel.util.HttpUtil;
035    import com.liferay.portal.kernel.xml.SAXReaderUtil;
036    import com.liferay.portal.kernel.xml.UnsecureSAXReaderUtil;
037    import com.liferay.portal.microsofttranslator.MicrosoftTranslatorFactoryImpl;
038    import com.liferay.portal.model.DefaultModelHintsImpl;
039    import com.liferay.portal.model.ModelHintsUtil;
040    import com.liferay.portal.security.auth.DefaultFullNameGenerator;
041    import com.liferay.portal.security.auth.FullNameGenerator;
042    import com.liferay.portal.security.permission.ResourceActionsImpl;
043    import com.liferay.portal.security.permission.ResourceActionsUtil;
044    import com.liferay.portal.security.xml.SecureXMLFactoryProviderImpl;
045    import com.liferay.portal.security.xml.SecureXMLFactoryProviderUtil;
046    import com.liferay.portal.service.permission.PortletPermissionImpl;
047    import com.liferay.portal.service.permission.PortletPermissionUtil;
048    import com.liferay.portal.util.DigesterImpl;
049    import com.liferay.portal.util.FastDateFormatFactoryImpl;
050    import com.liferay.portal.util.FileImpl;
051    import com.liferay.portal.util.FriendlyURLNormalizerImpl;
052    import com.liferay.portal.util.HtmlImpl;
053    import com.liferay.portal.util.HttpImpl;
054    import com.liferay.portal.util.InitUtil;
055    import com.liferay.portal.util.PortalImpl;
056    import com.liferay.portal.util.PortalUtil;
057    import com.liferay.portal.util.PropsValues;
058    import com.liferay.portal.xml.SAXReaderImpl;
059    import com.liferay.registry.BasicRegistryImpl;
060    import com.liferay.registry.Registry;
061    import com.liferay.registry.RegistryUtil;
062    
063    import java.util.HashMap;
064    import java.util.Map;
065    
066    /**
067     * @author Raymond Aug??
068     */
069    public class ToolDependencies {
070    
071            public static void wireBasic() {
072                    InitUtil.init();
073    
074                    wireCaches();
075    
076                    Registry registry = RegistryUtil.getRegistry();
077    
078                    registry.registerService(
079                            FullNameGenerator.class, new DefaultFullNameGenerator());
080    
081                    CacheKeyGeneratorUtil cacheKeyGeneratorUtil =
082                            new CacheKeyGeneratorUtil();
083    
084                    cacheKeyGeneratorUtil.setDefaultCacheKeyGenerator(
085                            new SimpleCacheKeyGenerator());
086    
087                    DigesterUtil digesterUtil = new DigesterUtil();
088    
089                    digesterUtil.setDigester(new DigesterImpl());
090    
091                    FastDateFormatFactoryUtil fastDateFormatFactoryUtil =
092                            new FastDateFormatFactoryUtil();
093    
094                    fastDateFormatFactoryUtil.setFastDateFormatFactory(
095                            new FastDateFormatFactoryImpl());
096    
097                    FileUtil fileUtil = new FileUtil();
098    
099                    fileUtil.setFile(new FileImpl());
100    
101                    FriendlyURLNormalizerUtil friendlyURLNormalizerUtil =
102                            new FriendlyURLNormalizerUtil();
103    
104                    friendlyURLNormalizerUtil.setFriendlyURLNormalizer(
105                            new FriendlyURLNormalizerImpl());
106    
107                    HtmlUtil htmlUtil = new HtmlUtil();
108    
109                    htmlUtil.setHtml(new HtmlImpl());
110    
111                    HttpUtil httpUtil = new HttpUtil();
112    
113                    httpUtil.setHttp(new HttpImpl());
114    
115                    JSONFactoryUtil jsonFactoryUtil = new JSONFactoryUtil();
116    
117                    jsonFactoryUtil.setJSONFactory(new JSONFactoryImpl());
118    
119                    MicrosoftTranslatorFactoryUtil microsoftTranslatorFactoryUtil =
120                            new MicrosoftTranslatorFactoryUtil();
121    
122                    microsoftTranslatorFactoryUtil.setMicrosoftTranslatorFactory(
123                            new MicrosoftTranslatorFactoryImpl());
124    
125                    PortletPermissionUtil portletPermissionUtil =
126                            new PortletPermissionUtil();
127    
128                    portletPermissionUtil.setPortletPermission(new PortletPermissionImpl());
129    
130                    SAXReaderUtil saxReaderUtil = new SAXReaderUtil();
131    
132                    SAXReaderImpl secureSAXReader = new SAXReaderImpl();
133    
134                    secureSAXReader.setSecure(true);
135    
136                    saxReaderUtil.setSAXReader(secureSAXReader);
137    
138                    SecureXMLFactoryProviderUtil secureXMLFactoryProviderUtil =
139                            new SecureXMLFactoryProviderUtil();
140    
141                    secureXMLFactoryProviderUtil.setSecureXMLFactoryProvider(
142                            new SecureXMLFactoryProviderImpl());
143    
144                    UnsecureSAXReaderUtil unsecureSAXReaderUtil =
145                            new UnsecureSAXReaderUtil();
146    
147                    SAXReaderImpl unsecureSAXReader = new SAXReaderImpl();
148    
149                    unsecureSAXReaderUtil.setSAXReader(unsecureSAXReader);
150    
151                    // DefaultModelHintsImpl requires SecureXMLFactoryProviderUtil
152    
153                    ModelHintsUtil modelHintsUtil = new ModelHintsUtil();
154    
155                    DefaultModelHintsImpl defaultModelHintsImpl =
156                            new DefaultModelHintsImpl();
157    
158                    defaultModelHintsImpl.afterPropertiesSet();
159    
160                    modelHintsUtil.setModelHints(defaultModelHintsImpl);
161            }
162    
163            public static void wireCaches() {
164                    RegistryUtil.setRegistry(new BasicRegistryImpl());
165    
166                    Registry registry = RegistryUtil.getRegistry();
167    
168                    Map<String, Object> properties = new HashMap<>();
169    
170                    properties.put(
171                            "portal.cache.manager.name", PortalCacheManagerNames.SINGLE_VM);
172                    properties.put(
173                            "portal.cache.manager.type",
174                            PropsValues.PORTAL_CACHE_MANAGER_TYPE_SINGLE_VM);
175    
176                    registry.registerService(
177                            PortalCacheManager.class,
178                            MemoryPortalCacheManager.createMemoryPortalCacheManager(
179                                    PortalCacheManagerNames.SINGLE_VM),
180                            properties);
181    
182                    SingleVMPoolUtil singleVMPoolUtil = new SingleVMPoolUtil();
183    
184                    singleVMPoolUtil.setSingleVMPool(new SingleVMPoolImpl());
185    
186                    properties = new HashMap<>();
187    
188                    properties.put(
189                            "portal.cache.manager.name", PortalCacheManagerNames.MULTI_VM);
190                    properties.put(
191                            "portal.cache.manager.type",
192                            PropsValues.PORTAL_CACHE_MANAGER_TYPE_MULTI_VM);
193    
194                    registry.registerService(
195                            PortalCacheManager.class,
196                            MemoryPortalCacheManager.createMemoryPortalCacheManager(
197                                    PortalCacheManagerNames.MULTI_VM),
198                            properties);
199    
200                    MultiVMPoolUtil multiVMPoolUtil = new MultiVMPoolUtil();
201    
202                    multiVMPoolUtil.setMultiVMPool(new MultiVMPoolImpl());
203            }
204    
205            public static void wireDeployers() {
206                    wireBasic();
207    
208                    PortalUtil portalUtil = new PortalUtil();
209    
210                    portalUtil.setPortal(new PortalImpl());
211            }
212    
213            public static void wireServiceBuilder() {
214                    wireDeployers();
215    
216                    ResourceActionsUtil resourceActionsUtil = new ResourceActionsUtil();
217    
218                    ResourceActionsImpl resourceActionsImpl = new ResourceActionsImpl();
219    
220                    resourceActionsImpl.afterPropertiesSet();
221    
222                    resourceActionsUtil.setResourceActions(resourceActionsImpl);
223            }
224    
225    }