43 import org.openjdk.jmc.common.item.IItemCollection;
44 import org.openjdk.jmc.common.item.ItemFilters;
45 import org.openjdk.jmc.common.util.IPreferenceValueProvider;
46 import org.openjdk.jmc.common.util.TypedPreference;
47 import org.openjdk.jmc.flightrecorder.jdk.JdkAttributes;
48 import org.openjdk.jmc.flightrecorder.jdk.JdkFilters;
49 import org.openjdk.jmc.flightrecorder.jdk.JdkTypeIDs;
50 import org.openjdk.jmc.flightrecorder.rules.IRule;
51 import org.openjdk.jmc.flightrecorder.rules.Result;
52 import org.openjdk.jmc.flightrecorder.rules.jdk.messages.internal.Messages;
53 import org.openjdk.jmc.flightrecorder.rules.util.JfrRuleTopics;
54 import org.openjdk.jmc.flightrecorder.rules.util.RulesToolkit;
55 import org.openjdk.jmc.flightrecorder.rules.util.RulesToolkit.EventAvailability;
56
57 public class ManagementAgentRule implements IRule {
58
59 private static final String RESULT_ID = "ManagementAgent"; //$NON-NLS-1$
60
61 private Result getResult(IItemCollection items, IPreferenceValueProvider valueProvider) {
62 EventAvailability eventAvailability = RulesToolkit.getEventAvailability(items, JdkTypeIDs.SYSTEM_PROPERTIES);
63 if (eventAvailability == EventAvailability.UNAVAILABLE || eventAvailability == EventAvailability.DISABLED) {
64 return RulesToolkit.getEventAvailabilityResult(this, items, eventAvailability,
65 JdkTypeIDs.SYSTEM_PROPERTIES);
66 }
67
68 // FIXME: Move the filter inside the aggregate.
69 IItemCollection properties = items.apply(JdkFilters.SYSTEM_PROPERTIES);
70
71 Set<String> portStr = properties
72 .apply(ItemFilters.equals(JdkAttributes.ENVIRONMENT_KEY, "com.sun.management.jmxremote.port")) //$NON-NLS-1$
73 .getAggregate(Aggregators.distinct(JdkAttributes.ENVIRONMENT_VALUE));
74 Set<String> authStr = properties
75 .apply(ItemFilters.equals(JdkAttributes.ENVIRONMENT_KEY, "com.sun.management.jmxremote.authenticate")) //$NON-NLS-1$
76 .getAggregate(Aggregators.distinct(JdkAttributes.ENVIRONMENT_VALUE));
77 Set<String> sslStr = properties
78 .apply(ItemFilters.equals(JdkAttributes.ENVIRONMENT_KEY, "com.sun.management.jmxremote.ssl")) //$NON-NLS-1$
79 .getAggregate(Aggregators.distinct(JdkAttributes.ENVIRONMENT_VALUE));
80
81 if (size(portStr) > 1 || size(authStr) > 1 || size(sslStr) > 1) {
82 return new Result(this, 50, Messages.getString(Messages.ManagementAgentRule_TEXT_INFO),
83 Messages.getString(Messages.ManagementAgentRule_TEXT_INFO_LONG));
|
43 import org.openjdk.jmc.common.item.IItemCollection;
44 import org.openjdk.jmc.common.item.ItemFilters;
45 import org.openjdk.jmc.common.util.IPreferenceValueProvider;
46 import org.openjdk.jmc.common.util.TypedPreference;
47 import org.openjdk.jmc.flightrecorder.jdk.JdkAttributes;
48 import org.openjdk.jmc.flightrecorder.jdk.JdkFilters;
49 import org.openjdk.jmc.flightrecorder.jdk.JdkTypeIDs;
50 import org.openjdk.jmc.flightrecorder.rules.IRule;
51 import org.openjdk.jmc.flightrecorder.rules.Result;
52 import org.openjdk.jmc.flightrecorder.rules.jdk.messages.internal.Messages;
53 import org.openjdk.jmc.flightrecorder.rules.util.JfrRuleTopics;
54 import org.openjdk.jmc.flightrecorder.rules.util.RulesToolkit;
55 import org.openjdk.jmc.flightrecorder.rules.util.RulesToolkit.EventAvailability;
56
57 public class ManagementAgentRule implements IRule {
58
59 private static final String RESULT_ID = "ManagementAgent"; //$NON-NLS-1$
60
61 private Result getResult(IItemCollection items, IPreferenceValueProvider valueProvider) {
62 EventAvailability eventAvailability = RulesToolkit.getEventAvailability(items, JdkTypeIDs.SYSTEM_PROPERTIES);
63 if (eventAvailability == EventAvailability.UNKNOWN || eventAvailability == EventAvailability.DISABLED) {
64 return RulesToolkit.getEventAvailabilityResult(this, items, eventAvailability,
65 JdkTypeIDs.SYSTEM_PROPERTIES);
66 }
67
68 // FIXME: Move the filter inside the aggregate.
69 IItemCollection properties = items.apply(JdkFilters.SYSTEM_PROPERTIES);
70
71 Set<String> portStr = properties
72 .apply(ItemFilters.equals(JdkAttributes.ENVIRONMENT_KEY, "com.sun.management.jmxremote.port")) //$NON-NLS-1$
73 .getAggregate(Aggregators.distinct(JdkAttributes.ENVIRONMENT_VALUE));
74 Set<String> authStr = properties
75 .apply(ItemFilters.equals(JdkAttributes.ENVIRONMENT_KEY, "com.sun.management.jmxremote.authenticate")) //$NON-NLS-1$
76 .getAggregate(Aggregators.distinct(JdkAttributes.ENVIRONMENT_VALUE));
77 Set<String> sslStr = properties
78 .apply(ItemFilters.equals(JdkAttributes.ENVIRONMENT_KEY, "com.sun.management.jmxremote.ssl")) //$NON-NLS-1$
79 .getAggregate(Aggregators.distinct(JdkAttributes.ENVIRONMENT_VALUE));
80
81 if (size(portStr) > 1 || size(authStr) > 1 || size(sslStr) > 1) {
82 return new Result(this, 50, Messages.getString(Messages.ManagementAgentRule_TEXT_INFO),
83 Messages.getString(Messages.ManagementAgentRule_TEXT_INFO_LONG));
|