FastJson2AutoDiscoverable.java

package com.alibaba.fastjson2.support.jaxrs.javax;

import org.glassfish.jersey.internal.spi.AutoDiscoverable;

import javax.annotation.Priority;
import javax.ws.rs.core.Configuration;
import javax.ws.rs.core.FeatureContext;

/**
 * FastJson2AutoDiscoverable
 * ������: com.alibaba.fastjson.support.jaxrs.FastJsonAutoDiscoverable
 *
 * @author ���������
 * @since 2024/10/16
 * @see AutoDiscoverable
 */
@Priority(AutoDiscoverable.DEFAULT_PRIORITY - 1)
public class FastJson2AutoDiscoverable
        implements AutoDiscoverable {
    public static final String FASTJSON_AUTO_DISCOVERABLE = "fastjson.auto.discoverable";
    public static volatile boolean autoDiscover;

    static {
        autoDiscover = Boolean.parseBoolean(
                System.getProperty(FASTJSON_AUTO_DISCOVERABLE, Boolean.TRUE.toString()));
    }

    @Override
    public void configure(final FeatureContext context) {
        final Configuration config = context.getConfiguration();

        // Register FastJson.
        if (!config.isRegistered(FastJson2Feature.class) && autoDiscover) {
            context.register(FastJson2Feature.class);
        }
    }
}