You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by "Buck O' Five (JIRA)" <ji...@apache.org> on 2008/10/30 23:00:48 UTC

[jira] Commented: (TAP5-317) Tap5 should check abstract and parent classes before throwing "Embedded xxx component(s) are defined within component class xxx but are not present in the component template" Exception

    [ https://issues.apache.org/jira/browse/TAP5-317?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12644125#action_12644125 ] 

Buck O' Five commented on TAP5-317:
-----------------------------------

Please accept my apologies, I hope this complete oversight on my part didn't waste too much of your time.  Thank you for the quick response, your insight was correct.  

> Tap5 should check abstract and parent classes before throwing "Embedded xxx component(s) are defined within component class xxx but are not present in the component template" Exception
> ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: TAP5-317
>                 URL: https://issues.apache.org/jira/browse/TAP5-317
>             Project: Tapestry 5
>          Issue Type: Bug
>          Components: tapestry-core
>    Affects Versions: 5.0.16
>            Reporter: Buck O' Five
>            Assignee: Howard M. Lewis Ship
>
> Currently I'm using a very generic CRUD system which uses an abstract page class to eliminate obvious redundancy.  The abstract page class has a component instance and does not have an associated .tml file.  The reference to the component is in the parent page classes .tml file (this allows for custom settings per entity).  This used to work with just an error logged but with recent updates to Tap5-105 it now throws an error.   I suspect the issue is because the component instance is in the abstract class but when all is said and done this should be valid. right?
> Here is a very very slimmed down example to reproduce:
> in base folder:
> public abstract class AbstractEntityList<T> {
> 	private T entity;
> 	
> 	@Component(parameters= {"source=dataSource","row=entity"})
> 	private EntityList<T> entityList;
> 	
> 	public abstract Object getDataSource();
> 	
> 	public T getEntity() {
> 		return entity;
> 	}
> 	public void setEntity(T entity) {
> 		this.entity = entity;
> 	}		
> }
> in components folder:
> public class EntityList<T> {
> 	@Parameter @Property
> 	private GridDataSource source;
> 	@Parameter @Property
> 	private T row;
> 	// Grid properties
> 	@Component(parameters= {"source=inherit:source", "row=row"})
> 	private Grid grid;	
> }
> EntityList.tml
> <html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd">
>     <t:grid t:id="grid"></t:grid>    
> </html>
> in entities folder:
> public class Merchant {
> 	private String name;
> 	
> 	public Merchant(){}
> 	public Merchant(String name){
> 		setName(name);
> 	}
> 	
> 	public String getName() {
> 		return name;
> 	}
> 	public void setName(String name) {
> 		this.name = name;
> 	}
> 	
> }
> in pages folder:
> public class Merchants extends AbstractEntityList<Merchant>{
> 			
> 	public Object getDataSource()
> 	{
> 		List<Merchant> list = new ArrayList<Merchant>();
> 		for(int i=0;i<5;i++)
> 			list.add(new Merchant("Test "+i));
> 		
> 		return list;
> 	}
> }
> Merchants.tml
> <html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd">
> 	<div t:type="EntityList"></div>
> </html>

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
For additional commands, e-mail: dev-help@tapestry.apache.org