diff --git a/pom.xml b/pom.xml index 05af1f94..da913958 100644 --- a/pom.xml +++ b/pom.xml @@ -18,6 +18,7 @@ false java:openejb/Resource/My DataSource org.hibernate.dialect.HSQLDialect + false @@ -108,6 +109,16 @@ org.hsqldb:hsqldb:SNAPSHOT mysql:mysql-connector-java:5.1.24 postgresql:postgresql:9.1-901.jdbc4 + + org.infinispan:infinispan-core:5.1.4.FINAL + org.hibernate:hibernate-infinispan:4.1.11.Final + org.jgroups:jgroups:3.0.9.Final + org.jboss.marshalling:jboss-marshalling-river:1.3.11.GA + org.jboss.marshalling:jboss-marshalling:1.3.11.GA + org.codehaus.woodstox:woodstox-core-asl:4.1.1 + org.codehaus.woodstox:stax2-api:3.1.1 + org.rhq.helpers:rhq-pluginAnnotations:3.0.4 + org.jboss.logmanager:jboss-logmanager:1.2.2.GA @@ -409,6 +420,12 @@ + + cache + + true + + mysql diff --git a/src/main/java/com/commafeed/backend/model/Feed.java b/src/main/java/com/commafeed/backend/model/Feed.java index 16f9dcc3..1393b930 100644 --- a/src/main/java/com/commafeed/backend/model/Feed.java +++ b/src/main/java/com/commafeed/backend/model/Feed.java @@ -3,6 +3,7 @@ package com.commafeed.backend.model; import java.util.Date; import java.util.Set; +import javax.persistence.Cacheable; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; @@ -12,11 +13,16 @@ import javax.persistence.Table; import javax.persistence.Temporal; import javax.persistence.TemporalType; +import org.hibernate.annotations.Cache; +import org.hibernate.annotations.CacheConcurrencyStrategy; + import com.google.common.collect.Sets; @Entity @Table(name = "FEEDS") @SuppressWarnings("serial") +@Cacheable +@Cache(usage = CacheConcurrencyStrategy.TRANSACTIONAL) public class Feed extends AbstractModel { /** diff --git a/src/main/java/com/commafeed/backend/model/FeedCategory.java b/src/main/java/com/commafeed/backend/model/FeedCategory.java index 8474c998..44811a94 100644 --- a/src/main/java/com/commafeed/backend/model/FeedCategory.java +++ b/src/main/java/com/commafeed/backend/model/FeedCategory.java @@ -2,6 +2,7 @@ package com.commafeed.backend.model; import java.util.Set; +import javax.persistence.Cacheable; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; @@ -10,11 +11,16 @@ import javax.persistence.ManyToOne; import javax.persistence.OneToMany; import javax.persistence.Table; +import org.hibernate.annotations.Cache; +import org.hibernate.annotations.CacheConcurrencyStrategy; + import com.google.common.collect.Sets; @Entity @Table(name = "FEEDCATEGORIES") @SuppressWarnings("serial") +@Cacheable +@Cache(usage = CacheConcurrencyStrategy.TRANSACTIONAL) public class FeedCategory extends AbstractModel { @Column(length = 128, nullable = false) diff --git a/src/main/java/com/commafeed/backend/model/FeedEntry.java b/src/main/java/com/commafeed/backend/model/FeedEntry.java index a769f511..8dbe11fa 100644 --- a/src/main/java/com/commafeed/backend/model/FeedEntry.java +++ b/src/main/java/com/commafeed/backend/model/FeedEntry.java @@ -3,6 +3,7 @@ package com.commafeed.backend.model; import java.util.Date; import java.util.Set; +import javax.persistence.Cacheable; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; @@ -16,11 +17,16 @@ import javax.persistence.Table; import javax.persistence.Temporal; import javax.persistence.TemporalType; +import org.hibernate.annotations.Cache; +import org.hibernate.annotations.CacheConcurrencyStrategy; + import com.google.api.client.util.Sets; @Entity @Table(name = "FEEDENTRIES") @SuppressWarnings("serial") +@Cacheable +@Cache(usage = CacheConcurrencyStrategy.TRANSACTIONAL) public class FeedEntry extends AbstractModel { @Column(length = 2048, nullable = false) diff --git a/src/main/java/com/commafeed/backend/model/FeedEntryContent.java b/src/main/java/com/commafeed/backend/model/FeedEntryContent.java index 119b7204..7b4ccde8 100644 --- a/src/main/java/com/commafeed/backend/model/FeedEntryContent.java +++ b/src/main/java/com/commafeed/backend/model/FeedEntryContent.java @@ -1,13 +1,19 @@ package com.commafeed.backend.model; +import javax.persistence.Cacheable; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Lob; import javax.persistence.Table; +import org.hibernate.annotations.Cache; +import org.hibernate.annotations.CacheConcurrencyStrategy; + @Entity @Table(name = "FEEDENTRYCONTENTS") @SuppressWarnings("serial") +@Cacheable +@Cache(usage = CacheConcurrencyStrategy.TRANSACTIONAL) public class FeedEntryContent extends AbstractModel { @Column(length = 2048) diff --git a/src/main/java/com/commafeed/backend/model/FeedEntryStatus.java b/src/main/java/com/commafeed/backend/model/FeedEntryStatus.java index 5cd543fc..39d83749 100644 --- a/src/main/java/com/commafeed/backend/model/FeedEntryStatus.java +++ b/src/main/java/com/commafeed/backend/model/FeedEntryStatus.java @@ -1,5 +1,6 @@ package com.commafeed.backend.model; +import javax.persistence.Cacheable; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; @@ -7,9 +8,14 @@ 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 = "FEEDENTRYSTATUSES") @SuppressWarnings("serial") +@Cacheable +@Cache(usage = CacheConcurrencyStrategy.TRANSACTIONAL) public class FeedEntryStatus extends AbstractModel { @ManyToOne(fetch = FetchType.LAZY) diff --git a/src/main/java/com/commafeed/backend/model/FeedSubscription.java b/src/main/java/com/commafeed/backend/model/FeedSubscription.java index 96be770e..957d7b97 100644 --- a/src/main/java/com/commafeed/backend/model/FeedSubscription.java +++ b/src/main/java/com/commafeed/backend/model/FeedSubscription.java @@ -2,6 +2,7 @@ package com.commafeed.backend.model; import java.util.Set; +import javax.persistence.Cacheable; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; @@ -11,9 +12,14 @@ import javax.persistence.ManyToOne; import javax.persistence.OneToMany; import javax.persistence.Table; +import org.hibernate.annotations.Cache; +import org.hibernate.annotations.CacheConcurrencyStrategy; + @Entity @Table(name = "FEEDSUBSCRIPTIONS") @SuppressWarnings("serial") +@Cacheable +@Cache(usage = CacheConcurrencyStrategy.TRANSACTIONAL) public class FeedSubscription extends AbstractModel { @ManyToOne(fetch = FetchType.LAZY) diff --git a/src/main/java/com/commafeed/backend/model/User.java b/src/main/java/com/commafeed/backend/model/User.java index 28d38e31..7a57cb1f 100644 --- a/src/main/java/com/commafeed/backend/model/User.java +++ b/src/main/java/com/commafeed/backend/model/User.java @@ -3,6 +3,7 @@ package com.commafeed.backend.model; import java.util.Date; import java.util.Set; +import javax.persistence.Cacheable; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; @@ -12,11 +13,16 @@ import javax.persistence.Table; import javax.persistence.Temporal; import javax.persistence.TemporalType; +import org.hibernate.annotations.Cache; +import org.hibernate.annotations.CacheConcurrencyStrategy; + import com.google.common.collect.Sets; @Entity @Table(name = "USERS") @SuppressWarnings("serial") +@Cacheable +@Cache(usage = CacheConcurrencyStrategy.TRANSACTIONAL) public class User extends AbstractModel { @Column(length = 32, nullable = false, unique = true) diff --git a/src/main/java/com/commafeed/backend/model/UserRole.java b/src/main/java/com/commafeed/backend/model/UserRole.java index fb9537d2..eefa13ed 100644 --- a/src/main/java/com/commafeed/backend/model/UserRole.java +++ b/src/main/java/com/commafeed/backend/model/UserRole.java @@ -1,5 +1,6 @@ package com.commafeed.backend.model; +import javax.persistence.Cacheable; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.EnumType; @@ -9,9 +10,14 @@ import javax.persistence.JoinColumn; import javax.persistence.OneToOne; import javax.persistence.Table; +import org.hibernate.annotations.Cache; +import org.hibernate.annotations.CacheConcurrencyStrategy; + @Entity @Table(name = "USERROLES") @SuppressWarnings("serial") +@Cacheable +@Cache(usage = CacheConcurrencyStrategy.TRANSACTIONAL) public class UserRole extends AbstractModel { public static enum Role { diff --git a/src/main/java/com/commafeed/backend/model/UserSettings.java b/src/main/java/com/commafeed/backend/model/UserSettings.java index d5b3657e..f68c9664 100644 --- a/src/main/java/com/commafeed/backend/model/UserSettings.java +++ b/src/main/java/com/commafeed/backend/model/UserSettings.java @@ -1,5 +1,6 @@ package com.commafeed.backend.model; +import javax.persistence.Cacheable; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.EnumType; @@ -10,9 +11,14 @@ import javax.persistence.Lob; import javax.persistence.OneToOne; import javax.persistence.Table; +import org.hibernate.annotations.Cache; +import org.hibernate.annotations.CacheConcurrencyStrategy; + @Entity @Table(name = "USERSETTINGS") @SuppressWarnings("serial") +@Cacheable +@Cache(usage = CacheConcurrencyStrategy.TRANSACTIONAL) public class UserSettings extends AbstractModel { public enum ReadingMode { diff --git a/src/main/resources/META-INF/persistence.xml b/src/main/resources/META-INF/persistence.xml index 621ad5d7..7759f245 100644 --- a/src/main/resources/META-INF/persistence.xml +++ b/src/main/resources/META-INF/persistence.xml @@ -7,6 +7,7 @@ org.hibernate.ejb.HibernatePersistence ${jpa.datasource.name} + ENABLE_SELECTIVE @@ -21,6 +22,28 @@ + + + + + + + + + + + + + \ No newline at end of file