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