From 28350fe67248d4409db9259de045b6489a856e4d Mon Sep 17 00:00:00 2001 From: Enes Ozcan Date: Fri, 8 Nov 2019 16:15:56 +0300 Subject: [PATCH] Reformat code & readme --- README.md | 4 +- pom.xml | 43 +++++----- src/main/java/jcache/L2C/CollectionCache.java | 79 ++++++++----------- src/main/java/jcache/L2C/EntityCache.java | 41 +++++----- src/main/java/jcache/L2C/QueryCache.java | 39 ++++----- .../java/jcache/L2C/entity/Department.java | 58 -------------- src/main/java/jcache/L2C/entity/Employee.java | 62 --------------- src/main/java/jcache/L2C/entity/Item.java | 56 +++++++------ src/main/java/jcache/L2C/entity/SubItem.java | 67 ++++++++++++++++ .../java/jcache/L2C/util/HibernateUtil.java | 24 ++++++ src/main/resources/Item.hbm.xml | 25 ------ src/main/resources/hibernate.cfg.xml | 15 ++-- .../jcache/L2C/test/DatabaseEntitiesTest.java | 6 +- .../test/base/CollectionCacheTestBase.java | 9 +-- .../L2C/test/base/EntityCacheTestBase.java | 13 ++- .../L2C/test/base/HibernateTestBase.java | 6 +- .../L2C/test/base/QueryCacheTestBase.java | 12 +-- .../L2C/test/util/SessionFactoryUtil.java | 39 +-------- .../resources/jcache-client-hibernate.cfg.xml | 4 +- .../resources/jcache-server-hibernate.cfg.xml | 4 +- .../resources/plugin-client-hibernate.cfg.xml | 4 +- .../resources/plugin-server-hibernate.cfg.xml | 4 +- 22 files changed, 255 insertions(+), 359 deletions(-) delete mode 100644 src/main/java/jcache/L2C/entity/Department.java delete mode 100644 src/main/java/jcache/L2C/entity/Employee.java create mode 100644 src/main/java/jcache/L2C/entity/SubItem.java delete mode 100644 src/main/resources/Item.hbm.xml diff --git a/README.md b/README.md index 1bdc731..375226d 100644 --- a/README.md +++ b/README.md @@ -13,8 +13,8 @@ L2C can be used for SessionFactory objects in Hibernate. ## Dependencies -- Include `hibernate-jcache` dependency in your program. The version must be the same as -the `hibernate-core` version. +- Include `hibernate-jcache` dependency in your program. The version must be the same as +`hibernate-core` version. In `pom.xml`: ```xml diff --git a/pom.xml b/pom.xml index fc3d068..a1d1746 100644 --- a/pom.xml +++ b/pom.xml @@ -14,17 +14,21 @@ - - - org.apache.maven.plugins - maven-surefire-plugin - - none - true - false - - - + + + + org.apache.maven.plugins + maven-surefire-plugin + 2.22.1 + + none + true + false + 1 + + + + @@ -44,25 +48,16 @@ hibernate-jcache ${hibernate.version} - - mysql - mysql-connector-java - 8.0.13 - com.hazelcast hazelcast ${hazelcast.version} - com.hazelcast hazelcast-hibernate53 1.3.2 - - - junit junit @@ -70,13 +65,17 @@ test true - com.h2database h2 1.4.194 - + + org.apache.maven.plugins + maven-failsafe-plugin + 2.19.1 + test + diff --git a/src/main/java/jcache/L2C/CollectionCache.java b/src/main/java/jcache/L2C/CollectionCache.java index 1f78309..ec0ae4f 100644 --- a/src/main/java/jcache/L2C/CollectionCache.java +++ b/src/main/java/jcache/L2C/CollectionCache.java @@ -1,15 +1,12 @@ package jcache.L2C; import com.hazelcast.core.Hazelcast; +import jcache.L2C.entity.Item; +import jcache.L2C.entity.SubItem; import jcache.L2C.util.HibernateUtil; -import jcache.L2C.entity.Department; -import jcache.L2C.entity.Employee; import org.hibernate.Session; import org.hibernate.Transaction; -import java.util.ArrayList; -import java.util.List; - public class CollectionCache { public static void main(String[] args){ @@ -17,37 +14,34 @@ public static void main(String[] args){ initializeDatabase(); Session session1, session2; - Transaction tx1, tx2; + Item item; + - // Get Department from DB. - // This call will not get employees list. - // It has to be called explicitly. + // Get Item from DB. + // Collection cache miss & put are expected session1 = HibernateUtil.getSession(); - tx1 = session1.getTransaction(); - tx1.begin(); - Department department = session1.get(Department.class, 1); - System.out.println("Department :" + department.getName()); - // Call collection for cached department. Cache miss is expected. - List employees=department.getEmployees(); - for (Employee employee : employees) { - System.out.println("\tEmployee Name : " + employee.getName()); - } + session1.beginTransaction(); + item = session1.get(Item.class, 1); + + // Since fetch type for the collection is Lazy, force it to be fetched. + for(SubItem i : item.getSubItems()){ + System.out.println(i); + }; session1.close(); + HibernateUtil.printCollectionCacheStats(); - //Get Department again. Cache hit is expected. + //Get Department again. Collection cache hit is expected. session2 = HibernateUtil.getSession(); - tx2 = session2.getTransaction(); - tx2.begin(); - department = session2.get(Department.class, 1); - System.out.println("Department :" + department.getName()); - // Call collection for cached department. Cache hit is expected since - // it has already cached in session1. - // No SQL queries must be shown on the log. - employees = department.getEmployees(); - for (Employee employee : employees) { - System.out.println("\tEmployee Name : " + employee.getName()); - } + session2.beginTransaction(); + item = session2.get(Item.class, 1); + + // Since fetch type for the collection is Lazy, force it to be fetched. + for(SubItem i : item.getSubItems()){ + System.out.println(i); + }; session2.close(); + HibernateUtil.printCollectionCacheStats(); + HibernateUtil.closeFactory(); Hazelcast.shutdownAll(); @@ -55,24 +49,21 @@ public static void main(String[] args){ private static void initializeDatabase(){ - Session session; - Transaction transaction; + Session session = HibernateUtil.getSession(); + + Item item1 = new Item("item-1",1); + + + SubItem subItem1 = new SubItem(1,"subitem-1",item1); + SubItem subItem2 = new SubItem(2,"subitem-2",item1); - Department dpt = new Department("Department 1", null); + item1.addSubItem(subItem1).addSubItem(subItem2); - Employee employee1 = new Employee("Employee 1", dpt); - Employee employee2 = new Employee("Employee 2", dpt); + Transaction tx = session.beginTransaction(); - List employeeList = new ArrayList(); - employeeList.add(employee1); - employeeList.add(employee2); - dpt.setEmployees(employeeList); + session.save(item1); - session = HibernateUtil.getSession(); - transaction = session.getTransaction(); - transaction.begin(); - session.save(dpt); - transaction.commit(); + tx.commit(); session.close(); HibernateUtil.evictAllRegions(); } diff --git a/src/main/java/jcache/L2C/EntityCache.java b/src/main/java/jcache/L2C/EntityCache.java index 62ef41e..4ef8b89 100644 --- a/src/main/java/jcache/L2C/EntityCache.java +++ b/src/main/java/jcache/L2C/EntityCache.java @@ -11,53 +11,48 @@ public class EntityCache { public static void main(String[] args){ Session session1, session2, session3, session4; - Transaction tx1, tx2, tx3, tx4; - Item item; + Transaction tx1; - - // Store an hazelcast.hibernate.jcache.Entity.Item with id = 1 + // Store an hazelcast.hibernate.jcache.L2C.Entity.Item with id = 1 // L2C put is expected session1 = HibernateUtil.getSession(); tx1 = session1.getTransaction(); tx1.begin(); - session1.save(new Item(1,"New Hazelcast Item",12345L)); + session1.save(new Item("item-1",1)); tx1.commit(); session1.close(); + + // Evict cache and clear statistics HibernateUtil.evictAllRegions(); - // Get recently stored value - // Data is expected to be fetched from L2 Cache, not from database. - // L2C hit is expected + // Get recently stored value. Since the cache is evicted, + // data is expected to be fetched from DB, not from the cache. + // L2C miss & put are expected session2 = HibernateUtil.getSession(); - tx2 = session2.getTransaction(); - tx2.begin(); - item = session2.get(Item.class,1); + session2.beginTransaction(); + session2.get(Item.class,1); session2.close(); - System.out.println("Item fetched: "+ item); + HibernateUtil.printStats(); // Get last accessed data from another session. // Data is expected to be fetched from L2 Cache, not from database. // L2C hit is expected session3 = HibernateUtil.getSession(); - tx3 = session3.getTransaction(); - tx3.begin(); - item = session3.get(Item.class,1); - System.out.println("Item fetched: "+ item); - tx3.commit(); + session3.beginTransaction(); + session3.get(Item.class,1); session3.close(); + HibernateUtil.printStats(); - // Evict the cache + // Evict the cache and clear statistics HibernateUtil.evictAllRegions(); // Data is expected to be fetched from database, not from L2C. // L2C miss & put are expected session4 = HibernateUtil.getSession(); - tx4 = session4.getTransaction(); - tx4.begin(); - item = session4.get(Item.class,1); - System.out.println("Item fetched: "+ item); - tx4.commit(); + session4.beginTransaction();; + session4.get(Item.class,1); session4.close(); + HibernateUtil.printStats(); HibernateUtil.closeFactory(); Hazelcast.shutdownAll(); diff --git a/src/main/java/jcache/L2C/QueryCache.java b/src/main/java/jcache/L2C/QueryCache.java index 38a038c..dae8fc2 100644 --- a/src/main/java/jcache/L2C/QueryCache.java +++ b/src/main/java/jcache/L2C/QueryCache.java @@ -1,8 +1,8 @@ package jcache.L2C; import com.hazelcast.core.Hazelcast; -import jcache.L2C.util.HibernateUtil; import jcache.L2C.entity.Item; +import jcache.L2C.util.HibernateUtil; import org.hibernate.Session; import org.hibernate.Transaction; import java.util.List; @@ -18,55 +18,48 @@ public static void main(String[] args){ Session session1, session2, session3, session4; Transaction tx1; - List queryResults; // Store Items with id = 100,101 and 102 - // L2C miss and put are expected session1 = HibernateUtil.getSession(); tx1 = session1.getTransaction(); tx1.begin(); - session1.save(new Item(100,"New Hazelcast Item-0",12345L)); - session1.save(new Item(101,"New Hazelcast Item-1",12345L)); - session1.save(new Item(102,"New Hazelcast Item-2",12345L)); + session1.save(new Item("New Hazelcast Item-0",100)); + session1.save(new Item("New Hazelcast Item-1",101)); + session1.save(new Item("New Hazelcast Item-2",102)); tx1.commit(); session1.close(); + // Evict cache and clear statistics HibernateUtil.evictAllRegions(); // Get recently stored values via query. // Data is expected to be fetched from database, not from L2C since evicted. - // QueryCache miss is expected + // QueryCache miss & put are expected session2 = HibernateUtil.getSession(); - queryResults = executeQuery(QUERY_STRING,session2); - printList(queryResults); + executeQuery(QUERY_STRING,session2); session2.close(); + HibernateUtil.printQueryCacheStats(); // Execute last executed query again from another session. // Data is expected to be fetched from query Cache, not from database. // QueryCache hit is expected session3 = HibernateUtil.getSession(); - queryResults = executeQuery(QUERY_STRING,session3); - printList(queryResults); + executeQuery(QUERY_STRING,session3); session3.close(); + HibernateUtil.printQueryCacheStats(); - // Execute last executed query again from another session. - // Data is expected to be fetched from query Cache, not from database. - // QueryCache hit is expected + // Execute last different query. + // QueryCache miss & put are expected session4 = HibernateUtil.getSession(); - queryResults = executeQuery(QUERY_STRING2,session4); - printList(queryResults); + executeQuery(QUERY_STRING2,session4); session4.close(); + HibernateUtil.printQueryCacheStats(); + + // Tear down HibernateUtil.closeFactory(); Hazelcast.shutdownAll(); } - private static void printList(List list){ - System.out.println("Items fetched: "); - for(Item i : list) { - System.out.println(i); - } - } - private static List executeQuery(String query, Session session){ Transaction tx; tx = session.getTransaction(); diff --git a/src/main/java/jcache/L2C/entity/Department.java b/src/main/java/jcache/L2C/entity/Department.java deleted file mode 100644 index d941fb4..0000000 --- a/src/main/java/jcache/L2C/entity/Department.java +++ /dev/null @@ -1,58 +0,0 @@ -package jcache.L2C.entity; - -import java.util.ArrayList; -import java.util.List; -import javax.persistence.*; - -import org.hibernate.annotations.Cache; -import org.hibernate.annotations.CacheConcurrencyStrategy; - -@Entity -@Table(name = "DEPARTMENT") -@Cache(region = "Dpt-Entity-Cache",usage = CacheConcurrencyStrategy.READ_WRITE) -public class Department { - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @Column(name = "DPT_ID") - private int id; - - @Column(name = "NAME", nullable = false, unique = true) - private String name; - - - @OneToMany(cascade = CascadeType.ALL, mappedBy = "department") - @Cache(region = "Emp-Collection-Cache",usage = CacheConcurrencyStrategy.READ_WRITE) - private List employees = new ArrayList(); - - public Department() {} - - public Department(String name, List employees) { - this.name = name; - this.employees = employees; - } - - public int getId() { - return id; - } - - public void setId(int id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public List getEmployees() { - return employees; - } - - public void setEmployees(List employees) { - this.employees = employees; - } -} diff --git a/src/main/java/jcache/L2C/entity/Employee.java b/src/main/java/jcache/L2C/entity/Employee.java deleted file mode 100644 index 388e454..0000000 --- a/src/main/java/jcache/L2C/entity/Employee.java +++ /dev/null @@ -1,62 +0,0 @@ -package jcache.L2C.entity; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.JoinColumn; -import javax.persistence.ManyToOne; -import javax.persistence.Table; - -import org.hibernate.annotations.Cache; -import org.hibernate.annotations.CacheConcurrencyStrategy; - -@Entity -@Table(name = "EMPLOYEE") -@Cache(region = "Emp-Entity-Cache",usage = CacheConcurrencyStrategy.READ_WRITE) -public class Employee { - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @Column(name = "EMP_ID") - private int id; - - @Column(name = "NAME", nullable = false) - private String name; - - @ManyToOne - @JoinColumn(name = "DPT_ID") - private Department department; - - public Employee() { } - - public Employee(String name, Department department) { - this.name = name; - this.department = department; - } - - public int getId() { - return id; - } - - public void setId(int id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public Department getDepartment() { - return department; - } - - public void setDepartment(Department department) { - this.department = department; - } -} diff --git a/src/main/java/jcache/L2C/entity/Item.java b/src/main/java/jcache/L2C/entity/Item.java index 998ccc4..913e799 100644 --- a/src/main/java/jcache/L2C/entity/Item.java +++ b/src/main/java/jcache/L2C/entity/Item.java @@ -1,22 +1,50 @@ package jcache.L2C.entity; +import org.hibernate.annotations.Cache; +import org.hibernate.annotations.CacheConcurrencyStrategy; + +import javax.persistence.*; +import java.util.ArrayList; +import java.util.List; + +@Entity +@Cache(region = "Item-Cache",usage = CacheConcurrencyStrategy.READ_WRITE) public class Item { + @Id + @Column(name = "ITEM_ID") private int id; + @Column(name = "ITEM_NAME", nullable = false) private String name; - private long price; + @OneToMany(cascade = CascadeType.ALL, mappedBy = "item") + @Cache(region = "SubItems-Collection-Cache",usage = CacheConcurrencyStrategy.READ_WRITE) + private List subItems = new ArrayList(); - public Item() { + public List getSubItems() { + return subItems; } - public Item(int id, String name, long price) { - this.id = id; + public void setSubItems(List subItems) { + this.subItems = subItems; + + } + + public Item(String name, int id) { this.name = name; - this.price = price; + this.id = id; + } + + public Item() { } + public Item addSubItem(SubItem s){ + this.subItems.add(s); + return this; + } + + public int getId() { return id; } @@ -32,22 +60,4 @@ public String getName() { public void setName(String name) { this.name = name; } - - public long getPrice() { - return price; - } - - - public void setPrice(long price) { - this.price = price; - } - - @Override - public String toString() { - return "jcache.L2C.Entity.Item{" + - "id=" + id + - ", name='" + name + '\'' + - ", price=" + price + - '}'; - } } diff --git a/src/main/java/jcache/L2C/entity/SubItem.java b/src/main/java/jcache/L2C/entity/SubItem.java new file mode 100644 index 0000000..9610108 --- /dev/null +++ b/src/main/java/jcache/L2C/entity/SubItem.java @@ -0,0 +1,67 @@ +package jcache.L2C.entity; + +import org.hibernate.annotations.Cache; +import org.hibernate.annotations.CacheConcurrencyStrategy; + +import javax.persistence.*; + + +@Entity +@Cache(region = "SubItem-Cache",usage = CacheConcurrencyStrategy.READ_WRITE) +public class SubItem { + + @Id + @Column(name = "SUBITEM_ID") + private int id; + + @Column(name = "SUBITEM_NAME", nullable = false) + private String name; + + + @ManyToOne + @JoinColumn(name = "ITEM_ID") + private Item item; + + public SubItem(int id, String name, Item item) { + this.id = id; + this.name = name; + this.item = item; + } + + public Item getItem() { + return item; + } + + public void setItem(Item item) { + this.item = item; + } + + public SubItem() { + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + + @Override + public String toString() { + return "SubItem{" + + "id=" + id + + ", name='" + name + '\'' + + ", item=" + item + + '}'; + } +} diff --git a/src/main/java/jcache/L2C/util/HibernateUtil.java b/src/main/java/jcache/L2C/util/HibernateUtil.java index 5128234..dad9cb7 100644 --- a/src/main/java/jcache/L2C/util/HibernateUtil.java +++ b/src/main/java/jcache/L2C/util/HibernateUtil.java @@ -1,9 +1,11 @@ package jcache.L2C.util; +import com.hazelcast.cache.CacheStatistics; import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; +import org.hibernate.stat.CacheRegionStatistics; import org.hibernate.stat.Statistics; public class HibernateUtil { @@ -31,6 +33,7 @@ public static Session getSession(){ public static void evictAllRegions(){ assert !sessionFactory.isClosed(); sessionFactory.getCache().evictAllRegions(); + sessionFactory.getStatistics().clear(); } public static void closeFactory(){ @@ -41,4 +44,25 @@ public static void closeFactory(){ public static SessionFactory getSessionFactory() { return sessionFactory; } + + public static void printStats(){ + System.out.println("[L2C Hits]: " + sessionFactory.getStatistics().getSecondLevelCacheHitCount()); + System.out.println("[L2C Miss]: " + sessionFactory.getStatistics().getSecondLevelCacheMissCount()); + System.out.println("[L2C Put]: " + sessionFactory.getStatistics().getSecondLevelCachePutCount()); + } + + public static void printQueryCacheStats(){ + System.out.println("[Query Cache Hits]: " + sessionFactory.getStatistics().getQueryCacheHitCount()); + System.out.println("[Query Cache Miss]: " + sessionFactory.getStatistics().getQueryCacheMissCount()); + System.out.println("[Query Cache Put]: " + sessionFactory.getStatistics().getQueryCachePutCount()); + } + + public static void printCollectionCacheStats(){ + CacheRegionStatistics cs = HibernateUtil.getSessionFactory().getStatistics().getCacheRegionStatistics("SubItems-Collection-Cache"); + System.out.println("[Collection Cache Hits]: " + cs.getHitCount()); + System.out.println("[Collection Cache Miss]: " + cs.getMissCount()); + System.out.println("[Collection Cache Put]: " + cs.getPutCount()); + + + } } diff --git a/src/main/resources/Item.hbm.xml b/src/main/resources/Item.hbm.xml deleted file mode 100644 index 0f45038..0000000 --- a/src/main/resources/Item.hbm.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - This class represents a sample hazelcast.hibernate.ss.entity.Item. - - - - - - - - - - - \ No newline at end of file diff --git a/src/main/resources/hibernate.cfg.xml b/src/main/resources/hibernate.cfg.xml index 88ec8c3..49bc051 100644 --- a/src/main/resources/hibernate.cfg.xml +++ b/src/main/resources/hibernate.cfg.xml @@ -10,14 +10,12 @@ hazelcast-region - com.mysql.cj.jdbc.Driver - jdbc:mysql://localhost:3306/hibernate_demo?createDatabaseIfNotExist=true - root - root + org.h2.Driver + jdbc:h2:~/sample - org.hibernate.dialect.MySQL5Dialect + org.hibernate.dialect.H2Dialect true true @@ -51,12 +49,11 @@ true - create-drop + create - - - + + \ No newline at end of file diff --git a/src/test/java/jcache/L2C/test/DatabaseEntitiesTest.java b/src/test/java/jcache/L2C/test/DatabaseEntitiesTest.java index 72fae89..88d96e3 100644 --- a/src/test/java/jcache/L2C/test/DatabaseEntitiesTest.java +++ b/src/test/java/jcache/L2C/test/DatabaseEntitiesTest.java @@ -1,8 +1,8 @@ package jcache.L2C.test; import jcache.L2C.test.base.HibernateTestBase; -import jcache.L2C.test.entity.Item; -import jcache.L2C.test.entity.SubItem; +import jcache.L2C.entity.Item; +import jcache.L2C.entity.SubItem; import org.hibernate.Session; import org.junit.Assert; import org.junit.Test; @@ -24,6 +24,7 @@ public void testItemsOnDatabaseStartUp(){ Session session = sfUtil.getSessionFactory().openSession(); + @SuppressWarnings("unchecked") List items = session.createQuery("SELECT i from Item i ").getResultList(); Assert.assertEquals(4,items.size()); @@ -41,6 +42,7 @@ public void testSubItemsOnDatabaseStartUp(){ Session session = sfUtil.getSessionFactory().openSession(); + @SuppressWarnings("unchecked") List subItems = session.createQuery("SELECT si from SubItem si ").getResultList(); Assert.assertEquals(10,subItems.size()); diff --git a/src/test/java/jcache/L2C/test/base/CollectionCacheTestBase.java b/src/test/java/jcache/L2C/test/base/CollectionCacheTestBase.java index 3648084..358015c 100644 --- a/src/test/java/jcache/L2C/test/base/CollectionCacheTestBase.java +++ b/src/test/java/jcache/L2C/test/base/CollectionCacheTestBase.java @@ -1,7 +1,7 @@ package jcache.L2C.test.base; -import jcache.L2C.test.entity.Item; -import jcache.L2C.test.entity.SubItem; +import jcache.L2C.entity.Item; +import jcache.L2C.entity.SubItem; import org.hibernate.Session; import org.hibernate.Transaction; import org.junit.Assert; @@ -16,7 +16,7 @@ public CollectionCacheTestBase(boolean useHazelcastClient) { } @Test - public void cacheCollectionsWhenOwnerObjectIsFetchedP2PTest(){ + public void collectionCacheHitWhenOwnerIsFetchedTest(){ Item item; @@ -46,7 +46,7 @@ public void cacheCollectionsWhenOwnerObjectIsFetchedP2PTest(){ } @Test - public void collectionCacheUpdateP2PTest(){ + public void collectionCacheUpdateAndPutTest(){ Session session = sfUtil.getSessionFactory().openSession(); @@ -64,7 +64,6 @@ public void collectionCacheUpdateP2PTest(){ Assert.assertEquals(2,subItemCacheStats.getPutCount()); - session = sfUtil.getSessionFactory().openSession(); item = session.get(Item.class,1); diff --git a/src/test/java/jcache/L2C/test/base/EntityCacheTestBase.java b/src/test/java/jcache/L2C/test/base/EntityCacheTestBase.java index 1f224f7..fc5af6c 100644 --- a/src/test/java/jcache/L2C/test/base/EntityCacheTestBase.java +++ b/src/test/java/jcache/L2C/test/base/EntityCacheTestBase.java @@ -1,7 +1,7 @@ package jcache.L2C.test.base; -import jcache.L2C.test.entity.Item; -import jcache.L2C.test.entity.SubItem; +import jcache.L2C.entity.Item; +import jcache.L2C.entity.SubItem; import org.hibernate.Session; import org.hibernate.Transaction; import org.junit.Assert; @@ -17,7 +17,7 @@ public EntityCacheTestBase(boolean useHazelcastClient) { } @Test - public void missThenPutAndHitTest(){ + public void entityCacheBasicMissPutAndHitTest(){ Session session = sfUtil.getSessionFactory().openSession(); @@ -50,7 +50,7 @@ public void missThenPutAndHitTest(){ } @Test - public void updateAndHitTest(){ + public void entityCacheUpdatePutAndHitTest(){ Session session = sfUtil.getSessionFactory().openSession(); @@ -77,7 +77,7 @@ public void updateAndHitTest(){ } @Test - public void putCollectionEntitiesIntoOwnCacheTest(){ + public void entityCachePutCollectionEntitiesIntoCacheTest(){ Session session = sfUtil.getSessionFactory().openSession(); @@ -101,7 +101,4 @@ public void putCollectionEntitiesIntoOwnCacheTest(){ } - - - } diff --git a/src/test/java/jcache/L2C/test/base/HibernateTestBase.java b/src/test/java/jcache/L2C/test/base/HibernateTestBase.java index 01ea7d7..7e8db1d 100644 --- a/src/test/java/jcache/L2C/test/base/HibernateTestBase.java +++ b/src/test/java/jcache/L2C/test/base/HibernateTestBase.java @@ -1,7 +1,7 @@ package jcache.L2C.test.base; -import jcache.L2C.test.entity.Item; -import jcache.L2C.test.entity.SubItem; +import jcache.L2C.entity.Item; +import jcache.L2C.entity.SubItem; import jcache.L2C.test.util.SessionFactoryUtil; import org.hibernate.Session; import org.hibernate.Transaction; @@ -62,8 +62,6 @@ public void insertEntries(){ item3.addSubItem(subItem4).addSubItem(subItem5).addSubItem(subItem6); item4.addSubItem(subItem7).addSubItem(subItem8).addSubItem(subItem9).addSubItem(subItem10); - - session.save(item1); session.save(item2); session.save(item3); diff --git a/src/test/java/jcache/L2C/test/base/QueryCacheTestBase.java b/src/test/java/jcache/L2C/test/base/QueryCacheTestBase.java index fe4a0d8..42d5456 100644 --- a/src/test/java/jcache/L2C/test/base/QueryCacheTestBase.java +++ b/src/test/java/jcache/L2C/test/base/QueryCacheTestBase.java @@ -1,7 +1,7 @@ package jcache.L2C.test.base; -import jcache.L2C.test.entity.Item; -import jcache.L2C.test.entity.SubItem; +import jcache.L2C.entity.Item; +import jcache.L2C.entity.SubItem; import org.hibernate.Session; import org.hibernate.Transaction; import org.hibernate.stat.CacheRegionStatistics; @@ -23,24 +23,23 @@ public QueryCacheTestBase(boolean useHazelcastClient) { } @Test - public void queryMissPutAndHitTest(){ + public void queryCacheBasicMissPutAndHitTest(){ Session session = sfUtil.getSessionFactory().openSession(); + @SuppressWarnings("unchecked") List itemList = session.createQuery(ITEM_QUERY_STRING) .setCacheable(true) .setCacheRegion("Item-Query-Cache").list(); CacheRegionStatistics itemQueryCacheStats = stats.getQueryRegionStatistics("Item-Query-Cache"); - Assert.assertEquals(2,itemList.size()); Assert.assertEquals(1,itemQueryCacheStats.getMissCount()); Assert.assertEquals(1,itemQueryCacheStats.getPutCount()); Assert.assertEquals(0,itemQueryCacheStats.getHitCount()); - session.close(); session = sfUtil.getSessionFactory().openSession(); @@ -55,10 +54,11 @@ public void queryMissPutAndHitTest(){ } @Test - public void subitemQueryAndUpdateTest(){ + public void queryCacheUpdateThenPutTest(){ Session session = sfUtil.getSessionFactory().openSession(); + @SuppressWarnings("unchecked") List subitemList = session.createQuery(SUBITEM_QUERY_STRING) .setCacheable(true) .setCacheRegion("SubItem-Query-Cache").list(); diff --git a/src/test/java/jcache/L2C/test/util/SessionFactoryUtil.java b/src/test/java/jcache/L2C/test/util/SessionFactoryUtil.java index eb011a0..3b3c29a 100644 --- a/src/test/java/jcache/L2C/test/util/SessionFactoryUtil.java +++ b/src/test/java/jcache/L2C/test/util/SessionFactoryUtil.java @@ -1,8 +1,6 @@ package jcache.L2C.test.util; - import com.hazelcast.core.Hazelcast; - import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; import org.hibernate.stat.Statistics; @@ -24,6 +22,10 @@ private SessionFactory createSessionFactory() { // -DtestType=[ jcache | plugin ] final String testingType = System.getProperty("testType"); + if(!testingType.equals("jcache") && !testingType.equals("plugin")){ + throw new IllegalArgumentException("Provide a valid testing method: -DtestType=[ jcache | plugin ]"); + } + Configuration configuration = new Configuration(); String hibernateConfigURL; @@ -54,37 +56,4 @@ public SessionFactory getSessionFactory() { return sessionFactory; } - /* - - private void shutdown() { - try { - //transaction.rollback(); - session.close(); - sessionFactory.close(); - Hazelcast.shutdownAll(); - } catch (Exception e) { - e.printStackTrace(); - } - } - public Session getActiveSession(){ - return this.session.isOpen() ? this.session : null; - } - - public Session createNewSession(){ - //if (session != null && session.isOpen()) session.close(); - session = sessionFactory.openSession(); - return session; - } - - public void commit() { - if(!session.isOpen()) return; - Transaction tx = session.beginTransaction(); - tx.commit(); - } - - public void closeSession(){ - if (!session.isOpen()) session.close(); - }*/ - - } diff --git a/src/test/resources/jcache-client-hibernate.cfg.xml b/src/test/resources/jcache-client-hibernate.cfg.xml index 634c70b..9781795 100644 --- a/src/test/resources/jcache-client-hibernate.cfg.xml +++ b/src/test/resources/jcache-client-hibernate.cfg.xml @@ -52,8 +52,8 @@ create - - + + \ No newline at end of file diff --git a/src/test/resources/jcache-server-hibernate.cfg.xml b/src/test/resources/jcache-server-hibernate.cfg.xml index 1c4f7e1..5ae8d92 100644 --- a/src/test/resources/jcache-server-hibernate.cfg.xml +++ b/src/test/resources/jcache-server-hibernate.cfg.xml @@ -51,8 +51,8 @@ create - - + + \ No newline at end of file diff --git a/src/test/resources/plugin-client-hibernate.cfg.xml b/src/test/resources/plugin-client-hibernate.cfg.xml index b828b5a..8d43278 100644 --- a/src/test/resources/plugin-client-hibernate.cfg.xml +++ b/src/test/resources/plugin-client-hibernate.cfg.xml @@ -40,8 +40,8 @@ create - - + + \ No newline at end of file diff --git a/src/test/resources/plugin-server-hibernate.cfg.xml b/src/test/resources/plugin-server-hibernate.cfg.xml index 7fc1307..b8de83f 100644 --- a/src/test/resources/plugin-server-hibernate.cfg.xml +++ b/src/test/resources/plugin-server-hibernate.cfg.xml @@ -37,8 +37,8 @@ create - - + + \ No newline at end of file