| | |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.core; |
| | | import org.opends.messages.Message; |
| | | |
| | | |
| | | |
| | | import static org.opends.server.loggers.debug.DebugLogger.*; |
| | | import org.opends.server.loggers.debug.DebugTracer; |
| | | 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; |
| | |
| | | // Default result code. |
| | | ResultCode resultCode = ResultCode.SUCCESS; |
| | | boolean adminActionRequired = false; |
| | | ArrayList<String> messages = new ArrayList<String>(); |
| | | ArrayList<Message> messages = new ArrayList<Message>(); |
| | | |
| | | // Attempt to get the existing synchronization provider. This will only |
| | | // succeed if it is currently enabled. |
| | |
| | | if (debugEnabled()) |
| | | { |
| | | TRACER.debugCaught(DebugLogLevel.ERROR, e); |
| | | messages.add(e.getMessage()); |
| | | messages.add(e.getMessageObject()); |
| | | resultCode = DirectoryServer.getServerErrorResultCode(); |
| | | } |
| | | } |
| | |
| | | { |
| | | TRACER.debugCaught(DebugLogLevel.ERROR, e); |
| | | } |
| | | int msgID = MSGID_CONFIG_SYNCH_ERROR_INITIALIZING_PROVIDER; |
| | | messages.add(getMessage(msgID, String.valueOf( |
| | | configuration.getJavaImplementationClass()), |
| | | String.valueOf(configuration.dn()), |
| | | stackTraceToSingleLineString(e))); |
| | | |
| | | messages.add(ERR_CONFIG_SYNCH_ERROR_INITIALIZING_PROVIDER.get( |
| | | String.valueOf(configuration.getJavaImplementationClass()), |
| | | String.valueOf(configuration.dn()))); |
| | | resultCode = DirectoryServer.getServerErrorResultCode(); |
| | | } |
| | | } |
| | |
| | | */ |
| | | public boolean isConfigurationChangeAcceptable( |
| | | SynchronizationProviderCfg configuration, |
| | | List<String> unacceptableReasons) |
| | | List<Message> unacceptableReasons) |
| | | { |
| | | if (configuration.isEnabled()) |
| | | { |
| | |
| | | // Default result code. |
| | | ResultCode resultCode = ResultCode.SUCCESS; |
| | | boolean adminActionRequired = false; |
| | | ArrayList<String> messages = new ArrayList<String>(); |
| | | ArrayList<Message> messages = new ArrayList<Message>(); |
| | | |
| | | // Register as a change listener for this synchronization provider entry |
| | | // so that we will be notified if when it is disabled or enabled. |
| | |
| | | if (debugEnabled()) |
| | | { |
| | | TRACER.debugCaught(DebugLogLevel.ERROR, e); |
| | | messages.add(e.getMessage()); |
| | | messages.add(e.getMessageObject()); |
| | | resultCode = DirectoryServer.getServerErrorResultCode(); |
| | | } |
| | | } |
| | |
| | | { |
| | | TRACER.debugCaught(DebugLogLevel.ERROR, e); |
| | | } |
| | | int msgID = MSGID_CONFIG_SYNCH_ERROR_INITIALIZING_PROVIDER; |
| | | messages.add(getMessage(msgID, String.valueOf( |
| | | configuration.getJavaImplementationClass()), |
| | | String.valueOf(configuration.dn()), |
| | | stackTraceToSingleLineString(e))); |
| | | |
| | | messages.add(ERR_CONFIG_SYNCH_ERROR_INITIALIZING_PROVIDER.get( |
| | | String.valueOf(configuration.getJavaImplementationClass()), |
| | | String.valueOf(configuration.dn()))); |
| | | resultCode = DirectoryServer.getServerErrorResultCode(); |
| | | } |
| | | } |
| | |
| | | */ |
| | | public boolean isConfigurationAddAcceptable( |
| | | SynchronizationProviderCfg configuration, |
| | | List<String> unacceptableReasons) |
| | | List<Message> unacceptableReasons) |
| | | { |
| | | if (configuration.isEnabled()) |
| | | { |
| | |
| | | * |
| | | * @param configuration The configuration for which the class must be |
| | | * checked. |
| | | * @param unacceptableReasons A list containing the reasons why the class is |
| | | * not acceptable. |
| | | * |
| | | * @return true if the class is acceptable or false if not. |
| | | */ |
| | | @SuppressWarnings("unchecked") |
| | |
| | | } catch (Exception e) |
| | | { |
| | | // Handle the exception: put a message in the unacceptable reasons. |
| | | int msgID = MSGID_CONFIG_SYNCH_UNABLE_TO_LOAD_PROVIDER_CLASS; |
| | | String message = getMessage(msgID, String.valueOf(className), |
| | | String.valueOf(configuration.dn()), |
| | | stackTraceToSingleLineString(e)); |
| | | throw new ConfigException(msgID, message, e); |
| | | Message message = ERR_CONFIG_SYNCH_UNABLE_TO_LOAD_PROVIDER_CLASS. |
| | | get(String.valueOf(className), String.valueOf(configuration.dn()), |
| | | stackTraceToSingleLineString(e)); |
| | | throw new ConfigException(message, e); |
| | | } |
| | | try |
| | | { |
| | |
| | | } catch (Exception e) |
| | | { |
| | | // Handle the exception: put a message in the unacceptable reasons. |
| | | int msgID = MSGID_CONFIG_SYNCH_UNABLE_TO_INSTANTIATE_PROVIDER; |
| | | String message = getMessage(msgID, String.valueOf(className), |
| | | String.valueOf(configuration.dn()), |
| | | stackTraceToSingleLineString(e)); |
| | | throw new ConfigException(msgID, message, e); |
| | | Message message = ERR_CONFIG_SYNCH_UNABLE_TO_INSTANTIATE_PROVIDER. |
| | | get(String.valueOf(className), String.valueOf(configuration.dn()), |
| | | stackTraceToSingleLineString(e)); |
| | | throw new ConfigException(message, e); |
| | | } |
| | | try |
| | | { |
| | |
| | | } catch (Exception e) |
| | | { |
| | | // Handle the exception: put a message in the unacceptable reasons. |
| | | int msgID = MSGID_CONFIG_SYNCH_ERROR_INITIALIZING_PROVIDER; |
| | | String message = getMessage(msgID, String.valueOf(className), |
| | | String.valueOf(configuration.dn()), |
| | | stackTraceToSingleLineString(e)); |
| | | throw new ConfigException(msgID, message, e); |
| | | Message message = ERR_CONFIG_SYNCH_ERROR_INITIALIZING_PROVIDER.get( |
| | | String.valueOf(className), String.valueOf(configuration.dn())); |
| | | throw new ConfigException(message, e); |
| | | } |
| | | return provider; |
| | | } |
| | |
| | | */ |
| | | private boolean isJavaClassAcceptable( |
| | | SynchronizationProviderCfg configuration, |
| | | List<String> unacceptableReasons) |
| | | List<Message> unacceptableReasons) |
| | | { |
| | | String className = configuration.getJavaImplementationClass(); |
| | | SynchronizationProviderCfgDefn d = |
| | |
| | | } catch (Exception e) |
| | | { |
| | | // Handle the exception: put a message in the unacceptable reasons. |
| | | int msgID = MSGID_CONFIG_SYNCH_UNABLE_TO_LOAD_PROVIDER_CLASS; |
| | | String message = getMessage(msgID, String.valueOf(className), |
| | | String.valueOf(configuration.dn()), |
| | | stackTraceToSingleLineString(e)); |
| | | Message message = ERR_CONFIG_SYNCH_UNABLE_TO_LOAD_PROVIDER_CLASS.get( |
| | | String.valueOf(className), |
| | | String.valueOf(configuration.dn()), |
| | | stackTraceToSingleLineString(e)); |
| | | unacceptableReasons.add(message); |
| | | return false; |
| | | } |
| | |
| | | } catch (Exception e) |
| | | { |
| | | // Handle the exception: put a message in the unacceptable reasons. |
| | | int msgID = MSGID_CONFIG_SYNCH_UNABLE_TO_INSTANTIATE_PROVIDER; |
| | | String message = getMessage(msgID, String.valueOf(className), |
| | | String.valueOf(configuration.dn()), |
| | | stackTraceToSingleLineString(e)); |
| | | Message message = ERR_CONFIG_SYNCH_UNABLE_TO_INSTANTIATE_PROVIDER.get( |
| | | String.valueOf(className), |
| | | String.valueOf(configuration.dn()), |
| | | stackTraceToSingleLineString(e)); |
| | | unacceptableReasons.add(message); |
| | | return false; |
| | | } |
| | |
| | | */ |
| | | public boolean isConfigurationDeleteAcceptable( |
| | | SynchronizationProviderCfg configuration, |
| | | List<String> unacceptableReasons) |
| | | List<Message> unacceptableReasons) |
| | | { |
| | | // A delete should always be acceptable, so just return true. |
| | | return true; |