-
15. Re: becoming involved with the richFaces/a4j project
jbalunas Mar 4, 2009 7:46 AM (in response to zmarrapese)Hi fmarwede,
I appreciate your efforts here and I could not agree more that in the current state it is difficult to get started working with RichFaces from a development point of view. We are going to make this easier.
For me the best place to get started was to walk through a very simple application and debug through the RichFaces JSF and JS. This gave me a basic foundation that I could apply to reviewing the RichFaces source code and components.
Nick will likely have some other advice as well.
Regards,
Jay -
16. Re: becoming involved with the richFaces/a4j project
nbelaevski Mar 4, 2009 8:57 AM (in response to zmarrapese)"fmarwede" wrote:
It is working...Step 2 was successfully completed in 49 min...Step 3 ins 16 minutes.
Thank you very much! Now I can explore the whole thing.
One more little question: What I have to do, when I have changed or updated something? clean and install takes almost an hour! Do you do that everyday?
We usually do full build in the morning. For me it takes 30 minutes. Also there is no need to execute Eclipse metadata generation unless there are some changes in the versions of libraries used; just refresh projects after build.
How do we test new code. We create special small developers demo projects (you can see them in samples directory), that are dependent not on the assembled version of RF, but on the component projects and run them from Eclipse. If they are attached as projects (modules in "Java EE dependencies" tab) and not as .jar files, Eclipse automatically compiles and redeploys them unless the changes are in .jspx files (or in script files that are assembled together using ANT - there are three projects doing that: impl, scrollableDataTable and extendedDataTable).
There is a special module that assembles all ui\* projects into richfaces-ui.jar, it is called ui\assembly. If you need richfaces-ui.jar that contains your recent changes, just build (mvn clean install) small ui\* projects and then build ui\assembly. -
17. Re: becoming involved with the richFaces/a4j project
nbelaevski Mar 4, 2009 11:34 AM (in response to zmarrapese)"fmarwede" wrote:
So my next question: What would you suggest for training? In my opinion it would be the best to start with a simple component, and the most simple configuration of projects possible, so I can change anything, build and test it with a small test web application to learn this cycle and to learn what is overall involved for developing a RF component.
You can take something simple, like rich:togglePanel or rich:inputNumberSpinner and learn how to enhance it with some functionality, like adding AJAX updates, additional attributes etc.
Google books have a nice book on JSF publicly accessible: http://books.google.com.by/books?id=Iv9r-CT6ZwwC&dq=pro+jsf+and+ajax&printsec=frontcover&source=bn&hl=be&ei=KaauSaqvAouW1QWNjNifDg&sa=X&oi=book_result&resnum=4&ct=result you can take a look at the beginning chapters... -
18. Re: becoming involved with the richFaces/a4j project
fmarwede Mar 4, 2009 12:43 PM (in response to zmarrapese)Thanks again, guys.
For me the best place to get started was to walk through a very simple application and debug through the RichFaces JSF and JS. This gave me a basic foundation that I could apply to reviewing the RichFaces source code and components.
Okay, I'll try that.
We create special small developers demo projects (you can see them in samples directory), that are dependent not on the assembled version of RF, but on the component projects and run them from Eclipse. If they are attached as projects (modules in "Java EE dependencies" tab) and not as .jar files, Eclipse automatically compiles and redeploys them unless the changes are in .jspx files (or in script files that are assembled together using ANT - there are three projects doing that: impl, scrollableDataTable and extendedDataTable).
Generally I understand that. Let us assume, I'll start with D&D. After the built I import first the drag-drop project into eclipse and then, because this one depends on them, richfaces-api, richfaces-impl and richfaces-test. That works fine for me.
First question: I've got 86 error in problem view (only *.xml and *.mod files). For example in drag-drop/src/main/config/component/dragSupport.xml in line 97:The content of element type "listener" must match "(name,listenerclass,componentclass,eventclass,methodname?,tag?,taghandler?,property*)".
Can I ignore them or remove them with some Eclipse settings? Or do I have to handle them seriously?
Let's assume this problem is solved. Next step: I execute mvn clean install in \trunk\samples\dragDropDemo, so I get a target folder there.
Second Question: What is now the common next step? Putting the WAR on a server, or import this project in eclipse too and put it here on a server?
Let's assume this problem is solved too :-)
Third and last question: Is this the common approach if i wann changing something (and testing it) on the drag & drop component?
Sorry for all my questions, maybe I'm a little bit slow in thinking... -
19. Re: becoming involved with the richFaces/a4j project
fmarwede Mar 4, 2009 12:45 PM (in response to zmarrapese)Sorry I didn't saw your last post. Thank you for the tips!
-
20. Re: becoming involved with the richFaces/a4j project
nbelaevski Mar 4, 2009 2:51 PM (in response to zmarrapese)"fmarwede" wrote:
Thanks again, guys.
Generally I understand that. Let us assume, I'll start with D&D. After the built I import first the drag-drop project into eclipse and then, because this one depends on them, richfaces-api, richfaces-impl and richfaces-test. That works fine for me.
Good"fmarwede" wrote:
First question: I've got 86 error in problem view (only *.xml and *.mod files). For example in drag-drop/src/main/config/component/dragSupport.xml in line 97:The content of element type "listener" must match "(name,listenerclass,componentclass,eventclass,methodname?,tag?,taghandler?,property*)".
Can I ignore them or remove them with some Eclipse settings? Or do I have to handle them seriously?
You can ignore them unless module is not built successfully/runs incorrectly. There are some Eclipse validation issues with included files and .jspx templates."fmarwede" wrote:
Let's assume this problem is solved. Next step: I execute mvn clean install in \trunk\samples\dragDropDemo, so I get a target folder there.
Second Question: What is now the common next step? Putting the WAR on a server, or import this project in eclipse too and put it here on a server?
You can do the following:
mvn clean package and run the built WAR under Tomcat
mvn clean jetty:run and navigate to localhost:8080
Import project into IDE, deploy to server from there and launch the server."fmarwede" wrote:
Let's assume this problem is solved too :-)
Third and last question: Is this the common approach if i wann changing something (and testing it) on the drag & drop component?
Sorry for all my questions, maybe I'm a little bit slow in thinking...
When close to releases we usually add testing of fully built RF with livedemo (it is located in samples\richfaces-demo) to check that assembled library behaves well too. -
21. Re: becoming involved with the richFaces/a4j project
fmarwede Mar 5, 2009 1:42 AM (in response to zmarrapese)
You can do the following:
mvn clean package and run the built WAR under Tomcat
mvn clean jetty:run and navigate to localhost:8080
Import project into IDE, deploy to server from there and launch the server.
Sorry, next question: With all three possibilities I got an exception like this...looks like a library is not found. How is that possible?2009-03-05 07:32:54.488::WARN: /dragDropDemo/ com.sun.faces.mgbean.ManagedBeanCreationException: Unable to create managed bean bean. The following problems were found: - Bean or property class org.richfaces.Bean for managed bean bean cannot be found. at com.sun.faces.mgbean.BeanManager.create(BeanManager.java:204) at com.sun.faces.el.ManagedBeanELResolver.getValue(ManagedBeanELResolver .java:86) at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:143) at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELRe solver.java:72) at com.sun.el.parser.AstIdentifier.getValue(AstIdentifier.java:86) at com.sun.el.parser.AstValue.getValue(AstValue.java:127) at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:206) at javax.faces.component.UIOutput.getValue(UIOutput.java:184) at com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getValue(Ht mlBasicInputRenderer.java:201) at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getCurrentValue( HtmlBasicRenderer.java:284) at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd(HtmlBa sicRenderer.java:154) at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java: 861) at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive( HtmlBasicRenderer.java:242) at com.sun.faces.renderkit.html_basic.GroupRenderer.encodeChildren(Group Renderer.java:106) at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase. java:837) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:930) at javax.faces.render.Renderer.encodeChildren(Renderer.java:148) at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase. java:837) at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive( HtmlBasicRenderer.java:234) at com.sun.faces.renderkit.html_basic.GridRenderer.renderRow(GridRendere r.java:180) at com.sun.faces.renderkit.html_basic.GridRenderer.encodeChildren(GridRe nderer.java:127) at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase. java:837) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:930) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:933) at com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImp l.java:266) at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl. java:197) at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWra pper.java:100) at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.j ava:176) at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePha se.java:110) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100) at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487 ) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(Servlet Handler.java:1093) at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178) at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290) at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFil ter.java:364) at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:491) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(Servlet Handler.java:1084) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:3 60) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.jav a:216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:1 81) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:7 12) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405) at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:268) at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126) at org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.jav a:767) at org.apache.jsp.index_jsp._jspService(org.apache.jsp.index_jsp:51) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:93) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper .java:373) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:4 77) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:371) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
-
22. Re: becoming involved with the richFaces/a4j project
fmarwede Mar 5, 2009 3:08 AM (in response to zmarrapese)Let me add: This exception was copied from jetty console. I tried the same with inputNumberSpinner, got the same error. This time I post from eclipse tomcat console:
SCHWERWIEGEND: Error configuring application listener of class com.sun.faces.config.ConfigureListener java.lang.NoClassDefFoundError: javax/el/CompositeELResolver at java.lang.Class.getDeclaredConstructors0(Native Method) at java.lang.Class.privateGetDeclaredConstructors(Unknown Source) at java.lang.Class.getConstructor0(Unknown Source) at java.lang.Class.newInstance0(Unknown Source) at java.lang.Class.newInstance(Unknown Source) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3713) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4216) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014) at org.apache.catalina.core.StandardHost.start(StandardHost.java:736) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) at org.apache.catalina.core.StandardService.start(StandardService.java:448) at org.apache.catalina.core.StandardServer.start(StandardServer.java:700) at org.apache.catalina.startup.Catalina.start(Catalina.java:552) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)
Tried to google this thing, but no solution in sight. I can't even say if it is only a simple case of anot found library or something else... -
23. Re: becoming involved with the richFaces/a4j project
nbelaevski Mar 5, 2009 6:09 AM (in response to zmarrapese)"fmarwede" wrote:
You can do the following:
mvn clean package and run the built WAR under Tomcat
mvn clean jetty:run and navigate to localhost:8080
Import project into IDE, deploy to server from there and launch the server.
Sorry, next question: With all three possibilities I got an exception like this...looks like a library is not found. How is that possible?2009-03-05 07:32:54.488::WARN: /dragDropDemo/ com.sun.faces.mgbean.ManagedBeanCreationException: Unable to create managed bean bean. The following problems were found: - Bean or property class org.richfaces.Bean for managed bean bean cannot be found. at com.sun.faces.mgbean.BeanManager.create(BeanManager.java:204) at com.sun.faces.el.ManagedBeanELResolver.getValue(ManagedBeanELResolver .java:86) at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:143) at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELRe solver.java:72) at com.sun.el.parser.AstIdentifier.getValue(AstIdentifier.java:86) at com.sun.el.parser.AstValue.getValue(AstValue.java:127) at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:206) at javax.faces.component.UIOutput.getValue(UIOutput.java:184) at com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getValue(Ht mlBasicInputRenderer.java:201) at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getCurrentValue( HtmlBasicRenderer.java:284) at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd(HtmlBa sicRenderer.java:154) at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java: 861) at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive( HtmlBasicRenderer.java:242) at com.sun.faces.renderkit.html_basic.GroupRenderer.encodeChildren(Group Renderer.java:106) at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase. java:837) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:930) at javax.faces.render.Renderer.encodeChildren(Renderer.java:148) at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase. java:837) at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive( HtmlBasicRenderer.java:234) at com.sun.faces.renderkit.html_basic.GridRenderer.renderRow(GridRendere r.java:180) at com.sun.faces.renderkit.html_basic.GridRenderer.encodeChildren(GridRe nderer.java:127) at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase. java:837) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:930) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:933) at com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImp l.java:266) at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl. java:197) at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWra pper.java:100) at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.j ava:176) at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePha se.java:110) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100) at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487 ) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(Servlet Handler.java:1093) at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178) at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290) at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFil ter.java:364) at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:491) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(Servlet Handler.java:1084) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:3 60) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.jav a:216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:1 81) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:7 12) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405) at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:268) at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126) at org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.jav a:767) at org.apache.jsp.index_jsp._jspService(org.apache.jsp.index_jsp:51) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:93) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper .java:373) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:4 77) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:371) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
Possible if parallel build was running in Eclipse; I think it cleared target folder, but was not able to compile the file. -
24. Re: becoming involved with the richFaces/a4j project
nbelaevski Mar 5, 2009 6:13 AM (in response to zmarrapese)"fmarwede" wrote:
Let me add: This exception was copied from jetty console. I tried the same with inputNumberSpinner, got the same error. This time I post from eclipse tomcat console:SCHWERWIEGEND: Error configuring application listener of class com.sun.faces.config.ConfigureListener java.lang.NoClassDefFoundError: javax/el/CompositeELResolver at java.lang.Class.getDeclaredConstructors0(Native Method) at java.lang.Class.privateGetDeclaredConstructors(Unknown Source) at java.lang.Class.getConstructor0(Unknown Source) at java.lang.Class.newInstance0(Unknown Source) at java.lang.Class.newInstance(Unknown Source) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3713) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4216) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014) at org.apache.catalina.core.StandardHost.start(StandardHost.java:736) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) at org.apache.catalina.core.StandardService.start(StandardService.java:448) at org.apache.catalina.core.StandardServer.start(StandardServer.java:700) at org.apache.catalina.startup.Catalina.start(Catalina.java:552) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)
Tried to google this thing, but no solution in sight. I can't even say if it is only a simple case of anot found library or something else...
Tomcat should be 6.0, because examples are mostly JSP-based and we use JSF 1.2. Please clarify what is your Tomcat version. -
25. Re: becoming involved with the richFaces/a4j project
fmarwede Mar 5, 2009 1:45 PM (in response to zmarrapese)
Possible if parallel build was running in Eclipse; I think it cleared target folder, but was not able to compile the file.
Okay, i'll check this.
Tomcat should be 6.0, because examples are mostly JSP-based and we use JSF 1.2. Please clarify what is your Tomcat version.
Yes. That was it!
Again thank you very much for your help to start up...after digging me in a few days I think I'll start with some of the easiest things like this:
https://jira.jboss.org/jira/browse/RF-4104
https://jira.jboss.org/jira/browse/RF-5966
https://jira.jboss.org/jira/browse/RF-1404
I don't think you need me to handle them but when I'll have resolved them I'll let you know, may be there is some more serious stuff to do for me. -
26. Re: becoming involved with the richFaces/a4j project
nbelaevski Mar 5, 2009 5:55 PM (in response to zmarrapese)Great! Please feel free to ask if you get some more questions.
-
27. Re: becoming involved with the richFaces/a4j project
tnt9062 Mar 12, 2009 12:58 PM (in response to zmarrapese)I am also tried to compile source, all steps are done (thx for posters in this topic), but have some questions:
after import JIRA-DATA project its needed commons-beanutils-1.8, but in maven depends i see only commons-beanutils-1.7.
How to change this dependence to 1.8 ? -
28. Re: becoming involved with the richFaces/a4j project
nbelaevski Mar 12, 2009 1:45 PM (in response to zmarrapese)Hello,
1.8 is located in JBoss repository: http://repository.jboss.org/maven2/commons-digester/commons-digester/ -
29. Re: becoming involved with the richFaces/a4j project
tnt9062 Mar 12, 2009 3:22 PM (in response to zmarrapese)thx !
i created simple app and set depends for it.
For scrollableDataTable app depends:
dataTable,
richfaces-api,
richfaces-test,
richfaces-impl,
core,
scrollableDataTable.
But still have jsp errorCannot find the tag library descriptor for "http://richfaces.org/rich" in line <%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>