diff options
author | Trygve Laugstøl <trygvis@inamo.no> | 2014-04-21 09:01:00 +0200 |
---|---|---|
committer | Trygve Laugstøl <trygvis@inamo.no> | 2014-04-21 09:01:00 +0200 |
commit | fd681e2c6663652be02a31f7b40da4cd283ab37e (patch) | |
tree | 83cf23c1cc1f9320f2464e355d33d7abce3249e8 /calamus-engine/src/main/java/io/trygvis/engine/CalamusDbConfig.java | |
parent | d38810a179a6f669ea0d3e7588f2aabed762deff (diff) | |
download | calamus-fd681e2c6663652be02a31f7b40da4cd283ab37e.tar.gz calamus-fd681e2c6663652be02a31f7b40da4cd283ab37e.tar.bz2 calamus-fd681e2c6663652be02a31f7b40da4cd283ab37e.tar.xz calamus-fd681e2c6663652be02a31f7b40da4cd283ab37e.zip |
wip
Diffstat (limited to 'calamus-engine/src/main/java/io/trygvis/engine/CalamusDbConfig.java')
-rw-r--r-- | calamus-engine/src/main/java/io/trygvis/engine/CalamusDbConfig.java | 129 |
1 files changed, 0 insertions, 129 deletions
diff --git a/calamus-engine/src/main/java/io/trygvis/engine/CalamusDbConfig.java b/calamus-engine/src/main/java/io/trygvis/engine/CalamusDbConfig.java deleted file mode 100644 index 39772c8..0000000 --- a/calamus-engine/src/main/java/io/trygvis/engine/CalamusDbConfig.java +++ /dev/null @@ -1,129 +0,0 @@ -package io.trygvis.engine; - -import bitronix.tm.BitronixTransactionManager; -import bitronix.tm.TransactionManagerServices; -import bitronix.tm.resource.jdbc.PoolingDataSource; -import com.googlecode.flyway.core.Flyway; -import com.googlecode.flyway.core.api.MigrationInfo; -import com.googlecode.flyway.core.api.MigrationInfoService; -import org.jbpm.process.audit.JPAAuditLogService; -import org.kie.api.io.Resource; -import org.kie.api.io.ResourceType; -import org.kie.api.runtime.manager.RuntimeEnvironment; -import org.kie.internal.io.ResourceFactory; -import org.kie.spring.factorybeans.RuntimeEnvironmentFactoryBean; -import org.kie.spring.factorybeans.RuntimeManagerFactoryBean; -import org.slf4j.Logger; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.DependsOn; -import org.springframework.context.annotation.Lazy; -import org.springframework.jdbc.datasource.LazyConnectionDataSourceProxy; -import org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy; -import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; -import org.springframework.transaction.PlatformTransactionManager; -import org.springframework.transaction.annotation.EnableTransactionManagement; -import org.springframework.transaction.jta.JtaTransactionManager; -import org.springframework.transaction.support.TransactionTemplate; - -import javax.persistence.EntityManagerFactory; -import javax.sql.DataSource; -import java.util.Date; -import java.util.HashMap; -import java.util.Map; - -import static java.lang.String.format; -import static org.slf4j.LoggerFactory.getLogger; - -/** - * http://planet.jboss.org/post/jbpm_6_with_spring - */ -@Configuration -@EnableTransactionManagement -public class CalamusDbConfig { - private final Logger log = getLogger(getClass()); - - @Bean - public DataSource dataSource() { - PoolingDataSource ds = new PoolingDataSource(); - ds.setUniqueName("jdbc/jbpm-ds"); - ds.setClassName(bitronix.tm.resource.jdbc.lrc.LrcXADataSource.class.getCanonicalName()); - ds.setMaxPoolSize(3); - ds.setAllowLocalTransactions(true); - ds.getDriverProperties().put("user", "jbpm"); - ds.getDriverProperties().put("password", "jbpm"); - ds.getDriverProperties().put("url", "jdbc:postgresql://localhost/jbpm"); - ds.getDriverProperties().put("driverClassName", org.postgresql.Driver.class.getCanonicalName()); - ds.init(); - - return new TransactionAwareDataSourceProxy(new LazyConnectionDataSourceProxy(ds)); -// return ds; - } - - public static class DbMigrations { - } - - @Bean - public DbMigrations dbMigrations(DataSource dataSource) { - runFlyway(log, dataSource, "", "public"); - return new DbMigrations(); - } - - private static void runFlyway(Logger log, DataSource dataSource, String prefix, String schema) { - log.info("Running migrations for {}", schema); - - Flyway flyway = new Flyway(); - flyway.setDataSource(dataSource); - flyway.setSchemas(schema); - flyway.setLocations("db/" + prefix); - flyway.setInitOnMigrate(true); - MigrationInfoService info = flyway.info(); - log.info(format("%-15s %-10s %-19s %s", "Version", "State", "Installed on", "Description")); - for (MigrationInfo mi : info.all()) { - Date installedOn = mi.getInstalledOn(); - log.info(format("%-15s %-10s %-19s %s", - mi.getVersion(), - trimToEmpty(mi.getState().getDisplayName()), - installedOn != null ? new Date(installedOn.getTime()).toString() : "", - trimToEmpty(mi.getDescription()))); - } - flyway.migrate(); - } - - private static String trimToEmpty(String string) { - if (string == null) { - return ""; - } - - return string.trim(); - } - - @Bean(destroyMethod = "shutdown") - public BitronixTransactionManager bitronixTransactionManager() { -// bitronix.tm.Configuration configuration = TransactionManagerServices.getConfiguration(); - return TransactionManagerServices.getTransactionManager(); - } - - @Bean - public PlatformTransactionManager platformTransactionManager(BitronixTransactionManager transactionManager) { - return new JtaTransactionManager(transactionManager, transactionManager); - } - - @Bean - public TransactionTemplate transactionTemplate(PlatformTransactionManager platformTransactionManager) { - return new TransactionTemplate(platformTransactionManager); - } - - @Bean - @DependsOn("dbMigrations") - public LocalContainerEntityManagerFactoryBean entityManagerFactory() { - LocalContainerEntityManagerFactoryBean x = new LocalContainerEntityManagerFactoryBean(); - x.setPersistenceUnitName("org.jbpm.persistence.jpa"); - return x; - } - - @Bean - public JPAAuditLogService jpaAuditLogService(EntityManagerFactory entityManagerFactory) { - return new JPAAuditLogService(entityManagerFactory); - } -} |