-
1. Re: Seam 1.1 beta 1
pmuir Oct 24, 2006 1:22 PM (in response to gavin.king)I'm looking forward to trying this all out!
-
2. Re: Seam 1.1 beta 1
rdewell Oct 24, 2006 2:49 PM (in response to gavin.king)This sounds fantastic.
Quick question: is there any specific / known incompatibility with 4.0.4GA, or is 4.0.5 an actual requirement? -
3. Re: Seam 1.1 beta 1
gavin.king Oct 24, 2006 3:16 PM (in response to gavin.king)I believe it will work on 4.0.4, with the usual adjustment for the MyFaces bug.
-
4. Re: Seam 1.1 beta 1
gavin.king Oct 24, 2006 6:39 PM (in response to gavin.king)Migration guide:
==========
The renderParameters component was removed, use Seam page parameters
Some functionality no longer works out-of-the-box for JPA implementations other than Hibernate. Either switch to Hibernate, or implement a PersistenceProvider for your JPA implementation. (In future we will provide PersistenceProvider implementations for popular JPA solutions.)
Default scoping rules of @Out and @Factory have changed, to be better and more consistent, you may need to add an explicit scope in some rare cases.
Checked exceptions thrown by JavaBean component now no longer roll back transactions, use an unchecked exception, or annotate with @ApplicationException(rollback=true)
@Intercept(ALWAYS) is now the default
The org.jboss.seam.core.hibernate built-in component has been removed, so:<component name="org.jboss.seam.core.hibernate"/>
is no long supported, use<component name="hibernate" class="org.jboss.seam.core.HibernateSessionFactory"/>
Known issues:
=========
UPDATE: The registration and numberguess examples have a broken JSPX syntax which does not compile in JBoss 4.0.5! This is fixed in CVS.
Ajax4JSF is not compatible with the JBoss 4.0.5 portal profile, so if you want to run the booking demo, install JBoss with the ejb3 profile.
Portlet resize forgets the JSF view id (old bug).
MyFaces 1.1.4 portal support is broken (in JBoss 4.0.5 portal profile), the workaround will be documented in the FAQ. -
5. Re: Seam 1.1 beta 1
andyd Oct 24, 2006 7:03 PM (in response to gavin.king)Gavin,
Just to clarify, are you saying that we will not currently be able to use Ajax4JSF support with Portal on JBoss4.0.5? -
6. Re: Seam 1.1 beta 1
gavin.king Oct 24, 2006 7:09 PM (in response to gavin.king)That is my understanding of the situation today. However, there may be some workaround, and we should try to work with the Ajax4JSF and JBoss portal guys to get this issue resolved. I have not yet alerted either side to the problem.
-
7. Re: Seam 1.1 beta 1
andyd Oct 24, 2006 7:17 PM (in response to gavin.king)Ok thanks - happens to be what I'm trying at the moment. I have your booking example in the midst of being converted to a portlet with ear deployment. To me it seems currently that the problem may tie up with the StartupServletContextListener exception that is thrown when MyFaces sees it is not included in the config, but I may be wrong - lots of config to check through.
Incidentally, The Portal guys are using a different ajax framework for Portal v2.6 developement. I hope the to will cohabit ok.
Andy. -
8. Re: Seam 1.1 beta 1
andyd Oct 24, 2006 9:29 PM (in response to gavin.king)
I may be wrong, but this so looks like a classloader issue to me. I've tried putting myfaces and dependency jars into my EAR, but no difference.
Code from FactoryFinder (MyFaces 1.1.5 -- assuming simlar code here) and log below. It would seem that there is no Map of factoryClassNames at the classloader key.
Enough for tonite, I guess.
Andy.
public static Object getFactory(String factoryName)
throws FacesException
{
if(factoryName == null)
throw new NullPointerException("factoryName may not be null");
ClassLoader classLoader = getClassLoader();
Map factoryClassNames = (Map) _registeredFactoryNames.get(classLoader);
if (factoryClassNames == null)
{
String message = "No Factories configured for this Application. This happens if the faces-initialization "+
"does not work at all - make sure that you properly include all configuration settings necessary for a basic faces application " +
"and that all the necessary libs are included. Also check the logging output of your web application and your container for any exceptions!" +
"\nIf you did that and find nothing, the mistake might be due to the fact that you use some special web-containers which "+
"do not support registering context-listeners via TLD files and " +
"a context listener is not setup in your web.xml.\n" +
"A typical config looks like this;\n\n" +
" <listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class>\n" +
"\n";
throw new IllegalStateException(message);
...........................
2006-10-25 02:06:11,843 INFO [org.jboss.seam.Component] Component: login, scope: STATELESS, type: STATELESS_SESSION_BEAN, class: org.jboss.seam.example.booking.LoginAction, JNDI: LoginAction/local
2006-10-25 02:06:11,853 DEBUG [org.jboss.seam.Component] interceptor stack: [Interceptor(org.jboss.seam.interceptors.RemoveInterceptor), Interceptor(org.jboss.seam.interceptors.EventInterceptor), Interceptor(org.jboss.seam.interceptors.ConversationalInterceptor), Interceptor(org.jboss.seam.interceptors.BusinessProcessInterceptor), Interceptor(org.jboss.seam.interceptors.ConversationInterceptor), Interceptor(org.jboss.seam.interceptors.BijectionInterceptor), Interceptor(org.jboss.seam.interceptors.RollbackInterceptor), Interceptor(org.jboss.seam.interceptors.OutcomeInterceptor), Interceptor(org.jboss.seam.interceptors.ValidationInterceptor)]
2006-10-25 02:06:11,853 INFO [org.jboss.seam.Component] Component: hotelSearch, scope: SESSION, type: STATEFUL_SESSION_BEAN, class: org.jboss.seam.example.booking.HotelSearchingAction, JNDI: HotelSearchingAction/local
2006-10-25 02:06:11,903 DEBUG [org.jboss.seam.Component] interceptor stack: [Interceptor(org.jboss.seam.interceptors.RemoveInterceptor), Interceptor(org.jboss.seam.interceptors.EventInterceptor), Interceptor(org.jboss.seam.interceptors.ConversationalInterceptor), Interceptor(org.jboss.seam.interceptors.RollbackInterceptor), Interceptor(org.jboss.seam.interceptors.ManagedEntityIdentityInterceptor), Interceptor(org.jboss.seam.example.booking.LoggedInInterceptor), Interceptor(org.jboss.seam.interceptors.BusinessProcessInterceptor), Interceptor(org.jboss.seam.interceptors.ConversationInterceptor), Interceptor(org.jboss.seam.interceptors.OutcomeInterceptor), Interceptor(org.jboss.seam.interceptors.BijectionInterceptor), Interceptor(org.jboss.seam.interceptors.ValidationInterceptor)]
2006-10-25 02:06:11,903 INFO [org.jboss.seam.Component] Component: bookingList, scope: SESSION, type: STATEFUL_SESSION_BEAN, class: org.jboss.seam.example.booking.BookingListAction, JNDI: BookingListAction/local
2006-10-25 02:06:11,943 DEBUG [org.jboss.seam.Component] interceptor stack: [Interceptor(org.jboss.seam.interceptors.RemoveInterceptor), Interceptor(org.jboss.seam.interceptors.EventInterceptor), Interceptor(org.jboss.seam.interceptors.ConversationalInterceptor), Interceptor(org.jboss.seam.interceptors.RollbackInterceptor), Interceptor(org.jboss.seam.interceptors.ManagedEntityIdentityInterceptor), Interceptor(org.jboss.seam.example.booking.LoggedInInterceptor), Interceptor(org.jboss.seam.interceptors.BusinessProcessInterceptor), Interceptor(org.jboss.seam.interceptors.ConversationInterceptor), Interceptor(org.jboss.seam.interceptors.OutcomeInterceptor), Interceptor(org.jboss.seam.interceptors.BijectionInterceptor), Interceptor(org.jboss.seam.interceptors.ValidationInterceptor)]
2006-10-25 02:06:11,943 INFO [org.jboss.seam.Component] Component: hotel, scope: CONVERSATION, type: ENTITY_BEAN, class: org.jboss.seam.example.booking.Hotel
2006-10-25 02:06:11,953 INFO [org.jboss.seam.contexts.Lifecycle] starting up: isUserInRole
2006-10-25 02:06:11,953 DEBUG [org.jboss.seam.Component] instantiating Seam component: isUserInRole
2006-10-25 02:06:11,953 DEBUG [org.jboss.seam.Component] initializing new instance of: isUserInRole
2006-10-25 02:06:11,953 INFO [org.jboss.seam.contexts.Lifecycle] starting up: conversationContext
2006-10-25 02:06:11,953 DEBUG [org.jboss.seam.Component] instantiating Seam component: conversationContext
2006-10-25 02:06:11,953 DEBUG [org.jboss.seam.Component] initializing new instance of: conversationContext
2006-10-25 02:06:11,953 INFO [org.jboss.seam.contexts.Lifecycle] starting up: applicationContext
2006-10-25 02:06:11,953 DEBUG [org.jboss.seam.Component] instantiating Seam component: applicationContext
2006-10-25 02:06:11,953 DEBUG [org.jboss.seam.Component] initializing new instance of: applicationContext
2006-10-25 02:06:11,953 INFO [org.jboss.seam.contexts.Lifecycle] starting up: userPrincipal
2006-10-25 02:06:11,963 DEBUG [org.jboss.seam.Component] instantiating Seam component: userPrincipal
2006-10-25 02:06:11,963 DEBUG [org.jboss.seam.Component] initializing new instance of: userPrincipal
2006-10-25 02:06:11,963 INFO [org.jboss.seam.contexts.Lifecycle] starting up: sessionContext
2006-10-25 02:06:11,963 DEBUG [org.jboss.seam.Component] instantiating Seam component: sessionContext
2006-10-25 02:06:11,963 DEBUG [org.jboss.seam.Component] initializing new instance of: sessionContext
2006-10-25 02:06:11,963 INFO [org.jboss.seam.contexts.Lifecycle] starting up: facesContext
2006-10-25 02:06:11,963 DEBUG [org.jboss.seam.Component] instantiating Seam component: facesContext
2006-10-25 02:06:11,963 DEBUG [org.jboss.seam.Component] initializing new instance of: facesContext
2006-10-25 02:06:11,963 INFO [org.jboss.seam.contexts.Lifecycle] starting up: businessProcessContext
2006-10-25 02:06:11,963 DEBUG [org.jboss.seam.Component] instantiating Seam component: businessProcessContext
2006-10-25 02:06:11,963 DEBUG [org.jboss.seam.Component] initializing new instance of: businessProcessContext
2006-10-25 02:06:11,963 INFO [org.jboss.seam.contexts.Lifecycle] starting up: eventContext
2006-10-25 02:06:11,973 DEBUG [org.jboss.seam.Component] instantiating Seam component: eventContext
2006-10-25 02:06:11,973 DEBUG [org.jboss.seam.Component] initializing new instance of: eventContext
2006-10-25 02:06:11,973 INFO [org.jboss.seam.contexts.Lifecycle] starting up: expressions
2006-10-25 02:06:11,973 DEBUG [org.jboss.seam.Component] instantiating Seam component: expressions
2006-10-25 02:06:11,973 DEBUG [org.jboss.seam.Component] initializing new instance of: expressions
2006-10-25 02:06:11,973 INFO [org.jboss.seam.contexts.Lifecycle] starting up: pageContext
2006-10-25 02:06:11,973 DEBUG [org.jboss.seam.Component] instantiating Seam component: pageContext
2006-10-25 02:06:11,973 DEBUG [org.jboss.seam.Component] initializing new instance of: pageContext
2006-10-25 02:06:11,973 INFO [org.jboss.seam.init.Initialization] done initializing Seam
2006-10-25 02:06:11,983 DEBUG [org.jboss.mx.loading.RepositoryClassLoader] setRepository, repository=org.jboss.mx.loading.HeirarchicalLoaderRepository3@1382988, cl=org.jboss.mx.loading.HeirarchicalLoaderRepository3$CacheClassLoader@830624{ url=null ,addedOrder=0}
2006-10-25 02:06:11,993 DEBUG [org.jboss.mx.loading.RepositoryClassLoader] setRepository, repository=org.jboss.mx.loading.HeirarchicalLoaderRepository3@1382988, cl=org.jboss.mx.loading.HeirarchicalLoaderRepository3$CacheClassLoader@86558{ url=null ,addedOrder=0}
2006-10-25 02:06:12,003 DEBUG [org.jboss.mx.loading.RepositoryClassLoader] setRepository, repository=org.jboss.mx.loading.HeirarchicalLoaderRepository3@1382988, cl=org.jboss.mx.loading.HeirarchicalLoaderRepository3$CacheClassLoader@135b50c{ url=null ,addedOrder=0}
2006-10-25 02:06:12,003 DEBUG [org.jboss.mx.loading.RepositoryClassLoader] setRepository, repository=org.jboss.mx.loading.HeirarchicalLoaderRepository3@1382988, cl=org.jboss.mx.loading.HeirarchicalLoaderRepository3$CacheClassLoader@1015495{ url=null ,addedOrder=0}
2006-10-25 02:06:12,013 DEBUG [org.jboss.web.tomcat.filters.ReplyHeaderFilter] Adding header name: X-Powered-By='Servlet 2.4; JBoss-4.0.5.GA (build: CVSTag=Branch_4_0 date=200610162339)/Tomcat-5.5'
2006-10-25 02:06:12,013 DEBUG [org.jboss.mx.loading.RepositoryClassLoader] setRepository, repository=org.jboss.mx.loading.HeirarchicalLoaderRepository3@1382988, cl=org.jboss.mx.loading.HeirarchicalLoaderRepository3$CacheClassLoader@126d235{ url=null ,addedOrder=0}
2006-10-25 02:06:12,073 DEBUG [org.jboss.mx.loading.RepositoryClassLoader] setRepository, repository=org.jboss.mx.loading.HeirarchicalLoaderRepository3@1382988, cl=org.jboss.mx.loading.HeirarchicalLoaderRepository3$CacheClassLoader@a0ee03{ url=null ,addedOrder=0}
2006-10-25 02:06:12,103 DEBUG [org.jboss.mx.loading.RepositoryClassLoader] setRepository, repository=org.jboss.mx.loading.HeirarchicalLoaderRepository3@1382988, cl=org.jboss.mx.loading.HeirarchicalLoaderRepository3$CacheClassLoader@e3f8b9{ url=null ,addedOrder=0}
2006-10-25 02:06:12,103 DEBUG [org.jboss.mx.loading.RepositoryClassLoader] setRepository, repository=org.jboss.mx.loading.HeirarchicalLoaderRepository3@1382988, cl=org.jboss.mx.loading.HeirarchicalLoaderRepository3$CacheClassLoader@1e2d159{ url=null ,addedOrder=0}
2006-10-25 02:06:12,133 DEBUG [org.jboss.mx.loading.RepositoryClassLoader] setRepository, repository=org.jboss.mx.loading.HeirarchicalLoaderRepository3@1382988, cl=org.jboss.mx.loading.HeirarchicalLoaderRepository3$CacheClassLoader@b4bb65{ url=null ,addedOrder=0}
2006-10-25 02:06:12,133 DEBUG [org.jboss.mx.loading.RepositoryClassLoader] setRepository, repository=org.jboss.mx.loading.HeirarchicalLoaderRepository3@1382988, cl=org.jboss.mx.loading.HeirarchicalLoaderRepository3$CacheClassLoader@17b1683{ url=null ,addedOrder=0}
2006-10-25 02:06:12,133 DEBUG [org.jboss.mx.loading.RepositoryClassLoader] setRepository, repository=org.jboss.mx.loading.HeirarchicalLoaderRepository3@1382988, cl=org.jboss.mx.loading.HeirarchicalLoaderRepository3$CacheClassLoader@3171e{ url=null ,addedOrder=0}
2006-10-25 02:06:12,133 DEBUG [org.jboss.mx.loading.RepositoryClassLoader] setRepository, repository=org.jboss.mx.loading.HeirarchicalLoaderRepository3@1382988, cl=org.jboss.mx.loading.HeirarchicalLoaderRepository3$CacheClassLoader@e2e4d7{ url=null ,addedOrder=0}
2006-10-25 02:06:12,133 DEBUG [org.jboss.mx.loading.RepositoryClassLoader] setRepository, repository=org.jboss.mx.loading.HeirarchicalLoaderRepository3@1382988, cl=org.jboss.mx.loading.HeirarchicalLoaderRepository3$CacheClassLoader@1dfc6e{ url=null ,addedOrder=0}
2006-10-25 02:06:12,184 DEBUG [org.jboss.mx.loading.RepositoryClassLoader] setRepository, repository=org.jboss.mx.loading.HeirarchicalLoaderRepository3@1382988, cl=org.jboss.mx.loading.HeirarchicalLoaderRepository3$CacheClassLoader@140727a{ url=null ,addedOrder=0}
2006-10-25 02:06:12,194 DEBUG [org.jboss.mx.loading.RepositoryClassLoader] setRepository, repository=org.jboss.mx.loading.HeirarchicalLoaderRepository3@1382988, cl=org.jboss.mx.loading.HeirarchicalLoaderRepository3$CacheClassLoader@1bd871{ url=null ,addedOrder=0}
2006-10-25 02:06:12,194 DEBUG [org.jboss.mx.loading.RepositoryClassLoader] setRepository, repository=org.jboss.mx.loading.HeirarchicalLoaderRepository3@1382988, cl=org.jboss.mx.loading.HeirarchicalLoaderRepository3$CacheClassLoader@1ba0609{ url=null ,addedOrder=0}
2006-10-25 02:06:12,194 DEBUG [org.jboss.mx.loading.RepositoryClassLoader] setRepository, repository=org.jboss.mx.loading.HeirarchicalLoaderRepository3@1382988, cl=org.jboss.mx.loading.HeirarchicalLoaderRepository3$CacheClassLoader@1e26e12{ url=null ,addedOrder=0}
2006-10-25 02:06:12,204 DEBUG [org.jboss.mx.loading.RepositoryClassLoader] setRepository, repository=org.jboss.mx.loading.HeirarchicalLoaderRepository3@1382988, cl=org.jboss.mx.loading.HeirarchicalLoaderRepository3$CacheClassLoader@a893ff{ url=null ,addedOrder=0}
2006-10-25 02:06:12,204 DEBUG [org.jboss.mx.loading.RepositoryClassLoader] setRepository, repository=org.jboss.mx.loading.HeirarchicalLoaderRepository3@1382988, cl=org.jboss.mx.loading.HeirarchicalLoaderRepository3$CacheClassLoader@18c862e{ url=null ,addedOrder=0}
2006-10-25 02:06:12,204 DEBUG [org.jboss.mx.loading.RepositoryClassLoader] setRepository, repository=org.jboss.mx.loading.HeirarchicalLoaderRepository3@1382988, cl=org.jboss.mx.loading.HeirarchicalLoaderRepository3$CacheClassLoader@bd6b1e{ url=null ,addedOrder=0}
2006-10-25 02:06:12,204 DEBUG [org.jboss.mx.loading.RepositoryClassLoader] setRepository, repository=org.jboss.mx.loading.HeirarchicalLoaderRepository3@1382988, cl=org.jboss.mx.loading.HeirarchicalLoaderRepository3$CacheClassLoader@1c39cb2{ url=null ,addedOrder=0}
2006-10-25 02:06:12,214 DEBUG [org.jboss.mx.loading.RepositoryClassLoader] setRepository, repository=org.jboss.mx.loading.HeirarchicalLoaderRepository3@1382988, cl=org.jboss.mx.loading.HeirarchicalLoaderRepository3$CacheClassLoader@164a05d{ url=null ,addedOrder=0}
2006-10-25 02:06:12,214 DEBUG [org.jboss.mx.loading.RepositoryClassLoader] setRepository, repository=org.jboss.mx.loading.HeirarchicalLoaderRepository3@1382988, cl=org.jboss.mx.loading.HeirarchicalLoaderRepository3$CacheClassLoader@15c4ee6{ url=null ,addedOrder=0}
2006-10-25 02:06:12,224 DEBUG [org.jboss.mx.loading.RepositoryClassLoader] setRepository, repository=org.jboss.mx.loading.HeirarchicalLoaderRepository3@1382988, cl=org.jboss.mx.loading.HeirarchicalLoaderRepository3$CacheClassLoader@13fe4e4{ url=null ,addedOrder=0}
2006-10-25 02:06:12,224 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/SeamBookingPortletWeb]] Exception starting filter ajax4jsf
java.lang.IllegalStateException: No Factories configured for this Application. This happens if the faces-initialization does not work at all - make sure that you properly include all configuration settings necessary for a basic faces application and that all the necessary libs are included. Also check the logging output of your web application and your container for any exceptions!
If you did that and find nothing, the mistake might be due to the fact that you use some special web-containers which do not support registering context-listeners via TLD files and a context listener is not setup in your web.xml.
A typical config looks like this;
<listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class>
at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:90)
at org.ajax4jsf.framework.resource.InternetResourceService.init(InternetResourceService.java:58)
at org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.init(BaseFilter.java:121)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:223)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:304)
at org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:77)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3634)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4217)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:759)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739).................. -
9. Re: Seam 1.1 beta 1
mzeijen Oct 25, 2006 6:00 AM (in response to gavin.king)Congratulations with the release of the beta. Hopefully I have some time soon to try it out :D.
Is the documentation also updated? -
10. Re: Seam 1.1 beta 1
d1g Oct 25, 2006 8:47 AM (in response to gavin.king)You mention "The Seam Application Framework for data-oriented applications" in the new features. Can you elaborate?
Well done btw.
Dig. -
11. Re: Seam 1.1 beta 1
cja987 Oct 25, 2006 10:42 AM (in response to gavin.king)Check out the contactlist example, which uses the framework. It's also in the documentation. From what I can see, It's basically Generic DAO components, though I'm also curious what else might come under the umbrella of the framework.
I've been using it to build an internal app for my workplace, In the current state of the framework, I end up subclassing EntityHome to support first-edit-wins concurrency control, and additionally I need to sprinkle a lot of conversation propogation parameters around, since I make the edit screen start a conversation. Still hardly any code at all to write (I only needed one method to catch OptimisticLockException in edits), so while calling it an "Application Framework" is a little bit ambitious this early on (all it does is CRUD), it's got quite a nice start. -
12. Re: Seam 1.1 beta 1
gavin.king Oct 25, 2006 11:29 AM (in response to gavin.king)The docs have been updated in the dist, but not yet uploaded to docs.jboss.org.
-
13. Re: Seam 1.1 beta 1
gavin.king Oct 25, 2006 11:43 AM (in response to gavin.king)What is there today is perhaps less than a full "application framework", but (a) it will grow, and (b) combined with the rest of Seam, it is pretty powerful ;-)
-
14. Re: Seam 1.1 beta 1
gavin.king Oct 25, 2006 11:43 AM (in response to gavin.king)By the way, a page of the documentation covers this stuff.