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