Package com.opengamma.livedata.test

Source Code of com.opengamma.livedata.test.LiveDataClientTestUtils

/**
* Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.livedata.test;

import com.opengamma.livedata.client.DistributedLiveDataClient;
import com.opengamma.livedata.client.JmsLiveDataClient;
import com.opengamma.livedata.entitlement.EntitlementServer;
import com.opengamma.livedata.server.StandardLiveDataServer;
import com.opengamma.livedata.server.SubscriptionRequestReceiver;
import com.opengamma.livedata.server.distribution.FudgeSenderFactory;
import com.opengamma.livedata.server.distribution.JmsSenderFactory;
import com.opengamma.transport.ByteArrayFudgeMessageReceiver;
import com.opengamma.transport.ByteArrayFudgeMessageSender;
import com.opengamma.transport.ByteArrayFudgeRequestSender;
import com.opengamma.transport.DirectInvocationByteArrayMessageSender;
import com.opengamma.transport.FudgeRequestDispatcher;
import com.opengamma.transport.InMemoryByteArrayRequestConduit;
import com.opengamma.util.jms.JmsConnector;
import com.opengamma.util.test.ActiveMQTestUtils;

/**
* Utility methods to get LiveData clients suitable for testing.
*/
public class LiveDataClientTestUtils {
 
  public static DistributedLiveDataClient getInMemoryConduitClient(StandardLiveDataServer server) {
    ByteArrayFudgeRequestSender subscriptionRequestSender = getSubscriptionRequestSender(server);
    ByteArrayFudgeRequestSender entitlementRequestSender = getEntitlementRequestSender(server);
    DistributedLiveDataClient liveDataClient = new DistributedLiveDataClient(subscriptionRequestSender, entitlementRequestSender);
   
    FudgeSenderFactory factory = new FudgeSenderFactory(
        new ByteArrayFudgeMessageSender(
            new DirectInvocationByteArrayMessageSender(
                new ByteArrayFudgeMessageReceiver(liveDataClient))));
    server.setMarketDataSenderFactory(factory);
   
    liveDataClient.setFudgeContext(liveDataClient.getFudgeContext());
   
    return liveDataClient;
  }

  public static JmsLiveDataClient getJmsClient(StandardLiveDataServer server) {
    ByteArrayFudgeRequestSender subscriptionRequestSender = getSubscriptionRequestSender(server);
    ByteArrayFudgeRequestSender entitlementRequestSender = getEntitlementRequestSender(server);
   
    JmsConnector jmsConnector = ActiveMQTestUtils.createTestJmsConnector();
    JmsLiveDataClient liveDataClient = new JmsLiveDataClient(
        subscriptionRequestSender,
        entitlementRequestSender,
        jmsConnector);
   
    JmsSenderFactory factory = new JmsSenderFactory();
    factory.setJmsConnector(jmsConnector);
    server.setMarketDataSenderFactory(factory);
   
    liveDataClient.setFudgeContext(liveDataClient.getFudgeContext());
    liveDataClient.start();
   
    return liveDataClient;
  }
 
  private static ByteArrayFudgeRequestSender getEntitlementRequestSender(StandardLiveDataServer server) {
    ByteArrayFudgeRequestSender entitlementRequestSender = new ByteArrayFudgeRequestSender(
        new InMemoryByteArrayRequestConduit(
            new FudgeRequestDispatcher(
                new EntitlementServer(server.getEntitlementChecker()))));
    return entitlementRequestSender;
  }

  private static ByteArrayFudgeRequestSender getSubscriptionRequestSender(StandardLiveDataServer server) {
    ByteArrayFudgeRequestSender subscriptionRequestSender = new ByteArrayFudgeRequestSender(
        new InMemoryByteArrayRequestConduit(
            new FudgeRequestDispatcher(
                new SubscriptionRequestReceiver(server))));
    return subscriptionRequestSender;
  }

}
TOP

Related Classes of com.opengamma.livedata.test.LiveDataClientTestUtils

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.