ICEpush
  1. ICEpush
  2. PUSH-178

Improve control of annotation scanning performance (Part 1)

    Details

    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 3.0.1, EE 3.0.0
    • Fix Version/s: 3.1, EE-3.0.0.GA_P01
    • Component/s: Push Library
    • Labels:
      None
    • Environment:
      ICEpush
    • Assignee Priority:
      P1
    • Affects:
      Documentation (User Guide, Ref. Guide, etc.), Compatibility/Configuration

      Description

      The PushGroupManagerFactory.newPushGroupManager() method has some code that attempts to scan the classpath for implementations of an interface to determine which PushGroupManager implementation to use. The main use case for this is detecting EPS. In applications or environments where the classpath contains many libraries, this can cause a performance issue during the initial request.

      We discussed two strategies for dealing with this. For the short-term, we should supply a context-parameter that allows this to be turned off for environments that know EPS is not being used. In the long-term, we should switch to using the TLD to simply specify which implementation should be used.

        Activity

        Deryk Sinotte created issue -
        Hide
        Deryk Sinotte added a comment -

        Assigning to Jack and linking to SaleForce case.

        Show
        Deryk Sinotte added a comment - Assigning to Jack and linking to SaleForce case.
        Deryk Sinotte made changes -
        Field Original Value New Value
        Salesforce Case [5007000000NGB3W]
        Affects [Documentation (User Guide, Ref. Guide, etc.), Compatibility/Configuration]
        Assignee Jack van Ooststroom [ jack.van.ooststroom ]
        Ken Fyten made changes -
        Fix Version/s EE-3.0.0.GA_P01 [ 10329 ]
        Fix Version/s 3.1 [ 10310 ]
        Assignee Priority P1
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #29921 Wed Jul 11 07:40:44 MDT 2012 jack.van.ooststroom Fixed JIRA PUSH-178 : Improve control of annotation scanning performance (Part 1)
        Files Changed
        Commit graph MODIFY /icepush/trunk/icepush/core/src/main/java/org/icepush/PushGroupManagerFactory.java
        Commit graph MODIFY /icepush/trunk/icepush/core/src/main/java/org/icepush/servlet/MainServlet.java
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #29922 Wed Jul 11 07:41:46 MDT 2012 jack.van.ooststroom Updating icepush.jar after fix to PUSH-178
        Files Changed
        Commit graph MODIFY /icefaces3/trunk/icefaces/lib/icepush.jar
        Hide
        Jack Van Ooststroom added a comment -

        Sending core/src/main/java/org/icepush/PushGroupManagerFactory.java
        Sending core/src/main/java/org/icepush/servlet/MainServlet.java
        Transmitting file data ..
        Committed revision 29921.

        Show
        Jack Van Ooststroom added a comment - Sending core/src/main/java/org/icepush/PushGroupManagerFactory.java Sending core/src/main/java/org/icepush/servlet/MainServlet.java Transmitting file data .. Committed revision 29921.
        Jack Van Ooststroom made changes -
        Summary Improve control of annotation scanning performance Improve control of annotation scanning performance (Part 1)
        Hide
        Jack Van Ooststroom added a comment -

        Introduced a new String context parameter org.icepush.pushGroupManager which can be used to specify either org.icepush.LocalPushGroupManager or com.icesoft.push.DynamicPushGroupManager (in case of EPS) to avoid annotation scanning.

        Scenarios:

        • org.icepush.pushGroupManager is not specified or empty -> annotation scanning for @ExtendedPushGroupManager: if found use it, if not revert to LocalPushGroupManager
        • org.icepush.pushGroupManager is specified -> load class: if successful use it, if not revert to LocalPushGroupManager

        I tested these scenarios both with and without EPS.

        Marking this one as FIXED.

        Show
        Jack Van Ooststroom added a comment - Introduced a new String context parameter org.icepush.pushGroupManager which can be used to specify either org.icepush.LocalPushGroupManager or com.icesoft.push.DynamicPushGroupManager (in case of EPS) to avoid annotation scanning. Scenarios: org.icepush.pushGroupManager is not specified or empty -> annotation scanning for @ExtendedPushGroupManager: if found use it, if not revert to LocalPushGroupManager org.icepush.pushGroupManager is specified -> load class: if successful use it, if not revert to LocalPushGroupManager I tested these scenarios both with and without EPS. Marking this one as FIXED.
        Jack Van Ooststroom made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Ken Fyten made changes -
        Status Resolved [ 5 ] Closed [ 6 ]

          People

          • Assignee:
            Jack Van Ooststroom
            Reporter:
            Deryk Sinotte
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: