package io.muoncore.spring.discovery;
import io.muoncore.Discovery;
import io.muoncore.config.AutoConfiguration;
import io.muoncore.discovery.DiscoveryFactory;
import io.muoncore.transport.MuonTransport;
import io.muoncore.transport.MuonTransportFactory;
import org.springframework.beans.factory.FactoryBean;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.Properties;
public class MuonDiscoveryFactoryBean implements FactoryBean<Discovery> {
private Class<? extends DiscoveryFactory> type;
private Properties properties;
@Autowired
private AutoConfiguration autoConfiguration;
@Override
public Discovery getObject() throws Exception {
DiscoveryFactory factory = type.newInstance();
factory.setAutoConfiguration(autoConfiguration);
return factory.build(properties);
}
@Override
public Class<?> getObjectType() {
return Discovery.class;
}
@Override
public boolean isSingleton() {
return true;
}
public void setType(Class<? extends DiscoveryFactory> type) {
this.type = type;
}
public void setProperties(Properties properties) {
this.properties = properties;
}
}