Checkpoint commit for OPENDJ-1288 :
Migrate I18n and logging support to i18n framework and SLF4J
* Replace CharSequence by Object for string message arguments
Allows to avoid toString() calls when logging
* Clean logging in AuthorizationPolicy class
| | |
| | | c = Integer.class; |
| | | } else if ( |
| | | "s".equals(sa5)) { |
| | | c = CharSequence.class; |
| | | c = Object.class; |
| | | } else if ( |
| | | "c".equals(sa5)) { |
| | | c = Character.class; |
| | |
| | | public static LocalizableMessage getThrowableMsg(LocalizableMessage message, Throwable t) |
| | | { |
| | | LocalizableMessageBuilder mb = new LocalizableMessageBuilder(message); |
| | | LocalizableMessageDescriptor.Arg1<CharSequence> tag; |
| | | LocalizableMessageDescriptor.Arg1<Object> tag; |
| | | if (isOutOfMemory(t)) |
| | | { |
| | | tag = INFO_EXCEPTION_OUT_OF_MEMORY_DETAILS; |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | logger.trace(e.getMessage(), e); |
| | | logger.traceException(e); |
| | | |
| | | if (logger.isTraceEnabled()) |
| | | { |
| | | logger.trace("Could not parse password policy subentry " |
| | | + "DN %s for user %s", v.getValue(), |
| | | userDNString, e); |
| | | } |
| | | logger.trace( |
| | | "Could not parse password policy subentry DN %s for user %s", v |
| | | .getValue(), userDNString, e); |
| | | |
| | | if (useDefaultOnError) |
| | | { |
| | | logger.error(ERR_PWPSTATE_CANNOT_DECODE_SUBENTRY_VALUE_AS_DN, |
| | | v.getValue().toString(), userDNString, e.getMessage()); |
| | | v.getValue(), userDNString, e.getMessage()); |
| | | return DirectoryServer.getDefaultPasswordPolicy(); |
| | | } |
| | | else |
| | | { |
| | | LocalizableMessage message = ERR_PWPSTATE_CANNOT_DECODE_SUBENTRY_VALUE_AS_DN |
| | | .get(v.getValue().toString(), userDNString, e.getMessage()); |
| | | .get(v.getValue(), userDNString, e.getMessage()); |
| | | throw new DirectoryException(ResultCode.INVALID_DN_SYNTAX, message, |
| | | e); |
| | | } |
| | |
| | | .getAuthenticationPolicy(subentryDN); |
| | | if (policy == null) |
| | | { |
| | | logger.trace("Password policy subentry %s for user %s " |
| | | + "is not defined in the Directory Server.", |
| | | logger.trace("Password policy subentry %s for user %s is not defined in the Directory Server.", |
| | | subentryDN, userDNString); |
| | | |
| | | LocalizableMessage message = ERR_PWPSTATE_NO_SUCH_POLICY.get(userDNString, |
| | | String.valueOf(subentryDN)); |
| | | LocalizableMessage message = ERR_PWPSTATE_NO_SUCH_POLICY.get(userDNString, subentryDN); |
| | | if (useDefaultOnError) |
| | | { |
| | | logger.error(message); |
| | |
| | | { |
| | | // This shouldn't happen but if it does debug log |
| | | // this problem and fall back to default policy. |
| | | logger.trace("Found unknown password policy subentry " |
| | | + "DN %s for user %s", subentry.getDN(), |
| | | userDNString); |
| | | logger.trace("Found unknown password policy subentry DN %s for user %s", |
| | | subentry.getDN(), userDNString); |
| | | break; |
| | | } |
| | | return policy; |
| | |
| | | catch (Exception e) |
| | | { |
| | | if (logger.isTraceEnabled()) { |
| | | logger.trace("Could not parse password policy subentry " |
| | | + "DN %s for user %s: %s", subentry.getDN(), |
| | | userDNString, stackTraceToSingleLineString(e)); |
| | | logger.trace("Could not parse password policy subentry DN %s for user %s: %s", |
| | | subentry.getDN(), userDNString, stackTraceToSingleLineString(e)); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | // No authentication policy found, so use the global default. |
| | | logger.trace("Using the default password policy for user %s", |
| | | userDNString); |
| | | logger.trace("Using the default password policy for user %s", userDNString); |
| | | |
| | | return DirectoryServer.getDefaultPasswordPolicy(); |
| | | } |
| | |
| | | * |
| | | * @return the set of search filters |
| | | */ |
| | | public static HashSet<SearchFilter> getFilters ( |
| | | SortedSet<String> filters, |
| | | LocalizableMessageDescriptor.Arg3<CharSequence, CharSequence, CharSequence> |
| | | decodeErrorMsg, |
| | | ConfigErrorHandler errorHandler, |
| | | DN configEntryDN |
| | | ) |
| | | public static HashSet<SearchFilter> getFilters(SortedSet<String> filters, |
| | | LocalizableMessageDescriptor.Arg3<Object, Object, Object> decodeErrorMsg, |
| | | ConfigErrorHandler errorHandler, DN configEntryDN) |
| | | { |
| | | // Returned value |
| | | HashSet<SearchFilter> searchFilters = new HashSet<SearchFilter>(); |
| | |
| | | |
| | | private final Class<P> logPublisherClass; |
| | | |
| | | private final Arg3<CharSequence, CharSequence, CharSequence> |
| | | private final Arg3<Object, Object, Object> |
| | | invalidLoggerClassErrorMessage; |
| | | |
| | | ServerContext serverContext; |
| | |
| | | */ |
| | | public AbstractLogger( |
| | | final Class<P> logPublisherClass, |
| | | final Arg3<CharSequence, CharSequence, CharSequence> |
| | | final Arg3<Object, Object, Object> |
| | | invalidLoggerClassErrorMessage) |
| | | { |
| | | this.logPublisherClass = logPublisherClass; |
| | |
| | | } |
| | | |
| | | private PatternDN[] decodePatterns(Set<String> patterns, |
| | | Arg2<CharSequence, CharSequence> errorMessage, DN dn) |
| | | Arg2<Object, Object> errorMessage, DN dn) |
| | | throws ConfigException |
| | | { |
| | | PatternDN[] results = new PatternDN[patterns.size()]; |
| | |
| | | } |
| | | catch (final DirectoryException e) |
| | | { |
| | | throw new ConfigException(errorMessage.get(String.valueOf(dn), s)); |
| | | throw new ConfigException(errorMessage.get(dn, s)); |
| | | } |
| | | } |
| | | return results; |
| | |
| | | |
| | | private Integer getIntegerUserAttribute(Entry userEntry, |
| | | String attributeTypeName, |
| | | Arg1<CharSequence> nonUniqueAttributeMessage, |
| | | Arg2<CharSequence, CharSequence> cannotProcessAttributeMessage) |
| | | Arg1<Object> nonUniqueAttributeMessage, |
| | | Arg2<Object, Object> cannotProcessAttributeMessage) |
| | | { |
| | | AttributeType attrType = |
| | | DirectoryServer.getAttributeType(attributeTypeName, true); |
| | |
| | | * If the update operation has been rejected. |
| | | */ |
| | | static void checkIfBackendIsWritable(Backend backend, Operation op, |
| | | DN entryDN, LocalizableMessageDescriptor.Arg1<CharSequence> serverMsg, |
| | | LocalizableMessageDescriptor.Arg1<CharSequence> backendMsg) |
| | | DN entryDN, LocalizableMessageDescriptor.Arg1<Object> serverMsg, |
| | | LocalizableMessageDescriptor.Arg1<Object> backendMsg) |
| | | throws DirectoryException |
| | | { |
| | | if (!backend.isPrivateBackend()) |
| | |
| | | { |
| | | LocalizableMessageDescriptor.Arg1 msgID = ERR_ECN_INVALID_ELEMENT_TYPE; |
| | | LDAPException ex = new LDAPException(LDAPResultCode.OTHER, msgID.get("")); |
| | | LocalizableMessageDescriptor.Arg1<CharSequence> msgID1 = |
| | | LocalizableMessageDescriptor.Arg1<Object> msgID1 = |
| | | ERR_ECN_CANNOT_DECODE_VALUE; |
| | | new LDAPException(LDAPResultCode.PROTOCOL_ERROR, msgID1.get(""), ex); |
| | | assertTrue(ex.getResultCode() == LDAPResultCode.OTHER); |