| /* |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you 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.apache.openjpa.conf; |
| |
| import java.util.Collection; |
| import java.util.HashSet; |
| import java.util.Map; |
| |
| import org.apache.openjpa.audit.AuditLogger; |
| import org.apache.openjpa.audit.Auditor; |
| import org.apache.openjpa.datacache.CacheDistributionPolicy; |
| import org.apache.openjpa.datacache.ConcurrentDataCache; |
| import org.apache.openjpa.datacache.ConcurrentQueryCache; |
| import org.apache.openjpa.datacache.DataCacheManager; |
| import org.apache.openjpa.datacache.DataCacheManagerImpl; |
| import org.apache.openjpa.datacache.PartitionedDataCache; |
| import org.apache.openjpa.ee.ManagedRuntime; |
| import org.apache.openjpa.enhance.RuntimeUnenhancedClassesModes; |
| import org.apache.openjpa.event.BrokerFactoryEventManager; |
| import org.apache.openjpa.event.LifecycleEventManager; |
| import org.apache.openjpa.event.OrphanedKeyAction; |
| import org.apache.openjpa.event.RemoteCommitEventManager; |
| import org.apache.openjpa.event.RemoteCommitProvider; |
| import org.apache.openjpa.instrumentation.InstrumentationManager; |
| import org.apache.openjpa.instrumentation.InstrumentationManagerImpl; |
| import org.apache.openjpa.kernel.AutoClear; |
| import org.apache.openjpa.kernel.BrokerImpl; |
| import org.apache.openjpa.kernel.ConnectionRetainModes; |
| import org.apache.openjpa.kernel.FinderCache; |
| import org.apache.openjpa.kernel.InverseManager; |
| import org.apache.openjpa.kernel.LockLevels; |
| import org.apache.openjpa.kernel.LockManager; |
| import org.apache.openjpa.kernel.PreparedQueryCache; |
| import org.apache.openjpa.kernel.QueryFlushModes; |
| import org.apache.openjpa.kernel.RestoreState; |
| import org.apache.openjpa.kernel.SavepointManager; |
| import org.apache.openjpa.kernel.Seq; |
| import org.apache.openjpa.kernel.exps.AggregateListener; |
| import org.apache.openjpa.kernel.exps.FilterListener; |
| import org.apache.openjpa.lib.conf.BooleanValue; |
| import org.apache.openjpa.lib.conf.ConfigurationImpl; |
| import org.apache.openjpa.lib.conf.Configurations; |
| import org.apache.openjpa.lib.conf.IntValue; |
| import org.apache.openjpa.lib.conf.ObjectValue; |
| import org.apache.openjpa.lib.conf.PluginListValue; |
| import org.apache.openjpa.lib.conf.PluginValue; |
| import org.apache.openjpa.lib.conf.ProductDerivations; |
| import org.apache.openjpa.lib.conf.StringListValue; |
| import org.apache.openjpa.lib.conf.StringValue; |
| import org.apache.openjpa.lib.encryption.EncryptionProvider; |
| import org.apache.openjpa.lib.instrumentation.InstrumentationLevel; |
| import org.apache.openjpa.lib.instrumentation.InstrumentationProvider; |
| import org.apache.openjpa.lib.log.Log; |
| import org.apache.openjpa.lib.util.StringUtil; |
| import org.apache.openjpa.meta.MetaDataFactory; |
| import org.apache.openjpa.meta.MetaDataRepository; |
| import org.apache.openjpa.util.ClassResolver; |
| import org.apache.openjpa.util.ImplHelper; |
| import org.apache.openjpa.util.ProxyManager; |
| import org.apache.openjpa.util.StoreFacadeTypeRegistry; |
| import org.apache.openjpa.validation.ValidatingLifecycleEventManager; |
| |
| /** |
| * Implementation of the {@link OpenJPAConfiguration} interface. |
| * |
| * @see ConfigurationImpl |
| * @author Marc Prud'hommeaux |
| * @author Abe White |
| */ |
| public class OpenJPAConfigurationImpl |
| extends ConfigurationImpl |
| implements OpenJPAConfiguration { |
| |
| // private static final Localizer _loc = Localizer.forPackage(OpenJPAConfigurationImpl.class); |
| |
| // cached state; some of this is created in getter methods, so make |
| // protected in case subclasses want to access without creating |
| protected MetaDataRepository metaRepository = null; |
| protected RemoteCommitEventManager remoteEventManager = null; |
| |
| // openjpa properties |
| public ObjectValue classResolverPlugin; |
| public BrokerValue brokerPlugin; |
| public ObjectValue dataCachePlugin; |
| public ObjectValue dataCacheManagerPlugin; |
| public ObjectValue auditorPlugin; |
| public ObjectValue cacheDistributionPolicyPlugin; |
| public IntValue dataCacheTimeout; |
| public ObjectValue queryCachePlugin; |
| public BooleanValue dynamicDataStructs; |
| public ObjectValue managedRuntimePlugin; |
| public BooleanValue transactionMode; |
| public IntValue connectionRetainMode; |
| public IntValue fetchBatchSize; |
| public IntValue maxFetchDepth; |
| public StringListValue fetchGroups; |
| public IntValue flushBeforeQueries; |
| public IntValue lockTimeout; |
| public IntValue queryTimeout; |
| public IntValue readLockLevel; |
| public IntValue writeLockLevel; |
| public ObjectValue seqPlugin; |
| public PluginListValue filterListenerPlugins; |
| public PluginListValue aggregateListenerPlugins; |
| public BooleanValue retryClassRegistration; |
| public ObjectValue proxyManagerPlugin; |
| public StringValue connectionUserName; |
| public StringValue connectionPassword; |
| public PluginValue encryptionProvider; |
| public StringValue connectionURL; |
| public StringValue connectionDriverName; |
| public ObjectValue connectionFactory; |
| public StringValue connectionFactoryName; |
| public StringValue connectionProperties; |
| public StringValue connectionFactoryProperties; |
| public BooleanValue connectionFactoryMode; |
| public StringValue connection2UserName; |
| public StringValue connection2Password; |
| public StringValue connection2URL; |
| public StringValue connection2DriverName; |
| public StringValue connection2Properties; |
| public ObjectValue connectionFactory2; |
| public StringValue connectionFactory2Name; |
| public StringValue connectionFactory2Properties; |
| public BooleanValue optimistic; |
| public IntValue autoClear; |
| public BooleanValue retainState; |
| public IntValue restoreState; |
| public ObjectValue detachStatePlugin; |
| public BooleanValue ignoreChanges; |
| public BooleanValue nontransactionalRead; |
| public BooleanValue nontransactionalWrite; |
| public BooleanValue refreshFromDataCache; |
| public BooleanValue multithreaded; |
| public StringValue mapping; |
| public PluginValue metaFactoryPlugin; |
| public MetaDataRepositoryValue metaRepositoryPlugin; |
| public ObjectValue lockManagerPlugin; |
| public ObjectValue inverseManagerPlugin; |
| public ObjectValue savepointManagerPlugin; |
| public ObjectValue orphanedKeyPlugin; |
| public ObjectValue compatibilityPlugin; |
| public ObjectValue callbackPlugin; |
| public QueryCompilationCacheValue queryCompilationCachePlugin; |
| public IntValue runtimeUnenhancedClasses; |
| public CacheMarshallersValue cacheMarshallerPlugins; |
| public BooleanValue eagerInitialization; |
| public PluginValue preparedQueryCachePlugin; |
| public PluginValue finderCachePlugin; |
| public ObjectValue specification; |
| public StringValue validationMode; |
| public ObjectValue validationFactory; |
| public ObjectValue validator; |
| public ObjectValue lifecycleEventManager; |
| public StringValue validationGroupPrePersist; |
| public StringValue validationGroupPreUpdate; |
| public StringValue validationGroupPreRemove; |
| public StringValue dataCacheMode; |
| public BooleanValue dynamicEnhancementAgent; |
| public ObjectValue instrumentationManager; |
| public PluginListValue instrumentationProviders; |
| public BooleanValue postLoadOnMerge; |
| public BooleanValue optimizeIdCopy; |
| public BooleanValue useTcclForSelectNew; |
| |
| // JPA Properties |
| public IntValue databaseAction; |
| public IntValue scriptsAction; |
| public IntValue createSource; |
| public IntValue dropSource; |
| public StringValue createScriptSource; |
| public StringValue dropScriptSource; |
| public StringValue createScriptTarget; |
| public StringValue dropScriptTarget; |
| public StringValue loadScriptSource; |
| |
| // custom values |
| public BrokerFactoryValue brokerFactoryPlugin; |
| public RemoteCommitProviderValue remoteProviderPlugin; |
| public AutoDetachValue autoDetach; |
| |
| private Collection<String> supportedOptions = new HashSet<>(33); |
| private final StoreFacadeTypeRegistry _storeFacadeRegistry = new StoreFacadeTypeRegistry(); |
| private BrokerFactoryEventManager _brokerFactoryEventManager = new BrokerFactoryEventManager(this); |
| private Map<String, Object> _peMap; //contains persistence environment-specific info |
| private boolean _allowSetLifeCycleEventManager = true; |
| /** |
| * Default constructor. Attempts to load global properties. |
| */ |
| public OpenJPAConfigurationImpl() { |
| this(true); |
| } |
| |
| /** |
| * Constructor. |
| * |
| * @param loadGlobals whether to attempt to load the global properties |
| */ |
| public OpenJPAConfigurationImpl(boolean loadGlobals) { |
| this(true, loadGlobals); |
| } |
| |
| /** |
| * Constructor. |
| * |
| * @param derivations whether to apply product derivations |
| * @param loadGlobals whether to attempt to load the global properties |
| */ |
| public OpenJPAConfigurationImpl(boolean derivations, boolean loadGlobals) { |
| super(false); |
| String[] aliases; |
| |
| classResolverPlugin = addPlugin("ClassResolver", true); |
| aliases = new String[] { |
| "default", "org.apache.openjpa.util.ClassResolverImpl", |
| // deprecated alias |
| "spec", "org.apache.openjpa.util.ClassResolverImpl", }; |
| classResolverPlugin.setAliases(aliases); |
| classResolverPlugin.setDefault(aliases[0]); |
| classResolverPlugin.setString(aliases[0]); |
| classResolverPlugin.setInstantiatingGetter("getClassResolverInstance"); |
| |
| brokerFactoryPlugin = new BrokerFactoryValue(); |
| addValue(brokerFactoryPlugin); |
| |
| brokerPlugin = new BrokerValue(); |
| addValue(brokerPlugin); |
| |
| dataCacheManagerPlugin = addPlugin("DataCacheManager", true); |
| aliases = |
| new String[] { "default", DataCacheManagerImpl.class.getName(), }; |
| dataCacheManagerPlugin.setAliases(aliases); |
| dataCacheManagerPlugin.setDefault(aliases[0]); |
| dataCacheManagerPlugin.setString(aliases[0]); |
| dataCacheManagerPlugin.setInstantiatingGetter("getDataCacheManager"); |
| |
| cacheDistributionPolicyPlugin = addPlugin("CacheDistributionPolicy", true); |
| aliases = new String[] { |
| "default", "org.apache.openjpa.datacache.DefaultCacheDistributionPolicy", |
| "type-based", "org.apache.openjpa.datacache.TypeBasedCacheDistributionPolicy"}; |
| cacheDistributionPolicyPlugin.setAliases(aliases); |
| cacheDistributionPolicyPlugin.setDefault(aliases[0]); |
| cacheDistributionPolicyPlugin.setString(aliases[0]); |
| cacheDistributionPolicyPlugin.setInstantiatingGetter("getCacheDistributionPolicy"); |
| |
| dataCachePlugin = addPlugin("DataCache", false); |
| aliases = new String[] { |
| "false", null, |
| "true", ConcurrentDataCache.class.getName(), |
| "concurrent", ConcurrentDataCache.class.getName(), |
| "partitioned", PartitionedDataCache.class.getName(), |
| }; |
| dataCachePlugin.setAliases(aliases); |
| dataCachePlugin.setDefault(aliases[0]); |
| dataCachePlugin.setString(aliases[0]); |
| |
| dataCacheTimeout = addInt("DataCacheTimeout"); |
| dataCacheTimeout.setDefault("-1"); |
| dataCacheTimeout.set(-1); |
| dataCacheTimeout.setDynamic(true); |
| |
| queryCachePlugin = addPlugin("QueryCache", false); |
| aliases = new String[] { |
| "false", null, |
| "true", ConcurrentQueryCache.class.getName(), |
| "concurrent", ConcurrentQueryCache.class.getName(), |
| }; |
| queryCachePlugin.setAliases(aliases); |
| queryCachePlugin.setDefault(aliases[0]); |
| queryCachePlugin.setString(aliases[0]); |
| |
| refreshFromDataCache = addBoolean("RefreshFromDataCache"); |
| refreshFromDataCache.setDefault("false"); |
| refreshFromDataCache.set(false); |
| refreshFromDataCache.setDynamic(true); |
| |
| dynamicDataStructs = addBoolean("DynamicDataStructs"); |
| dynamicDataStructs.setDefault("false"); |
| dynamicDataStructs.set(false); |
| |
| lockManagerPlugin = addPlugin("LockManager", false); |
| aliases = |
| new String[] { |
| "none", "org.apache.openjpa.kernel.NoneLockManager", |
| "version", "org.apache.openjpa.kernel.VersionLockManager", }; |
| lockManagerPlugin.setAliases(aliases); |
| lockManagerPlugin.setDefault(aliases[0]); |
| lockManagerPlugin.setString(aliases[0]); |
| |
| inverseManagerPlugin = addPlugin("InverseManager", false); |
| aliases = new String[] { |
| "false", null, |
| "true", "org.apache.openjpa.kernel.InverseManager", }; |
| inverseManagerPlugin.setAliases(aliases); |
| inverseManagerPlugin.setDefault(aliases[0]); |
| inverseManagerPlugin.setString(aliases[0]); |
| |
| savepointManagerPlugin = addPlugin("SavepointManager", true); |
| aliases = new String[] { |
| "in-mem", "org.apache.openjpa.kernel.InMemorySavepointManager", }; |
| savepointManagerPlugin.setAliases(aliases); |
| savepointManagerPlugin.setDefault(aliases[0]); |
| savepointManagerPlugin.setString(aliases[0]); |
| savepointManagerPlugin.setInstantiatingGetter("getSavepointManagerInstance"); |
| |
| orphanedKeyPlugin = addPlugin("OrphanedKeyAction", true); |
| aliases = new String[] { |
| "log", "org.apache.openjpa.event.LogOrphanedKeyAction", |
| "exception", "org.apache.openjpa.event.ExceptionOrphanedKeyAction", |
| "none", "org.apache.openjpa.event.NoneOrphanedKeyAction", }; |
| orphanedKeyPlugin.setAliases(aliases); |
| orphanedKeyPlugin.setDefault(aliases[0]); |
| orphanedKeyPlugin.setString(aliases[0]); |
| orphanedKeyPlugin.setInstantiatingGetter("getOrphanedKeyActionInstance"); |
| |
| remoteProviderPlugin = new RemoteCommitProviderValue(); |
| addValue(remoteProviderPlugin); |
| |
| transactionMode = addBoolean("TransactionMode"); |
| aliases = new String[] { "local", "false", "managed", "true", }; |
| transactionMode.setAliases(aliases); |
| transactionMode.setDefault(aliases[0]); |
| |
| managedRuntimePlugin = addPlugin("ManagedRuntime", true); |
| aliases = new String[] { |
| "auto", "org.apache.openjpa.ee.AutomaticManagedRuntime", |
| "jndi", "org.apache.openjpa.ee.JNDIManagedRuntime", |
| "invocation", "org.apache.openjpa.ee.InvocationManagedRuntime", }; |
| managedRuntimePlugin.setAliases(aliases); |
| managedRuntimePlugin.setDefault(aliases[0]); |
| managedRuntimePlugin.setString(aliases[0]); |
| managedRuntimePlugin |
| .setInstantiatingGetter("getManagedRuntimeInstance"); |
| |
| proxyManagerPlugin = addPlugin("ProxyManager", true); |
| aliases = new String[] { |
| "default", "org.apache.openjpa.util.ProxyManagerImpl" }; |
| proxyManagerPlugin.setAliases(aliases); |
| proxyManagerPlugin.setDefault(aliases[0]); |
| proxyManagerPlugin.setString(aliases[0]); |
| proxyManagerPlugin.setInstantiatingGetter("getProxyManagerInstance"); |
| |
| mapping = addString("Mapping"); |
| metaFactoryPlugin = addPlugin("MetaDataFactory", false); |
| |
| metaRepositoryPlugin = (MetaDataRepositoryValue) addValue(new MetaDataRepositoryValue()); |
| |
| connectionFactory = addObject("ConnectionFactory"); |
| connectionFactory.setInstantiatingGetter("getConnectionFactory"); |
| |
| connectionFactory2 = addObject("ConnectionFactory2"); |
| connectionFactory2.setInstantiatingGetter("getConnectionFactory2"); |
| // This is done because this plug-in may get initialized very lazily |
| // when the runtime needs it for flush or a sequence. To keep it |
| // dynamic allows it to be set even when the configuration is frozen |
| connectionFactory.setDynamic(true); |
| connectionFactory2.setDynamic(true); |
| |
| |
| connectionUserName = addString("ConnectionUserName"); |
| connectionUserName.addEquivalentKey("javax.persistence.jdbc.user"); |
| |
| connectionPassword = addString("ConnectionPassword"); |
| connectionPassword.addEquivalentKey("javax.persistence.jdbc.password"); |
| connectionPassword.hide(); |
| |
| encryptionProvider = addPlugin("EncryptionProvider",true); |
| |
| connectionURL = addString("ConnectionURL"); |
| connectionURL.addEquivalentKey("javax.persistence.jdbc.url"); |
| |
| connectionDriverName = addString("ConnectionDriverName"); |
| connectionDriverName.addEquivalentKey("javax.persistence.jdbc.driver"); |
| |
| connectionFactoryName = addString("ConnectionFactoryName"); |
| connectionProperties = addString("ConnectionProperties"); |
| connectionFactoryProperties = addString("ConnectionFactoryProperties"); |
| connection2UserName = addString("Connection2UserName"); |
| connection2Password = addString("Connection2Password"); |
| connection2Password.hide(); |
| |
| connection2URL = addString("Connection2URL"); |
| connection2DriverName = addString("Connection2DriverName"); |
| connection2Properties = addString("Connection2Properties"); |
| connectionFactory2Properties = addString("ConnectionFactory2Properties"); |
| connectionFactory2Name = addString("ConnectionFactory2Name"); |
| |
| connectionFactoryMode = addBoolean("ConnectionFactoryMode"); |
| aliases = new String[] { "local", "false", "managed", "true", }; |
| connectionFactoryMode.setAliases(aliases); |
| connectionFactoryMode.setDefault(aliases[0]); |
| |
| optimistic = addBoolean("Optimistic"); |
| optimistic.setDefault("true"); |
| optimistic.set(true); |
| |
| postLoadOnMerge = addBoolean("PostLoadOnMerge"); |
| postLoadOnMerge.setDefault("false"); |
| postLoadOnMerge.set(false); |
| |
| optimizeIdCopy = addBoolean("OptimizeIdCopy"); |
| optimizeIdCopy.setDefault("false"); |
| optimizeIdCopy.set(false); |
| |
| databaseAction = addInt("javax.persistence.schema-generation.database.action"); |
| aliases = new String[] { |
| "none", String.valueOf(SchemaGenerationAction.NONE), |
| "create", String.valueOf(SchemaGenerationAction.CREATE), |
| "drop-and-create", String.valueOf(SchemaGenerationAction.DROP_AND_CREATE), |
| "drop", String.valueOf(SchemaGenerationAction.DROP) |
| }; |
| databaseAction.setAliases(aliases); |
| databaseAction.setDefault(aliases[0]); |
| databaseAction.setAliasListComprehensive(true); |
| |
| scriptsAction = addInt("javax.persistence.schema-generation.scripts.action"); |
| aliases = new String[] { |
| "none", String.valueOf(SchemaGenerationAction.NONE), |
| "create", String.valueOf(SchemaGenerationAction.CREATE), |
| "drop-and-create", String.valueOf(SchemaGenerationAction.DROP_AND_CREATE), |
| "drop", String.valueOf(SchemaGenerationAction.DROP) |
| }; |
| scriptsAction.setAliases(aliases); |
| scriptsAction.setDefault(aliases[0]); |
| scriptsAction.setAliasListComprehensive(true); |
| |
| createSource = addInt("javax.persistence.schema-generation.create-source"); |
| aliases = new String[] { |
| "none", String.valueOf(SchemaGenerationSource.NONE), |
| "metadata", String.valueOf(SchemaGenerationSource.METADATA), |
| "script", String.valueOf(SchemaGenerationSource.SCRIPT), |
| "metadata-then-script", String.valueOf(SchemaGenerationSource.METADATA_THEN_SCRIPT), |
| "script-then-metadata", String.valueOf(SchemaGenerationSource.SCRIPT_THEN_METADATA) |
| }; |
| createSource.setAliases(aliases); |
| createSource.setDefault(aliases[0]); |
| createSource.setAliasListComprehensive(true); |
| |
| dropSource = addInt("javax.persistence.schema-generation.drop-source"); |
| aliases = new String[] { |
| "metadata", String.valueOf(SchemaGenerationSource.METADATA), |
| "script", String.valueOf(SchemaGenerationSource.SCRIPT), |
| "metadata-then-script", String.valueOf(SchemaGenerationSource.METADATA_THEN_SCRIPT), |
| "script-then-metadata", String.valueOf(SchemaGenerationSource.SCRIPT_THEN_METADATA) |
| }; |
| dropSource.setAliases(aliases); |
| dropSource.setDefault(aliases[0]); |
| dropSource.setAliasListComprehensive(true); |
| |
| createScriptSource = addString("javax.persistence.schema-generation.create-script-source"); |
| dropScriptSource = addString("javax.persistence.schema-generation.drop-script-source"); |
| createScriptTarget = addString("javax.persistence.schema-generation.scripts.create-target"); |
| dropScriptTarget = addString("javax.persistence.schema-generation.scripts.drop-target"); |
| loadScriptSource = addString("javax.persistence.sql-load-script-source"); |
| |
| autoClear = addInt("AutoClear"); |
| aliases = |
| new String[] { "datastore", |
| String.valueOf(AutoClear.CLEAR_DATASTORE), "all", |
| String.valueOf(AutoClear.CLEAR_ALL), }; |
| autoClear.setAliases(aliases); |
| autoClear.setDefault(aliases[0]); |
| autoClear.set(AutoClear.CLEAR_DATASTORE); |
| autoClear.setAliasListComprehensive(true); |
| |
| retainState = addBoolean("RetainState"); |
| retainState.setDefault("true"); |
| retainState.set(true); |
| |
| restoreState = addInt("RestoreState"); |
| aliases = new String[] { |
| "none", String.valueOf(RestoreState.RESTORE_NONE), |
| "false", String.valueOf(RestoreState.RESTORE_NONE), |
| "immutable", String.valueOf(RestoreState.RESTORE_IMMUTABLE), |
| // "true" for compat with jdo RestoreValues |
| "true", String.valueOf(RestoreState.RESTORE_IMMUTABLE), |
| "all", String.valueOf(RestoreState.RESTORE_ALL), }; |
| restoreState.setAliases(aliases); |
| restoreState.setDefault(aliases[0]); |
| restoreState.set(RestoreState.RESTORE_IMMUTABLE); |
| restoreState.setAliasListComprehensive(true); |
| |
| autoDetach = new AutoDetachValue(); |
| addValue(autoDetach); |
| |
| detachStatePlugin = addPlugin("DetachState", true); |
| aliases = new String[] { |
| "loaded", DetachOptions.Loaded.class.getName(), |
| "fgs", DetachOptions.FetchGroups.class.getName(), |
| "fetch-groups", DetachOptions.FetchGroups.class.getName(), |
| "all", DetachOptions.All.class.getName(), |
| }; |
| detachStatePlugin.setAliases(aliases); |
| detachStatePlugin.setDefault(aliases[0]); |
| detachStatePlugin.setString(aliases[0]); |
| detachStatePlugin.setInstantiatingGetter("getDetachStateInstance"); |
| |
| ignoreChanges = addBoolean("IgnoreChanges"); |
| |
| nontransactionalRead = addBoolean("NontransactionalRead"); |
| nontransactionalRead.setDefault("true"); |
| nontransactionalRead.set(true); |
| |
| nontransactionalWrite = addBoolean("NontransactionalWrite"); |
| multithreaded = addBoolean("Multithreaded"); |
| |
| fetchBatchSize = addInt("FetchBatchSize"); |
| fetchBatchSize.setDefault("-1"); |
| fetchBatchSize.set(-1); |
| fetchBatchSize.setDynamic(true); |
| |
| maxFetchDepth = addInt("MaxFetchDepth"); |
| maxFetchDepth.setDefault("-1"); |
| maxFetchDepth.set(-1); |
| |
| fetchGroups = addStringList("FetchGroups"); |
| fetchGroups.setDefault("default"); |
| fetchGroups.set(new String[] { "default" }); |
| |
| flushBeforeQueries = addInt("FlushBeforeQueries"); |
| aliases = new String[] { |
| "true", String.valueOf(QueryFlushModes.FLUSH_TRUE), |
| "false", String.valueOf(QueryFlushModes.FLUSH_FALSE), |
| "with-connection", String.valueOf(QueryFlushModes.FLUSH_WITH_CONNECTION), |
| }; |
| flushBeforeQueries.setAliases(aliases); |
| flushBeforeQueries.setDefault(aliases[0]); |
| flushBeforeQueries.set(QueryFlushModes.FLUSH_TRUE); |
| flushBeforeQueries.setAliasListComprehensive(true); |
| |
| lockTimeout = addInt("LockTimeout"); |
| lockTimeout.addEquivalentKey("javax.persistence.lock.timeout"); |
| lockTimeout.setDefault("-1"); |
| lockTimeout.setDynamic(true); |
| |
| readLockLevel = addInt("ReadLockLevel"); |
| aliases = new String[] { |
| "read", String.valueOf(LockLevels.LOCK_READ), |
| "write", String.valueOf(LockLevels.LOCK_WRITE), |
| "none", String.valueOf(LockLevels.LOCK_NONE), |
| }; |
| readLockLevel.setAliases(aliases); |
| readLockLevel.setDefault(aliases[0]); |
| readLockLevel.set(LockLevels.LOCK_READ); |
| readLockLevel.setAliasListComprehensive(true); |
| |
| writeLockLevel = addInt("WriteLockLevel"); |
| aliases = new String[] { |
| "read", String.valueOf(LockLevels.LOCK_READ), |
| "write", String.valueOf(LockLevels.LOCK_WRITE), |
| "none", String.valueOf(LockLevels.LOCK_NONE), |
| }; |
| writeLockLevel.setAliases(aliases); |
| writeLockLevel.setDefault(aliases[1]); |
| writeLockLevel.set(LockLevels.LOCK_WRITE); |
| writeLockLevel.setAliasListComprehensive(true); |
| |
| seqPlugin = new SeqValue("Sequence"); |
| seqPlugin.setInstantiatingGetter("getSequenceInstance"); |
| addValue(seqPlugin); |
| |
| connectionRetainMode = addInt("ConnectionRetainMode"); |
| aliases = new String[] { |
| "on-demand", String.valueOf(ConnectionRetainModes.CONN_RETAIN_DEMAND), |
| "transaction", String.valueOf(ConnectionRetainModes.CONN_RETAIN_TRANS), |
| "always", String.valueOf(ConnectionRetainModes.CONN_RETAIN_ALWAYS), |
| // deprecated |
| "persistence-manager", String.valueOf(ConnectionRetainModes.CONN_RETAIN_ALWAYS), |
| }; |
| connectionRetainMode.setAliases(aliases); |
| connectionRetainMode.setDefault(aliases[0]); |
| connectionRetainMode.setAliasListComprehensive(true); |
| connectionRetainMode.set(ConnectionRetainModes.CONN_RETAIN_DEMAND); |
| |
| filterListenerPlugins = addPluginList("FilterListeners"); |
| filterListenerPlugins.setInstantiatingGetter("getFilterListenerInstances"); |
| |
| aggregateListenerPlugins = addPluginList("AggregateListeners"); |
| aggregateListenerPlugins.setInstantiatingGetter("getAggregateListenerInstances"); |
| |
| retryClassRegistration = addBoolean("RetryClassRegistration"); |
| |
| compatibilityPlugin = addPlugin("Compatibility", true); |
| aliases = new String[] { "default", Compatibility.class.getName() }; |
| compatibilityPlugin.setAliases(aliases); |
| compatibilityPlugin.setDefault(aliases[0]); |
| compatibilityPlugin.setString(aliases[0]); |
| compatibilityPlugin.setInstantiatingGetter("getCompatibilityInstance"); |
| |
| callbackPlugin = addPlugin("Callbacks", true); |
| aliases = new String[] { "default", CallbackOptions.class.getName() }; |
| callbackPlugin.setAliases(aliases); |
| callbackPlugin.setDefault(aliases[0]); |
| callbackPlugin.setString(aliases[0]); |
| callbackPlugin.setInstantiatingGetter("getCallbackOptionsInstance"); |
| |
| queryCompilationCachePlugin = new QueryCompilationCacheValue("QueryCompilationCache"); |
| queryCompilationCachePlugin.setInstantiatingGetter("getQueryCompilationCacheInstance"); |
| addValue(queryCompilationCachePlugin); |
| |
| runtimeUnenhancedClasses = addInt("RuntimeUnenhancedClasses"); |
| runtimeUnenhancedClasses.setAliases(new String[] { |
| "supported", String.valueOf(RuntimeUnenhancedClassesModes.SUPPORTED), |
| "unsupported", String.valueOf(RuntimeUnenhancedClassesModes.UNSUPPORTED), |
| "warn", String.valueOf(RuntimeUnenhancedClassesModes.WARN), |
| }); |
| runtimeUnenhancedClasses.setDefault("unsupported"); |
| runtimeUnenhancedClasses.setString("unsupported"); |
| runtimeUnenhancedClasses.setAliasListComprehensive(true); |
| |
| cacheMarshallerPlugins = (CacheMarshallersValue) addValue(new CacheMarshallersValue(this)); |
| |
| eagerInitialization = addBoolean("InitializeEagerly"); |
| |
| specification = new SpecificationPlugin(this, "Specification"); |
| addValue(specification); |
| specification.setInstantiatingGetter("getSpecificationInstance"); |
| |
| queryTimeout = addInt("javax.persistence.query.timeout"); |
| queryTimeout.setDefault("-1"); |
| queryTimeout.setDynamic(true); |
| |
| lifecycleEventManager = addPlugin("LifecycleEventManager", true); |
| aliases = new String[] { |
| "default", LifecycleEventManager.class.getName(), |
| "validating", ValidatingLifecycleEventManager.class.getName(), |
| }; |
| lifecycleEventManager.setAliases(aliases); |
| lifecycleEventManager.setDefault(aliases[0]); |
| lifecycleEventManager.setString(aliases[0]); |
| lifecycleEventManager.setInstantiatingGetter("getLifecycleEventManagerInstance"); |
| |
| dynamicEnhancementAgent = addBoolean("DynamicEnhancementAgent"); |
| dynamicEnhancementAgent.setDefault("true"); |
| dynamicEnhancementAgent.set(true); |
| |
| instrumentationManager = addPlugin("InstrumentationManager", true); |
| aliases = |
| new String[] { "default", InstrumentationManagerImpl.class.getName(), }; |
| instrumentationManager.setAliases(aliases); |
| instrumentationManager.setDefault(aliases[0]); |
| instrumentationManager.setString(aliases[0]); |
| instrumentationManager.setInstantiatingGetter("getInstrumentationManager"); |
| |
| instrumentationProviders = addPluginList("Instrumentation"); |
| aliases = new String[] { "jmx", "org.apache.openjpa.instrumentation.jmx.JMXProvider" }; |
| instrumentationProviders.setAliases(aliases); |
| instrumentationProviders.setInstantiatingGetter("getInstrumentationInstances"); |
| |
| auditorPlugin = addPlugin("Auditor", true); |
| aliases = new String[] { "default", AuditLogger.class.getName(), }; |
| auditorPlugin.setAliases(aliases); |
| auditorPlugin.setInstantiatingGetter("getAuditorInstance"); |
| |
| useTcclForSelectNew = addBoolean("UseTCCLinSelectNew"); |
| useTcclForSelectNew.setDefault("false"); |
| useTcclForSelectNew.set(false); |
| |
| // initialize supported options that some runtimes may not support |
| supportedOptions.add(OPTION_NONTRANS_READ); |
| supportedOptions.add(OPTION_OPTIMISTIC); |
| supportedOptions.add(OPTION_ID_APPLICATION); |
| supportedOptions.add(OPTION_ID_DATASTORE); |
| supportedOptions.add(OPTION_TYPE_COLLECTION); |
| supportedOptions.add(OPTION_TYPE_MAP); |
| supportedOptions.add(OPTION_TYPE_ARRAY); |
| supportedOptions.add(OPTION_NULL_CONTAINER); |
| supportedOptions.add(OPTION_EMBEDDED_RELATION); |
| supportedOptions.add(OPTION_EMBEDDED_COLLECTION_RELATION); |
| supportedOptions.add(OPTION_EMBEDDED_MAP_RELATION); |
| supportedOptions.add(OPTION_INC_FLUSH); |
| supportedOptions.add(OPTION_VALUE_AUTOASSIGN); |
| supportedOptions.add(OPTION_VALUE_INCREMENT); |
| supportedOptions.add(OPTION_DATASTORE_CONNECTION); |
| supportedOptions.add(OPTION_POSTLOAD_ON_MERGE); |
| supportedOptions.add(OPTION_USE_TCCL_IN_SELECT_NEW); |
| |
| if (derivations) |
| ProductDerivations.beforeConfigurationLoad(this); |
| if (loadGlobals) |
| loadGlobals(); |
| } |
| |
| @Override |
| public Collection<String> supportedOptions() { |
| return supportedOptions; |
| } |
| |
| /** |
| * Get the name of the Specification only (not the version or other |
| * information) or an empty String if not set. |
| * |
| */ |
| @Override |
| public String getSpecification() { |
| Specification spec = getSpecificationInstance(); |
| return spec == null ? "" : spec.getName(); |
| } |
| |
| @Override |
| public Specification getSpecificationInstance() { |
| return (Specification)specification.get(); |
| } |
| |
| /** |
| * Sets Specification from the given String. |
| * |
| * @param spec should be encoded in the format specified in {@link |
| * Specification}. |
| */ |
| @Override |
| public void setSpecification(String spec) { |
| specification.setString(spec); |
| } |
| |
| @Override |
| public void setSpecification(Specification newSpec) { |
| specification.set(newSpec); |
| } |
| |
| @Override |
| public void setClassResolver(String classResolver) { |
| classResolverPlugin.setString(classResolver); |
| } |
| |
| @Override |
| public String getClassResolver() { |
| return classResolverPlugin.getString(); |
| } |
| |
| @Override |
| public void setClassResolver(ClassResolver classResolver) { |
| classResolverPlugin.set(classResolver); |
| } |
| |
| @Override |
| public ClassResolver getClassResolverInstance() { |
| if (classResolverPlugin.get() == null) |
| classResolverPlugin.instantiate(ClassResolver.class, this); |
| return (ClassResolver) classResolverPlugin.get(); |
| } |
| |
| @Override |
| public void setBrokerFactory(String factory) { |
| brokerFactoryPlugin.setString(factory); |
| } |
| |
| @Override |
| public String getBrokerFactory() { |
| return brokerFactoryPlugin.getString(); |
| } |
| |
| @Override |
| public void setBrokerImpl(String broker) { |
| brokerPlugin.setString(broker); |
| } |
| |
| @Override |
| public String getBrokerImpl() { |
| return brokerPlugin.getString(); |
| } |
| |
| @Override |
| public BrokerImpl newBrokerInstance(String user, String pass) { |
| BrokerImpl broker = (BrokerImpl) brokerPlugin.instantiate(BrokerImpl.class, this); |
| if (broker != null) |
| broker.setAuthentication(user, pass); |
| return broker; |
| } |
| |
| @Override |
| public void setDataCacheManager(String mgr) { |
| dataCacheManagerPlugin.setString(mgr); |
| } |
| |
| @Override |
| public String getDataCacheManager() { |
| return dataCacheManagerPlugin.getString(); |
| } |
| |
| @Override |
| public void setDataCacheManager(DataCacheManager dcm) { |
| if (dcm != null) |
| dcm.initialize(this, dataCachePlugin, queryCachePlugin); |
| dataCacheManagerPlugin.set(dcm); |
| } |
| |
| @Override |
| public DataCacheManager getDataCacheManagerInstance() { |
| DataCacheManager dcm = (DataCacheManager) dataCacheManagerPlugin.get(); |
| if (dcm == null) { |
| dcm = (DataCacheManager) dataCacheManagerPlugin.instantiate(DataCacheManager.class, this); |
| if (dcm != null) { |
| dcm.initialize(this, dataCachePlugin, queryCachePlugin); |
| } |
| } |
| return dcm; |
| } |
| |
| @Override |
| public void setDataCache(String dataCache) { |
| dataCachePlugin.setString(dataCache); |
| } |
| |
| @Override |
| public String getDataCache() { |
| return dataCachePlugin.getString(); |
| } |
| |
| @Override |
| public void setDataCacheTimeout(int dataCacheTimeout) { |
| this.dataCacheTimeout.set(dataCacheTimeout); |
| } |
| |
| @Override |
| public void setDataCacheTimeout(Integer dataCacheTimeout) { |
| if (dataCacheTimeout != null) |
| setDataCacheTimeout(dataCacheTimeout.intValue()); |
| } |
| |
| @Override |
| public int getDataCacheTimeout() { |
| return dataCacheTimeout.get(); |
| } |
| |
| @Override |
| public void setQueryCache(String queryCache) { |
| queryCachePlugin.setString(queryCache); |
| } |
| |
| @Override |
| public String getQueryCache() { |
| return queryCachePlugin.getString(); |
| } |
| |
| @Override |
| public boolean getRefreshFromDataCache() { |
| return refreshFromDataCache.get(); |
| } |
| |
| @Override |
| public void setRefreshFromDataCache(boolean flag) { |
| refreshFromDataCache.set(flag); |
| } |
| |
| @Override |
| public void setRefreshFromDataCache(Boolean flag) { |
| if (flag != null) { |
| refreshFromDataCache.set(flag.booleanValue()); |
| } |
| } |
| |
| @Override |
| public boolean getDynamicDataStructs() { |
| return dynamicDataStructs.get(); |
| } |
| |
| @Override |
| public void setDynamicDataStructs(boolean dynamic) { |
| dynamicDataStructs.set(dynamic); |
| } |
| |
| @Override |
| public void setDynamicDataStructs(Boolean dynamic) { |
| setDynamicDataStructs(dynamic.booleanValue()); |
| } |
| |
| @Override |
| public void setLockManager(String lockManager) { |
| lockManagerPlugin.setString(lockManager); |
| } |
| |
| @Override |
| public String getLockManager() { |
| return lockManagerPlugin.getString(); |
| } |
| |
| @Override |
| public LockManager newLockManagerInstance() { |
| // don't validate plugin properties on instantiation because it |
| // is likely that back ends will override defaults with their |
| // own subclasses with new properties |
| return (LockManager) lockManagerPlugin.instantiate(LockManager.class, |
| this, false); |
| } |
| |
| @Override |
| public void setInverseManager(String inverseManager) { |
| inverseManagerPlugin.setString(inverseManager); |
| } |
| |
| @Override |
| public String getInverseManager() { |
| return inverseManagerPlugin.getString(); |
| } |
| |
| @Override |
| public InverseManager newInverseManagerInstance() { |
| return (InverseManager) inverseManagerPlugin.instantiate(InverseManager.class, this); |
| } |
| |
| @Override |
| public void setSavepointManager(String savepointManager) { |
| savepointManagerPlugin.setString(savepointManager); |
| } |
| |
| @Override |
| public String getSavepointManager() { |
| return savepointManagerPlugin.getString(); |
| } |
| |
| @Override |
| public SavepointManager getSavepointManagerInstance() { |
| if (savepointManagerPlugin.get() == null) |
| savepointManagerPlugin.instantiate(SavepointManager.class, this); |
| return (SavepointManager) savepointManagerPlugin.get(); |
| } |
| |
| @Override |
| public void setOrphanedKeyAction(String action) { |
| orphanedKeyPlugin.setString(action); |
| } |
| |
| @Override |
| public String getOrphanedKeyAction() { |
| return orphanedKeyPlugin.getString(); |
| } |
| |
| @Override |
| public OrphanedKeyAction getOrphanedKeyActionInstance() { |
| if (orphanedKeyPlugin.get() == null) |
| orphanedKeyPlugin.instantiate(OrphanedKeyAction.class, this); |
| return (OrphanedKeyAction) orphanedKeyPlugin.get(); |
| } |
| |
| @Override |
| public void setOrphanedKeyAction(OrphanedKeyAction action) { |
| orphanedKeyPlugin.set(action); |
| } |
| |
| @Override |
| public void setRemoteCommitProvider(String remoteCommitProvider) { |
| remoteProviderPlugin.setString(remoteCommitProvider); |
| } |
| |
| @Override |
| public String getRemoteCommitProvider() { |
| return remoteProviderPlugin.getString(); |
| } |
| |
| @Override |
| public RemoteCommitProvider newRemoteCommitProviderInstance() { |
| return remoteProviderPlugin.instantiateProvider(this); |
| } |
| |
| @Override |
| public void setRemoteCommitEventManager( |
| RemoteCommitEventManager remoteEventManager) { |
| this.remoteEventManager = remoteEventManager; |
| remoteProviderPlugin.configureEventManager(remoteEventManager); |
| } |
| |
| @Override |
| public RemoteCommitEventManager getRemoteCommitEventManager() { |
| if (remoteEventManager == null) { |
| remoteEventManager = new RemoteCommitEventManager(this); |
| remoteProviderPlugin.configureEventManager(remoteEventManager); |
| } |
| return remoteEventManager; |
| } |
| |
| @Override |
| public void setTransactionMode(String transactionMode) { |
| this.transactionMode.setString(transactionMode); |
| } |
| |
| @Override |
| public String getTransactionMode() { |
| return transactionMode.getString(); |
| } |
| |
| @Override |
| public void setTransactionModeManaged(boolean managed) { |
| transactionMode.set(managed); |
| } |
| |
| @Override |
| public boolean isTransactionModeManaged() { |
| return transactionMode.get(); |
| } |
| |
| @Override |
| public void setManagedRuntime(String managedRuntime) { |
| managedRuntimePlugin.setString(managedRuntime); |
| } |
| |
| @Override |
| public String getManagedRuntime() { |
| return managedRuntimePlugin.getString(); |
| } |
| |
| @Override |
| public void setManagedRuntime(ManagedRuntime managedRuntime) { |
| managedRuntimePlugin.set(managedRuntime); |
| } |
| |
| @Override |
| public ManagedRuntime getManagedRuntimeInstance() { |
| if (managedRuntimePlugin.get() == null) |
| managedRuntimePlugin.instantiate(ManagedRuntime.class, this); |
| return (ManagedRuntime) managedRuntimePlugin.get(); |
| } |
| |
| @Override |
| public void setProxyManager(String proxyManager) { |
| proxyManagerPlugin.setString(proxyManager); |
| } |
| |
| @Override |
| public String getProxyManager() { |
| return proxyManagerPlugin.getString(); |
| } |
| |
| @Override |
| public void setProxyManager(ProxyManager proxyManager) { |
| proxyManagerPlugin.set(proxyManager); |
| } |
| |
| @Override |
| public ProxyManager getProxyManagerInstance() { |
| if (proxyManagerPlugin.get() == null) |
| proxyManagerPlugin.instantiate(ProxyManager.class, this); |
| return (ProxyManager) proxyManagerPlugin.get(); |
| } |
| |
| @Override |
| public void setMapping(String mapping) { |
| this.mapping.setString(mapping); |
| } |
| |
| @Override |
| public String getMapping() { |
| return mapping.getString(); |
| } |
| |
| @Override |
| public void setMetaDataFactory(String meta) { |
| this.metaFactoryPlugin.setString(meta); |
| } |
| |
| @Override |
| public String getMetaDataFactory() { |
| return metaFactoryPlugin.getString(); |
| } |
| |
| @Override |
| public MetaDataFactory newMetaDataFactoryInstance() { |
| return (MetaDataFactory) metaFactoryPlugin.instantiate( |
| MetaDataFactory.class, this); |
| } |
| |
| @Override |
| public void setMetaDataRepository(String meta) { |
| this.metaRepositoryPlugin.setString(meta); |
| } |
| |
| @Override |
| public String getMetaDataRepository() { |
| return metaRepositoryPlugin.getString(); |
| } |
| |
| @Override |
| public void setMetaDataRepository(MetaDataRepository meta) { |
| metaRepository = meta; |
| } |
| |
| @Override |
| public MetaDataRepository getMetaDataRepositoryInstance() { |
| if (metaRepository == null) |
| metaRepository = newMetaDataRepositoryInstance(); |
| return metaRepository; |
| } |
| |
| @Override |
| public boolean metaDataRepositoryAvailable(){ |
| return metaRepository != null; |
| } |
| |
| @Override |
| public MetaDataRepository newMetaDataRepositoryInstance() { |
| return (MetaDataRepository) metaRepositoryPlugin.instantiate( |
| MetaDataRepository.class, this); |
| } |
| |
| @Override |
| public void setConnectionUserName(String connectionUserName) { |
| this.connectionUserName.setString(connectionUserName); |
| } |
| |
| @Override |
| public String getConnectionUserName() { |
| return connectionUserName.getString(); |
| } |
| |
| @Override |
| public void setConnectionPassword(String connectionPassword) { |
| this.connectionPassword.setString(connectionPassword); |
| } |
| |
| @Override |
| public String getConnectionPassword() { |
| EncryptionProvider p = getEncryptionProvider(); |
| if(p != null) { |
| return p.decrypt(connectionPassword.getString()); |
| } |
| return connectionPassword.getString(); |
| } |
| |
| @Override |
| public void setConnectionURL(String connectionURL) { |
| this.connectionURL.setString(connectionURL); |
| } |
| |
| @Override |
| public String getConnectionURL() { |
| return connectionURL.getString(); |
| } |
| |
| @Override |
| public void setConnectionDriverName(String driverName) { |
| this.connectionDriverName.setString(driverName); |
| } |
| |
| @Override |
| public String getConnectionDriverName() { |
| return connectionDriverName.getString(); |
| } |
| |
| @Override |
| public void setConnectionProperties(String connectionProperties) { |
| this.connectionProperties.setString(connectionProperties); |
| } |
| |
| @Override |
| public String getConnectionProperties() { |
| return connectionProperties.getString(); |
| } |
| |
| @Override |
| public void setConnectionFactoryProperties( |
| String connectionFactoryProperties) { |
| this.connectionFactoryProperties.setString(connectionFactoryProperties); |
| } |
| |
| @Override |
| public String getConnectionFactoryProperties() { |
| return connectionFactoryProperties.getString(); |
| } |
| |
| @Override |
| public String getConnectionFactoryMode() { |
| return connectionFactoryMode.getString(); |
| } |
| |
| @Override |
| public void setConnectionFactoryMode(String mode) { |
| connectionFactoryMode.setString(mode); |
| } |
| |
| @Override |
| public boolean isConnectionFactoryModeManaged() { |
| return connectionFactoryMode.get(); |
| } |
| |
| @Override |
| public void setConnectionFactoryModeManaged(boolean managed) { |
| connectionFactoryMode.set(managed); |
| } |
| |
| @Override |
| public void setConnectionFactoryName(String connectionFactoryName) { |
| this.connectionFactoryName.setString(connectionFactoryName); |
| } |
| |
| @Override |
| public String getConnectionFactoryName() { |
| return connectionFactoryName.getString(); |
| } |
| |
| @Override |
| public void setConnectionFactory(Object factory) { |
| connectionFactory.set(factory); |
| } |
| |
| @Override |
| public Object getConnectionFactory() { |
| if (connectionFactory.get() == null) |
| connectionFactory.set( |
| lookupConnectionFactory(getConnectionFactoryName(), |
| connectionFactory.getProperty()), true); |
| return connectionFactory.get(); |
| } |
| |
| /** |
| * Lookup the connection factory at the given name. |
| */ |
| private Object lookupConnectionFactory(String name, String userKey) { |
| name = StringUtil.trimToNull(name); |
| if (name == null) |
| return null; |
| try { |
| return Configurations.lookup(name, userKey, |
| getLog(OpenJPAConfiguration.LOG_RUNTIME)); |
| } catch (Exception ex) { |
| return null; |
| } |
| } |
| |
| @Override |
| public void setConnection2UserName(String connection2UserName) { |
| this.connection2UserName.setString(connection2UserName); |
| } |
| |
| @Override |
| public String getConnection2UserName() { |
| return connection2UserName.getString(); |
| } |
| |
| @Override |
| public void setConnection2Password(String connection2Password) { |
| this.connection2Password.setString(connection2Password); |
| } |
| |
| @Override |
| public String getConnection2Password() { |
| EncryptionProvider p = getEncryptionProvider(); |
| if(p != null){ |
| return p.decrypt(connection2Password.getString()); |
| } |
| return connection2Password.getString(); |
| } |
| |
| @Override |
| public void setConnection2URL(String connection2URL) { |
| this.connection2URL.setString(connection2URL); |
| } |
| |
| @Override |
| public String getConnection2URL() { |
| return connection2URL.getString(); |
| } |
| |
| @Override |
| public void setConnection2DriverName(String driverName) { |
| this.connection2DriverName.setString(driverName); |
| } |
| |
| @Override |
| public String getConnection2DriverName() { |
| return connection2DriverName.getString(); |
| } |
| |
| @Override |
| public void setConnection2Properties(String connection2Properties) { |
| this.connection2Properties.setString(connection2Properties); |
| } |
| |
| @Override |
| public String getConnection2Properties() { |
| return connection2Properties.getString(); |
| } |
| |
| @Override |
| public void setConnectionFactory2Properties( |
| String connectionFactory2Properties) { |
| this.connectionFactory2Properties |
| .setString(connectionFactory2Properties); |
| } |
| |
| @Override |
| public String getConnectionFactory2Properties() { |
| return connectionFactory2Properties.getString(); |
| } |
| |
| @Override |
| public void setConnectionFactory2Name(String connectionFactory2Name) { |
| this.connectionFactory2Name.setString(connectionFactory2Name); |
| } |
| |
| @Override |
| public String getConnectionFactory2Name() { |
| return connectionFactory2Name.getString(); |
| } |
| |
| @Override |
| public void setConnectionFactory2(Object factory) { |
| connectionFactory2.set(factory); |
| } |
| |
| @Override |
| public Object getConnectionFactory2() { |
| if (connectionFactory2.get() == null) |
| connectionFactory2.set( |
| lookupConnectionFactory(getConnectionFactory2Name(), |
| connectionFactory2.getProperty()), false); |
| return connectionFactory2.get(); |
| } |
| |
| @Override |
| public void setOptimistic(boolean optimistic) { |
| this.optimistic.set(optimistic); |
| } |
| |
| @Override |
| public void setOptimistic(Boolean optimistic) { |
| if (optimistic != null) |
| setOptimistic(optimistic.booleanValue()); |
| } |
| |
| @Override |
| public boolean getOptimistic() { |
| return optimistic.get(); |
| } |
| |
| @Override |
| public void setAutoClear(String clear) { |
| autoClear.setString(clear); |
| } |
| |
| @Override |
| public String getAutoClear() { |
| return autoClear.getString(); |
| } |
| |
| @Override |
| public void setAutoClear(int clear) { |
| autoClear.set(clear); |
| } |
| |
| @Override |
| public int getAutoClearConstant() { |
| return autoClear.get(); |
| } |
| |
| @Override |
| public void setRetainState(boolean retainState) { |
| this.retainState.set(retainState); |
| } |
| |
| @Override |
| public void setRetainState(Boolean retainState) { |
| if (retainState != null) |
| setRetainState(retainState.booleanValue()); |
| } |
| |
| @Override |
| public boolean getRetainState() { |
| return retainState.get(); |
| } |
| |
| @Override |
| public void setRestoreState(String restoreState) { |
| this.restoreState.setString(restoreState); |
| } |
| |
| @Override |
| public String getRestoreState() { |
| return restoreState.getString(); |
| } |
| |
| @Override |
| public void setRestoreState(int restoreState) { |
| this.restoreState.set(restoreState); |
| } |
| |
| @Override |
| public int getRestoreStateConstant() { |
| return restoreState.get(); |
| } |
| |
| @Override |
| public void setAutoDetach(String autoDetach) { |
| this.autoDetach.setString(autoDetach); |
| } |
| |
| @Override |
| public String getAutoDetach() { |
| return autoDetach.getString(); |
| } |
| |
| @Override |
| public void setAutoDetach(int autoDetachFlags) { |
| autoDetach.setConstant(autoDetachFlags); |
| } |
| |
| @Override |
| public int getAutoDetachConstant() { |
| return autoDetach.getConstant(); |
| } |
| |
| @Override |
| public void setDetachState(String detachState) { |
| detachStatePlugin.setString(detachState); |
| } |
| |
| public String getDetachState() { |
| return detachStatePlugin.getString(); |
| } |
| |
| @Override |
| public void setDetachState(DetachOptions detachState) { |
| detachStatePlugin.set(detachState); |
| } |
| |
| @Override |
| public DetachOptions getDetachStateInstance() { |
| if (detachStatePlugin.get() == null) |
| detachStatePlugin.instantiate(DetachOptions.class, this); |
| return (DetachOptions) detachStatePlugin.get(); |
| } |
| |
| @Override |
| public void setIgnoreChanges(boolean ignoreChanges) { |
| this.ignoreChanges.set(ignoreChanges); |
| } |
| |
| @Override |
| public void setIgnoreChanges(Boolean ignoreChanges) { |
| if (ignoreChanges != null) |
| setIgnoreChanges(ignoreChanges.booleanValue()); |
| } |
| |
| @Override |
| public boolean getIgnoreChanges() { |
| return ignoreChanges.get(); |
| } |
| |
| @Override |
| public void setNontransactionalRead(boolean nontransactionalRead) { |
| this.nontransactionalRead.set(nontransactionalRead); |
| } |
| |
| @Override |
| public void setNontransactionalRead(Boolean nontransactionalRead) { |
| if (nontransactionalRead != null) |
| setNontransactionalRead(nontransactionalRead.booleanValue()); |
| } |
| |
| @Override |
| public boolean getNontransactionalRead() { |
| return nontransactionalRead.get(); |
| } |
| |
| @Override |
| public void setNontransactionalWrite(boolean nontransactionalWrite) { |
| this.nontransactionalWrite.set(nontransactionalWrite); |
| } |
| |
| @Override |
| public void setNontransactionalWrite(Boolean nontransactionalWrite) { |
| if (nontransactionalWrite != null) |
| setNontransactionalWrite(nontransactionalWrite.booleanValue()); |
| } |
| |
| @Override |
| public boolean getNontransactionalWrite() { |
| return nontransactionalWrite.get(); |
| } |
| |
| @Override |
| public void setMultithreaded(boolean multithreaded) { |
| this.multithreaded.set(multithreaded); |
| } |
| |
| @Override |
| public void setMultithreaded(Boolean multithreaded) { |
| if (multithreaded != null) |
| setMultithreaded(multithreaded.booleanValue()); |
| } |
| |
| @Override |
| public boolean getMultithreaded() { |
| return multithreaded.get(); |
| } |
| |
| @Override |
| public void setFetchBatchSize(int fetchBatchSize) { |
| this.fetchBatchSize.set(fetchBatchSize); |
| } |
| |
| @Override |
| public void setFetchBatchSize(Integer fetchBatchSize) { |
| if (fetchBatchSize != null) |
| setFetchBatchSize(fetchBatchSize.intValue()); |
| } |
| |
| @Override |
| public int getFetchBatchSize() { |
| return fetchBatchSize.get(); |
| } |
| |
| @Override |
| public void setMaxFetchDepth(int maxFetchDepth) { |
| this.maxFetchDepth.set(maxFetchDepth); |
| } |
| |
| @Override |
| public void setMaxFetchDepth(Integer maxFetchDepth) { |
| if (maxFetchDepth != null) |
| setMaxFetchDepth(maxFetchDepth.intValue()); |
| } |
| |
| @Override |
| public int getMaxFetchDepth() { |
| return maxFetchDepth.get(); |
| } |
| |
| @Override |
| public void setFetchGroups(String fetchGroups) { |
| this.fetchGroups.setString(fetchGroups); |
| } |
| |
| @Override |
| public String getFetchGroups() { |
| return fetchGroups.getString(); |
| } |
| |
| @Override |
| public String[] getFetchGroupsList() { |
| return fetchGroups.get(); |
| } |
| |
| @Override |
| public void setFetchGroups(String[] fetchGroups) { |
| this.fetchGroups.set(fetchGroups); |
| } |
| |
| @Override |
| public void setFlushBeforeQueries(String flush) { |
| flushBeforeQueries.setString(flush); |
| } |
| |
| @Override |
| public String getFlushBeforeQueries() { |
| return flushBeforeQueries.getString(); |
| } |
| |
| @Override |
| public void setFlushBeforeQueries(int flush) { |
| flushBeforeQueries.set(flush); |
| } |
| |
| @Override |
| public int getFlushBeforeQueriesConstant() { |
| return flushBeforeQueries.get(); |
| } |
| |
| @Override |
| public void setLockTimeout(int timeout) { |
| lockTimeout.set(timeout); |
| } |
| |
| @Override |
| public void setLockTimeout(Integer timeout) { |
| if (timeout != null) |
| setLockTimeout(timeout.intValue()); |
| } |
| |
| @Override |
| public int getLockTimeout() { |
| return lockTimeout.get(); |
| } |
| |
| @Override |
| public int getQueryTimeout() { |
| return queryTimeout.get(); |
| } |
| |
| @Override |
| public void setQueryTimeout(int timeout) { |
| queryTimeout.set(timeout); |
| } |
| |
| @Override |
| public void setReadLockLevel(String level) { |
| readLockLevel.setString(level); |
| } |
| |
| @Override |
| public String getReadLockLevel() { |
| return readLockLevel.getString(); |
| } |
| |
| @Override |
| public void setReadLockLevel(int level) { |
| readLockLevel.set(level); |
| } |
| |
| @Override |
| public int getReadLockLevelConstant() { |
| return readLockLevel.get(); |
| } |
| |
| @Override |
| public void setWriteLockLevel(String level) { |
| writeLockLevel.setString(level); |
| } |
| |
| @Override |
| public String getWriteLockLevel() { |
| return writeLockLevel.getString(); |
| } |
| |
| @Override |
| public void setWriteLockLevel(int level) { |
| writeLockLevel.set(level); |
| } |
| |
| @Override |
| public int getWriteLockLevelConstant() { |
| return writeLockLevel.get(); |
| } |
| |
| @Override |
| public void setSequence(String sequence) { |
| seqPlugin.setString(sequence); |
| } |
| |
| @Override |
| public String getSequence() { |
| return seqPlugin.getString(); |
| } |
| |
| @Override |
| public void setSequence(Seq seq) { |
| seqPlugin.set(seq); |
| } |
| |
| @Override |
| public Seq getSequenceInstance() { |
| if (seqPlugin.get() == null) |
| seqPlugin.instantiate(Seq.class, this); |
| return (Seq) seqPlugin.get(); |
| } |
| |
| @Override |
| public void setConnectionRetainMode(String connectionRetainMode) { |
| this.connectionRetainMode.setString(connectionRetainMode); |
| } |
| |
| @Override |
| public String getConnectionRetainMode() { |
| return connectionRetainMode.getString(); |
| } |
| |
| @Override |
| public void setConnectionRetainMode(int connectionRetainMode) { |
| this.connectionRetainMode.set(connectionRetainMode); |
| } |
| |
| @Override |
| public int getConnectionRetainModeConstant() { |
| return connectionRetainMode.get(); |
| } |
| |
| @Override |
| public void setFilterListeners(String filterListeners) { |
| filterListenerPlugins.setString(filterListeners); |
| } |
| |
| @Override |
| public String getFilterListeners() { |
| return filterListenerPlugins.getString(); |
| } |
| |
| @Override |
| public void setFilterListeners(FilterListener[] listeners) { |
| filterListenerPlugins.set(listeners); |
| } |
| |
| @Override |
| public FilterListener[] getFilterListenerInstances() { |
| if (filterListenerPlugins.get() == null) |
| filterListenerPlugins.instantiate(FilterListener.class, this); |
| return (FilterListener[]) filterListenerPlugins.get(); |
| } |
| |
| @Override |
| public void setAggregateListeners(String aggregateListeners) { |
| aggregateListenerPlugins.setString(aggregateListeners); |
| } |
| |
| @Override |
| public String getAggregateListeners() { |
| return aggregateListenerPlugins.getString(); |
| } |
| |
| @Override |
| public void setAggregateListeners(AggregateListener[] listeners) { |
| aggregateListenerPlugins.set(listeners); |
| } |
| |
| @Override |
| public AggregateListener[] getAggregateListenerInstances() { |
| if (aggregateListenerPlugins.get() == null) |
| aggregateListenerPlugins.instantiate(AggregateListener.class, this); |
| return (AggregateListener[]) aggregateListenerPlugins.get(); |
| } |
| |
| @Override |
| public void setRetryClassRegistration(boolean retry) { |
| retryClassRegistration.set(retry); |
| } |
| |
| @Override |
| public void setRetryClassRegistration(Boolean retry) { |
| if (retry != null) |
| setRetryClassRegistration(retry.booleanValue()); |
| } |
| |
| @Override |
| public boolean getRetryClassRegistration() { |
| return retryClassRegistration.get(); |
| } |
| |
| @Override |
| public String getCompatibility() { |
| return compatibilityPlugin.getString(); |
| } |
| |
| @Override |
| public void setCompatibility(String compatibility) { |
| compatibilityPlugin.setString(compatibility); |
| } |
| |
| /** |
| * If a Compatibility instance is associated with the Specification, |
| * we will configure this Compatibility instance instead of instantiating a |
| * new one so that the compatibility flags set in compliance with the |
| * Specification can be preserved. |
| */ |
| @Override |
| public Compatibility getCompatibilityInstance() { |
| if (compatibilityPlugin.get() == null) { |
| Specification spec = getSpecificationInstance(); |
| Compatibility comp = spec != null ? spec.getCompatibility() : null; |
| if (comp == null) |
| compatibilityPlugin.instantiate(Compatibility.class, this); |
| else |
| compatibilityPlugin.configure(comp, this); |
| } |
| return (Compatibility) compatibilityPlugin.get(); |
| } |
| |
| @Override |
| public String getCallbackOptions() { |
| return callbackPlugin.getString(); |
| } |
| |
| @Override |
| public void setCallbackOptions(String options) { |
| callbackPlugin.setString(options); |
| } |
| |
| @Override |
| public CallbackOptions getCallbackOptionsInstance() { |
| if (callbackPlugin.get() == null) |
| callbackPlugin.instantiate(CallbackOptions.class, this); |
| return (CallbackOptions) callbackPlugin.get(); |
| } |
| |
| @Override |
| public String getQueryCompilationCache() { |
| return queryCompilationCachePlugin.getString(); |
| } |
| |
| @Override |
| public void setQueryCompilationCache(String queryCompilationCache) { |
| queryCompilationCachePlugin.setString(queryCompilationCache); |
| } |
| |
| @Override |
| public Map getQueryCompilationCacheInstance() { |
| if (queryCompilationCachePlugin.get() == null) |
| queryCompilationCachePlugin.instantiate(Map.class, this); |
| return (Map) queryCompilationCachePlugin.get(); |
| } |
| |
| @Override |
| public StoreFacadeTypeRegistry getStoreFacadeTypeRegistry() { |
| return _storeFacadeRegistry; |
| } |
| |
| @Override |
| public BrokerFactoryEventManager getBrokerFactoryEventManager() { |
| return _brokerFactoryEventManager; |
| } |
| |
| @Override |
| public String getRuntimeUnenhancedClasses() { |
| return runtimeUnenhancedClasses.getString(); |
| } |
| |
| @Override |
| public int getRuntimeUnenhancedClassesConstant() { |
| return runtimeUnenhancedClasses.get(); |
| } |
| |
| @Override |
| public void setRuntimeUnenhancedClasses(int mode) { |
| runtimeUnenhancedClasses.set(mode); |
| } |
| |
| @Override |
| public void setRuntimeUnenhancedClasses(String mode) { |
| runtimeUnenhancedClasses.setString(mode); |
| } |
| |
| @Override |
| public String getCacheMarshallers() { |
| return cacheMarshallerPlugins.getString(); |
| } |
| |
| @Override |
| public void setCacheMarshallers(String marshallers) { |
| cacheMarshallerPlugins.setString(marshallers); |
| } |
| |
| @Override |
| public Map getCacheMarshallerInstances() { |
| return cacheMarshallerPlugins.getInstancesAsMap(); |
| } |
| |
| @Override |
| public boolean isInitializeEagerly() { |
| return eagerInitialization.get(); |
| } |
| |
| @Override |
| public void setInitializeEagerly(boolean retry) { |
| eagerInitialization.set(retry); |
| } |
| |
| @Override |
| public void setValidationMode(String mode) { |
| validationMode.setString(mode); |
| } |
| |
| @Override |
| public String getValidationMode() { |
| String mode = validationMode.getString(); |
| if (mode == null) |
| mode = validationMode.getDefault(); |
| return mode; |
| } |
| |
| @Override |
| public void setValidationGroupPrePersist(String vgPrePersist) { |
| validationGroupPrePersist.setString(vgPrePersist); |
| } |
| |
| @Override |
| public String getValidationGroupPrePersist() { |
| String vgPrePersist = validationGroupPrePersist.getString(); |
| if (vgPrePersist == null) |
| vgPrePersist = validationGroupPrePersist.getDefault(); |
| return vgPrePersist; |
| } |
| |
| @Override |
| public void setValidationGroupPreUpdate(String vgPreUpdate) { |
| validationGroupPreUpdate.setString(vgPreUpdate); |
| } |
| |
| @Override |
| public String getValidationGroupPreUpdate() { |
| String vgPreUpdate = validationGroupPreUpdate.getString(); |
| if (vgPreUpdate == null) |
| vgPreUpdate = validationGroupPreUpdate.getDefault(); |
| return vgPreUpdate; |
| } |
| |
| @Override |
| public void setValidationGroupPreRemove(String vgPreRemove) { |
| validationGroupPreRemove.setString(vgPreRemove); |
| } |
| |
| @Override |
| public String getValidationGroupPreRemove() { |
| String vgPreRemove = validationGroupPreRemove.getString(); |
| if (vgPreRemove == null) |
| vgPreRemove = validationGroupPreRemove.getDefault(); |
| return vgPreRemove; |
| } |
| |
| @Override |
| public String getInstrumentation() { |
| return instrumentationProviders.getString(); |
| } |
| |
| @Override |
| public void setInstrumentation(String providers) { |
| instrumentationProviders.setString(providers); |
| } |
| |
| public InstrumentationProvider[] getInstrumentationInstances() { |
| if (instrumentationProviders.get() == null) |
| instrumentationProviders.instantiate(InstrumentationProvider.class, this); |
| return (InstrumentationProvider[]) instrumentationProviders.get(); |
| } |
| |
| public void setInstrumentationManager(String mgr) { |
| instrumentationManager.setString(mgr); |
| } |
| |
| public String getInstrumentationManager() { |
| return instrumentationManager.getString(); |
| } |
| |
| public void setInstrumentationManager(InstrumentationManager im) { |
| if (im != null) |
| im.initialize(this, instrumentationProviders); |
| instrumentationManager.set(im); |
| } |
| |
| @Override |
| public InstrumentationManager getInstrumentationManagerInstance() { |
| InstrumentationManager im = (InstrumentationManager) instrumentationManager.get(); |
| if (im == null) { |
| im = (InstrumentationManager) instrumentationManager.instantiate(InstrumentationManager.class, this); |
| if (im != null) { |
| im.initialize(this, instrumentationProviders); |
| im.start(InstrumentationLevel.IMMEDIATE, this); |
| } |
| } |
| return im; |
| } |
| |
| @Override |
| public void instantiateAll() { |
| super.instantiateAll(); |
| getMetaDataRepositoryInstance(); |
| getRemoteCommitEventManager(); |
| getAuditorInstance(); |
| cacheMarshallerPlugins.initialize(); |
| if (isInitializeEagerly()) { |
| getConnectionFactory(); |
| getConnectionFactory2(); |
| } |
| } |
| |
| @Override |
| protected void preClose() { |
| ImplHelper.close(metaRepository); |
| ImplHelper.close(remoteEventManager); |
| ImplHelper.close(getInstrumentationManagerInstance()); |
| super.preClose(); |
| } |
| |
| @Override |
| public Log getConfigurationLog() { |
| return getLog(LOG_RUNTIME); |
| } |
| |
| @Override |
| public void setQuerySQLCache(String querySQLCache) { |
| preparedQueryCachePlugin.setString(querySQLCache); |
| } |
| |
| @Override |
| public void setQuerySQLCache(PreparedQueryCache querySQLCache) { |
| preparedQueryCachePlugin.set(querySQLCache); |
| } |
| |
| @Override |
| public String getQuerySQLCache() { |
| return preparedQueryCachePlugin.getString(); |
| } |
| |
| @Override |
| public PreparedQueryCache getQuerySQLCacheInstance() { |
| if (preparedQueryCachePlugin == null) |
| return null; |
| |
| if (preparedQueryCachePlugin.get() == null) { |
| preparedQueryCachePlugin.instantiate(PreparedQueryCache.class, |
| this); |
| } |
| return (PreparedQueryCache)preparedQueryCachePlugin.get(); |
| } |
| |
| @Override |
| public void setFinderCache(String finderCache) { |
| finderCachePlugin.setString(finderCache); |
| } |
| |
| @Override |
| public String getFinderCache() { |
| return finderCachePlugin.getString(); |
| } |
| |
| @Override |
| public FinderCache getFinderCacheInstance() { |
| if (finderCachePlugin.get() == null) { |
| finderCachePlugin.instantiate(FinderCache.class, this); |
| } |
| return (FinderCache)finderCachePlugin.get(); |
| } |
| |
| @Override |
| public Object getValidationFactoryInstance() { |
| return validationFactory.get(); |
| } |
| |
| @Override |
| public void setValidationFactory(Object factory) { |
| validationFactory.set(factory); |
| } |
| |
| @Override |
| public Object getValidatorInstance() { |
| return validator.get(); |
| } |
| |
| @Override |
| public void setValidatorInstance(Object val) { |
| validator.set(val); |
| } |
| |
| @Override |
| public String getLifecycleEventManager() { |
| return lifecycleEventManager.getString(); |
| } |
| |
| @Override |
| public LifecycleEventManager getLifecycleEventManagerInstance() { |
| LifecycleEventManager lem = null; |
| if (!getCompatibilityInstance().isSingletonLifecycleEventManager() || |
| (lem = (LifecycleEventManager)lifecycleEventManager.get()) == null) { |
| lem = (LifecycleEventManager)lifecycleEventManager |
| .instantiate(LifecycleEventManager.class, this); |
| } |
| return lem; |
| } |
| |
| @Override |
| public void setLifecycleEventManager(String lem) { |
| if (_allowSetLifeCycleEventManager) { |
| _allowSetLifeCycleEventManager = false; |
| // Only allow this to be called once even if the configuration is frozen. This can happen if a configuration |
| // is eagerly initialized and validation is being used. |
| lifecycleEventManager.setDynamic(true); |
| lifecycleEventManager.setString(lem); |
| lifecycleEventManager.setDynamic(false); |
| } else { |
| // If the configuration is frozen this will result in a warning message and/or an exception. |
| lifecycleEventManager.setString(lem); |
| } |
| } |
| |
| @Override |
| public boolean getDynamicEnhancementAgent() { |
| return dynamicEnhancementAgent.get(); |
| } |
| |
| @Override |
| public void setDynamicEnhancementAgent(boolean dynamic) { |
| dynamicEnhancementAgent.set(dynamic); |
| } |
| |
| @Override |
| public void setEncryptionProvider(String p) { |
| encryptionProvider.setString(p); |
| } |
| |
| @Override |
| public EncryptionProvider getEncryptionProvider() { |
| if (encryptionProvider.get() == null) |
| encryptionProvider.instantiate(EncryptionProvider.class, this); |
| return (EncryptionProvider) encryptionProvider.get(); |
| } |
| |
| @Override |
| public void setDataCacheMode(String mode) { |
| this.dataCacheMode.setString(mode); |
| } |
| |
| @Override |
| public String getDataCacheMode() { |
| return dataCacheMode.getString(); |
| } |
| |
| |
| @Override |
| public String getCacheDistributionPolicy() { |
| return cacheDistributionPolicyPlugin.getString(); |
| } |
| |
| @Override |
| public CacheDistributionPolicy getCacheDistributionPolicyInstance() { |
| CacheDistributionPolicy policy = (CacheDistributionPolicy) cacheDistributionPolicyPlugin.get(); |
| if (policy == null) { |
| policy = (CacheDistributionPolicy) |
| cacheDistributionPolicyPlugin.instantiate(CacheDistributionPolicy.class, this); |
| } |
| return policy; |
| } |
| |
| @Override |
| public void setCacheDistributionPolicy(String policyPlugin) { |
| cacheDistributionPolicyPlugin.setString(policyPlugin); |
| } |
| |
| @Override |
| public void setCacheDistributionPolicyInstance(CacheDistributionPolicy policy) { |
| cacheDistributionPolicyPlugin.set(policy); |
| } |
| |
| public void setPersistenceEnvironment(Map<String, Object> peMap) { |
| this._peMap = peMap; |
| } |
| |
| public Map<String, Object> getPersistenceEnvironment() { |
| return _peMap; |
| } |
| |
| @Override |
| public Auditor getAuditorInstance() { |
| Auditor auditor = (Auditor) auditorPlugin.get(); |
| if (auditor == null) { |
| auditor = (Auditor) auditorPlugin.instantiate(Auditor.class, this); |
| } |
| return auditor; |
| } |
| |
| @Override |
| public void setAuditorInstance(Auditor auditor) { |
| auditorPlugin.set(auditor); |
| } |
| |
| @Override |
| public String getAuditor() { |
| return auditorPlugin.getString(); |
| } |
| |
| @Override |
| public void setAuditor(String auditor) { |
| auditorPlugin.setString(auditor); |
| } |
| |
| @Override |
| public boolean getPostLoadOnMerge() { |
| return postLoadOnMerge.get(); |
| } |
| |
| @Override |
| public void setPostLoadOnMerge(boolean postLoadOnMerge) { |
| this.postLoadOnMerge.set(postLoadOnMerge); |
| } |
| |
| @Override |
| public void setPostLoadOnMerge(Boolean postLoadOnMerge) { |
| if (postLoadOnMerge != null) |
| setPostLoadOnMerge(postLoadOnMerge.booleanValue()); |
| } |
| |
| @Override |
| public boolean getOptimizeIdCopy() { |
| return optimizeIdCopy.get(); |
| } |
| |
| @Override |
| public void setOptimizeIdCopy(boolean optimizeId) { |
| optimizeIdCopy.set(optimizeId); |
| } |
| |
| @Override |
| public void setOptimizeIdCopy(Boolean optimizeId) { |
| if (optimizeId != null) { |
| setOptimizeIdCopy(optimizeId.booleanValue()); |
| } |
| } |
| |
| @Override |
| public String getDatabaseAction() { |
| return databaseAction.getString(); |
| } |
| |
| @Override |
| public int getDatabaseActionConstant() { |
| return databaseAction.get(); |
| } |
| |
| @Override |
| public String getScriptsAction() { |
| return scriptsAction.getString(); |
| } |
| |
| @Override |
| public int getScriptsActionConstant() { |
| return scriptsAction.get(); |
| } |
| |
| @Override |
| public String getCreateSource() { |
| return createSource.getString(); |
| } |
| |
| @Override |
| public int getCreateSourceConstant() { |
| return createSource.get(); |
| } |
| |
| @Override |
| public String getDropSource() { |
| return dropSource.getString(); |
| } |
| |
| @Override |
| public int getDropSourceConstant() { |
| return dropSource.get(); |
| } |
| |
| @Override |
| public String getCreateScriptSource() { |
| return createScriptSource.getString(); |
| } |
| |
| @Override |
| public String getDropScriptSource() { |
| return dropScriptSource.getString(); |
| } |
| |
| @Override |
| public String getCreateScriptTarget() { |
| return createScriptTarget.getString(); |
| } |
| |
| @Override |
| public String getDropScriptTarget() { |
| return dropScriptTarget.getString(); |
| } |
| |
| @Override |
| public String getLoadScriptSource() { |
| return loadScriptSource.getString(); |
| } |
| |
| @Override |
| public boolean getUseTCCLinSelectNew() { |
| return useTcclForSelectNew.get(); |
| } |
| |
| @Override |
| public void setUseTCCLinSelectNew(boolean useTcclForSelectNew) { |
| this.useTcclForSelectNew.set(useTcclForSelectNew); |
| } |
| |
| @Override |
| public void setUseTCCLinSelectNew(Boolean useTcclForSelectNew) { |
| if (useTcclForSelectNew != null) { |
| setUseTCCLinSelectNew(useTcclForSelectNew.booleanValue()); |
| } |
| } |
| } |
| |