diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 000000000..7bdfd80b2 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,44 @@ +name: Build + +on: + push: + branches: + - master + - release-* + - java_sdk_wip + tags: + - v* + + pull_request: + branches: + - master + - release-* + - java_sdk_wip + +jobs: + build: + runs-on: ubuntu-latest + env: + JDK_VER: 13.0.x + DAPR_RUNTIME_VER: 0.3.0 + steps: + - uses: actions/checkout@v1 + - name: Set up ${{ env.JDK_VER }} + uses: actions/setup-java@v1 + with: + java-version: ${{ env.JDK_VER }} + - name: Set up Dapr CLI + run: wget -q https://raw.githubusercontent.com/dapr/cli/master/install/install.sh -O - | /bin/bash + - name: Initialize Dapr runtime as a standalone mode + run: | + sudo dapr init --runtime-version ${{ env.DAPR_RUNTIME_VER }} + echo "Showing dapr version..." + dapr --version + - name: Clean up files + run: mvn clean + - name: Build sdk + run: mvn compile + - name: Unit-test + run: mvn test + - name: Integration-test + run: mvn integration-test diff --git a/README.md b/README.md index 221a3b720..319491294 100644 --- a/README.md +++ b/README.md @@ -45,3 +45,30 @@ To increase the version of all modules and pom files, run the following commands mvn versions:set -DnewVersion="0.1.0-preview02" mvn versions:commit ``` + +### Debug Java application or Dapr's Java SDK + +If you have a Java application or an issue on this SDK that needs to be debugged, follow the steps below: + +Install [Pen Load Balancer](https://sourceforge.net/projects/penloadbalancer/) or your preferred load balancer utility: +```sh +sudo apt-get install pen +``` +Note: Pen is also available on Windows in the link above. For MacOS, you will need to [build it from source code](https://github.com/UlricE/pen/wiki/Building-Pen-from-Git). + +Then run Dapr with the load balancer process listening on port 3001 and forwarding to port 3000. For Pen Load Balancer, it would be: +```sh +dapr run --app-id testapp --app-port 3001 --port 3500 -- pen -b 99999999 -f localhost:3001 localhost:3000 +``` + +The command below will start a load balancer listening on port `3001` that forwards connections to port `3000`, while Dapr's app identifier is `testapp` and listening port is `3500`. If you try to make a HTTP call to any URL on `localhost:3001`, it will fail until you have an application listening on `localhost:3000`. + +Now you can go to your IDE (like IntelliJ, for example) and debug your Java application, using port `3500` to call Dapr while also listening to port `3000` to expose Dapr's callback endpoint. + +Calls to Dapr's APIs on `http://localhost:3500/*` should work now and trigger breakpoints in your code. + +**If your application needs to suscribe to topics or register Actors in Dapr, for example, then start debugging your app first and run dapr with load balancer last.** + +Reminder: for Dapr, your application is listening to port `3001` and not `3000` since it can only see the load balancer's port. + +**If using Visual Studio Code, also consider [this solution as well](https://github.com/dapr/docs/tree/master/howto/vscode-debugging-daprd).**