Java源码示例:org.bson.codecs.configuration.CodecProvider
示例1
@BuildStep
CodecProviderBuildItem collectCodecProviders(CombinedIndexBuildItem indexBuildItem) {
Collection<ClassInfo> codecProviderClasses = indexBuildItem.getIndex()
.getAllKnownImplementors(DotName.createSimple(CodecProvider.class.getName()));
List<String> names = codecProviderClasses.stream().map(ci -> ci.name().toString()).collect(Collectors.toList());
return new CodecProviderBuildItem(names);
}
示例2
private List<CodecProvider> getCodecProviders(List<String> classNames) {
List<CodecProvider> providers = new ArrayList<>();
for (String name : classNames) {
try {
Class<?> clazz = Thread.currentThread().getContextClassLoader().loadClass(name);
Constructor clazzConstructor = clazz.getConstructor();
providers.add((CodecProvider) clazzConstructor.newInstance());
} catch (Exception e) {
LOGGER.warnf(e, "Unable to load the codec provider class %s", name);
}
}
return providers;
}
示例3
@Test
public void testMongoMapper() throws Exception {
List<CodecProvider> providers = MongoMapper.getProviders();
Assert.assertFalse(providers.isEmpty());
int size = providers.size();
// Check for unmodifiable list.
providers.add(new CustomFieldCodecProvider());
MongoMapper.addProvider(new CustomFieldCodecProvider());
providers = MongoMapper.getProviders();
Assert.assertEquals(size + 1, providers.size());
}
示例4
public static List<CodecProvider> getProviders() {
return (ArrayList) providers.clone();
}
示例5
public static void addProvider(CodecProvider provider) {
providers.add(provider);
}
示例6
/**
* Create module from existing provider
*/
public static Module module(CodecProvider provider) {
return module(CodecRegistries.fromProviders(provider));
}