Community
Participate
Working Groups
Today a Scout client tunnels (server-)service-requests through a HTTP proxy by using the ClientProxyServiceFactory. All interfaces / classes concerning the HTTP service tunnel are located in the "org.eclipse.scout.rt.client" plugin. The current client proxy service-tunnel implementation works with instances of IClientSession. Thus, in a multi-server environment where a Scout server must communicate with another Scout server through HTTP, we cannot use the service tunnel. With this enhancement we move the service-tunnel to a separate plugin "org.eclipse.scout.rt.servicetunnel". This plugin contains a client/server independet implementation of the HTTP proxy service-tunnel which works with instances of ISession. By default the plugin "org.eclipse.scout.rt.client" will have a new dependency to the servicetunnel plugin. A Scout server application can optionally add a dependency to the new plugin and extend the common HTTP proxy service-tunnel (e.g. ServerProxyServiceFactory extends CommonProxyServiceFactory). This factory can be used in the plugin.xml to register proxy service-tunnels to the other Scout server.
Created attachment 229672 [details] Moved service-tunnel to new plugin org.eclipse.scout.rt.servicetunnel
This is something we need to discuss for the L-Release.
Change based on attachment 229672 [details] pushed to Gerrit for develop branch: https://git.eclipse.org/r/16413
Moved to M3.
== Migration notes == Add org.eclipse.scout.rt.servicetunnel in the Plug-ins dependencies in your client product files. --- Update your code (search for deprecated warnings), here a not exhaustive list of what you have to change: * In <your app>.ClientSession.execLoadSession() Old: setServiceTunnel(new HttpServiceTunnel(this, getBundle().getBundleContext().getProperty("server.url"))); New: setServiceTunnel(new ClientHttpServiceTunnel(this, UriUtility.toUrl(getBundle().getBundleContext().getProperty("server.url")))); * If you have extended org.eclipse.scout.rt.client.servicetunnel.http.HttpServiceTunnel you should now extend from org.eclipse.scout.rt.client.servicetunnel.http.ClientHttpServiceTunnel. * org.eclipse.scout.rt.client.servicetunnel. IServiceTunnel is now org.eclipse.scout.rt.client.servicetunnel.http.IClientServiceTunnel --- Sidenote, Working with java.net.URL instead of String: The new API use URL instead of Strings, to make the conversion use UriUtility.toUrl(String). This way you will get a ProcessingException instead of a MalformedURLException when something goes wrong.
Submitted with commit: http://git.eclipse.org/c/scout/org.eclipse.scout.rt.git/commit/?id=6d84e5e1273cda0194692b91f24cb494441302fa
New And Noteworthy: http://wiki.eclipse.org/Scout/NewAndNoteworthy/3.10#Service_tunnel_plugin
HttpUtility deleted with commit: http://git.eclipse.org/c/scout/org.eclipse.scout.rt.git/commit/?id=6ab0b1c3c33ade135d867b8c66f51d1e6cab00f4
Warnings delete with: http://git.eclipse.org/c/scout/org.eclipse.scout.rt.git/commit/?id=5612d4bb293caa1281bfc29d819dcbd0abbf5bf3
André, can you verify please?
Shipped with Eclipse Luna Release