"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/condition/ConditionalOnClass.java" between
spring-boot-2.7.3.tar.gz and spring-boot-2.7.4.tar.gz

About: Spring Boot helps to create Spring-powered, production-grade applications and services.

ConditionalOnClass.java  (spring-boot-2.7.3):ConditionalOnClass.java  (spring-boot-2.7.4)
/* /*
* Copyright 2012-2019 the original author or authors. * Copyright 2012-2022 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
* You may obtain a copy of the License at * You may obtain a copy of the License at
* *
* https://www.apache.org/licenses/LICENSE-2.0 * https://www.apache.org/licenses/LICENSE-2.0
* *
* Unless required by applicable law or agreed to in writing, software * Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, * distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
skipping to change at line 31 skipping to change at line 31
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target; import java.lang.annotation.Target;
import org.springframework.context.annotation.Conditional; import org.springframework.context.annotation.Conditional;
/** /**
* {@link Conditional @Conditional} that only matches when the specified classes are on * {@link Conditional @Conditional} that only matches when the specified classes are on
* the classpath. * the classpath.
* <p> * <p>
* A {@link #value()} can be safely specified on {@code @Configuration} classes * A {@code Class} {@link #value() value} can be safely specified on
as the * {@code @Configuration} classes as the annotation metadata is parsed by using
* annotation metadata is parsed by using ASM before the class is loaded. Extra ASM before
care is * the class is loaded. If a class reference cannot be used then a {@link #name(
* required when placed on {@code @Bean} methods, consider isolating the conditi ) name}
on in a * {@code String} attribute can be used.
* separate {@code Configuration} class, in particular if the return type of the * <p>
method * <b>Note:</b> Extra care must be taken when using {@code @ConditionalOnClass}
* matches the {@link #value target of the condition}. on
* {@code @Bean} methods where typically the return type is the target of the co
ndition.
* Before the condition on the method applies, the JVM will have loaded the clas
s and
* potentially processed method references which will fail if the class is not p
resent. To
* handle this scenario, a separate {@code @Configuration} class should be used
to isolate
* the condition. For example: <pre class="code">
* &#064;AutoConfiguration
* public class MyAutoConfiguration {
*
* &#64;Configuration(proxyBeanMethods = false)
* &#64;ConditionalOnClass(SomeService.class)
* public static class SomeServiceConfiguration {
*
* &#64;Bean
* &#64;ConditionalOnMissingBean
* public SomeService someService() {
* return new SomeService();
* }
*
* }
*
* }</pre>
* *
* @author Phillip Webb * @author Phillip Webb
* @since 1.0.0 * @since 1.0.0
*/ */
@Target({ ElementType.TYPE, ElementType.METHOD }) @Target({ ElementType.TYPE, ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME) @Retention(RetentionPolicy.RUNTIME)
@Documented @Documented
@Conditional(OnClassCondition.class) @Conditional(OnClassCondition.class)
public @interface ConditionalOnClass { public @interface ConditionalOnClass {
 End of changes. 2 change blocks. 
10 lines changed or deleted 35 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)