{"id":35269349,"url":"https://github.com/factset/enterprise-sdk-eventdriven-factsettrading-java","last_synced_at":"2026-05-12T16:07:26.290Z","repository":{"id":179088435,"uuid":"639290266","full_name":"factset/enterprise-sdk-eventdriven-factsettrading-java","owner":"factset","description":null,"archived":false,"fork":false,"pushed_at":"2026-04-09T05:56:29.000Z","size":155,"stargazers_count":1,"open_issues_count":9,"forks_count":0,"subscribers_count":4,"default_branch":"main","last_synced_at":"2026-04-09T07:36:38.727Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/factset.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-05-11T07:01:09.000Z","updated_at":"2025-09-25T14:58:33.000Z","dependencies_parsed_at":"2023-09-23T15:07:16.698Z","dependency_job_id":"723897c7-2374-418d-9873-6127c61c7d6d","html_url":"https://github.com/factset/enterprise-sdk-eventdriven-factsettrading-java","commit_stats":null,"previous_names":["factset/enterprise-sdk-streaming-factsettrading-java","factset/enterprise-sdk-eventdriven-factsettrading-java"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/factset/enterprise-sdk-eventdriven-factsettrading-java","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/factset%2Fenterprise-sdk-eventdriven-factsettrading-java","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/factset%2Fenterprise-sdk-eventdriven-factsettrading-java/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/factset%2Fenterprise-sdk-eventdriven-factsettrading-java/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/factset%2Fenterprise-sdk-eventdriven-factsettrading-java/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/factset","download_url":"https://codeload.github.com/factset/enterprise-sdk-eventdriven-factsettrading-java/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/factset%2Fenterprise-sdk-eventdriven-factsettrading-java/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32946529,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-12T09:19:52.626Z","status":"ssl_error","status_checked_at":"2026-05-12T09:17:33.438Z","response_time":102,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":[],"created_at":"2025-12-30T11:53:30.065Z","updated_at":"2026-05-12T16:07:26.286Z","avatar_url":"https://github.com/factset.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg alt=\"FactSet\" src=\"https://www.factset.com/hubfs/Assets/images/factset-logo.svg\" height=\"56\" width=\"290\"\u003e\n\n# FactSet Trading event-driven client library for Java\n\n[![Maven Central](https://img.shields.io/maven-central/v/com.factset.sdk.eventdriven/factsettrading)](https://search.maven.org/artifact/com.factset.sdk.eventdriven/factsettrading)\n\n[![Apache-2 license](https://img.shields.io/badge/license-Apache2-brightgreen.svg)](https://www.apache.org/licenses/LICENSE-2.0)\n\nThis repository contains an event-driven api client for the FactSet Trading API\n\n## Requirements\n\n* Java JDK \u003e= 1.8\n\n## Installation\n\n### Maven\n\nAdd the below dependency to the project's POM:\n\n```xml\n\n\u003cdependency\u003e\n    \u003cgroupId\u003ecom.factset.sdk.eventdriven\u003c/groupId\u003e\n    \u003cartifactId\u003efactsettrading\u003c/artifactId\u003e\n    \u003cversion\u003e2.0.1\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n### Gradle\n\nAdd these dependencies to your project's build file:\n\n```groovy\nrepositories {\n    mavenCentral()\n}\n\ndependencies {\n    implementation \"com.factset.sdk.eventdriven:factsettrading:2.0.1\"\n}\n```\n\n### Snapshot Releases\n\nTo be able to install snapshot releases of the sdk an additional repository must be added to the maven or gradle config.\n\n#### Maven Snapshot Repository\n\n```xml\n\u003crepositories\u003e\n    \u003crepository\u003e\n        \u003cid\u003esonatype\u003c/id\u003e\n        \u003cname\u003esonatype-snapshot\u003c/name\u003e\n        \u003curl\u003ehttps://central.sonatype.com/repository/maven-snapshots/\u003c/url\u003e\n        \u003csnapshots\u003e\n            \u003cenabled\u003etrue\u003c/enabled\u003e\n        \u003c/snapshots\u003e\n        \u003creleases\u003e\n            \u003cenabled\u003efalse\u003c/enabled\u003e\n        \u003c/releases\u003e\n    \u003c/repository\u003e\n\u003c/repositories\u003e\n```\n\n#### Gradle Snapshot Repository\n\n```groovy\nrepositories {\n    mavenCentral()\n    maven {\n        url = uri(\"https://central.sonatype.com/repository/maven-snapshots/\")\n        mavenContent {\n            snapshotsOnly()\n        }\n    }\n}\n```\n\nSnapshot releases are cached by gradle for some time, for details see: [Gradle Dynamic Versions](https://docs.gradle.org/current/userguide/dynamic_versions.html#sub:declaring_dependency_with_changing_version)\n\n## Usage\n\n1. [Generate OAuth 2.0 authentication credentials](https://developer.factset.com/learn/authentication-oauth2).\n2. Setup Java environment.\n    1. Install and activate Java 1.8+\n    2. Install  [gradle](https://gradle.org/install/)\n3. [Install dependencies](#installation).\n4. Run the following code:\n\n```java\npackage com.factset.sdk.console;\n\nimport com.factset.sdk.eventdriven.factsettrading.OrderUpdateApi;\nimport com.factset.sdk.eventdriven.factsettrading.model.OrderSubscriptionRequest;\nimport com.factset.sdk.utils.authentication.ConfidentialClient;\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\n\nimport java.time.Duration;\nimport java.util.Collections;\nimport java.util.List;\n\npublic class Console {\n\n    private static final Logger logger = LoggerFactory.getLogger(\"main\");\n\n    public static void main(String[] args) throws Exception {\n        ConfidentialClient confidentialClient = new ConfidentialClient(\"/path/to/config/file\");\n\n        // initialize the websocket client\n        WebsocketApiClient client = new WebsocketApiClient(\n                WebsocketApiClient.Options.builder()\n                        .url(\"https://api.factset.com/streaming/trading/ems/v0\")\n                        .authorizer(confidentialClient)\n                        .maximumIdleInterval(Duration.ofSeconds(30))\n                        .build()\n        ).connectAsync().join();\n\n        // initialize the order update api\n        OrderUpdateApi api = new OrderUpdateApi(client);\n\n        // subscribe to order updates\n        OrderSubscriptionRequest.Subscribe subscribe = OrderSubscriptionRequest.Subscribe.builder()\n                .inboundOrders(true)\n                .parentOrders(true)\n                .childOrders(true)\n                .inboundMessages(true)\n                .childMessages(true)\n                .build();\n        OrderSubscriptionRequest request = new OrderSubscriptionRequest(subscribe);\n\n        Subscription subscription = api.subscribeOrderUpdates(request)\n                .onSnapshotEvent((snapshotEvent) -\u003e {\n                    // clients logic of handling the snapshotEvent message goes here\n                    logger.info(snapshotEvent.toString());\n                })\n                .onTradeEvent((tradeEvent) -\u003e {\n                    // clients logic of handling the tradeEvent message goes here\n                    logger.info(tradeEvent.toString());\n                })\n                .onError((exception) -\u003e {\n                    logger.error(exception.toString());\n                })\n                .subscribe()\n                .join();\n\n        // wait\n        Thread.sleep(10000);\n\n        // cancel the subscription\n        subscription.cancel();\n\n        // close the websocket connection\n        client.disconnectAsync().join();\n    }\n}\n```\n\n## Contributing\n\nPlease refer to the [contributing guide](CONTRIBUTING.md).\n\n## Logging\n\nAll logger names start with \"com.factset\".\n\nThis library uses [SLF4J](https://www.slf4j.org/) as logging interface,\nwhich requires a [binding](https://www.slf4j.org/manual.html#swapping) to your logging framework on the classpath.\n\nIf no binding is found, SLF4J prints out the following warning and then defaults to a no-operation\nimplementation, which discard all logs:\n\n```text\nSLF4J: Failed to load class \"org.slf4j.impl.StaticLoggerBinder\".\nSLF4J: Defaulting to no-operation (NOP) logger implementation\nSLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.\n```\n\n## Installation into local maven repo\n\n```sh\n./gradlew publisToMavenLocal\n```\n\n## Copyright\n\nCopyright 2023 FactSet Research Systems Inc\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffactset%2Fenterprise-sdk-eventdriven-factsettrading-java","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffactset%2Fenterprise-sdk-eventdriven-factsettrading-java","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffactset%2Fenterprise-sdk-eventdriven-factsettrading-java/lists"}