/******************************************************************************* * Copyright (c) 2012-2017 Codenvy, S.A. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Codenvy, S.A. - initial API and implementation *******************************************************************************/ package org.eclipse.che.ide.websocket; import com.google.inject.Singleton; /** * Class contains business logic which allows create message bus with necessary parameters or get created message bus. * * @author Dmitry Shnurenko */ @Singleton public class MessageBusProvider { private MessageBus messageBus; private MessageBus machineMessageBus; /** Returns instance of {@link MessageBusImpl}. Method can return null value when message bus hasn't created yet. */ public MessageBus getMessageBus() { return messageBus; } /** Returns instance of {@link MachineMessageBus}. Method can return null value when message bus hasn't created yet. */ public MessageBus getMachineMessageBus() { return machineMessageBus; } /** * Creates new instance of {@link MessageBusImpl} and connects to web socket via special url. The method returns new * instance each time it is called. Message bus is created only one time when we start workspace. * * @return instance of {@link MessageBusImpl} */ public MessageBus createMessageBus() { this.messageBus = new MessageBusImpl(); return messageBus; } /** * Creates new instance of {@link MachineMessageBus} and connects to web socket via special url. The method returns new * instance each time it is called. Message bus is created only one time when we start machine. * * @param webSocketUrl * url which need to connect to web socket * @return instance of {@link MachineMessageBus} */ public MessageBus createMachineMessageBus(String webSocketUrl) { this.machineMessageBus = new MachineMessageBus(webSocketUrl); return machineMessageBus; } }