[4/7] ignite git commit: ignite-1794

2017-04-20 Thread sboikov
http://git-wip-us.apache.org/repos/asf/ignite/blob/d992b949/modules/hibernate-4.2/src/test/java/org/apache/ignite/cache/store/hibernate/CacheHibernateStoreSessionListenerSelfTest.java
--
diff --git 
a/modules/hibernate-4.2/src/test/java/org/apache/ignite/cache/store/hibernate/CacheHibernateStoreSessionListenerSelfTest.java
 
b/modules/hibernate-4.2/src/test/java/org/apache/ignite/cache/store/hibernate/CacheHibernateStoreSessionListenerSelfTest.java
new file mode 100644
index 000..880d12a
--- /dev/null
+++ 
b/modules/hibernate-4.2/src/test/java/org/apache/ignite/cache/store/hibernate/CacheHibernateStoreSessionListenerSelfTest.java
@@ -0,0 +1,238 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.cache.store.hibernate;
+
+import java.io.Serializable;
+import java.util.Map;
+import javax.cache.Cache;
+import javax.cache.configuration.Factory;
+import javax.cache.integration.CacheLoaderException;
+import javax.cache.integration.CacheWriterException;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import org.apache.ignite.cache.store.CacheStore;
+import org.apache.ignite.cache.store.CacheStoreAdapter;
+import org.apache.ignite.cache.store.CacheStoreSession;
+import org.apache.ignite.cache.store.CacheStoreSessionListener;
+import org.apache.ignite.cache.store.CacheStoreSessionListenerAbstractSelfTest;
+import org.apache.ignite.cache.store.jdbc.CacheJdbcStoreSessionListener;
+import org.apache.ignite.lang.IgniteBiInClosure;
+import org.apache.ignite.resources.CacheStoreSessionResource;
+import org.hibernate.Session;
+import org.hibernate.SessionFactory;
+import org.hibernate.Transaction;
+import org.hibernate.cfg.Configuration;
+
+/**
+ * Tests for {@link CacheJdbcStoreSessionListener}.
+ */
+public class CacheHibernateStoreSessionListenerSelfTest extends 
CacheStoreSessionListenerAbstractSelfTest {
+/** {@inheritDoc} */
+@Override protected Factory> 
storeFactory() {
+return new Factory>() {
+@Override public CacheStore create() {
+return new Store();
+}
+};
+}
+
+/** {@inheritDoc} */
+@Override protected Factory 
sessionListenerFactory() {
+return new Factory() {
+@Override public CacheStoreSessionListener create() {
+CacheHibernateStoreSessionListener lsnr = new 
CacheHibernateStoreSessionListener();
+
+SessionFactory sesFactory = new Configuration().
+setProperty("hibernate.connection.url", URL).
+addAnnotatedClass(Table1.class).
+addAnnotatedClass(Table2.class).
+buildSessionFactory();
+
+lsnr.setSessionFactory(sesFactory);
+
+return lsnr;
+}
+};
+}
+
+/**
+ */
+private static class Store extends CacheStoreAdapter {
+/** */
+private static String SES_CONN_KEY = "ses_conn";
+
+/** */
+@CacheStoreSessionResource
+private CacheStoreSession ses;
+
+/** {@inheritDoc} */
+@Override public void loadCache(IgniteBiInClosure 
clo, Object... args) {
+loadCacheCnt.incrementAndGet();
+
+checkSession();
+}
+
+/** {@inheritDoc} */
+@Override public Integer load(Integer key) throws CacheLoaderException 
{
+loadCnt.incrementAndGet();
+
+checkSession();
+
+return null;
+}
+
+/** {@inheritDoc} */
+@Override public void write(Cache.Entry entry)
+throws CacheWriterException {
+writeCnt.incrementAndGet();
+
+checkSession();
+
+if (write.get()) {
+Session hibSes = ses.attachment();
+
+switch (ses.cacheName()) {
+case "cache1":
+hibSes.save(new Table1(entry.getKey(), 
entry.getValue()));
+
+

[4/7] ignite git commit: ignite-1794

2017-04-20 Thread sboikov
http://git-wip-us.apache.org/repos/asf/ignite/blob/be40f937/modules/hibernate-5.1/src/test/java/org/apache/ignite/cache/store/hibernate/CacheHibernateStoreSessionListenerSelfTest.java
--
diff --git 
a/modules/hibernate-5.1/src/test/java/org/apache/ignite/cache/store/hibernate/CacheHibernateStoreSessionListenerSelfTest.java
 
b/modules/hibernate-5.1/src/test/java/org/apache/ignite/cache/store/hibernate/CacheHibernateStoreSessionListenerSelfTest.java
new file mode 100644
index 000..0010425
--- /dev/null
+++ 
b/modules/hibernate-5.1/src/test/java/org/apache/ignite/cache/store/hibernate/CacheHibernateStoreSessionListenerSelfTest.java
@@ -0,0 +1,242 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.cache.store.hibernate;
+
+import java.io.Serializable;
+import java.util.Map;
+import javax.cache.Cache;
+import javax.cache.configuration.Factory;
+import javax.cache.integration.CacheLoaderException;
+import javax.cache.integration.CacheWriterException;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import org.apache.ignite.cache.store.CacheStore;
+import org.apache.ignite.cache.store.CacheStoreAdapter;
+import org.apache.ignite.cache.store.CacheStoreSession;
+import org.apache.ignite.cache.store.CacheStoreSessionListener;
+import org.apache.ignite.cache.store.CacheStoreSessionListenerAbstractSelfTest;
+import org.apache.ignite.cache.store.jdbc.CacheJdbcStoreSessionListener;
+import org.apache.ignite.lang.IgniteBiInClosure;
+import org.apache.ignite.resources.CacheStoreSessionResource;
+import org.hibernate.Session;
+import org.hibernate.SessionFactory;
+import org.hibernate.Transaction;
+import org.hibernate.cfg.Configuration;
+import org.hibernate.resource.transaction.spi.TransactionStatus;
+
+/**
+ * Tests for {@link CacheJdbcStoreSessionListener}.
+ */
+public class CacheHibernateStoreSessionListenerSelfTest extends 
CacheStoreSessionListenerAbstractSelfTest {
+/** {@inheritDoc} */
+@Override protected Factory> 
storeFactory() {
+return new Factory>() {
+@Override public CacheStore create() {
+return new Store();
+}
+};
+}
+
+/** {@inheritDoc} */
+@Override protected Factory 
sessionListenerFactory() {
+return new Factory() {
+@Override public CacheStoreSessionListener create() {
+CacheHibernateStoreSessionListener lsnr = new 
CacheHibernateStoreSessionListener();
+
+SessionFactory sesFactory = new Configuration().
+setProperty("hibernate.connection.url", URL).
+addAnnotatedClass(Table1.class).
+addAnnotatedClass(Table2.class).
+buildSessionFactory();
+
+lsnr.setSessionFactory(sesFactory);
+
+return lsnr;
+}
+};
+}
+
+/**
+ */
+private static class Store extends CacheStoreAdapter {
+/** */
+private static String SES_CONN_KEY = "ses_conn";
+
+/** */
+@CacheStoreSessionResource
+private CacheStoreSession ses;
+
+/** {@inheritDoc} */
+@Override public void loadCache(IgniteBiInClosure 
clo, Object... args) {
+loadCacheCnt.incrementAndGet();
+
+checkSession();
+}
+
+/** {@inheritDoc} */
+@Override public Integer load(Integer key) throws CacheLoaderException 
{
+loadCnt.incrementAndGet();
+
+checkSession();
+
+return null;
+}
+
+/** {@inheritDoc} */
+@Override public void write(Cache.Entry entry)
+throws CacheWriterException {
+writeCnt.incrementAndGet();
+
+checkSession();
+
+if (write.get()) {
+Session hibSes = ses.attachment();
+
+switch (ses.cacheName()) {
+case "cache1":
+