summaryrefslogtreecommitdiff
path: root/calamus-engine/src/main/java/io/trygvis/engine/CalamusDbConfig.java
diff options
context:
space:
mode:
authorTrygve Laugstøl <trygvis@inamo.no>2014-04-21 09:01:00 +0200
committerTrygve Laugstøl <trygvis@inamo.no>2014-04-21 09:01:00 +0200
commitfd681e2c6663652be02a31f7b40da4cd283ab37e (patch)
tree83cf23c1cc1f9320f2464e355d33d7abce3249e8 /calamus-engine/src/main/java/io/trygvis/engine/CalamusDbConfig.java
parentd38810a179a6f669ea0d3e7588f2aabed762deff (diff)
downloadcalamus-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.java129
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);
- }
-}