/** * Copyright (c) 2000-present Liferay, Inc. All rights reserved. * * This library is free software; you can redistribute it and/or modify it under * the terms of the GNU Lesser General Public License as published by the Free * Software Foundation; either version 2.1 of the License, or (at your option) * any later version. * * This library is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more * details. */ package com.liferay.portal.verify; import com.liferay.portal.kernel.log.Log; import com.liferay.portal.kernel.log.LogFactoryUtil; import com.liferay.portal.kernel.util.ListUtil; import com.liferay.portal.kernel.util.LoggingTimer; import com.liferay.portal.kernel.util.SystemProperties; import com.liferay.portal.util.PropsUtil; import com.liferay.portlet.documentlibrary.store.StoreFactory; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.util.List; import java.util.Properties; /** * @author Brian Wing Shun Chan */ public class VerifyProperties extends VerifyProcess { @Override protected void doVerify() throws Exception { verifySystemProperties(); verifyPortalProperties(); verifyDocumentLibrary(); } protected InputStream getPropertiesResourceAsStream(String resourceName) throws FileNotFoundException { File propertyFile = new File(resourceName); if (propertyFile.exists()) { return new FileInputStream(propertyFile); } ClassLoader classLoader = VerifyProperties.class.getClassLoader(); return classLoader.getResourceAsStream(resourceName); } protected Properties loadPortalProperties() { Properties properties = new Properties(); List<String> propertiesResourceNames = ListUtil.fromArray( PropsUtil.getArray("include-and-override")); propertiesResourceNames.add(0, "portal.properties"); for (String propertyResourceName : propertiesResourceNames) { try (InputStream inputStream = getPropertiesResourceAsStream( propertyResourceName)) { if (inputStream != null) { properties.load(inputStream); } } catch (IOException ioe) { _log.error( "Unable to load property " + propertyResourceName, ioe); } } return properties; } protected void verifyDocumentLibrary() { try (LoggingTimer loggingTimer = new LoggingTimer()) { StoreFactory storeFactory = StoreFactory.getInstance(); storeFactory.checkProperties(); } } protected void verifyMigratedPortalProperty( Properties portalProperties, String oldKey, String newKey) throws Exception { if (portalProperties.containsKey(oldKey)) { _log.error( "Portal property \"" + oldKey + "\" was migrated to the system property \"" + newKey + "\""); } } protected void verifyMigratedSystemProperty(String oldKey, String newKey) throws Exception { String value = SystemProperties.get(oldKey); if (value != null) { _log.error( "System property \"" + oldKey + "\" was migrated to the portal property \"" + newKey + "\""); } } protected void verifyModularizedPortalProperty( Properties portalProperties, String oldKey, String newKey, String moduleName) throws Exception { if (portalProperties.containsKey(oldKey)) { _log.error( "Portal property \"" + oldKey + "\" was modularized to " + moduleName + " as \"" + newKey + "\""); } } protected void verifyModularizedSystemProperty( Properties systemProperties, String oldKey, String newKey, String moduleName) throws Exception { if (systemProperties.containsKey(oldKey)) { _log.error( "System property \"" + oldKey + "\" was modularized to " + moduleName + " as \"" + newKey + "\""); } } protected void verifyObsoletePortalProperty( Properties portalProperties, String key) throws Exception { if (portalProperties.containsKey(key)) { _log.error("Portal property \"" + key + "\" is obsolete"); } } protected void verifyObsoleteSystemProperty(String key) throws Exception { String value = SystemProperties.get(key); if (value != null) { _log.error("System property \"" + key + "\" is obsolete"); } } protected void verifyPortalProperties() throws Exception { try (LoggingTimer loggingTimer = new LoggingTimer()) { Properties portalProperties = loadPortalProperties(); for (String[] keys : _MIGRATED_PORTAL_KEYS) { String oldKey = keys[0]; String newKey = keys[1]; verifyMigratedPortalProperty(portalProperties, oldKey, newKey); } for (String[] keys : _RENAMED_PORTAL_KEYS) { String oldKey = keys[0]; String newKey = keys[1]; verifyRenamedPortalProperty(portalProperties, oldKey, newKey); } for (String key : _OBSOLETE_PORTAL_KEYS) { verifyObsoletePortalProperty(portalProperties, key); } for (String[] keys : _MODULARIZED_PORTAL_KEYS) { String oldKey = keys[0]; String newKey = keys[1]; String moduleName = keys[2]; verifyModularizedPortalProperty( portalProperties, oldKey, newKey, moduleName); } } } protected void verifyRenamedPortalProperty( Properties portalProperties, String oldKey, String newKey) throws Exception { if (portalProperties.containsKey(oldKey)) { _log.error( "Portal property \"" + oldKey + "\" was renamed to \"" + newKey + "\""); } } protected void verifyRenamedSystemProperty(String oldKey, String newKey) throws Exception { String value = SystemProperties.get(oldKey); if (value != null) { _log.error( "System property \"" + oldKey + "\" was renamed to \"" + newKey + "\""); } } protected void verifySystemProperties() throws Exception { try (LoggingTimer loggingTimer = new LoggingTimer()) { for (String[] keys : _MIGRATED_SYSTEM_KEYS) { String oldKey = keys[0]; String newKey = keys[1]; verifyMigratedSystemProperty(oldKey, newKey); } for (String[] keys : _RENAMED_SYSTEM_KEYS) { String oldKey = keys[0]; String newKey = keys[1]; verifyRenamedSystemProperty(oldKey, newKey); } for (String key : _OBSOLETE_SYSTEM_KEYS) { verifyObsoleteSystemProperty(key); } Properties systemProperties = SystemProperties.getProperties(); for (String[] keys : _MODULARIZED_SYSTEM_KEYS) { String oldKey = keys[0]; String newKey = keys[1]; String moduleName = keys[2]; verifyModularizedSystemProperty( systemProperties, oldKey, newKey, moduleName); } } } private static final String[][] _MIGRATED_PORTAL_KEYS = new String[][] { new String[] { "cookie.http.only.names.excludes", "cookie.http.only.names.excludes" }, new String[] { "finalize.manager.thread.enabled", "com.liferay.portal.kernel.memory.FinalizeManager.thread.enabled" }, new String[] { "http.header.secure.x.content.type.options", "http.header.secure.x.content.type.options" }, new String[] { "http.header.secure.x.content.type.options.urls.excludes", "http.header.secure.x.content.type.options.urls.excludes" }, new String[] { "http.header.secure.x.frame.options", "http.header.secure.x.frame.options" }, new String[] { "http.header.secure.x.frame.options.255", "http.header.secure.x.frame.options.255" }, new String[] { "http.header.secure.x.xss.protection", "http.header.secure.x.xss.protection" } }; private static final String[][] _MIGRATED_SYSTEM_KEYS = new String[][] { new String[] { "com.liferay.filters.compression.CompressionFilter", "com.liferay.portal.servlet.filters.gzip.GZipFilter" }, new String[] { "com.liferay.filters.strip.StripFilter", "com.liferay.portal.servlet.filters.strip.StripFilter" }, new String[] { "com.liferay.util.Http.max.connections.per.host", "com.liferay.portal.util.HttpImpl.max.connections.per.host" }, new String[] { "com.liferay.util.Http.max.total.connections", "com.liferay.portal.util.HttpImpl.max.total.connections" }, new String[] { "com.liferay.util.Http.proxy.auth.type", "com.liferay.portal.util.HttpImpl.proxy.auth.type" }, new String[] { "com.liferay.util.Http.proxy.ntlm.domain", "com.liferay.portal.util.HttpImpl.proxy.ntlm.domain" }, new String[] { "com.liferay.util.Http.proxy.ntlm.host", "com.liferay.portal.util.HttpImpl.proxy.ntlm.host" }, new String[] { "com.liferay.util.Http.proxy.password", "com.liferay.portal.util.HttpImpl.proxy.password" }, new String[] { "com.liferay.util.Http.proxy.username", "com.liferay.portal.util.HttpImpl.proxy.username" }, new String[] { "com.liferay.util.Http.timeout", "com.liferay.portal.util.HttpImpl.timeout" }, new String[] { "com.liferay.util.format.PhoneNumberFormat", "phone.number.format.impl" }, new String[] { "com.liferay.util.servlet.UploadServletRequest.max.size", "com.liferay.portal.upload.UploadServletRequestImpl.max.size" }, new String[] { "com.liferay.util.servlet.UploadServletRequest.temp.dir", "com.liferay.portal.upload.UploadServletRequestImpl.temp.dir" }, new String[] { "com.liferay.util.servlet.fileupload.LiferayFileItem.threshold." + "size", "com.liferay.portal.upload.LiferayFileItem.threshold.size" }, new String[] { "com.liferay.util.servlet.fileupload.LiferayInputStream." + "threshold.size", "com.liferay.portal.upload.LiferayInputStream.threshold.size" } }; private static final String[][] _MODULARIZED_PORTAL_KEYS = { // Asset new String[] { "asset.browser.search.with.database", "search.with.database", "com.liferay.asset.browser.web" }, new String[] { "asset.categories.navigation.display.templates.config", "display.templates.config", "com.liferay.asset.categories.navigation.web" }, new String[] { "asset.publisher.check.interval", "check.interval", "com.liferay.asset.publisher.web" }, new String[] { "asset.publisher.email.from.address", "email.from.address", "com.liferay.asset.publisher.web" }, new String[] { "asset.publisher.email.from.name", "email.from.name", "com.liferay.asset.publisher.web" }, new String[] { "asset.publisher.email.asset.entry.added.enabled", "email.asset.entry.added.enabled", "com.liferay.asset.publisher.web" }, new String[] { "asset.publisher.email.asset.entry.added.subject", "email.asset.entry.added.subject", "com.liferay.asset.publisher.web" }, new String[] { "asset.publisher.email.asset.entry.added.body", "email.asset.entry.added.body", "com.liferay.asset.publisher.web" }, new String[] { "asset.publisher.display.style.default", "display.style.default", "com.liferay.asset.publisher.web" }, new String[] { "asset.publisher.display.styles", "display.styles", "com.liferay.asset.publisher.web" }, new String[] { "asset.publisher.display.templates.config", "display.templates.config", "com.liferay.asset.publisher.web" }, new String[] { "asset.publisher.dynamic.subscription.limit", "dynamic.subscription.limit", "com.liferay.asset.publisher.web" }, new String[] { "asset.publisher.permission.checking.configurable", "permission.checking.configurable", "com.liferay.asset.publisher.web" }, new String[] { "asset.publisher.search.with.index", "search.with.index", "com.liferay.asset.publisher.web" }, new String[] { "asset.tags.navigation.display.templates.config", "display.templates.config", "com.liferay.asset.tags.navigation.web" }, // Authentication Verifier new String[] { "auth.verifier.BasicAuthHeaderAutoLogin.basic_auth", "auth.verifier.BasicAuthHeaderAuthVerifier.basic_auth", "com.liferay.portal.security.auth.verifier" }, new String[] { "auth.verifier.BasicAuthHeaderAutoLogin.hosts.allowed", "auth.verifier.BasicAuthHeaderAuthVerifier.hosts.allowed", "com.liferay.portal.security.auth.verifier" }, new String[] { "auth.verifier.BasicAuthHeaderAutoLogin.urls.excludes", "auth.verifier.BasicAuthHeaderAuthVerifier.urls.excludes", "com.liferay.portal.security.auth.verifier" }, new String[] { "auth.verifier.BasicAuthHeaderAutoLogin.urls.includes", "auth.verifier.BasicAuthHeaderAuthVerifier.urls.includes", "com.liferay.portal.security.auth.verifier" }, new String[] { "auth.verifier.DigestAuthenticationAuthVerifier.digest_auth", "auth.verifier.DigestAuthenticationAuthVerifier.digest_auth", "com.liferay.portal.security.auth.verifier" }, new String[] { "auth.verifier.DigestAuthenticationAuthVerifier.hosts.allowed", "auth.verifier.DigestAuthenticationAuthVerifier.hosts.allowed", "com.liferay.portal.security.auth.verifier" }, new String[] { "auth.verifier.DigestAuthenticationAuthVerifier.urls.excludes", "auth.verifier.DigestAuthenticationAuthVerifier.urls.excludes", "com.liferay.portal.security.auth.verifier" }, new String[] { "auth.verifier.DigestAuthenticationAuthVerifier.urls.includes", "auth.verifier.DigestAuthenticationAuthVerifier.urls.includes", "com.liferay.portal.security.auth.verifier" }, new String[] { "auth.verifier.ParameterAutoLogin.hosts.allowed", "auth.verifier.RequestParameterAuthVerifier.hosts.allowed", "com.liferay.portal.security.auth.verifier" }, new String[] { "auth.verifier.ParameterAutoLogin.urls.excludes", "auth.verifier.RequestParameterAuthVerifier.urls.excludes", "com.liferay.portal.security.auth.verifier" }, new String[] { "auth.verifier.ParameterAutoLogin.urls.includes", "auth.verifier.RequestParameterAuthVerifier.urls.includes", "com.liferay.portal.security.auth.verifier" }, new String[] { "auth.verifier.PortalSessionAuthVerifier.hosts.allowed", "auth.verifier.PortalSessionAuthVerifier.hosts.allowed", "com.liferay.portal.security.auth.verifier" }, new String[] { "auth.verifier.PortalSessionAuthVerifier.urls.excludes", "auth.verifier.PortalSessionAuthVerifier.urls.excludes", "com.liferay.portal.security.auth.verifier" }, new String[] { "auth.verifier.PortalSessionAuthVerifier.urls.includes", "auth.verifier.PortalSessionAuthVerifier.urls.includes", "com.liferay.portal.security.auth.verifier" }, new String[] { "auth.verifier.TunnelingServletAuthVerifier.hosts.allowed", "auth.verifier.TunnelAuthVerifier.hosts.allowed", "com.liferay.portal.security.auth.verifier" }, new String[] { "auth.verifier.TunnelingServletAuthVerifier.urls.excludes", "auth.verifier.TunnelAuthVerifier.urls.excludes", "com.liferay.portal.security.auth.verifier" }, new String[] { "auth.verifier.TunnelingServletAuthVerifier.urls.includes", "auth.verifier.TunnelAuthVerifier.urls.includes", "com.liferay.portal.security.auth.verifier" }, // Blogs new String[] { "blogs.display.templates.config", "display.templates.config", "com.liferay.blogs.web" }, new String[] { "blogs.entry.check.interval", "entry.check.interval", "com.liferay.blogs.web" }, new String[] { "blogs.linkback.job.interval", "linkback.job.interval", "com.liferay.blogs.web" }, // Bookmarks new String[] { "bookmarks.email.entry.added.body", "email.entry.added.body", "com.liferay.bookmarks.service" }, new String[] { "bookmarks.email.entry.added.enabled", "email.entry.added.enabled", "com.liferay.bookmarks.service" }, new String[] { "bookmarks.email.entry.added.subject", "email.entry.added.subject", "com.liferay.bookmarks.service" }, new String[] { "bookmarks.email.entry.updated.body", "email.entry.updated.body", "com.liferay.bookmarks.service" }, new String[] { "bookmarks.email.entry.updated.enabled", "email.entry.updated.enabled", "com.liferay.bookmarks.service" }, new String[] { "bookmarks.email.entry.updated.subject", "email.entry.updated.subject", "com.liferay.bookmarks.service" }, new String[] { "bookmarks.email.from.address", "email.from.address", "com.liferay.bookmarks.service" }, new String[] { "bookmarks.email.from.name", "email.from.name", "com.liferay.bookmarks.service" }, new String[] { "bookmarks.entry.columns", "entry.columns", "com.liferay.bookmarks.service" }, new String[] { "bookmarks.folder.columns", "folder.columns", "com.liferay.bookmarks.service" }, new String[] { "bookmarks.folders.search.visible", "folders.search.visible", "com.liferay.bookmarks.service" }, new String[] { "bookmarks.related.assets.enabled", "related.assets.enabled", "com.liferay.bookmarks.service" }, new String[] { "bookmarks.subfolders.visible", "subfolders.visible", "com.liferay.bookmarks.service" }, // Breadcrumb new String[] { "breadcrumb.display.style.default", "ddm.template.key.default", "com.liferay.site.navigation.breadcrumb.web" }, new String[] { "breadcrumb.display.templates.config", "display.templates.config", "com.liferay.site.navigation.breadcrumb.web" }, new String[] { "breadcrumb.show.guest.group", "show.guest.group", "com.liferay.site.navigation.breadcrumb.web" }, new String[] { "breadcrumb.show.parent.groups", "show.parent.groups", "com.liferay.site.navigation.breadcrumb.web" }, // CAS new String[] { "cas.auth.enabled", "enabled", "com.liferay.portal.security.sso.cas" }, new String[] { "cas.import.from.ldap", "import.from.ldap", "com.liferay.portal.security.sso.cas" }, new String[] { "cas.login.url", "login.url", "com.liferay.portal.security.sso.cas" }, new String[] { "cas.logout.on.session.expiration", "logout.on.session.expiration", "com.liferay.portal.security.sso.cas" }, new String[] { "cas.logout.url", "logout.url", "com.liferay.portal.security.sso.cas" }, new String[] { "cas.no.such.user.redirect.url", "no.such.user.redirect.url", "com.liferay.portal.security.sso.cas" }, new String[] { "cas.server.name", "server.name", "com.liferay.portal.security.sso.cas" }, new String[] { "cas.server.url", "server.url", "com.liferay.portal.security.sso.cas" }, new String[] { "cas.service.url", "service.url", "com.liferay.portal.security.sso.cas" }, // Cluster Link new String[] { "cluster.link.debug.enabled", "cluster.link.debug.enabled", "com.liferay.portal.cluster" }, // Currency Converter new String[] { "currency.converter.symbols", "symbols", "com.liferay.currency.converter.web" }, // Document Library new String[] { "dl.display.templates.config", "display.templates.config", "com.liferay.document.library.web" }, new String[] { "dl.repository.cmis.delete.depth", "delete.depth", "com.liferay.document.library.repository.cmis" }, new String[] { "dl.store.advanced.file.system.root.dir", "root.dir", "com.liferay.portal.store.filesystem" }, new String[] { "dl.store.cmis.credentials.username", "credentials.username", "com.liferay.portal.store.cmis" }, new String[] { "dl.store.cmis.credentials.password", "credentials.password", "com.liferay.portal.store.cmis" }, new String[] { "dl.store.cmis.repository.url", "repository.url", "com.liferay.portal.store.cmis" }, new String[] { "dl.store.cmis.system.root.dir", "system.root.dir", "com.liferay.portal.store.cmis" }, new String[] { "dl.store.file.system.root.dir", "root.dir", "com.liferay.portal.store.filesystem" }, new String[] { "dl.store.jcr.fetch.delay", "fetch.delay", "com.liferay.portal.store.jcr" }, new String[] { "dl.store.jcr.fetch.max.failures", "fetch.max.failures", "com.liferay.portal.store.jcr" }, new String[] { "dl.store.jcr.move.version.labels", "move.version.labels", "com.liferay.portal.store.jcr" }, new String[] { "dl.store.s3.access.key", "access.key", "com.liferay.portal.store.s3" }, new String[] { "dl.store.s3.bucket.name", "bucket.name", "com.liferay.portal.store.s3" }, new String[] { "dl.store.s3.jets3t[httpclient.max-connections]", "http.client.max.connections", "com.liferay.portal.store.s3" }, new String[] { "dl.store.s3.jets3t[s3service.default-bucket-location]", "s3service.default.bucket.location", "com.liferay.portal.store.s3" }, new String[] { "dl.store.s3.jets3t[s3service.default-storage-class]", "s3service.default.storage.class", "com.liferay.portal.store.s3" }, new String[] { "dl.store.s3.jets3t[s3service.s3-endpoint]", "s3service.s3.endpoint", "com.liferay.portal.store.s3" }, new String[] { "dl.store.s3.secret.key", "secret.key", "com.liferay.portal.store.s3" }, new String[] { "dl.store.s3.temp.dir.clean.up.expunge", "temp.dir.clean.up.expunge", "com.liferay.portal.store.s3" }, new String[] { "dl.store.s3.temp.dir.clean.up.frequency", "temp.dir.clean.up.frequency", "com.liferay.portal.store.s3" }, new String[] { "dl.temporary.file.entries.check.interval", "temporary.file.entries.check.interval", "com.liferay.document.library.web" }, // Dynamic Data Lists new String[] { "dynamic.data.lists.error.template", "dynamic.data.lists.error.template", "com.liferay.dynamic.data.lists.web" }, new String[] { "dynamic.data.lists.storage.type", "dynamic.data.lists.storage.type", "com.liferay.dynamic.data.lists.web" }, // Dynamic Data Mapping new String[] { "dynamic.data.mapping.image.extensions", "dynamic.data.mapping.image.extensions", "com.liferay.dynamic.data.mapping.service" }, new String[] { "dynamic.data.mapping.image.small.max.size", "dynamic.data.mapping.image.small.max.size", "com.liferay.dynamic.data.mapping.service" }, new String[] { "dynamic.data.mapping.structure.force.autogenerate.key", "dynamic.data.mapping.structure.force.autogenerate.key", "com.liferay.dynamic.data.mapping.web" }, new String[] { "dynamic.data.mapping.template.force.autogenerate.key", "dynamic.data.mapping.template.force.autogenerate.key", "com.liferay.dynamic.data.mapping.web" }, new String[] { "dynamic.data.mapping.template.language.default", "dynamic.data.mapping.template.language.default", "com.liferay.dynamic.data.mapping.web" }, new String[] { "dynamic.data.mapping.template.language.content", "dynamic.data.mapping.template.language.content", "com.liferay.dynamic.data.mapping.web" }, // Facebook Connect new String[] { "facebook.connect.auth.enabled", "enabled", "com.liferay.portal.security.sso.facebook.connect" }, new String[] { "facebook.connect.app.id", "app.id", "com.liferay.portal.security.sso.facebook.connect" }, new String[] { "facebook.connect.app.secret", "app.secret", "com.liferay.portal.security.sso.facebook.connect" }, new String[] { "facebook.connect.graph.url", "graph.url", "com.liferay.portal.security.sso.facebook.connect" }, new String[] { "facebook.connect.oauth.auth.url", "oauth.auth.url", "com.liferay.portal.security.sso.facebook.connect" }, new String[] { "facebook.connect.oauth.redirect.url", "oauth.redirect.url", "com.liferay.portal.security.sso.facebook.connect" }, new String[] { "facebook.connect.oauth.token.url", "oauth.token.url", "com.liferay.portal.security.sso.facebook.connect" }, new String[] { "facebook.connect.verified.account.required", "verified.account.required", "com.liferay.portal.security.sso.facebook.connect" }, // Flags new String[] {"flags.email.body", "email.body", "com.liferay.flags"}, new String[] { "flags.email.from.address", "email.from.address", "com.liferay.flags" }, new String[] { "flags.email.from.name", "email.from.name", "com.liferay.flags" }, new String[] { "flags.email.subject", "email.subject", "com.liferay.flags" }, new String[] { "flags.guest.users.enabled", "guest.users.enabled", "com.liferay.flags" }, new String[] {"flags.reasons", "reasons", "com.liferay.flags"}, // FreeMarker Engine new String[] { "freemarker.engine.localized.lookup", "localized.lookup", "com.liferay.portal.template.freemarker" }, new String[] { "freemarker.engine.macro.library", "macro.library", "com.liferay.portal.template.freemarker" }, new String[] { "freemarker.engine.resource.modification.check.interval", "resource.modification.check", "com.liferay.portal.template.freemarker" }, new String[] { "freemarker.engine.restricted.classes", "restricted.classes", "com.liferay.portal.template.freemarker" }, new String[] { "freemarker.engine.restricted.packages", "restricted.packages", "com.liferay.portal.template.freemarker" }, new String[] { "freemarker.engine.template.exception.handler", "template.exception.handler", "com.liferay.portal.template.freemarker" }, new String[] { "freemarker.engine.template.parsers", "template.parsers", "com.liferay.portal.template.freemarker" }, new String[] { "journal.template.freemarker.restricted.variables", "restricted.variables", "com.liferay.portal.template.freemarker" }, // IFrame new String[] {"iframe.auth", "auth", "com.liferay.iframe.web"}, new String[] { "iframe.auth-type", "auth.type", "com.liferay.iframe.web" }, new String[] { "iframe.form-method", "form.method", "com.liferay.iframe.web" }, new String[] { "iframe.hidden-variables", "hidden.variables", "com.liferay.iframe.web" }, // JCR new String[] { "jcr.initialize.on.startup", "initialize.on.startup", "com.liferay.portal.store.jcr" }, new String[] { "jcr.jackrabbit.config.file.path", "jackrabbit.config.file.path", "com.liferay.portal.store.jcr" }, new String[] { "jcr.jackrabbit.credentials.password", "jackrabbit.credentials.password", "com.liferay.portal.store.jcr" }, new String[] { "jcr.jackrabbit.credentials.username", "jackrabbit.credentials.username", "com.liferay.portal.store.jcr" }, new String[] { "jcr.jackrabbit.repository.home", "repository.home", "com.liferay.portal.store.jcr" }, new String[] { "jcr.jackrabbit.repository.root", "repository.root", "com.liferay.portal.store.jcr" }, new String[] { "jcr.node.documentlibrary", "node.documentlibrary", "com.liferay.portal.store.jcr" }, new String[] { "jcr.workspace.name", "workspace.name", "com.liferay.portal.store.jcr" }, new String[] { "jcr.wrap.session", "wrap.session", "com.liferay.portal.store.jcr" }, // Journal new String[] { "journal.article.check.interval", "check.interval", "com.liferay.journal.web" }, new String[] { "journal.article.comments.enabled", "journal.article.comments.enabled", "com.liferay.journal.service" }, new String[] { "journal.article.custom.tokens", "journal.article.custom.tokens", "com.liferay.journal.service" }, new String[] { "journal.article.database.keyword.search.content", "journal.article.database.keyword.search.content", "com.liferay.journal.service" }, new String[] { "journal.article.expire.all.versions", "journal.article.expire.all.versions", "com.liferay.journal.service" }, new String[] { "journal.article.force.autogenerate.id", "journal.article.force.autogenerate.id", "com.liferay.journal.web" }, new String[] { "journal.articles.search.with.index", "journal.articles.search.with.index", "com.liferay.journal.web" }, new String[] { "journal.article.storage.type", "journal.article.storage.type", "com.liferay.journal.service" }, new String[] { "journal.article.token.page.break", "journal.article.token.page.break", "com.liferay.journal.service" }, new String[] { "journal.article.view.permission.check.enabled", "journal.article.view.permission.check.enabled", "com.liferay.journal.service" }, new String[] { "journal.articles.index.all.versions", "journal.articles.index.all.versions", "com.liferay.journal.service" }, new String[] { "journal.char.blacklist", "char.blacklist", "com.liferay.journal.service" }, new String[] { "journal.content.publish.to.live.by.default", "publish.to.live.by.default", "com.liferay.journal.content.web" }, new String[] { "journal.content.search.show.listed", "show.listed", "com.liferay.journal.content.search.web" }, new String[] { "journal.default.display.view", "default.display.view", "com.liferay.journal.web" }, new String[] { "journal.display.views", "display.views", "com.liferay.journal.web" }, new String[] { "journal.email.from.address", "email.from.address", "com.liferay.journal.service" }, new String[] { "journal.email.from.name", "email.from.name", "com.liferay.journal.service" }, new String[] { "journal.email.article.added.enabled", "email.article.added.enabled", "com.liferay.journal.service" }, new String[] { "journal.email.article.added.subject", "email.article.added.subject", "com.liferay.journal.service" }, new String[] { "journal.email.article.added.body", "email.article.added.body", "com.liferay.journal.service" }, new String[] { "journal.email.article.approval.denied.enabled", "email.article.approval.denied.enabled", "com.liferay.journal.service" }, new String[] { "journal.email.article.approval.denied.subject", "email.article.approval.denied.subject", "com.liferay.journal.service" }, new String[] { "journal.email.article.approval.denied.body", "email.article.approval.denied.body", "com.liferay.journal.service" }, new String[] { "journal.email.article.approval.granted.enabled", "email.article.approval.granted.enabled", "com.liferay.journal.service" }, new String[] { "journal.email.article.approval.granted.subject", "email.article.approval.granted.subject", "com.liferay.journal.service" }, new String[] { "journal.email.article.approval.granted.body", "email.article.approval.granted.body", "com.liferay.journal.service" }, new String[] { "journal.email.article.approval.requested.enabled", "email.article.approval.requested.enabled", "com.liferay.journal.service" }, new String[] { "journal.email.article.approval.requested.subject", "email.article.approval.requested.subject", "com.liferay.journal.service" }, new String[] { "journal.email.article.approval.requested.body", "email.article.approval.requested.body", "com.liferay.journal.service" }, new String[] { "journal.email.article.moved.to.folder.enabled", "email.article.moved.to.folder.enabled", "com.liferay.journal.service" }, new String[] { "journal.email.article.moved.to.folder.subject", "email.article.moved.to.folder.subject", "com.liferay.journal.service" }, new String[] { "journal.email.article.moved.from.folder.body", "email.article.moved.from.folder.body", "com.liferay.journal.service" }, new String[] { "journal.email.article.moved.from.folder.enabled", "email.article.moved.from.folder.enabled", "com.liferay.journal.service" }, new String[] { "journal.email.article.moved.from.folder.subject", "email.article.moved.from.folder.subject", "com.liferay.journal.service" }, new String[] { "journal.email.article.moved.from.folder.body", "email.article.moved.from.folder.body", "com.liferay.journal.service" }, new String[] { "journal.email.article.review.enabled", "email.article.review.enabled", "com.liferay.journal.service" }, new String[] { "journal.email.article.review.subject", "email.article.review.subject", "com.liferay.journal.service" }, new String[] { "journal.email.article.review.body", "email.article.review.body", "com.liferay.journal.service" }, new String[] { "journal.email.article.updated.enabled", "email.article.updated.enabled", "com.liferay.journal.service" }, new String[] { "journal.email.article.updated.subject", "email.article.updated.subject", "com.liferay.journal.service" }, new String[] { "journal.email.article.updated.body", "email.article.updated.body", "com.liferay.journal.service" }, new String[] { "journal.error.template[ftl]", "error.template[ftl]", "com.liferay.journal.service" }, new String[] { "journal.error.template[vm]", "error.template[vm]", "com.liferay.journal.service" }, new String[] { "journal.error.template[xsl]", "error.template[xsl]", "com.liferay.journal.service" }, new String[] { "journal.feed.force.autogenerate.id", "journal.feed.force.autogenerate.id", "com.liferay.journal.web" }, new String[] { "journal.folder.icon.check.count", "journal.folder.icon.check.count", "com.liferay.journal.service" }, new String[] { "journal.lar.creation.strategy", "lar.creation.strategy", "com.liferay.journal.service" }, new String[] { "journal.publish.to.live.by.default", "publish.to.live.by.defaul", "com.liferay.journal.web" }, new String[] { "journal.publish.version.history.by.default", "publish.version.history.by.default", "com.liferay.journal.web" }, new String[] { "journal.sync.content.search.on.startup", "sync.content.search.on.startup", "com.liferay.journal.service" }, new String[] { "journal.template.language.content[css]", "journal.article.template.language.content[css]", "com.liferay.journal.web" }, new String[] { "journal.template.language.content[ftl]", "journal.article.template.language.content[ftl]", "com.liferay.journal.web" }, new String[] { "journal.template.language.content[vm]", "journal.article.template.language.content[vm]", "com.liferay.journal.web" }, new String[] { "journal.template.language.content[xsl]", "journal.article.template.language.content[xsl]", "com.liferay.journal.web" }, new String[] { "journal.transformer.listener", "transformer.listener", "com.liferay.journal.service" }, new String[] { "journal.transformer.regex.pattern", "transformer.regex.pattern", "com.liferay.journal.service" }, new String[] { "journal.transformer.regex.replacement", "transformer.regex.replacement", "com.liferay.journal.service" }, new String[] { "terms.of.use.journal.article.group.id", "terms.of.use.journal.article.group.id", "com.liferay.journal.service" }, new String[] { "terms.of.use.journal.article.id", "terms.of.use.journal.article.id", "com.liferay.journal.service" }, // Language new String[] { "language.display.style.default", "ddm.template.key.default", "com.liferay.site.navigation.language.web" }, new String[] { "language.display.templates.config", "display.templates.config", "com.liferay.site.navigation.language.web" }, // Lucene new String[] { "lucene.analyzer.max.tokens", "analyzer.max.tokens", "com.liferay.portal.search.lucene" }, new String[] { "lucene.buffer.size", "buffer.size", "com.liferay.portal.search.lucene" }, new String[] { "lucene.commit.batch.size", "commit.batch.size", "com.liferay.portal.search.lucene" }, new String[] { "lucene.commit.time.interval", "commit.time.interval", "com.liferay.portal.search.lucene" }, new String[] {"lucene.dir", "dir", "com.liferay.portal.search.lucene"}, new String[] { "lucene.merge.factor", "merge.factor", "com.liferay.portal.search.lucene" }, new String[] { "lucene.merge.policy", "merge.policy", "com.liferay.portal.search.lucene" }, new String[] { "lucene.merge.scheduler", "merge.scheduler", "com.liferay.portal.search.lucene" }, new String[] { "lucene.store.type", "store.type", "com.liferay.portal.search.lucene" }, new String[] { "lucene.store.type.file.force.mmap", "store.type.file.force.mmp", "com.liferay.portal.search.lucene" }, // Message Boards new String[] { "message.boards.expire.ban.job.interval", "expire.ban.job.interval", "com.liferay.message.boards.web" }, // Monitoring new String[] { "monitoring.portal.request", "monitor.portal.request", "com.liferay.portal.monitoring" }, new String[] { "monitoring.portlet.action.request", "monitor.portlet.action.request", "com.liferay.portal.monitoring" }, new String[] { "monitoring.portlet.event.request", "monitor.portlet.event.request", "com.liferay.portal.monitoring" }, new String[] { "monitoring.portlet.render.request", "monitor.portlet.render.request", "com.liferay.portal.monitoring" }, new String[] { "monitoring.portlet.resource.request", "monitor.portlet.resource.request", "com.liferay.portal.monitoring" }, new String[] { "monitoring.show.per.request.data.sample", "show.per.request.data.sample", "com.liferay.portal.monitoring" }, // Navigation new String[] { "navigation.display.style.default", "ddm.template.key.default", "com.liferay.site.navigation.menu.web" }, new String[] { "navigation.display.style.options", "display.style.options", "com.liferay.site.navigation.menu.web" }, // Nested Portlets new String[] { "nested.portlets.layout.template.default", "layout.template.default", "com.liferay.nested.portlets.web" }, new String[] { "nested.portlets.layout.template.unsupported", "layout.template.unsupported", "com.liferay.nested.portlets.web" }, // NTLM new String[] { "ntlm.auth.enabled", "enabled", "com.liferay.portal.security.sso.ntlm" }, new String[] { "ntlm.auth.domain", "domain", "com.liferay.portal.security.sso.ntlm" }, new String[] { "ntlm.auth.domain.controller", "domain.controller", "com.liferay.portal.security.sso.ntlm" }, new String[] { "ntlm.auth.domain.controller.name", "domain.controller.name", "com.liferay.portal.security.sso.ntlm" }, new String[] { "ntlm.auth.negotiate.flags", "negotiate.flags", "com.liferay.portal.security.sso.ntlm" }, new String[] { "ntlm.auth.service.account", "service.account", "com.liferay.portal.security.sso.ntlm" }, new String[] { "ntlm.auth.service.password", "service.password", "com.liferay.portal.security.sso.ntlm" }, // OpenID new String[] { "open.id.auth.enabled", "enabled", "com.liferay.portal.security.sso.openid" }, new String[] { "open.id.providers", "providers", "com.liferay.portal.security.sso.openid" }, new String[] { "open.id.ax.schema[default]", "ax.schema", "com.liferay.portal.security.sso.openid" }, new String[] { "open.id.ax.type.email[default]", "ax.type.email", "com.liferay.portal.security.sso.openid" }, new String[] { "open.id.ax.type.firstname[default]", "ax.type.firstname", "com.liferay.portal.security.sso.openid" }, new String[] { "open.id.ax.type.lastname[default]", "ax.type.lastname", "com.liferay.portal.security.sso.openid" }, new String[] { "open.id.ax.schema[yahoo]", "ax.schema", "com.liferay.portal.security.sso.openid" }, new String[] { "open.id.ax.type.email[yahoo]", "ax.type.email", "com.liferay.portal.security.sso.openid" }, new String[] { "open.id.ax.type.fullname[yahoo]", "ax.type.fullname", "com.liferay.portal.security.sso.openid" }, new String[] { "open.id.url[yahoo]", "url", "com.liferay.portal.security.sso.openid" }, // OpenSSO new String[] { "open.sso.auth.enabled", "enabled", "com.liferay.portal.security.sso.opensso" }, new String[] { "open.sso.email.address.attr", "email.address.attr", "com.liferay.portal.security.sso.opensso" }, new String[] { "open.sso.first.name.attr", "first.name.attr", "com.liferay.portal.security.sso.opensso" }, new String[] { "open.sso.last.name.attr", "last.name.attr", "com.liferay.portal.security.sso.opensso" }, new String[] { "open.sso.import.from.ldap", "import.from.ldap", "com.liferay.portal.security.sso.opensso" }, new String[] { "open.sso.login.url", "login.url", "com.liferay.portal.security.sso.opensso" }, new String[] { "open.sso.logout.on.session.expiration", "logout.on.session.expiration", "com.liferay.portal.security.sso.opensso" }, new String[] { "open.sso.logout.url", "logout.url", "com.liferay.portal.security.sso.opensso" }, new String[] { "open.sso.screen.name.attr", "screen.name.attr", "com.liferay.portal.security.sso.opensso" }, new String[] { "open.sso.service.url", "service.url", "com.liferay.portal.security.sso.opensso" }, // Polls new String[] { "polls.publish.to.live.by.default", "publish.to.live.by.default", "com.liferay.polls.service" }, // Request Header new String[] { "request.header.auth.hosts.allowed", "authHostsAllowed", "com.liferay.portal.security.auto.login.request.header" }, new String[] { "request.header.auth.import.from.ldap", "importFromLDAP", "com.liferay.portal.security.auto.login.request.header" }, // RSS new String[] { "rss.display.templates.config", "display.templates.config", "com.liferay.rss.web" }, // Shopping new String[] { "shopping.cart.min.qty.multiple", "cart.min.qty.multiple", "com.liferay.shopping.service" }, new String[] { "shopping.category.forward.to.cart", "category.forward.to.cart", "com.liferay.shopping.service" }, new String[] { "shopping.category.show.special.items", "category.show.special.items", "com.liferay.shopping.service" }, new String[] { "shopping.credit.card.types", "credit.card.types", "com.liferay.shopping.service" }, new String[] { "shopping.currency.id", "currency.id", "com.liferay.shopping.service" }, new String[] { "shopping.email.from.address", "email.from.address", "com.liferay.shopping.service" }, new String[] { "shopping.email.from.name", "email.from.name", "com.liferay.shopping.service" }, new String[] { "shopping.email.order.confirmation.enabled", "email.order.confirmation.enabled", "com.liferay.shopping.service" }, new String[] { "shopping.email.order.confirmation.subject", "email.order.confirmation.subject", "com.liferay.shopping.service" }, new String[] { "shopping.email.order.confirmation.body", "email.order.confirmation.body", "com.liferay.shopping.service" }, new String[] { "shopping.email.order.shipping.enabled", "email.order.shipping.enabled", "com.liferay.shopping.service" }, new String[] { "shopping.email.order.shipping.subject", "email.order.shipping.subject", "com.liferay.shopping.service" }, new String[] { "shopping.email.order.shipping.body", "email.order.shipping.body", "com.liferay.shopping.service" }, new String[] { "shopping.insurance", "insurance", "com.liferay.shopping.service" }, new String[] { "shopping.insurance.formula", "insurance.formula", "com.liferay.shopping.service" }, new String[] { "shopping.item.show.availability", "item.show.availability", "com.liferay.shopping.service" }, new String[] { "shopping.min.order", "min.order", "com.liferay.shopping.service" }, new String[] { "shopping.order.comments.enabled", "order.comments.enabled", "com.liferay.shopping.service" }, new String[] { "shopping.paypal.email.address", "paypal.email.address", "com.liferay.shopping.service" }, new String[] { "shopping.shipping", "shipping", "com.liferay.shopping.service" }, new String[] { "shopping.shipping.formula", "shipping.formula", "com.liferay.shopping.service" }, new String[] { "shopping.tax.rate", "tax.rate", "com.liferay.shopping.service" }, // Scripting new String[] { "scripting.forbidden.classes", "forbidden.classes", "com.liferay.portal.scripting.javascript" }, new String[] { "scripting.jruby.load.paths", "load.paths", "com.liferay.portal.scripting.ruby" }, // Search new String[] { "search.facet.configuration", "facet.configuration", "com.liferay.search.web" }, // Site Map new String[] { "sitemap.display.templates.config", "display.templates.config", "com.liferay.site.navigation.site.map.web" }, // Staging new String[] { "staging.draft.export.import.configuration.check.interval", "draft.export.import.configuration.check.interval", "com.liferay.exportimport.web" }, new String[] { "staging.draft.export.import.configuration.clean.up.count", "draft.export.import.configuration.clean.up.count", "com.liferay.exportimport.web" }, // Social Activity new String[] { "social.activity.contribution.increments", "contribution.increments", "com.liferay.social.activity" }, new String[] { "social.activity.contribution.limit.values", "contribution.limit.values", "com.liferay.social.activity" }, new String[] { "social.activity.participation.increments", "participation.increments", "com.liferay.social.activity" }, new String[] { "social.activity.participation.limit.values", "participation.limit.values", "com.liferay.social.activity" }, // Tags Compiler new String[] { "tags.compiler.enabled", "enabled", "com.liferay.asset.tags.compiler.web" }, // Translator new String[] { "translator.default.languages", "translation.id", "com.liferay.translator.web" }, new String[] { "translator.languages", "language.ids", "com.liferay.translator.web" }, // Velocity Engine new String[] { "velocity.engine.directive.if.to.string.null.check", "directive.if.to.string.null.check", "com.liferay.portal.template.velocity" }, new String[] { "velocity.engine.resource.parsers", "resource.parsers", "com.liferay.portal.template.velocity" }, new String[] { "velocity.engine.resource.modification.check.interval", "resource.modification.check.interval", "com.liferay.portal.template.velocity" }, new String[] { "velocity.engine.restricted.classes", "restricted.classes", "com.liferay.portal.template.velocity" }, new String[] { "velocity.engine.restricted.packages", "restricted.packages", "com.liferay.portal.template.velocity" }, new String[] { "velocity.engine.restricted.variables", "restricted.variables", "com.liferay.portal.template.velocity" }, new String[] { "velocity.engine.velocimacro.library", "macro.library", "com.liferay.portal.template.velocity" }, new String[] { "velocity.engine.logger", "logger", "com.liferay.portal.template.velocity" }, new String[] { "velocity.engine.logger.category", "logger.category", "com.liferay.portal.template.velocity" }, // XSL Content new String[] { "xsl.content.valid.url.prefixes", "valid.url.prefixes", "com.liferay.xsl.content.web" }, new String[] { "xsl.content.xml.doctype.declaration.allowed", "xml.doctype.declaration.allowed", "com.liferay.xsl.content.web" }, new String[] { "xsl.content.xml.external.general.entities.allowed", "xml.external.general.entities.allowed", "com.liferay.xsl.content.web" }, new String[] { "xsl.content.xml.external.parameter.entities.allowed", "xml.external.parameter.entities.allowed", "com.liferay.xsl.content.web" }, new String[] { "xsl.content.xsl.secure.processing.enabled", "xsl.secure.processing.enabled", "com.liferay.xsl.content.web" }, // XSL Engine new String[] { "xsl.template.secure.processing.enabled", "secure.processing.enabled", "com.liferay.portal.template.xsl" } }; private static final String[][] _MODULARIZED_SYSTEM_KEYS = { // Calendar new String[] { "ical4j.compatibility.outlook", "ical4j.compatibility.outlook", "com.liferay.calendar.service" }, new String[] { "ical4j.parsing.relaxed", "ical4j.parsing.relaxed", "com.liferay.calendar.service" }, new String[] { "ical4j.unfolding.relaxed", "ical4j.unfolding.relaxed", "com.liferay.calendar.service" }, new String[] { "ical4j.validation.relaxed", "ical4j.validation.relaxed", "com.liferay.calendar.service" } }; private static final String[] _OBSOLETE_PORTAL_KEYS = new String[] { "aim.login", "aim.login", "amazon.access.key.id", "amazon.associate.tag", "amazon.secret.access.key", "asset.entry.increment.view.counter.enabled", "asset.entry.validator", "asset.publisher.asset.entry.query.processors", "asset.publisher.filter.unlistable.entries", "asset.publisher.query.form.configuration", "asset.tag.permissions.enabled", "asset.tag.properties.default", "asset.tag.properties.enabled", "asset.tag.suggestions.enabled", "auth.max.failures.limit", "blogs.image.small.max.size", "breadcrumb.display.style.options", "buffered.increment.parallel.queue.size", "buffered.increment.serial.queue.size", "captcha.max.challenges", "captcha.check.portal.create_account", "captcha.check.portal.send_password", "captcha.check.portlet.message_boards.edit_category", "captcha.check.portlet.message_boards.edit_message", "captcha.engine.impl", "captcha.engine.recaptcha.key.private", "captcha.engine.recaptcha.key.public", "captcha.engine.recaptcha.url.script", "captcha.engine.recaptcha.url.noscript", "captcha.engine.recaptcha.url.verify", "captcha.engine.simplecaptcha.height", "captcha.engine.simplecaptcha.width", "captcha.engine.simplecaptcha.background.producers", "captcha.engine.simplecaptcha.gimpy.renderers", "captcha.engine.simplecaptcha.noise.producers", "captcha.engine.simplecaptcha.text.producers", "captcha.engine.simplecaptcha.word.renderers", "cas.validate.url", "cluster.executor.heartbeat.interval", "com.liferay.filters.doubleclick.DoubleClickFilter", "com.liferay.portal.servlet.filters.audit.AuditFilter", "com.liferay.portal.servlet.filters.doubleclick.DoubleClickFilter", "com.liferay.portal.servlet.filters.charbufferpool." + "CharBufferPoolFilter", "com.liferay.portal.servlet.filters.monitoring.MonitoringFilter", "com.liferay.portal.servlet.filters.secure.SecureFilter", "com.liferay.portal.servlet.filters.validhtml.ValidHtmlFilter", "commons.pool.enabled", "company.settings.form.configuration", "company.settings.form.identification", "company.settings.form.miscellaneous", "company.settings.form.social", "control.panel.home.portlet.id", "convert.processes", "default.guest.public.layout.wap.color.scheme.id", "default.guest.public.layout.wap.theme.id", "default.user.private.layout.wap.color.scheme.id", "default.user.private.layout.wap.theme.id", "default.user.public.layout.wap.color.scheme.id", "default.user.public.layout.wap.theme.id", "default.wap.color.scheme.id", "default.wap.theme.id", "discussion.thread.view", "dl.file.entry.image.exif.metadata.rotation.enabled", "dl.file.entry.read.count.enabled", "dl.folder.menu.visible", "dockbar.add.portlets", "dockbar.administrative.links.show.in.pop.up", "dynamic.data.lists.record.set.force.autogenerate.key", "dynamic.data.lists.template.language.parser[ftl]", "dynamic.data.lists.template.language.parser[vm]", "dynamic.data.lists.template.language.parser[xsl]", "dynamic.data.mapping.structure.index.with.thread", "dynamic.data.mapping.structure.private.field.names", "dynamic.data.mapping.structure.private.field.datatype[_fieldsDisplay]", "dynamic.data.mapping.structure.private.field.repeatable[" + "_fieldsDisplay]", "dynamic.data.mapping.template.language.types", "editor.ckeditor.version", "editor.inline.editing.enabled", "editor.wysiwyg.portal-web.docroot.html.portlet.asset_publisher." + "configuration.jsp", "editor.wysiwyg.portal-web.docroot.html.portlet.blogs.configuration." + "jsp", "editor.wysiwyg.portal-web.docroot.html.portlet.bookmarks." + "configuration.jsp", "editor.wysiwyg.portal-web.docroot.html.portlet.document_library." + "editor.wysiwyg.portal-web.docroot.html.portlet.invitation." + "configuration.jsp", "editor.wysiwyg.portal-web.docroot.html.portlet.journal." + "configuration.jsp", "editor.wysiwyg.portal-web.docroot.html.portlet.login.configuration." + "jsp", "editor.wysiwyg.portal-web.docroot.html.portlet.message_boards." + "configuration.jsp", "editor.wysiwyg.portal-web.docroot.html.portlet.portal_settings." + "email_notifications.jsp", "ehcache.bootstrap.cache.loader.factory", "ehcache.cache.event.listener.factory", "ehcache.cache.manager.peer.listener.factory", "ehcache.cache.manager.peer.provider.factory", "ehcache.cache.manager.statistics.thread.pool.size", "ehcache.multi.vm.config.location.peerProviderProperties", "ehcache.statistics.enabled", "hot.deploy.hook.custom.jsp.verification.enabled", "hibernate.cache.region.factory_class", "hibernate.cache.use_minimal_puts", "hibernate.cache.use_query_cache", "hibernate.cache.use_second_level_cache", "hibernate.cache.use_structured_entries", "icq.jar", "icq.login", "icq.password", "index.filter.search.limit", "index.portal.field.analyzer.enabled", "index.read.only", "invitation.email.max.recipients", "invitation.email.message.body", "invitation.email.message.subject", "javax.persistence.validation.mode", "jbi.workflow.url", "json.deserializer.strict.mode", "journal.article.form.add", "journal.article.form.default.values", "journal.article.form.update", "journal.article.form.translate", "journal.article.types", "journal.articles.page.delta.values", "journal.browse.by.structures.sorted.by.name", "journal.image.extensions", "journal.image.small.max.size", "journal.template.language.parser[css]", "journal.template.language.parser[ftl]", "journal.template.language.parser[vm]", "journal.template.language.parser[xsl]", "journal.template.language.types", "jpa.configs", "jpa.database.platform", "jpa.database.type", "jpa.load.time.weaver", "jpa.provider", "jpa.provider.property.eclipselink.allow-zero-id", "jpa.provider.property.eclipselink.logging.level", "jpa.provider.property.eclipselink.logging.timestamp", "language.display.style.options", "layout.configuration.action.update[link_to_layout]", "layout.configuration.action.delete[link_to_layout]", "layout.edit.page[control_panel]", "layout.edit.page[link_to_layout]", "layout.first.pageable[control_panel]", "layout.first.pageable[link_to_layout]", "layout.form.add", "layout.form.update", "layout.parentable[control_panel]", "layout.parentable[link_to_layout]", "layout.reset.portlet.ids", "layout.set.form.update", "layout.sitemapable[link_to_layout]", "layout.types", "layout.url[control_panel]", "layout.url[link_to_layout]", "layout.url.friendliable[control_panel]", "layout.url.friendliable[link_to_layout]", "layout.view.page[control_panel]", "layout.view.page[link_to_layout]", "library.download.url.resin.jar", "library.download.url.script-10.jar", "lucene.analyzer", "lucene.cluster.index.loading.sync.timeout", "lucene.file.extractor", "lucene.file.extractor.regexp.strip", "lucene.replicate.write", "lucene.store.jdbc.auto.clean.up", "lucene.store.jdbc.auto.clean.up.enabled", "lucene.store.jdbc.auto.clean.up.interval", "lucene.store.jdbc.dialect.db2", "lucene.store.jdbc.dialect.derby", "lucene.store.jdbc.dialect.hsqldb", "lucene.store.jdbc.dialect.jtds", "lucene.store.jdbc.dialect.microsoft", "lucene.store.jdbc.dialect.mysql", "lucene.store.jdbc.dialect.oracle", "lucene.store.jdbc.dialect.postgresql", "mail.hook.cyrus.add.user", "mail.hook.cyrus.delete.user", "mail.hook.cyrus.home", "mail.hook.fusemail.account.type", "mail.hook.fusemail.group.parent", "mail.hook.fusemail.password", "mail.hook.fusemail.url", "mail.hook.fusemail.username", "memory.cluster.scheduler.lock.cache.enabled", "message.boards.email.message.added.signature", "message.boards.email.message.updated.signature", "message.boards.thread.locking.enabled", "message.boards.thread.previous.and.next.navigation.enabled", "message.boards.thread.views", "message.boards.thread.views.default", "microsoft.translator.client.id", "microsoft.translator.client.secret", "mobile.device.styling.wap.enabled", "module.framework.initial.bundles", "msn.login", "msn.password", "multicast.group.address[\"hibernate\"]", "multicast.group.port[\"hibernate\"]", "net.sf.ehcache.configurationResourceName", "net.sf.ehcache.configurationResourceName.peerProviderProperties", "openoffice.server.enabled", "openoffice.server.host", "openoffice.server.port", "openoffice.cache.enabled", "organizations.form.add.identification", "organizations.form.add.main", "organizations.form.add.miscellaneous", "organizations.form.update.identification", "organizations.form.update.main", "organizations.form.update.miscellaneous", "organizations.indexer.enabled", "portal.cache.manager.type.multi.vm", "portal.cache.manager.type.single.vm", "portal.ctx", "portal.security.manager.enable", "permissions.list.filter", "permissions.thread.local.cache.max.size", "permissions.user.check.algorithm", "persistence.provider", "ratings.max.score", "ratings.min.score", "sandbox.deploy.dir", "sandbox.deploy.enabled", "sandbox.deploy.interval", "sandbox.deploy.listeners", "sc.image.max.size", "sc.image.thumbnail.max.height", "sc.image.thumbnail.max.width", "sc.product.comments.enabled", "scheduler.classes", "schema.run.minimal", "search.container.page.iterator.page.values", "service.builder.service.read.only.prefixes", "shard.available.names", "shard.default.name", "shard.selector", "shopping.image.extensions", "shopping.image.large.max.size", "shopping.image.medium.max.size", "shopping.image.small.max.size", "siteminder.auth.enabled", "siteminder.import.from.ldap", "siteminder.user.header", "sites.form.add.advanced", "sites.form.add.main", "sites.form.add.miscellaneous", "sites.form.add.seo", "sites.form.update.advanced", "sites.form.update.main", "sites.form.update.miscellaneous", "sites.form.update.seo", "staging.lock.enabled", "social.activity.sets.bundling.enabled", "table.mapper.cache.mapping.table.names", "tck.url", "user.groups.indexer.enabled", "users.form.add.identification", "users.indexer.enabled", "users.form.add.main", "users.form.add.miscellaneous", "users.form.my.account.identification", "users.form.my.account.main", "users.form.my.account.miscellaneous", "users.form.update.identification", "users.form.update.main", "users.form.update.miscellaneous", "users.image.check.token", "users.image.default.use.initials", "users.image.max.height", "users.image.max.size", "users.image.max.width", "vaadin.resources.path", "vaadin.theme", "vaadin.widgetset", "webdav.storage.class", "webdav.storage.show.edit.url", "webdav.storage.show.view.url", "webdav.storage.tokens", "wiki.email.page.added.signature", "wiki.email.page.updated.signature", "xss.allow", "ym.login", "ym.password" }; private static final String[] _OBSOLETE_SYSTEM_KEYS = new String[] { "com.liferay.util.Http.proxy.host", "com.liferay.util.Http.proxy.port", "com.liferay.util.XSSUtil.regexp.pattern" }; private static final String[][] _RENAMED_PORTAL_KEYS = new String[][] { new String[] { "amazon.license.0", "amazon.access.key.id" }, new String[] {"amazon.license.1", "amazon.access.key.id"}, new String[] {"amazon.license.2", "amazon.access.key.id"}, new String[] {"amazon.license.3", "amazon.access.key.id"}, new String[] {"cdn.host", "cdn.host.http"}, new String[] { "cluster.executor.debug.enabled", "cluster.link.debug.enabled" }, new String[] { "com.liferay.portal.servlet.filters.compression.CompressionFilter", "com.liferay.portal.servlet.filters.gzip.GZipFilter" }, new String[] { "default.guest.friendly.url", "default.guest.public.layout.friendly.url" }, new String[] { "default.guest.layout.column", "default.guest.public.layout.column" }, new String[] { "default.guest.layout.name", "default.guest.public.layout.name" }, new String[] { "default.guest.layout.template.id", "default.guest.public.layout.template.id" }, new String[] { "default.user.layout.column", "default.user.public.layout.column" }, new String[] { "default.user.layout.name", "default.user.public.layout.name" }, new String[] { "default.user.layout.template.id", "default.user.public.layout.template.id" }, new String[] { "default.user.private.layout.lar", "default.user.private.layouts.lar" }, new String[] { "default.user.public.layout.lar", "default.user.public.layouts.lar" }, new String[] { "dl.hook.cmis.credentials.password", "dl.store.cmis.credentials.password" }, new String[] { "dl.hook.cmis.credentials.username", "dl.store.cmis.credentials.username" }, new String[] { "dl.hook.cmis.repository.url", "dl.store.cmis.repository.url" }, new String[] { "dl.hook.cmis.system.root.dir", "dl.store.cmis.system.root.dir" }, new String[] { "dl.hook.file.system.root.dir", "dl.store.file.system.root.dir" }, new String[] {"dl.hook.impl", "dl.store.impl"}, new String[] {"dl.hook.jcr.fetch.delay", "dl.store.jcr.fetch.delay"}, new String[] { "dl.hook.jcr.fetch.max.failures", "dl.store.jcr.fetch.max.failures" }, new String[] { "dl.hook.jcr.move.version.labels", "dl.store.jcr.move.version.labels" }, new String[] {"dl.hook.s3.access.key", "dl.store.s3.access.key"}, new String[] {"dl.hook.s3.bucket.name", "dl.store.s3.bucket.name"}, new String[] {"dl.hook.s3.secret.key", "dl.store.s3.secret.key"}, new String[] { "editor.wysiwyg.portal-web.docroot.html.portlet.calendar." + "edit_configuration.jsp", "editor.wysiwyg.portal-web.docroot.html.portlet.calendar." + "configuration.jsp" }, new String[] { "editor.wysiwyg.portal-web.docroot.html.portlet.invitation." + "edit_configuration.jsp", "editor.wysiwyg.portal-web.docroot.html.portlet.invitation." + "configuration.jsp" }, new String[] { "editor.wysiwyg.portal-web.docroot.html.portlet.journal." + "edit_configuration.jsp", "editor.wysiwyg.portal-web.docroot.html.portlet.journal." + "configuration.jsp" }, new String[] { "editor.wysiwyg.portal-web.docroot.html.portlet.message_boards." + "edit_configuration.jsp", "editor.wysiwyg.portal-web.docroot.html.portlet.message_boards." + "configuration.jsp" }, new String[] { "editor.wysiwyg.portal-web.docroot.html.portlet.shopping." + "edit_configuration.jsp", "editor.wysiwyg.portal-web.docroot.html.portlet.shopping." + "configuration.jsp" }, new String[] { "field.editable.com.liferay.portal.kernel.model.User.emailAddress", "field.editable.user.types" }, new String[] { "field.editable.com.liferay.portal.kernel.model.User.screenName", "field.editable.user.types" }, new String[] {"icon.menu.max.display.items", "menu.max.display.items"}, new String[] { "journal.error.template.freemarker", "journal.error.template[ftl]" }, new String[] { "journal.error.template.velocity", "journal.error.template[vm]" }, new String[] { "journal.error.template.xsl", "journal.error.template[xsl]" }, new String[] { "journal.template.velocity.restricted.variables", "velocity.engine.restricted.variables" }, new String[] { "passwords.passwordpolicytoolkit.charset.lowercase", "passwords.passwordpolicytoolkit.validator.charset.lowercase" }, new String[] { "passwords.passwordpolicytoolkit.charset.numbers", "passwords.passwordpolicytoolkit.validator.charset.numbers" }, new String[] { "passwords.passwordpolicytoolkit.charset.symbols", "passwords.passwordpolicytoolkit.validator.charset.symbols" }, new String[] { "passwords.passwordpolicytoolkit.charset.uppercase", "passwords.passwordpolicytoolkit.validator.charset.uppercase" }, new String[] { "permissions.inline.sql.resource.block.query.threshhold", "permissions.inline.sql.resource.block.query.threshold" }, new String[] { "portal.instance.http.port", "portal.instance.http.socket.address" }, new String[] { "portal.instance.https.port", "portal.instance.http.socket.address" }, new String[] { "referer.url.domains.allowed", "redirect.url.domains.allowed" }, new String[] {"referer.url.ips.allowed", "redirect.url.ips.allowed"}, new String[] { "referer.url.security.mode", "redirect.url.security.mode" }, new String[] { "tags.asset.increment.view.counter.enabled", "asset.entry.increment.view.counter.enabled" } }; private static final String[][] _RENAMED_SYSTEM_KEYS = new String[][] { new String[] { "com.liferay.portal.kernel.util.StringBundler.unsafe.create." + "threshold", "com.liferay.portal.kernel.util.StringBundler.threadlocal.buffer." + "limit" } }; private static final Log _log = LogFactoryUtil.getLog( VerifyProperties.class); }