From 5d6e9428fedead57a9c9438cebe58b485ff476d2 Mon Sep 17 00:00:00 2001
From: matthew_swift <matthew_swift@localhost>
Date: Fri, 14 Sep 2007 10:22:17 +0000
Subject: [PATCH] Avoid managed object definition initialization dependency problems. Using features like inherited default values and aggregation properties it is quite straightforward to encounter initialization dependency problems. For example: the global configuration will contain an aggregation property which references the default password policy. This aggregation definition is defined using a managed object path which, when decoded, contains a reference to the root configuration and its "password-policy" relation. This is what happens during initialization of the root configuration:

---
 opends/tests/unit-tests-testng/src/server/org/opends/server/admin/server/AggregationTest.java |   10 ++++------
 1 files changed, 4 insertions(+), 6 deletions(-)

diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/admin/server/AggregationTest.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/admin/server/AggregationTest.java
index 502eeb2..e5ad1e0 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/admin/server/AggregationTest.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/admin/server/AggregationTest.java
@@ -43,7 +43,6 @@
 import org.opends.server.admin.AggregationPropertyDefinition;
 import org.opends.server.admin.IllegalPropertyValueStringException;
 import org.opends.server.admin.ManagedObjectNotFoundException;
-import org.opends.server.admin.ManagedObjectPath;
 import org.opends.server.admin.PropertyException;
 import org.opends.server.admin.PropertyOption;
 import org.opends.server.admin.TestCfg;
@@ -56,7 +55,6 @@
 import org.opends.server.admin.std.client.ConnectionHandlerCfgClient;
 import org.opends.server.admin.std.client.LDAPConnectionHandlerCfgClient;
 import org.opends.server.admin.std.client.RootCfgClient;
-import org.opends.server.admin.std.meta.ConnectionHandlerCfgDefn;
 import org.opends.server.admin.std.meta.LDAPConnectionHandlerCfgDefn;
 import org.opends.server.admin.std.server.ConnectionHandlerCfg;
 import org.opends.server.admin.std.server.RootCfg;
@@ -306,11 +304,11 @@
         AdministratorAction.Type.NONE, d, "aggregation-property"));
     builder
         .setDefaultBehaviorProvider(new UndefinedDefaultBehaviorProvider<String>());
-    builder.setParentPath(ManagedObjectPath.valueOf("/"));
+    builder.setParentPath("/");
     builder.setRelationDefinition("connection-handler");
-    builder.setManagedObjectDefinition(ConnectionHandlerCfgDefn.getInstance());
     builder.setTargetEnabledPropertyName("enabled");
     aggregationPropertyDefinitionTargetMustBeEnabled = builder.getInstance();
+    TestCfg.initializePropertyDefinition(aggregationPropertyDefinitionTargetMustBeEnabled);
 
     builder = AggregationPropertyDefinition.createBuilder(d,
         "aggregation-property");
@@ -319,13 +317,13 @@
         AdministratorAction.Type.NONE, d, "aggregation-property"));
     builder
         .setDefaultBehaviorProvider(new UndefinedDefaultBehaviorProvider<String>());
-    builder.setParentPath(ManagedObjectPath.valueOf("/"));
+    builder.setParentPath("/");
     builder.setRelationDefinition("connection-handler");
-    builder.setManagedObjectDefinition(ConnectionHandlerCfgDefn.getInstance());
     builder.setTargetEnabledPropertyName("enabled");
     builder.setSourceEnabledPropertyName("mandatory-boolean-property");
     aggregationPropertyDefinitionTargetAndSourceMustBeEnabled = builder
         .getInstance();
+    TestCfg.initializePropertyDefinition(aggregationPropertyDefinitionTargetAndSourceMustBeEnabled);
   }
 
 

--
Gitblit v1.10.0