Dapr SDK for Java
Go to file
mestizoLopez 192b37e4c0 Fixing and finishing unit tests (#97)
* Fixing and finishing unit tests

* Fixing styling Issues and adding new test
2020-01-15 10:53:25 -08:00
.github Upload jacoco test coverage report to artifact storage (#95) 2020-01-13 17:52:13 -08:00
examples Fix bindings + add samples (#81) 2020-01-10 17:07:40 -08:00
proto Starting package to handle SpringBoot integration. (#69) 2020-01-07 14:22:30 -08:00
sdk Fixing and finishing unit tests (#97) 2020-01-15 10:53:25 -08:00
sdk-actors #26 Integretion Testing Initial Example (#74) 2020-01-13 17:59:27 -08:00
sdk-autogen Starting package to handle SpringBoot integration. (#69) 2020-01-07 14:22:30 -08:00
sdk-springboot #26 Integretion Testing Initial Example (#74) 2020-01-13 17:59:27 -08:00
.gitignore Basic Dapr HTTP Client for Actors. 2019-12-10 23:35:25 -08:00
.gitmodules Renames project to . Fixes examples. Adds proto files from release-0.3. 2019-12-05 18:30:13 -08:00
CONTRIBUTING.md Adding Contribution guidance in java sdk repo 2019-10-15 17:53:20 -07:00
LICENSE Initial commit 2019-10-09 10:30:20 -07:00
README.md Get pen for Win and MacOS + alt for VSCode 2019-12-11 15:50:21 -08:00
pom.xml Spliting Actor client and runtime into a separate jar. (#83) 2020-01-11 10:13:29 -08:00

README.md

Dapr SDK for Java

This is the Dapr SDK for Java, based on the auto-generated proto client.

For more info on Dapr and gRPC, visit this link.

Installing

Clone this repository including the submodules:

git clone https://github.com/dapr/java-sdk.git

Then head over to build the Maven (Apache Maven version 3.x) project:

# make sure you are in the `java-sdk` directory.
mvn install

Running the examples

Try the following examples to learn more about Dapr's Java SDK:

Creating and publishing the artifacts to Nexus Repository

From the root directory:

mvn package
mvn deploy:deploy-file -DgeneratePom=false -DrepositoryId=nexus -Durl=http://localhost:8081/repository/maven-releases -DpomFile=pom.xml -Dfile=target/client-0.1.0-preview.jar

For more documentation reference :

https://maven.apache.org/plugins/maven-deploy-plugin

https://help.sonatype.com/repomanager3/user-interface/uploading-components

Maven Module version management

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 or your preferred load balancer utility:

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.

Then run Dapr with the load balancer process listening on port 3001 and forwarding to port 3000. For Pen Load Balancer, it would be:

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.