Feature #2537
try-with-resources
Status: | Resolved | Start date: | 04/27/2016 | |
---|---|---|---|---|
Priority: | Low | Due date: | ||
Assignee: | J. Moringen | % Done: | 100% | |
Category: | Java | |||
Target version: | rsb-0.17 |
Description
Sometimes it would be nice if the RSB resource holding classes like Listener, Informer, LocalServer and RemoteServer would implement the java.lang.AutoClosable interface to be usable in the try-with-resources constructs available since Java 7.
Same would go for pythons "with" statement, e.g. implementing enter() and exit() to activate and deactivate the object.
Associated revisions
Implement Closeable interface in rsb-java/src/main/java/rsb/[Abstract]Activatable.java
fixes #2537
- rsb-java/src/main/java/rsb/Activatable.java (Activatable): extend
Closeable - rsb-java/src/main/java/rsb/AbstractActivatable.java: new file;
implement close() method because Activatable cannot
Mention Closeable support in news.rst
refs #2537
- news.rst (RSB 0.17): mention Closeable support in the Java
implementation
Added helper Abstract* classes in src/main/java/**/Abstract*.java
refs #2537
- rsb-java/src/main/java/rsb/eventprocessing/AbstractEventReceivingStrategy.java:
new file; contains AbstractEventReceivingStrategy helper class - rsb-java/src/main/java/rsb/eventprocessing/SingleThreadEventReceivingStrategy.java:
extend AbstractEventReceivingStrategy - rsb-java/src/main/java/rsb/eventprocessing/DefaultOutRouteConfigurator.java:
extend AbstractActivatable - rsb-java/src/main/java/rsb/eventprocessing/DefaultPushInRouteConfigurator.java:
likewise - rsb-java/src/main/java/rsb/transport/AbstractConnector.java: new
file; contains AbstractConnector helper class - rsb-java/src/main/java/rsb/transport/inprocess/ConnectorBase.java:
extend AbstractConnector - rsb-java/src/main/java/rsb/transport/socket/BusBase.java: extend
AbstractActivatable - rsb-java/src/main/java/rsb/transport/socket/SocketOutConnector.java:
extend AbstractConnector - rsb-java/src/main/java/rsb/transport/socket/SocketInPushConnector.java:
likewise - rsb-java/src/main/java/rsb/transport/spread/MultiSpreadInPushConnector.java:
extend AbstractConnector - rsb-java/src/main/java/rsb/transport/spread/SpreadInPushConnector.java:
likewise - rsb-java/src/main/java/rsb/transport/spread/SpreadOutConnector.java:
likewise
Added helper Abstract* classes in src/main/java/**/Abstract*.java
refs #2537
- rsb-java/src/main/java/rsb/eventprocessing/AbstractEventReceivingStrategy.java:
new file; contains AbstractEventReceivingStrategy helper class - rsb-java/src/main/java/rsb/eventprocessing/SingleThreadEventReceivingStrategy.java:
extend AbstractEventReceivingStrategy - rsb-java/src/main/java/rsb/eventprocessing/UnorderedParallelEventReceivingStrategy.java:
likewise - rsb-java/src/main/java/rsb/eventprocessing/DefaultOutRouteConfigurator.java:
extend AbstractActivatable - rsb-java/src/main/java/rsb/eventprocessing/DefaultPushInRouteConfigurator.java:
likewise - rsb-java/src/main/java/rsb/transport/AbstractConnector.java: new
file; contains AbstractConnector helper class - rsb-java/src/main/java/rsb/transport/inprocess/ConnectorBase.java:
extend AbstractConnector - rsb-java/src/main/java/rsb/transport/socket/BusBase.java: extend
AbstractActivatable - rsb-java/src/main/java/rsb/transport/socket/RefCountingBus.java:
likewise - rsb-java/src/main/java/rsb/transport/socket/BusConnectionBase.java:
likewise - rsb-java/src/main/java/rsb/transport/socket/SocketOutConnector.java:
extend AbstractConnector - rsb-java/src/main/java/rsb/transport/socket/SocketInPushConnector.java:
likewise - rsb-java/src/main/java/rsb/transport/spread/SpreadReceiver.java:
extend AbstractActivatable - rsb-java/src/main/java/rsb/transport/spread/SpreadWrapperImpl.java:
likewise - rsb-java/src/main/java/rsb/transport/spread/RefCountingSpreadWrapper.java:
likewise - rsb-java/src/main/java/rsb/transport/spread/MultiSpreadInPushConnector.java:
extend AbstractConnector - rsb-java/src/main/java/rsb/transport/spread/SpreadInPushConnector.java:
likewise - rsb-java/src/main/java/rsb/transport/spread/SpreadOutConnector.java:
likewise
Added helper Abstract* classes in src/main/java/**/Abstract*.java
refs #2537
- rsb-java/src/main/java/rsb/eventprocessing/AbstractEventReceivingStrategy.java:
new file; contains AbstractEventReceivingStrategy helper class - rsb-java/src/main/java/rsb/eventprocessing/SingleThreadEventReceivingStrategy.java:
extend AbstractEventReceivingStrategy - rsb-java/src/main/java/rsb/eventprocessing/UnorderedParallelEventReceivingStrategy.java:
likewise - rsb-java/src/main/java/rsb/eventprocessing/DefaultOutRouteConfigurator.java:
extend AbstractActivatable - rsb-java/src/main/java/rsb/eventprocessing/DefaultPushInRouteConfigurator.java:
likewise - rsb-java/src/main/java/rsb/transport/AbstractConnector.java: new
file; contains AbstractConnector helper class - rsb-java/src/main/java/rsb/transport/inprocess/ConnectorBase.java:
extend AbstractConnector - rsb-java/src/main/java/rsb/transport/socket/BusBase.java: extend
AbstractActivatable - rsb-java/src/main/java/rsb/transport/socket/RefCountingBus.java:
likewise - rsb-java/src/main/java/rsb/transport/socket/BusConnectionBase.java:
likewise - rsb-java/src/main/java/rsb/transport/socket/SocketOutConnector.java:
extend AbstractConnector - rsb-java/src/main/java/rsb/transport/socket/SocketInPushConnector.java:
likewise - rsb-java/src/main/java/rsb/transport/spread/SpreadReceiver.java:
extend AbstractActivatable - rsb-java/src/main/java/rsb/transport/spread/SpreadWrapperImpl.java:
likewise - rsb-java/src/main/java/rsb/transport/spread/RefCountingSpreadWrapper.java:
likewise - rsb-java/src/main/java/rsb/transport/spread/MultiSpreadInPushConnector.java:
extend AbstractConnector - rsb-java/src/main/java/rsb/transport/spread/SpreadInPushConnector.java:
likewise - rsb-java/src/main/java/rsb/transport/spread/SpreadOutConnector.java:
likewise - rsb-java/src/main/java/rsb/introspection/ProtocolHandler.java:
implemented close method
Added helper Abstract* classes in src/main/java/**/Abstract*.java
refs #2537
- rsb-java/src/main/java/rsb/eventprocessing/AbstractEventReceivingStrategy.java:
new file; contains AbstractEventReceivingStrategy helper class - rsb-java/src/main/java/rsb/eventprocessing/SingleThreadEventReceivingStrategy.java:
extend AbstractEventReceivingStrategy - rsb-java/src/main/java/rsb/eventprocessing/UnorderedParallelEventReceivingStrategy.java:
likewise - rsb-java/src/main/java/rsb/eventprocessing/DefaultOutRouteConfigurator.java:
extend AbstractActivatable - rsb-java/src/main/java/rsb/eventprocessing/DefaultPushInRouteConfigurator.java:
likewise - rsb-java/src/main/java/rsb/transport/AbstractConnector.java: new
file; contains AbstractConnector helper class - rsb-java/src/main/java/rsb/transport/inprocess/ConnectorBase.java:
extend AbstractConnector - rsb-java/src/main/java/rsb/transport/socket/BusBase.java: extend
AbstractActivatable - rsb-java/src/main/java/rsb/transport/socket/RefCountingBus.java:
likewise - rsb-java/src/main/java/rsb/transport/socket/BusConnectionBase.java:
likewise - rsb-java/src/main/java/rsb/transport/socket/SocketOutConnector.java:
extend AbstractConnector - rsb-java/src/main/java/rsb/transport/socket/SocketInPushConnector.java:
likewise - rsb-java/src/main/java/rsb/transport/spread/SpreadReceiver.java:
extend AbstractActivatable - rsb-java/src/main/java/rsb/transport/spread/SpreadWrapperImpl.java:
likewise - rsb-java/src/main/java/rsb/transport/spread/RefCountingSpreadWrapper.java:
likewise - rsb-java/src/main/java/rsb/transport/spread/MultiSpreadInPushConnector.java:
extend AbstractConnector - rsb-java/src/main/java/rsb/transport/spread/SpreadInPushConnector.java:
likewise - rsb-java/src/main/java/rsb/transport/spread/SpreadOutConnector.java:
likewise - rsb-java/src/main/java/rsb/introspection/ProtocolHandler.java:
implemented close method
History
#1 Updated by J. Wienke almost 8 years ago
For python this is already supported.
#2 Updated by J. Wienke almost 8 years ago
After reading https://stackoverflow.com/questions/25190347/does-autocloseable-close-method-break-backward-compatibilty-rule-of-java it seems to be possible to implement the new java 7 AutoCloseable
interface in a backwards-compatible fashion by implementing Closeable
. Therefore we can extend our participants to implement Closeable
and have immediate support fir try-with-resource blocks in java 7.
#3 Updated by J. Moringen almost 8 years ago
- Target version set to rsb-0.15
#4 Updated by J. Moringen over 7 years ago
- Target version changed from rsb-0.15 to rsb-0.16
#5 Updated by J. Moringen about 7 years ago
- Target version changed from rsb-0.16 to rsb-0.17
#6 Updated by J. Moringen over 6 years ago
- Status changed from New to In Progress
- Assignee set to J. Moringen
- % Done changed from 0 to 50
#7 Updated by J. Moringen over 6 years ago
- Status changed from In Progress to Resolved
- % Done changed from 50 to 100
Applied in changeset rsb-java|6722af73c1bbbb5e1b8305eebca2bb5d3d85c2c9.