Polish
This commit is contained in:
parent
b857a9001d
commit
9a529b41c1
|
|
@ -139,6 +139,7 @@
|
|||
<dependency>
|
||||
<groupId>org.apache.geronimo.specs</groupId>
|
||||
<artifactId>geronimo-jms_1.1_spec</artifactId>
|
||||
<optional>true</optional>
|
||||
</dependency>
|
||||
<!-- Test -->
|
||||
<dependency>
|
||||
|
|
|
|||
|
|
@ -41,34 +41,38 @@ import org.springframework.data.repository.config.RepositoryConfiguration;
|
|||
import org.springframework.data.repository.config.RepositoryConfigurationExtension;
|
||||
|
||||
/**
|
||||
* Base {@link ImportBeanDefinitionRegistrar} used to auto-configure Spring Data
|
||||
* Repositories.
|
||||
*
|
||||
* @author Phillip Webb
|
||||
* @author Dave Syer
|
||||
*/
|
||||
public abstract class AbstractRepositoryConfigurationSourceSupport implements
|
||||
BeanFactoryAware, ImportBeanDefinitionRegistrar, BeanClassLoaderAware {
|
||||
|
||||
private ClassLoader beanClassLoader;
|
||||
|
||||
private static Log logger = LogFactory
|
||||
.getLog(AbstractRepositoryConfigurationSourceSupport.class);
|
||||
|
||||
private ClassLoader beanClassLoader;
|
||||
|
||||
private BeanFactory beanFactory;
|
||||
|
||||
@Override
|
||||
public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata,
|
||||
final BeanDefinitionRegistry registry) {
|
||||
|
||||
final ResourceLoader resourceLoader = new DefaultResourceLoader();
|
||||
final AnnotationRepositoryConfigurationSource configurationSource = getConfigurationSource();
|
||||
final RepositoryConfigurationExtension extension = getRepositoryConfigurationExtension();
|
||||
ResourceLoader resourceLoader = new DefaultResourceLoader();
|
||||
AnnotationRepositoryConfigurationSource configurationSource = getConfigurationSource();
|
||||
RepositoryConfigurationExtension extension = getRepositoryConfigurationExtension();
|
||||
extension.registerBeansForRoot(registry, configurationSource);
|
||||
|
||||
final RepositoryBeanNameGenerator generator = new RepositoryBeanNameGenerator();
|
||||
RepositoryBeanNameGenerator generator = new RepositoryBeanNameGenerator();
|
||||
generator.setBeanClassLoader(this.beanClassLoader);
|
||||
|
||||
Collection<RepositoryConfiguration<AnnotationRepositoryConfigurationSource>> repositoryConfigurations = extension
|
||||
.getRepositoryConfigurations(configurationSource, resourceLoader);
|
||||
|
||||
for (final RepositoryConfiguration<AnnotationRepositoryConfigurationSource> repositoryConfiguration : repositoryConfigurations) {
|
||||
for (RepositoryConfiguration<AnnotationRepositoryConfigurationSource> repositoryConfiguration : repositoryConfigurations) {
|
||||
RepositoryBeanDefinitionBuilder builder = new RepositoryBeanDefinitionBuilder(
|
||||
repositoryConfiguration, extension);
|
||||
BeanDefinitionBuilder definitionBuilder = builder.build(registry,
|
||||
|
|
@ -82,21 +86,11 @@ public abstract class AbstractRepositoryConfigurationSourceSupport implements
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setBeanClassLoader(ClassLoader classLoader) {
|
||||
this.beanClassLoader = classLoader;
|
||||
}
|
||||
|
||||
protected abstract RepositoryConfigurationExtension getRepositoryConfigurationExtension();
|
||||
|
||||
protected abstract AnnotationRepositoryConfigurationSource getConfigurationSource();
|
||||
|
||||
protected AnnotationRepositoryConfigurationSource getConfigurationSource(
|
||||
Class<?> annotated, Class<? extends Annotation> annotation) {
|
||||
StandardAnnotationMetadata metadata = new StandardAnnotationMetadata(annotated,
|
||||
true);
|
||||
private AnnotationRepositoryConfigurationSource getConfigurationSource() {
|
||||
StandardAnnotationMetadata metadata = new StandardAnnotationMetadata(
|
||||
getConfiguration(), true);
|
||||
AnnotationRepositoryConfigurationSource configurationSource = new AnnotationRepositoryConfigurationSource(
|
||||
metadata, annotation) {
|
||||
metadata, getAnnotation()) {
|
||||
|
||||
@Override
|
||||
public java.lang.Iterable<String> getBasePackages() {
|
||||
|
|
@ -117,6 +111,26 @@ public abstract class AbstractRepositoryConfigurationSourceSupport implements
|
|||
return basePackages;
|
||||
}
|
||||
|
||||
/**
|
||||
* The Spring Data annotation used to enable the particular repository support.
|
||||
*/
|
||||
protected abstract Class<? extends Annotation> getAnnotation();
|
||||
|
||||
/**
|
||||
* The configuration class that will be used by Spring Boot as a template.
|
||||
*/
|
||||
protected abstract Class<?> getConfiguration();
|
||||
|
||||
/**
|
||||
* The {@link RepositoryConfigurationExtension} for the particular repository support.
|
||||
*/
|
||||
protected abstract RepositoryConfigurationExtension getRepositoryConfigurationExtension();
|
||||
|
||||
@Override
|
||||
public void setBeanClassLoader(ClassLoader classLoader) {
|
||||
this.beanClassLoader = classLoader;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
|
||||
this.beanFactory = beanFactory;
|
||||
|
|
|
|||
|
|
@ -16,10 +16,11 @@
|
|||
|
||||
package org.springframework.boot.autoconfigure.data;
|
||||
|
||||
import java.lang.annotation.Annotation;
|
||||
|
||||
import org.springframework.context.annotation.ImportBeanDefinitionRegistrar;
|
||||
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
|
||||
import org.springframework.data.jpa.repository.config.JpaRepositoryConfigExtension;
|
||||
import org.springframework.data.repository.config.AnnotationRepositoryConfigurationSource;
|
||||
import org.springframework.data.repository.config.RepositoryConfigurationExtension;
|
||||
|
||||
/**
|
||||
|
|
@ -33,9 +34,13 @@ class JpaRepositoriesAutoConfigureRegistrar extends
|
|||
AbstractRepositoryConfigurationSourceSupport {
|
||||
|
||||
@Override
|
||||
protected AnnotationRepositoryConfigurationSource getConfigurationSource() {
|
||||
return getConfigurationSource(EnableJpaRepositoriesConfiguration.class,
|
||||
EnableJpaRepositories.class);
|
||||
protected Class<? extends Annotation> getAnnotation() {
|
||||
return EnableJpaRepositories.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Class<?> getConfiguration() {
|
||||
return EnableJpaRepositoriesConfiguration.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -16,10 +16,11 @@
|
|||
|
||||
package org.springframework.boot.autoconfigure.data;
|
||||
|
||||
import java.lang.annotation.Annotation;
|
||||
|
||||
import org.springframework.context.annotation.ImportBeanDefinitionRegistrar;
|
||||
import org.springframework.data.mongodb.repository.config.EnableMongoRepositories;
|
||||
import org.springframework.data.mongodb.repository.config.MongoRepositoryConfigurationExtension;
|
||||
import org.springframework.data.repository.config.AnnotationRepositoryConfigurationSource;
|
||||
import org.springframework.data.repository.config.RepositoryConfigurationExtension;
|
||||
|
||||
/**
|
||||
|
|
@ -32,9 +33,13 @@ class MongoRepositoriesAutoConfigureRegistrar extends
|
|||
AbstractRepositoryConfigurationSourceSupport {
|
||||
|
||||
@Override
|
||||
protected AnnotationRepositoryConfigurationSource getConfigurationSource() {
|
||||
return getConfigurationSource(EnableMongoRepositoriesConfiguration.class,
|
||||
EnableMongoRepositories.class);
|
||||
protected Class<? extends Annotation> getAnnotation() {
|
||||
return EnableMongoRepositories.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Class<?> getConfiguration() {
|
||||
return EnableMongoRepositoriesConfiguration.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -41,11 +41,11 @@ public class JmsTemplateAutoConfiguration {
|
|||
protected static class JmsTemplateCreator {
|
||||
|
||||
@Autowired
|
||||
ConnectionFactory connectionFactory;
|
||||
private ConnectionFactory connectionFactory;
|
||||
|
||||
@Bean
|
||||
public JmsTemplate jmsTemplate() {
|
||||
JmsTemplate jmsTemplate = new JmsTemplate(connectionFactory);
|
||||
JmsTemplate jmsTemplate = new JmsTemplate(this.connectionFactory);
|
||||
jmsTemplate.setPubSubDomain(true);
|
||||
return jmsTemplate;
|
||||
}
|
||||
|
|
@ -56,10 +56,12 @@ public class JmsTemplateAutoConfiguration {
|
|||
@ConditionalOnClass(ActiveMQConnectionFactory.class)
|
||||
@ConditionalOnMissingBean(ConnectionFactory.class)
|
||||
protected static class ActiveMQConnectionFactoryCreator {
|
||||
|
||||
@Bean
|
||||
ConnectionFactory connectionFactory() {
|
||||
return new ActiveMQConnectionFactory("vm://localhost");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,11 +16,6 @@
|
|||
|
||||
package org.springframework.boot.autoconfigure.jms;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import javax.jms.ConnectionFactory;
|
||||
|
||||
import org.apache.activemq.ActiveMQConnectionFactory;
|
||||
|
|
@ -32,6 +27,11 @@ import org.springframework.context.annotation.Bean;
|
|||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.jms.core.JmsTemplate;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
/**
|
||||
* Tests for {@link JmsTemplateAutoConfiguration}.
|
||||
*
|
||||
|
|
@ -55,10 +55,6 @@ public class JmsTemplateAutoConfigurationTests {
|
|||
assertEquals(jmsTemplate.getConnectionFactory(), connectionFactory);
|
||||
}
|
||||
|
||||
@Configuration
|
||||
protected static class TestConfiguration {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testConnectionFactoryBackoff() {
|
||||
this.context = new AnnotationConfigApplicationContext();
|
||||
|
|
@ -69,18 +65,6 @@ public class JmsTemplateAutoConfigurationTests {
|
|||
.getBrokerURL());
|
||||
}
|
||||
|
||||
@Configuration
|
||||
protected static class TestConfiguration2 {
|
||||
@Bean
|
||||
ConnectionFactory connectionFactory() {
|
||||
return new ActiveMQConnectionFactory() {
|
||||
{
|
||||
setBrokerURL("foobar");
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testJmsTemplateBackoff() {
|
||||
this.context = new AnnotationConfigApplicationContext();
|
||||
|
|
@ -91,17 +75,6 @@ public class JmsTemplateAutoConfigurationTests {
|
|||
assertEquals(999, jmsTemplate.getPriority());
|
||||
}
|
||||
|
||||
@Configuration
|
||||
protected static class TestConfiguration3 {
|
||||
@Bean
|
||||
JmsTemplate jmsTemplate(ConnectionFactory connectionFactory) {
|
||||
JmsTemplate jmsTemplate = new JmsTemplate(connectionFactory);
|
||||
jmsTemplate.setPriority(999);
|
||||
return jmsTemplate;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testJmsTemplateBackoffEverything() {
|
||||
this.context = new AnnotationConfigApplicationContext();
|
||||
|
|
@ -134,6 +107,33 @@ public class JmsTemplateAutoConfigurationTests {
|
|||
assertFalse(jmsTemplate.isPubSubDomain());
|
||||
}
|
||||
|
||||
@Configuration
|
||||
protected static class TestConfiguration {
|
||||
}
|
||||
|
||||
@Configuration
|
||||
protected static class TestConfiguration2 {
|
||||
@Bean
|
||||
ConnectionFactory connectionFactory() {
|
||||
return new ActiveMQConnectionFactory() {
|
||||
{
|
||||
setBrokerURL("foobar");
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@Configuration
|
||||
protected static class TestConfiguration3 {
|
||||
@Bean
|
||||
JmsTemplate jmsTemplate(ConnectionFactory connectionFactory) {
|
||||
JmsTemplate jmsTemplate = new JmsTemplate(connectionFactory);
|
||||
jmsTemplate.setPriority(999);
|
||||
return jmsTemplate;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Configuration
|
||||
protected static class TestConfiguration4 implements BeanPostProcessor {
|
||||
@Override
|
||||
|
|
@ -152,5 +152,4 @@ public class JmsTemplateAutoConfigurationTests {
|
|||
return bean;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,6 +29,12 @@ import org.springframework.boot.cli.compiler.DependencyCustomizer;
|
|||
*/
|
||||
public class JdbcCompilerAutoConfiguration extends CompilerAutoConfiguration {
|
||||
|
||||
@Override
|
||||
public boolean matches(ClassNode classNode) {
|
||||
return AstUtils.hasAtLeastOneFieldOrMethod(classNode, "JdbcTemplate",
|
||||
"NamedParameterJdbcTemplate", "DataSource");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void applyDependencies(DependencyCustomizer dependencies) {
|
||||
dependencies.ifAnyMissingClasses("org.springframework.jdbc.core.JdbcTemplate")
|
||||
|
|
@ -36,12 +42,6 @@ public class JdbcCompilerAutoConfiguration extends CompilerAutoConfiguration {
|
|||
dependencies.getProperty("spring-boot.version"));
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean matches(ClassNode classNode) {
|
||||
return AstUtils.hasAtLeastOneFieldOrMethod(classNode, "JdbcTemplate",
|
||||
"NamedParameterJdbcTemplate", "DataSource");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void applyImports(ImportCustomizer imports) {
|
||||
imports.addStarImports("org.springframework.jdbc.core",
|
||||
|
|
|
|||
|
|
@ -36,6 +36,12 @@ import org.springframework.boot.cli.compiler.DependencyCustomizer;
|
|||
*/
|
||||
public class SpringMvcCompilerAutoConfiguration extends CompilerAutoConfiguration {
|
||||
|
||||
@Override
|
||||
public boolean matches(ClassNode classNode) {
|
||||
return AstUtils.hasAtLeastOneAnnotation(classNode, "Controller",
|
||||
"RestController", "EnableWebMvc", "WebConfiguration");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void applyDependencies(DependencyCustomizer dependencies) {
|
||||
dependencies
|
||||
|
|
@ -47,12 +53,6 @@ public class SpringMvcCompilerAutoConfiguration extends CompilerAutoConfiguratio
|
|||
dependencies.getProperty("groovy.version"));
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean matches(ClassNode classNode) {
|
||||
return AstUtils.hasAtLeastOneAnnotation(classNode, "Controller",
|
||||
"RestController", "EnableWebMvc", "WebConfiguration");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void applyImports(ImportCustomizer imports) {
|
||||
imports.addStarImports("org.springframework.web.bind.annotation",
|
||||
|
|
|
|||
|
|
@ -31,6 +31,11 @@ import org.springframework.boot.cli.compiler.DependencyCustomizer;
|
|||
public class TransactionManagementCompilerAutoConfiguration extends
|
||||
CompilerAutoConfiguration {
|
||||
|
||||
@Override
|
||||
public boolean matches(ClassNode classNode) {
|
||||
return AstUtils.hasAtLeastOneAnnotation(classNode, "EnableTransactionManagement");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void applyDependencies(DependencyCustomizer dependencies) {
|
||||
dependencies
|
||||
|
|
@ -42,11 +47,6 @@ public class TransactionManagementCompilerAutoConfiguration extends
|
|||
dependencies.getProperty("spring-boot.version"));
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean matches(ClassNode classNode) {
|
||||
return AstUtils.hasAtLeastOneAnnotation(classNode, "EnableTransactionManagement");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void applyImports(ImportCustomizer imports) {
|
||||
imports.addStarImports("org.springframework.transaction.annotation",
|
||||
|
|
|
|||
|
|
@ -16,9 +16,6 @@
|
|||
|
||||
package org.springframework.boot.cli;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.io.File;
|
||||
import java.net.URL;
|
||||
import java.util.concurrent.Callable;
|
||||
|
|
@ -36,6 +33,9 @@ import org.springframework.boot.OutputCapture;
|
|||
import org.springframework.boot.cli.command.CleanCommand;
|
||||
import org.springframework.boot.cli.command.RunCommand;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
/**
|
||||
* Integration tests to exercise the samples.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<configuration>
|
||||
<include resource="org/springframework/boot/logging/logback/base.xml"/>
|
||||
<include resource="org/springframework/boot/logging/logback/base.xml"/>
|
||||
<!-- logger name="org.springframework.web" level="DEBUG"/-->
|
||||
<!-- logger name="org.springframework.jdbc" level="DEBUG"/-->
|
||||
<!-- logger name="org.springframework.jms" level="DEBUG"/-->
|
||||
</configuration>
|
||||
|
|
|
|||
|
|
@ -1,3 +1,19 @@
|
|||
/*
|
||||
* Copyright 2013 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.sample.aop.monitor;
|
||||
|
||||
import org.aspectj.lang.JoinPoint;
|
||||
|
|
|
|||
|
|
@ -1,8 +1,23 @@
|
|||
/*
|
||||
* Copyright 2013 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.sample.data.mongo;
|
||||
|
||||
import org.springframework.data.annotation.Id;
|
||||
|
||||
|
||||
public class Customer {
|
||||
|
||||
@Id
|
||||
|
|
|
|||
|
|
@ -1,3 +1,19 @@
|
|||
/*
|
||||
* Copyright 2013 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.sample.data.mongo;
|
||||
|
||||
import java.util.List;
|
||||
|
|
@ -7,6 +23,7 @@ import org.springframework.data.mongodb.repository.MongoRepository;
|
|||
public interface CustomerRepository extends MongoRepository<Customer, String> {
|
||||
|
||||
public Customer findByFirstName(String firstName);
|
||||
|
||||
public List<Customer> findByLastName(String lastName);
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue