private JSONProvider createJsonProvider()

in integrations/cxf-jettison/cxf-jettison-jaxrs/src/main/java/org/apache/aries/jax/rs/jaxb/json/activator/JsonProviderPrototypeServiceFactory.java [83:199]


    private JSONProvider<?> createJsonProvider(
        Dictionary<String, ?> properties) {

        PropertyWrapper wrapper = new PropertyWrapper(properties);

        JSONProvider<Object> jsonProvider = new JSONProvider<>();

        _typeConverter.ifPresent(jsonProvider::setTypeConverter);
        _marshallerListener.ifPresent(jsonProvider::setMarshallerListener);
        _unmarshallerListener.ifPresent(jsonProvider::setUnmarshallerListener);
        _schemaHandler.ifPresent(jsonProvider::setSchemaHandler);

        wrapper.applyBoolean(
            "drop.root.element", jsonProvider::setDropRootElement);
        wrapper.applyBoolean(
            "attributes.to.elements",
            jsonProvider::setAttributesToElements);
        wrapper.applyBoolean(
            "convert.types.to.strings",
            jsonProvider::setConvertTypesToStrings);
        wrapper.applyBoolean(
            "drop.collection.wrapper.element",
            jsonProvider::setDropCollectionWrapperElement);
        wrapper.applyBoolean(
            "drop.elements.in.xml.stream",
            jsonProvider::setDropElementsInXmlStream);
        wrapper.applyBoolean(
            "enable.buffering", jsonProvider::setEnableBuffering);
        wrapper.applyBoolean(
            "escape.forward.slashes.always",
            jsonProvider::setEscapeForwardSlashesAlways);
        wrapper.applyBoolean(
            "ignore.empty.array.values",
            jsonProvider::setIgnoreEmptyArrayValues);
        wrapper.applyBoolean(
            "ignore.mixed.content",
            jsonProvider::setIgnoreMixedContent);
        wrapper.applyBoolean(
            "ignore.namespaces", jsonProvider::setIgnoreNamespaces);
        wrapper.applyBoolean(
            "read.xsi.type", jsonProvider::setReadXsiType);
        wrapper.applyBoolean(
            "serialize.as.array",
            jsonProvider::setSerializeAsArray);
        wrapper.applyBoolean(
            "support.unwrapped",
            jsonProvider::setSupportUnwrapped);
        wrapper.applyBoolean(
            "write.null.as.string",
            jsonProvider::setWriteNullAsString);
        wrapper.applyBoolean(
            "marshall.as.jaxb.element",
            jsonProvider::setMarshallAsJaxbElement);
        wrapper.applyBoolean(
            "single.jaxb.context",
            jsonProvider::setSingleJaxbContext);
        wrapper.applyBoolean(
            "skip.jaxb.checks",
            jsonProvider::setSkipJaxbChecks);
        wrapper.applyBoolean(
            "unmarshall.as.jaxb.element",
            jsonProvider::setUnmarshallAsJaxbElement);
        wrapper.applyBoolean(
            "use.single.context.for.packages",
            jsonProvider::setUseSingleContextForPackages);
        wrapper.applyBoolean(
            "validate.before.write",
            jsonProvider::setValidateBeforeWrite);
        wrapper.applyBoolean(
            "validate.input",
            jsonProvider::setValidateInput);
        wrapper.applyBoolean(
            "validate.output",
            jsonProvider::setValidateOutput);
        wrapper.applyBoolean(
            "xml.root.as.jaxb.element",
            jsonProvider::setXmlRootAsJaxbElement);
        wrapper.applyBoolean(
            "validate.output",
            jsonProvider::setValidateOutput);
        wrapper.applyBoolean(
            "validate.output",
            jsonProvider::setValidateOutput);
        wrapper.applyBoolean(
            "xml.type.as.jaxb.element.only",
            jsonProvider::setXmlTypeAsJaxbElementOnly);
        wrapper.applyBoolean(
            "write.xsi.type", jsonProvider::setWriteXsiType);

        wrapper.applyString(
            "array.keys",
            s -> jsonProvider.setArrayKeys(
                Arrays.asList(s.split(","))));
        wrapper.applyString(
            "consume.media.types",
            s -> jsonProvider.setArrayKeys(
                Arrays.asList(s.split(","))));
        wrapper.applyString(
            "convention", jsonProvider::setConvention);
        wrapper.applyString(
            "namespace.separator",
            jsonProvider::setNamespaceSeparator);
        wrapper.applyString(
            "produce.media.types",
            s -> jsonProvider.setProduceMediaTypes(
                Arrays.asList(s.split(","))));
        wrapper.applyString(
            "out.drop.elements",
            s -> jsonProvider.setOutDropElements(
                Arrays.asList(s.split(","))));
        wrapper.applyString(
            "schema.locations",
            s -> jsonProvider.setSchemaLocations(
                Arrays.asList(s.split(","))));

        return jsonProvider;
    }