[infinispan-commits] Infinispan SVN: r1276 - trunk/core/src/test/java/org/infinispan/stress.

infinispan-commits at lists.jboss.org infinispan-commits at lists.jboss.org
Thu Dec 10 08:15:19 EST 2009


Author: galder.zamarreno at jboss.com
Date: 2009-12-10 08:15:18 -0500 (Thu, 10 Dec 2009)
New Revision: 1276

Removed:
   trunk/core/src/test/java/org/infinispan/stress/Ispn277Test.java
Log:
Removed test since DataContainerStressTest already does take care of that.

Deleted: trunk/core/src/test/java/org/infinispan/stress/Ispn277Test.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/stress/Ispn277Test.java	2009-12-10 13:12:18 UTC (rev 1275)
+++ trunk/core/src/test/java/org/infinispan/stress/Ispn277Test.java	2009-12-10 13:15:18 UTC (rev 1276)
@@ -1,498 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2009, Red Hat, Inc. and/or its affiliates, 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.infinispan.stress;
-
-import java.io.PrintWriter;
-import java.io.Serializable;
-import java.io.StringWriter;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Random;
-import java.util.Set;
-import java.util.concurrent.Callable;
-import java.util.concurrent.CyclicBarrier;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.Future;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.atomic.AtomicInteger;
-
-import org.infinispan.Cache;
-import org.infinispan.config.Configuration;
-import org.infinispan.eviction.EvictionStrategy;
-import org.infinispan.manager.CacheManager;
-import org.infinispan.test.SingleCacheManagerTest;
-import org.infinispan.test.TestingUtil;
-import org.infinispan.test.fwk.TestCacheManagerFactory;
-import org.infinispan.util.concurrent.IsolationLevel;
-import org.testng.annotations.Test;
-
-/**
- * Ispn277Test.
- * 
- * @author Galder Zamarreño
- * @since 4.0
- */
- at Test(groups = "functional", testName = "stress.Ispn277Test", enabled = false)
-public class Ispn277Test extends SingleCacheManagerTest {
-   private static final int USER_COUNT = 5;
-   private static final int ITERATION_COUNT = 150;
-   private static final int THINK_TIME_MILLIS = 10;
-   private static final long LAUNCH_INTERVAL_MILLIS = 10;
-
-   private static volatile boolean TERMINATE_ALL_USERS = false;
-
-   private static final Random random = new Random();
-   
-   private Cache customerCache;
-   private Cache contactCache;
-//   private Cache contactsCollectionCache;
-//   private Cache queryCache;
-//   private Cache timestampsCache;
-   
-   private Set<Integer> customerIDs = new HashSet<Integer>();
-
-   private AtomicInteger contactCounter = new AtomicInteger();
-
-   @Override
-   protected CacheManager createCacheManager() throws Exception {
-      CacheManager manager = TestCacheManagerFactory.createLocalCacheManager(true);
-      Configuration c = TestCacheManagerFactory.getDefaultConfiguration(true);
-      c.setIsolationLevel(IsolationLevel.READ_COMMITTED);
-      c.setConcurrencyLevel(1000);
-      c.setLockAcquisitionTimeout(15000);
-      c.setEvictionStrategy(EvictionStrategy.LRU);
-      c.setEvictionWakeUpInterval(5000);
-      c.setEvictionMaxEntries(1000);
-      c.setExpirationMaxIdle(100000);
-      c.setUseLazyDeserialization(true);
-      manager.defineConfiguration("org.hibernate.test.cache.infinispan.functional.Customer", c);
-      customerCache = manager.getCache("org.hibernate.test.cache.infinispan.functional.Customer");
-
-//      manager.defineConfiguration("org.hibernate.test.cache.infinispan.functional.Customer.contacts", c.clone());
-//      contactsCollectionCache = manager.getCache("org.hibernate.test.cache.infinispan.functional.Customer.contacts");
-
-      manager.defineConfiguration("org.hibernate.test.cache.infinispan.functional.Contact", c.clone());
-      contactCache = manager.getCache("org.hibernate.test.cache.infinispan.functional.Contact");
-      
-//      c = TestCacheManagerFactory.getDefaultConfiguration(true);
-//      c.setIsolationLevel(IsolationLevel.READ_COMMITTED);
-//      c.setConcurrencyLevel(1000);
-//      c.setLockAcquisitionTimeout(15000);
-//      c.setEvictionStrategy(EvictionStrategy.LRU);
-//      c.setEvictionWakeUpInterval(5000);
-//      c.setEvictionMaxEntries(1000);
-//      c.setExpirationMaxIdle(100000);
-//      manager.defineConfiguration("local-query", c);
-//      queryCache = manager.getCache("local-query");
-//
-//      c = TestCacheManagerFactory.getDefaultConfiguration(true);
-//      c.setIsolationLevel(IsolationLevel.READ_COMMITTED);
-//      c.setConcurrencyLevel(1000);
-//      c.setLockAcquisitionTimeout(15000);
-//      c.setEvictionStrategy(EvictionStrategy.NONE);
-//      c.setUseLazyDeserialization(true);
-//      manager.defineConfiguration("timestamps", c);
-//      timestampsCache = manager.getCache("timestamps");
-
-      return manager;
-   }
-
-   public void test000() throws Throwable {
-      try {
-         // setup - create users
-         for (int i = 0; i < USER_COUNT; i++) {
-            Customer customer = createCustomer(0, i);
-            getCustomerIDs().add(customer.getId());
-         }
-         assert USER_COUNT == getCustomerIDs().size() : "failed to create enough Customers";
-
-         final ExecutorService executor = Executors.newFixedThreadPool(USER_COUNT);
-
-         CyclicBarrier barrier = new CyclicBarrier(USER_COUNT + 1);
-         List<Future<Void>> futures = new ArrayList<Future<Void>>(USER_COUNT);
-         for (Integer customerId : getCustomerIDs()) {
-            Future<Void> future = executor.submit(new UserRunner(customerId, barrier));
-            futures.add(future);
-            Thread.sleep(LAUNCH_INTERVAL_MILLIS); // rampup
-         }
-//         barrier.await(); // wait for all threads to be ready
-         barrier.await(45, TimeUnit.SECONDS); // wait for all threads to finish
-         log.info("All threads finished, let's shutdown the executor and check whether any exceptions were reported");
-         for (Future<Void> future : futures) future.get();
-         log.info("All future gets checked");
-      } catch (Throwable t) {
-         log.error("Error running test", t);
-         throw t;
-      }
-
-   }
-
-   public Set<Integer> getCustomerIDs() {
-      return customerIDs;
-   }
-
-   private Customer createCustomer(int nameSuffix, int id) throws Exception {
-      Customer newCustomer = null;
-//      try {
-         newCustomer = new Customer();
-         newCustomer.setName("customer_" + nameSuffix);
-         newCustomer.setContacts(new HashSet<Contact>());
-         newCustomer.setId(id);
-         customerCache.put("org.hibernate.test.cache.infinispan.functional.Customer#" + newCustomer.getId(), newCustomer);
-         // getEnvironment().getSessionFactory().getCurrentSession().persist(customer);
-//      } catch (Exception e) {
-//         setRollbackOnlyTx(e);
-//      } finally {
-//         commitOrRollbackTx();
-//      }
-      return newCustomer;
-   }
-
-//   protected void beginTx() throws Exception {
-//      tm.begin();
-//   }
-//
-//   protected void setRollbackOnlyTx() throws Exception {
-//      tm.setRollbackOnly();
-//   }
-//
-//   protected void setRollbackOnlyTx(Exception e) throws Exception {
-//      log.error("Error", e);
-//      tm.setRollbackOnly();
-//      throw e;
-//   }
-//
-//   protected void setRollbackOnlyTxExpected(Exception e) throws Exception {
-//      log.debug("Expected behaivour", e);
-//      tm.setRollbackOnly();
-//   }
-//
-//   protected void commitOrRollbackTx() throws Exception {
-//      if (tm.getStatus() == Status.STATUS_ACTIVE) tm.commit();
-//      else tm.rollback();
-//   }
-
-   private Contact getFirstContact(Integer customerId) throws Exception {
-      assert customerId != null;
-      Contact firstContact = null;
-//      beginTx();
-//      try {
-         final Customer loadedCustomer = (Customer) customerCache.get("org.hibernate.test.cache.infinispan.functional.Customer#" + customerId);
-         Set<Contact> contacts = loadedCustomer.getContacts();
-         firstContact = contacts.isEmpty() ? null : contacts.iterator().next();
-//         if (firstContact != null) {
-//            if (contactsCollectionCache.get("org.hibernate.test.cache.infinispan.functional.Customer.contacts#" + firstContact.getId()) == null) {
-//               contactsCollectionCache.put("org.hibernate.test.cache.infinispan.functional.Customer.contacts#" + firstContact.getId(), firstContact);
-//            }
-//         }
-
-//         if (TERMINATE_ALL_USERS)
-//            setRollbackOnlyTx();
-//      } catch (Exception e) {
-//         setRollbackOnlyTx(e);
-//      } finally {
-//         commitOrRollbackTx();
-//      }
-      return firstContact;
-   }
-
-   private Contact addContact(Integer customerId) throws Exception {
-      assert customerId != null;
-      Contact contact = null;
-//      beginTx();
-//      try {
-         final Customer newCustomerWithContact = (Customer) customerCache.get("org.hibernate.test.cache.infinispan.functional.Customer#" + customerId);
-         contact = new Contact();
-         contact.setId(contactCounter.incrementAndGet());
-         contact.setName("contact name");
-         contact.setTlf("wtf is tlf?");
-         contact.setCustomer(newCustomerWithContact);
-         newCustomerWithContact.getContacts().add(contact);
-         
-         contactCache.put("org.hibernate.test.cache.infinispan.functional.Contact#" + contact.getId(), contact);
-//         contactsCollectionCache.put("org.hibernate.test.cache.infinispan.functional.Customer.contacts#" + contact.getId(), contact);
-         // assuming contact is persisted via cascade from customer
-//         if (TERMINATE_ALL_USERS)
-//            setRollbackOnlyTx();
-//      } catch (Exception e) {
-//         setRollbackOnlyTx(e);
-//      } finally {
-//         commitOrRollbackTx();
-//      }
-      return contact;
-   }
-
-   private void readEveryonesFirstContact() throws Exception {
-//      beginTx();
-//      try {
-         for (Integer customerId : getCustomerIDs()) {
-            if (TERMINATE_ALL_USERS) {
-//               setRollbackOnlyTx();
-               return;
-            }
-            Customer loadedCustomer = (Customer) customerCache.get("org.hibernate.test.cache.infinispan.functional.Customer#" + customerId);
-            Set<Contact> contacts = loadedCustomer.getContacts();
-            if (!contacts.isEmpty()) {
-               Contact contact = contacts.iterator().next();
-               customerCache.get("org.hibernate.test.cache.infinispan.functional.Contact#" + contact.getId());
-            }
-         }
-//      } catch (Exception e) {
-//         setRollbackOnlyTx(e);
-//      } finally {
-//         commitOrRollbackTx();
-//      }
-   }
-
-   private void removeContact(Integer customerId) throws Exception {
-      assert customerId != null;
-
-//      beginTx();
-//      try {
-         Customer loadedCustomer = (Customer) customerCache.get("org.hibernate.test.cache.infinispan.functional.Customer#" + customerId);
-         Set<Contact> contacts = loadedCustomer.getContacts();
-         if (contacts.size() != 1) {
-            throw new IllegalStateException("can't remove contact: customer id=" + customerId
-                     + " expected exactly 1 contact, " + "actual count=" + contacts.size());
-         }
-
-         Contact contact = contacts.iterator().next();
-         contacts.remove(contact);
-         contact.setCustomer(null);
-
-         // explicitly delete Contact because hbm has no 'DELETE_ORPHAN' cascade?
-         // getEnvironment().getSessionFactory().getCurrentSession().delete(contact); //appears to
-         // not be needed
-
-         // assuming contact is persisted via cascade from customer
-
-//         if (TERMINATE_ALL_USERS)
-//            setRollbackOnlyTx();
-//      } catch (Exception e) {
-//         setRollbackOnlyTx(e);
-//      } finally {
-//         commitOrRollbackTx();
-//      }
-   }
-
-   private void thinkRandomTime() {
-      try {
-         Thread.sleep(random.nextInt(THINK_TIME_MILLIS));
-      } catch (InterruptedException ex) {
-         throw new RuntimeException("sleep interrupted", ex);
-      }
-
-      if (TERMINATE_ALL_USERS) {
-         throw new RuntimeException("told to terminate (because a UserRunner had failed)");
-      }
-   }
-
-   public static String getStackTrace(Throwable throwable) {
-      StringWriter sw = new StringWriter();
-      PrintWriter pw = new PrintWriter(sw, true);
-      throwable.printStackTrace(pw);
-      return sw.getBuffer().toString();
-   }
-
-   class UserRunner implements Callable<Void> {
-      private final CyclicBarrier barrier;
-      final private Integer customerId;
-      private int completedIterations = 0;
-      private Throwable causeOfFailure;
-
-      public UserRunner(Integer cId, CyclicBarrier barrier) {
-         assert cId != null;
-         this.customerId = cId;
-         this.barrier = barrier;
-      }
-
-      private boolean contactExists() throws Exception {
-         return getFirstContact(customerId) != null;
-      }
-
-      public Void call() throws Exception {
-         // name this thread for easier log tracing
-         Thread.currentThread().setName("UserRunnerThread-" + getCustomerId());
-         log.info("Wait for all executions paths to be ready to perform calls");
-         try {
-//            barrier.await();
-            for (int i = 0; i < ITERATION_COUNT && !TERMINATE_ALL_USERS; i++) {
-               if (contactExists())
-                  throw new IllegalStateException("contact already exists before add, customerId=" + customerId);
-               addContact(customerId);
-               thinkRandomTime();
-               if (!contactExists())
-                  throw new IllegalStateException("contact missing after successful add, customerId=" + customerId);
-               thinkRandomTime();
-               // read everyone's contacts
-               readEveryonesFirstContact();
-               thinkRandomTime();
-               removeContact(customerId);
-               if (contactExists())
-                  throw new IllegalStateException("contact still exists after successful remove call, customerId=" + customerId);
-               thinkRandomTime();
-               ++completedIterations;
-               if (log.isTraceEnabled()) log.trace("Iteration completed {0}", completedIterations);
-            }
-         } catch (Throwable t) {
-            TERMINATE_ALL_USERS = true;
-            log.error("Error", t);
-            throw new Exception(t);
-            // rollback current transaction if any
-            // really should not happen since above methods all follow begin-commit-rollback pattern
-            // try {
-            // if
-            // (DualNodeJtaTransactionManagerImpl.getInstance(DualNodeTestUtil.LOCAL).getTransaction()
-            // != null) {
-            // DualNodeJtaTransactionManagerImpl.getInstance(DualNodeTestUtil.LOCAL).rollback();
-            // }
-            // } catch (SystemException ex) {
-            // throw new RuntimeException("failed to rollback tx", ex);
-            // }
-         } finally {
-            log.info("Wait for all execution paths to finish");
-            barrier.await();
-         }
-         return null;
-      }
-
-      public boolean isSuccess() {
-         return ITERATION_COUNT == getCompletedIterations();
-      }
-
-      public int getCompletedIterations() {
-         return completedIterations;
-      }
-
-      public Throwable getCauseOfFailure() {
-         return causeOfFailure;
-      }
-
-      public Integer getCustomerId() {
-         return customerId;
-      }
-
-      @Override
-      public String toString() {
-         return super.toString() + "[customerId=" + getCustomerId() + " iterationsCompleted="
-                  + getCompletedIterations() + " completedAll=" + isSuccess() + " causeOfFailure="
-                  + (this.causeOfFailure != null ? getStackTrace(causeOfFailure) : "") + "] ";
-      }
-   }
-
-   public class Customer implements Serializable {
-      Integer id;
-      String name;
-
-      private transient Set<Contact> contacts;
-
-      public Customer() {
-      }
-
-      public Integer getId() {
-         return id;
-      }
-
-      public void setId(Integer id) {
-         this.id = id;
-      }
-
-      public String getName() {
-         return name;
-      }
-
-      public void setName(String string) {
-         name = string;
-      }
-
-      public Set<Contact> getContacts() {
-         return contacts;
-      }
-
-      public void setContacts(Set<Contact> contacts) {
-         this.contacts = contacts;
-      }
-   }
-
-   public class Contact implements Serializable {
-      Integer id;
-      String name;
-      String tlf;
-      Customer customer;
-
-      public Integer getId() {
-         return id;
-      }
-
-      public void setId(Integer id) {
-         this.id = id;
-      }
-
-      public String getName() {
-         return name;
-      }
-
-      public void setName(String name) {
-         this.name = name;
-      }
-
-      public String getTlf() {
-         return tlf;
-      }
-
-      public void setTlf(String tlf) {
-         this.tlf = tlf;
-      }
-
-      public Customer getCustomer() {
-         return customer;
-      }
-
-      public void setCustomer(Customer customer) {
-         this.customer = customer;
-      }
-
-      @Override
-      public boolean equals(Object o) {
-         if (o == this)
-            return true;
-         if (!(o instanceof Contact))
-            return false;
-         Contact c = (Contact) o;
-         return c.id.equals(id) && c.name.equals(name) && c.tlf.equals(tlf);
-      }
-
-      @Override
-      public int hashCode() {
-         int result = 17;
-         result = 31 * result + (id == null ? 0 : id.hashCode());
-         result = 31 * result + name.hashCode();
-         result = 31 * result + tlf.hashCode();
-         return result;
-      }
-
-   }
-   
-}



More information about the infinispan-commits mailing list