001 package com.softwarementors.extjs.djn.config; 002 003 import com.softwarementors.extjs.djn.StringUtils; 004 import com.softwarementors.extjs.djn.router.DefaultGsonBuilderConfigurator; 005 import com.softwarementors.extjs.djn.router.GsonBuilderConfigurator; 006 007 public class GlobalConfiguration { 008 public static final boolean DEFAULT_DEBUG_VALUE = false; 009 public static final Class<? extends GsonBuilderConfigurator> DEFAULT_GSON_BUILDER_CONFIGURATOR_CLASS = DefaultGsonBuilderConfigurator.class; 010 private String providersUrl; 011 private boolean debug; 012 private Class<? extends GsonBuilderConfigurator> gsonBuilderConfiguratorClass; 013 private boolean batchRequestsMultithreadingEnabled; 014 private int batchRequestsMinThreadsPoolSize; 015 private int batchRequestsMaxThreadsPoolSize; 016 private int batchRequestsThreadKeepAliveSeconds; 017 private int batchRequestsMaxThreadsPerRequest; 018 019 public static final int MIN_BATCH_REQUESTS_MIN_THREAD_POOL_SIZE = 0; 020 public static final int MIN_BATCH_REQUESTS_MAX_THREAD_POOL_SIZE = 1; 021 public static final int MIN_BATCH_REQUESTS_MAX_THREADS_PER_REQUEST = 1; 022 public static final int MIN_BATCH_REQUESTS_THREAD_KEEP_ALIVE_SECONDS = 0; 023 024 public static final boolean DEFAULT_BATCH_REQUESTS_MULTITHREADING_ENABLED_VALUE = true; 025 public static final int DEFAULT_BATCH_REQUESTS_MAX_THREADS_PER_REQUEST = 6; 026 public static final int DEFAULT_BATCH_REQUESTS_MIN_THREAD_POOL_SIZE = DEFAULT_BATCH_REQUESTS_MAX_THREADS_PER_REQUEST * 3; 027 public static final int DEFAULT_BATCH_REQUESTS_MAX_THREAD_POOL_SIZE = DEFAULT_BATCH_REQUESTS_MAX_THREADS_PER_REQUEST * 10; 028 public static final int DEFAULT_BATCH_REQUESTS_THREAD_KEEP_ALIVE_SECONDS = 60; 029 030 public GlobalConfiguration( String providersUrl, boolean debug, Class<? extends GsonBuilderConfigurator> gsonBuilderConfiguratorClass, 031 boolean batchRequestsMultithreadingEnabled, int batchRequestsMinThreadsPoolSize, int batchRequestsMaxThreadsPoolSize, 032 int batchRequestsThreadKeepAliveSeconds, int batchRequestsMaxThreadsPerRequest) 033 { 034 assert !StringUtils.isEmpty( providersUrl ); 035 assert batchRequestsMinThreadsPoolSize >= MIN_BATCH_REQUESTS_MIN_THREAD_POOL_SIZE; 036 assert batchRequestsMaxThreadsPoolSize >= MIN_BATCH_REQUESTS_MAX_THREAD_POOL_SIZE; 037 assert batchRequestsThreadKeepAliveSeconds >= MIN_BATCH_REQUESTS_THREAD_KEEP_ALIVE_SECONDS; 038 assert batchRequestsMaxThreadsPerRequest >= MIN_BATCH_REQUESTS_MAX_THREADS_PER_REQUEST; 039 assert batchRequestsMinThreadsPoolSize <= batchRequestsMaxThreadsPoolSize; 040 041 this.providersUrl = providersUrl; 042 this.debug = debug; 043 this.gsonBuilderConfiguratorClass = gsonBuilderConfiguratorClass; 044 045 this.batchRequestsMultithreadingEnabled = batchRequestsMultithreadingEnabled; 046 this.batchRequestsMinThreadsPoolSize = batchRequestsMinThreadsPoolSize; 047 this.batchRequestsMaxThreadsPoolSize = batchRequestsMaxThreadsPoolSize; 048 this.batchRequestsThreadKeepAliveSeconds = batchRequestsThreadKeepAliveSeconds; 049 this.batchRequestsMaxThreadsPerRequest = batchRequestsMaxThreadsPerRequest; 050 051 } 052 053 public String getProvidersUrl() { 054 return this.providersUrl; 055 } 056 057 public boolean getDebug() { 058 return this.debug; 059 } 060 061 public Class<? extends GsonBuilderConfigurator> getGsonBuilderConfiguratorClass() { 062 return this.gsonBuilderConfiguratorClass; 063 } 064 065 public boolean getBatchRequestsMultithreadingEnabled() { 066 return this.batchRequestsMultithreadingEnabled; 067 } 068 069 public int getBatchRequestsMinThreadsPoolSize() { 070 return this.batchRequestsMinThreadsPoolSize; 071 } 072 073 public int getBatchRequestsMaxThreadsPoolSize() { 074 return this.batchRequestsMaxThreadsPoolSize; 075 } 076 077 public int getBatchRequestsThreadKeepAliveSeconds() { 078 return this.batchRequestsThreadKeepAliveSeconds; 079 } 080 081 public int getBatchRequestsMaxThreadsPerRequest() { 082 return this.batchRequestsMaxThreadsPerRequest; 083 } 084 }