Please bear with me as this may be long. I am trying to be as thorough as possible. I have upgraded my development environment and projects to use Geronimo 2.2. I was able to successfully replace the 2.1 server with the 2.2 server in my development environment. Everything compiled and went smooth from that standpoint (Good job guys). When trying to run unit tests from an outside client, errors started to appear. This was to be expected because I was still using the openejb-client-3.0.1 assembly. When I updated the assembly to openejb-client-3.1.2, everything worked as expected (once again, great job). By updating this, I was certain that the Geronimo 2.2 tool was using the EJB 3.1 specification.
I then proceeded to try to use some of the new EJB 3.1 features. More specifically, the Singleton. I changed one of the annotations for my EJBs to Singleton and immediately got an error. I then checked the classpath to make sure I was pointing to the correct Geronimo installation. I was. In viewing the library assemblies in my project, I did not see anything that looked like a EJB 3.1 assembly underneath the Apache Geronimo 2.2 library. The only assembly that I found is titled: geronimo-ejb_3.0_spec-1.0.1.jar. I went to that assembly and opened up the jar file. I did see implementation classes for Stateful and Stateless but I did not see one for Singleton as I had expected. I do not know if this is a GEP issue or a Geronimo Server issue. In summary, it appears that the running server is using EJB 3.1 but when referencing the library during development time, it is only using the 3.0 specification. Can someone help me out with this?
Sr. Software Engineer
McLane Advanced Technology
"Do or do not, there is no try." - Yoda