From 2249aa0a04b99d513828d8d60c2a8bd7d936b336 Mon Sep 17 00:00:00 2001
From: matthew_swift <matthew_swift@localhost>
Date: Mon, 03 Sep 2007 23:45:45 +0000
Subject: [PATCH] Fix issue 1451: constraint and dependency support.
---
opends/src/server/org/opends/server/admin/server/ServerManagedObject.java | 631 +++------------------------------------------------------
1 files changed, 36 insertions(+), 595 deletions(-)
diff --git a/opends/src/server/org/opends/server/admin/server/ServerManagedObject.java b/opends/src/server/org/opends/server/admin/server/ServerManagedObject.java
index c453cbe..0c527d8 100644
--- a/opends/src/server/org/opends/server/admin/server/ServerManagedObject.java
+++ b/opends/src/server/org/opends/server/admin/server/ServerManagedObject.java
@@ -26,55 +26,28 @@
*/
package org.opends.server.admin.server;
-import org.opends.messages.Message;
import static org.opends.server.loggers.debug.DebugLogger.*;
import static org.opends.server.util.StaticUtils.*;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.LinkedList;
-import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.SortedSet;
import java.util.TreeSet;
-import org.opends.server.admin.AbsoluteInheritedDefaultBehaviorProvider;
-import org.opends.server.admin.AbstractManagedObjectDefinition;
-import org.opends.server.admin.AliasDefaultBehaviorProvider;
+import org.opends.messages.AdminMessages;
+import org.opends.messages.Message;
import org.opends.server.admin.Configuration;
-import org.opends.server.admin.DefaultBehaviorException;
-import org.opends.server.admin.DefaultBehaviorProviderVisitor;
-import org.opends.server.admin.DefinedDefaultBehaviorProvider;
-import org.opends.server.admin.DefinitionDecodingException;
-import org.opends.server.admin.DefinitionResolver;
-import org.opends.server.admin.IllegalPropertyValueException;
-import org.opends.server.admin.IllegalPropertyValueStringException;
import org.opends.server.admin.InstantiableRelationDefinition;
-import org.opends.server.admin.LDAPProfile;
import org.opends.server.admin.ManagedObjectDefinition;
import org.opends.server.admin.ManagedObjectPath;
import org.opends.server.admin.OptionalRelationDefinition;
import org.opends.server.admin.PropertyDefinition;
-import org.opends.server.admin.PropertyException;
-import org.opends.server.admin.PropertyIsMandatoryException;
-import org.opends.server.admin.PropertyIsSingleValuedException;
-import org.opends.server.admin.PropertyNotFoundException;
-import org.opends.server.admin.PropertyOption;
import org.opends.server.admin.PropertyProvider;
import org.opends.server.admin.RelationDefinition;
-import org.opends.server.admin.RelativeInheritedDefaultBehaviorProvider;
import org.opends.server.admin.SingletonRelationDefinition;
-import org.opends.server.admin.UndefinedDefaultBehaviorProvider;
-import org.opends.server.admin.DefinitionDecodingException.Reason;
-import org.opends.server.admin.std.meta.RootCfgDefn;
-import org.opends.server.admin.std.server.RootCfg;
-import org.opends.server.api.AttributeValueDecoder;
import org.opends.server.api.ConfigAddListener;
import org.opends.server.api.ConfigChangeListener;
import org.opends.server.api.ConfigDeleteListener;
@@ -82,12 +55,8 @@
import org.opends.server.config.ConfigException;
import org.opends.server.core.DirectoryServer;
import org.opends.server.loggers.debug.DebugTracer;
-import org.opends.messages.AdminMessages;
-import org.opends.server.types.AttributeType;
-import org.opends.server.types.AttributeValue;
import org.opends.server.types.DN;
import org.opends.server.types.DebugLogLevel;
-import org.opends.server.types.DirectoryException;
@@ -102,518 +71,44 @@
PropertyProvider {
/**
- * A default behavior visitor used for retrieving the default values
- * of a property.
- *
- * @param <T>
- * The type of the property.
- */
- private static class DefaultValueFinder<T> implements
- DefaultBehaviorProviderVisitor<T, Collection<T>, Void> {
-
- /**
- * Get the default values for the specified property.
- *
- * @param <T>
- * The type of the property.
- * @param p
- * The managed object path of the current managed object.
- * @param pd
- * The property definition.
- * @param newConfigEntry
- * Optional new configuration entry which does not yet
- * exist in the configuration back-end.
- * @return Returns the default values for the specified property.
- * @throws DefaultBehaviorException
- * If the default values could not be retrieved or
- * decoded properly.
- */
- public static <T> Collection<T> getDefaultValues(ManagedObjectPath<?, ?> p,
- PropertyDefinition<T> pd, ConfigEntry newConfigEntry)
- throws DefaultBehaviorException {
- DefaultValueFinder<T> v = new DefaultValueFinder<T>(newConfigEntry);
- return v.find(p, pd);
- }
-
- // Any exception that occurred whilst retrieving inherited default
- // values.
- private DefaultBehaviorException exception = null;
-
- // The path of the managed object containing the next property.
- private ManagedObjectPath<?, ?> nextPath = null;
-
- // The next property whose default values were required.
- private PropertyDefinition<T> nextProperty = null;
-
- // Optional new configuration entry which does not yet exist in
- // the configuration back-end.
- private ConfigEntry newConfigEntry;
-
-
-
- // Private constructor.
- private DefaultValueFinder(ConfigEntry newConfigEntry) {
- this.newConfigEntry = newConfigEntry;
- }
-
-
-
- /**
- * {@inheritDoc}
- */
- public Collection<T> visitAbsoluteInherited(
- AbsoluteInheritedDefaultBehaviorProvider<T> d, Void p) {
- try {
- return getInheritedProperty(d.getManagedObjectPath(), d
- .getManagedObjectDefinition(), d.getPropertyName());
- } catch (DefaultBehaviorException e) {
- exception = e;
- return Collections.emptySet();
- }
- }
-
-
-
- /**
- * {@inheritDoc}
- */
- public Collection<T> visitAlias(AliasDefaultBehaviorProvider<T> d, Void p) {
- return Collections.emptySet();
- }
-
-
-
- /**
- * {@inheritDoc}
- */
- public Collection<T> visitDefined(DefinedDefaultBehaviorProvider<T> d,
- Void p) {
- Collection<String> stringValues = d.getDefaultValues();
- List<T> values = new ArrayList<T>(stringValues.size());
-
- for (String stringValue : stringValues) {
- try {
- values.add(nextProperty.decodeValue(stringValue));
- } catch (IllegalPropertyValueStringException e) {
- exception = new DefaultBehaviorException(nextProperty, e);
- break;
- }
- }
-
- return values;
- }
-
-
-
- /**
- * {@inheritDoc}
- */
- public Collection<T> visitRelativeInherited(
- RelativeInheritedDefaultBehaviorProvider<T> d, Void p) {
- try {
- return getInheritedProperty(d.getManagedObjectPath(nextPath), d
- .getManagedObjectDefinition(), d.getPropertyName());
- } catch (DefaultBehaviorException e) {
- exception = e;
- return Collections.emptySet();
- }
- }
-
-
-
- /**
- * {@inheritDoc}
- */
- public Collection<T> visitUndefined(UndefinedDefaultBehaviorProvider<T> d,
- Void p) {
- return Collections.emptySet();
- }
-
-
-
- // Find the default values for the next path/property.
- private Collection<T> find(ManagedObjectPath<?, ?> p,
- PropertyDefinition<T> pd) throws DefaultBehaviorException {
- nextPath = p;
- nextProperty = pd;
-
- Collection<T> values = nextProperty.getDefaultBehaviorProvider().accept(
- this, null);
-
- if (exception != null) {
- throw exception;
- }
-
- if (values.size() > 1 && !pd.hasOption(PropertyOption.MULTI_VALUED)) {
- throw new DefaultBehaviorException(pd,
- new PropertyIsSingleValuedException(pd));
- }
-
- return values;
- }
-
-
-
- // Get an inherited property value.
- @SuppressWarnings("unchecked")
- private Collection<T> getInheritedProperty(ManagedObjectPath target,
- AbstractManagedObjectDefinition<?, ?> d, String propertyName)
- throws DefaultBehaviorException {
- // First check that the requested type of managed object
- // corresponds to the path.
- AbstractManagedObjectDefinition<?, ?> supr = target
- .getManagedObjectDefinition();
- if (!supr.isParentOf(d)) {
- throw new DefaultBehaviorException(
- nextProperty, new DefinitionDecodingException(supr,
- Reason.WRONG_TYPE_INFORMATION));
- }
-
- // Save the current property in case of recursion.
- PropertyDefinition<T> pd1 = nextProperty;
-
- try {
- // Get the actual managed object definition.
- DN dn = DNBuilder.create(target);
- ConfigEntry configEntry;
- if (newConfigEntry != null && newConfigEntry.getDN().equals(dn)) {
- configEntry = newConfigEntry;
- } else {
- configEntry = getManagedObjectConfigEntry(dn);
- }
-
- DefinitionResolver resolver = new MyDefinitionResolver(configEntry);
- ManagedObjectDefinition<?, ?> mod = d
- .resolveManagedObjectDefinition(resolver);
-
- PropertyDefinition<T> pd2;
- try {
- PropertyDefinition<?> pdTmp = mod.getPropertyDefinition(propertyName);
- pd2 = pd1.getClass().cast(pdTmp);
- } catch (IllegalArgumentException e) {
- throw new PropertyNotFoundException(propertyName);
- } catch (ClassCastException e) {
- // FIXME: would be nice to throw a better exception here.
- throw new PropertyNotFoundException(propertyName);
- }
-
- List<String> stringValues = getAttribute(mod, pd2, configEntry);
- if (stringValues.isEmpty()) {
- // Recursively retrieve this property's default values.
- Collection<T> tmp = find(target, pd2);
- Collection<T> values = new ArrayList<T>(tmp.size());
- for (T value : tmp) {
- pd1.validateValue(value);
- values.add(value);
- }
- return values;
- } else {
- Collection<T> values = new ArrayList<T>(stringValues.size());
- for (String s : stringValues) {
- values.add(pd1.decodeValue(s));
- }
- return values;
- }
- } catch (DefinitionDecodingException e) {
- throw new DefaultBehaviorException(pd1, e);
- } catch (PropertyNotFoundException e) {
- throw new DefaultBehaviorException(pd1, e);
- } catch (IllegalPropertyValueException e) {
- throw new DefaultBehaviorException(pd1, e);
- } catch (IllegalPropertyValueStringException e) {
- throw new DefaultBehaviorException(pd1, e);
- } catch (ConfigException e) {
- throw new DefaultBehaviorException(pd1, e);
- }
- }
- }
-
-
-
- /**
- * A definition resolver that determines the managed object
- * definition from the object classes of a ConfigEntry.
- */
- private static class MyDefinitionResolver implements DefinitionResolver {
-
- // The config entry.
- private final ConfigEntry entry;
-
-
-
- // Private constructor.
- private MyDefinitionResolver(ConfigEntry entry) {
- this.entry = entry;
- }
-
-
-
- /**
- * {@inheritDoc}
- */
- public boolean matches(AbstractManagedObjectDefinition<?, ?> d) {
- String oc = LDAPProfile.getInstance().getObjectClass(d);
- return entry.hasObjectClass(oc);
- }
- };
-
- /**
- * The root server managed object.
- */
- private static final ServerManagedObject<RootCfg> ROOT =
- new ServerManagedObject<RootCfg>(
- ManagedObjectPath.emptyPath(), RootCfgDefn.getInstance(), Collections
- .<PropertyDefinition<?>, SortedSet<?>> emptyMap(), null);
-
- /**
* The tracer object for the debug logger.
*/
private static final DebugTracer TRACER = getTracer();
-
-
- /**
- * Decodes a configuration entry into the required type of server
- * managed object.
- *
- * @param <S>
- * The type of server configuration represented by the
- * decoded server managed object.
- * @param path
- * The location of the server managed object.
- * @param definition
- * The required managed object type.
- * @param configEntry
- * The configuration entry that should be decoded.
- * @return Returns the new server-side managed object from the
- * provided definition and configuration entry.
- * @throws DefinitionDecodingException
- * If the managed object's type could not be determined.
- * @throws ServerManagedObjectDecodingException
- * If one or more of the managed object's properties could
- * not be decoded.
- */
- static <S extends Configuration> ServerManagedObject<? extends S> decode(
- ManagedObjectPath<?, ?> path,
- AbstractManagedObjectDefinition<?, S> definition,
- ConfigEntry configEntry) throws DefinitionDecodingException,
- ServerManagedObjectDecodingException {
- return decode(path, definition, configEntry, null);
- }
-
-
-
- /**
- * Decodes a configuration entry into the required type of server
- * managed object.
- *
- * @param <S>
- * The type of server configuration represented by the
- * decoded server managed object.
- * @param path
- * The location of the server managed object.
- * @param definition
- * The required managed object type.
- * @param configEntry
- * The configuration entry that should be decoded.
- * @param newConfigEntry
- * Optional new configuration that does not exist yet in
- * the configuration back-end. This will be used for
- * resolving inherited default values.
- * @return Returns the new server-side managed object from the
- * provided definition and configuration entry.
- * @throws DefinitionDecodingException
- * If the managed object's type could not be determined.
- * @throws ServerManagedObjectDecodingException
- * If one or more of the managed object's properties could
- * not be decoded.
- */
- static <S extends Configuration> ServerManagedObject<? extends S> decode(
- ManagedObjectPath<?, ?> path,
- AbstractManagedObjectDefinition<?, S> definition,
- ConfigEntry configEntry, ConfigEntry newConfigEntry)
- throws DefinitionDecodingException, ServerManagedObjectDecodingException {
- // First determine the correct definition to use for the entry.
- // This could either be the provided definition, or one of its
- // sub-definitions.
- DefinitionResolver resolver = new MyDefinitionResolver(configEntry);
- ManagedObjectDefinition<?, ? extends S> mod = definition
- .resolveManagedObjectDefinition(resolver);
-
- // Build the managed object's properties.
- List<PropertyException> exceptions = new LinkedList<PropertyException>();
- Map<PropertyDefinition<?>, SortedSet<?>> properties =
- new HashMap<PropertyDefinition<?>, SortedSet<?>>();
- for (PropertyDefinition<?> pd : mod.getAllPropertyDefinitions()) {
- List<String> values = getAttribute(mod, pd, configEntry);
- try {
- decodeProperty(properties, path, pd, values, newConfigEntry);
- } catch (PropertyException e) {
- exceptions.add(e);
- }
- }
-
- // If there were no decoding problems then return the managed
- // object, otherwise throw an operations exception.
- ServerManagedObject<? extends S> mo = decodeAux(path, mod, properties,
- configEntry);
- if (exceptions.isEmpty()) {
- return mo;
- } else {
- throw new ServerManagedObjectDecodingException(mo, exceptions);
- }
- }
-
-
-
- /**
- * Gets the root server managed object.
- *
- * @return Returns the root server managed object.
- */
- static ServerManagedObject<RootCfg> getRootManagedObject() {
- return ROOT;
- }
-
-
-
- // Decode helper method required to avoid generics warning.
- private static <S extends Configuration> ServerManagedObject<S> decodeAux(
- ManagedObjectPath<?, ?> path, ManagedObjectDefinition<?, S> d,
- Map<PropertyDefinition<?>, SortedSet<?>> properties,
- ConfigEntry configEntry) {
- return new ServerManagedObject<S>(path, d, properties, configEntry);
- }
-
-
-
- // Create a property using the provided string values.
- private static <T> void decodeProperty(
- Map<PropertyDefinition<?>, SortedSet<?>> properties,
- ManagedObjectPath<?, ?> path, PropertyDefinition<T> pd,
- List<String> stringValues, ConfigEntry newConfigEntry)
- throws PropertyException {
- PropertyException exception = null;
- SortedSet<T> values = new TreeSet<T>(pd);
-
- if (!stringValues.isEmpty()) {
- // The property has values defined for it.
- for (String value : stringValues) {
- try {
- values.add(pd.decodeValue(value));
- } catch (IllegalPropertyValueStringException e) {
- exception = e;
- }
- }
- } else {
- // No values defined so get the defaults.
- try {
- values.addAll(DefaultValueFinder.getDefaultValues(path, pd,
- newConfigEntry));
- } catch (DefaultBehaviorException e) {
- exception = e;
- }
- }
-
- if (values.size() > 1 && !pd.hasOption(PropertyOption.MULTI_VALUED)) {
- // This exception takes precedence over previous exceptions.
- exception = new PropertyIsSingleValuedException(pd);
- T value = values.first();
- values.clear();
- values.add(value);
- }
-
- if (values.isEmpty() && pd.hasOption(PropertyOption.MANDATORY)) {
- // The values maybe empty because of a previous exception.
- if (exception == null) {
- exception = new PropertyIsMandatoryException(pd);
- }
- }
-
- // TODO: If an exception occurs should we leave the property
- // empty?
- properties.put(pd, values);
- if (exception != null) {
- throw exception;
- }
- }
-
-
-
- // Gets the attribute associated with a property from a ConfigEntry.
- private static List<String> getAttribute(ManagedObjectDefinition<?, ?> d,
- PropertyDefinition<?> pd, ConfigEntry configEntry) {
- // TODO: we create a default attribute type if it is
- // undefined. We should log a warning here if this is the case
- // since the attribute should have been defined.
- String attrID = LDAPProfile.getInstance().getAttributeName(d, pd);
- AttributeType type = DirectoryServer.getAttributeType(attrID, true);
- AttributeValueDecoder<String> decoder =
- new AttributeValueDecoder<String>() {
-
- public String decode(AttributeValue value) throws DirectoryException {
- return value.getStringValue();
- }
- };
-
- List<String> values = new LinkedList<String>();
- try {
- configEntry.getEntry().getAttributeValues(type, decoder, values);
- } catch (DirectoryException e) {
- // Should not happen.
- throw new RuntimeException(e);
- }
- return values;
- }
-
-
-
- // Gets a config entry required for a managed object and throws a
- // config exception on failure.
- private static ConfigEntry getManagedObjectConfigEntry(DN dn)
- throws ConfigException {
- ConfigEntry configEntry;
- try {
- configEntry = DirectoryServer.getConfigEntry(dn);
- } catch (ConfigException e) {
- if (debugEnabled()) {
- TRACER.debugCaught(DebugLogLevel.ERROR, e);
- }
-
- Message message = AdminMessages.ERR_ADMIN_CANNOT_GET_MANAGED_OBJECT.get(
- String.valueOf(dn), stackTraceToSingleLineString(e));
- throw new ConfigException(message, e);
- }
-
- // The configuration handler is free to return null indicating
- // that the entry does not exist.
- if (configEntry == null) {
- Message message = AdminMessages.ERR_ADMIN_MANAGED_OBJECT_DOES_NOT_EXIST.
- get(String.valueOf(dn));
- throw new ConfigException(message);
- }
-
- return configEntry;
- }
-
// The configuration entry associated with this server managed
// object (null if root).
private ConfigEntry configEntry;
+ // The management context.
+ private final ServerManagementContext context = ServerManagementContext
+ .getInstance();
+
// The managed object's definition.
private final ManagedObjectDefinition<?, S> definition;
// The managed object path identifying this managed object's
// location.
- private final ManagedObjectPath<?, ?> path;
+ private final ManagedObjectPath<?, S> path;
// The managed object's properties.
private final Map<PropertyDefinition<?>, SortedSet<?>> properties;
- // Create an new server side managed object.
- private ServerManagedObject(ManagedObjectPath<?, ?> path,
+ /**
+ * Creates an new server side managed object.
+ *
+ * @param path
+ * The managed object path.
+ * @param d
+ * The managed object definition.
+ * @param properties
+ * The managed object's properties.
+ * @param configEntry
+ * The configuration entry associated with the managed
+ * object.
+ */
+ ServerManagedObject(ManagedObjectPath<?, S> path,
ManagedObjectDefinition<?, S> d,
Map<PropertyDefinition<?>, SortedSet<?>> properties,
ConfigEntry configEntry) {
@@ -764,8 +259,7 @@
InstantiableRelationDefinition<?, M> d, String name)
throws IllegalArgumentException, ConfigException {
validateRelationDefinition(d);
- ManagedObjectPath<?, ?> childPath = path.child(d, name);
- return getChild(childPath, d);
+ return context.getManagedObject(path.child(d, name));
}
@@ -790,8 +284,7 @@
OptionalRelationDefinition<?, M> d) throws IllegalArgumentException,
ConfigException {
validateRelationDefinition(d);
- ManagedObjectPath<?, ?> childPath = path.child(d);
- return getChild(childPath, d);
+ return context.getManagedObject(path.child(d));
}
@@ -816,8 +309,7 @@
SingletonRelationDefinition<?, M> d) throws IllegalArgumentException,
ConfigException {
validateRelationDefinition(d);
- ManagedObjectPath<?, ?> childPath = path.child(d);
- return getChild(childPath, d);
+ return context.getManagedObject(path.child(d));
}
@@ -869,7 +361,7 @@
*
* @return Returns the path of this server managed object.
*/
- public ManagedObjectPath<?, ?> getManagedObjectPath() {
+ public ManagedObjectPath<?, S> getManagedObjectPath() {
return path;
}
@@ -949,15 +441,7 @@
public boolean hasChild(OptionalRelationDefinition<?, ?> d)
throws IllegalArgumentException {
validateRelationDefinition(d);
-
- // Get the configuration entry.
- DN targetDN = DNBuilder.create(path, d);
- try {
- return (getManagedObjectConfigEntry(targetDN) != null);
- } catch (ConfigException e) {
- // Assume it doesn't exist.
- return false;
- }
+ return context.managedObjectExists(path.child(d));
}
@@ -976,30 +460,7 @@
public String[] listChildren(InstantiableRelationDefinition<?, ?> d)
throws IllegalArgumentException {
validateRelationDefinition(d);
-
- // Get the target entry.
- DN targetDN = DNBuilder.create(path, d);
- ConfigEntry configEntry;
- try {
- configEntry = DirectoryServer.getConfigEntry(targetDN);
- } catch (ConfigException e) {
- return new String[0];
- }
-
- if (configEntry == null) {
- return new String[0];
- }
-
- // Retrieve the children.
- Set<DN> children = configEntry.getChildren().keySet();
- ArrayList<String> names = new ArrayList<String>(children.size());
- for (DN child : children) {
- // Assume that RDNs are single-valued and can be trimmed.
- AttributeValue av = child.getRDN().getAttributeValue(0);
- names.add(av.getStringValue().trim());
- }
-
- return names.toArray(new String[names.size()]);
+ return context.listManagedObjects(path, d);
}
@@ -1048,8 +509,8 @@
* If the optional relation definition is not associated
* with this managed object's definition.
* @throws ConfigException
- * If the configuration entry associated with the
- * optional relation could not be retrieved.
+ * If the configuration entry associated with the optional
+ * relation could not be retrieved.
*/
public <M extends Configuration> void registerAddListener(
OptionalRelationDefinition<?, M> d, ConfigurationAddListener<M> listener)
@@ -1073,7 +534,7 @@
public void registerChangeListener(
ConfigurationChangeListener<? super S> listener) {
ConfigChangeListener adaptor = new ConfigChangeListenerAdaptor<S>(path,
- definition, listener);
+ listener);
configEntry.registerChangeListener(adaptor);
}
@@ -1123,8 +584,8 @@
* If the optional relation definition is not associated
* with this managed object's definition.
* @throws ConfigException
- * If the configuration entry associated with the
- * optional relation could not be retrieved.
+ * If the configuration entry associated with the optional
+ * relation could not be retrieved.
*/
public <M extends Configuration> void registerDeleteListener(
OptionalRelationDefinition<?, M> d,
@@ -1206,26 +667,6 @@
- // Get a child managed object.
- private <M extends Configuration> ServerManagedObject<? extends M> getChild(
- ManagedObjectPath<?, ?> childPath, RelationDefinition<?, M> d)
- throws ConfigException {
- // Get the configuration entry.
- DN targetDN = DNBuilder.create(childPath);
- ConfigEntry configEntry = getManagedObjectConfigEntry(targetDN);
- try {
- return decode(childPath, d.getChildDefinition(), configEntry);
- } catch (DefinitionDecodingException e) {
- throw ConfigExceptionFactory.getInstance()
- .createDecodingExceptionAdaptor(targetDN, e);
- } catch (ServerManagedObjectDecodingException e) {
- throw ConfigExceptionFactory.getInstance()
- .createDecodingExceptionAdaptor(e);
- }
- }
-
-
-
// Gets a config entry required for a listener and throws a config
// exception on failure or returns null if the entry does not exist.
private ConfigEntry getListenerConfigEntry(DN dn) throws ConfigException {
@@ -1284,8 +725,8 @@
}
// No parent entry could be found.
- Message message = AdminMessages.ERR_ADMIN_UNABLE_TO_REGISTER_LISTENER.get(
- String.valueOf(baseDN));
+ Message message = AdminMessages.ERR_ADMIN_UNABLE_TO_REGISTER_LISTENER
+ .get(String.valueOf(baseDN));
throw new ConfigException(message);
}
@@ -1313,8 +754,8 @@
// object.
private void validateRelationDefinition(RelationDefinition<?, ?> rd)
throws IllegalArgumentException {
- RelationDefinition<?, ?> tmp =
- definition.getRelationDefinition(rd.getName());
+ RelationDefinition<?, ?> tmp = definition.getRelationDefinition(rd
+ .getName());
if (tmp != rd) {
throw new IllegalArgumentException("The relation " + rd.getName()
+ " is not associated with a " + definition.getName());
--
Gitblit v1.10.0