maven-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Thorsten Möller (JIRA) <j...@codehaus.org>
Subject [jira] Commented: (MSITE-378) Support polymorphism for menu inheritance
Date Mon, 02 Mar 2009 11:03:12 GMT

    [ http://jira.codehaus.org/browse/MSITE-378?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=167550#action_167550
] 

Thorsten Möller commented on MSITE-378:
---------------------------------------

Dennis,

that I didn't use the 'inherit="<xyz>"' attribute in my examples doesn't mean that I
don't know about the fact that the site plugin supports inheritance already. In fact, I'm
not sure whether you understood what my feature request is all about: It is a request to change
respectively extend the way how inheritance is implemented right now in the site plugin.

Regards,
Thorsten

> Support polymorphism for menu inheritance
> -----------------------------------------
>
>                 Key: MSITE-378
>                 URL: http://jira.codehaus.org/browse/MSITE-378
>             Project: Maven 2.x Site Plugin
>          Issue Type: New Feature
>          Components: inheritance
>    Affects Versions: 2.0-beta-7
>            Reporter: Thorsten Möller
>
> Inheritance of menus in an multimodule project environment does not work as intuitively
expected (as in OO languages). The following excerpts try to illustrate this. Assume there
is a root project R that has one module (project) S. Both contain a site descriptor. Let the
site descriptor for R be as follows:
> {code:xml}
> <project name="${project.name}">
> 	<!-- ... -->
> 	<body>
> 		<menu name="Main">
> 			<item name="Introduction" href="/index.html" />
> 			<item name="News" href="/news.html" />
> 			<item name="Overwrite" href="/documentation.html" />
> 		</menu>
> 	</body>
> 	<!-- ... -->
> 	
> </project>
> {code}
> And let the site descriptor for S be:
> {code:xml}
> <project name="${project.name}">
> 	<!-- ... -->
> 	<body>
> 		<menu name="Main">
> 			<item name="Introduction" href="/index.html" />
> 			<item name="Overwrite" href="/overwrite.html" />
> 			<item name="Added" href="/added.html" />
> 		</menu>
> 	</body>
> 	<!-- ... -->
> 	
> </project>
> {code}
> As I'm used to the way inheritance and polymorphism are defined in OO languages such
as Java, I would expect the following properties for the "Main" menu in S:
> - item "Introduction" is overwritten in S but refers to the same index.html file; of
course, its path is relative to start directory of S
> - item "News" is missing for S but will be inherited from R, thus, it will be rendered
to the site as in R
> - item "Overwrite" is overwritten in S and refers now to overwrite.html (instead of documentation.html
as in R)
> - item "Added" is new in S, thus, it will be rendered to the site in addition
> Unfortunately, with the current implementation of the site plugin inheritance is as follows:
> - "Main" menu of R is inherited by S as-is, that is, all changes made to the menu in
S are not visible/rendered to the site.
> I would like to propose to implement polymorphism regarding menu inheritance as described
above. In addition, I would like to propose a new boolean parameter "inherited" (or "inherit")
that can be added to menu items. Its semantics would be equivalent to the "inherited" tag
in pom.xml. In the following one example for R:
> {code:xml}
> <project name="${project.name}">
> 	<!-- ... -->
> 	<body>
> 		<menu name="Main">
> 			<item name="Introduction" href="/index.html" />
> 			<item name="News 1" href="/news1.html"  inherited="false"/>
> 			<item name="News 2" href="/news2.html"  inherited="true"/>
> 			<item name="Overwrite" href="/documentation.html" />
> 		</menu>
> 	</body>
> 	<!-- ... -->
> 	
> </project>
> {code}
> With this example only menu item "News 2" would appear in S because its inheritance is
not disabled, while menu item "News 1" appears only in R and not in S because its inheritance
was disabled (false). The default if the parameter is missing should be "true".
> Btw, the same extension should be made to the <menu ... > tag to allow to enable
or disable inheritance of menus entirely.
> Regards,
> Thorsten

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

       

Mime
View raw message