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));
}