Skip to content
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

GEODE-3915: use ClassName type for cache-loader, writer and listeners #1327

Merged
merged 2 commits into from Jan 29, 2018

Conversation

jinmeiliao
Copy link
Member

@jinmeiliao jinmeiliao commented Jan 23, 2018

Signed-off-by: Patrick Rhomberg prhomberg@pivotal.io

Thank you for submitting a contribution to Apache Geode.

In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:

For all changes:

  • Is there a JIRA ticket associated with this PR? Is it referenced in the commit message?

  • Has your PR been rebased against the latest commit within the target branch (typically develop)?

  • Is your initial contribution a single, squashed commit?

  • Does gradlew build run cleanly?

  • Have you written or updated unit tests to verify your changes?

  • If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?

Note:

Please ensure that once the PR is submitted, you check travis-ci for build issues and
submit an update to your PR as soon as possible. If you need help, please send an
email to dev@geode.apache.org.

@jdeppe-pivotal
Copy link
Contributor

jdeppe-pivotal commented Jan 23, 2018

Currently some options allow multiple classes to be defined - we should make sure we're covering that scenario as well when parameters are included:

abc.xyz?{"a":1,"b":2},foo.bar?{"c":false,"d":"hotel"}

@PurelyApplied
Copy link
Member

Double-check your current git config. I somehow got tagged as the author of your minor fix commit.

Copy link
Member

@PurelyApplied PurelyApplied left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm going to dig into how we're using regex elsewhere... I'm not sure we permit non-Latin characters in some of our regex, although I agree with the given regex and that we should.

*
* See ClassNameConverter.
*/
public class ClassName<T> implements Serializable {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If this needs to be Serializable, it should probably have a serialVersionUID.

try {
initProperties = mapper.readValue(jsonInitProperties, Properties.class);
} catch (IOException e) {
throw new IllegalArgumentException("Invalid JSON: " + jsonInitProperties);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we want to lose the stacktrace here?

private RegionFunctionArgs.ExpirationAttrs regionExpirationIdleTime;
private RegionFunctionArgs.ExpirationAttrs regionExpirationTTL;
private RegionFunctionArgs.EvictionAttrs evictionAttributes;
private ExpirationAttrs entryExpirationIdleTime;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The footprint of this class has changed. the serialVersionUID must be updated.

}

@Test
public void convertClassAndProperties() {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just for good measure, we should probably have a test on a gross
String json = "{\"k1\":\"v1\",\"k2\",\"v2\"}";

I see you use that form in another test, but it would still be good for completion, I think.

@jinmeiliao
Copy link
Member Author

precheckin green

Copy link
Contributor

@jdeppe-pivotal jdeppe-pivotal left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add relevant tests for invalid json too.

@jdeppe-pivotal
Copy link
Contributor

LGTM barring any other dev mailing list objections.

* use json string to specify the init properties
* make sure the parser works when multiple ClassNames are specified in the command line.
* rework AlterRegionCommandDUnitTest
* make sure AnalyzeSerializableJunitTest works in IDEA.

Signed-off-by: Patrick Rhomberg <prhomberg@pivotal.io>
@jinmeiliao jinmeiliao merged commit d0fef0f into apache:develop Jan 29, 2018
@jinmeiliao jinmeiliao deleted the expiry branch January 29, 2018 21:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
3 participants