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.SystemProperties;
021    import com.liferay.portal.util.PropsUtil;
022    import com.liferay.portlet.documentlibrary.store.StoreFactory;
023    
024    import java.io.File;
025    import java.io.FileInputStream;
026    import java.io.FileNotFoundException;
027    import java.io.IOException;
028    import java.io.InputStream;
029    
030    import java.util.List;
031    import java.util.Properties;
032    
033    /**
034     * @author Brian Wing Shun Chan
035     */
036    public class VerifyProperties extends VerifyProcess {
037    
038            @Override
039            protected void doVerify() throws Exception {
040    
041                    // system.properties
042    
043                    for (String[] keys : _MIGRATED_SYSTEM_KEYS) {
044                            String oldKey = keys[0];
045                            String newKey = keys[1];
046    
047                            verifyMigratedSystemProperty(oldKey, newKey);
048                    }
049    
050                    for (String[] keys : _RENAMED_SYSTEM_KEYS) {
051                            String oldKey = keys[0];
052                            String newKey = keys[1];
053    
054                            verifyRenamedSystemProperty(oldKey, newKey);
055                    }
056    
057                    for (String key : _OBSOLETE_SYSTEM_KEYS) {
058                            verifyObsoleteSystemProperty(key);
059                    }
060    
061                    Properties systemProperties = SystemProperties.getProperties();
062    
063                    for (String[] keys : _MODULARIZED_SYSTEM_KEYS) {
064                            String oldKey = keys[0];
065                            String newKey = keys[1];
066                            String moduleName = keys[2];
067    
068                            verifyModularizedSystemProperty(
069                                    systemProperties, oldKey, newKey, moduleName);
070                    }
071    
072                    // portal.properties
073    
074                    Properties portalProperties = loadPortalProperties();
075    
076                    for (String[] keys : _MIGRATED_PORTAL_KEYS) {
077                            String oldKey = keys[0];
078                            String newKey = keys[1];
079    
080                            verifyMigratedPortalProperty(portalProperties, oldKey, newKey);
081                    }
082    
083                    for (String[] keys : _RENAMED_PORTAL_KEYS) {
084                            String oldKey = keys[0];
085                            String newKey = keys[1];
086    
087                            verifyRenamedPortalProperty(portalProperties, oldKey, newKey);
088                    }
089    
090                    for (String key : _OBSOLETE_PORTAL_KEYS) {
091                            verifyObsoletePortalProperty(portalProperties, key);
092                    }
093    
094                    for (String[] keys : _MODULARIZED_PORTAL_KEYS) {
095                            String oldKey = keys[0];
096                            String newKey = keys[1];
097                            String moduleName = keys[2];
098    
099                            verifyModularizedPortalProperty(
100                                    portalProperties, oldKey, newKey, moduleName);
101                    }
102    
103                    // Document library
104    
105                    StoreFactory storeFactory = StoreFactory.getInstance();
106    
107                    storeFactory.checkProperties();
108            }
109    
110            protected InputStream getPropertiesResourceAsStream(String resourceName)
111                    throws FileNotFoundException {
112    
113                    File propertyFile = new File(resourceName);
114    
115                    if (propertyFile.exists()) {
116                            return new FileInputStream(propertyFile);
117                    }
118    
119                    ClassLoader classLoader = VerifyProperties.class.getClassLoader();
120    
121                    return classLoader.getResourceAsStream(resourceName);
122            }
123    
124            protected Properties loadPortalProperties() {
125                    Properties properties = new Properties();
126    
127                    List<String> propertiesResourceNames = ListUtil.fromArray(
128                            PropsUtil.getArray("include-and-override"));
129    
130                    propertiesResourceNames.add(0, "portal.properties");
131    
132                    for (String propertyResourceName : propertiesResourceNames) {
133                            try (InputStream inputStream = getPropertiesResourceAsStream(
134                                            propertyResourceName)) {
135    
136                                    if (inputStream != null) {
137                                            properties.load(inputStream);
138                                    }
139                            }
140                            catch (IOException ioe) {
141                                    _log.error(
142                                            "Unable to load property " + propertyResourceName, ioe);
143                            }
144                    }
145    
146                    return properties;
147            }
148    
149            protected void verifyMigratedPortalProperty(
150                            Properties portalProperties, String oldKey, String newKey)
151                    throws Exception {
152    
153                    if (portalProperties.containsKey(oldKey)) {
154                            _log.error(
155                                    "Portal property \"" + oldKey +
156                                            "\" was migrated to the system property \"" + newKey +
157                                                    "\"");
158                    }
159            }
160    
161            protected void verifyMigratedSystemProperty(String oldKey, String newKey)
162                    throws Exception {
163    
164                    String value = SystemProperties.get(oldKey);
165    
166                    if (value != null) {
167                            _log.error(
168                                    "System property \"" + oldKey +
169                                            "\" was migrated to the portal property \"" + newKey +
170                                                    "\"");
171                    }
172            }
173    
174            protected void verifyModularizedPortalProperty(
175                            Properties portalProperties, String oldKey, String newKey,
176                            String moduleName)
177                    throws Exception {
178    
179                    if (portalProperties.containsKey(oldKey)) {
180                            _log.error(
181                                    "Portal property \"" + oldKey + "\" was modularized to " +
182                                            moduleName + " as \"" + newKey + "\"");
183                    }
184            }
185    
186            protected void verifyModularizedSystemProperty(
187                            Properties systemProperties, String oldKey, String newKey,
188                            String moduleName)
189                    throws Exception {
190    
191                    if (systemProperties.containsKey(oldKey)) {
192                            _log.error(
193                                    "System property \"" + oldKey + "\" was modularized to " +
194                                            moduleName + " as \"" + newKey + "\"");
195                    }
196            }
197    
198            protected void verifyObsoletePortalProperty(
199                            Properties portalProperties, String key)
200                    throws Exception {
201    
202                    if (portalProperties.containsKey(key)) {
203                            _log.error("Portal property \"" + key + "\" is obsolete");
204                    }
205            }
206    
207            protected void verifyObsoleteSystemProperty(String key) throws Exception {
208                    String value = SystemProperties.get(key);
209    
210                    if (value != null) {
211                            _log.error("System property \"" + key + "\" is obsolete");
212                    }
213            }
214    
215            protected void verifyRenamedPortalProperty(
216                            Properties portalProperties, String oldKey, String newKey)
217                    throws Exception {
218    
219                    if (portalProperties.containsKey(oldKey)) {
220                            _log.error(
221                                    "Portal property \"" + oldKey + "\" was renamed to \"" +
222                                            newKey + "\"");
223                    }
224            }
225    
226            protected void verifyRenamedSystemProperty(String oldKey, String newKey)
227                    throws Exception {
228    
229                    String value = SystemProperties.get(oldKey);
230    
231                    if (value != null) {
232                            _log.error(
233                                    "System property \"" + oldKey + "\" was renamed to \"" +
234                                            newKey + "\"");
235                    }
236            }
237    
238            private static final String[][] _MIGRATED_PORTAL_KEYS = new String[][] {
239                    new String[] {
240                            "cookie.http.only.names.excludes", "cookie.http.only.names.excludes"
241                    },
242                    new String[] {
243                            "finalize.manager.thread.enabled",
244                            "com.liferay.portal.kernel.memory.FinalizeManager.thread.enabled"
245                    },
246                    new String[] {
247                            "http.header.secure.x.content.type.options",
248                            "http.header.secure.x.content.type.options"
249                    },
250                    new String[] {
251                            "http.header.secure.x.content.type.options.urls.excludes",
252                            "http.header.secure.x.content.type.options.urls.excludes"
253                    },
254                    new String[] {
255                            "http.header.secure.x.frame.options",
256                            "http.header.secure.x.frame.options"
257                    },
258                    new String[] {
259                            "http.header.secure.x.frame.options.255",
260                            "http.header.secure.x.frame.options.255"
261                    },
262                    new String[] {
263                            "http.header.secure.x.xss.protection",
264                            "http.header.secure.x.xss.protection"
265                    }
266            };
267    
268            private static final String[][] _MIGRATED_SYSTEM_KEYS = new String[][] {
269                    new String[] {
270                            "com.liferay.filters.compression.CompressionFilter",
271                            "com.liferay.portal.servlet.filters.gzip.GZipFilter"
272                    },
273                    new String[] {
274                            "com.liferay.filters.strip.StripFilter",
275                            "com.liferay.portal.servlet.filters.strip.StripFilter"
276                    },
277                    new String[] {
278                            "com.liferay.util.Http.max.connections.per.host",
279                            "com.liferay.portal.util.HttpImpl.max.connections.per.host"
280                    },
281                    new String[] {
282                            "com.liferay.util.Http.max.total.connections",
283                            "com.liferay.portal.util.HttpImpl.max.total.connections"
284                    },
285                    new String[] {
286                            "com.liferay.util.Http.proxy.auth.type",
287                            "com.liferay.portal.util.HttpImpl.proxy.auth.type"
288                    },
289                    new String[] {
290                            "com.liferay.util.Http.proxy.ntlm.domain",
291                            "com.liferay.portal.util.HttpImpl.proxy.ntlm.domain"
292                    },
293                    new String[] {
294                            "com.liferay.util.Http.proxy.ntlm.host",
295                            "com.liferay.portal.util.HttpImpl.proxy.ntlm.host"
296                    },
297                    new String[] {
298                            "com.liferay.util.Http.proxy.password",
299                            "com.liferay.portal.util.HttpImpl.proxy.password"
300                    },
301                    new String[] {
302                            "com.liferay.util.Http.proxy.username",
303                            "com.liferay.portal.util.HttpImpl.proxy.username"
304                    },
305                    new String[] {
306                            "com.liferay.util.Http.timeout",
307                            "com.liferay.portal.util.HttpImpl.timeout"
308                    },
309                    new String[] {
310                            "com.liferay.util.format.PhoneNumberFormat",
311                            "phone.number.format.impl"
312                    },
313                    new String[] {
314                            "com.liferay.util.servlet.UploadServletRequest.max.size",
315                            "com.liferay.portal.upload.UploadServletRequestImpl.max.size"
316                    },
317                    new String[] {
318                            "com.liferay.util.servlet.UploadServletRequest.temp.dir",
319                            "com.liferay.portal.upload.UploadServletRequestImpl.temp.dir"
320                    },
321                    new String[] {
322                            "com.liferay.util.servlet.fileupload.LiferayFileItem." +
323                                    "threshold.size",
324                            "com.liferay.portal.upload.LiferayFileItem.threshold.size"
325                    },
326                    new String[] {
327                            "com.liferay.util.servlet.fileupload.LiferayInputStream." +
328                                    "threshold.size",
329                            "com.liferay.portal.upload.LiferayInputStream.threshold.size"
330                    }
331            };
332    
333            private static final String[][] _MODULARIZED_PORTAL_KEYS = {
334    
335                    // Asset
336    
337                    new String[] {
338                            "asset.browser.search.with.database", "search.with.database",
339                            "com.liferay.asset.browser.web"
340                    },
341                    new String[] {
342                            "asset.categories.navigation.display.templates.config",
343                            "display.templates.config",
344                            "com.liferay.asset.categories.navigation.web"
345                    },
346                    new String[] {
347                            "asset.publisher.check.interval", "check.interval",
348                            "com.liferay.asset.publisher.web"
349                    },
350                    new String[] {
351                            "asset.publisher.email.from.address", "email.from.address",
352                            "com.liferay.asset.publisher.web"
353                    },
354                    new String[] {
355                            "asset.publisher.email.from.name", "email.from.name",
356                            "com.liferay.asset.publisher.web"
357                    },
358                    new String[] {
359                            "asset.publisher.email.asset.entry.added.enabled",
360                            "email.asset.entry.added.enabled", "com.liferay.asset.publisher.web"
361                    },
362                    new String[] {
363                            "asset.publisher.email.asset.entry.added.subject",
364                            "email.asset.entry.added.subject", "com.liferay.asset.publisher.web"
365                    },
366                    new String[] {
367                            "asset.publisher.email.asset.entry.added.body",
368                            "email.asset.entry.added.body", "com.liferay.asset.publisher.web"
369                    },
370                    new String[] {
371                            "asset.publisher.display.style.default", "display.style.default",
372                            "com.liferay.asset.publisher.web"
373                    },
374                    new String[] {
375                            "asset.publisher.display.styles", "display.styles",
376                            "com.liferay.asset.publisher.web"
377                    },
378                    new String[] {
379                            "asset.publisher.display.templates.config",
380                            "display.templates.config", "com.liferay.asset.publisher.web"
381                    },
382                    new String[] {
383                            "asset.publisher.dynamic.subscription.limit",
384                            "dynamic.subscription.limit", "com.liferay.asset.publisher.web"
385                    },
386                    new String[] {
387                            "asset.publisher.permission.checking.configurable",
388                            "permission.checking.configurable",
389                            "com.liferay.asset.publisher.web"
390                    },
391                    new String[] {
392                            "asset.publisher.search.with.index", "search.with.index",
393                            "com.liferay.asset.publisher.web"
394                    },
395                    new String[] {
396                            "asset.tags.navigation.display.templates.config",
397                            "display.templates.config", "com.liferay.asset.tags.navigation.web"
398                    },
399    
400                    // Authentication Verifier
401    
402                    new String[] {
403                            "auth.verifier.BasicAuthHeaderAutoLogin.basic_auth",
404                            "auth.verifier.BasicAuthHeaderAuthVerifier.basic_auth",
405                            "com.liferay.portal.security.auth.verifier"
406                    },
407                    new String[] {
408                            "auth.verifier.BasicAuthHeaderAutoLogin.hosts.allowed",
409                            "auth.verifier.BasicAuthHeaderAuthVerifier.hosts.allowed",
410                            "com.liferay.portal.security.auth.verifier"
411                    },
412                    new String[] {
413                            "auth.verifier.BasicAuthHeaderAutoLogin.urls.excludes",
414                            "auth.verifier.BasicAuthHeaderAuthVerifier.urls.excludes",
415                            "com.liferay.portal.security.auth.verifier"
416                    },
417                    new String[] {
418                            "auth.verifier.BasicAuthHeaderAutoLogin.urls.includes",
419                            "auth.verifier.BasicAuthHeaderAuthVerifier.urls.includes",
420                            "com.liferay.portal.security.auth.verifier"
421                    },
422    
423                    new String[] {
424                            "auth.verifier.DigestAuthenticationAuthVerifier.digest_auth",
425                            "auth.verifier.DigestAuthenticationAuthVerifier.digest_auth",
426                            "com.liferay.portal.security.auth.verifier"
427                    },
428                    new String[] {
429                            "auth.verifier.DigestAuthenticationAuthVerifier.hosts.allowed",
430                            "auth.verifier.DigestAuthenticationAuthVerifier.hosts.allowed",
431                            "com.liferay.portal.security.auth.verifier"
432                    },
433                    new String[] {
434                            "auth.verifier.DigestAuthenticationAuthVerifier.urls.excludes",
435                            "auth.verifier.DigestAuthenticationAuthVerifier.urls.excludes",
436                            "com.liferay.portal.security.auth.verifier"
437                    },
438                    new String[] {
439                            "auth.verifier.DigestAuthenticationAuthVerifier.urls.includes",
440                            "auth.verifier.DigestAuthenticationAuthVerifier.urls.includes",
441                            "com.liferay.portal.security.auth.verifier"
442                    },
443    
444                    new String[] {
445                            "auth.verifier.ParameterAutoLogin.hosts.allowed",
446                            "auth.verifier.RequestParameterAuthVerifier.hosts.allowed",
447                            "com.liferay.portal.security.auth.verifier"
448                    },
449                    new String[] {
450                            "auth.verifier.ParameterAutoLogin.urls.excludes",
451                            "auth.verifier.RequestParameterAuthVerifier.urls.excludes",
452                            "com.liferay.portal.security.auth.verifier"
453                    },
454                    new String[] {
455                            "auth.verifier.ParameterAutoLogin.urls.includes",
456                            "auth.verifier.RequestParameterAuthVerifier.urls.includes",
457                            "com.liferay.portal.security.auth.verifier"
458                    },
459    
460                    new String[] {
461                            "auth.verifier.PortalSessionAuthVerifier.hosts.allowed",
462                            "auth.verifier.PortalSessionAuthVerifier.hosts.allowed",
463                            "com.liferay.portal.security.auth.verifier"
464                    },
465                    new String[] {
466                            "auth.verifier.PortalSessionAuthVerifier.urls.excludes",
467                            "auth.verifier.PortalSessionAuthVerifier.urls.excludes",
468                            "com.liferay.portal.security.auth.verifier"
469                    },
470                    new String[] {
471                            "auth.verifier.PortalSessionAuthVerifier.urls.includes",
472                            "auth.verifier.PortalSessionAuthVerifier.urls.includes",
473                            "com.liferay.portal.security.auth.verifier"
474                    },
475    
476                    new String[] {
477                            "auth.verifier.TunnelingServletAuthVerifier.hosts.allowed",
478                            "auth.verifier.TunnelAuthVerifier.hosts.allowed",
479                            "com.liferay.portal.security.auth.verifier"
480                    },
481                    new String[] {
482                            "auth.verifier.TunnelingServletAuthVerifier.urls.excludes",
483                            "auth.verifier.TunnelAuthVerifier.urls.excludes",
484                            "com.liferay.portal.security.auth.verifier"
485                    },
486                    new String[] {
487                            "auth.verifier.TunnelingServletAuthVerifier.urls.includes",
488                            "auth.verifier.TunnelAuthVerifier.urls.includes",
489                            "com.liferay.portal.security.auth.verifier"
490                    },
491    
492                    // Blogs
493    
494                    new String[] {
495                            "blogs.display.templates.config", "display.templates.config",
496                            "com.liferay.blogs.web"
497                    },
498    
499                    new String[] {
500                            "blogs.entry.check.interval", "entry.check.interval",
501                            "com.liferay.blogs.web"
502                    },
503    
504                    new String[] {
505                            "blogs.linkback.job.interval", "linkback.job.interval",
506                            "com.liferay.blogs.web"
507                    },
508    
509                    // Bookmarks
510    
511                    new String[] {
512                            "bookmarks.email.entry.added.body", "email.entry.added.body",
513                            "com.liferay.bookmarks.service"
514                    },
515                    new String[] {
516                            "bookmarks.email.entry.added.enabled", "email.entry.added.enabled",
517                            "com.liferay.bookmarks.service"
518                    },
519                    new String[] {
520                            "bookmarks.email.entry.added.subject", "email.entry.added.subject",
521                            "com.liferay.bookmarks.service"
522                    },
523                    new String[] {
524                            "bookmarks.email.entry.updated.body", "email.entry.updated.body",
525                            "com.liferay.bookmarks.service"
526                    },
527                    new String[] {
528                            "bookmarks.email.entry.updated.enabled",
529                            "email.entry.updated.enabled", "com.liferay.bookmarks.service"
530                    },
531                    new String[] {
532                            "bookmarks.email.entry.updated.subject",
533                            "email.entry.updated.subject", "com.liferay.bookmarks.service"
534                    },
535                    new String[] {
536                            "bookmarks.email.from.address", "email.from.address",
537                            "com.liferay.bookmarks.service"
538                    },
539                    new String[] {
540                            "bookmarks.email.from.name", "email.from.name",
541                            "com.liferay.bookmarks.service"
542                    },
543                    new String[] {
544                            "bookmarks.entry.columns", "entry.columns",
545                            "com.liferay.bookmarks.service"
546                    },
547                    new String[] {
548                            "bookmarks.folder.columns", "folder.columns",
549                            "com.liferay.bookmarks.service"
550                    },
551                    new String[] {
552                            "bookmarks.folders.search.visible", "folders.search.visible",
553                            "com.liferay.bookmarks.service"
554                    },
555                    new String[] {
556                            "bookmarks.related.assets.enabled", "related.assets.enabled",
557                            "com.liferay.bookmarks.service"
558                    },
559                    new String[] {
560                            "bookmarks.subfolders.visible", "subfolders.visible",
561                            "com.liferay.bookmarks.service"
562                    },
563    
564                    // Breadcrumb
565    
566                    new String[] {
567                            "breadcrumb.display.style.default", "ddm.template.key.default",
568                            "com.liferay.site.navigation.breadcrumb.web"
569                    },
570                    new String[] {
571                            "breadcrumb.display.templates.config", "display.templates.config",
572                            "com.liferay.site.navigation.breadcrumb.web"
573                    },
574                    new String[] {
575                            "breadcrumb.show.guest.group", "show.guest.group",
576                            "com.liferay.site.navigation.breadcrumb.web"
577                    },
578                    new String[] {
579                            "breadcrumb.show.parent.groups", "show.parent.groups",
580                            "com.liferay.site.navigation.breadcrumb.web"
581                    },
582    
583                    // CAS
584    
585                    new String[] {
586                            "cas.auth.enabled", "enabled", "com.liferay.portal.security.sso.cas"
587                    },
588                    new String[] {
589                            "cas.import.from.ldap", "import.from.ldap",
590                            "com.liferay.portal.security.sso.cas"
591                    },
592                    new String[] {
593                            "cas.login.url", "login.url", "com.liferay.portal.security.sso.cas"
594                    },
595                    new String[] {
596                            "cas.logout.on.session.expiration", "logout.on.session.expiration",
597                            "com.liferay.portal.security.sso.cas"
598                    },
599                    new String[] {
600                            "cas.logout.url", "logout.url",
601                            "com.liferay.portal.security.sso.cas"
602                    },
603                    new String[] {
604                            "cas.no.such.user.redirect.url", "no.such.user.redirect.url",
605                            "com.liferay.portal.security.sso.cas"
606                    },
607                    new String[] {
608                            "cas.server.name", "server.name",
609                            "com.liferay.portal.security.sso.cas"
610                    },
611                    new String[] {
612                            "cas.server.url", "server.url",
613                            "com.liferay.portal.security.sso.cas"
614                    },
615                    new String[] {
616                            "cas.service.url", "service.url",
617                            "com.liferay.portal.security.sso.cas"
618                    },
619    
620                    // Cluster Link
621    
622                    new String[] {
623                            "cluster.link.debug.enabled", "cluster.link.debug.enabled",
624                            "com.liferay.portal.cluster"
625                    },
626    
627                    // Currency Converter
628    
629                    new String[] {
630                            "currency.converter.symbols", "symbols",
631                            "com.liferay.currency.converter.web"
632                    },
633    
634                    // Document Library
635    
636                    new String[] {
637                            "dl.display.templates.config", "display.templates.config",
638                            "com.liferay.document.library.web"
639                    },
640                    new String[] {
641                            "dl.repository.cmis.delete.depth", "delete.depth",
642                            "com.liferay.document.library.repository.cmis"
643                    },
644                    new String[] {
645                            "dl.store.advanced.file.system.root.dir", "root.dir",
646                            "com.liferay.portal.store.filesystem"
647                    },
648                    new String[] {
649                            "dl.store.cmis.credentials.username", "credentials.username",
650                            "com.liferay.portal.store.cmis"
651                    },
652                    new String[] {
653                            "dl.store.cmis.credentials.password", "credentials.password",
654                            "com.liferay.portal.store.cmis"
655                    },
656                    new String[] {
657                            "dl.store.cmis.repository.url", "repository.url",
658                            "com.liferay.portal.store.cmis"
659                    },
660                    new String[] {
661                            "dl.store.cmis.system.root.dir", "system.root.dir",
662                            "com.liferay.portal.store.cmis"
663                    },
664                    new String[] {
665                            "dl.store.file.system.root.dir", "root.dir",
666                            "com.liferay.portal.store.filesystem"
667                    },
668                    new String[] {
669                            "dl.store.jcr.fetch.delay", "fetch.delay",
670                            "com.liferay.portal.store.jcr"
671                    },
672                    new String[] {
673                            "dl.store.jcr.fetch.max.failures", "fetch.max.failures",
674                            "com.liferay.portal.store.jcr"
675                    },
676                    new String[] {
677                            "dl.store.jcr.move.version.labels", "move.version.labels",
678                            "com.liferay.portal.store.jcr"
679                    },
680                    new String[] {
681                            "dl.store.s3.access.key", "access.key",
682                            "com.liferay.portal.store.s3"
683                    },
684                    new String[] {
685                            "dl.store.s3.bucket.name", "bucket.name",
686                            "com.liferay.portal.store.s3"
687                    },
688                    new String[] {
689                            "dl.store.s3.jets3t[httpclient.max-connections]",
690                            "http.client.max.connections", "com.liferay.portal.store.s3"
691                    },
692                    new String[] {
693                            "dl.store.s3.jets3t[s3service.default-bucket-location]",
694                            "s3service.default.bucket.location", "com.liferay.portal.store.s3"
695                    },
696                    new String[] {
697                            "dl.store.s3.jets3t[s3service.default-storage-class]",
698                            "s3service.default.storage.class", "com.liferay.portal.store.s3"
699                    },
700                    new String[] {
701                            "dl.store.s3.jets3t[s3service.s3-endpoint]",
702                            "s3service.s3.endpoint", "com.liferay.portal.store.s3"
703                    },
704                    new String[] {
705                            "dl.store.s3.secret.key", "secret.key",
706                            "com.liferay.portal.store.s3"
707                    },
708                    new String[] {
709                            "dl.store.s3.temp.dir.clean.up.expunge",
710                            "temp.dir.clean.up.expunge", "com.liferay.portal.store.s3"
711                    },
712                    new String[] {
713                            "dl.store.s3.temp.dir.clean.up.frequency",
714                            "temp.dir.clean.up.frequency", "com.liferay.portal.store.s3"
715                    },
716                    new String[] {
717                            "dl.temporary.file.entries.check.interval",
718                            "temporary.file.entries.check.interval",
719                            "com.liferay.document.library.web"
720                    },
721    
722                    // Dynamic Data Lists
723    
724                    new String[] {
725                            "dynamic.data.lists.error.template",
726                            "dynamic.data.lists.error.template",
727                            "com.liferay.dynamic.data.lists.web"
728                    },
729                    new String[] {
730                            "dynamic.data.lists.storage.type",
731                            "dynamic.data.lists.storage.type",
732                            "com.liferay.dynamic.data.lists.web"
733                    },
734    
735                    // Dynamic Data Mapping
736    
737                    new String[] {
738                            "dynamic.data.mapping.image.extensions",
739                            "dynamic.data.mapping.image.extensions",
740                            "com.liferay.dynamic.data.mapping.service"
741                    },
742                    new String[] {
743                            "dynamic.data.mapping.image.small.max.size",
744                            "dynamic.data.mapping.image.small.max.size",
745                            "com.liferay.dynamic.data.mapping.service"
746                    },
747                    new String[] {
748                            "dynamic.data.mapping.structure.force.autogenerate.key",
749                            "dynamic.data.mapping.structure.force.autogenerate.key",
750                            "com.liferay.dynamic.data.mapping.web"
751                    },
752                    new String[] {
753                            "dynamic.data.mapping.template.force.autogenerate.key",
754                            "dynamic.data.mapping.template.force.autogenerate.key",
755                            "com.liferay.dynamic.data.mapping.web"
756                    },
757                    new String[] {
758                            "dynamic.data.mapping.template.language.default",
759                            "dynamic.data.mapping.template.language.default",
760                            "com.liferay.dynamic.data.mapping.web"
761                    },
762                    new String[] {
763                            "dynamic.data.mapping.template.language.content",
764                            "dynamic.data.mapping.template.language.content",
765                            "com.liferay.dynamic.data.mapping.web"
766                    },
767    
768                    // Facebook Connect
769    
770                    new String[] {
771                            "facebook.connect.auth.enabled", "enabled",
772                            "com.liferay.portal.security.sso.facebook.connect"
773                    },
774                    new String[] {
775                            "facebook.connect.app.id", "app.id",
776                            "com.liferay.portal.security.sso.facebook.connect"
777                    },
778                    new String[] {
779                            "facebook.connect.app.secret", "app.secret",
780                            "com.liferay.portal.security.sso.facebook.connect"
781                    },
782                    new String[] {
783                            "facebook.connect.graph.url", "graph.url",
784                            "com.liferay.portal.security.sso.facebook.connect"
785                    },
786                    new String[] {
787                            "facebook.connect.oauth.auth.url", "oauth.auth.url",
788                            "com.liferay.portal.security.sso.facebook.connect"
789                    },
790                    new String[] {
791                            "facebook.connect.oauth.redirect.url", "oauth.redirect.url",
792                            "com.liferay.portal.security.sso.facebook.connect"
793                    },
794                    new String[] {
795                            "facebook.connect.oauth.token.url", "oauth.token.url",
796                            "com.liferay.portal.security.sso.facebook.connect"
797                    },
798                    new String[] {
799                            "facebook.connect.verified.account.required",
800                            "verified.account.required",
801                            "com.liferay.portal.security.sso.facebook.connect"
802                    },
803    
804                    // Flags
805    
806                    new String[] {"flags.email.body", "email.body", "com.liferay.flags"},
807                    new String[] {
808                            "flags.email.from.address", "email.from.address",
809                            "com.liferay.flags"
810                    },
811                    new String[] {
812                            "flags.email.from.name", "email.from.name", "com.liferay.flags"
813                    },
814                    new String[] {
815                            "flags.email.subject", "email.subject", "com.liferay.flags"
816                    },
817                    new String[] {
818                            "flags.guest.users.enabled", "guest.users.enabled",
819                            "com.liferay.flags"
820                    },
821                    new String[] {"flags.reasons", "reasons", "com.liferay.flags"},
822    
823                    // FreeMarker Engine
824    
825                    new String[] {
826                            "freemarker.engine.localized.lookup", "localized.lookup",
827                            "com.liferay.portal.template.freemarker"
828                    },
829                    new String[] {
830                            "freemarker.engine.macro.library", "macro.library",
831                            "com.liferay.portal.template.freemarker"
832                    },
833                    new String[] {
834                            "freemarker.engine.resource.modification.check.interval",
835                            "resource.modification.check",
836                            "com.liferay.portal.template.freemarker"
837                    },
838                    new String[] {
839                            "freemarker.engine.restricted.classes", "restricted.classes",
840                            "com.liferay.portal.template.freemarker"
841                    },
842                    new String[] {
843                            "freemarker.engine.restricted.packages", "restricted.packages",
844                            "com.liferay.portal.template.freemarker"
845                    },
846                    new String[] {
847                            "freemarker.engine.template.exception.handler",
848                            "template.exception.handler",
849                            "com.liferay.portal.template.freemarker"
850                    },
851                    new String[] {
852                            "freemarker.engine.template.parsers", "template.parsers",
853                            "com.liferay.portal.template.freemarker"
854                    },
855                    new String[] {
856                            "journal.template.freemarker.restricted.variables",
857                            "restricted.variables", "com.liferay.portal.template.freemarker"
858                    },
859    
860                    // IFrame
861    
862                    new String[] {"iframe.auth", "auth", "com.liferay.iframe.web"},
863                    new String[] {
864                            "iframe.auth-type", "auth.type", "com.liferay.iframe.web"
865                    },
866                    new String[] {
867                            "iframe.form-method", "form.method", "com.liferay.iframe.web"
868                    },
869                    new String[] {
870                            "iframe.hidden-variables", "hidden.variables",
871                            "com.liferay.iframe.web"
872                    },
873    
874                    // JCR
875    
876                    new String[] {
877                            "jcr.initialize.on.startup", "initialize.on.startup",
878                            "com.liferay.portal.store.jcr"
879                    },
880                    new String[] {
881                            "jcr.jackrabbit.config.file.path", "jackrabbit.config.file.path",
882                            "com.liferay.portal.store.jcr"
883                    },
884                    new String[] {
885                            "jcr.jackrabbit.credentials.password",
886                            "jackrabbit.credentials.password", "com.liferay.portal.store.jcr"
887                    },
888                    new String[] {
889                            "jcr.jackrabbit.credentials.username",
890                            "jackrabbit.credentials.username", "com.liferay.portal.store.jcr"
891                    },
892                    new String[] {
893                            "jcr.jackrabbit.repository.home", "repository.home",
894                            "com.liferay.portal.store.jcr"
895                    },
896                    new String[] {
897                            "jcr.jackrabbit.repository.root", "repository.root",
898                            "com.liferay.portal.store.jcr"
899                    },
900                    new String[] {
901                            "jcr.node.documentlibrary", "node.documentlibrary",
902                            "com.liferay.portal.store.jcr"
903                    },
904                    new String[] {
905                            "jcr.workspace.name", "workspace.name",
906                            "com.liferay.portal.store.jcr"
907                    },
908                    new String[] {
909                            "jcr.wrap.session", "wrap.session", "com.liferay.portal.store.jcr"
910                    },
911    
912                    // Journal
913    
914                    new String[] {
915                            "journal.article.check.interval", "check.interval",
916                            "com.liferay.journal.web"
917                    },
918                    new String[] {
919                            "journal.article.comments.enabled",
920                            "journal.article.comments.enabled", "com.liferay.journal.service"
921                    },
922                    new String[] {
923                            "journal.article.custom.tokens", "journal.article.custom.tokens",
924                            "com.liferay.journal.service"
925                    },
926                    new String[] {
927                            "journal.article.database.keyword.search.content",
928                            "journal.article.database.keyword.search.content",
929                            "com.liferay.journal.service"
930                    },
931                    new String[] {
932                            "journal.article.expire.all.versions",
933                            "journal.article.expire.all.versions", "com.liferay.journal.service"
934                    },
935                    new String[] {
936                            "journal.article.force.autogenerate.id",
937                            "journal.article.force.autogenerate.id", "com.liferay.journal.web"
938                    },
939                    new String[] {
940                            "journal.article.form.add", "journal.article.form.add",
941                            "com.liferay.journal.web"
942                    },
943                    new String[] {
944                            "journal.article.form.default.values",
945                            "journal.article.form.default.values", "com.liferay.journal.web"
946                    },
947                    new String[] {
948                            "journal.article.form.update", "journal.article.form.update",
949                            "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",
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.administrative.links.show.in.pop.up",
1743                    "dynamic.data.lists.record.set.force.autogenerate.key",
1744                    "dynamic.data.lists.template.language.parser[ftl]",
1745                    "dynamic.data.lists.template.language.parser[vm]",
1746                    "dynamic.data.lists.template.language.parser[xsl]",
1747                    "dynamic.data.mapping.structure.private.field.names",
1748                    "dynamic.data.mapping.structure.private.field.datatype[_fieldsDisplay]",
1749                    "dynamic.data.mapping.structure.private.field.repeatable[" +
1750                            "_fieldsDisplay]",
1751                    "dynamic.data.mapping.template.language.types",
1752                    "editor.ckeditor.version", "editor.inline.editing.enabled",
1753                    "editor.wysiwyg.portal-web.docroot.html.portlet.asset_publisher." +
1754                            "configuration.jsp",
1755                    "editor.wysiwyg.portal-web.docroot.html.portlet.blogs.configuration." +
1756                            "jsp",
1757                    "editor.wysiwyg.portal-web.docroot.html.portlet.bookmarks." +
1758                            "configuration.jsp",
1759                    "editor.wysiwyg.portal-web.docroot.html.portlet.document_library." +
1760                            "editor.wysiwyg.portal-web.docroot.html.portlet.invitation." +
1761                                    "configuration.jsp",
1762                    "editor.wysiwyg.portal-web.docroot.html.portlet.journal." +
1763                            "configuration.jsp",
1764                    "editor.wysiwyg.portal-web.docroot.html.portlet.login.configuration." +
1765                            "jsp",
1766                    "editor.wysiwyg.portal-web.docroot.html.portlet.message_boards." +
1767                            "configuration.jsp",
1768                    "editor.wysiwyg.portal-web.docroot.html.portlet.portal_settings." +
1769                            "email_notifications.jsp",
1770                    "ehcache.bootstrap.cache.loader.factory",
1771                    "ehcache.cache.event.listener.factory",
1772                    "ehcache.cache.manager.peer.listener.factory",
1773                    "ehcache.cache.manager.peer.provider.factory",
1774                    "ehcache.cache.manager.statistics.thread.pool.size",
1775                    "ehcache.multi.vm.config.location.peerProviderProperties",
1776                    "ehcache.statistics.enabled",
1777                    "hot.deploy.hook.custom.jsp.verification.enabled",
1778                    "hibernate.cache.region.factory_class",
1779                    "hibernate.cache.use_minimal_puts", "hibernate.cache.use_query_cache",
1780                    "hibernate.cache.use_second_level_cache",
1781                    "hibernate.cache.use_structured_entries", "icq.jar", "icq.login",
1782                    "icq.password", "index.filter.search.limit", "index.read.only",
1783                    "invitation.email.max.recipients", "invitation.email.message.body",
1784                    "invitation.email.message.subject", "javax.persistence.validation.mode",
1785                    "jbi.workflow.url", "json.deserializer.strict.mode",
1786                    "journal.article.form.translate", "journal.article.types",
1787                    "journal.articles.page.delta.values",
1788                    "journal.template.language.parser[css]",
1789                    "journal.template.language.parser[ftl]",
1790                    "journal.template.language.parser[vm]",
1791                    "journal.template.language.parser[xsl]",
1792                    "journal.template.language.types", "jpa.configs",
1793                    "jpa.database.platform", "jpa.database.type", "jpa.load.time.weaver",
1794                    "jpa.provider", "jpa.provider.property.eclipselink.allow-zero-id",
1795                    "jpa.provider.property.eclipselink.logging.level",
1796                    "jpa.provider.property.eclipselink.logging.timestamp",
1797                    "language.display.style.options", "layout.edit.page[control_panel]",
1798                    "layout.first.pageable[control_panel]", "layout.form.add",
1799                    "layout.form.update", "layout.parentable[control_panel]",
1800                    "layout.reset.portlet.ids", "layout.set.form.update", "layout.types",
1801                    "layout.url[control_panel]", "layout.url.friendliable[control_panel]",
1802                    "layout.view.page[control_panel]", "lucene.analyzer",
1803                    "lucene.cluster.index.loading.sync.timeout", "lucene.file.extractor",
1804                    "lucene.file.extractor.regexp.strip", "lucene.replicate.write",
1805                    "lucene.store.jdbc.auto.clean.up",
1806                    "lucene.store.jdbc.auto.clean.up.enabled",
1807                    "lucene.store.jdbc.auto.clean.up.interval",
1808                    "lucene.store.jdbc.dialect.db2", "lucene.store.jdbc.dialect.derby",
1809                    "lucene.store.jdbc.dialect.hsqldb", "lucene.store.jdbc.dialect.jtds",
1810                    "lucene.store.jdbc.dialect.microsoft",
1811                    "lucene.store.jdbc.dialect.mysql", "lucene.store.jdbc.dialect.oracle",
1812                    "lucene.store.jdbc.dialect.postgresql", "mail.hook.cyrus.add.user",
1813                    "mail.hook.cyrus.delete.user", "mail.hook.cyrus.home",
1814                    "memory.cluster.scheduler.lock.cache.enabled",
1815                    "message.boards.email.message.added.signature",
1816                    "message.boards.email.message.updated.signature",
1817                    "message.boards.thread.locking.enabled",
1818                    "message.boards.thread.previous.and.next.navigation.enabled",
1819                    "message.boards.thread.views", "message.boards.thread.views.default",
1820                    "mobile.device.styling.wap.enabled", "msn.login", "msn.password",
1821                    "multicast.group.address[\"hibernate\"]",
1822                    "multicast.group.port[\"hibernate\"]",
1823                    "net.sf.ehcache.configurationResourceName",
1824                    "net.sf.ehcache.configurationResourceName.peerProviderProperties",
1825                    "organizations.form.add.identification", "organizations.form.add.main",
1826                    "organizations.form.add.miscellaneous",
1827                    "organizations.form.update.identification",
1828                    "organizations.form.update.main",
1829                    "organizations.form.update.miscellaneous",
1830                    "organizations.indexer.enabled", "portal.cache.manager.type.multi.vm",
1831                    "portal.cache.manager.type.single.vm", "portal.ctx",
1832                    "portal.security.manager.enable", "permissions.list.filter",
1833                    "permissions.thread.local.cache.max.size",
1834                    "permissions.user.check.algorithm", "persistence.provider",
1835                    "ratings.max.score", "ratings.min.score", "sandbox.deploy.dir",
1836                    "sandbox.deploy.enabled", "sandbox.deploy.interval",
1837                    "sandbox.deploy.listeners", "sc.image.max.size",
1838                    "sc.image.thumbnail.max.height", "sc.image.thumbnail.max.width",
1839                    "sc.product.comments.enabled", "scheduler.classes",
1840                    "schema.run.minimal", "search.container.page.iterator.page.values",
1841                    "service.builder.service.read.only.prefixes", "shard.available.names",
1842                    "shard.default.name", "shard.selector", "siteminder.auth.enabled",
1843                    "siteminder.import.from.ldap", "siteminder.user.header",
1844                    "sites.form.add.advanced", "sites.form.add.main",
1845                    "sites.form.add.miscellaneous", "sites.form.add.seo",
1846                    "sites.form.update.advanced", "sites.form.update.main",
1847                    "sites.form.update.miscellaneous", "sites.form.update.seo",
1848                    "staging.lock.enabled", "table.mapper.cacheless.mapping.table.names",
1849                    "tck.url", "user.groups.indexer.enabled",
1850                    "users.form.add.identification", "users.indexer.enabled",
1851                    "users.form.add.main", "users.form.add.miscellaneous",
1852                    "users.form.my.account.identification", "users.form.my.account.main",
1853                    "users.form.my.account.miscellaneous",
1854                    "users.form.update.identification", "users.form.update.main",
1855                    "users.form.update.miscellaneous", "vaadin.resources.path",
1856                    "vaadin.theme", "vaadin.widgetset", "webdav.storage.class",
1857                    "webdav.storage.show.edit.url", "webdav.storage.show.view.url",
1858                    "webdav.storage.tokens", "wiki.email.page.added.signature",
1859                    "wiki.email.page.updated.signature", "xss.allow", "ym.login",
1860                    "ym.password"
1861            };
1862    
1863            private static final String[] _OBSOLETE_SYSTEM_KEYS = new String[] {
1864                    "com.liferay.util.Http.proxy.host", "com.liferay.util.Http.proxy.port",
1865                    "com.liferay.util.XSSUtil.regexp.pattern"
1866            };
1867    
1868            private static final String[][] _RENAMED_PORTAL_KEYS = new String[][] {
1869                    new String[] {
1870                            "amazon.license.0", "amazon.access.key.id"
1871                    },
1872                    new String[] {"amazon.license.1", "amazon.access.key.id"},
1873                    new String[] {"amazon.license.2", "amazon.access.key.id"},
1874                    new String[] {"amazon.license.3", "amazon.access.key.id"},
1875                    new String[] {"cdn.host", "cdn.host.http"},
1876                    new String[] {
1877                            "cluster.executor.debug.enabled", "cluster.link.debug.enabled"
1878                    },
1879                    new String[] {
1880                            "com.liferay.portal.servlet.filters.compression.CompressionFilter",
1881                            "com.liferay.portal.servlet.filters.gzip.GZipFilter"
1882                    },
1883                    new String[] {
1884                            "default.guest.friendly.url",
1885                            "default.guest.public.layout.friendly.url"
1886                    },
1887                    new String[] {
1888                            "default.guest.layout.column", "default.guest.public.layout.column"
1889                    },
1890                    new String[] {
1891                            "default.guest.layout.name", "default.guest.public.layout.name"
1892                    },
1893                    new String[] {
1894                            "default.guest.layout.template.id",
1895                            "default.guest.public.layout.template.id"
1896                    },
1897                    new String[] {
1898                            "default.user.layout.column", "default.user.public.layout.column"
1899                    },
1900                    new String[] {
1901                            "default.user.layout.name", "default.user.public.layout.name"
1902                    },
1903                    new String[] {
1904                            "default.user.layout.template.id",
1905                            "default.user.public.layout.template.id"
1906                    },
1907                    new String[] {
1908                            "default.user.private.layout.lar",
1909                            "default.user.private.layouts.lar"
1910                    },
1911                    new String[] {
1912                            "default.user.public.layout.lar", "default.user.public.layouts.lar"
1913                    },
1914                    new String[] {
1915                            "dl.hook.cmis.credentials.password",
1916                            "dl.store.cmis.credentials.password"
1917                    },
1918                    new String[] {
1919                            "dl.hook.cmis.credentials.username",
1920                            "dl.store.cmis.credentials.username"
1921                    },
1922                    new String[] {
1923                            "dl.hook.cmis.repository.url", "dl.store.cmis.repository.url"
1924                    },
1925                    new String[] {
1926                            "dl.hook.cmis.system.root.dir", "dl.store.cmis.system.root.dir"
1927                    },
1928                    new String[] {
1929                            "dl.hook.file.system.root.dir", "dl.store.file.system.root.dir"
1930                    },
1931                    new String[] {"dl.hook.impl", "dl.store.impl"},
1932                    new String[] {"dl.hook.jcr.fetch.delay", "dl.store.jcr.fetch.delay"},
1933                    new String[] {
1934                            "dl.hook.jcr.fetch.max.failures", "dl.store.jcr.fetch.max.failures"
1935                    },
1936                    new String[] {
1937                            "dl.hook.jcr.move.version.labels",
1938                            "dl.store.jcr.move.version.labels"
1939                    },
1940                    new String[] {"dl.hook.s3.access.key", "dl.store.s3.access.key"},
1941                    new String[] {"dl.hook.s3.bucket.name", "dl.store.s3.bucket.name"},
1942                    new String[] {"dl.hook.s3.secret.key", "dl.store.s3.secret.key"},
1943                    new String[] {
1944                            "editor.wysiwyg.portal-web.docroot.html.portlet.calendar." +
1945                                    "edit_configuration.jsp",
1946                            "editor.wysiwyg.portal-web.docroot.html.portlet.calendar." +
1947                                    "configuration.jsp"
1948                    },
1949                    new String[] {
1950                            "editor.wysiwyg.portal-web.docroot.html.portlet.invitation." +
1951                                    "edit_configuration.jsp",
1952                            "editor.wysiwyg.portal-web.docroot.html.portlet.invitation." +
1953                                    "configuration.jsp"
1954                    },
1955                    new String[] {
1956                            "editor.wysiwyg.portal-web.docroot.html.portlet.journal." +
1957                                    "edit_configuration.jsp",
1958                            "editor.wysiwyg.portal-web.docroot.html.portlet.journal." +
1959                                    "configuration.jsp"
1960                    },
1961                    new String[] {
1962                            "editor.wysiwyg.portal-web.docroot.html.portlet.message_boards." +
1963                                    "edit_configuration.jsp",
1964                            "editor.wysiwyg.portal-web.docroot.html.portlet.message_boards." +
1965                                    "configuration.jsp"
1966                    },
1967                    new String[] {
1968                            "editor.wysiwyg.portal-web.docroot.html.portlet.shopping." +
1969                                    "edit_configuration.jsp",
1970                            "editor.wysiwyg.portal-web.docroot.html.portlet.shopping." +
1971                                    "configuration.jsp"
1972                    },
1973                    new String[] {
1974                            "field.editable.com.liferay.portal.kernel.model.User.emailAddress",
1975                            "field.editable.user.types"
1976                    },
1977                    new String[] {
1978                            "field.editable.com.liferay.portal.kernel.model.User.screenName",
1979                            "field.editable.user.types"
1980                    },
1981                    new String[] {"icon.menu.max.display.items", "menu.max.display.items"},
1982                    new String[] {
1983                            "journal.error.template.freemarker", "journal.error.template[ftl]"
1984                    },
1985                    new String[] {
1986                            "journal.error.template.velocity", "journal.error.template[vm]"
1987                    },
1988                    new String[] {
1989                            "journal.error.template.xsl", "journal.error.template[xsl]"
1990                    },
1991                    new String[] {
1992                            "journal.template.velocity.restricted.variables",
1993                            "velocity.engine.restricted.variables"
1994                    },
1995                    new String[] {
1996                            "passwords.passwordpolicytoolkit.charset.lowercase",
1997                            "passwords.passwordpolicytoolkit.validator.charset.lowercase"
1998                    },
1999                    new String[] {
2000                            "passwords.passwordpolicytoolkit.charset.numbers",
2001                            "passwords.passwordpolicytoolkit.validator.charset.numbers"
2002                    },
2003                    new String[] {
2004                            "passwords.passwordpolicytoolkit.charset.symbols",
2005                            "passwords.passwordpolicytoolkit.validator.charset.symbols"
2006                    },
2007                    new String[] {
2008                            "passwords.passwordpolicytoolkit.charset.uppercase",
2009                            "passwords.passwordpolicytoolkit.validator.charset.uppercase"
2010                    },
2011                    new String[] {
2012                            "permissions.inline.sql.resource.block.query.threshhold",
2013                            "permissions.inline.sql.resource.block.query.threshold"
2014                    },
2015                    new String[] {
2016                            "portal.instance.http.port", "portal.instance.http.socket.address"
2017                    },
2018                    new String[] {
2019                            "portal.instance.https.port", "portal.instance.http.socket.address"
2020                    },
2021                    new String[] {
2022                            "referer.url.domains.allowed", "redirect.url.domains.allowed"
2023                    },
2024                    new String[] {"referer.url.ips.allowed", "redirect.url.ips.allowed"},
2025                    new String[] {
2026                            "referer.url.security.mode", "redirect.url.security.mode"
2027                    },
2028                    new String[] {
2029                            "tags.asset.increment.view.counter.enabled",
2030                            "asset.entry.increment.view.counter.enabled"
2031                    }
2032            };
2033    
2034            private static final String[][] _RENAMED_SYSTEM_KEYS = new String[][] {
2035                    new String[] {
2036                            "com.liferay.portal.kernel.util.StringBundler.unsafe.create." +
2037                                    "threshold",
2038                            "com.liferay.portal.kernel.util.StringBundler.threadlocal.buffer." +
2039                                    "limit"
2040                    }
2041            };
2042    
2043            private static final Log _log = LogFactoryUtil.getLog(
2044                    VerifyProperties.class);
2045    
2046    }