Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@
"exchangePattern": { "index": 6, "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "enum", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
"pollStrategy": { "index": 7, "kind": "parameter", "displayName": "Poll Strategy", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.PollingConsumerPollStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your custom implementation to control error handling usually occurred during the poll operation before an Exchange have been created and being routed in Camel." },
"allowEmpty": { "index": 8, "kind": "parameter", "displayName": "Allow Empty", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": true, "description": "The flag to manage empty git commits" },
"depth": { "index": 9, "kind": "parameter", "displayName": "Depth", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "Clone depth for shallow clones. A value of 1 fetches only the latest commit. When set to 0 or not specified, a full clone is performed." },
"depth": { "index": 9, "kind": "parameter", "displayName": "Depth", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "Clone depth for shallow clones. Must be a positive integer. A value of 1 fetches only the latest commit. When set to 0 or not specified, a full clone is performed." },
"operation": { "index": 10, "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "producer", "required": false, "type": "enum", "javaType": "java.lang.String", "enum": [ "add", "cherryPick", "clean", "clone", "commit", "commitAll", "createBranch", "createTag", "deleteBranch", "deleteTag", "gc", "init", "log", "pull", "push", "remoteAdd", "remoteList", "remove", "showBranches", "showTags", "status" ], "deprecated": false, "autowired": false, "secret": false, "description": "The operation to do on the repository" },
"remoteName": { "index": 11, "kind": "parameter", "displayName": "Remote Name", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The remote repository name to use in particular operation like pull" },
"remotePath": { "index": 12, "kind": "parameter", "displayName": "Remote Path", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The remote repository path" },
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@
"exchangePattern": { "index": 6, "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "enum", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
"pollStrategy": { "index": 7, "kind": "parameter", "displayName": "Poll Strategy", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.PollingConsumerPollStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your custom implementation to control error handling usually occurred during the poll operation before an Exchange have been created and being routed in Camel." },
"allowEmpty": { "index": 8, "kind": "parameter", "displayName": "Allow Empty", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": true, "description": "The flag to manage empty git commits" },
"depth": { "index": 9, "kind": "parameter", "displayName": "Depth", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "Clone depth for shallow clones. A value of 1 fetches only the latest commit. When set to 0 or not specified, a full clone is performed." },
"depth": { "index": 9, "kind": "parameter", "displayName": "Depth", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "Clone depth for shallow clones. Must be a positive integer. A value of 1 fetches only the latest commit. When set to 0 or not specified, a full clone is performed." },
"operation": { "index": 10, "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "producer", "required": false, "type": "enum", "javaType": "java.lang.String", "enum": [ "add", "cherryPick", "clean", "clone", "commit", "commitAll", "createBranch", "createTag", "deleteBranch", "deleteTag", "gc", "init", "log", "pull", "push", "remoteAdd", "remoteList", "remove", "showBranches", "showTags", "status" ], "deprecated": false, "autowired": false, "secret": false, "description": "The operation to do on the repository" },
"remoteName": { "index": 11, "kind": "parameter", "displayName": "Remote Name", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The remote repository name to use in particular operation like pull" },
"remotePath": { "index": 12, "kind": "parameter", "displayName": "Remote Path", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The remote repository path" },
Expand Down
2 changes: 1 addition & 1 deletion components/camel-git/src/main/docs/git-component.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ from("direct:clone")
.to("git:///tmp/myRepo?operation=clone&remotePath=https://github.com/example/repo.git&depth=1");
---------------------------------------

A `depth` of 1 fetches only the latest commit. When set to 0 or omitted, a full clone is performed.
A `depth` of 1 fetches only the latest commit. The value must be a positive integer. When set to 0 or omitted, a full clone is performed.

=== Custom config file

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,8 @@ public class GitEndpoint extends ScheduledPollEndpoint {
private boolean allowEmpty = true;

@UriParam(label = "producer",
description = "Clone depth for shallow clones. A value of 1 fetches only the latest commit. "
description = "Clone depth for shallow clones. Must be a positive integer. "
+ "A value of 1 fetches only the latest commit. "
+ "When set to 0 or not specified, a full clone is performed.")
private int depth;

Expand All @@ -96,6 +97,10 @@ public Producer createProducer() throws Exception {

@Override
public Consumer createConsumer(Processor processor) throws Exception {
if (type == null) {
throw new IllegalArgumentException("type must be specified for git consumer");
}

return switch (type) {
case COMMIT -> new GitCommitConsumer(this, processor);
case TAG -> new GitTagConsumer(this, processor);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -219,6 +219,9 @@ protected void doClone(String operation) throws GitAPIException {
new UsernamePasswordCredentialsProvider(
endpoint.getUsername(), endpoint.getPassword()));
}
if (endpoint.getDepth() < 0) {
throw new IllegalArgumentException("depth must be a positive integer for shallow clone");
}
if (endpoint.getDepth() > 0) {
cloneCommand.setDepth(endpoint.getDepth());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -811,8 +811,9 @@ default GitEndpointProducerBuilder allowEmpty(String allowEmpty) {
return this;
}
/**
* Clone depth for shallow clones. A value of 1 fetches only the latest
* commit. When set to 0 or not specified, a full clone is performed.
* Clone depth for shallow clones. Must be a positive integer. A value
* of 1 fetches only the latest commit. When set to 0 or not specified,
* a full clone is performed.
*
* The option is a: <code>int</code> type.
*
Expand All @@ -826,8 +827,9 @@ default GitEndpointProducerBuilder depth(int depth) {
return this;
}
/**
* Clone depth for shallow clones. A value of 1 fetches only the latest
* commit. When set to 0 or not specified, a full clone is performed.
* Clone depth for shallow clones. Must be a positive integer. A value
* of 1 fetches only the latest commit. When set to 0 or not specified,
* a full clone is performed.
*
* The option will be converted to a <code>int</code> type.
*
Expand Down