# Generate Classes

> Generate bytecode classes from DSL scripts (MAL, OAL, LAL, Hierarchy). Runs the compiler and dumps .class files for inspection.

- Skill: `apache/generate-classes` (Agent Skill)
- Install (CLI): `npx skillmds@latest add apache/generate-classes`
- Raw SKILL.md: https://api.skillmd.com/api/skills/apache/generate-classes/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: apache (https://skillmd.com/u/apache)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/apache/generate-classes

---


# Generate DSL Classes

Run the v2 compiler (ANTLR4 + Javassist) to generate bytecode classes from DSL scripts and dump `.class` files to disk for inspection.

## Commands by argument

### `mal` — MAL expression classes

```bash
./mvnw test -pl oap-server/analyzer/dsl-scripts-test \
  -Dtest=MALExpressionExecutionTest -DfailIfNoTests=false -Dcheckstyle.skip
```

Output location: `oap-server/analyzer/dsl-scripts-test/src/test/resources/scripts/mal/**/*.generated-classes/`

### `oal` — OAL metrics/dispatcher/builder classes

```bash
./mvnw test -pl oap-server/oal-rt \
  -Dtest=RuntimeOALGenerationTest -DfailIfNoTests=false -Dcheckstyle.skip
```

Output location: `oap-server/oal-rt/target/test-classes/metrics/`, `metrics/builder/`, `dispatcher/`

### `lal` — LAL filter/extractor classes

```bash
./mvnw test -pl oap-server/analyzer/dsl-scripts-test \
  -Dtest=LALExpressionExecutionTest -DfailIfNoTests=false -Dcheckstyle.skip
```

Output location: `oap-server/analyzer/dsl-scripts-test/src/test/resources/scripts/lal/**/*.generated-classes/`

### `hierarchy` — Hierarchy rule classes

```bash
./mvnw test -pl oap-server/analyzer/dsl-scripts-test \
  -Dtest=HierarchyRuleExecutionTest -DfailIfNoTests=false -Dcheckstyle.skip
```

Output location: `oap-server/analyzer/dsl-scripts-test/src/test/resources/scripts/hierarchy-rule/*.generated-classes/`

### `all` or no argument — generate all DSLs

Run all four commands above sequentially.

## After generation

Print the output location for the requested DSL so the user knows where to find the generated `.class` files. Use `javap` to decompile:

```bash
javap -c -p <path-to-class-file>
```

## Cleaning generated classes

```bash
./mvnw clean -pl oap-server/analyzer/dsl-scripts-test
```

