Reformat code for consistency
Project: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/commit/96ebd9ad Tree: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/tree/96ebd9ad Diff: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/diff/96ebd9ad Branch: refs/heads/master Commit: 96ebd9ad265846f6a8ec723b360aad4911220f62 Parents: a805396 Author: Matt Sicker <boa...@gmail.com> Authored: Tue Mar 13 02:04:22 2018 -0500 Committer: Matt Sicker <boa...@gmail.com> Committed: Tue Mar 13 02:04:22 2018 -0500 ---------------------------------------------------------------------- pom.xml | 8 +- .../apache/log4j/LoggerRepositoryExImpl.java | 1055 +-- src/main/java/org/apache/log4j/ULogger.java | 178 +- .../log4j/chainsaw/AbstractPreferencePanel.java | 302 +- .../chainsaw/ApplicationPreferenceModel.java | 328 +- .../ApplicationPreferenceModelPanel.java | 1048 ++- .../ApplicationPreferenceModelSaver.java | 18 +- .../apache/log4j/chainsaw/BasicPrefPanel.java | 50 +- .../apache/log4j/chainsaw/ChainsawAbout.java | 46 +- .../apache/log4j/chainsaw/ChainsawAppender.java | 282 +- .../log4j/chainsaw/ChainsawAppenderHandler.java | 589 +- .../apache/log4j/chainsaw/ChainsawColumns.java | 118 +- .../log4j/chainsaw/ChainsawConstants.java | 161 +- .../ChainsawCyclicBufferTableModel.java | 1312 ++-- .../log4j/chainsaw/ChainsawEventBatch.java | 83 +- .../apache/log4j/chainsaw/ChainsawSplash.java | 116 +- .../log4j/chainsaw/ChainsawStatusBar.java | 461 +- .../log4j/chainsaw/ChainsawTabbedPane.java | 271 +- .../log4j/chainsaw/ChainsawToolBarAndMenus.java | 1610 +++-- .../apache/log4j/chainsaw/ChainsawViewer.java | 25 +- .../log4j/chainsaw/CheckListCellRenderer.java | 82 +- .../apache/log4j/chainsaw/ColumnComparator.java | 273 +- .../apache/log4j/chainsaw/CommonActions.java | 40 +- .../chainsaw/CopyEventsToClipboardAction.java | 26 +- .../apache/log4j/chainsaw/CyclicBufferList.java | 314 +- .../apache/log4j/chainsaw/DockablePanel.java | 31 +- .../log4j/chainsaw/EventBatchListener.java | 38 +- .../apache/log4j/chainsaw/EventContainer.java | 303 +- .../log4j/chainsaw/EventCountListener.java | 9 +- .../log4j/chainsaw/ExpressionRuleContext.java | 451 +- .../apache/log4j/chainsaw/FileLoadAction.java | 55 +- .../org/apache/log4j/chainsaw/FileMenu.java | 230 +- .../apache/log4j/chainsaw/FileSaveAction.java | 174 +- .../org/apache/log4j/chainsaw/Generator.java | 173 +- .../log4j/chainsaw/GeneratorBeanInfo.java | 29 +- .../org/apache/log4j/chainsaw/JSortTable.java | 244 +- .../log4j/chainsaw/JTextComponentFormatter.java | 14 +- .../chainsaw/LogFilePatternLayoutBuilder.java | 329 +- .../org/apache/log4j/chainsaw/LogPanel.java | 6488 +++++++++--------- .../log4j/chainsaw/LogPanelLoggerTreeModel.java | 255 +- .../log4j/chainsaw/LogPanelPreferenceModel.java | 985 +-- .../log4j/chainsaw/LogPanelPreferencePanel.java | 1068 ++- .../java/org/apache/log4j/chainsaw/LogUI.java | 3623 +++++----- .../log4j/chainsaw/LoggerNameListener.java | 27 +- .../apache/log4j/chainsaw/LoggerNameModel.java | 63 +- .../log4j/chainsaw/LoggerNameModelSupport.java | 124 +- .../apache/log4j/chainsaw/LoggerNameTree.java | 32 +- .../log4j/chainsaw/LoggerNameTreePanel.java | 2875 ++++---- .../log4j/chainsaw/LoggingEventWrapper.java | 314 +- .../log4j/chainsaw/ModifiableListModel.java | 9 +- .../org/apache/log4j/chainsaw/NewKeyEvent.java | 67 +- .../apache/log4j/chainsaw/NewKeyListener.java | 16 +- .../apache/log4j/chainsaw/PopupListener.java | 56 +- .../apache/log4j/chainsaw/ProgressPanel.java | 70 +- .../chainsaw/ReceiverConfigurationPanel.java | 224 +- .../org/apache/log4j/chainsaw/RuleMediator.java | 127 +- .../log4j/chainsaw/SavableTabSetting.java | 3 +- .../apache/log4j/chainsaw/ShutdownListener.java | 17 +- .../org/apache/log4j/chainsaw/SmallButton.java | 191 +- .../log4j/chainsaw/SmallToggleButton.java | 210 +- .../apache/log4j/chainsaw/SortArrowIcon.java | 82 +- .../log4j/chainsaw/SortHeaderRenderer.java | 88 +- .../apache/log4j/chainsaw/SortTableModel.java | 10 +- .../log4j/chainsaw/TableColorizingRenderer.java | 958 ++- .../apache/log4j/chainsaw/ThresholdSlider.java | 119 +- .../log4j/chainsaw/ThrowableRenderPanel.java | 123 +- .../org/apache/log4j/chainsaw/WelcomePanel.java | 208 +- .../apache/log4j/chainsaw/color/ColorPanel.java | 1605 +++-- .../apache/log4j/chainsaw/color/Colorizer.java | 29 +- .../log4j/chainsaw/color/RuleColorizer.java | 479 +- .../log4j/chainsaw/dnd/FileDnDTarget.java | 82 +- .../filter/EventTypeEntryContainer.java | 195 +- .../log4j/chainsaw/filter/FilterModel.java | 46 +- .../apache/log4j/chainsaw/help/HelpLocator.java | 186 +- .../apache/log4j/chainsaw/help/HelpManager.java | 38 +- .../apache/log4j/chainsaw/help/Tutorial.java | 44 +- .../log4j/chainsaw/helper/OkCancelPanel.java | 73 +- .../log4j/chainsaw/helper/SwingHelper.java | 206 +- .../chainsaw/helper/TableCellEditorFactory.java | 66 +- .../log4j/chainsaw/icons/ChainsawIcons.java | 259 +- .../log4j/chainsaw/icons/LevelIconFactory.java | 88 +- .../log4j/chainsaw/icons/LineIconFactory.java | 254 +- .../chainsaw/layout/DefaultLayoutFactory.java | 105 +- .../chainsaw/layout/EventDetailLayout.java | 412 +- .../log4j/chainsaw/layout/LayoutEditorPane.java | 437 +- .../log4j/chainsaw/messages/MessageCenter.java | 372 +- .../log4j/chainsaw/osx/OSXIntegration.java | 73 +- .../chainsaw/plugins/GUIPluginSkeleton.java | 129 +- .../plugins/PluginClassLoaderFactory.java | 62 +- .../chainsaw/prefs/AbstractSettingsEvent.java | 31 +- .../log4j/chainsaw/prefs/LoadSettingsEvent.java | 101 +- .../log4j/chainsaw/prefs/MRUFileList.java | 52 +- .../prefs/MRUFileListPreferenceSaver.java | 24 +- .../log4j/chainsaw/prefs/ProfileManager.java | 41 +- .../log4j/chainsaw/prefs/Profileable.java | 19 +- .../log4j/chainsaw/prefs/SaveSettingsEvent.java | 75 +- .../log4j/chainsaw/prefs/SettingsEvent.java | 11 +- .../log4j/chainsaw/prefs/SettingsListener.java | 38 +- .../log4j/chainsaw/prefs/SettingsManager.java | 46 +- .../receivers/NewReceiverDialogPanel.java | 52 +- .../receivers/PluginPropertyEditorPanel.java | 113 +- .../receivers/ReceiverTreeCellRenderer.java | 138 +- .../chainsaw/receivers/ReceiversHelper.java | 213 +- .../chainsaw/receivers/ReceiversPanel.java | 1490 ++-- .../chainsaw/receivers/ReceiversTreeModel.java | 280 +- .../chainsaw/receivers/VisualReceiver.java | 25 +- .../log4j/chainsaw/version/VersionManager.java | 17 +- .../chainsaw/vfs/VFSLogFilePatternReceiver.java | 551 +- .../vfs/VFSLogFilePatternReceiverBeanInfo.java | 53 +- .../chainsaw/xstream/TableColumnConverter.java | 15 +- .../chainsaw/zeroconf/ZeroConfDeviceModel.java | 66 +- .../log4j/chainsaw/zeroconf/ZeroConfPlugin.java | 188 +- .../zeroconf/ZeroConfPreferenceModel.java | 10 +- .../org/apache/log4j/db/ConnectionSource.java | 77 +- .../log4j/db/ConnectionSourceSkeleton.java | 238 +- .../apache/log4j/db/CustomSQLDBReceiver.java | 149 +- .../java/org/apache/log4j/db/DBAppender.java | 495 +- src/main/java/org/apache/log4j/db/DBHelper.java | 75 +- .../java/org/apache/log4j/db/DBReceiver.java | 149 +- .../java/org/apache/log4j/db/DBReceiverJob.java | 346 +- .../log4j/db/DataSourceConnectionSource.java | 100 +- .../log4j/db/DriverManagerConnectionSource.java | 162 +- .../apache/log4j/db/JNDIConnectionSource.java | 197 +- .../apache/log4j/db/dialect/HSQLDBDialect.java | 24 +- .../apache/log4j/db/dialect/MsSQLDialect.java | 32 +- .../apache/log4j/db/dialect/MySQLDialect.java | 17 +- .../apache/log4j/db/dialect/OracleDialect.java | 16 +- .../log4j/db/dialect/PostgreSQLDialect.java | 17 +- .../org/apache/log4j/db/dialect/SQLDialect.java | 11 +- .../apache/log4j/db/dialect/SybaseDialect.java | 19 +- .../java/org/apache/log4j/db/dialect/Util.java | 162 +- src/main/java/org/apache/log4j/db/package.html | 12 +- .../org/apache/log4j/helpers/Constants.java | 67 +- .../apache/log4j/helpers/MessageFormatter.java | 35 +- .../apache/log4j/helpers/UtilLoggingLevel.java | 43 +- .../java/org/apache/log4j/net/AddressBased.java | 14 +- .../java/org/apache/log4j/net/JMSReceiver.java | 520 +- .../apache/log4j/net/JMSReceiverBeanInfo.java | 9 +- .../org/apache/log4j/net/MulticastAppender.java | 559 +- .../org/apache/log4j/net/MulticastReceiver.java | 401 +- .../log4j/net/MulticastReceiverBeanInfo.java | 7 +- .../java/org/apache/log4j/net/NetworkBased.java | 7 +- .../java/org/apache/log4j/net/PortBased.java | 12 +- .../org/apache/log4j/net/SocketHubReceiver.java | 614 +- .../java/org/apache/log4j/net/SocketNode13.java | 413 +- .../log4j/net/SocketNodeEventListener.java | 36 +- .../org/apache/log4j/net/SocketReceiver.java | 744 +- .../java/org/apache/log4j/net/UDPAppender.java | 527 +- .../java/org/apache/log4j/net/UDPReceiver.java | 411 +- .../org/apache/log4j/net/XMLSocketNode.java | 313 +- .../org/apache/log4j/net/XMLSocketReceiver.java | 521 +- .../org/apache/log4j/plugins/Pauseable.java | 7 +- .../java/org/apache/log4j/plugins/Plugin.java | 21 +- .../org/apache/log4j/plugins/PluginEvent.java | 2 +- .../apache/log4j/plugins/PluginListener.java | 6 +- .../apache/log4j/plugins/PluginRegistry.java | 18 +- .../apache/log4j/plugins/PluginSkeleton.java | 64 +- .../java/org/apache/log4j/plugins/Receiver.java | 10 +- .../apache/log4j/rewrite/MapRewritePolicy.java | 30 +- .../log4j/rewrite/PropertyRewritePolicy.java | 36 +- .../log4j/rewrite/ReflectionRewritePolicy.java | 40 +- .../apache/log4j/rewrite/RewriteAppender.java | 89 +- .../org/apache/log4j/rewrite/RewritePolicy.java | 33 +- .../org/apache/log4j/scheduler/Scheduler.java | 26 +- .../org/apache/log4j/spi/ComponentBase.java | 6 +- src/main/java/org/apache/log4j/spi/Decoder.java | 18 +- .../java/org/apache/log4j/spi/ErrorItem.java | 152 +- .../java/org/apache/log4j/spi/Log4JULogger.java | 22 +- .../apache/log4j/spi/LoggerEventListener.java | 69 +- .../spi/LoggerRepositoryEventListener.java | 59 +- .../apache/log4j/spi/LoggerRepositoryEx.java | 345 +- .../java/org/apache/log4j/spi/NOPULogger.java | 1 + .../org/apache/log4j/spi/SimpleULogger.java | 340 +- .../org/apache/log4j/spi/Thresholdable.java | 2 +- .../apache/log4j/varia/ListModelAppender.java | 80 +- .../log4j/varia/LogFilePatternReceiver.java | 1484 ++-- .../varia/LogFilePatternReceiverBeanInfo.java | 49 +- .../apache/log4j/xml/LogFileXMLReceiver.java | 40 +- .../log4j/xml/UtilLoggingEntityResolver.java | 19 +- .../apache/log4j/xml/UtilLoggingXMLDecoder.java | 688 +- .../java/org/apache/log4j/xml/XMLDecoder.java | 714 +- 181 files changed, 24719 insertions(+), 25499 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/96ebd9ad/pom.xml ---------------------------------------------------------------------- diff --git a/pom.xml b/pom.xml index 51735cd..1ae8c35 100644 --- a/pom.xml +++ b/pom.xml @@ -20,7 +20,7 @@ <parent> <groupId>org.apache.logging</groupId> <artifactId>logging-parent</artifactId> - <version>1</version> + <version>2-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <groupId>log4j</groupId> @@ -449,6 +449,12 @@ <optional>true</optional> <scope>provided</scope> </dependency> + <dependency> + <groupId>org.projectlombok</groupId> + <artifactId>lombok</artifactId> + <version>1.16.20</version> + <scope>provided</scope> + </dependency> </dependencies> <reporting> <excludeDefaults>true</excludeDefaults> http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/96ebd9ad/src/main/java/org/apache/log4j/LoggerRepositoryExImpl.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/log4j/LoggerRepositoryExImpl.java b/src/main/java/org/apache/log4j/LoggerRepositoryExImpl.java index 5235246..55d94e7 100644 --- a/src/main/java/org/apache/log4j/LoggerRepositoryExImpl.java +++ b/src/main/java/org/apache/log4j/LoggerRepositoryExImpl.java @@ -23,301 +23,298 @@ import org.apache.log4j.or.RendererMap; import org.apache.log4j.plugins.Plugin; import org.apache.log4j.plugins.PluginRegistry; import org.apache.log4j.scheduler.Scheduler; -import org.apache.log4j.spi.ErrorItem; -import org.apache.log4j.spi.HierarchyEventListener; -import org.apache.log4j.spi.LoggerEventListener; -import org.apache.log4j.spi.LoggerFactory; -import org.apache.log4j.spi.LoggerRepository; -import org.apache.log4j.spi.LoggerRepositoryEventListener; -import org.apache.log4j.spi.LoggerRepositoryEx; -import org.apache.log4j.spi.RendererSupport; -import org.apache.log4j.xml.UnrecognizedElementHandler; +import org.apache.log4j.spi.*; import org.apache.log4j.xml.DOMConfigurator; +import org.apache.log4j.xml.UnrecognizedElementHandler; import org.w3c.dom.Element; -import java.util.ArrayList; -import java.util.Enumeration; -import java.util.HashMap; -import java.util.Hashtable; -import java.util.List; -import java.util.Map; -import java.util.Properties; -import java.util.Vector; +import java.util.*; /** * This class implements LoggerRepositoryEx by - * wrapping an existing LoggerRepository implementation - * and implementing the newly added capabilities. -*/ + * wrapping an existing LoggerRepository implementation + * and implementing the newly added capabilities. + */ public final class LoggerRepositoryExImpl - implements LoggerRepositoryEx, - RendererSupport, - UnrecognizedElementHandler { + implements LoggerRepositoryEx, + RendererSupport, + UnrecognizedElementHandler { /** * Wrapped logger repository. */ - private final LoggerRepository repo; + private final LoggerRepository repo; /** * Logger factory. Does not affect class of logger * created by underlying repository. */ - private LoggerFactory loggerFactory; + private LoggerFactory loggerFactory; /** - * Renderer support. + * Renderer support. */ - private final RendererSupport rendererSupport; + private final RendererSupport rendererSupport; /** * List of repository event listeners. */ - private final ArrayList<LoggerRepositoryEventListener> repositoryEventListeners = new ArrayList<>(); + private final ArrayList<LoggerRepositoryEventListener> repositoryEventListeners = new ArrayList<>(); /** * Map of HierarchyEventListener keyed by LoggingEventListener. */ - private final Map<LoggerEventListener, HierarchyEventListenerProxy> loggerEventListeners = new HashMap<>(); + private final Map<LoggerEventListener, HierarchyEventListenerProxy> loggerEventListeners = new HashMap<>(); /** * Name of hierarchy. */ - private String name; + private String name; /** * Plug in registry. */ - private PluginRegistry pluginRegistry; + private PluginRegistry pluginRegistry; /** * Properties. */ - private final Map<String, String> properties = new Hashtable<>(); + private final Map<String, String> properties = new Hashtable<>(); /** * Scheduler. */ - private Scheduler scheduler; + private Scheduler scheduler; - /** The repository can also be used as an object store - * for various objects used by log4j components. - */ - private Map<String, Object> objectMap = new HashMap<>(); + /** + * The repository can also be used as an object store + * for various objects used by log4j components. + */ + private Map<String, Object> objectMap = new HashMap<>(); /** * Error list. */ - private List<ErrorItem> errorList = new Vector<>(); + private List<ErrorItem> errorList = new Vector<>(); /** * True if hierarchy has not been modified. */ - private boolean pristine = true; - - /** - Constructs a new logger hierarchy. - - @param repository Base implementation of repository. - - */ - public LoggerRepositoryExImpl(final LoggerRepository repository) { - super(); - if (repository == null) { - throw new NullPointerException("repository"); - } - repo = repository; - if (repository instanceof RendererSupport) { - rendererSupport = (RendererSupport) repository; - } else { - rendererSupport = new RendererSupportImpl(); - } - } - - - /** - Add a {@link LoggerRepositoryEventListener} to the repository. The - listener will be called when repository events occur. - @param listener listener - */ - public void addLoggerRepositoryEventListener( - final LoggerRepositoryEventListener listener) { - synchronized (repositoryEventListeners) { - if (repositoryEventListeners.contains(listener)) { - LogLog.warn( - "Ignoring attempt to add a previously " - + "registered LoggerRepositoryEventListener."); - } else { - repositoryEventListeners.add(listener); - } - } - } - - - /** - Remove a {@link LoggerRepositoryEventListener} from the repository. - @param listener listener - */ - public void removeLoggerRepositoryEventListener( - final LoggerRepositoryEventListener listener) { - synchronized (repositoryEventListeners) { - if (!repositoryEventListeners.contains(listener)) { - LogLog.warn( - "Ignoring attempt to remove a " - + "non-registered LoggerRepositoryEventListener."); - } else { - repositoryEventListeners.remove(listener); - } - } - } - - /** - Add a {@link LoggerEventListener} to the repository. The listener - will be called when repository events occur. - @param listener listener - */ - public void addLoggerEventListener(final LoggerEventListener listener) { - synchronized (loggerEventListeners) { - if (loggerEventListeners.get(listener) != null) { - LogLog.warn( - "Ignoring attempt to add a previously registerd LoggerEventListener."); - } else { - HierarchyEventListenerProxy proxy = - new HierarchyEventListenerProxy(listener); - loggerEventListeners.put(listener, proxy); - repo.addHierarchyEventListener(proxy); - } - } - } - - /** - Add a {@link org.apache.log4j.spi.HierarchyEventListener} - event to the repository. - @param listener listener - @deprecated Superceded by addLoggerEventListener - */ - public - void addHierarchyEventListener(final HierarchyEventListener listener) { + private boolean pristine = true; + + /** + * Constructs a new logger hierarchy. + * + * @param repository Base implementation of repository. + */ + public LoggerRepositoryExImpl(final LoggerRepository repository) { + super(); + if (repository == null) { + throw new NullPointerException("repository"); + } + repo = repository; + if (repository instanceof RendererSupport) { + rendererSupport = (RendererSupport) repository; + } else { + rendererSupport = new RendererSupportImpl(); + } + } + + + /** + * Add a {@link LoggerRepositoryEventListener} to the repository. The + * listener will be called when repository events occur. + * + * @param listener listener + */ + public void addLoggerRepositoryEventListener( + final LoggerRepositoryEventListener listener) { + synchronized (repositoryEventListeners) { + if (repositoryEventListeners.contains(listener)) { + LogLog.warn( + "Ignoring attempt to add a previously " + + "registered LoggerRepositoryEventListener."); + } else { + repositoryEventListeners.add(listener); + } + } + } + + + /** + * Remove a {@link LoggerRepositoryEventListener} from the repository. + * + * @param listener listener + */ + public void removeLoggerRepositoryEventListener( + final LoggerRepositoryEventListener listener) { + synchronized (repositoryEventListeners) { + if (!repositoryEventListeners.contains(listener)) { + LogLog.warn( + "Ignoring attempt to remove a " + + "non-registered LoggerRepositoryEventListener."); + } else { + repositoryEventListeners.remove(listener); + } + } + } + + /** + * Add a {@link LoggerEventListener} to the repository. The listener + * will be called when repository events occur. + * + * @param listener listener + */ + public void addLoggerEventListener(final LoggerEventListener listener) { + synchronized (loggerEventListeners) { + if (loggerEventListeners.get(listener) != null) { + LogLog.warn( + "Ignoring attempt to add a previously registerd LoggerEventListener."); + } else { + HierarchyEventListenerProxy proxy = + new HierarchyEventListenerProxy(listener); + loggerEventListeners.put(listener, proxy); + repo.addHierarchyEventListener(proxy); + } + } + } + + /** + * Add a {@link org.apache.log4j.spi.HierarchyEventListener} + * event to the repository. + * + * @param listener listener + * @deprecated Superceded by addLoggerEventListener + */ + public void addHierarchyEventListener(final HierarchyEventListener listener) { repo.addHierarchyEventListener(listener); } - /** - Remove a {@link LoggerEventListener} from the repository. - @param listener listener to be removed - */ - public void removeLoggerEventListener(final LoggerEventListener listener) { - synchronized (loggerEventListeners) { - HierarchyEventListenerProxy proxy = - loggerEventListeners.get(listener); - if (proxy == null) { - LogLog.warn( - "Ignoring attempt to remove a non-registered LoggerEventListener."); - } else { - loggerEventListeners.remove(listener); - proxy.disable(); - } + /** + * Remove a {@link LoggerEventListener} from the repository. + * + * @param listener listener to be removed + */ + public void removeLoggerEventListener(final LoggerEventListener listener) { + synchronized (loggerEventListeners) { + HierarchyEventListenerProxy proxy = + loggerEventListeners.get(listener); + if (proxy == null) { + LogLog.warn( + "Ignoring attempt to remove a non-registered LoggerEventListener."); + } else { + loggerEventListeners.remove(listener); + proxy.disable(); + } + } } - } /** * Issue warning that there are no appenders in hierarchy. + * * @param cat logger, not currently used. */ - public void emitNoAppenderWarning(final Category cat) { - repo.emitNoAppenderWarning(cat); - } - - /** - Check if the named logger exists in the hierarchy. If so return - its reference, otherwise returns <code>null</code>. - - @param loggerName The name of the logger to search for. - @return true if logger exists. - */ - public Logger exists(final String loggerName) { - return repo.exists(loggerName); - } - - /** - * Return the name of this hierarchy. - * @return name of hierarchy - */ - public String getName() { - return name; - } - - /** - * Set the name of this repository. - * - * Note that once named, a repository cannot be rerenamed. - * @param repoName name of hierarchy - */ - public void setName(final String repoName) { - if (name == null) { - name = repoName; - } else if (!name.equals(repoName)) { - throw new IllegalStateException( - "Repository [" + name + "] cannot be renamed as [" + repoName + "]."); - } - } - - /** - * {@inheritDoc} - */ - public Map<String, String> getProperties() { - return properties; - } - - /** - * {@inheritDoc} - */ - public String getProperty(final String key) { - return properties.get(key); - } - - /** - * Set a property by key and value. The property will be shared by all - * events in this repository. - * @param key property name - * @param value property value - */ - public void setProperty(final String key, - final String value) { - properties.put(key, value); - } - - /** - The string form of {@link #setThreshold(Level)}. - @param levelStr symbolic name for level - */ - public void setThreshold(final String levelStr) { - repo.setThreshold(levelStr); - } - - /** - Enable logging for logging requests with level <code>l</code> or - higher. By default all levels are enabled. - - @param l The minimum level for which logging requests are sent to - their appenders. */ - public void setThreshold(final Level l) { - repo.setThreshold(l); - } - - /** - * {@inheritDoc} - */ - public PluginRegistry getPluginRegistry() { - if (pluginRegistry == null) { - pluginRegistry = new PluginRegistry(this); - } - return pluginRegistry; - } - - - /** - Requests that a appender added event be sent to any registered - {@link LoggerEventListener}. - @param logger The logger to which the appender was added. - @param appender The appender added to the logger. + public void emitNoAppenderWarning(final Category cat) { + repo.emitNoAppenderWarning(cat); + } + + /** + * Check if the named logger exists in the hierarchy. If so return + * its reference, otherwise returns <code>null</code>. + * + * @param loggerName The name of the logger to search for. + * @return true if logger exists. + */ + public Logger exists(final String loggerName) { + return repo.exists(loggerName); + } + + /** + * Return the name of this hierarchy. + * + * @return name of hierarchy + */ + public String getName() { + return name; + } + + /** + * Set the name of this repository. + * <p> + * Note that once named, a repository cannot be rerenamed. + * + * @param repoName name of hierarchy + */ + public void setName(final String repoName) { + if (name == null) { + name = repoName; + } else if (!name.equals(repoName)) { + throw new IllegalStateException( + "Repository [" + name + "] cannot be renamed as [" + repoName + "]."); + } + } + + /** + * {@inheritDoc} + */ + public Map<String, String> getProperties() { + return properties; + } + + /** + * {@inheritDoc} + */ + public String getProperty(final String key) { + return properties.get(key); + } + + /** + * Set a property by key and value. The property will be shared by all + * events in this repository. + * + * @param key property name + * @param value property value + */ + public void setProperty(final String key, + final String value) { + properties.put(key, value); + } + + /** + * The string form of {@link #setThreshold(Level)}. + * + * @param levelStr symbolic name for level + */ + public void setThreshold(final String levelStr) { + repo.setThreshold(levelStr); + } + + /** + * Enable logging for logging requests with level <code>l</code> or + * higher. By default all levels are enabled. + * + * @param l The minimum level for which logging requests are sent to + * their appenders. + */ + public void setThreshold(final Level l) { + repo.setThreshold(l); + } + + /** + * {@inheritDoc} + */ + public PluginRegistry getPluginRegistry() { + if (pluginRegistry == null) { + pluginRegistry = new PluginRegistry(this); + } + return pluginRegistry; + } + + + /** + * Requests that a appender added event be sent to any registered + * {@link LoggerEventListener}. + * + * @param logger The logger to which the appender was added. + * @param appender The appender added to the logger. */ public void fireAddAppenderEvent(final Category logger, final Appender appender) { @@ -326,270 +323,285 @@ public final class LoggerRepositoryExImpl /** - Requests that a appender removed event be sent to any registered - {@link LoggerEventListener}. - @param logger The logger from which the appender was removed. - @param appender The appender removed from the logger. - */ + * Requests that a appender removed event be sent to any registered + * {@link LoggerEventListener}. + * + * @param logger The logger from which the appender was removed. + * @param appender The appender removed from the logger. + */ public void fireRemoveAppenderEvent(final Category logger, final Appender appender) { - if (repo instanceof Hierarchy) { - ((Hierarchy) repo).fireRemoveAppenderEvent(logger, appender); - } - } - - - /** - Requests that a level changed event be sent to any registered - {@link LoggerEventListener}. - @param logger The logger which changed levels. - */ - public void fireLevelChangedEvent(final Logger logger) { - } - - /** - * - * Requests that a configuration changed event be sent to any registered - * {@link LoggerRepositoryEventListener}. - * - */ - public void fireConfigurationChangedEvent() { - } - - - /** - Returns the current threshold. - @return current threshold level - - @since 1.2 */ - public Level getThreshold() { - return repo.getThreshold(); - } - - - /** - Return a new logger instance named as the first parameter using - the default factory. - - <p>If a logger of that name already exists, then it will be - returned. Otherwise, a new logger will be instantiated and - then linked with its existing ancestors as well as children. - - @param loggerName The name of the logger to retrieve. - @return logger - - */ - public Logger getLogger(final String loggerName) { - return repo.getLogger(loggerName); - } - - /** - Return a new logger instance named as the first parameter using - <code>factory</code>. - - <p>If a logger of that name already exists, then it will be - returned. Otherwise, a new logger will be instantiated by the - <code>factory</code> parameter and linked with its existing - ancestors as well as children. - - @param loggerName The name of the logger to retrieve. - @param factory The factory that will make the new logger instance. - @return logger - - */ - public Logger getLogger(final String loggerName, - final LoggerFactory factory) { - return repo.getLogger(loggerName, factory); - } - - /** - Returns all the currently defined categories in this hierarchy as - an {@link java.util.Enumeration Enumeration}. - - <p>The root logger is <em>not</em> included in the returned - {@link Enumeration}. - @return enumerator of current loggers - */ - public Enumeration getCurrentLoggers() { - return repo.getCurrentLoggers(); - } - - /** - * Return the the list of previously encoutered {@link ErrorItem error items}. - * @return list of errors - */ - public List<ErrorItem> getErrorList() { - return errorList; - } - - /** - * Add an error item to the list of previously encountered errors. - * @param errorItem error to add to list of errors. - */ - public void addErrorItem(final ErrorItem errorItem) { - getErrorList().add(errorItem); - } - - /** - * Get enumerator over current loggers. - * @return enumerator over current loggers - @deprecated Please use {@link #getCurrentLoggers} instead. - */ - public Enumeration getCurrentCategories() { - return repo.getCurrentCategories(); - } - - /** - Get the renderer map for this hierarchy. - @return renderer map - */ - public RendererMap getRendererMap() { - return rendererSupport.getRendererMap(); - } - - /** - Get the root of this hierarchy. - - @since 0.9.0 - @return root of hierarchy - */ - public Logger getRootLogger() { - return repo.getRootLogger(); - } - - /** - This method will return <code>true</code> if this repository is - disabled for <code>level</code> value passed as parameter and - <code>false</code> otherwise. See also the {@link - #setThreshold(Level) threshold} method. - @param level numeric value for level. - @return true if disabled for specified level - */ - public boolean isDisabled(final int level) { - return repo.isDisabled(level); - } - - /** - Reset all values contained in this hierarchy instance to their - default. This removes all appenders from all categories, sets - the level of all non-root categories to <code>null</code>, - sets their additivity flag to <code>true</code> and sets the level - of the root logger to DEBUG. Moreover, - message disabling is set its default "off" value. - - <p>Existing categories are not removed. They are just reset. - - <p>This method should be used sparingly and with care as it will - block all logging until it is completed.</p> - - @since 0.8.5 */ - public void resetConfiguration() { - repo.resetConfiguration(); - } - - /** - Used by subclasses to add a renderer to the hierarchy passed as parameter. - @param renderedClass class - @param renderer object used to render class. - */ - public void setRenderer(final Class renderedClass, - final ObjectRenderer renderer) { - rendererSupport.setRenderer(renderedClass, renderer); - } - - /** - * {@inheritDoc} - */ - public boolean isPristine() { - return pristine; - } - - /** - * {@inheritDoc} - */ - public void setPristine(final boolean state) { - pristine = state; - } - - /** - Shutting down a hierarchy will <em>safely</em> close and remove - all appenders in all categories including the root logger. - - <p>Some appenders such as org.apache.log4j.net.SocketAppender - and AsyncAppender need to be closed before the - application exists. Otherwise, pending logging events might be - lost. - - <p>The <code>shutdown</code> method is careful to close nested - appenders before closing regular appenders. This is allows - configurations where a regular appender is attached to a logger - and again to a nested appender. - - @since 1.0 */ - public void shutdown() { - repo.shutdown(); - } - - - /** - * Return this repository's own scheduler. - * The scheduler is lazily instantiated. - * @return this repository's own scheduler. - */ - public Scheduler getScheduler() { - if (scheduler == null) { - scheduler = new Scheduler(); - scheduler.setDaemon(true); - scheduler.start(); - } - return scheduler; - } + if (repo instanceof Hierarchy) { + ((Hierarchy) repo).fireRemoveAppenderEvent(logger, appender); + } + } + + + /** + * Requests that a level changed event be sent to any registered + * {@link LoggerEventListener}. + * + * @param logger The logger which changed levels. + */ + public void fireLevelChangedEvent(final Logger logger) { + } + + /** + * Requests that a configuration changed event be sent to any registered + * {@link LoggerRepositoryEventListener}. + */ + public void fireConfigurationChangedEvent() { + } + + + /** + * Returns the current threshold. + * + * @return current threshold level + * @since 1.2 + */ + public Level getThreshold() { + return repo.getThreshold(); + } + + + /** + * Return a new logger instance named as the first parameter using + * the default factory. + * <p> + * <p>If a logger of that name already exists, then it will be + * returned. Otherwise, a new logger will be instantiated and + * then linked with its existing ancestors as well as children. + * + * @param loggerName The name of the logger to retrieve. + * @return logger + */ + public Logger getLogger(final String loggerName) { + return repo.getLogger(loggerName); + } + + /** + * Return a new logger instance named as the first parameter using + * <code>factory</code>. + * <p> + * <p>If a logger of that name already exists, then it will be + * returned. Otherwise, a new logger will be instantiated by the + * <code>factory</code> parameter and linked with its existing + * ancestors as well as children. + * + * @param loggerName The name of the logger to retrieve. + * @param factory The factory that will make the new logger instance. + * @return logger + */ + public Logger getLogger(final String loggerName, + final LoggerFactory factory) { + return repo.getLogger(loggerName, factory); + } + + /** + * Returns all the currently defined categories in this hierarchy as + * an {@link java.util.Enumeration Enumeration}. + * <p> + * <p>The root logger is <em>not</em> included in the returned + * {@link Enumeration}. + * + * @return enumerator of current loggers + */ + public Enumeration getCurrentLoggers() { + return repo.getCurrentLoggers(); + } + + /** + * Return the the list of previously encoutered {@link ErrorItem error items}. + * + * @return list of errors + */ + public List<ErrorItem> getErrorList() { + return errorList; + } + + /** + * Add an error item to the list of previously encountered errors. + * + * @param errorItem error to add to list of errors. + */ + public void addErrorItem(final ErrorItem errorItem) { + getErrorList().add(errorItem); + } + + /** + * Get enumerator over current loggers. + * + * @return enumerator over current loggers + * @deprecated Please use {@link #getCurrentLoggers} instead. + */ + public Enumeration getCurrentCategories() { + return repo.getCurrentCategories(); + } + + /** + * Get the renderer map for this hierarchy. + * + * @return renderer map + */ + public RendererMap getRendererMap() { + return rendererSupport.getRendererMap(); + } + + /** + * Get the root of this hierarchy. + * + * @return root of hierarchy + * @since 0.9.0 + */ + public Logger getRootLogger() { + return repo.getRootLogger(); + } + + /** + * This method will return <code>true</code> if this repository is + * disabled for <code>level</code> value passed as parameter and + * <code>false</code> otherwise. See also the {@link + * #setThreshold(Level) threshold} method. + * + * @param level numeric value for level. + * @return true if disabled for specified level + */ + public boolean isDisabled(final int level) { + return repo.isDisabled(level); + } + + /** + * Reset all values contained in this hierarchy instance to their + * default. This removes all appenders from all categories, sets + * the level of all non-root categories to <code>null</code>, + * sets their additivity flag to <code>true</code> and sets the level + * of the root logger to DEBUG. Moreover, + * message disabling is set its default "off" value. + * <p> + * <p>Existing categories are not removed. They are just reset. + * <p> + * <p>This method should be used sparingly and with care as it will + * block all logging until it is completed.</p> + * + * @since 0.8.5 + */ + public void resetConfiguration() { + repo.resetConfiguration(); + } + + /** + * Used by subclasses to add a renderer to the hierarchy passed as parameter. + * + * @param renderedClass class + * @param renderer object used to render class. + */ + public void setRenderer(final Class renderedClass, + final ObjectRenderer renderer) { + rendererSupport.setRenderer(renderedClass, renderer); + } + + /** + * {@inheritDoc} + */ + public boolean isPristine() { + return pristine; + } + + /** + * {@inheritDoc} + */ + public void setPristine(final boolean state) { + pristine = state; + } + + /** + * Shutting down a hierarchy will <em>safely</em> close and remove + * all appenders in all categories including the root logger. + * <p> + * <p>Some appenders such as org.apache.log4j.net.SocketAppender + * and AsyncAppender need to be closed before the + * application exists. Otherwise, pending logging events might be + * lost. + * <p> + * <p>The <code>shutdown</code> method is careful to close nested + * appenders before closing regular appenders. This is allows + * configurations where a regular appender is attached to a logger + * and again to a nested appender. + * + * @since 1.0 + */ + public void shutdown() { + repo.shutdown(); + } + + + /** + * Return this repository's own scheduler. + * The scheduler is lazily instantiated. + * + * @return this repository's own scheduler. + */ + public Scheduler getScheduler() { + if (scheduler == null) { + scheduler = new Scheduler(); + scheduler.setDaemon(true); + scheduler.start(); + } + return scheduler; + } /** * Puts object by key. - * @param key key, may not be null. + * + * @param key key, may not be null. * @param value object to associate with key. */ - public void putObject(final String key, - final Object value) { - objectMap.put(key, value); - } + public void putObject(final String key, + final Object value) { + objectMap.put(key, value); + } /** * Get object by key. + * * @param key key, may not be null. * @return object associated with key or null. */ - public Object getObject(final String key) { - return objectMap.get(key); - } + public Object getObject(final String key) { + return objectMap.get(key); + } /** * Set logger factory. + * * @param factory logger factory. */ - public void setLoggerFactory(final LoggerFactory factory) { - if (factory == null) { - throw new NullPointerException(); + public void setLoggerFactory(final LoggerFactory factory) { + if (factory == null) { + throw new NullPointerException(); + } + this.loggerFactory = factory; } - this.loggerFactory = factory; - } /** * Get logger factory. + * * @return logger factory. */ - public LoggerFactory getLoggerFactory() { - return loggerFactory; - } + public LoggerFactory getLoggerFactory() { + return loggerFactory; + } - /** {@inheritDoc} */ + /** + * {@inheritDoc} + */ public boolean parseUnrecognizedElement( - final Element element, - final Properties props) throws Exception { + final Element element, + final Properties props) throws Exception { if ("plugin".equals(element.getNodeName())) { Object instance = - DOMConfigurator.parseElement(element, props, Plugin.class); + DOMConfigurator.parseElement(element, props, Plugin.class); if (instance instanceof Plugin) { Plugin plugin = (Plugin) instance; String pluginName = DOMConfigurator.subst(element.getAttribute("name"), props); @@ -608,90 +620,99 @@ public final class LoggerRepositoryExImpl } - /** * Implementation of RendererSupportImpl if not * provided by LoggerRepository. */ - private static final class RendererSupportImpl implements RendererSupport { + private static final class RendererSupportImpl implements RendererSupport { /** * Renderer map. */ - private final RendererMap renderers = new RendererMap(); + private final RendererMap renderers = new RendererMap(); /** * Create new instance. */ - public RendererSupportImpl() { - super(); - } + public RendererSupportImpl() { + super(); + } - /** {@inheritDoc} */ - public RendererMap getRendererMap() { - return renderers; - } + /** + * {@inheritDoc} + */ + public RendererMap getRendererMap() { + return renderers; + } - /** {@inheritDoc} */ - public void setRenderer(final Class renderedClass, - final ObjectRenderer renderer) { - renderers.put(renderedClass, renderer); - } - } + /** + * {@inheritDoc} + */ + public void setRenderer(final Class renderedClass, + final ObjectRenderer renderer) { + renderers.put(renderedClass, renderer); + } + } /** * Proxy that implements HierarchyEventListener * and delegates to LoggerEventListener. */ - private static final class HierarchyEventListenerProxy + private static final class HierarchyEventListenerProxy implements HierarchyEventListener { /** * Wrapper listener. */ - private LoggerEventListener listener; + private LoggerEventListener listener; /** * Creates new instance. + * * @param l listener */ - public HierarchyEventListenerProxy(final LoggerEventListener l) { - super(); - if (l == null) { - throw new NullPointerException("l"); - } - listener = l; - } - - /** {@inheritDoc} */ - public void addAppenderEvent(final Category cat, - final Appender appender) { - if (isEnabled() && cat instanceof Logger) { + public HierarchyEventListenerProxy(final LoggerEventListener l) { + super(); + if (l == null) { + throw new NullPointerException("l"); + } + listener = l; + } + + /** + * {@inheritDoc} + */ + public void addAppenderEvent(final Category cat, + final Appender appender) { + if (isEnabled() && cat instanceof Logger) { listener.appenderAddedEvent((Logger) cat, appender); - } - } + } + } - /** {@inheritDoc} */ - public void removeAppenderEvent(final Category cat, - final Appender appender) { - if (isEnabled() && cat instanceof Logger) { + /** + * {@inheritDoc} + */ + public void removeAppenderEvent(final Category cat, + final Appender appender) { + if (isEnabled() && cat instanceof Logger) { listener.appenderRemovedEvent((Logger) cat, appender); - } - } + } + } /** * Disable forwarding of notifications to * simulate removal of listener. */ - public synchronized void disable() { - listener = null; - } + public synchronized void disable() { + listener = null; + } /** * Gets whether proxy is enabled. + * * @return true if proxy is enabled. */ - private synchronized boolean isEnabled() { - return listener != null; - } - } + private synchronized boolean isEnabled() { + return listener != null; + } + } } http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/96ebd9ad/src/main/java/org/apache/log4j/ULogger.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/log4j/ULogger.java b/src/main/java/org/apache/log4j/ULogger.java index 83a6bb8..de4c813 100644 --- a/src/main/java/org/apache/log4j/ULogger.java +++ b/src/main/java/org/apache/log4j/ULogger.java @@ -20,183 +20,207 @@ package org.apache.log4j; /** * A proxy for org.slf4j.ULogger. In slf4j implementing builds, this - * interface will extend org.slf4j.ULogger and add no additional methods. + * interface will extend org.slf4j.ULogger and add no additional methods. * * @author Ceki Gülcü * @author Curt Arnold */ - public interface ULogger { - - - /** - * Is the logger instance enabled for the DEBUG level? - * @return true if debug is enabled. - */ - boolean isDebugEnabled(); - - /** - * Log a message object with the DEBUG level. - * @param msg - the message object to be logged - */ - void debug(Object msg); - - - /** - * Log a parameterized message object at the DEBUG level. - * - * <p>This form is useful in avoiding the superflous object creation - * problem when invoking this method while it is disabled. - * </p> - * @param parameterizedMsg - the parameterized message object - * @param param1 - the parameter - */ - void debug(Object parameterizedMsg, Object param1); - - /** - * Log a parameterized message object at the DEBUG level. - * - * <p>This form is useful in avoiding the superflous object creation - * problem when invoking this method while it is disabled. - * </p> - * @param parameterizedMsg - the parameterized message object - * @param param1 - the first parameter - * @param param2 - the second parameter - */ - void debug(String parameterizedMsg, Object param1, Object param2); +public interface ULogger { + + + /** + * Is the logger instance enabled for the DEBUG level? + * + * @return true if debug is enabled. + */ + boolean isDebugEnabled(); + + /** + * Log a message object with the DEBUG level. + * + * @param msg - the message object to be logged + */ + void debug(Object msg); + + + /** + * Log a parameterized message object at the DEBUG level. + * <p> + * <p>This form is useful in avoiding the superflous object creation + * problem when invoking this method while it is disabled. + * </p> + * + * @param parameterizedMsg - the parameterized message object + * @param param1 - the parameter + */ + void debug(Object parameterizedMsg, Object param1); + + /** + * Log a parameterized message object at the DEBUG level. + * <p> + * <p>This form is useful in avoiding the superflous object creation + * problem when invoking this method while it is disabled. + * </p> + * + * @param parameterizedMsg - the parameterized message object + * @param param1 - the first parameter + * @param param2 - the second parameter + */ + void debug(String parameterizedMsg, Object param1, Object param2); + /** * Log a message object with the <code>DEBUG</code> level including the * stack trace of the {@link Throwable}<code>t</code> passed as parameter. * - * * @param msg the message object to log. - * @param t the exception to log, including its stack trace. + * @param t the exception to log, including its stack trace. */ - void debug(Object msg, Throwable t); + void debug(Object msg, Throwable t); /** * Is the logger instance enabled for the INFO level? + * * @return true if debug is enabled. */ - boolean isInfoEnabled(); + boolean isInfoEnabled(); + /** * Log a message object with the INFO level. + * * @param msg - the message object to be logged */ - void info(Object msg); + void info(Object msg); + /** * Log a parameterized message object at the INFO level. - * + * <p> * <p>This form is useful in avoiding the superflous object creation * problem when invoking this method while it is disabled. * </p> + * * @param parameterizedMsg - the parameterized message object - * @param param1 - the parameter + * @param param1 - the parameter */ - void info(Object parameterizedMsg, Object param1); + void info(Object parameterizedMsg, Object param1); + /** * Log a parameterized message object at the INFO level. - * + * <p> * <p>This form is useful in avoiding the superflous object creation * problem when invoking this method while it is disabled. * </p> + * * @param parameterizedMsg - the parameterized message object - * @param param1 - the first parameter - * @param param2 - the second parameter + * @param param1 - the first parameter + * @param param2 - the second parameter */ - void info(String parameterizedMsg, Object param1, Object param2); + void info(String parameterizedMsg, Object param1, Object param2); + /** * Log a message object with the <code>INFO</code> level including the * stack trace of the {@link Throwable}<code>t</code> passed as parameter. * - * * @param msg the message object to log. - * @param t the exception to log, including its stack trace. + * @param t the exception to log, including its stack trace. */ - void info(Object msg, Throwable t); + void info(Object msg, Throwable t); /** * Is the logger instance enabled for the WARN level? + * * @return true if debug is enabled. */ - boolean isWarnEnabled(); + boolean isWarnEnabled(); + /** * Log a message object with the WARN level. + * * @param msg - the message object to be logged */ - void warn(Object msg); + void warn(Object msg); + /** * Log a parameterized message object at the WARN level. - * + * <p> * <p>This form is useful in avoiding the superflous object creation * problem when invoking this method while it is disabled. * </p> + * * @param parameterizedMsg - the parameterized message object - * @param param1 - the parameter + * @param param1 - the parameter */ - void warn(Object parameterizedMsg, Object param1); + void warn(Object parameterizedMsg, Object param1); + /** * Log a parameterized message object at the WARN level. - * + * <p> * <p>This form is useful in avoiding the superflous object creation * problem when invoking this method while it is disabled. * </p> + * * @param parameterizedMsg - the parameterized message object - * @param param1 - the first parameter - * @param param2 - the second parameter + * @param param1 - the first parameter + * @param param2 - the second parameter */ - void warn(String parameterizedMsg, Object param1, Object param2); + void warn(String parameterizedMsg, Object param1, Object param2); + /** * Log a message object with the <code>WARN</code> level including the * stack trace of the {@link Throwable}<code>t</code> passed as parameter. * - * * @param msg the message object to log. - * @param t the exception to log, including its stack trace. + * @param t the exception to log, including its stack trace. */ - void warn(Object msg, Throwable t); + void warn(Object msg, Throwable t); /** * Is the logger instance enabled for the ERROR level? + * * @return true if debug is enabled. */ - boolean isErrorEnabled(); + boolean isErrorEnabled(); + /** * Log a message object with the ERROR level. + * * @param msg - the message object to be logged */ - void error(Object msg); + void error(Object msg); + /** * Log a parameterized message object at the ERROR level. - * + * <p> * <p>This form is useful in avoiding the superflous object creation * problem when invoking this method while it is disabled. * </p> + * * @param parameterizedMsg - the parameterized message object - * @param param1 - the parameter + * @param param1 - the parameter */ - void error(Object parameterizedMsg, Object param1); + void error(Object parameterizedMsg, Object param1); + /** * Log a parameterized message object at the ERROR level. - * + * <p> * <p>This form is useful in avoiding the superflous object creation * problem when invoking this method while it is disabled. * </p> + * * @param parameterizedMsg - the parameterized message object - * @param param1 - the first parameter - * @param param2 - the second parameter + * @param param1 - the first parameter + * @param param2 - the second parameter */ - void error(String parameterizedMsg, Object param1, Object param2); + void error(String parameterizedMsg, Object param1, Object param2); /** * Log a message object with the <code>ERROR</code> level including the * stack trace of the {@link Throwable}<code>t</code> passed as parameter. * - * * @param msg the message object to log. - * @param t the exception to log, including its stack trace. + * @param t the exception to log, including its stack trace. */ void error(Object msg, Throwable t); http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/96ebd9ad/src/main/java/org/apache/log4j/chainsaw/AbstractPreferencePanel.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/log4j/chainsaw/AbstractPreferencePanel.java b/src/main/java/org/apache/log4j/chainsaw/AbstractPreferencePanel.java index 810f319..63bb0b9 100644 --- a/src/main/java/org/apache/log4j/chainsaw/AbstractPreferencePanel.java +++ b/src/main/java/org/apache/log4j/chainsaw/AbstractPreferencePanel.java @@ -5,49 +5,33 @@ * 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.log4j.chainsaw; -import java.awt.BorderLayout; -import java.awt.Color; -import java.awt.Component; -import java.awt.Dimension; +import org.apache.log4j.chainsaw.helper.SwingHelper; +import org.apache.log4j.chainsaw.icons.ChainsawIcons; + +import javax.swing.*; +import javax.swing.tree.*; +import java.awt.*; import java.awt.event.ActionListener; import java.util.Enumeration; import java.util.List; -import javax.swing.BorderFactory; -import javax.swing.Box; -import javax.swing.JButton; -import javax.swing.JComponent; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.JScrollPane; -import javax.swing.JTree; -import javax.swing.SwingUtilities; -import javax.swing.tree.DefaultMutableTreeNode; -import javax.swing.tree.DefaultTreeCellRenderer; -import javax.swing.tree.DefaultTreeSelectionModel; -import javax.swing.tree.TreeModel; -import javax.swing.tree.TreePath; -import javax.swing.tree.TreeSelectionModel; - -import org.apache.log4j.chainsaw.helper.SwingHelper; -import org.apache.log4j.chainsaw.icons.ChainsawIcons; /** * Some basic plumbing for Preference related dialogs. - * + * * Sub classes have the following responsibilities: - * + * * <ul> * <li>Must call this this classes initComponents() method from * within the sub-classes constructor, this method laysout the @@ -58,146 +42,140 @@ import org.apache.log4j.chainsaw.icons.ChainsawIcons; * as the selected editable Preference panel. This JComponent's .toString() method is * used as the title of the preference panel * </ul> - * - * @author Paul Smith <psm...@apache.org> * + * @author Paul Smith <psm...@apache.org> */ -public abstract class AbstractPreferencePanel extends JPanel -{ - - private final JLabel titleLabel = new JLabel("Selected Pref Panel"); - private final JPanel mainPanel = new JPanel(new BorderLayout(10, 10)); - private final JPanel selectedPrefPanel = new JPanel(new BorderLayout(0, 3)); - private final JButton okButton = new JButton(" OK "); - private final JButton cancelButton = new JButton(" Cancel "); - private ActionListener okCancelListener; - private Component currentlyDisplayedPanel = null; - private final JTree prefTree = new JTree(); - /** - * Setup and layout for the components - */ - protected void initComponents() - { - // setBorder(BorderFactory.createLineBorder(Color.red)); - setLayout(new BorderLayout(5, 5)); - setBorder(BorderFactory.createEmptyBorder(15, 15, 15, 15)); - - prefTree.setModel(createTreeModel()); - - prefTree.setRootVisible(false); - - DefaultTreeCellRenderer renderer = new DefaultTreeCellRenderer(); - renderer.setLeafIcon(ChainsawIcons.ICON_PREFERENCES); - prefTree.setCellRenderer(renderer); - - final JScrollPane treeScroll = new JScrollPane(prefTree); - - treeScroll.setPreferredSize(new Dimension(200, 240)); - - titleLabel.setFont(titleLabel.getFont().deriveFont(16.0f)); - titleLabel.setBorder(BorderFactory.createEtchedBorder()); - titleLabel.setBackground(Color.white); - titleLabel.setOpaque(true); - - selectedPrefPanel.add(titleLabel, BorderLayout.NORTH); - - mainPanel.add(treeScroll, BorderLayout.WEST); - mainPanel.add(selectedPrefPanel, BorderLayout.CENTER); - - add(mainPanel, BorderLayout.CENTER); - - Box buttonBox = Box.createHorizontalBox(); - List<JButton> buttons = SwingHelper.orderOKCancelButtons(okButton, cancelButton); - buttonBox.add(Box.createHorizontalGlue()); - buttonBox.add(buttons.get(0)); - buttonBox.add(Box.createHorizontalStrut(10)); - buttonBox.add(buttons.get(1)); - - add(buttonBox, BorderLayout.SOUTH); - - DefaultTreeSelectionModel treeSelectionModel = - new DefaultTreeSelectionModel(); - treeSelectionModel.setSelectionMode( - TreeSelectionModel.SINGLE_TREE_SELECTION); - prefTree.setSelectionModel(treeSelectionModel); - prefTree.addTreeSelectionListener( +public abstract class AbstractPreferencePanel extends JPanel { + + private final JLabel titleLabel = new JLabel("Selected Pref Panel"); + private final JPanel mainPanel = new JPanel(new BorderLayout(10, 10)); + private final JPanel selectedPrefPanel = new JPanel(new BorderLayout(0, 3)); + private final JButton okButton = new JButton(" OK "); + private final JButton cancelButton = new JButton(" Cancel "); + private ActionListener okCancelListener; + private Component currentlyDisplayedPanel = null; + private final JTree prefTree = new JTree(); + + /** + * Setup and layout for the components + */ + protected void initComponents() { + // setBorder(BorderFactory.createLineBorder(Color.red)); + setLayout(new BorderLayout(5, 5)); + setBorder(BorderFactory.createEmptyBorder(15, 15, 15, 15)); + + prefTree.setModel(createTreeModel()); + + prefTree.setRootVisible(false); + + DefaultTreeCellRenderer renderer = new DefaultTreeCellRenderer(); + renderer.setLeafIcon(ChainsawIcons.ICON_PREFERENCES); + prefTree.setCellRenderer(renderer); + + final JScrollPane treeScroll = new JScrollPane(prefTree); + + treeScroll.setPreferredSize(new Dimension(200, 240)); + + titleLabel.setFont(titleLabel.getFont().deriveFont(16.0f)); + titleLabel.setBorder(BorderFactory.createEtchedBorder()); + titleLabel.setBackground(Color.white); + titleLabel.setOpaque(true); + + selectedPrefPanel.add(titleLabel, BorderLayout.NORTH); + + mainPanel.add(treeScroll, BorderLayout.WEST); + mainPanel.add(selectedPrefPanel, BorderLayout.CENTER); + + add(mainPanel, BorderLayout.CENTER); + + Box buttonBox = Box.createHorizontalBox(); + List<JButton> buttons = SwingHelper.orderOKCancelButtons(okButton, cancelButton); + buttonBox.add(Box.createHorizontalGlue()); + buttonBox.add(buttons.get(0)); + buttonBox.add(Box.createHorizontalStrut(10)); + buttonBox.add(buttons.get(1)); + + add(buttonBox, BorderLayout.SOUTH); + + DefaultTreeSelectionModel treeSelectionModel = + new DefaultTreeSelectionModel(); + treeSelectionModel.setSelectionMode( + TreeSelectionModel.SINGLE_TREE_SELECTION); + prefTree.setSelectionModel(treeSelectionModel); + prefTree.addTreeSelectionListener( e -> { - TreePath path = e.getNewLeadSelectionPath(); - DefaultMutableTreeNode node = - (DefaultMutableTreeNode) path.getLastPathComponent(); - setDisplayedPrefPanel((JComponent) node.getUserObject()); + TreePath path = e.getNewLeadSelectionPath(); + DefaultMutableTreeNode node = + (DefaultMutableTreeNode) path.getLastPathComponent(); + setDisplayedPrefPanel((JComponent) node.getUserObject()); }); - - // ensure the first pref panel is selected and displayed - DefaultMutableTreeNode root = - (DefaultMutableTreeNode) prefTree.getModel().getRoot(); - DefaultMutableTreeNode firstNode = - (DefaultMutableTreeNode) root.getFirstChild(); - prefTree.setSelectionPath(new TreePath(firstNode.getPath())); - } - - /** - * @return tree model - */ - protected abstract TreeModel createTreeModel(); - - /** - * Ensures a specific panel is displayed in the spot where - * preferences can be selected. - * - * @param panel - */ - protected void setDisplayedPrefPanel(JComponent panel) - { - if (currentlyDisplayedPanel != null) { - selectedPrefPanel.remove(currentlyDisplayedPanel); + + // ensure the first pref panel is selected and displayed + DefaultMutableTreeNode root = + (DefaultMutableTreeNode) prefTree.getModel().getRoot(); + DefaultMutableTreeNode firstNode = + (DefaultMutableTreeNode) root.getFirstChild(); + prefTree.setSelectionPath(new TreePath(firstNode.getPath())); + } + + /** + * @return tree model + */ + protected abstract TreeModel createTreeModel(); + + /** + * Ensures a specific panel is displayed in the spot where + * preferences can be selected. + * + * @param panel + */ + protected void setDisplayedPrefPanel(JComponent panel) { + if (currentlyDisplayedPanel != null) { + selectedPrefPanel.remove(currentlyDisplayedPanel); + } + + selectedPrefPanel.add(panel, BorderLayout.CENTER); + currentlyDisplayedPanel = panel; + String title = panel.toString(); + titleLabel.setText(title); + selectedPrefPanel.revalidate(); + selectedPrefPanel.repaint(); + } + + public void notifyOfLookAndFeelChange() { + SwingUtilities.updateComponentTreeUI(this); + + Enumeration enumeration = ((DefaultMutableTreeNode) prefTree.getModel().getRoot()).breadthFirstEnumeration(); + while (enumeration.hasMoreElements()) { + DefaultMutableTreeNode node = (DefaultMutableTreeNode) enumeration.nextElement(); + if (node.getUserObject() instanceof Component) { + Component c = (Component) node.getUserObject(); + SwingUtilities.updateComponentTreeUI(c); + } + } + } + + public void setOkCancelActionListener(ActionListener l) { + this.okCancelListener = l; } - - selectedPrefPanel.add(panel, BorderLayout.CENTER); - currentlyDisplayedPanel = panel; - String title = panel.toString(); - titleLabel.setText(title); - selectedPrefPanel.revalidate(); - selectedPrefPanel.repaint(); - } - - public void notifyOfLookAndFeelChange() { - SwingUtilities.updateComponentTreeUI(this); - - Enumeration enumeration = ((DefaultMutableTreeNode)prefTree.getModel().getRoot()).breadthFirstEnumeration(); - while (enumeration.hasMoreElements()) { - DefaultMutableTreeNode node = (DefaultMutableTreeNode) enumeration.nextElement(); - if (node.getUserObject() instanceof Component) { - Component c = (Component) node.getUserObject(); - SwingUtilities.updateComponentTreeUI(c); - } + + public void hidePanel() { + if (okCancelListener != null) { + okCancelListener.actionPerformed(null); + } } - } - - public void setOkCancelActionListener(ActionListener l) - { - this.okCancelListener = l; - } - - public void hidePanel() - { - if (okCancelListener != null) { - okCancelListener.actionPerformed(null); + + /** + * @return Returns the cancelButton. + */ + protected final JButton getCancelButton() { + return cancelButton; + } + + /** + * @return Returns the okButton. + */ + protected final JButton getOkButton() { + return okButton; } - } - - /** - * @return Returns the cancelButton. - */ - protected final JButton getCancelButton() - { - return cancelButton; - } - /** - * @return Returns the okButton. - */ - protected final JButton getOkButton() - { - return okButton; - } }