[hibernate-commits] Hibernate SVN: r11688 - in trunk/HibernateExt/shards/src: java/org/hibernate/shards/session and 2 other directories.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Wed Jun 13 23:27:43 EDT 2007


Author: buurzgoth
Date: 2007-06-13 23:27:42 -0400 (Wed, 13 Jun 2007)
New Revision: 11688

Modified:
   trunk/HibernateExt/shards/src/java/org/hibernate/shards/Shard.java
   trunk/HibernateExt/shards/src/java/org/hibernate/shards/ShardImpl.java
   trunk/HibernateExt/shards/src/java/org/hibernate/shards/session/ShardedSessionImpl.java
   trunk/HibernateExt/shards/src/test/org/hibernate/shards/ShardDefaultMock.java
   trunk/HibernateExt/shards/src/test/org/hibernate/shards/integration/model/ModelPermutedIntegrationTest.java
Log:
Add replicate(). Inline some stuff from Shard.

Modified: trunk/HibernateExt/shards/src/java/org/hibernate/shards/Shard.java
===================================================================
--- trunk/HibernateExt/shards/src/java/org/hibernate/shards/Shard.java	2007-06-13 19:52:17 UTC (rev 11687)
+++ trunk/HibernateExt/shards/src/java/org/hibernate/shards/Shard.java	2007-06-14 03:27:42 UTC (rev 11688)
@@ -19,7 +19,6 @@
 package org.hibernate.shards;
 
 import org.hibernate.Criteria;
-import org.hibernate.LockMode;
 import org.hibernate.Query;
 import org.hibernate.classic.Session;
 import org.hibernate.engine.SessionFactoryImplementor;
@@ -31,7 +30,6 @@
 import org.hibernate.shards.query.ShardedQuery;
 import org.hibernate.shards.session.OpenSessionEvent;
 
-import java.io.Serializable;
 import java.util.List;
 import java.util.Set;
 
@@ -90,131 +88,16 @@
   Criteria establishCriteria(ShardedCriteria shardedCriteria);
 
   /**
-   * @see Session#get(Class, Serializable)
-   */
-  Object get(Class<?> clazz, Serializable id);
-
-  /**
-   * @see Session#get(Class, Serializable, LockMode)
-   */
-  Object get(Class<?> clazz, Serializable id, LockMode lockMode);
-
-  /**
-   * @see Session#get(String, Serializable)
-   */
-  Object get(String entityName, Serializable id);
-
-  /**
-   * @see Session#get(String, Serializable, LockMode)
-   */
-  Object get(String entityName, Serializable id, LockMode lockMode);
-
-  /**
    * @see Criteria#list()
    */
   List<Object> list(CriteriaId criteriaId);
 
   /**
-   * @see Session#load(Class, Serializable)
-   */
-  Object load(Class<?> clazz, Serializable id);
-
-  /**
-   * @see Session#load(Class, Serializable, LockMode)
-   */
-  Object load(Class<?> clazz, Serializable id, LockMode lockMode);
-
-  /**
-   * @see Session#load(String, Serializable)
-   */
-  Object load(String entityName, Serializable id);
-
-  /**
-   * @see Session#load(String, Serializable, LockMode)
-   */
-  Object load(String entityName, Serializable id, LockMode lockMode);
-
-  /**
-   * @see Session#load(Object, Serializable)
-   */
-  void load(Object object, Serializable id);
-
-  /**
-   * @see Session#lock(Object, LockMode)
-   */
-  void lock(Object object, LockMode lockMode);
-
-  /**
-   * @see Session#lock(String, Object, LockMode)
-   */
-  void lock(String entityName, Object object, LockMode lockMode);
-
-  /**
    * @see Criteria#uniqueResult()
    */
   Object uniqueResult(CriteriaId criteriaId);
 
   /**
-   * @see Session#save(String, Object)
-   */
-  Serializable save(String entityName, Object obj);
-
-  /**
-   * @see Session#persist(String, Object)
-   */
-  void persist(String entityName, Object obj);
-
-  /**
-   * @see Session#refresh(Object)
-   */
-  void refresh(Object object);
-
-  /**
-   * @see Session#refresh(Object, LockMode)
-   */
-  void refresh(Object object, LockMode lockMode);
-
-  /**
-   * @see Session#saveOrUpdate(Object)
-   */
-  void saveOrUpdate(Object obj);
-
-  /**
-   * @see Session#saveOrUpdate(String, Object)
-   */
-  void saveOrUpdate(String entityName, Object obj);
-
-  /**
-   * @see Session#update(Object)
-   */
-  void update(Object object);
-
-  /**
-   * @see Session#update(String, Object)
-   */
-  void update(String entityName, Object obj);
-
-  /**
-   * @see Session#delete(Object)
-   */
-  void delete(Object object);
-
-  /**
-   * @see Session#delete(String, Object)
-   */
-  void delete(String entityName, Object object);
-
-  /**
-   * @see Session#getCurrentLockMode(Object)
-   */
-  LockMode getCurrentLockMode(Object object);
-
-  /**
-   * @see Session#getEntityName(Object)
-   */
-  String getEntityName(Object object);
-
-  /**
    * @return the ids of the virtual shards that are mapped to this physical shard.
    * The returned Set is unmodifiable.
    */
@@ -248,8 +131,4 @@
    * @see Query#uniqueResult()
    */
   Object uniqueResult(QueryId queryId);
-
-  void merge(Object object);
-
-  void merge(String entityName, Object object);
 }

Modified: trunk/HibernateExt/shards/src/java/org/hibernate/shards/ShardImpl.java
===================================================================
--- trunk/HibernateExt/shards/src/java/org/hibernate/shards/ShardImpl.java	2007-06-13 19:52:17 UTC (rev 11687)
+++ trunk/HibernateExt/shards/src/java/org/hibernate/shards/ShardImpl.java	2007-06-14 03:27:42 UTC (rev 11688)
@@ -20,7 +20,6 @@
 
 import org.hibernate.Criteria;
 import org.hibernate.Interceptor;
-import org.hibernate.LockMode;
 import org.hibernate.Query;
 import org.hibernate.classic.Session;
 import org.hibernate.engine.SessionFactoryImplementor;
@@ -36,7 +35,6 @@
 import org.hibernate.shards.util.Preconditions;
 import org.hibernate.shards.util.Sets;
 
-import java.io.Serializable;
 import java.util.*;
 
 /**
@@ -245,50 +243,6 @@
     return hashCode;
   }
 
-  public Object get(Class<?> clazz, Serializable id) {
-    return establishSession().get(clazz, id);
-  }
-
-  public Object get(Class<?> clazz, Serializable id, LockMode lockMode) {
-    return establishSession().get(clazz, id, lockMode);
-  }
-
-  public Object get(String entityName, Serializable id) {
-    return establishSession().get(entityName, id);
-  }
-
-  public Object get(String entityName, Serializable id, LockMode lockMode) {
-    return establishSession().get(entityName, id, lockMode);
-  }
-
-  public Object load(Class<?> clazz, Serializable id) {
-    return establishSession().load(clazz, id);
-  }
-
-  public Object load(Class<?> clazz, Serializable id, LockMode lockMode) {
-    return establishSession().load(clazz, id, lockMode);
-  }
-
-  public Object load(String entityName, Serializable id) {
-    return establishSession().load(entityName, id);
-  }
-
-  public Object load(String entityName, Serializable id, LockMode lockMode) {
-    return establishSession().load(entityName, id, lockMode);
-  }
-
-  public void load(Object object, Serializable id) {
-    establishSession().load(object, id);
-  }
-
-  public void lock(Object object, LockMode lockMode) {
-    establishSession().lock(object, lockMode);
-  }
-
-  public void lock(String entityName, Object object, LockMode lockMode) {
-    establishSession().lock(entityName, object, lockMode);
-  }
-
   @SuppressWarnings("unchecked")
   public List<Object> list(CriteriaId criteriaId) {
     return criteriaMap.get(criteriaId).list();
@@ -332,54 +286,6 @@
     return criteriaEventMap;
   }
 
-  public Serializable save(String entityName, Object obj) {
-    return establishSession().save(entityName, obj);
-  }
-
-  public void persist(String entityName, Object obj) {
-    establishSession().persist(entityName, obj);
-  }
-
-  public void refresh(Object object) {
-    establishSession().refresh(object);
-  }
-
-  public void refresh(Object object, LockMode lockMode) {
-    establishSession().refresh(object, lockMode);
-  }
-
-  public void saveOrUpdate(Object obj) {
-    establishSession().saveOrUpdate(obj);
-  }
-
-  public void saveOrUpdate(String entityName, Object obj) {
-    establishSession().saveOrUpdate(entityName, obj);
-  }
-
-  public void update(Object object) {
-    establishSession().update(object);
-  }
-
-  public void update(String entityName, Object obj) {
-    establishSession().update(entityName, obj);
-  }
-
-  public void delete(Object object) {
-    establishSession().delete(object);
-  }
-
-  public void delete(String entityName, Object object) {
-    establishSession().delete(entityName, object);
-  }
-
-  public LockMode getCurrentLockMode(Object object) {
-    return establishSession().getCurrentLockMode(object);
-  }
-
-  public String getEntityName(Object object) {
-    return establishSession().getEntityName(object);
-  }
-
   @Override
   public String toString() {
     return getSessionFactoryImplementor().getSettings().getSessionFactoryName();
@@ -425,12 +331,5 @@
     events.addLast(event);
   }
 
-  public void merge(Object object) {
-    establishSession().merge(object);
-  }
-
-  public void merge(String entityName, Object object) {
-    establishSession().merge(entityName, object);
-  }
 }
 

Modified: trunk/HibernateExt/shards/src/java/org/hibernate/shards/session/ShardedSessionImpl.java
===================================================================
--- trunk/HibernateExt/shards/src/java/org/hibernate/shards/session/ShardedSessionImpl.java	2007-06-13 19:52:17 UTC (rev 11687)
+++ trunk/HibernateExt/shards/src/java/org/hibernate/shards/session/ShardedSessionImpl.java	2007-06-14 03:27:42 UTC (rev 11688)
@@ -238,7 +238,7 @@
   public Object get(final Class clazz, final Serializable id) throws HibernateException {
     ShardOperation<Object> shardOp = new ShardOperation<Object>() {
       public Object execute(Shard shard) {
-        return shard.get(clazz, id);
+        return shard.establishSession().get(clazz, id);
       }
 
       public String getOperationName() {
@@ -252,7 +252,7 @@
       throws HibernateException {
     ShardOperation<Object> shardOp = new ShardOperation<Object>() {
       public Object execute(Shard shard) {
-        return shard.get(clazz, id, lockMode);
+        return shard.establishSession().get(clazz, id, lockMode);
       }
 
       public String getOperationName() {
@@ -267,7 +267,7 @@
       throws HibernateException {
     ShardOperation<Object> shardOp = new ShardOperation<Object>() {
       public Object execute(Shard shard) {
-        return shard.get(entityName, id);
+        return shard.establishSession().get(entityName, id);
       }
 
       public String getOperationName() {
@@ -281,7 +281,7 @@
       throws HibernateException {
     ShardOperation<Object> shardOp = new ShardOperation<Object>() {
       public Object execute(Shard shard) {
-        return shard.get(entityName, id, lockMode);
+        return shard.establishSession().get(entityName, id, lockMode);
       }
 
       public String getOperationName() {
@@ -497,7 +497,7 @@
     List<ShardId> shardIds = selectShardIdsFromShardResolutionStrategyData(new
                                  ShardResolutionStrategyDataImpl(clazz, id));
     if (shardIds.size() == 1) {
-      return shardIdsToShards.get(shardIds.get(0)).load(clazz, id, lockMode);
+      return shardIdsToShards.get(shardIds.get(0)).establishSession().load(clazz, id, lockMode);
     } else {
       Object result = get(clazz, id, lockMode);
       if (result == null) {
@@ -512,7 +512,7 @@
     List<ShardId> shardIds = selectShardIdsFromShardResolutionStrategyData(new
                                  ShardResolutionStrategyDataImpl(entityName, id));
     if (shardIds.size() == 1) {
-      return shardIdsToShards.get(shardIds.get(0)).load(entityName, id, lockMode);
+      return shardIdsToShards.get(shardIds.get(0)).establishSession().load(entityName, id, lockMode);
     } else {
       Object result = get(entityName, id, lockMode);
       if (result == null) {
@@ -527,7 +527,7 @@
     List<ShardId> shardIds = selectShardIdsFromShardResolutionStrategyData(new
                                  ShardResolutionStrategyDataImpl(clazz, id));
     if (shardIds.size() == 1) {
-      return shardIdsToShards.get(shardIds.get(0)).load(clazz, id);
+      return shardIdsToShards.get(shardIds.get(0)).establishSession().load(clazz, id);
     } else {
       Object result = get(clazz, id);
       if (result == null) {
@@ -542,7 +542,7 @@
     List<ShardId> shardIds = selectShardIdsFromShardResolutionStrategyData(new
                                  ShardResolutionStrategyDataImpl(entityName, id));
     if (shardIds.size() == 1) {
-      return shardIdsToShards.get(shardIds.get(0)).load(entityName, id);
+      return shardIdsToShards.get(shardIds.get(0)).establishSession().load(entityName, id);
     } else {
       Object result = get(entityName, id);
       if (result == null) {
@@ -556,7 +556,7 @@
     List<ShardId> shardIds = selectShardIdsFromShardResolutionStrategyData(new
                                  ShardResolutionStrategyDataImpl(object.getClass(), id));
     if (shardIds.size() == 1) {
-      shardIdsToShards.get(shardIds.get(0)).load(object, id);
+      shardIdsToShards.get(shardIds.get(0)).establishSession().load(object, id);
     } else {
       Object result = get(object.getClass(), id);
       if (result == null) {
@@ -564,25 +564,36 @@
       } else {
         Shard objectShard = getShardForObject(result, shardIdListToShardList(shardIds));
         evict(result);
-        objectShard.load(object, id);
+        objectShard.establishSession().load(object, id);
       }
     }
   }
 
-  /**
-   * Unsupported.  This is a scope decision, not a technical decision.
-   */
   public void replicate(Object object, ReplicationMode replicationMode)
       throws HibernateException {
-    throw new UnsupportedOperationException();
+    replicate(null, object, replicationMode);
   }
 
-  /**
-   * Unsupported.  This is a scope decision, not a technical decision.
-   */
   public void replicate(String entityName, Object object,
       ReplicationMode replicationMode) throws HibernateException {
-    throw new UnsupportedOperationException();
+    Serializable id = extractId(object);
+    List<ShardId> shardIds = selectShardIdsFromShardResolutionStrategyData(new
+                                 ShardResolutionStrategyDataImpl(object.getClass(), id));
+    if (shardIds.size() == 1) {
+      shardIdsToShards.get(shardIds.get(0)).establishSession().replicate(entityName, object, replicationMode);
+    } else {
+      Object result = null;
+      if (id != null) result = get(object.getClass(), id);
+      if (result == null) {  // non-persisted object
+        ShardId shardId = selectShardIdForNewObject(object);
+        setCurrentSubgraphShardId(shardId);
+        shardIdsToShards.get(shardId).establishSession().replicate(entityName, object, replicationMode);
+      } else {
+        Shard objectShard = getShardForObject(result, shardIdListToShardList(shardIds));
+        evict(result);
+        objectShard.establishSession().replicate(entityName, object, replicationMode);
+      }
+    }
   }
 
   public Serializable save(String entityName, Object object) throws HibernateException {
@@ -594,7 +605,7 @@
     Preconditions.checkNotNull(shardId);
     setCurrentSubgraphShardId(shardId);
     log.debug(String.format("Saving object of type %s to shard %s", object.getClass(), shardId));
-    return shardIdsToShards.get(shardId).save(entityName, object);
+    return shardIdsToShards.get(shardId).establishSession().save(entityName, object);
   }
 
   ShardId selectShardIdForNewObject(Object obj) {
@@ -728,11 +739,11 @@
       throws HibernateException {
     SaveOrUpdateOperation op = new SaveOrUpdateOperation() {
       public void saveOrUpdate(Shard shard, Object object) {
-        shard.saveOrUpdate(entityName, object);
+        shard.establishSession().saveOrUpdate(entityName, object);
       }
 
       public void merge(Shard shard, Object object) {
-        shard.merge(entityName, object);
+        shard.establishSession().merge(entityName, object);
       }
     };
     applySaveOrUpdateOperation(op, object);
@@ -784,11 +795,11 @@
   private static final UpdateOperation SIMPLE_UPDATE_OPERATION =
       new UpdateOperation() {
         public void update(Shard shard, Object object) {
-          shard.update(object);
+          shard.establishSession().update(object);
         }
 
         public void merge(Shard shard, Object object) {
-          shard.merge(object);
+          shard.establishSession().merge(object);
         }
       };
 
@@ -838,11 +849,11 @@
       throws HibernateException {
     UpdateOperation op = new UpdateOperation() {
       public void update(Shard shard, Object object) {
-        shard.update(entityName, object);
+        shard.establishSession().update(entityName, object);
       }
 
       public void merge(Shard shard, Object object) {
-        shard.merge(entityName, object);
+        shard.establishSession().merge(entityName, object);
       }
     };
     applyUpdateOperation(op, object);
@@ -887,7 +898,7 @@
     Preconditions.checkNotNull(shardId);
     setCurrentSubgraphShardId(shardId);
     log.debug(String.format("Persisting object of type %s to shard %s", object.getClass(), shardId));
-    shardIdsToShards.get(shardId).persist(entityName, object);
+    shardIdsToShards.get(shardId).establishSession().persist(entityName, object);
   }
 
   private interface DeleteOperation {
@@ -931,7 +942,7 @@
       new DeleteOperation() {
 
         public void delete(Shard shard, Object object) {
-          shard.delete(object);
+          shard.establishSession().delete(object);
         }
       };
 
@@ -943,7 +954,7 @@
       throws HibernateException {
     DeleteOperation op = new DeleteOperation() {
       public void delete(Shard shard, Object object) {
-        shard.delete(entityName, object);
+        shard.establishSession().delete(entityName, object);
       }
     };
     applyDeleteOperation(op, object);
@@ -952,7 +963,7 @@
   public void lock(final Object object, final LockMode lockMode) throws HibernateException {
     ShardOperation<Void> op = new ShardOperation<Void>() {
       public Void execute(Shard s) {
-        s.lock(object, lockMode);
+        s.establishSession().lock(object, lockMode);
         return null;
       }
       public String getOperationName() {
@@ -966,7 +977,7 @@
       throws HibernateException {
     ShardOperation<Void> op = new ShardOperation<Void>() {
       public Void execute(Shard s) {
-        s.lock(entityName, object, lockMode);
+        s.establishSession().lock(entityName, object, lockMode);
         return null;
       }
       public String getOperationName() {
@@ -1005,7 +1016,7 @@
   public void refresh(final Object object) throws HibernateException {
     RefreshOperation op = new RefreshOperation() {
       public void refresh(Shard shard, Object object) {
-        shard.refresh(object);
+        shard.establishSession().refresh(object);
       }
     };
     applyRefreshOperation(op, object);
@@ -1015,7 +1026,7 @@
       throws HibernateException {
     RefreshOperation op = new RefreshOperation() {
       public void refresh(Shard shard, Object object) {
-        shard.refresh(object, lockMode);
+        shard.establishSession().refresh(object, lockMode);
       }
     };
     applyRefreshOperation(op, object);
@@ -1024,7 +1035,7 @@
   public LockMode getCurrentLockMode(final Object object) throws HibernateException {
     ShardOperation<LockMode> invoker = new ShardOperation<LockMode>() {
       public LockMode execute(Shard s) {
-        return s.getCurrentLockMode(object);
+        return s.establishSession().getCurrentLockMode(object);
       }
       public String getOperationName() {
         return "getCurrentLockmode(Object object)";
@@ -1121,7 +1132,7 @@
   public String getEntityName(final Object object) throws HibernateException {
     ShardOperation<String> invoker = new ShardOperation<String>() {
       public String execute(Shard s) {
-        return s.getEntityName(object);
+        return s.establishSession().getEntityName(object);
       }
       public String getOperationName() {
         return "getEntityName(Object object)";
@@ -1399,11 +1410,11 @@
 
   private static final SaveOrUpdateOperation SAVE_OR_UPDATE_SIMPLE = new SaveOrUpdateOperation() {
     public void saveOrUpdate(Shard shard, Object object) {
-      shard.saveOrUpdate(object);
+      shard.establishSession().saveOrUpdate(object);
     }
 
     public void merge(Shard shard, Object object) {
-      shard.merge(object);
+      shard.establishSession().merge(object);
     }
   };
 

Modified: trunk/HibernateExt/shards/src/test/org/hibernate/shards/ShardDefaultMock.java
===================================================================
--- trunk/HibernateExt/shards/src/test/org/hibernate/shards/ShardDefaultMock.java	2007-06-13 19:52:17 UTC (rev 11687)
+++ trunk/HibernateExt/shards/src/test/org/hibernate/shards/ShardDefaultMock.java	2007-06-14 03:27:42 UTC (rev 11688)
@@ -19,7 +19,6 @@
 package org.hibernate.shards;
 
 import org.hibernate.Criteria;
-import org.hibernate.LockMode;
 import org.hibernate.Query;
 import org.hibernate.classic.Session;
 import org.hibernate.engine.SessionFactoryImplementor;
@@ -31,7 +30,6 @@
 import org.hibernate.shards.query.ShardedQuery;
 import org.hibernate.shards.session.OpenSessionEvent;
 
-import java.io.Serializable;
 import java.util.List;
 import java.util.Set;
 
@@ -69,51 +67,6 @@
     throw new UnsupportedOperationException();
   }
 
-  public Object get(Class<?> clazz, Serializable id) {
-    throw new UnsupportedOperationException();
-  }
-
-  public Object get(Class<?> clazz, Serializable id, LockMode lockMode) {
-    throw new UnsupportedOperationException();
-  }
-
-  public Object get(String entityName, Serializable id) {
-    throw new UnsupportedOperationException();
-  }
-
-  public Object get(String entityName, Serializable id, LockMode lockMode) {
-    throw new UnsupportedOperationException();
-  }
-
-
-  public Object load(Class<?> clazz, Serializable id) {
-    throw new UnsupportedOperationException();
-  }
-
-  public Object load(Class<?> clazz, Serializable id, LockMode lockMode) {
-    throw new UnsupportedOperationException();
-  }
-
-  public Object load(String entityName, Serializable id) {
-    throw new UnsupportedOperationException();
-  }
-
-  public Object load(String entityName, Serializable id, LockMode lockMode) {
-    throw new UnsupportedOperationException();
-  }
-
-  public void load(Object object, Serializable id) {
-    throw new UnsupportedOperationException();
-  }
-
-  public void lock(Object object, LockMode lockMode) {
-    throw new UnsupportedOperationException();
-  }
-
-  public void lock(String entityName, Object object, LockMode lockMode) {
-    throw new UnsupportedOperationException();
-  }
-
   public List<Object> list(CriteriaId criteriaId) {
     throw new UnsupportedOperationException();
   }
@@ -122,58 +75,6 @@
     throw new UnsupportedOperationException();
   }
 
-  public Serializable save(Object obj) {
-    throw new UnsupportedOperationException();
-  }
-
-  public Serializable save(String entityName, Object obj) {
-    throw new UnsupportedOperationException();
-  }
-
-  public void persist(String entityName, Object obj) {
-    throw new UnsupportedOperationException();
-  }
-
-  public void refresh(Object object) {
-    throw new UnsupportedOperationException();
-  }
-
-  public void refresh(Object object, LockMode lockMode) {
-    throw new UnsupportedOperationException();
-  }
-
-  public void saveOrUpdate(Object obj) {
-    throw new UnsupportedOperationException();
-  }
-
-  public void saveOrUpdate(String entityName, Object obj) {
-    throw new UnsupportedOperationException();
-  }
-
-  public void update(Object object) {
-    throw new UnsupportedOperationException();
-  }
-
-  public void update(String entityName, Object obj) {
-    throw new UnsupportedOperationException();
-  }
-
-  public void delete(Object object) {
-    throw new UnsupportedOperationException();
-  }
-
-  public void delete(String entityName, Object object) {
-    throw new UnsupportedOperationException();
-  }
-
-  public LockMode getCurrentLockMode(Object object) {
-    throw new UnsupportedOperationException();
-  }
-
-  public String getEntityName(Object object) {
-    throw new UnsupportedOperationException();
-  }
-
   public Set<ShardId> getShardIds() {
     throw new UnsupportedOperationException();
   }
@@ -197,12 +98,4 @@
   public Object uniqueResult(QueryId queryId) {
     throw new UnsupportedOperationException();
   }
-
-  public void merge(Object object) {
-    throw new UnsupportedOperationException();
-  }
-
-  public void merge(String entityName, Object object) {
-    throw new UnsupportedOperationException();
-  }
 }

Modified: trunk/HibernateExt/shards/src/test/org/hibernate/shards/integration/model/ModelPermutedIntegrationTest.java
===================================================================
--- trunk/HibernateExt/shards/src/test/org/hibernate/shards/integration/model/ModelPermutedIntegrationTest.java	2007-06-13 19:52:17 UTC (rev 11687)
+++ trunk/HibernateExt/shards/src/test/org/hibernate/shards/integration/model/ModelPermutedIntegrationTest.java	2007-06-14 03:27:42 UTC (rev 11688)
@@ -18,10 +18,7 @@
 
 package org.hibernate.shards.integration.model;
 
-import org.hibernate.HibernateException;
-import org.hibernate.LockMode;
-import org.hibernate.SessionFactory;
-import org.hibernate.TransactionException;
+import org.hibernate.*;
 import org.hibernate.classic.Session;
 import org.hibernate.criterion.Projections;
 import org.hibernate.proxy.HibernateProxy;
@@ -885,24 +882,60 @@
     assertEquals("b1", loadedB.getName());
   }
 
-   public void testLoadNonexisting() {
-     session.beginTransaction();
-     Building b = building("b1");
-     session.save(b);
-     commitAndResetSession();
-     b = reload(b);
-     Serializable id = b.getBuildingId();
-     session.delete(b);
-     commitAndResetSession();
-     try {
-       Building loadedB = (Building)session.load(Building.class, id);
-       loadedB.getName();
-       fail();
-     } catch (HibernateException he) {
-       // good
-     }
-   }
+  public void testLoadNonexisting() {
+    session.beginTransaction();
+    Building b = building("b1");
+    session.save(b);
+    commitAndResetSession();
+    b = reload(b);
+    Serializable id = b.getBuildingId();
+    session.delete(b);
+    commitAndResetSession();
+    try {
+      Building loadedB = (Building)session.load(Building.class, id);
+      loadedB.getName();
+      fail();
+    } catch (HibernateException he) {
+      // good
+    }
+  }
 
+  public void testReplicate() {
+    session.beginTransaction();
+    Building idB = building("just need to get id");
+    session.save(idB);
+    commitAndResetSession();
+    Serializable id = idB.getBuildingId();
+    session.beginTransaction();
+    session.delete(idB);
+    commitAndResetSession();
+
+    Building b = building("b1");
+    b.setBuildingId(id);
+    session.beginTransaction();
+    session.replicate(b, ReplicationMode.IGNORE);
+    commitAndResetSession();
+    Building replicatedB = (Building)session.get(Building.class, id);
+    assertNotNull(replicatedB);
+    assertEquals("b1", replicatedB.getName());
+  }
+
+  public void testReplicatePersistedAndOverwrite() {
+    session.beginTransaction();
+    Building b1 = building("b1");
+    session.save(b1);
+    commitAndResetSession();
+    session.evict(b1);
+    Building b2 = building("b2");
+    b2.setBuildingId(b1.getBuildingId());
+    session.beginTransaction();
+    session.replicate(b2, ReplicationMode.OVERWRITE);
+    commitAndResetSession();
+    Building replicatedB2 = (Building)session.get(Building.class, b1.getBuildingId());
+    assertNotNull(replicatedB2);
+    assertEquals("b2", replicatedB2.getName());
+  }
+
   public void testPersist() {
     session.beginTransaction();
     Building b = building("b1");




More information about the hibernate-commits mailing list