# ignite-45 Fixed examples.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/bb9bf893 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/bb9bf893 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/bb9bf893 Branch: refs/heads/ignite-497-stick Commit: bb9bf893e5ed9a818eee71463013f4c66c83e985 Parents: b0caf3a Author: anovikov <anovi...@gridgain.com> Authored: Tue Mar 24 10:21:36 2015 +0700 Committer: anovikov <anovi...@gridgain.com> Committed: Tue Mar 24 10:21:36 2015 +0700 ---------------------------------------------------------------------- .../org/apache/ignite/schema/CacheConfig.java | 12 +++++++++--- .../java/org/apache/ignite/schema/Demo.java | 20 ++++++++++++++++++-- .../store/jdbc/CacheAbstractJdbcStore.java | 6 +++--- 3 files changed, 30 insertions(+), 8 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/bb9bf893/examples/schema-import/src/main/java/org/apache/ignite/schema/CacheConfig.java ---------------------------------------------------------------------- diff --git a/examples/schema-import/src/main/java/org/apache/ignite/schema/CacheConfig.java b/examples/schema-import/src/main/java/org/apache/ignite/schema/CacheConfig.java index b57d75e..44359dd 100644 --- a/examples/schema-import/src/main/java/org/apache/ignite/schema/CacheConfig.java +++ b/examples/schema-import/src/main/java/org/apache/ignite/schema/CacheConfig.java @@ -17,16 +17,22 @@ package org.apache.ignite.schema; +import org.apache.ignite.cache.store.*; import org.apache.ignite.configuration.*; -import javax.sql.*; +import javax.cache.configuration.*; /** * CacheConfig stub. Will be generated by Ignite Schema Import Utility. */ public class CacheConfig { - /** Configure cache. */ - public static CacheConfiguration cache(String name, final DataSource dataSource) { + /** + * Configure cache. + * + * @param name Cache name. + * @param storeFactory Cache store factory. + */ + public static CacheConfiguration cache(String name, Factory<CacheStore> storeFactory) { throw new IllegalStateException("CacheConfig should be generated by Ignite Schema Import Utility"); } } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/bb9bf893/examples/schema-import/src/main/java/org/apache/ignite/schema/Demo.java ---------------------------------------------------------------------- diff --git a/examples/schema-import/src/main/java/org/apache/ignite/schema/Demo.java b/examples/schema-import/src/main/java/org/apache/ignite/schema/Demo.java index f446034..62abcb6 100644 --- a/examples/schema-import/src/main/java/org/apache/ignite/schema/Demo.java +++ b/examples/schema-import/src/main/java/org/apache/ignite/schema/Demo.java @@ -18,11 +18,14 @@ package org.apache.ignite.schema; import org.apache.ignite.*; +import org.apache.ignite.cache.store.*; import org.apache.ignite.cache.store.jdbc.*; import org.apache.ignite.configuration.*; import org.apache.ignite.transactions.*; +import org.h2.jdbcx.*; import javax.cache.*; +import javax.cache.configuration.*; /** * Demo for CacheJdbcPojoStore. @@ -36,6 +39,20 @@ public class Demo { private static final String CACHE_NAME = "Person"; /** + * Constructs and returns a fully configured instance of a {@link CacheJdbcPojoStore}. + */ + private static class H2DemoStoreFactory implements Factory<CacheStore> { + /** {@inheritDoc} */ + @Override public CacheStore create() { + CacheJdbcPojoStore store = new CacheJdbcPojoStore<>(); + + store.setDataSource(JdbcConnectionPool.create("jdbc:h2:tcp://localhost/~/schema-import/demo", "sa", "")); + + return store; + } + } + + /** * Executes demo. * * @param args Command line arguments, none required. @@ -47,8 +64,7 @@ public class Demo { IgniteConfiguration cfg = new IgniteConfiguration(); // Configure cache store. - CacheConfiguration ccfg = CacheConfig.cache(CACHE_NAME, - org.h2.jdbcx.JdbcConnectionPool.create("jdbc:h2:tcp://localhost/~/schema-import/demo", "sa", "")); + CacheConfiguration ccfg = CacheConfig.cache(CACHE_NAME, new H2DemoStoreFactory()); cfg.setCacheConfiguration(ccfg); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/bb9bf893/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheAbstractJdbcStore.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheAbstractJdbcStore.java b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheAbstractJdbcStore.java index 327068d..c599067 100644 --- a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheAbstractJdbcStore.java +++ b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheAbstractJdbcStore.java @@ -317,10 +317,10 @@ public abstract class CacheAbstractJdbcStore<K, V> implements CacheStore<K, V>, Transaction tx = ses.transaction(); - Connection conn = ses.<String, Connection>properties().remove(ATTR_CONN_PROP); + if (tx != null) { + Connection conn = ses.<String, Connection>properties().remove(ATTR_CONN_PROP); - if (conn != null) { - assert tx != null; + assert conn != null; try { if (commit)