All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.dubbo.config.spring.reference.ReferenceBeanBuilder Maven / Gradle / Ivy

There is a newer version: 3.3.0-beta.3
Show newest version
/*
 * 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.
 */
package org.apache.dubbo.config.spring.reference;

import org.apache.dubbo.config.ConsumerConfig;
import org.apache.dubbo.config.MethodConfig;
import org.apache.dubbo.config.MonitorConfig;
import org.apache.dubbo.config.RegistryConfig;
import org.apache.dubbo.config.annotation.DubboReference;
import org.apache.dubbo.config.spring.ReferenceBean;

import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 

* Builder for ReferenceBean, used to return ReferenceBean instance in Java-config @Bean method, * equivalent to {@link DubboReference} annotation. *

* *

* It is recommended to use {@link DubboReference} on the @Bean method in the Java-config class. *

* * Step 1: Register ReferenceBean in Java-config class: *
 * @Configuration
 * public class ReferenceConfiguration {
 *
 *     @Bean
 *     public ReferenceBean<HelloService> helloService() {
 *         return new ReferenceBeanBuilder()
 *                 .setGroup("demo")
 *                 .build();
 *     }
 *
 *     @Bean
 *     public ReferenceBean<HelloService> helloService2() {
 *         return new ReferenceBean();
 *     }
 *
 *     @Bean
 *     public ReferenceBean<GenericService> genericHelloService() {
 *         return new ReferenceBeanBuilder()
 *                 .setGroup("demo")
 *                 .setInterface(HelloService.class)
 *                 .build();
 *     }
 *
 * }
 * 
* * Step 2: Inject ReferenceBean by @Autowired *
 * public class FooController {
 *     @Autowired
 *     private HelloService helloService;
 *
 *     @Autowired
 *     private GenericService genericHelloService;
 * }
 * 
* * @see org.apache.dubbo.config.annotation.DubboReference * @see org.apache.dubbo.config.spring.ReferenceBean */ public class ReferenceBeanBuilder { private Map attributes = new HashMap<>(); public ReferenceBean build() { return new ReferenceBean(attributes); } public ReferenceBeanBuilder setServices(String services) { attributes.put(ReferenceAttributes.SERVICES, services); return this; } public ReferenceBeanBuilder setInterface(String interfaceName) { attributes.put(ReferenceAttributes.INTERFACE_NAME, interfaceName); return this; } public ReferenceBeanBuilder setInterface(Class interfaceClass) { attributes.put(ReferenceAttributes.INTERFACE_CLASS, interfaceClass); return this; } public ReferenceBeanBuilder setClient(String client) { attributes.put(ReferenceAttributes.CLIENT, client); return this; } public ReferenceBeanBuilder setUrl(String url) { attributes.put(ReferenceAttributes.URL, url); return this; } public ReferenceBeanBuilder setConsumer(ConsumerConfig consumer) { attributes.put(ReferenceAttributes.CONSUMER, consumer); return this; } public ReferenceBeanBuilder setConsumer(String consumer) { attributes.put(ReferenceAttributes.CONSUMER, consumer); return this; } public ReferenceBeanBuilder setProtocol(String protocol) { attributes.put(ReferenceAttributes.PROTOCOL, protocol); return this; } public ReferenceBeanBuilder setCheck(Boolean check) { attributes.put(ReferenceAttributes.CHECK, check); return this; } public ReferenceBeanBuilder setInit(Boolean init) { attributes.put(ReferenceAttributes.INIT, init); return this; } //@Deprecated public ReferenceBeanBuilder setGeneric(Boolean generic) { attributes.put(ReferenceAttributes.GENERIC, generic); return this; } /** * @param injvm * @deprecated instead, use the parameter scope to judge if it's in jvm, scope=local */ @Deprecated public ReferenceBeanBuilder setInjvm(Boolean injvm) { attributes.put(ReferenceAttributes.INJVM, injvm); return this; } public ReferenceBeanBuilder setListener(String listener) { attributes.put(ReferenceAttributes.LISTENER, listener); return this; } public ReferenceBeanBuilder setLazy(Boolean lazy) { attributes.put(ReferenceAttributes.LAZY, lazy); return this; } public ReferenceBeanBuilder setOnconnect(String onconnect) { attributes.put(ReferenceAttributes.ONCONNECT, onconnect); return this; } public ReferenceBeanBuilder setOndisconnect(String ondisconnect) { attributes.put(ReferenceAttributes.ONDISCONNECT, ondisconnect); return this; } public ReferenceBeanBuilder setReconnect(String reconnect) { attributes.put(ReferenceAttributes.RECONNECT, reconnect); return this; } public ReferenceBeanBuilder setSticky(Boolean sticky) { attributes.put(ReferenceAttributes.STICKY, sticky); return this; } public ReferenceBeanBuilder setVersion(String version) { attributes.put(ReferenceAttributes.VERSION, version); return this; } public ReferenceBeanBuilder setGroup(String group) { attributes.put(ReferenceAttributes.GROUP, group); return this; } public ReferenceBeanBuilder setProvidedBy(String providedBy) { attributes.put(ReferenceAttributes.PROVIDED_BY, providedBy); return this; } public ReferenceBeanBuilder setProviderPort(Integer providerPort) { attributes.put(ReferenceAttributes.PROVIDER_PORT, providerPort); return this; } // public ReferenceBeanBuilder setRouter(String router) { // attributes.put(ReferenceAttributes.ROUTER, router); // return this; // } public ReferenceBeanBuilder setStub(String stub) { attributes.put(ReferenceAttributes.STUB, stub); return this; } public ReferenceBeanBuilder setCluster(String cluster) { attributes.put(ReferenceAttributes.CLUSTER, cluster); return this; } public ReferenceBeanBuilder setProxy(String proxy) { attributes.put(ReferenceAttributes.PROXY, proxy); return this; } public ReferenceBeanBuilder setConnections(Integer connections) { attributes.put(ReferenceAttributes.CONNECTIONS, connections); return this; } public ReferenceBeanBuilder setFilter(String filter) { attributes.put(ReferenceAttributes.FILTER, filter); return this; } public ReferenceBeanBuilder setLayer(String layer) { attributes.put(ReferenceAttributes.LAYER, layer); return this; } // @Deprecated // public ReferenceBeanBuilder setApplication(ApplicationConfig application) { // attributes.put(ReferenceAttributes.APPLICATION, application); // return this; // } // @Deprecated // public ReferenceBeanBuilder setModule(ModuleConfig module) { // attributes.put(ReferenceAttributes.MODULE, module); // return this; // } public ReferenceBeanBuilder setRegistry(String[] registryIds) { attributes.put(ReferenceAttributes.REGISTRY, registryIds); return this; } public ReferenceBeanBuilder setRegistry(RegistryConfig registry) { setRegistries(Arrays.asList(registry)); return this; } public ReferenceBeanBuilder setRegistries(List registries) { attributes.put(ReferenceAttributes.REGISTRIES, registries); return this; } public ReferenceBeanBuilder setMethods(List methods) { attributes.put(ReferenceAttributes.METHODS, methods); return this; } @Deprecated public ReferenceBeanBuilder setMonitor(MonitorConfig monitor) { attributes.put(ReferenceAttributes.MONITOR, monitor); return this; } @Deprecated public ReferenceBeanBuilder setMonitor(String monitor) { attributes.put(ReferenceAttributes.MONITOR, monitor); return this; } public ReferenceBeanBuilder setOwner(String owner) { attributes.put(ReferenceAttributes.OWNER, owner); return this; } public ReferenceBeanBuilder setCallbacks(Integer callbacks) { attributes.put(ReferenceAttributes.CALLBACKS, callbacks); return this; } public ReferenceBeanBuilder setScope(String scope) { attributes.put(ReferenceAttributes.SCOPE, scope); return this; } public ReferenceBeanBuilder setTag(String tag) { attributes.put(ReferenceAttributes.TAG, tag); return this; } public ReferenceBeanBuilder setTimeout(Integer timeout) { attributes.put(ReferenceAttributes.TIMEOUT, timeout); return this; } public ReferenceBeanBuilder setRetries(Integer retries) { attributes.put(ReferenceAttributes.RETRIES, retries); return this; } public ReferenceBeanBuilder setLoadBalance(String loadbalance) { attributes.put(ReferenceAttributes.LOAD_BALANCE, loadbalance); return this; } public ReferenceBeanBuilder setAsync(Boolean async) { attributes.put(ReferenceAttributes.ASYNC, async); return this; } public ReferenceBeanBuilder setActives(Integer actives) { attributes.put(ReferenceAttributes.ACTIVES, actives); return this; } public ReferenceBeanBuilder setSent(Boolean sent) { attributes.put(ReferenceAttributes.SENT, sent); return this; } public ReferenceBeanBuilder setMock(String mock) { attributes.put(ReferenceAttributes.MOCK, mock); return this; } public ReferenceBeanBuilder setMerger(String merger) { attributes.put(ReferenceAttributes.MERGER, merger); return this; } public ReferenceBeanBuilder setCache(String cache) { attributes.put(ReferenceAttributes.CACHE, cache); return this; } public ReferenceBeanBuilder setValidation(String validation) { attributes.put(ReferenceAttributes.VALIDATION, validation); return this; } public ReferenceBeanBuilder setParameters(Map parameters) { attributes.put(ReferenceAttributes.PARAMETERS, parameters); return this; } // public ReferenceBeanBuilder setAuth(Boolean auth) { // attributes.put(ReferenceAttributes.AUTH, auth); // return this; // } // // public ReferenceBeanBuilder setForks(Integer forks) { // attributes.put(ReferenceAttributes.FORKS, forks); // return this; // } // // @Deprecated // public ReferenceBeanBuilder setConfigCenter(ConfigCenterConfig configCenter) { // attributes.put(ReferenceAttributes.CONFIG_CENTER, configCenter); // return this; // } // // @Deprecated // public ReferenceBeanBuilder setMetadataReportConfig(MetadataReportConfig metadataReportConfig) { // attributes.put(ReferenceAttributes.METADATA_REPORT_CONFIG, metadataReportConfig); // return this; // } // // @Deprecated // public ReferenceBeanBuilder setMetrics(MetricsConfig metrics) { // attributes.put(ReferenceAttributes.METRICS, metrics); // return this; // } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy