I'm looking at what we could do for TUSCANY-1559 which is about unnecessary pass-by-value copies causing failures when arguments aren't serializable. The problem is on line 260 of JavaComponentContextProvider where it tries to determine if the pass-by-value invoker is required, but it doesn't take into account whats at the other end of the invocation chain.
How about changing this so its not the Java implementation types responsibility to handle pass-by-value and move it out into core, having a separate RuntimeWireProcessor and Interceptor for pass-by-value support, and don't do copies if the source and target interfaces use different databindings? ...ant
