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
f84fd19e
Commit
f84fd19e
authored
Nov 29, 2016
by
Stephane Nicoll
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Polish contribution
Closes gh-7491
parent
b3220985
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
26 additions
and
32 deletions
+26
-32
ConfigurationMetadataAnnotationProcessor.java
...onprocessor/ConfigurationMetadataAnnotationProcessor.java
+2
-1
TypeElementMembers.java
...ework/boot/configurationprocessor/TypeElementMembers.java
+13
-20
ConfigurationMetadataAnnotationProcessorTests.java
...cessor/ConfigurationMetadataAnnotationProcessorTests.java
+11
-11
No files found.
spring-boot-tools/spring-boot-configuration-processor/src/main/java/org/springframework/boot/configurationprocessor/ConfigurationMetadataAnnotationProcessor.java
View file @
f84fd19e
...
@@ -191,7 +191,8 @@ public class ConfigurationMetadataAnnotationProcessor extends AbstractProcessor
...
@@ -191,7 +191,8 @@ public class ConfigurationMetadataAnnotationProcessor extends AbstractProcessor
private
void
processTypeElement
(
String
prefix
,
TypeElement
element
,
private
void
processTypeElement
(
String
prefix
,
TypeElement
element
,
ExecutableElement
source
)
{
ExecutableElement
source
)
{
TypeElementMembers
members
=
new
TypeElementMembers
(
this
.
processingEnv
,
this
.
fieldValuesParser
,
element
);
TypeElementMembers
members
=
new
TypeElementMembers
(
this
.
processingEnv
,
this
.
fieldValuesParser
,
element
);
Map
<
String
,
Object
>
fieldValues
=
members
.
getFieldValues
();
Map
<
String
,
Object
>
fieldValues
=
members
.
getFieldValues
();
processSimpleTypes
(
prefix
,
element
,
source
,
members
,
fieldValues
);
processSimpleTypes
(
prefix
,
element
,
source
,
members
,
fieldValues
);
processSimpleLombokTypes
(
prefix
,
element
,
source
,
members
,
fieldValues
);
processSimpleLombokTypes
(
prefix
,
element
,
source
,
members
,
fieldValues
);
...
...
spring-boot-tools/spring-boot-configuration-processor/src/main/java/org/springframework/boot/configurationprocessor/TypeElementMembers.java
View file @
f84fd19e
...
@@ -31,7 +31,6 @@ import javax.lang.model.element.VariableElement;
...
@@ -31,7 +31,6 @@ import javax.lang.model.element.VariableElement;
import
javax.lang.model.type.TypeKind
;
import
javax.lang.model.type.TypeKind
;
import
javax.lang.model.type.TypeMirror
;
import
javax.lang.model.type.TypeMirror
;
import
javax.lang.model.util.ElementFilter
;
import
javax.lang.model.util.ElementFilter
;
import
javax.tools.Diagnostic
;
import
org.springframework.boot.configurationprocessor.fieldvalues.FieldValuesParser
;
import
org.springframework.boot.configurationprocessor.fieldvalues.FieldValuesParser
;
...
@@ -65,7 +64,6 @@ class TypeElementMembers {
...
@@ -65,7 +64,6 @@ class TypeElementMembers {
this
.
typeUtils
=
new
TypeUtils
(
this
.
env
);
this
.
typeUtils
=
new
TypeUtils
(
this
.
env
);
this
.
fieldValuesParser
=
fieldValuesParser
;
this
.
fieldValuesParser
=
fieldValuesParser
;
process
(
element
);
process
(
element
);
processFieldValues
(
element
);
}
}
private
void
process
(
TypeElement
element
)
{
private
void
process
(
TypeElement
element
)
{
...
@@ -77,6 +75,19 @@ class TypeElementMembers {
...
@@ -77,6 +75,19 @@ class TypeElementMembers {
.
fieldsIn
(
element
.
getEnclosedElements
()))
{
.
fieldsIn
(
element
.
getEnclosedElements
()))
{
processField
(
field
);
processField
(
field
);
}
}
try
{
Map
<
String
,
Object
>
fieldValues
=
this
.
fieldValuesParser
.
getFieldValues
(
element
);
for
(
Map
.
Entry
<
String
,
Object
>
entry
:
fieldValues
.
entrySet
())
{
if
(!
this
.
fieldValues
.
containsKey
(
entry
.
getKey
()))
{
this
.
fieldValues
.
put
(
entry
.
getKey
(),
entry
.
getValue
());
}
}
}
catch
(
Exception
ex
)
{
// continue
}
Element
superType
=
this
.
env
.
getTypeUtils
().
asElement
(
element
.
getSuperclass
());
Element
superType
=
this
.
env
.
getTypeUtils
().
asElement
(
element
.
getSuperclass
());
if
(
superType
!=
null
&&
superType
instanceof
TypeElement
if
(
superType
!=
null
&&
superType
instanceof
TypeElement
&&
!
OBJECT_CLASS_NAME
.
equals
(
superType
.
toString
()))
{
&&
!
OBJECT_CLASS_NAME
.
equals
(
superType
.
toString
()))
{
...
@@ -174,24 +185,6 @@ class TypeElementMembers {
...
@@ -174,24 +185,6 @@ class TypeElementMembers {
return
null
;
return
null
;
}
}
private
void
processFieldValues
(
TypeElement
element
)
{
try
{
this
.
fieldValues
.
putAll
(
this
.
fieldValuesParser
.
getFieldValues
(
element
));
}
catch
(
Exception
ex
)
{
logWarning
(
"Could not get values for type :"
+
element
.
getSimpleName
().
toString
());
}
Element
superType
=
this
.
env
.
getTypeUtils
().
asElement
(
element
.
getSuperclass
());
if
(
superType
!=
null
&&
superType
instanceof
TypeElement
&&
!
Object
.
class
.
getName
().
equals
(
superType
.
toString
()))
{
processFieldValues
((
TypeElement
)
superType
);
}
}
private
void
logWarning
(
String
message
)
{
this
.
env
.
getMessager
().
printMessage
(
Diagnostic
.
Kind
.
WARNING
,
message
);
}
public
Map
<
String
,
Object
>
getFieldValues
()
{
public
Map
<
String
,
Object
>
getFieldValues
()
{
return
Collections
.
unmodifiableMap
(
this
.
fieldValues
);
return
Collections
.
unmodifiableMap
(
this
.
fieldValues
);
}
}
...
...
spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationprocessor/ConfigurationMetadataAnnotationProcessorTests.java
View file @
f84fd19e
...
@@ -352,6 +352,17 @@ public class ConfigurationMetadataAnnotationProcessorTests {
...
@@ -352,6 +352,17 @@ public class ConfigurationMetadataAnnotationProcessorTests {
assertThat
(
metadata
).
isNotEqualTo
(
Metadata
.
withProperty
(
"specific.foo"
));
assertThat
(
metadata
).
isNotEqualTo
(
Metadata
.
withProperty
(
"specific.foo"
));
}
}
@Test
public
void
nestedClassChildProperties
()
throws
Exception
{
ConfigurationMetadata
metadata
=
compile
(
ClassWithNestedProperties
.
class
);
assertThat
(
metadata
).
has
(
Metadata
.
withGroup
(
"nestedChildProps"
)
.
fromSource
(
ClassWithNestedProperties
.
NestedChildClass
.
class
));
assertThat
(
metadata
).
has
(
Metadata
.
withProperty
(
"nestedChildProps.child-class-property"
,
Integer
.
class
)
.
fromSource
(
ClassWithNestedProperties
.
NestedChildClass
.
class
).
withDefaultValue
(
20
));
assertThat
(
metadata
).
has
(
Metadata
.
withProperty
(
"nestedChildProps.parent-class-property"
,
Integer
.
class
)
.
fromSource
(
ClassWithNestedProperties
.
NestedChildClass
.
class
).
withDefaultValue
(
10
));
}
@Test
@Test
public
void
builderPojo
()
throws
IOException
{
public
void
builderPojo
()
throws
IOException
{
ConfigurationMetadata
metadata
=
compile
(
BuilderPojo
.
class
);
ConfigurationMetadata
metadata
=
compile
(
BuilderPojo
.
class
);
...
@@ -768,17 +779,6 @@ public class ConfigurationMetadataAnnotationProcessorTests {
...
@@ -768,17 +779,6 @@ public class ConfigurationMetadataAnnotationProcessorTests {
}
}
}
}
@Test
public
void
nestedClassChildProperties
()
throws
Exception
{
ConfigurationMetadata
metadata
=
compile
(
ClassWithNestedProperties
.
class
);
assertThat
(
metadata
).
has
(
Metadata
.
withGroup
(
"nestedChildProps"
)
.
fromSource
(
ClassWithNestedProperties
.
NestedChildClass
.
class
));
assertThat
(
metadata
).
has
(
Metadata
.
withProperty
(
"nestedChildProps.child-class-property"
,
Integer
.
class
)
.
fromSource
(
ClassWithNestedProperties
.
NestedChildClass
.
class
).
withDefaultValue
(
20
));
assertThat
(
metadata
).
has
(
Metadata
.
withProperty
(
"nestedChildProps.parent-class-property"
,
Integer
.
class
)
.
fromSource
(
ClassWithNestedProperties
.
NestedChildClass
.
class
).
withDefaultValue
(
10
));
}
private
static
class
AdditionalMetadata
{
private
static
class
AdditionalMetadata
{
}
}
...
...
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