{"id":40068914,"url":"https://github.com/ggrandes/mapexpression","last_synced_at":"2026-01-19T08:04:59.785Z","repository":{"id":17459143,"uuid":"20233130","full_name":"ggrandes/mapexpression","owner":"ggrandes","description":"Expression Evaluator for use in placeholders like ${name} for Java","archived":false,"fork":false,"pushed_at":"2024-09-15T09:56:35.000Z","size":30,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-24T16:32:45.771Z","etag":null,"topics":["expression-evaluator","expression-template","java"],"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/ggrandes.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":"2014-05-27T19:45:33.000Z","updated_at":"2023-12-11T06:17:15.000Z","dependencies_parsed_at":"2022-09-23T19:12:28.880Z","dependency_job_id":null,"html_url":"https://github.com/ggrandes/mapexpression","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/ggrandes/mapexpression","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ggrandes%2Fmapexpression","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ggrandes%2Fmapexpression/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ggrandes%2Fmapexpression/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ggrandes%2Fmapexpression/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ggrandes","download_url":"https://codeload.github.com/ggrandes/mapexpression/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ggrandes%2Fmapexpression/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28563291,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-19T03:31:16.861Z","status":"ssl_error","status_checked_at":"2026-01-19T03:31:15.069Z","response_time":67,"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":["expression-evaluator","expression-template","java"],"created_at":"2026-01-19T08:04:55.629Z","updated_at":"2026-01-19T08:04:59.775Z","avatar_url":"https://github.com/ggrandes.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# mapexpression\n\nMapExpression is an Expression Evaluator for Java. Open Source Java project under Apache License v2.0\n\n### Current Stable Version is [1.0.3](https://search.maven.org/#search|ga|1|g%3Aorg.javastack%20a%3Amapexpression)\n\n---\n\n## DOC\n\n#### Usage Example\n\n```java\nimport java.util.HashMap;\nimport org.javastack.mapexpression.MapExpression;\nimport org.javastack.mapexpression.mapper.MapMapper;\nimport org.javastack.mapexpression.mapper.SystemPropertyMapper;\n\npublic class Example {\n\tpublic static void main(final String[] args) throws Throwable {\n\t\tfinal String TEST_TEXT = \"Hi ${user.name}, you are ${state}!!\";\n\t\tfinal HashMap\u003cString, String\u003e map = new HashMap\u003cString, String\u003e();\n\t\tmap.put(\"state\", \"lucky\");\n\t\tMapExpression m;\n\t\t// Shot\n\t\tm = new MapExpression(TEST_TEXT, map, true);\n\t\tSystem.out.println(m.get());\n\t\t// Fluent\n\t\tm = new MapExpression();\n\t\tm.setExpression(TEST_TEXT) //\n\t\t\t\t.setPreMapper(SystemPropertyMapper.getInstance()) //\n\t\t\t\t.setPostMapper(new MapMapper(map)) //\n\t\t\t\t.parse() //\n\t\t\t\t.eval();\n\t\tSystem.out.println(m.get());\n\t}\n}\n```\n\n* More examples in [Example package](https://github.com/ggrandes/mapexpression/tree/master/src/main/java/org/javastack/mapexpression/example/)\n\n---\n\n## MAVEN\n\nAdd the dependency to your pom.xml:\n\n    \u003cdependency\u003e\n        \u003cgroupId\u003eorg.javastack\u003c/groupId\u003e\n        \u003cartifactId\u003emapexpression\u003c/artifactId\u003e\n        \u003cversion\u003e1.0.3\u003c/version\u003e\n    \u003c/dependency\u003e\n\n---\n\n## Benchmarks\n\n###### Values are not accurate, but orientative. Higher better (Iterations/Second). All test Running on Laptop { Windows 7 (64bits), sun_jdk1.6.0_45 (32bits), Dell Latitude 3330 }.\n\nTestName | Iterations | Time | Iterations/Second\n:--- | ---: | ---: | ---:\nParseOnly | 10.000.000 | 4000ms | 2.500.000\nEvalOnly | 10.000.000 | 2911ms | 3.435.000\nParse+Eval | 10.000.000 | 6995ms | 1.429.000\n\n\n---\nInspired in [Java Expression Language](http://docs.oracle.com/javaee/1.4/tutorial/doc/JSPIntro7.html) and [Spring-Placeholders](http://docs.spring.io/spring/docs/4.0.4.RELEASE/javadoc-api/org/springframework/beans/factory/config/PlaceholderConfigurerSupport.html), this code is Java-minimalistic version.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fggrandes%2Fmapexpression","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fggrandes%2Fmapexpression","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fggrandes%2Fmapexpression/lists"}