Details
-
Type:
Bug
-
Status: Closed
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: 5.5.0.0
-
Fix Version/s: 5.6.0.0
-
Component/s: J2EE Agents
-
Labels:
-
Target Version/s:
-
Sprint:2018.13 - Cuneiform, 2018.14 - Bronze
Description
There are several reasons why properties within the Java Agent need to be reworked:
- Property names are inconsistent with the C Agent
- Some properties just aren't used anymore, even though they are referenced in the codebase
- The original property names don't follow any logical naming rules and don't even share the same base
- Some old property names are practically meaningless
- Some new property names have been badly chosen
- Property initialisation is a nightmare for the unit tests, thus no unit test can access properties
- Property handling uses deprecated classes from the Client SDK
- Backwards compatibility must be maintained
- Property name changes have implications for the XUI
- Need to sort out which properties are hot-swappable and which are not
- The documentation team are constantly complaining that Java Agent properties are a mess
Here are some examples of the inconsistencies. All of these are properties used by the agent:
com.sun.identity.sm.cacheTime com.iplanet.am.cookie.name com.iplanet.services.debug.level com.sun.identity.agents.config.session.attribute.mapping com.iplanet.am.session.client.polling.enable org.forgerock.openam.sdk.com.sun.services.debug.mergeall org.forgerock.openam.agents.config.policy.evaluation.realm
In order to reconcile old/existing names with new/rational ones, I propose inventing "aliases" for property names. Thus it will be possible for a single property value to go by two (or more) distinct names. For example:
com.sun.identity.sm.cacheTime org.forgerock.agents.cache.timeout.milliseconds
This will pave the way for more sensible, consistent and descriptive property names while still maintaining backwards compatibility. It does pave the way for problems where a customer sets the same property via two (or more) different names to different values. Perhaps a warning should be issued if this is the case. I propose "rational" property names start with the root:
org.forgerock.agents
just because it is shorter than one of the new variants, which is:
org.forgerock.openam.agents
I also propose dropping the word config from everywhere in all properties. It's a property, what else could it possibly be but configuration?