mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

Nicolas Capponi
05.58.2016 ed0ae491be5928897b1e8bd5b41d0426dbd08081
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
/*
 * The contents of this file are subject to the terms of the Common Development and
 * Distribution License (the License). You may not use this file except in compliance with the
 * License.
 *
 * You can obtain a copy of the License at legal/CDDLv1.0.txt. See the License for the
 * specific language governing permission and limitations under the License.
 *
 * When distributing Covered Software, include this CDDL Header Notice in each file and include
 * the License file at legal/CDDLv1.0.txt. If applicable, add the following below the CDDL
 * Header, with the fields enclosed by brackets [] replaced by your own identifying
 * information: "Portions Copyright [year] [name of copyright owner]".
 *
 * Copyright 2016 ForgeRock AS.
 */
package org.opends.server.util.embedded;
 
/**
 * Parameters to configure a directory server.
 */
public final class ConfigParameters
{
  private String serverRootDirectory;
  private String serverInstanceDirectory;
  private String configurationFile;
  private boolean disableConnectionHandlers;
 
  private ConfigParameters()
  {
    // private constructor to force usage of the associated Builder
  }
 
  /**
   * Creates a builder for the configuration parameters.
   *
   * @return a builder
   */
  public static Builder configParams()
  {
    return new Builder();
  }
 
  String getServerRootDirectory()
  {
    return serverRootDirectory;
  }
 
  String getServerInstanceDirectory()
  {
    // provides the expected default value if not set
    return serverInstanceDirectory;
  }
 
  String getConfigurationFile()
  {
    return configurationFile;
  }
 
  boolean isDisableConnectionHandlers()
  {
    return disableConnectionHandlers;
  }
 
  /**
   * Builder for this class.
   */
  public static final class Builder
  {
    private ConfigParameters params;
 
    private Builder()
    {
      params = new ConfigParameters();
    }
 
    /**
     * Generates the parameters from this builder.
     * <p>
     * After this call, the builder is reset and can be used to generate other parameters.
     *
     * @return the replication parameters
     */
    public ConfigParameters toParams()
    {
      ConfigParameters p = params;
      this.params = new ConfigParameters();
      return p;
    }
 
    /**
     * Sets the server root directory of the directory server.
     * <p>
     * The server root is the location where the binaries and default configuration is stored.
     *
     * @param dir
     *          the server root directory
     * @return this builder
     */
    public Builder serverRootDirectory(String dir)
    {
      params.serverRootDirectory = dir;
      return this;
    }
 
    /**
     * Sets the install root directory of the directory server.
     * <p>
     * The install root is the location where the data and live configuration is stored.
     *
     * @param dir
     *          the install root directory
     * @return this builder
     */
    public Builder serverInstanceDirectory(String dir)
    {
      params.serverInstanceDirectory = dir;
      return this;
    }
 
    /**
     * Sets the path of the configuration file of the directory server.
     *
     * @param file
     *          the configuration file
     * @return this builder
     */
    public Builder configurationFile(String file)
    {
      params.configurationFile = file;
      return this;
    }
 
    /**
     * Sets the indicator allowing to disable the connection handlers.
     *
     * @param disable
     *          {@code true} to disable the connection handlers
     * @return this builder
     */
    public Builder disableConnectionHandlers(boolean disable)
    {
      params.disableConnectionHandlers = disable;
      return this;
    }
  }
}