Java 类org.hibernate.cfg.Environment 实例源码

项目:alfresco-core    文件:DialectFactory.java   
/**
 * Determine the appropriate Dialect to use given the database product name
 * and major version.
 *
 * @param databaseName The name of the database product (obtained from metadata).
 * @param databaseMajorVersion The major version of the database product (obtained from metadata).
 *
 * @return An appropriate dialect instance.
 */
public static Dialect determineDialect(String databaseName, int databaseMajorVersion) {
    if ( databaseName == null ) {
        throw new HibernateException( "Hibernate Dialect must be explicitly set" );
    }

    DatabaseDialectMapper mapper = ( DatabaseDialectMapper ) MAPPERS.get( databaseName );
    if ( mapper == null ) {
        throw new HibernateException( "Hibernate Dialect must be explicitly set for database: " + databaseName );
    }

    String dialectName = mapper.getDialectClass( databaseMajorVersion );
    // Push the dialect onto the system properties
    System.setProperty(Environment.DIALECT, dialectName);
    return buildDialect( dialectName );
}
项目:Equella    文件:HibernateServiceImpl.java   
protected HibernateFactory getHibernateFactory(String name, boolean system)
{
    Class<?>[] clazzes = hibernateService.getDomainClasses(name);
    DataSourceHolder dataSource;
    if( system )
    {
        dataSource = datasourceService.getSystemDataSource();
    }
    else
    {
        dataSource = new DataSourceHolder(institutionAwareDataSource, datasourceService.getDialect());
    }
    HibernateFactory factory = hibernateService.createConfiguration(dataSource, clazzes);
    factory.setClassLoader(getClass().getClassLoader());
    factory.setProperty(Environment.TRANSACTION_STRATEGY, SpringTransactionFactory.class.getName());
    factory.setProperty(Environment.CURRENT_SESSION_CONTEXT_CLASS, SpringSessionContext.class.getName());
    return factory;
}
项目:lams    文件:HibernateJpaVendorAdapter.java   
@Override
public Map<String, Object> getJpaPropertyMap() {
    Map<String, Object> jpaProperties = new HashMap<String, Object>();

    if (getDatabasePlatform() != null) {
        jpaProperties.put(Environment.DIALECT, getDatabasePlatform());
    }
    else if (getDatabase() != null) {
        Class<?> databaseDialectClass = determineDatabaseDialectClass(getDatabase());
        if (databaseDialectClass != null) {
            jpaProperties.put(Environment.DIALECT, databaseDialectClass.getName());
        }
    }

    if (isGenerateDdl()) {
        jpaProperties.put(Environment.HBM2DDL_AUTO, "update");
    }
    if (isShowSql()) {
        jpaProperties.put(Environment.SHOW_SQL, "true");
    }

    return jpaProperties;
}
项目:lams    文件:BatchBuilderInitiator.java   
@Override
public BatchBuilder initiateService(Map configurationValues, ServiceRegistryImplementor registry) {
    final Object builder = configurationValues.get( BUILDER );
    if ( builder == null ) {
        return new BatchBuilderImpl(
                ConfigurationHelper.getInt( Environment.STATEMENT_BATCH_SIZE, configurationValues, 1 )
        );
    }

    if ( BatchBuilder.class.isInstance( builder ) ) {
        return (BatchBuilder) builder;
    }

    final String builderClassName = builder.toString();
    try {
        return (BatchBuilder) registry.getService( ClassLoaderService.class ).classForName( builderClassName ).newInstance();
    }
    catch (Exception e) {
        throw new ServiceException( "Could not build explicit BatchBuilder [" + builderClassName + "]", e );
    }
}
项目:lams    文件:SQLExceptionConverterFactory.java   
/**
 * Build a SQLExceptionConverter instance.
 * <p/>
 * First, looks for a {@link Environment#SQL_EXCEPTION_CONVERTER} property to see
 * if the configuration specified the class of a specific converter to use.  If this
 * property is set, attempt to construct an instance of that class.  If not set, or
 * if construction fails, the converter specific to the dialect will be used.
 *
 * @param dialect    The defined dialect.
 * @param properties The configuration properties.
 * @return An appropriate SQLExceptionConverter instance.
 * @throws HibernateException There was an error building the SQLExceptionConverter.
 */
public static SQLExceptionConverter buildSQLExceptionConverter(Dialect dialect, Properties properties) throws HibernateException {
    SQLExceptionConverter converter = null;

    String converterClassName = (String) properties.get( Environment.SQL_EXCEPTION_CONVERTER );
    if ( StringHelper.isNotEmpty( converterClassName ) ) {
        converter = constructConverter( converterClassName, dialect.getViolatedConstraintNameExtracter() );
    }

    if ( converter == null ) {
        LOG.trace( "Using dialect defined converter" );
        converter = dialect.buildSQLExceptionConverter();
    }

    if ( converter instanceof Configurable ) {
        try {
            ( (Configurable) converter ).configure( properties );
        }
        catch (HibernateException e) {
            LOG.unableToConfigureSqlExceptionConverter( e );
            throw e;
        }
    }

    return converter;
}
项目:lams    文件:ConfigHelper.java   
public static InputStream getResourceAsStream(String resource) {
    String stripped = resource.startsWith("/") ?
            resource.substring(1) : resource;

    InputStream stream = null;
    ClassLoader classLoader = ClassLoaderHelper.getContextClassLoader();
    if (classLoader!=null) {
        stream = classLoader.getResourceAsStream( stripped );
    }
    if ( stream == null ) {
        stream = Environment.class.getResourceAsStream( resource );
    }
    if ( stream == null ) {
        stream = Environment.class.getClassLoader().getResourceAsStream( stripped );
    }
    if ( stream == null ) {
        throw new HibernateException( resource + " not found" );
    }
    return stream;
}
项目:lams    文件:InterbaseDialect.java   
/**
 * Constructs a InterbaseDialect
 */
public InterbaseDialect() {
    super();
    registerColumnType( Types.BIT, "smallint" );
    registerColumnType( Types.BIGINT, "numeric(18,0)" );
    registerColumnType( Types.SMALLINT, "smallint" );
    registerColumnType( Types.TINYINT, "smallint" );
    registerColumnType( Types.INTEGER, "integer" );
    registerColumnType( Types.CHAR, "char(1)" );
    registerColumnType( Types.VARCHAR, "varchar($l)" );
    registerColumnType( Types.FLOAT, "float" );
    registerColumnType( Types.DOUBLE, "double precision" );
    registerColumnType( Types.DATE, "date" );
    registerColumnType( Types.TIME, "time" );
    registerColumnType( Types.TIMESTAMP, "timestamp" );
    registerColumnType( Types.VARBINARY, "blob" );
    registerColumnType( Types.NUMERIC, "numeric($p,$s)" );
    registerColumnType( Types.BLOB, "blob" );
    registerColumnType( Types.CLOB, "blob sub_type 1" );
    registerColumnType( Types.BOOLEAN, "smallint" );

    registerFunction( "concat", new VarArgsSQLFunction( StandardBasicTypes.STRING, "(","||",")" ) );
    registerFunction( "current_date", new NoArgSQLFunction( "current_date", StandardBasicTypes.DATE, false ) );

    getDefaultProperties().setProperty( Environment.STATEMENT_BATCH_SIZE, NO_BATCH );
}
项目:lams    文件:JDataStoreDialect.java   
/**
 * Creates new JDataStoreDialect
 */
public JDataStoreDialect() {
    super();

    registerColumnType( Types.BIT, "tinyint" );
    registerColumnType( Types.BIGINT, "bigint" );
    registerColumnType( Types.SMALLINT, "smallint" );
    registerColumnType( Types.TINYINT, "tinyint" );
    registerColumnType( Types.INTEGER, "integer" );
    registerColumnType( Types.CHAR, "char(1)" );
    registerColumnType( Types.VARCHAR, "varchar($l)" );
    registerColumnType( Types.FLOAT, "float" );
    registerColumnType( Types.DOUBLE, "double" );
    registerColumnType( Types.DATE, "date" );
    registerColumnType( Types.TIME, "time" );
    registerColumnType( Types.TIMESTAMP, "timestamp" );
    registerColumnType( Types.VARBINARY, "varbinary($l)" );
    registerColumnType( Types.NUMERIC, "numeric($p, $s)" );

    registerColumnType( Types.BLOB, "varbinary" );
    registerColumnType( Types.CLOB, "varchar" );

    getDefaultProperties().setProperty( Environment.STATEMENT_BATCH_SIZE, DEFAULT_BATCH_SIZE );
}
项目:lams    文件:StandardServiceRegistryBuilder.java   
/**
 * Build the StandardServiceRegistry.
 *
 * @return The StandardServiceRegistry.
 */
@SuppressWarnings("unchecked")
public StandardServiceRegistry build() {
    final Map<?,?> settingsCopy = new HashMap();
    settingsCopy.putAll( settings );
    Environment.verifyProperties( settingsCopy );
    ConfigurationHelper.resolvePlaceHolders( settingsCopy );

    applyServiceContributingIntegrators();
    applyServiceContributors();

    return new StandardServiceRegistryImpl(
            autoCloseRegistry,
            bootstrapServiceRegistry,
            initiators,
            providedServices,
            settingsCopy
    );
}
项目:lams    文件:AbstractStandardBasicType.java   
private WrapperOptions getOptions(final SessionImplementor session) {
    return new WrapperOptions() {
        public boolean useStreamForLobBinding() {
            return Environment.useStreamsForBinary()
                    || session.getFactory().getDialect().useInputStreamToInsertBlob();
        }

        public LobCreator getLobCreator() {
            return Hibernate.getLobCreator( session );
        }

        public SqlTypeDescriptor remapSqlTypeDescriptor(SqlTypeDescriptor sqlTypeDescriptor) {
            final SqlTypeDescriptor remapped = sqlTypeDescriptor.canBeRemapped()
                    ? session.getFactory().getDialect().remapSqlTypeDescriptor( sqlTypeDescriptor )
                    : sqlTypeDescriptor;
            return remapped == null ? sqlTypeDescriptor : remapped;
        }
    };
}
项目:lams    文件:CalendarDateTypeDescriptor.java   
public <X> Calendar wrap(X value, WrapperOptions options) {
    if ( value == null ) {
        return null;
    }
    if ( Calendar.class.isInstance( value ) ) {
        return (Calendar) value;
    }

    if ( ! Date.class.isInstance( value ) ) {
        throw unknownWrap( value.getClass() );
    }

    Calendar cal = new GregorianCalendar();
    if ( Environment.jvmHasTimestampBug() ) {
        final long milliseconds = ( (Date) value ).getTime();
        final long nanoseconds = java.sql.Timestamp.class.isInstance( value )
                ? ( (java.sql.Timestamp) value ).getNanos()
                : 0;
        cal.setTime( new Date( milliseconds + nanoseconds / 1000000 ) );
    }
    else {
        cal.setTime( (Date) value );
    }
    return cal;
}
项目:lams    文件:CalendarTimeTypeDescriptor.java   
public <X> Calendar wrap(X value, WrapperOptions options) {
    if ( value == null ) {
        return null;
    }
    if ( Calendar.class.isInstance( value ) ) {
        return (Calendar) value;
    }

    if ( ! Date.class.isInstance( value ) ) {
        throw unknownWrap( value.getClass() );
    }

    Calendar cal = new GregorianCalendar();
    if ( Environment.jvmHasTimestampBug() ) {
        final long milliseconds = ( (Date) value ).getTime();
        final long nanoseconds = java.sql.Timestamp.class.isInstance( value )
                ? ( (java.sql.Timestamp) value ).getNanos()
                : 0;
        cal.setTime( new Date( milliseconds + nanoseconds / 1000000 ) );
    }
    else {
        cal.setTime( (Date) value );
    }
    return cal;
}
项目:lams    文件:CalendarTypeDescriptor.java   
public <X> Calendar wrap(X value, WrapperOptions options) {
    if ( value == null ) {
        return null;
    }
    if ( Calendar.class.isInstance( value ) ) {
        return (Calendar) value;
    }

    if ( ! java.util.Date.class.isInstance( value ) ) {
        throw unknownWrap( value.getClass() );
    }

    Calendar cal = new GregorianCalendar();
    if ( Environment.jvmHasTimestampBug() ) {
        final long milliseconds = ( (java.util.Date) value ).getTime();
        final long nanoseconds = java.sql.Timestamp.class.isInstance( value )
                ? ( (java.sql.Timestamp) value ).getNanos()
                : 0;
        cal.setTime( new Date( milliseconds + nanoseconds / 1000000 ) );
    }
    else {
        cal.setTime( (java.util.Date) value );
    }
    return cal;
}
项目:cloud-s4-sdk-examples    文件:HibernateConfig.java   
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory(DataSource dataSource, MultiTenantConnectionProvider multiTenantConnectionProvider,
                                                                   CurrentTenantIdentifierResolver tenantIdentifierResolver) {
    final LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean();
    em.setDataSource(dataSource);
    em.setPackagesToScan("com.mycompany.models");

    em.setJpaVendorAdapter(this.jpaVendorAdapter());

    final Map<String, Object> jpaProperties = new HashMap<>();
    jpaProperties.put(Environment.MULTI_TENANT, MultiTenancyStrategy.SCHEMA);
    jpaProperties.put(Environment.MULTI_TENANT_CONNECTION_PROVIDER, multiTenantConnectionProvider);
    jpaProperties.put(Environment.MULTI_TENANT_IDENTIFIER_RESOLVER, tenantIdentifierResolver);
    jpaProperties.put(Environment.FORMAT_SQL, true);

    em.setJpaPropertyMap(jpaProperties);
    return em;
}
项目:spring4-understanding    文件:HibernateJpaVendorAdapter.java   
@Override
public Map<String, Object> getJpaPropertyMap() {
    Map<String, Object> jpaProperties = new HashMap<String, Object>();

    if (getDatabasePlatform() != null) {
        jpaProperties.put(Environment.DIALECT, getDatabasePlatform());
    }
    else if (getDatabase() != null) {
        Class<?> databaseDialectClass = determineDatabaseDialectClass(getDatabase());
        if (databaseDialectClass != null) {
            jpaProperties.put(Environment.DIALECT, databaseDialectClass.getName());
        }
    }

    if (isGenerateDdl()) {
        jpaProperties.put(Environment.HBM2DDL_AUTO, "update");
    }
    if (isShowSql()) {
        jpaProperties.put(Environment.SHOW_SQL, "true");
    }

    return jpaProperties;
}
项目:spring4-understanding    文件:LocalSessionFactoryBeanTests.java   
@Test
public void testLocalSessionFactoryBeanWithValidProperties() throws Exception {
    final Set invocations = new HashSet();
    LocalSessionFactoryBean sfb = new LocalSessionFactoryBean() {
        @Override
        protected SessionFactory newSessionFactory(Configuration config) {
            assertEquals(UserSuppliedConnectionProvider.class.getName(),
                    config.getProperty(Environment.CONNECTION_PROVIDER));
            assertEquals("myValue", config.getProperty("myProperty"));
            invocations.add("newSessionFactory");
            return null;
        }
    };
    Properties prop = new Properties();
    prop.setProperty(Environment.CONNECTION_PROVIDER, UserSuppliedConnectionProvider.class.getName());
    prop.setProperty("myProperty", "myValue");
    sfb.setHibernateProperties(prop);
    sfb.afterPropertiesSet();
    assertTrue(sfb.getConfiguration() != null);
    assertTrue(invocations.contains("newSessionFactory"));
}
项目:openbravo-brazil    文件:SessionFactoryController.java   
private Properties getPostgresHbProps(Properties obProps) {
  isPostgresDatabase = true;
  final Properties props = new Properties();
  props.setProperty(Environment.DIALECT, PostgreSQLDialect.class.getName());
  if (isJNDIModeOn(obProps)) {
    setJNDI(obProps, props);
  } else {
    props.setProperty(Environment.DRIVER, "org.postgresql.Driver");
    props.setProperty(Environment.URL,
        obProps.getProperty("bbdd.url") + "/" + obProps.getProperty("bbdd.sid"));

    props.setProperty(Environment.USER, obProps.getProperty("bbdd.user"));
    props.setProperty(Environment.PASS, obProps.getProperty("bbdd.password"));
  }
  return props;
}
项目:bag-database    文件:JpaConfig.java   
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
    myLogger.info("entityManagerFactory");
    LocalContainerEntityManagerFactoryBean entityManagerFactoryBean = new LocalContainerEntityManagerFactoryBean();
    entityManagerFactoryBean.setDataSource(dataSource());
    entityManagerFactoryBean.setPackagesToScan("com.github.swrirobotics");
    entityManagerFactoryBean.setJpaVendorAdapter(new HibernateJpaVendorAdapter());

    Properties jpaProperties = new Properties();
    // Disable HBM2DDL; we use Liquibase to create our database
    jpaProperties.put(Environment.HBM2DDL_AUTO, "");
    // Set a large batch size for better performance over slow network links
    jpaProperties.put(Environment.STATEMENT_BATCH_SIZE, "100");
    jpaProperties.put(Environment.ORDER_INSERTS, "true");
    jpaProperties.put(Environment.ORDER_UPDATES, "true");
    jpaProperties.put(Environment.USE_NEW_ID_GENERATOR_MAPPINGS, "true");
    entityManagerFactoryBean.setJpaProperties(jpaProperties);

    return entityManagerFactoryBean;
}
项目:ERDesignerNG    文件:HibernateTemplate.java   
protected Configuration createConfiguration(Class aHibernateDialectClass) {
    Configuration theConfiguration = new Configuration();
    theConfiguration.addClass(DomainEntity.class);
    theConfiguration.addClass(CustomTypeEntity.class);
    theConfiguration.addClass(TableEntity.class);
    theConfiguration.addClass(AttributeEntity.class);
    theConfiguration.addClass(IndexEntity.class);
    theConfiguration.addClass(RelationEntity.class);
    theConfiguration.addClass(CommentEntity.class);
    theConfiguration.addClass(SubjectAreaEntity.class);
    theConfiguration.addClass(RepositoryEntity.class);
    theConfiguration.addClass(ChangeEntity.class);
    theConfiguration.addClass(ViewEntity.class);
    theConfiguration.setProperty(Environment.DIALECT, aHibernateDialectClass.getName());
    theConfiguration.setProperty(Environment.HBM2DDL_AUTO, "update");
    theConfiguration.setProperty(Environment.CONNECTION_PROVIDER, ThreadbasedConnectionProvider.class.getName());
    return theConfiguration;
}
项目:hazelcast-hibernate5    文件:CustomPropertiesTest.java   
@Test
public void testNamedInstance() {
    TestHazelcastFactory factory = new TestHazelcastFactory();
    Config config = new Config();
    config.setInstanceName("hibernate");
    HazelcastInstance hz = factory.newHazelcastInstance(config);
    Properties props = new Properties();
    props.setProperty(Environment.CACHE_REGION_FACTORY, HazelcastCacheRegionFactory.class.getName());
    props.put(CacheEnvironment.HAZELCAST_INSTANCE_NAME, "hibernate");
    props.put(CacheEnvironment.SHUTDOWN_ON_STOP, "false");
    props.setProperty("hibernate.dialect", "org.hibernate.dialect.HSQLDialect");

    Configuration configuration = new Configuration();
    configuration.addProperties(props);

    SessionFactory sf = configuration.buildSessionFactory();
    assertTrue(hz.equals(HazelcastAccessor.getHazelcastInstance(sf)));
    sf.close();
    assertTrue(hz.getLifecycleService().isRunning());
    factory.shutdownAll();
}
项目:hazelcast-hibernate5    文件:CustomPropertiesTest.java   
@Test
public void testNamedClient_noInstance() throws Exception {
    exception.expect(ServiceException.class);
    exception.expectCause(allOf(isA(CacheException.class), new BaseMatcher<CacheException>() {
        @Override
        public boolean matches(Object item) {
            return ((CacheException) item).getMessage().contains("No client with name [dev-custom] could be found.");
        }

        @Override
        public void describeTo(Description description) {
        }
    }));

    Properties props = new Properties();
    props.setProperty(Environment.CACHE_REGION_FACTORY, HazelcastCacheRegionFactory.class.getName());
    props.setProperty(CacheEnvironment.USE_NATIVE_CLIENT, "true");
    props.setProperty(CacheEnvironment.NATIVE_CLIENT_INSTANCE_NAME, "dev-custom");
    props.setProperty("hibernate.dialect", "org.hibernate.dialect.HSQLDialect");

    Configuration configuration = new Configuration();
    configuration.addProperties(props);

    SessionFactory sf = configuration.buildSessionFactory();
    sf.close();
}
项目:spring-boot-multitenant    文件:HibernateConfig.java   
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory(DataSource dataSource,
    MultiTenantConnectionProvider multiTenantConnectionProviderImpl,
    CurrentTenantIdentifierResolver currentTenantIdentifierResolverImpl) {
  Map<String, Object> properties = new HashMap<>();
  properties.putAll(jpaProperties.getHibernateProperties(dataSource));
  properties.put(Environment.MULTI_TENANT, MultiTenancyStrategy.SCHEMA);
  properties.put(Environment.MULTI_TENANT_CONNECTION_PROVIDER, multiTenantConnectionProviderImpl);
  properties.put(Environment.MULTI_TENANT_IDENTIFIER_RESOLVER, currentTenantIdentifierResolverImpl);

  LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean();
  em.setDataSource(dataSource);
  em.setPackagesToScan("com.srai");
  em.setJpaVendorAdapter(jpaVendorAdapter());
  em.setJpaPropertyMap(properties);
  return em;
}
项目:communote-server    文件:CommunoteSessionFactoryBean.java   
@Override
protected void postProcessConfiguration(Configuration config) throws HibernateException {

    ConfigurationManager propsManager = CommunoteRuntime.getInstance()
            .getConfigurationManager();
    // TODO this is ugly. Actually the ConfigurationManager should take care of the
    // factory by itself but due to package structure this won't compile. We need to clean up
    // and move stuff to api package and an impl of ConfigurationManager to core.
    if (databaseConfigFactory == null) {
        propsManager
                .setDatabaseConfigurationFactory(new HibernateDatabaseConfigurationFactory());
    } else {
        propsManager.setDatabaseConfigurationFactory(databaseConfigFactory);
    }
    DatabaseConfiguration databaseConfig = propsManager.getDatabaseConfiguration();
    configConnectionProvider(config, databaseConfig);
    configFulltext(config, databaseConfig);

    String hibernateDialect = propsManager.getStartupProperties().getHibernateDialect();
    if (hibernateDialect != null) {
        // set dialect if available, if not the dialect will be provided by the driver
        config.setProperty(Environment.DIALECT, hibernateDialect);
    }

}
项目:hazelcast-hibernate    文件:CustomPropertiesTest.java   
@Test
public void testNamedInstance() {
    TestHazelcastFactory factory = new TestHazelcastFactory();
    Config config = new Config();
    config.setInstanceName("hibernate");
    HazelcastInstance hz = factory.newHazelcastInstance(config);
    Properties props = new Properties();
    props.setProperty(Environment.CACHE_REGION_FACTORY, HazelcastCacheRegionFactory.class.getName());
    props.put(CacheEnvironment.HAZELCAST_INSTANCE_NAME, "hibernate");
    props.put(CacheEnvironment.SHUTDOWN_ON_STOP, "false");
    props.setProperty("hibernate.dialect", "org.hibernate.dialect.HSQLDialect");

    Configuration configuration = new Configuration();
    configuration.addProperties(props);

    SessionFactory sf = configuration.buildSessionFactory();
    assertTrue(hz.equals(HazelcastAccessor.getHazelcastInstance(sf)));
    sf.close();
    assertTrue(hz.getLifecycleService().isRunning());
    factory.shutdownAll();
}
项目:hazelcast-hibernate    文件:CustomPropertiesTest.java   
@Test
public void testNamedClient_noInstance() throws Exception {
    exception.expect(ServiceException.class);
    exception.expectCause(allOf(isA(CacheException.class), new BaseMatcher<CacheException>() {
        @Override
        public boolean matches(Object item) {
            return ((CacheException) item).getMessage().contains("No client with name [dev-custom] could be found.");
        }

        @Override
        public void describeTo(Description description) {
        }
    }));

    Properties props = new Properties();
    props.setProperty(Environment.CACHE_REGION_FACTORY, HazelcastCacheRegionFactory.class.getName());
    props.setProperty(CacheEnvironment.USE_NATIVE_CLIENT, "true");
    props.setProperty(CacheEnvironment.NATIVE_CLIENT_INSTANCE_NAME, "dev-custom");
    props.setProperty("hibernate.dialect", "org.hibernate.dialect.HSQLDialect");

    Configuration configuration = new Configuration();
    configuration.addProperties(props);

    SessionFactory sf = configuration.buildSessionFactory();
    sf.close();
}
项目:hazelcast-hibernate    文件:CustomPropertiesTest.java   
@Test
public void testNamedInstance() {
    TestHazelcastFactory factory = new TestHazelcastFactory();
    Config config = new Config();
    config.setInstanceName("hibernate");
    HazelcastInstance hz = factory.newHazelcastInstance(config);
    Properties props = new Properties();
    props.setProperty(Environment.CACHE_REGION_FACTORY, HazelcastCacheRegionFactory.class.getName());
    props.put(CacheEnvironment.HAZELCAST_INSTANCE_NAME, "hibernate");
    props.put(CacheEnvironment.SHUTDOWN_ON_STOP, "false");
    props.setProperty("hibernate.dialect", "org.hibernate.dialect.HSQLDialect");

    Configuration configuration = new Configuration();
    configuration.addProperties(props);

    SessionFactory sf = configuration.buildSessionFactory();
    assertTrue(hz.equals(HazelcastAccessor.getHazelcastInstance(sf)));
    sf.close();
    assertTrue(hz.getLifecycleService().isRunning());
    factory.shutdownAll();
}
项目:hazelcast-hibernate    文件:CustomPropertiesTest.java   
@Test
public void testNamedInstance_noInstance() {
    exception.expect(CacheException.class);
    exception.expectMessage("No instance with name [hibernate] could be found.");

    Config config = new Config();
    config.setInstanceName("hibernate");

    Properties props = new Properties();
    props.setProperty(Environment.CACHE_REGION_FACTORY, HazelcastCacheRegionFactory.class.getName());
    props.put(CacheEnvironment.HAZELCAST_INSTANCE_NAME, "hibernate");
    props.put(CacheEnvironment.SHUTDOWN_ON_STOP, "false");
    props.setProperty("hibernate.dialect", "org.hibernate.dialect.HSQLDialect");

    Configuration configuration = new Configuration();
    configuration.addProperties(props);

    SessionFactory sf = configuration.buildSessionFactory();
    sf.close();
}
项目:hazelcast-hibernate    文件:CustomPropertiesTest.java   
@Test
public void testNamedClient_noInstance() throws Exception {
    exception.expect(CacheException.class);
    exception.expectMessage("No client with name [dev-custom] could be found.");

    Properties props = new Properties();
    props.setProperty(Environment.CACHE_REGION_FACTORY, HazelcastCacheRegionFactory.class.getName());
    props.setProperty(CacheEnvironment.USE_NATIVE_CLIENT, "true");
    props.setProperty(CacheEnvironment.NATIVE_CLIENT_INSTANCE_NAME, "dev-custom");
    props.setProperty("hibernate.dialect", "org.hibernate.dialect.HSQLDialect");

    Configuration configuration = new Configuration();
    configuration.addProperties(props);

    SessionFactory sf = configuration.buildSessionFactory();
    sf.close();
}
项目:cacheonix-core    文件:JTATransactionFactory.java   
public void configure(Properties props) throws HibernateException {
    try {
        context = NamingHelper.getInitialContext(props);
    }
    catch (NamingException ne) {
        log.error("Could not obtain initial context", ne);
        throw new HibernateException( "Could not obtain initial context", ne );
    }

    utName = props.getProperty(Environment.USER_TRANSACTION);

    if (utName==null) {
        TransactionManagerLookup lookup = TransactionManagerLookupFactory.getTransactionManagerLookup(props);
        if (lookup!=null) utName = lookup.getUserTransactionName();
    }

    if (utName==null) utName = DEFAULT_USER_TRANSACTION_NAME;
}
项目:cacheonix-core    文件:TransactionManagerLookupFactory.java   
public static final TransactionManagerLookup getTransactionManagerLookup(Properties props) throws HibernateException {

        String tmLookupClass = props.getProperty(Environment.TRANSACTION_MANAGER_STRATEGY);
        if (tmLookupClass==null) {
            log.info("No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)");
            return null;
        }
        else {

            log.info("instantiating TransactionManagerLookup: " + tmLookupClass);

            try {
                TransactionManagerLookup lookup = (TransactionManagerLookup) ReflectHelper.classForName(tmLookupClass).newInstance();
                log.info("instantiated TransactionManagerLookup");
                return lookup;
            }
            catch (Exception e) {
                log.error("Could not instantiate TransactionManagerLookup", e);
                throw new HibernateException("Could not instantiate TransactionManagerLookup '" + tmLookupClass + "'");
            }
        }
    }
项目:cacheonix-core    文件:HibernateCacheonixCacheProviderTest.java   
/**
 * Tests {@link HibernateCacheonixCacheProvider#start(Properties)}
 *
 * @noinspection NestedTryStatement, OverlyBroadCatchBlock, InstanceMethodNamingConvention, ImplicitNumericConversion
 */
public void testStartThrowsExceptionOnMissingConfiguration() {

   try {
      final Properties properties = new Properties();
      properties.setProperty(Environment.CACHE_PROVIDER_CONFIG, NEVER_EXISTED_CACHEONIX_XML);
      final HibernateCacheonixCacheProvider anotherProvider = new HibernateCacheonixCacheProvider();
      try {
         anotherProvider.start(properties);
      } finally {
         anotherProvider.stop();
      }
      fail("Expected exception but it was not thrown");
   } catch (final Exception e) {
      assertTrue("Name of the missing Cacheonix configuration should be mentioned", StringUtils.toString(e).indexOf(NEVER_EXISTED_CACHEONIX_XML) > LONG_ZERO);
   }
}
项目:cacheonix-core    文件:BaseCacheProviderTestCase.java   
public void configure(Configuration cfg) {
    super.configure( cfg );
    cfg.setProperty( Environment.CACHE_REGION_PREFIX, "" );
    cfg.setProperty( Environment.USE_SECOND_LEVEL_CACHE, "true" );
    cfg.setProperty( Environment.GENERATE_STATISTICS, "true" );
    cfg.setProperty( Environment.USE_STRUCTURED_CACHE, "true" );
    cfg.setProperty( Environment.CACHE_PROVIDER, getCacheProvider().getName() );

    if ( getConfigResourceKey() != null ) {
        cfg.setProperty( getConfigResourceKey(), getConfigResourceLocation() );
    }

    if ( useTransactionManager() ) {
        cfg.setProperty( Environment.CONNECTION_PROVIDER, DummyConnectionProvider.class.getName() );
        cfg.setProperty( Environment.TRANSACTION_MANAGER_STRATEGY, DummyTransactionManagerLookup.class.getName() );
    }
    else {
        cfg.setProperty( Environment.TRANSACTION_STRATEGY, JDBCTransactionFactory.class.getName() );
    }
}
项目:cacheonix-core    文件:SQLExceptionConverterFactory.java   
/**
 * Build a SQLExceptionConverter instance.
 * <p/>
 * First, looks for a {@link Environment.SQL_EXCEPTION_CONVERTER} property to see
 * if the configuration specified the class of a specific converter to use.  If this
 * property is set, attempt to construct an instance of that class.  If not set, or
 * if construction fails, the converter specific to the dialect will be used.
 *
 * @param dialect    The defined dialect.
 * @param properties The configuration properties.
 * @return An appropriate SQLExceptionConverter instance.
 * @throws HibernateException There was an error building the SQLExceptionConverter.
 */
public static SQLExceptionConverter buildSQLExceptionConverter(Dialect dialect, Properties properties) throws HibernateException {
    SQLExceptionConverter converter = null;

    String converterClassName = ( String ) properties.get( Environment.SQL_EXCEPTION_CONVERTER );
    if ( StringHelper.isNotEmpty( converterClassName ) ) {
        converter = constructConverter( converterClassName, dialect.getViolatedConstraintNameExtracter() );
    }

    if ( converter == null ) {
        log.trace( "Using dialect defined converter" );
        converter = dialect.buildSQLExceptionConverter();
    }

    if ( converter instanceof Configurable ) {
        try {
            ( ( Configurable ) converter ).configure( properties );
        }
        catch ( HibernateException e ) {
            log.warn( "Unable to configure SQLExceptionConverter", e );
            throw e;
        }
    }

    return converter;
}
项目:cacheonix-core    文件:JDataStoreDialect.java   
/**
 * Creates new JDataStoreDialect
 */
public JDataStoreDialect() {
    super();

    registerColumnType( Types.BIT, "tinyint" );
    registerColumnType( Types.BIGINT, "bigint" );
    registerColumnType( Types.SMALLINT, "smallint" );
    registerColumnType( Types.TINYINT, "tinyint" );
    registerColumnType( Types.INTEGER, "integer" );
    registerColumnType( Types.CHAR, "char(1)" );
    registerColumnType( Types.VARCHAR, "varchar($l)" );
    registerColumnType( Types.FLOAT, "float" );
    registerColumnType( Types.DOUBLE, "double" );
    registerColumnType( Types.DATE, "date" );
    registerColumnType( Types.TIME, "time" );
    registerColumnType( Types.TIMESTAMP, "timestamp" );
    registerColumnType( Types.VARBINARY, "varbinary($l)" );
    registerColumnType( Types.NUMERIC, "numeric($p, $s)" );

    registerColumnType( Types.BLOB, "varbinary" );
    registerColumnType( Types.CLOB, "varchar" );

    getDefaultProperties().setProperty( Environment.STATEMENT_BATCH_SIZE, DEFAULT_BATCH_SIZE );
}
项目:cacheonix-core    文件:ConnectionProviderFactory.java   
/**
 * Transform JDBC connection properties.
 *
 * Passed in the form <tt>hibernate.connection.*</tt> to the
 * format accepted by <tt>DriverManager</tt> by triming the leading "<tt>hibernate.connection</tt>".
 */
public static Properties getConnectionProperties(Properties properties) {

    Iterator iter = properties.keySet().iterator();
    Properties result = new Properties();
    while ( iter.hasNext() ) {
        String prop = (String) iter.next();
        if ( prop.indexOf(Environment.CONNECTION_PREFIX) > -1 && !SPECIAL_PROPERTIES.contains(prop) ) {
            result.setProperty(
                prop.substring( Environment.CONNECTION_PREFIX.length()+1 ),
                properties.getProperty(prop)
            );
        }
    }
    String userName = properties.getProperty(Environment.USER);
    if (userName!=null) result.setProperty( "user", userName );
    return result;
}
项目:cacheonix-core    文件:DatasourceConnectionProvider.java   
public void configure(Properties props) throws HibernateException {

        String jndiName = props.getProperty(Environment.DATASOURCE);
        if (jndiName==null) {
            String msg = "datasource JNDI name was not specified by property " + Environment.DATASOURCE;
            log.fatal(msg);
            throw new HibernateException(msg);
        }

        user = props.getProperty(Environment.USER);
        pass = props.getProperty(Environment.PASS);

        try {
            ds = (DataSource) NamingHelper.getInitialContext(props).lookup(jndiName);
        }
        catch (Exception e) {
            log.fatal( "Could not find datasource: " + jndiName, e );
            throw new HibernateException( "Could not find datasource", e );
        }
        if (ds==null) {
            throw new HibernateException( "Could not find datasource: " + jndiName );
        }
        log.info( "Using datasource: " + jndiName );
    }
项目:cacheonix-core    文件:TreeCacheProvider.java   
/**
 * Prepare the underlying JBossCache TreeCache instance.
 *
 * @param properties All current config settings.
 *
 * @throws CacheException Indicates a problem preparing cache for use.
 */
public void start(Properties properties) {
    String resource = properties.getProperty( Environment.CACHE_PROVIDER_CONFIG );

    if ( resource == null ) {
        resource = properties.getProperty( CONFIG_RESOURCE );
    }
    if ( resource == null ) {
        resource = DEFAULT_CONFIG;
    }
    log.debug( "Configuring TreeCache from resource [" + resource + "]" );
    try {
        cache = new org.jboss.cache.TreeCache();
        PropertyConfigurator config = new PropertyConfigurator();
        config.configure( cache, resource );
        TransactionManagerLookup transactionManagerLookup = TransactionManagerLookupFactory.getTransactionManagerLookup(properties);
        if (transactionManagerLookup!=null) {
            cache.setTransactionManagerLookup( new TransactionManagerLookupAdaptor(transactionManagerLookup, properties) );
            transactionManager = transactionManagerLookup.getTransactionManager(properties);
        }
        cache.start();
    }
    catch (Exception e) {
        throw new CacheException(e);
    }
}
项目:cacheonix-core    文件:ConfigHelper.java   
public static InputStream getResourceAsStream(String resource) {
    String stripped = resource.startsWith("/") ?
            resource.substring(1) : resource;

    InputStream stream = null;
    ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
    if (classLoader!=null) {
        stream = classLoader.getResourceAsStream( stripped );
    }
    if ( stream == null ) {
        stream = Environment.class.getResourceAsStream( resource );
    }
    if ( stream == null ) {
        stream = Environment.class.getClassLoader().getResourceAsStream( stripped );
    }
    if ( stream == null ) {
        throw new HibernateException( resource + " not found" );
    }
    return stream;
}
项目:hibernate-semantic-query    文件:CalendarJavaDescriptor.java   
public <X> Calendar wrap(X value, WrapperOptions options) {
    if ( value == null ) {
        return null;
    }
    if ( Calendar.class.isInstance( value ) ) {
        return (Calendar) value;
    }

    if ( ! Date.class.isInstance( value ) ) {
        throw unknownWrap( value.getClass() );
    }

    Calendar cal = new GregorianCalendar();
    if ( Environment.jvmHasTimestampBug() ) {
        final long milliseconds = ( (Date) value ).getTime();
        final long nanoseconds = java.sql.Timestamp.class.isInstance( value )
                ? ( (java.sql.Timestamp) value ).getNanos()
                : 0;
        cal.setTime( new Date( milliseconds + nanoseconds / 1000000 ) );
    }
    else {
        cal.setTime( (Date) value );
    }
    return cal;
}
项目:hibernate-semantic-query    文件:CalendarTimeJavaDescriptor.java   
public <X> Calendar wrap(X value, WrapperOptions options) {
    if ( value == null ) {
        return null;
    }
    if ( Calendar.class.isInstance( value ) ) {
        return (Calendar) value;
    }

    if ( ! Date.class.isInstance( value ) ) {
        throw unknownWrap( value.getClass() );
    }

    Calendar cal = new GregorianCalendar();
    if ( Environment.jvmHasTimestampBug() ) {
        final long milliseconds = ( (Date) value ).getTime();
        final long nanoseconds = java.sql.Timestamp.class.isInstance( value )
                ? ( (java.sql.Timestamp) value ).getNanos()
                : 0;
        cal.setTime( new Date( milliseconds + nanoseconds / 1000000 ) );
    }
    else {
        cal.setTime( (Date) value );
    }
    return cal;
}