[
https://issues.apache.org/jira/browse/ARCHETYPE-558?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Michael Osipov closed ARCHETYPE-558.
------------------------------------
Assignee: Elliotte Rusty Harold
> Allow transitive requiredProperty from non default ones
> -------------------------------------------------------
>
> Key: ARCHETYPE-558
> URL: https://issues.apache.org/jira/browse/ARCHETYPE-558
> Project: Maven Archetype
> Issue Type: New Feature
> Components: Generator
> Affects Versions: 3.0.1
> Reporter: Esteban DUGUEPEROUX
> Assignee: Elliotte Rusty Harold
> Priority: Major
> Fix For: 3.2.1
>
>
> Hi,
> I want to create a Maven Archetype with 2 requiredProperty :
>
> <requiredProperty key="apiName" />
> <requiredProperty key="resourceName" />
>
> apiName is used for the artifactId as follow:
> <requiredProperty key="artifactId">
> <defaultValue>${apiName}</defaultValue>
> </requiredProperty>
>
> I want also to define transitive properties from these 2 first properties:
>
> <requiredProperty key="camelCaseAPIName">
> <defaultValue>${artifactId.replaceAll("^a|-a", "A").replaceAll("^b|-b",
> "B").replaceAll("^c|-c", "C").replaceAll("^d|-d", "D").replaceAll("^e|-e",
> "E").replaceAll("^f|-f", "F").replaceAll("^g|-g", "G").replaceAll("^h|-h",
> "H").replaceAll("^i|-i", "I").replaceAll("^j|-j", "J").replaceAll("^k|-k",
> "K").replaceAll("^l|-l", "L").replaceAll("^m|-m", "M").replaceAll("^n|-n",
> "N").replaceAll("^o|-o", "O").replaceAll("^p|-p", "P").replaceAll("^q|-q",
> "Q").replaceAll("^r|-r", "R").replaceAll("^s|-s", "S").replaceAll("^t|-t",
> "T").replaceAll("^u|-u", "U").replaceAll("^v|-v", "V").replaceAll("^w|-w",
> "W").replaceAll("^x|-x", "X").replaceAll("^y|-y", "Y").replaceAll("^z|-z",
> "Z")}</defaultValue>
> </requiredProperty>
> <requiredProperty key="camelCaseResourceName">
> <defaultValue>${resourceName.replaceAll("^a|-a", "A").replaceAll("^b|-b",
> "B").replaceAll("^c|-c", "C").replaceAll("^d|-d", "D").replaceAll("^e|-e",
> "E").replaceAll("^f|-f", "F").replaceAll("^g|-g", "G").replaceAll("^h|-h",
> "H").replaceAll("^i|-i", "I").replaceAll("^j|-j", "J").replaceAll("^k|-k",
> "K").replaceAll("^l|-l", "L").replaceAll("^m|-m", "M").replaceAll("^n|-n",
> "N").replaceAll("^o|-o", "O").replaceAll("^p|-p", "P").replaceAll("^q|-q",
> "Q").replaceAll("^r|-r", "R").replaceAll("^s|-s", "S").replaceAll("^t|-t",
> "T").replaceAll("^u|-u", "U").replaceAll("^v|-v", "V").replaceAll("^w|-w",
> "W").replaceAll("^x|-x", "X").replaceAll("^y|-y", "Y").replaceAll("^z|-z",
> "Z")}</defaultValue>
> </requiredProperty>
>
> to have a camel case version of the 2 first properties.
> For camelCaseAPIName property, it works because it uses artifactId property
> which is same as apiName. But for camelCaseResourceName it doesn't works
> because resourceName property is not added in velocity context. Only
> requiredProperty with no value and default value are set in velocity context.
> See
> org.apache.maven.archetype.ui.generation.DefaultArchetypeGenerationConfigurator.configureArchetype(ArchetypeGenerationRequest,
> Boolean, Properties) line 262.
>
> Could we have velocity context extended to property with value and no default
> value?
>
> Best Regards.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)