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
7a5248e3
Commit
7a5248e3
authored
Aug 25, 2014
by
Phillip Webb
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Polish
parent
da9e4968
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
31 additions
and
39 deletions
+31
-39
DataSourceAutoConfiguration.java
.../boot/autoconfigure/jdbc/DataSourceAutoConfiguration.java
+23
-30
DataSourceBuilder.java
...gframework/boot/autoconfigure/jdbc/DataSourceBuilder.java
+7
-5
DataSourceProperties.java
...amework/boot/autoconfigure/jdbc/DataSourceProperties.java
+1
-0
JmsAutoConfiguration.java
...ramework/boot/autoconfigure/jms/JmsAutoConfiguration.java
+0
-4
No files found.
spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/DataSourceAutoConfiguration.java
View file @
7a5248e3
...
@@ -51,7 +51,7 @@ import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType;
...
@@ -51,7 +51,7 @@ import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType;
* @author Phillip Webb
* @author Phillip Webb
*/
*/
@Configuration
@Configuration
@ConditionalOnClass
(
EmbeddedDatabaseType
.
class
)
@ConditionalOnClass
(
{
DataSource
.
class
,
EmbeddedDatabaseType
.
class
}
)
@EnableConfigurationProperties
(
DataSourceProperties
.
class
)
@EnableConfigurationProperties
(
DataSourceProperties
.
class
)
@Import
(
Registrar
.
class
)
@Import
(
Registrar
.
class
)
public
class
DataSourceAutoConfiguration
{
public
class
DataSourceAutoConfiguration
{
...
@@ -73,7 +73,7 @@ public class DataSourceAutoConfiguration {
...
@@ -73,7 +73,7 @@ public class DataSourceAutoConfiguration {
}
}
}
}
@Conditional
(
DataSourceAutoConfiguration
.
EmbeddedData
bas
eCondition
.
class
)
@Conditional
(
DataSourceAutoConfiguration
.
EmbeddedData
Sourc
eCondition
.
class
)
@ConditionalOnMissingBean
(
DataSource
.
class
)
@ConditionalOnMissingBean
(
DataSource
.
class
)
@Import
(
EmbeddedDataSourceConfiguration
.
class
)
@Import
(
EmbeddedDataSourceConfiguration
.
class
)
protected
static
class
EmbeddedConfiguration
{
protected
static
class
EmbeddedConfiguration
{
...
@@ -88,9 +88,10 @@ public class DataSourceAutoConfiguration {
...
@@ -88,9 +88,10 @@ public class DataSourceAutoConfiguration {
public
DataSourceInitializer
dataSourceInitializer
()
{
public
DataSourceInitializer
dataSourceInitializer
()
{
return
new
DataSourceInitializer
();
return
new
DataSourceInitializer
();
}
}
}
}
@Conditional
(
DataSourceAutoConfiguration
.
NonEmbeddedData
bas
eCondition
.
class
)
@Conditional
(
DataSourceAutoConfiguration
.
NonEmbeddedData
Sourc
eCondition
.
class
)
@ConditionalOnMissingBean
(
DataSource
.
class
)
@ConditionalOnMissingBean
(
DataSource
.
class
)
protected
static
class
NonEmbeddedConfiguration
{
protected
static
class
NonEmbeddedConfiguration
{
...
@@ -112,7 +113,7 @@ public class DataSourceAutoConfiguration {
...
@@ -112,7 +113,7 @@ public class DataSourceAutoConfiguration {
}
}
@Configuration
@Configuration
@Conditional
(
DataSourceAutoConfiguration
.
Data
bas
eCondition
.
class
)
@Conditional
(
DataSourceAutoConfiguration
.
Data
SourceAvailabl
eCondition
.
class
)
protected
static
class
JdbcTemplateConfiguration
{
protected
static
class
JdbcTemplateConfiguration
{
@Autowired
(
required
=
false
)
@Autowired
(
required
=
false
)
...
@@ -133,19 +134,17 @@ public class DataSourceAutoConfiguration {
...
@@ -133,19 +134,17 @@ public class DataSourceAutoConfiguration {
}
}
/**
/**
* Base {@link Condition} for non-embedded database checks.
* {@link Condition} to test is a supported non-embedded {@link DataSource} type is
* available.
*/
*/
static
class
NonEmbeddedData
bas
eCondition
extends
SpringBootCondition
{
static
class
NonEmbeddedData
Sourc
eCondition
extends
SpringBootCondition
{
@Override
@Override
public
ConditionOutcome
getMatchOutcome
(
ConditionContext
context
,
public
ConditionOutcome
getMatchOutcome
(
ConditionContext
context
,
AnnotatedTypeMetadata
metadata
)
{
AnnotatedTypeMetadata
metadata
)
{
if
(
getDataSourceClassLoader
(
context
)
!=
null
)
{
ClassLoader
dataSourceClassLoader
=
getDataSourceClassLoader
(
context
);
return
ConditionOutcome
.
match
(
"supported DataSource class found"
);
if
(
dataSourceClassLoader
!=
null
)
{
return
ConditionOutcome
.
match
(
"Supported DataSource class found"
);
}
}
return
ConditionOutcome
.
noMatch
(
"missing supported DataSource"
);
return
ConditionOutcome
.
noMatch
(
"missing supported DataSource"
);
}
}
...
@@ -156,20 +155,16 @@ public class DataSourceAutoConfiguration {
...
@@ -156,20 +155,16 @@ public class DataSourceAutoConfiguration {
private
ClassLoader
getDataSourceClassLoader
(
ConditionContext
context
)
{
private
ClassLoader
getDataSourceClassLoader
(
ConditionContext
context
)
{
Class
<?>
dataSourceClass
=
new
DataSourceBuilder
(
context
.
getClassLoader
())
Class
<?>
dataSourceClass
=
new
DataSourceBuilder
(
context
.
getClassLoader
())
.
findType
();
.
findType
();
if
(
dataSourceClass
==
null
)
{
return
(
dataSourceClass
==
null
?
null
:
dataSourceClass
.
getClassLoader
());
return
null
;
}
return
dataSourceClass
.
getClassLoader
();
}
}
}
}
/**
/**
* {@link Condition} to detect when an embedded
database is
used.
* {@link Condition} to detect when an embedded
{@link DataSource} type can be
used.
*/
*/
static
class
EmbeddedData
bas
eCondition
extends
SpringBootCondition
{
static
class
EmbeddedData
Sourc
eCondition
extends
SpringBootCondition
{
private
final
SpringBootCondition
nonEmbedded
=
new
NonEmbeddedData
bas
eCondition
();
private
final
SpringBootCondition
nonEmbedded
=
new
NonEmbeddedData
Sourc
eCondition
();
@Override
@Override
public
ConditionOutcome
getMatchOutcome
(
ConditionContext
context
,
public
ConditionOutcome
getMatchOutcome
(
ConditionContext
context
,
...
@@ -189,27 +184,25 @@ public class DataSourceAutoConfiguration {
...
@@ -189,27 +184,25 @@ public class DataSourceAutoConfiguration {
}
}
/**
/**
* {@link Condition} to detect when a database is configured.
* {@link Condition} to detect when a {@link DataSource} is available (either because
* the user provided one or because one will be auto-configured)
*/
*/
static
class
Data
bas
eCondition
extends
SpringBootCondition
{
static
class
Data
SourceAvailabl
eCondition
extends
SpringBootCondition
{
private
final
SpringBootCondition
nonEmbedded
=
new
NonEmbeddedData
bas
eCondition
();
private
final
SpringBootCondition
nonEmbedded
=
new
NonEmbeddedData
Sourc
eCondition
();
private
final
SpringBootCondition
embeddedCondition
=
new
EmbeddedData
bas
eCondition
();
private
final
SpringBootCondition
embeddedCondition
=
new
EmbeddedData
Sourc
eCondition
();
@Override
@Override
public
ConditionOutcome
getMatchOutcome
(
ConditionContext
context
,
public
ConditionOutcome
getMatchOutcome
(
ConditionContext
context
,
AnnotatedTypeMetadata
metadata
)
{
AnnotatedTypeMetadata
metadata
)
{
if
(
anyMatches
(
context
,
metadata
,
this
.
nonEmbedded
,
this
.
embeddedCondition
))
{
return
ConditionOutcome
.
match
(
"existing auto database detected"
);
}
if
(
hasBean
(
context
,
DataSource
.
class
))
{
if
(
hasBean
(
context
,
DataSource
.
class
))
{
return
ConditionOutcome
return
ConditionOutcome
.
match
(
"Existing bean configured database detected"
);
.
match
(
"existing bean configured database detected"
);
}
if
(
anyMatches
(
context
,
metadata
,
this
.
nonEmbedded
,
this
.
embeddedCondition
))
{
return
ConditionOutcome
.
match
(
"existing auto database detected"
);
}
}
return
ConditionOutcome
.
noMatch
(
"no existing bean configured database"
);
return
ConditionOutcome
.
noMatch
(
"no existing bean configured database"
);
}
}
...
...
spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/DataSourceBuilder.java
View file @
7a5248e3
...
@@ -112,16 +112,18 @@ public class DataSourceBuilder {
...
@@ -112,16 +112,18 @@ public class DataSourceBuilder {
return
this
;
return
this
;
}
}
@SuppressWarnings
(
"unchecked"
)
public
Class
<?
extends
DataSource
>
findType
()
{
public
Class
<?
extends
DataSource
>
findType
()
{
if
(
this
.
type
!=
null
)
{
if
(
this
.
type
!=
null
)
{
return
this
.
type
;
return
this
.
type
;
}
}
for
(
String
name
:
DATA_SOURCE_TYPE_NAMES
)
{
for
(
String
name
:
DATA_SOURCE_TYPE_NAMES
)
{
if
(
ClassUtils
.
isPresent
(
name
,
this
.
classLoader
))
{
try
{
@SuppressWarnings
(
"unchecked"
)
return
(
Class
<?
extends
DataSource
>)
ClassUtils
.
forName
(
name
,
Class
<
DataSource
>
resolved
=
(
Class
<
DataSource
>)
ClassUtils
this
.
classLoader
);
.
resolveClassName
(
name
,
this
.
classLoader
);
}
return
resolved
;
catch
(
Exception
ex
)
{
// Swallow and continue
}
}
}
}
return
null
;
return
null
;
...
...
spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/DataSourceProperties.java
View file @
7a5248e3
...
@@ -211,4 +211,5 @@ public class DataSourceProperties implements BeanClassLoaderAware, InitializingB
...
@@ -211,4 +211,5 @@ public class DataSourceProperties implements BeanClassLoaderAware, InitializingB
public
ClassLoader
getClassLoader
()
{
public
ClassLoader
getClassLoader
()
{
return
this
.
classLoader
;
return
this
.
classLoader
;
}
}
}
}
spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jms/JmsAutoConfiguration.java
View file @
7a5248e3
...
@@ -19,13 +19,10 @@ package org.springframework.boot.autoconfigure.jms;
...
@@ -19,13 +19,10 @@ package org.springframework.boot.autoconfigure.jms;
import
javax.jms.ConnectionFactory
;
import
javax.jms.ConnectionFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.autoconfigure.AutoConfigureAfter
;
import
org.springframework.boot.autoconfigure.EnableAutoConfiguration
;
import
org.springframework.boot.autoconfigure.EnableAutoConfiguration
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnBean
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnBean
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnClass
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnClass
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean
;
import
org.springframework.boot.autoconfigure.jms.activemq.ActiveMQAutoConfiguration
;
import
org.springframework.boot.autoconfigure.jms.hornetq.HornetQAutoConfiguration
;
import
org.springframework.boot.context.properties.EnableConfigurationProperties
;
import
org.springframework.boot.context.properties.EnableConfigurationProperties
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.Configuration
;
...
@@ -45,7 +42,6 @@ import org.springframework.jms.core.JmsTemplate;
...
@@ -45,7 +42,6 @@ import org.springframework.jms.core.JmsTemplate;
@ConditionalOnClass
(
JmsTemplate
.
class
)
@ConditionalOnClass
(
JmsTemplate
.
class
)
@ConditionalOnBean
(
ConnectionFactory
.
class
)
@ConditionalOnBean
(
ConnectionFactory
.
class
)
@EnableConfigurationProperties
(
JmsProperties
.
class
)
@EnableConfigurationProperties
(
JmsProperties
.
class
)
@AutoConfigureAfter
({
HornetQAutoConfiguration
.
class
,
ActiveMQAutoConfiguration
.
class
})
public
class
JmsAutoConfiguration
{
public
class
JmsAutoConfiguration
{
@Autowired
@Autowired
...
...
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