Skip to content

Commit 0c92d3b

Browse files
committed
removed double initialization of moving parts in client and transport, transport is in charge.
1 parent 96be58b commit 0c92d3b

File tree

4 files changed

+27
-14
lines changed

4 files changed

+27
-14
lines changed
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,24 @@
11
using System.Collections.Specialized;
22
using System.Threading.Tasks;
3+
using Elasticsearch.Net.Serialization;
34

45
namespace Elasticsearch.Net.Connection
56
{
67
public interface ITransport
78
{
9+
IConnectionConfigurationValues Settings { get; }
10+
IElasticsearchSerializer Serializer { get; }
11+
812
ElasticsearchResponse DoRequest(string method, string path, object data = null, NameValueCollection queryString = null, int retried = 0, int? seed = null);
913

1014
Task<ElasticsearchResponse> DoRequestAsync(
1115
string method,
1216
string path,
1317
object data = null, NameValueCollection queryString = null, int retried = 0, int? seed = null);
1418
}
19+
20+
public interface ITransportValues
21+
{
22+
IElasticsearchSerializer Serializer { get; }
23+
}
1524
}

src/Elasticsearch.Net/Connection/Transport.cs

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,25 +12,30 @@ namespace Elasticsearch.Net.Connection
1212
{
1313
public class Transport : ITransport
1414
{
15-
private readonly IConnectionConfigurationValues _configurationValues;
16-
private readonly IConnection _connection;
17-
private readonly IElasticsearchSerializer _serializer;
15+
protected internal readonly IConnectionConfigurationValues _configurationValues;
16+
protected internal readonly IConnection _connection;
17+
protected internal readonly IElasticsearchSerializer _serializer;
18+
1819
private readonly IConnectionPool _connectionPool;
1920
private IDateTimeProvider _dateTimeProvider;
2021
private DateTime? _lastSniff = null;
2122

23+
public IConnectionConfigurationValues Settings { get { return _configurationValues; } }
24+
public IElasticsearchSerializer Serializer { get { return _serializer; } }
25+
2226
public Transport(
2327
IConnectionConfigurationValues configurationValues,
2428
IConnection connection,
2529
IElasticsearchSerializer serializer,
2630
IDateTimeProvider dateTimeProvider = null
2731
)
2832
{
29-
_dateTimeProvider = dateTimeProvider;
30-
this._connection = connection;
3133
this._configurationValues = configurationValues;
34+
this._connection = connection?? new HttpConnection(configurationValues);
3235
this._serializer = serializer ?? new ElasticsearchDefaultSerializer();
3336
this._connectionPool = this._configurationValues.ConnectionPool;
37+
38+
//TODO: take the datetimeprovider from the connection pool?
3439
this._dateTimeProvider = dateTimeProvider ?? new DateTimeProvider();
3540

3641
if (this._configurationValues.SniffsOnStartup)
@@ -62,6 +67,7 @@ private int GetMaximumRetries()
6267
return this._configurationValues.MaxRetries.GetValueOrDefault(this._connectionPool.MaxRetries);
6368
}
6469

70+
6571
public ElasticsearchResponse DoRequest(
6672
string method,
6773
string path,

src/Elasticsearch.Net/ElasticsearchClient.cs

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ namespace Elasticsearch.Net
1212
{
1313
public partial class ElasticsearchClient : IElasticsearchClient
1414
{
15-
public IConnection Connection { get; protected set; }
16-
public IConnectionConfigurationValues Settings { get; protected set; }
17-
public IElasticsearchSerializer Serializer { get; protected set; }
15+
public IConnectionConfigurationValues Settings { get { return this.Transport.Settings; } }
16+
public IElasticsearchSerializer Serializer { get { return this.Transport.Serializer; } }
17+
1818
protected IStringifier Stringifier { get; set; }
1919
protected ITransport Transport { get; set; }
2020

@@ -29,12 +29,11 @@ public ElasticsearchClient(
2929
if (settings == null)
3030
throw new ArgumentNullException("settings");
3131

32-
this.Settings = settings;
33-
this.Connection = connection ?? new HttpConnection(settings);
34-
this.Serializer = serializer ?? new ElasticsearchDefaultSerializer();
35-
((IConnectionConfigurationValues) this.Settings).Serializer = this.Serializer;
36-
this.Transport = transport ?? new Transport(settings, this.Connection, this.Serializer);
32+
this.Transport = transport ?? new Transport(settings, connection, serializer);
3733
this.Stringifier = stringifier ?? new Stringifier();
34+
35+
//neccessary to pass the serializer to ElasticsearchResponse
36+
this.Settings.Serializer = this.Transport.Serializer;
3837
}
3938

4039
protected NameValueCollection ToNameValueCollection<TQueryString>(FluentQueryString<TQueryString> qs)

src/Elasticsearch.Net/IElasticsearchClient.Generated.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ namespace Elasticsearch.Net
2121
///</summary>
2222
public interface IElasticsearchClient
2323
{
24-
IConnection Connection { get; }
2524
IConnectionConfigurationValues Settings { get; }
2625
IElasticsearchSerializer Serializer { get; }
2726

0 commit comments

Comments
 (0)