/** * Prefills the id generators. * * @param datasource the datasource to use * @since $version * @author hceylan */ public void preFillGenerators(DataSource datasource) { final int nThreads = Runtime.getRuntime().availableProcessors(); this.idGeneratorExecuter = new ThreadPoolExecutor( 1, nThreads, // 30, TimeUnit.SECONDS, // new LinkedBlockingQueue<Runnable>(), // new GeneratorThreadFactory()); for (final SequenceGenerator generator : this.sequenceGenerators.values()) { this.sequenceQueues.put( generator.getName(), new SequenceQueue( this.jdbcAdaptor, datasource, this.idGeneratorExecuter, generator.getSequenceName(), generator.getAllocationSize())); } for (final TableGenerator generator : this.tableGenerators.values()) { this.tableIdQueues.put( generator.getName(), new TableIdQueue(this.jdbcAdaptor, datasource, this.idGeneratorExecuter, generator)); } }
/** * Performs the sequence generators DDL operations. * * @param datasource the datasource * @param ddlMode the DDL Mode * @since $version * @author hceylan */ public void performSequencesDdl(DataSource datasource, DDLMode ddlMode) { for (final SequenceGenerator sequenceGenerator : this.sequenceGenerators.values()) { MetamodelImpl.LOG.info( "Performing DDL operations for sequence generators for {0}, mode {1}", sequenceGenerator.getName(), ddlMode); this.jdbcAdaptor.createSequenceIfNecessary(datasource, sequenceGenerator); } }
/** * Adds the sequence generator to the metamodel * * @param metadata the generator metadata * @since $version * @author hceylan */ public synchronized void addSequenceGenerator(SequenceGeneratorMetadata metadata) { final SequenceGenerator sequenceGenerator = new SequenceGenerator(metadata); this.sequenceGenerators.put(sequenceGenerator.getName(), sequenceGenerator); }