Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 21195200C63 for ; Wed, 26 Apr 2017 19:38:14 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 1FBD7160BCE; Wed, 26 Apr 2017 17:38:14 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 5BD3A160BBB for ; Wed, 26 Apr 2017 19:38:11 +0200 (CEST) Received: (qmail 38565 invoked by uid 500); 26 Apr 2017 17:38:10 -0000 Mailing-List: contact commits-help@ignite.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@ignite.apache.org Delivered-To: mailing list commits@ignite.apache.org Received: (qmail 38521 invoked by uid 99); 26 Apr 2017 17:38:10 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 26 Apr 2017 17:38:10 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 53603E1864; Wed, 26 Apr 2017 17:38:10 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: sboikov@apache.org To: commits@ignite.apache.org Date: Wed, 26 Apr 2017 17:38:14 -0000 Message-Id: In-Reply-To: References: X-Mailer: ASF-Git Admin Mailer Subject: [05/51] [abbrv] ignite git commit: ignite-1794 Refactored hibernate modules, switched to hibernate 5.1 archived-at: Wed, 26 Apr 2017 17:38:14 -0000 http://git-wip-us.apache.org/repos/asf/ignite/blob/ee1b19d3/modules/hibernate/src/test/java/org/apache/ignite/cache/store/hibernate/CacheHibernateStoreSessionListenerSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/hibernate/src/test/java/org/apache/ignite/cache/store/hibernate/CacheHibernateStoreSessionListenerSelfTest.java b/modules/hibernate/src/test/java/org/apache/ignite/cache/store/hibernate/CacheHibernateStoreSessionListenerSelfTest.java deleted file mode 100644 index 880d12a..0000000 --- a/modules/hibernate/src/test/java/org/apache/ignite/cache/store/hibernate/CacheHibernateStoreSessionListenerSelfTest.java +++ /dev/null @@ -1,238 +0,0 @@ -/* - * 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())); - - break; - - case "cache2": - if (fail.get()) - throw new CacheWriterException("Expected failure."); - - hibSes.save(new Table2(entry.getKey(), entry.getValue())); - - break; - - default: - throw new CacheWriterException("Wring cache: " + ses.cacheName()); - } - } - } - - /** {@inheritDoc} */ - @Override public void delete(Object key) throws CacheWriterException { - deleteCnt.incrementAndGet(); - - checkSession(); - } - - /** {@inheritDoc} */ - @Override public void sessionEnd(boolean commit) { - assertNull(ses.attachment()); - } - - /** - */ - private void checkSession() { - Session hibSes = ses.attachment(); - - assertNotNull(hibSes); - - assertTrue(hibSes.isOpen()); - - Transaction tx = hibSes.getTransaction(); - - assertNotNull(tx); - - if (ses.isWithinTransaction()) - assertTrue(tx.isActive()); - else - assertFalse(tx.isActive()); - - verifySameInstance(hibSes); - } - - /** - * @param hibSes Session. - */ - private void verifySameInstance(Session hibSes) { - Map props = ses.properties(); - - Session sesConn = props.get(SES_CONN_KEY); - - if (sesConn == null) - props.put(SES_CONN_KEY, hibSes); - else { - assertSame(hibSes, sesConn); - - reuseCnt.incrementAndGet(); - } - } - } - - /** - */ - @Entity - @Table(name = "Table1") - private static class Table1 implements Serializable { - /** */ - @Id @GeneratedValue - @Column(name = "id") - private Integer id; - - /** */ - @Column(name = "key") - private int key; - - /** */ - @Column(name = "value") - private int value; - - /** - * @param key Key. - * @param value Value. - */ - private Table1(int key, int value) { - this.key = key; - this.value = value; - } - } - - /** - */ - @Entity - @Table(name = "Table2") - private static class Table2 implements Serializable { - /** */ - @Id @GeneratedValue - @Column(name = "id") - private Integer id; - - /** */ - @Column(name = "key") - private int key; - - /** */ - @Column(name = "value") - private int value; - - /** - * @param key Key. - * @param value Value. - */ - private Table2(int key, int value) { - this.key = key; - this.value = value; - } - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ignite/blob/ee1b19d3/modules/hibernate/src/test/java/org/apache/ignite/cache/store/hibernate/hibernate.cfg.xml ---------------------------------------------------------------------- diff --git a/modules/hibernate/src/test/java/org/apache/ignite/cache/store/hibernate/hibernate.cfg.xml b/modules/hibernate/src/test/java/org/apache/ignite/cache/store/hibernate/hibernate.cfg.xml deleted file mode 100644 index 3822b31..0000000 --- a/modules/hibernate/src/test/java/org/apache/ignite/cache/store/hibernate/hibernate.cfg.xml +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - - - - true - - - jdbc:h2:mem:example;DB_CLOSE_DELAY=-1 - - - update - - - org.hibernate.dialect.H2Dialect - - - - - http://git-wip-us.apache.org/repos/asf/ignite/blob/ee1b19d3/modules/hibernate/src/test/java/org/apache/ignite/cache/store/hibernate/package-info.java ---------------------------------------------------------------------- diff --git a/modules/hibernate/src/test/java/org/apache/ignite/cache/store/hibernate/package-info.java b/modules/hibernate/src/test/java/org/apache/ignite/cache/store/hibernate/package-info.java deleted file mode 100644 index 8af9886..0000000 --- a/modules/hibernate/src/test/java/org/apache/ignite/cache/store/hibernate/package-info.java +++ /dev/null @@ -1,22 +0,0 @@ -/* - * 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. - */ - -/** - * - * Contains internal tests or test related classes and interfaces. - */ -package org.apache.ignite.cache.store.hibernate; \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ignite/blob/ee1b19d3/modules/hibernate/src/test/java/org/apache/ignite/testsuites/IgniteBinaryHibernateTestSuite.java ---------------------------------------------------------------------- diff --git a/modules/hibernate/src/test/java/org/apache/ignite/testsuites/IgniteBinaryHibernateTestSuite.java b/modules/hibernate/src/test/java/org/apache/ignite/testsuites/IgniteBinaryHibernateTestSuite.java deleted file mode 100644 index 3791bae..0000000 --- a/modules/hibernate/src/test/java/org/apache/ignite/testsuites/IgniteBinaryHibernateTestSuite.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * 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.testsuites; - -import junit.framework.TestSuite; -import org.apache.ignite.internal.binary.BinaryMarshaller; -import org.apache.ignite.testframework.config.GridTestProperties; - -/** - * - */ -public class IgniteBinaryHibernateTestSuite extends TestSuite { - /** - * @return Test suite. - * @throws Exception If failed. - */ - public static TestSuite suite() throws Exception { - GridTestProperties.setProperty(GridTestProperties.MARSH_CLASS_NAME, BinaryMarshaller.class.getName()); - - return IgniteHibernateTestSuite.suite(); - } -} http://git-wip-us.apache.org/repos/asf/ignite/blob/ee1b19d3/modules/hibernate/src/test/java/org/apache/ignite/testsuites/IgniteHibernateTestSuite.java ---------------------------------------------------------------------- diff --git a/modules/hibernate/src/test/java/org/apache/ignite/testsuites/IgniteHibernateTestSuite.java b/modules/hibernate/src/test/java/org/apache/ignite/testsuites/IgniteHibernateTestSuite.java deleted file mode 100644 index 99fea56..0000000 --- a/modules/hibernate/src/test/java/org/apache/ignite/testsuites/IgniteHibernateTestSuite.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * 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.testsuites; - -import junit.framework.TestSuite; -import org.apache.ignite.cache.hibernate.HibernateL2CacheConfigurationSelfTest; -import org.apache.ignite.cache.hibernate.HibernateL2CacheSelfTest; -import org.apache.ignite.cache.hibernate.HibernateL2CacheTransactionalSelfTest; -import org.apache.ignite.cache.hibernate.HibernateL2CacheTransactionalUseSyncSelfTest; -import org.apache.ignite.cache.store.hibernate.CacheHibernateBlobStoreNodeRestartTest; -import org.apache.ignite.cache.store.hibernate.CacheHibernateBlobStoreSelfTest; -import org.apache.ignite.cache.store.hibernate.CacheHibernateStoreFactorySelfTest; -import org.apache.ignite.cache.store.hibernate.CacheHibernateStoreSessionListenerSelfTest; - -/** - * Hibernate integration tests. - */ -public class IgniteHibernateTestSuite extends TestSuite { - /** - * @return Test suite. - * @throws Exception Thrown in case of the failure. - */ - public static TestSuite suite() throws Exception { - TestSuite suite = new TestSuite("Hibernate Integration Test Suite"); - - // Hibernate L2 cache. - suite.addTestSuite(HibernateL2CacheSelfTest.class); - suite.addTestSuite(HibernateL2CacheTransactionalSelfTest.class); - suite.addTestSuite(HibernateL2CacheTransactionalUseSyncSelfTest.class); - suite.addTestSuite(HibernateL2CacheConfigurationSelfTest.class); - - suite.addTestSuite(CacheHibernateBlobStoreSelfTest.class); - - suite.addTestSuite(CacheHibernateBlobStoreNodeRestartTest.class); - - suite.addTestSuite(CacheHibernateStoreSessionListenerSelfTest.class); - - suite.addTestSuite(CacheHibernateStoreFactorySelfTest.class); - - return suite; - } -} http://git-wip-us.apache.org/repos/asf/ignite/blob/ee1b19d3/modules/hibernate5/README.txt ---------------------------------------------------------------------- diff --git a/modules/hibernate5/README.txt b/modules/hibernate5/README.txt deleted file mode 100644 index 370258b..0000000 --- a/modules/hibernate5/README.txt +++ /dev/null @@ -1,48 +0,0 @@ -Apache Ignite Hibernate Module ------------------------------- - -Apache Ignite Hibernate module provides Hibernate second-level cache (L2 cache) implementation based -on Apache Ignite In-Memory Data Grid. - -To enable Hibernate module when starting a standalone node, move 'optional/ignite-hibernate5' folder to -'libs' folder before running 'ignite.{sh|bat}' script. The content of the module folder will -be added to classpath in this case. - -Importing Hibernate Module In Maven Project -------------------------------------------- - -If you are using Maven to manage dependencies of your project, you can add Hibernate module -dependency like this (replace '${ignite.version}' with actual Ignite version you are -interested in): - - - ... - - ... - - org.apache.ignite - ignite-hibernate5 - ${ignite.version} - - ... - - ... - - - -LGPL dependencies ------------------ - -Ignite includes the following optional LGPL dependencies: - - Hibernate L2 Cache Integration, http://hibernate.org/orm/ - - JTS Topology Suite for Geospatial indexing, http://tsusiatsoftware.net/jts/main.html - - cron4j for cron-based task scheduling, http://www.sauronsoftware.it/projects/cron4j - -Apache binary releases cannot include LGPL dependencies. If you would like include -optional LGPL dependencies into your release, you should download the source release -from Ignite website and do the build with the following maven command: - -mvn clean package -DskipTests -Prelease,lgpl http://git-wip-us.apache.org/repos/asf/ignite/blob/ee1b19d3/modules/hibernate5/licenses/apache-2.0.txt ---------------------------------------------------------------------- diff --git a/modules/hibernate5/licenses/apache-2.0.txt b/modules/hibernate5/licenses/apache-2.0.txt deleted file mode 100644 index d645695..0000000 --- a/modules/hibernate5/licenses/apache-2.0.txt +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed 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. http://git-wip-us.apache.org/repos/asf/ignite/blob/ee1b19d3/modules/hibernate5/pom.xml ---------------------------------------------------------------------- diff --git a/modules/hibernate5/pom.xml b/modules/hibernate5/pom.xml deleted file mode 100644 index 13a0c40..0000000 --- a/modules/hibernate5/pom.xml +++ /dev/null @@ -1,146 +0,0 @@ - - - - - - - 4.0.0 - - - org.apache.ignite - ignite-parent - 1 - ../../parent - - - ignite-hibernate5 - 2.0.0-SNAPSHOT - http://ignite.apache.org - - - - org.apache.ignite - ignite-core - ${project.version} - - - - org.hibernate - hibernate-core - 5.2.9.Final - - - - org.apache.ignite - ignite-jta - ${project.version} - test - - - - org.ow2.jotm - jotm-core - 2.1.9 - test - - - - commons-dbcp - commons-dbcp - 1.4 - test - - - - com.h2database - h2 - ${h2.version} - test - - - - javax.resource - connector-api - 1.5 - test - - - - org.apache.ignite - ignite-core - ${project.version} - test-jar - test - - - - org.apache.ignite - ignite-spring - ${project.version} - test - - - - org.apache.ignite - ignite-log4j - ${project.version} - test - - - - org.springframework - spring-beans - ${spring.version} - test - - - - org.springframework - spring-context - ${spring.version} - test - - - - - - - src/main/java - - **/*.java - - - - src/test/java - - **/*.java - - - - - - - - org.apache.felix - maven-bundle-plugin - - - - http://git-wip-us.apache.org/repos/asf/ignite/blob/ee1b19d3/modules/hibernate5/src/main/java/org/apache/ignite/cache/hibernate/HibernateAbstractRegionAccessStrategy.java ---------------------------------------------------------------------- diff --git a/modules/hibernate5/src/main/java/org/apache/ignite/cache/hibernate/HibernateAbstractRegionAccessStrategy.java b/modules/hibernate5/src/main/java/org/apache/ignite/cache/hibernate/HibernateAbstractRegionAccessStrategy.java deleted file mode 100644 index efb9056..0000000 --- a/modules/hibernate5/src/main/java/org/apache/ignite/cache/hibernate/HibernateAbstractRegionAccessStrategy.java +++ /dev/null @@ -1,99 +0,0 @@ -/* - * 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.hibernate; - -import org.hibernate.cache.CacheException; -import org.hibernate.cache.spi.access.RegionAccessStrategy; -import org.hibernate.cache.spi.access.SoftLock; -import org.hibernate.engine.spi.SharedSessionContractImplementor; -import org.jetbrains.annotations.Nullable; - -/** - * Implementation of L2 cache access strategy delegating to {@link HibernateAccessStrategyAdapter}. - */ -public abstract class HibernateAbstractRegionAccessStrategy implements RegionAccessStrategy { - /** */ - protected final HibernateAccessStrategyAdapter stgy; - - /** - * @param stgy Access strategy implementation. - */ - protected HibernateAbstractRegionAccessStrategy(HibernateAccessStrategyAdapter stgy) { - this.stgy = stgy; - } - - /** {@inheritDoc} */ - @Nullable @Override public Object get(SharedSessionContractImplementor ses, Object key, long txTs) throws CacheException { - return stgy.get(key); - } - - /** {@inheritDoc} */ - @Override public boolean putFromLoad(SharedSessionContractImplementor ses, Object key, Object val, long txTs, Object ver) throws CacheException { - stgy.putFromLoad(key, val); - - return true; - } - - /** {@inheritDoc} */ - @Override public boolean putFromLoad(SharedSessionContractImplementor ses, Object key, Object val, long txTs, Object ver, boolean minimalPutOverride) - throws CacheException { - stgy.putFromLoad(key, val, minimalPutOverride); - - return true; - } - - /** {@inheritDoc} */ - @Nullable @Override public SoftLock lockItem(SharedSessionContractImplementor ses, Object key, Object ver) throws CacheException { - return stgy.lock(key); - } - - /** {@inheritDoc} */ - @Nullable @Override public SoftLock lockRegion() throws CacheException { - return stgy.lockRegion(); - } - - /** {@inheritDoc} */ - @Override public void unlockRegion(SoftLock lock) throws CacheException { - stgy.unlockRegion(lock); - } - - /** {@inheritDoc} */ - @Override public void unlockItem(SharedSessionContractImplementor ses, Object key, SoftLock lock) throws CacheException { - stgy.unlock(key, lock); - } - - /** {@inheritDoc} */ - @Override public void remove(SharedSessionContractImplementor ses, Object key) throws CacheException { - stgy.remove(key); - } - - /** {@inheritDoc} */ - @Override public void removeAll() throws CacheException { - stgy.removeAll(); - } - - /** {@inheritDoc} */ - @Override public void evict(Object key) throws CacheException { - stgy.evict(key); - } - - /** {@inheritDoc} */ - @Override public void evictAll() throws CacheException { - stgy.evictAll(); - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ignite/blob/ee1b19d3/modules/hibernate5/src/main/java/org/apache/ignite/cache/hibernate/HibernateAccessStrategyAdapter.java ---------------------------------------------------------------------- diff --git a/modules/hibernate5/src/main/java/org/apache/ignite/cache/hibernate/HibernateAccessStrategyAdapter.java b/modules/hibernate5/src/main/java/org/apache/ignite/cache/hibernate/HibernateAccessStrategyAdapter.java deleted file mode 100644 index f6c1d0e..0000000 --- a/modules/hibernate5/src/main/java/org/apache/ignite/cache/hibernate/HibernateAccessStrategyAdapter.java +++ /dev/null @@ -1,379 +0,0 @@ -/* - * 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.hibernate; - -import java.io.Externalizable; -import java.io.IOException; -import java.io.ObjectInput; -import java.io.ObjectOutput; -import org.apache.ignite.Ignite; -import org.apache.ignite.IgniteCheckedException; -import org.apache.ignite.IgniteException; -import org.apache.ignite.IgniteLogger; -import org.apache.ignite.internal.IgniteKernal; -import org.apache.ignite.internal.processors.cache.IgniteInternalCache; -import org.apache.ignite.internal.util.typedef.internal.U; -import org.apache.ignite.lang.IgniteCallable; -import org.apache.ignite.resources.IgniteInstanceResource; -import org.hibernate.cache.CacheException; -import org.hibernate.cache.spi.access.CollectionRegionAccessStrategy; -import org.hibernate.cache.spi.access.EntityRegionAccessStrategy; -import org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy; -import org.hibernate.cache.spi.access.RegionAccessStrategy; -import org.hibernate.cache.spi.access.SoftLock; -import org.jetbrains.annotations.Nullable; - -/** - * Common interface used to implement Hibernate L2 cache access strategies ({@link RegionAccessStrategy}, - * {@link EntityRegionAccessStrategy} and {@link CollectionRegionAccessStrategy}). - *

- * The expected sequences of steps related to various CRUD operations executed by Hibernate are: - *

- * Insert: - *

    - *
  • Start DB transaction.
  • - *
  • Execute database insert.
  • - *
  • Call {@link HibernateAccessStrategyAdapter#insert}.
  • - *
  • Commit DB transaction.
  • - *
  • Call {@link HibernateAccessStrategyAdapter#afterInsert}.
  • - *
- * In case if some step fails and DB transaction is rolled back then - * {@link HibernateAccessStrategyAdapter#afterInsert} is not called. - *

- * Update: - *

    - *
  • Start DB transaction.
  • - *
  • Call {@link HibernateAccessStrategyAdapter#lock}.
  • - *
  • Execute database update.
  • - *
  • Call {@link HibernateAccessStrategyAdapter#update}.
  • - *
  • Commit DB transaction.
  • - *
  • Call {@link HibernateAccessStrategyAdapter#afterUpdate}.
  • - *
- * In case if {@link HibernateAccessStrategyAdapter#lock} was called, but some other step fails and DB - * transaction is rolled back then {@link HibernateAccessStrategyAdapter#unlock} is called for all locked keys. - *

- * Delete: - *

    - *
  • Start DB transaction.
  • - *
  • Call {@link HibernateAccessStrategyAdapter#lock} for removing key.
  • - *
  • Execute database delete.
  • - *
  • Call {@link HibernateAccessStrategyAdapter#remove}.
  • - *
  • Commit DB transaction.
  • - *
  • Call {@link HibernateAccessStrategyAdapter#unlock}.
  • - *
- * In case if {@link HibernateAccessStrategyAdapter#lock} was called, but some other step fails and DB - * transaction is rolled back then {@link HibernateAccessStrategyAdapter#unlock} is called for all locked keys. - *

- * In case if custom SQL update query is executed Hibernate clears entire cache region, - * for this case operations sequence is: - *

    - *
  • Start DB transaction.
  • - *
  • Call {@link HibernateAccessStrategyAdapter#lockRegion}.
  • - *
  • Execute database query.
  • - *
  • Call {@link HibernateAccessStrategyAdapter#removeAll}.
  • - *
  • Commit DB transaction.
  • - *
  • Call {@link HibernateAccessStrategyAdapter#unlockRegion}.
  • - *
- */ -public abstract class HibernateAccessStrategyAdapter { - /** */ - protected final HibernateCacheProxy cache; - - /** Grid. */ - protected final Ignite ignite; - - /** */ - protected final IgniteLogger log; - - /** - * @param ignite Grid. - * @param cache Cache. - */ - protected HibernateAccessStrategyAdapter(Ignite ignite, HibernateCacheProxy cache) { - this.cache = cache; - this.ignite = ignite; - - log = ignite.log(); - } - - /** - * Gets value from cache. Used by {@link RegionAccessStrategy#get}. - * - * @param key Key. - * @return Cached value. - * @throws CacheException If failed. - */ - @Nullable protected Object get(Object key) throws CacheException { - try { - return cache.get(key); - } - catch (IgniteCheckedException e) { - throw new CacheException(e); - } - } - - /** - * Puts in cache value loaded from the database. Used by {@link RegionAccessStrategy#putFromLoad}. - * - * @param key Key. - * @param val Value. - * @param minimalPutOverride MinimalPut flag - * @throws CacheException If failed. - */ - protected void putFromLoad(Object key, Object val, boolean minimalPutOverride) throws CacheException { - putFromLoad(key, val); - } - - /** - * Puts in cache value loaded from the database. Used by {@link RegionAccessStrategy#putFromLoad}. - * - * @param key Key. - * @param val Value. - * @throws CacheException If failed. - */ - protected void putFromLoad(Object key, Object val) throws CacheException { - try { - cache.put(key, val); - } - catch (IgniteCheckedException e) { - throw new CacheException(e); - } - } - - /** - * Called during database transaction execution before Hibernate attempts to update or remove given key. - * Used by {@link RegionAccessStrategy#lockItem}. - * - * @param key Key. - * @return Lock representation or {@code null}. - * @throws CacheException If failed. - */ - @Nullable protected abstract SoftLock lock(Object key) throws CacheException; - - /** - * Called after Hibernate failed to update or successfully removed given key. - * Used by {@link RegionAccessStrategy#unlockItem}. - * - * @param key Key. - * @param lock The lock previously obtained from {@link #lock} - * @throws CacheException If failed. - */ - protected abstract void unlock(Object key, SoftLock lock) throws CacheException; - - /** - * Called after Hibernate updated object in the database but before transaction completed. - * Used by {@link EntityRegionAccessStrategy#update} and {@link NaturalIdRegionAccessStrategy#update}. - * - * @param key Key. - * @param val Value. - * @return {@code True} if operation updated cache. - * @throws CacheException If failed. - */ - protected abstract boolean update(Object key, Object val) throws CacheException; - - /** - * Called after Hibernate updated object in the database and transaction successfully completed. - * Used by {@link EntityRegionAccessStrategy#afterUpdate} and {@link NaturalIdRegionAccessStrategy#afterUpdate}. - * - * @param key Key. - * @param val Value. - * @param lock The lock previously obtained from {@link #lock} - * @return {@code True} if operation updated cache. - * @throws CacheException If failed. - */ - protected abstract boolean afterUpdate(Object key, Object val, SoftLock lock) throws CacheException; - - /** - * Called after Hibernate inserted object in the database but before transaction completed. - * Used by {@link EntityRegionAccessStrategy#insert} and {@link NaturalIdRegionAccessStrategy#insert}. - * - * @param key Key. - * @param val Value. - * @return {@code True} if operation updated cache. - * @throws CacheException If failed. - */ - protected abstract boolean insert(Object key, Object val) throws CacheException; - - /** - * Called after Hibernate inserted object in the database and transaction successfully completed. - * Used by {@link EntityRegionAccessStrategy#afterInsert} and {@link NaturalIdRegionAccessStrategy#afterInsert}. - * - * @param key Key. - * @param val Value. - * @return {@code True} if operation updated cache. - * @throws CacheException If failed. - */ - protected abstract boolean afterInsert(Object key, Object val) throws CacheException; - - /** - * Called after Hibernate removed object from database but before transaction completed. - * Used by {@link RegionAccessStrategy#remove}. - * - * @param key Key, - * @throws CacheException If failed. - */ - protected abstract void remove(Object key) throws CacheException; - - /** - * Called to remove object from cache without regard to transaction. - * Used by {@link RegionAccessStrategy#evict}. - * - * @param key Key. - * @throws CacheException If failed. - */ - protected void evict(Object key) throws CacheException { - evict(ignite, cache, key); - } - - /** - * Called to remove all data from cache without regard to transaction. - * Used by {@link RegionAccessStrategy#evictAll}. - * - * @throws CacheException If failed. - */ - protected void evictAll() throws CacheException { - evictAll(cache); - } - - /** - * Called during database transaction execution before Hibernate executed - * update operation which should invalidate entire cache region. - * Used by {@link RegionAccessStrategy#lockRegion}. - * - * @throws CacheException If failed. - * @return Lock representation or {@code null}. - */ - @Nullable protected SoftLock lockRegion() throws CacheException { - return null; - } - - /** - * Called after transaction clearing entire cache region completed. - * Used by {@link RegionAccessStrategy#unlockRegion}. - * - * @param lock The lock previously obtained from {@link #lockRegion} - * @throws CacheException If failed. - */ - protected void unlockRegion(SoftLock lock) throws CacheException { - // No-op. - } - - /** - * Called during database transaction execution to clear entire cache region after - * Hibernate executed database update, but before transaction completed. - * Used by {@link RegionAccessStrategy#removeAll}. - * - * @throws CacheException If failed. - */ - protected final void removeAll() throws CacheException { - evictAll(); - } - - /** - * Called to remove object from cache without regard to transaction. - * - * @param ignite Grid. - * @param cache Cache. - * @param key Key. - * @throws CacheException If failed. - */ - static void evict(Ignite ignite, HibernateCacheProxy cache, Object key) throws CacheException { - try { - key = cache.keyTransformer().transform(key); - - ignite.compute(ignite.cluster()).call(new ClearKeyCallable(key, cache.name())); - } - catch (IgniteException e) { - throw new CacheException(e); - } - } - - /** - * Called to remove all data from cache without regard to transaction. - * - * @param cache Cache. - * @throws CacheException If failed. - */ - static void evictAll(IgniteInternalCache cache) throws CacheException { - try { - cache.clear(); - } - catch (IgniteCheckedException e) { - throw new CacheException(e); - } - } - - /** - * Callable invalidates given key. - */ - private static class ClearKeyCallable implements IgniteCallable, Externalizable { - /** */ - private static final long serialVersionUID = 0L; - - /** */ - @IgniteInstanceResource - private Ignite ignite; - - /** */ - private Object key; - - /** */ - private String cacheName; - - /** - * Empty constructor required by {@link Externalizable}. - */ - public ClearKeyCallable() { - // No-op. - } - - /** - * @param key Key to clear. - * @param cacheName Cache name. - */ - private ClearKeyCallable(Object key, String cacheName) { - this.key = key; - this.cacheName = cacheName; - } - - /** {@inheritDoc} */ - @Override public Void call() throws IgniteCheckedException { - IgniteInternalCache cache = ((IgniteKernal)ignite).getCache(cacheName); - - assert cache != null; - - cache.clearLocally(key); - - return null; - } - - /** {@inheritDoc} */ - @Override public void writeExternal(ObjectOutput out) throws IOException { - out.writeObject(key); - - U.writeString(out, cacheName); - } - - /** {@inheritDoc} */ - @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { - key = in.readObject(); - - cacheName = U.readString(in); - } - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ignite/blob/ee1b19d3/modules/hibernate5/src/main/java/org/apache/ignite/cache/hibernate/HibernateCacheProxy.java ---------------------------------------------------------------------- diff --git a/modules/hibernate5/src/main/java/org/apache/ignite/cache/hibernate/HibernateCacheProxy.java b/modules/hibernate5/src/main/java/org/apache/ignite/cache/hibernate/HibernateCacheProxy.java deleted file mode 100644 index 7204083..0000000 --- a/modules/hibernate5/src/main/java/org/apache/ignite/cache/hibernate/HibernateCacheProxy.java +++ /dev/null @@ -1,801 +0,0 @@ -/* - * 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.hibernate; - -import java.util.Collection; -import java.util.HashMap; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.Map; -import java.util.Set; -import java.util.UUID; -import javax.cache.Cache; -import javax.cache.expiry.ExpiryPolicy; -import javax.cache.processor.EntryProcessor; -import javax.cache.processor.EntryProcessorResult; -import org.apache.ignite.IgniteCheckedException; -import org.apache.ignite.cache.CacheEntry; -import org.apache.ignite.cache.CacheMetrics; -import org.apache.ignite.cache.CachePeekMode; -import org.apache.ignite.cache.affinity.Affinity; -import org.apache.ignite.cluster.ClusterGroup; -import org.apache.ignite.configuration.CacheConfiguration; -import org.apache.ignite.internal.IgniteInternalFuture; -import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion; -import org.apache.ignite.internal.processors.cache.CacheEntryPredicate; -import org.apache.ignite.internal.processors.cache.GridCacheContext; -import org.apache.ignite.internal.processors.cache.IgniteCacheExpiryPolicy; -import org.apache.ignite.internal.processors.cache.IgniteInternalCache; -import org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal; -import org.apache.ignite.lang.IgniteBiPredicate; -import org.apache.ignite.mxbean.CacheMetricsMXBean; -import org.apache.ignite.transactions.Transaction; -import org.apache.ignite.transactions.TransactionConcurrency; -import org.apache.ignite.transactions.TransactionIsolation; -import org.jetbrains.annotations.Nullable; - -/** - * Hibernate cache proxy used to substitute hibernate keys with ignite keys. - */ -public class HibernateCacheProxy implements IgniteInternalCache { - /** Delegate. */ - private final IgniteInternalCache delegate; - - /** Transformer. */ - private final HibernateKeyTransformer keyTransformer; - - /** - * @param delegate Delegate. - * @param keyTransformer Key keyTransformer. - */ - HibernateCacheProxy( - IgniteInternalCache delegate, - HibernateKeyTransformer keyTransformer - ) { - assert delegate != null; - assert keyTransformer != null; - - this.delegate = delegate; - this.keyTransformer = keyTransformer; - } - - /** - * @return HibernateKeyTransformer - */ - HibernateKeyTransformer keyTransformer(){ - return keyTransformer; - } - - /** {@inheritDoc} */ - @Override public String name() { - return delegate.name(); - } - - /** {@inheritDoc} */ - @Override public boolean skipStore() { - return delegate.skipStore(); - } - - /** {@inheritDoc} */ - @Override public IgniteInternalCache setSkipStore(boolean skipStore) { - return delegate.setSkipStore(skipStore); - } - - /** {@inheritDoc} */ - @Override public boolean isEmpty() { - return delegate.isEmpty(); - } - - /** {@inheritDoc} */ - @Override public boolean containsKey(Object key) { - return delegate.containsKey(keyTransformer.transform(key)); - } - - /** {@inheritDoc} */ - @Override public IgniteInternalFuture containsKeyAsync(Object key) { - return delegate.containsKeyAsync(keyTransformer.transform(key)); - } - - /** {@inheritDoc} */ - @Override public boolean containsKeys(Collection keys) { - return delegate.containsKey(transform(keys)); - } - - /** {@inheritDoc} */ - @Override public IgniteInternalFuture containsKeysAsync(Collection keys) { - return delegate.containsKeysAsync(transform(keys)); - } - - /** {@inheritDoc} */ - @Nullable @Override public Object localPeek( - Object key, - CachePeekMode[] peekModes, - @Nullable IgniteCacheExpiryPolicy plc - ) throws IgniteCheckedException { - return delegate.localPeek(keyTransformer.transform(key), peekModes, plc); - } - - /** {@inheritDoc} */ - @Override public Iterable> localEntries( - CachePeekMode[] peekModes - ) throws IgniteCheckedException { - return delegate.localEntries(peekModes); - } - - /** {@inheritDoc} */ - @Nullable @Override public Object get(Object key) throws IgniteCheckedException { - return delegate.get(keyTransformer.transform(key)); - } - - /** {@inheritDoc} */ - @Nullable @Override public CacheEntry getEntry(Object key) throws IgniteCheckedException { - return delegate.getEntry(keyTransformer.transform(key)); - } - - /** {@inheritDoc} */ - @Override public IgniteInternalFuture getAsync(Object key) { - return delegate.getAsync(keyTransformer.transform(key)); - } - - /** {@inheritDoc} */ - @Override public IgniteInternalFuture> getEntryAsync(Object key) { - return delegate.getEntryAsync(keyTransformer.transform(key)); - } - - /** {@inheritDoc} */ - @Override public Map getAll(@Nullable Collection keys) throws IgniteCheckedException { - return delegate.getAll(transform(keys)); - } - - /** {@inheritDoc} */ - @Override public Collection> getEntries( - @Nullable Collection keys) throws IgniteCheckedException { - return delegate.getEntries(transform(keys)); - } - - /** {@inheritDoc} */ - @Override public IgniteInternalFuture> getAllAsync(@Nullable Collection keys) { - return delegate.getAllAsync(transform(keys)); - } - - /** {@inheritDoc} */ - @Override public IgniteInternalFuture>> getEntriesAsync( - @Nullable Collection keys - ) { - return delegate.getEntriesAsync(transform(keys)); - } - - /** {@inheritDoc} */ - @Nullable @Override public Object getAndPut(Object key, Object val) throws IgniteCheckedException { - return delegate.getAndPut(keyTransformer.transform(key), val); - } - - /** {@inheritDoc} */ - @Override public IgniteInternalFuture getAndPutAsync(Object key, Object val) { - return delegate.getAndPutAsync(keyTransformer.transform(key), val); - } - - /** {@inheritDoc} */ - @Override public boolean put(Object key, Object val) throws IgniteCheckedException { - return delegate.put(keyTransformer.transform(key), val); - } - - /** {@inheritDoc} */ - @Override public IgniteInternalFuture putAsync(Object key, Object val) { - return delegate.putAsync(keyTransformer.transform(key), val); - } - - /** {@inheritDoc} */ - @Nullable @Override public Object getAndPutIfAbsent(Object key, Object val) throws IgniteCheckedException { - return delegate.getAndPutIfAbsent(keyTransformer.transform(key), val); - } - - /** {@inheritDoc} */ - @Override public IgniteInternalFuture getAndPutIfAbsentAsync(Object key, Object val) { - return delegate.getAndPutIfAbsentAsync(keyTransformer.transform(key), val); - } - - /** {@inheritDoc} */ - @Override public boolean putIfAbsent(Object key, Object val) throws IgniteCheckedException { - return delegate.putIfAbsent(keyTransformer.transform(key), val); - } - - /** {@inheritDoc} */ - @Override public IgniteInternalFuture putIfAbsentAsync(Object key, Object val) { - return delegate.putIfAbsentAsync(keyTransformer.transform(key), val); - } - - /** {@inheritDoc} */ - @Nullable @Override public Object getAndReplace(Object key, Object val) throws IgniteCheckedException { - return delegate.getAndReplace(keyTransformer.transform(key), val); - } - - /** {@inheritDoc} */ - @Override public IgniteInternalFuture getAndReplaceAsync(Object key, Object val) { - return delegate.getAndReplaceAsync(keyTransformer.transform(key), val); - } - - /** {@inheritDoc} */ - @Override public boolean replace(Object key, Object val) throws IgniteCheckedException { - return delegate.replace(keyTransformer.transform(key), val); - } - - /** {@inheritDoc} */ - @Override public IgniteInternalFuture replaceAsync(Object key, Object val) { - return delegate.replaceAsync(keyTransformer.transform(key), val); - } - - /** {@inheritDoc} */ - @Override public boolean replace(Object key, Object oldVal, Object newVal) throws IgniteCheckedException { - return delegate.replace(keyTransformer.transform(key), oldVal, newVal); - } - - /** {@inheritDoc} */ - @Override public IgniteInternalFuture replaceAsync(Object key, Object oldVal, Object newVal) { - return delegate.replaceAsync(keyTransformer.transform(key), oldVal, newVal); - } - - /** {@inheritDoc} */ - @Override public void putAll(@Nullable Map m) throws IgniteCheckedException { - delegate.putAll(transform(m)); - } - - /** {@inheritDoc} */ - @Override public IgniteInternalFuture putAllAsync(@Nullable Map m) { - return delegate.putAllAsync(transform(m)); - } - - /** {@inheritDoc} */ - @Override public Set keySet() { - return delegate.keySet(); - } - - /** {@inheritDoc} */ - @Override public Set keySetx() { - return delegate.keySetx(); - } - - /** {@inheritDoc} */ - @Override public Set primaryKeySet() { - return delegate.primaryKeySet(); - } - - /** {@inheritDoc} */ - @Override public Iterable values() { - return delegate.values(); - } - - /** {@inheritDoc} */ - @Override public Set> entrySet() { - return delegate.entrySet(); - } - - /** {@inheritDoc} */ - @Nullable @Override public Set> entrySet(int part) { - return delegate.entrySet(part); - } - - /** {@inheritDoc} */ - @Override public Set> entrySetx(CacheEntryPredicate... filter) { - return delegate.entrySetx(filter); - } - - /** {@inheritDoc} */ - @Override public Transaction txStart( - TransactionConcurrency concurrency, - TransactionIsolation isolation - ) { - return delegate.txStart(concurrency, isolation); - } - - /** {@inheritDoc} */ - @Override public GridNearTxLocal txStartEx( - TransactionConcurrency concurrency, - TransactionIsolation isolation - ) { - return delegate.txStartEx(concurrency, isolation); - } - - /** {@inheritDoc} */ - @Override public Transaction txStart( - TransactionConcurrency concurrency, - TransactionIsolation isolation, - long timeout, - int txSize - ) { - return delegate.txStart(concurrency, isolation, timeout, txSize); - } - - /** {@inheritDoc} */ - @Nullable @Override public GridNearTxLocal tx() { - return delegate.tx(); - } - - /** {@inheritDoc} */ - @Override public boolean evict(Object key) { - return delegate.evict(keyTransformer.transform(key)); - } - - /** {@inheritDoc} */ - @Override public void evictAll(@Nullable Collection keys) { - delegate.evictAll(transform(keys)); - } - - /** {@inheritDoc} */ - @Override public void clearLocally(boolean srv, boolean near, boolean readers) { - delegate.clearLocally(srv, near, readers); - } - - /** {@inheritDoc} */ - @Override public boolean clearLocally(Object key) { - return delegate.clearLocally(keyTransformer.transform(key)); - } - - /** {@inheritDoc} */ - @Override public void clearLocallyAll(Set keys, boolean srv, boolean near, boolean readers) { - delegate.clearLocallyAll((Set)transform(keys), srv, near, readers); - } - - /** {@inheritDoc} */ - @Override public void clear(Object key) throws IgniteCheckedException { - delegate.clear(keyTransformer.transform(key)); - } - - /** {@inheritDoc} */ - @Override public void clearAll(Set keys) throws IgniteCheckedException { - delegate.clearAll((Set)transform(keys)); - } - - /** {@inheritDoc} */ - @Override public void clear() throws IgniteCheckedException { - delegate.clear(); - } - - /** {@inheritDoc} */ - @Override public IgniteInternalFuture clearAsync() { - return delegate.clearAsync(); - } - - /** {@inheritDoc} */ - @Override public IgniteInternalFuture clearAsync(Object key) { - return delegate.clearAsync(keyTransformer.transform(key)); - } - - /** {@inheritDoc} */ - @Override public IgniteInternalFuture clearAllAsync(Set keys) { - return delegate.clearAllAsync((Set)transform(keys)); - } - - /** {@inheritDoc} */ - @Nullable @Override public Object getAndRemove(Object key) throws IgniteCheckedException { - return delegate.getAndRemove(keyTransformer.transform(key)); - } - - /** {@inheritDoc} */ - @Override public IgniteInternalFuture getAndRemoveAsync(Object key) { - return delegate.getAndRemoveAsync(keyTransformer.transform(key)); - } - - /** {@inheritDoc} */ - @Override public boolean remove(Object key) throws IgniteCheckedException { - return delegate.remove(keyTransformer.transform(key)); - } - - /** {@inheritDoc} */ - @Override public IgniteInternalFuture removeAsync(Object key) { - return delegate.removeAsync(keyTransformer.transform(key)); - } - - /** {@inheritDoc} */ - @Override public boolean remove(Object key, Object val) throws IgniteCheckedException { - return delegate.remove(keyTransformer.transform(key), val); - } - - /** {@inheritDoc} */ - @Override public IgniteInternalFuture removeAsync(Object key, Object val) { - return delegate.removeAsync(keyTransformer.transform(key), val); - } - - /** {@inheritDoc} */ - @Override public void removeAll(@Nullable Collection keys) throws IgniteCheckedException { - delegate.removeAll(transform(keys)); - } - - /** {@inheritDoc} */ - @Override public IgniteInternalFuture removeAllAsync(@Nullable Collection keys) { - return delegate.removeAllAsync(transform(keys)); - } - - /** {@inheritDoc} */ - @Override public void removeAll() throws IgniteCheckedException { - delegate.removeAll(); - } - - /** {@inheritDoc} */ - @Override public IgniteInternalFuture removeAllAsync() { - return delegate.removeAllAsync(); - } - - /** {@inheritDoc} */ - @Override public boolean lock(Object key, long timeout) throws IgniteCheckedException { - return delegate.lock(keyTransformer.transform(key), timeout); - } - - /** {@inheritDoc} */ - @Override public IgniteInternalFuture lockAsync(Object key, long timeout) { - return delegate.lockAsync(keyTransformer.transform(key), timeout); - } - - /** {@inheritDoc} */ - @Override public boolean lockAll(@Nullable Collection keys, long timeout) throws IgniteCheckedException { - return delegate.lockAll(transform(keys), timeout); - } - - /** {@inheritDoc} */ - @Override public IgniteInternalFuture lockAllAsync(@Nullable Collection keys, long timeout) { - return delegate.lockAllAsync(transform(keys), timeout); - } - - /** {@inheritDoc} */ - @Override public void unlock(Object key) throws IgniteCheckedException { - delegate.unlock(keyTransformer.transform(key)); - } - - /** {@inheritDoc} */ - @Override public void unlockAll(@Nullable Collection keys) throws IgniteCheckedException { - delegate.unlockAll(transform(keys)); - } - - /** {@inheritDoc} */ - @Override public boolean isLocked(Object key) { - return delegate.isLocked(keyTransformer.transform(key)); - } - - /** {@inheritDoc} */ - @Override public boolean isLockedByThread(Object key) { - return delegate.isLockedByThread(keyTransformer.transform(key)); - } - - /** {@inheritDoc} */ - @Override public int size() { - return delegate.size(); - } - - /** {@inheritDoc} */ - @Override public long sizeLong() { - return delegate.sizeLong(); - } - - /** {@inheritDoc} */ - @Override public int localSize(CachePeekMode[] peekModes) throws IgniteCheckedException { - return delegate.localSize(peekModes); - } - - /** {@inheritDoc} */ - @Override public long localSizeLong(CachePeekMode[] peekModes) throws IgniteCheckedException { - return delegate.localSizeLong(peekModes); - } - - /** {@inheritDoc} */ - @Override public long localSizeLong(int partition, CachePeekMode[] peekModes) throws IgniteCheckedException { - return delegate.localSizeLong(partition, peekModes); - } - - /** {@inheritDoc} */ - @Override public int size(CachePeekMode[] peekModes) throws IgniteCheckedException { - return delegate.size(peekModes); - } - - /** {@inheritDoc} */ - @Override public long sizeLong(CachePeekMode[] peekModes) throws IgniteCheckedException { - return delegate.sizeLong(peekModes); - } - - /** {@inheritDoc} */ - @Override public long sizeLong(int partition, CachePeekMode[] peekModes) throws IgniteCheckedException { - return delegate.sizeLong(partition, peekModes); - } - - /** {@inheritDoc} */ - @Override public IgniteInternalFuture sizeAsync(CachePeekMode[] peekModes) { - return delegate.sizeAsync(peekModes); - } - - /** {@inheritDoc} */ - @Override public IgniteInternalFuture sizeLongAsync(CachePeekMode[] peekModes) { - return delegate.sizeLongAsync(peekModes); - } - - /** {@inheritDoc} */ - @Override public IgniteInternalFuture sizeLongAsync(int partition, CachePeekMode[] peekModes) { - return delegate.sizeLongAsync(partition, peekModes); - } - - /** {@inheritDoc} */ - @Override public int nearSize() { - return delegate.nearSize(); - } - - /** {@inheritDoc} */ - @Override public int primarySize() { - return delegate.primarySize(); - } - - /** {@inheritDoc} */ - @Override public long primarySizeLong() { - return delegate.primarySizeLong(); - } - - /** {@inheritDoc} */ - @Override public CacheConfiguration configuration() { - return delegate.configuration(); - } - - /** {@inheritDoc} */ - @Override public Affinity affinity() { - return delegate.affinity(); - } - - /** {@inheritDoc} */ - @Override public CacheMetrics clusterMetrics() { - return delegate.clusterMetrics(); - } - - /** {@inheritDoc} */ - @Override public CacheMetrics clusterMetrics(ClusterGroup grp) { - return delegate.clusterMetrics(grp); - } - - /** {@inheritDoc} */ - @Override public CacheMetrics localMetrics() { - return delegate.localMetrics(); - } - - /** {@inheritDoc} */ - @Override public CacheMetricsMXBean clusterMxBean() { - return delegate.clusterMxBean(); - } - - /** {@inheritDoc} */ - @Override public CacheMetricsMXBean localMxBean() { - return delegate.localMxBean(); - } - - /** {@inheritDoc} */ - @Override public long offHeapEntriesCount() { - return delegate.offHeapEntriesCount(); - } - - /** {@inheritDoc} */ - @Override public long offHeapAllocatedSize() { - return delegate.offHeapAllocatedSize(); - } - - /** {@inheritDoc} */ - @Override public IgniteInternalFuture rebalance() { - return delegate.rebalance(); - } - - /** {@inheritDoc} */ - @Override public IgniteInternalCache forSubjectId(UUID subjId) { - return delegate.forSubjectId(subjId); - } - - /** {@inheritDoc} */ - @Nullable @Override public Object getForcePrimary(Object key) throws IgniteCheckedException { - return delegate.getForcePrimary(keyTransformer.transform(key)); - } - - /** {@inheritDoc} */ - @Override public IgniteInternalFuture getForcePrimaryAsync(Object key) { - return delegate.getForcePrimaryAsync(keyTransformer.transform(key)); - } - - /** {@inheritDoc} */ - @Override public Map getAllOutTx(Set keys) throws IgniteCheckedException { - return delegate.getAllOutTx((Set)transform(keys)); - } - - /** {@inheritDoc} */ - @Override public IgniteInternalFuture> getAllOutTxAsync(Set keys) { - return delegate.getAllOutTxAsync((Set)transform(keys)); - } - - /** {@inheritDoc} */ - @Override public boolean isIgfsDataCache() { - return delegate.isIgfsDataCache(); - } - - /** {@inheritDoc} */ - @Override public long igfsDataSpaceUsed() { - return delegate.igfsDataSpaceUsed(); - } - - /** {@inheritDoc} */ - @Override public boolean isMongoDataCache() { - return delegate.isMongoDataCache(); - } - - /** {@inheritDoc} */ - @Override public boolean isMongoMetaCache() { - return delegate.isMongoMetaCache(); - } - - /** {@inheritDoc} */ - @Nullable @Override public ExpiryPolicy expiry() { - return delegate.expiry(); - } - - /** {@inheritDoc} */ - @Override public IgniteInternalCache withExpiryPolicy(ExpiryPolicy plc) { - return delegate.withExpiryPolicy(plc); - } - - /** {@inheritDoc} */ - @Override public IgniteInternalCache withNoRetries() { - return delegate.withNoRetries(); - } - - /** {@inheritDoc} */ - @Override public GridCacheContext context() { - return delegate.context(); - } - - /** {@inheritDoc} */ - @Override public void localLoadCache( - @Nullable IgniteBiPredicate p, - @Nullable Object... args - ) throws IgniteCheckedException { - delegate.localLoadCache(p, args); - } - - /** {@inheritDoc} */ - @Override public IgniteInternalFuture localLoadCacheAsync( - @Nullable IgniteBiPredicate p, - @Nullable Object... args - ) { - return delegate.localLoadCacheAsync(p, args); - } - - /** {@inheritDoc} */ - @Override public Object getTopologySafe(Object key) throws IgniteCheckedException { - return delegate.getTopologySafe(keyTransformer.transform(key)); - } - - /** {@inheritDoc} */ - @Override public Collection lostPartitions() { - return delegate.lostPartitions(); - } - - /** {@inheritDoc} */ - @Nullable @Override public EntryProcessorResult invoke( - @Nullable AffinityTopologyVersion topVer, - Object key, - EntryProcessor entryProcessor, - Object... args - ) throws IgniteCheckedException { - return delegate.invoke(topVer, key, entryProcessor, args); - } - - /** {@inheritDoc} */ - @Override public IgniteInternalFuture invokeAllAsync(Map map, Object... args) { - return delegate.invokeAllAsync(map, args); - } - - /** {@inheritDoc} */ - @Override public Map invokeAll(Map map, Object... args) throws IgniteCheckedException { - return delegate.invokeAll(map, args); - } - - /** {@inheritDoc} */ - @Override public IgniteInternalFuture invokeAllAsync(Set keys, EntryProcessor entryProcessor, Object... args) { - return delegate.invokeAllAsync((Set)transform(keys), entryProcessor, args); - } - - /** {@inheritDoc} */ - @Override public Map invokeAll(Set keys, EntryProcessor entryProcessor, Object... args) throws IgniteCheckedException { - return delegate.invokeAll((Set)transform(keys), entryProcessor, args); - } - - /** {@inheritDoc} */ - @Override public IgniteInternalFuture invokeAsync( - Object key, - EntryProcessor entryProcessor, - Object... args - ) { - return delegate.invokeAsync(keyTransformer.transform(key), entryProcessor, args); - } - - /** {@inheritDoc} */ - @Nullable @Override public EntryProcessorResult invoke( - Object key, - EntryProcessor entryProcessor, - Object... args - ) throws IgniteCheckedException { - return delegate.invoke(keyTransformer.transform(key), entryProcessor, args); - } - - /** {@inheritDoc} */ - @Override public Iterator> scanIterator( - boolean keepBinary, - @Nullable IgniteBiPredicate p - ) throws IgniteCheckedException { - return delegate.scanIterator(keepBinary, p); - } - - /** {@inheritDoc} */ - @Override public IgniteInternalFuture removeAllConflictAsync(Map drMap) throws IgniteCheckedException { - return delegate.removeAllConflictAsync(drMap); - } - - /** {@inheritDoc} */ - @Override public void removeAllConflict(Map drMap) throws IgniteCheckedException { - delegate.removeAllConflictAsync(drMap); - } - - /** {@inheritDoc} */ - @Override public IgniteInternalFuture putAllConflictAsync(Map drMap) throws IgniteCheckedException { - return delegate.putAllConflictAsync(drMap); - } - - /** {@inheritDoc} */ - @Override public void putAllConflict(Map drMap) throws IgniteCheckedException { - delegate.putAllConflict(drMap); - } - - /** {@inheritDoc} */ - @Override public IgniteInternalCache keepBinary() { - return delegate.keepBinary(); - } - - /** {@inheritDoc} */ - @Override public IgniteInternalCache cache() { - return delegate.cache(); - } - - /** {@inheritDoc} */ - @Override public Iterator iterator() { - return delegate.iterator(); - } - - /** - * @param keys Keys. - */ - private Collection transform(Collection keys) { - Collection res = new LinkedList<>(); - - for (Object o : keys) - res.add(keyTransformer.transform(o)); - - return res; - } - - /** - * @param map Map. - */ - private Map transform(Map map) { - Map res = new HashMap<>(); - - Set> ents = map.entrySet(); - - for (Map.Entry e : ents) - res.put(keyTransformer.transform(e.getKey()), e.getValue()); - - return res; - } -} http://git-wip-us.apache.org/repos/asf/ignite/blob/ee1b19d3/modules/hibernate5/src/main/java/org/apache/ignite/cache/hibernate/HibernateCollectionRegion.java ---------------------------------------------------------------------- diff --git a/modules/hibernate5/src/main/java/org/apache/ignite/cache/hibernate/HibernateCollectionRegion.java b/modules/hibernate5/src/main/java/org/apache/ignite/cache/hibernate/HibernateCollectionRegion.java deleted file mode 100644 index be99e98..0000000 --- a/modules/hibernate5/src/main/java/org/apache/ignite/cache/hibernate/HibernateCollectionRegion.java +++ /dev/null @@ -1,114 +0,0 @@ -/* - * 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.hibernate; - -import org.apache.ignite.Ignite; -import org.hibernate.cache.CacheException; -import org.hibernate.cache.spi.CacheDataDescription; -import org.hibernate.cache.spi.CollectionRegion; -import org.hibernate.cache.spi.access.AccessType; -import org.hibernate.cache.spi.access.CollectionRegionAccessStrategy; -import org.hibernate.engine.spi.SessionFactoryImplementor; -import org.hibernate.persister.collection.CollectionPersister; - -/** - * Implementation of {@link CollectionRegion}. This region is used to store collection data. - *

- * L2 cache for collection can be enabled in the Hibernate configuration file: - *

- * <hibernate-configuration>
- *     <!-- Enable L2 cache. -->
- *     <property name="cache.use_second_level_cache">true</property>
- *
- *     <!-- Use Ignite as L2 cache provider. -->
- *     <property name="cache.region.factory_class">org.apache.ignite.cache.hibernate.HibernateRegionFactory</property>
- *
- *     <!-- Specify entities. -->
- *     <mapping class="com.example.Entity"/>
- *     <mapping class="com.example.ChildEntity"/>
- *
- *     <!-- Enable L2 cache with nonstrict-read-write access strategy for entities and collection. -->
- *     <collection-cache collection="com.example.Entity" usage="nonstrict-read-write"/>
- *     <collection-cache collection="com.example.ChildEntity" usage="nonstrict-read-write"/>
- *     <collection-cache collection="com.example.Entity.children" usage="nonstrict-read-write"/>
- * </hibernate-configuration>
- * 
- * Also cache for collection can be enabled using annotations: - *
- * @javax.persistence.Entity
- * public class Entity {
- *    ...
- *
- *    @javax.persistence.OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER)
- *    @javax.persistence.JoinColumn(name="PARENT_ID")
- *    @org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
- *    public List<ChildEntity> getChildren() {...}
- * }
- * 
- * Note: the collection cache does not cache the state of the actual entities in the cache, it caches only identifier - * values. For this reason, the collection cache should always be used in conjunction with - * the second-level cache for those entities expected to be cached as part of a collection cache. - */ -public class HibernateCollectionRegion extends HibernateTransactionalDataRegion implements CollectionRegion { - /** - * @param factory Region factory. - * @param name Region name. - * @param ignite Grid. - * @param cache Region cache. - * @param dataDesc Region data description. - */ - public HibernateCollectionRegion(HibernateRegionFactory factory, String name, - Ignite ignite, HibernateCacheProxy cache, CacheDataDescription dataDesc) { - super(factory, name, ignite, cache, dataDesc); - } - - /** {@inheritDoc} */ - @Override public CollectionRegionAccessStrategy buildAccessStrategy(AccessType accessType) throws CacheException { - return new AccessStrategy(createAccessStrategy(accessType)); - } - - /** - * Collection region access strategy. - */ - private class AccessStrategy extends HibernateAbstractRegionAccessStrategy - implements CollectionRegionAccessStrategy { - /** - * @param stgy Access strategy implementation. - */ - private AccessStrategy(HibernateAccessStrategyAdapter stgy) { - super(stgy); - } - - /** {@inheritDoc} */ - @Override public Object generateCacheKey(Object id, - CollectionPersister persister, - SessionFactoryImplementor factory, String tenantIdentifier) { - return HibernateKeyWrapper.staticCreateCollectionKey(id, persister, tenantIdentifier); - } - - /** {@inheritDoc} */ - @Override public Object getCacheKeyId(Object cacheKey) { - return ((HibernateKeyWrapper)cacheKey).id(); - } - - /** {@inheritDoc} */ - @Override public CollectionRegion getRegion() { - return HibernateCollectionRegion.this; - } - } -} \ No newline at end of file