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
cd737803
Commit
cd737803
authored
Nov 30, 2016
by
Stephane Nicoll
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #7523 from mp911de:sd-cassandra-udt-integration
* pr/7523: Add User-defined type support for Cassandra
parents
2a059e73
6698cb71
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
28 additions
and
0 deletions
+28
-0
CassandraDataAutoConfiguration.java
...figure/data/cassandra/CassandraDataAutoConfiguration.java
+6
-0
CassandraDataAutoConfigurationTests.java
...e/data/cassandra/CassandraDataAutoConfigurationTests.java
+22
-0
No files found.
spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/cassandra/CassandraDataAutoConfiguration.java
View file @
cd737803
...
@@ -45,6 +45,8 @@ import org.springframework.data.cassandra.core.CassandraAdminOperations;
...
@@ -45,6 +45,8 @@ import org.springframework.data.cassandra.core.CassandraAdminOperations;
import
org.springframework.data.cassandra.core.CassandraTemplate
;
import
org.springframework.data.cassandra.core.CassandraTemplate
;
import
org.springframework.data.cassandra.mapping.BasicCassandraMappingContext
;
import
org.springframework.data.cassandra.mapping.BasicCassandraMappingContext
;
import
org.springframework.data.cassandra.mapping.CassandraMappingContext
;
import
org.springframework.data.cassandra.mapping.CassandraMappingContext
;
import
org.springframework.data.cassandra.mapping.SimpleUserTypeResolver
;
import
org.springframework.util.StringUtils
;
/**
/**
* {@link EnableAutoConfiguration Auto-configuration} for Spring Data's Cassandra support.
* {@link EnableAutoConfiguration Auto-configuration} for Spring Data's Cassandra support.
...
@@ -89,6 +91,10 @@ public class CassandraDataAutoConfiguration {
...
@@ -89,6 +91,10 @@ public class CassandraDataAutoConfiguration {
if
(!
packages
.
isEmpty
())
{
if
(!
packages
.
isEmpty
())
{
context
.
setInitialEntitySet
(
CassandraEntityClassScanner
.
scan
(
packages
));
context
.
setInitialEntitySet
(
CassandraEntityClassScanner
.
scan
(
packages
));
}
}
if
(
StringUtils
.
hasText
(
this
.
properties
.
getKeyspaceName
()))
{
context
.
setUserTypeResolver
(
new
SimpleUserTypeResolver
(
this
.
cluster
,
this
.
properties
.
getKeyspaceName
()));
}
return
context
;
return
context
;
}
}
...
...
spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/cassandra/CassandraDataAutoConfigurationTests.java
View file @
cd737803
...
@@ -26,6 +26,7 @@ import org.springframework.boot.autoconfigure.PropertyPlaceholderAutoConfigurati
...
@@ -26,6 +26,7 @@ import org.springframework.boot.autoconfigure.PropertyPlaceholderAutoConfigurati
import
org.springframework.boot.autoconfigure.cassandra.CassandraAutoConfiguration
;
import
org.springframework.boot.autoconfigure.cassandra.CassandraAutoConfiguration
;
import
org.springframework.boot.autoconfigure.data.cassandra.city.City
;
import
org.springframework.boot.autoconfigure.data.cassandra.city.City
;
import
org.springframework.boot.autoconfigure.domain.EntityScan
;
import
org.springframework.boot.autoconfigure.domain.EntityScan
;
import
org.springframework.boot.test.util.EnvironmentTestUtils
;
import
org.springframework.context.annotation.AnnotationConfigApplicationContext
;
import
org.springframework.context.annotation.AnnotationConfigApplicationContext
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.ComponentScan
;
import
org.springframework.context.annotation.ComponentScan
;
...
@@ -33,6 +34,7 @@ import org.springframework.context.annotation.Configuration;
...
@@ -33,6 +34,7 @@ import org.springframework.context.annotation.Configuration;
import
org.springframework.context.annotation.FilterType
;
import
org.springframework.context.annotation.FilterType
;
import
org.springframework.data.cassandra.core.CassandraTemplate
;
import
org.springframework.data.cassandra.core.CassandraTemplate
;
import
org.springframework.data.cassandra.mapping.CassandraMappingContext
;
import
org.springframework.data.cassandra.mapping.CassandraMappingContext
;
import
org.springframework.data.cassandra.mapping.SimpleUserTypeResolver
;
import
org.springframework.test.util.ReflectionTestUtils
;
import
org.springframework.test.util.ReflectionTestUtils
;
import
static
org
.
assertj
.
core
.
api
.
Assertions
.
assertThat
;
import
static
org
.
assertj
.
core
.
api
.
Assertions
.
assertThat
;
...
@@ -42,6 +44,7 @@ import static org.mockito.Mockito.mock;
...
@@ -42,6 +44,7 @@ import static org.mockito.Mockito.mock;
* Tests for {@link CassandraDataAutoConfiguration}
* Tests for {@link CassandraDataAutoConfiguration}
*
*
* @author Eddú Meléndez
* @author Eddú Meléndez
* @author Mark Paluch
*/
*/
public
class
CassandraDataAutoConfigurationTests
{
public
class
CassandraDataAutoConfigurationTests
{
...
@@ -57,6 +60,8 @@ public class CassandraDataAutoConfigurationTests {
...
@@ -57,6 +60,8 @@ public class CassandraDataAutoConfigurationTests {
@Test
@Test
public
void
templateExists
()
{
public
void
templateExists
()
{
this
.
context
=
new
AnnotationConfigApplicationContext
();
this
.
context
=
new
AnnotationConfigApplicationContext
();
EnvironmentTestUtils
.
addEnvironment
(
this
.
context
,
"spring.data.cassandra.keyspaceName:boot_test"
);
this
.
context
.
register
(
TestExcludeConfiguration
.
class
,
TestConfiguration
.
class
,
this
.
context
.
register
(
TestExcludeConfiguration
.
class
,
TestConfiguration
.
class
,
PropertyPlaceholderAutoConfiguration
.
class
,
PropertyPlaceholderAutoConfiguration
.
class
,
CassandraAutoConfiguration
.
class
,
CassandraDataAutoConfiguration
.
class
);
CassandraAutoConfiguration
.
class
,
CassandraDataAutoConfiguration
.
class
);
...
@@ -69,6 +74,8 @@ public class CassandraDataAutoConfigurationTests {
...
@@ -69,6 +74,8 @@ public class CassandraDataAutoConfigurationTests {
@SuppressWarnings
(
"unchecked"
)
@SuppressWarnings
(
"unchecked"
)
public
void
entityScanShouldSetInitialEntitySet
()
throws
Exception
{
public
void
entityScanShouldSetInitialEntitySet
()
throws
Exception
{
this
.
context
=
new
AnnotationConfigApplicationContext
();
this
.
context
=
new
AnnotationConfigApplicationContext
();
EnvironmentTestUtils
.
addEnvironment
(
this
.
context
,
"spring.data.cassandra.keyspaceName:boot_test"
);
this
.
context
.
register
(
TestConfiguration
.
class
,
EntityScanConfig
.
class
,
this
.
context
.
register
(
TestConfiguration
.
class
,
EntityScanConfig
.
class
,
PropertyPlaceholderAutoConfiguration
.
class
,
PropertyPlaceholderAutoConfiguration
.
class
,
CassandraAutoConfiguration
.
class
,
CassandraDataAutoConfiguration
.
class
);
CassandraAutoConfiguration
.
class
,
CassandraDataAutoConfiguration
.
class
);
...
@@ -80,6 +87,21 @@ public class CassandraDataAutoConfigurationTests {
...
@@ -80,6 +87,21 @@ public class CassandraDataAutoConfigurationTests {
assertThat
(
initialEntitySet
).
containsOnly
(
City
.
class
);
assertThat
(
initialEntitySet
).
containsOnly
(
City
.
class
);
}
}
@Test
public
void
userTypeResolverShouldBeSet
()
throws
Exception
{
this
.
context
=
new
AnnotationConfigApplicationContext
();
EnvironmentTestUtils
.
addEnvironment
(
this
.
context
,
"spring.data.cassandra.keyspaceName:boot_test"
);
this
.
context
.
register
(
TestConfiguration
.
class
,
PropertyPlaceholderAutoConfiguration
.
class
,
CassandraAutoConfiguration
.
class
,
CassandraDataAutoConfiguration
.
class
);
this
.
context
.
refresh
();
CassandraMappingContext
mappingContext
=
this
.
context
.
getBean
(
CassandraMappingContext
.
class
);
assertThat
(
ReflectionTestUtils
.
getField
(
mappingContext
,
"userTypeResolver"
))
.
isInstanceOf
(
SimpleUserTypeResolver
.
class
);
}
@Configuration
@Configuration
@ComponentScan
(
excludeFilters
=
@ComponentScan
.
Filter
(
classes
=
{
@ComponentScan
(
excludeFilters
=
@ComponentScan
.
Filter
(
classes
=
{
Session
.
class
},
type
=
FilterType
.
ASSIGNABLE_TYPE
))
Session
.
class
},
type
=
FilterType
.
ASSIGNABLE_TYPE
))
...
...
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