Skip to content

Commit 3699930

Browse files
committed
Add Javadocs. Fix checkstyle.
1 parent c5dbed5 commit 3699930

22 files changed

+126
-11
lines changed

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/interfaceclients/AbstractInterfaceClientsFactoryBean.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,10 @@
2424
import org.springframework.util.Assert;
2525

2626
/**
27+
* Factory bean for autoconfigured Interface Clients.
28+
*
2729
* @author Olga Maciaszek-Sharma
30+
* @since 3.4.0
2831
*/
2932
public abstract class AbstractInterfaceClientsFactoryBean implements FactoryBean<Object>, ApplicationContextAware {
3033

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/interfaceclients/AbstractInterfaceClientsImportRegistrar.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,18 +47,21 @@
4747
import org.springframework.util.ObjectUtils;
4848

4949
/**
50-
* Registers bean definitions for {@code HttpClient}
51-
* and {@code RSocketClient}-annotated Interface Clients
52-
* in order to automatically instantiate client beans based on those interfaces.
50+
* Registers bean definitions for {@code HttpClient} and {@code RSocketClient}-annotated
51+
* Interface Clients in order to automatically instantiate client beans based on those
52+
* interfaces.
5353
*
5454
* @author Josh Long
5555
* @author Olga Maciaszek-Sharma
56-
* @since 3.4.1
56+
* @since 3.4.0
5757
*/
5858
// TODO: Handle AOT
5959
public abstract class AbstractInterfaceClientsImportRegistrar
6060
implements ImportBeanDefinitionRegistrar, EnvironmentAware, ResourceLoaderAware {
6161

62+
/**
63+
* Default qualifier for user-provided beans used for creating Interface Clients.
64+
*/
6265
public static final String DEFAULT_INTERFACE_CLIENTS_ID = "interface-clients";
6366

6467
private static final String INTERFACE_CLIENT_SUFFIX = "InterfaceClient";

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/interfaceclients/QualifiedBeanProvider.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,18 +27,21 @@
2727
import org.springframework.beans.factory.annotation.Qualifier;
2828
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
2929

30-
import static org.springframework.boot.autoconfigure.interfaceclients.AbstractInterfaceClientsImportRegistrar.DEFAULT_INTERFACE_CLIENTS_ID;
31-
3230
/**
33-
* Utility class containing methods that allow searching for beans
34-
* with a specific qualifier, falling back to a default qualifier.
31+
* Utility class containing methods that allow searching for beans with a specific
32+
* qualifier, falling back to the
33+
* {@link AbstractInterfaceClientsImportRegistrar#DEFAULT_INTERFACE_CLIENTS_ID} qualifier.
3534
*
3635
* @author Josh Long
3736
* @author Olga Maciaszek-Sharma
38-
* @since 3.4.1
37+
* @since 3.4.0
3938
*/
4039
public final class QualifiedBeanProvider {
4140

41+
private QualifiedBeanProvider() {
42+
throw new UnsupportedOperationException("Do not instantiate utility class");
43+
}
44+
4245
private static final Log logger = LogFactory.getLog(QualifiedBeanProvider.class);
4346

4447
public static <T> T qualifiedBean(ConfigurableListableBeanFactory beanFactory, Class<T> type, String clientId) {
@@ -50,7 +53,8 @@ public static <T> T qualifiedBean(ConfigurableListableBeanFactory beanFactory, C
5053
if (logger.isDebugEnabled()) {
5154
logger.debug("No qualified bean of type " + type + " found for " + clientId);
5255
}
53-
Map<String, T> matchingDefaultBeans = getQualifiedBeansOfType(beanFactory, type, DEFAULT_INTERFACE_CLIENTS_ID);
56+
Map<String, T> matchingDefaultBeans = getQualifiedBeansOfType(beanFactory, type,
57+
org.springframework.boot.autoconfigure.interfaceclients.AbstractInterfaceClientsImportRegistrar.DEFAULT_INTERFACE_CLIENTS_ID);
5458
if (matchingDefaultBeans.size() > 1) {
5559
throw new NoUniqueBeanDefinitionException(type, matchingDefaultBeans.keySet());
5660
}

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/interfaceclients/http/AbstractHttpInterfaceClientsFactoryBean.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,21 @@
2020
import org.apache.commons.logging.LogFactory;
2121

2222
import org.springframework.boot.autoconfigure.interfaceclients.AbstractInterfaceClientsFactoryBean;
23+
import org.springframework.boot.autoconfigure.interfaceclients.AbstractInterfaceClientsImportRegistrar;
2324
import org.springframework.boot.autoconfigure.interfaceclients.QualifiedBeanProvider;
2425
import org.springframework.web.service.invoker.HttpExchangeAdapter;
2526
import org.springframework.web.service.invoker.HttpServiceProxyFactory;
2627

2728
/**
29+
* HTTP-specific {@link AbstractInterfaceClientsFactoryBean} implementation.
30+
* <p>
31+
* Will attempt to use an {@link HttpServiceProxyFactory} provided by the user to create
32+
* an HTTP Interface Client. Beans qualified with a specific client id or
33+
* {@link AbstractInterfaceClientsImportRegistrar#DEFAULT_INTERFACE_CLIENTS_ID}) will be
34+
* used. If no user-provided bean is found, one with a default implementation is created.
35+
*
2836
* @author Olga Maciaszek-Sharma
37+
* @since 3.4.0
2938
*/
3039
public abstract class AbstractHttpInterfaceClientsFactoryBean extends AbstractInterfaceClientsFactoryBean {
3140

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/interfaceclients/http/HttpClient.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,14 @@
2222
import java.lang.annotation.RetentionPolicy;
2323
import java.lang.annotation.Target;
2424

25+
import org.springframework.web.service.annotation.HttpExchange;
26+
2527
/**
28+
* Annotation to be placed on interfaces containing {@link HttpExchange}-annotated methods
29+
* in order for a client based on that interface to be autoconfigured.
30+
*
2631
* @author Olga Maciaszek-Sharma
32+
* @since 3.4.0
2733
*/
2834
// TODO: Consider moving over to Framework.
2935
@Target(ElementType.TYPE)

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/interfaceclients/http/HttpInterfaceClientsAutoConfiguration.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package org.springframework.boot.autoconfigure.interfaceclients.http;
1818

1919
import org.springframework.boot.autoconfigure.AutoConfiguration;
20+
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
2021
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
2122
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
2223
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
@@ -37,7 +38,13 @@
3738
import org.springframework.web.service.invoker.HttpServiceProxyFactory;
3839

3940
/**
41+
* {@link EnableAutoConfiguration Auto-configuration} for HTTP Interface Clients.
42+
* <p>
43+
* This will result in creation of Interface Client beans from
44+
* {@link HttpClient}-annotated interfaces.
45+
*
4046
* @author Olga Maciaszek-Sharma
47+
* @since 3.4.0
4148
*/
4249
@AutoConfiguration(after = { RestTemplateAutoConfiguration.class, RestClientAutoConfiguration.class,
4350
WebClientAutoConfiguration.class })

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/interfaceclients/http/HttpInterfaceClientsBaseProperties.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,10 @@
1717
package org.springframework.boot.autoconfigure.interfaceclients.http;
1818

1919
/**
20+
* Properties for HTTP Interface Clients.
21+
*
2022
* @author Olga Maciaszek-Sharma
23+
* @since 3.4.0
2124
*/
2225
public class HttpInterfaceClientsBaseProperties {
2326

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/interfaceclients/http/HttpInterfaceClientsProperties.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,14 @@
2222
import org.springframework.boot.context.properties.ConfigurationProperties;
2323

2424
/**
25-
* Use per-client properties or default if no client-specific found. Based on <a
25+
* Configuration properties for HTTP Interface Clients.
26+
* <p>
27+
* Allows using per-client properties or default if no client-specific found. Based on <a
2628
* href=https://github.com/spring-cloud/spring-cloud-commons/blob/main/spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/LoadBalancerClientsProperties.java>LoadBalancerClientsProperties.java</a>
2729
*
30+
* @author Spencer Gibb
2831
* @author Olga Maciaszek-Sharma
32+
* @since 3.4.0
2933
*/
3034
@ConfigurationProperties("spring.interfaceclients.http")
3135
public class HttpInterfaceClientsProperties extends HttpInterfaceClientsBaseProperties {

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/interfaceclients/http/RestClientInterfaceClientsFactoryBean.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,24 @@
1919
import org.apache.commons.logging.Log;
2020
import org.apache.commons.logging.LogFactory;
2121

22+
import org.springframework.boot.autoconfigure.interfaceclients.AbstractInterfaceClientsImportRegistrar;
2223
import org.springframework.boot.autoconfigure.interfaceclients.QualifiedBeanProvider;
2324
import org.springframework.web.client.RestClient;
2425
import org.springframework.web.client.support.RestClientAdapter;
2526
import org.springframework.web.service.invoker.HttpExchangeAdapter;
2627

2728
/**
29+
* {@link RestClient}-backed {@link AbstractHttpInterfaceClientsFactoryBean}
30+
* implementation.
31+
* <p>
32+
* Will attempt to use a {@link RestClient} or {@link RestClient.Builder} bean provided by
33+
* the user to create a {@link RestClientAdapter}. Beans qualified with a specific client
34+
* id or {@link AbstractInterfaceClientsImportRegistrar#DEFAULT_INTERFACE_CLIENTS_ID})
35+
* will be used. If no user-provided bean is found, one with a default implementation is
36+
* created.
37+
*
2838
* @author Olga Maciaszek-Sharma
39+
* @since 3.4.0
2940
*/
3041
public class RestClientInterfaceClientsFactoryBean extends AbstractHttpInterfaceClientsFactoryBean {
3142

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/interfaceclients/http/RestClientInterfaceClientsImportRegistrar.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,14 @@
1919
import java.lang.annotation.Annotation;
2020

2121
import org.springframework.boot.autoconfigure.interfaceclients.AbstractInterfaceClientsImportRegistrar;
22+
import org.springframework.web.client.RestClient;
2223

2324
/**
25+
* {@link RestClient}-backed {@link AbstractInterfaceClientsImportRegistrar}
26+
* implementation.
27+
*
2428
* @author Olga Maciaszek-Sharma
29+
* @since 3.4.0
2530
*/
2631
public class RestClientInterfaceClientsImportRegistrar extends AbstractInterfaceClientsImportRegistrar {
2732

0 commit comments

Comments
 (0)