{"id":15297532,"url":"https://github.com/raml-org/raml-java-parser","last_synced_at":"2025-10-07T10:31:06.038Z","repository":{"id":9222248,"uuid":"11036770","full_name":"raml-org/raml-java-parser","owner":"raml-org","description":"(deprecated) A RAML parser based on SnakeYAML written in Java","archived":true,"fork":false,"pushed_at":"2022-02-12T14:27:47.000Z","size":5522,"stargazers_count":174,"open_issues_count":139,"forks_count":121,"subscribers_count":44,"default_branch":"master","last_synced_at":"2024-10-01T19:18:13.849Z","etag":null,"topics":["java","raml","raml-parser","raml-tooling"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/raml-org.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE_HEADER.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null}},"created_at":"2013-06-28T20:09:34.000Z","updated_at":"2024-08-02T02:18:53.000Z","dependencies_parsed_at":"2022-09-11T20:20:36.248Z","dependency_job_id":null,"html_url":"https://github.com/raml-org/raml-java-parser","commit_stats":null,"previous_names":[],"tags_count":96,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raml-org%2Framl-java-parser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raml-org%2Framl-java-parser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raml-org%2Framl-java-parser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raml-org%2Framl-java-parser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/raml-org","download_url":"https://codeload.github.com/raml-org/raml-java-parser/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235620759,"owners_count":19019516,"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":["java","raml","raml-parser","raml-tooling"],"created_at":"2024-09-30T19:18:11.924Z","updated_at":"2025-10-07T10:31:00.193Z","avatar_url":"https://github.com/raml-org.png","language":"Java","readme":"DEPRECATION NOTICE: please note that this parser is now deprecated, please use [webapi-parser](https://github.com/raml-org/webapi-parser) instead.\n\n—-\n\n# RAML Java Parser\n[![Gitter](https://badges.gitter.im/JoinChat.svg)](https://gitter.im/raml-org/raml-java-parser?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n[![Maven Central](https://maven-badges.herokuapp.com/maven-central/org.raml/raml-parser-2/badge.svg)](https://maven-badges.herokuapp.com/maven-central/org.raml/raml-parser-2)\n\nThis is a Java implementation of a [RAML](http://raml.org) parser for versions [1.0](http://raml.org/raml-10-spec) and [0.8](http://raml.org/raml-08-spec).\nThe parser depends on SnakeYaml, a Java YAML parser.\n\nThe old version that only support RAML 0.8 is still available [here](https://github.com/raml-org/raml-java-parser/tree/0.8.x).\n\nSee http://raml.org for more information about RAML.\n\n\n## Maven\n\n```xml\n  \u003cdependency\u003e\n    \u003cgroupId\u003eorg.raml\u003c/groupId\u003e\n    \u003cartifactId\u003eraml-parser-2\u003c/artifactId\u003e\n    \u003cversion\u003e${raml-parser-version}\u003c/version\u003e\n  \u003c/dependency\u003e\n```\n\n### Development version\n\nSNAPSHOT versions are NOT synchronized to Central. If you want to use a snapshot version you need to add the https://repository.mulesoft.org/nexus/content/repositories/snapshots/ repository to your pom.xml.\n\n## Build\n\n### JAR file without dependencies\n\n```mvn clean package```\n\n### JAR file with dependencies\n\n```mvn clean package -P jar-with-dependencies```\n\n**Run standalone validator**\n\n```java -jar raml-parser-2-{version}.jar raml-file ...```\n\n### Raml Java Parser JVM Arguments\nIn order to provide more flexibility, users can set different system properties when parsing different RAML files. Here we list all the system properties you can use right now:\n\nArgument | Description | Default Value\n-------- | ----------- | -------------\n```yagi.json_duplicate_keys_detection``` | Setting it to true will make the parser fail if any JSON example contains duplicated keys | ```true```\n```raml.json_schema.fail_on_warning``` | Setting it to true will make the parser fail if any example validated against a particular Json Schema throws a warning message | ```false```\n```yagi.date_only_four_digits_year_length_validation```|\tIf TRUE, years of more than 4 digits are considered invalid | ```true```\n```org.raml.date_only_four_digits_year_length_validation```|\tSame as \"yagi.date_only_four_digits_year_length_validation\" (kept for backwards compatibility)| ```true```\n```org.raml.dates_rfc3339_validation```|\tif TRUE, enables RFC3339 validation for \"datetime\" type| ```true```\n```org.raml.dates_rfc2616_validation```|\tif TRUE, enables RFC2616 validation for \"datetime\" type| ```true```\n```raml.xml.expandExternalEntities```|\tControls Java's EXTERNAL_GENERAL_ENTITIES_FEATURE and EXTERNAL_PARAMETER_ENTITIES_FEATURE| ```false```\n```raml.xml.expandInternalEntities```|\tControls Java's DISALLOW_DOCTYPE_DECL_FEATURE| ```false```\n```org.raml.strict_booleans```|\tIf FALSE, the strings \"true\" and \"false\" are valid for boolean type\t| ```false```\n```org.raml.fallback_datetime_to_datetime-only```|\tif TRUE, value passed to a datetime type will fallback on the datetime-only type and validate accordingly| ```false```\n```org.raml.cast_strings_as_numbers```|\tif TRUE, will attempt to cast strings as numbers and validate| ```false```\n```org.raml.nillable_types```|\tif TRUE, makes all types equivalent to type: \u003ccode\u003etype: type\u0026#124; nil;\u003c/code\u003e | ```false```\n```raml.verifyRaml```|Verify the RAML file for YAML reference abuses | `true`\n```raml.verifyReferenceCycle```|Specifically verify YAML reference cycles| `true`\n```raml.maxDepth```|Limit depth of YAML references | `2000`\n```raml.maxReferences```|Limit number of YAML references in expansions|`10000`\n```raml.parser.encoding```|\tDefines the charset being used by the parser| ```UTF-8```\n\nThe RAML parser's XML parsing components also respect Java XML entity properties.\n \n## Usage\n\n```java\nRamlModelResult ramlModelResult = new RamlModelBuilder().buildApi(input);\nif (ramlModelResult.hasErrors())\n{\n    for (ValidationResult validationResult : ramlModelResult.getValidationResults())\n    {\n        System.out.println(validationResult.getMessage());\n    }\n}\nelse\n{\n    Api api = ramlModelResult.getApiV10();\n\n}\n```\n\n## Contribution guidelines\n\n### Contributor’s Agreement\n\nTo contribute source code to this repository, please read our [contributor's agreement](http://www.mulesoft.org/legal/contributor-agreement.html), and then execute it by running this notebook and following the instructions: https://api-notebook.anypoint.mulesoft.com/notebooks/#380297ed0e474010ff43\n\n### Pull requests are always welcome\n\nWe are always thrilled to receive pull requests, and do our best to process them as fast as possible. Not sure if that typo is worth a pull request? Do it! We will appreciate it.\n\nIf your pull request is not accepted on the first try, don't be discouraged! If there's a problem with the implementation, hopefully you received feedback on what to improve.\n\n### Create issues...\n\nAny significant improvement should be documented as [a GitHub issue](https://github.com/raml-org/raml-java-parser/issues) before anybody\nstarts working on it.\n\n### ...but check for existing issues first!\n\nPlease take a moment to check that an issue doesn't already exist documenting your bug report or improvement proposal. If it does, it never hurts to thumb up the original post or add \"I have this problem too\". This will help prioritize the most common problems and requests.\n\n### Merge approval\n\nThe maintainers will review your pull request and, if approved, will merge into the main repo. Commits get approval based on the conventions outlined in the previous section. For example, new features without additional tests will be not approved.\n","funding_links":[],"categories":["API Design Tooling"],"sub_categories":["RAML"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Framl-org%2Framl-java-parser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Framl-org%2Framl-java-parser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Framl-org%2Framl-java-parser/lists"}