# Generate the New Connector Source

The SDK provides a Maven archetype to scaffold a new connector. This will generate all the classes with empty methods for us to implement, enabling us to develop the new connector.

**Step 1: Build the archetype**

Run the following command from the repository root.

```
mvn clean install -pl connector-archetype -am
```

**Step 2: Generate a new connector**

From the forked repository root, run in non-interactive mode (recommended) so all parameters are supplied, and Maven does not prompt. Run the Maven archetype command.

```
mvn archetype:generate \
-DarchetypeGroupId=com.ovaledge \
-DarchetypeArtifactId=oe-csp-connector-archetype \
-DgroupId=com.ovaledge \
-DarchetypeVersion=<version> \
-DartifactId=<artifactId> \
-Dversion=<version> \
-DclassPrefix=<classPrefix> \
-DsdkVersion=<version> \
-DinteractiveMode=false
```

**Example**

```
mvn archetype:generate \
-DarchetypeGroupId=com.ovaledge \
-DarchetypeArtifactId=oe-csp-connector-archetype \
-DgroupId=com.ovaledge \
-DarchetypeVersion=1.0.0-SNAPSHOT \
-DartifactId=amazonq \
-Dversion=1.0.0-SNAPSHOT \
-DclassPrefix=AmazonQ \
-DsdkVersion=1.0.0-SNAPSHOT \
-DinteractiveMode=false
```

**Step 3: Maven Args**

| Argument                                         | Purpose                                                                                                                                                                                                 |
| ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| -DarchetypeGroupId=com.ovaledge                  | Maven groupId of the archetype. This should be com.ovaledge by default and is fixed; it should not change.                                                                                              |
| -DarchetypeArtifactId=oe-csp-connector-archetype | The Maven artifactId of the archetype. This value is fixed and identifies the connector archetype. It must always be set to oe-csp-connector-archetype and should not be changed.                       |
| -DarchetypeVersion=\<version>                    | Version of the archetype to use; must match the oe\_csp\_sdk parent version (e.g., 1.0.0-SNAPSHOT).                                                                                                     |
| -DgroupId=com.ovaledge                           | Maven groupId for the generated connector module (typically com.ovaledge).                                                                                                                              |
| -DartifactId=\<artifactId>                       | Maven artifactId for the generated module; use a single lowercase word (e.g., amazonq). Becomes the module directory name and the base package segment com.ovaledge.csp.apps.\<artifactId>. No hyphens. |
| -Dversion=\<version>                             | Version of the generated connector; usually the same as oe\_csp\_sdk (e.g., 1.0.0-SNAPSHOT).                                                                                                            |
| -DclassPrefix=\<classPrefix>                     | PascalCase prefix for generated Java classes (e.g., AmazonQ). Produces \<classPrefix>Connector, \<classPrefix>MetadataService, \<classPrefix>QueryService, etc.                                         |
| -DsdkVersion=\<version>                          | Version of the CSP SDK (csp-sdk-core) the connector will depend on; use the same as oe\_csp\_sdk (e.g., 1.0.0-SNAPSHOT).                                                                                |
| -DinteractiveMode=false                          | Disables Maven prompts; all parameters must be supplied on the command line. Omit (or set to true) to run interactively.                                                                                |

**Step 4: Replace placeholders**

* \`\<version>\` — oe\_csp\_sdk parent version (e.g., 1.0.0-SNAPSHOT\`)
* \`\<artifactId>\` — connector module name (e.g., \`amazonq\`)
* \`\<classPrefix>\` — PascalCase prefix for generated classes (e.g., \`AmazonQ\`)

**Example**:

```
mvn archetype:generate -DarchetypeGroupId=com.ovaledge -DarchetypeArtifactId=oe-csp-connector-archetype -DgroupId=com.ovaledge -DarchetypeVersion=1.0.0-SNAPSHOT -DartifactId=amazonq -Dversion=1.0.0-SNAPSHOT -DclassPrefix=AmazonQ -DsdkVersion=1.0.0-SNAPSHOT -DinteractiveMode=false
```

To run interactively (Maven will prompt for any missing properties), omit \`-DinteractiveMode=false\` and the \`-DartifactId\`, \`-DclassPrefix\`, etc. parameters you do not wish to preset.

\
**Step 5: Conventions**

* **artifactId**: Use a single lowercase word (e.g., amazonq) so the generated Java package com.ovaledge.csp.apps.\<artifactId> is valid. Do not use hyphens.
* **classPrefix**: Use PascalCase (e.g., AmazonQ). Generated classes will be named \<classPrefix>Connector, \<classPrefix>MetadataService, etc.

**Step 6: Next Steps**

Follow the generated INSTRUCTIONS.txt to add the module to the parent pom, csp-api, and assembly (same steps as in [Assemble the Connector](https://docs.ovaledge.com/developers-guide/ovaledge-connectors-sdk-for-java/assemble-the-connector)).

**Step 7: Icon**

Place amazonq.png (or similar) under amazonq/src/main/resources/icons/ for the connector icon in the UI.

***

Copyright © 2026, OvalEdge LLC, Peachtree Corners, GA, USA.
