Skip to content

Commit a34e888

Browse files
author
dxcity
committed
tagging release 3.262
1 parent e7a0ecc commit a34e888

File tree

85 files changed

+1465
-211
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

85 files changed

+1465
-211
lines changed

ReleaseNotes.txt

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,33 @@
1+
QDS 3.262:
2+
3+
* [QD-1081] Agent can loss data after resubscription
4+
* [QD-1085] Endless reading of corrupted file
5+
* [QD-1084] dxFeed API: CandlePeriod.toString is not parsable
6+
* [QD-1083] dxFeed webservice: Invalid fields in Json serialization
7+
- Serialization format for XML and Json fixed: removed redundant fields, fields in Json are reordered
8+
according to XML format, refer to XML Schema (dxfeed-event.xsd) for changes.
9+
* [QD-1074] dxFeed API: Add Time and Index fields to Series event, do not represent Expiration as time field
10+
- Index field isn't compatible with previous version (saved Series events shall be generated from scratch)
11+
- Index field contains internal information to distinguish events in series flow
12+
* [QD-1072] dxFeed API: Add Time and Sequence fields to Underlying, TheoPrice events
13+
* [QD-1038] QD shall limit number of historical data by default for missing Indexed and TimeSeries events
14+
- Introduced system properties in format com.dxfeed.api.impl.HistorySubscriptionFilterImpl.maxRecordCount.+'recordName'
15+
com.dxfeed.api.impl.HistorySubscriptionFilterImpl.maxRecordCount.Candle=8000
16+
com.dxfeed.api.impl.HistorySubscriptionFilterImpl.maxRecordCount.TimeAndSale=1000
17+
- Introduced system properties for event categories:
18+
com.dxfeed.api.impl.HistorySubscriptionFilterImpl.maxRecordCount.candle=8000
19+
com.dxfeed.api.impl.HistorySubscriptionFilterImpl.maxRecordCount.timeSeries=1000
20+
com.dxfeed.api.impl.HistorySubscriptionFilterImpl.maxRecordCount.indexed=Integer.MAX_VALUE
21+
- 'candle category' - Candle, Trade.*
22+
- 'timeSeries category' - Underlying, TheoPrice, Greeks, TimeAndSale, TradeHistory
23+
- 'indexed category' - records with QD time not in candle & timeSeries categories (Order* events, MarketMaker, Series)
24+
- In order to leave max record count for 'Candle' events back-compatible this record wasn't included in timeSeries category
25+
- Event max record count will be chosen in the next priority: 'event property' has bigger priority than 'category property',
26+
'category property' has bigger priority than 'old-fashioned property'
27+
- Old-fashioned system properties have lowest priority:
28+
com.dxfeed.api.impl.HistorySubscriptionFilterImpl.candleMaxRecordCount=8000
29+
com.dxfeed.api.impl.HistorySubscriptionFilterImpl.tradeMaxRecordCount=1000
30+
131
QDS 3.261:
232

333
* [QD-1079] Fix flaky FileWriterTest.testFilesAreReleasedAsTimePasses

auth/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
<parent>
1515
<artifactId>QD</artifactId>
1616
<groupId>com.devexperts.qd</groupId>
17-
<version>3.261</version>
17+
<version>3.262</version>
1818
<relativePath>../pom.xml</relativePath>
1919
</parent>
2020
<modelVersion>4.0.0</modelVersion>

dxfeed-api/pom.xml

Lines changed: 23 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
<parent>
1515
<artifactId>QD</artifactId>
1616
<groupId>com.devexperts.qd</groupId>
17-
<version>3.261</version>
17+
<version>3.262</version>
1818
<relativePath>../pom.xml</relativePath>
1919
</parent>
2020
<modelVersion>4.0.0</modelVersion>
@@ -58,34 +58,35 @@
5858
</execution>
5959
</executions>
6060
<configuration>
61+
<createJavaDocAnnotations>false</createJavaDocAnnotations>
6162
<transformSchemas>
6263
<transformSchema>
6364
<uri>http://schema.dxfeed.com/event</uri>
6465
<toPrefix>e</toPrefix>
6566
<toFile>dxfeed-event.xsd</toFile>
6667
</transformSchema>
6768
</transformSchemas>
68-
<includes>
69-
<include>com/dxfeed/event/market/package-info.java</include>
70-
<include>com/dxfeed/event/market/Quote.java</include>
71-
<include>com/dxfeed/event/market/Trade.java</include>
72-
<include>com/dxfeed/event/market/TradeETH.java</include>
73-
<include>com/dxfeed/event/market/Summary.java</include>
74-
<include>com/dxfeed/event/market/Profile.java</include>
75-
<include>com/dxfeed/event/market/TimeAndSale.java</include>
76-
<include>com/dxfeed/event/market/Order.java</include>
77-
<include>com/dxfeed/event/market/SpreadOrder.java</include>
78-
<include>com/dxfeed/event/candle/package-info.java</include>
79-
<include>com/dxfeed/event/candle/Candle.java</include>
80-
<include>com/dxfeed/event/misc/package-info.java</include>
81-
<include>com/dxfeed/event/misc/Configuration.java</include>
82-
<include>com/dxfeed/event/misc/Message.java</include>
83-
<include>com/dxfeed/event/option/package-info.java</include>
84-
<include>com/dxfeed/event/option/Greeks.java</include>
85-
<include>com/dxfeed/event/option/Series.java</include>
86-
<include>com/dxfeed/event/option/TheoPrice.java</include>
87-
<include>com/dxfeed/event/option/Underlying.java</include>
88-
</includes>
69+
<sources>
70+
<source>${project.build.sourceDirectory}/com/dxfeed/event/market/package-info.java</source>
71+
<source>${project.build.sourceDirectory}/com/dxfeed/event/market/Quote.java</source>
72+
<source>${project.build.sourceDirectory}/com/dxfeed/event/market/Trade.java</source>
73+
<source>${project.build.sourceDirectory}/com/dxfeed/event/market/TradeETH.java</source>
74+
<source>${project.build.sourceDirectory}/com/dxfeed/event/market/Summary.java</source>
75+
<source>${project.build.sourceDirectory}/com/dxfeed/event/market/Profile.java</source>
76+
<source>${project.build.sourceDirectory}/com/dxfeed/event/market/TimeAndSale.java</source>
77+
<source>${project.build.sourceDirectory}/com/dxfeed/event/market/Order.java</source>
78+
<source>${project.build.sourceDirectory}/com/dxfeed/event/market/SpreadOrder.java</source>
79+
<source>${project.build.sourceDirectory}/com/dxfeed/event/candle/package-info.java</source>
80+
<source>${project.build.sourceDirectory}/com/dxfeed/event/candle/Candle.java</source>
81+
<source>${project.build.sourceDirectory}/com/dxfeed/event/misc/package-info.java</source>
82+
<source>${project.build.sourceDirectory}/com/dxfeed/event/misc/Configuration.java</source>
83+
<source>${project.build.sourceDirectory}/com/dxfeed/event/misc/Message.java</source>
84+
<source>${project.build.sourceDirectory}/com/dxfeed/event/option/package-info.java</source>
85+
<source>${project.build.sourceDirectory}/com/dxfeed/event/option/Greeks.java</source>
86+
<source>${project.build.sourceDirectory}/com/dxfeed/event/option/Series.java</source>
87+
<source>${project.build.sourceDirectory}/com/dxfeed/event/option/TheoPrice.java</source>
88+
<source>${project.build.sourceDirectory}/com/dxfeed/event/option/Underlying.java</source>
89+
</sources>
8990
</configuration>
9091
</plugin>
9192
<plugin>

dxfeed-api/src/main/java/com/dxfeed/event/candle/Candle.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,10 @@
8787
* candle symbol attributes like {@link CandlePrice} for an efficient support of bid-ask charting.
8888
*/
8989
@XmlRootElement(name = "Candle")
90+
@XmlType(propOrder = {
91+
"eventSymbol", "eventTime", "eventFlags", "index", "time", "sequence",
92+
"count", "open", "high", "low", "close", "volumeAsDouble", "VWAP", "bidVolumeAsDouble", "askVolumeAsDouble"
93+
})
9094
public class Candle implements TimeSeriesEvent<CandleSymbol>, LastingEvent<CandleSymbol> {
9195
private static final long serialVersionUID = 3;
9296

dxfeed-api/src/main/java/com/dxfeed/event/candle/CandlePeriod.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ public static CandlePeriod parse(String s) {
184184
int i = 0;
185185
for (; i < s.length(); i++) {
186186
char c = s.charAt(i);
187-
if ((c < '0' || c > '9') && c != '.' && c != '-')
187+
if ((c < '0' || c > '9') && c != '.' && c != '-' && c != '+' && c != 'e' && c != 'E')
188188
break;
189189
}
190190
String value = s.substring(0, i);

dxfeed-api/src/main/java/com/dxfeed/event/market/MarketEvent.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
*/
1212
package com.dxfeed.event.market;
1313

14+
import javax.xml.bind.annotation.XmlType;
15+
1416
import com.dxfeed.event.EventType;
1517

1618
/**
@@ -22,6 +24,7 @@
2224
* <p>Event symbol for a market event is a market symbol {@link String}.
2325
* See {@link MarketEventSymbols} class for a description of market event symbology.
2426
*/
27+
@XmlType(propOrder = {"eventSymbol", "eventTime"})
2528
public abstract class MarketEvent implements EventType<String> {
2629
private static final long serialVersionUID = 0;
2730

dxfeed-api/src/main/java/com/dxfeed/event/market/Order.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313

1414
import java.util.Collection;
1515
import javax.xml.bind.annotation.XmlRootElement;
16+
import javax.xml.bind.annotation.XmlType;
1617

1718
import com.dxfeed.api.DXFeed;
1819
import com.dxfeed.api.DXPublisher;
@@ -108,6 +109,7 @@
108109
* where {@code <source-id>} is up to 3 ASCII characters with a mnemonic for the source like "NTV".
109110
*/
110111
@XmlRootElement(name = "Order")
112+
@XmlType(propOrder = { "marketMaker" })
111113
public class Order extends OrderBase {
112114
private static final long serialVersionUID = 0;
113115

dxfeed-api/src/main/java/com/dxfeed/event/market/OrderBase.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,10 @@
7878
* It relies on the code of {@link AbstractIndexedEventModel} to handle this logic.
7979
* Use the source code of {@link AbstractIndexedEventModel} for clarification on transactions and snapshot logic.
8080
*/
81+
@XmlType(propOrder = {
82+
"eventFlags", "index", "time", "timeNanoPart", "sequence", "source",
83+
"price", "sizeAsDouble", "count", "exchangeCode", "orderSide", "scope"
84+
})
8185
public class OrderBase extends MarketEvent implements IndexedEvent<String> {
8286
private static final long serialVersionUID = 3;
8387

dxfeed-api/src/main/java/com/dxfeed/event/market/Profile.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
*/
1212
package com.dxfeed.event.market;
1313

14-
import javax.xml.bind.annotation.XmlRootElement;
14+
import javax.xml.bind.annotation.*;
1515

1616
import com.devexperts.util.TimeFormat;
1717
import com.dxfeed.event.LastingEvent;
@@ -46,6 +46,10 @@
4646
* This event is implemented on top of QDS record {@code Profile}.
4747
*/
4848
@XmlRootElement(name = "Profile")
49+
@XmlType(propOrder = {
50+
"description", "shortSaleRestriction", "tradingStatus", "statusReason",
51+
"haltStartTime", "haltEndTime", "highLimitPrice", "lowLimitPrice"
52+
})
4953
public class Profile extends MarketEvent implements LastingEvent<String> {
5054
private static final long serialVersionUID = 0;
5155

@@ -126,6 +130,7 @@ public void setShortSaleRestriction(ShortSaleRestriction restriction) {
126130
* Returns short sale restriction status of the security instrument.
127131
* @return {@code true} if short sale of the security instrument is restricted.
128132
*/
133+
@XmlTransient
129134
public boolean isShortSaleRestricted() {
130135
return getShortSaleRestriction() == ShortSaleRestriction.ACTIVE;
131136
}
@@ -160,6 +165,7 @@ public void setTradingStatus(TradingStatus status) {
160165
* Returns trading halt status of the security instrument.
161166
* @return {@code true} if trading of the security instrument is halted.
162167
*/
168+
@XmlTransient
163169
public boolean isTradingHalted() {
164170
return getTradingStatus() == TradingStatus.HALTED;
165171
}

dxfeed-api/src/main/java/com/dxfeed/event/market/Quote.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,10 @@
5454
* for regional exchange best quotes.
5555
*/
5656
@XmlRootElement(name = "Quote")
57+
@XmlType(propOrder = {
58+
"sequence", "timeNanoPart", "bidTime", "bidExchangeCode", "bidPrice", "bidSizeAsDouble",
59+
"askTime", "askExchangeCode", "askPrice", "askSizeAsDouble"
60+
})
5761
public class Quote extends MarketEvent implements LastingEvent<String> {
5862
private static final long serialVersionUID = 1;
5963

0 commit comments

Comments
 (0)