blob: 011a816c20c945feae48589c648769bfb7e74627 [file] [log] [blame]
= Camel Catalog
Each release includes a catalog with all sorts of information about whats included in the release.
== About Camel Catalog
The catalog is shipped in an independent standalone `camel-catalog` JAR containing the following information:
- List of all components, data formats, languages, EIPs, and everything else in the release
- Curated lists for Camel Quarkus, Camel Spring Boot, and Camel Main runtimes
- JSON schema with extensive details for every option
- Human-readable documentation for every option
- Categorization of options (for example, find all database components)
- XML schema for the XML DSLs
There is also a Java API for tooling:
- validating Camel endpoints and the Simple language
- creating Camel endpoint URLs
The catalog provides a wealth of information that tooling can tap into and use.
=== Tooling using Camel Catalog
The following tools uses the catalog in their editor:
- https://plugins.jetbrains.com/plugin/9371-apache-camel-idea-plugin[Camel tooling for IDEA]
- https://marketplace.eclipse.org/content/language-support-apache-camel[Camel tooling for Eclipse]
- https://marketplace.visualstudio.com/items?itemName=redhat.vscode-apache-camel[Camel tooling for VS Code]
- https://marketplace.visualstudio.com/items?itemName=camel-karavan.karavan[Camel Karavan for VS Code]
- https://marketplace.visualstudio.com/items?itemName=redhat.vscode-kaoto[Kaoto for VS Code]
- https://hawt.io/[Hawtio]
The xref:camel-report-maven-plugin.adoc[Camel Maven validation] plugin uses the catalog during validation of all the
Camel endpoints found while scanning the source code.
=== Layout of camel-catalog
JAR includes the information using the following directory layout:
[source,text]
----
org
└── apache
└── camel
└── catalog
├── beans (JSON schema)
├── components (JSON schema)
├── dataformats (JSON schema)
├── dev-consoles (JSON schema)
├── languages (JSON schema)
├── main (JSON schema)
├── models (JSON schema)
├── others (JSON schema)
├── releases (JSON schema)
├── schemas (XML schema)
└── transformers (JSON schema)
----
Each directory contains files with the information. Every Camel component is included
as JSON schema files in the components directory. For example, the Timer component
is included in the file timer.json.