Browse Source
This code removes code deprecated in 1.4 with the exception of code that requires an update to Spring Framework 5. Closes gh-6971pull/6979/head
87 changed files with 31 additions and 4514 deletions
@ -1,77 +0,0 @@
@@ -1,77 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2015 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 |
||||
* |
||||
* 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.springframework.boot.actuate.system; |
||||
|
||||
import java.io.File; |
||||
|
||||
import org.springframework.boot.context.event.ApplicationEnvironmentPreparedEvent; |
||||
import org.springframework.boot.context.event.ApplicationPreparedEvent; |
||||
import org.springframework.context.ApplicationListener; |
||||
import org.springframework.core.env.Environment; |
||||
|
||||
/** |
||||
* An {@link ApplicationListener} that saves application PID into file. This application |
||||
* listener will be triggered exactly once per JVM, and the file name can be overridden at |
||||
* runtime with a System property or environment variable named "PIDFILE" (or "pidfile") |
||||
* or using a {@code spring.pid.file} property in the Spring {@link Environment}. |
||||
* <p> |
||||
* If PID file can not be created no exception is reported. This behavior can be changed |
||||
* by assigning {@code true} to System property or environment variable named |
||||
* {@code PID_FAIL_ON_WRITE_ERROR} (or "pid_fail_on_write_error") or to |
||||
* {@code spring.pid.fail-on-write-error} property in the Spring {@link Environment}. |
||||
* <p> |
||||
* Note: access to the Spring {@link Environment} is only possible when the |
||||
* {@link #setTriggerEventType(Class) triggerEventType} is set to |
||||
* {@link ApplicationEnvironmentPreparedEvent} or {@link ApplicationPreparedEvent}. |
||||
* |
||||
* @author Jakub Kubrynski |
||||
* @author Dave Syer |
||||
* @author Phillip Webb |
||||
* @author Tomasz Przybyla |
||||
* @since 1.2.0 |
||||
* @deprecated as of 1.4 in favor of |
||||
* {@link org.springframework.boot.system.ApplicationPidFileWriter} |
||||
*/ |
||||
@Deprecated |
||||
public class ApplicationPidFileWriter |
||||
extends org.springframework.boot.system.ApplicationPidFileWriter { |
||||
|
||||
/** |
||||
* Create a new {@link ApplicationPidFileWriter} instance using the filename |
||||
* 'application.pid'. |
||||
*/ |
||||
public ApplicationPidFileWriter() { |
||||
super(); |
||||
} |
||||
|
||||
/** |
||||
* Create a new {@link ApplicationPidFileWriter} instance with a specified filename. |
||||
* @param filename the name of file containing pid |
||||
*/ |
||||
public ApplicationPidFileWriter(String filename) { |
||||
super(filename); |
||||
} |
||||
|
||||
/** |
||||
* Create a new {@link ApplicationPidFileWriter} instance with a specified file. |
||||
* @param file the file containing pid |
||||
*/ |
||||
public ApplicationPidFileWriter(File file) { |
||||
super(file); |
||||
} |
||||
|
||||
} |
||||
@ -1,65 +0,0 @@
@@ -1,65 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2015 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 |
||||
* |
||||
* 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.springframework.boot.actuate.system; |
||||
|
||||
import java.io.File; |
||||
|
||||
import org.springframework.context.ApplicationListener; |
||||
|
||||
/** |
||||
* An {@link ApplicationListener} that saves embedded server port and management port into |
||||
* file. This application listener will be triggered whenever the servlet container |
||||
* starts, and the file name can be overridden at runtime with a System property or |
||||
* environment variable named "PORTFILE" or "portfile". |
||||
* |
||||
* @author David Liu |
||||
* @author Phillip Webb |
||||
* @author Andy Wilkinson |
||||
* @since 1.2.0 |
||||
* @deprecated as of 1.4 in favor of |
||||
* {@link org.springframework.boot.system.EmbeddedServerPortFileWriter} |
||||
*/ |
||||
@Deprecated |
||||
public class EmbeddedServerPortFileWriter |
||||
extends org.springframework.boot.system.EmbeddedServerPortFileWriter { |
||||
|
||||
/** |
||||
* Create a new {@link EmbeddedServerPortFileWriter} instance using the filename |
||||
* 'application.port'. |
||||
*/ |
||||
public EmbeddedServerPortFileWriter() { |
||||
super(); |
||||
} |
||||
|
||||
/** |
||||
* Create a new {@link EmbeddedServerPortFileWriter} instance with a specified |
||||
* filename. |
||||
* @param filename the name of file containing port |
||||
*/ |
||||
public EmbeddedServerPortFileWriter(String filename) { |
||||
super(filename); |
||||
} |
||||
|
||||
/** |
||||
* Create a new {@link EmbeddedServerPortFileWriter} instance with a specified file. |
||||
* @param file the file containing port |
||||
*/ |
||||
public EmbeddedServerPortFileWriter(File file) { |
||||
super(file); |
||||
} |
||||
|
||||
} |
||||
@ -1,20 +0,0 @@
@@ -1,20 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2015 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 |
||||
* |
||||
* 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. |
||||
*/ |
||||
|
||||
/** |
||||
* General actuator system support classes. |
||||
*/ |
||||
package org.springframework.boot.actuate.system; |
||||
@ -1,60 +0,0 @@
@@ -1,60 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2016 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 |
||||
* |
||||
* 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.springframework.boot.actuate.endpoint; |
||||
|
||||
import java.util.Collections; |
||||
import java.util.Map; |
||||
|
||||
import org.junit.Test; |
||||
|
||||
import org.springframework.boot.actuate.info.Info; |
||||
import org.springframework.boot.actuate.info.InfoContributor; |
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat; |
||||
|
||||
/** |
||||
* Tests for {@link InfoEndpoint}. |
||||
* |
||||
* @author Dave Syer |
||||
*/ |
||||
@Deprecated |
||||
public class InfoEndpointCompatibilityTests { |
||||
|
||||
@Test |
||||
public void invoke() throws Exception { |
||||
Map<String, Object> actual = getEndpointBean().invoke(); |
||||
assertThat(actual.get("key1")).isEqualTo("value1"); |
||||
assertThat(actual.get("foo")).isEqualTo("bar"); |
||||
} |
||||
|
||||
private InfoEndpoint getEndpointBean() { |
||||
return new InfoEndpoint(Collections.<String, Object>singletonMap("foo", "bar"), |
||||
infoContributor()); |
||||
} |
||||
|
||||
private InfoContributor infoContributor() { |
||||
return new InfoContributor() { |
||||
|
||||
@Override |
||||
public void contribute(Info.Builder builder) { |
||||
builder.withDetail("key1", "value1"); |
||||
} |
||||
|
||||
}; |
||||
} |
||||
|
||||
} |
||||
@ -1,54 +0,0 @@
@@ -1,54 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2016 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 |
||||
* |
||||
* 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.springframework.boot.autoconfigure.test; |
||||
|
||||
import java.lang.annotation.Documented; |
||||
import java.lang.annotation.ElementType; |
||||
import java.lang.annotation.Inherited; |
||||
import java.lang.annotation.Retention; |
||||
import java.lang.annotation.RetentionPolicy; |
||||
import java.lang.annotation.Target; |
||||
|
||||
import org.springframework.core.annotation.AliasFor; |
||||
|
||||
/** |
||||
* Import and apply the selected auto-configuration classes for testing purposes. Applies |
||||
* the same ordering rules as {@code @EnableAutoConfiguration} but restricts the |
||||
* auto-configuration classes to the specified set, rather than consulting |
||||
* {@code spring.factories}. |
||||
* |
||||
* @author Phillip Webb |
||||
* @since 1.3.0 |
||||
* @deprecated as of 1.4 in favor of |
||||
* {@link org.springframework.boot.autoconfigure.ImportAutoConfiguration} |
||||
*/ |
||||
@Target(ElementType.TYPE) |
||||
@Retention(RetentionPolicy.RUNTIME) |
||||
@Documented |
||||
@Inherited |
||||
@org.springframework.boot.autoconfigure.ImportAutoConfiguration({}) |
||||
@Deprecated |
||||
public @interface ImportAutoConfiguration { |
||||
|
||||
/** |
||||
* The auto-configuration classes that should be imported. |
||||
* @return the classes to import
|
||||
*/ |
||||
@AliasFor(annotation = org.springframework.boot.autoconfigure.ImportAutoConfiguration.class, attribute = "value") |
||||
Class<?>[] value(); |
||||
|
||||
} |
||||
@ -1,21 +0,0 @@
@@ -1,21 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2016 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 |
||||
* |
||||
* 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. |
||||
*/ |
||||
|
||||
/** |
||||
* Test utilities related to auto-configuration. |
||||
* @deprecated as of 1.4 in favor of the {@code spring-boot-test-autoconfigure} module |
||||
*/ |
||||
package org.springframework.boot.autoconfigure.test; |
||||
@ -1,37 +0,0 @@
@@ -1,37 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2016 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 |
||||
* |
||||
* 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.springframework.boot.test; |
||||
|
||||
import org.springframework.boot.context.config.ConfigFileApplicationListener; |
||||
import org.springframework.context.ApplicationContextInitializer; |
||||
import org.springframework.test.context.ContextConfiguration; |
||||
|
||||
/** |
||||
* {@link ApplicationContextInitializer} that can be used with the |
||||
* {@link ContextConfiguration#initializers()} to trigger loading of |
||||
* {@literal application.properties}. |
||||
* |
||||
* @author Phillip Webb |
||||
* @see ConfigFileApplicationListener |
||||
* @deprecated as of 1.4 in favor of |
||||
* {@link org.springframework.boot.test.context.ConfigFileApplicationContextInitializer} |
||||
*/ |
||||
@Deprecated |
||||
public class ConfigFileApplicationContextInitializer extends |
||||
org.springframework.boot.test.context.ConfigFileApplicationContextInitializer { |
||||
|
||||
} |
||||
@ -1,73 +0,0 @@
@@ -1,73 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2016 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 |
||||
* |
||||
* 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.springframework.boot.test; |
||||
|
||||
import org.springframework.context.ApplicationContext; |
||||
import org.springframework.context.ConfigurableApplicationContext; |
||||
import org.springframework.core.env.ConfigurableEnvironment; |
||||
import org.springframework.core.env.Environment; |
||||
|
||||
/** |
||||
* Test utilities for setting environment values. |
||||
* |
||||
* @author Dave Syer |
||||
* @author Stephane Nicoll |
||||
* @deprecated as of 1.4 in favor of |
||||
* {@link org.springframework.boot.test.util.EnvironmentTestUtils} |
||||
*/ |
||||
@Deprecated |
||||
public abstract class EnvironmentTestUtils { |
||||
|
||||
/** |
||||
* Add additional (high priority) values to an {@link Environment} owned by an |
||||
* {@link ApplicationContext}. Name-value pairs can be specified with colon (":") or |
||||
* equals ("=") separators. |
||||
* @param context the context with an environment to modify |
||||
* @param pairs the name:value pairs |
||||
*/ |
||||
public static void addEnvironment(ConfigurableApplicationContext context, |
||||
String... pairs) { |
||||
org.springframework.boot.test.util.EnvironmentTestUtils.addEnvironment(context, |
||||
pairs); |
||||
} |
||||
|
||||
/** |
||||
* Add additional (high priority) values to an {@link Environment}. Name-value pairs |
||||
* can be specified with colon (":") or equals ("=") separators. |
||||
* @param environment the environment to modify |
||||
* @param pairs the name:value pairs |
||||
*/ |
||||
public static void addEnvironment(ConfigurableEnvironment environment, |
||||
String... pairs) { |
||||
org.springframework.boot.test.util.EnvironmentTestUtils |
||||
.addEnvironment(environment, pairs); |
||||
} |
||||
|
||||
/** |
||||
* Add additional (high priority) values to an {@link Environment}. Name-value pairs |
||||
* can be specified with colon (":") or equals ("=") separators. |
||||
* @param environment the environment to modify |
||||
* @param name the property source name |
||||
* @param pairs the name:value pairs |
||||
*/ |
||||
public static void addEnvironment(String name, ConfigurableEnvironment environment, |
||||
String... pairs) { |
||||
org.springframework.boot.test.util.EnvironmentTestUtils.addEnvironment(name, |
||||
environment, pairs); |
||||
} |
||||
|
||||
} |
||||
@ -1,66 +0,0 @@
@@ -1,66 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2016 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 |
||||
* |
||||
* 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.springframework.boot.test; |
||||
|
||||
import java.lang.annotation.Documented; |
||||
import java.lang.annotation.ElementType; |
||||
import java.lang.annotation.Inherited; |
||||
import java.lang.annotation.Retention; |
||||
import java.lang.annotation.RetentionPolicy; |
||||
import java.lang.annotation.Target; |
||||
|
||||
import org.springframework.boot.test.context.SpringBootTest; |
||||
import org.springframework.core.env.Environment; |
||||
import org.springframework.test.context.TestExecutionListeners; |
||||
import org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener; |
||||
import org.springframework.test.context.support.DependencyInjectionTestExecutionListener; |
||||
import org.springframework.test.context.support.DirtiesContextTestExecutionListener; |
||||
import org.springframework.test.context.transaction.TransactionalTestExecutionListener; |
||||
|
||||
/** |
||||
* Test class annotation signifying that the tests are "integration tests" and therefore |
||||
* require full startup in the same way as a production application. Normally used in |
||||
* conjunction with {@code @SpringApplicationConfiguration}. |
||||
* <p> |
||||
* If your test also uses {@code @WebAppConfiguration} consider using the |
||||
* {@link WebIntegrationTest} instead. |
||||
* |
||||
* @author Dave Syer |
||||
* @see WebIntegrationTest |
||||
* @deprecated as of 1.4 in favor of {@link SpringBootTest} |
||||
*/ |
||||
@Documented |
||||
@Inherited |
||||
@Retention(RetentionPolicy.RUNTIME) |
||||
@Target(ElementType.TYPE) |
||||
// Leave out the ServletTestExecutionListener because it only deals with Mock* servlet
|
||||
// stuff. A real embedded application will not need the mocks.
|
||||
@TestExecutionListeners(listeners = { IntegrationTestPropertiesListener.class, |
||||
DependencyInjectionTestExecutionListener.class, |
||||
DirtiesContextTestExecutionListener.class, |
||||
TransactionalTestExecutionListener.class, SqlScriptsTestExecutionListener.class }) |
||||
@Deprecated |
||||
public @interface IntegrationTest { |
||||
|
||||
/** |
||||
* Properties in form {@literal key=value} that should be added to the Spring |
||||
* {@link Environment} before the test runs. |
||||
* @return the environment properties |
||||
*/ |
||||
String[] value() default {}; |
||||
|
||||
} |
||||
@ -1,70 +0,0 @@
@@ -1,70 +0,0 @@
|
||||
/* |
||||
* Copyright 2013-2016 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 |
||||
* |
||||
* 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.springframework.boot.test; |
||||
|
||||
import org.springframework.core.Ordered; |
||||
import org.springframework.core.annotation.AnnotatedElementUtils; |
||||
import org.springframework.core.annotation.AnnotationAttributes; |
||||
import org.springframework.test.context.MergedContextConfiguration; |
||||
import org.springframework.test.context.TestContext; |
||||
import org.springframework.test.context.support.AbstractTestExecutionListener; |
||||
import org.springframework.test.util.ReflectionTestUtils; |
||||
|
||||
/** |
||||
* Manipulate the TestContext to merge properties from {@code @IntegrationTest}. |
||||
* |
||||
* @author Dave Syer |
||||
* @author Phillip Webb |
||||
* @since 1.2.0 |
||||
* @deprecated as of 1.4 as no longer used by {@code @IntegrationTest}. |
||||
*/ |
||||
@Deprecated |
||||
public class IntegrationTestPropertiesListener extends AbstractTestExecutionListener { |
||||
|
||||
@Override |
||||
public void prepareTestInstance(TestContext testContext) throws Exception { |
||||
Class<?> testClass = testContext.getTestClass(); |
||||
AnnotationAttributes annotationAttributes = AnnotatedElementUtils |
||||
.getMergedAnnotationAttributes(testClass, |
||||
IntegrationTest.class.getName()); |
||||
if (annotationAttributes != null) { |
||||
addPropertySourceProperties(testContext, |
||||
annotationAttributes.getStringArray("value")); |
||||
} |
||||
} |
||||
|
||||
private void addPropertySourceProperties(TestContext testContext, |
||||
String[] properties) { |
||||
try { |
||||
MergedContextConfiguration configuration = (MergedContextConfiguration) ReflectionTestUtils |
||||
.getField(testContext, "mergedContextConfiguration"); |
||||
new MergedContextConfigurationProperties(configuration).add(properties); |
||||
} |
||||
catch (RuntimeException ex) { |
||||
throw ex; |
||||
} |
||||
catch (Exception ex) { |
||||
throw new IllegalStateException(ex); |
||||
} |
||||
} |
||||
|
||||
@Override |
||||
public int getOrder() { |
||||
return Ordered.HIGHEST_PRECEDENCE; |
||||
} |
||||
|
||||
} |
||||
@ -1,62 +0,0 @@
@@ -1,62 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2016 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 |
||||
* |
||||
* 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.springframework.boot.test; |
||||
|
||||
import java.util.Arrays; |
||||
import java.util.LinkedHashSet; |
||||
import java.util.Set; |
||||
|
||||
import org.springframework.test.context.MergedContextConfiguration; |
||||
import org.springframework.test.util.ReflectionTestUtils; |
||||
|
||||
/** |
||||
* Provides access to {@link MergedContextConfiguration} properties. |
||||
* |
||||
* @author Phillip Webb |
||||
* @deprecated as of 1.4 along with {@link IntegrationTestPropertiesListener} |
||||
*/ |
||||
@Deprecated |
||||
class MergedContextConfigurationProperties { |
||||
|
||||
private final MergedContextConfiguration configuration; |
||||
|
||||
MergedContextConfigurationProperties(MergedContextConfiguration configuration) { |
||||
this.configuration = configuration; |
||||
} |
||||
|
||||
public void add(String[] properties, String... additional) { |
||||
Set<String> merged = new LinkedHashSet<String>( |
||||
(Arrays.asList(this.configuration.getPropertySourceProperties()))); |
||||
merged.addAll(Arrays.asList(properties)); |
||||
merged.addAll(Arrays.asList(additional)); |
||||
addIntegrationTestProperty(merged); |
||||
ReflectionTestUtils.setField(this.configuration, "propertySourceProperties", |
||||
merged.toArray(new String[merged.size()])); |
||||
} |
||||
|
||||
/** |
||||
* Add an "IntegrationTest" property to ensure that there is something to |
||||
* differentiate regular tests and {@code @IntegrationTest} tests. Without this |
||||
* property a cached context could be returned that hadn't started the embedded |
||||
* servlet container. |
||||
* @param propertySourceProperties the property source properties |
||||
*/ |
||||
private void addIntegrationTestProperty(Set<String> propertySourceProperties) { |
||||
propertySourceProperties.add(WebIntegrationTest.class.getName() + "=true"); |
||||
} |
||||
|
||||
} |
||||
@ -1,29 +0,0 @@
@@ -1,29 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2016 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 |
||||
* |
||||
* 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.springframework.boot.test; |
||||
|
||||
/** |
||||
* JUnit {@code @Rule} to capture output from System.out and System.err. |
||||
* |
||||
* @author Phillip Webb |
||||
* @author Andy Wilkinson |
||||
* @deprecated as of 1.4 in favor of |
||||
* {@link org.springframework.boot.test.rule.OutputCapture} |
||||
*/ |
||||
@Deprecated |
||||
public class OutputCapture extends org.springframework.boot.test.rule.OutputCapture { |
||||
} |
||||
@ -1,111 +0,0 @@
@@ -1,111 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2016 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 |
||||
* |
||||
* 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.springframework.boot.test; |
||||
|
||||
import java.lang.annotation.Documented; |
||||
import java.lang.annotation.ElementType; |
||||
import java.lang.annotation.Inherited; |
||||
import java.lang.annotation.Retention; |
||||
import java.lang.annotation.RetentionPolicy; |
||||
import java.lang.annotation.Target; |
||||
|
||||
import org.springframework.boot.test.context.SpringBootContextLoader; |
||||
import org.springframework.boot.test.context.SpringBootTest; |
||||
import org.springframework.context.ApplicationContextInitializer; |
||||
import org.springframework.context.ConfigurableApplicationContext; |
||||
import org.springframework.core.annotation.AliasFor; |
||||
import org.springframework.test.context.ContextConfiguration; |
||||
|
||||
/** |
||||
* Class-level annotation that is used to determine how to load and configure an |
||||
* {@code ApplicationContext} for integration tests. |
||||
* <p> |
||||
* Similar to the standard {@link ContextConfiguration @ContextConfiguration} but uses |
||||
* Spring Boot's {@link SpringApplicationContextLoader}. |
||||
* |
||||
* @author Dave Syer |
||||
* @author Sam Brannen |
||||
* @see SpringBootContextLoader |
||||
* @see ContextConfiguration |
||||
* @deprecated as of 1.4 in favor of {@link SpringBootTest} or direct use of |
||||
* {@link SpringBootContextLoader}. |
||||
*/ |
||||
@ContextConfiguration(loader = SpringApplicationContextLoader.class) |
||||
@Documented |
||||
@Inherited |
||||
@Retention(RetentionPolicy.RUNTIME) |
||||
@Target(ElementType.TYPE) |
||||
@Deprecated |
||||
public @interface SpringApplicationConfiguration { |
||||
|
||||
/** |
||||
* The context configuration classes. |
||||
* @see ContextConfiguration#classes() |
||||
* @return the context configuration classes |
||||
*/ |
||||
@AliasFor("classes") |
||||
Class<?>[] value() default {}; |
||||
|
||||
/** |
||||
* The context configuration locations. |
||||
* @see ContextConfiguration#locations() |
||||
* @return the context configuration locations |
||||
*/ |
||||
@AliasFor(annotation = ContextConfiguration.class, attribute = "locations") |
||||
String[] locations() default {}; |
||||
|
||||
/** |
||||
* The context configuration classes. |
||||
* @see ContextConfiguration#classes() |
||||
* @return the context configuration classes |
||||
*/ |
||||
@AliasFor("value") |
||||
Class<?>[] classes() default {}; |
||||
|
||||
/** |
||||
* The context configuration initializers. |
||||
* @see ContextConfiguration#initializers() |
||||
* @return the context configuration initializers |
||||
*/ |
||||
@AliasFor(annotation = ContextConfiguration.class, attribute = "initializers") |
||||
Class<? extends ApplicationContextInitializer<? extends ConfigurableApplicationContext>>[] initializers() default {}; |
||||
|
||||
/** |
||||
* Should context locations be inherited. |
||||
* @see ContextConfiguration#inheritLocations() |
||||
* @return {@code true} if context locations should be inherited |
||||
*/ |
||||
@AliasFor(annotation = ContextConfiguration.class, attribute = "inheritLocations") |
||||
boolean inheritLocations() default true; |
||||
|
||||
/** |
||||
* Should initializers be inherited. |
||||
* @see ContextConfiguration#inheritInitializers() |
||||
* @return {@code true} if context initializers should be inherited |
||||
*/ |
||||
@AliasFor(annotation = ContextConfiguration.class, attribute = "inheritInitializers") |
||||
boolean inheritInitializers() default true; |
||||
|
||||
/** |
||||
* The name of the context hierarchy level. |
||||
* @see ContextConfiguration#name() |
||||
* @return the name of the context hierarchy level |
||||
*/ |
||||
@AliasFor(annotation = ContextConfiguration.class, attribute = "name") |
||||
String name() default ""; |
||||
|
||||
} |
||||
@ -1,291 +0,0 @@
@@ -1,291 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2016 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 |
||||
* |
||||
* 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.springframework.boot.test; |
||||
|
||||
import java.lang.annotation.Annotation; |
||||
import java.util.ArrayList; |
||||
import java.util.Arrays; |
||||
import java.util.Collections; |
||||
import java.util.LinkedHashMap; |
||||
import java.util.LinkedHashSet; |
||||
import java.util.List; |
||||
import java.util.Map; |
||||
import java.util.Set; |
||||
|
||||
import org.springframework.beans.BeanUtils; |
||||
import org.springframework.boot.SpringApplication; |
||||
import org.springframework.boot.test.context.SpringBootContextLoader; |
||||
import org.springframework.boot.test.context.SpringBootTest; |
||||
import org.springframework.boot.web.support.ServletContextApplicationContextInitializer; |
||||
import org.springframework.context.ApplicationContext; |
||||
import org.springframework.context.ApplicationContextInitializer; |
||||
import org.springframework.context.ConfigurableApplicationContext; |
||||
import org.springframework.core.SpringVersion; |
||||
import org.springframework.core.annotation.AnnotationUtils; |
||||
import org.springframework.core.env.ConfigurableEnvironment; |
||||
import org.springframework.core.env.MapPropertySource; |
||||
import org.springframework.core.env.StandardEnvironment; |
||||
import org.springframework.mock.web.MockServletContext; |
||||
import org.springframework.test.context.ContextConfigurationAttributes; |
||||
import org.springframework.test.context.ContextLoader; |
||||
import org.springframework.test.context.MergedContextConfiguration; |
||||
import org.springframework.test.context.support.AbstractContextLoader; |
||||
import org.springframework.test.context.support.AnnotationConfigContextLoaderUtils; |
||||
import org.springframework.test.context.support.TestPropertySourceUtils; |
||||
import org.springframework.test.context.web.WebAppConfiguration; |
||||
import org.springframework.test.context.web.WebMergedContextConfiguration; |
||||
import org.springframework.util.Assert; |
||||
import org.springframework.util.ObjectUtils; |
||||
import org.springframework.util.StringUtils; |
||||
import org.springframework.web.context.support.GenericWebApplicationContext; |
||||
|
||||
/** |
||||
* A {@link ContextLoader} that can be used to test Spring Boot applications (those that |
||||
* normally startup using {@link SpringApplication}). Can be used to test non-web features |
||||
* (like a repository layer) or start a fully-configured embedded servlet container. |
||||
* <p> |
||||
* Use {@code @WebIntegrationTest} (or {@code @IntegrationTest} with |
||||
* {@code @WebAppConfiguration}) to indicate that you want to use a real servlet container |
||||
* or {@code @WebAppConfiguration} alone to use a {@link MockServletContext}. |
||||
* <p> |
||||
* If {@code @ActiveProfiles} are provided in the test class they will be used to create |
||||
* the application context. |
||||
* |
||||
* @author Dave Syer |
||||
* @author Phillip Webb |
||||
* @author Andy Wilkinson |
||||
* @see org.springframework.boot.test.context.SpringBootTest |
||||
* @see org.springframework.boot.test.IntegrationTest |
||||
* @see org.springframework.boot.test.WebIntegrationTest |
||||
* @deprecated as of 1.4 in favor of {@link SpringBootTest @SpringBootTest} |
||||
* {@link SpringBootContextLoader} can also be considered if absolutely necessary. |
||||
*/ |
||||
@Deprecated |
||||
public class SpringApplicationContextLoader extends AbstractContextLoader { |
||||
|
||||
@Override |
||||
public ApplicationContext loadContext(final MergedContextConfiguration config) |
||||
throws Exception { |
||||
assertValidAnnotations(config.getTestClass()); |
||||
SpringApplication application = getSpringApplication(); |
||||
application.setMainApplicationClass(config.getTestClass()); |
||||
application.setSources(getSources(config)); |
||||
ConfigurableEnvironment environment = new StandardEnvironment(); |
||||
if (!ObjectUtils.isEmpty(config.getActiveProfiles())) { |
||||
setActiveProfiles(environment, config.getActiveProfiles()); |
||||
} |
||||
Map<String, Object> properties = getEnvironmentProperties(config); |
||||
addProperties(environment, properties); |
||||
application.setEnvironment(environment); |
||||
List<ApplicationContextInitializer<?>> initializers = getInitializers(config, |
||||
application); |
||||
if (config instanceof WebMergedContextConfiguration) { |
||||
new WebConfigurer().configure(config, application, initializers); |
||||
} |
||||
else { |
||||
application.setWebEnvironment(false); |
||||
} |
||||
application.setInitializers(initializers); |
||||
ConfigurableApplicationContext applicationContext = application.run(); |
||||
return applicationContext; |
||||
} |
||||
|
||||
private void assertValidAnnotations(Class<?> testClass) { |
||||
boolean hasWebAppConfiguration = AnnotationUtils.findAnnotation(testClass, |
||||
WebAppConfiguration.class) != null; |
||||
boolean hasWebIntegrationTest = AnnotationUtils.findAnnotation(testClass, |
||||
WebIntegrationTest.class) != null; |
||||
if (hasWebAppConfiguration && hasWebIntegrationTest) { |
||||
throw new IllegalStateException("@WebIntegrationTest and " |
||||
+ "@WebAppConfiguration cannot be used together"); |
||||
} |
||||
} |
||||
|
||||
/** |
||||
* Builds new {@link org.springframework.boot.SpringApplication} instance. You can |
||||
* override this method to add custom behavior |
||||
* @return {@link org.springframework.boot.SpringApplication} instance |
||||
*/ |
||||
protected SpringApplication getSpringApplication() { |
||||
return new SpringApplication(); |
||||
} |
||||
|
||||
private Set<Object> getSources(MergedContextConfiguration mergedConfig) { |
||||
Set<Object> sources = new LinkedHashSet<Object>(); |
||||
sources.addAll(Arrays.asList(mergedConfig.getClasses())); |
||||
sources.addAll(Arrays.asList(mergedConfig.getLocations())); |
||||
Assert.state(!sources.isEmpty(), "No configuration classes " |
||||
+ "or locations found in @SpringApplicationConfiguration. " |
||||
+ "For default configuration detection to work you need " |
||||
+ "Spring 4.0.3 or better (found " + SpringVersion.getVersion() + ")."); |
||||
return sources; |
||||
} |
||||
|
||||
private void setActiveProfiles(ConfigurableEnvironment environment, |
||||
String[] profiles) { |
||||
EnvironmentTestUtils.addEnvironment(environment, "spring.profiles.active=" |
||||
+ StringUtils.arrayToCommaDelimitedString(profiles)); |
||||
} |
||||
|
||||
protected Map<String, Object> getEnvironmentProperties( |
||||
MergedContextConfiguration config) { |
||||
Map<String, Object> properties = new LinkedHashMap<String, Object>(); |
||||
// JMX bean names will clash if the same bean is used in multiple contexts
|
||||
disableJmx(properties); |
||||
properties.putAll(TestPropertySourceUtils |
||||
.convertInlinedPropertiesToMap(config.getPropertySourceProperties())); |
||||
if (!TestAnnotations.isIntegrationTest(config)) { |
||||
properties.putAll(getDefaultEnvironmentProperties()); |
||||
} |
||||
return properties; |
||||
} |
||||
|
||||
private void disableJmx(Map<String, Object> properties) { |
||||
properties.put("spring.jmx.enabled", "false"); |
||||
} |
||||
|
||||
private Map<String, String> getDefaultEnvironmentProperties() { |
||||
return Collections.singletonMap("server.port", "-1"); |
||||
} |
||||
|
||||
private void addProperties(ConfigurableEnvironment environment, |
||||
Map<String, Object> properties) { |
||||
// @IntegrationTest properties go before external configuration and after system
|
||||
environment.getPropertySources().addAfter( |
||||
StandardEnvironment.SYSTEM_ENVIRONMENT_PROPERTY_SOURCE_NAME, |
||||
new MapPropertySource("integrationTest", properties)); |
||||
} |
||||
|
||||
private List<ApplicationContextInitializer<?>> getInitializers( |
||||
MergedContextConfiguration mergedConfig, SpringApplication application) { |
||||
List<ApplicationContextInitializer<?>> initializers = new ArrayList<ApplicationContextInitializer<?>>(); |
||||
initializers.add(new PropertySourceLocationsInitializer( |
||||
mergedConfig.getPropertySourceLocations())); |
||||
initializers.addAll(application.getInitializers()); |
||||
for (Class<? extends ApplicationContextInitializer<?>> initializerClass : mergedConfig |
||||
.getContextInitializerClasses()) { |
||||
initializers.add(BeanUtils.instantiate(initializerClass)); |
||||
} |
||||
return initializers; |
||||
} |
||||
|
||||
@Override |
||||
public void processContextConfiguration( |
||||
ContextConfigurationAttributes configAttributes) { |
||||
super.processContextConfiguration(configAttributes); |
||||
if (!configAttributes.hasResources()) { |
||||
Class<?>[] defaultConfigClasses = detectDefaultConfigurationClasses( |
||||
configAttributes.getDeclaringClass()); |
||||
configAttributes.setClasses(defaultConfigClasses); |
||||
} |
||||
} |
||||
|
||||
/** |
||||
* Detect the default configuration classes for the supplied test class. By default |
||||
* simply delegates to |
||||
* {@link AnnotationConfigContextLoaderUtils#detectDefaultConfigurationClasses} . |
||||
* @param declaringClass the test class that declared {@code @ContextConfiguration} |
||||
* @return an array of default configuration classes, potentially empty but never |
||||
* {@code null} |
||||
* @see AnnotationConfigContextLoaderUtils |
||||
*/ |
||||
protected Class<?>[] detectDefaultConfigurationClasses(Class<?> declaringClass) { |
||||
return AnnotationConfigContextLoaderUtils |
||||
.detectDefaultConfigurationClasses(declaringClass); |
||||
} |
||||
|
||||
@Override |
||||
public ApplicationContext loadContext(String... locations) throws Exception { |
||||
throw new UnsupportedOperationException("SpringApplicationContextLoader " |
||||
+ "does not support the loadContext(String...) method"); |
||||
} |
||||
|
||||
@Override |
||||
protected String[] getResourceSuffixes() { |
||||
return new String[] { "-context.xml", "Context.groovy" }; |
||||
} |
||||
|
||||
@Override |
||||
protected String getResourceSuffix() { |
||||
throw new IllegalStateException(); |
||||
} |
||||
|
||||
/** |
||||
* Inner class to configure {@link WebMergedContextConfiguration}. |
||||
*/ |
||||
private static class WebConfigurer { |
||||
|
||||
private static final Class<GenericWebApplicationContext> WEB_CONTEXT_CLASS = GenericWebApplicationContext.class; |
||||
|
||||
void configure(MergedContextConfiguration configuration, |
||||
SpringApplication application, |
||||
List<ApplicationContextInitializer<?>> initializers) { |
||||
if (!TestAnnotations.isIntegrationTest(configuration)) { |
||||
WebMergedContextConfiguration webConfiguration = (WebMergedContextConfiguration) configuration; |
||||
addMockServletContext(initializers, webConfiguration); |
||||
application.setApplicationContextClass(WEB_CONTEXT_CLASS); |
||||
} |
||||
} |
||||
|
||||
private void addMockServletContext( |
||||
List<ApplicationContextInitializer<?>> initializers, |
||||
WebMergedContextConfiguration webConfiguration) { |
||||
SpringBootMockServletContext servletContext = new SpringBootMockServletContext( |
||||
webConfiguration.getResourceBasePath()); |
||||
initializers.add(0, new ServletContextApplicationContextInitializer( |
||||
servletContext, true)); |
||||
} |
||||
|
||||
} |
||||
|
||||
/** |
||||
* {@link ApplicationContextInitializer} to setup test property source locations. |
||||
*/ |
||||
private static class PropertySourceLocationsInitializer |
||||
implements ApplicationContextInitializer<ConfigurableApplicationContext> { |
||||
|
||||
private final String[] propertySourceLocations; |
||||
|
||||
PropertySourceLocationsInitializer(String[] propertySourceLocations) { |
||||
this.propertySourceLocations = propertySourceLocations; |
||||
} |
||||
|
||||
@Override |
||||
public void initialize(ConfigurableApplicationContext applicationContext) { |
||||
TestPropertySourceUtils.addPropertiesFilesToEnvironment(applicationContext, |
||||
this.propertySourceLocations); |
||||
} |
||||
|
||||
} |
||||
|
||||
private static class TestAnnotations { |
||||
|
||||
public static boolean isIntegrationTest( |
||||
MergedContextConfiguration configuration) { |
||||
return (hasAnnotation(configuration, IntegrationTest.class) |
||||
|| hasAnnotation(configuration, WebIntegrationTest.class)); |
||||
} |
||||
|
||||
private static boolean hasAnnotation(MergedContextConfiguration configuration, |
||||
Class<? extends Annotation> annotation) { |
||||
return (AnnotationUtils.findAnnotation(configuration.getTestClass(), |
||||
annotation) != null); |
||||
} |
||||
|
||||
} |
||||
|
||||
} |
||||
@ -1,44 +0,0 @@
@@ -1,44 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2016 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 |
||||
* |
||||
* 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.springframework.boot.test; |
||||
|
||||
import org.springframework.core.io.ResourceLoader; |
||||
import org.springframework.mock.web.MockServletContext; |
||||
|
||||
/** |
||||
* {@link MockServletContext} implementation for Spring Boot. Respects well-known Spring |
||||
* Boot resource locations and uses an empty directory for "/" if no locations can be |
||||
* found. |
||||
* |
||||
* @author Phillip Webb |
||||
* @deprecated as of 1.4 in favor of |
||||
* {@link org.springframework.boot.test.mock.web.SpringBootMockServletContext} |
||||
*/ |
||||
@Deprecated |
||||
public class SpringBootMockServletContext |
||||
extends org.springframework.boot.test.mock.web.SpringBootMockServletContext { |
||||
|
||||
public SpringBootMockServletContext(String resourceBasePath) { |
||||
super(resourceBasePath); |
||||
} |
||||
|
||||
public SpringBootMockServletContext(String resourceBasePath, |
||||
ResourceLoader resourceLoader) { |
||||
super(resourceBasePath, resourceLoader); |
||||
} |
||||
|
||||
} |
||||
@ -1,149 +0,0 @@
@@ -1,149 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2016 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 |
||||
* |
||||
* 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.springframework.boot.test; |
||||
|
||||
import java.io.IOException; |
||||
import java.net.URI; |
||||
import java.util.Arrays; |
||||
import java.util.Collections; |
||||
import java.util.HashSet; |
||||
import java.util.List; |
||||
import java.util.Set; |
||||
|
||||
import org.apache.http.client.config.CookieSpecs; |
||||
import org.apache.http.client.config.RequestConfig; |
||||
import org.apache.http.client.config.RequestConfig.Builder; |
||||
import org.apache.http.client.protocol.HttpClientContext; |
||||
import org.apache.http.protocol.HttpContext; |
||||
|
||||
import org.springframework.http.HttpMethod; |
||||
import org.springframework.http.client.ClientHttpRequestInterceptor; |
||||
import org.springframework.http.client.ClientHttpResponse; |
||||
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; |
||||
import org.springframework.http.client.InterceptingClientHttpRequestFactory; |
||||
import org.springframework.http.client.support.BasicAuthorizationInterceptor; |
||||
import org.springframework.util.ClassUtils; |
||||
import org.springframework.web.client.DefaultResponseErrorHandler; |
||||
import org.springframework.web.client.RestTemplate; |
||||
|
||||
/** |
||||
* Convenient subclass of {@link RestTemplate} that is suitable for integration tests. |
||||
* They are fault tolerant, and optionally can carry Basic authentication headers. If |
||||
* Apache Http Client 4.3.2 or better is available (recommended) it will be used as the |
||||
* client, and by default configured to ignore cookies and redirects. |
||||
* |
||||
* @author Dave Syer |
||||
* @author Phillip Webb |
||||
* @deprecated as of 1.4 in favor of |
||||
* {@link org.springframework.boot.test.web.client.TestRestTemplate} |
||||
*/ |
||||
@Deprecated |
||||
public class TestRestTemplate extends RestTemplate { |
||||
|
||||
/** |
||||
* Create a new {@link TestRestTemplate} instance. |
||||
* @param httpClientOptions client options to use if the Apache HTTP Client is used |
||||
*/ |
||||
public TestRestTemplate(HttpClientOption... httpClientOptions) { |
||||
this(null, null, httpClientOptions); |
||||
} |
||||
|
||||
/** |
||||
* Create a new {@link TestRestTemplate} instance with the specified credentials. |
||||
* @param username the username to use (or {@code null}) |
||||
* @param password the password (or {@code null}) |
||||
* @param httpClientOptions client options to use if the Apache HTTP Client is used |
||||
*/ |
||||
public TestRestTemplate(String username, String password, |
||||
HttpClientOption... httpClientOptions) { |
||||
if (ClassUtils.isPresent("org.apache.http.client.config.RequestConfig", null)) { |
||||
setRequestFactory( |
||||
new CustomHttpComponentsClientHttpRequestFactory(httpClientOptions)); |
||||
} |
||||
addAuthentication(username, password); |
||||
setErrorHandler(new DefaultResponseErrorHandler() { |
||||
@Override |
||||
public void handleError(ClientHttpResponse response) throws IOException { |
||||
} |
||||
}); |
||||
|
||||
} |
||||
|
||||
private void addAuthentication(String username, String password) { |
||||
if (username == null) { |
||||
return; |
||||
} |
||||
List<ClientHttpRequestInterceptor> interceptors = Collections |
||||
.<ClientHttpRequestInterceptor>singletonList( |
||||
new BasicAuthorizationInterceptor(username, password)); |
||||
setRequestFactory(new InterceptingClientHttpRequestFactory(getRequestFactory(), |
||||
interceptors)); |
||||
} |
||||
|
||||
/** |
||||
* Options used to customize the Apache Http Client if it is used. |
||||
*/ |
||||
public enum HttpClientOption { |
||||
|
||||
/** |
||||
* Enable cookies. |
||||
*/ |
||||
ENABLE_COOKIES, |
||||
|
||||
/** |
||||
* Enable redirects. |
||||
*/ |
||||
ENABLE_REDIRECTS |
||||
|
||||
} |
||||
|
||||
/** |
||||
* {@link HttpComponentsClientHttpRequestFactory} to apply customizations. |
||||
*/ |
||||
protected static class CustomHttpComponentsClientHttpRequestFactory |
||||
extends HttpComponentsClientHttpRequestFactory { |
||||
|
||||
private final String cookieSpec; |
||||
|
||||
private final boolean enableRedirects; |
||||
|
||||
public CustomHttpComponentsClientHttpRequestFactory( |
||||
HttpClientOption[] httpClientOptions) { |
||||
Set<HttpClientOption> options = new HashSet<TestRestTemplate.HttpClientOption>( |
||||
Arrays.asList(httpClientOptions)); |
||||
this.cookieSpec = (options.contains(HttpClientOption.ENABLE_COOKIES) |
||||
? CookieSpecs.STANDARD : CookieSpecs.IGNORE_COOKIES); |
||||
this.enableRedirects = options.contains(HttpClientOption.ENABLE_REDIRECTS); |
||||
} |
||||
|
||||
@Override |
||||
protected HttpContext createHttpContext(HttpMethod httpMethod, URI uri) { |
||||
HttpClientContext context = HttpClientContext.create(); |
||||
context.setRequestConfig(getRequestConfig()); |
||||
return context; |
||||
} |
||||
|
||||
protected RequestConfig getRequestConfig() { |
||||
Builder builder = RequestConfig.custom().setCookieSpec(this.cookieSpec) |
||||
.setAuthenticationEnabled(false) |
||||
.setRedirectsEnabled(this.enableRedirects); |
||||
return builder.build(); |
||||
} |
||||
|
||||
} |
||||
|
||||
} |
||||
@ -1,65 +0,0 @@
@@ -1,65 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2016 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 |
||||
* |
||||
* 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.springframework.boot.test; |
||||
|
||||
import org.springframework.core.annotation.AnnotationUtils; |
||||
import org.springframework.test.context.ContextLoader; |
||||
import org.springframework.test.context.MergedContextConfiguration; |
||||
import org.springframework.test.context.TestContextBootstrapper; |
||||
import org.springframework.test.context.support.DefaultTestContextBootstrapper; |
||||
import org.springframework.test.context.web.WebDelegatingSmartContextLoader; |
||||
import org.springframework.test.context.web.WebMergedContextConfiguration; |
||||
|
||||
/** |
||||
* {@link TestContextBootstrapper} for Spring Boot web integration tests. |
||||
* |
||||
* @author Phillip Webb |
||||
* @since 1.2.1 |
||||
* @deprecated as of 1.4 along with {@link WebIntegrationTest} |
||||
*/ |
||||
@Deprecated |
||||
class WebAppIntegrationTestContextBootstrapper extends DefaultTestContextBootstrapper { |
||||
|
||||
@Override |
||||
protected Class<? extends ContextLoader> getDefaultContextLoaderClass( |
||||
Class<?> testClass) { |
||||
if (AnnotationUtils.findAnnotation(testClass, WebIntegrationTest.class) != null) { |
||||
return WebDelegatingSmartContextLoader.class; |
||||
} |
||||
return super.getDefaultContextLoaderClass(testClass); |
||||
} |
||||
|
||||
@Override |
||||
protected MergedContextConfiguration processMergedContextConfiguration( |
||||
MergedContextConfiguration mergedConfig) { |
||||
WebIntegrationTest annotation = AnnotationUtils |
||||
.findAnnotation(mergedConfig.getTestClass(), WebIntegrationTest.class); |
||||
if (annotation != null) { |
||||
mergedConfig = new WebMergedContextConfiguration(mergedConfig, null); |
||||
MergedContextConfigurationProperties properties = new MergedContextConfigurationProperties( |
||||
mergedConfig); |
||||
if (annotation.randomPort()) { |
||||
properties.add(annotation.value(), "server.port:0"); |
||||
} |
||||
else { |
||||
properties.add(annotation.value()); |
||||
} |
||||
} |
||||
return mergedConfig; |
||||
} |
||||
|
||||
} |
||||
@ -1,70 +0,0 @@
@@ -1,70 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2016 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 |
||||
* |
||||
* 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.springframework.boot.test; |
||||
|
||||
import java.lang.annotation.Documented; |
||||
import java.lang.annotation.ElementType; |
||||
import java.lang.annotation.Inherited; |
||||
import java.lang.annotation.Retention; |
||||
import java.lang.annotation.RetentionPolicy; |
||||
import java.lang.annotation.Target; |
||||
|
||||
import org.springframework.boot.context.embedded.LocalServerPort; |
||||
import org.springframework.core.env.Environment; |
||||
import org.springframework.test.context.BootstrapWith; |
||||
|
||||
/** |
||||
* Test class annotation signifying that the tests are "web integration tests" and |
||||
* therefore require full startup in the same way as a production application (listening |
||||
* on normal ports). Normally used in conjunction with |
||||
* {@code @SpringApplicationConfiguration}, |
||||
* <p> |
||||
* This annotation can be used as an alternative to {@code @IntegrationTest} and |
||||
* {@code @WebAppConfiguration}. |
||||
* |
||||
* @author Phillip Webb |
||||
* @since 1.2.1 |
||||
* @see IntegrationTest |
||||
* @deprecated as of 1.4 in favor of |
||||
* {@link org.springframework.boot.test.context.SpringBootTest} with |
||||
* {@code webEnvironment=RANDOM_PORT} or {@code webEnvironment=DEFINED_PORT}. |
||||
*/ |
||||
@Documented |
||||
@Inherited |
||||
@Retention(RetentionPolicy.RUNTIME) |
||||
@Target(ElementType.TYPE) |
||||
@BootstrapWith(WebAppIntegrationTestContextBootstrapper.class) |
||||
@Deprecated |
||||
public @interface WebIntegrationTest { |
||||
|
||||
/** |
||||
* Properties in form {@literal key=value} that should be added to the Spring |
||||
* {@link Environment} before the test runs. |
||||
* @return properties to add to the context |
||||
*/ |
||||
String[] value() default {}; |
||||
|
||||
/** |
||||
* Convenience attribute that can be used to set a {@code server.port=0} |
||||
* {@link Environment} property which usually triggers listening on a random port. |
||||
* Often used in conjunction with a {@link LocalServerPort} injected field on the |
||||
* test. |
||||
* @return if a random port should be used |
||||
*/ |
||||
boolean randomPort() default false; |
||||
|
||||
} |
||||
@ -1,20 +0,0 @@
@@ -1,20 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2016 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 |
||||
* |
||||
* 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. |
||||
*/ |
||||
|
||||
/** |
||||
* Classes and utilities that are useful when unit-testing Spring Boot applications. |
||||
*/ |
||||
package org.springframework.boot.test; |
||||
@ -1,55 +0,0 @@
@@ -1,55 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2016 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 |
||||
* |
||||
* 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.springframework.boot.test; |
||||
|
||||
import org.junit.Test; |
||||
import org.junit.runner.RunWith; |
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.context.annotation.Configuration; |
||||
import org.springframework.core.env.Environment; |
||||
import org.springframework.test.annotation.DirtiesContext; |
||||
import org.springframework.test.context.ContextConfiguration; |
||||
import org.springframework.test.context.junit4.SpringRunner; |
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat; |
||||
|
||||
/** |
||||
* Tests for {@link ConfigFileApplicationContextInitializer}. |
||||
* |
||||
* @author Phillip Webb |
||||
*/ |
||||
@RunWith(SpringRunner.class) |
||||
@DirtiesContext |
||||
@ContextConfiguration(classes = ConfigFileApplicationContextInitializerTests.Config.class, initializers = ConfigFileApplicationContextInitializer.class) |
||||
@Deprecated |
||||
@SuppressWarnings("deprecation") |
||||
public class ConfigFileApplicationContextInitializerTests { |
||||
|
||||
@Autowired |
||||
private Environment environment; |
||||
|
||||
@Test |
||||
public void initializerPopulatesEnvironment() { |
||||
assertThat(this.environment.getProperty("foo")).isEqualTo("bucket"); |
||||
} |
||||
|
||||
@Configuration |
||||
public static class Config { |
||||
|
||||
} |
||||
} |
||||
@ -1,96 +0,0 @@
@@ -1,96 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2016 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 |
||||
* |
||||
* 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.springframework.boot.test; |
||||
|
||||
import java.util.HashMap; |
||||
import java.util.Map; |
||||
|
||||
import org.junit.Test; |
||||
|
||||
import org.springframework.core.env.ConfigurableEnvironment; |
||||
import org.springframework.core.env.MapPropertySource; |
||||
import org.springframework.core.env.StandardEnvironment; |
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat; |
||||
|
||||
/** |
||||
* Tests for {@link EnvironmentTestUtils}. |
||||
* |
||||
* @author Stephane Nicoll |
||||
*/ |
||||
@Deprecated |
||||
public class EnvironmentTestUtilsTests { |
||||
|
||||
private final ConfigurableEnvironment environment = new StandardEnvironment(); |
||||
|
||||
@Test |
||||
public void addSimplePairEqual() { |
||||
testAddSimplePair("my.foo", "bar", "="); |
||||
} |
||||
|
||||
@Test |
||||
public void addSimplePairColon() { |
||||
testAddSimplePair("my.foo", "bar", ":"); |
||||
} |
||||
|
||||
@Test |
||||
public void addSimplePairEqualWithEqualInValue() { |
||||
testAddSimplePair("my.foo", "b=ar", "="); |
||||
} |
||||
|
||||
@Test |
||||
public void addSimplePairEqualWithColonInValue() { |
||||
testAddSimplePair("my.foo", "b:ar", "="); |
||||
} |
||||
|
||||
@Test |
||||
public void addSimplePairColonWithColonInValue() { |
||||
testAddSimplePair("my.foo", "b:ar", ":"); |
||||
} |
||||
|
||||
@Test |
||||
public void addSimplePairColonWithEqualInValue() { |
||||
testAddSimplePair("my.foo", "b=ar", ":"); |
||||
} |
||||
|
||||
@Test |
||||
public void addPairNoValue() { |
||||
String propertyName = "my.foo+bar"; |
||||
assertThat(this.environment.containsProperty(propertyName)).isFalse(); |
||||
EnvironmentTestUtils.addEnvironment(this.environment, propertyName); |
||||
assertThat(this.environment.containsProperty(propertyName)).isTrue(); |
||||
assertThat(this.environment.getProperty(propertyName)).isEqualTo(""); |
||||
} |
||||
|
||||
private void testAddSimplePair(String key, String value, String delimiter) { |
||||
assertThat(this.environment.containsProperty(key)).isFalse(); |
||||
EnvironmentTestUtils.addEnvironment(this.environment, key + delimiter + value); |
||||
assertThat(this.environment.getProperty(key)).isEqualTo(value); |
||||
} |
||||
|
||||
@Test |
||||
public void testConfigHasHigherPrecedence() { |
||||
Map<String, Object> map = new HashMap<String, Object>(); |
||||
map.put("my.foo", "bar"); |
||||
MapPropertySource source = new MapPropertySource("sample", map); |
||||
this.environment.getPropertySources().addFirst(source); |
||||
assertThat(this.environment.getProperty("my.foo")).isEqualTo("bar"); |
||||
EnvironmentTestUtils.addEnvironment(this.environment, "my.foo=bar2"); |
||||
assertThat(this.environment.getProperty("my.foo")).isEqualTo("bar2"); |
||||
} |
||||
|
||||
} |
||||
@ -1,59 +0,0 @@
@@ -1,59 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2016 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 |
||||
* |
||||
* 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.springframework.boot.test; |
||||
|
||||
import org.junit.Test; |
||||
import org.junit.runner.RunWith; |
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.context.ApplicationContext; |
||||
import org.springframework.context.annotation.Configuration; |
||||
import org.springframework.test.annotation.DirtiesContext; |
||||
import org.springframework.test.context.ActiveProfiles; |
||||
import org.springframework.test.context.junit4.SpringRunner; |
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat; |
||||
|
||||
/** |
||||
* Tests for {@link SpringApplicationContextLoader} with active profiles. See gh-1469. |
||||
* |
||||
* @author Phillip Webb |
||||
*/ |
||||
@RunWith(SpringRunner.class) |
||||
@DirtiesContext |
||||
@SpringApplicationConfiguration |
||||
@IntegrationTest("spring.config.name=enableother") |
||||
@ActiveProfiles("override") |
||||
@Deprecated |
||||
@SuppressWarnings("deprecation") |
||||
public class SpringApplicationConfigurationActiveProfileTests { |
||||
|
||||
@Autowired |
||||
private ApplicationContext context; |
||||
|
||||
@Test |
||||
public void profiles() throws Exception { |
||||
assertThat(this.context.getEnvironment().getActiveProfiles()) |
||||
.containsExactly("override"); |
||||
} |
||||
|
||||
@Configuration |
||||
protected static class Config { |
||||
|
||||
} |
||||
|
||||
} |
||||
@ -1,54 +0,0 @@
@@ -1,54 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2016 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 |
||||
* |
||||
* 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.springframework.boot.test; |
||||
|
||||
import org.junit.Test; |
||||
import org.junit.runner.RunWith; |
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.context.annotation.Configuration; |
||||
import org.springframework.test.annotation.DirtiesContext; |
||||
import org.springframework.test.context.junit4.SpringRunner; |
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat; |
||||
|
||||
/** |
||||
* Tests for {@link SpringApplicationContextLoader} (detectDefaultConfigurationClasses). |
||||
* |
||||
* @author Dave Syer |
||||
*/ |
||||
@RunWith(SpringRunner.class) |
||||
@DirtiesContext |
||||
@SpringApplicationConfiguration |
||||
@Deprecated |
||||
@SuppressWarnings("deprecation") |
||||
public class SpringApplicationConfigurationDefaultConfigurationTests { |
||||
|
||||
@Autowired |
||||
private Config config; |
||||
|
||||
@Test |
||||
public void nestedConfigClasses() { |
||||
assertThat(this.config).isNotNull(); |
||||
} |
||||
|
||||
@Configuration |
||||
protected static class Config { |
||||
|
||||
} |
||||
|
||||
} |
||||
@ -1,48 +0,0 @@
@@ -1,48 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2016 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 |
||||
* |
||||
* 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.springframework.boot.test; |
||||
|
||||
import org.junit.Test; |
||||
import org.junit.runner.RunWith; |
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.test.annotation.DirtiesContext; |
||||
import org.springframework.test.context.junit4.SpringRunner; |
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat; |
||||
|
||||
/** |
||||
* Tests for {@link SpringApplicationContextLoader} (detectDefaultConfigurationClasses). |
||||
* |
||||
* @author Dave Syer |
||||
*/ |
||||
@RunWith(SpringRunner.class) |
||||
@DirtiesContext |
||||
@SpringApplicationConfiguration(locations = "classpath:test.groovy") |
||||
@Deprecated |
||||
@SuppressWarnings("deprecation") |
||||
public class SpringApplicationConfigurationGroovyConfigurationTests { |
||||
|
||||
@Autowired |
||||
private String foo; |
||||
|
||||
@Test |
||||
public void groovyConfigLoaded() { |
||||
assertThat(this.foo).isNotNull(); |
||||
} |
||||
|
||||
} |
||||
@ -1,48 +0,0 @@
@@ -1,48 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2016 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 |
||||
* |
||||
* 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.springframework.boot.test; |
||||
|
||||
import org.junit.Test; |
||||
import org.junit.runner.RunWith; |
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.test.annotation.DirtiesContext; |
||||
import org.springframework.test.context.junit4.SpringRunner; |
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat; |
||||
|
||||
/** |
||||
* Tests for {@link SpringApplicationContextLoader} finding groovy config. |
||||
* |
||||
* @author Phillip Webb |
||||
*/ |
||||
@RunWith(SpringRunner.class) |
||||
@DirtiesContext |
||||
@SpringApplicationConfiguration |
||||
@Deprecated |
||||
@SuppressWarnings("deprecation") |
||||
public class SpringApplicationConfigurationGroovyConventionConfigurationTests { |
||||
|
||||
@Autowired |
||||
private String foo; |
||||
|
||||
@Test |
||||
public void groovyConfigLoaded() { |
||||
assertThat(this.foo).isEqualTo("World"); |
||||
} |
||||
|
||||
} |
||||
@ -1,62 +0,0 @@
@@ -1,62 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2016 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 |
||||
* |
||||
* 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.springframework.boot.test; |
||||
|
||||
import org.junit.Test; |
||||
import org.junit.runner.RunWith; |
||||
|
||||
import org.springframework.beans.factory.annotation.Value; |
||||
import org.springframework.boot.test.SpringApplicationConfigurationJmxTests.Config; |
||||
import org.springframework.context.annotation.Bean; |
||||
import org.springframework.context.annotation.Configuration; |
||||
import org.springframework.context.support.PropertySourcesPlaceholderConfigurer; |
||||
import org.springframework.test.annotation.DirtiesContext; |
||||
import org.springframework.test.context.junit4.SpringRunner; |
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat; |
||||
|
||||
/** |
||||
* Tests for disabling JMX by default |
||||
* |
||||
* @author Dave Syer |
||||
*/ |
||||
@RunWith(SpringRunner.class) |
||||
@DirtiesContext |
||||
@SpringApplicationConfiguration(Config.class) |
||||
@IntegrationTest |
||||
@Deprecated |
||||
public class SpringApplicationConfigurationJmxTests { |
||||
|
||||
@Value("${spring.jmx.enabled}") |
||||
private boolean jmx; |
||||
|
||||
@Test |
||||
public void disabledByDefault() { |
||||
assertThat(this.jmx).isFalse(); |
||||
} |
||||
|
||||
@Configuration |
||||
protected static class Config { |
||||
|
||||
@Bean |
||||
public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() { |
||||
return new PropertySourcesPlaceholderConfigurer(); |
||||
} |
||||
|
||||
} |
||||
|
||||
} |
||||
@ -1,58 +0,0 @@
@@ -1,58 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2016 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 |
||||
* |
||||
* 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.springframework.boot.test; |
||||
|
||||
import org.junit.Test; |
||||
import org.junit.runner.RunWith; |
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.boot.test.SpringApplicationConfigurationMixedConfigurationTests.Config; |
||||
import org.springframework.context.annotation.Configuration; |
||||
import org.springframework.test.annotation.DirtiesContext; |
||||
import org.springframework.test.context.junit4.SpringRunner; |
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat; |
||||
|
||||
/** |
||||
* Tests for {@link SpringApplicationContextLoader}. |
||||
* |
||||
* @author Dave Syer |
||||
*/ |
||||
@RunWith(SpringRunner.class) |
||||
@DirtiesContext |
||||
@SpringApplicationConfiguration(classes = Config.class, locations = "classpath:test.groovy") |
||||
@Deprecated |
||||
public class SpringApplicationConfigurationMixedConfigurationTests { |
||||
|
||||
@Autowired |
||||
private String foo; |
||||
|
||||
@Autowired |
||||
private Config config; |
||||
|
||||
@Test |
||||
public void mixedConfigClasses() { |
||||
assertThat(this.foo).isNotNull(); |
||||
assertThat(this.config).isNotNull(); |
||||
} |
||||
|
||||
@Configuration |
||||
protected static class Config { |
||||
|
||||
} |
||||
|
||||
} |
||||
@ -1,48 +0,0 @@
@@ -1,48 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2016 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 |
||||
* |
||||
* 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.springframework.boot.test; |
||||
|
||||
import org.junit.Test; |
||||
import org.junit.runner.RunWith; |
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.test.annotation.DirtiesContext; |
||||
import org.springframework.test.context.junit4.SpringRunner; |
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat; |
||||
|
||||
/** |
||||
* Tests for {@link SpringApplicationContextLoader} finding XML config. |
||||
* |
||||
* @author Phillip Webb |
||||
*/ |
||||
@RunWith(SpringRunner.class) |
||||
@DirtiesContext |
||||
@SpringApplicationConfiguration |
||||
@Deprecated |
||||
@SuppressWarnings("deprecation") |
||||
public class SpringApplicationConfigurationXmlConventionConfigurationTests { |
||||
|
||||
@Autowired |
||||
private String foo; |
||||
|
||||
@Test |
||||
public void xmlConfigLoaded() { |
||||
assertThat(this.foo).isEqualTo("World"); |
||||
} |
||||
|
||||
} |
||||
@ -1,159 +0,0 @@
@@ -1,159 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2016 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 |
||||
* |
||||
* 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.springframework.boot.test; |
||||
|
||||
import java.util.Map; |
||||
|
||||
import org.junit.Ignore; |
||||
import org.junit.Test; |
||||
|
||||
import org.springframework.context.annotation.Configuration; |
||||
import org.springframework.test.context.ContextConfiguration; |
||||
import org.springframework.test.context.MergedContextConfiguration; |
||||
import org.springframework.test.context.TestContext; |
||||
import org.springframework.test.context.TestContextManager; |
||||
import org.springframework.test.context.support.TestPropertySourceUtils; |
||||
import org.springframework.test.util.ReflectionTestUtils; |
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat; |
||||
|
||||
/** |
||||
* Tests for {@link SpringApplicationContextLoader} |
||||
* |
||||
* @author Stephane Nicoll |
||||
*/ |
||||
@Deprecated |
||||
@SuppressWarnings("deprecation") |
||||
public class SpringApplicationContextLoaderTests { |
||||
|
||||
@Test |
||||
public void environmentPropertiesSimple() throws Exception { |
||||
Map<String, Object> config = getEnvironmentProperties(SimpleConfig.class); |
||||
assertKey(config, "key", "myValue"); |
||||
assertKey(config, "anotherKey", "anotherValue"); |
||||
} |
||||
|
||||
@Test |
||||
public void environmentPropertiesOverrideDefaults() throws Exception { |
||||
Map<String, Object> config = getEnvironmentProperties(OverrideConfig.class); |
||||
assertKey(config, "server.port", "2345"); |
||||
} |
||||
|
||||
@Test |
||||
public void environmentPropertiesAppend() throws Exception { |
||||
Map<String, Object> config = getEnvironmentProperties(AppendConfig.class); |
||||
assertKey(config, "key", "myValue"); |
||||
assertKey(config, "otherKey", "otherValue"); |
||||
} |
||||
|
||||
@Test |
||||
public void environmentPropertiesSeparatorInValue() throws Exception { |
||||
Map<String, Object> config = getEnvironmentProperties(SameSeparatorInValue.class); |
||||
assertKey(config, "key", "my=Value"); |
||||
assertKey(config, "anotherKey", "another:Value"); |
||||
} |
||||
|
||||
@Test |
||||
public void environmentPropertiesAnotherSeparatorInValue() throws Exception { |
||||
Map<String, Object> config = getEnvironmentProperties( |
||||
AnotherSeparatorInValue.class); |
||||
assertKey(config, "key", "my:Value"); |
||||
assertKey(config, "anotherKey", "another=Value"); |
||||
} |
||||
|
||||
@Test |
||||
@Ignore |
||||
public void environmentPropertiesNewLineInValue() throws Exception { |
||||
// gh-4384
|
||||
Map<String, Object> config = getEnvironmentProperties(NewLineInValue.class); |
||||
assertKey(config, "key", "myValue"); |
||||
assertKey(config, "variables", "foo=FOO\n bar=BAR"); |
||||
} |
||||
|
||||
private Map<String, Object> getEnvironmentProperties(Class<?> testClass) |
||||
throws Exception { |
||||
TestContext context = new ExposedTestContextManager(testClass) |
||||
.getExposedTestContext(); |
||||
new IntegrationTestPropertiesListener().prepareTestInstance(context); |
||||
MergedContextConfiguration config = (MergedContextConfiguration) ReflectionTestUtils |
||||
.getField(context, "mergedContextConfiguration"); |
||||
return TestPropertySourceUtils |
||||
.convertInlinedPropertiesToMap(config.getPropertySourceProperties()); |
||||
} |
||||
|
||||
private void assertKey(Map<String, Object> actual, String key, Object value) { |
||||
assertThat(actual.containsKey(key)).as("Key '" + key + "' not found").isTrue(); |
||||
assertThat(actual.get(key)).isEqualTo(value); |
||||
} |
||||
|
||||
@IntegrationTest({ "key=myValue", "anotherKey:anotherValue" }) |
||||
@ContextConfiguration(classes = Config.class) |
||||
static class SimpleConfig { |
||||
|
||||
} |
||||
|
||||
@IntegrationTest({ "server.port=2345" }) |
||||
@ContextConfiguration(classes = Config.class) |
||||
static class OverrideConfig { |
||||
|
||||
} |
||||
|
||||
@IntegrationTest({ "key=myValue", "otherKey=otherValue" }) |
||||
@ContextConfiguration(classes = Config.class) |
||||
static class AppendConfig { |
||||
|
||||
} |
||||
|
||||
@IntegrationTest({ "key=my=Value", "anotherKey:another:Value" }) |
||||
@ContextConfiguration(classes = Config.class) |
||||
static class SameSeparatorInValue { |
||||
|
||||
} |
||||
|
||||
@IntegrationTest({ "key=my:Value", "anotherKey:another=Value" }) |
||||
@ContextConfiguration(classes = Config.class) |
||||
static class AnotherSeparatorInValue { |
||||
|
||||
} |
||||
|
||||
@IntegrationTest({ "key=myValue", "variables=foo=FOO\n bar=BAR" }) |
||||
@ContextConfiguration(classes = Config.class) |
||||
static class NewLineInValue { |
||||
|
||||
} |
||||
|
||||
@Configuration |
||||
static class Config { |
||||
|
||||
} |
||||
|
||||
/** |
||||
* {@link TestContextManager} which exposes the {@link TestContext}. |
||||
*/ |
||||
private static class ExposedTestContextManager extends TestContextManager { |
||||
|
||||
ExposedTestContextManager(Class<?> testClass) { |
||||
super(testClass); |
||||
} |
||||
|
||||
public final TestContext getExposedTestContext() { |
||||
return super.getTestContext(); |
||||
} |
||||
|
||||
} |
||||
|
||||
} |
||||
@ -1,83 +0,0 @@
@@ -1,83 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2016 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 |
||||
* |
||||
* 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.springframework.boot.test; |
||||
|
||||
import javax.annotation.PostConstruct; |
||||
|
||||
import org.junit.Test; |
||||
import org.junit.runner.RunWith; |
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.beans.factory.annotation.Value; |
||||
import org.springframework.boot.test.SpringApplicationIntegrationTestPropertyLocationTests.MoreConfig; |
||||
import org.springframework.boot.test.SpringApplicationIntegrationTestTests.Config; |
||||
import org.springframework.context.annotation.Configuration; |
||||
import org.springframework.core.env.Environment; |
||||
import org.springframework.test.annotation.DirtiesContext; |
||||
import org.springframework.test.context.TestPropertySource; |
||||
import org.springframework.test.context.junit4.SpringRunner; |
||||
import org.springframework.test.context.web.WebAppConfiguration; |
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat; |
||||
|
||||
/** |
||||
* Tests for {@link IntegrationTest} with {@link TestPropertySource} locations. |
||||
* |
||||
* @author Phillip Webb |
||||
*/ |
||||
@RunWith(SpringRunner.class) |
||||
@DirtiesContext |
||||
@SpringApplicationConfiguration({ Config.class, MoreConfig.class }) |
||||
@WebAppConfiguration |
||||
@IntegrationTest({ "server.port=0", "value1=123" }) |
||||
@TestPropertySource(properties = "value2=456", locations = "classpath:/test-property-source-annotation.properties") |
||||
@Deprecated |
||||
public class SpringApplicationIntegrationTestPropertyLocationTests { |
||||
|
||||
@Autowired |
||||
private Environment environment; |
||||
|
||||
@Test |
||||
public void loadedProperties() throws Exception { |
||||
assertThat(this.environment.getProperty("value1")).isEqualTo("123"); |
||||
assertThat(this.environment.getProperty("value2")).isEqualTo("456"); |
||||
assertThat(this.environment.getProperty("property-source-location")) |
||||
.isEqualTo("baz"); |
||||
} |
||||
|
||||
@Configuration |
||||
static class MoreConfig { |
||||
|
||||
@Value("${value1}") |
||||
private String value1; |
||||
|
||||
@Value("${value2}") |
||||
private String value2; |
||||
|
||||
@Value("${property-source-location}") |
||||
private String annotationReferenced; |
||||
|
||||
@PostConstruct |
||||
void checkValues() { |
||||
assertThat(this.value1).isEqualTo("123"); |
||||
assertThat(this.value2).isEqualTo("456"); |
||||
assertThat(this.annotationReferenced).isEqualTo("baz"); |
||||
} |
||||
|
||||
} |
||||
|
||||
} |
||||
@ -1,122 +0,0 @@
@@ -1,122 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2016 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 |
||||
* |
||||
* 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.springframework.boot.test; |
||||
|
||||
import javax.servlet.ServletContext; |
||||
|
||||
import org.junit.Test; |
||||
import org.junit.runner.RunWith; |
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.beans.factory.annotation.Value; |
||||
import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory; |
||||
import org.springframework.boot.context.embedded.LocalServerPort; |
||||
import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory; |
||||
import org.springframework.boot.test.SpringApplicationIntegrationTestTests.Config; |
||||
import org.springframework.context.annotation.Bean; |
||||
import org.springframework.context.annotation.Configuration; |
||||
import org.springframework.context.support.PropertySourcesPlaceholderConfigurer; |
||||
import org.springframework.test.annotation.DirtiesContext; |
||||
import org.springframework.test.context.junit4.SpringRunner; |
||||
import org.springframework.test.context.web.WebAppConfiguration; |
||||
import org.springframework.web.bind.annotation.RequestMapping; |
||||
import org.springframework.web.bind.annotation.RestController; |
||||
import org.springframework.web.client.RestTemplate; |
||||
import org.springframework.web.context.WebApplicationContext; |
||||
import org.springframework.web.context.support.WebApplicationContextUtils; |
||||
import org.springframework.web.servlet.DispatcherServlet; |
||||
import org.springframework.web.servlet.config.annotation.EnableWebMvc; |
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat; |
||||
|
||||
/** |
||||
* Tests for {@link IntegrationTest} |
||||
* |
||||
* @author Dave Syer |
||||
*/ |
||||
@RunWith(SpringRunner.class) |
||||
@DirtiesContext |
||||
@SpringApplicationConfiguration(Config.class) |
||||
@WebAppConfiguration |
||||
@IntegrationTest({ "server.port=0", "value=123" }) |
||||
@Deprecated |
||||
public class SpringApplicationIntegrationTestTests { |
||||
|
||||
@LocalServerPort |
||||
private int port = 0; |
||||
|
||||
@Value("${value}") |
||||
private int value = 0; |
||||
|
||||
@Autowired |
||||
private WebApplicationContext context; |
||||
|
||||
@Autowired |
||||
private ServletContext servletContext; |
||||
|
||||
@Test |
||||
public void runAndTestHttpEndpoint() { |
||||
assertThat(this.port).isNotEqualTo(8080).isNotEqualTo(0); |
||||
String body = new RestTemplate() |
||||
.getForObject("http://localhost:" + this.port + "/", String.class); |
||||
assertThat(body).isEqualTo("Hello World"); |
||||
} |
||||
|
||||
@Test |
||||
public void annotationAttributesOverridePropertiesFile() throws Exception { |
||||
assertThat(this.value).isEqualTo(123); |
||||
} |
||||
|
||||
@Test |
||||
public void validateWebApplicationContextIsSet() { |
||||
assertThat(this.context).isSameAs( |
||||
WebApplicationContextUtils.getWebApplicationContext(this.servletContext)); |
||||
} |
||||
|
||||
@Configuration |
||||
@EnableWebMvc |
||||
@RestController |
||||
protected static class Config { |
||||
|
||||
@Value("${server.port:8080}") |
||||
private int port = 8080; |
||||
|
||||
@Bean |
||||
public DispatcherServlet dispatcherServlet() { |
||||
return new DispatcherServlet(); |
||||
} |
||||
|
||||
@Bean |
||||
public EmbeddedServletContainerFactory embeddedServletContainer() { |
||||
TomcatEmbeddedServletContainerFactory factory = new TomcatEmbeddedServletContainerFactory(); |
||||
factory.setPort(this.port); |
||||
return factory; |
||||
} |
||||
|
||||
@Bean |
||||
public static PropertySourcesPlaceholderConfigurer propertyPlaceholder() { |
||||
return new PropertySourcesPlaceholderConfigurer(); |
||||
} |
||||
|
||||
@RequestMapping("/") |
||||
public String home() { |
||||
return "Hello World"; |
||||
} |
||||
|
||||
} |
||||
|
||||
} |
||||
@ -1,93 +0,0 @@
@@ -1,93 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2016 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 |
||||
* |
||||
* 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.springframework.boot.test; |
||||
|
||||
import javax.servlet.ServletContext; |
||||
|
||||
import org.junit.Before; |
||||
import org.junit.Test; |
||||
import org.junit.runner.RunWith; |
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.boot.test.SpringApplicationMockMvcTests.Config; |
||||
import org.springframework.context.annotation.Configuration; |
||||
import org.springframework.test.annotation.DirtiesContext; |
||||
import org.springframework.test.context.junit4.SpringRunner; |
||||
import org.springframework.test.context.web.WebAppConfiguration; |
||||
import org.springframework.test.web.servlet.MockMvc; |
||||
import org.springframework.test.web.servlet.setup.MockMvcBuilders; |
||||
import org.springframework.web.bind.annotation.RequestMapping; |
||||
import org.springframework.web.bind.annotation.RestController; |
||||
import org.springframework.web.context.WebApplicationContext; |
||||
import org.springframework.web.context.support.WebApplicationContextUtils; |
||||
import org.springframework.web.servlet.config.annotation.EnableWebMvc; |
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat; |
||||
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; |
||||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; |
||||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; |
||||
|
||||
/** |
||||
* Tests for {@link WebAppConfiguration} with {@link MockMvc}. |
||||
* |
||||
* @author Stephane Nicoll |
||||
*/ |
||||
@RunWith(SpringRunner.class) |
||||
@DirtiesContext |
||||
@SpringApplicationConfiguration(classes = Config.class) |
||||
@WebAppConfiguration |
||||
@Deprecated |
||||
public class SpringApplicationMockMvcTests { |
||||
|
||||
@Autowired |
||||
private WebApplicationContext context; |
||||
|
||||
@Autowired |
||||
private ServletContext servletContext; |
||||
|
||||
private MockMvc mvc; |
||||
|
||||
@Before |
||||
public void setUp() { |
||||
this.mvc = MockMvcBuilders.webAppContextSetup(this.context).build(); |
||||
} |
||||
|
||||
@Test |
||||
public void testMockHttpEndpoint() throws Exception { |
||||
this.mvc.perform(get("/")).andExpect(status().isOk()) |
||||
.andExpect(content().string("Hello World")); |
||||
} |
||||
|
||||
@Test |
||||
public void validateWebApplicationContextIsSet() { |
||||
assertThat(this.context).isSameAs( |
||||
WebApplicationContextUtils.getWebApplicationContext(this.servletContext)); |
||||
} |
||||
|
||||
@Configuration |
||||
@EnableWebMvc |
||||
@RestController |
||||
protected static class Config { |
||||
|
||||
@RequestMapping("/") |
||||
public String home() { |
||||
return "Hello World"; |
||||
} |
||||
|
||||
} |
||||
|
||||
} |
||||
@ -1,65 +0,0 @@
@@ -1,65 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2015 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 |
||||
* |
||||
* 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.springframework.boot.test; |
||||
|
||||
import javax.servlet.ServletContext; |
||||
|
||||
import org.junit.Test; |
||||
import org.junit.runner.RunWith; |
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.boot.test.SpringApplicationMockServletTests.Config; |
||||
import org.springframework.context.annotation.Configuration; |
||||
import org.springframework.test.context.ContextConfiguration; |
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; |
||||
import org.springframework.test.context.web.WebAppConfiguration; |
||||
import org.springframework.web.context.WebApplicationContext; |
||||
import org.springframework.web.context.support.WebApplicationContextUtils; |
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat; |
||||
|
||||
/** |
||||
* Tests for {@link WebAppConfiguration} using {@link SpringApplicationContextLoader} with |
||||
* a plain mock Servlet environment. |
||||
* |
||||
* |
||||
* @author Andy Wilkinson |
||||
*/ |
||||
@RunWith(SpringJUnit4ClassRunner.class) |
||||
@ContextConfiguration(classes = Config.class, loader = SpringApplicationContextLoader.class) |
||||
@WebAppConfiguration |
||||
@Deprecated |
||||
public class SpringApplicationMockServletTests { |
||||
|
||||
@Autowired |
||||
private WebApplicationContext context; |
||||
|
||||
@Autowired |
||||
private ServletContext servletContext; |
||||
|
||||
@Test |
||||
public void webApplicationContextIsSetOnServletContext() { |
||||
assertThat(this.context).isSameAs( |
||||
WebApplicationContextUtils.getWebApplicationContext(this.servletContext)); |
||||
} |
||||
|
||||
@Configuration |
||||
protected static class Config { |
||||
|
||||
} |
||||
|
||||
} |
||||
@ -1,120 +0,0 @@
@@ -1,120 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2016 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 |
||||
* |
||||
* 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.springframework.boot.test; |
||||
|
||||
import javax.servlet.ServletContext; |
||||
|
||||
import org.junit.Test; |
||||
import org.junit.runner.RunWith; |
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.beans.factory.annotation.Value; |
||||
import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory; |
||||
import org.springframework.boot.context.embedded.LocalServerPort; |
||||
import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory; |
||||
import org.springframework.boot.test.SpringApplicationWebIntegrationTestTests.Config; |
||||
import org.springframework.context.annotation.Bean; |
||||
import org.springframework.context.annotation.Configuration; |
||||
import org.springframework.context.support.PropertySourcesPlaceholderConfigurer; |
||||
import org.springframework.test.annotation.DirtiesContext; |
||||
import org.springframework.test.context.junit4.SpringRunner; |
||||
import org.springframework.web.bind.annotation.RequestMapping; |
||||
import org.springframework.web.bind.annotation.RestController; |
||||
import org.springframework.web.client.RestTemplate; |
||||
import org.springframework.web.context.WebApplicationContext; |
||||
import org.springframework.web.context.support.WebApplicationContextUtils; |
||||
import org.springframework.web.servlet.DispatcherServlet; |
||||
import org.springframework.web.servlet.config.annotation.EnableWebMvc; |
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat; |
||||
|
||||
/** |
||||
* Tests for {@link IntegrationTest} |
||||
* |
||||
* @author Phillip Webb |
||||
*/ |
||||
@SuppressWarnings("deprecation") |
||||
@RunWith(SpringRunner.class) |
||||
@DirtiesContext |
||||
@SpringApplicationConfiguration(Config.class) |
||||
@WebIntegrationTest({ "server.port=0", "value=123" }) |
||||
public class SpringApplicationWebIntegrationTestTests { |
||||
|
||||
@LocalServerPort |
||||
private int port = 0; |
||||
|
||||
@Value("${value}") |
||||
private int value = 0; |
||||
|
||||
@Autowired |
||||
private WebApplicationContext context; |
||||
|
||||
@Autowired |
||||
private ServletContext servletContext; |
||||
|
||||
@Test |
||||
public void runAndTestHttpEndpoint() { |
||||
assertThat(this.port).isNotEqualTo(8080).isNotEqualTo(0); |
||||
String body = new RestTemplate() |
||||
.getForObject("http://localhost:" + this.port + "/", String.class); |
||||
assertThat(body).isEqualTo("Hello World"); |
||||
} |
||||
|
||||
@Test |
||||
public void annotationAttributesOverridePropertiesFile() throws Exception { |
||||
assertThat(this.value).isEqualTo(123); |
||||
} |
||||
|
||||
@Test |
||||
public void validateWebApplicationContextIsSet() { |
||||
assertThat(this.context).isSameAs( |
||||
WebApplicationContextUtils.getWebApplicationContext(this.servletContext)); |
||||
} |
||||
|
||||
@Configuration |
||||
@EnableWebMvc |
||||
@RestController |
||||
protected static class Config { |
||||
|
||||
@Value("${server.port:8080}") |
||||
private int port = 8080; |
||||
|
||||
@Bean |
||||
public DispatcherServlet dispatcherServlet() { |
||||
return new DispatcherServlet(); |
||||
} |
||||
|
||||
@Bean |
||||
public EmbeddedServletContainerFactory embeddedServletContainer() { |
||||
TomcatEmbeddedServletContainerFactory factory = new TomcatEmbeddedServletContainerFactory(); |
||||
factory.setPort(this.port); |
||||
return factory; |
||||
} |
||||
|
||||
@Bean |
||||
public static PropertySourcesPlaceholderConfigurer propertyPlaceholder() { |
||||
return new PropertySourcesPlaceholderConfigurer(); |
||||
} |
||||
|
||||
@RequestMapping("/") |
||||
public String home() { |
||||
return "Hello World"; |
||||
} |
||||
|
||||
} |
||||
|
||||
} |
||||
@ -1,105 +0,0 @@
@@ -1,105 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2016 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 |
||||
* |
||||
* 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.springframework.boot.test; |
||||
|
||||
import java.io.File; |
||||
import java.io.FilenameFilter; |
||||
import java.net.MalformedURLException; |
||||
import java.net.URL; |
||||
import java.net.URLDecoder; |
||||
|
||||
import javax.servlet.ServletContext; |
||||
|
||||
import org.junit.Test; |
||||
import org.junit.runner.RunWith; |
||||
|
||||
import org.springframework.context.annotation.Configuration; |
||||
import org.springframework.test.annotation.DirtiesContext; |
||||
import org.springframework.test.context.junit4.SpringRunner; |
||||
import org.springframework.test.context.web.WebAppConfiguration; |
||||
import org.springframework.web.context.ServletContextAware; |
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat; |
||||
import static org.hamcrest.Matchers.nullValue; |
||||
|
||||
/** |
||||
* Tests for {@link SpringBootMockServletContext}. |
||||
* |
||||
* @author Phillip Webb |
||||
*/ |
||||
@RunWith(SpringRunner.class) |
||||
@DirtiesContext |
||||
@SpringApplicationConfiguration(SpringBootMockServletContextTests.Config.class) |
||||
@WebAppConfiguration("src/test/webapp") |
||||
@Deprecated |
||||
@SuppressWarnings("deprecation") |
||||
public class SpringBootMockServletContextTests implements ServletContextAware { |
||||
|
||||
private ServletContext servletContext; |
||||
|
||||
@Override |
||||
public void setServletContext(ServletContext servletContext) { |
||||
this.servletContext = servletContext; |
||||
} |
||||
|
||||
@Test |
||||
public void getResourceLocation() throws Exception { |
||||
testResource("/inwebapp", "src/test/webapp"); |
||||
testResource("/inmetainfresources", "/META-INF/resources"); |
||||
testResource("/inresources", "/resources"); |
||||
testResource("/instatic", "/static"); |
||||
testResource("/inpublic", "/public"); |
||||
} |
||||
|
||||
private void testResource(String path, String expectedLocation) |
||||
throws MalformedURLException { |
||||
URL resource = this.servletContext.getResource(path); |
||||
assertThat(resource).isNotNull(); |
||||
assertThat(resource.getPath()).contains(expectedLocation); |
||||
} |
||||
|
||||
// gh-2654
|
||||
@Test |
||||
public void getRootUrlExistsAndIsEmpty() throws Exception { |
||||
SpringBootMockServletContext context = new SpringBootMockServletContext( |
||||
"src/test/doesntexist") { |
||||
@Override |
||||
protected String getResourceLocation(String path) { |
||||
// Don't include the Spring Boot defaults for this test
|
||||
return getResourceBasePathLocation(path); |
||||
}; |
||||
}; |
||||
URL resource = context.getResource("/"); |
||||
assertThat(resource).isNotEqualTo(nullValue()); |
||||
File file = new File(URLDecoder.decode(resource.getPath(), "UTF-8")); |
||||
assertThat(file).exists().isDirectory(); |
||||
String[] contents = file.list(new FilenameFilter() { |
||||
@Override |
||||
public boolean accept(File dir, String name) { |
||||
return !(".".equals(name) || "..".equals(name)); |
||||
} |
||||
}); |
||||
assertThat(contents).isNotEqualTo(nullValue()); |
||||
assertThat(contents.length).isEqualTo(0); |
||||
} |
||||
|
||||
@Configuration |
||||
static class Config { |
||||
|
||||
} |
||||
|
||||
} |
||||
@ -1,38 +0,0 @@
@@ -1,38 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2016 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 |
||||
* |
||||
* 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.springframework.boot.test; |
||||
|
||||
import org.junit.Test; |
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat; |
||||
|
||||
/** |
||||
* Tests for the deprecated {@link TestRestTemplate}. |
||||
* |
||||
* @author Dave Syer |
||||
*/ |
||||
@Deprecated |
||||
public class TestRestTemplateTests { |
||||
|
||||
@Test |
||||
public void canCreateTemplateFromOwnOptions() { |
||||
TestRestTemplate template = new TestRestTemplate( |
||||
TestRestTemplate.HttpClientOption.ENABLE_REDIRECTS); |
||||
assertThat(template).isNotNull(); |
||||
} |
||||
|
||||
} |
||||
@ -1,61 +0,0 @@
@@ -1,61 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2016 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 |
||||
* |
||||
* 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.springframework.boot.context.embedded; |
||||
|
||||
import javax.servlet.Filter; |
||||
import javax.servlet.ServletContext; |
||||
|
||||
import org.springframework.boot.web.servlet.ServletRegistrationBean; |
||||
import org.springframework.web.filter.DelegatingFilterProxy; |
||||
|
||||
/** |
||||
* A {@link ServletContextInitializer} to register {@link DelegatingFilterProxy}s in a |
||||
* Servlet 3.0+ container. Similar to the {@link ServletContext#addFilter(String, Filter) |
||||
* registration} features provided by {@link ServletContext} but with a Spring Bean |
||||
* friendly design. |
||||
* <p> |
||||
* The bean name of the actual delegate {@link Filter} should be specified using the |
||||
* {@code targetBeanName} constructor argument. Unlike the {@link FilterRegistrationBean}, |
||||
* referenced filters are not instantiated early. In fact, if the delegate filter bean is |
||||
* marked {@code @Lazy} it won't be instantiated at all until the filter is called. |
||||
* <p> |
||||
* Registrations can be associated with {@link #setUrlPatterns URL patterns} and/or |
||||
* servlets (either by {@link #setServletNames name} or via a |
||||
* {@link #setServletRegistrationBeans ServletRegistrationBean}s. When no URL pattern or |
||||
* servlets are specified the filter will be associated to '/*'. The targetBeanName will |
||||
* be used as the filter name if not otherwise specified. |
||||
* |
||||
* @author Phillip Webb |
||||
* @since 1.3.0 |
||||
* @see ServletContextInitializer |
||||
* @see ServletContext#addFilter(String, Filter) |
||||
* @see FilterRegistrationBean |
||||
* @see DelegatingFilterProxy |
||||
* @deprecated as of 1.4 in favor of |
||||
* {@link org.springframework.boot.web.servlet.DelegatingFilterProxyRegistrationBean} |
||||
*/ |
||||
@Deprecated |
||||
public class DelegatingFilterProxyRegistrationBean |
||||
extends org.springframework.boot.web.servlet.DelegatingFilterProxyRegistrationBean |
||||
implements org.springframework.boot.context.embedded.ServletContextInitializer { |
||||
|
||||
public DelegatingFilterProxyRegistrationBean(String targetBeanName, |
||||
ServletRegistrationBean... servletRegistrationBeans) { |
||||
super(targetBeanName, servletRegistrationBeans); |
||||
} |
||||
|
||||
} |
||||
@ -1,44 +0,0 @@
@@ -1,44 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2016 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 |
||||
* |
||||
* 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.springframework.boot.context.embedded; |
||||
|
||||
import org.springframework.http.HttpStatus; |
||||
|
||||
/** |
||||
* Simple container-independent abstraction for servlet error pages. Roughly equivalent to |
||||
* the {@literal <error-page>} element traditionally found in web.xml. |
||||
* |
||||
* @author Dave Syer |
||||
* @deprecated as of 1.4 in favor of |
||||
* {@link org.springframework.boot.web.servlet.ErrorPage} |
||||
*/ |
||||
@Deprecated |
||||
public class ErrorPage extends org.springframework.boot.web.servlet.ErrorPage { |
||||
|
||||
public ErrorPage(Class<? extends Throwable> exception, String path) { |
||||
super(exception, path); |
||||
} |
||||
|
||||
public ErrorPage(HttpStatus status, String path) { |
||||
super(status, path); |
||||
} |
||||
|
||||
public ErrorPage(String path) { |
||||
super(path); |
||||
} |
||||
|
||||
} |
||||
@ -1,58 +0,0 @@
@@ -1,58 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2016 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 |
||||
* |
||||
* 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.springframework.boot.context.embedded; |
||||
|
||||
import javax.servlet.Filter; |
||||
import javax.servlet.ServletContext; |
||||
|
||||
import org.springframework.boot.web.servlet.DelegatingFilterProxyRegistrationBean; |
||||
import org.springframework.boot.web.servlet.ServletContextInitializer; |
||||
|
||||
/** |
||||
* A {@link ServletContextInitializer} to register {@link Filter}s in a Servlet 3.0+ |
||||
* container. Similar to the {@link ServletContext#addFilter(String, Filter) registration} |
||||
* features provided by {@link ServletContext} but with a Spring Bean friendly design. |
||||
* <p> |
||||
* The {@link #setFilter(Filter) Filter} must be specified before calling |
||||
* {@link #onStartup(ServletContext)}. Registrations can be associated with |
||||
* {@link #setUrlPatterns URL patterns} and/or servlets (either by {@link #setServletNames |
||||
* name} or via a {@link #setServletRegistrationBeans ServletRegistrationBean}s. When no |
||||
* URL pattern or servlets are specified the filter will be associated to '/*'. The filter |
||||
* name will be deduced if not specified. |
||||
* |
||||
* @author Phillip Webb |
||||
* @see ServletContextInitializer |
||||
* @see ServletContext#addFilter(String, Filter) |
||||
* @see DelegatingFilterProxyRegistrationBean |
||||
* @deprecated as of 1.4 in favor of |
||||
* {@link org.springframework.boot.web.servlet.FilterRegistrationBean} |
||||
*/ |
||||
@Deprecated |
||||
public class FilterRegistrationBean |
||||
extends org.springframework.boot.web.servlet.FilterRegistrationBean |
||||
implements org.springframework.boot.context.embedded.ServletContextInitializer { |
||||
|
||||
public FilterRegistrationBean() { |
||||
super(); |
||||
} |
||||
|
||||
public FilterRegistrationBean(Filter filter, |
||||
ServletRegistrationBean... servletRegistrationBeans) { |
||||
super(filter, servletRegistrationBeans); |
||||
} |
||||
|
||||
} |
||||
@ -1,39 +0,0 @@
@@ -1,39 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2016 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 |
||||
* |
||||
* 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.springframework.boot.context.embedded; |
||||
|
||||
import javax.servlet.MultipartConfigElement; |
||||
|
||||
/** |
||||
* Factory that can be used to create a {@link MultipartConfigElement}. Size values can be |
||||
* set using traditional {@literal long} values which are set in bytes or using more |
||||
* readable {@literal String} variants that accept KB or MB suffixes, for example: |
||||
* |
||||
* <pre class="code"> |
||||
* factory.setMaxFileSize("10Mb"); |
||||
* factory.setMaxRequestSize("100Kb"); |
||||
* </pre> |
||||
* |
||||
* @author Phillip Webb |
||||
* @deprecated as of 1.4 in favor of |
||||
* {@link org.springframework.boot.web.servlet.MultipartConfigFactory} |
||||
*/ |
||||
@Deprecated |
||||
public class MultipartConfigFactory |
||||
extends org.springframework.boot.web.servlet.MultipartConfigFactory { |
||||
|
||||
} |
||||
@ -1,45 +0,0 @@
@@ -1,45 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2016 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 |
||||
* |
||||
* 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.springframework.boot.context.embedded; |
||||
|
||||
import javax.servlet.ServletContext; |
||||
|
||||
import org.springframework.web.SpringServletContainerInitializer; |
||||
import org.springframework.web.WebApplicationInitializer; |
||||
|
||||
/** |
||||
* Interface used to configure a Servlet 3.0+ {@link ServletContext context} |
||||
* programmatically. Unlike {@link WebApplicationInitializer}, classes that implement this |
||||
* interface (and do not implement {@link WebApplicationInitializer}) will <b>not</b> be |
||||
* detected by {@link SpringServletContainerInitializer} and hence will not be |
||||
* automatically bootstrapped by the Servlet container. |
||||
* <p> |
||||
* This interface is primarily designed to allow {@link ServletContextInitializer}s to be |
||||
* managed by Spring and not the Servlet container. |
||||
* <p> |
||||
* For configuration examples see {@link WebApplicationInitializer}. |
||||
* |
||||
* @author Phillip Webb |
||||
* @see WebApplicationInitializer |
||||
* @deprecated as of 1.4 in favor of |
||||
* {@link org.springframework.boot.web.servlet.ServletContextInitializer} |
||||
*/ |
||||
@Deprecated |
||||
public interface ServletContextInitializer |
||||
extends org.springframework.boot.web.servlet.ServletContextInitializer { |
||||
|
||||
} |
||||
@ -1,66 +0,0 @@
@@ -1,66 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2016 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 |
||||
* |
||||
* 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.springframework.boot.context.embedded; |
||||
|
||||
import java.util.EventListener; |
||||
|
||||
import javax.servlet.ServletContext; |
||||
import javax.servlet.ServletContextAttributeListener; |
||||
import javax.servlet.ServletContextListener; |
||||
import javax.servlet.ServletRequestAttributeListener; |
||||
import javax.servlet.ServletRequestListener; |
||||
import javax.servlet.http.HttpSessionAttributeListener; |
||||
import javax.servlet.http.HttpSessionListener; |
||||
|
||||
import org.springframework.boot.web.servlet.ServletContextInitializer; |
||||
|
||||
/** |
||||
* A {@link ServletContextInitializer} to register {@link EventListener}s in a Servlet |
||||
* 3.0+ container. Similar to the {@link ServletContext#addListener(EventListener) |
||||
* registration} features provided by {@link ServletContext} but with a Spring Bean |
||||
* friendly design. |
||||
* |
||||
* This bean can be used to register the following types of listener: |
||||
* <ul> |
||||
* <li>{@link ServletContextAttributeListener}</li> |
||||
* <li>{@link ServletRequestListener}</li> |
||||
* <li>{@link ServletRequestAttributeListener}</li> |
||||
* <li>{@link HttpSessionAttributeListener}</li> |
||||
* <li>{@link HttpSessionListener}</li> |
||||
* <li>{@link ServletContextListener}</li> |
||||
* </ul> |
||||
* |
||||
* @param <T> the type of listener |
||||
* @author Dave Syer |
||||
* @author Phillip Webb |
||||
* @deprecated as of 1.4 in favor of |
||||
* {@link org.springframework.boot.web.servlet.ServletListenerRegistrationBean} |
||||
*/ |
||||
@Deprecated |
||||
public class ServletListenerRegistrationBean<T extends EventListener> |
||||
extends org.springframework.boot.web.servlet.ServletListenerRegistrationBean<T> |
||||
implements org.springframework.boot.context.embedded.ServletContextInitializer { |
||||
|
||||
public ServletListenerRegistrationBean() { |
||||
super(); |
||||
} |
||||
|
||||
public ServletListenerRegistrationBean(T listener) { |
||||
super(listener); |
||||
} |
||||
|
||||
} |
||||
@ -1,60 +0,0 @@
@@ -1,60 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2016 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 |
||||
* |
||||
* 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.springframework.boot.context.embedded; |
||||
|
||||
import javax.servlet.Servlet; |
||||
import javax.servlet.ServletContext; |
||||
|
||||
import org.springframework.boot.web.servlet.ServletContextInitializer; |
||||
|
||||
/** |
||||
* A {@link ServletContextInitializer} to register {@link Servlet}s in a Servlet 3.0+ |
||||
* container. Similar to the {@link ServletContext#addServlet(String, Servlet) |
||||
* registration} features provided by {@link ServletContext} but with a Spring Bean |
||||
* friendly design. |
||||
* <p> |
||||
* The {@link #setServlet(Servlet) servlet} must be specified before calling |
||||
* {@link #onStartup}. URL mapping can be configured used {@link #setUrlMappings} or |
||||
* omitted when mapping to '/*' (unless |
||||
* {@link #ServletRegistrationBean(Servlet, boolean, String...) alwaysMapUrl} is set to |
||||
* {@code false}). The servlet name will be deduced if not specified. |
||||
* |
||||
* @author Phillip Webb |
||||
* @see ServletContextInitializer |
||||
* @see ServletContext#addServlet(String, Servlet) |
||||
* @deprecated as of 1.4 in favor of |
||||
* {@link org.springframework.boot.web.servlet.ServletRegistrationBean} |
||||
*/ |
||||
@Deprecated |
||||
public class ServletRegistrationBean |
||||
extends org.springframework.boot.web.servlet.ServletRegistrationBean |
||||
implements org.springframework.boot.context.embedded.ServletContextInitializer { |
||||
|
||||
public ServletRegistrationBean() { |
||||
super(); |
||||
} |
||||
|
||||
public ServletRegistrationBean(Servlet servlet, boolean alwaysMapUrl, |
||||
String... urlMappings) { |
||||
super(servlet, alwaysMapUrl, urlMappings); |
||||
} |
||||
|
||||
public ServletRegistrationBean(Servlet servlet, String... urlMappings) { |
||||
super(servlet, urlMappings); |
||||
} |
||||
|
||||
} |
||||
@ -1,49 +0,0 @@
@@ -1,49 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2016 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 |
||||
* |
||||
* 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.springframework.boot.context.web; |
||||
|
||||
import javax.servlet.Filter; |
||||
|
||||
import org.springframework.boot.web.servlet.ErrorPageRegistrar; |
||||
import org.springframework.boot.web.servlet.ErrorPageRegistry; |
||||
import org.springframework.core.Ordered; |
||||
import org.springframework.core.annotation.Order; |
||||
import org.springframework.stereotype.Component; |
||||
|
||||
/** |
||||
* A Servlet {@link Filter} that provides an {@link ErrorPageRegistry} for non-embedded |
||||
* applications (i.e. deployed WAR files). It registers error pages and handles |
||||
* application errors by filtering requests and forwarding to the error pages instead of |
||||
* letting the container handle them. Error pages are a feature of the servlet spec but |
||||
* there is no Java API for registering them in the spec. This filter works around that by |
||||
* accepting error page registrations from Spring Boot's {@link ErrorPageRegistrar} (any |
||||
* beans of that type in the context will be applied to this container). |
||||
* |
||||
* @author Dave Syer |
||||
* @author Phillip Webb |
||||
* @author Andy Wilkinson |
||||
* @since 1.4.0 |
||||
* @deprecated as of 1.4 in favor of |
||||
* {@link org.springframework.boot.web.support.ErrorPageFilter} |
||||
*/ |
||||
@Component |
||||
@Order(Ordered.HIGHEST_PRECEDENCE) |
||||
@Deprecated |
||||
public class ErrorPageFilter extends org.springframework.boot.web.support.ErrorPageFilter |
||||
implements NonEmbeddedServletContainerFactory { |
||||
|
||||
} |
||||
@ -1,32 +0,0 @@
@@ -1,32 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2016 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 |
||||
* |
||||
* 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.springframework.boot.context.web; |
||||
|
||||
import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory; |
||||
import org.springframework.boot.web.servlet.ErrorPageRegistry; |
||||
|
||||
/** |
||||
* Marker interface for {@link EmbeddedServletContainerFactory} types that are actually |
||||
* safe to run in a non-embedded container. |
||||
* |
||||
* @author Dave Syer |
||||
* @deprecated as of 1.4 in favor of {@link ErrorPageRegistry} |
||||
*/ |
||||
@Deprecated |
||||
public interface NonEmbeddedServletContainerFactory { |
||||
|
||||
} |
||||
@ -1,34 +0,0 @@
@@ -1,34 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2016 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 |
||||
* |
||||
* 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.springframework.boot.context.web; |
||||
|
||||
import org.springframework.core.Ordered; |
||||
import org.springframework.web.filter.CharacterEncodingFilter; |
||||
|
||||
/** |
||||
* {@link CharacterEncodingFilter} that also implements {@link Ordered}. |
||||
* |
||||
* @author Phillip Webb |
||||
* @since 1.2.1 |
||||
* @deprecated as of 1.4 in favor of |
||||
* {@link org.springframework.boot.web.filter.OrderedCharacterEncodingFilter} |
||||
*/ |
||||
@Deprecated |
||||
public class OrderedCharacterEncodingFilter |
||||
extends org.springframework.boot.web.filter.OrderedCharacterEncodingFilter { |
||||
|
||||
} |
||||
@ -1,39 +0,0 @@
@@ -1,39 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2016 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 |
||||
* |
||||
* 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.springframework.boot.context.web; |
||||
|
||||
import org.springframework.core.Ordered; |
||||
import org.springframework.web.filter.HiddenHttpMethodFilter; |
||||
|
||||
/** |
||||
* {@link HiddenHttpMethodFilter} that also implements {@link Ordered}. |
||||
* |
||||
* @author Phillip Webb |
||||
* @since 1.2.4 |
||||
* @deprecated as of 1.4 in favor of |
||||
* {@link org.springframework.boot.web.filter.OrderedHiddenHttpMethodFilter} |
||||
*/ |
||||
@Deprecated |
||||
public class OrderedHiddenHttpMethodFilter |
||||
extends org.springframework.boot.web.filter.OrderedHiddenHttpMethodFilter { |
||||
|
||||
/** |
||||
* The default order is high to ensure the filter is applied before Spring Security. |
||||
*/ |
||||
public static final int DEFAULT_ORDER = org.springframework.boot.web.filter.OrderedHiddenHttpMethodFilter.DEFAULT_ORDER; |
||||
|
||||
} |
||||
@ -1,39 +0,0 @@
@@ -1,39 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2016 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 |
||||
* |
||||
* 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.springframework.boot.context.web; |
||||
|
||||
import org.springframework.core.Ordered; |
||||
import org.springframework.web.filter.HttpPutFormContentFilter; |
||||
|
||||
/** |
||||
* {@link HttpPutFormContentFilter} that also implements {@link Ordered}. |
||||
* |
||||
* @author Joao Pedro Evangelista |
||||
* @since 1.3.0 |
||||
* @deprecated as of 1.4 in favor of |
||||
* {@link org.springframework.boot.web.filter.OrderedHttpPutFormContentFilter} |
||||
*/ |
||||
@Deprecated |
||||
public class OrderedHttpPutFormContentFilter |
||||
extends org.springframework.boot.web.filter.OrderedHttpPutFormContentFilter { |
||||
|
||||
/** |
||||
* Higher order to ensure the filter is applied before Spring Security. |
||||
*/ |
||||
public static final int DEFAULT_ORDER = org.springframework.boot.web.filter.OrderedHttpPutFormContentFilter.DEFAULT_ORDER; |
||||
|
||||
} |
||||
@ -1,34 +0,0 @@
@@ -1,34 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2016 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 |
||||
* |
||||
* 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.springframework.boot.context.web; |
||||
|
||||
import org.springframework.core.Ordered; |
||||
import org.springframework.web.filter.RequestContextFilter; |
||||
|
||||
/** |
||||
* {@link RequestContextFilter} that also implements {@link Ordered}. |
||||
* |
||||
* @author Phillip Webb |
||||
* @since 1.3.0 |
||||
* @deprecated as of 1.4 in favor of |
||||
* {@link org.springframework.boot.web.filter.OrderedRequestContextFilter} |
||||
*/ |
||||
@Deprecated |
||||
public class OrderedRequestContextFilter |
||||
extends org.springframework.boot.web.filter.OrderedRequestContextFilter { |
||||
|
||||
} |
||||
@ -1,48 +0,0 @@
@@ -1,48 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2016 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 |
||||
* |
||||
* 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.springframework.boot.context.web; |
||||
|
||||
import org.springframework.beans.factory.annotation.Value; |
||||
import org.springframework.boot.context.embedded.EmbeddedServletContainer; |
||||
import org.springframework.boot.context.embedded.EmbeddedWebApplicationContext; |
||||
import org.springframework.context.ApplicationContextInitializer; |
||||
import org.springframework.core.env.Environment; |
||||
|
||||
/** |
||||
* {@link ApplicationContextInitializer} that sets {@link Environment} properties for the |
||||
* ports that {@link EmbeddedServletContainer} servers are actually listening on. The |
||||
* property {@literal "local.server.port"} can be injected directly into tests using |
||||
* {@link Value @Value} or obtained via the {@link Environment}. |
||||
* <p> |
||||
* If the {@link EmbeddedWebApplicationContext} has a |
||||
* {@link EmbeddedWebApplicationContext#setNamespace(String) namespace} set, it will be |
||||
* used to construct the property name. For example, the "management" actuator context |
||||
* will have the property name {@literal "local.management.port"}. |
||||
* <p> |
||||
* Properties are automatically propagated up to any parent context. |
||||
* |
||||
* @author Dave Syer |
||||
* @author Phillip Webb |
||||
* @since 1.3.0 |
||||
* @deprecated as of 1.4 in favor of |
||||
* {@link org.springframework.boot.context.embedded.ServerPortInfoApplicationContextInitializer} |
||||
*/ |
||||
@Deprecated |
||||
public class ServerPortInfoApplicationContextInitializer extends |
||||
org.springframework.boot.context.embedded.ServerPortInfoApplicationContextInitializer { |
||||
|
||||
} |
||||
@ -1,44 +0,0 @@
@@ -1,44 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2016 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 |
||||
* |
||||
* 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.springframework.boot.context.web; |
||||
|
||||
import javax.servlet.ServletContext; |
||||
|
||||
import org.springframework.context.ApplicationContextInitializer; |
||||
|
||||
/** |
||||
* {@link ApplicationContextInitializer} for setting the servlet context. |
||||
* |
||||
* @author Dave Syer |
||||
* @author Phillip Webb |
||||
* @deprecated as of 1.4 in favor of |
||||
* {@link org.springframework.boot.web.support.ServletContextApplicationContextInitializer} |
||||
*/ |
||||
@Deprecated |
||||
public class ServletContextApplicationContextInitializer extends |
||||
org.springframework.boot.web.support.ServletContextApplicationContextInitializer { |
||||
|
||||
public ServletContextApplicationContextInitializer(ServletContext servletContext, |
||||
boolean addApplicationContextAttribute) { |
||||
super(servletContext, addApplicationContextAttribute); |
||||
} |
||||
|
||||
public ServletContextApplicationContextInitializer(ServletContext servletContext) { |
||||
super(servletContext); |
||||
} |
||||
|
||||
} |
||||
@ -1,56 +0,0 @@
@@ -1,56 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2016 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 |
||||
* |
||||
* 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.springframework.boot.context.web; |
||||
|
||||
import javax.servlet.Filter; |
||||
import javax.servlet.Servlet; |
||||
|
||||
import org.springframework.boot.SpringApplication; |
||||
import org.springframework.boot.builder.SpringApplicationBuilder; |
||||
import org.springframework.boot.web.servlet.ServletContextInitializer; |
||||
import org.springframework.web.WebApplicationInitializer; |
||||
|
||||
/** |
||||
* An opinionated {@link WebApplicationInitializer} to run a {@link SpringApplication} |
||||
* from a traditional WAR deployment. Binds {@link Servlet}, {@link Filter} and |
||||
* {@link ServletContextInitializer} beans from the application context to the servlet |
||||
* container. |
||||
* <p> |
||||
* To configure the application either override the |
||||
* {@link #configure(SpringApplicationBuilder)} method (calling |
||||
* {@link SpringApplicationBuilder#sources(Object...)}) or make the initializer itself a |
||||
* {@code @Configuration}. If you are using {@link SpringBootServletInitializer} in |
||||
* combination with other {@link WebApplicationInitializer WebApplicationInitializers} you |
||||
* might also want to add an {@code @Ordered} annotation to configure a specific startup |
||||
* order. |
||||
* <p> |
||||
* Note that a WebApplicationInitializer is only needed if you are building a war file and |
||||
* deploying it. If you prefer to run an embedded container then you won't need this at |
||||
* all. |
||||
* |
||||
* @author Dave Syer |
||||
* @author Phillip Webb |
||||
* @author Andy Wilkinson |
||||
* @see #configure(SpringApplicationBuilder) |
||||
* @deprecated as of 1.4 in favor of |
||||
* {@link org.springframework.boot.web.support.SpringBootServletInitializer} |
||||
*/ |
||||
@Deprecated |
||||
public abstract class SpringBootServletInitializer |
||||
extends org.springframework.boot.web.support.SpringBootServletInitializer { |
||||
|
||||
} |
||||
@ -1,21 +0,0 @@
@@ -1,21 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2014 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 |
||||
* |
||||
* 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. |
||||
*/ |
||||
|
||||
/** |
||||
* Spring {@link org.springframework.context.ApplicationContext} support relating to web |
||||
* deployment. |
||||
*/ |
||||
package org.springframework.boot.context.web; |
||||
@ -1,90 +0,0 @@
@@ -1,90 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2016 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 |
||||
* |
||||
* 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.springframework.boot.orm.jpa; |
||||
|
||||
import java.lang.annotation.Documented; |
||||
import java.lang.annotation.ElementType; |
||||
import java.lang.annotation.Retention; |
||||
import java.lang.annotation.RetentionPolicy; |
||||
import java.lang.annotation.Target; |
||||
|
||||
import org.springframework.context.annotation.Import; |
||||
import org.springframework.core.annotation.AliasFor; |
||||
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; |
||||
|
||||
/** |
||||
* Configures the {@link LocalContainerEntityManagerFactoryBean} to scan for entity |
||||
* classes in the classpath. This annotation provides an alternative to manually setting |
||||
* {@link LocalContainerEntityManagerFactoryBean#setPackagesToScan(String...)} and is |
||||
* particularly useful if you want to configure entity scanning in a type-safe way, or if |
||||
* your {@link LocalContainerEntityManagerFactoryBean} is auto-configured. |
||||
* <p> |
||||
* A {@link LocalContainerEntityManagerFactoryBean} must be configured within your Spring |
||||
* ApplicationContext in order to use entity scanning. Furthermore, any existing |
||||
* {@code packagesToScan} setting will be replaced. |
||||
* <p> |
||||
* One of {@link #basePackageClasses()}, {@link #basePackages()} or its alias |
||||
* {@link #value()} may be specified to define specific packages to scan. If specific |
||||
* packages are not defined scanning will occur from the package of the class with this |
||||
* annotation. |
||||
* |
||||
* @author Phillip Webb |
||||
* @deprecated as of 1.4 in favor of |
||||
* {@code org.springframework.boot.autoconfigure.domain.EntityScan} or explicit |
||||
* configuration of the {@link LocalContainerEntityManagerFactoryBean} (either |
||||
* {@link LocalContainerEntityManagerFactoryBean#setPackagesToScan(String...) directly} or |
||||
* using the {@link EntityManagerFactoryBuilder.Builder#packages(Class...) |
||||
* EntityManagerFactoryBuilder}). |
||||
*/ |
||||
@Target(ElementType.TYPE) |
||||
@Retention(RetentionPolicy.RUNTIME) |
||||
@Documented |
||||
@Import(EntityScanRegistrar.class) |
||||
@Deprecated |
||||
public @interface EntityScan { |
||||
|
||||
/** |
||||
* Alias for the {@link #basePackages()} attribute. Allows for more concise annotation |
||||
* declarations e.g.: {@code @EntityScan("org.my.pkg")} instead of |
||||
* {@code @EntityScan(basePackages="org.my.pkg")}. |
||||
* @return the base packages to scan |
||||
*/ |
||||
@AliasFor("basePackages") |
||||
String[] value() default {}; |
||||
|
||||
/** |
||||
* Base packages to scan for annotated entities. {@link #value()} is an alias for (and |
||||
* mutually exclusive with) this attribute. |
||||
* <p> |
||||
* Use {@link #basePackageClasses()} for a type-safe alternative to String-based |
||||
* package names. |
||||
* @return the base packages to scan |
||||
*/ |
||||
@AliasFor("value") |
||||
String[] basePackages() default {}; |
||||
|
||||
/** |
||||
* Type-safe alternative to {@link #basePackages()} for specifying the packages to |
||||
* scan for annotated entities. The package of each class specified will be scanned. |
||||
* <p> |
||||
* Consider creating a special no-op marker class or interface in each package that |
||||
* serves no purpose other than being referenced by this attribute. |
||||
* @return classes from the base packages to scan |
||||
*/ |
||||
Class<?>[] basePackageClasses() default {}; |
||||
|
||||
} |
||||
@ -1,157 +0,0 @@
@@ -1,157 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2016 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 |
||||
* |
||||
* 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.springframework.boot.orm.jpa; |
||||
|
||||
import java.util.Arrays; |
||||
import java.util.Collections; |
||||
import java.util.LinkedHashSet; |
||||
import java.util.Set; |
||||
|
||||
import org.springframework.beans.BeansException; |
||||
import org.springframework.beans.factory.SmartInitializingSingleton; |
||||
import org.springframework.beans.factory.config.BeanDefinition; |
||||
import org.springframework.beans.factory.config.BeanPostProcessor; |
||||
import org.springframework.beans.factory.config.ConstructorArgumentValues.ValueHolder; |
||||
import org.springframework.beans.factory.support.BeanDefinitionRegistry; |
||||
import org.springframework.beans.factory.support.GenericBeanDefinition; |
||||
import org.springframework.context.annotation.ImportBeanDefinitionRegistrar; |
||||
import org.springframework.core.Ordered; |
||||
import org.springframework.core.annotation.AnnotationAttributes; |
||||
import org.springframework.core.type.AnnotationMetadata; |
||||
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; |
||||
import org.springframework.util.Assert; |
||||
import org.springframework.util.ClassUtils; |
||||
|
||||
/** |
||||
* {@link ImportBeanDefinitionRegistrar} used by {@link EntityScan}. |
||||
* |
||||
* @author Phillip Webb |
||||
* @author Oliver Gierke |
||||
* @deprecated as of 1.4 along with {@link EntityScan} |
||||
*/ |
||||
@Deprecated |
||||
class EntityScanRegistrar implements ImportBeanDefinitionRegistrar { |
||||
|
||||
private static final String BEAN_NAME = "entityScanBeanPostProcessor"; |
||||
|
||||
@Override |
||||
public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, |
||||
BeanDefinitionRegistry registry) { |
||||
Set<String> packagesToScan = getPackagesToScan(importingClassMetadata); |
||||
if (!registry.containsBeanDefinition(BEAN_NAME)) { |
||||
addEntityScanBeanPostProcessor(registry, packagesToScan); |
||||
} |
||||
else { |
||||
updateEntityScanBeanPostProcessor(registry, packagesToScan); |
||||
} |
||||
} |
||||
|
||||
private Set<String> getPackagesToScan(AnnotationMetadata metadata) { |
||||
AnnotationAttributes attributes = AnnotationAttributes |
||||
.fromMap(metadata.getAnnotationAttributes(EntityScan.class.getName())); |
||||
String[] basePackages = attributes.getAliasedStringArray("basePackages", |
||||
EntityScan.class, metadata.getClassName()); |
||||
Class<?>[] basePackageClasses = attributes.getClassArray("basePackageClasses"); |
||||
Set<String> packagesToScan = new LinkedHashSet<String>(); |
||||
packagesToScan.addAll(Arrays.asList(basePackages)); |
||||
for (Class<?> basePackageClass : basePackageClasses) { |
||||
packagesToScan.add(ClassUtils.getPackageName(basePackageClass)); |
||||
} |
||||
if (packagesToScan.isEmpty()) { |
||||
return Collections |
||||
.singleton(ClassUtils.getPackageName(metadata.getClassName())); |
||||
} |
||||
return packagesToScan; |
||||
} |
||||
|
||||
private void addEntityScanBeanPostProcessor(BeanDefinitionRegistry registry, |
||||
Set<String> packagesToScan) { |
||||
GenericBeanDefinition beanDefinition = new GenericBeanDefinition(); |
||||
beanDefinition.setBeanClass(EntityScanBeanPostProcessor.class); |
||||
beanDefinition.getConstructorArgumentValues() |
||||
.addGenericArgumentValue(toArray(packagesToScan)); |
||||
beanDefinition.setRole(BeanDefinition.ROLE_INFRASTRUCTURE); |
||||
// We don't need this one to be post processed otherwise it can cause a
|
||||
// cascade of bean instantiation that we would rather avoid.
|
||||
beanDefinition.setSynthetic(true); |
||||
registry.registerBeanDefinition(BEAN_NAME, beanDefinition); |
||||
} |
||||
|
||||
private void updateEntityScanBeanPostProcessor(BeanDefinitionRegistry registry, |
||||
Set<String> packagesToScan) { |
||||
BeanDefinition definition = registry.getBeanDefinition(BEAN_NAME); |
||||
ValueHolder constructorArguments = definition.getConstructorArgumentValues() |
||||
.getGenericArgumentValue(String[].class); |
||||
Set<String> mergedPackages = new LinkedHashSet<String>(); |
||||
mergedPackages.addAll(Arrays.asList((String[]) constructorArguments.getValue())); |
||||
mergedPackages.addAll(packagesToScan); |
||||
constructorArguments.setValue(toArray(mergedPackages)); |
||||
} |
||||
|
||||
private String[] toArray(Set<String> set) { |
||||
return set.toArray(new String[set.size()]); |
||||
} |
||||
|
||||
/** |
||||
* {@link BeanPostProcessor} to set |
||||
* {@link LocalContainerEntityManagerFactoryBean#setPackagesToScan(String...)} based |
||||
* on an {@link EntityScan} annotation. |
||||
*/ |
||||
static class EntityScanBeanPostProcessor |
||||
implements BeanPostProcessor, SmartInitializingSingleton, Ordered { |
||||
|
||||
private final String[] packagesToScan; |
||||
|
||||
private boolean processed; |
||||
|
||||
EntityScanBeanPostProcessor(String[] packagesToScan) { |
||||
this.packagesToScan = packagesToScan; |
||||
} |
||||
|
||||
@Override |
||||
public Object postProcessBeforeInitialization(Object bean, String beanName) |
||||
throws BeansException { |
||||
if (bean instanceof LocalContainerEntityManagerFactoryBean) { |
||||
LocalContainerEntityManagerFactoryBean factoryBean = (LocalContainerEntityManagerFactoryBean) bean; |
||||
factoryBean.setPackagesToScan(this.packagesToScan); |
||||
this.processed = true; |
||||
} |
||||
return bean; |
||||
} |
||||
|
||||
@Override |
||||
public Object postProcessAfterInitialization(Object bean, String beanName) |
||||
throws BeansException { |
||||
return bean; |
||||
} |
||||
|
||||
@Override |
||||
public void afterSingletonsInstantiated() { |
||||
Assert.state(this.processed, |
||||
"Unable to configure " |
||||
+ "LocalContainerEntityManagerFactoryBean from @EntityScan, " |
||||
+ "ensure an appropriate bean is registered."); |
||||
} |
||||
|
||||
@Override |
||||
public int getOrder() { |
||||
return 0; |
||||
} |
||||
|
||||
} |
||||
|
||||
} |
||||
@ -1,68 +0,0 @@
@@ -1,68 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2015 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 |
||||
* |
||||
* 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.springframework.boot.yaml; |
||||
|
||||
import java.util.Collections; |
||||
import java.util.Properties; |
||||
import java.util.Set; |
||||
|
||||
import org.springframework.beans.factory.config.YamlProcessor.DocumentMatcher; |
||||
import org.springframework.beans.factory.config.YamlProcessor.MatchStatus; |
||||
import org.springframework.util.StringUtils; |
||||
|
||||
/** |
||||
* Matches a document containing a given key and where the value of that key is an array |
||||
* containing one of the given values, or where one of the values matches one of the given |
||||
* values (interpreted as regexes). |
||||
* |
||||
* @author Dave Syer |
||||
* @deprecated as of 1.4.1 in favor of exact String-based matching |
||||
*/ |
||||
@Deprecated |
||||
public class ArrayDocumentMatcher implements DocumentMatcher { |
||||
|
||||
private final String key; |
||||
|
||||
private final String[] patterns; |
||||
|
||||
public ArrayDocumentMatcher(final String key, final String... patterns) { |
||||
this.key = key; |
||||
this.patterns = patterns; |
||||
|
||||
} |
||||
|
||||
@Override |
||||
public MatchStatus matches(Properties properties) { |
||||
if (!properties.containsKey(this.key)) { |
||||
return MatchStatus.ABSTAIN; |
||||
} |
||||
Set<String> values = StringUtils |
||||
.commaDelimitedListToSet(properties.getProperty(this.key)); |
||||
if (values.isEmpty()) { |
||||
values = Collections.singleton(""); |
||||
} |
||||
for (String pattern : this.patterns) { |
||||
for (String value : values) { |
||||
if (value.matches(pattern)) { |
||||
return MatchStatus.FOUND; |
||||
} |
||||
} |
||||
} |
||||
return MatchStatus.NOT_FOUND; |
||||
} |
||||
|
||||
} |
||||
@ -1,42 +0,0 @@
@@ -1,42 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2014 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 |
||||
* |
||||
* 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.springframework.boot.yaml; |
||||
|
||||
import java.util.Properties; |
||||
|
||||
import org.springframework.beans.factory.config.YamlProcessor.DocumentMatcher; |
||||
import org.springframework.beans.factory.config.YamlProcessor.MatchStatus; |
||||
|
||||
/** |
||||
* A {@link DocumentMatcher} that matches the default profile implicitly but not |
||||
* explicitly (i.e. matches if "spring.profiles" is not found and not otherwise). |
||||
* |
||||
* @author Dave Syer |
||||
* @deprecated since 1.4.1 as it is no longer used |
||||
*/ |
||||
@Deprecated |
||||
public class DefaultProfileDocumentMatcher implements DocumentMatcher { |
||||
|
||||
@Override |
||||
public MatchStatus matches(Properties properties) { |
||||
if (!properties.containsKey("spring.profiles")) { |
||||
return MatchStatus.FOUND; |
||||
} |
||||
return MatchStatus.NOT_FOUND; |
||||
} |
||||
|
||||
} |
||||
@ -1,71 +0,0 @@
@@ -1,71 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2016 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 |
||||
* |
||||
* 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.springframework.boot.orm.jpa; |
||||
|
||||
import java.util.Collections; |
||||
import java.util.LinkedHashMap; |
||||
import java.util.Map; |
||||
|
||||
import javax.sql.DataSource; |
||||
|
||||
import org.junit.Test; |
||||
|
||||
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; |
||||
import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter; |
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat; |
||||
import static org.mockito.Mockito.mock; |
||||
|
||||
/** |
||||
* Tests for {@link EntityManagerFactoryBuilder}. |
||||
* |
||||
* @author Dave Syer |
||||
*/ |
||||
@Deprecated |
||||
public class EntityManagerFactoryBuilderTests { |
||||
|
||||
private Map<String, Object> properties = new LinkedHashMap<String, Object>(); |
||||
|
||||
private DataSource dataSource1 = mock(DataSource.class); |
||||
|
||||
private DataSource dataSource2 = mock(DataSource.class); |
||||
|
||||
@Test |
||||
public void entityManagerFactoryPropertiesNotOverwritingDefaults() { |
||||
EntityManagerFactoryBuilder factory = new EntityManagerFactoryBuilder( |
||||
new HibernateJpaVendorAdapter(), this.properties, null); |
||||
LocalContainerEntityManagerFactoryBean result1 = factory |
||||
.dataSource(this.dataSource1) |
||||
.properties(Collections.singletonMap("foo", "spam")).build(); |
||||
assertThat(result1.getJpaPropertyMap().isEmpty()).isFalse(); |
||||
assertThat(this.properties.isEmpty()).isTrue(); |
||||
} |
||||
|
||||
@Test |
||||
public void multipleEntityManagerFactoriesDoNotOverwriteEachOther() { |
||||
EntityManagerFactoryBuilder factory = new EntityManagerFactoryBuilder( |
||||
new HibernateJpaVendorAdapter(), this.properties, null); |
||||
LocalContainerEntityManagerFactoryBean result1 = factory |
||||
.dataSource(this.dataSource1) |
||||
.properties(Collections.singletonMap("foo", "spam")).build(); |
||||
assertThat(result1.getJpaPropertyMap().isEmpty()).isFalse(); |
||||
LocalContainerEntityManagerFactoryBean result2 = factory |
||||
.dataSource(this.dataSource2).build(); |
||||
assertThat(result2.getJpaPropertyMap().isEmpty()).isTrue(); |
||||
} |
||||
|
||||
} |
||||
@ -1,171 +0,0 @@
@@ -1,171 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2016 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 |
||||
* |
||||
* 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.springframework.boot.orm.jpa; |
||||
|
||||
import javax.persistence.EntityManagerFactory; |
||||
import javax.persistence.PersistenceException; |
||||
|
||||
import org.junit.After; |
||||
import org.junit.Rule; |
||||
import org.junit.Test; |
||||
import org.junit.rules.ExpectedException; |
||||
|
||||
import org.springframework.beans.BeansException; |
||||
import org.springframework.beans.factory.config.BeanPostProcessor; |
||||
import org.springframework.beans.factory.support.RootBeanDefinition; |
||||
import org.springframework.context.annotation.AnnotationConfigApplicationContext; |
||||
import org.springframework.context.annotation.Bean; |
||||
import org.springframework.context.annotation.Configuration; |
||||
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; |
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat; |
||||
import static org.mockito.Mockito.mock; |
||||
|
||||
/** |
||||
* Tests for {@link EntityScan}. |
||||
* |
||||
* @author Phillip Webb |
||||
* @author Stephane Nicoll |
||||
*/ |
||||
@Deprecated |
||||
public class EntityScanTests { |
||||
|
||||
@Rule |
||||
public ExpectedException thrown = ExpectedException.none(); |
||||
|
||||
private AnnotationConfigApplicationContext context; |
||||
|
||||
@After |
||||
public void closeContext() { |
||||
if (this.context != null) { |
||||
this.context.close(); |
||||
} |
||||
} |
||||
|
||||
@Test |
||||
public void simpleValue() throws Exception { |
||||
this.context = new AnnotationConfigApplicationContext(ValueConfig.class); |
||||
assertSetPackagesToScan("com.mycorp.entity"); |
||||
} |
||||
|
||||
@Test |
||||
public void simpleValueAsm() throws Exception { |
||||
this.context = new AnnotationConfigApplicationContext(); |
||||
this.context.registerBeanDefinition("valueConfig", |
||||
new RootBeanDefinition(ValueConfig.class.getName())); |
||||
this.context.refresh(); |
||||
assertSetPackagesToScan("com.mycorp.entity"); |
||||
} |
||||
|
||||
@Test |
||||
public void needsEntityManageFactory() throws Exception { |
||||
this.thrown.expect(IllegalStateException.class); |
||||
this.thrown.expectMessage("Unable to configure " |
||||
+ "LocalContainerEntityManagerFactoryBean from @EntityScan, " |
||||
+ "ensure an appropriate bean is registered."); |
||||
this.context = new AnnotationConfigApplicationContext(MissingEntityManager.class); |
||||
} |
||||
|
||||
@Test |
||||
public void userDeclaredBeanPostProcessorWithEntityManagerDependencyDoesNotPreventConfigurationOfPackagesToScan() { |
||||
this.context = new AnnotationConfigApplicationContext( |
||||
BeanPostProcessorConfiguration.class, BaseConfig.class); |
||||
assertSetPackagesToScan("com.mycorp.entity"); |
||||
} |
||||
|
||||
private void assertSetPackagesToScan(String... expected) { |
||||
String[] actual = this.context |
||||
.getBean(TestLocalContainerEntityManagerFactoryBean.class) |
||||
.getPackagesToScan(); |
||||
assertThat(actual).isEqualTo(expected); |
||||
} |
||||
|
||||
@Configuration |
||||
static class BaseConfig { |
||||
|
||||
@Bean |
||||
public TestLocalContainerEntityManagerFactoryBean entityManagerFactoryBean() { |
||||
return new TestLocalContainerEntityManagerFactoryBean(); |
||||
} |
||||
|
||||
} |
||||
|
||||
@EntityScan("com.mycorp.entity") |
||||
@SuppressWarnings("deprecation") |
||||
static class ValueConfig extends BaseConfig { |
||||
} |
||||
|
||||
@Configuration |
||||
@EntityScan("com.mycorp.entity") |
||||
@SuppressWarnings("deprecation") |
||||
static class MissingEntityManager { |
||||
} |
||||
|
||||
@Configuration |
||||
@EntityScan("com.mycorp.entity") |
||||
@SuppressWarnings("deprecation") |
||||
static class BeanPostProcessorConfiguration { |
||||
|
||||
protected final EntityManagerFactory entityManagerFactory; |
||||
|
||||
BeanPostProcessorConfiguration(EntityManagerFactory entityManagerFactory) { |
||||
this.entityManagerFactory = entityManagerFactory; |
||||
} |
||||
|
||||
@Bean |
||||
public BeanPostProcessor beanPostProcessor() { |
||||
return new BeanPostProcessor() { |
||||
|
||||
@Override |
||||
public Object postProcessBeforeInitialization(Object bean, |
||||
String beanName) throws BeansException { |
||||
return bean; |
||||
} |
||||
|
||||
@Override |
||||
public Object postProcessAfterInitialization(Object bean, String beanName) |
||||
throws BeansException { |
||||
return bean; |
||||
} |
||||
}; |
||||
|
||||
} |
||||
} |
||||
|
||||
private static class TestLocalContainerEntityManagerFactoryBean |
||||
extends LocalContainerEntityManagerFactoryBean { |
||||
|
||||
private String[] packagesToScan; |
||||
|
||||
@Override |
||||
protected EntityManagerFactory createNativeEntityManagerFactory() |
||||
throws PersistenceException { |
||||
return mock(EntityManagerFactory.class); |
||||
} |
||||
|
||||
@Override |
||||
public void setPackagesToScan(String... packagesToScan) { |
||||
this.packagesToScan = packagesToScan; |
||||
} |
||||
|
||||
public String[] getPackagesToScan() { |
||||
return this.packagesToScan; |
||||
} |
||||
|
||||
} |
||||
|
||||
} |
||||
@ -1,64 +0,0 @@
@@ -1,64 +0,0 @@
|
||||
/* |
||||
* Copyright 2012-2016 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 |
||||
* |
||||
* 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.springframework.boot.yaml; |
||||
|
||||
import java.io.IOException; |
||||
import java.util.Properties; |
||||
|
||||
import org.junit.Test; |
||||
|
||||
import org.springframework.beans.factory.config.YamlProcessor.MatchStatus; |
||||
import org.springframework.core.io.ByteArrayResource; |
||||
import org.springframework.core.io.support.PropertiesLoaderUtils; |
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat; |
||||
|
||||
/** |
||||
* Tests for {@link ArrayDocumentMatcher}. |
||||
* |
||||
* @author Dave Syer |
||||
*/ |
||||
@Deprecated |
||||
public class ArrayDocumentMatcherTests { |
||||
|
||||
@Test |
||||
public void testMatchesSingleValue() throws IOException { |
||||
ArrayDocumentMatcher matcher = new ArrayDocumentMatcher("foo", "bar"); |
||||
assertThat(matcher.matches(getProperties("foo: bar"))) |
||||
.isEqualTo(MatchStatus.FOUND); |
||||
} |
||||
|
||||
@Test |
||||
public void testDoesNotMatchesIndexedArray() throws IOException { |
||||
ArrayDocumentMatcher matcher = new ArrayDocumentMatcher("foo", "bar"); |
||||
assertThat(matcher.matches(getProperties("foo[0]: bar\nfoo[1]: spam"))) |
||||
.isEqualTo(MatchStatus.ABSTAIN); |
||||
} |
||||
|
||||
@Test |
||||
public void testMatchesCommaSeparatedArray() throws IOException { |
||||
ArrayDocumentMatcher matcher = new ArrayDocumentMatcher("foo", "bar"); |
||||
assertThat(matcher.matches(getProperties("foo: bar,spam"))) |
||||
.isEqualTo(MatchStatus.FOUND); |
||||
} |
||||
|
||||
private Properties getProperties(String values) throws IOException { |
||||
return PropertiesLoaderUtils |
||||
.loadProperties(new ByteArrayResource(values.getBytes())); |
||||
} |
||||
|
||||
} |
||||
Loading…
Reference in new issue