Clover coverage report - ActiveSpace - 1.0-SNAPSHOT
Coverage timestamp: Sat Oct 23 2004 15:04:04 BST
file stats: LOC: 65   Methods: 3
NCLOC: 18   Classes: 1
30 day Evaluation Version distributed via the Maven Jar Repository. Clover is not free. You have 30 days to evaluate it. Please visit http://www.thecortex.net/clover to obtain a licensed version of Clover
 
 Source file Conditionals Statements Methods TOTAL
ClusteredCache.java - 40% 33.3% 37.5%
coverage coverage
 1   
 /**
 2   
  * 
 3   
  * Copyright 2004 Protique Ltd
 4   
  * 
 5   
  * Licensed under the Apache License, Version 2.0 (the "License"); 
 6   
  * you may not use this file except in compliance with the License. 
 7   
  * You may obtain a copy of the License at 
 8   
  * 
 9   
  * http://www.apache.org/licenses/LICENSE-2.0
 10   
  * 
 11   
  * Unless required by applicable law or agreed to in writing, software
 12   
  * distributed under the License is distributed on an "AS IS" BASIS, 
 13   
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
 14   
  * See the License for the specific language governing permissions and 
 15   
  * limitations under the License. 
 16   
  * 
 17   
  **/
 18   
 package org.codehaus.activespace.cache;
 19   
 
 20   
 import org.codehaus.activespace.Space;
 21   
 import org.codehaus.activespace.cache.impl.CacheCommand;
 22   
 
 23   
 import javax.cache.Cache;
 24   
 
 25   
 /**
 26   
  * A clustered cache which replicates its state across other members of a cluster
 27   
  *
 28   
  * @version $Revision: 1.3 $
 29   
  */
 30   
 public class ClusteredCache extends TransactionalCache {
 31   
     private Space space;
 32   
 
 33  4
     public ClusteredCache(Space space, Cache behindCache) {
 34  4
         super(behindCache);
 35  4
         this.space = space;
 36   
 
 37   
     }
 38   
 
 39  0
     public void commit() {
 40   
         // we need to send the command to the space
 41   
         // and wait for a response
 42  0
         CacheCommand command = createTransactionCommand();
 43  0
         space.put(command);
 44  0
         waitUntilTransactionApplied();
 45   
     }
 46   
 
 47   
     /**
 48   
      * Wait around up to some timeout period until the local transaction
 49   
      * has been distributed around the cluster and applied locally to the backing
 50   
      * cache
 51   
      */
 52  0
     protected void waitUntilTransactionApplied() {
 53   
         // One strategy could be to not wait at all
 54   
         // and just use the local transaction view.
 55   
         // To do this we'd need to be able to snapshot the local changes
 56   
         // to a savepoint
 57   
         // so that a rollback after a commit() would only rollback the new changes
 58   
         // since the last savepoint. The savepoints can be discarded when the transaction
 59   
         // is eventually applied to the backing cache
 60   
         //
 61   
         // however we'd never be able to fail a transaction with
 62   
         // an optimistic transaction failure - but it would be super fast :)
 63   
     }
 64   
 }
 65