[Tobago] Binding selected item from tx:selectOneChoice
Hi. Im on tobago 1.0.20 I'm think I've missed something here. I just can't find out what is wrong with my code. I'm trying to bind the selected item of a selectOneChoice to a property on a controller. The selectOneChoice is initially rendered correctly with data from my database. But when I try to select from the list, I get a validation error, and the setSelectedServiceReportType to set the value back to the controller is never called. If I set the test up with an int og even a Long as values for the selectItems it all works fine.. What am I doing wrong?? I have this test code: jsp: tc:box label=Register New Report tc:panel f:facet name=layout tc:gridLayout columns=*;*; rows=fixed; border=0 / /f:facet tx:selectOneChoice label=Select One value=#{testController.selectedServiceReportType} f:selectItems value=#{testController.serviceReportTypes}/ f:facet name=change tc:command action=#{testController.selectedServiceReportTypeAction}/ /f:facet /tx:selectOneChoice tx:label value=TEsting/ /tc:panel /tc:box controller: public class TestController { private ArrayListServiceReportType serviceReportTypes; private ServiceReportType selectedServiceReportType; public void setSelectedServiceReportType(ServiceReportType selectedServiceReportType) { this.selectedServiceReportType = selectedServiceReportType; } public ServiceReportType getSelectedServiceReportType() { return selectedServiceReportType; } public ArrayListSelectItem getServiceReportTypes() { if (serviceReportTypes == null) { serviceReportTypes = new ArrayListServiceReportType(); for (int i = 0; i 3; i++) { ServiceReportType serviceReportType = new ServiceReportType(); serviceReportType.setDescription(Decription + i); serviceReportTypes.add(serviceReportType); } } ArrayListSelectItem selectItems = new ArrayListSelectItem(); for (ServiceReportType serviceReportType : serviceReportTypes) { selectItems.add(new SelectItem(serviceReportType, serviceReportType.getDescription())); } return selectItems; } public String selectedServiceReportTypeAction() { return OK; } } ServiceReportType entity (which is Hibernate mapped): public class ServiceReportType implements Serializable { private static final long serialVersionUID = 2869236275653791385L; private Long id; private String typeCode; private String description; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getTypeCode() { return typeCode; } public void setTypeCode(String typeCode) { this.typeCode = typeCode; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } }
Tobago separator tc:separator issue
Hi All, i observed tc:separator size is limited.that means I want to render a blank line from begining of page to the ending of page through tc:separator ,but it is coming till middle of the page.could you plaese help me to draw a blank line from start to end of the page... The code iused tc:cell spanX=4 tc:separator/ /tc:cell Thanks, Kanth -- View this message in context: http://www.nabble.com/Tobago-separator-%3Ctc%3Aseparator-issue-tp23925880p23925880.html Sent from the MyFaces - Users mailing list archive at Nabble.com.
Re: [Tobago] Binding selected item from tx:selectOneChoice
I don't think a command button is a valid child of a selectitem tag. -Richard Sent from my iPhone On Jun 8, 2009, at 4:22 AM, Jarle Halvorsen j...@multiplus.as wrote: Hi. Im on tobago 1.0.20 I'm think I've missed something here. I just can't find out what is wrong with my code. I'm trying to bind the selected item of a selectOneChoice to a property on a controller. The selectOneChoice is initially rendered correctly with data from my database. But when I try to select from the list, I get a validation error, and the setSelectedServiceReportType to set the value back to the controller is never called. If I set the test up with an int og even a Long as values for the selectItems it all works fine.. What am I doing wrong?? I have this test code: jsp: tc:box label=Register New Report tc:panel f:facet name=layout tc:gridLayout columns=*;*; rows=fixed; border=0 / /f:facet tx:selectOneChoice label=Select One value=#{testController.selectedServiceReportType} f:selectItems value=#{testController.serviceReportTypes}/ f:facet name=change tc:command action=#{testController.selectedServiceReportTypeAction}/ /f:facet /tx:selectOneChoice tx:label value=TEsting/ /tc:panel /tc:box controller: public class TestController { private ArrayListServiceReportType serviceReportTypes; private ServiceReportType selectedServiceReportType; public void setSelectedServiceReportType(ServiceReportType selectedServiceReportType) { this.selectedServiceReportType = selectedServiceReportType; } public ServiceReportType getSelectedServiceReportType() { return selectedServiceReportType; } public ArrayListSelectItem getServiceReportTypes() { if (serviceReportTypes == null) { serviceReportTypes = new ArrayListServiceReportType(); for (int i = 0; i 3; i++) { ServiceReportType serviceReportType = new ServiceReportType(); serviceReportType.setDescription(Decription + i); serviceReportTypes.add(serviceReportType); } } ArrayListSelectItem selectItems = new ArrayListSelectItem(); for (ServiceReportType serviceReportType : serviceReportTypes) { selectItems.add(new SelectItem(serviceReportType, serviceReportType.getDescription())); } return selectItems; } public String selectedServiceReportTypeAction() { return OK; } } ServiceReportType entity (which is Hibernate mapped): public class ServiceReportType implements Serializable { private static final long serialVersionUID = 2869236275653791385L; private Long id; private String typeCode; private String description; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getTypeCode() { return typeCode; } public void setTypeCode(String typeCode) { this.typeCode = typeCode; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } } ze:10.0pt;font-family:Courier New;color:black'.description = description; } }
Re: Tobago separator tc:separator issue
The separator can only be as wide as its parent element. It looks like you are using it inside of a table. Richard Sent from my iPhone On Jun 8, 2009, at 8:08 AM, kanth99 srikanth_kong...@yahoo.co.in wrote: Hi All, i observed tc:separator size is limited.that means I want to render a blank line from begining of page to the ending of page through tc:separator ,but it is coming till middle of the page.could you plaese help me to draw a blank line from start to end of the page... The code iused tc:cell spanX=4 tc:separator/ /tc:cell Thanks, Kanth -- View this message in context: http://www.nabble.com/Tobago-separator-%3Ctc%3Aseparator-issue-tp23925880p23925880.html Sent from the MyFaces - Users mailing list archive at Nabble.com.
Re: Tobago separator tc:separator issue
Here is the piece of code I am using i could see the seperator up to middle of the page... %@ taglib uri=http://myfaces.apache.org/tobago/component; prefix=tc% %@ taglib uri=http://java.sun.com/jsf/core; prefix=f% f:view tc:page label=Home id=page width=800px height=150px tc:panel f:facet name=layout tc:gridLayout columns=200px;* / /f:facet tc:link action=#{navigation.gotoFirst} immediate=true image=image/MyLogo.gif / tc:link label =Login action=success/ tc:cell spanX=2 tc:separator/ /tc:cell /tc:panel /tc:page /f:view Also I want Login link should appear on the same line as of the image , at the end of the line.But Login Link appearing just next to the Image.If I increase the column width Login link moving to the next line.Please help me in fixing these two irregularities. Thanks Kanth Richard Yee-3 wrote: The separator can only be as wide as its parent element. It looks like you are using it inside of a table. Richard Sent from my iPhone On Jun 8, 2009, at 8:08 AM, kanth99 srikanth_kong...@yahoo.co.in wrote: Hi All, i observed tc:separator size is limited.that means I want to render a blank line from begining of page to the ending of page through tc:separator ,but it is coming till middle of the page.could you plaese help me to draw a blank line from start to end of the page... The code iused tc:cell spanX=4 tc:separator/ /tc:cell Thanks, Kanth -- View this message in context: http://www.nabble.com/Tobago-separator-%3Ctc%3Aseparator-issue-tp23925880p23925880.html Sent from the MyFaces - Users mailing list archive at Nabble.com. -- View this message in context: http://www.nabble.com/Tobago-separator-%3Ctc%3Aseparator-issue-tp23925880p23926599.html Sent from the MyFaces - Users mailing list archive at Nabble.com.
spring security/acegi and myFaces orchestra conversation scope
Hello We have a web application, using ACEGI-Security (new known as Spring Security). Lately we added MyFaces Orchestra form handling conversation scope, providing different application states in different browser windows on the same client. It works great, but there is some issue according security. When ACEGI-Security is used with org.acegisecurity.context.HttpSessionContextIntegrationFilter, authenticated principles are stored in the session context, using a SecurityContext instance. When working with conversation scope, we would like to authenticate users for one conversation only, not for the whole session. We tried this, implementing a filter using a conversation scope bean to store the SecurityContext in. So far it did not work, because of the sequence, the Filters are called. Changing this sequence gets pretty messy because security has to be applied for all ressources of the application, and the conversation scope is only part of the javax.faces.webapp.FacesServlet. So the good way to goo, is to ensure security first, before calling any other servlet/filter, isn't it? Is there a proper way to integrate spring security on an conversation scope, provided by orchestra, so that one can login for each conversation separately? best regards Matthias Gerber
Re: [Tobago] Binding selected item from tx:selectOneChoice
Hi Jarle, you need a converter for ServiceReportType. Regards, Volker 2009/6/8 Jarle Halvorsen j...@multiplus.as: Hi. Im on tobago 1.0.20 I'm think I've missed something here. I just can't find out what is wrong with my code. I'm trying to bind the selected item of a selectOneChoice to a property on a controller. The selectOneChoice is initially rendered correctly with data from my database. But when I try to select from the list, I get a validation error, and the setSelectedServiceReportType to set the value back to the controller is never called. If I set the test up with an int og even a Long as values for the selectItems it all works fine.. What am I doing wrong?? I have this test code: jsp: tc:box label=Register New Report tc:panel f:facet name=layout tc:gridLayout columns=*;*; rows=fixed; border=0 / /f:facet tx:selectOneChoice label=Select One value=#{testController.selectedServiceReportType} f:selectItems value=#{testController.serviceReportTypes}/ f:facet name=change tc:command action=#{testController.selectedServiceReportTypeAction}/ /f:facet /tx:selectOneChoice tx:label value=TEsting/ /tc:panel /tc:box controller: public class TestController { private ArrayListServiceReportType serviceReportTypes; private ServiceReportType selectedServiceReportType; public void setSelectedServiceReportType(ServiceReportType selectedServiceReportType) { this.selectedServiceReportType = selectedServiceReportType; } public ServiceReportType getSelectedServiceReportType() { return selectedServiceReportType; } public ArrayListSelectItem getServiceReportTypes() { if (serviceReportTypes == null) { serviceReportTypes = new ArrayListServiceReportType(); for (int i = 0; i 3; i++) { ServiceReportType serviceReportType = new ServiceReportType(); serviceReportType.setDescription(Decription + i); serviceReportTypes.add(serviceReportType); } } ArrayListSelectItem selectItems = new ArrayListSelectItem(); for (ServiceReportType serviceReportType : serviceReportTypes) { selectItems.add(new SelectItem(serviceReportType, serviceReportType.getDescription())); } return selectItems; } public String selectedServiceReportTypeAction() { return OK; } } ServiceReportType entity (which is Hibernate mapped): public class ServiceReportType implements Serializable { private static final long serialVersionUID = 2869236275653791385L; private Long id; private String typeCode; private String description; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getTypeCode() { return typeCode; } public void setTypeCode(String typeCode) { this.typeCode = typeCode; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } } -- inexso - information exchange solutions GmbH Bismarckstraße 13 | 26122 Oldenburg Tel.: +49 441 4082 356 | FAX: +49 441 4082 355 | www.inexso.de
how to use SelectionListener with command button
Please need help in understanding how to use the table row selection event to extract data from a selected row in a table. I do not understand how to send the data from a selected row of a table to set a backing bean's representation of that selected row. I've seen the advice provided in the Developer Guide at: http://myfaces.apache.org/trinidad/devguide/communicatingBetweenPages.html I am using Trinidad 1.2.11 with Tomcat 6.0.. By the way, would it be better to populate a table via another kind of object, rather than using my current model of a Vector of Hashtables? If so, what class should I use? Here is a command button: tr:commandButton text=Edit Property Right id=editPropertyRightCommandButton action=goToPropertyRightDescription tr:setActionListener from=#{propertyRightBean.filteredPropertyRights} to=#{propertyRightBean.selectedPropertyRightListener}/ /tr:commandButton The table is populated from a Vector of Hashtables, where each Hashtable represents a row. When the user clicks the Edit command button above, the following error (abbreviated) is shown: Cannot convert [{geometry_ids ... plant_group=}] of type class java.util.Vector to class org.apache.myfaces.trinidad.event.SelectionEvent What sort of object must the data be in order to be converted to a SelectionEvent? The backing bean has this method signature: public void setSelectedPropertyRightListener(SelectionEvent e) Thanks for any advice on this. Mike Quentel
Re: Tobago separator tc:separator issue
Hi Helmut, I tried the below solution,still I am getting the old result and part of the image disappearing. Thanks, kanth Helmut Swaczinna-2 wrote: Hi, for the separator issue I suggest using three rows in your layout: tc:panel f:facet name=layout tc:gridLayout columns=200px;* rows=fixed;fixed;*/ /f:facet tc:link action=#{navigation.gotoFirst} immediate=true image=image/MyLogo.gif / tc:link label =Login action=success/ tc:cell spanX=2 tc:separator/ /tc:cell tc:cell spanX=2 /tc:cell /tc:panel For the second issue I suggest using three columns: tc:panel f:facet name=layout tc:gridLayout columns=200px;*;200px rows=fixed;fixed;*/ /f:facet tc:link action=#{navigation.gotoFirst} immediate=true image=image/MyLogo.gif / tc:cell/ tc:link label =Login action=success/ tc:cell spanX=3 tc:separator/ /tc:cell tc:cell spanX=3 /tc:cell /tc:panel Helmut kanth99 schrieb: Here is the piece of code I am using i could see the seperator up to middle of the page... %@ taglib uri=http://myfaces.apache.org/tobago/component; prefix=tc% %@ taglib uri=http://java.sun.com/jsf/core; prefix=f% f:view tc:page label=Home id=page width=800px height=150px tc:panel f:facet name=layout tc:gridLayout columns=200px;* / /f:facet tc:link action=#{navigation.gotoFirst} immediate=true image=image/MyLogo.gif / tc:link label =Login action=success/ tc:cell spanX=2 tc:separator/ /tc:cell /tc:panel /tc:page /f:view Also I want Login link should appear on the same line as of the image , at the end of the line.But Login Link appearing just next to the Image.If I increase the column width Login link moving to the next line.Please help me in fixing these two irregularities. Thanks Kanth Richard Yee-3 wrote: The separator can only be as wide as its parent element. It looks like you are using it inside of a table. Richard Sent from my iPhone On Jun 8, 2009, at 8:08 AM, kanth99 srikanth_kong...@yahoo.co.in wrote: Hi All, i observed tc:separator size is limited.that means I want to render a blank line from begining of page to the ending of page through tc:separator ,but it is coming till middle of the page.could you plaese help me to draw a blank line from start to end of the page... The code iused tc:cell spanX=4 tc:separator/ /tc:cell Thanks, Kanth -- View this message in context: http://www.nabble.com/Tobago-separator-%3Ctc%3Aseparator-issue-tp23925880p23925880.html Sent from the MyFaces - Users mailing list archive at Nabble.com. -- View this message in context: http://www.nabble.com/Tobago-separator-%3Ctc%3Aseparator-issue-tp23925880p23929324.html Sent from the MyFaces - Users mailing list archive at Nabble.com.
Re: spring security/acegi and myFaces orchestra conversation scope
Hi! Is there a proper way to integrate spring security on an conversation scope, provided by orchestra, so that one can login for each conversation separately? Phu, we too use Spring Security, but to authenticate against the whole session. First, I think you meant you would like to authenticate against a conversation context, no? The conversation context is the one responsible to do the window separation and to hold multiple conversations. Your use case is pretty sophisticated. Unhappily I have no clue if it can work at all. You have to find a way to let Spring Security get/fetch the principal from the conversation context. Are you using form authentication? Else you might run into problems where the browser sends already known user credentials to any login request. Probably, best will be you implement your own security layer :-( Ciao, Mario
SV: [Tobago] Binding selected item from tx:selectOneChoice
Thank you for the replies folks. I'm not that experienced with neither JSF nor Tobago, but I find it a bit strange that I have to tie in a converter in this case. Could you explain why I need one? The selectOneChoice is able to initially set the correct selected object based on getSelectedServiceReportType(), if I modify my test code to set the private selectedServiceReportType, without a converter. The converter interface defines methods for converting from String to Object and from Object to String. In my case ServiceReportType is a complex type and a conversion to it from a String would not be possible. In theory all my ServiceReportTypes could have the same description/label. I'm confused as you might have noticed.. :) My focus has been on the SelectItem class. As far as I can see these objects should be enough. Shouldn't the framework be able to forward the value of the SelectItem(Object) to my bound controller property when selected, via a set method?? At least this is the behaviour I'm used to other frameworks. Thanks again Jarle Halvorsen -Opprinnelig melding- Fra: weber.vol...@googlemail.com på vegne av Volker Weber Sendt: ma 08.06.2009 19:47 Til: MyFaces Discussion Emne: Re: [Tobago] Binding selected item from tx:selectOneChoice Hi Jarle, you need a converter for ServiceReportType. Regards, Volker 2009/6/8 Jarle Halvorsen j...@multiplus.as: Hi. Im on tobago 1.0.20 I'm think I've missed something here. I just can't find out what is wrong with my code. I'm trying to bind the selected item of a selectOneChoice to a property on a controller. The selectOneChoice is initially rendered correctly with data from my database. But when I try to select from the list, I get a validation error, and the setSelectedServiceReportType to set the value back to the controller is never called. If I set the test up with an int og even a Long as values for the selectItems it all works fine.. What am I doing wrong?? I have this test code: jsp: tc:box label=Register New Report tc:panel f:facet name=layout tc:gridLayout columns=*;*; rows=fixed; border=0 / /f:facet tx:selectOneChoice label=Select One value=#{testController.selectedServiceReportType} f:selectItems value=#{testController.serviceReportTypes}/ f:facet name=change tc:command action=#{testController.selectedServiceReportTypeAction}/ /f:facet /tx:selectOneChoice tx:label value=TEsting/ /tc:panel /tc:box controller: public class TestController { private ArrayListServiceReportType serviceReportTypes; private ServiceReportType selectedServiceReportType; public void setSelectedServiceReportType(ServiceReportType selectedServiceReportType) { this.selectedServiceReportType = selectedServiceReportType; } public ServiceReportType getSelectedServiceReportType() { return selectedServiceReportType; } public ArrayListSelectItem getServiceReportTypes() { if (serviceReportTypes == null) { serviceReportTypes = new ArrayListServiceReportType(); for (int i = 0; i 3; i++) { ServiceReportType serviceReportType = new ServiceReportType(); serviceReportType.setDescription(Decription + i); serviceReportTypes.add(serviceReportType); } } ArrayListSelectItem selectItems = new ArrayListSelectItem(); for (ServiceReportType serviceReportType : serviceReportTypes) { selectItems.add(new SelectItem(serviceReportType, serviceReportType.getDescription())); } return selectItems; } public String selectedServiceReportTypeAction() { return OK; } } ServiceReportType entity (which is Hibernate mapped): public class ServiceReportType implements Serializable { private static final long serialVersionUID = 2869236275653791385L; private Long id; private String typeCode; private String description; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getTypeCode() { return typeCode; } public void setTypeCode(String typeCode) { this.typeCode = typeCode; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } } -- inexso - information exchange solutions GmbH Bismarckstraße 13 | 26122 Oldenburg Tel.: +49 441 4082 356 | FAX: +49 441 4082 355 | www.inexso.de winmail.dat
Re: Trinidad vs Tobago
Yes I agree with you. The architecture needs more documentation, especially there are some really important API classes that have no JavaDoc at all. As for the maven-faces-plugin, I really dislike it. It does a nice job, but it is really hard to work with and modify (speaking from experience). There has been some discussion to move Trinidad to the new annotation builder plug-in, but I personally don't know the status of that and the opinion of the Trinidad contributors of changing the process. Yeah, writing that WIKI gave me typer's cramp, it was the last straw that pushed me to switch from QWERTY to the Dvorak keyboard layout, so I agree that it should be more simple. FYI, I think that there are maven archetypes out there that make it easier, but I am not 100% certain there is an appropriate one. As for more components, it is hard to write something that has no ideas. No one has put any effort into suggesting, working on or submitting new components to the Trinidad sandbox. So basically, if there is no demand for specific components, why spend your own personal time writing them and trying to guess what people want? Skinning is a lot of work and I started one skin, but I lost my motivation, but I think there is some that are working on one (search the dev@ archives). One problem I find with working with Trinidad is still supporting IE6 which makes life extremely miserable. The JS layer needs some major refactoring (like no global functions and using a trinidad namespace for all JS code for example) as well that makes any JS involved component be more work than it should be. Oracle still puts a lot of effort in Trinidad support and it still uses Trinidad as a base for the rich client framework (if you want to see the public demo, you can surf here: http://jdevadf.oracle.com/adf-richclient-demo/faces/index.jspx) so that is the primary reason that Trinidad's core framework is constantly worked on, but since Oracle has their own renderers for these components, there isn't the same focus on the Trinidad renderers as there is on the framework. Like all open source projects, there has to be a good user and contributor community for it to truly prosper. Should people work on new sandbox components and volunteer and start submitting patches for the skin framework, progress would be seen. As for how to contribute, it is as simple as creating JIRA tickets at http://issues.apache.org and submitting patches. If a patch seems to be growing old, then it is typical to ping the users@ or dev@ mailing list requesting someone to look into it. It helps if there is adequate comments. For any API changes, it is always best to discuss the change on the dev@ mailing list. Before I became a committer I just helped out on the mailing lists and submitted patches, it really is not too difficult to get involved if the desire is there. -Andrew On Fri, Jun 5, 2009 at 7:25 AM, Luka Surijaluka.sur...@iytim.hr wrote: Andrew, it's always the same reason. Trinidad is too complicated do extend without strong knowledge: 1. in it's architecture isn't well documented 2. in maven-faces-plugin I'm familiar with your wiki page ( http://wiki.apache.org/myfaces/Facelets_and_JSF_1.1_maven-faces-plugin_Getting_started ) but, as you can see it takes too much effort to make a simple hello world component and I think this is a main reason why there is almost no new components in last 2 years. I'm using trinidad since m1-incubating version and I'm tracking all the changes. In my opinion trinidad is potentialy the best jsf framework currently available, but it lacks some features to make it the best: 1. More components 2. easier component development 3. new AJAX under-layer to track component changes (to allow push technology one day). See ICEFaces as a example how to make a framework so popular with this technology. But in the background it lacks so many thing and nobody cares. I've tried ICEFaces, and for hello world application is ok, but for anything more complex, trinidad is 100x better and more developer friendly + has better browser compatibility. 4. wow skin to make him more attractive. I'm sure that many trinidad users (developers) are willing to contribute to the community starting from my self if they knew how to do it in some easier way. Best regards, Luka Surija +385 1 61 99 140 +385 98 434 061 l...@iytim.hr I.Y. tim d.o.o. Vrbik 3, HR-1 Zagreb www.iytim.hr i...@iytim.hr Andrew Robinson wrote: I would not jump to just saying that's totally wrong ... when there is truth to the observation. I cannot speak for Tobago, but there are areas of Trinidad that have not significantly changed in years. This may give the impression that there is not much ongoing development. What you find with Trinidad is that the server side framework is very well supported, as well as the components classes, but the Renderers, skins and JavaScript of Trinidad are very much neglected. This is
action not being invoked. Facelets 1.1.14, MyFaces 1.2.6, Spring 2.5.x
I'm about to lose all my hair. I have a h:commandLink inside a h:form that I want to to invoke a method on my backing bean upon form submit. I read that facelets doesn't support method binding. What do I need to do to get something this simple to work? The page renders just fine. Is there a sample app I can look thru? I'm using Spring to manage the backing bean. Otherwise, everything else is pretty much by the book. I can provide config and code but I think I just need a reference app to see a working sample. Sam
Re: Trinidad vs Tobago
While we're on this subject, I think it's clear that combining the component suites might increase the available resources for moving things forward.. I know this has been discussed in the past, but I don't think there was a clear consensus... --- Kito D. Mann -- Author, JavaServer Faces in Action http://twitter.com/kito99 http://twitter.com/jsfcentral http://www.virtua.com - JSF/Java EE consulting, training, and mentoring http://www.JSFCentral.com - JavaServer Faces FAQ, news, and info +1 203-404-4848 x3 On Mon, Jun 8, 2009 at 5:35 PM, Andrew Robinson andrew.rw.robin...@gmail.com wrote: Yes I agree with you. The architecture needs more documentation, especially there are some really important API classes that have no JavaDoc at all. As for the maven-faces-plugin, I really dislike it. It does a nice job, but it is really hard to work with and modify (speaking from experience). There has been some discussion to move Trinidad to the new annotation builder plug-in, but I personally don't know the status of that and the opinion of the Trinidad contributors of changing the process. Yeah, writing that WIKI gave me typer's cramp, it was the last straw that pushed me to switch from QWERTY to the Dvorak keyboard layout, so I agree that it should be more simple. FYI, I think that there are maven archetypes out there that make it easier, but I am not 100% certain there is an appropriate one. As for more components, it is hard to write something that has no ideas. No one has put any effort into suggesting, working on or submitting new components to the Trinidad sandbox. So basically, if there is no demand for specific components, why spend your own personal time writing them and trying to guess what people want? Skinning is a lot of work and I started one skin, but I lost my motivation, but I think there is some that are working on one (search the dev@ archives). One problem I find with working with Trinidad is still supporting IE6 which makes life extremely miserable. The JS layer needs some major refactoring (like no global functions and using a trinidad namespace for all JS code for example) as well that makes any JS involved component be more work than it should be. Oracle still puts a lot of effort in Trinidad support and it still uses Trinidad as a base for the rich client framework (if you want to see the public demo, you can surf here: http://jdevadf.oracle.com/adf-richclient-demo/faces/index.jspx) so that is the primary reason that Trinidad's core framework is constantly worked on, but since Oracle has their own renderers for these components, there isn't the same focus on the Trinidad renderers as there is on the framework. Like all open source projects, there has to be a good user and contributor community for it to truly prosper. Should people work on new sandbox components and volunteer and start submitting patches for the skin framework, progress would be seen. As for how to contribute, it is as simple as creating JIRA tickets at http://issues.apache.org and submitting patches. If a patch seems to be growing old, then it is typical to ping the users@ or dev@ mailing list requesting someone to look into it. It helps if there is adequate comments. For any API changes, it is always best to discuss the change on the dev@ mailing list. Before I became a committer I just helped out on the mailing lists and submitted patches, it really is not too difficult to get involved if the desire is there. -Andrew On Fri, Jun 5, 2009 at 7:25 AM, Luka Surijaluka.sur...@iytim.hr wrote: Andrew, it's always the same reason. Trinidad is too complicated do extend without strong knowledge: 1. in it's architecture isn't well documented 2. in maven-faces-plugin I'm familiar with your wiki page ( http://wiki.apache.org/myfaces/Facelets_and_JSF_1.1_maven-faces-plugin_Getting_started ) but, as you can see it takes too much effort to make a simple hello world component and I think this is a main reason why there is almost no new components in last 2 years. I'm using trinidad since m1-incubating version and I'm tracking all the changes. In my opinion trinidad is potentialy the best jsf framework currently available, but it lacks some features to make it the best: 1. More components 2. easier component development 3. new AJAX under-layer to track component changes (to allow push technology one day). See ICEFaces as a example how to make a framework so popular with this technology. But in the background it lacks so many thing and nobody cares. I've tried ICEFaces, and for hello world application is ok, but for anything more complex, trinidad is 100x better and more developer friendly + has better browser compatibility. 4. wow skin to make him more attractive. I'm sure that many trinidad users (developers) are willing to contribute to the community starting from my self if they knew how to do it in some