{"id":18896914,"url":"https://github.com/cloudi/cloudi_tutorial_java","last_synced_at":"2026-02-28T16:30:26.497Z","repository":{"id":31208339,"uuid":"34769327","full_name":"CloudI/cloudi_tutorial_java","owner":"CloudI","description":"CloudI Java Tutorial","archived":false,"fork":false,"pushed_at":"2023-10-27T02:46:56.000Z","size":7245,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-12-31T08:16:33.478Z","etag":null,"topics":["actor-model","cloud","cloud-computing","concurrency","distributed-actors","distributed-systems","fault-tolerance","functional-reactive-programming","java","javascript","maven","microservices","reactive","scalability","soa","tutorial","websockets"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CloudI.png","metadata":{"files":{"readme":"README.markdown","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-04-29T03:03:42.000Z","updated_at":"2021-12-06T23:53:56.000Z","dependencies_parsed_at":"2024-11-08T08:49:36.413Z","dependency_job_id":null,"html_url":"https://github.com/CloudI/cloudi_tutorial_java","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CloudI%2Fcloudi_tutorial_java","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CloudI%2Fcloudi_tutorial_java/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CloudI%2Fcloudi_tutorial_java/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CloudI%2Fcloudi_tutorial_java/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CloudI","download_url":"https://codeload.github.com/CloudI/cloudi_tutorial_java/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239877258,"owners_count":19712038,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["actor-model","cloud","cloud-computing","concurrency","distributed-actors","distributed-systems","fault-tolerance","functional-reactive-programming","java","javascript","maven","microservices","reactive","scalability","soa","tutorial","websockets"],"created_at":"2024-11-08T08:35:42.509Z","updated_at":"2026-02-28T16:30:26.264Z","avatar_url":"https://github.com/CloudI.png","language":"Java","readme":"[CloudI](https://cloudi.org) Java Tutorial\n=========================================\n\n[![Build Status](https://app.travis-ci.com/CloudI/cloudi_tutorial_java.svg?branch=master)](https://app.travis-ci.com/CloudI/cloudi_tutorial_java)\n\nThis repository contains the example source code for the tutorial at\n[https://cloudi.org/tutorial_java.html](https://cloudi.org/tutorial_java.html).  The source code provides local real-time recommendations for\nthe electronic books available at\n[Project Gutenberg](http://www.gutenberg.org/).\n\nWhile the source code is meant to show information related to Java development\nwith the Java CloudI API, additional source code dependencies are used:\n\n* [Apache Log4j](https://logging.apache.org/log4j/) to allow Apache Mahout to use the CloudI log file through stdout/stderr (which keeps all the service log output in the `cloudi.log` file)\n* [Apache Commons DBCP](http://commons.apache.org/dbcp/) for the Apache Mahout database connection pool\n* [Apache Mahout](https://mahout.apache.org/) for the recommendations in Java\n* [Gson](https://github.com/google/gson) for JSON serialization in Java\n* [Jcommander](http://jcommander.org/) for command-line parsing in Java of CloudI service configuration arguments\n* [PostgreSQL Driver](https://search.maven.org/artifact/org.postgresql/postgresql/9.4.1212.jre7/bundle) for Java database usage along with [PostgreSQL](https://www.postgresql.org/) and Apache Mahout\n\nBUILD\n-----\n\nUse maven and JDK 1.7 or 1.8 (Java 7 or 8) to build:\n\n    mvn clean package\n\nRUNNING\n-------\n\nRefer to the [Java Tutorial](https://cloudi.org/tutorial_java.html#how_do_book_recommendations_occur) for detailed steps.\n\nSERVICE API EXAMPLES\n--------------------\n\nUpdate an item's rating:\n\n    curl -X POST -d '{\"message_name\": \"recommendation_update\", \"user_id\": 1, \"item_id\": 1, \"rating\": 5.0}' http://localhost:8080/tutorial/java/service/recommendation/update\n\nGet the current list of recommendations:\n\n    curl -X POST -d '{\"message_name\": \"recommendation_list\", \"user_id\": 1}' http://localhost:8080/tutorial/java/service/recommendation/list\n\nGet the current list of items with the user's current ratings:\n\n    curl -X POST -d '{\"message_name\": \"item_list\", \"user_id\": 1, \"language\": \"en\", \"subject\": \"Philosophy\"}' http://localhost:8080/tutorial/java/service/item/list\n\nGet the current list of languages that items are available in:\n\n    curl -X POST -d '{\"message_name\": \"language_list\"}' http://localhost:8080/tutorial/java/service/language/list\n\nGet the current list of subjects that items are available in:\n\n    curl -X POST -d '{\"message_name\": \"subject_list\"}' http://localhost:8080/tutorial/java/service/subject/list\n\nRefresh the list of items with the books available at [gutenberg.org](http://www.gutenberg.org/):\n\n    curl -X POST -d '{\"message_name\": \"item_refresh\"}' http://localhost:8080/tutorial/java/service/item/refresh\n\nUpdate the recommendations model (public services often do this daily or weekly, but this can be done more frequently):\n\n    curl -X POST -d '{\"message_name\": \"recommendation_refresh\"}' http://localhost:8080/tutorial/java/service/recommendation/refresh\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloudi%2Fcloudi_tutorial_java","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcloudi%2Fcloudi_tutorial_java","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloudi%2Fcloudi_tutorial_java/lists"}