View Javadoc
1   /*
2    * #%L
3    * MongoDbConfiguration.java - mongodb-async-driver - Allanbank Consulting, Inc.
4    * %%
5    * Copyright (C) 2011 - 2014 Allanbank Consulting, Inc.
6    * %%
7    * Licensed under the Apache License, Version 2.0 (the "License");
8    * you may not use this file except in compliance with the License.
9    * You may obtain a copy of the License at
10   * 
11   *      http://www.apache.org/licenses/LICENSE-2.0
12   * 
13   * Unless required by applicable law or agreed to in writing, software
14   * distributed under the License is distributed on an "AS IS" BASIS,
15   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16   * See the License for the specific language governing permissions and
17   * limitations under the License.
18   * #L%
19   */
20  package com.allanbank.mongodb;
21  
22  import java.net.InetSocketAddress;
23  
24  /**
25   * Contains the configuration for the connection(s) to the MongoDB servers. This
26   * class is the same as and extends the {@link MongoClientConfiguration} except
27   * it defaults the {@link Durability} to {@link Durability#NONE} instead of
28   * {@link Durability#ACK}.
29   * 
30   * @api.yes This class is part of the driver's API. Public and protected members
31   *          will be deprecated for at least 1 non-bugfix release (version
32   *          numbers are <major>.<minor>.<bugfix>) before being
33   *          removed or modified.
34   * @deprecated Please us the {@link MongoClientConfiguration} instead. This
35   *             class will be removed on or after the 1.3.0 release.
36   * @copyright 2011-2013, Allanbank Consulting, Inc., All Rights Reserved
37   */
38  @Deprecated
39  public class MongoDbConfiguration extends MongoClientConfiguration {
40  
41      /** Serialization version for the class. */
42      private static final long serialVersionUID = -3986785427935492378L;
43  
44      /**
45       * Creates a new MongoDbConfiguration.
46       */
47      public MongoDbConfiguration() {
48          super();
49  
50          setDefaultDurability(Durability.NONE);
51      }
52  
53      /**
54       * Creates a new MongoDbConfiguration.
55       * 
56       * @param servers
57       *            The initial set of servers to connect to.
58       */
59      public MongoDbConfiguration(final InetSocketAddress... servers) {
60          super(servers);
61  
62          setDefaultDurability(Durability.NONE);
63      }
64  
65      /**
66       * Creates a new MongoDbConfiguration.
67       * 
68       * @param other
69       *            The configuration to copy.
70       */
71      public MongoDbConfiguration(final MongoDbConfiguration other) {
72          super(other);
73      }
74  
75      /**
76       * Creates a new {@link MongoDbConfiguration} instance using a MongoDB style
77       * URL to initialize its state. Further configuration is possible once the
78       * {@link MongoDbConfiguration} has been instantiated.
79       * 
80       * @param mongoDbUri
81       *            The configuration for the connection to MongoDB expressed as a
82       *            MongoDB URL.
83       * @throws IllegalArgumentException
84       *             If the <tt>mongoDbUri</tt> is not a properly formated MongoDB
85       *             style URL.
86       * 
87       * @see <a href="http://www.mongodb.org/display/DOCS/Connections"> MongoDB
88       *      Connections</a>
89       */
90      public MongoDbConfiguration(final MongoDbUri mongoDbUri)
91              throws IllegalArgumentException {
92          super(mongoDbUri, Durability.NONE);
93      }
94  
95      /**
96       * Creates a new {@link MongoDbConfiguration} instance using a MongoDB style
97       * URL to initialize its state. Further configuration is possible once the
98       * {@link MongoDbConfiguration} has been instantiated.
99       * 
100      * @param mongoDbUri
101      *            The configuration for the connection to MongoDB expressed as a
102      *            MongoDB URL.
103      * @throws IllegalArgumentException
104      *             If the <tt>mongoDbUri</tt> is not a properly formated MongoDB
105      *             style URL.
106      * 
107      * @see <a href="http://www.mongodb.org/display/DOCS/Connections"> MongoDB
108      *      Connections</a>
109      */
110     public MongoDbConfiguration(final String mongoDbUri)
111             throws IllegalArgumentException {
112         this(new MongoDbUri(mongoDbUri));
113     }
114 
115     /**
116      * Creates a copy of this MongoClientConfiguration.
117      * <p>
118      * Note: This is not a traditional clone to ensure a deep copy of all
119      * information.
120      * </p>
121      */
122     @Override
123     public MongoDbConfiguration clone() {
124         return (MongoDbConfiguration) super.clone();
125     }
126 }