tapestry-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Buck O' Five (JIRA)" <j...@apache.org>
Subject [jira] Created: (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
Date Thu, 30 Oct 2008 04:33:44 GMT
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


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


Mime
View raw message