/* * JBoss, Home of Professional Open Source. * Copyright 2011, Red Hat, Inc., and individual contributors * as indicated by the @author tags. See the copyright.txt file in the * distribution for a full listing of individual contributors. * * This 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 software 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. * * You should have received a copy of the GNU Lesser General Public * License along with this software; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA, or see the FSF site: http://www.fsf.org. */ package org.teiid.jboss; import java.util.HashMap; import java.util.Map; @SuppressWarnings("nls") enum Element { // must be first UNKNOWN(null), // VM wide elements ASYNC_THREAD_POOL_ELEMENT("async-thread-pool", "async-thread-pool"), THREAD_COUNT_ATTRIBUTE("max-thread-count", "async-thread-pool-max-thread-count"), ALLOW_ENV_FUNCTION_ELEMENT("allow-env-function", "allow-env-function"), MAX_THREADS_ELEMENT("max-threads", "max-threads"), MAX_ACTIVE_PLANS_ELEMENT("max-active-plans", "max-active-plans"), USER_REQUEST_SOURCE_CONCURRENCY_ELEMENT("thread-count-for-source-concurrency", "thread-count-for-source-concurrency"), TIME_SLICE_IN_MILLI_ELEMENT("time-slice-in-milliseconds", "time-slice-in-milliseconds"), @Deprecated TIME_SLICE_IN_MILL_ELEMENT("time-slice-in-millseconds", "time-slice-in-millseconds"), MAX_ROWS_FETCH_SIZE_ELEMENT("max-row-fetch-size", "max-row-fetch-size"), LOB_CHUNK_SIZE_IN_KB_ELEMENT("lob-chunk-size-in-kb", "lob-chunk-size-in-kb"), QUERY_THRESHOLD_IN_SECS_ELEMENT("query-threshold-in-seconds", "query-threshold-in-seconds"), MAX_SOURCE_ROWS_ELEMENT("max-source-rows-allowed", "max-source-rows-allowed"), EXCEPTION_ON_MAX_SOURCE_ROWS_ELEMENT("exception-on-max-source-rows", "exception-on-max-source-rows"), DETECTING_CHANGE_EVENTS_ELEMENT("detect-change-events", "detect-change-events"), QUERY_TIMEOUT("query-timeout", "query-timeout"), WORKMANAGER("workmanager", "workmanager"), POLICY_DECIDER_MODULE_ELEMENT("policy-decider-module", "policy-decider-module"), DATA_ROLES_REQUIRED_ELEMENT("data-roles-required", "data-roles-required"), AUTHORIZATION_VALIDATOR_MODULE_ELEMENT("authorization-validator-module", "authorization-validator-module"), PREPARSER_MODULE_ELEMENT("preparser-module", "preparser-module"), // buffer manager BUFFER_SERVICE_ELEMENT("buffer-service"), USE_DISK_ATTRIBUTE("use-disk", "buffer-service-use-disk"), PROCESSOR_BATCH_SIZE_ATTRIBUTE("processor-batch-size", "buffer-service-processor-batch-size"), @Deprecated CONNECTOR_BATCH_SIZE_ATTRIBUTE("connector-batch-size", "buffer-service-connector-batch-size"), MAX_PROCESSING_KB_ATTRIBUTE("max-processing-kb", "buffer-service-max-processing-kb"), MAX_RESERVED_KB_ATTRIBUTE("max-reserve-kb", "buffer-service-max-reserve-kb"), MAX_FILE_SIZE_ATTRIBUTE("max-file-size", "buffer-service-max-file-size"), MAX_BUFFER_SPACE_ATTRIBUTE("max-buffer-space", "buffer-service-max-buffer-space"), MAX_OPEN_FILES_ATTRIBUTE("max-open-files", "buffer-service-max-open-files"), MEMORY_BUFFER_SPACE_ATTRIBUTE("memory-buffer-space", "buffer-service-memory-buffer-space"), MEMORY_BUFFER_OFFHEAP_ATTRIBUTE("memory-buffer-off-heap", "buffer-service-memory-buffer-off-heap"), MAX_STORAGE_OBJECT_SIZE_ATTRIBUTE("max-storage-object-size", "buffer-service-max-storage-object-size"), INLINE_LOBS("inline-lobs", "buffer-service-inline-lobs"), ENCRYPT_FILES_ATTRIBUTE("encrypt-files", "buffer-service-encrypt-files"), //prepared-plan-cache-config PREPAREDPLAN_CACHE_ELEMENT("preparedplan-cache"), PPC_ENABLE_ATTRIBUTE("enable", "preparedplan-cache-enable"), PPC_NAME_ATTRIBUTE("name", "preparedplan-cache-name"), PPC_CONTAINER_NAME_ELEMENT("infinispan-container", "preparedplan-cache-infinispan-container"), // Object Replicator DISTRIBUTED_CACHE("distributed-cache"), DC_STACK_ATTRIBUTE("jgroups-stack", "distributed-cache-jgroups-stack"), // Result set cache RESULTSET_CACHE_ELEMENT("resultset-cache"), RSC_ENABLE_ATTRIBUTE("enable", "resultset-cache-enable"), RSC_NAME_ATTRIBUTE("name", "resultset-cache-name"), RSC_CONTAINER_NAME_ATTRIBUTE("infinispan-container", "resultset-cache-infinispan-container"), RSC_MAX_STALENESS_ATTRIBUTE("max-staleness", "resultset-cache-max-staleness"), //transport TRANSPORT_ELEMENT("transport"), TRANSPORT_PROTOCOL_ATTRIBUTE("protocol", "protocol"), TRANSPORT_NAME_ATTRIBUTE("name", "name"), TRANSPORT_SOCKET_BINDING_ATTRIBUTE("socket-binding", "socket-binding"), TRANSPORT_MAX_SOCKET_THREADS_ATTRIBUTE("max-socket-threads", "max-socket-threads"), TRANSPORT_IN_BUFFER_SIZE_ATTRIBUTE("input-buffer-size", "input-buffer-size"), TRANSPORT_OUT_BUFFER_SIZE_ATTRIBUTE("output-buffer-size", "output-buffer-size"), AUTHENTICATION_ELEMENT("authentication"), AUTHENTICATION_SECURITY_DOMAIN_ATTRIBUTE("security-domain", "authentication-security-domain"), AUTHENTICATION_MAX_SESSIONS_ALLOWED_ATTRIBUTE("max-sessions-allowed", "authentication-max-sessions-allowed"), AUTHENTICATION_SESSION_EXPIRATION_TIME_LIMIT_ATTRIBUTE("sessions-expiration-timelimit", "authentication-sessions-expiration-timelimit"), AUTHENTICATION_TYPE_ATTRIBUTE("type", "authentication-type"), AUTHENTICATION_TRUST_ALL_LOCAL_ATTRIBUTE("trust-all-local", "authentication-trust-all-local"), AUTHENTICATION_ALLOW_SECURITY_DOMAIN_QUALIFIER("allow-security-domain-qualifier", "authentication-allow-security-domain-qualifier"), PG_ELEMENT("pg"), //$NON-NLS-1$ PG_MAX_LOB_SIZE_ALLOWED_ELEMENT("max-lob-size-in-bytes", "pg-max-lob-size-in-bytes"), //$NON-NLS-1$ //$NON-NLS-2$ SSL_ELEMENT("ssl"), SSL_MODE_ATTRIBUTE("mode", "ssl-mode"), SSL_AUTH_MODE_ATTRIBUTE("authentication-mode", "ssl-authentication-mode"), SSL_SSL_PROTOCOL_ATTRIBUTE("ssl-protocol", "ssl-ssl-protocol"), SSL_KEY_MANAGEMENT_ALG_ATTRIBUTE("keymanagement-algorithm", "ssl-keymanagement-algorithm"), SSL_ENABLED_CIPHER_SUITES_ATTRIBUTE("enabled-cipher-suites", "ssl-enabled-cipher-suites"), SSL_KETSTORE_ELEMENT("keystore"), SSL_KETSTORE_NAME_ATTRIBUTE("name", "keystore-name"), SSL_KETSTORE_ALIAS_ATTRIBUTE("key-alias", "keystore-key-alias"), SSL_KETSTORE_KEY_PASSWORD_ATTRIBUTE("key-password", "keystore-key-password"), SSL_KETSTORE_PASSWORD_ATTRIBUTE("password", "keystore-password"), SSL_KETSTORE_TYPE_ATTRIBUTE("type", "keystore-type"), SSL_TRUSTSTORE_ELEMENT("truststore"), SSL_TRUSTSTORE_NAME_ATTRIBUTE("name", "truststore-name"), SSL_TRUSTSTORE_PASSWORD_ATTRIBUTE("password", "truststore-password"), SSL_TRUSTSTORE_CHECK_EXIRIED_ATTRIBUTE("check-expired", "truststore-check-expired"), // Translator TRANSLATOR_ELEMENT("translator"), TRANSLATOR_NAME_ATTRIBUTE("name", "name"), TRANSLATOR_MODULE_ATTRIBUTE("module", "module"), TRANSLATOR_SLOT_ATTRIBUTE("slot", "slot"); private final String xmlName; private final String modelName; private Element(String xmlName) { this.xmlName = xmlName; this.modelName = xmlName; } Element(final String xmlName, final String modelName) { this.xmlName = xmlName; this.modelName = modelName; } public String getXMLName() { return xmlName; } public String getLocalName() { return xmlName; } public String getModelName() { return this.modelName; } private static final Map<String, Element> elements; static { final Map<String, Element> map = new HashMap<String, Element>(); for (Element element : values()) { final String name = element.getModelName(); if (name != null) map.put(name, element); } elements = map; } public static Element forName(String localName, Element parentNode) { String modelName = parentNode.getModelName()+"-"+localName; final Element element = elements.get(modelName); return element == null ? UNKNOWN : element; } public static Element forName(String localName) { final Element element = elements.get(localName); return element == null ? UNKNOWN : element; } }