Dapr SDK for Java
Go to file
Andres Robles acd28bb189 Receiving the StateOptions on save as part of the State, to comply with the DAPR API (#105)
* Receiving the StateOptions on save as part of the State, to comply with the DAPR API

* #26 Add integration test for Concurrency funtionality in the states module

Co-authored-by: Juan Jose Herrera <35985447+JuanJose-Herrera@users.noreply.github.com>
Co-authored-by: Artur Souza <artursouza.ms@outlook.com>
2020-01-16 10:57:12 -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 Receiving the StateOptions on save as part of the State, to comply with the DAPR API (#105) 2020-01-16 10:57:12 -08:00
sdk-actors Unit tests for stateful actors + fixes. (#104) 2020-01-16 10:47:06 -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.