38 import java.util.concurrent.FutureTask;
39 import java.util.concurrent.RunnableFuture;
40
41 import org.openjdk.jmc.common.item.IItemCollection;
42 import org.openjdk.jmc.common.util.IPreferenceValueProvider;
43 import org.openjdk.jmc.common.util.TypedPreference;
44 import org.openjdk.jmc.flightrecorder.jdk.JdkAggregators;
45 import org.openjdk.jmc.flightrecorder.jdk.JdkTypeIDs;
46 import org.openjdk.jmc.flightrecorder.rules.IRule;
47 import org.openjdk.jmc.flightrecorder.rules.Result;
48 import org.openjdk.jmc.flightrecorder.rules.jdk.messages.internal.Messages;
49 import org.openjdk.jmc.flightrecorder.rules.util.JfrRuleTopics;
50 import org.openjdk.jmc.flightrecorder.rules.util.RulesToolkit;
51 import org.openjdk.jmc.flightrecorder.rules.util.RulesToolkit.EventAvailability;
52
53 public class DiscouragedVmOptionsRule implements IRule {
54 private static final String DISCOURAGED_VM_OPTIONS_RESULT_ID = "DiscouragedVmOptions"; //$NON-NLS-1$
55
56 private Result getResult(IItemCollection items, IPreferenceValueProvider valueProvider) {
57 EventAvailability eventAvailability = RulesToolkit.getEventAvailability(items, JdkTypeIDs.BOOLEAN_FLAG);
58 if (eventAvailability == EventAvailability.UNAVAILABLE || eventAvailability == EventAvailability.DISABLED) {
59 return RulesToolkit.getEventAvailabilityResult(this, items, eventAvailability, JdkTypeIDs.BOOLEAN_FLAG);
60 }
61
62 Boolean unlockExperimentalVMOptions = items.getAggregate(JdkAggregators.UNLOCK_EXPERIMENTAL_VM_OPTIONS);
63 Boolean ignoreUnrecognizedVMOptions = items.getAggregate(JdkAggregators.IGNORE_UNRECOGNIZED_VM_OPTIONS);
64
65 if (unlockExperimentalVMOptions != null && ignoreUnrecognizedVMOptions != null && unlockExperimentalVMOptions
66 && ignoreUnrecognizedVMOptions) {
67 String shortMessage = Messages.getString(Messages.DiscouragedVmOptionsRule_BOTH_EXPERIMENTAL_AND_IGNORE);
68 String longMessage = shortMessage + " " //$NON-NLS-1$
69 + Messages.getString(Messages.UnlockExperimentalVMOptionsRuleFactory_TEXT_INFO_LONG) + " " //$NON-NLS-1$
70 + Messages.getString(Messages.IgnoreUnrecognizedVMOptionsRuleFactory_TEXT_INFO_LONG);
71 return new Result(this, 50, shortMessage, longMessage);
72 } else if (ignoreUnrecognizedVMOptions != null && ignoreUnrecognizedVMOptions) {
73 return new Result(this, 50, Messages.getString(Messages.IgnoreUnrecognizedVMOptionsRuleFactory_TEXT_INFO),
74 Messages.getString(Messages.IgnoreUnrecognizedVMOptionsRuleFactory_TEXT_INFO_LONG));
75 } else if (unlockExperimentalVMOptions != null && unlockExperimentalVMOptions) {
76 return new Result(this, 50, Messages.getString(Messages.UnlockExperimentalVMOptionsRuleFactory_TEXT_INFO),
77 Messages.getString(Messages.UnlockExperimentalVMOptionsRuleFactory_TEXT_INFO_LONG));
78 } else {
|
38 import java.util.concurrent.FutureTask;
39 import java.util.concurrent.RunnableFuture;
40
41 import org.openjdk.jmc.common.item.IItemCollection;
42 import org.openjdk.jmc.common.util.IPreferenceValueProvider;
43 import org.openjdk.jmc.common.util.TypedPreference;
44 import org.openjdk.jmc.flightrecorder.jdk.JdkAggregators;
45 import org.openjdk.jmc.flightrecorder.jdk.JdkTypeIDs;
46 import org.openjdk.jmc.flightrecorder.rules.IRule;
47 import org.openjdk.jmc.flightrecorder.rules.Result;
48 import org.openjdk.jmc.flightrecorder.rules.jdk.messages.internal.Messages;
49 import org.openjdk.jmc.flightrecorder.rules.util.JfrRuleTopics;
50 import org.openjdk.jmc.flightrecorder.rules.util.RulesToolkit;
51 import org.openjdk.jmc.flightrecorder.rules.util.RulesToolkit.EventAvailability;
52
53 public class DiscouragedVmOptionsRule implements IRule {
54 private static final String DISCOURAGED_VM_OPTIONS_RESULT_ID = "DiscouragedVmOptions"; //$NON-NLS-1$
55
56 private Result getResult(IItemCollection items, IPreferenceValueProvider valueProvider) {
57 EventAvailability eventAvailability = RulesToolkit.getEventAvailability(items, JdkTypeIDs.BOOLEAN_FLAG);
58 if (eventAvailability == EventAvailability.UNKNOWN || eventAvailability == EventAvailability.DISABLED) {
59 return RulesToolkit.getEventAvailabilityResult(this, items, eventAvailability, JdkTypeIDs.BOOLEAN_FLAG);
60 }
61
62 Boolean unlockExperimentalVMOptions = items.getAggregate(JdkAggregators.UNLOCK_EXPERIMENTAL_VM_OPTIONS);
63 Boolean ignoreUnrecognizedVMOptions = items.getAggregate(JdkAggregators.IGNORE_UNRECOGNIZED_VM_OPTIONS);
64
65 if (unlockExperimentalVMOptions != null && ignoreUnrecognizedVMOptions != null && unlockExperimentalVMOptions
66 && ignoreUnrecognizedVMOptions) {
67 String shortMessage = Messages.getString(Messages.DiscouragedVmOptionsRule_BOTH_EXPERIMENTAL_AND_IGNORE);
68 String longMessage = shortMessage + " " //$NON-NLS-1$
69 + Messages.getString(Messages.UnlockExperimentalVMOptionsRuleFactory_TEXT_INFO_LONG) + " " //$NON-NLS-1$
70 + Messages.getString(Messages.IgnoreUnrecognizedVMOptionsRuleFactory_TEXT_INFO_LONG);
71 return new Result(this, 50, shortMessage, longMessage);
72 } else if (ignoreUnrecognizedVMOptions != null && ignoreUnrecognizedVMOptions) {
73 return new Result(this, 50, Messages.getString(Messages.IgnoreUnrecognizedVMOptionsRuleFactory_TEXT_INFO),
74 Messages.getString(Messages.IgnoreUnrecognizedVMOptionsRuleFactory_TEXT_INFO_LONG));
75 } else if (unlockExperimentalVMOptions != null && unlockExperimentalVMOptions) {
76 return new Result(this, 50, Messages.getString(Messages.UnlockExperimentalVMOptionsRuleFactory_TEXT_INFO),
77 Messages.getString(Messages.UnlockExperimentalVMOptionsRuleFactory_TEXT_INFO_LONG));
78 } else {
|