/* * ModeShape (http://www.modeshape.org) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.modeshape.jboss.subsystem; import static org.modeshape.jboss.subsystem.ModeShapeExtension.JBOSS_DATA_DIR_VARIABLE; import org.jboss.as.controller.AttributeDefinition; import org.jboss.as.controller.ListAttributeDefinition; import org.jboss.as.controller.SimpleAttributeDefinition; import org.jboss.as.controller.SimpleAttributeDefinitionBuilder; import org.jboss.as.controller.SimpleListAttributeDefinition; import org.jboss.as.controller.access.management.SensitiveTargetAccessConstraintDefinition; import org.jboss.as.controller.client.helpers.MeasurementUnit; import org.jboss.as.controller.operations.validation.IntRangeValidator; import org.jboss.as.controller.operations.validation.ModelTypeValidator; import org.jboss.as.controller.operations.validation.ParameterValidator; import org.jboss.as.controller.registry.AttributeAccess; import org.jboss.dmr.ModelNode; import org.jboss.dmr.ModelType; import org.modeshape.jcr.ModeShapeRoles; import org.modeshape.jcr.RepositoryConfiguration; import org.modeshape.jcr.RepositoryConfiguration.FieldName; import org.modeshape.jcr.api.index.IndexDefinition.IndexKind; import org.modeshape.persistence.file.FileDbProvider; import org.modeshape.persistence.relational.RelationalDbConfig; /** * Attributes used in setting up ModeShape configurations. To mark an attribute as required, mark it as not allowing null. */ public class ModelAttributes { private static final ParameterValidator ROLE_NAME_VALIDATOR = new StringSetValidator(false, false, "", ModeShapeRoles.ADMIN, ModeShapeRoles.READONLY, ModeShapeRoles.READWRITE); private static final ParameterValidator WORKSPACE_NAME_VALIDATOR = new ModelTypeValidator(ModelType.STRING, false, false, true); private static final ParameterValidator NODE_TYPE_VALIDATOR = new ModelTypeValidator(ModelType.STRING, false, true, true); private static final ParameterValidator INITIAL_CONTENT_VALIDATOR = new ModelTypeValidator(ModelType.PROPERTY, false, true, true); private static final ParameterValidator DEFAULT_INITIAL_CONTENT_VALIDATOR = new ModelTypeValidator(ModelType.STRING, true, false, true); private static final ParameterValidator PATH_EXPRESSION_VALIDATOR = new PathExpressionValidator(false); private static final ParameterValidator PROJECTION_VALIDATOR = new ProjectionValidator(false); private static final ParameterValidator COLUMNS_VALIDATOR = new IndexColumnsValidator(false); private static final ParameterValidator INDEX_KIND_VALIDATOR = new StringSetValidator(true, true, RepositoryConfiguration.FieldValue.KIND_ENUMERATED, RepositoryConfiguration.FieldValue.KIND_NODE_TYPE, RepositoryConfiguration.FieldValue.KIND_TEXT, RepositoryConfiguration.FieldValue.KIND_UNIQUE, RepositoryConfiguration.FieldValue.KIND_VALUE); private static final ParameterValidator CLUSTER_LOCKING_VALIDATOR = new StringSetValidator(true, true, RepositoryConfiguration.FieldValue.LOCKING_JGROUPS, RepositoryConfiguration.FieldValue.LOCKING_DB); private static final ParameterValidator REINDEXING_MODE_VALIDATOR = new StringSetValidator(true, true, RepositoryConfiguration.ReindexingMode.IF_MISSING.name(), RepositoryConfiguration.ReindexingMode.INCREMENTAL.name()); private static final ParameterValidator MIME_TYPE_DETECTION_VALIDATOR = new StringSetValidator(true, true, RepositoryConfiguration.FieldValue.MIMETYPE_DETECTION_CONTENT, RepositoryConfiguration.FieldValue.MIMETYPE_DETECTION_NAME, RepositoryConfiguration.FieldValue.MIMETYPE_DETECTION_NONE); public static final SimpleAttributeDefinition ALLOW_WORKSPACE_CREATION = new MappedAttributeDefinitionBuilder(ModelKeys.ALLOW_WORKSPACE_CREATION, ModelType.BOOLEAN, FieldName.WORKSPACES, FieldName.ALLOW_CREATION) .setXmlName(Attribute.ALLOW_WORKSPACE_CREATION.getLocalName()) .setAllowExpression(true) .setAllowNull(true) .setDefaultValue(new ModelNode().set(true)) .setFlags(AttributeAccess.Flag.RESTART_NONE) .build(); public static final SimpleAttributeDefinition WORKSPACES_CACHE_SIZE = new SimpleAttributeDefinitionBuilder(ModelKeys.WORKSPACES_CACHE_SIZE, ModelType.INT) .setXmlName(Attribute.CACHE_SIZE.getLocalName()) .setAllowExpression(false) .setAllowNull(true) .setFlags(AttributeAccess.Flag.RESTART_NONE) .setValidator(new IntRangeValidator(1)) .build(); public static final ListAttributeDefinition ANONYMOUS_ROLES = MappedListAttributeDefinition.Builder.of(ModelKeys.ANONYMOUS_ROLES, new SimpleAttributeDefinitionBuilder(ModelKeys.ANONYMOUS_ROLE, ModelType.STRING) .setAllowExpression(true) .setAllowNull(true) .setDefaultValue(new ModelNode().add(new ModelNode().set( ModeShapeRoles.READONLY))) .setValidator(ROLE_NAME_VALIDATOR) .setFlags(AttributeAccess.Flag.RESTART_NONE) .setAccessConstraints( SensitiveTargetAccessConstraintDefinition.SECURITY_DOMAIN_REF) .build()) .setAllowNull(true) .setMinSize(0) .setMaxSize(100) .setFieldPathInRepositoryConfiguration( FieldName.SECURITY, FieldName.ANONYMOUS, FieldName.ANONYMOUS_ROLES) .setAccessConstraints( SensitiveTargetAccessConstraintDefinition.SECURITY_DOMAIN_REF) .build(); public static final SimpleAttributeDefinition ANONYMOUS_USERNAME = new MappedAttributeDefinitionBuilder(ModelKeys.ANONYMOUS_USERNAME, ModelType.STRING, FieldName.SECURITY, FieldName.ANONYMOUS, FieldName.ANONYMOUS_USERNAME) .setXmlName(Attribute.ANONYMOUS_USERNAME.getLocalName()) .setAllowExpression(true) .setAllowNull(true) .setDefaultValue(new ModelNode().set("<anonymous>")) .setFlags(AttributeAccess.Flag.RESTART_NONE) .setAccessConstraints(SensitiveTargetAccessConstraintDefinition.SECURITY_DOMAIN_REF) .build(); public static final MappedSimpleAttributeDefinition AUTHENTICATOR_CLASSNAME = new MappedAttributeDefinitionBuilder(ModelKeys.AUTHENTICATOR_CLASSNAME, ModelType.STRING, FieldName.SECURITY, FieldName.PROVIDERS, FieldName.CLASSNAME) .setXmlName(Attribute.CLASSNAME.getLocalName()) .setAllowExpression(false) .setAllowNull(true) .setFlags(AttributeAccess.Flag.RESTART_NONE) .build(); public static final SimpleAttributeDefinition CLASSNAME = new SimpleAttributeDefinitionBuilder(ModelKeys.CLASSNAME, ModelType.STRING) .setXmlName(Attribute.CLASSNAME.getLocalName()) .setAllowExpression(false) .setAllowNull(true) .setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES) .build(); public static final SimpleAttributeDefinition REPOSITORY_MODULE_DEPENDENCIES = new SimpleAttributeDefinitionBuilder(ModelKeys.REPOSITORY_MODULE_DEPENDENCIES, ModelType.STRING) .setXmlName(Attribute.REPOSITORY_MODULE_DEPENDENCIES.getLocalName()) .setAllowExpression(false) .setAllowNull(true) .setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES) .build(); public static final SimpleAttributeDefinition DATA_SOURCE_JNDI_NAME = new SimpleAttributeDefinitionBuilder(ModelKeys.DATA_SOURCE_JNDI_NAME, ModelType.STRING) .setXmlName(Attribute.DATA_SOURCE_JNDI_NAME.getLocalName()) .setAllowExpression(true) .setAllowNull(false) .setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES) .build(); public static final MappedSimpleAttributeDefinition DEFAULT_WORKSPACE = new MappedAttributeDefinitionBuilder( ModelKeys.DEFAULT_WORKSPACE, ModelType.STRING, FieldName.WORKSPACES, FieldName.DEFAULT) .setXmlName(Attribute.DEFAULT_WORKSPACE.getLocalName()) .setAllowExpression(true) .setAllowNull(true) .setDefaultValue(new ModelNode().set("default")) .setFlags(AttributeAccess.Flag.RESTART_NONE) .build(); public static final MappedSimpleAttributeDefinition ENABLE_MONITORING = new MappedAttributeDefinitionBuilder( ModelKeys.ENABLE_MONITORING, ModelType.BOOLEAN, FieldName.MONITORING, FieldName.MONITORING_ENABLED) .setXmlName(Attribute.ENABLE_MONITORING.getLocalName()) .setAllowNull(true) .setAllowExpression(true) .setDefaultValue(new ModelNode().set(true)) .setFlags(AttributeAccess.Flag.RESTART_NONE) .build(); public static final SimpleAttributeDefinition CLUSTER_NAME = new SimpleAttributeDefinitionBuilder(ModelKeys.CLUSTER_NAME, ModelType.STRING) .setXmlName(Attribute.CLUSTER_NAME.getLocalName()) .setAllowExpression(true) .setAllowNull(true) .setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES) .build(); public static final SimpleAttributeDefinition CLUSTER_STACK = new SimpleAttributeDefinitionBuilder(ModelKeys.CLUSTER_STACK, ModelType.STRING) .setXmlName(Attribute.CLUSTER_STACK.getLocalName()) .setAllowExpression(true) .setAllowNull(true) .setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES) .build(); public static final SimpleAttributeDefinition CLUSTER_CONFIG = new SimpleAttributeDefinitionBuilder(ModelKeys.CLUSTER_CONFIG, ModelType.STRING) .setXmlName(Attribute.CLUSTER_CONFIG.getLocalName()) .setAllowExpression(true) .setAllowNull(true) .setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES) .build(); public static final SimpleAttributeDefinition CLUSTER_LOCKING = new SimpleAttributeDefinitionBuilder(ModelKeys.CLUSTER_LOCKING, ModelType.STRING) .setXmlName(Attribute.CLUSTER_LOCKING.getLocalName()) .setAllowExpression(true) .setAllowNull(true) .setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES) .setValidator(CLUSTER_LOCKING_VALIDATOR) .build(); public static final MappedSimpleAttributeDefinition GARBAGE_COLLECTION_THREAD_POOL = new MappedAttributeDefinitionBuilder(ModelKeys.GARBAGE_COLLECTION_THREAD_POOL, ModelType.STRING, FieldName.GARBAGE_COLLECTION, FieldName.THREAD_POOL) .setXmlName(Attribute.GARBAGE_COLLECTION_THREAD_POOL.getLocalName()) .setAllowExpression(true) .setAllowNull(true) .setDefaultValue(new ModelNode().set("modeshape-gc")) .setFlags(AttributeAccess.Flag.RESTART_NONE) .build(); public static final MappedSimpleAttributeDefinition GARBAGE_COLLECTION_INITIAL_TIME = new MappedAttributeDefinitionBuilder(ModelKeys.GARBAGE_COLLECTION_INITIAL_TIME, ModelType.STRING, FieldName.GARBAGE_COLLECTION, FieldName.INITIAL_TIME) .setXmlName(Attribute.GARBAGE_COLLECTION_INITIAL_TIME.getLocalName()) .setAllowExpression(true) .setAllowNull(true) .setDefaultValue(new ModelNode().set("00:00")) .setFlags(AttributeAccess.Flag.RESTART_NONE) .build(); public static final MappedSimpleAttributeDefinition GARBAGE_COLLECTION_INTERVAL = new MappedAttributeDefinitionBuilder(ModelKeys.GARBAGE_COLLECTION_INTERVAL, ModelType.INT, FieldName.GARBAGE_COLLECTION, FieldName.INTERVAL_IN_HOURS) .setXmlName(Attribute.GARBAGE_COLLECTION_INTERVAL.getLocalName()) .setAllowExpression(true) .setAllowNull(true) .setDefaultValue(new ModelNode().set(24)) .setMeasurementUnit(MeasurementUnit.HOURS) .setFlags(AttributeAccess.Flag.RESTART_NONE) .build(); public static final MappedSimpleAttributeDefinition DOCUMENT_OPTIMIZATION_THREAD_POOL = new MappedAttributeDefinitionBuilder(ModelKeys.DOCUMENT_OPTIMIZATION_THREAD_POOL, ModelType.STRING, FieldName.STORAGE, FieldName.DOCUMENT_OPTIMIZATION, FieldName.THREAD_POOL) .setXmlName(Attribute.DOCUMENT_OPTIMIZATION_THREAD_POOL.getLocalName()) .setAllowExpression(true) .setAllowNull(true) .setDefaultValue(new ModelNode().set("modeshape-opt")) .setFlags(AttributeAccess.Flag.RESTART_NONE) .build(); public static final MappedSimpleAttributeDefinition DOCUMENT_OPTIMIZATION_INITIAL_TIME = new MappedAttributeDefinitionBuilder(ModelKeys.DOCUMENT_OPTIMIZATION_INITIAL_TIME, ModelType.STRING, FieldName.STORAGE, FieldName.DOCUMENT_OPTIMIZATION, FieldName.INITIAL_TIME) .setXmlName(Attribute.DOCUMENT_OPTIMIZATION_INITIAL_TIME.getLocalName()) .setAllowExpression(true) .setAllowNull(true) .setDefaultValue(new ModelNode().set("00:00")) .setFlags(AttributeAccess.Flag.RESTART_NONE) .build(); public static final MappedSimpleAttributeDefinition DOCUMENT_OPTIMIZATION_INTERVAL = new MappedAttributeDefinitionBuilder(ModelKeys.DOCUMENT_OPTIMIZATION_INTERVAL, ModelType.INT, FieldName.STORAGE, FieldName.DOCUMENT_OPTIMIZATION, FieldName.INTERVAL_IN_HOURS) .setXmlName(Attribute.DOCUMENT_OPTIMIZATION_INTERVAL.getLocalName()) .setAllowExpression(true) .setAllowNull(true) .setDefaultValue(new ModelNode().set(24)) .setMeasurementUnit(MeasurementUnit.HOURS) .setFlags(AttributeAccess.Flag.RESTART_NONE) .build(); public static final MappedSimpleAttributeDefinition DOCUMENT_OPTIMIZATION_CHILD_COUNT_TARGET = new MappedAttributeDefinitionBuilder(ModelKeys.DOCUMENT_OPTIMIZATION_CHILD_COUNT_TARGET, ModelType.INT, FieldName.STORAGE, FieldName.DOCUMENT_OPTIMIZATION, FieldName.OPTIMIZATION_CHILD_COUNT_TARGET) .setXmlName(Attribute.DOCUMENT_OPTIMIZATION_CHILD_COUNT_TARGET.getLocalName()) .setAllowExpression(true) .setAllowNull(true) .setMeasurementUnit(MeasurementUnit.NONE) .setFlags(AttributeAccess.Flag.RESTART_NONE) .build(); public static final MappedSimpleAttributeDefinition DOCUMENT_OPTIMIZATION_CHILD_COUNT_TOLERANCE = new MappedAttributeDefinitionBuilder(ModelKeys.DOCUMENT_OPTIMIZATION_CHILD_COUNT_TOLERANCE, ModelType.INT, FieldName.STORAGE, FieldName.DOCUMENT_OPTIMIZATION, FieldName.OPTIMIZATION_CHILD_COUNT_TOLERANCE) .setXmlName(Attribute.DOCUMENT_OPTIMIZATION_CHILD_COUNT_TOLERANCE.getLocalName()) .setAllowExpression(true) .setAllowNull(true) .setMeasurementUnit(MeasurementUnit.NONE) .setFlags(AttributeAccess.Flag.RESTART_NONE) .build(); public static final MappedSimpleAttributeDefinition EVENT_BUS_SIZE = new MappedAttributeDefinitionBuilder(ModelKeys.EVENT_BUS_SIZE, ModelType.INT, FieldName.EVENT_BUS_SIZE) .setXmlName(Attribute.EVENT_BUS_SIZE.getLocalName()) .setAllowExpression(false) .setAllowNull(true) .setMeasurementUnit(MeasurementUnit.NONE) .setFlags(AttributeAccess.Flag.RESTART_NONE) .build(); public static final MappedSimpleAttributeDefinition LOCK_TIMEOUT_MILLIS = new MappedAttributeDefinitionBuilder(ModelKeys.LOCK_TIMEOUT_MILLIS, ModelType.INT, FieldName.LOCK_TIMEOUT_MILLIS) .setXmlName(Attribute.LOCK_TIMEOUT_MILLIS.getLocalName()) .setAllowExpression(false) .setAllowNull(true) .setMeasurementUnit(MeasurementUnit.NONE) .setFlags(AttributeAccess.Flag.RESTART_NONE) .build(); public static final MappedSimpleAttributeDefinition REINDEXING_ASYNC = new MappedAttributeDefinitionBuilder(ModelKeys.REINDEXING_ASYNC, ModelType.BOOLEAN, FieldName.REINDEXING, FieldName.REINDEXING_ASYNC) .setXmlName(Attribute.REINDEXING_ASNC.getLocalName()) .setAllowExpression(false) .setAllowNull(true) .setMeasurementUnit(MeasurementUnit.NONE) .setFlags(AttributeAccess.Flag.RESTART_NONE) .build(); public static final MappedSimpleAttributeDefinition REINDEXING_MODE = new MappedAttributeDefinitionBuilder(ModelKeys.REINDEXING_MODE, ModelType.STRING, FieldName.REINDEXING, FieldName.REINDEXING_MODE) .setXmlName(Attribute.REINDEXING_MODE.getLocalName()) .setAllowExpression(false) .setValidator(REINDEXING_MODE_VALIDATOR) .setAllowNull(true) .setMeasurementUnit(MeasurementUnit.NONE) .setFlags(AttributeAccess.Flag.RESTART_NONE) .build(); public static final SimpleAttributeDefinition INDEX_KIND = new SimpleAttributeDefinitionBuilder(ModelKeys.INDEX_KIND, ModelType.STRING) .setXmlName(Attribute.INDEX_KIND.getLocalName()) .setAllowExpression(true) .setAllowNull(true) .setDefaultValue(new ModelNode().set(IndexKind.VALUE.toString())) .setValidator(INDEX_KIND_VALIDATOR) .setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES) .build(); public static final SimpleAttributeDefinition SYNCHRONOUS = new SimpleAttributeDefinitionBuilder(ModelKeys.SYNCHRONOUS, ModelType.BOOLEAN) .setXmlName(Attribute.SYNCHRONOUS.getLocalName()) .setAllowExpression(true) .setAllowNull(true) .setDefaultValue(new ModelNode().set(Boolean.TRUE)) .setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES) .build(); public static final SimpleAttributeDefinition JNDI_NAME = new SimpleAttributeDefinitionBuilder(ModelKeys.JNDI_NAME, ModelType.STRING) .setXmlName(Attribute.JNDI_NAME.getLocalName()) .setAllowExpression(false) .setAllowNull(true) .setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES) .build(); public static final MappedSimpleAttributeDefinition MINIMUM_BINARY_SIZE = new MappedAttributeDefinitionBuilder(ModelKeys.MINIMUM_BINARY_SIZE, ModelType.INT, FieldName.STORAGE, FieldName.BINARY_STORAGE, FieldName.MINIMUM_BINARY_SIZE_IN_BYTES) .setXmlName(Attribute.MIN_VALUE_SIZE.getLocalName()) .setAllowExpression(false) .setAllowNull(true) .setMeasurementUnit(MeasurementUnit.BYTES) .setFlags(AttributeAccess.Flag.RESTART_NONE) .build(); public static final MappedSimpleAttributeDefinition MINIMUM_STRING_SIZE = new MappedAttributeDefinitionBuilder(ModelKeys.MINIMUM_STRING_SIZE, ModelType.INT, FieldName.STORAGE, FieldName.BINARY_STORAGE, FieldName.MINIMUM_STRING_SIZE) .setXmlName(Attribute.MIN_STRING_SIZE.getLocalName()) .setAllowExpression(false) .setAllowNull(true) .setMeasurementUnit(MeasurementUnit.NONE) .setFlags(AttributeAccess.Flag.RESTART_NONE) .build(); public static final MappedSimpleAttributeDefinition MIME_TYPE_DETECTION = new MappedAttributeDefinitionBuilder(ModelKeys.MIME_TYPE_DETECTION, ModelType.STRING, FieldName.STORAGE, FieldName.BINARY_STORAGE, FieldName.MIMETYPE_DETECTION) .setXmlName(Attribute.MIME_TYPE_DETECTION.getLocalName()) .setAllowExpression(false) .setAllowNull(true) .setMeasurementUnit(MeasurementUnit.NONE) .setFlags(AttributeAccess.Flag.RESTART_NONE) .setValidator(MIME_TYPE_DETECTION_VALIDATOR) .build(); public static final SimpleAttributeDefinition MODULE = new SimpleAttributeDefinitionBuilder(ModelKeys.MODULE, ModelType.STRING) .setXmlName(Attribute.MODULE.getLocalName()) .setAllowExpression(false) .setAllowNull(true) .setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES) .build(); public static final SimpleAttributeDefinition NAME = new SimpleAttributeDefinitionBuilder(ModelKeys.NAME, ModelType.STRING) .setXmlName(Attribute.NAME.getLocalName()) .setAllowExpression(false) .setAllowNull(false) .setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES) .build(); public static final SimpleAttributeDefinition NODE_TYPE_NAME = new SimpleAttributeDefinitionBuilder(ModelKeys.NODE_TYPE_NAME, ModelType.STRING) .setXmlName(Attribute.NODE_TYPE.getLocalName()) .setAllowExpression(true) .setAllowNull(true) .setDefaultValue(new ModelNode("nt:base")) .setValidator(NODE_TYPE_VALIDATOR) .setFlags(AttributeAccess.Flag.RESTART_NONE) .build(); public static final SimpleAttributeDefinition INDEX_COLUMNS = new SimpleAttributeDefinitionBuilder(ModelKeys.INDEX_COLUMNS, ModelType.STRING) .setXmlName(Attribute.COLUMNS.getLocalName()) .setAllowExpression(true) .setAllowNull(false) .setValidator(COLUMNS_VALIDATOR) .setFlags(AttributeAccess.Flag.RESTART_NONE) .build(); public static final SimpleAttributeDefinition PROVIDER_NAME = new SimpleAttributeDefinitionBuilder(ModelKeys.PROVIDER_NAME, ModelType.STRING) .setXmlName(Attribute.PROVIDER_NAME.getLocalName()) .setAllowExpression(true) .setAllowNull(true) .setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES) .build(); public static final SimpleAttributeDefinition WORKSPACES = new SimpleAttributeDefinitionBuilder(ModelKeys.WORKSPACES, ModelType.STRING) .setXmlName(Attribute.WORKSPACES.getLocalName()) .setAllowExpression(true) .setAllowNull(true) .setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES) .build(); public static final SimpleAttributeDefinition PATH = new SimpleAttributeDefinitionBuilder(ModelKeys.PATH, ModelType.STRING) .setXmlName(Attribute.PATH.getLocalName()) .setAllowExpression(true) .setAllowNull(true) .setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES) .build(); public static final SimpleAttributeDefinition TRASH = new SimpleAttributeDefinitionBuilder(ModelKeys.TRASH, ModelType.STRING) .setXmlName(Attribute.TRASH.getLocalName()) .setAllowExpression(true) .setAllowNull(true) .setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES) .build(); public static final ListAttributeDefinition PATH_EXPRESSIONS = MappedListAttributeDefinition.Builder.of(ModelKeys.PATH_EXPRESSIONS, new SimpleAttributeDefinitionBuilder(ModelKeys.PATH_EXPRESSION, ModelType.STRING) .setAllowExpression(true) .setAllowNull(false) .setValidator(PATH_EXPRESSION_VALIDATOR) .setFlags(AttributeAccess.Flag.RESTART_NONE) .build()) .setAllowNull(true) .setMinSize(0) .setFieldPathInRepositoryConfiguration(FieldName.SEQUENCING, FieldName.SEQUENCERS, FieldName.PATH_EXPRESSIONS) .build(); public static final ListAttributeDefinition PROJECTIONS = MappedListAttributeDefinition.Builder.of(ModelKeys.PROJECTIONS, new SimpleAttributeDefinitionBuilder(ModelKeys.PROJECTION, ModelType.STRING) .setAllowExpression(true) .setAllowNull(false) .setValidator(PROJECTION_VALIDATOR) .setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES) .build()) .setAllowNull(true) .setMinSize(1) .build(); public static final SimpleAttributeDefinition CONNECTOR_CLASSNAME = new SimpleAttributeDefinitionBuilder(ModelKeys.CONNECTOR_CLASSNAME, ModelType.STRING) .setXmlName(Attribute.CLASSNAME.getLocalName()) .setAllowExpression(false) .setAllowNull(true) .setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES) .build(); public static final SimpleAttributeDefinition CACHEABLE = new SimpleAttributeDefinitionBuilder(ModelKeys.CACHEABLE, ModelType.BOOLEAN) .setXmlName(Attribute.CACHEABLE.getLocalName()) .setAllowExpression(false) .setAllowNull(true) .setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES) .build(); public static final SimpleAttributeDefinition QUERYABLE = new SimpleAttributeDefinitionBuilder(ModelKeys.QUERYABLE, ModelType.BOOLEAN) .setXmlName(Attribute.QUERYABLE.getLocalName()) .setAllowExpression(false) .setAllowNull(true) .setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES) .build(); public static final SimpleAttributeDefinition READONLY = new SimpleAttributeDefinitionBuilder(ModelKeys.READONLY, ModelType.BOOLEAN) .setXmlName(Attribute.READONLY.getLocalName()) .setAllowExpression(false) .setAllowNull(true) .setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES) .setDefaultValue(new ModelNode(false)) .build(); public static final SimpleAttributeDefinition EXPOSE_AS_WORKSPACE = new SimpleAttributeDefinitionBuilder(ModelKeys.EXPOSE_AS_WORKSPACE, ModelType.STRING) .setXmlName(Attribute.EXPOSE_AS_WORKSPACE.getLocalName()) .setAllowExpression(false) .setAllowNull(true) .setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES) .build(); public static final ListAttributeDefinition PREDEFINED_WORKSPACE_NAMES = MappedListAttributeDefinition.Builder.of(ModelKeys.PREDEFINED_WORKSPACE_NAMES, new SimpleAttributeDefinitionBuilder(ModelKeys.PREDEFINED_WORKSPACE_NAME, ModelType.STRING) .setAllowExpression(true) .setAllowNull(false) .setValidator(WORKSPACE_NAME_VALIDATOR) .setFlags(AttributeAccess.Flag.RESTART_NONE) .build()) .setAllowNull(true) .setMinSize(0) .setFieldPathInRepositoryConfiguration(FieldName.WORKSPACES, FieldName.PREDEFINED) .build(); public static final SimpleAttributeDefinition DEFAULT_INITIAL_CONTENT = new SimpleAttributeDefinitionBuilder(ModelKeys.DEFAULT_INITIAL_CONTENT, ModelType.STRING) .setAllowExpression(true) .setAllowNull(true) .setValidator(DEFAULT_INITIAL_CONTENT_VALIDATOR) .setFlags(AttributeAccess.Flag.RESTART_NONE) .build(); public static final ListAttributeDefinition WORKSPACES_INITIAL_CONTENT = MappedListAttributeDefinition.Builder.of(ModelKeys.WORKSPACES_INITIAL_CONTENT, new SimpleAttributeDefinitionBuilder(ModelKeys.INITIAL_CONTENT, ModelType.PROPERTY) .setAllowNull(false) .setFlags(AttributeAccess.Flag.RESTART_NONE) .setValidator(INITIAL_CONTENT_VALIDATOR) .build()) .setAllowNull(true) .setMinSize(0) .build(); public static final ListAttributeDefinition NODE_TYPES = MappedListAttributeDefinition.Builder.of(ModelKeys.NODE_TYPES, new SimpleAttributeDefinitionBuilder(ModelKeys.NODE_TYPE, ModelType.STRING) .setAllowExpression(true) .setAllowNull(false) .setValidator(NODE_TYPE_VALIDATOR) .setFlags(AttributeAccess.Flag.RESTART_NONE) .build()) .setAllowNull(true) .setAllowExpression(true) .setMinSize(0) .build(); public static final SimpleAttributeDefinition PROPERTY = new SimpleAttributeDefinition(ModelKeys.PROPERTY, ModelType.PROPERTY, true); public static final SimpleListAttributeDefinition PROPERTIES = SimpleListAttributeDefinition.Builder.of(ModelKeys.PROPERTIES, PROPERTY) .setAllowNull(true) .setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES) .build(); public static final SimpleAttributeDefinition RELATIVE_TO = new SimpleAttributeDefinitionBuilder(ModelKeys.RELATIVE_TO, ModelType.STRING) .setXmlName(Attribute.RELATIVE_TO.getLocalName()) .setAllowExpression(true) .setAllowNull(true) .setDefaultValue(new ModelNode().set(JBOSS_DATA_DIR_VARIABLE)) .setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES) .build(); public static final MappedSimpleAttributeDefinition SEQUENCER_CLASSNAME = new MappedAttributeDefinitionBuilder(ModelKeys.SEQUENCER_CLASSNAME, ModelType.STRING, FieldName.SEQUENCING, FieldName.SEQUENCERS, FieldName.CLASSNAME) .setXmlName(Attribute.CLASSNAME.getLocalName()) .setAllowExpression(false) .setAllowNull(true) .setFlags(AttributeAccess.Flag.RESTART_NONE) .build(); public static final MappedSimpleAttributeDefinition SEQUENCER_THREAD_POOL_NAME = new MappedAttributeDefinitionBuilder(ModelKeys.SEQUENCERS_THREAD_POOL_NAME, ModelType.STRING, FieldName.SEQUENCING, FieldName.SEQUENCERS, FieldName.THREAD_POOL) .setXmlName(Attribute.THREAD_POOL_NAME.getLocalName()) .setAllowExpression(false) .setAllowNull(true) .setFlags(AttributeAccess.Flag.RESTART_NONE) .setDefaultValue(new ModelNode().set(RepositoryConfiguration.Default.SEQUENCING_POOL)) .build(); public static final MappedSimpleAttributeDefinition SEQUENCER_MAX_POOL_SIZE = new MappedAttributeDefinitionBuilder(ModelKeys.SEQUENCERS_MAX_POOL_SIZE, ModelType.STRING, FieldName.SEQUENCING, FieldName.SEQUENCERS, FieldName.MAX_POOL_SIZE) .setXmlName(Attribute.MAX_POOL_SIZE.getLocalName()) .setAllowExpression(false) .setAllowNull(true) .setFlags(AttributeAccess.Flag.RESTART_NONE) .setDefaultValue(new ModelNode().set(RepositoryConfiguration.Default.SEQUENCING_MAX_POOL_SIZE)) .build(); public static final SimpleAttributeDefinition STORE_NAME = new SimpleAttributeDefinitionBuilder(ModelKeys.STORE_NAME, ModelType.STRING) .setXmlName(Attribute.STORE_NAME.getLocalName()) .setAllowExpression(false) .setAllowNull(true) .setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES) .build(); public static final ListAttributeDefinition NESTED_STORES = MappedListAttributeDefinition.Builder.of(ModelKeys.NESTED_STORES, new SimpleAttributeDefinitionBuilder(ModelKeys.STORE_NAME, ModelType.STRING) .setAllowExpression(false) .setAllowNull(false) .setFlags(AttributeAccess.Flag.RESTART_NONE) .build()) .setAllowNull(false) .setFlags(AttributeAccess.Flag.RESTART_NONE) .build(); public static final MappedSimpleAttributeDefinition TEXT_EXTRACTOR_CLASSNAME = new MappedAttributeDefinitionBuilder(ModelKeys.TEXT_EXTRACTOR_CLASSNAME, ModelType.STRING, FieldName.TEXT_EXTRACTION, FieldName.EXTRACTORS, FieldName.CLASSNAME) .setXmlName(Attribute.CLASSNAME.getLocalName()) .setAllowExpression(false) .setAllowNull(true) .setFlags(AttributeAccess.Flag.RESTART_NONE) .build(); public static final MappedSimpleAttributeDefinition TEXT_EXTRACTOR_THREAD_POOL_NAME = new MappedAttributeDefinitionBuilder(ModelKeys.TEXT_EXTRACTORS_THREAD_POOL_NAME, ModelType.STRING, FieldName.TEXT_EXTRACTION, FieldName.EXTRACTORS, FieldName.THREAD_POOL) .setXmlName(Attribute.THREAD_POOL_NAME.getLocalName()) .setAllowExpression(false) .setAllowNull(true) .setFlags(AttributeAccess.Flag.RESTART_NONE) .setDefaultValue(new ModelNode().set(RepositoryConfiguration.Default.TEXT_EXTRACTION_POOL)) .build(); public static final MappedSimpleAttributeDefinition TEXT_EXTRACTOR_MAX_POOL_SIZE = new MappedAttributeDefinitionBuilder(ModelKeys.TEXT_EXTRACTORS_MAX_POOL_SIZE, ModelType.STRING, FieldName.TEXT_EXTRACTION, FieldName.EXTRACTORS, FieldName.MAX_POOL_SIZE ) .setXmlName(Attribute.MAX_POOL_SIZE.getLocalName()) .setAllowExpression(false) .setAllowNull(true) .setFlags(AttributeAccess.Flag.RESTART_NONE) .setDefaultValue(new ModelNode().set(RepositoryConfiguration.Default.TEXT_EXTRACTION_MAX_POOL_SIZE)) .build(); public static final MappedSimpleAttributeDefinition SECURITY_DOMAIN = new MappedAttributeDefinitionBuilder(ModelKeys.SECURITY_DOMAIN, ModelType.STRING, FieldName.SECURITY, FieldName.JAAS, FieldName.JAAS_POLICY_NAME) .setXmlName(Attribute.SECURITY_DOMAIN.getLocalName()) .setAllowExpression(true) .setAllowNull(true) .setDefaultValue(new ModelNode().set("modeshape-security")) .setFlags(AttributeAccess.Flag.RESTART_NONE) .setAccessConstraints(SensitiveTargetAccessConstraintDefinition.SECURITY_DOMAIN_REF) .build(); public static final MappedSimpleAttributeDefinition USE_ANONYMOUS_IF_AUTH_FAILED = new MappedAttributeDefinitionBuilder(ModelKeys.USE_ANONYMOUS_IF_AUTH_FAILED, ModelType.BOOLEAN, FieldName.SECURITY, FieldName.ANONYMOUS, FieldName.USE_ANONYMOUS_ON_FAILED_LOGINS) .setXmlName(Attribute.USE_ANONYMOUS_IF_AUTH_FAILED.getLocalName()) .setAllowExpression(true) .setAllowNull(true) .setDefaultValue(new ModelNode().set(false)) .setFlags(AttributeAccess.Flag.RESTART_NONE) .setAccessConstraints(SensitiveTargetAccessConstraintDefinition.SECURITY_DOMAIN_REF) .build(); public static final SimpleAttributeDefinition EXPLODED = new SimpleAttributeDefinitionBuilder(ModelKeys.EXPLODED, ModelType.BOOLEAN) .setXmlName(Attribute.EXPLODED.getLocalName()) .setAllowExpression(false) .setAllowNull(true) .setDefaultValue(new ModelNode().set(false)) .build(); public static final SimpleAttributeDefinition JOURNALING = new SimpleAttributeDefinitionBuilder(ModelKeys.JOURNALING, ModelType.BOOLEAN) .setXmlName(Attribute.JOURNALING.getLocalName()) .setAllowExpression(false) .setAllowNull(true) .setDefaultValue(new ModelNode(false)) .build(); public static final SimpleAttributeDefinition JOURNAL_PATH = new SimpleAttributeDefinitionBuilder(ModelKeys.JOURNAL_PATH, ModelType.STRING) .setXmlName(Attribute.JOURNAL_PATH.getLocalName()) .setAllowExpression(true) .setAllowNull(true) .setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES) .build(); public static final SimpleAttributeDefinition JOURNAL_ENABLED = new SimpleAttributeDefinitionBuilder(ModelKeys.JOURNAL_ENABLED, ModelType.BOOLEAN) .setXmlName(Attribute.JOURNAL_ENABLED.getLocalName()) .setAllowExpression(true) .setAllowNull(true) .setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES) .build(); public static final SimpleAttributeDefinition JOURNAL_RELATIVE_TO = new SimpleAttributeDefinitionBuilder(ModelKeys.JOURNAL_RELATIVE_TO, ModelType.STRING) .setXmlName(Attribute.JOURNAL_RELATIVE_TO.getLocalName()) .setAllowExpression(true) .setAllowNull(true) .setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES) .build(); public static final SimpleAttributeDefinition MAX_DAYS_TO_KEEP_RECORDS = new SimpleAttributeDefinitionBuilder(ModelKeys.MAX_DAYS_TO_KEEP_RECORDS, ModelType.INT) .setXmlName(Attribute.MAX_DAYS_TO_KEEP_RECORDS.getLocalName()) .setAllowExpression(false) .setAllowNull(true) .setDefaultValue(new ModelNode(-1)) .setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES) .build(); public static final SimpleAttributeDefinition ASYNC_WRITES = new SimpleAttributeDefinitionBuilder(ModelKeys.ASYNC_WRITES, ModelType.BOOLEAN) .setXmlName(Attribute.ASYNC_WRITES.getLocalName()) .setAllowExpression(false) .setAllowNull(true) .setDefaultValue(new ModelNode(false)) .setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES) .build(); public static final SimpleAttributeDefinition JOURNAL_GC_THREAD_POOL = new SimpleAttributeDefinitionBuilder(ModelKeys.JOURNAL_GC_THREAD_POOL, ModelType.STRING) .setXmlName(Attribute.JOURNAL_GC_THREAD_POOL.getLocalName()) .setAllowExpression(true) .setAllowNull(true) .setDefaultValue(new ModelNode().set("modeshape-journaling-gc")) .setFlags(AttributeAccess.Flag.RESTART_NONE) .build(); public static final SimpleAttributeDefinition JOURNAL_GC_INITIAL_TIME = new SimpleAttributeDefinitionBuilder(ModelKeys.JOURNAL_GC_INITIAL_TIME, ModelType.STRING) .setXmlName(Attribute.JOURNAL_GC_INITIAL_TIME.getLocalName()) .setAllowExpression(true) .setAllowNull(true) .setDefaultValue(new ModelNode().set("00:00")) .setFlags(AttributeAccess.Flag.RESTART_NONE) .build(); public static final MappedSimpleAttributeDefinition TABLE_NAME = new MappedAttributeDefinitionBuilder(Attribute.TABLE_NAME.getLocalName(), ModelType.STRING, FieldName.STORAGE, FieldName.PERSISTENCE, RelationalDbConfig.TABLE_NAME) .setXmlName(Attribute.TABLE_NAME.getLocalName()) .setAllowExpression(true) .setAllowNull(true) .setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES) .build(); public static final MappedSimpleAttributeDefinition CREATE_ON_START = new MappedAttributeDefinitionBuilder(Attribute.CREATE_ON_START.getLocalName(), ModelType.BOOLEAN, FieldName.STORAGE, FieldName.PERSISTENCE, RelationalDbConfig.CREATE_ON_START) .setXmlName(Attribute.CREATE_ON_START.getLocalName()) .setAllowExpression(true) .setAllowNull(true) .setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES) .build(); public static final MappedSimpleAttributeDefinition DROP_ON_EXIT = new MappedAttributeDefinitionBuilder(Attribute.DROP_ON_EXIT.getLocalName(), ModelType.BOOLEAN, FieldName.STORAGE, FieldName.PERSISTENCE, RelationalDbConfig.DROP_ON_EXIT) .setXmlName(Attribute.DROP_ON_EXIT.getLocalName()) .setAllowExpression(true) .setAllowNull(true) .setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES) .build(); public static final MappedSimpleAttributeDefinition DB_COMPRESS = new MappedAttributeDefinitionBuilder(Attribute.COMPRESS.getLocalName(), ModelType.BOOLEAN, FieldName.STORAGE, FieldName.PERSISTENCE, RelationalDbConfig.COMPRESS) .setXmlName(Attribute.COMPRESS.getLocalName()) .setAllowExpression(true) .setAllowNull(true) .setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES) .build(); public static final MappedSimpleAttributeDefinition FETCH_SIZE = new MappedAttributeDefinitionBuilder(Attribute.FETCH_SIZE.getLocalName(), ModelType.INT, FieldName.STORAGE, FieldName.PERSISTENCE, RelationalDbConfig.COMPRESS) .setXmlName(Attribute.FETCH_SIZE.getLocalName()) .setAllowExpression(true) .setAllowNull(true) .setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES) .build(); public static final MappedSimpleAttributeDefinition POOL_SIZE = new MappedAttributeDefinitionBuilder(Attribute.POOL_SIZE.getLocalName(), ModelType.INT, FieldName.STORAGE, FieldName.PERSISTENCE, RelationalDbConfig.POOL_SIZE) .setXmlName(Attribute.POOL_SIZE.getLocalName()) .setAllowExpression(true) .setAllowNull(true) .setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES) .build(); public static final MappedSimpleAttributeDefinition CONNECTION_URL = new MappedAttributeDefinitionBuilder(Attribute.URL.getLocalName(), ModelType.STRING, FieldName.STORAGE, FieldName.PERSISTENCE, RelationalDbConfig.CONNECTION_URL) .setXmlName(Attribute.URL.getLocalName()) .setAllowExpression(true) .setAllowNull(true) .setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES) .build(); public static final MappedSimpleAttributeDefinition DRIVER = new MappedAttributeDefinitionBuilder(Attribute.DRIVER.getLocalName(), ModelType.STRING, FieldName.STORAGE, FieldName.PERSISTENCE, RelationalDbConfig.DRIVER) .setXmlName(Attribute.DRIVER.getLocalName()) .setAllowExpression(true) .setAllowNull(true) .setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES) .build(); public static final MappedSimpleAttributeDefinition USERNAME = new MappedAttributeDefinitionBuilder(Attribute.USERNAME.getLocalName(), ModelType.STRING, FieldName.STORAGE, FieldName.PERSISTENCE, RelationalDbConfig.USERNAME) .setXmlName(Attribute.USERNAME.getLocalName()) .setAllowExpression(true) .setAllowNull(true) .setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES) .build(); public static final MappedSimpleAttributeDefinition PASSWORD = new MappedAttributeDefinitionBuilder(Attribute.PASSWORD.getLocalName(), ModelType.STRING, FieldName.STORAGE, FieldName.PERSISTENCE, RelationalDbConfig.PASSWORD) .setXmlName(Attribute.PASSWORD.getLocalName()) .setAllowExpression(true) .setAllowNull(true) .setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES) .build(); public static final MappedSimpleAttributeDefinition PERSISTENCE_DS_JNDI_NAME = new MappedAttributeDefinitionBuilder(Attribute.DATA_SOURCE_JNDI_NAME.getLocalName(), ModelType.STRING, FieldName.STORAGE, FieldName.PERSISTENCE, RelationalDbConfig.DATASOURCE_JNDI_NAME) .setXmlName(Attribute.DATA_SOURCE_JNDI_NAME.getLocalName()) .setAllowExpression(true) .setAllowNull(true) .setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES) .build(); public static final MappedSimpleAttributeDefinition FS_PATH = new MappedAttributeDefinitionBuilder(Attribute.PATH.getLocalName(), ModelType.STRING, FieldName.STORAGE, FieldName.PERSISTENCE, FileDbProvider.PATH_FIELD) .setAllowExpression(true) .setAllowNull(true) .setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES) .build(); public static final MappedSimpleAttributeDefinition FS_COMPRESS = new MappedAttributeDefinitionBuilder(Attribute.COMPRESS.getLocalName(), ModelType.BOOLEAN, FieldName.STORAGE, FieldName.PERSISTENCE, FileDbProvider.COMPRESS_FIELD) .setAllowExpression(true) .setAllowNull(true) .setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES) .build(); public static final MappedSimpleAttributeDefinition CASSANDRA_HOST = new MappedAttributeDefinitionBuilder(Attribute.HOST.getLocalName(), ModelType.STRING, FieldName.STORAGE, FieldName.BINARY_STORAGE, FieldName.ADDRESS) .setAllowExpression(true) .setAllowNull(false) .setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES) .build(); public static final MappedSimpleAttributeDefinition MONGO_HOST = new MappedAttributeDefinitionBuilder(Attribute.HOST.getLocalName(), ModelType.STRING, FieldName.STORAGE, FieldName.BINARY_STORAGE, FieldName.HOST) .setAllowExpression(true) .setAllowNull(true) .setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES) .build(); public static final MappedSimpleAttributeDefinition MONGO_PORT = new MappedAttributeDefinitionBuilder(Attribute.PORT.getLocalName(), ModelType.INT, FieldName.STORAGE, FieldName.BINARY_STORAGE, FieldName.PORT) .setAllowExpression(true) .setAllowNull(true) .setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES) .build(); public static final MappedSimpleAttributeDefinition MONGO_DATABASE = new MappedAttributeDefinitionBuilder(Attribute.DATABASE.getLocalName(), ModelType.STRING, FieldName.STORAGE, FieldName.BINARY_STORAGE, FieldName.DATABASE) .setAllowExpression(true) .setAllowNull(true) .setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES) .build(); public static final MappedSimpleAttributeDefinition MONGO_USERNAME = new MappedAttributeDefinitionBuilder(Attribute.USERNAME.getLocalName(), ModelType.STRING, FieldName.STORAGE, FieldName.BINARY_STORAGE, FieldName.USER_NAME) .setAllowExpression(true) .setAllowNull(true) .setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES) .build(); public static final MappedSimpleAttributeDefinition MONGO_PASSWORD = new MappedAttributeDefinitionBuilder(Attribute.PASSWORD.getLocalName(), ModelType.STRING, FieldName.STORAGE, FieldName.BINARY_STORAGE, FieldName.USER_PASSWORD) .setAllowExpression(true) .setAllowNull(true) .setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES) .build(); public static final MappedSimpleAttributeDefinition MONGO_HOST_ADDRESSES = new MappedAttributeDefinitionBuilder(Attribute.HOST_ADDRESSES.getLocalName(), ModelType.STRING, FieldName.STORAGE, FieldName.BINARY_STORAGE, FieldName.HOST_ADDRESSES) .setAllowExpression(true) .setAllowNull(true) .setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES) .build(); public static final MappedSimpleAttributeDefinition S3_USERNAME = new MappedAttributeDefinitionBuilder(Attribute.USERNAME.getLocalName(), ModelType.STRING, FieldName.STORAGE, FieldName.BINARY_STORAGE, FieldName.USER_NAME) .setAllowExpression(true) .setAllowNull(true) .setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES) .build(); public static final MappedSimpleAttributeDefinition S3_PASSWORD = new MappedAttributeDefinitionBuilder(Attribute.PASSWORD.getLocalName(), ModelType.STRING, FieldName.STORAGE, FieldName.BINARY_STORAGE, FieldName.USER_PASSWORD) .setAllowExpression(true) .setAllowNull(true) .setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES) .build(); public static final MappedSimpleAttributeDefinition S3_BUCKET_NAME = new MappedAttributeDefinitionBuilder(Attribute.BUCKET_NAME.getLocalName(), ModelType.STRING, FieldName.STORAGE, FieldName.BINARY_STORAGE, FieldName.BUCKET_NAME) .setAllowExpression(true) .setAllowNull(false) .setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES) .build(); public static final MappedSimpleAttributeDefinition S3_ENDPOINT_URL = new MappedAttributeDefinitionBuilder(Attribute.ENDPOINT_URL.getLocalName(), ModelType.STRING, FieldName.STORAGE, FieldName.BINARY_STORAGE, FieldName.ENDPOINT_URL) .setAllowExpression(true) .setAllowNull(true) .setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES) .build(); public static final AttributeDefinition[] SUBSYSTEM_ATTRIBUTES = {}; public static final AttributeDefinition[] WEBAPP_ATTRIBUTES = {EXPLODED}; public static final AttributeDefinition[] REPOSITORY_ATTRIBUTES = {JNDI_NAME, ENABLE_MONITORING, CLUSTER_NAME, CLUSTER_STACK, CLUSTER_CONFIG, CLUSTER_LOCKING, REPOSITORY_MODULE_DEPENDENCIES, SECURITY_DOMAIN, ANONYMOUS_ROLES, ANONYMOUS_USERNAME, USE_ANONYMOUS_IF_AUTH_FAILED, NODE_TYPES, DEFAULT_WORKSPACE, PREDEFINED_WORKSPACE_NAMES, ALLOW_WORKSPACE_CREATION, WORKSPACES_CACHE_SIZE, DEFAULT_INITIAL_CONTENT, WORKSPACES_INITIAL_CONTENT, GARBAGE_COLLECTION_THREAD_POOL, GARBAGE_COLLECTION_INITIAL_TIME, GARBAGE_COLLECTION_INTERVAL, DOCUMENT_OPTIMIZATION_THREAD_POOL, DOCUMENT_OPTIMIZATION_INITIAL_TIME, DOCUMENT_OPTIMIZATION_INTERVAL, DOCUMENT_OPTIMIZATION_CHILD_COUNT_TARGET, DOCUMENT_OPTIMIZATION_CHILD_COUNT_TOLERANCE, JOURNAL_PATH, JOURNAL_RELATIVE_TO, MAX_DAYS_TO_KEEP_RECORDS, JOURNAL_GC_INITIAL_TIME, JOURNAL_GC_THREAD_POOL, ASYNC_WRITES, JOURNALING, JOURNAL_ENABLED, SEQUENCER_THREAD_POOL_NAME, SEQUENCER_MAX_POOL_SIZE, TEXT_EXTRACTOR_THREAD_POOL_NAME, TEXT_EXTRACTOR_MAX_POOL_SIZE, EVENT_BUS_SIZE, REINDEXING_ASYNC, REINDEXING_MODE, LOCK_TIMEOUT_MILLIS}; public static final AttributeDefinition[] TRANSIENT_BINARY_STORAGE_ATTRIBUTES = {MINIMUM_BINARY_SIZE, MINIMUM_STRING_SIZE, MIME_TYPE_DETECTION}; public static final AttributeDefinition[] FILE_BINARY_STORAGE_ATTRIBUTES = {MINIMUM_BINARY_SIZE, MINIMUM_STRING_SIZE, PATH, TRASH, RELATIVE_TO, STORE_NAME, MIME_TYPE_DETECTION}; public static final AttributeDefinition[] DATABASE_BINARY_STORAGE_ATTRIBUTES = {MINIMUM_BINARY_SIZE, MINIMUM_STRING_SIZE, DATA_SOURCE_JNDI_NAME, STORE_NAME, MIME_TYPE_DETECTION}; public static final AttributeDefinition[] CASSANDRA_BINARY_STORAGE_ATTRIBUTES = {MINIMUM_BINARY_SIZE, MINIMUM_STRING_SIZE, MIME_TYPE_DETECTION, CASSANDRA_HOST }; public static final AttributeDefinition[] S3_BINARY_STORAGE_ATTRIBUTES = {MINIMUM_BINARY_SIZE, MINIMUM_STRING_SIZE, MIME_TYPE_DETECTION, S3_USERNAME, S3_PASSWORD, S3_BUCKET_NAME, S3_ENDPOINT_URL}; public static final AttributeDefinition[] MONGO_BINARY_STORAGE_ATTRIBUTES = { MINIMUM_BINARY_SIZE, MINIMUM_STRING_SIZE, MIME_TYPE_DETECTION, MONGO_HOST, MONGO_PORT, MONGO_DATABASE, MONGO_USERNAME, MONGO_PASSWORD, MONGO_HOST_ADDRESSES }; public static final AttributeDefinition[] COMPOSITE_BINARY_STORAGE_ATTRIBUTES = {MINIMUM_BINARY_SIZE, MINIMUM_STRING_SIZE, NESTED_STORES, MIME_TYPE_DETECTION}; public static final AttributeDefinition[] CUSTOM_BINARY_STORAGE_ATTRIBUTES = {MINIMUM_BINARY_SIZE, MINIMUM_STRING_SIZE, CLASSNAME, MODULE, STORE_NAME, MIME_TYPE_DETECTION}; public static final AttributeDefinition[] INDEX_DEFINITION_ATTRIBUTES = {INDEX_KIND, PROVIDER_NAME, NODE_TYPE_NAME, SYNCHRONOUS ,INDEX_COLUMNS, WORKSPACES, PROPERTIES}; public static final AttributeDefinition[] INDEX_PROVIDER_ATTRIBUTES = {CLASSNAME, MODULE, RELATIVE_TO, PATH, PROPERTIES}; public static final AttributeDefinition[] SEQUENCER_ATTRIBUTES = {PATH_EXPRESSIONS, SEQUENCER_CLASSNAME, MODULE, PROPERTIES}; public static final AttributeDefinition[] PERSISTENCE_DB_ATTRIBUTES = { TABLE_NAME, CREATE_ON_START, DROP_ON_EXIT, FETCH_SIZE, CONNECTION_URL, DRIVER, USERNAME, PASSWORD, PERSISTENCE_DS_JNDI_NAME, DB_COMPRESS, POOL_SIZE, PROPERTIES}; public static final AttributeDefinition[] PERSISTENCE_FS_ATTRIBUTES = { FS_PATH, FS_COMPRESS}; public static final AttributeDefinition[] SOURCE_ATTRIBUTES = { PROJECTIONS, CONNECTOR_CLASSNAME, READONLY, CACHEABLE, QUERYABLE, MODULE, PROPERTIES, EXPOSE_AS_WORKSPACE}; public static final AttributeDefinition[] TEXT_EXTRACTOR_ATTRIBUTES = {TEXT_EXTRACTOR_CLASSNAME, MODULE, PROPERTIES}; public static final AttributeDefinition[] AUTHENTICATOR_ATTRIBUTES = {AUTHENTICATOR_CLASSNAME, MODULE, PROPERTIES}; }