Previous changes to require facaded services to implement SharedStoreSetter did not require those services to implement a common interface used to create the facade proxy. Can't really call that an improvement.
Java does not allow typed argument with both typed and static bounds, i.e. <D extends SharedStoreSetter & T> does not compile. To work around this limitation and to ensure that facaded services implement both the facade interface and SharedStoreSetter, I'm using <T extends D,D extends SharedStoreSetter>. This makes the facade interface - T - require to implement SharedStoreSetter. It does not logically belong to the facade interface, but I guess I can live with that.
Previous changes to require facaded services to implement SharedStoreSetter did not require those services to implement a common interface used to create the facade proxy. Can't really call that an improvement.
Java does not allow typed argument with both typed and static bounds, i.e.
<D extends SharedStoreSetter & T>
does not compile. To work around this limitation and to ensure that facaded services implement both the facade interface and SharedStoreSetter, I'm using<T extends D,D extends SharedStoreSetter>
. This makes the facade interface - T - require to implement SharedStoreSetter. It does not logically belong to the facade interface, but I guess I can live with that.Yet another breaking change.