def handle_request( request )
super
context = @application.create_context(request)
context.request_handler_key = @application.component_request_handler_key
transaction(context.component, context) do
@application.take_values_from_request(request, context)
end
result = nil
context.delete_all
transaction(context.component, context) do
result = @application.invoke_action(request, context)
end
if Response === result then
context.response = result
else
if (Component === result) and (context.component != result) then
result.awake_from_restoration(context)
context.component = result
else
result = context.component.root
end
context.delete_all
transaction(result, context) do
@application.append_to_response(context.response, context)
end
context.response.component = result
end
@application.save_session(context)
context.response
end