All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.infinispan.persistence.remote.configuration.ConnectionPoolConfiguration Maven / Gradle / Ivy

package org.infinispan.persistence.remote.configuration;

import org.infinispan.commons.configuration.BuiltBy;
import org.infinispan.commons.configuration.attributes.AttributeDefinition;
import org.infinispan.commons.configuration.attributes.AttributeSet;

@BuiltBy(ConnectionPoolConfigurationBuilder.class)
public class ConnectionPoolConfiguration {

   static final AttributeDefinition EXHAUSTED_ACTION = AttributeDefinition.builder("exhaustedAction", ExhaustedAction.WAIT, ExhaustedAction.class).immutable().build();
   static final AttributeDefinition MAX_ACTIVE = AttributeDefinition.builder("maxActive", -1).immutable().build();
   static final AttributeDefinition MAX_TOTAL = AttributeDefinition.builder("maxTotal", -1).immutable().build();
   static final AttributeDefinition MAX_IDLE = AttributeDefinition.builder("maxIdle", -1).immutable().build();
   static final AttributeDefinition MIN_IDLE = AttributeDefinition.builder("minIdle", -1).immutable().build();
   static final AttributeDefinition TIME_BETWEEN_EVICTION_RUNS = AttributeDefinition.builder("timeBetweenEvictionRuns", 120000L).immutable().build();
   static final AttributeDefinition MIN_EVICTABLE_IDLE_TIME = AttributeDefinition.builder("minEvictableIdleTime", 1800000L).immutable().build();
   static final AttributeDefinition TEST_WHILE_IDLE = AttributeDefinition.builder("testWhileIdle", true).immutable().build();

   public static AttributeSet attributeDefinitionSet() {
      return new AttributeSet(ConnectionPoolConfiguration.class, EXHAUSTED_ACTION, MAX_ACTIVE, MAX_TOTAL, MAX_IDLE,
            MIN_IDLE, TIME_BETWEEN_EVICTION_RUNS, MIN_EVICTABLE_IDLE_TIME, TEST_WHILE_IDLE);
   }

   private final AttributeSet attributes;

   ConnectionPoolConfiguration(AttributeSet attributes) {
      this.attributes = attributes;
   }

   AttributeSet attributes() {
      return attributes;
   }

   public ExhaustedAction exhaustedAction() {
      return attributes.attribute(EXHAUSTED_ACTION).get();
   }

   public int maxActive() {
      return attributes.attribute(MAX_ACTIVE).get();
   }

   public int maxTotal() {
      return attributes.attribute(MAX_TOTAL).get();
   }

   public int maxIdle() {
      return attributes.attribute(MAX_IDLE).get();
   }

   public int minIdle() {
      return attributes.attribute(MIN_IDLE).get();
   }

   public long timeBetweenEvictionRuns() {
      return attributes.attribute(TIME_BETWEEN_EVICTION_RUNS).get();
   }

   public long minEvictableIdleTime() {
      return attributes.attribute(MIN_EVICTABLE_IDLE_TIME).get();
   }

   public boolean testWhileIdle() {
      return attributes.attribute(TEST_WHILE_IDLE).get();
   }

   @Override
   public String toString() {
      return "ConnectionPoolConfiguration [exhaustedAction=" + exhaustedAction() + ", maxActive=" + maxActive()
            + ", maxTotal=" + maxTotal() + ", maxIdle=" + maxIdle() + ", minIdle=" + minIdle() + ", timeBetweenEvictionRuns="
            + timeBetweenEvictionRuns() + ", minEvictableIdleTime=" + minEvictableIdleTime() + ", testWhileIdle="
            + testWhileIdle() + "]";
   }

   @Override
   public boolean equals(Object o) {
      if (this == o) return true;
      if (o == null || getClass() != o.getClass()) return false;

      ConnectionPoolConfiguration that = (ConnectionPoolConfiguration) o;

      if (maxActive() != that.maxActive()) return false;
      if (maxTotal() != that.maxTotal()) return false;
      if (maxIdle() != that.maxIdle()) return false;
      if (minIdle() != that.minIdle()) return false;
      if (timeBetweenEvictionRuns() != that.timeBetweenEvictionRuns()) return false;
      if (minEvictableIdleTime() != that.minEvictableIdleTime()) return false;
      if (testWhileIdle() != that.testWhileIdle()) return false;
      return exhaustedAction() == that.exhaustedAction();

   }

   @Override
   public int hashCode() {
      int result = exhaustedAction() != null ? exhaustedAction().hashCode() : 0;
      result = 31 * result + maxActive();
      result = 31 * result + maxTotal();
      result = 31 * result + maxIdle();
      result = 31 * result + minIdle();
      result = 31 * result + (int) (timeBetweenEvictionRuns() ^ (timeBetweenEvictionRuns() >>> 32));
      result = 31 * result + (int) (minEvictableIdleTime() ^ (minEvictableIdleTime() >>> 32));
      result = 31 * result + (testWhileIdle() ? 1 : 0);
      return result;
   }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy