in provider/fastbin/src/main/java/org/apache/aries/rsa/provider/fastbin/tcp/ServerInvokerImpl.java [104:132]
private MethodData getMethodData(Buffer data) throws IOException, NoSuchMethodException, ClassNotFoundException {
MethodData rc = method_cache.get(data);
if( rc == null ) {
String[] parts = data.utf8().toString().split(",");
String name = parts[0];
Class[] params = new Class[parts.length - 1];
for( int i = 0; i < params.length; i++) {
params[i] = decodeClass(parts[i + 1]);
}
Method method = clazz.getMethod(name, params);
Serialization annotation = method.getAnnotation(Serialization.class);
SerializationStrategy serializationStrategy;
if( annotation!=null ) {
serializationStrategy = serializationStrategies.get(annotation.value());
if( serializationStrategy==null ) {
throw new RuntimeException("Could not find the serialization strategy named: "+annotation.value());
}
} else {
serializationStrategy = ObjectSerializationStrategy.INSTANCE;
}
final InvocationStrategy invocationStrategy = InvocationType.forMethod(method);
rc = new MethodData(invocationStrategy, serializationStrategy, method);
method_cache.put(data, rc);
}
return rc;
}