FC-272 - Batch size limit
diff --git a/build-config.xml b/build-config.xml
index 81c1e1e..faf4ac8 100644
--- a/build-config.xml
+++ b/build-config.xml
@@ -364,6 +364,7 @@
<replace file="${dst.remote.conf}" token="@KEY_STORE_PW@" value="${key.store.password}"/>
<replace file="${dst.remote.conf}" token="@SERVER_TYPE@" value="${ldap.server.type}"/>
<replace file="${dst.remote.conf}" token="@IS_AUDIT@" value="${disable.audit}"/>
+ <replace file="${dst.remote.conf}" token="@LDAP_MAX_BATCH_SIZE@" value="${ldap.max.batch.size}"/>
<echo message="############### Modify fortress load scripts per user settings ###############"/>
<!-- The load script builds the Directory Information Tree and load the configuration entry used to hold params not needed to establish a connection with server. -->
@@ -389,6 +390,7 @@
<replace file="${dst.load.bootstrap.script}" token="@GROUP_PROPERTIES@" value="${group.properties}"/>
<replace file="${dst.load.bootstrap.script}" token="@ROLE_OCCUPANTS@" value="${role.occupants}"/>
<replace file="${dst.load.bootstrap.script}" token="@IS_RFC2307@" value="${rfc2307}"/>
+ <replace file="${dst.load.bootstrap.script}" token="@LDAP_MAX_BATCH_SIZE@" value="${ldap.max.batch.size}"/>
<echo message="############### Copy ehcache config to bootstrap config folder ###############"/>
<delete file="${bootstrap.ehcache.conf}"/>
<copy file="${ehcache.conf}" tofile="${bootstrap.ehcache.conf}"/>
diff --git a/build.properties.example b/build.properties.example
index 646fbdf..c68c47d 100644
--- a/build.properties.example
+++ b/build.properties.example
@@ -54,6 +54,9 @@
ldap.host=localhost
ldap.port=10389
+# This sets the maximum search result set from LDAP, default is 1000:
+ldap.max.batch.size=1000
+
# These are needed for client SSL connections with LDAP Server:
#enable.ldap.ssl=true
# The LDAP hostname must match the common name in the server certificate:
diff --git a/ldap/setup/refreshLDAPData-src.xml b/ldap/setup/refreshLDAPData-src.xml
index 790dc87..cfca325 100755
--- a/ldap/setup/refreshLDAPData-src.xml
+++ b/ldap/setup/refreshLDAPData-src.xml
@@ -142,6 +142,7 @@
<config props="ldap.sub.14:7c"/>
<config props="ldap.filter.15:~"/>
<config props="ldap.sub.15:7e"/>
+ <config props="ldap.search.max.batch.size:@LDAP_MAX_BATCH_SIZE@"/>
</addconfig>
<addconfig>
@@ -209,6 +210,7 @@
<config props="ldap.sub.14:7c"/>
<config props="ldap.sub.15:7e"/>
<config props="ldap.filter.15:~"/>
+ <config props="ldap.search.max.batch.size:@LDAP_MAX_BATCH_SIZE@"/>
</addconfig>
</FortressAdmin>
</target>
diff --git a/slapd.properties.example b/slapd.properties.example
index 58c4e1e..fa4283b 100644
--- a/slapd.properties.example
+++ b/slapd.properties.example
@@ -43,6 +43,9 @@
suffix.dc=com
suffix=dc=${suffix.name},dc=${suffix.dc}
+# This sets the maximum search result set from LDAP, default is 1000:
+ldap.max.batch.size=1000
+
# A value of 'false' disables storing user membership on role object, default is 'true':
#role.occupants=false
diff --git a/src/main/java/org/apache/directory/fortress/core/GlobalIds.java b/src/main/java/org/apache/directory/fortress/core/GlobalIds.java
index 74baf01..74e817d 100755
--- a/src/main/java/org/apache/directory/fortress/core/GlobalIds.java
+++ b/src/main/java/org/apache/directory/fortress/core/GlobalIds.java
@@ -506,6 +506,11 @@
public static final int BATCH_SIZE = 1000;
/**
+ * This is the config property key used to store override of max LDAP batch size:
+ */
+ public static final String CONFIG_LDAP_MAX_BATCH_SIZE = "ldap.search.max.batch.size";
+
+ /**
* Attribute is used in Fortress time/date constraints as default which will always pass. i.e. values stored as beginDate=none or beginTime=none will turn the date and time constraints off
* for a particular entity..
*/
diff --git a/src/main/java/org/apache/directory/fortress/core/impl/AdminRoleDAO.java b/src/main/java/org/apache/directory/fortress/core/impl/AdminRoleDAO.java
index b32c25c..21db700 100755
--- a/src/main/java/org/apache/directory/fortress/core/impl/AdminRoleDAO.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/AdminRoleDAO.java
@@ -50,6 +50,7 @@
import org.apache.directory.fortress.core.model.Graphable;
import org.apache.directory.fortress.core.model.ObjectFactory;
import org.apache.directory.fortress.core.model.Role;
+import org.apache.directory.fortress.core.util.Config;
import org.apache.directory.ldap.client.api.LdapConnection;
@@ -476,7 +477,7 @@
+ ROLE_NM + "=" + searchVal + "*))";
ld = getAdminConnection();
SearchCursor searchResults = search( ld, roleRoot,
- SearchScope.ONELEVEL, filter, ROLE_ATRS, false, GlobalIds.BATCH_SIZE );
+ SearchScope.ONELEVEL, filter, ROLE_ATRS, false, Config.getInstance().getInt(GlobalIds.CONFIG_LDAP_MAX_BATCH_SIZE, GlobalIds.BATCH_SIZE ) );
long sequence = 0;
while ( searchResults.next() )
@@ -569,7 +570,7 @@
filter += "(" + ROLE_OCCUPANT + "=" + userDn + "))";
ld = getAdminConnection();
SearchCursor searchResults = search( ld, roleRoot,
- SearchScope.ONELEVEL, filter, ROLE_NM_ATR, false, GlobalIds.BATCH_SIZE );
+ SearchScope.ONELEVEL, filter, ROLE_NM_ATR, false, Config.getInstance().getInt(GlobalIds.CONFIG_LDAP_MAX_BATCH_SIZE, GlobalIds.BATCH_SIZE ) );
while ( searchResults.next() )
{
@@ -617,7 +618,7 @@
+ GlobalIds.PARENT_NODES + "=*))";
ld = getAdminConnection();
SearchCursor searchResults = search( ld, roleRoot,
- SearchScope.ONELEVEL, filter, DESC_ATRS, false, GlobalIds.BATCH_SIZE );
+ SearchScope.ONELEVEL, filter, DESC_ATRS, false, Config.getInstance().getInt(GlobalIds.CONFIG_LDAP_MAX_BATCH_SIZE, GlobalIds.BATCH_SIZE ) );
long sequence = 0;
while ( searchResults.next() )
diff --git a/src/main/java/org/apache/directory/fortress/core/impl/AuditDAO.java b/src/main/java/org/apache/directory/fortress/core/impl/AuditDAO.java
index 5cac8dc..f593d40 100755
--- a/src/main/java/org/apache/directory/fortress/core/impl/AuditDAO.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/AuditDAO.java
@@ -274,7 +274,7 @@
//log.warn("filter=" + filter);
ld = getLogConnection();
SearchCursor searchResults = search( ld, auditRoot,
- SearchScope.ONELEVEL, filter, AUDIT_AUTHZ_ATRS, false, GlobalIds.BATCH_SIZE );
+ SearchScope.ONELEVEL, filter, AUDIT_AUTHZ_ATRS, false, Config.getInstance().getInt(GlobalIds.CONFIG_LDAP_MAX_BATCH_SIZE, GlobalIds.BATCH_SIZE ) );
long sequence = 0;
while ( searchResults.next() )
@@ -345,7 +345,7 @@
//System.out.println("filter=" + filter);
ld = getLogConnection();
SearchCursor searchResults = search( ld, auditRoot,
- SearchScope.ONELEVEL, filter, AUDIT_AUTHZ_ATRS, false, GlobalIds.BATCH_SIZE );
+ SearchScope.ONELEVEL, filter, AUDIT_AUTHZ_ATRS, false, Config.getInstance().getInt(GlobalIds.CONFIG_LDAP_MAX_BATCH_SIZE, GlobalIds.BATCH_SIZE ) );
long sequence = 0;
while ( searchResults.next() )
@@ -435,7 +435,7 @@
//log.warn("filter=" + filter);
ld = getLogConnection();
SearchCursor searchResults = search( ld, auditRoot,
- SearchScope.ONELEVEL, filter, AUDIT_AUTHZ_ATRS, false, GlobalIds.BATCH_SIZE );
+ SearchScope.ONELEVEL, filter, AUDIT_AUTHZ_ATRS, false, Config.getInstance().getInt(GlobalIds.CONFIG_LDAP_MAX_BATCH_SIZE, GlobalIds.BATCH_SIZE ) );
long sequence = 0;
while ( searchResults.next() )
@@ -518,7 +518,7 @@
//log.warn("filter=" + filter);
ld = getLogConnection();
SearchCursor searchResults = search( ld, auditRoot,
- SearchScope.ONELEVEL, filter, AUDIT_BIND_ATRS, false, GlobalIds.BATCH_SIZE );
+ SearchScope.ONELEVEL, filter, AUDIT_BIND_ATRS, false, Config.getInstance().getInt(GlobalIds.CONFIG_LDAP_MAX_BATCH_SIZE, GlobalIds.BATCH_SIZE ) );
long sequence = 0;
while ( searchResults.next() )
@@ -574,7 +574,7 @@
//log.warn("filter=" + filter);
ld = getLogConnection();
SearchCursor searchResults = search( ld, auditRoot,
- SearchScope.ONELEVEL, filter, AUDIT_MOD_ATRS, false, GlobalIds.BATCH_SIZE );
+ SearchScope.ONELEVEL, filter, AUDIT_MOD_ATRS, false, Config.getInstance().getInt(GlobalIds.CONFIG_LDAP_MAX_BATCH_SIZE, GlobalIds.BATCH_SIZE ) );
long sequence = 0;
while ( searchResults.next() )
@@ -664,7 +664,7 @@
//log.warn("filter=" + filter);
ld = getLogConnection();
SearchCursor searchResults = search( ld, auditRoot,
- SearchScope.ONELEVEL, filter, AUDIT_MOD_ATRS, false, GlobalIds.BATCH_SIZE );
+ SearchScope.ONELEVEL, filter, AUDIT_MOD_ATRS, false, Config.getInstance().getInt(GlobalIds.CONFIG_LDAP_MAX_BATCH_SIZE, GlobalIds.BATCH_SIZE ) );
long sequence = 0;
while ( searchResults.next() )
diff --git a/src/main/java/org/apache/directory/fortress/core/impl/GroupDAO.java b/src/main/java/org/apache/directory/fortress/core/impl/GroupDAO.java
index ab9db7c..3ddb83a 100755
--- a/src/main/java/org/apache/directory/fortress/core/impl/GroupDAO.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/GroupDAO.java
@@ -408,7 +408,7 @@
+ "*))";
ld = getAdminConnection();
searchResults = search( ld, groupRoot, SearchScope.ONELEVEL, filter, GROUP_ATRS, false,
- GlobalIds.BATCH_SIZE );
+ Config.getInstance().getInt(GlobalIds.CONFIG_LDAP_MAX_BATCH_SIZE, GlobalIds.BATCH_SIZE ) );
long sequence = 0;
while ( searchResults.next() )
{
@@ -455,7 +455,7 @@
+ user.getDn() + "))";
ld = getAdminConnection();
searchResults = search( ld, groupRoot, SearchScope.ONELEVEL, filter, GROUP_ATRS, false,
- GlobalIds.BATCH_SIZE );
+ Config.getInstance().getInt(GlobalIds.CONFIG_LDAP_MAX_BATCH_SIZE, GlobalIds.BATCH_SIZE ) );
long sequence = 0;
while ( searchResults.next() )
@@ -503,7 +503,7 @@
+ role.getDn() + "))";
ld = getAdminConnection();
searchResults = search( ld, groupRoot, SearchScope.ONELEVEL, filter, GROUP_ATRS, false,
- GlobalIds.BATCH_SIZE );
+ Config.getInstance().getInt(GlobalIds.CONFIG_LDAP_MAX_BATCH_SIZE, GlobalIds.BATCH_SIZE ) );
long sequence = 0;
while ( searchResults.next() )
diff --git a/src/main/java/org/apache/directory/fortress/core/impl/OrgUnitDAO.java b/src/main/java/org/apache/directory/fortress/core/impl/OrgUnitDAO.java
index e28be64..1d0fcdc 100755
--- a/src/main/java/org/apache/directory/fortress/core/impl/OrgUnitDAO.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/OrgUnitDAO.java
@@ -51,6 +51,7 @@
import org.apache.directory.fortress.core.model.Graphable;
import org.apache.directory.fortress.core.model.ObjectFactory;
import org.apache.directory.fortress.core.model.OrgUnit;
+import org.apache.directory.fortress.core.util.Config;
import org.apache.directory.ldap.client.api.LdapConnection;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -421,7 +422,7 @@
+ SchemaConstants.OU_AT + "=" + searchVal + "*))";
ld = getAdminConnection();
SearchCursor searchResults = search( ld, orgUnitRoot,
- SearchScope.ONELEVEL, filter, ORGUNIT_ATRS, false, GlobalIds.BATCH_SIZE );
+ SearchScope.ONELEVEL, filter, ORGUNIT_ATRS, false, Config.getInstance().getInt(GlobalIds.CONFIG_LDAP_MAX_BATCH_SIZE, GlobalIds.BATCH_SIZE ) );
long sequence = 0;
while ( searchResults.next() )
@@ -490,7 +491,7 @@
String filter = "(objectclass=" + ORGUNIT_OBJECT_CLASS_NM + ")";
ld = getAdminConnection();
SearchCursor searchResults = search( ld, orgUnitRoot,
- SearchScope.ONELEVEL, filter, ORGUNIT_ATR, false, GlobalIds.BATCH_SIZE );
+ SearchScope.ONELEVEL, filter, ORGUNIT_ATR, false, Config.getInstance().getInt(GlobalIds.CONFIG_LDAP_MAX_BATCH_SIZE, GlobalIds.BATCH_SIZE ) );
while ( searchResults.next() )
{
@@ -580,7 +581,7 @@
+ GlobalIds.PARENT_NODES + "=*))";
ld = getAdminConnection();
SearchCursor searchResults = search( ld, orgUnitRoot,
- SearchScope.ONELEVEL, filter, DESC_ATRS, false, GlobalIds.BATCH_SIZE );
+ SearchScope.ONELEVEL, filter, DESC_ATRS, false, Config.getInstance().getInt(GlobalIds.CONFIG_LDAP_MAX_BATCH_SIZE, GlobalIds.BATCH_SIZE ) );
long sequence = 0;
while ( searchResults.next() )
diff --git a/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java b/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java
index 6479ef2..b424aa6 100755
--- a/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/PermDAO.java
@@ -1201,7 +1201,7 @@
filterbuf.append( "))" );
ld = getAdminConnection();
SearchCursor searchResults = search( ld, permRoot,
- SearchScope.SUBTREE, filterbuf.toString(), PERMISION_ATTRIBUTE_ATRS, false, GlobalIds.BATCH_SIZE );
+ SearchScope.SUBTREE, filterbuf.toString(), PERMISION_ATTRIBUTE_ATRS, false, Config.getInstance().getInt(GlobalIds.CONFIG_LDAP_MAX_BATCH_SIZE, GlobalIds.BATCH_SIZE ) );
long sequence = 0;
while ( searchResults.next() )
@@ -1541,7 +1541,7 @@
filterbuf.append( "*))" );
ld = getAdminConnection();
SearchCursor searchResults = search( ld, permRoot,
- SearchScope.SUBTREE, filterbuf.toString(), PERMISSION_OP_ATRS, false, GlobalIds.BATCH_SIZE );
+ SearchScope.SUBTREE, filterbuf.toString(), PERMISSION_OP_ATRS, false, Config.getInstance().getInt(GlobalIds.CONFIG_LDAP_MAX_BATCH_SIZE, GlobalIds.BATCH_SIZE ) );
long sequence = 0;
while ( searchResults.next() )
@@ -1586,7 +1586,7 @@
filterbuf.append( "))" );
ld = getAdminConnection();
SearchCursor searchResults = search( ld, permRoot,
- SearchScope.SUBTREE, filterbuf.toString(), PERMISSION_OP_ATRS, false, GlobalIds.BATCH_SIZE );
+ SearchScope.SUBTREE, filterbuf.toString(), PERMISSION_OP_ATRS, false, Config.getInstance().getInt(GlobalIds.CONFIG_LDAP_MAX_BATCH_SIZE, GlobalIds.BATCH_SIZE ) );
long sequence = 0;
while ( searchResults.next() )
@@ -1653,7 +1653,7 @@
filterbuf.append("))");
ld = getAdminConnection();
SearchCursor searchResults = search( ld, permRoot,
- SearchScope.SUBTREE, filterbuf.toString(), PERMISSION_OP_ATRS, false, GlobalIds.BATCH_SIZE );
+ SearchScope.SUBTREE, filterbuf.toString(), PERMISSION_OP_ATRS, false, Config.getInstance().getInt(GlobalIds.CONFIG_LDAP_MAX_BATCH_SIZE, GlobalIds.BATCH_SIZE ) );
long sequence = 0;
while ( searchResults.next() )
@@ -1705,7 +1705,7 @@
filterbuf.append( "*))" );
ld = getAdminConnection();
SearchCursor searchResults = search( ld, permRoot,
- SearchScope.SUBTREE, filterbuf.toString(), PERMISION_OBJ_ATRS, false, GlobalIds.BATCH_SIZE );
+ SearchScope.SUBTREE, filterbuf.toString(), PERMISION_OBJ_ATRS, false, Config.getInstance().getInt(GlobalIds.CONFIG_LDAP_MAX_BATCH_SIZE, GlobalIds.BATCH_SIZE ) );
long sequence = 0;
while ( searchResults.next() )
@@ -1867,7 +1867,7 @@
filterbuf.append( ")" );
ld = getAdminConnection();
SearchCursor searchResults = search( ld, permRoot,
- SearchScope.SUBTREE, filterbuf.toString(), PERMISSION_OP_ATRS, false, GlobalIds.BATCH_SIZE );
+ SearchScope.SUBTREE, filterbuf.toString(), PERMISSION_OP_ATRS, false, Config.getInstance().getInt(GlobalIds.CONFIG_LDAP_MAX_BATCH_SIZE, GlobalIds.BATCH_SIZE ) );
long sequence = 0;
while ( searchResults.next() )
@@ -1933,7 +1933,7 @@
filterbuf.append( ")))" );
ld = getAdminConnection();
SearchCursor searchResults = search( ld, permRoot,
- SearchScope.SUBTREE, filterbuf.toString(), PERMISSION_OP_ATRS, false, GlobalIds.BATCH_SIZE );
+ SearchScope.SUBTREE, filterbuf.toString(), PERMISSION_OP_ATRS, false, Config.getInstance().getInt(GlobalIds.CONFIG_LDAP_MAX_BATCH_SIZE, GlobalIds.BATCH_SIZE ) );
long sequence = 0;
while ( searchResults.next() )
@@ -1986,7 +1986,7 @@
filterbuf.append( "))" );
ld = getAdminConnection();
SearchCursor searchResults = search( ld, permRoot,
- SearchScope.SUBTREE, filterbuf.toString(), PERMISSION_OP_ATRS, false, GlobalIds.BATCH_SIZE );
+ SearchScope.SUBTREE, filterbuf.toString(), PERMISSION_OP_ATRS, false, Config.getInstance().getInt(GlobalIds.CONFIG_LDAP_MAX_BATCH_SIZE, GlobalIds.BATCH_SIZE ) );
long sequence = 0;
while ( searchResults.next() )
@@ -2065,7 +2065,7 @@
filterbuf.append( "))" );
ld = getAdminConnection();
SearchCursor searchResults = search( ld, permRoot,
- SearchScope.SUBTREE, filterbuf.toString(), PERMISSION_OP_ATRS, false, GlobalIds.BATCH_SIZE );
+ SearchScope.SUBTREE, filterbuf.toString(), PERMISSION_OP_ATRS, false, Config.getInstance().getInt(GlobalIds.CONFIG_LDAP_MAX_BATCH_SIZE, GlobalIds.BATCH_SIZE ) );
long sequence = 0;
while ( searchResults.next() )
diff --git a/src/main/java/org/apache/directory/fortress/core/impl/PolicyDAO.java b/src/main/java/org/apache/directory/fortress/core/impl/PolicyDAO.java
index 610ac1a..2539510 100755
--- a/src/main/java/org/apache/directory/fortress/core/impl/PolicyDAO.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/PolicyDAO.java
@@ -603,7 +603,7 @@
String szFilter = GlobalIds.FILTER_PREFIX + PW_POLICY_CLASS + ")(" + PW_PWD_ID + "=" + searchVal + "*))";
ld = getAdminConnection();
SearchCursor searchResults = search( ld, policyRoot,
- SearchScope.ONELEVEL, szFilter, PASSWORD_POLICY_ATRS, false, GlobalIds.BATCH_SIZE );
+ SearchScope.ONELEVEL, szFilter, PASSWORD_POLICY_ATRS, false, Config.getInstance().getInt(GlobalIds.CONFIG_LDAP_MAX_BATCH_SIZE, GlobalIds.BATCH_SIZE ) );
long sequence = 0;
while ( searchResults.next() )
@@ -646,7 +646,7 @@
String szFilter = "(objectclass=" + PW_POLICY_CLASS + ")";
ld = getAdminConnection();
SearchCursor searchResults = search( ld, policyRoot,
- SearchScope.ONELEVEL, szFilter, PASSWORD_POLICY_NAME_ATR, false, GlobalIds.BATCH_SIZE );
+ SearchScope.ONELEVEL, szFilter, PASSWORD_POLICY_NAME_ATR, false, Config.getInstance().getInt(GlobalIds.CONFIG_LDAP_MAX_BATCH_SIZE, GlobalIds.BATCH_SIZE ) );
while ( searchResults.next() )
{
diff --git a/src/main/java/org/apache/directory/fortress/core/impl/RoleDAO.java b/src/main/java/org/apache/directory/fortress/core/impl/RoleDAO.java
index 31695a7..3a26886 100755
--- a/src/main/java/org/apache/directory/fortress/core/impl/RoleDAO.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/RoleDAO.java
@@ -477,7 +477,7 @@
+ ROLE_NM + "=" + searchVal + "*))";
ld = getAdminConnection();
SearchCursor searchResults = search( ld, roleRoot,
- SearchScope.ONELEVEL, filter, ROLE_ATRS, false, GlobalIds.BATCH_SIZE );
+ SearchScope.ONELEVEL, filter, ROLE_ATRS, false, Config.getInstance().getInt(GlobalIds.CONFIG_LDAP_MAX_BATCH_SIZE, GlobalIds.BATCH_SIZE ) );
long sequence = 0;
while ( searchResults.next() )
@@ -542,7 +542,7 @@
ld = getAdminConnection();
SearchCursor searchResults = search( ld, roleRoot,
- SearchScope.ONELEVEL, filterbuf.toString(), ROLE_ATRS, false, GlobalIds.BATCH_SIZE );
+ SearchScope.ONELEVEL, filterbuf.toString(), ROLE_ATRS, false, Config.getInstance().getInt(GlobalIds.CONFIG_LDAP_MAX_BATCH_SIZE, GlobalIds.BATCH_SIZE ) );
long sequence = 0;
while ( searchResults.next() )
@@ -644,7 +644,7 @@
filter += "(" + SchemaConstants.ROLE_OCCUPANT_AT + "=" + userDn + "))";
ld = getAdminConnection();
SearchCursor searchResults = search( ld, roleRoot,
- SearchScope.ONELEVEL, filter, ROLE_NM_ATR, false, GlobalIds.BATCH_SIZE );
+ SearchScope.ONELEVEL, filter, ROLE_NM_ATR, false, Config.getInstance().getInt(GlobalIds.CONFIG_LDAP_MAX_BATCH_SIZE, GlobalIds.BATCH_SIZE ) );
while ( searchResults.next() )
{
@@ -692,7 +692,7 @@
+ GlobalIds.PARENT_NODES + "=*))";
ld = getAdminConnection();
SearchCursor searchResults = search( ld, roleRoot,
- SearchScope.ONELEVEL, filter, DESC_ATRS, false, GlobalIds.BATCH_SIZE );
+ SearchScope.ONELEVEL, filter, DESC_ATRS, false, Config.getInstance().getInt(GlobalIds.CONFIG_LDAP_MAX_BATCH_SIZE, GlobalIds.BATCH_SIZE ) );
long sequence = 0;
while ( searchResults.next() )
diff --git a/src/main/java/org/apache/directory/fortress/core/impl/SdDAO.java b/src/main/java/org/apache/directory/fortress/core/impl/SdDAO.java
index 243ad5d..4aca105 100755
--- a/src/main/java/org/apache/directory/fortress/core/impl/SdDAO.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/SdDAO.java
@@ -49,6 +49,7 @@
import org.apache.directory.fortress.core.model.ObjectFactory;
import org.apache.directory.fortress.core.model.Role;
import org.apache.directory.fortress.core.model.SDSet;
+import org.apache.directory.fortress.core.util.Config;
import org.apache.directory.ldap.client.api.LdapConnection;
@@ -373,7 +374,7 @@
String filter = GlobalIds.FILTER_PREFIX + objectClass + ")(" + SD_SET_NM + "=" + searchVal + "*))";
ld = getAdminConnection();
SearchCursor searchResults = search( ld, ssdRoot,
- SearchScope.SUBTREE, filter, SD_SET_ATRS, false, GlobalIds.BATCH_SIZE );
+ SearchScope.SUBTREE, filter, SD_SET_ATRS, false, Config.getInstance().getInt(GlobalIds.CONFIG_LDAP_MAX_BATCH_SIZE, GlobalIds.BATCH_SIZE ) );
long sequence = 0;
while ( searchResults.next() )
@@ -480,7 +481,7 @@
filterbuf.append( ")" );
ld = getAdminConnection();
SearchCursor searchResults = search( ld, ssdRoot,
- SearchScope.SUBTREE, filterbuf.toString(), SD_SET_ATRS, false, GlobalIds.BATCH_SIZE );
+ SearchScope.SUBTREE, filterbuf.toString(), SD_SET_ATRS, false, Config.getInstance().getInt(GlobalIds.CONFIG_LDAP_MAX_BATCH_SIZE, GlobalIds.BATCH_SIZE ) );
long sequence = 0;
while ( searchResults.next() )
@@ -569,7 +570,7 @@
filterbuf.append( "))" );
ld = getAdminConnection();
SearchCursor searchResults = search( ld, ssdRoot,
- SearchScope.SUBTREE, filterbuf.toString(), SD_SET_ATRS, false, GlobalIds.BATCH_SIZE );
+ SearchScope.SUBTREE, filterbuf.toString(), SD_SET_ATRS, false, Config.getInstance().getInt(GlobalIds.CONFIG_LDAP_MAX_BATCH_SIZE, GlobalIds.BATCH_SIZE ) );
long sequence = 0;
while ( searchResults.next() )
diff --git a/src/main/java/org/apache/directory/fortress/core/impl/UserDAO.java b/src/main/java/org/apache/directory/fortress/core/impl/UserDAO.java
index 7742d63..de41657 100755
--- a/src/main/java/org/apache/directory/fortress/core/impl/UserDAO.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/UserDAO.java
@@ -1027,7 +1027,7 @@
ld = getAdminConnection();
SearchCursor searchResults = search( ld, userRoot, SearchScope.ONELEVEL, filterbuf.toString(), defaultAtrs, false,
- GlobalIds.BATCH_SIZE );
+ Config.getInstance().getInt(GlobalIds.CONFIG_LDAP_MAX_BATCH_SIZE, Config.getInstance().getInt(GlobalIds.CONFIG_LDAP_MAX_BATCH_SIZE, GlobalIds.BATCH_SIZE ) ) );
long sequence = 0;
while ( searchResults.next() )
@@ -1158,7 +1158,7 @@
filterbuf.append( ")" );
ld = getAdminConnection();
SearchCursor searchResults = search( ld, userRoot, SearchScope.ONELEVEL, filterbuf.toString(), defaultAtrs, false,
- GlobalIds.BATCH_SIZE );
+ Config.getInstance().getInt(GlobalIds.CONFIG_LDAP_MAX_BATCH_SIZE, GlobalIds.BATCH_SIZE ) );
long sequence = 0;
while ( searchResults.next() )
@@ -1223,7 +1223,7 @@
ld = getAdminConnection();
SearchCursor searchResults = search( ld, userRoot, SearchScope.ONELEVEL, filterbuf.toString(), defaultAtrs, false,
- GlobalIds.BATCH_SIZE );
+ Config.getInstance().getInt(GlobalIds.CONFIG_LDAP_MAX_BATCH_SIZE, GlobalIds.BATCH_SIZE ) );
long sequence = 0;
while ( searchResults.next() )
@@ -1279,7 +1279,7 @@
ld = getAdminConnection();
SearchCursor searchResults = search( ld, userRoot, SearchScope.ONELEVEL, filterbuf.toString(), defaultAtrs, false,
- GlobalIds.BATCH_SIZE );
+ Config.getInstance().getInt(GlobalIds.CONFIG_LDAP_MAX_BATCH_SIZE, GlobalIds.BATCH_SIZE ) );
while ( searchResults.next() )
{
@@ -1349,7 +1349,7 @@
ld = getAdminConnection();
SearchCursor searchResults = search( ld, userRoot, SearchScope.ONELEVEL, filterbuf.toString(), USERID_ATR, false,
- GlobalIds.BATCH_SIZE );
+ Config.getInstance().getInt(GlobalIds.CONFIG_LDAP_MAX_BATCH_SIZE, GlobalIds.BATCH_SIZE ) );
long sequence = 0;
while ( searchResults.next() )
@@ -1417,7 +1417,7 @@
ld = getAdminConnection();
SearchCursor searchResults = search( ld, userRoot, SearchScope.ONELEVEL, filterbuf.toString(), USERID_ATRS,
false,
- GlobalIds.BATCH_SIZE );
+ Config.getInstance().getInt(GlobalIds.CONFIG_LDAP_MAX_BATCH_SIZE, GlobalIds.BATCH_SIZE ) );
while ( searchResults.next() )
{
@@ -1468,7 +1468,7 @@
ld = getAdminConnection();
SearchCursor searchResults = search( ld, userRoot, SearchScope.ONELEVEL, filterbuf.toString(), defaultAtrs, false,
- GlobalIds.BATCH_SIZE );
+ Config.getInstance().getInt(GlobalIds.CONFIG_LDAP_MAX_BATCH_SIZE, GlobalIds.BATCH_SIZE ) );
long sequence = 0;
while ( searchResults.next() )
@@ -1577,7 +1577,7 @@
ld = getAdminConnection();
SearchCursor searchResults = search( ld, userRoot, SearchScope.ONELEVEL, filterbuf.toString(), defaultAtrs, false,
- GlobalIds.BATCH_SIZE );
+ Config.getInstance().getInt(GlobalIds.CONFIG_LDAP_MAX_BATCH_SIZE, GlobalIds.BATCH_SIZE ) );
long sequence = 0;
while ( searchResults.next() )
diff --git a/src/main/java/org/apache/directory/fortress/core/util/Config.java b/src/main/java/org/apache/directory/fortress/core/util/Config.java
index 6074c7d..da41282 100755
--- a/src/main/java/org/apache/directory/fortress/core/util/Config.java
+++ b/src/main/java/org/apache/directory/fortress/core/util/Config.java
@@ -154,7 +154,7 @@
}
else
{
- LOG.error( "getProperty invalid config, can't read prop [{}]", name );
+ LOG.warn( "getProperty invalid config, can't read prop [{}]", name );
}
return value;
}
@@ -172,6 +172,7 @@
if ( config != null )
{
value = ( String ) config.getProperty( name );
+ LOG.debug( "getProperty name [{}] value [{}] default value [{}]", name, value, defaultValue );
}
else
{
@@ -201,7 +202,7 @@
}
else
{
- LOG.error( "getChar invalid config, can't read prop [{}]", name );
+ LOG.warn( "getChar invalid config, can't read prop [{}]", name );
}
return value;
}
@@ -219,11 +220,11 @@
if ( config != null )
{
value = ( char ) config.getProperty( name );
+ LOG.debug( "getChar name [{}] value [{}]", name, value );
}
else
{
- String warn = "getChar invalid config, can't read prop [" + name + "]";
- LOG.warn( warn );
+ LOG.warn( "getChar invalid config, can't read prop [{}], using default [{}]", name, defaultValue );
}
if ( value == 0 )
{
@@ -241,14 +242,22 @@
public int getInt( String key )
{
int value = 0;
- if ( config != null )
+ try
{
- value = config.getInt( key );
+ if ( config != null )
+ {
+ value = config.getInt( key );
+ LOG.debug( "getInt name [{}] value [{}]", key, value );
+ }
+ else
+ {
+ LOG.warn( "getInt invalid config, can't read prop [{}]", key );
+
+ }
}
- else
+ catch (org.apache.commons.configuration.ConversionException e)
{
- String warn = "getInt invalid config, can't read prop [" + key + "]";
- LOG.warn( warn );
+ LOG.debug( "getInt can't read prop [{}], exception [{}]", key, e );
}
return value;
}
@@ -262,15 +271,23 @@
*/
public int getInt( String key, int defaultValue )
{
- int value = 0;
- if ( config != null )
+ int value = defaultValue;
+ try
{
- value = config.getInt( key, defaultValue );
+ if ( config != null )
+ {
+ value = config.getInt( key, defaultValue );
+ LOG.debug( "getInt name [{}] value [{}]", key, value );
+ }
+ else
+ {
+ LOG.warn( "getInt invalid config, can't read prop [{}], using default [{}]", key, defaultValue );
+
+ }
}
- else
+ catch (org.apache.commons.configuration.ConversionException e)
{
- String warn = "getInt invalid config, can't read prop [" + key + "]";
- LOG.warn( warn );
+ LOG.debug( "getInt can't read prop [{}], using default [{}], exception [{}]", key, defaultValue, e );
}
return value;
}
@@ -289,16 +306,17 @@
if (config != null)
{
value = config.getBoolean(key);
+ LOG.debug( "getBoolean name [{}] value [{}]", key, value );
}
else
{
- String warn = "getBoolean - invalid config, can't read prop [" + key + "]";
- LOG.warn(warn);
+ LOG.warn( "getBoolean invalid config, can't read prop [{}], using default [{}]", key, false );
+
}
}
catch (java.util.NoSuchElementException e )
{
- // prop not found, ignore.
+ LOG.debug( "getBoolean - no such element [{}], using default [{}]", key, false );
}
return value;
}
@@ -318,16 +336,16 @@
if ( config != null )
{
value = config.getBoolean( key, defaultValue );
+ LOG.debug( "getBoolean name [{}] value [{}]", key, value );
}
else
{
- String warn = "getBoolean - invalid config, can't read prop [" + key + "]";
- LOG.warn( warn );
+ LOG.warn( "getBoolean - invalid config, can't read prop [{}], using default [{}]", key, defaultValue );
}
}
catch (java.util.NoSuchElementException e )
{
- // prop not found, ignore.
+ LOG.debug( "getBoolean - no such element [{}], using default [{}]", key, defaultValue );
}
return value;
}
diff --git a/src/test/java/org/apache/directory/fortress/core/ConfigMgrConsole.java b/src/test/java/org/apache/directory/fortress/core/ConfigMgrConsole.java
index 69c4554..7fe9ca7 100755
--- a/src/test/java/org/apache/directory/fortress/core/ConfigMgrConsole.java
+++ b/src/test/java/org/apache/directory/fortress/core/ConfigMgrConsole.java
@@ -25,6 +25,7 @@
import java.util.Enumeration;
import java.util.Properties;
+import org.apache.directory.fortress.core.util.Config;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -156,4 +157,29 @@
}
ReaderUtil.readChar();
}
+
+
+ void getProperty()
+ {
+ ReaderUtil.clearScreen();
+ System.out.println("Enter config param key:");
+ String key = ReaderUtil.readLn();
+ String value = Config.getInstance().getProperty(key);
+ System.out.println("PROP=" + key + " VALUE=" + value);
+ System.out.println("ENTER to continue");
+ ReaderUtil.readChar();
+ }
+
+
+ void getInt()
+ {
+ ReaderUtil.clearScreen();
+ System.out.println("Enter config param key:");
+ String key = ReaderUtil.readLn();
+ int value = Config.getInstance().getInt(key);
+ System.out.println("PROP=" + key + " VALUE=" + value);
+ System.out.println("ENTER to continue");
+ ReaderUtil.readChar();
+ }
+
}
\ No newline at end of file
diff --git a/src/test/java/org/apache/directory/fortress/core/ProcessMenuCommand.java b/src/test/java/org/apache/directory/fortress/core/ProcessMenuCommand.java
index 5f7b0a9..990317e 100755
--- a/src/test/java/org/apache/directory/fortress/core/ProcessMenuCommand.java
+++ b/src/test/java/org/apache/directory/fortress/core/ProcessMenuCommand.java
@@ -289,6 +289,12 @@
case '4':
cfgConsole.deleteProps();
break;
+ case '5':
+ cfgConsole.getProperty();
+ break;
+ case '6':
+ cfgConsole.getInt();
+ break;
case 'q':
case 'Q':
done = true;
@@ -316,6 +322,8 @@
System.out.println( "2. Update Config Param" );
System.out.println( "3. Read Config Params" );
System.out.println( "4. Delete Config Params" );
+ System.out.println( "5. GetProperty" );
+ System.out.println( "6. GetInt" );
System.out.println( "Enter q or Q to return to previous menu" );
}
diff --git a/src/test/java/org/apache/directory/fortress/core/example/ExampleDAO.java b/src/test/java/org/apache/directory/fortress/core/example/ExampleDAO.java
index e46d2d2..9c15716 100755
--- a/src/test/java/org/apache/directory/fortress/core/example/ExampleDAO.java
+++ b/src/test/java/org/apache/directory/fortress/core/example/ExampleDAO.java
@@ -280,7 +280,7 @@
String filter = GlobalIds.FILTER_PREFIX + Arrays.toString(EIds.EXAMPLE_OBJ_CLASS) + ")("
+ EIds.EXAMPLE_NM + "=" + searchVal + "*))";
SearchCursor searchResults = search( ld, exampleRoot,
- SearchScope.SUBTREE, filter, EXAMPLE_ATRS, false, GlobalIds.BATCH_SIZE );
+ SearchScope.SUBTREE, filter, EXAMPLE_ATRS, false, Config.getInstance().getInt(GlobalIds.CONFIG_LDAP_MAX_BATCH_SIZE, Config.getInstance().getInt(GlobalIds.CONFIG_LDAP_MAX_BATCH_SIZE, GlobalIds.BATCH_SIZE ) ));
while ( searchResults.next() )
{
exampleList.add(getEntityFromLdapEntry(searchResults.getEntry()));