Example usage for org.hibernate.boot.registry StandardServiceRegistryBuilder applySetting

List of usage examples for org.hibernate.boot.registry StandardServiceRegistryBuilder applySetting

Introduction

In this page you can find the example usage for org.hibernate.boot.registry StandardServiceRegistryBuilder applySetting.

Prototype

@SuppressWarnings({ "unchecked", "UnusedDeclaration" })
public StandardServiceRegistryBuilder applySetting(String settingName, Object value) 

Source Link

Document

Apply a setting value.

Usage

From source file:com.booleanworks.peacockmantisshrimp.modules.hibernate.mongodbogm.HibernateOgmBootstapper.java

public boolean bootstrap() throws OgmHelperException {

    this.checkConfigurationAndUpdateStatus();

    if (this.getStatus() != Status.goodConfiguration) {
        Logger.getLogger(this.getClass().getCanonicalName()).log(Level.SEVERE,
                "Bootstrapper seems to be in a bad configuration... aborting.");
        return false;
    }/*from   w w  w .j  a v a2 s  .  com*/

    if (this.getStatus() == Status.bootstrapping) {
        throw new OgmHelperException("already bootstrapping  !!");
    }

    this.setStatus(Status.bootstrapping);

    StandardServiceRegistryBuilder ssrb = new StandardServiceRegistryBuilder();

    //And specific config
    ssrb.applySetting(OgmProperties.ENABLED, true);

    //assuming you are using JTA in a non container environment
    //ssrb.applySetting(AvailableSettings.TRANSACTION_COORDINATOR_STRATEGY, "jta");
    //assuming JBoss TransactionManager in standalone mode
    //ssrb.applySetting(AvailableSettings.JTA_PLATFORM, "JBossTS");
    //Using provided settings
    ssrb.applySettings(this.getSettings());

    if (this.getSettings().containsKey(OgmProperties.DATASTORE_PROVIDER)) {
        String providerValue = (String) this.getSettings().get(OgmProperties.DATASTORE_PROVIDER);

        if (providerValue.toLowerCase().equals("mongodb")) {
            Logger.getLogger(this.getClass().getCanonicalName()).log(Level.INFO,
                    "Detecting MongoDb provider.... doing additional checks");
            if (!this.getSettings().containsKey(MongoDBProperties.AUTHENTICATION_MECHANISM)) {
                AuthenticationMechanismType authenticationMechanismType = AuthenticationMechanismType.SCRAM_SHA_1;

                Logger.getLogger(this.getClass().getCanonicalName()).log(Level.WARNING,
                        "No MongoDb authentication mecanism set, patching configuration, setting to "
                                + authenticationMechanismType.name());
                this.getSettings().put(MongoDBProperties.AUTHENTICATION_MECHANISM, authenticationMechanismType);

                Logger.getLogger(this.getClass().getCanonicalName()).log(Level.WARNING,
                        "Current setings are: " + this.getSettings().toString());
            }
        }

    }

    //saving ssrb
    this.setStandardServiceRegistryBuilder(ssrb);

    //building registry
    StandardServiceRegistry registry = ssrb.build();
    if (registry == null) {
        throw new OgmHelperException("Failed to get a registry !!");
    }

    //saving registry
    this.setStandardServiceRegistry(registry);

    MetadataSources ms = new MetadataSources(registry);

    for (Class cEntity : this.getDeclaredEntities()) {
        ms.addAnnotatedClass(cEntity);
        Logger.getLogger(this.getClass().getCanonicalName()).log(Level.INFO,
                "Added entity: " + cEntity.getCanonicalName());
    }

    Metadata md = ms.buildMetadata(registry);

    SessionFactoryBuilder sfb = md.getSessionFactoryBuilder();

    OgmSessionFactory osf = sfb.unwrap(OgmSessionFactoryBuilder.class).build();

    //Saving the MetadataSources
    this.setMetadataSources(ms);

    //Saving SessionFactoryBuilder
    this.setSessionFactoryBuilder(sfb);

    //Savinf the OgmSessionFactory 
    this.setOgmSessionFactory(osf);

    this.setStatus(Status.ready);

    return true;
}

From source file:com.foilen.smalltools.tools.Hibernate50Tools.java

License:Open Source License

/**
 * Generate the SQL file. This is based on the code in {@link LocalSessionFactoryBuilder#scanPackages(String...)}
 *
 * @param dialect/*ww w . j  av  a2s  .  co  m*/
 *            the dialect (e.g: org.hibernate.dialect.MySQL5InnoDBDialect )
 * @param outputSqlFile
 *            where to put the generated SQL file
 * @param useUnderscore
 *            true: to have tables names like "employe_manager" ; false: to have tables names like "employeManager"
 * @param packagesToScan
 *            the packages where your entities are
 */
public static void generateSqlSchema(Class<? extends Dialect> dialect, String outputSqlFile,
        boolean useUnderscore, String... packagesToScan) {

    BootstrapServiceRegistry bootstrapServiceRegistry = new BootstrapServiceRegistryBuilder().build();

    MetadataSources metadataSources = new MetadataSources(bootstrapServiceRegistry);

    ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider(
            false);
    scanner.addIncludeFilter(new AnnotationTypeFilter(Entity.class));
    scanner.addIncludeFilter(new AnnotationTypeFilter(Embeddable.class));
    scanner.addIncludeFilter(new AnnotationTypeFilter(MappedSuperclass.class));
    for (String pkg : packagesToScan) {
        for (BeanDefinition beanDefinition : scanner.findCandidateComponents(pkg)) {
            metadataSources.addAnnotatedClassName(beanDefinition.getBeanClassName());
        }
    }

    StandardServiceRegistryBuilder standardServiceRegistryBuilder = new StandardServiceRegistryBuilder(
            bootstrapServiceRegistry);
    standardServiceRegistryBuilder.applySetting(AvailableSettings.DIALECT, dialect.getName());
    StandardServiceRegistryImpl ssr = (StandardServiceRegistryImpl) standardServiceRegistryBuilder.build();
    MetadataBuilder metadataBuilder = metadataSources.getMetadataBuilder(ssr);

    if (useUnderscore) {
        metadataBuilder.applyImplicitNamingStrategy(new SpringImplicitNamingStrategy());
        metadataBuilder.applyPhysicalNamingStrategy(new SpringPhysicalNamingStrategy());
    }

    MetadataImpl metadata = (MetadataImpl) metadataBuilder.build();

    // Exportation
    SchemaExport schemaExport = new SchemaExport(metadata);
    schemaExport.setOutputFile(outputSqlFile);
    schemaExport.setDelimiter(";");
    schemaExport.setFormat(true);
    schemaExport.execute(true, false, false, true);
}

From source file:com.foilen.smalltools.tools.Hibernate51Tools.java

License:Open Source License

/**
 * Generate the SQL file. This is based on the code in {@link LocalSessionFactoryBuilder#scanPackages(String...)}
 *
 * @param dialect/*from w  w w.j a  v a  2  s . c  o  m*/
 *            the dialect (e.g: org.hibernate.dialect.MySQL5InnoDBDialect )
 * @param outputSqlFile
 *            where to put the generated SQL file
 * @param useUnderscore
 *            true: to have tables names like "employe_manager" ; false: to have tables names like "employeManager"
 * @param packagesToScan
 *            the packages where your entities are
 */
public static void generateSqlSchema(Class<? extends Dialect> dialect, String outputSqlFile,
        boolean useUnderscore, String... packagesToScan) {

    BootstrapServiceRegistry bootstrapServiceRegistry = new BootstrapServiceRegistryBuilder().build();

    MetadataSources metadataSources = new MetadataSources(bootstrapServiceRegistry);

    ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider(
            false);
    scanner.addIncludeFilter(new AnnotationTypeFilter(Entity.class));
    scanner.addIncludeFilter(new AnnotationTypeFilter(Embeddable.class));
    scanner.addIncludeFilter(new AnnotationTypeFilter(MappedSuperclass.class));
    for (String pkg : packagesToScan) {
        for (BeanDefinition beanDefinition : scanner.findCandidateComponents(pkg)) {
            metadataSources.addAnnotatedClassName(beanDefinition.getBeanClassName());
        }
    }

    StandardServiceRegistryBuilder standardServiceRegistryBuilder = new StandardServiceRegistryBuilder(
            bootstrapServiceRegistry);
    standardServiceRegistryBuilder.applySetting(AvailableSettings.DIALECT, dialect.getName());
    StandardServiceRegistryImpl ssr = (StandardServiceRegistryImpl) standardServiceRegistryBuilder.build();
    MetadataBuilder metadataBuilder = metadataSources.getMetadataBuilder(ssr);

    if (useUnderscore) {
        metadataBuilder.applyImplicitNamingStrategy(new SpringImplicitNamingStrategy());
        metadataBuilder.applyPhysicalNamingStrategy(new SpringPhysicalNamingStrategy());
    }

    new SchemaExport() //
            .setHaltOnError(true) //
            .setOutputFile(outputSqlFile) //
            .setFormat(true) //
            .setDelimiter(";") //
            .execute(EnumSet.of(TargetType.SCRIPT), SchemaExport.Action.CREATE, metadataBuilder.build());

}

From source file:com.zeroone.guestebook.domain.SchemaGenerator.java

License:Apache License

public SchemaGenerator(String packageName, Dialect dialect) throws Exception {
    BootstrapServiceRegistry bsr;/*from   w  w w.  j  ava 2 s  .co m*/
    bsr = new BootstrapServiceRegistryBuilder().build();
    StandardServiceRegistryBuilder ssrBuilder;
    ssrBuilder = new StandardServiceRegistryBuilder(bsr);
    ssrBuilder.applySetting("hibernate.dialect", dialect.dialectClass);
    ServiceRegistry serviceRegistry = ssrBuilder.build();
    MetadataSources metadataSources = new MetadataSources(serviceRegistry);
    for (Class<?> clazz : getClasses(packageName)) {
        metadataSources.addAnnotatedClass(clazz);
    }
    MetadataBuilder metadataBuilder = metadataSources.getMetadataBuilder();
    this.metadata = (MetadataImplementor) metadataBuilder.build();
    this.dialect = dialect;
}

From source file:de.jpdigital.maven.plugins.hibernate5ddl.GenerateDdlMojo.java

License:Open Source License

/**
 * Helper method for generating the DDL classes for a specific dialect. This
 * is place for the real work is done. The method first creates an instance
 * of the {@link Configuration} class from Hibernate an puts the appropriate
 * values into it. It then creates an instance of the {@link SchemaExport}
 * class from the Hibernate API, configured this class, for example by
 * setting {@code format} to {@code true} so that the generated SQL files
 * are formatted nicely. After that it calls the
 * {@link SchemaExport#execute(boolean, boolean, boolean, boolean)} method
 * which will create the SQL script file. The method is called in a way
 * which requires <em>no</em> database connection.
 *
 *
 * @param dialect       The dialect for which the DDL files is generated.
 * @param entityClasses The entity classes for which the DDL file is
 *                      generated./*from  w ww .  ja  v a2 s. co  m*/
 *
 * @throws MojoFailureException if something goes wrong.
 */
private void generateDdl(final Dialect dialect, final Set<Class<?>> entityClasses) throws MojoFailureException {

    final StandardServiceRegistryBuilder registryBuilder = new StandardServiceRegistryBuilder();
    processPersistenceXml(registryBuilder);

    if (createDropStatements) {
        registryBuilder.applySetting("hibernate.hbm2ddl.auto", "create-drop");
    } else {
        registryBuilder.applySetting("hibernate.hbm2ddl.auto", "create");
    }

    registryBuilder.applySetting("hibernate.dialect", dialect.getDialectClass());

    final StandardServiceRegistry standardRegistry = registryBuilder.build();

    final MetadataSources metadataSources = new MetadataSources(standardRegistry);

    for (final Class<?> entityClass : entityClasses) {
        metadataSources.addAnnotatedClass(entityClass);
    }

    final SchemaExport export = new SchemaExport();
    //        final SchemaExport export = new SchemaExport(
    //            (MetadataImplementor) metadata, true);
    export.setDelimiter(";");

    final Path tmpDir;
    try {
        tmpDir = Files.createTempDirectory("maven-hibernate5-ddl-plugin");
    } catch (IOException ex) {
        throw new MojoFailureException("Failed to create work dir.", ex);
    }

    final Metadata metadata = metadataSources.buildMetadata();

    export.setOutputFile(
            String.format("%s/%s.sql", tmpDir.toString(), dialect.name().toLowerCase(Locale.ENGLISH)));
    export.setFormat(true);
    if (createDropStatements) {
        export.execute(EnumSet.of(TargetType.SCRIPT), SchemaExport.Action.BOTH, metadata);
    } else {
        export.execute(EnumSet.of(TargetType.SCRIPT), SchemaExport.Action.CREATE, metadata);
    }

    writeOutputFile(dialect, tmpDir);
}

From source file:example.HHH9788Test.java

License:Apache License

@Before
public void setUp() {

    StandardServiceRegistryBuilder registryBuilder = new StandardServiceRegistryBuilder();

    registryBuilder.applySetting("hibernate.dialect", "org.hibernate.dialect.HSQLDialect");
    registryBuilder.applySetting("hibernate.connection.driver_class", "org.hsqldb.jdbcDriver");
    registryBuilder.applySetting("hibernate.connection.username", "sa");
    registryBuilder.applySetting("hibernate.connection.password", "");
    registryBuilder.applySetting("hibernate.connection.url", "jdbc:hsqldb:mem:test");

    this.serviceRegistry = registryBuilder.build();

    MetadataSources sources = new MetadataSources(serviceRegistry);
    sources.addAnnotatedClass(Role.class);
    sources.addAnnotatedClass(User.class);

    this.metadata = (MetadataImplementor) sources.buildMetadata();
}

From source file:org.apache.ignite.cache.hibernate.HibernateL2CacheStrategySelfTest.java

License:Apache License

/**
 * @param accessType Cache access typr./* ww  w . j av a  2 s. c o  m*/
 * @param igniteInstanceName Name of the grid providing caches.
 * @return Session factory.
 */
private SessionFactory startHibernate(AccessType accessType, String igniteInstanceName) {
    StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder();

    builder.applySetting("hibernate.connection.url", CONNECTION_URL);

    for (Map.Entry<String, String> e : HibernateL2CacheSelfTest
            .hibernateProperties(igniteInstanceName, accessType.name()).entrySet())
        builder.applySetting(e.getKey(), e.getValue());

    builder.applySetting(USE_STRUCTURED_CACHE, "true");
    builder.applySetting(REGION_CACHE_PROPERTY + ENTITY1_NAME, "cache1");
    builder.applySetting(REGION_CACHE_PROPERTY + ENTITY2_NAME, "cache2");
    builder.applySetting(REGION_CACHE_PROPERTY + TIMESTAMP_CACHE, TIMESTAMP_CACHE);
    builder.applySetting(REGION_CACHE_PROPERTY + QUERY_CACHE, QUERY_CACHE);

    MetadataSources metadataSources = new MetadataSources(builder.build());

    metadataSources.addAnnotatedClass(Entity1.class);
    metadataSources.addAnnotatedClass(Entity2.class);
    metadataSources.addAnnotatedClass(Entity3.class);
    metadataSources.addAnnotatedClass(Entity4.class);

    Metadata metadata = metadataSources.buildMetadata();

    for (PersistentClass entityBinding : metadata.getEntityBindings()) {
        if (!entityBinding.isInherited())
            ((RootClass) entityBinding).setCacheConcurrencyStrategy(accessType.getExternalName());
    }

    return metadata.buildSessionFactory();
}

From source file:org.infinispan.test.hibernate.cache.AbstractNonFunctionalTest.java

License:LGPL

protected StandardServiceRegistryBuilder createStandardServiceRegistryBuilder() {
    final StandardServiceRegistryBuilder ssrb = CacheTestUtil.buildBaselineStandardServiceRegistryBuilder(
            REGION_PREFIX, getRegionFactoryClass(), true, false, jtaPlatform);
    ssrb.applySetting(TestInfinispanRegionFactory.TRANSACTIONAL, accessType == AccessType.TRANSACTIONAL);
    ssrb.applySetting(TestInfinispanRegionFactory.CACHE_MODE, cacheMode);
    return ssrb;/*from   w  ww . j  a  v a2 s .c o m*/
}

From source file:org.infinispan.test.hibernate.cache.commons.AbstractNonFunctionalTest.java

License:LGPL

protected StandardServiceRegistryBuilder createStandardServiceRegistryBuilder() {
    final StandardServiceRegistryBuilder ssrb = CacheTestUtil
            .buildBaselineStandardServiceRegistryBuilder(REGION_PREFIX, true, false, jtaPlatform);
    ssrb.applySetting(TestRegionFactory.TRANSACTIONAL,
            TestRegionFactoryProvider.load().supportTransactionalCaches()
                    && accessType == AccessType.TRANSACTIONAL);
    ssrb.applySetting(TestRegionFactory.CACHE_MODE, cacheMode);
    return ssrb;/*  www .  jav  a2s.  co m*/
}

From source file:org.infinispan.test.hibernate.cache.commons.functional.cluster.SessionRefreshTest.java

License:LGPL

@Override
protected void configureSecondNode(StandardServiceRegistryBuilder ssrb) {
    super.configureSecondNode(ssrb);
    ssrb.applySetting(Environment.USE_SECOND_LEVEL_CACHE, "false");
}