You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by gr...@apache.org on 2023/12/01 23:29:44 UTC
(logging-chainsaw) branch master updated (7cd8913 -> bb74372)
This is an automated email from the ASF dual-hosted git repository.
grobmeier pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/logging-chainsaw.git
from 7cd8913 extracted tutorial frame to its own class
new 1a2c475 added missing param
new bb74372 moved save method to more appropriate panel
The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
src/main/java/org/apache/log4j/chainsaw/LogUI.java | 49 +--------------
.../components/tutorial/TutorialFrame.java | 6 +-
.../log4j/chainsaw/receivers/ReceiversPanel.java | 69 +++++++++++++++++++++-
3 files changed, 70 insertions(+), 54 deletions(-)
(logging-chainsaw) 02/02: moved save method to more appropriate panel
Posted by gr...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
grobmeier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/logging-chainsaw.git
commit bb7437296359e388544913042207ec8ef8df14f4
Author: Christian Grobmeier <cg...@grobmeier.de>
AuthorDate: Sat Dec 2 00:29:38 2023 +0100
moved save method to more appropriate panel
---
src/main/java/org/apache/log4j/chainsaw/LogUI.java | 49 +--------------
.../log4j/chainsaw/receivers/ReceiversPanel.java | 69 +++++++++++++++++++++-
2 files changed, 67 insertions(+), 51 deletions(-)
diff --git a/src/main/java/org/apache/log4j/chainsaw/LogUI.java b/src/main/java/org/apache/log4j/chainsaw/LogUI.java
index dcb53eb..e3d753e 100644
--- a/src/main/java/org/apache/log4j/chainsaw/LogUI.java
+++ b/src/main/java/org/apache/log4j/chainsaw/LogUI.java
@@ -254,7 +254,7 @@ public class LogUI extends JFrame {
}
private void setupReceiverPanel() {
- receiversPanel = new ReceiversPanel(settingsManager, this, statusBar);
+ receiversPanel = new ReceiversPanel(settingsManager, m_receivers, this, statusBar);
// receiversPanel.addPropertyChangeListener(
// "visible",
// evt -> getApplicationPreferenceModel().setReceivers(
@@ -1503,52 +1503,5 @@ public class LogUI extends JFrame {
return m_receivers;
}
- public void saveReceiversToFile(File file){
- try {
- //we programmatically register the ZeroConf plugin in the plugin registry
- DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
- factory.setNamespaceAware(true);
- DocumentBuilder builder = factory.newDocumentBuilder();
- Document document = builder.newDocument();
- Element rootElement = document.createElementNS("http://jakarta.apache.org/log4j/", "configuration");
- rootElement.setPrefix("log4j");
- rootElement.setAttribute("xmlns:log4j", "http://jakarta.apache.org/log4j/");
- rootElement.setAttribute("debug", "true");
-
- for (ChainsawReceiver receiver : m_receivers) {
- Element pluginElement = document.createElement("plugin");
- pluginElement.setAttribute("name", receiver.getName());
- pluginElement.setAttribute("class", receiver.getClass().getName());
-
- BeanInfo beanInfo = Introspector.getBeanInfo(receiver.getClass());
- List<PropertyDescriptor> list = new ArrayList<>(Arrays.asList(beanInfo.getPropertyDescriptors()));
-
- for (PropertyDescriptor desc : list) {
- Object o = desc.getReadMethod().invoke(receiver);
- if (o != null) {
- Element paramElement = document.createElement("param");
- paramElement.setAttribute("name", desc.getName());
- paramElement.setAttribute("value", o.toString());
- pluginElement.appendChild(paramElement);
- }
- }
-
- rootElement.appendChild(pluginElement);
- }
-
- TransformerFactory transformerFactory = TransformerFactory.newInstance();
- Transformer transformer = transformerFactory.newTransformer();
- transformer.setOutputProperty(OutputKeys.INDENT, "yes");
- transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");
- DOMSource source = new DOMSource(rootElement);
- FileOutputStream stream = new FileOutputStream(file);
- StreamResult result = new StreamResult(stream);
- transformer.transform(source, result);
- stream.close();
-
- } catch (Exception e) {
- logger.error(e,e);
- }
- }
}
diff --git a/src/main/java/org/apache/log4j/chainsaw/receivers/ReceiversPanel.java b/src/main/java/org/apache/log4j/chainsaw/receivers/ReceiversPanel.java
index ce70d58..38f7e65 100644
--- a/src/main/java/org/apache/log4j/chainsaw/receivers/ReceiversPanel.java
+++ b/src/main/java/org/apache/log4j/chainsaw/receivers/ReceiversPanel.java
@@ -34,6 +34,8 @@ import org.apache.log4j.chainsaw.prefs.SettingsListener;
import org.apache.log4j.chainsaw.prefs.SettingsManager;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
import javax.swing.*;
import javax.swing.event.TreeExpansionEvent;
@@ -45,12 +47,23 @@ import javax.swing.event.TreeWillExpandListener;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.ExpandVetoException;
import javax.swing.tree.TreePath;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.transform.OutputKeys;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
+import java.beans.BeanInfo;
+import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.io.File;
+import java.io.FileOutputStream;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
@@ -87,11 +100,13 @@ public class ReceiversPanel extends JPanel implements SettingsListener {
private final Map<Class,PropertyDescriptor[]> m_classToProperties =
new HashMap<>();
private SettingsManager settingsManager;
+ private List<ChainsawReceiver> m_receivers;
private final ChainsawStatusBar m_statusBar;
- public ReceiversPanel(SettingsManager settingsManager, LogUI parentUi, ChainsawStatusBar sb) {
+ public ReceiversPanel(SettingsManager settingsManager, List<ChainsawReceiver> m_receivers, LogUI parentUi, ChainsawStatusBar sb) {
super(new BorderLayout());
this.settingsManager = settingsManager;
+ this.m_receivers = m_receivers;
m_statusBar = sb;
m_parent = parentUi;
final ReceiversTreeModel model = new ReceiversTreeModel();
@@ -350,10 +365,58 @@ public class ReceiversPanel extends JPanel implements SettingsListener {
private void saveReceivers() {
File saveConfigFile = SwingHelper.promptForFile(this, null, "Save receiver configuration XML file", false);
if (saveConfigFile != null) {
- m_parent.saveReceiversToFile(saveConfigFile);
+ saveReceiversToFile(saveConfigFile);
}
}
+ public void saveReceiversToFile(File file){
+ try {
+ //we programmatically register the ZeroConf plugin in the plugin registry
+ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ factory.setNamespaceAware(true);
+ DocumentBuilder builder = factory.newDocumentBuilder();
+ Document document = builder.newDocument();
+ Element rootElement = document.createElementNS("http://jakarta.apache.org/log4j/", "configuration");
+ rootElement.setPrefix("log4j");
+ rootElement.setAttribute("xmlns:log4j", "http://jakarta.apache.org/log4j/");
+ rootElement.setAttribute("debug", "true");
+
+ for (ChainsawReceiver receiver : m_receivers) {
+ Element pluginElement = document.createElement("plugin");
+ pluginElement.setAttribute("name", receiver.getName());
+ pluginElement.setAttribute("class", receiver.getClass().getName());
+
+ BeanInfo beanInfo = Introspector.getBeanInfo(receiver.getClass());
+ List<PropertyDescriptor> list = new ArrayList<>(Arrays.asList(beanInfo.getPropertyDescriptors()));
+
+ for (PropertyDescriptor desc : list) {
+ Object o = desc.getReadMethod().invoke(receiver);
+ if (o != null) {
+ Element paramElement = document.createElement("param");
+ paramElement.setAttribute("name", desc.getName());
+ paramElement.setAttribute("value", o.toString());
+ pluginElement.appendChild(paramElement);
+ }
+ }
+
+ rootElement.appendChild(pluginElement);
+
+ }
+
+ TransformerFactory transformerFactory = TransformerFactory.newInstance();
+ Transformer transformer = transformerFactory.newTransformer();
+ transformer.setOutputProperty(OutputKeys.INDENT, "yes");
+ transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");
+ DOMSource source = new DOMSource(rootElement);
+ FileOutputStream stream = new FileOutputStream(file);
+ StreamResult result = new StreamResult(stream);
+ transformer.transform(source, result);
+ stream.close();
+
+ } catch (Exception e) {
+ logger.error(e,e);
+ }
+ }
protected ReceiversTreeModel getReceiverTreeModel() {
return ((ReceiversTreeModel) receiversTree.getModel());
}
@@ -532,7 +595,7 @@ public class ReceiversPanel extends JPanel implements SettingsListener {
public void saveSettings(SaveSettingsEvent event) {
File file = new File(settingsManager.getSettingsDirectory(), "receiver-config.xml");
- m_parent.saveReceiversToFile(file);
+ saveReceiversToFile(file);
}
/**
(logging-chainsaw) 01/02: added missing param
Posted by gr...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
grobmeier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/logging-chainsaw.git
commit 1a2c475b10a8f690f65864913442ff3037e7c196
Author: Christian Grobmeier <cg...@grobmeier.de>
AuthorDate: Sat Dec 2 00:29:12 2023 +0100
added missing param
---
.../apache/log4j/chainsaw/components/tutorial/TutorialFrame.java | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/main/java/org/apache/log4j/chainsaw/components/tutorial/TutorialFrame.java b/src/main/java/org/apache/log4j/chainsaw/components/tutorial/TutorialFrame.java
index 23b1786..4c029e8 100644
--- a/src/main/java/org/apache/log4j/chainsaw/components/tutorial/TutorialFrame.java
+++ b/src/main/java/org/apache/log4j/chainsaw/components/tutorial/TutorialFrame.java
@@ -36,7 +36,7 @@ public class TutorialFrame {
this.logUI = logUI;
}
- public void createTutorialFrame(ChainsawStatusBar statusBar) {
+ public void createTutorialFrame(JFrame tutorialFrame, ChainsawStatusBar statusBar) {
Container container = tutorialFrame.getContentPane();
container.setLayout(new BorderLayout());
@@ -53,8 +53,8 @@ public class TutorialFrame {
statusBar.setMessage("Can't load tutorial");
}
- tutorialFrame.setIconImage(new ImageIcon(ChainsawIcons.HELP).getImage());
- tutorialFrame.setSize(new Dimension(640, 480));
+ this.tutorialFrame.setIconImage(new ImageIcon(ChainsawIcons.HELP).getImage());
+ this.tutorialFrame.setSize(new Dimension(640, 480));
final Action startTutorial = createStartTutorialAction();
final Action stopTutorial = createStopTutorialAction(startTutorial);