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.verify;
016    
017    import com.liferay.portal.kernel.log.Log;
018    import com.liferay.portal.kernel.log.LogFactoryUtil;
019    import com.liferay.portal.kernel.util.ListUtil;
020    import com.liferay.portal.kernel.util.PropsKeys;
021    import com.liferay.portal.kernel.util.StringPool;
022    import com.liferay.portal.kernel.util.StringUtil;
023    import com.liferay.portal.kernel.util.SystemProperties;
024    import com.liferay.portal.kernel.util.UnicodeProperties;
025    import com.liferay.portal.security.ldap.LDAPSettingsUtil;
026    import com.liferay.portal.service.CompanyLocalServiceUtil;
027    import com.liferay.portal.util.PortalInstances;
028    import com.liferay.portal.util.PrefsPropsUtil;
029    import com.liferay.portal.util.PropsUtil;
030    import com.liferay.portlet.documentlibrary.store.StoreFactory;
031    
032    import java.io.File;
033    import java.io.FileInputStream;
034    import java.io.FileNotFoundException;
035    import java.io.IOException;
036    import java.io.InputStream;
037    
038    import java.util.List;
039    import java.util.Properties;
040    
041    /**
042     * @author Brian Wing Shun Chan
043     */
044    public class VerifyProperties extends VerifyProcess {
045    
046            @Override
047            protected void doVerify() throws Exception {
048    
049                    // system.properties
050    
051                    for (String[] keys : _MIGRATED_SYSTEM_KEYS) {
052                            String oldKey = keys[0];
053                            String newKey = keys[1];
054    
055                            verifyMigratedSystemProperty(oldKey, newKey);
056                    }
057    
058                    for (String[] keys : _RENAMED_SYSTEM_KEYS) {
059                            String oldKey = keys[0];
060                            String newKey = keys[1];
061    
062                            verifyRenamedSystemProperty(oldKey, newKey);
063                    }
064    
065                    for (String key : _OBSOLETE_SYSTEM_KEYS) {
066                            verifyObsoleteSystemProperty(key);
067                    }
068    
069                    // portal.properties
070    
071                    Properties portalProperties = loadPortalProperties();
072    
073                    for (String[] keys : _MIGRATED_PORTAL_KEYS) {
074                            String oldKey = keys[0];
075                            String newKey = keys[1];
076    
077                            verifyMigratedPortalProperty(portalProperties, oldKey, newKey);
078                    }
079    
080                    for (String[] keys : _RENAMED_PORTAL_KEYS) {
081                            String oldKey = keys[0];
082                            String newKey = keys[1];
083    
084                            verifyRenamedPortalProperty(portalProperties, oldKey, newKey);
085                    }
086    
087                    for (String key : _OBSOLETE_PORTAL_KEYS) {
088                            verifyObsoletePortalProperty(portalProperties, key);
089                    }
090    
091                    for (String[] keys : _MODULARIZED_PORTAL_KEYS) {
092                            String oldKey = keys[0];
093                            String newKey = keys[1];
094                            String moduleName = keys[2];
095    
096                            verifyModularizedPortalProperty(
097                                    portalProperties, oldKey, newKey, moduleName);
098                    }
099    
100                    // Document library
101    
102                    StoreFactory storeFactory = StoreFactory.getInstance();
103    
104                    storeFactory.checkProperties();
105    
106                    // LDAP
107    
108                    verifyLDAPProperties();
109            }
110    
111            protected InputStream getPropertiesResourceAsStream(String resourceName)
112                    throws FileNotFoundException {
113    
114                    File propertyFile = new File(resourceName);
115    
116                    if (propertyFile.exists()) {
117                            return new FileInputStream(propertyFile);
118                    }
119    
120                    ClassLoader classLoader = VerifyProperties.class.getClassLoader();
121    
122                    return classLoader.getResourceAsStream(resourceName);
123            }
124    
125            protected Properties loadPortalProperties() {
126                    Properties properties = new Properties();
127    
128                    List<String> propertiesResourceNames = ListUtil.fromArray(
129                            PropsUtil.getArray("include-and-override"));
130    
131                    propertiesResourceNames.add(0, "portal.properties");
132    
133                    for (String propertyResourceName : propertiesResourceNames) {
134                            try (InputStream inputStream = getPropertiesResourceAsStream(
135                                    propertyResourceName)) {
136    
137                                    if (inputStream != null) {
138                                            properties.load(inputStream);
139                                    }
140                            }
141                            catch (IOException ioe) {
142                                    _log.error(
143                                            "Unable to load property " + propertyResourceName, ioe);
144                            }
145                    }
146    
147                    return properties;
148            }
149    
150            protected void verifyLDAPProperties() throws Exception {
151                    long[] companyIds = PortalInstances.getCompanyIdsBySQL();
152    
153                    for (long companyId : companyIds) {
154                            UnicodeProperties properties = new UnicodeProperties();
155    
156                            long[] ldapServerIds = StringUtil.split(
157                                    PrefsPropsUtil.getString(companyId, "ldap.server.ids"), 0L);
158    
159                            for (long ldapServerId : ldapServerIds) {
160                                    String postfix = LDAPSettingsUtil.getPropertyPostfix(
161                                            ldapServerId);
162    
163                                    for (String key : _LDAP_KEYS) {
164                                            String value = PrefsPropsUtil.getString(
165                                                    companyId, key + postfix, null);
166    
167                                            if (value == null) {
168                                                    properties.put(key + postfix, StringPool.BLANK);
169                                            }
170                                    }
171                            }
172    
173                            if (!properties.isEmpty()) {
174                                    CompanyLocalServiceUtil.updatePreferences(
175                                            companyId, properties);
176                            }
177                    }
178            }
179    
180            protected void verifyMigratedPortalProperty(
181                            Properties portalProperties, String oldKey, String newKey)
182                    throws Exception {
183    
184                    if (portalProperties.containsKey(oldKey)) {
185                            _log.error(
186                                    "Portal property \"" + oldKey +
187                                            "\" was migrated to the system property \"" + newKey +
188                                                    "\"");
189                    }
190            }
191    
192            protected void verifyMigratedSystemProperty(String oldKey, String newKey)
193                    throws Exception {
194    
195                    String value = SystemProperties.get(oldKey);
196    
197                    if (value != null) {
198                            _log.error(
199                                    "System property \"" + oldKey +
200                                            "\" was migrated to the portal property \"" + newKey +
201                                                    "\"");
202                    }
203            }
204    
205            protected void verifyModularizedPortalProperty(
206                            Properties portalProperties, String oldKey, String newKey,
207                            String moduleName)
208                    throws Exception {
209    
210                    if (portalProperties.containsKey(oldKey)) {
211                            _log.error(
212                                    "Portal property \"" + oldKey + "\" was modularized to " +
213                                            moduleName + " as \"" + newKey);
214                    }
215            }
216    
217            protected void verifyObsoletePortalProperty(
218                            Properties portalProperties, String key)
219                    throws Exception {
220    
221                    if (portalProperties.containsKey(key)) {
222                            _log.error("Portal property \"" + key + "\" is obsolete");
223                    }
224            }
225    
226            protected void verifyObsoleteSystemProperty(String key) throws Exception {
227                    String value = SystemProperties.get(key);
228    
229                    if (value != null) {
230                            _log.error("System property \"" + key + "\" is obsolete");
231                    }
232            }
233    
234            protected void verifyRenamedPortalProperty(
235                            Properties portalProperties, String oldKey, String newKey)
236                    throws Exception {
237    
238                    if (portalProperties.containsKey(oldKey)) {
239                            _log.error(
240                                    "Portal property \"" + oldKey + "\" was renamed to \"" +
241                                            newKey + "\"");
242                    }
243            }
244    
245            protected void verifyRenamedSystemProperty(String oldKey, String newKey)
246                    throws Exception {
247    
248                    String value = SystemProperties.get(oldKey);
249    
250                    if (value != null) {
251                            _log.error(
252                                    "System property \"" + oldKey + "\" was renamed to \"" +
253                                            newKey + "\"");
254                    }
255            }
256    
257            private static final String[] _LDAP_KEYS = {
258                    PropsKeys.LDAP_CONTACT_CUSTOM_MAPPINGS, PropsKeys.LDAP_CONTACT_MAPPINGS,
259                    PropsKeys.LDAP_USER_CUSTOM_MAPPINGS
260            };
261    
262            private static final String[][] _MIGRATED_PORTAL_KEYS = new String[][] {
263                    new String[] {
264                            "cookie.http.only.names.excludes", "cookie.http.only.names.excludes"
265                    },
266                    new String[] {
267                            "finalize.manager.thread.enabled",
268                            "com.liferay.portal.kernel.memory.FinalizeManager.thread.enabled"
269                    },
270                    new String[] {
271                            "http.header.secure.x.content.type.options",
272                            "http.header.secure.x.content.type.options"
273                    },
274                    new String[] {
275                            "http.header.secure.x.content.type.options.urls.excludes",
276                            "http.header.secure.x.content.type.options.urls.excludes"
277                    },
278                    new String[] {
279                            "http.header.secure.x.frame.options",
280                            "http.header.secure.x.frame.options"
281                    },
282                    new String[] {
283                            "http.header.secure.x.frame.options.255",
284                            "http.header.secure.x.frame.options.255"
285                    },
286                    new String[] {
287                            "http.header.secure.x.xss.protection",
288                            "http.header.secure.x.xss.protection"
289                    }
290            };
291    
292            private static final String[][] _MIGRATED_SYSTEM_KEYS = new String[][] {
293                    new String[] {
294                            "com.liferay.filters.compression.CompressionFilter",
295                            "com.liferay.portal.servlet.filters.gzip.GZipFilter"
296                    },
297                    new String[] {
298                            "com.liferay.filters.strip.StripFilter",
299                            "com.liferay.portal.servlet.filters.strip.StripFilter"
300                    },
301                    new String[] {
302                            "com.liferay.util.Http.max.connections.per.host",
303                            "com.liferay.portal.util.HttpImpl.max.connections.per.host"
304                    },
305                    new String[] {
306                            "com.liferay.util.Http.max.total.connections",
307                            "com.liferay.portal.util.HttpImpl.max.total.connections"
308                    },
309                    new String[] {
310                            "com.liferay.util.Http.proxy.auth.type",
311                            "com.liferay.portal.util.HttpImpl.proxy.auth.type"
312                    },
313                    new String[] {
314                            "com.liferay.util.Http.proxy.ntlm.domain",
315                            "com.liferay.portal.util.HttpImpl.proxy.ntlm.domain"
316                    },
317                    new String[] {
318                            "com.liferay.util.Http.proxy.ntlm.host",
319                            "com.liferay.portal.util.HttpImpl.proxy.ntlm.host"
320                    },
321                    new String[] {
322                            "com.liferay.util.Http.proxy.password",
323                            "com.liferay.portal.util.HttpImpl.proxy.password"
324                    },
325                    new String[] {
326                            "com.liferay.util.Http.proxy.username",
327                            "com.liferay.portal.util.HttpImpl.proxy.username"
328                    },
329                    new String[] {
330                            "com.liferay.util.Http.timeout",
331                            "com.liferay.portal.util.HttpImpl.timeout"
332                    },
333                    new String[] {
334                            "com.liferay.util.format.PhoneNumberFormat",
335                            "phone.number.format.impl"
336                    },
337                    new String[] {
338                            "com.liferay.util.servlet.UploadServletRequest.max.size",
339                            "com.liferay.portal.upload.UploadServletRequestImpl.max.size"
340                    },
341                    new String[] {
342                            "com.liferay.util.servlet.UploadServletRequest.temp.dir",
343                            "com.liferay.portal.upload.UploadServletRequestImpl.temp.dir"
344                    },
345                    new String[] {
346                            "com.liferay.util.servlet.fileupload.LiferayFileItem." +
347                                    "threshold.size",
348                            "com.liferay.portal.upload.LiferayFileItem.threshold.size"
349                    },
350                    new String[] {
351                            "com.liferay.util.servlet.fileupload.LiferayInputStream." +
352                                    "threshold.size",
353                            "com.liferay.portal.upload.LiferayInputStream.threshold.size"
354                    }
355            };
356    
357            private static final String[][] _MODULARIZED_PORTAL_KEYS = {
358    
359                    // Asset
360    
361                    new String[] {
362                            "asset.browser.search.with.database", "search.with.database",
363                            "com.liferay.asset.browser.web"
364                    },
365                    new String[] {
366                            "asset.categories.navigation.display.templates.config",
367                            "display.templates.config",
368                            "com.liferay.asset.categories.navigation.web"
369                    },
370                    new String[] {
371                            "asset.publisher.check.interval", "check.interval",
372                            "com.liferay.asset.publisher.web"
373                    },
374                    new String[] {
375                            "asset.publisher.email.from.address", "email.from.address",
376                            "com.liferay.asset.publisher.web"
377                    },
378                    new String[] {
379                            "asset.publisher.email.from.name", "email.from.name",
380                            "com.liferay.asset.publisher.web"
381                    },
382                    new String[] {
383                            "asset.publisher.email.asset.entry.added.enabled",
384                            "email.asset.entry.added.enabled", "com.liferay.asset.publisher.web"
385                    },
386                    new String[] {
387                            "asset.publisher.email.asset.entry.added.subject",
388                            "email.asset.entry.added.subject", "com.liferay.asset.publisher.web"
389                    },
390                    new String[] {
391                            "asset.publisher.email.asset.entry.added.body",
392                            "email.asset.entry.added.body", "com.liferay.asset.publisher.web"
393                    },
394                    new String[] {
395                            "asset.publisher.display.style.default", "display.style.default",
396                            "com.liferay.asset.publisher.web"
397                    },
398                    new String[] {
399                            "asset.publisher.display.styles", "display.styles",
400                            "com.liferay.asset.publisher.web"
401                    },
402                    new String[] {
403                            "asset.publisher.display.templates.config",
404                            "display.templates.config", "com.liferay.asset.publisher.web"
405                    },
406                    new String[] {
407                            "asset.publisher.dynamic.subscription.limit",
408                            "dynamic.subscription.limit", "com.liferay.asset.publisher.web"
409                    },
410                    new String[] {
411                            "asset.publisher.permission.checking.configurable",
412                            "permission.checking.configurable",
413                            "com.liferay.asset.publisher.web"
414                    },
415                    new String[] {
416                            "asset.publisher.search.with.index", "search.with.index",
417                            "com.liferay.asset.publisher.web"
418                    },
419                    new String[] {
420                            "asset.tags.navigation.display.templates.config",
421                            "display.templates.config", "com.liferay.asset.tags.navigation.web"
422                    },
423    
424                    // Authentication Verifier
425    
426                    new String[] {
427                            "auth.verifier.BasicAuthHeaderAutoLogin.basic_auth",
428                            "auth.verifier.BasicAuthHeaderAuthVerifier.basic_auth",
429                            "com.liferay.portal.security.auth.verifier"
430                    },
431                    new String[] {
432                            "auth.verifier.BasicAuthHeaderAutoLogin.hosts.allowed",
433                            "auth.verifier.BasicAuthHeaderAuthVerifier.hosts.allowed",
434                            "com.liferay.portal.security.auth.verifier"
435                    },
436                    new String[] {
437                            "auth.verifier.BasicAuthHeaderAutoLogin.urls.excludes",
438                            "auth.verifier.BasicAuthHeaderAuthVerifier.urls.excludes",
439                            "com.liferay.portal.security.auth.verifier"
440                    },
441                    new String[] {
442                            "auth.verifier.BasicAuthHeaderAutoLogin.urls.includes",
443                            "auth.verifier.BasicAuthHeaderAuthVerifier.urls.includes",
444                            "com.liferay.portal.security.auth.verifier"
445                    },
446    
447                    new String[] {
448                            "auth.verifier.DigestAuthenticationAuthVerifier.digest_auth",
449                            "auth.verifier.DigestAuthenticationAuthVerifier.digest_auth",
450                            "com.liferay.portal.security.auth.verifier"
451                    },
452                    new String[] {
453                            "auth.verifier.DigestAuthenticationAuthVerifier.hosts.allowed",
454                            "auth.verifier.DigestAuthenticationAuthVerifier.hosts.allowed",
455                            "com.liferay.portal.security.auth.verifier"
456                    },
457                    new String[] {
458                            "auth.verifier.DigestAuthenticationAuthVerifier.urls.excludes",
459                            "auth.verifier.DigestAuthenticationAuthVerifier.urls.excludes",
460                            "com.liferay.portal.security.auth.verifier"
461                    },
462                    new String[] {
463                            "auth.verifier.DigestAuthenticationAuthVerifier.urls.includes",
464                            "auth.verifier.DigestAuthenticationAuthVerifier.urls.includes",
465                            "com.liferay.portal.security.auth.verifier"
466                    },
467    
468                    new String[] {
469                            "auth.verifier.ParameterAutoLogin.hosts.allowed",
470                            "auth.verifier.RequestParameterAuthVerifier.hosts.allowed",
471                            "com.liferay.portal.security.auth.verifier"
472                    },
473                    new String[] {
474                            "auth.verifier.ParameterAutoLogin.urls.excludes",
475                            "auth.verifier.RequestParameterAuthVerifier.urls.excludes",
476                            "com.liferay.portal.security.auth.verifier"
477                    },
478                    new String[] {
479                            "auth.verifier.ParameterAutoLogin.urls.includes",
480                            "auth.verifier.RequestParameterAuthVerifier.urls.includes",
481                            "com.liferay.portal.security.auth.verifier"
482                    },
483    
484                    new String[] {
485                            "auth.verifier.PortalSessionAuthVerifier.hosts.allowed",
486                            "auth.verifier.PortalSessionAuthVerifier.hosts.allowed",
487                            "com.liferay.portal.security.auth.verifier"
488                    },
489                    new String[] {
490                            "auth.verifier.PortalSessionAuthVerifier.urls.excludes",
491                            "auth.verifier.PortalSessionAuthVerifier.urls.excludes",
492                            "com.liferay.portal.security.auth.verifier"
493                    },
494                    new String[] {
495                            "auth.verifier.PortalSessionAuthVerifier.urls.includes",
496                            "auth.verifier.PortalSessionAuthVerifier.urls.includes",
497                            "com.liferay.portal.security.auth.verifier"
498                    },
499    
500                    new String[] {
501                            "auth.verifier.TunnelingServletAuthVerifier.hosts.allowed",
502                            "auth.verifier.TunnelAuthVerifier.hosts.allowed",
503                            "com.liferay.portal.security.auth.verifier"
504                    },
505                    new String[] {
506                            "auth.verifier.TunnelingServletAuthVerifier.urls.excludes",
507                            "auth.verifier.TunnelAuthVerifier.urls.excludes",
508                            "com.liferay.portal.security.auth.verifier"
509                    },
510                    new String[] {
511                            "auth.verifier.TunnelingServletAuthVerifier.urls.includes",
512                            "auth.verifier.TunnelAuthVerifier.urls.includes",
513                            "com.liferay.portal.security.auth.verifier"
514                    },
515    
516                    // Blogs
517    
518                    new String[] {
519                            "blogs.display.templates.config", "display.templates.config",
520                            "com.liferay.blogs.web"
521                    },
522    
523                    new String[] {
524                            "blogs.entry.check.interval", "entry.check.interval",
525                            "com.liferay.blogs.web"
526                    },
527    
528                    new String[] {
529                            "blogs.linkback.job.interval", "linkback.job.interval",
530                            "com.liferay.blogs.web"
531                    },
532    
533                    // Bookmarks
534    
535                    new String[] {
536                            "bookmarks.email.entry.added.body", "email.entry.added.body",
537                            "com.liferay.bookmarks.service"
538                    },
539                    new String[] {
540                            "bookmarks.email.entry.added.enabled", "email.entry.added.enabled",
541                            "com.liferay.bookmarks.service"
542                    },
543                    new String[] {
544                            "bookmarks.email.entry.added.subject", "email.entry.added.subject",
545                            "com.liferay.bookmarks.service"
546                    },
547                    new String[] {
548                            "bookmarks.email.entry.updated.body", "email.entry.updated.body",
549                            "com.liferay.bookmarks.service"
550                    },
551                    new String[] {
552                            "bookmarks.email.entry.updated.enabled",
553                            "email.entry.updated.enabled", "com.liferay.bookmarks.service"
554                    },
555                    new String[] {
556                            "bookmarks.email.entry.updated.subject",
557                            "email.entry.updated.subject", "com.liferay.bookmarks.service"
558                    },
559                    new String[] {
560                            "bookmarks.email.from.address", "email.from.address",
561                            "com.liferay.bookmarks.service"
562                    },
563                    new String[] {
564                            "bookmarks.email.from.name", "email.from.name",
565                            "com.liferay.bookmarks.service"
566                    },
567                    new String[] {
568                            "bookmarks.entry.columns", "entry.columns",
569                            "com.liferay.bookmarks.service"
570                    },
571                    new String[] {
572                            "bookmarks.folder.columns", "folder.columns",
573                            "com.liferay.bookmarks.service"
574                    },
575                    new String[] {
576                            "bookmarks.folders.search.visible", "folders.search.visible",
577                            "com.liferay.bookmarks.service"
578                    },
579                    new String[] {
580                            "bookmarks.related.assets.enabled", "related.assets.enabled",
581                            "com.liferay.bookmarks.service"
582                    },
583                    new String[] {
584                            "bookmarks.subfolders.visible", "subfolders.visible",
585                            "com.liferay.bookmarks.service"
586                    },
587    
588                    // Breadcrumb
589    
590                    new String[] {
591                            "breadcrumb.display.style.default", "ddm.template.key.default",
592                            "com.liferay.site.navigation.breadcrumb.web"
593                    },
594                    new String[] {
595                            "breadcrumb.display.templates.config", "display.templates.config",
596                            "com.liferay.site.navigation.breadcrumb.web"
597                    },
598                    new String[] {
599                            "breadcrumb.show.guest.group", "show.guest.group",
600                            "com.liferay.site.navigation.breadcrumb.web"
601                    },
602                    new String[] {
603                            "breadcrumb.show.parent.groups", "show.parent.groups",
604                            "com.liferay.site.navigation.breadcrumb.web"
605                    },
606    
607                    // CAS
608    
609                    new String[] {
610                            "cas.auth.enabled", "enabled", "com.liferay.portal.security.sso.cas"
611                    },
612                    new String[] {
613                            "cas.import.from.ldap", "import.from.ldap",
614                            "com.liferay.portal.security.sso.cas"
615                    },
616                    new String[] {
617                            "cas.login.url", "login.url", "com.liferay.portal.security.sso.cas"
618                    },
619                    new String[] {
620                            "cas.logout.on.session.expiration", "logout.on.session.expiration",
621                            "com.liferay.portal.security.sso.cas"
622                    },
623                    new String[] {
624                            "cas.logout.url", "logout.url",
625                            "com.liferay.portal.security.sso.cas"
626                    },
627                    new String[] {
628                            "cas.no.such.user.redirect.url", "no.such.user.redirect.url",
629                            "com.liferay.portal.security.sso.cas"
630                    },
631                    new String[] {
632                            "cas.server.name", "server.name",
633                            "com.liferay.portal.security.sso.cas"
634                    },
635                    new String[] {
636                            "cas.server.url", "server.url",
637                            "com.liferay.portal.security.sso.cas"
638                    },
639                    new String[] {
640                            "cas.service.url", "service.url",
641                            "com.liferay.portal.security.sso.cas"
642                    },
643    
644                    // Cluster Link
645    
646                    new String[] {
647                            "cluster.link.debug.enabled", "cluster.link.debug.enabled",
648                            "com.liferay.portal.cluster"
649                    },
650    
651                    // Currency Converter
652    
653                    new String[] {
654                            "currency.converter.symbols", "symbols",
655                            "com.liferay.currency.converter.web"
656                    },
657    
658                    // Document Library
659    
660                    new String[] {
661                            "dl.display.templates.config", "display.templates.config",
662                            "com.liferay.document.library.web"
663                    },
664                    new String[] {
665                            "dl.repository.cmis.delete.depth", "delete.depth",
666                            "com.liferay.document.library.repository.cmis"
667                    },
668                    new String[] {
669                            "dl.store.advanced.file.system.root.dir", "root.dir",
670                            "com.liferay.portal.store.filesystem"
671                    },
672                    new String[] {
673                            "dl.store.cmis.credentials.username", "credentials.username",
674                            "com.liferay.portal.store.cmis"
675                    },
676                    new String[] {
677                            "dl.store.cmis.credentials.password", "credentials.password",
678                            "com.liferay.portal.store.cmis"
679                    },
680                    new String[] {
681                            "dl.store.cmis.repository.url", "repository.url",
682                            "com.liferay.portal.store.cmis"
683                    },
684                    new String[] {
685                            "dl.store.cmis.system.root.dir", "system.root.dir",
686                            "com.liferay.portal.store.cmis"
687                    },
688                    new String[] {
689                            "dl.store.file.system.root.dir", "root.dir",
690                            "com.liferay.portal.store.filesystem"
691                    },
692                    new String[] {
693                            "dl.store.jcr.fetch.delay", "fetch.delay",
694                            "com.liferay.portal.store.jcr"
695                    },
696                    new String[] {
697                            "dl.store.jcr.fetch.max.failures", "fetch.max.failures",
698                            "com.liferay.portal.store.jcr"
699                    },
700                    new String[] {
701                            "dl.store.jcr.move.version.labels", "move.version.labels",
702                            "com.liferay.portal.store.jcr"
703                    },
704                    new String[] {
705                            "dl.store.s3.access.key", "access.key",
706                            "com.liferay.portal.store.s3"
707                    },
708                    new String[] {
709                            "dl.store.s3.bucket.name", "bucket.name",
710                            "com.liferay.portal.store.s3"
711                    },
712                    new String[] {
713                            "dl.store.s3.jets3t[httpclient.max-connections]",
714                            "http.client.max.connections", "com.liferay.portal.store.s3"
715                    },
716                    new String[] {
717                            "dl.store.s3.jets3t[s3service.default-bucket-location]",
718                            "s3service.default.bucket.location", "com.liferay.portal.store.s3"
719                    },
720                    new String[] {
721                            "dl.store.s3.jets3t[s3service.default-storage-class]",
722                            "s3service.default.storage.class", "com.liferay.portal.store.s3"
723                    },
724                    new String[] {
725                            "dl.store.s3.jets3t[s3service.s3-endpoint]",
726                            "s3service.s3.endpoint", "com.liferay.portal.store.s3"
727                    },
728                    new String[] {
729                            "dl.store.s3.secret.key", "secret.key",
730                            "com.liferay.portal.store.s3"
731                    },
732                    new String[] {
733                            "dl.store.s3.temp.dir.clean.up.expunge",
734                            "temp.dir.clean.up.expunge", "com.liferay.portal.store.s3"
735                    },
736                    new String[] {
737                            "dl.store.s3.temp.dir.clean.up.frequency",
738                            "temp.dir.clean.up.frequency", "com.liferay.portal.store.s3"
739                    },
740                    new String[] {
741                            "dl.temporary.file.entries.check.interval",
742                            "temporary.file.entries.check.interval",
743                            "com.liferay.document.library.web"
744                    },
745    
746                    // Dynamic Data Lists
747    
748                    new String[] {
749                            "dynamic.data.lists.error.template",
750                            "dynamic.data.lists.error.template",
751                            "com.liferay.dynamic.data.lists.web"
752                    },
753                    new String[] {
754                            "dynamic.data.lists.storage.type",
755                            "dynamic.data.lists.storage.type",
756                            "com.liferay.dynamic.data.lists.web"
757                    },
758    
759                    // Dynamic Data Mapping
760    
761                    new String[] {
762                            "dynamic.data.mapping.image.extensions",
763                            "dynamic.data.mapping.image.extensions",
764                            "com.liferay.dynamic.data.mapping.service"
765                    },
766                    new String[] {
767                            "dynamic.data.mapping.image.small.max.size",
768                            "dynamic.data.mapping.image.small.max.size",
769                            "com.liferay.dynamic.data.mapping.service"
770                    },
771                    new String[] {
772                            "dynamic.data.mapping.structure.force.autogenerate.key",
773                            "dynamic.data.mapping.structure.force.autogenerate.key",
774                            "com.liferay.dynamic.data.mapping.web"
775                    },
776                    new String[] {
777                            "dynamic.data.mapping.template.force.autogenerate.key",
778                            "dynamic.data.mapping.template.force.autogenerate.key",
779                            "com.liferay.dynamic.data.mapping.web"
780                    },
781                    new String[] {
782                            "dynamic.data.mapping.template.language.default",
783                            "dynamic.data.mapping.template.language.default",
784                            "com.liferay.dynamic.data.mapping.web"
785                    },
786                    new String[] {
787                            "dynamic.data.mapping.template.language.content",
788                            "dynamic.data.mapping.template.language.content",
789                            "com.liferay.dynamic.data.mapping.web"
790                    },
791    
792                    // Facebook Connect
793    
794                    new String[] {
795                            "facebook.connect.auth.enabled", "enabled",
796                            "com.liferay.portal.security.sso.facebook.connect"
797                    },
798                    new String[] {
799                            "facebook.connect.app.id", "app.id",
800                            "com.liferay.portal.security.sso.facebook.connect"
801                    },
802                    new String[] {
803                            "facebook.connect.app.secret", "app.secret",
804                            "com.liferay.portal.security.sso.facebook.connect"
805                    },
806                    new String[] {
807                            "facebook.connect.graph.url", "graph.url",
808                            "com.liferay.portal.security.sso.facebook.connect"
809                    },
810                    new String[] {
811                            "facebook.connect.oauth.auth.url", "oauth.auth.url",
812                            "com.liferay.portal.security.sso.facebook.connect"
813                    },
814                    new String[] {
815                            "facebook.connect.oauth.redirect.url", "oauth.redirect.url",
816                            "com.liferay.portal.security.sso.facebook.connect"
817                    },
818                    new String[] {
819                            "facebook.connect.oauth.token.url", "oauth.token.url",
820                            "com.liferay.portal.security.sso.facebook.connect"
821                    },
822                    new String[] {
823                            "facebook.connect.verified.account.required",
824                            "verified.account.required",
825                            "com.liferay.portal.security.sso.facebook.connect"
826                    },
827    
828                    // FreeMarker Engine
829    
830                    new String[] {
831                            "freemarker.engine.localized.lookup", "localized.lookup",
832                            "com.liferay.portal.template.freemarker"
833                    },
834                    new String[] {
835                            "freemarker.engine.macro.library", "macro.library",
836                            "com.liferay.portal.template.freemarker"
837                    },
838                    new String[] {
839                            "freemarker.engine.resource.modification.check.interval",
840                            "resource.modification.check",
841                            "com.liferay.portal.template.freemarker"
842                    },
843                    new String[] {
844                            "freemarker.engine.restricted.classes", "restricted.classes",
845                            "com.liferay.portal.template.freemarker"
846                    },
847                    new String[] {
848                            "freemarker.engine.restricted.packages", "restricted.packages",
849                            "com.liferay.portal.template.freemarker"
850                    },
851                    new String[] {
852                            "freemarker.engine.template.exception.handler",
853                            "template.exception.handler",
854                            "com.liferay.portal.template.freemarker"
855                    },
856                    new String[] {
857                            "freemarker.engine.template.parsers", "template.parsers",
858                            "com.liferay.portal.template.freemarker"
859                    },
860                    new String[] {
861                            "journal.template.freemarker.restricted.variables",
862                            "restricted.variables", "com.liferay.portal.template.freemarker"
863                    },
864    
865                    // IFrame
866    
867                    new String[] {"iframe.auth", "auth", "com.liferay.iframe.web"},
868                    new String[] {
869                            "iframe.auth-type", "auth.type", "com.liferay.iframe.web"
870                    },
871                    new String[] {
872                            "iframe.form-method", "form.method", "com.liferay.iframe.web"
873                    },
874                    new String[] {
875                            "iframe.hidden-variables", "hidden.variables",
876                            "com.liferay.iframe.web"
877                    },
878    
879                    // JCR
880    
881                    new String[] {
882                            "jcr.initialize.on.startup", "initialize.on.startup",
883                            "com.liferay.portal.store.jcr"
884                    },
885                    new String[] {
886                            "jcr.jackrabbit.config.file.path", "jackrabbit.config.file.path",
887                            "com.liferay.portal.store.jcr"
888                    },
889                    new String[] {
890                            "jcr.jackrabbit.credentials.password",
891                            "jackrabbit.credentials.password", "com.liferay.portal.store.jcr"
892                    },
893                    new String[] {
894                            "jcr.jackrabbit.credentials.username",
895                            "jackrabbit.credentials.username", "com.liferay.portal.store.jcr"
896                    },
897                    new String[] {
898                            "jcr.jackrabbit.repository.home", "repository.home",
899                            "com.liferay.portal.store.jcr"
900                    },
901                    new String[] {
902                            "jcr.jackrabbit.repository.root", "repository.root",
903                            "com.liferay.portal.store.jcr"
904                    },
905                    new String[] {
906                            "jcr.node.documentlibrary", "node.documentlibrary",
907                            "com.liferay.portal.store.jcr"
908                    },
909                    new String[] {
910                            "jcr.workspace.name", "workspace.name",
911                            "com.liferay.portal.store.jcr"
912                    },
913                    new String[] {
914                            "jcr.wrap.session", "wrap.session", "com.liferay.portal.store.jcr"
915                    },
916    
917                    // Journal
918    
919                    new String[] {
920                            "journal.article.check.interval", "check.interval",
921                            "com.liferay.journal.web"
922                    },
923                    new String[] {
924                            "journal.article.comments.enabled",
925                            "journal.article.comments.enabled", "com.liferay.journal.service"
926                    },
927                    new String[] {
928                            "journal.article.custom.tokens", "journal.article.custom.tokens",
929                            "com.liferay.journal.service"
930                    },
931                    new String[] {
932                            "journal.article.database.keyword.search.content",
933                            "journal.article.database.keyword.search.content",
934                            "com.liferay.journal.service"
935                    },
936                    new String[] {
937                            "journal.article.expire.all.versions",
938                            "journal.article.expire.all.versions", "com.liferay.journal.service"
939                    },
940                    new String[] {
941                            "journal.article.force.autogenerate.id",
942                            "journal.article.force.autogenerate.id", "com.liferay.journal.web"
943                    },
944                    new String[] {
945                            "journal.article.form.add", "journal.article.form.add",
946                            "com.liferay.journal.web"
947                    },
948                    new String[] {
949                            "journal.article.form.default.values",
950                            "journal.article.form.default.values", "com.liferay.journal.web"
951                    },
952                    new String[] {
953                            "journal.article.form.update", "journal.article.form.update",
954                            "com.liferay.journal.web"
955                    },
956                    new String[] {
957                            "journal.articles.search.with.index",
958                            "journal.articles.search.with.index", "com.liferay.journal.web"
959                    },
960                    new String[] {
961                            "journal.article.storage.type", "journal.article.storage.type",
962                            "com.liferay.journal.service"
963                    },
964                    new String[] {
965                            "journal.article.token.page.break",
966                            "journal.article.token.page.break", "com.liferay.journal.service"
967                    },
968                    new String[] {
969                            "journal.article.view.permission.check.enabled",
970                            "journal.article.view.permission.check.enabled",
971                            "com.liferay.journal.service"
972                    },
973                    new String[] {
974                            "journal.articles.index.all.versions",
975                            "journal.articles.index.all.versions", "com.liferay.journal.service"
976                    },
977                    new String[] {
978                            "journal.char.blacklist", "char.blacklist",
979                            "com.liferay.journal.service"
980                    },
981                    new String[] {
982                            "journal.content.publish.to.live.by.default",
983                            "publish.to.live.by.default", "com.liferay.journal.content.web"
984                    },
985                    new String[] {
986                            "journal.content.search.show.listed", "show.listed",
987                            "com.liferay.journal.content.search.web"
988                    },
989                    new String[] {
990                            "journal.default.display.view", "default.display.view",
991                            "com.liferay.journal.web"
992                    },
993                    new String[] {
994                            "journal.display.views", "display.views", "com.liferay.journal.web"
995                    },
996                    new String[] {
997                            "journal.email.from.address", "email.from.address",
998                            "com.liferay.journal.service"
999                    },
1000                    new String[] {
1001                            "journal.email.from.name", "email.from.name",
1002                            "com.liferay.journal.service"
1003                    },
1004                    new String[] {
1005                            "journal.email.article.added.enabled",
1006                            "email.article.added.enabled", "com.liferay.journal.service"
1007                    },
1008                    new String[] {
1009                            "journal.email.article.added.subject",
1010                            "email.article.added.subject", "com.liferay.journal.service"
1011                    },
1012                    new String[] {
1013                            "journal.email.article.added.body", "email.article.added.body",
1014                            "com.liferay.journal.service"
1015                    },
1016                    new String[] {
1017                            "journal.email.article.approval.denied.enabled",
1018                            "email.article.approval.denied.enabled",
1019                            "com.liferay.journal.service"
1020                    },
1021                    new String[] {
1022                            "journal.email.article.approval.denied.subject",
1023                            "email.article.approval.denied.subject",
1024                            "com.liferay.journal.service"
1025                    },
1026                    new String[] {
1027                            "journal.email.article.approval.denied.body",
1028                            "email.article.approval.denied.body", "com.liferay.journal.service"
1029                    },
1030                    new String[] {
1031                            "journal.email.article.approval.granted.enabled",
1032                            "email.article.approval.granted.enabled",
1033                            "com.liferay.journal.service"
1034                    },
1035                    new String[] {
1036                            "journal.email.article.approval.granted.subject",
1037                            "email.article.approval.granted.subject",
1038                            "com.liferay.journal.service"
1039                    },
1040                    new String[] {
1041                            "journal.email.article.approval.granted.body",
1042                            "email.article.approval.granted.body", "com.liferay.journal.service"
1043                    },
1044                    new String[] {
1045                            "journal.email.article.approval.requested.enabled",
1046                            "email.article.approval.requested.enabled",
1047                            "com.liferay.journal.service"
1048                    },
1049                    new String[] {
1050                            "journal.email.article.approval.requested.subject",
1051                            "email.article.approval.requested.subject",
1052                            "com.liferay.journal.service"
1053                    },
1054                    new String[] {
1055                            "journal.email.article.approval.requested.body",
1056                            "email.article.approval.requested.body",
1057                            "com.liferay.journal.service"
1058                    },
1059                    new String[] {
1060                            "journal.email.article.moved.to.folder.enabled",
1061                            "email.article.moved.to.folder.enabled",
1062                            "com.liferay.journal.service"
1063                    },
1064                    new String[] {
1065                            "journal.email.article.moved.to.folder.subject",
1066                            "email.article.moved.to.folder.subject",
1067                            "com.liferay.journal.service"
1068                    },
1069                    new String[] {
1070                            "journal.email.article.moved.from.folder.body",
1071                            "email.article.moved.from.folder.body",
1072                            "com.liferay.journal.service"
1073                    },
1074                    new String[] {
1075                            "journal.email.article.moved.from.folder.enabled",
1076                            "email.article.moved.from.folder.enabled",
1077                            "com.liferay.journal.service"
1078                    },
1079                    new String[] {
1080                            "journal.email.article.moved.from.folder.subject",
1081                            "email.article.moved.from.folder.subject",
1082                            "com.liferay.journal.service"
1083                    },
1084                    new String[] {
1085                            "journal.email.article.moved.from.folder.body",
1086                            "email.article.moved.from.folder.body",
1087                            "com.liferay.journal.service"
1088                    },
1089                    new String[] {
1090                            "journal.email.article.review.enabled",
1091                            "email.article.review.enabled", "com.liferay.journal.service"
1092                    },
1093                    new String[] {
1094                            "journal.email.article.review.subject",
1095                            "email.article.review.subject", "com.liferay.journal.service"
1096                    },
1097                    new String[] {
1098                            "journal.email.article.review.body", "email.article.review.body",
1099                            "com.liferay.journal.service"
1100                    },
1101                    new String[] {
1102                            "journal.email.article.updated.enabled",
1103                            "email.article.updated.enabled", "com.liferay.journal.service"
1104                    },
1105                    new String[] {
1106                            "journal.email.article.updated.subject",
1107                            "email.article.updated.subject", "com.liferay.journal.service"
1108                    },
1109                    new String[] {
1110                            "journal.email.article.updated.body", "email.article.updated.body",
1111                            "com.liferay.journal.service"
1112                    },
1113                    new String[] {
1114                            "journal.error.template[ftl]", "error.template[ftl]",
1115                            "com.liferay.journal.service"
1116                    },
1117                    new String[] {
1118                            "journal.error.template[vm]", "error.template[vm]",
1119                            "com.liferay.journal.service"
1120                    },
1121                    new String[] {
1122                            "journal.error.template[xsl]", "error.template[xsl]",
1123                            "com.liferay.journal.service"
1124                    },
1125                    new String[] {
1126                            "journal.feed.force.autogenerate.id",
1127                            "journal.feed.force.autogenerate.id", "com.liferay.journal.web"
1128                    },
1129                    new String[] {
1130                            "journal.folder.icon.check.count",
1131                            "journal.folder.icon.check.count", "com.liferay.journal.service"
1132                    },
1133                    new String[] {
1134                            "journal.lar.creation.strategy", "lar.creation.strategy",
1135                            "com.liferay.journal.service"
1136                    },
1137                    new String[] {
1138                            "journal.publish.to.live.by.default", "publish.to.live.by.defaul",
1139                            "com.liferay.journal.web"
1140                    },
1141                    new String[] {
1142                            "journal.publish.version.history.by.default",
1143                            "publish.version.history.by.default", "com.liferay.journal.web"
1144                    },
1145                    new String[] {
1146                            "journal.sync.content.search.on.startup",
1147                            "sync.content.search.on.startup", "com.liferay.journal.service"
1148                    },
1149                    new String[] {
1150                            "journal.template.language.content[css]",
1151                            "journal.article.template.language.content[css]",
1152                            "com.liferay.journal.web"
1153                    },
1154                    new String[] {
1155                            "journal.template.language.content[ftl]",
1156                            "journal.article.template.language.content[ftl]",
1157                            "com.liferay.journal.web"
1158                    },
1159                    new String[] {
1160                            "journal.template.language.content[vm]",
1161                            "journal.article.template.language.content[vm]",
1162                            "com.liferay.journal.web"
1163                    },
1164                    new String[] {
1165                            "journal.template.language.content[xsl]",
1166                            "journal.article.template.language.content[xsl]",
1167                            "com.liferay.journal.web"
1168                    },
1169                    new String[] {
1170                            "journal.transformer.listener", "transformer.listener",
1171                            "com.liferay.journal.service"
1172                    },
1173                    new String[] {
1174                            "journal.transformer.regex.pattern", "transformer.regex.pattern",
1175                            "com.liferay.journal.service"
1176                    },
1177                    new String[] {
1178                            "journal.transformer.regex.replacement",
1179                            "transformer.regex.replacement", "com.liferay.journal.service"
1180                    },
1181                    new String[] {
1182                            "terms.of.use.journal.article.group.id",
1183                            "terms.of.use.journal.article.group.id",
1184                            "com.liferay.journal.service"
1185                    },
1186                    new String[] {
1187                            "terms.of.use.journal.article.id",
1188                            "terms.of.use.journal.article.id", "com.liferay.journal.service"
1189                    },
1190    
1191                    // Language
1192    
1193                    new String[] {
1194                            "language.display.style.default", "ddm.template.key.default",
1195                            "com.liferay.site.navigation.language.web"
1196                    },
1197                    new String[] {
1198                            "language.display.templates.config", "display.templates.config",
1199                            "com.liferay.site.navigation.language.web"
1200                    },
1201    
1202                    // LDAP
1203    
1204                    new String[] {
1205                            "ldap.auth.enabled", "enabled",
1206                            "com.liferay.portal.authenticator.ldap"
1207                    },
1208                    new String[] {
1209                            "ldap.auth.method", "method",
1210                            "com.liferay.portal.authenticator.ldap"
1211                    },
1212                    new String[] {
1213                            "ldap.auth.password.encryption.algorithm",
1214                            "passwordEncryptionAlgorithm",
1215                            "com.liferay.portal.authenticator.ldap"
1216                    },
1217                    new String[] {
1218                            "ldap.auth.required", "required",
1219                            "com.liferay.portal.authenticator.ldap"
1220                    },
1221                    new String[] {
1222                            "ldap.export.enabled", "export.enabled", "com.liferay.portal.ldap"
1223                    },
1224                    new String[] {
1225                            "ldap.export.group.enabled", "export.group.enabled",
1226                            "com.liferay.portal.ldap"
1227                    },
1228                    new String[] {
1229                            "ldap.factory.initial", "factory.initial", "com.liferay.portal.ldap"
1230                    },
1231                    new String[] {
1232                            "ldap.import.create.role.per.group", "import.create.role.per.group",
1233                            "com.liferay.portal.ldap"
1234                    },
1235                    new String[] {
1236                            "ldap.import.enabled", "import.enabled", "com.liferay.portal.ldap"
1237                    },
1238                    new String[] {
1239                            "ldap.import.group.cache.enabled", "import.group.cache.enabled",
1240                            "com.liferay.portal.ldap"
1241                    },
1242                    new String[] {
1243                            "ldap.import.group.search.filter.enabled",
1244                            "import.group.search.filter.enabled", "com.liferay.portal.ldap"
1245                    },
1246                    new String[] {
1247                            "ldap.import.interval", "import.interval", "com.liferay.portal.ldap"
1248                    },
1249                    new String[] {
1250                            "ldap.import.lock.expiration.time", "import.lock.expiration.time",
1251                            "com.liferay.portal.ldap"
1252                    },
1253                    new String[] {
1254                            "ldap.import.method", "import.method", "com.liferay.portal.ldap"
1255                    },
1256                    new String[] {
1257                            "ldap.import.on.startup", "import.on.startup",
1258                            "com.liferay.portal.ldap"
1259                    },
1260                    new String[] {
1261                            "ldap.import.user.password.autogenerated",
1262                            "import.user.password.autogenerated", "com.liferay.portal.ldap"
1263                    },
1264                    new String[] {
1265                            "ldap.import.user.password.default", "import.user.password.default",
1266                            "com.liferay.portal.ldap"
1267                    },
1268                    new String[] {
1269                            "ldap.import.user.password.enabled", "import.user.password.enabled",
1270                            "com.liferay.portal.ldap"
1271                    },
1272                    new String[] {
1273                            "ldap.import.user.sync.strategy", "import.user.sync.strategy",
1274                            "com.liferay.portal.ldap"
1275                    },
1276                    new String[] {"ldap.page.size", "page.size", "com.liferay.portal.ldap"},
1277                    new String[] {
1278                            "ldap.password.policy.enabled", "password.policy.enabled",
1279                            "com.liferay.portal.ldap"
1280                    },
1281                    new String[] {
1282                            "ldap.range.size", "range.size", "com.liferay.portal.ldap"
1283                    },
1284                    new String[] {"ldap.referral", "referral", "com.liferay.portal.ldap"},
1285                    new String[] {
1286                            "ldap.user.ignore.attributes", "user.ignore.attributes",
1287                            "com.liferay.portal.ldap"
1288                    },
1289    
1290                    // Lucene
1291    
1292                    new String[] {
1293                            "lucene.analyzer.max.tokens", "analyzer.max.tokens",
1294                            "com.liferay.portal.search.lucene"
1295                    },
1296                    new String[] {
1297                            "lucene.buffer.size", "buffer.size",
1298                            "com.liferay.portal.search.lucene"
1299                    },
1300                    new String[] {
1301                            "lucene.commit.batch.size", "commit.batch.size",
1302                            "com.liferay.portal.search.lucene"
1303                    },
1304                    new String[] {
1305                            "lucene.commit.time.interval", "commit.time.interval",
1306                            "com.liferay.portal.search.lucene"
1307                    },
1308                    new String[] {"lucene.dir", "dir", "com.liferay.portal.search.lucene"},
1309                    new String[] {
1310                            "lucene.merge.factor", "merge.factor",
1311                            "com.liferay.portal.search.lucene"
1312                    },
1313                    new String[] {
1314                            "lucene.merge.policy", "merge.policy",
1315                            "com.liferay.portal.search.lucene"
1316                    },
1317                    new String[] {
1318                            "lucene.merge.scheduler", "merge.scheduler",
1319                            "com.liferay.portal.search.lucene"
1320                    },
1321                    new String[] {
1322                            "lucene.store.type", "store.type",
1323                            "com.liferay.portal.search.lucene"
1324                    },
1325                    new String[] {
1326                            "lucene.store.type.file.force.mmap", "store.type.file.force.mmp",
1327                            "com.liferay.portal.search.lucene"
1328                    },
1329    
1330                    // Message Boards
1331    
1332                    new String[] {
1333                            "message.boards.expire.ban.job.interval", "expire.ban.job.interval",
1334                            "com.liferay.message.boards.web"
1335                    },
1336    
1337                    // Monitoring
1338    
1339                    new String[] {
1340                            "monitoring.portal.request", "monitor.portal.request",
1341                            "com.liferay.portal.monitoring"
1342                    },
1343                    new String[] {
1344                            "monitoring.portlet.action.request",
1345                            "monitor.portlet.action.request", "com.liferay.portal.monitoring"
1346                    },
1347                    new String[] {
1348                            "monitoring.portlet.event.request", "monitor.portlet.event.request",
1349                            "com.liferay.portal.monitoring"
1350                    },
1351                    new String[] {
1352                            "monitoring.portlet.render.request",
1353                            "monitor.portlet.render.request", "com.liferay.portal.monitoring"
1354                    },
1355                    new String[] {
1356                            "monitoring.portlet.resource.request",
1357                            "monitor.portlet.resource.request", "com.liferay.portal.monitoring"
1358                    },
1359                    new String[] {
1360                            "monitoring.show.per.request.data.sample",
1361                            "show.per.request.data.sample", "com.liferay.portal.monitoring"
1362                    },
1363    
1364                    // Navigation
1365    
1366                    new String[] {
1367                            "navigation.display.style.default", "ddm.template.key.default",
1368                            "com.liferay.site.navigation.menu.web"
1369                    },
1370                    new String[] {
1371                            "navigation.display.style.options", "display.style.options",
1372                            "com.liferay.site.navigation.menu.web"
1373                    },
1374    
1375                    // Nested Portlets
1376    
1377                    new String[] {
1378                            "nested.portlets.layout.template.default",
1379                            "layout.template.default", "com.liferay.nested.portlets.web"
1380                    },
1381                    new String[] {
1382                            "nested.portlets.layout.template.unsupported",
1383                            "layout.template.unsupported", "com.liferay.nested.portlets.web"
1384                    },
1385    
1386                    // NTLM
1387    
1388                    new String[] {
1389                            "ntlm.auth.enabled", "enabled",
1390                            "com.liferay.portal.security.sso.ntlm"
1391                    },
1392                    new String[] {
1393                            "ntlm.auth.domain", "domain", "com.liferay.portal.security.sso.ntlm"
1394                    },
1395                    new String[] {
1396                            "ntlm.auth.domain.controller", "domain.controller",
1397                            "com.liferay.portal.security.sso.ntlm"
1398                    },
1399                    new String[] {
1400                            "ntlm.auth.domain.controller.name", "domain.controller.name",
1401                            "com.liferay.portal.security.sso.ntlm"
1402                    },
1403                    new String[] {
1404                            "ntlm.auth.negotiate.flags", "negotiate.flags",
1405                            "com.liferay.portal.security.sso.ntlm"
1406                    },
1407                    new String[] {
1408                            "ntlm.auth.service.account", "service.account",
1409                            "com.liferay.portal.security.sso.ntlm"
1410                    },
1411                    new String[] {
1412                            "ntlm.auth.service.password", "service.password",
1413                            "com.liferay.portal.security.sso.ntlm"
1414                    },
1415    
1416                    // OpenID
1417    
1418                    new String[] {
1419                            "open.id.auth.enabled", "enabled",
1420                            "com.liferay.portal.security.sso.openid"
1421                    },
1422                    new String[] {
1423                            "open.id.providers", "providers",
1424                            "com.liferay.portal.security.sso.openid"
1425                    },
1426                    new String[] {
1427                            "open.id.ax.schema[default]", "ax.schema",
1428                            "com.liferay.portal.security.sso.openid"
1429                    },
1430                    new String[] {
1431                            "open.id.ax.type.email[default]", "ax.type.email",
1432                            "com.liferay.portal.security.sso.openid"
1433                    },
1434                    new String[] {
1435                            "open.id.ax.type.firstname[default]", "ax.type.firstname",
1436                            "com.liferay.portal.security.sso.openid"
1437                    },
1438                    new String[] {
1439                            "open.id.ax.type.lastname[default]", "ax.type.lastname",
1440                            "com.liferay.portal.security.sso.openid"
1441                    },
1442                    new String[] {
1443                            "open.id.ax.schema[yahoo]", "ax.schema",
1444                            "com.liferay.portal.security.sso.openid"
1445                    },
1446                    new String[] {
1447                            "open.id.ax.type.email[yahoo]", "ax.type.email",
1448                            "com.liferay.portal.security.sso.openid"
1449                    },
1450                    new String[] {
1451                            "open.id.ax.type.fullname[yahoo]", "ax.type.fullname",
1452                            "com.liferay.portal.security.sso.openid"
1453                    },
1454                    new String[] {
1455                            "open.id.url[yahoo]", "url",
1456                            "com.liferay.portal.security.sso.openid"
1457                    },
1458    
1459                    // OpenSSO
1460    
1461                    new String[] {
1462                            "open.sso.auth.enabled", "enabled",
1463                            "com.liferay.portal.security.sso.opensso"
1464                    },
1465                    new String[] {
1466                            "open.sso.email.address.attr", "email.address.attr",
1467                            "com.liferay.portal.security.sso.opensso"
1468                    },
1469                    new String[] {
1470                            "open.sso.first.name.attr", "first.name.attr",
1471                            "com.liferay.portal.security.sso.opensso"
1472                    },
1473                    new String[] {
1474                            "open.sso.last.name.attr", "last.name.attr",
1475                            "com.liferay.portal.security.sso.opensso"
1476                    },
1477                    new String[] {
1478                            "open.sso.import.from.ldap", "import.from.ldap",
1479                            "com.liferay.portal.security.sso.opensso"
1480                    },
1481                    new String[] {
1482                            "open.sso.login.url", "login.url",
1483                            "com.liferay.portal.security.sso.opensso"
1484                    },
1485                    new String[] {
1486                            "open.sso.logout.on.session.expiration",
1487                            "logout.on.session.expiration",
1488                            "com.liferay.portal.security.sso.opensso"
1489                    },
1490                    new String[] {
1491                            "open.sso.logout.url", "logout.url",
1492                            "com.liferay.portal.security.sso.opensso"
1493                    },
1494                    new String[] {
1495                            "open.sso.screen.name.attr", "screen.name.attr",
1496                            "com.liferay.portal.security.sso.opensso"
1497                    },
1498                    new String[] {
1499                            "open.sso.service.url", "service.url",
1500                            "com.liferay.portal.security.sso.opensso"
1501                    },
1502    
1503                    // Polls
1504    
1505                    new String[] {
1506                            "polls.publish.to.live.by.default", "publish.to.live.by.default",
1507                            "com.liferay.polls.service"
1508                    },
1509    
1510                    // Request Header
1511    
1512                    new String[] {
1513                            "request.header.auth.hosts.allowed", "authHostsAllowed",
1514                            "com.liferay.portal.security.auto.login.request.header"
1515                    },
1516    
1517                    new String[] {
1518                            "request.header.auth.import.from.ldap", "importFromLDAP",
1519                            "com.liferay.portal.security.auto.login.request.header"
1520                    },
1521    
1522                    // RSS
1523    
1524                    new String[] {
1525                            "rss.display.templates.config", "display.templates.config",
1526                            "com.liferay.rss.web"
1527                    },
1528    
1529                    // Shopping
1530    
1531                    new String[] {
1532                            "shopping.cart.min.qty.multiple", "cart.min.qty.multiple",
1533                            "com.liferay.shopping.service"
1534                    },
1535                    new String[] {
1536                            "shopping.category.forward.to.cart", "category.forward.to.cart",
1537                            "com.liferay.shopping.service"
1538                    },
1539                    new String[] {
1540                            "shopping.category.show.special.items",
1541                            "category.show.special.items", "com.liferay.shopping.service"
1542                    },
1543                    new String[] {
1544                            "shopping.credit.card.types", "credit.card.types",
1545                            "com.liferay.shopping.service"
1546                    },
1547                    new String[] {
1548                            "shopping.currency.id", "currency.id",
1549                            "com.liferay.shopping.service"
1550                    },
1551                    new String[] {
1552                            "shopping.email.from.address", "email.from.address",
1553                            "com.liferay.shopping.service"
1554                    },
1555                    new String[] {
1556                            "shopping.email.from.name", "email.from.name",
1557                            "com.liferay.shopping.service"
1558                    },
1559                    new String[] {
1560                            "shopping.email.order.confirmation.enabled",
1561                            "email.order.confirmation.enabled", "com.liferay.shopping.service"
1562                    },
1563                    new String[] {
1564                            "shopping.email.order.confirmation.subject",
1565                            "email.order.confirmation.subject", "com.liferay.shopping.service"
1566                    },
1567                    new String[] {
1568                            "shopping.email.order.confirmation.body",
1569                            "email.order.confirmation.body", "com.liferay.shopping.service"
1570                    },
1571                    new String[] {
1572                            "shopping.email.order.shipping.enabled",
1573                            "email.order.shipping.enabled", "com.liferay.shopping.service"
1574                    },
1575                    new String[] {
1576                            "shopping.email.order.shipping.subject",
1577                            "email.order.shipping.subject", "com.liferay.shopping.service"
1578                    },
1579                    new String[] {
1580                            "shopping.email.order.shipping.body", "email.order.shipping.body",
1581                            "com.liferay.shopping.service"
1582                    },
1583                    new String[] {
1584                            "shopping.image.extensions", "image.extensions",
1585                            "com.liferay.shopping.service"
1586                    },
1587                    new String[] {
1588                            "shopping.image.large.max.size", "image.large.max.size",
1589                            "com.liferay.shopping.service"
1590                    },
1591                    new String[] {
1592                            "shopping.image.medium.max.size", "image.medium.max.size",
1593                            "com.liferay.shopping.service"
1594                    },
1595                    new String[] {
1596                            "shopping.image.small.max.size", "image.small.max.size",
1597                            "com.liferay.shopping.service"
1598                    },
1599                    new String[] {
1600                            "shopping.insurance", "insurance", "com.liferay.shopping.service"
1601                    },
1602                    new String[] {
1603                            "shopping.insurance.formula", "insurance.formula",
1604                            "com.liferay.shopping.service"
1605                    },
1606                    new String[] {
1607                            "shopping.item.show.availability", "item.show.availability",
1608                            "com.liferay.shopping.service"
1609                    },
1610                    new String[] {
1611                            "shopping.min.order", "min.order", "com.liferay.shopping.service"
1612                    },
1613                    new String[] {
1614                            "shopping.order.comments.enabled", "order.comments.enabled",
1615                            "com.liferay.shopping.service"
1616                    },
1617                    new String[] {
1618                            "shopping.paypal.email.address", "paypal.email.address",
1619                            "com.liferay.shopping.service"
1620                    },
1621                    new String[] {
1622                            "shopping.shipping", "shipping", "com.liferay.shopping.service"
1623                    },
1624                    new String[] {
1625                            "shopping.shipping.formula", "shipping.formula",
1626                            "com.liferay.shopping.service"
1627                    },
1628                    new String[] {
1629                            "shopping.tax.rate", "tax.rate", "com.liferay.shopping.service"
1630                    },
1631    
1632                    // Scripting
1633    
1634                    new String[] {
1635                            "scripting.forbidden.classes", "forbidden.classes",
1636                            "com.liferay.portal.scripting.javascript"
1637                    },
1638                    new String[] {
1639                            "scripting.jruby.load.paths", "load.paths",
1640                            "com.liferay.portal.scripting.ruby"
1641                    },
1642    
1643                    // Search
1644    
1645                    new String[] {
1646                            "search.facet.configuration", "facet.configuration",
1647                            "com.liferay.search.web"
1648                    },
1649    
1650                    // Site Map
1651    
1652                    new String[] {
1653                            "sitemap.display.templates.config", "display.templates.config",
1654                            "com.liferay.site.navigation.site.map.web"
1655                    },
1656    
1657                    // Staging
1658    
1659                    new String[] {
1660                            "staging.draft.export.import.configuration.check.interval",
1661                            "draft.export.import.configuration.check.interval",
1662                            "com.liferay.exportimport.web"
1663                    },
1664                    new String[] {
1665                            "staging.draft.export.import.configuration.clean.up.count",
1666                            "draft.export.import.configuration.clean.up.count",
1667                            "com.liferay.exportimport.web"
1668                    },
1669    
1670                    // Social Activity
1671    
1672                    new String[] {
1673                            "social.activity.contribution.increments",
1674                            "contribution.increments", "com.liferay.social.activity"
1675                    },
1676                    new String[] {
1677                            "social.activity.contribution.limit.values",
1678                            "contribution.limit.values", "com.liferay.social.activity"
1679                    },
1680                    new String[] {
1681                            "social.activity.participation.increments",
1682                            "participation.increments", "com.liferay.social.activity"
1683                    },
1684                    new String[] {
1685                            "social.activity.participation.limit.values",
1686                            "participation.limit.values", "com.liferay.social.activity"
1687                    },
1688    
1689                    // Tags Compiler
1690    
1691                    new String[] {
1692                            "tags.compiler.enabled", "enabled",
1693                            "com.liferay.asset.tags.compiler.web"
1694                    },
1695    
1696                    // Translator
1697    
1698                    new String[] {
1699                            "translator.default.languages", "translation.id",
1700                            "com.liferay.translator.web"
1701                    },
1702                    new String[] {
1703                            "translator.languages", "language.ids", "com.liferay.translator.web"
1704                    },
1705    
1706                    // Velocity Engine
1707    
1708                    new String[] {
1709                            "velocity.engine.directive.if.to.string.null.check",
1710                            "directive.if.to.string.null.check",
1711                            "com.liferay.portal.template.velocity"
1712                    },
1713                    new String[] {
1714                            "velocity.engine.resource.parsers", "resource.parsers",
1715                            "com.liferay.portal.template.velocity"
1716                    },
1717                    new String[] {
1718                            "velocity.engine.resource.modification.check.interval",
1719                            "resource.modification.check.interval",
1720                            "com.liferay.portal.template.velocity"
1721                    },
1722                    new String[] {
1723                            "velocity.engine.restricted.classes", "restricted.classes",
1724                            "com.liferay.portal.template.velocity"
1725                    },
1726                    new String[] {
1727                            "velocity.engine.restricted.packages", "restricted.packages",
1728                            "com.liferay.portal.template.velocity"
1729                    },
1730                    new String[] {
1731                            "velocity.engine.restricted.variables", "restricted.variables",
1732                            "com.liferay.portal.template.velocity"
1733                    },
1734                    new String[] {
1735                            "velocity.engine.velocimacro.library", "macro.library",
1736                            "com.liferay.portal.template.velocity"
1737                    },
1738                    new String[] {
1739                            "velocity.engine.logger", "logger",
1740                            "com.liferay.portal.template.velocity"
1741                    },
1742                    new String[] {
1743                            "velocity.engine.logger.category", "logger.category",
1744                            "com.liferay.portal.template.velocity"
1745                    },
1746    
1747                    // XSL Content
1748    
1749                    new String[] {
1750                            "xsl.content.valid.url.prefixes", "valid.url.prefixes",
1751                            "com.liferay.xsl.content.web"
1752                    },
1753                    new String[] {
1754                            "xsl.content.xml.doctype.declaration.allowed",
1755                            "xml.doctype.declaration.allowed", "com.liferay.xsl.content.web"
1756                    },
1757                    new String[] {
1758                            "xsl.content.xml.external.general.entities.allowed",
1759                            "xml.external.general.entities.allowed",
1760                            "com.liferay.xsl.content.web"
1761                    },
1762                    new String[] {
1763                            "xsl.content.xml.external.parameter.entities.allowed",
1764                            "xml.external.parameter.entities.allowed",
1765                            "com.liferay.xsl.content.web"
1766                    },
1767                    new String[] {
1768                            "xsl.content.xsl.secure.processing.enabled",
1769                            "xsl.secure.processing.enabled", "com.liferay.xsl.content.web"
1770                    },
1771    
1772                    // XSL Engine
1773    
1774                    new String[] {
1775                            "xsl.template.secure.processing.enabled",
1776                            "secure.processing.enabled", "com.liferay.portal.template.xsl"
1777                    }
1778            };
1779    
1780            private static final String[] _OBSOLETE_PORTAL_KEYS = new String[] {
1781                    "aim.login", "aim.login", "amazon.access.key.id",
1782                    "amazon.associate.tag", "amazon.secret.access.key",
1783                    "asset.entry.increment.view.counter.enabled",
1784                    "asset.publisher.asset.entry.query.processors",
1785                    "asset.publisher.filter.unlistable.entries",
1786                    "asset.publisher.query.form.configuration",
1787                    "asset.tag.permissions.enabled", "asset.tag.properties.default",
1788                    "asset.tag.properties.enabled", "auth.max.failures.limit",
1789                    "blogs.image.small.max.size", "breadcrumb.display.style.options",
1790                    "buffered.increment.parallel.queue.size",
1791                    "buffered.increment.serial.queue.size", "cas.validate.url",
1792                    "cluster.executor.heartbeat.interval",
1793                    "com.liferay.filters.doubleclick.DoubleClickFilter",
1794                    "com.liferay.portal.servlet.filters.doubleclick.DoubleClickFilter",
1795                    "com.liferay.portal.servlet.filters.charbufferpool." +
1796                            "CharBufferPoolFilter",
1797                    "com.liferay.portal.servlet.filters.monitoring.MonitoringFilter",
1798                    "com.liferay.portal.servlet.filters.validhtml.ValidHtmlFilter",
1799                    "commons.pool.enabled", "company.settings.form.configuration",
1800                    "company.settings.form.identification",
1801                    "company.settings.form.miscellaneous", "company.settings.form.social",
1802                    "control.panel.home.portlet.id", "convert.processes",
1803                    "discussion.thread.view", "dl.file.entry.read.count.enabled",
1804                    "dockbar.administrative.links.show.in.pop.up",
1805                    "dynamic.data.lists.record.set.force.autogenerate.key",
1806                    "dynamic.data.lists.template.language.parser[ftl]",
1807                    "dynamic.data.lists.template.language.parser[vm]",
1808                    "dynamic.data.lists.template.language.parser[xsl]",
1809                    "dynamic.data.mapping.structure.private.field.names",
1810                    "dynamic.data.mapping.structure.private.field.datatype[_fieldsDisplay]",
1811                    "dynamic.data.mapping.structure.private.field.repeatable[" +
1812                            "_fieldsDisplay]",
1813                    "dynamic.data.mapping.template.language.types",
1814                    "editor.ckeditor.version", "editor.inline.editing.enabled",
1815                    "editor.wysiwyg.portal-web.docroot.html.portlet.asset_publisher." +
1816                            "configuration.jsp",
1817                    "editor.wysiwyg.portal-web.docroot.html.portlet.blogs.configuration." +
1818                            "jsp",
1819                    "editor.wysiwyg.portal-web.docroot.html.portlet.bookmarks." +
1820                            "configuration.jsp",
1821                    "editor.wysiwyg.portal-web.docroot.html.portlet.document_library." +
1822                    "editor.wysiwyg.portal-web.docroot.html.portlet.invitation." +
1823                            "configuration.jsp",
1824                    "editor.wysiwyg.portal-web.docroot.html.portlet.journal." +
1825                            "configuration.jsp",
1826                    "editor.wysiwyg.portal-web.docroot.html.portlet.login.configuration." +
1827                            "jsp",
1828                    "editor.wysiwyg.portal-web.docroot.html.portlet.message_boards." +
1829                            "configuration.jsp",
1830                    "editor.wysiwyg.portal-web.docroot.html.portlet.portal_settings." +
1831                            "email_notifications.jsp",
1832                    "ehcache.cache.manager.statistics.thread.pool.size",
1833                    "ehcache.statistics.enabled",
1834                    "hot.deploy.hook.custom.jsp.verification.enabled",
1835                    "hibernate.cache.region.factory_class",
1836                    "hibernate.cache.use_minimal_puts", "hibernate.cache.use_query_cache",
1837                    "hibernate.cache.use_second_level_cache",
1838                    "hibernate.cache.use_structured_entries", "icq.jar", "icq.login",
1839                    "icq.password", "index.filter.search.limit",
1840                    "invitation.email.max.recipients", "invitation.email.message.body",
1841                    "invitation.email.message.subject", "javax.persistence.validation.mode",
1842                    "jbi.workflow.url", "json.deserializer.strict.mode",
1843                    "journal.article.form.translate", "journal.article.types",
1844                    "journal.articles.page.delta.values",
1845                    "journal.template.language.parser[css]",
1846                    "journal.template.language.parser[ftl]",
1847                    "journal.template.language.parser[vm]",
1848                    "journal.template.language.parser[xsl]",
1849                    "journal.template.language.types", "jpa.configs",
1850                    "jpa.database.platform", "jpa.database.type", "jpa.load.time.weaver",
1851                    "jpa.provider", "jpa.provider.property.eclipselink.allow-zero-id",
1852                    "jpa.provider.property.eclipselink.logging.level",
1853                    "jpa.provider.property.eclipselink.logging.timestamp",
1854                    "language.display.style.options", "layout.edit.page[control_panel]",
1855                    "layout.first.pageable[control_panel]", "layout.form.add",
1856                    "layout.form.update", "layout.parentable[control_panel]",
1857                    "layout.reset.portlet.ids", "layout.set.form.update", "layout.types",
1858                    "layout.url[control_panel]", "layout.url.friendliable[control_panel]",
1859                    "layout.view.page[control_panel]", "lucene.analyzer",
1860                    "lucene.cluster.index.loading.sync.timeout", "lucene.file.extractor",
1861                    "lucene.file.extractor.regexp.strip", "lucene.replicate.write",
1862                    "lucene.store.jdbc.auto.clean.up",
1863                    "lucene.store.jdbc.auto.clean.up.enabled",
1864                    "lucene.store.jdbc.auto.clean.up.interval",
1865                    "lucene.store.jdbc.dialect.db2", "lucene.store.jdbc.dialect.derby",
1866                    "lucene.store.jdbc.dialect.hsqldb", "lucene.store.jdbc.dialect.jtds",
1867                    "lucene.store.jdbc.dialect.microsoft",
1868                    "lucene.store.jdbc.dialect.mysql", "lucene.store.jdbc.dialect.oracle",
1869                    "lucene.store.jdbc.dialect.postgresql", "mail.hook.cyrus.add.user",
1870                    "mail.hook.cyrus.delete.user", "mail.hook.cyrus.home",
1871                    "memory.cluster.scheduler.lock.cache.enabled",
1872                    "message.boards.email.message.added.signature",
1873                    "message.boards.email.message.updated.signature",
1874                    "message.boards.thread.locking.enabled", "msn.login", "msn.password",
1875                    "multicast.group.address[\"hibernate\"]",
1876                    "multicast.group.port[\"hibernate\"]",
1877                    "net.sf.ehcache.configurationResourceName",
1878                    "net.sf.ehcache.configurationResourceName.peerProviderProperties",
1879                    "organizations.form.add.identification", "organizations.form.add.main",
1880                    "organizations.form.add.miscellaneous",
1881                    "organizations.form.update.identification",
1882                    "organizations.form.update.main",
1883                    "organizations.form.update.miscellaneous",
1884                    "organizations.indexer.enabled", "portal.cache.manager.type.multi.vm",
1885                    "portal.cache.manager.type.single.vm", "portal.ctx",
1886                    "portal.security.manager.enable", "permissions.list.filter",
1887                    "permissions.thread.local.cache.max.size",
1888                    "permissions.user.check.algorithm", "persistence.provider",
1889                    "ratings.max.score", "ratings.min.score", "scheduler.classes",
1890                    "schema.run.minimal", "search.container.page.iterator.page.values",
1891                    "service.builder.service.read.only.prefixes", "shard.available.names",
1892                    "shard.default.name", "shard.selector", "siteminder.auth.enabled",
1893                    "siteminder.import.from.ldap", "siteminder.user.header",
1894                    "sites.form.add.advanced", "sites.form.add.main",
1895                    "sites.form.add.miscellaneous", "sites.form.add.seo",
1896                    "sites.form.update.advanced", "sites.form.update.main",
1897                    "sites.form.update.miscellaneous", "sites.form.update.seo",
1898                    "staging.lock.enabled", "table.mapper.cacheless.mapping.table.names",
1899                    "tck.url", "user.groups.indexer.enabled",
1900                    "users.form.add.identification", "users.indexer.enabled",
1901                    "users.form.add.main", "users.form.add.miscellaneous",
1902                    "users.form.my.account.identification", "users.form.my.account.main",
1903                    "users.form.my.account.miscellaneous",
1904                    "users.form.update.identification", "users.form.update.main",
1905                    "users.form.update.miscellaneous", "vaadin.resources.path",
1906                    "vaadin.theme", "vaadin.widgetset", "webdav.storage.class",
1907                    "webdav.storage.show.edit.url", "webdav.storage.show.view.url",
1908                    "webdav.storage.tokens", "wiki.email.page.added.signature",
1909                    "wiki.email.page.updated.signature", "xss.allow", "ym.login",
1910                    "ym.password"
1911            };
1912    
1913            private static final String[] _OBSOLETE_SYSTEM_KEYS = new String[] {
1914                    "com.liferay.util.Http.proxy.host", "com.liferay.util.Http.proxy.port",
1915                    "com.liferay.util.XSSUtil.regexp.pattern"
1916            };
1917    
1918            private static final String[][] _RENAMED_PORTAL_KEYS = new String[][] {
1919                    new String[] {
1920                            "amazon.license.0", "amazon.access.key.id"
1921                    },
1922                    new String[] {"amazon.license.1", "amazon.access.key.id"},
1923                    new String[] {"amazon.license.2", "amazon.access.key.id"},
1924                    new String[] {"amazon.license.3", "amazon.access.key.id"},
1925                    new String[] {"cdn.host", "cdn.host.http"},
1926                    new String[] {
1927                            "cluster.executor.debug.enabled", "cluster.link.debug.enabled"
1928                    },
1929                    new String[] {
1930                            "com.liferay.portal.servlet.filters.compression.CompressionFilter",
1931                            "com.liferay.portal.servlet.filters.gzip.GZipFilter"
1932                    },
1933                    new String[] {
1934                            "default.guest.friendly.url",
1935                            "default.guest.public.layout.friendly.url"
1936                    },
1937                    new String[] {
1938                            "default.guest.layout.column", "default.guest.public.layout.column"
1939                    },
1940                    new String[] {
1941                            "default.guest.layout.name", "default.guest.public.layout.name"
1942                    },
1943                    new String[] {
1944                            "default.guest.layout.template.id",
1945                            "default.guest.public.layout.template.id"
1946                    },
1947                    new String[] {
1948                            "default.user.layout.column", "default.user.public.layout.column"
1949                    },
1950                    new String[] {
1951                            "default.user.layout.name", "default.user.public.layout.name"
1952                    },
1953                    new String[] {
1954                            "default.user.layout.template.id",
1955                            "default.user.public.layout.template.id"
1956                    },
1957                    new String[] {
1958                            "default.user.private.layout.lar",
1959                            "default.user.private.layouts.lar"
1960                    },
1961                    new String[] {
1962                            "default.user.public.layout.lar", "default.user.public.layouts.lar"
1963                    },
1964                    new String[] {
1965                            "dl.hook.cmis.credentials.password",
1966                            "dl.store.cmis.credentials.password"
1967                    },
1968                    new String[] {
1969                            "dl.hook.cmis.credentials.username",
1970                            "dl.store.cmis.credentials.username"
1971                    },
1972                    new String[] {
1973                            "dl.hook.cmis.repository.url", "dl.store.cmis.repository.url"
1974                    },
1975                    new String[] {
1976                            "dl.hook.cmis.system.root.dir", "dl.store.cmis.system.root.dir"
1977                    },
1978                    new String[] {
1979                            "dl.hook.file.system.root.dir", "dl.store.file.system.root.dir"
1980                    },
1981                    new String[] {"dl.hook.impl", "dl.store.impl"},
1982                    new String[] {"dl.hook.jcr.fetch.delay", "dl.store.jcr.fetch.delay"},
1983                    new String[] {
1984                            "dl.hook.jcr.fetch.max.failures", "dl.store.jcr.fetch.max.failures"
1985                    },
1986                    new String[] {
1987                            "dl.hook.jcr.move.version.labels",
1988                            "dl.store.jcr.move.version.labels"
1989                    },
1990                    new String[] {"dl.hook.s3.access.key", "dl.store.s3.access.key"},
1991                    new String[] {"dl.hook.s3.bucket.name", "dl.store.s3.bucket.name"},
1992                    new String[] {"dl.hook.s3.secret.key", "dl.store.s3.secret.key"},
1993                    new String[] {
1994                            "editor.wysiwyg.portal-web.docroot.html.portlet.calendar." +
1995                                    "edit_configuration.jsp",
1996                            "editor.wysiwyg.portal-web.docroot.html.portlet.calendar." +
1997                                    "configuration.jsp"
1998                    },
1999                    new String[] {
2000                            "editor.wysiwyg.portal-web.docroot.html.portlet.invitation." +
2001                                    "edit_configuration.jsp",
2002                            "editor.wysiwyg.portal-web.docroot.html.portlet.invitation." +
2003                                    "configuration.jsp"
2004                    },
2005                    new String[] {
2006                            "editor.wysiwyg.portal-web.docroot.html.portlet.journal." +
2007                                    "edit_configuration.jsp",
2008                            "editor.wysiwyg.portal-web.docroot.html.portlet.journal." +
2009                                    "configuration.jsp"
2010                    },
2011                    new String[] {
2012                            "editor.wysiwyg.portal-web.docroot.html.portlet.message_boards." +
2013                                    "edit_configuration.jsp",
2014                            "editor.wysiwyg.portal-web.docroot.html.portlet.message_boards." +
2015                                    "configuration.jsp"
2016                    },
2017                    new String[] {
2018                            "editor.wysiwyg.portal-web.docroot.html.portlet.shopping." +
2019                                    "edit_configuration.jsp",
2020                            "editor.wysiwyg.portal-web.docroot.html.portlet.shopping." +
2021                                    "configuration.jsp"
2022                    },
2023                    new String[] {
2024                            "field.editable.com.liferay.portal.model.User.emailAddress",
2025                            "field.editable.user.types"
2026                    },
2027                    new String[] {
2028                            "field.editable.com.liferay.portal.model.User.screenName",
2029                            "field.editable.user.types"
2030                    },
2031                    new String[] {"icon.menu.max.display.items", "menu.max.display.items"},
2032                    new String[] {
2033                            "journal.error.template.freemarker", "journal.error.template[ftl]"
2034                    },
2035                    new String[] {
2036                            "journal.error.template.velocity", "journal.error.template[vm]"
2037                    },
2038                    new String[] {
2039                            "journal.error.template.xsl", "journal.error.template[xsl]"
2040                    },
2041                    new String[] {
2042                            "journal.template.velocity.restricted.variables",
2043                            "velocity.engine.restricted.variables"
2044                    },
2045                    new String[] {
2046                            "passwords.passwordpolicytoolkit.charset.lowercase",
2047                            "passwords.passwordpolicytoolkit.validator.charset.lowercase"
2048                    },
2049                    new String[] {
2050                            "passwords.passwordpolicytoolkit.charset.numbers",
2051                            "passwords.passwordpolicytoolkit.validator.charset.numbers"
2052                    },
2053                    new String[] {
2054                            "passwords.passwordpolicytoolkit.charset.symbols",
2055                            "passwords.passwordpolicytoolkit.validator.charset.symbols"
2056                    },
2057                    new String[] {
2058                            "passwords.passwordpolicytoolkit.charset.uppercase",
2059                            "passwords.passwordpolicytoolkit.validator.charset.uppercase"
2060                    },
2061                    new String[] {
2062                            "permissions.inline.sql.resource.block.query.threshhold",
2063                            "permissions.inline.sql.resource.block.query.threshold"
2064                    },
2065                    new String[] {
2066                            "portal.instance.http.port", "portal.instance.http.socket.address"
2067                    },
2068                    new String[] {
2069                            "portal.instance.https.port", "portal.instance.http.socket.address"
2070                    },
2071                    new String[] {
2072                            "referer.url.domains.allowed", "redirect.url.domains.allowed"
2073                    },
2074                    new String[] {"referer.url.ips.allowed", "redirect.url.ips.allowed"},
2075                    new String[] {
2076                            "referer.url.security.mode", "redirect.url.security.mode"
2077                    },
2078                    new String[] {
2079                            "tags.asset.increment.view.counter.enabled",
2080                            "asset.entry.increment.view.counter.enabled"
2081                    }
2082            };
2083    
2084            private static final String[][] _RENAMED_SYSTEM_KEYS = new String[][] {
2085                    new String[] {
2086                            "com.liferay.portal.kernel.util.StringBundler.unsafe.create." +
2087                                    "threshold",
2088                            "com.liferay.portal.kernel.util.StringBundler.threadlocal.buffer." +
2089                                    "limit"
2090                    }
2091            };
2092    
2093            private static final Log _log = LogFactoryUtil.getLog(
2094                    VerifyProperties.class);
2095    
2096    }