Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in / Register
Toggle navigation
S
spring-boot
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
DEMO
spring-boot
Commits
376d6fb9
Commit
376d6fb9
authored
Jun 07, 2014
by
Dave Syer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add test for mixed Mongo/Jpa repositories
parent
b75578d9
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
183 additions
and
1 deletion
+183
-1
MongoRepositoriesAutoConfiguration.java
...figure/data/mongo/MongoRepositoriesAutoConfiguration.java
+3
-0
MongoRepositoriesAutoConfigureRegistrar.java
...e/data/mongo/MongoRepositoriesAutoConfigureRegistrar.java
+0
-1
MixedMongoRepositoriesAutoConfigurationTests.java
...a/mongo/MixedMongoRepositoriesAutoConfigurationTests.java
+103
-0
Country.java
...mework/boot/autoconfigure/data/mongo/country/Country.java
+54
-0
CountryRepository.java
...t/autoconfigure/data/mongo/country/CountryRepository.java
+23
-0
No files found.
spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/mongo/MongoRepositoriesAutoConfiguration.java
View file @
376d6fb9
...
...
@@ -17,10 +17,12 @@
package
org
.
springframework
.
boot
.
autoconfigure
.
data
.
mongo
;
import
org.springframework.boot.autoconfigure.EnableAutoConfiguration
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnBean
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnClass
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.Import
;
import
org.springframework.data.mongodb.core.MongoOperations
;
import
org.springframework.data.mongodb.repository.MongoRepository
;
import
org.springframework.data.mongodb.repository.config.EnableMongoRepositories
;
import
org.springframework.data.mongodb.repository.support.MongoRepositoryFactoryBean
;
...
...
@@ -50,6 +52,7 @@ import com.mongodb.Mongo;
*/
@Configuration
@ConditionalOnClass
({
Mongo
.
class
,
MongoRepository
.
class
})
@ConditionalOnBean
(
MongoOperations
.
class
)
@ConditionalOnMissingBean
(
MongoRepositoryFactoryBean
.
class
)
@Import
(
MongoRepositoriesAutoConfigureRegistrar
.
class
)
public
class
MongoRepositoriesAutoConfiguration
{
...
...
spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/mongo/MongoRepositoriesAutoConfigureRegistrar.java
View file @
376d6fb9
...
...
@@ -50,7 +50,6 @@ class MongoRepositoriesAutoConfigureRegistrar extends
@EnableMongoRepositories
private
static
class
EnableMongoRepositoriesConfiguration
{
}
}
spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/mongo/MixedMongoRepositoriesAutoConfigurationTests.java
0 → 100644
View file @
376d6fb9
/*
* 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
.
autoconfigure
.
data
.
mongo
;
import
org.junit.After
;
import
org.junit.Test
;
import
org.springframework.boot.autoconfigure.PropertyPlaceholderAutoConfiguration
;
import
org.springframework.boot.autoconfigure.TestAutoConfigurationPackage
;
import
org.springframework.boot.autoconfigure.data.jpa.city.City
;
import
org.springframework.boot.autoconfigure.data.jpa.city.CityRepository
;
import
org.springframework.boot.autoconfigure.data.mongo.country.Country
;
import
org.springframework.boot.autoconfigure.data.mongo.country.CountryRepository
;
import
org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
;
import
org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration
;
import
org.springframework.boot.autoconfigure.mongo.MongoAutoConfigurationTests
;
import
org.springframework.boot.autoconfigure.mongo.MongoDataAutoConfiguration
;
import
org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration
;
import
org.springframework.boot.orm.jpa.EntityScan
;
import
org.springframework.boot.test.EnvironmentTestUtils
;
import
org.springframework.context.annotation.AnnotationConfigApplicationContext
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.Import
;
import
org.springframework.data.jpa.repository.config.EnableJpaRepositories
;
import
org.springframework.data.mongodb.repository.config.EnableMongoRepositories
;
import
static
org
.
junit
.
Assert
.
assertNotNull
;
/**
* Tests for {@link MongoRepositoriesAutoConfiguration}.
*
* @author Dave Syer
* @author Oliver Gierke
*/
public
class
MixedMongoRepositoriesAutoConfigurationTests
{
private
AnnotationConfigApplicationContext
context
;
@After
public
void
close
()
{
this
.
context
.
close
();
}
@Test
public
void
testDefaultRepositoryConfiguration
()
throws
Exception
{
this
.
context
=
new
AnnotationConfigApplicationContext
();
EnvironmentTestUtils
.
addEnvironment
(
this
.
context
,
"spring.datasource.initialize:false"
);
this
.
context
.
register
(
TestConfiguration
.
class
,
BaseConfiguration
.
class
);
this
.
context
.
refresh
();
assertNotNull
(
this
.
context
.
getBean
(
CountryRepository
.
class
));
}
@Test
public
void
testMixedRepositoryConfiguration
()
throws
Exception
{
this
.
context
=
new
AnnotationConfigApplicationContext
();
EnvironmentTestUtils
.
addEnvironment
(
this
.
context
,
"spring.datasource.initialize:false"
);
this
.
context
.
register
(
MixedConfiguration
.
class
,
BaseConfiguration
.
class
);
this
.
context
.
refresh
();
assertNotNull
(
this
.
context
.
getBean
(
CountryRepository
.
class
));
assertNotNull
(
this
.
context
.
getBean
(
CityRepository
.
class
));
}
@Configuration
@Import
({
MongoAutoConfiguration
.
class
,
MongoDataAutoConfiguration
.
class
,
MongoRepositoriesAutoConfiguration
.
class
,
DataSourceAutoConfiguration
.
class
,
HibernateJpaAutoConfiguration
.
class
,
PropertyPlaceholderAutoConfiguration
.
class
})
protected
static
class
BaseConfiguration
{
}
@Configuration
@TestAutoConfigurationPackage
(
MongoAutoConfigurationTests
.
class
)
// Not this package or its parent
@EnableMongoRepositories
(
basePackageClasses
=
Country
.
class
)
protected
static
class
TestConfiguration
{
}
@Configuration
@TestAutoConfigurationPackage
(
MongoAutoConfigurationTests
.
class
)
@EnableMongoRepositories
(
basePackageClasses
=
Country
.
class
)
@EntityScan
(
basePackageClasses
=
City
.
class
)
@EnableJpaRepositories
(
basePackageClasses
=
CityRepository
.
class
)
protected
static
class
MixedConfiguration
{
}
}
spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/mongo/country/Country.java
0 → 100644
View file @
376d6fb9
/*
* Copyright 2012-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
.
autoconfigure
.
data
.
mongo
.
country
;
import
java.io.Serializable
;
import
javax.persistence.Column
;
import
javax.persistence.Entity
;
import
javax.persistence.GeneratedValue
;
import
javax.persistence.Id
;
@Entity
public
class
Country
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@Id
@GeneratedValue
private
Long
id
;
@Column
(
nullable
=
false
)
private
String
name
;
protected
Country
()
{
}
public
Country
(
String
name
)
{
super
();
this
.
name
=
name
;
}
public
String
getName
()
{
return
this
.
name
;
}
@Override
public
String
toString
()
{
return
getName
();
}
}
spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/mongo/country/CountryRepository.java
0 → 100644
View file @
376d6fb9
/*
* Copyright 2012-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
.
autoconfigure
.
data
.
mongo
.
country
;
import
org.springframework.data.repository.Repository
;
public
interface
CountryRepository
extends
Repository
<
Country
,
Long
>
{
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment