6 Replies Latest reply on Nov 27, 2007 3:57 PM by Andrew Rubinger

    Need to update PoolClass usage

    Scott Stark Master

      I'm seeing some errors related to the old PoolCalss annotation:

      Caused by: java.lang.RuntimeException: Unable to load class for annotation: org.jboss.annotation.ejb.PoolClass
       at org.jboss.ejb3.AnnotationRepositoryToMetaData.loadClass(AnnotationRepositoryToMetaData.java:190)
       at org.jboss.ejb3.AnnotationRepositoryToMetaData.hasClassAnnotation(AnnotationRepositoryToMetaData.java:287)
       at org.jboss.ejb3.EJBContainer.hasAnnotation(EJBContainer.java:1030)
       at org.jboss.aop.pointcut.Util.matchesClassExpr(Util.java:115)
       ... 89 more
      


      Not sure what is out of sync, my workspace seems to be up to date.


        • 1. Re: Need to update PoolClass usage
          Adrian Brock Master

          I still see references to it in the docs and tests,
          but not in the main code or thirdparty.

          [ejort@warjort ejb3]$ grep -ri PoolClass * | grep -v svn
          Binary file docs/examples/xpetstore/lib/main/javax.j2ee/jboss-annotations-ejb3.jar matches
          docs/reference/reference/en/modules/session.xml: @org.jboss.annotation.ejb.PoolClass annotation.
          docs/reference/reference/en/modules/session.xml: public @interface PoolClass
          docs/reference/reference/en/modules/session.xml: @PoolClass (value=org.jboss.ejb3.StrictMaxPool.class, maxSize=5, timeout=10000)
          docs/reference/reference/en/modules/session.xml: <annotation expr="!class(@org.jboss.annotation.ejb.PoolClass)">
          docs/reference/reference/en/modules/session.xml: @org.jboss.annotation.ejb.PoolClass (value=org.jboss.ejb3.StrictMaxPool.class, maxSize=5, timeout=10000)
          docs/reference/reference/en/modules/session.xml: <annotation expr="!class(@org.jboss.annotation.ejb.PoolClass)">
          docs/reference/reference/en/modules/session.xml: @org.jboss.annotation.ejb.PoolClass (value=org.jboss.ejb3.StrictMaxPool.class, maxSize=5, timeout=10000)
          docs/tutorial/mdb/custom-ejb3-interceptors-aop.xml: <annotation expr="!class(@org.jboss.annotation.ejb.PoolClass)">
          docs/tutorial/mdb/custom-ejb3-interceptors-aop.xml: @org.jboss.annotation.ejb.PoolClass (value=org.jboss.ejb3.StrictMaxPool.class, maxSize=15, timeout=10000)
          Binary file output/eclipse-classes/org/jboss/annotation/ejb/PoolImpl.class matches
          Binary file output/classes/org/jboss/annotation/ejb/PoolImpl.class matches
          src/resources/test/strictpool/META-INF/jboss.xml: <annotation-class>org.jboss.annotation.ejb.PoolClass</annotation-class>
          src/resources/test/strictpool/META-INF/jboss.xml: <annotation-implementation-class>org.jboss.annotation.ejb.PoolClassImpl</annotation-implementation-class>
          src/resources/test-configs/removedislocal/deploy/ejb3-interceptors-aop.xml: <annotation expr="!class(@org.jboss.annotation.ejb.PoolClass)">
          src/resources/test-configs/removedislocal/deploy/ejb3-interceptors-aop.xml: @org.jboss.annotation.ejb.PoolClass (value=org.jboss.ejb3.ThreadlocalPool.class, maxSize=30, timeout=10000)
          src/resources/test-configs/removedislocal/deploy/ejb3-interceptors-aop.xml: <annotation expr="!class(@org.jboss.annotation.ejb.PoolClass)">
          src/resources/test-configs/removedislocal/deploy/ejb3-interceptors-aop.xml: @org.jboss.annotation.ejb.PoolClass (value=org.jboss.ejb3.ThreadlocalPool.class, maxSize=30, timeout=10000)
          src/resources/test-configs/removedislocal/deploy/ejb3-interceptors-aop.xml: <annotation expr="!class(@org.jboss.annotation.ejb.PoolClass)">
          src/resources/test-configs/removedislocal/deploy/ejb3-interceptors-aop.xml: @org.jboss.annotation.ejb.PoolClass (value=org.jboss.ejb3.ThreadlocalPool.class, maxSize=30, timeout=10000)
          src/resources/test-configs/removedislocal/deploy/ejb3-interceptors-aop.xml: <annotation expr="!class(@org.jboss.annotation.ejb.PoolClass)">
          src/resources/test-configs/removedislocal/deploy/ejb3-interceptors-aop.xml: @org.jboss.annotation.ejb.PoolClass (value=org.jboss.ejb3.ThreadlocalPool.class, maxSize=30, timeout=10000)
          src/resources/test-configs/removedislocal/deploy/ejb3-interceptors-aop.xml: <annotation expr="!class(@org.jboss.annotation.ejb.PoolClass)">
          src/resources/test-configs/removedislocal/deploy/ejb3-interceptors-aop.xml: @org.jboss.annotation.ejb.PoolClass (value=org.jboss.ejb3.StrictMaxPool.class, maxSize=15, timeout=10000)
          src/resources/test-configs/removedislocal/deploy/ejb3-interceptors-aop.xml: <annotation expr="!class(@org.jboss.annotation.ejb.PoolClass)">
          src/resources/test-configs/removedislocal/deploy/ejb3-interceptors-aop.xml: @org.jboss.annotation.ejb.PoolClass (value=org.jboss.ejb3.StrictMaxPool.class, maxSize=15, timeout=10000)
          src/resources/test-configs/ejb3-jacc/deploy/ejb3-interceptors-aop.xml: <annotation expr="!class(@org.jboss.annotation.ejb.PoolClass)">
          src/resources/test-configs/ejb3-jacc/deploy/ejb3-interceptors-aop.xml: @org.jboss.annotation.ejb.PoolClass (value=org.jboss.ejb3.ThreadlocalPool.class, maxSize=30, timeout=10000)
          src/resources/test-configs/ejb3-jacc/deploy/ejb3-interceptors-aop.xml: <annotation expr="!class(@org.jboss.annotation.ejb.PoolClass)">
          src/resources/test-configs/ejb3-jacc/deploy/ejb3-interceptors-aop.xml: @org.jboss.annotation.ejb.PoolClass (value=org.jboss.ejb3.ThreadlocalPool.class, maxSize=30, timeout=10000)
          src/resources/test-configs/ejb3-jacc/deploy/ejb3-interceptors-aop.xml: <annotation expr="!class(@org.jboss.annotation.ejb.PoolClass)">
          src/resources/test-configs/ejb3-jacc/deploy/ejb3-interceptors-aop.xml: @org.jboss.annotation.ejb.PoolClass (value=org.jboss.ejb3.ThreadlocalPool.class, maxSize=30, timeout=10000)
          src/main/org/jboss/annotation/ejb/PoolImpl.java: sb.append("[PoolClassImpl:");
          [ejort@warjort ejb3]$ cd ../thirdparty/
          [ejort@warjort thirdparty]$ grep -ri PoolClass * | grep -v svn
          [ejort@warjort thirdparty]$
          


          • 2. Re: Need to update PoolClass usage
            Scott Stark Master

            It is the deploy/ejb3-interceptors-aop.xml default annotation that is causing the problem. It should be replaced with @org.jboss.annotation.ejb.Pool("..."), however, I don't see a DefaultPool type of entry in the ejb3.deployer/META-INF/ejb3-deployers-beans.xml EJB3PoolFactoryRegistry that can be used. I'll set it to StrictMaxPoolFactory for now.

             <!-- EJB3 Pool Factory Registry -->
             <bean name="EJB3PoolFactoryRegistry" class="org.jboss.ejb3.pool.PoolFactoryRegistry">
             <property name="factories">
             <!-- Define each of the registered factories -->
             <map class="java.util.HashMap" keyClass="java.lang.String"
             valueClass="java.lang.Class">
             <!-- ThreadlocalPool -->
             <entry>
             <key>ThreadlocalPool</key>
             <value>org.jboss.ejb3.pool.ThreadlocalPoolFactory</value>
             </entry>
             <!-- StrictMaxPool -->
             <entry>
             <key>StrictMaxPool</key>
             <value>org.jboss.ejb3.pool.StrictMaxPoolFactory</value>
             </entry>
             </map>
             </property>
             </bean>
            



            • 3. Re: Need to update PoolClass usage
              Scott Stark Master

              Note that was the cts config I was testing against. There is a separate ejb3-interceptors-aop.xml for that setup. The current trunk version is using the Pool annotation:

               <annotation expr="!class(@org.jboss.annotation.ejb.Pool)">
               @org.jboss.annotation.ejb.Pool (value="ThreadlocalPool", maxSize=30, timeout=10000)
               </annotation>
              



              • 4. Re: Need to update PoolClass usage
                Scott Stark Master

                So it just was that my cts workspace was out of date.

                • 5. Re: Need to update PoolClass usage
                  Scott Stark Master

                  Since I was in there I have replaced all PoolClass usage with Pool in the ejb3 subproject.

                  • 6. Re: Need to update PoolClass usage
                    Andrew Rubinger Master

                     

                    "scott.stark@jboss.org" wrote:
                    Since I was in there I have replaced all PoolClass usage with Pool in the ejb3 subproject.


                    Ah, looks like I did miss the @PoolClass > @Pool changes in some of the EJB3 testsuite configs. Was confused as to why you were seeing this problem in TCK. :)

                    Thanks for switching those over.

                    S,
                    ALR