{"id":33179041,"url":"https://github.com/FINRAOS/DataGenerator","last_synced_at":"2025-11-20T21:03:14.413Z","repository":{"id":11669937,"uuid":"14179154","full_name":"FINRAOS/DataGenerator","owner":"FINRAOS","description":"DataGenerator is a Java library for systematically producing large volumes of data. DataGenerator frames data production as a modeling problem, with a user providing a model of dependencies among variables and the library traversing the model to produce relevant data sets. ","archived":false,"fork":false,"pushed_at":"2022-07-07T22:05:59.000Z","size":60517,"stargazers_count":163,"open_issues_count":49,"forks_count":170,"subscribers_count":41,"default_branch":"master","last_synced_at":"2025-07-04T06:05:23.723Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://finraos.github.io/DataGenerator","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/FINRAOS.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-11-06T16:59:29.000Z","updated_at":"2025-05-28T05:41:05.000Z","dependencies_parsed_at":"2022-09-21T08:54:06.548Z","dependency_job_id":null,"html_url":"https://github.com/FINRAOS/DataGenerator","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/FINRAOS/DataGenerator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FINRAOS%2FDataGenerator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FINRAOS%2FDataGenerator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FINRAOS%2FDataGenerator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FINRAOS%2FDataGenerator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FINRAOS","download_url":"https://codeload.github.com/FINRAOS/DataGenerator/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FINRAOS%2FDataGenerator/sbom","scorecard":{"id":48503,"data":{"date":"2025-08-11","repo":{"name":"github.com/FINRAOS/DataGenerator","commit":"1f69f949401cbed4db4f553c3eb8350832c4d45a"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":1.9,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":1,"reason":"Found 3/22 approved changesets -- score normalized to 1","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 14 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"170 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-q446-82vq-w674","Warn: Project is vulnerable to: GHSA-78wr-2p64-hpwj","Warn: Project is vulnerable to: GHSA-gwrp-pvrq-jmwv","Warn: Project is vulnerable to: GHSA-4g9r-vxhx-9pgx","Warn: Project is vulnerable to: GHSA-7hfm-57qf-j43q","Warn: Project is vulnerable to: GHSA-crv7-7245-f45f","Warn: Project is vulnerable to: GHSA-hrmr-f5m6-m9pq","Warn: Project is vulnerable to: GHSA-mc84-pj99-q6hh","Warn: Project is vulnerable to: GHSA-xqfj-vm6h-2x34","Warn: Project is vulnerable to: GHSA-h46c-h94j-95f3","Warn: Project is vulnerable to: GHSA-wf8f-6423-gfxg","Warn: Project is vulnerable to: GHSA-4gq5-ch57-c2mg","Warn: Project is vulnerable to: GHSA-4w82-r329-3q67","Warn: Project is vulnerable to: GHSA-57j2-w4cx-62h2","Warn: Project is vulnerable to: GHSA-5949-rw7g-wx7w","Warn: Project is vulnerable to: GHSA-5r5r-6hpj-8gg9","Warn: Project is vulnerable to: GHSA-5ww9-j83m-q7qx","Warn: Project is vulnerable to: GHSA-645p-88qh-w398","Warn: Project is vulnerable to: GHSA-6fpp-rgj9-8rwc","Warn: Project is vulnerable to: GHSA-85cw-hj65-qqv9","Warn: Project is vulnerable to: GHSA-89qr-369f-5m5x","Warn: Project is vulnerable to: GHSA-8c4j-34r4-xr8g","Warn: Project is vulnerable to: GHSA-8w26-6f25-cm9x","Warn: Project is vulnerable to: GHSA-9gph-22xh-8x98","Warn: Project is vulnerable to: GHSA-9m6f-7xcq-8vf8","Warn: Project is vulnerable to: GHSA-c8hm-7hpq-7jhg","Warn: Project is vulnerable to: GHSA-cf6r-3wgc-h863","Warn: Project is vulnerable to: GHSA-cggj-fvv3-cqwv","Warn: Project is vulnerable to: GHSA-cjjf-94ff-43w7","Warn: Project is vulnerable to: GHSA-cmfg-87vq-g5g4","Warn: Project is vulnerable to: GHSA-cvm9-fjm9-3572","Warn: Project is vulnerable to: GHSA-f3j5-rmmp-3fc5","Warn: Project is vulnerable to: GHSA-f9xh-2qgp-cq57","Warn: Project is vulnerable to: GHSA-fmmc-742q-jg75","Warn: Project is vulnerable to: GHSA-fqwf-pjwf-7vqv","Warn: Project is vulnerable to: GHSA-gjmw-vf9h-g25v","Warn: Project is vulnerable to: GHSA-gwp4-hfv6-p7hw","Warn: Project is vulnerable to: GHSA-gww7-p5w4-wrfv","Warn: Project is vulnerable to: GHSA-h3cw-g4mq-c5x2","Warn: Project is vulnerable to: GHSA-h592-38cm-4ggp","Warn: Project is vulnerable to: GHSA-h822-r4r5-v8jg","Warn: Project is vulnerable to: GHSA-jjjh-jjxp-wpff","Warn: Project is vulnerable to: GHSA-m6x4-97wx-4q27","Warn: Project is vulnerable to: GHSA-mph4-vhrx-mv67","Warn: Project is vulnerable to: GHSA-mx7p-6679-8g3q","Warn: Project is vulnerable to: GHSA-p43x-xfjf-5jhr","Warn: Project is vulnerable to: GHSA-q93h-jc49-78gg","Warn: Project is vulnerable to: GHSA-qjw2-hr98-qgfh","Warn: Project is vulnerable to: GHSA-qr7j-h6gg-jmgc","Warn: Project is vulnerable to: GHSA-qxxx-2pp7-5hmx","Warn: Project is vulnerable to: GHSA-r3gr-cxrf-hg25","Warn: Project is vulnerable to: GHSA-r695-7vr9-jgc2","Warn: Project is vulnerable to: GHSA-rfx6-vp9g-rh7v","Warn: Project is vulnerable to: GHSA-rgv9-q543-rqg4","Warn: Project is vulnerable to: GHSA-rpr3-cw39-3pxh","Warn: Project is vulnerable to: GHSA-v585-23hc-c647","Warn: Project is vulnerable to: GHSA-vfqx-33qm-g869","Warn: Project is vulnerable to: GHSA-w3f4-3q6j-rh82","Warn: Project is vulnerable to: GHSA-wh8g-3j2c-rqj5","Warn: Project is vulnerable to: GHSA-4jrv-ppp4-jm57","Warn: Project is vulnerable to: GHSA-5mg8-w23w-74h3","Warn: Project is vulnerable to: GHSA-7g45-4rm6-3mm3","Warn: Project is vulnerable to: GHSA-mvr2-9pj6-7w5j","Warn: Project is vulnerable to: GHSA-4gg5-vx3j-xwc7","Warn: Project is vulnerable to: GHSA-735f-pc8j-v9w8","Warn: Project is vulnerable to: GHSA-77rm-9x9h-xj3g","Warn: Project is vulnerable to: GHSA-g5ww-5jh7-63cx","Warn: Project is vulnerable to: GHSA-h4h5-3hr4-j3g2","Warn: Project is vulnerable to: GHSA-wrvw-hg22-4m67","Warn: Project is vulnerable to: GHSA-5m48-vr54-vmh3","Warn: Project is vulnerable to: GHSA-6phf-73q6-gh87","Warn: Project is vulnerable to: GHSA-wxr5-93ph-8wr9","Warn: Project is vulnerable to: GHSA-6hgm-866r-3cjv","Warn: Project is vulnerable to: GHSA-fjq5-5j5f-mvxh","Warn: Project is vulnerable to: GHSA-pvp8-3xj6-8c6x","Warn: Project is vulnerable to: GHSA-3832-9276-x7gf","Warn: Project is vulnerable to: GHSA-j288-q9x7-2f5v","Warn: Project is vulnerable to: GHSA-cgp8-4m63-fhh5","Warn: Project is vulnerable to: GHSA-5mcr-gq6c-3hq2","Warn: Project is vulnerable to: GHSA-7vpq-g998-qpv7","Warn: Project is vulnerable to: GHSA-9vjp-v76f-g363","Warn: Project is vulnerable to: GHSA-cqqj-4p63-rrmm","Warn: Project is vulnerable to: GHSA-f256-j965-7f32","Warn: Project is vulnerable to: GHSA-grg4-wf29-r9vv","Warn: Project is vulnerable to: GHSA-p2v9-g2qv-p635","Warn: Project is vulnerable to: GHSA-wm47-8v5p-wjpj","Warn: Project is vulnerable to: GHSA-wx5j-54mm-rqqq","Warn: Project is vulnerable to: GHSA-xfv3-rrfm-f2rv","Warn: Project is vulnerable to: GHSA-p979-4mfw-53vg","Warn: Project is vulnerable to: GHSA-2qrg-x229-3v8q","Warn: Project is vulnerable to: GHSA-65fg-84f6-3jq3","Warn: Project is vulnerable to: GHSA-f7vh-qwp3-x37m","Warn: Project is vulnerable to: GHSA-fp5r-v3w9-4333","Warn: Project is vulnerable to: GHSA-w9p3-5cr8-m3jj","Warn: Project is vulnerable to: GHSA-r7pg-v2c8-mfg3","Warn: Project is vulnerable to: GHSA-rhrv-645h-fjfh","Warn: Project is vulnerable to: GHSA-jpmf-8cj2-595g","Warn: Project is vulnerable to: GHSA-pr9x-qmp5-j3rr","Warn: Project is vulnerable to: GHSA-qm7f-r83w-3p46","Warn: Project is vulnerable to: GHSA-8r28-r8cp-g6cp","Warn: Project is vulnerable to: GHSA-8wm5-8h9c-47pc","Warn: Project is vulnerable to: GHSA-9r7g-325h-mxrm","Warn: Project is vulnerable to: GHSA-f5fw-25gw-5m92","Warn: Project is vulnerable to: GHSA-f8vc-wfc8-hxqh","Warn: Project is vulnerable to: GHSA-gx2c-fvhc-ph4j","Warn: Project is vulnerable to: GHSA-h24p-qwf4-84q8","Warn: Project is vulnerable to: GHSA-mf7c-35mq-75pj","Warn: Project is vulnerable to: GHSA-rmpj-7c96-mrg8","Warn: Project is vulnerable to: GHSA-58jx-f5rf-qgqf","Warn: Project is vulnerable to: GHSA-2jc4-r94c-rp7h","Warn: Project is vulnerable to: GHSA-94rr-4jr5-9h2p","Warn: Project is vulnerable to: GHSA-wv7w-rj2x-556x","Warn: Project is vulnerable to: GHSA-32w9-2qpc-5f9v","Warn: Project is vulnerable to: GHSA-c8cc-p3j7-4c7f","Warn: Project is vulnerable to: GHSA-p2xq-vcm7-xjj6","Warn: Project is vulnerable to: GHSA-vpcv-78cp-whr3","Warn: Project is vulnerable to: GHSA-x869-784m-jmj2","Warn: Project is vulnerable to: GHSA-6mqq-8r44-vmjc","Warn: Project is vulnerable to: GHSA-8rhc-48pp-52gr","Warn: Project is vulnerable to: GHSA-phg2-9c5g-m4q7","Warn: Project is vulnerable to: GHSA-r34r-f84j-5x4x","Warn: Project is vulnerable to: GHSA-w4r4-65mg-45x2","Warn: Project is vulnerable to: GHSA-2hw2-62cp-p9p7","Warn: Project is vulnerable to: GHSA-7286-pgfv-vxvh","Warn: Project is vulnerable to: GHSA-7cwj-j333-x7f7","Warn: Project is vulnerable to: GHSA-ccqf-c5hq-77mp","Warn: Project is vulnerable to: GHSA-c27h-mcmw-48hv","Warn: Project is vulnerable to: GHSA-r6j9-8759-g62w","Warn: Project is vulnerable to: GHSA-56h3-78gp-v83r","Warn: Project is vulnerable to: GHSA-7rf3-mqpx-h7xg","Warn: Project is vulnerable to: GHSA-grr4-wv38-f68w","Warn: Project is vulnerable to: GHSA-q6g2-g7f3-rr83","Warn: Project is vulnerable to: GHSA-x27m-9w8j-5vcw","Warn: Project is vulnerable to: GHSA-3vqj-43w4-2q58","Warn: Project is vulnerable to: GHSA-4jq9-2xhw-jpx7","Warn: Project is vulnerable to: GHSA-qvxv-pmq9-4q7g","Warn: Project is vulnerable to: GHSA-55g7-9cwv-5qfv","Warn: Project is vulnerable to: GHSA-fjpj-2g6w-x25r","Warn: Project is vulnerable to: GHSA-pqr6-cmr2-h8hf","Warn: Project is vulnerable to: GHSA-qcwq-55hx-v3vh","Warn: Project is vulnerable to: GHSA-vmfg-rjjm-rjrj","Warn: Project is vulnerable to: GHSA-vmq6-5m68-f53m","Warn: Project is vulnerable to: GHSA-668q-qrv7-99fm","Warn: Project is vulnerable to: GHSA-6v67-2wr5-gvf4","Warn: Project is vulnerable to: GHSA-pr98-23f8-jwxv","Warn: Project is vulnerable to: GHSA-288c-cq4h-88gq","Warn: Project is vulnerable to: GHSA-6wqp-v4v6-c87c","Warn: Project is vulnerable to: GHSA-9mxf-g3x6-wv74","Warn: Project is vulnerable to: GHSA-f9hv-mg5h-xcw9","Warn: Project is vulnerable to: GHSA-mx9v-gmh4-mgqw","Warn: Project is vulnerable to: GHSA-x2w5-5m2g-7h5m","Warn: Project is vulnerable to: GHSA-h4x4-5qp2-wp46","Warn: Project is vulnerable to: GHSA-cm59-pr5q-cw85","Warn: Project is vulnerable to: GHSA-rc42-6c7j-7h5r","Warn: Project is vulnerable to: GHSA-xf96-w227-r7c4","Warn: Project is vulnerable to: GHSA-36p3-wjmg-h94x","Warn: Project is vulnerable to: GHSA-hh26-6xwr-ggv7","Warn: Project is vulnerable to: GHSA-4gc7-5j7h-4qph","Warn: Project is vulnerable to: GHSA-4wp7-92pw-q264","Warn: Project is vulnerable to: GHSA-g5mm-vmx4-3rg7","Warn: Project is vulnerable to: GHSA-4487-x383-qpph","Warn: Project is vulnerable to: GHSA-f26x-pr96-vw86","Warn: Project is vulnerable to: GHSA-ffvq-7w96-97p7","Warn: Project is vulnerable to: GHSA-g8hw-794c-4j9g","Warn: Project is vulnerable to: GHSA-rcpf-vj53-7h2m","Warn: Project is vulnerable to: GHSA-v596-fwhq-8x48","Warn: Project is vulnerable to: GHSA-558x-2xjg-6232","Warn: Project is vulnerable to: GHSA-564r-hj7v-mcr5","Warn: Project is vulnerable to: GHSA-9cmq-m9j5-mvww","Warn: Project is vulnerable to: GHSA-wxqc-pxw9-g2p8"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-14T23:14:52.475Z","repository_id":11669937,"created_at":"2025-08-14T23:14:52.475Z","updated_at":"2025-08-14T23:14:52.475Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":285511775,"owners_count":27184237,"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","status":"online","status_checked_at":"2025-11-20T02:00:05.334Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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-11-16T03:00:36.818Z","updated_at":"2025-11-20T21:03:14.407Z","avatar_url":"https://github.com/FINRAOS.png","language":"Java","funding_links":[],"categories":["大数据"],"sub_categories":[],"readme":"[![Build Status](https://travis-ci.org/FINRAOS/DataGenerator.svg?branch=master)](https://travis-ci.org/FINRAOS/DataGenerator) [![Dependency Status](https://www.versioneye.com/user/projects/577671b068ee07003cb5d56a/badge.svg?style=flat-square)](https://www.versioneye.com/user/projects/577671b068ee07003cb5d56a) [![Black Duck Security Risk](https://copilot.blackducksoftware.com/github/repos/FINRAOS/DataGenerator/branches/master/badge-risk.svg)](https://copilot.blackducksoftware.com/github/repos/FINRAOS/DataGenerator/branches/master) [![Join the chat at https://gitter.im/FINRAOS/DataGenerator](https://badges.gitter.im/FINRAOS/DataGenerator.svg)](https://gitter.im/FINRAOS/DataGenerator?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n\nQuick Start Videos\n------------------\nhttps://www.youtube.com/playlist?list=PLB0Zha5q-7wJp3TLH782J7ZDQ2RwPS_hQ\n\nContributing\n------------\nWe encourage contribution from the open source community to make DataGenerator better. Please refer to the [development](http://finraos.github.io/DataGenerator/index.html#get_involved) page for more information on how to contribute to this project.\n\nMaven Dependency\n-----------------\nFor the core\n\n```sh\n\u003cdependency\u003e\n    \u003cgroupId\u003eorg.finra.datagenerator\u003c/groupId\u003e\n    \u003cartifactId\u003edg-core\u003c/artifactId\u003e\n    \u003cversion\u003e2.2\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\nFor the commons library\n\n```sh\n\u003cdependency\u003e\n    \u003cgroupId\u003eorg.finra.datagenerator\u003c/groupId\u003e\n    \u003cartifactId\u003edg-common\u003cartifactId\u003e\n    \u003cversion\u003e2.2\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\nBuilding\n------------\nDataGenerator uses Maven for build. Please install Maven by downloading it from [here](http://maven.apache.org/download.cgi).\n\n```sh\n# Clone DataGenerator git repo\ngit clone git://github.com/FINRAOS/DataGenerator.git\ncd DataGenerator\n\n# Checkout master branch\ngit checkout master\n\n# Run package to compile and create jar (also runs unit tests)\nmvn package\n\n# Compile and run unit tests only\nmvn test\n```\n\n\nLicense\n------------------------------------\nThe DataGenerator project is licensed under [Apache License Version 2.0](http://www.apache.org/licenses/LICENSE-2.0)\n\nOverview\n--------------------\n\nData Generator generates pattern using two pieces of user provided information:\n\n1. An [SCXML](http://commons.apache.org/proper/commons-scxml/) state chart representing interactions between different states, and setting values to output variables\n2. A user [Transformer](http://finraos.github.io/DataGenerator/apis/v2.0/org/finra/datagenerator/consumer/DataTransformer.html) that formats the variables and stores them.\n\nThe user can optionally provide their own [distributor](http://finraos.github.io/DataGenerator/apis/v2.0/org/finra/datagenerator/distributor/SearchDistributor.html) that distributes the search of bigger problems on systems like hadoop. By default, DataGenerator will use a multithreaded distributor.\n\nQuick start\n--------------------\n\nFor the full compilable code please see the [default example](https://github.com/FINRAOS/DataGenerator/blob/master/dg-example-default/)\n\nFirst step, define an [SCXML](http://commons.apache.org/proper/commons-scxml/) model:\n```xml\n\u003cscxml xmlns=\"http://www.w3.org/2005/07/scxml\"\n       xmlns:cs=\"http://commons.apache.org/scxml\"\n       version=\"1.0\"\n       initial=\"start\"\u003e\n\n    \u003cstate id=\"start\"\u003e\n        \u003ctransition event=\"SETV1\" target=\"SETV1\"/\u003e\n    \u003c/state\u003e\n\n    \u003cstate id=\"SETV1\"\u003e\n        \u003conentry\u003e\n            \u003cassign name=\"var_out_V1_1\" expr=\"set:{A1,B1,C1}\"/\u003e\n            \u003cassign name=\"var_out_V1_2\" expr=\"set:{A2,B2,C2}\"/\u003e\n            \u003cassign name=\"var_out_V1_3\" expr=\"77\"/\u003e\n        \u003c/onentry\u003e\n        \u003ctransition event=\"SETV2\" target=\"SETV2\"/\u003e\n    \u003c/state\u003e\n\n    \u003cstate id=\"SETV2\"\u003e\n        \u003conentry\u003e\n            \u003cassign name=\"var_out_V2\" expr=\"set:{1,2,3}\"/\u003e\n            \u003cassign name=\"var_out_V3\" expr=\"#{customplaceholder}\"/\u003e\n        \u003c/onentry\u003e\n        \u003ctransition event=\"end\" target=\"end\"/\u003e\n    \u003c/state\u003e\n\n    \u003cstate id=\"end\"\u003e\n        \u003c!-- We're done --\u003e\n    \u003c/state\u003e\n\u003c/scxml\u003e\n```\n\nThis model contains five variables controlled by two states. The transition between those states is unconditional. One of those variables is always constant ( var_out_V1_3 ). Three will acquire every value from a set ( var_out_V1_1, var_out_V1_2 and var_out_V2 ). var_out_V3 will be set to a holder value that will be replaced by the user at a later point.\n\nThe second step will be to write a [Transformer](http://finraos.github.io/DataGenerator/apis/v2.0/org/finra/datagenerator/consumer/DataTransformer.html). The code is [here](https://github.com/FINRAOS/DataGenerator/blob/master/dg-example-default/src/main/java/org/finra/datagenerator/samples/transformer/SampleMachineTransformer.java)\n\n```java\npublic class SampleMachineTransformer implements DataTransformer {\n\n    private static final Logger log = Logger.getLogger(SampleMachineTransformer.class);\n    private final Random rand = new Random(System.currentTimeMillis());\n\n    /**\n     * The transform method for this DataTransformer\n     * @param cr a reference to DataPipe from which to read the current map\n     */\n    public void transform(DataPipe cr) {\n        for (Map.Entry\u003cString, String\u003e entry : cr.getDataMap().entrySet()) {\n            String value = entry.getValue();\n\n            if (value.equals(\"#{customplaceholder}\")) {\n                // Generate a random number\n                int ran = rand.nextInt();\n                entry.setValue(String.valueOf(ran));\n            }\n        }\n    }\n\n}\n```\nThe above transformer will intercept every generated row, and convert the place holder \"#customplaceholder\" with a random number.\n\nThe last step will be writing a main function that ties both pieces together. Code is [here](https://github.com/FINRAOS/DataGenerator/blob/master/dg-example-default/src/main/java/org/finra/datagenerator/samples/CmdLine.java)\n```java\n    public static void main(String[] args) {\n\n        Engine engine = new SCXMLEngine();\n\n        //will default to samplemachine, but you could specify a different file if you choose to\n        InputStream is = CmdLine.class.getResourceAsStream(\"/\" + (args.length == 0 ? \"samplemachine\" : args[0]) + \".xml\");\n\n        engine.setModelByInputFileStream(is);\n\n        // Usually, this should be more than the number of threads you intend to run\n        engine.setBootstrapMin(1);\n\n        //Prepare the consumer with the proper writer and transformer\n        DataConsumer consumer = new DataConsumer();\n        consumer.addDataTransformer(new SampleMachineTransformer());\n        consumer.addDataWriter(new DefaultWriter(System.out,\n                new String[]{\"var_out_V1_1\", \"var_out_V1_2\", \"var_out_V1_3\", \"var_out_V2\", \"var_out_V3\"}));\n\n        //Prepare the distributor\n        DefaultDistributor defaultDistributor = new DefaultDistributor();\n        defaultDistributor.setThreadCount(1);\n        defaultDistributor.setDataConsumer(consumer);\n        Logger.getLogger(\"org.apache\").setLevel(Level.WARN);\n\n        engine.process(defaultDistributor);\n    }\n```\nThe first few lines will open an input stream on the [SCXML](http://commons.apache.org/proper/commons-scxml/) file and pass the stream to the engine. Calling setBootStrapMin will attempt to split the graph generated from the state chart to at least the given number of splits. Here we passed 1 but in case you will execute the same code over hadoop or use a multithreaded version, you will need to increase that number to be at least the number of threads or mappers you wish to run. The rest of the code will set our transformer to the engine and create a writer based on the DefaultWriter. The function of the writer is to write the output to the user's desired destination.\n\nThe final piece sets the number of threads and called engine.process.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FFINRAOS%2FDataGenerator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FFINRAOS%2FDataGenerator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FFINRAOS%2FDataGenerator/lists"}