class MessageBusResponseStrategy implements IResponseStrategy {

    @Override
    public void sendResponse(IObject environment) throws ResponseException {
        try {
            IObject context = (IObject) environment.getValue(contextFieldName);
            IObject response = (IObject) environment.getValue(responseFieldName);
            Object replyChainId = context.getValue(replyChainFieldName);

            String sResponse = response.serialize();
            response = IOC.resolve(Keys.getOrAdd("info.smart_tools.smartactors.iobject.iobject.IObject"), sResponse);

            MessageBus.send(response, replyChainId);

            context.setValue(responseStrategyFieldName, nullResponseStrategy);
        } catch (ReadValueException | ChangeValueException | InvalidArgumentException | SendingMessageException | SerializeException
                | ResolutionException e) {
            throw new ResponseException(e);
        }
    }

    public  MessageBusResponseStrategy();

}