Hi Matthias,
Agreed. I tried your proposal and indeed it would work.
However, I think to maintain full backward compatibility we would also
need to deprecate Stores.create() and leave it unchanged, while
providing a new method that returns the more strongly typed Factories.
( This is because PersistentWindowFactory and PersistentSessionFactory
cannot extend the existing PersistentKeyValueFactory interface, since
their build() methods will be returning
TypedStateStoreSupplier<WindowStore<K, V>> and
TypedStateStoreSupplier<SessionStore<K, V>> respectively, which are NOT
subclasses of TypedStateStoreSupplier<KeyValueStore<K, V>>. I do not see
another way around it. Admittedly, my type covariance skills are
rudimentary. Does anyone see a better way around this? )
Since create() takes only the store name as argument, and I don't see
what we could overload it with, the new method would need to have a
different name.
Alternatively, since create(String) is the only method in Stores, we
could deprecate the entire class and provide a new one. That would be my
preference. Any ideas what to call it?
All comments and suggestions appreciated.
Cheers,
MichaĆ
On 04/05/17 21:48, Matthias J. Sax wrote:
I had a quick look into this.
With regard to backward compatibility, I think it would be required do
introduce a new type `TypesStateStoreSupplier` (that extends
`StateStoreSupplier`) and to overload all methods that take a
`StateStoreSupplier` that accept the new type instead of the current one.
This would allow `.build` to return a `TypedStateStoreSupplier` and
thus, would not break any code. As least if I did not miss anything with
regard to some magic of type inference using generics (I am not an
expert in this field).
-Matthias
On 5/4/17 11:32 AM, Matthias J. Sax wrote:
Did not have time to have a look. But backward compatibility is a must
from my point of view.
-Matthias
On 5/4/17 12:56 AM, Michal Borowiecki wrote:
Hello,
I've updated the KIP with missing information.
I would especially appreciate some comments on the compatibility aspects
of this as the proposed change is not fully backwards-compatible.
In the absence of comments I shall call for a vote in the next few days.
Thanks,
Michal
On 30/04/17 23:11, Michal Borowiecki wrote:
Hi community!
I have just drafted KIP-147: Add missing type parameters to
StateStoreSupplier factories and KGroupedStream/Table methods
<https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=69408481>
Please let me know if this a step in the right direction.
All comments welcome.
Thanks,
Michal
--
Signature
<http://www.openbet.com/> Michal Borowiecki
Senior Software Engineer L4
T: +44 208 742 1600
+44 203 249 8448
E: michal.borowie...@openbet.com
W: www.openbet.com <http://www.openbet.com/>
OpenBet Ltd
Chiswick Park Building 9
566 Chiswick High Rd
London
W4 5XT
UK
<https://www.openbet.com/email_promo>
This message is confidential and intended only for the addressee. If
you have received this message in error, please immediately notify the
postmas...@openbet.com <mailto:postmas...@openbet.com> and delete it
from your system as well as any copies. The content of e-mails as well
as traffic data may be monitored by OpenBet for employment and
security purposes. To protect the environment please do not print this
e-mail unless necessary. OpenBet Ltd. Registered Office: Chiswick Park
Building 9, 566 Chiswick High Road, London, W4 5XT, United Kingdom. A
company registered in England and Wales. Registered no. 3134634. VAT
no. GB927523612
--
Signature
<http://www.openbet.com/> Michal Borowiecki
Senior Software Engineer L4
T: +44 208 742 1600
+44 203 249 8448
E: michal.borowie...@openbet.com
W: www.openbet.com <http://www.openbet.com/>
OpenBet Ltd
Chiswick Park Building 9
566 Chiswick High Rd
London
W4 5XT
UK
<https://www.openbet.com/email_promo>
This message is confidential and intended only for the addressee. If you
have received this message in error, please immediately notify the
postmas...@openbet.com <mailto:postmas...@openbet.com> and delete it
from your system as well as any copies. The content of e-mails as well
as traffic data may be monitored by OpenBet for employment and security
purposes. To protect the environment please do not print this e-mail
unless necessary. OpenBet Ltd. Registered Office: Chiswick Park Building
9, 566 Chiswick High Road, London, W4 5XT, United Kingdom. A company
registered in England and Wales. Registered no. 3134634. VAT no.
GB927523612
--
Signature
<http://www.openbet.com/> Michal Borowiecki
Senior Software Engineer L4
T: +44 208 742 1600
+44 203 249 8448
E: michal.borowie...@openbet.com
W: www.openbet.com <http://www.openbet.com/>
OpenBet Ltd
Chiswick Park Building 9
566 Chiswick High Rd
London
W4 5XT
UK
<https://www.openbet.com/email_promo>
This message is confidential and intended only for the addressee. If you
have received this message in error, please immediately notify the
postmas...@openbet.com <mailto:postmas...@openbet.com> and delete it
from your system as well as any copies. The content of e-mails as well
as traffic data may be monitored by OpenBet for employment and security
purposes. To protect the environment please do not print this e-mail
unless necessary. OpenBet Ltd. Registered Office: Chiswick Park Building
9, 566 Chiswick High Road, London, W4 5XT, United Kingdom. A company
registered in England and Wales. Registered no. 3134634. VAT no.
GB927523612