/**
* Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.bbg;
import java.net.URI;
import java.util.Properties;
import org.apache.activemq.ActiveMQConnectionFactory;
import org.fudgemsg.FudgeContext;
import com.opengamma.component.ComponentServer;
import com.opengamma.component.rest.RemoteComponentServer;
import com.opengamma.provider.historicaltimeseries.HistoricalTimeSeriesProvider;
import com.opengamma.provider.historicaltimeseries.impl.RemoteHistoricalTimeSeriesProvider;
import com.opengamma.provider.livedata.LiveDataMetaDataProvider;
import com.opengamma.provider.livedata.impl.RemoteLiveDataMetaDataProvider;
import com.opengamma.provider.security.SecurityProvider;
import com.opengamma.provider.security.impl.RemoteSecurityProvider;
import com.opengamma.util.fudgemsg.OpenGammaFudgeContext;
import com.opengamma.util.jms.JmsConnector;
import com.opengamma.util.jms.JmsConnectorFactoryBean;
import com.opengamma.util.test.TestProperties;
/**
* Configuration tools for remote providers.
*/
public class RemoteProviderTestUtils {
/**
* Static instance, that calls the server once to find the URIs.
* Use {@link AbstractRemoteProviderTest} to wrap this correctly.
*/
public static final RemoteProviderTestUtils INSTANCE = new RemoteProviderTestUtils();
private final FudgeContext _fudgeContext;
private final ComponentServer _components;
private final JmsConnector _jmsConnector;
public RemoteProviderTestUtils() {
_fudgeContext = OpenGammaFudgeContext.getInstance();
final Properties props = TestProperties.getTestProperties();
final String baseUrl = new StringBuilder("http://")
// .append("localhost:8090/")
.append(System.getProperty("web.host", props.getProperty("opengamma.provider.host"))).append(':')
.append(System.getProperty("web.port", props.getProperty("opengamma.provider.port")))
.append(System.getProperty("web.path", props.getProperty("opengamma.provider.path")))
.append("jax").toString();
URI componentsUri = URI.create(baseUrl);
RemoteComponentServer remote = new RemoteComponentServer(componentsUri);
_components = remote.getComponentServer();
URI uri = URI.create(props.getProperty("activeMQ.brokerURL"));
ActiveMQConnectionFactory cf = new ActiveMQConnectionFactory(uri);
JmsConnectorFactoryBean factory = new JmsConnectorFactoryBean();
factory.setName(getClass().getSimpleName());
factory.setConnectionFactory(cf);
factory.setClientBrokerUri(uri);
_jmsConnector = factory.getObjectCreating();
}
public FudgeContext getFudgeContext() {
return _fudgeContext;
}
public SecurityProvider getSecurityProviderBloomberg() {
URI uri = _components.getComponentInfo(SecurityProvider.class, "bloomberg").getUri();
return new RemoteSecurityProvider(uri);
}
public HistoricalTimeSeriesProvider getHistoricalTimeSeriesProviderBloomberg() {
URI uri = _components.getComponentInfo(HistoricalTimeSeriesProvider.class, "bloomberg").getUri();
return new RemoteHistoricalTimeSeriesProvider(uri);
}
public LiveDataMetaDataProvider getLiveDataMetaDataProvider(String classifier) {
URI uri = _components.getComponentInfo(LiveDataMetaDataProvider.class, classifier).getUri();
return new RemoteLiveDataMetaDataProvider(uri);
}
public JmsConnector getJmsConnector() {
return _jmsConnector;
}
}