Details
-
Type:
Improvement
-
Status: Closed
-
Priority:
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.
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.
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:
I tested these scenarios both with and without EPS.
Marking this one as FIXED.