src/dubboerl.erl (46 lines of code) (raw):

%%------------------------------------------------------------------------------ %% Licensed to the Apache Software Foundation (ASF) under one or more %% contributor license agreements. See the NOTICE file distributed with %% this work for additional information regarding copyright ownership. %% The ASF licenses this file to You under the Apache License, Version 2.0 %% (the "License"); you may not use this file except in compliance with %% the License. You may obtain a copy of the License at %% %% http://www.apache.org/licenses/LICENSE-2.0 %% %% Unless required by applicable law or agreed to in writing, software %% distributed under the License is distributed on an "AS IS" BASIS, %% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. %% See the License for the specific language governing permissions and %% limitations under the License. %%------------------------------------------------------------------------------ -module(dubboerl). -include("dubboerl.hrl"). -include("dubbo.hrl"). %% API -export([init/0, start_consumer/0, start_provider/0]). init() -> ok = start_consumer(), ok = start_provider(), ok. start_consumer() -> ConsumerList = application:get_env(dubboerl, consumer, []), ApplicationName = application:get_env(dubboerl, application, <<"defaultApplication">>), lists:map(fun({Interface, Option}) -> ConsumerInfo = dubbo_config_util:gen_consumer(ApplicationName, Interface, Option), dubbo_reference_config:init_reference(ConsumerInfo), logger:info("consumer refer success ~p", [Interface]) end, ConsumerList), ok. start_provider() -> ProviderList = application:get_env(dubboerl, provider, []), ApplicationName = application:get_env(dubboerl, application, <<"defaultApplication">>), DubboServerPort = application:get_env(dubboerl, port, ?DUBBO_DEFAULT_PORT), lists:map( fun({ImplModuleName, BehaviourModuleName, Interface, Option}) -> MethodList = apply(BehaviourModuleName, get_method_999_list, []), ProviderInfo = dubbo_config_util:gen_provider(ApplicationName, DubboServerPort, Interface, MethodList, ImplModuleName, Option), dubbo_service_config:export(ProviderInfo), logger:info("register provider success ~p ~p", [ImplModuleName, Interface]) end, ProviderList), ok.