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                    // FreeMarker Engine
805    
806                    new String[] {
807                            "freemarker.engine.localized.lookup", "localized.lookup",
808                            "com.liferay.portal.template.freemarker"
809                    },
810                    new String[] {
811                            "freemarker.engine.macro.library", "macro.library",
812                            "com.liferay.portal.template.freemarker"
813                    },
814                    new String[] {
815                            "freemarker.engine.resource.modification.check.interval",
816                            "resource.modification.check",
817                            "com.liferay.portal.template.freemarker"
818                    },
819                    new String[] {
820                            "freemarker.engine.restricted.classes", "restricted.classes",
821                            "com.liferay.portal.template.freemarker"
822                    },
823                    new String[] {
824                            "freemarker.engine.restricted.packages", "restricted.packages",
825                            "com.liferay.portal.template.freemarker"
826                    },
827                    new String[] {
828                            "freemarker.engine.template.exception.handler",
829                            "template.exception.handler",
830                            "com.liferay.portal.template.freemarker"
831                    },
832                    new String[] {
833                            "freemarker.engine.template.parsers", "template.parsers",
834                            "com.liferay.portal.template.freemarker"
835                    },
836                    new String[] {
837                            "journal.template.freemarker.restricted.variables",
838                            "restricted.variables", "com.liferay.portal.template.freemarker"
839                    },
840    
841                    // IFrame
842    
843                    new String[] {"iframe.auth", "auth", "com.liferay.iframe.web"},
844                    new String[] {
845                            "iframe.auth-type", "auth.type", "com.liferay.iframe.web"
846                    },
847                    new String[] {
848                            "iframe.form-method", "form.method", "com.liferay.iframe.web"
849                    },
850                    new String[] {
851                            "iframe.hidden-variables", "hidden.variables",
852                            "com.liferay.iframe.web"
853                    },
854    
855                    // JCR
856    
857                    new String[] {
858                            "jcr.initialize.on.startup", "initialize.on.startup",
859                            "com.liferay.portal.store.jcr"
860                    },
861                    new String[] {
862                            "jcr.jackrabbit.config.file.path", "jackrabbit.config.file.path",
863                            "com.liferay.portal.store.jcr"
864                    },
865                    new String[] {
866                            "jcr.jackrabbit.credentials.password",
867                            "jackrabbit.credentials.password", "com.liferay.portal.store.jcr"
868                    },
869                    new String[] {
870                            "jcr.jackrabbit.credentials.username",
871                            "jackrabbit.credentials.username", "com.liferay.portal.store.jcr"
872                    },
873                    new String[] {
874                            "jcr.jackrabbit.repository.home", "repository.home",
875                            "com.liferay.portal.store.jcr"
876                    },
877                    new String[] {
878                            "jcr.jackrabbit.repository.root", "repository.root",
879                            "com.liferay.portal.store.jcr"
880                    },
881                    new String[] {
882                            "jcr.node.documentlibrary", "node.documentlibrary",
883                            "com.liferay.portal.store.jcr"
884                    },
885                    new String[] {
886                            "jcr.workspace.name", "workspace.name",
887                            "com.liferay.portal.store.jcr"
888                    },
889                    new String[] {
890                            "jcr.wrap.session", "wrap.session", "com.liferay.portal.store.jcr"
891                    },
892    
893                    // Journal
894    
895                    new String[] {
896                            "journal.article.check.interval", "check.interval",
897                            "com.liferay.journal.web"
898                    },
899                    new String[] {
900                            "journal.article.comments.enabled",
901                            "journal.article.comments.enabled", "com.liferay.journal.service"
902                    },
903                    new String[] {
904                            "journal.article.custom.tokens", "journal.article.custom.tokens",
905                            "com.liferay.journal.service"
906                    },
907                    new String[] {
908                            "journal.article.database.keyword.search.content",
909                            "journal.article.database.keyword.search.content",
910                            "com.liferay.journal.service"
911                    },
912                    new String[] {
913                            "journal.article.expire.all.versions",
914                            "journal.article.expire.all.versions", "com.liferay.journal.service"
915                    },
916                    new String[] {
917                            "journal.article.force.autogenerate.id",
918                            "journal.article.force.autogenerate.id", "com.liferay.journal.web"
919                    },
920                    new String[] {
921                            "journal.article.form.add", "journal.article.form.add",
922                            "com.liferay.journal.web"
923                    },
924                    new String[] {
925                            "journal.article.form.default.values",
926                            "journal.article.form.default.values", "com.liferay.journal.web"
927                    },
928                    new String[] {
929                            "journal.article.form.update", "journal.article.form.update",
930                            "com.liferay.journal.web"
931                    },
932                    new String[] {
933                            "journal.articles.search.with.index",
934                            "journal.articles.search.with.index", "com.liferay.journal.web"
935                    },
936                    new String[] {
937                            "journal.article.storage.type", "journal.article.storage.type",
938                            "com.liferay.journal.service"
939                    },
940                    new String[] {
941                            "journal.article.token.page.break",
942                            "journal.article.token.page.break", "com.liferay.journal.service"
943                    },
944                    new String[] {
945                            "journal.article.view.permission.check.enabled",
946                            "journal.article.view.permission.check.enabled",
947                            "com.liferay.journal.service"
948                    },
949                    new String[] {
950                            "journal.articles.index.all.versions",
951                            "journal.articles.index.all.versions", "com.liferay.journal.service"
952                    },
953                    new String[] {
954                            "journal.char.blacklist", "char.blacklist",
955                            "com.liferay.journal.service"
956                    },
957                    new String[] {
958                            "journal.content.publish.to.live.by.default",
959                            "publish.to.live.by.default", "com.liferay.journal.content.web"
960                    },
961                    new String[] {
962                            "journal.content.search.show.listed", "show.listed",
963                            "com.liferay.journal.content.search.web"
964                    },
965                    new String[] {
966                            "journal.default.display.view", "default.display.view",
967                            "com.liferay.journal.web"
968                    },
969                    new String[] {
970                            "journal.display.views", "display.views", "com.liferay.journal.web"
971                    },
972                    new String[] {
973                            "journal.email.from.address", "email.from.address",
974                            "com.liferay.journal.service"
975                    },
976                    new String[] {
977                            "journal.email.from.name", "email.from.name",
978                            "com.liferay.journal.service"
979                    },
980                    new String[] {
981                            "journal.email.article.added.enabled",
982                            "email.article.added.enabled", "com.liferay.journal.service"
983                    },
984                    new String[] {
985                            "journal.email.article.added.subject",
986                            "email.article.added.subject", "com.liferay.journal.service"
987                    },
988                    new String[] {
989                            "journal.email.article.added.body", "email.article.added.body",
990                            "com.liferay.journal.service"
991                    },
992                    new String[] {
993                            "journal.email.article.approval.denied.enabled",
994                            "email.article.approval.denied.enabled",
995                            "com.liferay.journal.service"
996                    },
997                    new String[] {
998                            "journal.email.article.approval.denied.subject",
999                            "email.article.approval.denied.subject",
1000                            "com.liferay.journal.service"
1001                    },
1002                    new String[] {
1003                            "journal.email.article.approval.denied.body",
1004                            "email.article.approval.denied.body", "com.liferay.journal.service"
1005                    },
1006                    new String[] {
1007                            "journal.email.article.approval.granted.enabled",
1008                            "email.article.approval.granted.enabled",
1009                            "com.liferay.journal.service"
1010                    },
1011                    new String[] {
1012                            "journal.email.article.approval.granted.subject",
1013                            "email.article.approval.granted.subject",
1014                            "com.liferay.journal.service"
1015                    },
1016                    new String[] {
1017                            "journal.email.article.approval.granted.body",
1018                            "email.article.approval.granted.body", "com.liferay.journal.service"
1019                    },
1020                    new String[] {
1021                            "journal.email.article.approval.requested.enabled",
1022                            "email.article.approval.requested.enabled",
1023                            "com.liferay.journal.service"
1024                    },
1025                    new String[] {
1026                            "journal.email.article.approval.requested.subject",
1027                            "email.article.approval.requested.subject",
1028                            "com.liferay.journal.service"
1029                    },
1030                    new String[] {
1031                            "journal.email.article.approval.requested.body",
1032                            "email.article.approval.requested.body",
1033                            "com.liferay.journal.service"
1034                    },
1035                    new String[] {
1036                            "journal.email.article.moved.to.folder.enabled",
1037                            "email.article.moved.to.folder.enabled",
1038                            "com.liferay.journal.service"
1039                    },
1040                    new String[] {
1041                            "journal.email.article.moved.to.folder.subject",
1042                            "email.article.moved.to.folder.subject",
1043                            "com.liferay.journal.service"
1044                    },
1045                    new String[] {
1046                            "journal.email.article.moved.from.folder.body",
1047                            "email.article.moved.from.folder.body",
1048                            "com.liferay.journal.service"
1049                    },
1050                    new String[] {
1051                            "journal.email.article.moved.from.folder.enabled",
1052                            "email.article.moved.from.folder.enabled",
1053                            "com.liferay.journal.service"
1054                    },
1055                    new String[] {
1056                            "journal.email.article.moved.from.folder.subject",
1057                            "email.article.moved.from.folder.subject",
1058                            "com.liferay.journal.service"
1059                    },
1060                    new String[] {
1061                            "journal.email.article.moved.from.folder.body",
1062                            "email.article.moved.from.folder.body",
1063                            "com.liferay.journal.service"
1064                    },
1065                    new String[] {
1066                            "journal.email.article.review.enabled",
1067                            "email.article.review.enabled", "com.liferay.journal.service"
1068                    },
1069                    new String[] {
1070                            "journal.email.article.review.subject",
1071                            "email.article.review.subject", "com.liferay.journal.service"
1072                    },
1073                    new String[] {
1074                            "journal.email.article.review.body", "email.article.review.body",
1075                            "com.liferay.journal.service"
1076                    },
1077                    new String[] {
1078                            "journal.email.article.updated.enabled",
1079                            "email.article.updated.enabled", "com.liferay.journal.service"
1080                    },
1081                    new String[] {
1082                            "journal.email.article.updated.subject",
1083                            "email.article.updated.subject", "com.liferay.journal.service"
1084                    },
1085                    new String[] {
1086                            "journal.email.article.updated.body", "email.article.updated.body",
1087                            "com.liferay.journal.service"
1088                    },
1089                    new String[] {
1090                            "journal.error.template[ftl]", "error.template[ftl]",
1091                            "com.liferay.journal.service"
1092                    },
1093                    new String[] {
1094                            "journal.error.template[vm]", "error.template[vm]",
1095                            "com.liferay.journal.service"
1096                    },
1097                    new String[] {
1098                            "journal.error.template[xsl]", "error.template[xsl]",
1099                            "com.liferay.journal.service"
1100                    },
1101                    new String[] {
1102                            "journal.feed.force.autogenerate.id",
1103                            "journal.feed.force.autogenerate.id", "com.liferay.journal.web"
1104                    },
1105                    new String[] {
1106                            "journal.folder.icon.check.count",
1107                            "journal.folder.icon.check.count", "com.liferay.journal.service"
1108                    },
1109                    new String[] {
1110                            "journal.lar.creation.strategy", "lar.creation.strategy",
1111                            "com.liferay.journal.service"
1112                    },
1113                    new String[] {
1114                            "journal.publish.to.live.by.default", "publish.to.live.by.defaul",
1115                            "com.liferay.journal.web"
1116                    },
1117                    new String[] {
1118                            "journal.publish.version.history.by.default",
1119                            "publish.version.history.by.default", "com.liferay.journal.web"
1120                    },
1121                    new String[] {
1122                            "journal.sync.content.search.on.startup",
1123                            "sync.content.search.on.startup", "com.liferay.journal.service"
1124                    },
1125                    new String[] {
1126                            "journal.template.language.content[css]",
1127                            "journal.article.template.language.content[css]",
1128                            "com.liferay.journal.web"
1129                    },
1130                    new String[] {
1131                            "journal.template.language.content[ftl]",
1132                            "journal.article.template.language.content[ftl]",
1133                            "com.liferay.journal.web"
1134                    },
1135                    new String[] {
1136                            "journal.template.language.content[vm]",
1137                            "journal.article.template.language.content[vm]",
1138                            "com.liferay.journal.web"
1139                    },
1140                    new String[] {
1141                            "journal.template.language.content[xsl]",
1142                            "journal.article.template.language.content[xsl]",
1143                            "com.liferay.journal.web"
1144                    },
1145                    new String[] {
1146                            "journal.transformer.listener", "transformer.listener",
1147                            "com.liferay.journal.service"
1148                    },
1149                    new String[] {
1150                            "journal.transformer.regex.pattern", "transformer.regex.pattern",
1151                            "com.liferay.journal.service"
1152                    },
1153                    new String[] {
1154                            "journal.transformer.regex.replacement",
1155                            "transformer.regex.replacement", "com.liferay.journal.service"
1156                    },
1157                    new String[] {
1158                            "terms.of.use.journal.article.group.id",
1159                            "terms.of.use.journal.article.group.id",
1160                            "com.liferay.journal.service"
1161                    },
1162                    new String[] {
1163                            "terms.of.use.journal.article.id",
1164                            "terms.of.use.journal.article.id", "com.liferay.journal.service"
1165                    },
1166    
1167                    // Language
1168    
1169                    new String[] {
1170                            "language.display.style.default", "ddm.template.key.default",
1171                            "com.liferay.site.navigation.language.web"
1172                    },
1173                    new String[] {
1174                            "language.display.templates.config", "display.templates.config",
1175                            "com.liferay.site.navigation.language.web"
1176                    },
1177    
1178                    // Lucene
1179    
1180                    new String[] {
1181                            "lucene.analyzer.max.tokens", "analyzer.max.tokens",
1182                            "com.liferay.portal.search.lucene"
1183                    },
1184                    new String[] {
1185                            "lucene.buffer.size", "buffer.size",
1186                            "com.liferay.portal.search.lucene"
1187                    },
1188                    new String[] {
1189                            "lucene.commit.batch.size", "commit.batch.size",
1190                            "com.liferay.portal.search.lucene"
1191                    },
1192                    new String[] {
1193                            "lucene.commit.time.interval", "commit.time.interval",
1194                            "com.liferay.portal.search.lucene"
1195                    },
1196                    new String[] {"lucene.dir", "dir", "com.liferay.portal.search.lucene"},
1197                    new String[] {
1198                            "lucene.merge.factor", "merge.factor",
1199                            "com.liferay.portal.search.lucene"
1200                    },
1201                    new String[] {
1202                            "lucene.merge.policy", "merge.policy",
1203                            "com.liferay.portal.search.lucene"
1204                    },
1205                    new String[] {
1206                            "lucene.merge.scheduler", "merge.scheduler",
1207                            "com.liferay.portal.search.lucene"
1208                    },
1209                    new String[] {
1210                            "lucene.store.type", "store.type",
1211                            "com.liferay.portal.search.lucene"
1212                    },
1213                    new String[] {
1214                            "lucene.store.type.file.force.mmap", "store.type.file.force.mmp",
1215                            "com.liferay.portal.search.lucene"
1216                    },
1217    
1218                    // Message Boards
1219    
1220                    new String[] {
1221                            "message.boards.expire.ban.job.interval", "expire.ban.job.interval",
1222                            "com.liferay.message.boards.web"
1223                    },
1224    
1225                    // Monitoring
1226    
1227                    new String[] {
1228                            "monitoring.portal.request", "monitor.portal.request",
1229                            "com.liferay.portal.monitoring"
1230                    },
1231                    new String[] {
1232                            "monitoring.portlet.action.request",
1233                            "monitor.portlet.action.request", "com.liferay.portal.monitoring"
1234                    },
1235                    new String[] {
1236                            "monitoring.portlet.event.request", "monitor.portlet.event.request",
1237                            "com.liferay.portal.monitoring"
1238                    },
1239                    new String[] {
1240                            "monitoring.portlet.render.request",
1241                            "monitor.portlet.render.request", "com.liferay.portal.monitoring"
1242                    },
1243                    new String[] {
1244                            "monitoring.portlet.resource.request",
1245                            "monitor.portlet.resource.request", "com.liferay.portal.monitoring"
1246                    },
1247                    new String[] {
1248                            "monitoring.show.per.request.data.sample",
1249                            "show.per.request.data.sample", "com.liferay.portal.monitoring"
1250                    },
1251    
1252                    // Navigation
1253    
1254                    new String[] {
1255                            "navigation.display.style.default", "ddm.template.key.default",
1256                            "com.liferay.site.navigation.menu.web"
1257                    },
1258                    new String[] {
1259                            "navigation.display.style.options", "display.style.options",
1260                            "com.liferay.site.navigation.menu.web"
1261                    },
1262    
1263                    // Nested Portlets
1264    
1265                    new String[] {
1266                            "nested.portlets.layout.template.default",
1267                            "layout.template.default", "com.liferay.nested.portlets.web"
1268                    },
1269                    new String[] {
1270                            "nested.portlets.layout.template.unsupported",
1271                            "layout.template.unsupported", "com.liferay.nested.portlets.web"
1272                    },
1273    
1274                    // NTLM
1275    
1276                    new String[] {
1277                            "ntlm.auth.enabled", "enabled",
1278                            "com.liferay.portal.security.sso.ntlm"
1279                    },
1280                    new String[] {
1281                            "ntlm.auth.domain", "domain", "com.liferay.portal.security.sso.ntlm"
1282                    },
1283                    new String[] {
1284                            "ntlm.auth.domain.controller", "domain.controller",
1285                            "com.liferay.portal.security.sso.ntlm"
1286                    },
1287                    new String[] {
1288                            "ntlm.auth.domain.controller.name", "domain.controller.name",
1289                            "com.liferay.portal.security.sso.ntlm"
1290                    },
1291                    new String[] {
1292                            "ntlm.auth.negotiate.flags", "negotiate.flags",
1293                            "com.liferay.portal.security.sso.ntlm"
1294                    },
1295                    new String[] {
1296                            "ntlm.auth.service.account", "service.account",
1297                            "com.liferay.portal.security.sso.ntlm"
1298                    },
1299                    new String[] {
1300                            "ntlm.auth.service.password", "service.password",
1301                            "com.liferay.portal.security.sso.ntlm"
1302                    },
1303    
1304                    // OpenID
1305    
1306                    new String[] {
1307                            "open.id.auth.enabled", "enabled",
1308                            "com.liferay.portal.security.sso.openid"
1309                    },
1310                    new String[] {
1311                            "open.id.providers", "providers",
1312                            "com.liferay.portal.security.sso.openid"
1313                    },
1314                    new String[] {
1315                            "open.id.ax.schema[default]", "ax.schema",
1316                            "com.liferay.portal.security.sso.openid"
1317                    },
1318                    new String[] {
1319                            "open.id.ax.type.email[default]", "ax.type.email",
1320                            "com.liferay.portal.security.sso.openid"
1321                    },
1322                    new String[] {
1323                            "open.id.ax.type.firstname[default]", "ax.type.firstname",
1324                            "com.liferay.portal.security.sso.openid"
1325                    },
1326                    new String[] {
1327                            "open.id.ax.type.lastname[default]", "ax.type.lastname",
1328                            "com.liferay.portal.security.sso.openid"
1329                    },
1330                    new String[] {
1331                            "open.id.ax.schema[yahoo]", "ax.schema",
1332                            "com.liferay.portal.security.sso.openid"
1333                    },
1334                    new String[] {
1335                            "open.id.ax.type.email[yahoo]", "ax.type.email",
1336                            "com.liferay.portal.security.sso.openid"
1337                    },
1338                    new String[] {
1339                            "open.id.ax.type.fullname[yahoo]", "ax.type.fullname",
1340                            "com.liferay.portal.security.sso.openid"
1341                    },
1342                    new String[] {
1343                            "open.id.url[yahoo]", "url",
1344                            "com.liferay.portal.security.sso.openid"
1345                    },
1346    
1347                    // OpenSSO
1348    
1349                    new String[] {
1350                            "open.sso.auth.enabled", "enabled",
1351                            "com.liferay.portal.security.sso.opensso"
1352                    },
1353                    new String[] {
1354                            "open.sso.email.address.attr", "email.address.attr",
1355                            "com.liferay.portal.security.sso.opensso"
1356                    },
1357                    new String[] {
1358                            "open.sso.first.name.attr", "first.name.attr",
1359                            "com.liferay.portal.security.sso.opensso"
1360                    },
1361                    new String[] {
1362                            "open.sso.last.name.attr", "last.name.attr",
1363                            "com.liferay.portal.security.sso.opensso"
1364                    },
1365                    new String[] {
1366                            "open.sso.import.from.ldap", "import.from.ldap",
1367                            "com.liferay.portal.security.sso.opensso"
1368                    },
1369                    new String[] {
1370                            "open.sso.login.url", "login.url",
1371                            "com.liferay.portal.security.sso.opensso"
1372                    },
1373                    new String[] {
1374                            "open.sso.logout.on.session.expiration",
1375                            "logout.on.session.expiration",
1376                            "com.liferay.portal.security.sso.opensso"
1377                    },
1378                    new String[] {
1379                            "open.sso.logout.url", "logout.url",
1380                            "com.liferay.portal.security.sso.opensso"
1381                    },
1382                    new String[] {
1383                            "open.sso.screen.name.attr", "screen.name.attr",
1384                            "com.liferay.portal.security.sso.opensso"
1385                    },
1386                    new String[] {
1387                            "open.sso.service.url", "service.url",
1388                            "com.liferay.portal.security.sso.opensso"
1389                    },
1390    
1391                    // Polls
1392    
1393                    new String[] {
1394                            "polls.publish.to.live.by.default", "publish.to.live.by.default",
1395                            "com.liferay.polls.service"
1396                    },
1397    
1398                    // Request Header
1399    
1400                    new String[] {
1401                            "request.header.auth.hosts.allowed", "authHostsAllowed",
1402                            "com.liferay.portal.security.auto.login.request.header"
1403                    },
1404    
1405                    new String[] {
1406                            "request.header.auth.import.from.ldap", "importFromLDAP",
1407                            "com.liferay.portal.security.auto.login.request.header"
1408                    },
1409    
1410                    // RSS
1411    
1412                    new String[] {
1413                            "rss.display.templates.config", "display.templates.config",
1414                            "com.liferay.rss.web"
1415                    },
1416    
1417                    // Shopping
1418    
1419                    new String[] {
1420                            "shopping.cart.min.qty.multiple", "cart.min.qty.multiple",
1421                            "com.liferay.shopping.service"
1422                    },
1423                    new String[] {
1424                            "shopping.category.forward.to.cart", "category.forward.to.cart",
1425                            "com.liferay.shopping.service"
1426                    },
1427                    new String[] {
1428                            "shopping.category.show.special.items",
1429                            "category.show.special.items", "com.liferay.shopping.service"
1430                    },
1431                    new String[] {
1432                            "shopping.credit.card.types", "credit.card.types",
1433                            "com.liferay.shopping.service"
1434                    },
1435                    new String[] {
1436                            "shopping.currency.id", "currency.id",
1437                            "com.liferay.shopping.service"
1438                    },
1439                    new String[] {
1440                            "shopping.email.from.address", "email.from.address",
1441                            "com.liferay.shopping.service"
1442                    },
1443                    new String[] {
1444                            "shopping.email.from.name", "email.from.name",
1445                            "com.liferay.shopping.service"
1446                    },
1447                    new String[] {
1448                            "shopping.email.order.confirmation.enabled",
1449                            "email.order.confirmation.enabled", "com.liferay.shopping.service"
1450                    },
1451                    new String[] {
1452                            "shopping.email.order.confirmation.subject",
1453                            "email.order.confirmation.subject", "com.liferay.shopping.service"
1454                    },
1455                    new String[] {
1456                            "shopping.email.order.confirmation.body",
1457                            "email.order.confirmation.body", "com.liferay.shopping.service"
1458                    },
1459                    new String[] {
1460                            "shopping.email.order.shipping.enabled",
1461                            "email.order.shipping.enabled", "com.liferay.shopping.service"
1462                    },
1463                    new String[] {
1464                            "shopping.email.order.shipping.subject",
1465                            "email.order.shipping.subject", "com.liferay.shopping.service"
1466                    },
1467                    new String[] {
1468                            "shopping.email.order.shipping.body", "email.order.shipping.body",
1469                            "com.liferay.shopping.service"
1470                    },
1471                    new String[] {
1472                            "shopping.image.extensions", "image.extensions",
1473                            "com.liferay.shopping.service"
1474                    },
1475                    new String[] {
1476                            "shopping.image.large.max.size", "image.large.max.size",
1477                            "com.liferay.shopping.service"
1478                    },
1479                    new String[] {
1480                            "shopping.image.medium.max.size", "image.medium.max.size",
1481                            "com.liferay.shopping.service"
1482                    },
1483                    new String[] {
1484                            "shopping.image.small.max.size", "image.small.max.size",
1485                            "com.liferay.shopping.service"
1486                    },
1487                    new String[] {
1488                            "shopping.insurance", "insurance", "com.liferay.shopping.service"
1489                    },
1490                    new String[] {
1491                            "shopping.insurance.formula", "insurance.formula",
1492                            "com.liferay.shopping.service"
1493                    },
1494                    new String[] {
1495                            "shopping.item.show.availability", "item.show.availability",
1496                            "com.liferay.shopping.service"
1497                    },
1498                    new String[] {
1499                            "shopping.min.order", "min.order", "com.liferay.shopping.service"
1500                    },
1501                    new String[] {
1502                            "shopping.order.comments.enabled", "order.comments.enabled",
1503                            "com.liferay.shopping.service"
1504                    },
1505                    new String[] {
1506                            "shopping.paypal.email.address", "paypal.email.address",
1507                            "com.liferay.shopping.service"
1508                    },
1509                    new String[] {
1510                            "shopping.shipping", "shipping", "com.liferay.shopping.service"
1511                    },
1512                    new String[] {
1513                            "shopping.shipping.formula", "shipping.formula",
1514                            "com.liferay.shopping.service"
1515                    },
1516                    new String[] {
1517                            "shopping.tax.rate", "tax.rate", "com.liferay.shopping.service"
1518                    },
1519    
1520                    // Scripting
1521    
1522                    new String[] {
1523                            "scripting.forbidden.classes", "forbidden.classes",
1524                            "com.liferay.portal.scripting.javascript"
1525                    },
1526                    new String[] {
1527                            "scripting.jruby.load.paths", "load.paths",
1528                            "com.liferay.portal.scripting.ruby"
1529                    },
1530    
1531                    // Search
1532    
1533                    new String[] {
1534                            "search.facet.configuration", "facet.configuration",
1535                            "com.liferay.search.web"
1536                    },
1537    
1538                    // Site Map
1539    
1540                    new String[] {
1541                            "sitemap.display.templates.config", "display.templates.config",
1542                            "com.liferay.site.navigation.site.map.web"
1543                    },
1544    
1545                    // Staging
1546    
1547                    new String[] {
1548                            "staging.draft.export.import.configuration.check.interval",
1549                            "draft.export.import.configuration.check.interval",
1550                            "com.liferay.exportimport.web"
1551                    },
1552                    new String[] {
1553                            "staging.draft.export.import.configuration.clean.up.count",
1554                            "draft.export.import.configuration.clean.up.count",
1555                            "com.liferay.exportimport.web"
1556                    },
1557    
1558                    // Social Activity
1559    
1560                    new String[] {
1561                            "social.activity.contribution.increments",
1562                            "contribution.increments", "com.liferay.social.activity"
1563                    },
1564                    new String[] {
1565                            "social.activity.contribution.limit.values",
1566                            "contribution.limit.values", "com.liferay.social.activity"
1567                    },
1568                    new String[] {
1569                            "social.activity.participation.increments",
1570                            "participation.increments", "com.liferay.social.activity"
1571                    },
1572                    new String[] {
1573                            "social.activity.participation.limit.values",
1574                            "participation.limit.values", "com.liferay.social.activity"
1575                    },
1576    
1577                    // Tags Compiler
1578    
1579                    new String[] {
1580                            "tags.compiler.enabled", "enabled",
1581                            "com.liferay.asset.tags.compiler.web"
1582                    },
1583    
1584                    // Translator
1585    
1586                    new String[] {
1587                            "translator.default.languages", "translation.id",
1588                            "com.liferay.translator.web"
1589                    },
1590                    new String[] {
1591                            "translator.languages", "language.ids", "com.liferay.translator.web"
1592                    },
1593    
1594                    // Velocity Engine
1595    
1596                    new String[] {
1597                            "velocity.engine.directive.if.to.string.null.check",
1598                            "directive.if.to.string.null.check",
1599                            "com.liferay.portal.template.velocity"
1600                    },
1601                    new String[] {
1602                            "velocity.engine.resource.parsers", "resource.parsers",
1603                            "com.liferay.portal.template.velocity"
1604                    },
1605                    new String[] {
1606                            "velocity.engine.resource.modification.check.interval",
1607                            "resource.modification.check.interval",
1608                            "com.liferay.portal.template.velocity"
1609                    },
1610                    new String[] {
1611                            "velocity.engine.restricted.classes", "restricted.classes",
1612                            "com.liferay.portal.template.velocity"
1613                    },
1614                    new String[] {
1615                            "velocity.engine.restricted.packages", "restricted.packages",
1616                            "com.liferay.portal.template.velocity"
1617                    },
1618                    new String[] {
1619                            "velocity.engine.restricted.variables", "restricted.variables",
1620                            "com.liferay.portal.template.velocity"
1621                    },
1622                    new String[] {
1623                            "velocity.engine.velocimacro.library", "macro.library",
1624                            "com.liferay.portal.template.velocity"
1625                    },
1626                    new String[] {
1627                            "velocity.engine.logger", "logger",
1628                            "com.liferay.portal.template.velocity"
1629                    },
1630                    new String[] {
1631                            "velocity.engine.logger.category", "logger.category",
1632                            "com.liferay.portal.template.velocity"
1633                    },
1634    
1635                    // XSL Content
1636    
1637                    new String[] {
1638                            "xsl.content.valid.url.prefixes", "valid.url.prefixes",
1639                            "com.liferay.xsl.content.web"
1640                    },
1641                    new String[] {
1642                            "xsl.content.xml.doctype.declaration.allowed",
1643                            "xml.doctype.declaration.allowed", "com.liferay.xsl.content.web"
1644                    },
1645                    new String[] {
1646                            "xsl.content.xml.external.general.entities.allowed",
1647                            "xml.external.general.entities.allowed",
1648                            "com.liferay.xsl.content.web"
1649                    },
1650                    new String[] {
1651                            "xsl.content.xml.external.parameter.entities.allowed",
1652                            "xml.external.parameter.entities.allowed",
1653                            "com.liferay.xsl.content.web"
1654                    },
1655                    new String[] {
1656                            "xsl.content.xsl.secure.processing.enabled",
1657                            "xsl.secure.processing.enabled", "com.liferay.xsl.content.web"
1658                    },
1659    
1660                    // XSL Engine
1661    
1662                    new String[] {
1663                            "xsl.template.secure.processing.enabled",
1664                            "secure.processing.enabled", "com.liferay.portal.template.xsl"
1665                    }
1666            };
1667    
1668            private static final String[][] _MODULARIZED_SYSTEM_KEYS = {
1669    
1670                    // Calendar
1671    
1672                    new String[] {
1673                            "ical4j.compatibility.outlook", "ical4j.compatibility.outlook",
1674                            "com.liferay.calendar.service"
1675                    },
1676                    new String[] {
1677                            "ical4j.parsing.relaxed", "ical4j.parsing.relaxed",
1678                            "com.liferay.calendar.service"
1679                    },
1680                    new String[] {
1681                            "ical4j.unfolding.relaxed", "ical4j.unfolding.relaxed",
1682                            "com.liferay.calendar.service"
1683                    },
1684                    new String[] {
1685                            "ical4j.validation.relaxed", "ical4j.validation.relaxed",
1686                            "com.liferay.calendar.service"
1687                    }
1688            };
1689    
1690            private static final String[] _OBSOLETE_PORTAL_KEYS = new String[] {
1691                    "aim.login", "aim.login", "amazon.access.key.id",
1692                    "amazon.associate.tag", "amazon.secret.access.key",
1693                    "asset.entry.increment.view.counter.enabled",
1694                    "asset.publisher.asset.entry.query.processors",
1695                    "asset.publisher.filter.unlistable.entries",
1696                    "asset.publisher.query.form.configuration",
1697                    "asset.tag.permissions.enabled", "asset.tag.properties.default",
1698                    "asset.tag.properties.enabled", "asset.tag.suggestions.enabled",
1699                    "auth.max.failures.limit", "blogs.image.small.max.size",
1700                    "breadcrumb.display.style.options",
1701                    "buffered.increment.parallel.queue.size",
1702                    "buffered.increment.serial.queue.size", "cas.validate.url",
1703                    "cluster.executor.heartbeat.interval",
1704                    "com.liferay.filters.doubleclick.DoubleClickFilter",
1705                    "com.liferay.portal.servlet.filters.doubleclick.DoubleClickFilter",
1706                    "com.liferay.portal.servlet.filters.charbufferpool." +
1707                            "CharBufferPoolFilter",
1708                    "com.liferay.portal.servlet.filters.monitoring.MonitoringFilter",
1709                    "com.liferay.portal.servlet.filters.validhtml.ValidHtmlFilter",
1710                    "commons.pool.enabled", "company.settings.form.configuration",
1711                    "company.settings.form.identification",
1712                    "company.settings.form.miscellaneous", "company.settings.form.social",
1713                    "control.panel.home.portlet.id", "convert.processes",
1714                    "default.guest.public.layout.wap.color.scheme.id",
1715                    "default.guest.public.layout.wap.theme.id",
1716                    "default.user.private.layout.wap.color.scheme.id",
1717                    "default.user.private.layout.wap.theme.id",
1718                    "default.user.public.layout.wap.color.scheme.id",
1719                    "default.user.public.layout.wap.theme.id",
1720                    "default.wap.color.scheme.id", "default.wap.theme.id",
1721                    "discussion.thread.view", "dl.file.entry.read.count.enabled",
1722                    "dockbar.administrative.links.show.in.pop.up",
1723                    "dynamic.data.lists.record.set.force.autogenerate.key",
1724                    "dynamic.data.lists.template.language.parser[ftl]",
1725                    "dynamic.data.lists.template.language.parser[vm]",
1726                    "dynamic.data.lists.template.language.parser[xsl]",
1727                    "dynamic.data.mapping.structure.private.field.names",
1728                    "dynamic.data.mapping.structure.private.field.datatype[_fieldsDisplay]",
1729                    "dynamic.data.mapping.structure.private.field.repeatable[" +
1730                            "_fieldsDisplay]",
1731                    "dynamic.data.mapping.template.language.types",
1732                    "editor.ckeditor.version", "editor.inline.editing.enabled",
1733                    "editor.wysiwyg.portal-web.docroot.html.portlet.asset_publisher." +
1734                            "configuration.jsp",
1735                    "editor.wysiwyg.portal-web.docroot.html.portlet.blogs.configuration." +
1736                            "jsp",
1737                    "editor.wysiwyg.portal-web.docroot.html.portlet.bookmarks." +
1738                            "configuration.jsp",
1739                    "editor.wysiwyg.portal-web.docroot.html.portlet.document_library." +
1740                            "editor.wysiwyg.portal-web.docroot.html.portlet.invitation." +
1741                                    "configuration.jsp",
1742                    "editor.wysiwyg.portal-web.docroot.html.portlet.journal." +
1743                            "configuration.jsp",
1744                    "editor.wysiwyg.portal-web.docroot.html.portlet.login.configuration." +
1745                            "jsp",
1746                    "editor.wysiwyg.portal-web.docroot.html.portlet.message_boards." +
1747                            "configuration.jsp",
1748                    "editor.wysiwyg.portal-web.docroot.html.portlet.portal_settings." +
1749                            "email_notifications.jsp",
1750                    "ehcache.bootstrap.cache.loader.factory",
1751                    "ehcache.cache.event.listener.factory",
1752                    "ehcache.cache.manager.peer.listener.factory",
1753                    "ehcache.cache.manager.peer.provider.factory",
1754                    "ehcache.cache.manager.statistics.thread.pool.size",
1755                    "ehcache.multi.vm.config.location.peerProviderProperties",
1756                    "ehcache.statistics.enabled",
1757                    "hot.deploy.hook.custom.jsp.verification.enabled",
1758                    "hibernate.cache.region.factory_class",
1759                    "hibernate.cache.use_minimal_puts", "hibernate.cache.use_query_cache",
1760                    "hibernate.cache.use_second_level_cache",
1761                    "hibernate.cache.use_structured_entries", "icq.jar", "icq.login",
1762                    "icq.password", "index.filter.search.limit", "index.read.only",
1763                    "invitation.email.max.recipients", "invitation.email.message.body",
1764                    "invitation.email.message.subject", "javax.persistence.validation.mode",
1765                    "jbi.workflow.url", "json.deserializer.strict.mode",
1766                    "journal.article.form.translate", "journal.article.types",
1767                    "journal.articles.page.delta.values",
1768                    "journal.template.language.parser[css]",
1769                    "journal.template.language.parser[ftl]",
1770                    "journal.template.language.parser[vm]",
1771                    "journal.template.language.parser[xsl]",
1772                    "journal.template.language.types", "jpa.configs",
1773                    "jpa.database.platform", "jpa.database.type", "jpa.load.time.weaver",
1774                    "jpa.provider", "jpa.provider.property.eclipselink.allow-zero-id",
1775                    "jpa.provider.property.eclipselink.logging.level",
1776                    "jpa.provider.property.eclipselink.logging.timestamp",
1777                    "language.display.style.options", "layout.edit.page[control_panel]",
1778                    "layout.first.pageable[control_panel]", "layout.form.add",
1779                    "layout.form.update", "layout.parentable[control_panel]",
1780                    "layout.reset.portlet.ids", "layout.set.form.update", "layout.types",
1781                    "layout.url[control_panel]", "layout.url.friendliable[control_panel]",
1782                    "layout.view.page[control_panel]", "lucene.analyzer",
1783                    "lucene.cluster.index.loading.sync.timeout", "lucene.file.extractor",
1784                    "lucene.file.extractor.regexp.strip", "lucene.replicate.write",
1785                    "lucene.store.jdbc.auto.clean.up",
1786                    "lucene.store.jdbc.auto.clean.up.enabled",
1787                    "lucene.store.jdbc.auto.clean.up.interval",
1788                    "lucene.store.jdbc.dialect.db2", "lucene.store.jdbc.dialect.derby",
1789                    "lucene.store.jdbc.dialect.hsqldb", "lucene.store.jdbc.dialect.jtds",
1790                    "lucene.store.jdbc.dialect.microsoft",
1791                    "lucene.store.jdbc.dialect.mysql", "lucene.store.jdbc.dialect.oracle",
1792                    "lucene.store.jdbc.dialect.postgresql", "mail.hook.cyrus.add.user",
1793                    "mail.hook.cyrus.delete.user", "mail.hook.cyrus.home",
1794                    "memory.cluster.scheduler.lock.cache.enabled",
1795                    "message.boards.email.message.added.signature",
1796                    "message.boards.email.message.updated.signature",
1797                    "message.boards.thread.locking.enabled", "message.boards.thread.views",
1798                    "message.boards.thread.views.default",
1799                    "mobile.device.styling.wap.enabled", "msn.login", "msn.password",
1800                    "multicast.group.address[\"hibernate\"]",
1801                    "multicast.group.port[\"hibernate\"]",
1802                    "net.sf.ehcache.configurationResourceName",
1803                    "net.sf.ehcache.configurationResourceName.peerProviderProperties",
1804                    "organizations.form.add.identification", "organizations.form.add.main",
1805                    "organizations.form.add.miscellaneous",
1806                    "organizations.form.update.identification",
1807                    "organizations.form.update.main",
1808                    "organizations.form.update.miscellaneous",
1809                    "organizations.indexer.enabled", "portal.cache.manager.type.multi.vm",
1810                    "portal.cache.manager.type.single.vm", "portal.ctx",
1811                    "portal.security.manager.enable", "permissions.list.filter",
1812                    "permissions.thread.local.cache.max.size",
1813                    "permissions.user.check.algorithm", "persistence.provider",
1814                    "ratings.max.score", "ratings.min.score", "sandbox.deploy.dir",
1815                    "sandbox.deploy.enabled", "sandbox.deploy.interval",
1816                    "sandbox.deploy.listeners", "sc.image.max.size",
1817                    "sc.image.thumbnail.max.height", "sc.image.thumbnail.max.width",
1818                    "sc.product.comments.enabled", "scheduler.classes",
1819                    "schema.run.minimal", "search.container.page.iterator.page.values",
1820                    "service.builder.service.read.only.prefixes", "shard.available.names",
1821                    "shard.default.name", "shard.selector", "siteminder.auth.enabled",
1822                    "siteminder.import.from.ldap", "siteminder.user.header",
1823                    "sites.form.add.advanced", "sites.form.add.main",
1824                    "sites.form.add.miscellaneous", "sites.form.add.seo",
1825                    "sites.form.update.advanced", "sites.form.update.main",
1826                    "sites.form.update.miscellaneous", "sites.form.update.seo",
1827                    "staging.lock.enabled", "table.mapper.cacheless.mapping.table.names",
1828                    "tck.url", "user.groups.indexer.enabled",
1829                    "users.form.add.identification", "users.indexer.enabled",
1830                    "users.form.add.main", "users.form.add.miscellaneous",
1831                    "users.form.my.account.identification", "users.form.my.account.main",
1832                    "users.form.my.account.miscellaneous",
1833                    "users.form.update.identification", "users.form.update.main",
1834                    "users.form.update.miscellaneous", "vaadin.resources.path",
1835                    "vaadin.theme", "vaadin.widgetset", "webdav.storage.class",
1836                    "webdav.storage.show.edit.url", "webdav.storage.show.view.url",
1837                    "webdav.storage.tokens", "wiki.email.page.added.signature",
1838                    "wiki.email.page.updated.signature", "xss.allow", "ym.login",
1839                    "ym.password"
1840            };
1841    
1842            private static final String[] _OBSOLETE_SYSTEM_KEYS = new String[] {
1843                    "com.liferay.util.Http.proxy.host", "com.liferay.util.Http.proxy.port",
1844                    "com.liferay.util.XSSUtil.regexp.pattern"
1845            };
1846    
1847            private static final String[][] _RENAMED_PORTAL_KEYS = new String[][] {
1848                    new String[] {
1849                            "amazon.license.0", "amazon.access.key.id"
1850                    },
1851                    new String[] {"amazon.license.1", "amazon.access.key.id"},
1852                    new String[] {"amazon.license.2", "amazon.access.key.id"},
1853                    new String[] {"amazon.license.3", "amazon.access.key.id"},
1854                    new String[] {"cdn.host", "cdn.host.http"},
1855                    new String[] {
1856                            "cluster.executor.debug.enabled", "cluster.link.debug.enabled"
1857                    },
1858                    new String[] {
1859                            "com.liferay.portal.servlet.filters.compression.CompressionFilter",
1860                            "com.liferay.portal.servlet.filters.gzip.GZipFilter"
1861                    },
1862                    new String[] {
1863                            "default.guest.friendly.url",
1864                            "default.guest.public.layout.friendly.url"
1865                    },
1866                    new String[] {
1867                            "default.guest.layout.column", "default.guest.public.layout.column"
1868                    },
1869                    new String[] {
1870                            "default.guest.layout.name", "default.guest.public.layout.name"
1871                    },
1872                    new String[] {
1873                            "default.guest.layout.template.id",
1874                            "default.guest.public.layout.template.id"
1875                    },
1876                    new String[] {
1877                            "default.user.layout.column", "default.user.public.layout.column"
1878                    },
1879                    new String[] {
1880                            "default.user.layout.name", "default.user.public.layout.name"
1881                    },
1882                    new String[] {
1883                            "default.user.layout.template.id",
1884                            "default.user.public.layout.template.id"
1885                    },
1886                    new String[] {
1887                            "default.user.private.layout.lar",
1888                            "default.user.private.layouts.lar"
1889                    },
1890                    new String[] {
1891                            "default.user.public.layout.lar", "default.user.public.layouts.lar"
1892                    },
1893                    new String[] {
1894                            "dl.hook.cmis.credentials.password",
1895                            "dl.store.cmis.credentials.password"
1896                    },
1897                    new String[] {
1898                            "dl.hook.cmis.credentials.username",
1899                            "dl.store.cmis.credentials.username"
1900                    },
1901                    new String[] {
1902                            "dl.hook.cmis.repository.url", "dl.store.cmis.repository.url"
1903                    },
1904                    new String[] {
1905                            "dl.hook.cmis.system.root.dir", "dl.store.cmis.system.root.dir"
1906                    },
1907                    new String[] {
1908                            "dl.hook.file.system.root.dir", "dl.store.file.system.root.dir"
1909                    },
1910                    new String[] {"dl.hook.impl", "dl.store.impl"},
1911                    new String[] {"dl.hook.jcr.fetch.delay", "dl.store.jcr.fetch.delay"},
1912                    new String[] {
1913                            "dl.hook.jcr.fetch.max.failures", "dl.store.jcr.fetch.max.failures"
1914                    },
1915                    new String[] {
1916                            "dl.hook.jcr.move.version.labels",
1917                            "dl.store.jcr.move.version.labels"
1918                    },
1919                    new String[] {"dl.hook.s3.access.key", "dl.store.s3.access.key"},
1920                    new String[] {"dl.hook.s3.bucket.name", "dl.store.s3.bucket.name"},
1921                    new String[] {"dl.hook.s3.secret.key", "dl.store.s3.secret.key"},
1922                    new String[] {
1923                            "editor.wysiwyg.portal-web.docroot.html.portlet.calendar." +
1924                                    "edit_configuration.jsp",
1925                            "editor.wysiwyg.portal-web.docroot.html.portlet.calendar." +
1926                                    "configuration.jsp"
1927                    },
1928                    new String[] {
1929                            "editor.wysiwyg.portal-web.docroot.html.portlet.invitation." +
1930                                    "edit_configuration.jsp",
1931                            "editor.wysiwyg.portal-web.docroot.html.portlet.invitation." +
1932                                    "configuration.jsp"
1933                    },
1934                    new String[] {
1935                            "editor.wysiwyg.portal-web.docroot.html.portlet.journal." +
1936                                    "edit_configuration.jsp",
1937                            "editor.wysiwyg.portal-web.docroot.html.portlet.journal." +
1938                                    "configuration.jsp"
1939                    },
1940                    new String[] {
1941                            "editor.wysiwyg.portal-web.docroot.html.portlet.message_boards." +
1942                                    "edit_configuration.jsp",
1943                            "editor.wysiwyg.portal-web.docroot.html.portlet.message_boards." +
1944                                    "configuration.jsp"
1945                    },
1946                    new String[] {
1947                            "editor.wysiwyg.portal-web.docroot.html.portlet.shopping." +
1948                                    "edit_configuration.jsp",
1949                            "editor.wysiwyg.portal-web.docroot.html.portlet.shopping." +
1950                                    "configuration.jsp"
1951                    },
1952                    new String[] {
1953                            "field.editable.com.liferay.portal.kernel.model.User.emailAddress",
1954                            "field.editable.user.types"
1955                    },
1956                    new String[] {
1957                            "field.editable.com.liferay.portal.kernel.model.User.screenName",
1958                            "field.editable.user.types"
1959                    },
1960                    new String[] {"icon.menu.max.display.items", "menu.max.display.items"},
1961                    new String[] {
1962                            "journal.error.template.freemarker", "journal.error.template[ftl]"
1963                    },
1964                    new String[] {
1965                            "journal.error.template.velocity", "journal.error.template[vm]"
1966                    },
1967                    new String[] {
1968                            "journal.error.template.xsl", "journal.error.template[xsl]"
1969                    },
1970                    new String[] {
1971                            "journal.template.velocity.restricted.variables",
1972                            "velocity.engine.restricted.variables"
1973                    },
1974                    new String[] {
1975                            "passwords.passwordpolicytoolkit.charset.lowercase",
1976                            "passwords.passwordpolicytoolkit.validator.charset.lowercase"
1977                    },
1978                    new String[] {
1979                            "passwords.passwordpolicytoolkit.charset.numbers",
1980                            "passwords.passwordpolicytoolkit.validator.charset.numbers"
1981                    },
1982                    new String[] {
1983                            "passwords.passwordpolicytoolkit.charset.symbols",
1984                            "passwords.passwordpolicytoolkit.validator.charset.symbols"
1985                    },
1986                    new String[] {
1987                            "passwords.passwordpolicytoolkit.charset.uppercase",
1988                            "passwords.passwordpolicytoolkit.validator.charset.uppercase"
1989                    },
1990                    new String[] {
1991                            "permissions.inline.sql.resource.block.query.threshhold",
1992                            "permissions.inline.sql.resource.block.query.threshold"
1993                    },
1994                    new String[] {
1995                            "portal.instance.http.port", "portal.instance.http.socket.address"
1996                    },
1997                    new String[] {
1998                            "portal.instance.https.port", "portal.instance.http.socket.address"
1999                    },
2000                    new String[] {
2001                            "referer.url.domains.allowed", "redirect.url.domains.allowed"
2002                    },
2003                    new String[] {"referer.url.ips.allowed", "redirect.url.ips.allowed"},
2004                    new String[] {
2005                            "referer.url.security.mode", "redirect.url.security.mode"
2006                    },
2007                    new String[] {
2008                            "tags.asset.increment.view.counter.enabled",
2009                            "asset.entry.increment.view.counter.enabled"
2010                    }
2011            };
2012    
2013            private static final String[][] _RENAMED_SYSTEM_KEYS = new String[][] {
2014                    new String[] {
2015                            "com.liferay.portal.kernel.util.StringBundler.unsafe.create." +
2016                                    "threshold",
2017                            "com.liferay.portal.kernel.util.StringBundler.threadlocal.buffer." +
2018                                    "limit"
2019                    }
2020            };
2021    
2022            private static final Log _log = LogFactoryUtil.getLog(
2023                    VerifyProperties.class);
2024    
2025    }