Class RdbmsEngineFactory<T extends org.copperengine.core.DependencyInjector>

  • Type Parameters:
    T - type of DependencyInjector which shall be used from the created engine

    public abstract class RdbmsEngineFactory<T extends org.copperengine.core.DependencyInjector>
    extends AbstractPersistentEngineFactory<T>
    Utility class to create a RDBMS (e.g. oracle or mysql) PersistentScottyEngine.

    Usage is quite simple, e.g. using a SupplierDependencyInjector:

     RdbmsEngineFactory<SupplierDependencyInjector> engineFactory = new
             RdbmsEngineFactory<SupplierDependencyInjector>(Arrays.asList("package.of.copper.workflow.classes")) {
     
                 protected SupplierDependencyInjector createDependencyInjector() {
                     return new SupplierDependencyInjector();
                 }
     
                 protected DataSource createDataSource() {
                     return ...;
                 }
             };
     engineFactory.getEngine().startup();
     
    • Field Detail

      • dataSource

        protected final com.google.common.base.Supplier<javax.sql.DataSource> dataSource
      • batcher

        protected final com.google.common.base.Supplier<org.copperengine.core.batcher.impl.BatcherImpl> batcher
    • Constructor Detail

      • RdbmsEngineFactory

        public RdbmsEngineFactory​(java.util.List<java.lang.String> wfPackges)
    • Method Detail

      • setNumberOfBatcherThreads

        public void setNumberOfBatcherThreads​(int numberOfBatcherThreads)
      • createDataSource

        protected abstract javax.sql.DataSource createDataSource()
      • createBatcher

        protected org.copperengine.core.batcher.impl.BatcherImpl createBatcher()
      • createDatabaseDialect

        protected org.copperengine.core.persistent.DatabaseDialect createDatabaseDialect()
      • createDialect

        protected org.copperengine.core.persistent.DatabaseDialect createDialect​(javax.sql.DataSource ds,
                                                                                 org.copperengine.core.common.WorkflowRepository wfRepository,
                                                                                 org.copperengine.core.EngineIdProvider engineIdProvider)
      • getBatcher

        public org.copperengine.core.batcher.Batcher getBatcher()