class RestfulExporter<T> extends AbstractExporter<T> {
        private RestServer server;
        private EndpointFactory endpointFactory;

        public RestfulExporter(Provider<T> provider, URL url) {
            super(provider, url);

            endpointFactory = ExtensionLoader.getExtensionLoader(EndpointFactory.class).getExtension(
                    url.getParameter(URLParamType.endpointFactory.getName(), URLParamType.endpointFactory.getValue()));
            server = endpointFactory.createServer(url);
        }

        @Override
        public void unexport() {<FILL_FUNCTION_BODY>}

        @Override
        public void destroy() {
            endpointFactory.safeReleaseResource(server, url);

            LoggerUtil.info("RestfulExporter destory Success: url={}", url);
        }

        @Override
        protected boolean doInit() {
            server.getDeployment().getRegistry().addResourceFactory(new ProviderResource<T>(provider));
            return true;
        }
    }

            server.getDeployment().getRegistry().removeRegistrations(provider.getInterface());

            String protocolKey = MotanFrameworkUtil.getProtocolKey(url);

            @SuppressWarnings("unchecked")
            Exporter<T> exporter = (Exporter<T>) exporterMap.remove(protocolKey);

            if (exporter != null) {
                exporter.destroy();
            }

            LoggerUtil.info("RestfulExporter unexport Success: url={}", url);
        
<methods>public non-sealed void <init>() ,public void destroy() ,public Exporter<T> export(Provider<T>, com.weibo.api.motan.rpc.URL) ,public Map<java.lang.String,Exporter<?>> getExporterMap() ,public Referer<T> refer(Class<T>, com.weibo.api.motan.rpc.URL) ,public Referer<T> refer(Class<T>, com.weibo.api.motan.rpc.URL, com.weibo.api.motan.rpc.URL) <variables>protected ConcurrentHashMap<java.lang.String,Exporter<?>> exporterMap