Example usage for org.hibernate.cfg Environment verifyProperties

List of usage examples for org.hibernate.cfg Environment verifyProperties

Introduction

In this page you can find the example usage for org.hibernate.cfg Environment verifyProperties.

Prototype

@Deprecated
public static void verifyProperties(Map<?, ?> configurationValues) 

Source Link

Document

No longer effective.

Usage

From source file:com.amalto.core.storage.hibernate.HibernateStorage.java

License:Open Source License

@SuppressWarnings({ "unchecked", "rawtypes" })
@Override// ww w . j  a va2  s .c  o  m
public synchronized void prepare(MetadataRepository repository, Set<Expression> optimizedExpressions,
        boolean force, boolean dropExistingData) {
    if (!force && isPrepared) {
        return; // No op operation
    }
    if (isPrepared) {
        close();
        internalInit();
    }
    if (dataSource == null) {
        throw new IllegalArgumentException("Datasource is not set."); //$NON-NLS-1$
    }
    // No support for data models including inheritance AND for g* XSD simple types AND fields that start with
    // X_TALEND_
    try {
        repository.accept(METADATA_CHECKER);
        userMetadataRepository = repository;
    } catch (Exception e) {
        throw new RuntimeException("Exception occurred during unsupported features check.", e); //$NON-NLS-1$
    }
    // Loads additional types for staging area.
    if (storageType == StorageType.STAGING) {
        userMetadataRepository = repository.copy(); // See TMDM-6938: prevents staging types to appear in master
                                                    // storage.
        userMetadataRepository
                .load(MetadataRepositoryAdmin.class.getResourceAsStream("stagingInternalTypes.xsd")); //$NON-NLS-1$
    }
    // Create class loader for storage's dynamically created classes.
    ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
    Class<? extends StorageClassLoader> clazz;
    try {
        try {
            clazz = (Class<? extends StorageClassLoader>) Class.forName(ALTERNATE_CLASS_LOADER);
        } catch (ClassNotFoundException e) {
            clazz = (Class<? extends StorageClassLoader>) Class.forName(CLASS_LOADER);
        }
        Constructor<? extends StorageClassLoader> constructor = clazz.getConstructor(ClassLoader.class,
                String.class, StorageType.class);
        storageClassLoader = constructor.newInstance(contextClassLoader, storageName, storageType);
        storageClassLoader.setDataSourceConfiguration(dataSource);
        storageClassLoader.generateHibernateConfig(); // Checks if configuration can be generated.
    } catch (Exception e) {
        throw new RuntimeException("Could not create storage class loader", e); //$NON-NLS-1$
    }
    if (dropExistingData) {
        LOGGER.info("Cleaning existing database content."); //$NON-NLS-1$
        StorageCleaner cleaner = new JDBCStorageCleaner(new FullTextIndexCleaner());
        cleaner.clean(this);
    } else {
        LOGGER.info("*NOT* cleaning existing database content."); //$NON-NLS-1$
    }
    if (autoPrepare) {
        LOGGER.info("Preparing database before schema generation."); //$NON-NLS-1$
        StorageInitializer initializer = new JDBCStorageInitializer();
        if (initializer.supportInitialization(this)) {
            if (!initializer.isInitialized(this)) {
                initializer.initialize(this);
            } else {
                LOGGER.info("Database is already prepared."); //$NON-NLS-1$
            }
        } else {
            LOGGER.info("Datasource is not configured for automatic initialization."); //$NON-NLS-1$
        }
    } else {
        LOGGER.info("*NOT* preparing database before schema generation."); //$NON-NLS-1$
    }
    try {
        Thread.currentThread().setContextClassLoader(storageClassLoader);
        // Mapping of data model types to RDBMS (i.e. 'flatten' representation of types).
        MetadataRepository internalRepository;
        try {
            InternalRepository typeEnhancer = getTypeEnhancer();
            internalRepository = userMetadataRepository.accept(typeEnhancer);
            mappingRepository = typeEnhancer.getMappings();
        } catch (Exception e) {
            throw new RuntimeException("Exception occurred during type mapping creation.", e); //$NON-NLS-1$
        }
        // Set fields to be indexed in database.
        Set<FieldMetadata> databaseIndexedFields = new HashSet<FieldMetadata>();
        switch (storageType) {
        case MASTER:
            // Adds indexes on user defined fields
            for (Expression optimizedExpression : optimizedExpressions) {
                Collection<FieldMetadata> indexedFields = RecommendedIndexes.get(optimizedExpression);
                for (FieldMetadata indexedField : indexedFields) {
                    // TMDM-5896: Don't index Composite Key fields
                    if (indexedField instanceof CompoundFieldMetadata) {
                        continue;
                    }
                    // TMDM-5311: Don't index TEXT fields
                    TypeMetadata indexedFieldType = indexedField.getType();
                    if (!isIndexable(indexedFieldType)) {
                        if (LOGGER.isDebugEnabled()) {
                            LOGGER.debug("Ignore index on field '" + indexedField.getName() //$NON-NLS-1$
                                    + "' because value is stored in TEXT."); //$NON-NLS-1$
                        }
                        continue;
                    }
                    // Go up the containment tree in case containing type is anonymous.
                    ComplexTypeMetadata containingType = indexedField.getContainingType().getEntity();
                    TypeMapping mapping = mappingRepository.getMappingFromUser(containingType);
                    FieldMetadata databaseField = mapping.getDatabase(indexedField);
                    if (databaseField == null) {
                        LOGGER.error("Could not index field '" + indexedField + "' (" + indexedField.getPath() //$NON-NLS-1$ //$NON-NLS-2$
                                + "), ignoring index."); //$NON-NLS-1$
                        continue;
                    } else if (!isIndexable(databaseField.getType())) {
                        if (LOGGER.isDebugEnabled()) {
                            LOGGER.debug("Ignore index on field '" + indexedField.getName() //$NON-NLS-1$
                                    + "' because value (in database mapping) is stored in TEXT."); //$NON-NLS-1$
                        }
                        continue; // Don't take into indexed fields long text fields
                    }
                    // Database specific behaviors
                    switch (dataSource.getDialectName()) {
                    case SQL_SERVER:
                        // TMDM-8144: Don't index field name on SQL Server when size > 900
                        String maxLengthStr = indexedField.getType()
                                .<String>getData(MetadataRepository.DATA_MAX_LENGTH);
                        if (maxLengthStr == null) { // go up the type inheritance tree to find max length annotation
                            TypeMetadata type = indexedField.getType();
                            while (!XMLConstants.W3C_XML_SCHEMA_NS_URI.equals(type.getNamespace())
                                    && !type.getSuperTypes().isEmpty()) {
                                type = type.getSuperTypes().iterator().next();
                                maxLengthStr = type.<String>getData(MetadataRepository.DATA_MAX_LENGTH);
                                if (maxLengthStr != null) {
                                    break;
                                }
                            }
                        }
                        if (maxLengthStr != null) {
                            Integer maxLength = Integer.parseInt(maxLengthStr);
                            if (maxLength > 900) {
                                LOGGER.warn("Skip index on field '" + indexedField.getPath() //$NON-NLS-1$
                                        + "' (too long value)."); //$NON-NLS-1$
                                continue;
                            }
                        }
                        break;
                    case H2:
                    case MYSQL:
                    case POSTGRES:
                    case DB2:
                    case ORACLE_10G:
                    default:
                        // Nothing to do for these databases
                        break;
                    }
                    databaseIndexedFields.add(databaseField);
                    if (!databaseField.getContainingType().isInstantiable()) {
                        Collection<ComplexTypeMetadata> roots = RecommendedIndexes
                                .getRoots(optimizedExpression);
                        for (ComplexTypeMetadata root : roots) {
                            List<FieldMetadata> path = StorageMetadataUtils.path(
                                    mappingRepository.getMappingFromUser(root).getDatabase(), databaseField);
                            if (path.size() > 1) {
                                databaseIndexedFields.addAll(path.subList(0, path.size() - 1));
                            } else {
                                LOGGER.warn("Failed to properly index field '" + databaseField + "'."); //$NON-NLS-1$ //$NON-NLS-2$
                            }
                        }
                    }
                }
            }
            break;
        case STAGING:
            if (!optimizedExpressions.isEmpty()) {
                if (LOGGER.isDebugEnabled()) {
                    LOGGER.debug("Ignoring " + optimizedExpressions.size() //$NON-NLS-1$
                            + " to optimize (disabled on staging area)."); //$NON-NLS-1$
                }
            }
            // Adds "staging status" / "staging block key" / "staging task id" as indexed fields
            for (TypeMapping typeMapping : mappingRepository.getAllTypeMappings()) {
                ComplexTypeMetadata database = typeMapping.getDatabase();
                if (database.hasField(METADATA_STAGING_STATUS)) {
                    databaseIndexedFields.add(database.getField(METADATA_STAGING_STATUS));
                }
                if (database.hasField(METADATA_STAGING_BLOCK_KEY)) {
                    databaseIndexedFields.add(database.getField(METADATA_STAGING_BLOCK_KEY));
                }
                if (database.hasField(METADATA_TASK_ID)) {
                    databaseIndexedFields.add(database.getField(METADATA_TASK_ID));
                }
            }
            break;
        case SYSTEM: // Nothing to index on SYSTEM
            break;
        }
        // Don't add FK in indexes if using H2
        if (dataSource.getDialectName() == RDBMSDataSource.DataSourceDialect.H2) {
            Iterator<FieldMetadata> indexedFields = databaseIndexedFields.iterator();
            while (indexedFields.hasNext()) {
                FieldMetadata field = indexedFields.next();
                if (field instanceof ReferenceFieldMetadata || field.isKey()) {
                    indexedFields.remove(); // H2 doesn't like indexes on PKs or FKs.
                }
            }
        }
        switch (dataSource.getDialectName()) {
        case ORACLE_10G:
            tableResolver = new OracleStorageTableResolver(databaseIndexedFields,
                    dataSource.getNameMaxLength());
            break;
        default:
            tableResolver = new StorageTableResolver(databaseIndexedFields, dataSource.getNameMaxLength());
        }
        storageClassLoader.setTableResolver(tableResolver);
        // Master, Staging and System share same class creator.
        switch (storageType) {
        case MASTER:
        case STAGING:
        case SYSTEM:
            hibernateClassCreator = new ClassCreator(storageClassLoader);
            break;
        }
        // Create Hibernate classes (after some modifications to the types).
        try {
            internalRepository.accept(hibernateClassCreator);
        } catch (Exception e) {
            throw new RuntimeException("Exception occurred during dynamic classes creation.", e); //$NON-NLS-1$
        }
        // Last step: configuration of Hibernate
        try {
            // Hibernate needs to have dynamic classes in context class loader during configuration.
            InputStream ehCacheConfig = storageClassLoader
                    .getResourceAsStream(StorageClassLoader.EHCACHE_XML_CONFIG);
            if (ehCacheConfig != null) {
                CacheManager.create(ehCacheConfig);
            }
            configuration.configure(StorageClassLoader.HIBERNATE_CONFIG);
            batchSize = Integer.parseInt(configuration.getProperty(Environment.STATEMENT_BATCH_SIZE));
            // Sets default schema for Oracle
            Properties properties = configuration.getProperties();
            if (dataSource.getDialectName() == RDBMSDataSource.DataSourceDialect.ORACLE_10G) {
                properties.setProperty(Environment.DEFAULT_SCHEMA, dataSource.getUserName());
            }
            // Logs DDL *before* initialization in case initialization fails (useful for debugging).
            if (LOGGER.isTraceEnabled()) {
                traceDDL();
            }
            // Customize schema generation according to datasource content.
            RDBMSDataSource.SchemaGeneration schemaGeneration = dataSource.getSchemaGeneration();
            List exceptions = Collections.emptyList();
            switch (schemaGeneration) {
            case CREATE:
                SchemaExport schemaExport = new SchemaExport(configuration);
                schemaExport.create(false, true);
                // Exception may happen during recreation (hibernate may perform statements on tables that does
                // not exist): these exceptions are supposed to be harmless (but log them to DEBUG just in case).
                if (LOGGER.isDebugEnabled()) {
                    LOGGER.debug("Exception(s) occurred during schema creation:"); //$NON-NLS-1$
                    for (Object exceptionObject : schemaExport.getExceptions()) {
                        LOGGER.debug(((Exception) exceptionObject).getMessage());
                    }
                }
                break;
            case VALIDATE:
                SchemaValidator schemaValidator = new SchemaValidator(configuration);
                schemaValidator.validate(); // This is supposed to throw exception on validation issue.
                break;
            case UPDATE:
                SchemaUpdate schemaUpdate = new SchemaUpdate(configuration);
                schemaUpdate.execute(false, true);
                exceptions = schemaUpdate.getExceptions();
                break;
            }
            // Throw an exception if schema update met issue(s).
            if (!exceptions.isEmpty()) {
                StringBuilder sb = new StringBuilder();
                sb.append("Could not prepare database schema: "); //$NON-NLS-1$
                Iterator iterator = exceptions.iterator();
                while (iterator.hasNext()) {
                    Exception exception = (Exception) iterator.next();
                    if (exception instanceof SQLException) {
                        SQLException currentSQLException = (SQLException) exception;
                        while (currentSQLException != null) {
                            sb.append(currentSQLException.getMessage());
                            sb.append('\n');
                            currentSQLException = currentSQLException.getNextException();
                        }
                    } else if (exception != null) {
                        sb.append(exception.getMessage());
                    }
                    if (iterator.hasNext()) {
                        sb.append('\n');
                    }
                }
                throw new IllegalStateException(sb.toString());
            }
            // Initialize Hibernate
            Environment.verifyProperties(properties);
            ConfigurationHelper.resolvePlaceHolders(properties);
            ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings(properties)
                    .build();
            factory = configuration.buildSessionFactory(serviceRegistry);
            MDMTransactionSessionContext.declareStorage(this, factory);
        } catch (Exception e) {
            throw new RuntimeException("Exception occurred during Hibernate initialization.", e); //$NON-NLS-1$
        }
        // All set: set prepared flag to true.
        isPrepared = true;
        LOGGER.info("Storage '" + storageName + "' (" + storageType + ") is ready."); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
    } catch (Throwable t) {
        try {
            // This prevent PermGen OOME in case of multiple failures to start.
            close();
        } catch (Exception e) {
            if (LOGGER.isDebugEnabled()) {
                LOGGER.debug("Error occurred during clean up following failed prepare", e); //$NON-NLS-1$
            }
        }
        throw new RuntimeException("Could not prepare '" + storageName + "'.", t); //$NON-NLS-1$ //$NON-NLS-2$
    } finally {
        Thread.currentThread().setContextClassLoader(contextClassLoader);
    }
}

From source file:com.hyron.poscafe.util.ConfigurationWithWildcard.java

License:Open Source License

private void addProperties(Element parent) {
    Properties props = new Properties();
    Iterator itr = parent.elementIterator("property");
    while (itr.hasNext()) {
        Element node = (Element) itr.next();
        String name = node.attributeValue("name");
        String value = node.getText().trim();
        log.debug(name + "=" + value);
        props.setProperty(name, value);/*  w  w w  . ja va 2s  . co  m*/
        if (!name.startsWith("hibernate")) {
            props.setProperty("hibernate." + name, value);
        }
    }
    addProperties(props);
    Environment.verifyProperties(getProperties());
}

From source file:com.nominanuda.hibernate.HibernateConfiguration.java

License:Apache License

private Configuration makeConfiguration() {
    //SessionFactory sessionFactory = metadataSources.buildMetadata().buildSessionFactory();
    final Configuration cfg = new Configuration();
    DBType dbType = inferDbType();//from  ww w . j  ava 2s. co  m
    //Configuration cfg = new Configuration();
    if (dynamic) {
        cfg.setProperty("hibernate.default_entity_mode", "dynamic-map");
    }
    ;
    cfg.setProperty("hibernate.show_sql", showSql.toString())
            .setProperty("hibernate.connection.url", connectionUrl)
            .setProperty("hibernate.connection.username", username)
            .setProperty("hibernate.connection.password", password)
            .setProperty("hibernate.connection.useUnicode", "true")
            .setProperty("hibernate.connection.characterEncoding", "UTF-8")
            .setProperty("hibernate.connection.charSet", "UTF-8")
            .setProperty("hibernate.connection.driver_class", getDriverClass(dbType));

    //TODO pluggable
    if (c3p0) {
        cfg.setProperty("connection.provider_class", "org.hibernate.connection.C3P0ConnectionProvider")
                .setProperty("hibernate.c3p0.acquire_increment", "3")
                .setProperty("hibernate.c3p0.min_size", "30").setProperty("hibernate.c3p0.max_size", "100")
                .setProperty("hibernate.c3p0.max_statements", "300")
                .setProperty("hibernate.c3p0.acquireRetryAttempts", "2")
                .setProperty("hibernate.c3p0.acquireRetryDelay", "450")
                .setProperty("hibernate.c3p0.timeout", "5000").setProperty("hibernate.c3p0.idle_test", "300");
    }
    switch (dbType) {
    case HSQLDB:
        cfg.setProperty("hibernate.dialect", "org.hibernate.dialect.HSQLDialect")
                .setProperty("hibernate.jdbc.batch_size", "0");
        break;
    case MYSQL:
        cfg.setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLDialect")
        //.setProperty("hibernate.connection.driver_class", "com.mysql.jdbc.Driver")
        ;
        break;
    default:
        throw new IllegalStateException();
    }
    Properties properties = cfg.getProperties();
    Environment.verifyProperties(properties);
    for (String res : resources) {
        cfg.addResource(res);
    }
    return cfg;
}

From source file:com.sismics.util.jpa.ManagedProviderConnectionHelper.java

License:Open Source License

private static StandardServiceRegistryImpl createServiceRegistry(Properties properties) {
    Environment.verifyProperties(properties);
    ConfigurationHelper.resolvePlaceHolders(properties);
    return (StandardServiceRegistryImpl) new ServiceRegistryBuilder().applySettings(properties)
            .buildServiceRegistry();/*from   w  w w.  jav  a2 s .  c  om*/
}

From source file:com.zutubi.pulse.master.hibernate.SchemaRefactor.java

License:Apache License

public SchemaRefactor(MutableConfiguration config, Properties props) {
    this.config = config;
    dialect = Dialect.getDialect(props);

    connectionProperties = new Properties();
    connectionProperties.putAll(dialect.getDefaultProperties());
    connectionProperties.putAll(props);/* ww  w  . j  a va 2  s. co  m*/
    Environment.verifyProperties(connectionProperties);
    ConfigurationHelper.resolvePlaceHolders(connectionProperties);

    defaultCatalog = config.getProperty(Environment.DEFAULT_CATALOG);
    defaultSchema = config.getProperty(Environment.DEFAULT_SCHEMA);
}

From source file:org.jasig.portal.tools.dbloader.HibernateToolConfigurationSourceImpl.java

License:Apache License

private void loadServiceRegistry() {
    final Properties properties = this.configuration.getProperties();
    Environment.verifyProperties(properties);
    ConfigurationHelper.resolvePlaceHolders(properties);
    this.serviceRegistry = new ServiceRegistryBuilder().applySettings(properties).buildServiceRegistry();
}

From source file:org.jboss.additional.testsuite.jdkall.past.jpa.hibernate.secondlevelcache.SFSB.java

License:Open Source License

@TransactionAttribute(TransactionAttributeType.NEVER)
public void setupConfig() {
    // static {/*w w  w. j  a va2s  .  c o  m*/
    try {

        // prepare the configuration
        Configuration configuration = new Configuration()
                .setProperty(AvailableSettings.USE_NEW_ID_GENERATOR_MAPPINGS, "true");
        configuration.getProperties().put(AvailableSettings.JTA_PLATFORM, JBossAppServerJtaPlatform.class);
        configuration.getProperties().put(AvailableSettings.TRANSACTION_COORDINATOR_STRATEGY, "jta");
        configuration.setProperty(Environment.HBM2DDL_AUTO, "create-drop");
        configuration.setProperty(Environment.DATASOURCE, "java:jboss/datasources/ExampleDS");
        // fetch the properties
        Properties properties = new Properties();
        configuration = configuration.configure("hibernate.cfg.xml");
        properties.putAll(configuration.getProperties());
        Environment.verifyProperties(properties);
        ConfigurationHelper.resolvePlaceHolders(properties);

        sessionFactory = configuration.buildSessionFactory();

    } catch (Throwable ex) { // Make sure you log the exception, as it might be swallowed
        ex.printStackTrace();
        throw new ExceptionInInitializerError(ex);
    }
}

From source file:org.jboss.as.test.compat.jpa.hibernate.transformer.SFSBHibernateSessionFactory.java

License:Open Source License

public void setupConfig() {
    // static {//from ww w  . j  a  va2  s . c o m
    try {

        // prepare the configuration
        Configuration configuration = new Configuration()
                .setProperty(AvailableSettings.USE_NEW_ID_GENERATOR_MAPPINGS, "true");
        configuration.setProperty(Environment.HBM2DDL_AUTO, "create-drop");
        configuration.setProperty(Environment.DATASOURCE, "java:jboss/datasources/ExampleDS");
        configuration.setProperty("hibernate.listeners.envers.autoRegister", "false");

        // fetch the properties
        Properties properties = new Properties();
        configuration = configuration.configure("hibernate.cfg.xml");
        properties.putAll(configuration.getProperties());

        Environment.verifyProperties(properties);
        ConfigurationHelper.resolvePlaceHolders(properties);

        sessionFactory = configuration.buildSessionFactory();
    } catch (Throwable ex) { // Make sure you log the exception, as it might be swallowed
        throw new RuntimeException("Could not setup config", ex);
    }

}

From source file:org.jboss.as.test.integration.hibernate.envers.SFSBHibernateEnversSessionFactory.java

License:Open Source License

public void setupConfig() {
    // static {//from   ww w.j a va  2  s.c  om
    try {

        //System.out.println("Current dir : " + (new File(".")).getCanonicalPath());

        // prepare the configuration
        Configuration configuration = new Configuration()
                .setProperty(AvailableSettings.USE_NEW_ID_GENERATOR_MAPPINGS, "true");
        configuration.setProperty(Environment.HBM2DDL_AUTO, "create-drop");
        configuration.setProperty(Environment.DATASOURCE, "java:jboss/datasources/ExampleDS");
        // fetch the properties
        Properties properties = new Properties();
        configuration = configuration.configure("hibernate.cfg.xml");
        properties.putAll(configuration.getProperties());
        Environment.verifyProperties(properties);
        ConfigurationHelper.resolvePlaceHolders(properties);

        sessionFactory = configuration.buildSessionFactory();
    } catch (Throwable ex) { // Make sure you log the exception, as it might be swallowed
        System.err.println("Initial SessionFactory creation failed." + ex);
        throw new ExceptionInInitializerError(ex);
    }

}

From source file:org.jboss.as.test.integration.hibernate.naturalid.SFSBHibernateSFNaturalId.java

License:Open Source License

public void setupConfig() {
    // static {//from w  w w . j  av  a 2  s .c o m
    try {

        // prepare the configuration
        Configuration configuration = new Configuration()
                .setProperty(AvailableSettings.USE_NEW_ID_GENERATOR_MAPPINGS, "true");
        configuration.setProperty(Environment.HBM2DDL_AUTO, "create-drop");
        configuration.setProperty(Environment.DATASOURCE, "java:jboss/datasources/ExampleDS");

        // configuration.configure("hibernate.cfg.xml");

        // fetch the properties
        Properties properties = new Properties();
        properties.putAll(configuration.getProperties());

        Environment.verifyProperties(properties);
        ConfigurationHelper.resolvePlaceHolders(properties);

        // build the serviceregistry
        final BootstrapServiceRegistryBuilder bootstrapbuilder = new BootstrapServiceRegistryBuilder();
        serviceRegistry = builder.build();

        // Create the SessionFactory from Configuration
        sessionFactory = configuration.configure("hibernate.cfg.xml").buildSessionFactory(serviceRegistry);

    } catch (Throwable ex) { // Make sure you log the exception, as it might be swallowed
        System.err.println("Initial SessionFactory creation failed." + ex);
        // ex.printStackTrace();
        throw new ExceptionInInitializerError(ex);
    }

}