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
e433eb20
Commit
e433eb20
authored
Apr 28, 2014
by
Dave Syer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Align couchbase more with other data-* support
parent
02d6879b
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
92 additions
and
38 deletions
+92
-38
CouchbaseAutoConfiguration.java
...t/autoconfigure/couchbase/CouchbaseAutoConfiguration.java
+70
-0
CouchbaseProperties.java
...ork/boot/autoconfigure/couchbase/CouchbaseProperties.java
+14
-3
CouchbaseRepositoriesAutoConfiguration.java
...onfigure/data/CouchbaseRepositoriesAutoConfiguration.java
+4
-33
spring.factories
...utoconfigure/src/main/resources/META-INF/spring.factories
+1
-0
CouchbaseRepositoriesAutoConfigurationTests.java
...ure/data/CouchbaseRepositoriesAutoConfigurationTests.java
+3
-2
No files found.
spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/couchbase/CouchbaseAutoConfiguration.java
0 → 100644
View file @
e433eb20
/*
* 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
.
couchbase
;
import
java.io.IOException
;
import
java.net.URISyntaxException
;
import
javax.annotation.PreDestroy
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.autoconfigure.EnableAutoConfiguration
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnClass
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean
;
import
org.springframework.boot.context.properties.EnableConfigurationProperties
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.data.couchbase.core.CouchbaseTemplate
;
import
org.springframework.data.couchbase.repository.config.EnableCouchbaseRepositories
;
import
com.couchbase.client.CouchbaseClient
;
/**
* {@link EnableAutoConfiguration Auto-configuration} for Spring Data's Couchbase
* Repositories.
*
* @author Michael Nitschinger
* @since 1.1.0
* @see CouchbaseProperties
* @see EnableCouchbaseRepositories
*/
@Configuration
@ConditionalOnClass
({
CouchbaseClient
.
class
,
CouchbaseTemplate
.
class
})
@EnableConfigurationProperties
(
CouchbaseProperties
.
class
)
public
class
CouchbaseAutoConfiguration
{
@Autowired
private
CouchbaseProperties
properties
;
@PreDestroy
public
void
close
()
throws
URISyntaxException
,
IOException
{
this
.
properties
.
closeClient
();
}
@Bean
@ConditionalOnMissingBean
(
CouchbaseClient
.
class
)
public
CouchbaseClient
couchbaseClient
()
throws
URISyntaxException
,
IOException
{
return
this
.
properties
.
createClient
();
}
@Bean
@ConditionalOnMissingBean
(
CouchbaseTemplate
.
class
)
public
CouchbaseTemplate
couchbaseTemplate
(
CouchbaseClient
couchbaseClient
)
{
return
new
CouchbaseTemplate
(
couchbaseClient
);
}
}
spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/
data
/CouchbaseProperties.java
→
spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/
couchbase
/CouchbaseProperties.java
View file @
e433eb20
...
...
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package
org
.
springframework
.
boot
.
autoconfigure
.
data
;
package
org
.
springframework
.
boot
.
autoconfigure
.
couchbase
;
import
java.io.IOException
;
import
java.net.URI
;
...
...
@@ -40,6 +40,8 @@ public class CouchbaseProperties {
private
String
password
=
""
;
private
CouchbaseClient
client
;
public
String
getHost
()
{
return
this
.
host
;
}
...
...
@@ -65,8 +67,17 @@ public class CouchbaseProperties {
}
public
CouchbaseClient
createClient
()
throws
URISyntaxException
,
IOException
{
return
new
CouchbaseClient
(
Arrays
.
asList
(
new
URI
(
"http://"
+
getHost
()
+
":8091/pools"
)),
getBucket
(),
getPassword
());
if
(
this
.
client
==
null
)
{
this
.
client
=
new
CouchbaseClient
(
Arrays
.
asList
(
new
URI
(
"http://"
+
getHost
()
+
":8091/pools"
)),
getBucket
(),
getPassword
());
}
return
this
.
client
;
}
public
void
closeClient
()
{
if
(
this
.
client
!=
null
)
{
this
.
client
.
shutdown
();
}
}
}
spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/CouchbaseRepositoriesAutoConfiguration.java
View file @
e433eb20
...
...
@@ -16,24 +16,15 @@
package
org
.
springframework
.
boot
.
autoconfigure
.
data
;
import
java.io.IOException
;
import
java.net.URISyntaxException
;
import
javax.annotation.PreDestroy
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.autoconfigure.EnableAutoConfiguration
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnClass
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean
;
import
org.springframework.boot.context.properties.EnableConfigurationProperties
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.boot.autoconfigure.couchbase.CouchbaseProperties
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.Import
;
import
org.springframework.data.couchbase.core.CouchbaseTemplate
;
import
org.springframework.data.couchbase.repository.CouchbaseRepository
;
import
org.springframework.data.couchbase.repository.config.EnableCouchbaseRepositories
;
import
com.couchbase.client.CouchbaseClient
;
import
org.springframework.data.couchbase.repository.support.CouchbaseRepositoryFactoryBean
;
/**
* {@link EnableAutoConfiguration Auto-configuration} for Spring Data's Couchbase
...
...
@@ -45,29 +36,9 @@ import com.couchbase.client.CouchbaseClient;
* @see EnableCouchbaseRepositories
*/
@Configuration
@ConditionalOnClass
({
CouchbaseClient
.
class
,
CouchbaseRepository
.
class
})
@ConditionalOnClass
({
CouchbaseRepository
.
class
})
@ConditionalOnMissingBean
(
CouchbaseRepositoryFactoryBean
.
class
)
@Import
(
CouchbaseRepositoriesAutoConfigureRegistrar
.
class
)
@EnableConfigurationProperties
(
CouchbaseProperties
.
class
)
public
class
CouchbaseRepositoriesAutoConfiguration
{
@Autowired
private
CouchbaseProperties
properties
;
@PreDestroy
public
void
close
()
throws
URISyntaxException
,
IOException
{
couchbaseClient
().
shutdown
();
}
@Bean
@ConditionalOnMissingBean
(
CouchbaseClient
.
class
)
CouchbaseClient
couchbaseClient
()
throws
URISyntaxException
,
IOException
{
return
this
.
properties
.
createClient
();
}
@Bean
@ConditionalOnMissingBean
(
CouchbaseTemplate
.
class
)
CouchbaseTemplate
couchbaseTemplate
(
CouchbaseClient
couchbaseClient
)
{
return
new
CouchbaseTemplate
(
couchbaseClient
);
}
}
spring-boot-autoconfigure/src/main/resources/META-INF/spring.factories
View file @
e433eb20
...
...
@@ -13,6 +13,7 @@ org.springframework.boot.autoconfigure.data.JpaRepositoriesAutoConfiguration,\
org.springframework.boot.autoconfigure.data.MongoRepositoriesAutoConfiguration,\
org.springframework.boot.autoconfigure.hateoas.HypermediaAutoConfiguration,\
org.springframework.boot.autoconfigure.data.rest.RepositoryRestMvcAutoConfiguration,\
org.springframework.boot.autoconfigure.couchbase.CouchbaseAutoConfiguration,\
org.springframework.boot.autoconfigure.data.CouchbaseRepositoriesAutoConfiguration,\
org.springframework.boot.autoconfigure.redis.RedisAutoConfiguration,\
org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,\
...
...
spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/CouchbaseRepositoriesAutoConfigurationTests.java
View file @
e433eb20
...
...
@@ -19,6 +19,7 @@ package org.springframework.boot.autoconfigure.data;
import
org.junit.Test
;
import
org.springframework.boot.autoconfigure.PropertyPlaceholderAutoConfiguration
;
import
org.springframework.boot.autoconfigure.TestAutoConfigurationPackage
;
import
org.springframework.boot.autoconfigure.couchbase.CouchbaseAutoConfiguration
;
import
org.springframework.boot.autoconfigure.data.couchbase.City
;
import
org.springframework.boot.autoconfigure.data.couchbase.CityRepository
;
import
org.springframework.context.annotation.AnnotationConfigApplicationContext
;
...
...
@@ -42,7 +43,7 @@ public class CouchbaseRepositoriesAutoConfigurationTests {
@Test
public
void
testDefaultRepositoryConfiguration
()
throws
Exception
{
this
.
context
=
new
AnnotationConfigApplicationContext
();
this
.
context
.
register
(
TestConfiguration
.
class
,
this
.
context
.
register
(
TestConfiguration
.
class
,
CouchbaseAutoConfiguration
.
class
,
CouchbaseRepositoriesAutoConfiguration
.
class
,
PropertyPlaceholderAutoConfiguration
.
class
);
this
.
context
.
refresh
();
...
...
@@ -53,7 +54,7 @@ public class CouchbaseRepositoriesAutoConfigurationTests {
@Test
public
void
testNoRepositoryConfiguration
()
throws
Exception
{
this
.
context
=
new
AnnotationConfigApplicationContext
();
this
.
context
.
register
(
EmptyConfiguration
.
class
,
this
.
context
.
register
(
EmptyConfiguration
.
class
,
CouchbaseAutoConfiguration
.
class
,
CouchbaseRepositoriesAutoConfiguration
.
class
,
PropertyPlaceholderAutoConfiguration
.
class
);
this
.
context
.
refresh
();
...
...
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