diff --git a/spring-context/src/main/java/org/springframework/context/aot/AotApplicationContextInitializer.java b/spring-context/src/main/java/org/springframework/context/aot/AotApplicationContextInitializer.java index 74d1721d48..47744cb6f7 100644 --- a/spring-context/src/main/java/org/springframework/context/aot/AotApplicationContextInitializer.java +++ b/spring-context/src/main/java/org/springframework/context/aot/AotApplicationContextInitializer.java @@ -24,6 +24,7 @@ import org.springframework.beans.BeanUtils; import org.springframework.context.ApplicationContextInitializer; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.core.log.LogMessage; +import org.springframework.lang.Nullable; import org.springframework.util.Assert; import org.springframework.util.ClassUtils; @@ -67,14 +68,14 @@ public interface AotApplicationContextInitializer ApplicationContextInitializer instantiateInitializer( - ClassLoader classLoader, String initializerClassName) { + String initializerClassName, @Nullable ClassLoader classLoader) { try { Class initializerClass = ClassUtils.resolveClassName(initializerClassName, classLoader); Assert.isAssignable(ApplicationContextInitializer.class, initializerClass); diff --git a/spring-context/src/main/java/org/springframework/context/aot/ApplicationContextAotInitializer.java b/spring-context/src/main/java/org/springframework/context/aot/ApplicationContextAotInitializer.java deleted file mode 100644 index 3671aadb27..0000000000 --- a/spring-context/src/main/java/org/springframework/context/aot/ApplicationContextAotInitializer.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright 2002-2022 the original author or authors. - * - * Licensed 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 - * - * https://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.springframework.context.aot; - -import org.springframework.context.ApplicationContextInitializer; -import org.springframework.context.ConfigurableApplicationContext; - -/** - * Initializes a {@link ConfigurableApplicationContext} using AOT optimizations. - * - * @author Stephane Nicoll - * @since 6.0 - * @deprecated in favor of {@link AotApplicationContextInitializer} - */ -@Deprecated(since = "6.0", forRemoval = true) -public class ApplicationContextAotInitializer { - - /** - * Initialize the specified application context using the specified - * {@link ApplicationContextInitializer} class names. Each class is - * expected to have a default constructor. - * @param context the context to initialize - * @param initializerClassNames the application context initializer class names - */ - public void initialize(ConfigurableApplicationContext context, String... initializerClassNames) { - AotApplicationContextInitializer.forInitializerClasses(initializerClassNames).initialize(context); - } - -} diff --git a/spring-context/src/test/java/org/springframework/context/aot/AotApplicationContextInitializerTests.java b/spring-context/src/test/java/org/springframework/context/aot/AotApplicationContextInitializerTests.java index 6b9025b5c3..8ae16093fe 100644 --- a/spring-context/src/test/java/org/springframework/context/aot/AotApplicationContextInitializerTests.java +++ b/spring-context/src/test/java/org/springframework/context/aot/AotApplicationContextInitializerTests.java @@ -36,7 +36,7 @@ class AotApplicationContextInitializerTests { void initializeInvokesApplicationContextInitializer() { GenericApplicationContext context = new GenericApplicationContext(); AotApplicationContextInitializer.forInitializerClasses( - TestApplicationContextInitializer.class.getName()) + TestApplicationContextInitializer.class.getName()) .initialize(context); assertThat(context.getBeanDefinitionNames()).containsExactly("test"); } @@ -45,8 +45,8 @@ class AotApplicationContextInitializerTests { void initializeInvokesApplicationContextInitializersInOrder() { GenericApplicationContext context = new GenericApplicationContext(); AotApplicationContextInitializer.forInitializerClasses( - AnotherApplicationContextInitializer.class.getName(), - TestApplicationContextInitializer.class.getName()) + AnotherApplicationContextInitializer.class.getName(), + TestApplicationContextInitializer.class.getName()) .initialize(context); assertThat(context.getBeanDefinitionNames()).containsExactly("another", "test"); } @@ -93,6 +93,7 @@ class AotApplicationContextInitializerTests { static class ConfigurableApplicationContextInitializer implements ApplicationContextInitializer { + @SuppressWarnings("unused") public ConfigurableApplicationContextInitializer(ClassLoader classLoader) { } diff --git a/spring-context/src/test/java/org/springframework/context/aot/ApplicationContextAotInitializerTests.java b/spring-context/src/test/java/org/springframework/context/aot/ApplicationContextAotInitializerTests.java deleted file mode 100644 index af0e2de2f8..0000000000 --- a/spring-context/src/test/java/org/springframework/context/aot/ApplicationContextAotInitializerTests.java +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Copyright 2002-2022 the original author or authors. - * - * Licensed 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 - * - * https://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.springframework.context.aot; - -import org.junit.jupiter.api.Test; - -import org.springframework.beans.factory.support.RootBeanDefinition; -import org.springframework.context.ApplicationContextInitializer; -import org.springframework.context.support.GenericApplicationContext; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException; - -/** - * Tests for {@link ApplicationContextAotInitializer}. - * - * @author Stephane Nicoll - */ -@Deprecated -class ApplicationContextAotInitializerTests { - - private final ApplicationContextAotInitializer initializer = new ApplicationContextAotInitializer(); - - @Test - void initializeInvokeApplicationContextInitializer() { - GenericApplicationContext context = new GenericApplicationContext(); - initializer.initialize(context, TestApplicationContextInitializer.class.getName()); - assertThat(context.getBeanDefinitionNames()).containsExactly("test"); - } - - @Test - void initializeInvokeApplicationContextInitializersInOrder() { - GenericApplicationContext context = new GenericApplicationContext(); - initializer.initialize(context, AnotherApplicationContextInitializer.class.getName(), - TestApplicationContextInitializer.class.getName()); - assertThat(context.getBeanDefinitionNames()).containsExactly("another", "test"); - } - - @Test - void initializeFailWithNonApplicationContextInitializer() { - GenericApplicationContext context = new GenericApplicationContext(); - assertThatIllegalArgumentException() - .isThrownBy(() -> initializer.initialize(context, "java.lang.String")) - .withMessageContaining("not assignable") - .withMessageContaining("ApplicationContextInitializer") - .withMessageContaining("java.lang.String"); - } - - @Test - void initializeFailWithApplicationContextInitializerAndNonDefaultConstructor() { - GenericApplicationContext context = new GenericApplicationContext(); - assertThatIllegalArgumentException() - .isThrownBy(() -> initializer.initialize(context, - ConfigurableApplicationContextInitializer.class.getName())) - .withMessageContaining("Failed to instantiate ApplicationContextInitializer: ") - .withMessageContaining(ConfigurableApplicationContextInitializer.class.getName()); - } - - - static class TestApplicationContextInitializer implements ApplicationContextInitializer { - - @Override - public void initialize(GenericApplicationContext applicationContext) { - applicationContext.registerBeanDefinition("test", new RootBeanDefinition()); - } - - } - - static class AnotherApplicationContextInitializer implements ApplicationContextInitializer { - - @Override - public void initialize(GenericApplicationContext applicationContext) { - applicationContext.registerBeanDefinition("another", new RootBeanDefinition()); - } - - } - - static class ConfigurableApplicationContextInitializer implements ApplicationContextInitializer { - - public ConfigurableApplicationContextInitializer(ClassLoader classLoader) { - } - - @Override - public void initialize(GenericApplicationContext applicationContext) { - - } - } - -}