{
	"connector": {
		"class": "org.apache.camel.kafkaconnector.xmlsecuritysign.CamelXmlsecuritysignSinkConnector",
		"artifactId": "camel-xmlsecurity-sign-kafka-connector",
		"groupId": "org.apache.camel.kafkaconnector",
		"id": "camel-xmlsecurity-sign-sink",
		"type": "sink",
		"version": "0.9.0",
		"description": "Sign XML payloads using the XML signature specification."
	},
	"properties": {
		"camel.sink.path.name": {
			"name": "camel.sink.path.name",
			"description": "The name part in the URI can be chosen by the user to distinguish between different signer endpoints within the camel context.",
			"priority": "HIGH",
			"required": "true"
		},
		"camel.sink.endpoint.addKeyInfoReference": {
			"name": "camel.sink.endpoint.addKeyInfoReference",
			"description": "In order to protect the KeyInfo element from tampering you can add a reference to the signed info element so that it is protected via the signature value. The default value is true. Only relevant when a KeyInfo is returned by KeyAccessor. and KeyInfo#getId() is not null.",
			"defaultValue": "\"true\"",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.sink.endpoint.baseUri": {
			"name": "camel.sink.endpoint.baseUri",
			"description": "You can set a base URI which is used in the URI dereferencing. Relative URIs are then concatenated with the base URI.",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.sink.endpoint.canonicalizationMethod": {
			"name": "camel.sink.endpoint.canonicalizationMethod",
			"description": "Canonicalization method used to canonicalize the SignedInfo element before the digest is calculated. You can use the helper methods XmlSignatureHelper.getCanonicalizationMethod(String algorithm) or getCanonicalizationMethod(String algorithm, List inclusiveNamespacePrefixes) to create a canonicalization method.",
			"defaultValue": "\"http:\/\/www.w3.org\/TR\/2001\/REC-xml-c14n-20010315\"",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.sink.endpoint.clearHeaders": {
			"name": "camel.sink.endpoint.clearHeaders",
			"description": "Determines if the XML signature specific headers be cleared after signing and verification. Defaults to true.",
			"defaultValue": "\"true\"",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.sink.endpoint.contentObjectId": {
			"name": "camel.sink.endpoint.contentObjectId",
			"description": "Sets the content object Id attribute value. By default a UUID is generated. If you set the null value, then a new UUID will be generated. Only used in the enveloping case.",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.sink.endpoint.contentReferenceType": {
			"name": "camel.sink.endpoint.contentReferenceType",
			"description": "Type of the content reference. The default value is null. This value can be overwritten by the header XmlSignatureConstants#HEADER_CONTENT_REFERENCE_TYPE.",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.sink.endpoint.contentReferenceUri": {
			"name": "camel.sink.endpoint.contentReferenceUri",
			"description": "Reference URI for the content to be signed. Only used in the enveloped case. If the reference URI contains an ID attribute value, then the resource schema URI ( setSchemaResourceUri(String)) must also be set because the schema validator will then find out which attributes are ID attributes. Will be ignored in the enveloping or detached case.",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.sink.endpoint.cryptoContextProperties": {
			"name": "camel.sink.endpoint.cryptoContextProperties",
			"description": "Sets the crypto context properties. See {link XMLCryptoContext#setProperty(String, Object)}. Possible properties are defined in XMLSignContext an XMLValidateContext (see Supported Properties). The following properties are set by default to the value Boolean#TRUE for the XML validation. If you want to switch these features off you must set the property value to Boolean#FALSE. org.jcp.xml.dsig.validateManifests javax.xml.crypto.dsig.cacheReference",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.sink.endpoint.digestAlgorithm": {
			"name": "camel.sink.endpoint.digestAlgorithm",
			"description": "Digest algorithm URI. Optional parameter. This digest algorithm is used for calculating the digest of the input message. If this digest algorithm is not specified then the digest algorithm is calculated from the signature algorithm. Example: http:\/\/www.w3.org\/2001\/04\/xmlenc#sha256",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.sink.endpoint.disallowDoctypeDecl": {
			"name": "camel.sink.endpoint.disallowDoctypeDecl",
			"description": "Disallows that the incoming XML document contains DTD DOCTYPE declaration. The default value is Boolean#TRUE.",
			"defaultValue": "\"true\"",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.sink.endpoint.keyAccessor": {
			"name": "camel.sink.endpoint.keyAccessor",
			"description": "For the signing process, a private key is necessary. You specify a key accessor bean which provides this private key. The key accessor bean must implement the KeyAccessor interface. The package org.apache.camel.component.xmlsecurity.api contains the default implementation class DefaultKeyAccessor which reads the private key from a Java keystore.",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.sink.endpoint.lazyStartProducer": {
			"name": "camel.sink.endpoint.lazyStartProducer",
			"description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
			"defaultValue": "false",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.sink.endpoint.omitXmlDeclaration": {
			"name": "camel.sink.endpoint.omitXmlDeclaration",
			"description": "Indicator whether the XML declaration in the outgoing message body should be omitted. Default value is false. Can be overwritten by the header XmlSignatureConstants#HEADER_OMIT_XML_DECLARATION.",
			"defaultValue": "\"false\"",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.sink.endpoint.outputXmlEncoding": {
			"name": "camel.sink.endpoint.outputXmlEncoding",
			"description": "The character encoding of the resulting signed XML document. If null then the encoding of the original XML document is used.",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.sink.endpoint.parentLocalName": {
			"name": "camel.sink.endpoint.parentLocalName",
			"description": "Local name of the parent element to which the XML signature element will be added. Only relevant for enveloped XML signature. Alternatively you can also use setParentXpath(XPathFilterParameterSpec). Default value is null. The value must be null for enveloping and detached XML signature. This parameter or the parameter setParentXpath(XPathFilterParameterSpec) for enveloped signature and the parameter setXpathsToIdAttributes(List) for detached signature must not be set in the same configuration. If the parameters parentXpath and parentLocalName are specified in the same configuration then an exception is thrown.",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.sink.endpoint.parentNamespace": {
			"name": "camel.sink.endpoint.parentNamespace",
			"description": "Namespace of the parent element to which the XML signature element will be added.",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.sink.endpoint.parentXpath": {
			"name": "camel.sink.endpoint.parentXpath",
			"description": "Sets the XPath to find the parent node in the enveloped case. Either you specify the parent node via this method or the local name and namespace of the parent with the methods setParentLocalName(String) and setParentNamespace(String). Default value is null. The value must be null for enveloping and detached XML signature. If the parameters parentXpath and parentLocalName are specified in the same configuration then an exception is thrown.",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.sink.endpoint.plainText": {
			"name": "camel.sink.endpoint.plainText",
			"description": "Indicator whether the message body contains plain text. The default value is false, indicating that the message body contains XML. The value can be overwritten by the header XmlSignatureConstants#HEADER_MESSAGE_IS_PLAIN_TEXT.",
			"defaultValue": "\"false\"",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.sink.endpoint.plainTextEncoding": {
			"name": "camel.sink.endpoint.plainTextEncoding",
			"description": "Encoding of the plain text. Only relevant if the message body is plain text (see parameter plainText. Default value is UTF-8.",
			"defaultValue": "\"UTF-8\"",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.sink.endpoint.prefixForXmlSignatureNamespace": {
			"name": "camel.sink.endpoint.prefixForXmlSignatureNamespace",
			"description": "Namespace prefix for the XML signature namespace http:\/\/www.w3.org\/2000\/09\/xmldsig#. Default value is ds. If null or an empty value is set then no prefix is used for the XML signature namespace. See best practice http:\/\/www.w3.org\/TR\/xmldsig-bestpractices\/#signing-xml- without-namespaces",
			"defaultValue": "\"ds\"",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.sink.endpoint.properties": {
			"name": "camel.sink.endpoint.properties",
			"description": "For adding additional References and Objects to the XML signature which contain additional properties, you can provide a bean which implements the XmlSignatureProperties interface.",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.sink.endpoint.schemaResourceUri": {
			"name": "camel.sink.endpoint.schemaResourceUri",
			"description": "Classpath to the XML Schema. Must be specified in the detached XML Signature case for determining the ID attributes, might be set in the enveloped and enveloping case. If set, then the XML document is validated with the specified XML schema. The schema resource URI can be overwritten by the header XmlSignatureConstants#HEADER_SCHEMA_RESOURCE_URI.",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.sink.endpoint.signatureAlgorithm": {
			"name": "camel.sink.endpoint.signatureAlgorithm",
			"description": "Signature algorithm. Default value is http:\/\/www.w3.org\/2000\/09\/xmldsig#rsa-sha1.",
			"defaultValue": "\"http:\/\/www.w3.org\/2001\/04\/xmldsig-more#rsa-sha256\"",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.sink.endpoint.signatureId": {
			"name": "camel.sink.endpoint.signatureId",
			"description": "Sets the signature Id. If this parameter is not set (null value) then a unique ID is generated for the signature ID (default). If this parameter is set to (empty string) then no Id attribute is created in the signature element.",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.sink.endpoint.transformMethods": {
			"name": "camel.sink.endpoint.transformMethods",
			"description": "Transforms which are executed on the message body before the digest is calculated. By default, C14n is added and in the case of enveloped signature (see option parentLocalName) also http:\/\/www.w3.org\/2000\/09\/xmldsig#enveloped-signature is added at position 0 of the list. Use methods in XmlSignatureHelper to create the transform methods.",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.sink.endpoint.xpathsToIdAttributes": {
			"name": "camel.sink.endpoint.xpathsToIdAttributes",
			"description": "Define the elements which are signed in the detached case via XPATH expressions to ID attributes (attributes of type ID). For each element found via the XPATH expression a detached signature is created whose reference URI contains the corresponding attribute value (preceded by '#'). The signature becomes the last sibling of the signed element. Elements with deeper hierarchy level are signed first. You can also set the XPATH list dynamically via the header XmlSignatureConstants#HEADER_XPATHS_TO_ID_ATTRIBUTES. The parameter setParentLocalName(String) or setParentXpath(XPathFilterParameterSpec) for enveloped signature and this parameter for detached signature must not be set in the same configuration.",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.sink.endpoint.uriDereferencer": {
			"name": "camel.sink.endpoint.uriDereferencer",
			"description": "If you want to restrict the remote access via reference URIs, you can set an own dereferencer. Optional parameter. If not set the provider default dereferencer is used which can resolve URI fragments, HTTP, file and XPpointer URIs. Attention: The implementation is provider dependent!",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.component.xmlsecurity-sign.addKeyInfoReference": {
			"name": "camel.component.xmlsecurity-sign.addKeyInfoReference",
			"description": "In order to protect the KeyInfo element from tampering you can add a reference to the signed info element so that it is protected via the signature value. The default value is true. Only relevant when a KeyInfo is returned by KeyAccessor. and KeyInfo#getId() is not null.",
			"defaultValue": "\"true\"",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.component.xmlsecurity-sign.baseUri": {
			"name": "camel.component.xmlsecurity-sign.baseUri",
			"description": "You can set a base URI which is used in the URI dereferencing. Relative URIs are then concatenated with the base URI.",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.component.xmlsecurity-sign.canonicalizationMethod": {
			"name": "camel.component.xmlsecurity-sign.canonicalizationMethod",
			"description": "Canonicalization method used to canonicalize the SignedInfo element before the digest is calculated. You can use the helper methods XmlSignatureHelper.getCanonicalizationMethod(String algorithm) or getCanonicalizationMethod(String algorithm, List inclusiveNamespacePrefixes) to create a canonicalization method.",
			"defaultValue": "\"http:\/\/www.w3.org\/TR\/2001\/REC-xml-c14n-20010315\"",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.component.xmlsecurity-sign.clearHeaders": {
			"name": "camel.component.xmlsecurity-sign.clearHeaders",
			"description": "Determines if the XML signature specific headers be cleared after signing and verification. Defaults to true.",
			"defaultValue": "\"true\"",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.component.xmlsecurity-sign.contentObjectId": {
			"name": "camel.component.xmlsecurity-sign.contentObjectId",
			"description": "Sets the content object Id attribute value. By default a UUID is generated. If you set the null value, then a new UUID will be generated. Only used in the enveloping case.",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.component.xmlsecurity-sign.contentReferenceType": {
			"name": "camel.component.xmlsecurity-sign.contentReferenceType",
			"description": "Type of the content reference. The default value is null. This value can be overwritten by the header XmlSignatureConstants#HEADER_CONTENT_REFERENCE_TYPE.",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.component.xmlsecurity-sign.contentReferenceUri": {
			"name": "camel.component.xmlsecurity-sign.contentReferenceUri",
			"description": "Reference URI for the content to be signed. Only used in the enveloped case. If the reference URI contains an ID attribute value, then the resource schema URI ( setSchemaResourceUri(String)) must also be set because the schema validator will then find out which attributes are ID attributes. Will be ignored in the enveloping or detached case.",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.component.xmlsecurity-sign.cryptoContextProperties": {
			"name": "camel.component.xmlsecurity-sign.cryptoContextProperties",
			"description": "Sets the crypto context properties. See {link XMLCryptoContext#setProperty(String, Object)}. Possible properties are defined in XMLSignContext an XMLValidateContext (see Supported Properties). The following properties are set by default to the value Boolean#TRUE for the XML validation. If you want to switch these features off you must set the property value to Boolean#FALSE. org.jcp.xml.dsig.validateManifests javax.xml.crypto.dsig.cacheReference",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.component.xmlsecurity-sign.digestAlgorithm": {
			"name": "camel.component.xmlsecurity-sign.digestAlgorithm",
			"description": "Digest algorithm URI. Optional parameter. This digest algorithm is used for calculating the digest of the input message. If this digest algorithm is not specified then the digest algorithm is calculated from the signature algorithm. Example: http:\/\/www.w3.org\/2001\/04\/xmlenc#sha256",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.component.xmlsecurity-sign.disallowDoctypeDecl": {
			"name": "camel.component.xmlsecurity-sign.disallowDoctypeDecl",
			"description": "Disallows that the incoming XML document contains DTD DOCTYPE declaration. The default value is Boolean#TRUE.",
			"defaultValue": "\"true\"",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.component.xmlsecurity-sign.keyAccessor": {
			"name": "camel.component.xmlsecurity-sign.keyAccessor",
			"description": "For the signing process, a private key is necessary. You specify a key accessor bean which provides this private key. The key accessor bean must implement the KeyAccessor interface. The package org.apache.camel.component.xmlsecurity.api contains the default implementation class DefaultKeyAccessor which reads the private key from a Java keystore.",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.component.xmlsecurity-sign.lazyStartProducer": {
			"name": "camel.component.xmlsecurity-sign.lazyStartProducer",
			"description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
			"defaultValue": "false",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.component.xmlsecurity-sign.omitXmlDeclaration": {
			"name": "camel.component.xmlsecurity-sign.omitXmlDeclaration",
			"description": "Indicator whether the XML declaration in the outgoing message body should be omitted. Default value is false. Can be overwritten by the header XmlSignatureConstants#HEADER_OMIT_XML_DECLARATION.",
			"defaultValue": "\"false\"",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.component.xmlsecurity-sign.outputXmlEncoding": {
			"name": "camel.component.xmlsecurity-sign.outputXmlEncoding",
			"description": "The character encoding of the resulting signed XML document. If null then the encoding of the original XML document is used.",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.component.xmlsecurity-sign.parentLocalName": {
			"name": "camel.component.xmlsecurity-sign.parentLocalName",
			"description": "Local name of the parent element to which the XML signature element will be added. Only relevant for enveloped XML signature. Alternatively you can also use setParentXpath(XPathFilterParameterSpec). Default value is null. The value must be null for enveloping and detached XML signature. This parameter or the parameter setParentXpath(XPathFilterParameterSpec) for enveloped signature and the parameter setXpathsToIdAttributes(List) for detached signature must not be set in the same configuration. If the parameters parentXpath and parentLocalName are specified in the same configuration then an exception is thrown.",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.component.xmlsecurity-sign.parentNamespace": {
			"name": "camel.component.xmlsecurity-sign.parentNamespace",
			"description": "Namespace of the parent element to which the XML signature element will be added.",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.component.xmlsecurity-sign.parentXpath": {
			"name": "camel.component.xmlsecurity-sign.parentXpath",
			"description": "Sets the XPath to find the parent node in the enveloped case. Either you specify the parent node via this method or the local name and namespace of the parent with the methods setParentLocalName(String) and setParentNamespace(String). Default value is null. The value must be null for enveloping and detached XML signature. If the parameters parentXpath and parentLocalName are specified in the same configuration then an exception is thrown.",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.component.xmlsecurity-sign.plainText": {
			"name": "camel.component.xmlsecurity-sign.plainText",
			"description": "Indicator whether the message body contains plain text. The default value is false, indicating that the message body contains XML. The value can be overwritten by the header XmlSignatureConstants#HEADER_MESSAGE_IS_PLAIN_TEXT.",
			"defaultValue": "\"false\"",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.component.xmlsecurity-sign.plainTextEncoding": {
			"name": "camel.component.xmlsecurity-sign.plainTextEncoding",
			"description": "Encoding of the plain text. Only relevant if the message body is plain text (see parameter plainText. Default value is UTF-8.",
			"defaultValue": "\"UTF-8\"",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.component.xmlsecurity-sign.prefixForXmlSignatureNamespace": {
			"name": "camel.component.xmlsecurity-sign.prefixForXmlSignatureNamespace",
			"description": "Namespace prefix for the XML signature namespace http:\/\/www.w3.org\/2000\/09\/xmldsig#. Default value is ds. If null or an empty value is set then no prefix is used for the XML signature namespace. See best practice http:\/\/www.w3.org\/TR\/xmldsig-bestpractices\/#signing-xml- without-namespaces",
			"defaultValue": "\"ds\"",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.component.xmlsecurity-sign.properties": {
			"name": "camel.component.xmlsecurity-sign.properties",
			"description": "For adding additional References and Objects to the XML signature which contain additional properties, you can provide a bean which implements the XmlSignatureProperties interface.",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.component.xmlsecurity-sign.schemaResourceUri": {
			"name": "camel.component.xmlsecurity-sign.schemaResourceUri",
			"description": "Classpath to the XML Schema. Must be specified in the detached XML Signature case for determining the ID attributes, might be set in the enveloped and enveloping case. If set, then the XML document is validated with the specified XML schema. The schema resource URI can be overwritten by the header XmlSignatureConstants#HEADER_SCHEMA_RESOURCE_URI.",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.component.xmlsecurity-sign.signatureAlgorithm": {
			"name": "camel.component.xmlsecurity-sign.signatureAlgorithm",
			"description": "Signature algorithm. Default value is http:\/\/www.w3.org\/2000\/09\/xmldsig#rsa-sha1.",
			"defaultValue": "\"http:\/\/www.w3.org\/2001\/04\/xmldsig-more#rsa-sha256\"",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.component.xmlsecurity-sign.signatureId": {
			"name": "camel.component.xmlsecurity-sign.signatureId",
			"description": "Sets the signature Id. If this parameter is not set (null value) then a unique ID is generated for the signature ID (default). If this parameter is set to (empty string) then no Id attribute is created in the signature element.",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.component.xmlsecurity-sign.transformMethods": {
			"name": "camel.component.xmlsecurity-sign.transformMethods",
			"description": "Transforms which are executed on the message body before the digest is calculated. By default, C14n is added and in the case of enveloped signature (see option parentLocalName) also http:\/\/www.w3.org\/2000\/09\/xmldsig#enveloped-signature is added at position 0 of the list. Use methods in XmlSignatureHelper to create the transform methods.",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.component.xmlsecurity-sign.xpathsToIdAttributes": {
			"name": "camel.component.xmlsecurity-sign.xpathsToIdAttributes",
			"description": "Define the elements which are signed in the detached case via XPATH expressions to ID attributes (attributes of type ID). For each element found via the XPATH expression a detached signature is created whose reference URI contains the corresponding attribute value (preceded by '#'). The signature becomes the last sibling of the signed element. Elements with deeper hierarchy level are signed first. You can also set the XPATH list dynamically via the header XmlSignatureConstants#HEADER_XPATHS_TO_ID_ATTRIBUTES. The parameter setParentLocalName(String) or setParentXpath(XPathFilterParameterSpec) for enveloped signature and this parameter for detached signature must not be set in the same configuration.",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.component.xmlsecurity-sign.autowiredEnabled": {
			"name": "camel.component.xmlsecurity-sign.autowiredEnabled",
			"description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
			"defaultValue": "true",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.component.xmlsecurity-sign.signerConfiguration": {
			"name": "camel.component.xmlsecurity-sign.signerConfiguration",
			"description": "To use a shared XmlSignerConfiguration configuration to use as base for configuring endpoints.",
			"priority": "MEDIUM",
			"required": "false"
		},
		"camel.component.xmlsecurity-sign.uriDereferencer": {
			"name": "camel.component.xmlsecurity-sign.uriDereferencer",
			"description": "If you want to restrict the remote access via reference URIs, you can set an own dereferencer. Optional parameter. If not set the provider default dereferencer is used which can resolve URI fragments, HTTP, file and XPpointer URIs. Attention: The implementation is provider dependent!",
			"priority": "MEDIUM",
			"required": "false"
		}
	}
}