-
Notifications
You must be signed in to change notification settings - Fork 916
Added debug-level logging for BeanTableSchema and ImmutableTableSchema. #3006
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Enabling 'software.amazon.awssdk.enhanced.dynamodb.beans' debug logging should make it easier to debug why certain properties are being loaded or ignored. The following bean: ```java @DynamoDbBean public class SimpleBean { private String id; private Integer integerAttribute; @DynamoDbPartitionKey public String getId() { return this.id; } public void setId(String id) { this.id = id; } public Integer getIntegerAttribute() { return integerAttribute; } public void setIntegerAttribute(Integer integerAttribute) { this.integerAttribute = integerAttribute; } } ``` Generates the following log messages: ``` 14:53:27.222 [main] DEBUG software.amazon.awssdk.enhanced.dynamodb.beans - software.amazon.awssdk.enhanced.dynamodb.mapper.testbeans.SimpleBean - Creating bean schema 14:53:27.245 [main] DEBUG software.amazon.awssdk.enhanced.dynamodb.beans - software.amazon.awssdk.enhanced.dynamodb.mapper.testbeans.SimpleBean - Constructor: public software.amazon.awssdk.enhanced.dynamodb.mapper.testbeans.SimpleBean() 14:53:27.373 [main] DEBUG software.amazon.awssdk.enhanced.dynamodb.beans - software.amazon.awssdk.enhanced.dynamodb.mapper.testbeans.SimpleBean - Adding Converter: software.amazon.awssdk.enhanced.dynamodb.DefaultAttributeConverterProvider 14:53:27.373 [main] DEBUG software.amazon.awssdk.enhanced.dynamodb.beans - software.amazon.awssdk.enhanced.dynamodb.DefaultAttributeConverterProvider - Constructor: public software.amazon.awssdk.enhanced.dynamodb.DefaultAttributeConverterProvider() 14:53:27.376 [main] DEBUG software.amazon.awssdk.enhanced.dynamodb.beans - software.amazon.awssdk.enhanced.dynamodb.mapper.testbeans.SimpleBean - Ignoring bean property class because it has no write (set) method. 14:53:27.383 [main] DEBUG software.amazon.awssdk.enhanced.dynamodb.beans - software.amazon.awssdk.enhanced.dynamodb.mapper.testbeans.SimpleBean - Property id read method: public java.lang.String software.amazon.awssdk.enhanced.dynamodb.mapper.testbeans.SimpleBean.getId() 14:53:27.385 [main] DEBUG software.amazon.awssdk.enhanced.dynamodb.beans - software.amazon.awssdk.enhanced.dynamodb.mapper.testbeans.SimpleBean - Property id write method: public void software.amazon.awssdk.enhanced.dynamodb.mapper.testbeans.SimpleBean.setId(java.lang.String) 14:53:27.400 [main] DEBUG software.amazon.awssdk.enhanced.dynamodb.beans - software.amazon.awssdk.enhanced.dynamodb.mapper.testbeans.SimpleBean - Property integerAttribute read method: public java.lang.Integer software.amazon.awssdk.enhanced.dynamodb.mapper.testbeans.SimpleBean.getIntegerAttribute() 14:53:27.400 [main] DEBUG software.amazon.awssdk.enhanced.dynamodb.beans - software.amazon.awssdk.enhanced.dynamodb.mapper.testbeans.SimpleBean - Property integerAttribute write method: public void software.amazon.awssdk.enhanced.dynamodb.mapper.testbeans.SimpleBean.setIntegerAttribute(java.lang.Integer) 14:53:27.406 [main] DEBUG software.amazon.awssdk.enhanced.dynamodb.DefaultAttributeConverterProvider - Converter for EnhancedType(java.lang.String): software.amazon.awssdk.enhanced.dynamodb.internal.converter.attribute.StringAttributeConverter 14:53:27.419 [main] DEBUG software.amazon.awssdk.enhanced.dynamodb.DefaultAttributeConverterProvider - Converter for EnhancedType(java.lang.Integer): software.amazon.awssdk.enhanced.dynamodb.internal.converter.attribute.IntegerAttributeConverter ``` The following immutable: ```java @DynamoDbImmutable(builder = FlattenedBeanImmutable.Builder.class) public class FlattenedBeanImmutable { private final String id; private final String attribute1; private final AbstractBean abstractBean; private FlattenedBeanImmutable(Builder b) { this.id = b.id; this.attribute1 = b.attribute1; this.abstractBean = b.abstractBean; } @DynamoDbPartitionKey public String getId() { return this.id; } public String getAttribute1() { return attribute1; } @DynamoDbFlatten public AbstractBean getAbstractBean() { return abstractBean; } public static final class Builder { private String id; private String attribute1; private AbstractBean abstractBean; public Builder setId(String id) { this.id = id; return this; } public Builder setAttribute1(String attribute1) { this.attribute1 = attribute1; return this; } public Builder setAbstractBean(AbstractBean abstractBean) { this.abstractBean = abstractBean; return this; } public FlattenedBeanImmutable build() { return new FlattenedBeanImmutable(this); } } } ``` Generates the following log messages: ``` 14:50:43.995 [main] DEBUG software.amazon.awssdk.enhanced.dynamodb.beans - software.amazon.awssdk.enhanced.dynamodb.mapper.testbeans.FlattenedBeanImmutable - Creating immutable schema 14:50:44.062 [main] DEBUG software.amazon.awssdk.enhanced.dynamodb.beans - software.amazon.awssdk.enhanced.dynamodb.mapper.testbeans.FlattenedBeanImmutable$Builder - Constructor: public software.amazon.awssdk.enhanced.dynamodb.mapper.testbeans.FlattenedBeanImmutable$Builder() 14:50:44.134 [main] DEBUG software.amazon.awssdk.enhanced.dynamodb.beans - software.amazon.awssdk.enhanced.dynamodb.mapper.testbeans.FlattenedBeanImmutable - Adding Converter: software.amazon.awssdk.enhanced.dynamodb.DefaultAttributeConverterProvider 14:50:44.134 [main] DEBUG software.amazon.awssdk.enhanced.dynamodb.beans - software.amazon.awssdk.enhanced.dynamodb.DefaultAttributeConverterProvider - Constructor: public software.amazon.awssdk.enhanced.dynamodb.DefaultAttributeConverterProvider() 14:50:44.141 [main] DEBUG software.amazon.awssdk.enhanced.dynamodb.beans - software.amazon.awssdk.enhanced.dynamodb.mapper.testbeans.FlattenedBeanImmutable - Property id read method: public java.lang.String software.amazon.awssdk.enhanced.dynamodb.mapper.testbeans.FlattenedBeanImmutable.getId() 14:50:44.142 [main] DEBUG software.amazon.awssdk.enhanced.dynamodb.beans - software.amazon.awssdk.enhanced.dynamodb.mapper.testbeans.FlattenedBeanImmutable$Builder - Property id write method: public software.amazon.awssdk.enhanced.dynamodb.mapper.testbeans.FlattenedBeanImmutable$Builder software.amazon.awssdk.enhanced.dynamodb.mapper.testbeans.FlattenedBeanImmutable$Builder.setId(java.lang.String) 14:50:44.158 [main] DEBUG software.amazon.awssdk.enhanced.dynamodb.beans - software.amazon.awssdk.enhanced.dynamodb.mapper.testbeans.FlattenedBeanImmutable - Property attribute1 read method: public java.lang.String software.amazon.awssdk.enhanced.dynamodb.mapper.testbeans.FlattenedBeanImmutable.getAttribute1() 14:50:44.158 [main] DEBUG software.amazon.awssdk.enhanced.dynamodb.beans - software.amazon.awssdk.enhanced.dynamodb.mapper.testbeans.FlattenedBeanImmutable$Builder - Property attribute1 write method: public software.amazon.awssdk.enhanced.dynamodb.mapper.testbeans.FlattenedBeanImmutable$Builder software.amazon.awssdk.enhanced.dynamodb.mapper.testbeans.FlattenedBeanImmutable$Builder.setAttribute1(java.lang.String) 14:50:44.166 [main] DEBUG software.amazon.awssdk.enhanced.dynamodb.beans - software.amazon.awssdk.enhanced.dynamodb.mapper.testbeans.AbstractBean - Creating bean schema 14:50:44.175 [main] DEBUG software.amazon.awssdk.enhanced.dynamodb.beans - software.amazon.awssdk.enhanced.dynamodb.mapper.testbeans.AbstractBean - Constructor: public software.amazon.awssdk.enhanced.dynamodb.mapper.testbeans.AbstractBean() 14:50:44.178 [main] DEBUG software.amazon.awssdk.enhanced.dynamodb.beans - software.amazon.awssdk.enhanced.dynamodb.mapper.testbeans.AbstractBean - Adding Converter: software.amazon.awssdk.enhanced.dynamodb.DefaultAttributeConverterProvider 14:50:44.178 [main] DEBUG software.amazon.awssdk.enhanced.dynamodb.beans - software.amazon.awssdk.enhanced.dynamodb.DefaultAttributeConverterProvider - Constructor: public software.amazon.awssdk.enhanced.dynamodb.DefaultAttributeConverterProvider() 14:50:44.182 [main] DEBUG software.amazon.awssdk.enhanced.dynamodb.beans - software.amazon.awssdk.enhanced.dynamodb.mapper.testbeans.AbstractBean - Property attribute2 read method: public java.lang.String software.amazon.awssdk.enhanced.dynamodb.mapper.testbeans.AbstractBean.getAttribute2() 14:50:44.183 [main] DEBUG software.amazon.awssdk.enhanced.dynamodb.beans - software.amazon.awssdk.enhanced.dynamodb.mapper.testbeans.AbstractBean - Property attribute2 write method: public void software.amazon.awssdk.enhanced.dynamodb.mapper.testbeans.AbstractBean.setAttribute2(java.lang.String) 14:50:44.185 [main] DEBUG software.amazon.awssdk.enhanced.dynamodb.beans - software.amazon.awssdk.enhanced.dynamodb.mapper.testbeans.AbstractBean - Ignoring bean property class because it has no write (set) method. 14:50:44.189 [main] DEBUG software.amazon.awssdk.enhanced.dynamodb.DefaultAttributeConverterProvider - Converter for EnhancedType(java.lang.String): software.amazon.awssdk.enhanced.dynamodb.internal.converter.attribute.StringAttributeConverter 14:50:44.205 [main] DEBUG software.amazon.awssdk.enhanced.dynamodb.beans - software.amazon.awssdk.enhanced.dynamodb.mapper.testbeans.FlattenedBeanImmutable - Property abstractBean read method: public software.amazon.awssdk.enhanced.dynamodb.mapper.testbeans.AbstractBean software.amazon.awssdk.enhanced.dynamodb.mapper.testbeans.FlattenedBeanImmutable.getAbstractBean() 14:50:44.206 [main] DEBUG software.amazon.awssdk.enhanced.dynamodb.beans - software.amazon.awssdk.enhanced.dynamodb.mapper.testbeans.FlattenedBeanImmutable$Builder - Property abstractBean write method: public software.amazon.awssdk.enhanced.dynamodb.mapper.testbeans.FlattenedBeanImmutable$Builder software.amazon.awssdk.enhanced.dynamodb.mapper.testbeans.FlattenedBeanImmutable$Builder.setAbstractBean(software.amazon.awssdk.enhanced.dynamodb.mapper.testbeans.AbstractBean) 14:50:44.206 [main] DEBUG software.amazon.awssdk.enhanced.dynamodb.DefaultAttributeConverterProvider - Converter for EnhancedType(java.lang.String): software.amazon.awssdk.enhanced.dynamodb.internal.converter.attribute.StringAttributeConverter 14:50:44.209 [main] DEBUG software.amazon.awssdk.enhanced.dynamodb.DefaultAttributeConverterProvider - Converter for EnhancedType(java.lang.String): software.amazon.awssdk.enhanced.dynamodb.internal.converter.attribute.StringAttributeConverter ```
cenedhryn
reviewed
Feb 2, 2022
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is nice!
I was toying with the idea of some kind of indentations to make it clearer which statements belong to the same class but I think it'd be too messy anyway.
cenedhryn
approved these changes
Feb 2, 2022
Kudos, SonarCloud Quality Gate passed! |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Enabling
software.amazon.awssdk.enhanced.dynamodb.beans
debug logging should make it easier to debug why certain properties are being loaded or ignored.The following bean:
Generates the following log messages:
The following immutable:
Generates the following log messages: