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);