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

Add App Engine Datastore raw APIs sample. #171

Merged
merged 1 commit into from
Apr 21, 2016
Merged

Add App Engine Datastore raw APIs sample. #171

merged 1 commit into from
Apr 21, 2016

Conversation

tswast
Copy link
Contributor

@tswast tswast commented Apr 21, 2016

These samples are pulled from the projection query and structuring for strong consistency pages.

I will add additional code to this sample as I convert the other pages.

@lesv PTAL.


GuestbookStrong(
String guestbookName,
DatastoreService datastore,
Copy link
Contributor

Choose a reason for hiding this comment

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

You have DatastoreService and UserService as parameters to the constructor. Is it because you wanted them to be injectable? Generally it's an easy and readable DI mechanism and great for simple samples like ours, but actually it is not needed for App Engine services. The test helper will replace the stubs for you, so you can just create the service object from the factory in the user land code. I may miss some other reasons though.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yes, it's to be injectable. I also have DatastoreService as a parameter for some functions so that when I include the code the reader will see that the variable datastore is a DatastoreService type.

It wasn't clear to me if the DatastoreService created by the factory would connect to the same or a different in-memory datastore if it is called more than once. With injection, it's clear that we are definitely connecting to the same datastore in the test and in the code we are trying to test.

Plus, this is the way we always did it internally at Google. (Actually, we injected into the Servlet classes, as well, using Guice to do URL routing, but personally I find that super confusing and inappropriate for a sample)

Copy link
Contributor

Choose a reason for hiding this comment

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

I'm pretty sure that the services will use the same database, but it allows you to re-use the service object, and I think that's a fair reason. I just wanted to point out that with the App Engine test helper, you don't have to have DI container solely for testing purpose, at least for the services provided by App Engine.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Good point. I just did a test with no injection and it does seem to use the same database.

To get the sharing with less boilerplate, I moved the factory call to the AbstractGuestbook class. That way the constructor doesn't need to get these passed in, but we still have object sharing.

@lesv
Copy link
Contributor

lesv commented Apr 21, 2016

Consider Takashi's comments and mine. Ok to merge after that.

@tmatsuo
Copy link
Contributor

tmatsuo commented Apr 21, 2016

LGTM

These samples are pulled from the "projection query"
https://cloud.google.com/appengine/docs/java/datastore/projectionqueries
and "structuring for strong consistency"
https://cloud.google.com/appengine/docs/java/datastore/structuring_for_strong_consistency
pages.

I will add additional code to this sample as I convert the other pages,
as well.
@tswast tswast merged commit 0dd0927 into master Apr 21, 2016
@tswast tswast deleted the datastore branch April 21, 2016 17:43
minherz pushed a commit that referenced this pull request Nov 9, 2022
…171)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [com.google.cloud:libraries-bom](https://github.com/GoogleCloudPlatform/cloud-opensource-java) | major | `5.7.0` -> `6.0.0` |

---

### Renovate configuration

:date: **Schedule**: At any time (no schedule defined).

:vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

:recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

:no_bell: **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/java-errorreporting).
minherz pushed a commit that referenced this pull request Nov 10, 2022
…171)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [com.google.cloud:libraries-bom](https://github.com/GoogleCloudPlatform/cloud-opensource-java) | major | `5.7.0` -> `6.0.0` |

---

### Renovate configuration

:date: **Schedule**: At any time (no schedule defined).

:vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

:recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

:no_bell: **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/java-errorreporting).
minherz pushed a commit that referenced this pull request Nov 10, 2022
…171)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [com.google.cloud:libraries-bom](https://github.com/GoogleCloudPlatform/cloud-opensource-java) | major | `5.7.0` -> `6.0.0` |

---

### Renovate configuration

:date: **Schedule**: At any time (no schedule defined).

:vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

:recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

:no_bell: **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/java-errorreporting).
bourgeoisor pushed a commit that referenced this pull request Nov 11, 2022
….0 (#171)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [com.google.cloud:libraries-bom](https://github.com/GoogleCloudPlatform/cloud-opensource-java) | minor | `5.1.0` -> `5.2.0` |

---

### Renovate configuration

:date: **Schedule**: At any time (no schedule defined).

:vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

:recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

:no_bell: **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/java-dataproc).
Shabirmean pushed a commit that referenced this pull request Nov 11, 2022
…5.1 (#171)

[![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [com.google.cloud:google-cloud-pubsub](https://github.com/googleapis/java-pubsub) | `1.115.0` -> `1.115.1` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-pubsub/1.115.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-pubsub/1.115.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-pubsub/1.115.1/compatibility-slim/1.115.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-pubsub/1.115.1/confidence-slim/1.115.0)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>googleapis/java-pubsub</summary>

### [`v1.115.1`](https://github.com/googleapis/java-pubsub/blob/HEAD/CHANGELOG.md#&#8203;11151-httpswwwgithubcomgoogleapisjava-pubsubcomparev11150v11151-2022-01-07)

[Compare Source](https://github.com/googleapis/java-pubsub/compare/v1.115.0...v1.115.1)

</details>

---

### Configuration

📅 **Schedule**: At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, click this checkbox.

---

This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-contact-center-insights).
Shabirmean pushed a commit that referenced this pull request Nov 11, 2022
…5.1 (#171)

[![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [com.google.cloud:google-cloud-pubsub](https://github.com/googleapis/java-pubsub) | `1.115.0` -> `1.115.1` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-pubsub/1.115.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-pubsub/1.115.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-pubsub/1.115.1/compatibility-slim/1.115.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-pubsub/1.115.1/confidence-slim/1.115.0)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>googleapis/java-pubsub</summary>

### [`v1.115.1`](https://github.com/googleapis/java-pubsub/blob/HEAD/CHANGELOG.md#&#8203;11151-httpswwwgithubcomgoogleapisjava-pubsubcomparev11150v11151-2022-01-07)

[Compare Source](https://github.com/googleapis/java-pubsub/compare/v1.115.0...v1.115.1)

</details>

---

### Configuration

📅 **Schedule**: At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, click this checkbox.

---

This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-contact-center-insights).
Shabirmean pushed a commit that referenced this pull request Nov 17, 2022
…171)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [com.google.cloud:libraries-bom](https://github.com/GoogleCloudPlatform/cloud-opensource-java) | major | `5.7.0` -> `6.0.0` |

---

### Renovate configuration

:date: **Schedule**: At any time (no schedule defined).

:vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

:recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

:no_bell: **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/java-language).
Shabirmean pushed a commit that referenced this pull request Nov 17, 2022
…171)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [com.google.cloud:libraries-bom](https://github.com/GoogleCloudPlatform/cloud-opensource-java) | major | `5.7.0` -> `6.0.0` |

---

### Renovate configuration

:date: **Schedule**: At any time (no schedule defined).

:vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

:recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

:no_bell: **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/java-language).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants