modify AdminGeneralAction

This commit is contained in:
Shunji Makino 2016-03-03 15:28:14 +09:00
parent 08de9da936
commit 2a2f04b91a
2 changed files with 236 additions and 58 deletions

View file

@ -117,34 +117,59 @@ public class AdminGeneralAction extends FessAdminAction {
});
fessConfig.setLoginRequired(Constants.ON.equalsIgnoreCase(form.loginRequired));
updateProperty(Constants.INCREMENTAL_CRAWLING_PROPERTY, getCheckboxValue(form.incrementalCrawling));
updateProperty(Constants.DAY_FOR_CLEANUP_PROPERTY, form.dayForCleanup.toString());
updateProperty(Constants.CRAWLING_THREAD_COUNT_PROPERTY, form.crawlingThreadCount.toString());
updateProperty(Constants.SEARCH_LOG_PROPERTY, getCheckboxValue(form.searchLog));
updateProperty(Constants.USER_INFO_PROPERTY, getCheckboxValue(form.userInfo));
updateProperty(Constants.USER_FAVORITE_PROPERTY, getCheckboxValue(form.userFavorite));
updateProperty(Constants.WEB_API_JSON_PROPERTY, getCheckboxValue(form.webApiJson));
//boolean updateProperty(Constants.INCREMENTAL_CRAWLING_PROPERTY, getCheckboxValue(form.incrementalCrawling));
fessConfig.setIncrementalCrawling(Constants.ON.equalsIgnoreCase(form.incrementalCrawling));
//int updateProperty(Constants.DAY_FOR_CLEANUP_PROPERTY, form.dayForCleanup.toString());
fessConfig.setDayForCleanup(form.dayForCleanup);
// updateProperty(Constants.CRAWLING_THREAD_COUNT_PROPERTY, form.crawlingThreadCount.toString());
fessConfig.setCrawlingThreadCount(form.crawlingThreadCount);
// updateProperty(Constants.SEARCH_LOG_PROPERTY, getCheckboxValue(form.searchLog));
fessConfig.setSearchLog(Constants.ON.equalsIgnoreCase(form.searchLog));
// updateProperty(Constants.USER_INFO_PROPERTY, getCheckboxValue(form.userInfo));
fessConfig.setUserInfo(Constants.ON.equalsIgnoreCase(form.userInfo));
// updateProperty(Constants.USER_FAVORITE_PROPERTY, getCheckboxValue(form.userFavorite));
fessConfig.setUserFavorite(Constants.ON.equalsIgnoreCase(form.userFavorite));
// updateProperty(Constants.WEB_API_JSON_PROPERTY, getCheckboxValue(form.webApiJson));
fessConfig.setWebApiJson(Constants.ON.equalsIgnoreCase(form.webApiJson));
fessConfig.setDefaultLabelValue(form.defaultLabelValue);
fessConfig.setDefaultSortValue(form.defaultSortValue);
updateProperty(Constants.APPEND_QUERY_PARAMETER_PROPERTY, getCheckboxValue(form.appendQueryParameter));
updateProperty(Constants.IGNORE_FAILURE_TYPE_PROPERTY, form.ignoreFailureType);
updateProperty(Constants.FAILURE_COUNT_THRESHOLD_PROPERTY, form.failureCountThreshold.toString());
// updateProperty(Constants.APPEND_QUERY_PARAMETER_PROPERTY, getCheckboxValue(form.appendQueryParameter));
fessConfig.setAppendQueryParameter(Constants.ON.equalsIgnoreCase(form.appendQueryParameter));
//String updateProperty(Constants.IGNORE_FAILURE_TYPE_PROPERTY, form.ignoreFailureType);
fessConfig.setIgnoreFailureType(form.ignoreFailureType);
// updateProperty(Constants.FAILURE_COUNT_THRESHOLD_PROPERTY, form.failureCountThreshold.toString());
fessConfig.setFailureCountThreshold(form.failureCountThreshold);
fessConfig.setWebApiPopularWord(Constants.ON.equalsIgnoreCase(form.popularWord));
updateProperty(Constants.CSV_FILE_ENCODING_PROPERTY, form.csvFileEncoding);
updateProperty(Constants.PURGE_SEARCH_LOG_DAY_PROPERTY, form.purgeSearchLogDay.toString());
updateProperty(Constants.PURGE_JOB_LOG_DAY_PROPERTY, form.purgeJobLogDay.toString());
updateProperty(Constants.PURGE_USER_INFO_DAY_PROPERTY, form.purgeUserInfoDay.toString());
updateProperty(Constants.PURGE_BY_BOTS_PROPERTY, form.purgeByBots);
updateProperty(Constants.NOTIFICATION_TO_PROPERTY, form.notificationTo);
updateProperty(Constants.SUGGEST_SEARCH_LOG_PROPERTY, getCheckboxValue(form.suggestSearchLog));
updateProperty(Constants.SUGGEST_DOCUMENTS_PROPERTY, getCheckboxValue(form.suggestDocuments));
updateProperty(Constants.PURGE_SUGGEST_SEARCH_LOG_DAY_PROPERTY, form.purgeSuggestSearchLogDay.toString());
updateProperty(Constants.LDAP_PROVIDER_URL, form.ldapProviderUrl);
updateProperty(Constants.LDAP_SECURITY_PRINCIPAL, form.ldapSecurityPrincipal);
updateProperty(Constants.LDAP_BASE_DN, form.ldapBaseDn);
updateProperty(Constants.LDAP_ACCOUNT_FILTER, form.ldapAccountFilter);
updateProperty(Constants.NOTIFICATION_LOGIN, form.notificationLogin);
updateProperty(Constants.NOTIFICATION_SEARCH_TOP, form.notificationSearchTop);
// updateProperty(Constants.CSV_FILE_ENCODING_PROPERTY, form.csvFileEncoding);
fessConfig.setCsvFileEncoding(form.csvFileEncoding);
// updateProperty(Constants.PURGE_SEARCH_LOG_DAY_PROPERTY, form.purgeSearchLogDay.toString());
fessConfig.setPurgeSearchLogDay(form.purgeSearchLogDay);
//int updateProperty(Constants.PURGE_JOB_LOG_DAY_PROPERTY, form.purgeJobLogDay.toString());
fessConfig.setPurgeJobLogDay(form.purgeJobLogDay);
// updateProperty(Constants.PURGE_USER_INFO_DAY_PROPERTY, form.purgeUserInfoDay.toString());
fessConfig.setPurgeUserInfoDay(form.purgeUserInfoDay);
//String updateProperty(Constants.PURGE_BY_BOTS_PROPERTY, form.purgeByBots);
fessConfig.setPurgeByBots(form.purgeByBots);
// updateProperty(Constants.NOTIFICATION_TO_PROPERTY, form.notificationTo);
fessConfig.setNotificationTo(form.notificationTo);
////s updateProperty(Constants.SUGGEST_SEARCH_LOG_PROPERTY, getCheckboxValue(form.suggestSearchLog));
// fessConfig.setSuggestSearchLog(form.suggestSearchLog);
////s updateProperty(Constants.SUGGEST_DOCUMENTS_PROPERTY, getCheckboxValue(form.suggestDocuments));
// fessConfig.setSuggestDocuments(form.suggestDocuments);
////i updateProperty(Constants.PURGE_SUGGEST_SEARCH_LOG_DAY_PROPERTY, form.purgeSuggestSearchLogDay.toString());
// fessConfig.setPurgeSuggestSearchLogDay(form.purgeSuggestSearchLogDay);
////s updateProperty(Constants.LDAP_PROVIDER_URL, form.ldapProviderUrl);
// fessConfig.setLdapProviderUrl(form.ldapProviderUrl);
////s updateProperty(Constants.LDAP_SECURITY_PRINCIPAL, form.ldapProviderUrl);
// fessConfig.setLdapSecurityPrincipal(form.ldapSecurityPrincipal);
////s updateProperty(Constants.LDAP_BASE_DN, form.ldapBaseDn);
// fessConfig.setLdapBaseDn(form.ldapBaseDn);
////s updateProperty(Constants.LDAP_ACCOUNT_FILTER, form.ldapAccountFilter);
// fessConfig.setLdapAccountFilter(form.ldapAccountFilter);
////s updateProperty(Constants.NOTIFICATION_LOGIN, form.notificationLogin);
// fessConfig.setNotificationLogin(form.notificationLogin);
////s updateProperty(Constants.NOTIFICATION_SEARCH_TOP, form.notificationSearchTop);
// fessConfig.setNotificationSearchTop(form.notificationSearchTop);
fessConfig.storeSystemProperties();
saveInfo(messages -> messages.addSuccessUpdateCrawlerParams(GLOBAL));
@ -157,40 +182,59 @@ public class AdminGeneralAction extends FessAdminAction {
protected void updateForm(final EditForm form) {
form.loginRequired = fessConfig.isLoginRequired() ? Constants.TRUE : Constants.FALSE;
form.incrementalCrawling = systemProperties.getProperty(Constants.INCREMENTAL_CRAWLING_PROPERTY, Constants.TRUE);
form.dayForCleanup = getPropertyAsInteger(Constants.DAY_FOR_CLEANUP_PROPERTY, Constants.DEFAULT_DAY_FOR_CLEANUP);
form.crawlingThreadCount = getPropertyAsInteger(Constants.CRAWLING_THREAD_COUNT_PROPERTY, 5);
form.searchLog = systemProperties.getProperty(Constants.SEARCH_LOG_PROPERTY, Constants.TRUE);
form.userInfo = systemProperties.getProperty(Constants.USER_INFO_PROPERTY, Constants.TRUE);
form.userFavorite = systemProperties.getProperty(Constants.USER_FAVORITE_PROPERTY, Constants.FALSE);
form.webApiJson = systemProperties.getProperty(Constants.WEB_API_JSON_PROPERTY, Constants.TRUE);
//boolean form.incrementalCrawling = systemProperties.getProperty(Constants.INCREMENTAL_CRAWLING_PROPERTY, Constants.TRUE);
form.incrementalCrawling = fessConfig.isIncrementalCrawling() ? Constants.TRUE : Constants.FALSE;
//int form.dayForCleanup = getPropertyAsInteger(Constants.DAY_FOR_CLEANUP_PROPERTY, Constants.DEFAULT_DAY_FOR_CLEANUP);
form.dayForCleanup = fessConfig.getDayForCleanup();
// form.crawlingThreadCount = getPropertyAsInteger(Constants.CRAWLING_THREAD_COUNT_PROPERTY, 5);
form.crawlingThreadCount = fessConfig.getCrawlingThreadCount();
// form.searchLog = systemProperties.getProperty(Constants.SEARCH_LOG_PROPERTY, Constants.TRUE);
form.searchLog = fessConfig.isSearchLog() ? Constants.TRUE : Constants.FALSE;
// form.userInfo = systemProperties.getProperty(Constants.USER_INFO_PROPERTY, Constants.TRUE);
form.userInfo = fessConfig.isUserInfo() ? Constants.TRUE : Constants.FALSE;
// form.userFavorite = systemProperties.getProperty(Constants.USER_FAVORITE_PROPERTY, Constants.FALSE);
form.userFavorite = fessConfig.isUserFavorite() ? Constants.TRUE : Constants.FALSE;
// form.webApiJson = systemProperties.getProperty(Constants.WEB_API_JSON_PROPERTY, Constants.TRUE);
form.webApiJson = fessConfig.isWebApiJson() ? Constants.TRUE : Constants.FALSE;
form.defaultLabelValue = fessConfig.getDefaultLabelValue();
form.defaultSortValue = fessConfig.getDefaultSortValue();
form.appendQueryParameter = systemProperties.getProperty(Constants.APPEND_QUERY_PARAMETER_PROPERTY, Constants.FALSE);
form.ignoreFailureType =
systemProperties.getProperty(Constants.IGNORE_FAILURE_TYPE_PROPERTY, Constants.DEFAULT_IGNORE_FAILURE_TYPE);
form.failureCountThreshold = getPropertyAsInteger(Constants.FAILURE_COUNT_THRESHOLD_PROPERTY, Constants.DEFAULT_FAILURE_COUNT);
// form.appendQueryParameter = systemProperties.getProperty(Constants.APPEND_QUERY_PARAMETER_PROPERTY, Constants.FALSE);
form.appendQueryParameter = fessConfig.isAppendQueryParameter() ? Constants.TRUE : Constants.FALSE;
//String form.ignoreFailureType = systemProperties.getProperty(Constants.IGNORE_FAILURE_TYPE_PROPERTY, Constants.DEFAULT_IGNORE_FAILURE_TYPE);
form.ignoreFailureType = fessConfig.getIgnoreFailureType();
// form.failureCountThreshold = getPropertyAsInteger(Constants.FAILURE_COUNT_THRESHOLD_PROPERTY, Constants.DEFAULT_FAILURE_COUNT);
form.failureCountThreshold = fessConfig.getFailureCountThreshold();
form.popularWord = fessConfig.isWebApiPopularWord() ? Constants.TRUE : Constants.FALSE;
form.csvFileEncoding = systemProperties.getProperty(Constants.CSV_FILE_ENCODING_PROPERTY, Constants.UTF_8);
form.purgeSearchLogDay =
Integer.parseInt(systemProperties.getProperty(Constants.PURGE_SEARCH_LOG_DAY_PROPERTY, Constants.DEFAULT_PURGE_DAY));
form.purgeJobLogDay =
Integer.parseInt(systemProperties.getProperty(Constants.PURGE_JOB_LOG_DAY_PROPERTY, Constants.DEFAULT_PURGE_DAY));
form.purgeUserInfoDay =
Integer.parseInt(systemProperties.getProperty(Constants.PURGE_USER_INFO_DAY_PROPERTY, Constants.DEFAULT_PURGE_DAY));
form.purgeByBots = systemProperties.getProperty(Constants.PURGE_BY_BOTS_PROPERTY, Constants.DEFAULT_PURGE_BY_BOTS);
form.notificationTo = systemProperties.getProperty(Constants.NOTIFICATION_TO_PROPERTY, StringUtil.EMPTY);
form.suggestSearchLog = systemProperties.getProperty(Constants.SUGGEST_SEARCH_LOG_PROPERTY, Constants.TRUE);
form.suggestDocuments = systemProperties.getProperty(Constants.SUGGEST_DOCUMENTS_PROPERTY, Constants.TRUE);
form.purgeSuggestSearchLogDay =
Integer.parseInt(systemProperties.getProperty(Constants.PURGE_SUGGEST_SEARCH_LOG_DAY_PROPERTY,
Constants.DEFAULT_SUGGEST_PURGE_DAY));
form.ldapProviderUrl = systemProperties.getProperty(Constants.LDAP_PROVIDER_URL, StringUtil.EMPTY);
form.ldapSecurityPrincipal = systemProperties.getProperty(Constants.LDAP_SECURITY_PRINCIPAL, StringUtil.EMPTY);
form.ldapBaseDn = systemProperties.getProperty(Constants.LDAP_BASE_DN, StringUtil.EMPTY);
form.ldapAccountFilter = systemProperties.getProperty(Constants.LDAP_ACCOUNT_FILTER, StringUtil.EMPTY);
form.notificationLogin = systemProperties.getProperty(Constants.NOTIFICATION_LOGIN, StringUtil.EMPTY);
form.notificationSearchTop = systemProperties.getProperty(Constants.NOTIFICATION_SEARCH_TOP, StringUtil.EMPTY);
// form.csvFileEncoding = systemProperties.getProperty(Constants.CSV_FILE_ENCODING_PROPERTY, Constants.UTF_8);
form.csvFileEncoding = fessConfig.getCsvFileEncoding();
// form.purgeSearchLogDay = Integer.parseInt(systemProperties.getProperty(Constants.PURGE_SEARCH_LOG_DAY_PROPERTY, Constants.DEFAULT_PURGE_DAY));
form.purgeSearchLogDay = fessConfig.getPurgeSearchLogDay();
//int form.purgeJobLogDay = Integer.parseInt(systemProperties.getProperty(Constants.PURGE_JOB_LOG_DAY_PROPERTY, Constants.DEFAULT_PURGE_DAY));
form.purgeJobLogDay = fessConfig.getPurgeJobLogDay();
// form.purgeUserInfoDay = Integer.parseInt(systemProperties.getProperty(Constants.PURGE_USER_INFO_DAY_PROPERTY, Constants.DEFAULT_PURGE_DAY));
form.purgeUserInfoDay = fessConfig.getPurgeUserInfoDay();
//String form.purgeByBots = systemProperties.getProperty(Constants.PURGE_BY_BOTS_PROPERTY, Constants.DEFAULT_PURGE_BY_BOTS);
form.purgeByBots = fessConfig.getPurgeByBots();
// form.notificationTo = systemProperties.getProperty(Constants.NOTIFICATION_TO_PROPERTY, StringUtil.EMPTY);
form.notificationTo = fessConfig.getNotificationTo();
////s form.suggestSearchLog = systemProperties.getProperty(Constants.SUGGEST_SEARCH_LOG_PROPERTY, Constants.TRUE);
// form.suggestSearchLog = fessConfig.getSuggestSearchLog();
////s form.suggestDocuments = systemProperties.getProperty(Constants.SUGGEST_DOCUMENTS_PROPERTY, Constants.TRUE);
// form.suggestDocuments = fessConfig.getSuggestDocuments();
////i form.purgeSuggestSearchLogDay = Integer.parseInt(systemProperties.getProperty(Constants.PURGE_SUGGEST_SEARCH_LOG_DAY_PROPERTY, Constants.DEFAULT_SUGGEST_PURGE_DAY));
// form.purgeSuggestSearchLogDay = fessConfig.getPurgeSuggestSearchLogDay();
////s form.ldapProviderUrl = systemProperties.getProperty(Constants.LDAP_PROVIDER_URL, StringUtil.EMPTY);
// form.ldapProviderUrl = fessConfig.getLdapProviderUrl();
////s form.ldapSecurityPrincipal = systemProperties.getProperty(Constants.LDAP_SECURITY_PRINCIPAL, StringUtil.EMPTY);
// form.ldapSecurityPrincipal = fessConfig.getLdapSecurityPrincipal();
////s form.ldapBaseDn = systemProperties.getProperty(Constants.LDAP_BASE_DN, StringUtil.EMPTY);
// form.ldapBaseDn = fessConfig.getLdapBaseDn();
////s form.ldapAccountFilter = systemProperties.getProperty(Constants.LDAP_ACCOUNT_FILTER, StringUtil.EMPTY);
// form.ldapAccountFilter = fessConfig.getLdapAccountFilter();
////s form.notificationLogin = systemProperties.getProperty(Constants.NOTIFICATION_LOGIN, StringUtil.EMPTY);
// form.notificationLogin = fessConfig.getNotificationLogin();
////s form.notificationSearchTop = systemProperties.getProperty(Constants.NOTIFICATION_SEARCH_TOP, StringUtil.EMPTY);
// form.notificationSearchTop = fessConfig.getNotificationSearchTop();
}
private void updateProperty(final String key, final String value) {

View file

@ -203,14 +203,148 @@ public interface FessProp {
public default boolean isLoginRequired() {
return getSystemPropertyAsBoolean(Constants.LOGIN_REQUIRED_PROPERTY, false);
}
//TODO boolean
public default void setIncrementalCrawling(final boolean value) {
setSystemPropertyAsBoolean(Constants.INCREMENTAL_CRAWLING_PROPERTY, value);
}
public default boolean isIncrementalCrawling() {
return getSystemPropertyAsBoolean(Constants.INCREMENTAL_CRAWLING_PROPERTY, true);
}
//TODO int
public default void setDayForCleanup(final int value) {
setSystemPropertyAsInt(Constants.DAY_FOR_CLEANUP_PROPERTY, value);
}
public default int getDayForCleanup() {
return getSystemPropertyAsInt(Constants.DAY_FOR_CLEANUP_PROPERTY, Constants.DEFAULT_DAY_FOR_CLEANUP);
}
public default void setCrawlingThreadCount(final int value) {
setSystemPropertyAsInt(Constants.CRAWLING_THREAD_COUNT_PROPERTY, value);
}
public default int getCrawlingThreadCount() {
return getSystemPropertyAsInt(Constants.CRAWLING_THREAD_COUNT_PROPERTY, 5);
}
public default void setSearchLog(final boolean value) {
setSystemPropertyAsBoolean(Constants.SEARCH_LOG_PROPERTY, value);
}
public default boolean isSearchLog() {
return getSystemPropertyAsBoolean(Constants.SEARCH_LOG_PROPERTY, false);
}
public default void setUserInfo(final boolean value) {
setSystemPropertyAsBoolean(Constants.USER_INFO_PROPERTY, value);
}
public default boolean isUserInfo() {
return getSystemPropertyAsBoolean(Constants.USER_INFO_PROPERTY, false);
}
public default void setUserFavorite(final boolean value) {
setSystemPropertyAsBoolean(Constants.USER_FAVORITE_PROPERTY, value);
}
public default boolean isUserFavorite() {
return getSystemPropertyAsBoolean(Constants.USER_FAVORITE_PROPERTY, false);
}
public default void setWebApiJson(final boolean value) {
setSystemPropertyAsBoolean(Constants.WEB_API_JSON_PROPERTY, value);
}
public default boolean isWebApiJson() {
return getSystemPropertyAsBoolean(Constants.WEB_API_JSON_PROPERTY, false);
}
public default void setAppendQueryParameter(final boolean value) {
setSystemPropertyAsBoolean(Constants.APPEND_QUERY_PARAMETER_PROPERTY, value);
}
public default boolean isAppendQueryParameter() {
return getSystemPropertyAsBoolean(Constants.APPEND_QUERY_PARAMETER_PROPERTY, false);
}
//TODO String
public default void setIgnoreFailureType(final String value) {
setSystemProperty(Constants.IGNORE_FAILURE_TYPE_PROPERTY, value);
}
public default String getIgnoreFailureType() {
return getSystemProperty(Constants.IGNORE_FAILURE_TYPE_PROPERTY, Constants.DEFAULT_IGNORE_FAILURE_TYPE);
}
public default void setFailureCountThreshold(final int value) {
setSystemPropertyAsInt(Constants.FAILURE_COUNT_THRESHOLD_PROPERTY, value);
}
public default int getFailureCountThreshold() {
return getSystemPropertyAsInt(Constants.FAILURE_COUNT_THRESHOLD_PROPERTY, Constants.DEFAULT_FAILURE_COUNT);
}
public default void setWebApiPopularWord(final boolean value) {
setSystemPropertyAsBoolean(Constants.WEB_API_POPULAR_WORD_PROPERTY, value);
}
public default boolean isWebApiPopularWord() {
return getSystemPropertyAsBoolean(Constants.WEB_API_POPULAR_WORD_PROPERTY, true);
}
public default void setCsvFileEncoding(final String value) {
setSystemProperty(Constants.CSV_FILE_ENCODING_PROPERTY, value);
}
public default String getCsvFileEncoding() {
return getSystemProperty(Constants.CSV_FILE_ENCODING_PROPERTY, Constants.UTF_8);
}
public default void setPurgeSearchLogDay(final int value) {
setSystemPropertyAsInt(Constants.PURGE_SEARCH_LOG_DAY_PROPERTY, value);
}
public default int getPurgeSearchLogDay() {
return getSystemPropertyAsInt(Constants.PURGE_SEARCH_LOG_DAY_PROPERTY, Integer.parseInt(Constants.DEFAULT_PURGE_DAY));
}
//TODO int
public default void setPurgeJobLogDay(final int value) {
setSystemPropertyAsInt(Constants.PURGE_JOB_LOG_DAY_PROPERTY, value);
}
public default int getPurgeJobLogDay() {
return getSystemPropertyAsInt(Constants.PURGE_JOB_LOG_DAY_PROPERTY, Integer.parseInt(Constants.DEFAULT_PURGE_DAY));
}
public default void setPurgeUserInfoDay(final int value) {
setSystemPropertyAsInt(Constants.PURGE_BY_BOTS_PROPERTY, value);
}
public default int getPurgeUserInfoDay() {
return getSystemPropertyAsInt(Constants.PURGE_BY_BOTS_PROPERTY, Integer.parseInt(Constants.DEFAULT_PURGE_BY_BOTS));
}
//TODO string
public default void setPurgeByBots(final String value) {
setSystemProperty(Constants.PURGE_BY_BOTS_PROPERTY, value);
}
public default String getPurgeByBots() {
return getSystemProperty(Constants.PURGE_BY_BOTS_PROPERTY, Constants.DEFAULT_PURGE_BY_BOTS);
}
public default void setNotificationTo(final String value) {
setSystemProperty(Constants.NOTIFICATION_TO_PROPERTY, value);
}
public default String getNotificationTo() {
return getSystemProperty(Constants.NOTIFICATION_TO_PROPERTY, StringUtil.EMPTY);
}
//TODO
public default String getLdapInitialContextFactory() {
return getSystemProperty(Constants.LDAP_INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");