[jboss-cvs] JBossAS SVN: r59569 - in trunk/ejb3/src: resources/test/clusteredentity/classloader and 4 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Jan 11 22:19:01 EST 2007


Author: bstansberry at jboss.com
Date: 2007-01-11 22:18:56 -0500 (Thu, 11 Jan 2007)
New Revision: 59569

Added:
   trunk/ejb3/src/resources/test/clusteredentity/classloader/
   trunk/ejb3/src/resources/test/clusteredentity/classloader/META-INF/
   trunk/ejb3/src/resources/test/clusteredentity/classloader/clusteredentity-ds.xml
   trunk/ejb3/src/resources/test/clusteredentity/embeddedid/
   trunk/ejb3/src/resources/test/clusteredentity/embeddedid/META-INF/
   trunk/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/classloader/
   trunk/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/classloader/Account.java
   trunk/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/classloader/AccountHolderPK.java
   trunk/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/classloader/EntityQueryTest.java
   trunk/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/classloader/EntityQueryTestBean.java
   trunk/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/embeddedid/
   trunk/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/embeddedid/EmbeddedIdTest.java
   trunk/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/embeddedid/EmbeddedIdTestBean.java
   trunk/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/embeddedid/Musician.java
   trunk/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/embeddedid/MusicianPK.java
Removed:
   trunk/ejb3/src/resources/test/clusteredentity/classloader/META-INF/
   trunk/ejb3/src/resources/test/clusteredentity/classloader/clusteredentity-ds.xml
   trunk/ejb3/src/resources/test/clusteredentity/embeddedid/META-INF/
   trunk/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/classloader/Account.java
   trunk/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/classloader/AccountHolderPK.java
   trunk/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/classloader/EntityQueryTest.java
   trunk/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/classloader/EntityQueryTestBean.java
   trunk/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/embeddedid/EmbeddedIdTest.java
   trunk/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/embeddedid/EmbeddedIdTestBean.java
   trunk/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/embeddedid/Musician.java
   trunk/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/embeddedid/MusicianPK.java
Log:
[EJBTHREE-798] Port to trunk

Copied: trunk/ejb3/src/resources/test/clusteredentity/classloader (from rev 59243, branches/Branch_4_0/ejb3/src/resources/test/clusteredentity/classloader)

Copied: trunk/ejb3/src/resources/test/clusteredentity/classloader/META-INF (from rev 59503, branches/Branch_4_0/ejb3/src/resources/test/clusteredentity/classloader/META-INF)

Deleted: trunk/ejb3/src/resources/test/clusteredentity/classloader/clusteredentity-ds.xml
===================================================================
--- branches/Branch_4_0/ejb3/src/resources/test/clusteredentity/classloader/clusteredentity-ds.xml	2006-12-28 23:35:15 UTC (rev 59243)
+++ trunk/ejb3/src/resources/test/clusteredentity/classloader/clusteredentity-ds.xml	2007-01-12 03:18:56 UTC (rev 59569)
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<datasources>
-   <local-tx-datasource>
-      <jndi-name>ClusteredEntityTestDS</jndi-name>
-
-      <connection-url>jdbc:hsqldb:hsql://localhost:1701</connection-url>
-      <driver-class>org.hsqldb.jdbcDriver</driver-class>
-      <user-name>sa</user-name>
-      <password></password>
-      <min-pool-size>1</min-pool-size>
-      <max-pool-size>20</max-pool-size>
-      <idle-timeout-minutes>0</idle-timeout-minutes>
-      <track-statements/>
-   </local-tx-datasource>
-</datasources>

Copied: trunk/ejb3/src/resources/test/clusteredentity/classloader/clusteredentity-ds.xml (from rev 59503, branches/Branch_4_0/ejb3/src/resources/test/clusteredentity/classloader/clusteredentity-ds.xml)

Copied: trunk/ejb3/src/resources/test/clusteredentity/embeddedid (from rev 59243, branches/Branch_4_0/ejb3/src/resources/test/clusteredentity/embeddedid)

Copied: trunk/ejb3/src/resources/test/clusteredentity/embeddedid/META-INF (from rev 59503, branches/Branch_4_0/ejb3/src/resources/test/clusteredentity/embeddedid/META-INF)

Copied: trunk/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/classloader (from rev 58953, branches/Branch_4_0/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/classloader)

Deleted: trunk/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/classloader/Account.java
===================================================================
--- branches/Branch_4_0/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/classloader/Account.java	2006-12-09 04:33:43 UTC (rev 58953)
+++ trunk/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/classloader/Account.java	2007-01-12 03:18:56 UTC (rev 59569)
@@ -1,91 +0,0 @@
-package org.jboss.ejb3.test.clusteredentity.classloader;
-
-import java.io.Serializable;
-
-import javax.persistence.Embedded;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.Lob;
-import javax.persistence.ManyToOne;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.QueryHint;
-
-import org.hibernate.annotations.Cache;
-import org.hibernate.annotations.CacheConcurrencyStrategy;
-
- at Entity
- at Cache (usage=CacheConcurrencyStrategy.TRANSACTIONAL)
- at NamedQueries({
-   @NamedQuery(name="account.totalbalance.default",query="select account.balance from Account as account where account.accountHolder = ?1",
-               hints={@QueryHint(name="org.hibernate.cacheable",value="true")}),
-   @NamedQuery(name="account.totalbalance.namedregion",query="select account.balance from Account as account where account.accountHolder = ?1",
-               hints={@QueryHint(name="org.hibernate.cacheRegion",value="AccountRegion"),
-                      @QueryHint(name="org.hibernate.cacheable",value="true")
-                     }),
-   @NamedQuery(name="account.branch.default",query="select account.branch from Account as account where account.accountHolder = ?1",
-               hints={@QueryHint(name="org.hibernate.cacheable",value="true")}),
-   @NamedQuery(name="account.branch.namedregion",query="select account.branch from Account as account where account.accountHolder = ?1",
-               hints={@QueryHint(name="org.hibernate.cacheRegion",value="AccountRegion"),
-                      @QueryHint(name="org.hibernate.cacheable",value="true")
-                     }),
-   @NamedQuery(name="account.bybranch.default",query="select account from Account as account where account.branch = ?1",
-               hints={@QueryHint(name="org.hibernate.cacheable",value="true")}),
-   @NamedQuery(name="account.bybranch.namedregion",query="select account from Account as account where account.branch = ?1",
-               hints={@QueryHint(name="org.hibernate.cacheRegion",value="AccountRegion"),
-                      @QueryHint(name="org.hibernate.cacheable",value="true")
-                     })
-})
-public class Account implements Serializable
-{
-   
-   private static final long serialVersionUID = 1L;
-   
-   private Integer id;
-   private AccountHolderPK accountHolder;
-   private Integer balance;
-   private String branch;
-   
-   @Id
-   public Integer getId()
-   {
-      return id;
-   }
-   public void setId(Integer id)
-   {
-      this.id = id;
-   }
-   
-//   @Embedded
-   @Lob
-   public AccountHolderPK getAccountHolder()
-   {
-      return accountHolder;
-   }
-   public void setAccountHolder(AccountHolderPK accountHolder)
-   {
-      this.accountHolder = accountHolder;
-   }
-   
-   public Integer getBalance()
-   {
-      return balance;
-   }
-   public void setBalance(Integer balance)
-   {
-      this.balance = balance;
-   }
-   public String getBranch()
-   {
-      return branch;
-   }
-   public void setBranch(String branch)
-   {
-      this.branch = branch;
-   }
-   
-   
-   
-   
-   
-}

Copied: trunk/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/classloader/Account.java (from rev 58953, branches/Branch_4_0/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/classloader/Account.java)

Deleted: trunk/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/classloader/AccountHolderPK.java
===================================================================
--- branches/Branch_4_0/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/classloader/AccountHolderPK.java	2006-12-09 04:33:43 UTC (rev 58953)
+++ trunk/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/classloader/AccountHolderPK.java	2007-01-12 03:18:56 UTC (rev 59569)
@@ -1,69 +0,0 @@
-package org.jboss.ejb3.test.clusteredentity.classloader;
-
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.Serializable;
-
-import javax.persistence.Embeddable;
-
-//@Embeddable
-public class AccountHolderPK implements Serializable
-{   
-   private static final long serialVersionUID = 1L;
-   
-   private String lastName;
-   private String ssn;
-   private transient boolean deserialized;
-   
-   public AccountHolderPK( ) {}
-   
-   public AccountHolderPK(String lastName, String ssn)
-   {
-      this.lastName = lastName;
-      this.ssn = ssn;
-   }
-   
-   public String getLastName( ) { return this.lastName; }
-   public void setLastName(String lastName) { this.lastName = lastName; }
-   
-   public String getSsn( ) { return ssn; }
-   public void setSsn(String ssn) { this.ssn = ssn; }
-   
-   public boolean equals(Object obj)
-   {
-      if (obj == this) return true;
-      if (!(obj instanceof AccountHolderPK)) return false;
-      AccountHolderPK pk = (AccountHolderPK)obj;
-      if (!lastName.equals(pk.lastName)) return false;
-      if (!ssn.equals(pk.ssn)) return false;
-      return true;
-   }
-   
-   public int hashCode( )
-   {
-      int result = 17;
-      result = result * 31 + lastName.hashCode();
-      result = result * 31 + ssn.hashCode();
-      return result;
-   }
-   
-   public String toString()
-   {
-      StringBuffer sb = new StringBuffer(getClass().getName());
-      sb.append("[lastName=");
-      sb.append(lastName);
-      sb.append(",ssn=");
-      sb.append(ssn);
-      sb.append(",deserialized=");
-      sb.append(deserialized);
-      sb.append("]");
-      return sb.toString();
-   }
-   
-   private void readObject(ObjectInputStream ois) throws IOException, ClassNotFoundException
-   {
-      ois.defaultReadObject();
-      deserialized = true;
-   }
-
-}

Copied: trunk/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/classloader/AccountHolderPK.java (from rev 58953, branches/Branch_4_0/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/classloader/AccountHolderPK.java)

Deleted: trunk/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/classloader/EntityQueryTest.java
===================================================================
--- branches/Branch_4_0/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/classloader/EntityQueryTest.java	2006-12-09 04:33:43 UTC (rev 58953)
+++ trunk/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/classloader/EntityQueryTest.java	2007-01-12 03:18:56 UTC (rev 59569)
@@ -1,29 +0,0 @@
-package org.jboss.ejb3.test.clusteredentity.classloader;
-
-public interface EntityQueryTest
-{
-
-//   public abstract void createAccountHolder(AccountHolderPK pk, String postCode);
-   
-   public abstract void updateAccountBranch(Integer id, String branch);   
-
-   public abstract void createAccount(AccountHolderPK pk, Integer id, Integer openingBalance, String branch);
-   
-   public abstract void updateAccountBalance(Integer id, Integer newBalance);
-
-   
-   public abstract int getCountForBranch(String branch, boolean useNamed, boolean useRegion);
-   
-   public abstract String getBranch(AccountHolderPK pk, boolean useNamed, boolean useRegion);
-
-   public abstract int getTotalBalance(AccountHolderPK pk, boolean useNamed, boolean useRegion);
-
-   public abstract boolean getSawRegionModification(String regionName);
-
-   public abstract boolean getSawRegionAccess(String regionName);
-   
-   public abstract void cleanup();
-   
-   public abstract void remove();
-
-}
\ No newline at end of file

Copied: trunk/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/classloader/EntityQueryTest.java (from rev 58953, branches/Branch_4_0/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/classloader/EntityQueryTest.java)

Deleted: trunk/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/classloader/EntityQueryTestBean.java
===================================================================
--- branches/Branch_4_0/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/classloader/EntityQueryTestBean.java	2006-12-09 04:33:43 UTC (rev 58953)
+++ trunk/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/classloader/EntityQueryTestBean.java	2007-01-12 03:18:56 UTC (rev 59569)
@@ -1,277 +0,0 @@
-package org.jboss.ejb3.test.clusteredentity.classloader;
-
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import javax.ejb.Remote;
-import javax.ejb.Remove;
-import javax.ejb.Stateful;
-import javax.management.MBeanServer;
-import javax.management.ObjectName;
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
-import javax.persistence.Query;
-
-import org.jboss.cache.AbstractTreeCacheListener;
-import org.jboss.cache.Fqn;
-import org.jboss.cache.TreeCache;
-import org.jboss.cache.TreeCacheMBean;
-import org.jboss.logging.Logger;
-import org.jboss.mx.util.MBeanProxyExt;
-import org.jboss.mx.util.MBeanServerLocator;
-
- at Stateful
- at Remote(EntityQueryTest.class)
-public class EntityQueryTestBean implements EntityQueryTest
-{
-   private static final Logger log = Logger.getLogger(EntityQueryTestBean.class);
-   
-   @PersistenceContext
-   private EntityManager manager;
-   
-   private MyListener listener;
-
-   public EntityQueryTestBean()
-   {
-      try
-      {
-         //Just to initialise the cache with a listener
-         TreeCache cache = getCache();
-         listener = new MyListener();
-         cache.addTreeCacheListener(listener);         
-      }
-      catch (Exception e)
-      {
-         throw new RuntimeException(e);
-      }
-   }
-   
-   public void updateAccountBranch(Integer id, String branch)
-   {
-      Account account = (Account) manager.find(Account.class, id);
-      account.setBranch(branch);
-   }
-   
-   public int getCountForBranch(String branch, boolean useNamed, boolean useRegion)
-   {
-      if (useNamed)
-         return getCountForBranchViaNamedQuery(branch, useRegion);
-      else
-         return getCountForBranchViaLocalQuery(branch, useRegion);
-   }
-   
-   private int getCountForBranchViaLocalQuery(String branch, boolean useRegion)
-   {
-      Query query = manager.createQuery("select account from Account as account where account.branch = ?1");
-      query.setParameter(1, branch);
-      if (useRegion)
-      {
-         query.setHint("org.hibernate.cacheRegion", "AccountRegion");
-      }
-      query.setHint("org.hibernate.cacheable", Boolean.TRUE);
-      return query.getResultList().size();
-      
-   }
-   
-   private int getCountForBranchViaNamedQuery(String branch, boolean useRegion)
-   {
-      String queryName = useRegion ? "account.bybranch.namedregion"
-                                   : "account.bybranch.default";
-      Query query = manager.createNamedQuery(queryName);
-      query.setParameter(1, branch);
-      return query.getResultList().size();      
-   }
-   
-   /* (non-Javadoc)
-    * @see org.jboss.ejb3.test.clusteredentity.EntityQueryTest#createAccount(org.jboss.ejb3.test.clusteredentity.AccountHolderPK, Integer, Integer)
-    */
-   public void createAccount(AccountHolderPK pk, Integer id, Integer openingBalance, String branch)
-   {
-      Account account = new Account();
-      account.setId(id);
-      account.setAccountHolder(pk);
-      account.setBalance(openingBalance);
-      account.setBranch(branch);
-      manager.persist(account);
-   }
-   
-   public void updateAccountBalance(Integer id, Integer newBalance)
-   {
-      Account account = (Account) manager.find(Account.class, id);
-      account.setBalance(newBalance);
-   }
-   
-   public String getBranch(AccountHolderPK pk, boolean useNamed, boolean useRegion)
-   {
-      if (useNamed)
-         return getBranchViaNamedQuery(pk, useRegion);
-      else
-         return getBranchViaLocalQuery(pk, useRegion);
-   }
-   
-   private String getBranchViaLocalQuery(AccountHolderPK pk, boolean useRegion)
-   {
-      Query query = manager.createQuery("select account.branch from Account as account where account.accountHolder = ?1");
-      query.setParameter(1, pk);
-      if (useRegion)
-      {
-         query.setHint("org.hibernate.cacheRegion", "AccountRegion");
-      }
-      query.setHint("org.hibernate.cacheable", Boolean.TRUE);
-      return (String) query.getResultList().get(0);
-   }
-   
-   /* (non-Javadoc)
-    * @see org.jboss.ejb3.test.clusteredentity.EntityQueryTest#getPostCodeViaNamedQuery(org.jboss.ejb3.test.clusteredentity.AccountHolderPK, boolean)
-    */
-   private String getBranchViaNamedQuery(AccountHolderPK pk, boolean useRegion)
-   {
-      String queryName = useRegion ? "account.branch.namedregion"
-                                   : "account.branch.default";
-      Query query = manager.createNamedQuery(queryName);
-      query.setParameter(1, pk);
-      return (String) query.getResultList().get(0);
-   }
-   public int getTotalBalance(AccountHolderPK pk, boolean useNamed, boolean useRegion)
-   {
-      if (useNamed)
-         return getTotalBalanceViaNamedQuery(pk, useRegion);
-      else
-         return getTotalBalanceViaLocalQuery(pk, useRegion);
-   }
-   
-   private int getTotalBalanceViaLocalQuery(AccountHolderPK pk, boolean useRegion)
-   {
-      Query query = manager.createQuery("select account.balance from Account as account where account.accountHolder = ?1");
-      query.setParameter(1, pk);
-      query.setHint("org.hibernate.cacheable", Boolean.TRUE);
-      return totalBalances(query);
-   }
-   
-   private int getTotalBalanceViaNamedQuery(AccountHolderPK pk, boolean useRegion)
-   {
-      String queryName = useRegion ? "account.totalbalance.namedregion"
-                                   : "account.totalbalance.default";
-      Query query = manager.createNamedQuery(queryName);
-      query.setParameter(1, pk);
-      return totalBalances(query);
-   }
-   
-   private int totalBalances(Query balanceQuery)
-   {
-      List results = balanceQuery.getResultList();
-      int total = 0;
-      if (results != null)
-      {
-         for (Iterator it = results.iterator(); it.hasNext();)
-         {            
-            total += ((Integer) it.next()).intValue();
-            System.out.println("Total = " + total);
-         }
-      }
-      return total;      
-   }
-   
-   public boolean getSawRegionModification(String regionName)
-   {
-      return getSawRegion(regionName, listener.modified);
-   }
-   
-   public boolean getSawRegionAccess(String regionName)
-   {
-      return getSawRegion(regionName, listener.accessed);
-   }
-   
-   private boolean getSawRegion(String regionName, Set sawEvent)
-   {
-      boolean saw = false;
-      Fqn fqn = Fqn.fromString("/" + regionName.replace(".", "/"));
-      for (Iterator it = sawEvent.iterator(); it.hasNext();)
-      {
-         Fqn modified = (Fqn) it.next();
-         if (modified.isChildOf(fqn))
-         {
-            it.remove();
-            saw = true;
-         }
-      }
-   return saw;
-      
-   }
-   
-   public void cleanup()
-   {  
-      Query query = manager.createQuery("select account from Account as account");
-      List accts = query.getResultList();
-      if (accts != null)
-      {
-         for (Iterator it = accts.iterator(); it.hasNext();)
-         {
-            try
-            {
-               Account acct = (Account) it.next();
-               log.info("Removing " + acct);
-               manager.remove(acct);
-            }
-            catch (Exception ignored) {}
-         }
-      }
-   }
-   
-   @Remove
-   public void remove()
-   {
-      cleanup();
-      listener.clear();
-      try
-      {
-         getCache().removeTreeCacheListener(listener);
-      }
-      catch (Exception e)
-      {
-         e.printStackTrace();
-      }
-   }
-
-   private TreeCache getCache() throws Exception
-   {
-      MBeanServer server = MBeanServerLocator.locateJBoss();
-      TreeCacheMBean proxy = (TreeCacheMBean)MBeanProxyExt.create(TreeCacheMBean.class, new ObjectName("jboss.cache:service=EJB3EntityTreeCache"), server);
-      TreeCache cache = proxy.getInstance();
-      
-      return cache;
-   }
-
-   class MyListener extends AbstractTreeCacheListener
-   {
-      HashSet modified = new HashSet(); 
-      HashSet accessed = new HashSet();
-      
-      public void clear()
-      {
-         modified.clear();
-         accessed.clear();
-      }
-
-      public void nodeModified(Fqn fqn)
-      {      
-         System.out.println("MyListener - Modified node " + fqn.toString());
-         modified.add(fqn);         
-      }
-
-      public void nodeCreated(Fqn fqn)
-      {      
-         System.out.println("MyListener - Created node " + fqn.toString());
-         modified.add(fqn); 
-      }   
-
-      public void nodeVisited(Fqn fqn)
-      {      
-         System.out.println("MyListener - Visited node " + fqn.toString());
-         accessed.add(fqn); 
-      }    
-      
-   }
-}

Copied: trunk/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/classloader/EntityQueryTestBean.java (from rev 58953, branches/Branch_4_0/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/classloader/EntityQueryTestBean.java)
===================================================================
--- branches/Branch_4_0/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/classloader/EntityQueryTestBean.java	2006-12-09 04:33:43 UTC (rev 58953)
+++ trunk/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/classloader/EntityQueryTestBean.java	2007-01-12 03:18:56 UTC (rev 59569)
@@ -0,0 +1,288 @@
+package org.jboss.ejb3.test.clusteredentity.classloader;
+
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import javax.ejb.Remote;
+import javax.ejb.Remove;
+import javax.ejb.Stateful;
+import javax.management.MBeanServer;
+import javax.management.ObjectName;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import javax.persistence.Query;
+
+import org.jboss.cache.AbstractCacheListener;
+import org.jboss.cache.Fqn;
+import org.jboss.cache.Cache;
+import org.jboss.cache.jmx.CacheJmxWrapperMBean;
+import org.jboss.logging.Logger;
+import org.jboss.mx.util.MBeanProxyExt;
+import org.jboss.mx.util.MBeanServerLocator;
+
+ at Stateful
+ at Remote(EntityQueryTest.class)
+public class EntityQueryTestBean implements EntityQueryTest
+{
+   private static final Logger log = Logger.getLogger(EntityQueryTestBean.class);
+   
+   @PersistenceContext
+   private EntityManager manager;
+   
+   private MyListener listener;
+
+   public EntityQueryTestBean()
+   {
+      try
+      {
+         //Just to initialise the cache with a listener
+         Cache cache = getCache();
+         listener = new MyListener();
+         cache.addCacheListener(listener);         
+      }
+      catch (Exception e)
+      {
+         throw new RuntimeException(e);
+      }
+   }
+   
+   public void updateAccountBranch(Integer id, String branch)
+   {
+      Account account = (Account) manager.find(Account.class, id);
+      account.setBranch(branch);
+   }
+   
+   public int getCountForBranch(String branch, boolean useNamed, boolean useRegion)
+   {
+      if (useNamed)
+         return getCountForBranchViaNamedQuery(branch, useRegion);
+      else
+         return getCountForBranchViaLocalQuery(branch, useRegion);
+   }
+   
+   private int getCountForBranchViaLocalQuery(String branch, boolean useRegion)
+   {
+      Query query = manager.createQuery("select account from Account as account where account.branch = ?1");
+      query.setParameter(1, branch);
+      if (useRegion)
+      {
+         query.setHint("org.hibernate.cacheRegion", "AccountRegion");
+      }
+      query.setHint("org.hibernate.cacheable", Boolean.TRUE);
+      return query.getResultList().size();
+      
+   }
+   
+   private int getCountForBranchViaNamedQuery(String branch, boolean useRegion)
+   {
+      String queryName = useRegion ? "account.bybranch.namedregion"
+                                   : "account.bybranch.default";
+      Query query = manager.createNamedQuery(queryName);
+      query.setParameter(1, branch);
+      return query.getResultList().size();      
+   }
+   
+   /* (non-Javadoc)
+    * @see org.jboss.ejb3.test.clusteredentity.EntityQueryTest#createAccount(org.jboss.ejb3.test.clusteredentity.AccountHolderPK, Integer, Integer)
+    */
+   public void createAccount(AccountHolderPK pk, Integer id, Integer openingBalance, String branch)
+   {
+      Account account = new Account();
+      account.setId(id);
+      account.setAccountHolder(pk);
+      account.setBalance(openingBalance);
+      account.setBranch(branch);
+      manager.persist(account);
+   }
+   
+   public void updateAccountBalance(Integer id, Integer newBalance)
+   {
+      Account account = (Account) manager.find(Account.class, id);
+      account.setBalance(newBalance);
+   }
+   
+   public String getBranch(AccountHolderPK pk, boolean useNamed, boolean useRegion)
+   {
+      if (useNamed)
+         return getBranchViaNamedQuery(pk, useRegion);
+      else
+         return getBranchViaLocalQuery(pk, useRegion);
+   }
+   
+   private String getBranchViaLocalQuery(AccountHolderPK pk, boolean useRegion)
+   {
+      Query query = manager.createQuery("select account.branch from Account as account where account.accountHolder = ?1");
+      query.setParameter(1, pk);
+      if (useRegion)
+      {
+         query.setHint("org.hibernate.cacheRegion", "AccountRegion");
+      }
+      query.setHint("org.hibernate.cacheable", Boolean.TRUE);
+      return (String) query.getResultList().get(0);
+   }
+   
+   /* (non-Javadoc)
+    * @see org.jboss.ejb3.test.clusteredentity.EntityQueryTest#getPostCodeViaNamedQuery(org.jboss.ejb3.test.clusteredentity.AccountHolderPK, boolean)
+    */
+   private String getBranchViaNamedQuery(AccountHolderPK pk, boolean useRegion)
+   {
+      String queryName = useRegion ? "account.branch.namedregion"
+                                   : "account.branch.default";
+      Query query = manager.createNamedQuery(queryName);
+      query.setParameter(1, pk);
+      return (String) query.getResultList().get(0);
+   }
+   public int getTotalBalance(AccountHolderPK pk, boolean useNamed, boolean useRegion)
+   {
+      if (useNamed)
+         return getTotalBalanceViaNamedQuery(pk, useRegion);
+      else
+         return getTotalBalanceViaLocalQuery(pk, useRegion);
+   }
+   
+   private int getTotalBalanceViaLocalQuery(AccountHolderPK pk, boolean useRegion)
+   {
+      Query query = manager.createQuery("select account.balance from Account as account where account.accountHolder = ?1");
+      query.setParameter(1, pk);
+      query.setHint("org.hibernate.cacheable", Boolean.TRUE);
+      return totalBalances(query);
+   }
+   
+   private int getTotalBalanceViaNamedQuery(AccountHolderPK pk, boolean useRegion)
+   {
+      String queryName = useRegion ? "account.totalbalance.namedregion"
+                                   : "account.totalbalance.default";
+      Query query = manager.createNamedQuery(queryName);
+      query.setParameter(1, pk);
+      return totalBalances(query);
+   }
+   
+   private int totalBalances(Query balanceQuery)
+   {
+      List results = balanceQuery.getResultList();
+      int total = 0;
+      if (results != null)
+      {
+         for (Iterator it = results.iterator(); it.hasNext();)
+         {            
+            total += ((Integer) it.next()).intValue();
+            System.out.println("Total = " + total);
+         }
+      }
+      return total;      
+   }
+   
+   public boolean getSawRegionModification(String regionName)
+   {
+      return getSawRegion(regionName, listener.modified);
+   }
+   
+   public boolean getSawRegionAccess(String regionName)
+   {
+      return getSawRegion(regionName, listener.accessed);
+   }
+   
+   private boolean getSawRegion(String regionName, Set sawEvent)
+   {
+      boolean saw = false;
+      Fqn fqn = Fqn.fromString("/" + regionName.replace(".", "/"));
+      for (Iterator it = sawEvent.iterator(); it.hasNext();)
+      {
+         Fqn modified = (Fqn) it.next();
+         if (modified.isChildOf(fqn))
+         {
+            it.remove();
+            saw = true;
+         }
+      }
+   return saw;
+      
+   }
+   
+   public void cleanup()
+   {  
+      Query query = manager.createQuery("select account from Account as account");
+      List accts = query.getResultList();
+      if (accts != null)
+      {
+         for (Iterator it = accts.iterator(); it.hasNext();)
+         {
+            try
+            {
+               Account acct = (Account) it.next();
+               log.info("Removing " + acct);
+               manager.remove(acct);
+            }
+            catch (Exception ignored) {}
+         }
+      }
+   }
+   
+   @Remove
+   public void remove()
+   {
+      cleanup();
+      listener.clear();
+      try
+      {
+         getCache().removeCacheListener(listener);
+      }
+      catch (Exception e)
+      {
+         e.printStackTrace();
+      }
+   }
+
+   private Cache getCache() throws Exception
+   {
+      MBeanServer server = MBeanServerLocator.locateJBoss();
+      CacheJmxWrapperMBean proxy = (CacheJmxWrapperMBean)MBeanProxyExt.create(CacheJmxWrapperMBean.class, new ObjectName("jboss.cache:service=EJB3EntityTreeCache"), server);
+      Cache cache = proxy.getCache();
+      
+      return cache;
+   }
+
+   class MyListener extends AbstractCacheListener
+   {
+      HashSet modified = new HashSet(); 
+      HashSet accessed = new HashSet();
+      
+      public void clear()
+      {
+         modified.clear();
+         accessed.clear();
+      }
+      
+      @Override
+      public void nodeModified(Fqn fqn, boolean pre, boolean isLocal, 
+                               ModificationType type, Map mods)
+      {
+         if (!pre)
+         {
+            System.out.println("MyListener - Modified node " + fqn.toString());
+            modified.add(fqn);
+         }
+      }
+
+      @Override
+      public void nodeCreated(Fqn fqn, boolean pre, boolean isLocal)
+      {   
+         if (!pre)
+         {
+            System.out.println("MyListener - Created node " + fqn.toString());
+            modified.add(fqn);
+         }
+      }   
+
+      @Override
+      public void nodeVisited(Fqn fqn, boolean pre)
+      {      
+         System.out.println("MyListener - Visited node " + fqn.toString());
+         accessed.add(fqn); 
+      }    
+      
+   }
+}

Copied: trunk/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/embeddedid (from rev 58953, branches/Branch_4_0/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/embeddedid)

Deleted: trunk/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/embeddedid/EmbeddedIdTest.java
===================================================================
--- branches/Branch_4_0/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/embeddedid/EmbeddedIdTest.java	2006-12-09 04:33:43 UTC (rev 58953)
+++ trunk/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/embeddedid/EmbeddedIdTest.java	2007-01-12 03:18:56 UTC (rev 59569)
@@ -1,44 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2006, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.ejb3.test.clusteredentity.embeddedid;
-
-import java.util.List;
-
-
-/**
- * SFSB interface for {@link EmbeddedIdTestBean}.
- * 
- * @author <a href="brian.stansberry at jboss.com">Brian Stansberry</a>
- * @version $Revision: 1.1 $
- */
-public interface EmbeddedIdTest
-{
-   static final MusicianPK DEFAULT_PK = new MusicianPK("Brian", "Stansberry", "None of your business");
-   
-   void createMusician(MusicianPK pk, String instrument);
-   
-   List<MusicianPK> getMusiciansForInstrument(String instrument, boolean useNamedRegion);
-   
-   void cleanup();
-   
-   void remove();
-}

Copied: trunk/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/embeddedid/EmbeddedIdTest.java (from rev 58953, branches/Branch_4_0/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/embeddedid/EmbeddedIdTest.java)

Deleted: trunk/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/embeddedid/EmbeddedIdTestBean.java
===================================================================
--- branches/Branch_4_0/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/embeddedid/EmbeddedIdTestBean.java	2006-12-09 04:33:43 UTC (rev 58953)
+++ trunk/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/embeddedid/EmbeddedIdTestBean.java	2007-01-12 03:18:56 UTC (rev 59569)
@@ -1,109 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2006, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.ejb3.test.clusteredentity.embeddedid;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import javax.ejb.Remote;
-import javax.ejb.Remove;
-import javax.ejb.Stateful;
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
-import javax.persistence.Query;
-
-import org.jboss.logging.Logger;
-
-/**
- * SFSB used for testing replicated query caching with an @EmbeddedId.
- * 
- * @author <a href="brian.stansberry at jboss.com">Brian Stansberry</a>
- * @version $Revision: 1.1 $
- */
- at Stateful
- at Remote(EmbeddedIdTest.class)
-public class EmbeddedIdTestBean implements EmbeddedIdTest
-{
-   private static final Logger log = Logger.getLogger(EmbeddedIdTestBean.class);
-   
-   @PersistenceContext
-   private EntityManager manager;
-
-   public void createMusician(MusicianPK pk, String instrument)
-   {
-      Musician musician = new Musician();
-      musician.setId(pk);
-      musician.setInstrument(instrument);
-      manager.persist(musician);
-   }
-
-   public List<MusicianPK> getMusiciansForInstrument(String instrument, boolean useNamedRegion)
-   {
-      String queryName = useNamedRegion ? "musician.byinstrument.namedregion"
-                                        : "musician.byinstrument.default";
-      Query query = manager.createNamedQuery(queryName);
-      query.setParameter(1, instrument);
-      List<MusicianPK> result = new ArrayList<MusicianPK>();
-      List users = query.getResultList();
-      if (users != null)
-      {
-         for (Iterator it = users.iterator(); it.hasNext();)
-         {
-            result.add(((Musician) it.next()).getId());
-         }
-      }
-      return result;
-   }
-
-   /* (non-Javadoc)
-    * @see org.jboss.ejb3.test.clusteredentity.classloader.UserTest#cleanup()
-    */
-   public void cleanup()
-   {
-      Query query = manager.createQuery("select musician from Musician as musician");
-      List accts = query.getResultList();
-      if (accts != null)
-      {
-         for (Iterator it = accts.iterator(); it.hasNext();)
-         {
-            try
-            {
-               Musician musician = (Musician) it.next();
-               log.info("Removing " + musician);
-               manager.remove(musician);
-            }
-            catch (Exception ignored) {}
-         }
-      }
-   }
-
-   /* (non-Javadoc)
-    * @see org.jboss.ejb3.test.clusteredentity.classloader.UserTest#remove()
-    */
-   @Remove
-   public void remove()
-   {
-      cleanup();
-   }
-
-}

Copied: trunk/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/embeddedid/EmbeddedIdTestBean.java (from rev 58953, branches/Branch_4_0/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/embeddedid/EmbeddedIdTestBean.java)

Deleted: trunk/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/embeddedid/Musician.java
===================================================================
--- branches/Branch_4_0/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/embeddedid/Musician.java	2006-12-09 04:33:43 UTC (rev 58953)
+++ trunk/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/embeddedid/Musician.java	2007-01-12 03:18:56 UTC (rev 59569)
@@ -1,73 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2006, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.ejb3.test.clusteredentity.embeddedid;
-
-import javax.persistence.EmbeddedId;
-import javax.persistence.Entity;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.QueryHint;
-
-import org.hibernate.annotations.Cache;
-import org.hibernate.annotations.CacheConcurrencyStrategy;
-
-/**
- * Entity used for testing replicated query caching with an @EmbeddedId.
- * 
- * @author <a href="brian.stansberry at jboss.com">Brian Stansberry</a>
- * @version $Revision: 1.1 $
- */
- at Entity
- at Cache (usage=CacheConcurrencyStrategy.TRANSACTIONAL)
- at NamedQueries({
-   @NamedQuery(name="musician.byinstrument.default",query="select musician from Musician as musician where musician.instrument = ?1",
-               hints={@QueryHint(name="org.hibernate.cacheable",value="true")}),
-   @NamedQuery(name="musician.byinstrument.namedregion",query="select musician from Musician as musician where musician.instrument = ?1",
-         hints={@QueryHint(name="org.hibernate.cacheable",value="true"),
-                @QueryHint(name="org.hibernate.cacheable",value="true")
-               })
-})
-public class Musician
-{
-   private MusicianPK id;
-   private String instrument;
-   
-   @EmbeddedId
-   public MusicianPK getId()
-   {
-      return id;
-   }
-   public void setId(MusicianPK id)
-   {
-      this.id = id;
-   }
-   
-   public String getInstrument()
-   {
-      return instrument;
-   }
-   public void setInstrument(String instrument)
-   {
-      this.instrument = instrument;
-   }
-   
-}

Copied: trunk/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/embeddedid/Musician.java (from rev 58953, branches/Branch_4_0/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/embeddedid/Musician.java)

Deleted: trunk/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/embeddedid/MusicianPK.java
===================================================================
--- branches/Branch_4_0/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/embeddedid/MusicianPK.java	2006-12-09 04:33:43 UTC (rev 58953)
+++ trunk/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/embeddedid/MusicianPK.java	2007-01-12 03:18:56 UTC (rev 59569)
@@ -1,127 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2006, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.ejb3.test.clusteredentity.embeddedid;
-
-import java.io.Serializable;
-
-import javax.persistence.Embeddable;
-
-/**
- * Primary key for the {@link Musician} entity.
- * 
- * @author <a href="brian.stansberry at jboss.com">Brian Stansberry</a>
- * @version $Revision: 1.1 $
- */
- at Embeddable
-public class MusicianPK implements Serializable
-{
-   private static final long serialVersionUID = 1L;
-   
-   private String firstName;
-   private String lastName;
-   private String ssn;
-   
-   /**
-    * Default constructor
-    */
-   public MusicianPK() {}
-   
-   public MusicianPK(String firstName, String lastName, String ssn)
-   {
-      this.firstName = firstName;
-      this.lastName = lastName;
-      this.ssn = ssn;
-   }
-   
-   public String getFirstName()
-   {
-      return firstName;
-   }
-   
-   public void setFirstName(String firstName)
-   {
-      this.firstName = firstName;
-   }
-   
-   public String getLastName()
-   {
-      return lastName;
-   }
-   
-   public void setLastName(String lastName)
-   {
-      this.lastName = lastName;
-   }
-   
-   public String getSsn()
-   {
-      return ssn;
-   }
-   
-   public void setSsn(String ssn)
-   {
-      this.ssn = ssn;
-   }
-
-   @Override
-   public boolean equals(Object obj)
-   {
-      boolean equal = (this == obj);
-      
-      if (!equal && obj instanceof MusicianPK)
-      {
-         MusicianPK other = (MusicianPK) obj;
-         
-         equal = firstName.equals(other.firstName)
-                  && lastName.equals(other.lastName)
-                  && ssn.equals(other.ssn);
-      }
-      return equal;
-   }
-
-   @Override
-   public int hashCode()
-   {
-      int result = 19;
-      result = result * 29 + firstName.hashCode();
-      result = result * 29 + lastName.hashCode();
-      result = result * 29 + ssn.hashCode();
-      return result;
-   }
-
-   @Override
-   public String toString()
-   {
-      StringBuffer sb = new StringBuffer(getClass().getName());
-      sb.append("[firstName=");
-      sb.append(firstName);
-      sb.append(",lastName=");
-      sb.append(lastName);
-      sb.append(",ssn=");
-      sb.append(ssn);
-      sb.append("]");
-      return sb.toString();
-   }
-   
-   
-   
-}

Copied: trunk/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/embeddedid/MusicianPK.java (from rev 58953, branches/Branch_4_0/ejb3/src/test/org/jboss/ejb3/test/clusteredentity/embeddedid/MusicianPK.java)




More information about the jboss-cvs-commits mailing list