From fc2267b6e73ca9707f8eaaf37f3c6d730944f1ae Mon Sep 17 00:00:00 2001
From: Nicolas Capponi <nicolas.capponi@forgerock.com>
Date: Mon, 22 Sep 2014 13:26:33 +0000
Subject: [PATCH] Checkpoint commit for OPENDJ-1206 : Create a new ReplicationBackend/ChangelogBackend to support cn=changelog CR-4036
---
opendj3-server-dev/src/server/org/opends/server/replication/server/ReplicationServer.java | 61 +++++++++++++++++-------------
1 files changed, 35 insertions(+), 26 deletions(-)
diff --git a/opendj3-server-dev/src/server/org/opends/server/replication/server/ReplicationServer.java b/opendj3-server-dev/src/server/org/opends/server/replication/server/ReplicationServer.java
index 957d470..c1f52c6 100644
--- a/opendj3-server-dev/src/server/org/opends/server/replication/server/ReplicationServer.java
+++ b/opendj3-server-dev/src/server/org/opends/server/replication/server/ReplicationServer.java
@@ -490,14 +490,40 @@
NetworkGroup.getAdminNetworkGroup().registerWorkflow(workflowImpl);
NetworkGroup.getInternalNetworkGroup().registerWorkflow(workflowImpl);
- DirectoryServer.registerVirtualAttribute(buildVirtualAttributeRule(
- "lastexternalchangelogcookie", new LastCookieVirtualProvider()));
- DirectoryServer.registerVirtualAttribute(buildVirtualAttributeRule(
- "firstchangenumber", new FirstChangeNumberVirtualAttributeProvider()));
- DirectoryServer.registerVirtualAttribute(buildVirtualAttributeRule(
- "lastchangenumber", new LastChangeNumberVirtualAttributeProvider()));
- DirectoryServer.registerVirtualAttribute(buildVirtualAttributeRule(
- "changelog", new ChangelogBaseDNVirtualAttributeProvider()));
+ registerVirtualAttributeRules();
+ }
+
+ private List<VirtualAttributeRule> getVirtualAttributesRules() throws DirectoryException
+ {
+ final List<VirtualAttributeRule> rules = new ArrayList<VirtualAttributeRule>();
+ rules.add(buildVirtualAttributeRule("lastexternalchangelogcookie", new LastCookieVirtualProvider(this)));
+ rules.add(buildVirtualAttributeRule("firstchangenumber", new FirstChangeNumberVirtualAttributeProvider(this)));
+ rules.add(buildVirtualAttributeRule("lastchangenumber", new LastChangeNumberVirtualAttributeProvider(this)));
+ rules.add(buildVirtualAttributeRule("changelog", new ChangelogBaseDNVirtualAttributeProvider()));
+ return rules;
+ }
+
+ private void registerVirtualAttributeRules() throws DirectoryException {
+ for (VirtualAttributeRule rule : getVirtualAttributesRules())
+ {
+ DirectoryServer.registerVirtualAttribute(rule);
+ }
+ }
+
+ private void deregisterVirtualAttributeRules()
+ {
+ try
+ {
+ for (VirtualAttributeRule rule : getVirtualAttributesRules())
+ {
+ DirectoryServer.deregisterVirtualAttribute(rule);
+ }
+ }
+ catch (DirectoryException e)
+ {
+ // Should never happen
+ throw new RuntimeException(e);
+ }
}
private static VirtualAttributeRule buildVirtualAttributeRule(String attrName,
@@ -545,24 +571,7 @@
NetworkGroup.getDefaultNetworkGroup().deregisterWorkflow(eclWorkflowID);
- try
- {
- DirectoryServer.deregisterVirtualAttribute(buildVirtualAttributeRule(
- "lastexternalchangelogcookie", new LastCookieVirtualProvider()));
- DirectoryServer.deregisterVirtualAttribute(buildVirtualAttributeRule(
- "firstchangenumber",
- new FirstChangeNumberVirtualAttributeProvider()));
- DirectoryServer.deregisterVirtualAttribute(buildVirtualAttributeRule(
- "lastchangenumber",
- new LastChangeNumberVirtualAttributeProvider()));
- DirectoryServer.deregisterVirtualAttribute(buildVirtualAttributeRule(
- "changelog", new ChangelogBaseDNVirtualAttributeProvider()));
- }
- catch (DirectoryException e)
- {
- // Should never happen
- throw new RuntimeException(e);
- }
+ deregisterVirtualAttributeRules();
eclwf.deregister();
eclwf.finalizeWorkflow();
--
Gitblit v1.10.0