alvinalexander.com | career | drupal | java | mac | mysql | perl | scala | uml | unix  

Hibernate example source code file (ExternalSessionFactoryConfig.java)

This example Hibernate source code file (ExternalSessionFactoryConfig.java) is included in the DevDaily.com "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.

Java - Hibernate tags/keywords

configuration, configuration, externalsessionfactoryconfig, hashmap, hashset, iterator, map, map, properties, properties, set, string, string, util

The Hibernate ExternalSessionFactoryConfig.java source code

/*
 * Hibernate, Relational Persistence for Idiomatic Java
 *
 * Copyright (c) 2011, Red Hat Inc. or third-party contributors as
 * indicated by the @author tags or express copyright attribution
 * statements applied by the authors.  All third-party contributions are
 * distributed under license by Red Hat Inc.
 *
 * This copyrighted material is made available to anyone wishing to use, modify,
 * copy, or redistribute it subject to the terms and conditions of the GNU
 * Lesser General Public License, as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
 * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
 * for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with this distribution; if not, write to:
 * Free Software Foundation, Inc.
 * 51 Franklin Street, Fifth Floor
 * Boston, MA  02110-1301  USA
 */
package org.hibernate.cfg;

import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.Properties;
import java.util.Set;

import org.hibernate.internal.util.config.ConfigurationHelper;

/**
 * Defines support for various externally configurable SessionFactory(s), for
 * example, {@link org.hibernate.jmx.HibernateService JMX} or the JCA
 * adapter.
 *
 * @author Steve Ebersole
 */
public abstract class ExternalSessionFactoryConfig {
	private String mapResources;
	private String dialect;
	private String defaultSchema;
	private String defaultCatalog;
	private String maximumFetchDepth;
	private String jdbcFetchSize;
	private String jdbcBatchSize;
	private String batchVersionedDataEnabled;
	private String jdbcScrollableResultSetEnabled;
	private String getGeneratedKeysEnabled;
	private String streamsForBinaryEnabled;
	private String reflectionOptimizationEnabled;
	private String querySubstitutions;
	private String showSqlEnabled;
	private String commentsEnabled;
	private String cacheRegionFactory;
	private String cacheProviderConfig;
	private String cacheRegionPrefix;
	private String secondLevelCacheEnabled;
	private String minimalPutsEnabled;
	private String queryCacheEnabled;

	private Map additionalProperties;
	private Set excludedPropertyNames = new HashSet();

	protected Set getExcludedPropertyNames() {
		return excludedPropertyNames;
	}

	public final String getMapResources() {
		return mapResources;
	}

	public final void setMapResources(String mapResources) {
		this.mapResources = mapResources;
	}

	public void addMapResource(String mapResource) {
		if ( mapResources==null || mapResources.length()==0 ) {
			mapResources = mapResource.trim();
		}
		else {
			mapResources += ", " + mapResource.trim();
		}
	}

	public final String getDialect() {
		return dialect;
	}

	public final void setDialect(String dialect) {
		this.dialect = dialect;
	}

	public final String getDefaultSchema() {
		return defaultSchema;
	}

	public final void setDefaultSchema(String defaultSchema) {
		this.defaultSchema = defaultSchema;
	}

	public final String getDefaultCatalog() {
		return defaultCatalog;
	}

	public final void setDefaultCatalog(String defaultCatalog) {
		this.defaultCatalog = defaultCatalog;
	}

	public final String getMaximumFetchDepth() {
		return maximumFetchDepth;
	}

	public final void setMaximumFetchDepth(String maximumFetchDepth) {
		verifyInt( maximumFetchDepth );
		this.maximumFetchDepth = maximumFetchDepth;
	}

	public final String getJdbcFetchSize() {
		return jdbcFetchSize;
	}

	public final void setJdbcFetchSize(String jdbcFetchSize) {
		verifyInt( jdbcFetchSize );
		this.jdbcFetchSize = jdbcFetchSize;
	}

	public final String getJdbcBatchSize() {
		return jdbcBatchSize;
	}

	public final void setJdbcBatchSize(String jdbcBatchSize) {
		verifyInt( jdbcBatchSize );
		this.jdbcBatchSize = jdbcBatchSize;
	}

	public final String getBatchVersionedDataEnabled() {
		return batchVersionedDataEnabled;
	}

	public final void setBatchVersionedDataEnabled(String batchVersionedDataEnabled) {
		this.batchVersionedDataEnabled = batchVersionedDataEnabled;
	}

	public final String getJdbcScrollableResultSetEnabled() {
		return jdbcScrollableResultSetEnabled;
	}

	public final void setJdbcScrollableResultSetEnabled(String jdbcScrollableResultSetEnabled) {
		this.jdbcScrollableResultSetEnabled = jdbcScrollableResultSetEnabled;
	}

	public final String getGetGeneratedKeysEnabled() {
		return getGeneratedKeysEnabled;
	}

	public final void setGetGeneratedKeysEnabled(String getGeneratedKeysEnabled) {
		this.getGeneratedKeysEnabled = getGeneratedKeysEnabled;
	}

	public final String getStreamsForBinaryEnabled() {
		return streamsForBinaryEnabled;
	}

	public final void setStreamsForBinaryEnabled(String streamsForBinaryEnabled) {
		this.streamsForBinaryEnabled = streamsForBinaryEnabled;
	}

	public final String getReflectionOptimizationEnabled() {
		return reflectionOptimizationEnabled;
	}

	public final void setReflectionOptimizationEnabled(String reflectionOptimizationEnabled) {
		this.reflectionOptimizationEnabled = reflectionOptimizationEnabled;
	}

	public final String getQuerySubstitutions() {
		return querySubstitutions;
	}

	public final void setQuerySubstitutions(String querySubstitutions) {
		this.querySubstitutions = querySubstitutions;
	}

	public final String getShowSqlEnabled() {
		return showSqlEnabled;
	}

	public final void setShowSqlEnabled(String showSqlEnabled) {
		this.showSqlEnabled = showSqlEnabled;
	}

	public final String getCommentsEnabled() {
		return commentsEnabled;
	}

	public final void setCommentsEnabled(String commentsEnabled) {
		this.commentsEnabled = commentsEnabled;
	}

	public final String getSecondLevelCacheEnabled() {
		return secondLevelCacheEnabled;
	}

	public final void setSecondLevelCacheEnabled(String secondLevelCacheEnabled) {
		this.secondLevelCacheEnabled = secondLevelCacheEnabled;
	}

	public final String getCacheRegionFactory() {
		return cacheRegionFactory;
	}

	public final void setCacheRegionFactory(String cacheRegionFactory) {
		this.cacheRegionFactory = cacheRegionFactory;
	}

	public String getCacheProviderConfig() {
		return cacheProviderConfig;
	}

	public void setCacheProviderConfig(String cacheProviderConfig) {
		this.cacheProviderConfig = cacheProviderConfig;
	}

	public final String getCacheRegionPrefix() {
		return cacheRegionPrefix;
	}

	public final void setCacheRegionPrefix(String cacheRegionPrefix) {
		this.cacheRegionPrefix = cacheRegionPrefix;
	}

	public final String getMinimalPutsEnabled() {
		return minimalPutsEnabled;
	}

	public final void setMinimalPutsEnabled(String minimalPutsEnabled) {
		this.minimalPutsEnabled = minimalPutsEnabled;
	}

	public final String getQueryCacheEnabled() {
		return queryCacheEnabled;
	}

	public final void setQueryCacheEnabled(String queryCacheEnabled) {
		this.queryCacheEnabled = queryCacheEnabled;
	}

	public final void addAdditionalProperty(String name, String value) {
		if ( !getExcludedPropertyNames().contains( name ) ) {
			if ( additionalProperties == null ) {
				additionalProperties = new HashMap();
			}
			additionalProperties.put( name, value );
		}
	}

	protected final Configuration buildConfiguration() {

		Configuration cfg = new Configuration().setProperties( buildProperties() );


		String[] mappingFiles = ConfigurationHelper.toStringArray( mapResources, " ,\n\t\r\f" );
		for ( int i = 0; i < mappingFiles.length; i++ ) {
			cfg.addResource( mappingFiles[i] );
		}

		return cfg;
	}

	protected final Properties buildProperties() {
		Properties props = new Properties();
		setUnlessNull( props, Environment.DIALECT, dialect );
		setUnlessNull( props, Environment.DEFAULT_SCHEMA, defaultSchema );
		setUnlessNull( props, Environment.DEFAULT_CATALOG, defaultCatalog );
		setUnlessNull( props, Environment.MAX_FETCH_DEPTH, maximumFetchDepth );
		setUnlessNull( props, Environment.STATEMENT_FETCH_SIZE, jdbcFetchSize );
		setUnlessNull( props, Environment.STATEMENT_BATCH_SIZE, jdbcBatchSize );
		setUnlessNull( props, Environment.BATCH_VERSIONED_DATA, batchVersionedDataEnabled );
		setUnlessNull( props, Environment.USE_SCROLLABLE_RESULTSET, jdbcScrollableResultSetEnabled );
		setUnlessNull( props, Environment.USE_GET_GENERATED_KEYS, getGeneratedKeysEnabled );
		setUnlessNull( props, Environment.USE_STREAMS_FOR_BINARY, streamsForBinaryEnabled );
		setUnlessNull( props, Environment.USE_REFLECTION_OPTIMIZER, reflectionOptimizationEnabled );
		setUnlessNull( props, Environment.QUERY_SUBSTITUTIONS, querySubstitutions );
		setUnlessNull( props, Environment.SHOW_SQL, showSqlEnabled );
		setUnlessNull( props, Environment.USE_SQL_COMMENTS, commentsEnabled );
		setUnlessNull( props, Environment.CACHE_REGION_FACTORY, cacheRegionFactory );
		setUnlessNull( props, Environment.CACHE_PROVIDER_CONFIG, cacheProviderConfig );
		setUnlessNull( props, Environment.CACHE_REGION_PREFIX, cacheRegionPrefix );
		setUnlessNull( props, Environment.USE_MINIMAL_PUTS, minimalPutsEnabled );
		setUnlessNull( props, Environment.USE_SECOND_LEVEL_CACHE, secondLevelCacheEnabled );
		setUnlessNull( props, Environment.USE_QUERY_CACHE, queryCacheEnabled );

		Map extraProperties = getExtraProperties();
		if ( extraProperties != null ) {
			addAll( props, extraProperties );
		}

		if ( additionalProperties != null ) {
			addAll( props, additionalProperties );
		}

		return props;
	}

	protected void addAll( Properties target, Map source ) {
		Iterator itr = source.entrySet().iterator();
		while ( itr.hasNext() ) {
			final Map.Entry entry = ( Map.Entry ) itr.next();
			final String propertyName = ( String ) entry.getKey();
			final String propertyValue = ( String ) entry.getValue();
			if ( propertyName != null && propertyValue != null ) {
				// Make sure we don't override previous set values
				if ( !target.keySet().contains( propertyName ) ) {
					if ( !getExcludedPropertyNames().contains( propertyName) ) {
						target.put( propertyName, propertyValue );
					}
				}
			}
		}
	}

	protected Map getExtraProperties() {
		return null;
	}

	private void setUnlessNull(Properties props, String key, String value) {
		if ( value != null ) {
			props.setProperty( key, value );
		}
	}

	private void verifyInt(String value)
	{
		if ( value != null ) {
			Integer.parseInt( value );
		}
	}
}

Other Hibernate examples (source code examples)

Here is a short list of links related to this Hibernate ExternalSessionFactoryConfig.java source code file:

... this post is sponsored by my books ...

#1 New Release!

FP Best Seller

 

new blog posts

 

Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.

A percentage of advertising revenue from
pages under the /java/jwarehouse URI on this website is
paid back to open source projects.