Skip to content

Commit edb70aa

Browse files
authored
Fix fob property for dxlink scheme (#93)
1 parent 6f0dc71 commit edb70aa

6 files changed

Lines changed: 37 additions & 18 deletions

File tree

NuGet.Config

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,5 @@
33
<configuration>
44
<packageSources>
55
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
6-
<add key="dxFeed" value="https://dxfeed.jfrog.io/artifactory/api/nuget/v3/nuget-open" protocolVersion="3" />
76
</packageSources>
87
</configuration>

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -318,7 +318,7 @@ using DxFeed.Graal.Net.Events.Market;
318318
// Enable experimental feature.
319319
SystemProperty.SetProperty("dxfeed.experimental.dxlink.enable", "true");
320320
// Set scheme for dxLink.
321-
SystemProperty.SetProperty("scheme", "ext:opt:sysprops,resource:dxlink.xml");
321+
SystemProperty.SetProperty("scheme", "ext:opt:sysprops,opt:dxprops,resource:dxlink.xml");
322322

323323
// For token-based authorization, use the following address format:
324324
// "dxlink:wss://demo.dxfeed.com/dxlink-ws[login=dxlink:token]"

samples/dxfeed.system.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ dxfeed.address=demo.dxfeed.com:7300
66

77
# Required properties for connect to dxLink
88
#dxfeed.experimental.dxlink.enable=true
9-
#scheme=ext:opt:sysprops,resource:dxlink.xml
9+
#scheme=ext:opt:sysprops,opt:dxprops,resource:dxlink.xml
1010

1111
# Connect to demo dxLink endpoint
1212
#dxfeed.address=dxlink:wss://demo.dxfeed.com/dxlink-ws

src/DxFeed.Graal.Net.Tools/Program.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public static void Main(string[] args)
1414
{
1515
SystemProperty.SetProperty(DXEndpoint.DXFeedWildcardEnableProperty, "true");
1616
SystemProperty.SetProperty("dxfeed.experimental.dxlink.enable", "true");
17-
SystemProperty.SetProperty("scheme", "ext:opt:sysprops,resource:dxlink.xml");
17+
SystemProperty.SetProperty("scheme", "ext:opt:sysprops,opt:dxprops,resource:dxlink.xml");
1818
Tools.Run(args);
1919
}
2020
}

src/DxFeed.Graal.Net/DxFeed.Graal.Net.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
<PackageReference Include="Microsoft.Extensions.Configuration.Ini" Version="8.0.0" />
3030
<PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="8.0.0" />
3131
<PackageReference Include="System.Collections.Immutable" Version="8.0.0"/>
32-
<PackageReference Include="DxFeed.Graal.Native" Version="3.2.0" />
32+
<PackageReference Include="DxFeed.Graal.Native" Version="3.2.10" />
3333
</ItemGroup>
3434

3535
</Project>

tests/DxFeed.Graal.Net.Tests/Api/DXEndpointTest.cs

Lines changed: 33 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
// If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
55
// </copyright>
66

7+
using System.Net;
8+
using System.Net.Sockets;
79
using DxFeed.Graal.Net.Api;
810
using DxFeed.Graal.Net.Api.Osub;
911
using DxFeed.Graal.Net.Events;
@@ -17,27 +19,45 @@ namespace DxFeed.Graal.Net.Tests.Api;
1719
[TestFixture]
1820
public class DXEndpointTest
1921
{
20-
private static readonly Random rnd = new();
21-
2222
[Test]
2323
public void ConnectToLocalPublisher()
2424
{
25-
var port = rnd.Next(48658, 49150);
25+
var port = GetFreePort();
2626
var countdownEvent = new CountdownEvent(1);
2727

2828
var pub = Create(Publisher).Connect($":{port}");
2929
var feed = Create(Feed);
30-
feed.AddStateChangeListener((_, newState) =>
30+
try
3131
{
32-
if (newState == State.Connected)
32+
feed.AddStateChangeListener((_, newState) =>
3333
{
34-
countdownEvent.Signal();
35-
}
36-
});
37-
feed.Connect($"localhost:{port}");
38-
Assert.That(countdownEvent.Wait(new TimeSpan(0, 0, 3)), Is.True);
39-
pub.Close();
40-
feed.Close();
34+
if (newState == State.Connected)
35+
{
36+
countdownEvent.Signal();
37+
}
38+
});
39+
feed.Connect($"localhost:{port}");
40+
Assert.That(countdownEvent.Wait(new TimeSpan(0, 0, 10)), Is.True);
41+
}
42+
finally
43+
{
44+
pub.Close();
45+
feed.Close();
46+
}
47+
}
48+
49+
private static int GetFreePort()
50+
{
51+
var listener = new TcpListener(IPAddress.Loopback, 0);
52+
listener.Start();
53+
try
54+
{
55+
return ((IPEndPoint)listener.LocalEndpoint).Port;
56+
}
57+
finally
58+
{
59+
listener.Stop();
60+
}
4161
}
4262

4363
[Test]
@@ -222,7 +242,7 @@ public void CheckOtcMarketsOrder()
222242
publisher.PublishEvents(order1);
223243
publisher.PublishEvents(order2);
224244

225-
cde.Wait(3000);
245+
Assert.That(cde.Wait(TimeSpan.FromSeconds(10)), Is.True, "Expected both published orders to be received");
226246

227247
foreach (var eventType in resultList)
228248
{

0 commit comments

Comments
 (0)