1 2 3 4 Previous Next 55 Replies Latest reply on Nov 7, 2006 7:17 PM by Bret Patterson

    Seam 1.1 beta 1

    Gavin King Master

      The first beta release of Seam 1.1 is now available for download:

      https://sourceforge.net/project/showfiles.php?group_id=22866&package_id=163777

      Major new features include:

      * The Seam Application Framework for data-oriented applications
      * Asynchronous methods and events
      * Integration of Ajax4JSF for partial page refresh
      * New concurrency model for Ajax-based applications
      * Efficient clustering of Seam-managed extended persistence contexts and JavaBean components
      * Support for atomic conversations
      * Enhanced configuration via components.xml
      * Exception handling via annotations or exceptions.xml
      * Page parameters for RESTful applications
      * Page fragment caching via <s:cache/>
      * "Decoration" of invalid input via <s:decorate/>
      * Themes
      * Support for the Sun JSF 1.2 reference implementation

      Seam 1.1.BETA1 is compatible with JBoss 4.0.5.GA and JBoss Embeddable EJB3 alpha 8. It is also compatible with GlassFish, the Java EE 5 reference implementation.


        • 1. Re: Seam 1.1 beta 1
          Pete Muir Master

          I'm looking forward to trying this all out!

          • 2. Re: Seam 1.1 beta 1
            ryan dewell Novice

            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 Master

              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 Master

                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
                  Andy Dennis Newbie

                  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 Master

                    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
                      Andy Dennis Newbie

                      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
                        Andy Dennis Newbie


                        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
                          Maurice Zeijen Master

                          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 Newbie

                            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
                              Chuck Adams Novice

                              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 Master

                                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 Master

                                  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 Master

                                    By the way, a page of the documentation covers this stuff.

                                    1 2 3 4 Previous Next