[ https://issues.apache.org/jira/browse/MNG-8214?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Konrad Windszus updated MNG-8214: --------------------------------- Description: The [model.vm|https://github.com/apache/maven/blob/master/src/mdo/model.vm] being used with Maven 4 models generates immutable classes with builders. The generated classes cannot be extended easily because # # the builder's constructor is having default access instead of being protected (https://github.com/apache/maven/blob/e335f95dfd11468bdf617421fd5e7093a727d1e1/src/mdo/model.vm#L409 and https://github.com/apache/maven/blob/e335f95dfd11468bdf617421fd5e7093a727d1e1/src/mdo/model.vm#L427 # the classes constructor doesn't take a builder as argument (therefore the subclass cannot leverage reuse most of the functionality currently encapsulated by the Builder) was: The [model.vm|https://github.com/apache/maven/blob/master/src/mdo/model.vm] being used with Maven 4 models generates immutable classes with builders. The generated classes cannot be extended easily because # the builder's constructor is having default access instead of being protected (https://github.com/apache/maven/blob/e335f95dfd11468bdf617421fd5e7093a727d1e1/src/mdo/model.vm#L409 and https://github.com/apache/maven/blob/e335f95dfd11468bdf617421fd5e7093a727d1e1/src/mdo/model.vm#L427 # the builder's build method doesn't rely on generics. Instead an additional constructor should be added which takes a parameterized builder object (like outlined in https://stackoverflow.com/a/17165079) > Allow extension of the model classes being generated with model.vm > ------------------------------------------------------------------ > > Key: MNG-8214 > URL: https://issues.apache.org/jira/browse/MNG-8214 > Project: Maven > Issue Type: Improvement > Affects Versions: 4.0.0-beta-3 > Reporter: Konrad Windszus > Assignee: Konrad Windszus > Priority: Major > > The [model.vm|https://github.com/apache/maven/blob/master/src/mdo/model.vm] > being used with Maven 4 models generates immutable classes with builders. The > generated classes cannot be extended easily because > # # the builder's constructor is having default access instead of being > protected > (https://github.com/apache/maven/blob/e335f95dfd11468bdf617421fd5e7093a727d1e1/src/mdo/model.vm#L409 > and > https://github.com/apache/maven/blob/e335f95dfd11468bdf617421fd5e7093a727d1e1/src/mdo/model.vm#L427 > # the classes constructor doesn't take a builder as argument (therefore the > subclass cannot leverage reuse most of the functionality currently > encapsulated by the Builder) -- This message was sent by Atlassian Jira (v8.20.10#820010)