| /* |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| */ |
| package org.apache.felix.webconsole.plugins.memoryusage.internal; |
| |
| /** |
| * The <code>MemoryUsageConstants</code> provides some basic constants for |
| * the MemoryUsage support bundle |
| */ |
| final class MemoryUsageConstants |
| { |
| |
| /** |
| * Service PID for the Configuration Admin configuration object to be |
| * provided to configure the memory usage support. |
| */ |
| static final String PID = "org.apache.felix.webconsole.plugins.memoryusage.internal.MemoryUsageConfigurator"; |
| |
| /** |
| * The label (or address) under which the Memory Usage Web Console Plugin |
| * is accessible. |
| */ |
| static final String LABEL = "memoryusage"; |
| |
| /** |
| * The category under which the Memory Usage Web Console Plugin |
| * is listed. |
| */ |
| static final String CATEGORY = "Web Console"; |
| |
| /** |
| * The name of the property providing the filesystem location where the |
| * memory dumps should be placed. If this location is relative it is located |
| * inside the bundle private data area. |
| * <p> |
| * This property may be set as a framework property or as a property of |
| * configuration provided by the Configuration Admin Service for the service |
| * {@link #PID}. |
| */ |
| static final String PROP_DUMP_LOCATION = "felix.memoryusage.dump.location"; |
| |
| /** |
| * The name of the property providing threshold as a percentage of the |
| * maximum available memory at which an automatic memory dumps should |
| * be created. |
| * <p> |
| * This property may be set as a framework property or as a property of |
| * configuration provided by the Configuration Admin Service for the service |
| * {@link #PID}. |
| * <p> |
| * The property must be an integer value or be parseable to an integer |
| * value. The value must be zero to disable automatic dump generation or in |
| * the range [{@link #MIN_DUMP_THRESHOLD}..{@link #MAX_DUMP_THRESHOLD}]. |
| */ |
| static final String PROP_DUMP_THRESHOLD = "felix.memoryusage.dump.threshold"; |
| |
| /** |
| * The minimum interval between two consecutive memory dumps being taken |
| * in seconds. This property allows the limitation of the number of memory |
| * dumps being taken. The default value for the interval is 6 hours. This |
| * means that |
| * a memory threshold event is ignored unless the last memory dump has been |
| * taken |
| * at least 6 hours earlier. |
| * <p> |
| * This property allows limiting the number of memory dumps in case memory |
| * consumption is oscillating around the threshold point. |
| * <p> |
| * The property must be an integer value or be parseable to an integer |
| * value. This should be a positive value or zero to force each memory |
| * threshold event to cause a memory dump (discouraged). If the value is |
| * negative or not parseable to an int, the default value of |
| * {@link #DEFAULT_DUMP_INTERVAL 6 hours} applies. |
| */ |
| static final String PROP_DUMP_INTERVAL = "felix.memoryusage.dump.interval"; |
| |
| /** |
| * The default automatic heap dump threshold if none has been configured |
| * (or no configuration has yet been provided). |
| */ |
| static final int DEFAULT_DUMP_THRESHOLD = 0; |
| |
| /** |
| * The maximum allowed automatic heap dump threshold. |
| */ |
| static final int MAX_DUMP_THRESHOLD = 99; |
| |
| /** |
| * The minimum allowed automatic heap dump threshold. |
| */ |
| static final int MIN_DUMP_THRESHOLD = 50; |
| |
| /** |
| * The default interval betwen consecutive dumps (6 hours). |
| */ |
| static final long DEFAULT_DUMP_INTERVAL = 6 * 3600 * 1000; |
| |
| /** |
| * Returns <code>true</code> if the given <code>threshold</code>value is |
| * valid; that is if the vaue is either zero or in the range [ |
| * {@link #MIN_DUMP_THRESHOLD}..{@link #MAX_DUMP_THRESHOLD}]. |
| * |
| * @param threshold The threshold value (percentage) to validate |
| * @return <code>true</code> if the value is valid |
| */ |
| static boolean isThresholdValid(final int threshold) |
| { |
| return threshold == 0 || (threshold >= MIN_DUMP_THRESHOLD && threshold <= MAX_DUMP_THRESHOLD); |
| } |
| } |