Community
Participate
Working Groups
For cases like in bug 170910, where the ITerminalConnector is synthesized programmatically rather than coming from an extension, calls like loadSettings(), storeSettings() and makeSettingsPage() do not make any sense to be implemented. Therefore, the TerminalConnectorImpl abstract base class should provide default implementations of these methods. Also, default implementations should be provided for those methods that require some functionality, such as calling IterminalControl.setState(CLOSED) on disconnect(). Pushing such default functionality into the abstract base class ensures consistency, ability to extend common default functionality in the future, and makes sure that required operations are always performed. At the same time, I recommend renaming TerminalConnectorImpl#getOutputStream() to TerminalConnectorImpl#getTerminalToRemoteStream() for consistency with ITerminalConnector.
Created attachment 94931 [details] Patch providing requested change Attached patch makes the requested change. Michael Please review -- two unit tests are currently failing and I don't quite see why (testIsInitialized and testGetAdapter). Perhaps these have been failing before the proposed change already. Migration Docs for users: None Migration Docs for providers of terminal connectors: * Migrate according to bug 200541 first (extend TerminalConnectorImpl) * Rename local getOutputStream() to getTerminalToRemoteStream() * Rename local disconnect() to doDisconnect(), and get rid of fControl.setState() at the end * Add super.connect(control) at the beginning of connect(control) impl * Get rid of fTerminalControl, it's protected now * Get rid of any other method implementations that are now unneeded, e.g. isLocalEcho()
the patch looks good! Applied :-)