JeffLeFoll / gwteventservice

An event-based client-server communication framework.
http://code.google.com/p/gwteventservice
Other
3 stars 3 forks source link

Get rid of the RPC class explosion #36

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
Get rid of the RPC class explosion in 
de.novanic.eventservice.client.event.service.EventService

Original issue reported on code.google.com by vtl...@gmail.com on 14 Aug 2011 at 1:30

GoogleCodeExporter commented 8 years ago
You mean the number of methods of EventService should be reduced? Why? Where is 
the problem?

Original comment by sven.strohschein@googlemail.com on 16 Aug 2011 at 5:42

GoogleCodeExporter commented 8 years ago
The problem in the arguments of the methods only. If we use the common 
interfaces like List, Set, Map rpc subsystem generated serializers for all 
classes available at compile time. For example for a Set is available through a 
TreeSet and TreeMap. This increases the compiled application to 50 kb. 
Similarly with the other collection interfaces. 
My suggestion is to replace the interfaces List and Set on concrete 
implementation of ArrayList and HashSet, respectively.

Original comment by vtl...@gmail.com on 17 Aug 2011 at 7:03

GoogleCodeExporter commented 8 years ago
Ok, re-opened with low priority.

This ticket can only be followed with the next major release because the 
solution would cause a major API change.

The mentioned solution isn't a good solution because it would reduce the 
flexibility and to use concrete implementations (especially of the 
Collection-API) isn't a good idea for an important public API interface. 
Another solution could be to use own types/commands which can simply be created 
instead of using interfaces of the Collection-API.

Original comment by sven.strohschein@googlemail.com on 12 Sep 2011 at 9:06

GoogleCodeExporter commented 8 years ago
I suppose that this problem can be closed. This problem is successfully solved 
by the rpc.blacklist

Original comment by vtl...@gmail.com on 9 Feb 2013 at 7:48

GoogleCodeExporter commented 8 years ago
Thank you for the hint and suggestion. I would really like to close this issue, 
because declaring concrete Collection classes to the API interfaces isn't a 
nice option to solve this GWT problem.

Could you find any documentation about rpc.blacklist? When I take a look at the 
examples of GWT issue 4438 
(http://code.google.com/p/google-web-toolkit/issues/detail?id=4438), it seems 
that the classes which should be excluded have to get configured explicitly. 
This seems to be unconfortable when every application (which is using 
GWTEventService) needs to declare these classes.

Original comment by sven.strohschein@googlemail.com on 9 Feb 2013 at 10:57

GoogleCodeExporter commented 8 years ago
Some parts of GWT are poorly documented. rpc.blacklist is one of them. 
My performance tuning experience shows usually it is necessary to add this 
configuration in any case. And this is not a problem, cause you gets fully 
control over RPC serialization.

Another argument to close this issue that if you wish to change transport 
(replace RPC with RequestFactory/Autobean - by the way it would be a cool 
feature), the concrete collection implementations cause the problems for you.

Original comment by vtl...@gmail.com on 10 Feb 2013 at 8:58