@Bean
@Import(EquivModule.class)
public class QueryModule {
<<<<<<< HEAD
@Autowired
@Qualifier("remoteSiteContentResolver")
private CanonicalisingFetcher localOrRemoteFetcher;
@Autowired
private LookupEntryStore mongoStore;
@Autowired
private KnownTypeContentResolver mongoResolver;
@Autowired
@Qualifier(value = "cassandra")
private ContentResolver cassandraResolver;
@Autowired
private TopicContentUriLister topicContentUriLister;
@Autowired
@Qualifier("contentUpdater")
private EquivalenceUpdater equivUpdater;
//
@Value("${applications.enabled}")
private String applicationsEnabled;
@Bean
public KnownTypeQueryExecutor queryExecutor() {
KnownTypeQueryExecutor queryExecutor = new LookupResolvingQueryExecutor(new SimpleKnownTypeContentResolver(cassandraResolver),
new FilterScheduleOnlyKnownTypeContentResolver(mongoResolver),
mongoStore);
queryExecutor = new UriFetchingQueryExecutor(localOrRemoteFetcher, queryExecutor, equivUpdater, ImmutableSet.of(FACEBOOK));
queryExecutor = new CurieResolvingQueryExecutor(queryExecutor);
queryExecutor = new MergeOnOutputQueryExecutor(queryExecutor);
return Boolean.parseBoolean(applicationsEnabled) ? new ApplicationConfigurationQueryExecutor(queryExecutor) : queryExecutor;
}
public TopicContentLister mergingTopicContentLister() {
KnownTypeContentResolver contentResolver = new FilterScheduleOnlyKnownTypeContentResolver(mongoResolver);
final KnownTypeQueryExecutor queryExecutor = new MergeOnOutputQueryExecutor(
new LookupResolvingQueryExecutor(new SimpleKnownTypeContentResolver(cassandraResolver), contentResolver, mongoStore));
return new TopicContentLister() {
@Override
public Iterable contentForTopic(Long topicId, ContentQuery contentQuery) {
Map> resolved = queryExecutor.executeUriQuery(urisFor(topicId, contentQuery), contentQuery);
return Iterables.filter(Iterables.concat(resolved.values()), Content.class);
}
private Iterable urisFor(Long topicId, ContentQuery contentQuery) {
return topicContentUriLister.contentUrisForTopic(topicId, contentQuery);
}
};
}
=======
private @Autowired @Qualifier("remoteSiteContentResolver") CanonicalisingFetcher localOrRemoteFetcher;
private @Autowired DatabasedMongo mongo;
private @Autowired CassandraContentStore cassandra;
private @Autowired @Qualifier("contentUpdater") EquivalenceUpdater equivUpdater;
private @Value("${applications.enabled}") String applicationsEnabled;
private @Value("${atlas.search.host}") String searchHost;
private @Value("${cassandra.enabled}") boolean cassandraEnbaled;
@Bean KnownTypeQueryExecutor queryExecutor() {
KnownTypeContentResolver mongoContentResolver = new FilterScheduleOnlyKnownTypeContentResolver(new MongoContentResolver(mongo));
KnownTypeContentResolver cassandraContentResolver = new CassandraKnownTypeContentResolver(cassandra);
KnownTypeQueryExecutor queryExecutor = new LookupResolvingQueryExecutor(cassandraContentResolver, mongoContentResolver, new MongoLookupEntryStore(mongo), cassandraEnbaled);
queryExecutor = new UriFetchingQueryExecutor(localOrRemoteFetcher, queryExecutor, equivUpdater, ImmutableSet.of(FACEBOOK));
queryExecutor = new CurieResolvingQueryExecutor(queryExecutor);
queryExecutor = new MergeOnOutputQueryExecutor(queryExecutor);
return Boolean.parseBoolean(applicationsEnabled) ? new ApplicationConfigurationQueryExecutor(queryExecutor) : queryExecutor;
}
//
// @Bean @Lazy SearchResolver searchResolver() {
// System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" + applicationsEnabled);
// if (! Strings.isNullOrEmpty(searchHost)) {
// System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" + searchHost);
// ContentSearcher titleSearcher = new RemoteFuzzySearcher(searchHost);
// return new ContentResolvingSearcher(titleSearcher, queryExecutor());
// }
//
// return new DummySearcher();
// }
>>>>>>> 32fdce050a1bbeed6073ac63af16fc4c0aca24b1
} |