Skip to content

Processing classes failed when XML configuration file contains properties placeholders #611

@jurakp

Description

@jurakp

In the config XML we use properties placeholders to define the streaming:

<http:request doc:name="Request to server" url="https://localhost:9090/api"
					config-ref="HTTP_Request_configuration" method="GET">
					<repeatable-in-memory-stream initialBufferSize="${http.streaming.mem.init.size}"
						bufferSizeIncrement="${http.streaming.mem.inc.size}" maxBufferSize="${http.streaming.mem.max.size}" bufferUnit="MB" />
					<http:headers>#[attributes.headers -- ['host','content-length']]</http:headers>
					<http:query-params>#[attributes.queryParams]</http:query-params>
				</http:request>

Simply run mvn clean package results in:

[ERROR] Failed to execute goal org.mule.tools.maven:mule-maven-plugin:3.6.3:process-classes (default-process-classes) on project test-project: Execution default-process-classes of goal org.mule.tools.maven:mule-maven-plugin:3.6.3:process-classes failed: Exception resolving param 'bufferSizeIncrement' with value '${http.streaming.mem.inc.size}' at 'api.xml:199:6' (java.lang.NumberFormatException: For input string: "${http.streaming.mem.inc.size}") -> [Help 1]

Which is wrong, since the placeholder gets resolved once the runtime deploys the application.
Any idea how to fix this? Replacing the placeholder manually by some number is one option, but not good. Reverting Mule Maven plugin back to 3.5.4 is another option, but Studio is always complaining about the project is not upgraded.

I think this issue should be fixed by relaxing validations in cases where there is a placeholder instead of the right value.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions