| | |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.core; |
| | | import org.opends.messages.Message; |
| | | |
| | | |
| | | |
| | | import static org.opends.server.messages.ConfigMessages.*; |
| | | import static org.opends.server.messages.MessageHandler.getMessage; |
| | | import static org.opends.messages.ConfigMessages.*; |
| | | import static org.opends.server.util.StaticUtils.stackTraceToSingleLineString; |
| | | |
| | | import java.lang.reflect.Method; |
| | |
| | | */ |
| | | public boolean isConfigurationChangeAcceptable( |
| | | AccountStatusNotificationHandlerCfg configuration, |
| | | List<String> unacceptableReasons |
| | | List<Message> unacceptableReasons |
| | | ) |
| | | { |
| | | // returned status -- all is fine by default |
| | |
| | | } |
| | | catch (InitializationException ie) |
| | | { |
| | | unacceptableReasons.add(ie.getMessage()); |
| | | unacceptableReasons.add(ie.getMessageObject()); |
| | | status = false; |
| | | } |
| | | } |
| | |
| | | { |
| | | // Returned result. |
| | | ConfigChangeResult changeResult = new ConfigChangeResult( |
| | | ResultCode.SUCCESS, false, new ArrayList<String>() |
| | | ResultCode.SUCCESS, false, new ArrayList<Message>() |
| | | ); |
| | | |
| | | // Get the configuration entry DN and the associated handler class. |
| | |
| | | } |
| | | catch (InitializationException ie) |
| | | { |
| | | changeResult.addMessage (ie.getMessage()); |
| | | changeResult.addMessage (ie.getMessageObject()); |
| | | changeResult.setResultCode (DirectoryServer.getServerErrorResultCode()); |
| | | return changeResult; |
| | | } |
| | |
| | | */ |
| | | public boolean isConfigurationAddAcceptable( |
| | | AccountStatusNotificationHandlerCfg configuration, |
| | | List<String> unacceptableReasons |
| | | List<Message> unacceptableReasons |
| | | ) |
| | | { |
| | | // returned status -- all is fine by default |
| | |
| | | DN configEntryDN = configuration.dn(); |
| | | if (notificationHandlers.containsKey(configEntryDN)) |
| | | { |
| | | int msgID = MSGID_CONFIG_ACCTNOTHANDLER_EXISTS; |
| | | String message = getMessage(msgID, String.valueOf(configEntryDN)); |
| | | Message message = ERR_CONFIG_ACCTNOTHANDLER_EXISTS.get( |
| | | String.valueOf(configEntryDN)); |
| | | unacceptableReasons.add (message); |
| | | status = false; |
| | | } |
| | |
| | | } |
| | | catch (InitializationException ie) |
| | | { |
| | | unacceptableReasons.add (ie.getMessage()); |
| | | unacceptableReasons.add (ie.getMessageObject()); |
| | | status = false; |
| | | } |
| | | } |
| | |
| | | { |
| | | // Returned result. |
| | | ConfigChangeResult changeResult = new ConfigChangeResult( |
| | | ResultCode.SUCCESS, false, new ArrayList<String>() |
| | | ResultCode.SUCCESS, false, new ArrayList<Message>() |
| | | ); |
| | | |
| | | // Register a change listener with it so we can be notified of changes |
| | |
| | | } |
| | | catch (InitializationException ie) |
| | | { |
| | | changeResult.addMessage (ie.getMessage()); |
| | | changeResult.addMessage (ie.getMessageObject()); |
| | | changeResult.setResultCode (DirectoryServer.getServerErrorResultCode()); |
| | | return changeResult; |
| | | } |
| | |
| | | */ |
| | | public boolean isConfigurationDeleteAcceptable( |
| | | AccountStatusNotificationHandlerCfg configuration, |
| | | List<String> unacceptableReasons |
| | | List<Message> unacceptableReasons |
| | | ) |
| | | { |
| | | // A delete should always be acceptable, so just return true. |
| | |
| | | { |
| | | // Returned result. |
| | | ConfigChangeResult changeResult = new ConfigChangeResult( |
| | | ResultCode.SUCCESS, false, new ArrayList<String>() |
| | | ResultCode.SUCCESS, false, new ArrayList<Message>() |
| | | ); |
| | | |
| | | uninstallNotificationHandler (configuration.dn()); |
| | |
| | | "isConfigurationAcceptable", |
| | | AccountStatusNotificationHandlerCfg.class, List.class); |
| | | |
| | | List<String> unacceptableReasons = new ArrayList<String>(); |
| | | List<Message> unacceptableReasons = new ArrayList<Message>(); |
| | | Boolean acceptable = (Boolean) method.invoke(notificationHandler, |
| | | configuration, |
| | | unacceptableReasons); |
| | |
| | | StringBuilder buffer = new StringBuilder(); |
| | | if (! unacceptableReasons.isEmpty()) |
| | | { |
| | | Iterator<String> iterator = unacceptableReasons.iterator(); |
| | | Iterator<Message> iterator = unacceptableReasons.iterator(); |
| | | buffer.append(iterator.next()); |
| | | while (iterator.hasNext()) |
| | | { |
| | |
| | | } |
| | | } |
| | | |
| | | int msgID = MSGID_CONFIG_ACCTNOTHANDLER_CONFIG_NOT_ACCEPTABLE; |
| | | String message = getMessage(msgID, String.valueOf(configuration.dn()), |
| | | buffer.toString()); |
| | | throw new InitializationException(msgID, message); |
| | | Message message = ERR_CONFIG_ACCTNOTHANDLER_CONFIG_NOT_ACCEPTABLE.get( |
| | | String.valueOf(configuration.dn()), buffer.toString()); |
| | | throw new InitializationException(message); |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | int msgID = MSGID_CONFIG_ACCTNOTHANDLER_INITIALIZATION_FAILED; |
| | | String message = getMessage( |
| | | msgID, className, |
| | | String.valueOf(configuration.dn()), |
| | | stackTraceToSingleLineString(e) |
| | | ); |
| | | throw new InitializationException(msgID, message, e); |
| | | Message message = ERR_CONFIG_ACCTNOTHANDLER_INITIALIZATION_FAILED.get( |
| | | className, |
| | | String.valueOf(configuration.dn()), |
| | | stackTraceToSingleLineString(e)); |
| | | throw new InitializationException(message, e); |
| | | } |
| | | } |
| | | |