[ 
https://issues.apache.org/jira/browse/MNG-8214?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17874480#comment-17874480
 ] 

ASF GitHub Bot commented on MNG-8214:
-------------------------------------

gnodet commented on PR #1660:
URL: https://github.com/apache/maven/pull/1660#issuecomment-2294825243

   > This is not about inheritance within MDO models but inheritance of classes 
generated from MDO, like for 
https://github.com/apache/maven-plugin-tools/blob/9332b09acc08d2e063f12a8158a57ca8ec56fadd/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/ExtendedMojoDescriptor.java#L31.
 This is currently not possible due to the restricted visibility of the 
constructors and the lack of a constructor taking a builder as argument.
   
   Fair point.  However the use case of ExtendedMojoDescriptor is definitely a 
bad one.  Those were needed because the models did not really evolved, but we 
allowed small additions without properly versioning them, and then rely on such 
hacks.




> 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)

Reply via email to