I upgrade to Seam 3.1 on Jboss AS 7.0.2:
- Persistence - Beta4
- Faces Beta4
- Catch Beta2
I had a few problems:
Seam-catch uses Solder Beta2 which conflicts with Solder Beta3 used by faces and persistence. I had to remove seam-catch from my project and any referencing code. Not a big deal while the project is the development stage.
Seam international was bundled as a dependency of seam-faces. In order to inject Messages the seam-international dependency must be included in the pom.
The transaction interceptor has gone and it is not clear what replaces it. After removing the TransactionInterceptor from beans.xml I get the following error:
Caused by: java.lang.NullPointerException at org.jboss.seam.persistence.ManagedPersistenceContextProxyHandler.joinTransaction(ManagedPersistenceContextProxyHandler.java:113) [seam-persistence-3.1.0.Beta4.jar:] at org.jboss.seam.persistence.ManagedPersistenceContextProxyHandler.invoke(ManagedPersistenceContextProxyHandler.java:102) [seam-persistence-3.1.0.Beta4.jar:] at $Proxy153.createQuery(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [:1.6.0_20] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [:1.6.0_20] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [:1.6.0_20] at java.lang.reflect.Method.invoke(Method.java:616) [:1.6.0_20] at org.jboss.weld.bean.proxy.AbstractBeanInstance.invoke(AbstractBeanInstance.java:48) [weld-core-1.1.2.Final.jar:2011-07-26 15:02] at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:125) [weld-core-1.1.2.Final.jar:2011-07-26 15:02] at org.jboss.weld.proxies.EntityManager$ManagedPersistenceContext$-1172270449$Proxy$_$$_WeldClientProxy.createQuery(EntityManager$ManagedPersistenceContext$-1172270449$Proxy$_$$_WeldClientProxy.java) [weld-core-1.1.2.Final.jar:]
The ManagedPersistenceContextProxyHandler cannot lookup the SeamTransaction. This was because once again I had to explicitly include a dependency in my pom for seam-transaction. I'm not sure why when seam-persistence has an obvious dependency?. A bit of error handling around this case wouldn't go amiss either.
I've probably said this before but without documentation I'm groping in the dark on how to use new features. Seam is being developed nice and agile, but I can't test it if I don't know how it works. In the broad sense - think of everyone as a newbie. If every feature was documented in a user manual before it was coded with examples I could get a grasp of how it works (and configured!). The document would also serve as a discussion point to validate APIs and give people a heads up with what the future holds.
On a positive note I'd like to thank the seam team for the hard work they do and the great product they've made! Keep up the good work guys!