Skip to content

Commit

Permalink
Make quickstart-java template work with canton sandbox. (digital-asse…
Browse files Browse the repository at this point in the history
…t#12453)

* Make quickstart-java template work with canton

Also update the quickstart-java release test instructions to use the new sandbox. This is a bit more involved than before, because of the party names being different every time, but I hope this is not too much of a burden. The test here is similar to what gets tested in the assistant integration test for quickstart-java.

changelog_begin
changelog_end

* try to fix indentation
  • Loading branch information
sofiafaro-da authored Jan 18, 2022
1 parent 25ddfcd commit 2500d4f
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 37 deletions.
80 changes: 50 additions & 30 deletions release/RELEASE.md
Original file line number Diff line number Diff line change
Expand Up @@ -237,45 +237,65 @@ patches we backport to the 1.0 release branch).

1. Run `daml start`. Your browser should be opened automatically at
`http://localhost:7500`. Login as `Alice` and verify that there is
1 contract and 3 templates. Close the tab and kill `daml start` using
`Ctrl-C`.
1 contract, and that the templates list contains `Iou:Iou`, `Iou:IouTransfer`,
and `IouTrade:IouTrade` among other templates.

1. Close the tab and kill `daml start` using `Ctrl-C`.

1. Run `daml build`.

1. In 3 separate terminals (since each command blocks), run:

1. `daml sandbox-kv --wall-clock-time --port 6865 .daml/dist/quickstart-0.0.1.dar`
1. `daml script --dar .daml/dist/quickstart-0.0.1.dar --script-name Main:initialize --ledger-host localhost --ledger-port 6865 --wall-clock-time && daml navigator server localhost 6865 --port 7500`
1. `daml codegen java && mvn compile exec:java@run-quickstart`

> Note: It takes some time (typically around half-an-hour) for our artifacts
> to be available on Maven Central. If you try running the last command before
> the artifacts are available, you will get a "not found" error. Trying to
> build again _in the next 24 hours_ will result in:
>
> ```
> Failure to find ... was cached in the local repository, resolution will not be reattempted until the update interval of digitalasset-releases has elapsed or updates are forced
> ```
>
> This is Maven telling you it has locally cached that "not found" result
> and will consider it valid for 24h. To bypass that and force Maven to
> try the network call again, add a `-U` option, as in
> `mvn compile exec:java@run-quickstart -U`. Note that this is required to
> bypass your local cache of the failure; it will not be required for a
> user trying to run the quickstart after the artifacts have been
> published.
>
> Another common problem is that artifacts fail to resolve because of custom
> Maven settings. Check your `~/.m2/settings.xml` configuration and try
> disabling them temporarily.
1. In 3 separate terminals, run:

1. `daml sandbox --port 6865`

1. Each of the following:

1. `daml ledger upload-dar --host localhost --port 6865 .daml/dist/quickstart-0.0.1.dar`

1. `daml script --ledger-host localhost --ledger-port 6865 --dar .daml/dist/quickstart-0.0.1.dar --script-name Main:initialize --script-output output.json`

1. `cat output.json` and verify that the output looks like this:
```
["Alice::NAMESPACE", "EUR_Bank::NAMESPACE"]
```
where `NAMESPACE` is some randomly generated series of hex digits.
1. `daml navigator server localhost 6865 --port 7500`
1. `daml codegen java && mvn compile exec:java@run-quickstart -Dparty=$(cat output.json | sed 's/\[\"//' | sed 's/".*//')`
Note that this step scrapes the `Alice::NAMESPACE` party name from the `output.json` produced in the previous steps.
> Note: It takes some time (typically around half-an-hour) for our artifacts
> to be available on Maven Central. If you try running the last command before
> the artifacts are available, you will get a "not found" error. Trying to
> build again _in the next 24 hours_ will result in:
>
> ```
> Failure to find ... was cached in the local repository, resolution will not be reattempted until the update interval of digitalasset-releases has elapsed or updates are forced
> ```
>
> This is Maven telling you it has locally cached that "not found" result
> and will consider it valid for 24h. To bypass that and force Maven to
> try the network call again, add a `-U` option, as in
> `mvn compile exec:java@run-quickstart -U`. Note that this is required to
> bypass your local cache of the failure; it will not be required for a
> user trying to run the quickstart after the artifacts have been
> published.
>
> Another common problem is that artifacts fail to resolve because of custom
> Maven settings. Check your `~/.m2/settings.xml` configuration and try
> disabling them temporarily.
1. Point your browser to `http://localhost:7500`, login as `Alice` and verify
that there is 1 contract, 3 templates and 1 owned IOU.
that there is 1 contract, 1 owned IOU, and the templates list contains `Iou:Iou`, `Iou:IouTransfer`,
and `IouTrade:IouTrade` among other templates.
1. Check that `curl http://localhost:8080/iou` returns:
```
{"0":{"issuer":"EUR_Bank","owner":"Alice","currency":"EUR","amount":100.0000000000,"observers":[]}}
{"0":{"issuer":"EUR_Bank::NAMESPACE","owner":"Alice::NAMESPACE","currency":"EUR","amount":100.0000000000,"observers":[]}}
```
where NAMESPACE is again the series of hex digits that you saw before.
1. Kill all processes.
Expand Down
7 changes: 0 additions & 7 deletions templates/quickstart-java/daml.yaml.template
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,11 @@ sdk-version: __VERSION__
name: quickstart
source: daml
init-script: Main:initialize
parties:
- Alice
- Bob
- USD_Bank
- EUR_Bank
version: 0.0.1
dependencies:
- daml-prim
- daml-stdlib
- daml-script
sandbox-options:
- --wall-clock-time
codegen:
java:
package-prefix: com.daml.quickstart.model
Expand Down

0 comments on commit 2500d4f

Please sign in to comment.