Community
Participate
Working Groups
In multithread environments, log file must be closed when each client user disconnects from the host. So org.eclipse.dstore.core.server.ServerLogger and IServerLogger should provide an API to close the log file.
Note that M6 is the official API freeze in just 1 week. This is negotiatable, but I'd prefer getting in API sooner than later, or not at all.
Created attachment 161625 [details] patch for new closeLogFileStream() api
Noriaki, I've attached a patch. Let me know whether this is what you're looking for.
Yes, this close API is what we want. Thanks, Noriaki Takatsu
I've committed the change to cvs.
This API change is breaking compatibility, because IServerLogger is not marked @noimplement. As committed, the change is not acceptable in a 3.2 release. Either mark IServerLogger as @noimplement (in case it was clearly never intended to be implemented by clients), or find an alternative way of adding the API in a compatible manner. At any rate, PLEASE enable API tooling in your workspace and add an API baseline. This is simple: Just download RSE-SDK-3.1.2.zip, extract it somewhere, and point the API baseline to that location. Then you'll see an error indicator when breaking API.
(In reply to comment #6) > This API change is breaking compatibility, because IServerLogger is not marked > @noimplement. > > As committed, the change is not acceptable in a 3.2 release. > Either mark IServerLogger as @noimplement (in case it was clearly never > intended to be implemented by clients), or find an alternative way of adding > the API in a compatible manner. IServerLogger is implemented by ServerLogger and I think that the products using this may extend ServerLogger. Is it okay to do a @noimplement but extend a class that implements IServerLogger?
Yes, our prodcut just extends ServerLogger and there is no code that implements IServerLogger.
We have this pattern in other places too (e.g. IFileService) and it works: * @noimplement This interface is not intended to be implemented by clients. * File service implementations must subclass * {@link AbstractFileService} rather than implementing this * interface directly.
Created attachment 162409 [details] updated patch Here's the patch with the @noimplement.
Released for 3.2M7. The version number of o.e.dstore.core as well as the dstore feature had to be reved up to 3.2 due to the API addition, and an API problem filter had to be added for addition of @noimplement. I also documented the API specification update in the build notes. Please verify with the next I-build that build notes and content are as expected.
Thanks Martin.