Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (102)
JavaBeans (21)
JDBC (121)
JDK (426)
JSP (20)
Logging (108)
Mail (58)
Messaging (8)
Network (84)
PDF (97)
Report (7)
Scripting (84)
Security (32)
Server (121)
Servlet (26)
SOAP (24)
Testing (54)
Web (15)
XML (322)
Collections:
Other Resources:
JDK 11 jdk.jfr.jmod - JFR Module
JDK 11 jdk.jfr.jmod is the JMOD file for JDK 11 JFR module.
JDK 11 JFR module compiled class files are stored in \fyicenter\jdk-11.0.1\jmods\jdk.jfr.jmod.
JDK 11 JFR module compiled class files are also linked and stored in the \fyicenter\jdk-11.0.1\lib\modules JImage file.
JDK 11 JFR module source code files are stored in \fyicenter\jdk-11.0.1\lib\src.zip\jdk.jfr.
You can click and view the content of each source code file in the list below.
✍: FYIcenter
⏎ jdk/jfr/internal/SettingsManager.java
/*
* Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
* ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*/
package jdk.jfr.internal;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.StringJoiner;
import jdk.jfr.Event;
import jdk.jfr.internal.handlers.EventHandler;
final class SettingsManager {
private static class InternalSetting {
private final String identifier;
private Map<String, Set<String>> enabledMap = new LinkedHashMap<>(5);
private Map<String, Set<String>> allMap = new LinkedHashMap<>(5);
private boolean enabled;
/**
* Settings identifier, for example "com.example.HelloWorld" or "56"
* (id of event)
*
* @param settingsId
*/
public InternalSetting(String settingsId) {
this.identifier = settingsId;
}
public Set<String> getValues(String key) {
if (enabled) {
return enabledMap.get(key);
} else {
return allMap.get(key);
}
}
public void add(String attribute, String value) {
if ("enabled".equals(attribute) && "true".equals(value)) {
enabled = true;
allMap = null; // no need to keep these around
}
addToMap(enabledMap, attribute, value);
if (allMap != null) {
addToMap(allMap, attribute, value);
}
}
private void addToMap(Map<String, Set<String>> map, String attribute, String value) {
Set<String> values = map.get(attribute);
if (values == null) {
values = new HashSet<String>(5);
map.put(attribute, values);
}
values.add(value);
}
public String getSettingsId() {
return identifier;
}
public void add(InternalSetting enabled) {
for (Map.Entry<String, Set<String>> entry : enabled.enabledMap.entrySet()) {
for (String value : entry.getValue()) {
add(entry.getKey(), value);
}
}
}
public boolean isEnabled() {
return enabled;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(identifier);
sb.append(": ");
sb.append(enabledMap.toString());
return sb.toString();
}
public void finish() {
if (!enabled) {
// settings from disabled
// events should not impact results, but
// we can't clear enabledMap since enabled=false
// needs be there, so events that are enabled
// by default are turned off
Map<String, Set<String>> disabledMap = new HashMap<>(2);
Set<String> values = new HashSet<>(2);
values.add("false");
disabledMap.put("enabled", values);
enabledMap = disabledMap;
}
}
}
private Map<String, InternalSetting> availableSettings = new LinkedHashMap<>();
void setSettings(List<Map<String, String>> activeSettings) {
// store settings so they are available if a new event class is loaded
availableSettings = createSettingsMap(activeSettings);
List<EventControl> eventControls = MetadataRepository.getInstance().getEventControls();
if (!JVM.getJVM().isRecording()) {
for (EventControl ec : eventControls) {
ec.disable();
}
} else {
if (LogTag.JFR_SETTING.shouldLog(LogLevel.INFO.level)) {
Collections.sort(eventControls, (x,y) -> x.getEventType().getName().compareTo(y.getEventType().getName()));
}
for (EventControl ec : eventControls) {
setEventControl(ec);
}
}
if (JVM.getJVM().getAllowedToDoEventRetransforms()) {
updateRetransform(JVM.getJVM().getAllEventClasses());
}
}
public void updateRetransform(List<Class<? extends Event>> eventClasses) {
List<Class<?>> classes = new ArrayList<>();
for(Class<? extends Event> eventClass: eventClasses) {
EventHandler eh = Utils.getHandler(eventClass);
if (eh != null ) {
PlatformEventType eventType = eh.getPlatformEventType();
if (eventType.isMarkedForInstrumentation()) {
classes.add(eventClass);
eventType.markForInstrumentation(false);
// A bit premature to set it here, but hard to check
// after call to retransformClasses.
eventType.setInstrumented();
}
}
}
if (!classes.isEmpty()) {
JVM.getJVM().retransformClasses(classes.toArray(new Class<?>[0]));
}
}
private Map<String, InternalSetting> createSettingsMap(List<Map<String,String>> activeSettings) {
Map<String, InternalSetting> map = new LinkedHashMap<>(activeSettings.size());
for (Map<String, String> rec : activeSettings) {
for (InternalSetting internal : makeInternalSettings(rec)) {
InternalSetting is = map.get(internal.getSettingsId());
if (is == null) {
map.put(internal.getSettingsId(), internal);
} else {
is.add(internal);
}
}
}
return map;
}
private Collection<InternalSetting> makeInternalSettings(Map<String, String> rec) {
Map<String, InternalSetting> internals = new LinkedHashMap<>();
for (Map.Entry<String, String> entry : rec.entrySet()) {
String key = entry.getKey();
String value = entry.getValue();
int index = key.indexOf("#");
if (index > 1 && index < key.length() - 2) {
String eventName = key.substring(0, index);
eventName = Utils.upgradeLegacyJDKEvent(eventName);
InternalSetting s = internals.get(eventName);
String settingName = key.substring(index + 1).trim();
if (s == null) {
s = new InternalSetting(eventName);
internals.put(eventName, s);
}
s.add(settingName, value);
}
}
for (InternalSetting s : internals.values()) {
s.finish();
}
return internals.values();
}
void setEventControl(EventControl ec) {
InternalSetting is = getInternalSetting(ec);
Logger.log(LogTag.JFR_SETTING, LogLevel.INFO, "Applied settings for " + ec.getEventType().getLogName() + " {");
for (Entry<String, Control> entry : ec.getEntries()) {
Set<String> values = null;
String settingName = entry.getKey();
if (is != null) {
values = is.getValues(settingName);
}
Control control = entry.getValue();
if (values != null) {
control.apply(values);
String after = control.getLastValue();
if (LogTag.JFR_SETTING.shouldLog(LogLevel.INFO.level)) {
if (Utils.isSettingVisible(control, ec.getEventType().hasEventHook())) {
if (values.size() > 1) {
StringJoiner sj = new StringJoiner(", ", "{", "}");
for (String s : values) {
sj.add("\"" + s + "\"");
}
String message = " " + settingName + "= " + sj.toString() + " => \"" + after + "\"";
Logger.log(LogTag.JFR_SETTING, LogLevel.INFO, message);
} else {
String message = " " + settingName + "=\"" + control.getLastValue() + "\"";
Logger.log(LogTag.JFR_SETTING, LogLevel.INFO, message);
}
}
}
} else {
control.setDefault();
if (LogTag.JFR_SETTING.shouldLog(LogLevel.INFO.level)) {
String message = " " + settingName + "=\"" + control.getLastValue() + "\"";
Logger.log(LogTag.JFR_SETTING, LogLevel.INFO, message);
}
}
}
ec.writeActiveSettingEvent();
Logger.log(LogTag.JFR_SETTING, LogLevel.INFO, "}");
}
private InternalSetting getInternalSetting(EventControl ec) {
String name = ec.getEventType().getName();
InternalSetting nameBased = availableSettings.get(name);
InternalSetting idBased = availableSettings.get(ec.getSettingsId());
if (nameBased == null && idBased == null) {
return null;
}
if (idBased == null) {
return nameBased;
}
if (nameBased == null) {
return idBased;
}
InternalSetting mixed = new InternalSetting(nameBased.getSettingsId());
mixed.add(nameBased);
mixed.add(idBased);
return mixed;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
for (InternalSetting enabled : availableSettings.values()) {
sb.append(enabled.toString());
sb.append("\n");
}
return sb.toString();
}
boolean isEnabled(String eventName) {
InternalSetting is = availableSettings.get(eventName);
if (is == null) {
return false;
}
return is.isEnabled();
}
}
⏎ jdk/jfr/internal/SettingsManager.java
Or download all of them as a single archive file:
File name: jdk.jfr-11.0.1-src.zip File size: 237632 bytes Release date: 2018-11-04 Download
⇒ JDK 11 jdk.jlink.jmod - JLink Tool
2020-06-30, ≈84🔥, 0💬
Popular Posts:
What Is ojdbc8.jar for Oracle 12c R2? ojdbc8.jar for Oracle 12c R2 is the JAR files of ojdbc.jar, JD...
What JAR files are required to run dom\Counter.java provided in the Apache Xerces package? You can f...
What Is poi-5.2.3.jar? poi-5.2.3.jar is one of the JAR files for Apache POI 5.2.3, which provides an...
What is jxl.jar 2.6.12? jxl.jar 2.6.12 is the JAR file for Java Excel API 2.6.12, which is a Java li...
itextpdf.jar is a component in iText 5 Java library to provide core functionalities. iText Java libr...