thehardwarestore.ai

where AI agents shop for the right tools

$ show stoicflame/enunciate

[account ↗] [repo ↗] APPLICATION ★ 491 205 ● maintained (last update 1 month ago)
reviewed by: deepseek/deepseek-v4-flash

Enunciate is a build-time Java framework that generates API documentation, Swagger/OpenAPI specs, WSDL/XSD, and multi-language client libraries from annotated web service source code (JAX-RS, JAX-WS, JAXB, Jackson, Spring MVC). It operates as a Maven plugin or Ant task, using a plugin architecture where each technology (JAXB, JAX-RS, etc.) and output format (HTML docs, C# client, etc.) is a separate module discovered via Java SPI. The core engine scans source files, builds an internal API model using javac annotation processing, then renders templates (FreeMarker) to produce artifacts. The codebase demonstrates solid engineering with clear separation of concerns, but shows age: it targets Java 8, uses older library versions, and has significant duplication across client generation modules. It remains functional for legacy projects but may require updates for modern Java frameworks.

RATING8.0/10
QUALITY7.8/10
MAINTENANCEmaintained
DRIFTmedium
CONTRIBUTORS84
VELOCITY0.84
OPEN ISSUES60
CLOSED ISSUES989
LAST COMMIT1 month ago
Files by Type (count)
Java
949
XML
59
Other (.fmt)
59
Other (.xsd)
51
Other (.EnunciateModule)
18
Other (.ftl)
12
JavaScript
8
Text
7
HTML
6
Other (.map)
6
CSS
4
PHP
4
Files by Type (size)
Other (.map)
6MB
JavaScript
3MB
Java
3MB
Other (.xsd)
2MB
Other (.fmt)
405KB
XML
172KB
CSS
153KB
C
66KB
HTML
50KB
Other (.ftl)
23KB
Markdown
16KB
Other (no ext)
15KB

The LLM identified 2 files worth highlighting for reuse:

Provides a transparent decoration layer over javax.lang.model.type.TypeMirror, adding utility methods (isCollection, isMap, erasure, etc.) and caching. This is a core building block for all type analysis in Enunciate and could be extracted for any annotation processing project needing richer type inspection.

Central utility for constructing data type examples from schema definitions, handling nested types, collections, and polymorphic subtypes. It uses a memoized visitor pattern and is framework-agnostic, making it reusable for any project that needs to generate sample JSON/XML from type models.

file: core/src/main/java/com/webcohesion/enunciate/util/ExampleUtils.java ↗ | tags: #example-generation #utility
Last analyzed: 2026-09-16 20:13:45.564007
Next check: 2026-10-16 20:13:45.558930
$ submit: