Author: sdeboy
Date: Fri Feb 24 18:42:27 2006
New Revision: 380883
URL: http://svn.apache.org/viewcvs?rev=380883&view=rev
Log:
- Added LogFileXMLReceiver, VFSLogFilePatternReceiver samples to
log4j-receiver-sample.xml
- Added LogFileXMLReceiver support to receiver creation panel
- Created new VisualReceiver interface to allow receivers to get a container
reference for gui purposes (parent of dialogs, etc)
- Supporting an optional GUI login window for VFSLogFilePatternReceiver when
'promptForUserInfo' is set to true
Added:
logging/chainsaw/trunk/src/java/org/apache/log4j/chainsaw/receivers/VisualReceiver.java
Modified:
logging/chainsaw/trunk/src/java/org/apache/log4j/chainsaw/help/release-notes.html
logging/chainsaw/trunk/src/java/org/apache/log4j/chainsaw/log4j-receiver-sample.xml
logging/chainsaw/trunk/src/java/org/apache/log4j/chainsaw/receivers/ReceiversPanel.java
logging/chainsaw/trunk/src/java/org/apache/log4j/chainsaw/receivers/known.receivers
logging/chainsaw/trunk/src/java/org/apache/log4j/chainsaw/version/VersionManager.java
logging/chainsaw/trunk/src/java/org/apache/log4j/chainsaw/vfs/VFSLogFilePatternReceiver.java
logging/chainsaw/trunk/src/java/org/apache/log4j/chainsaw/vfs/VFSLogFilePatternReceiverBeanInfo.java
Modified:
logging/chainsaw/trunk/src/java/org/apache/log4j/chainsaw/help/release-notes.html
URL:
http://svn.apache.org/viewcvs/logging/chainsaw/trunk/src/java/org/apache/log4j/chainsaw/help/release-notes.html?rev=380883&r1=380882&r2=380883&view=diff
==============================================================================
---
logging/chainsaw/trunk/src/java/org/apache/log4j/chainsaw/help/release-notes.html
(original)
+++
logging/chainsaw/trunk/src/java/org/apache/log4j/chainsaw/help/release-notes.html
Fri Feb 24 18:42:27 2006
@@ -10,6 +10,12 @@
<b>NOTE:</b> The mechanism and format used to persist settings in Chainsaw is
subject to change during this alpha phase. If you are experiencing problems
displaying events in Chainsaw, please delete everything in the
$user.dir/.chainsaw directory.
<br>
<h1>1.99.99</h2>
+<h2>25 February 2006</h2>
+<ul>
+<li>Added a GUI option for VFSLogFilePatternReceiver, enabled by setting the
'promptForUserInfo' param to true.</li>
+<li>Added support for creating LogFileXMLReceivers from the receiver pane.</li>
+<li>Added VFSLogFilePatternReceiver, LogFileXMLReceiver examples to sample
receiver config (available from Welcome tab).</li>
+</ul>
<h2>24 February 2006</h2>
<ul>
<li>Added ZeroConf plugin, allowing simple point-n-click connection to
detected appenders. See the <B>ZeroConf</B> tab inside
Modified:
logging/chainsaw/trunk/src/java/org/apache/log4j/chainsaw/log4j-receiver-sample.xml
URL:
http://svn.apache.org/viewcvs/logging/chainsaw/trunk/src/java/org/apache/log4j/chainsaw/log4j-receiver-sample.xml?rev=380883&r1=380882&r2=380883&view=diff
==============================================================================
---
logging/chainsaw/trunk/src/java/org/apache/log4j/chainsaw/log4j-receiver-sample.xml
(original)
+++
logging/chainsaw/trunk/src/java/org/apache/log4j/chainsaw/log4j-receiver-sample.xml
Fri Feb 24 18:42:27 2006
@@ -23,11 +23,34 @@
<param name="Address" value="224.1.1.1"/>
</plugin>
+ <plugin name="LogFileXMLReceiver"
class="org.apache.log4j.xml.LogFileXMLReceiver">
+ <param name="fileURL" value="file:///c:/sample.xml"/>
+ <param name="name" value="sampleLogFileXMLReceiver"/>
+ <param name="tailing" value="true"/>
+ </plugin>
+
<plugin name="LogFileReceiver"
class="org.apache.log4j.varia.LogFilePatternReceiver">
<param name="fileURL" value="file:///c:/sample.log"/>
<param name="timestampFormat" value="yyyy-MM-dd HH:mm:ss,SSS"/>
<param name="logFormat" value="TIMESTAMP LEVEL [LOGGER] MESSAGE"/>
- <param name="name" value="sampleLogFileReceiver"/>
+ <param name="name" value="sampleLogFilePatternReceiver"/>
+ <param name="tailing" value="true"/>
+ </plugin>
+
+ <plugin name="VFSLogFilePatternReceiverWithUserInfoPrompt"
class="org.apache.log4j.chainsaw.vfs.VFSLogFilePatternReceiver">
+ <param name="fileURL" value="sftp://192.168.0.100:///c:/sample.log"/>
+ <param name="timestampFormat" value="yyyy-MM-dd HH:mm:ss,SSS"/>
+ <param name="logFormat" value="TIMESTAMP LEVEL [LOGGER] MESSAGE"/>
+ <param name="name" value="sampleLogFilePatternReceiver"/>
+ <param name="promptForUserInfo" value="true"/>
+ <param name="tailing" value="true"/>
+ </plugin>
+
+ <plugin name="VFSLogFilePatternReceiverNoUserInfoPrompt"
class="org.apache.log4j.chainsaw.vfs.VFSLogFilePatternReceiver">
+ <param name="fileURL" value="sftp://user:[EMAIL
PROTECTED]:///c:/sample.log"/>
+ <param name="timestampFormat" value="yyyy-MM-dd HH:mm:ss,SSS"/>
+ <param name="logFormat" value="TIMESTAMP LEVEL [LOGGER] MESSAGE"/>
+ <param name="name" value="sampleLogFilePatternReceiver"/>
<param name="tailing" value="true"/>
</plugin>
Modified:
logging/chainsaw/trunk/src/java/org/apache/log4j/chainsaw/receivers/ReceiversPanel.java
URL:
http://svn.apache.org/viewcvs/logging/chainsaw/trunk/src/java/org/apache/log4j/chainsaw/receivers/ReceiversPanel.java?rev=380883&r1=380882&r2=380883&view=diff
==============================================================================
---
logging/chainsaw/trunk/src/java/org/apache/log4j/chainsaw/receivers/ReceiversPanel.java
(original)
+++
logging/chainsaw/trunk/src/java/org/apache/log4j/chainsaw/receivers/ReceiversPanel.java
Fri Feb 24 18:42:27 2006
@@ -70,12 +70,14 @@
import org.apache.log4j.chainsaw.messages.MessageCenter;
import org.apache.log4j.net.SocketNodeEventListener;
import org.apache.log4j.net.SocketReceiver;
-import org.apache.log4j.spi.LoggerRepository;
-import org.apache.log4j.spi.LoggerRepositoryEx;
import org.apache.log4j.plugins.Pauseable;
import org.apache.log4j.plugins.Plugin;
+import org.apache.log4j.plugins.PluginEvent;
+import org.apache.log4j.plugins.PluginListener;
import org.apache.log4j.plugins.PluginRegistry;
import org.apache.log4j.plugins.Receiver;
+import org.apache.log4j.spi.LoggerRepository;
+import org.apache.log4j.spi.LoggerRepositoryEx;
/**
@@ -83,7 +85,7 @@
*
*
* @author Paul Smith <[EMAIL PROTECTED]>
- * @author Scott Debogy <[EMAIL PROTECTED]>
+ * @author Scott Deboy <[EMAIL PROTECTED]>
*/
public class ReceiversPanel extends JPanel {
final Action newReceiverButtonAction;
@@ -113,6 +115,24 @@
if (repo instanceof LoggerRepositoryEx) {
pluginRegistry = ((LoggerRepositoryEx) repo).getPluginRegistry();
pluginRegistry.addPluginListener(model);
+
+ //iterate over visual receivers and call setcontainer
+ Collection c = pluginRegistry.getPlugins(VisualReceiver.class);
+ for (Iterator iter = c.iterator();iter.hasNext();) {
+ ((VisualReceiver)iter.next()).setContainer(this);
+ }
+
+ pluginRegistry.addPluginListener(new PluginListener() {
+ public void pluginStarted(PluginEvent e) {
+ //if we get a plugin started callback, set the container
+ if (e.getPlugin() instanceof VisualReceiver) {
+
((VisualReceiver)e.getPlugin()).setContainer(ReceiversPanel.this);
+ }
+ }
+
+ public void pluginStopped(PluginEvent e) {
+ }
+ });
} else {
pluginRegistry = null;
}
Added:
logging/chainsaw/trunk/src/java/org/apache/log4j/chainsaw/receivers/VisualReceiver.java
URL:
http://svn.apache.org/viewcvs/logging/chainsaw/trunk/src/java/org/apache/log4j/chainsaw/receivers/VisualReceiver.java?rev=380883&view=auto
==============================================================================
---
logging/chainsaw/trunk/src/java/org/apache/log4j/chainsaw/receivers/VisualReceiver.java
(added)
+++
logging/chainsaw/trunk/src/java/org/apache/log4j/chainsaw/receivers/VisualReceiver.java
Fri Feb 24 18:42:27 2006
@@ -0,0 +1,39 @@
+/*
+ * Copyright 1999,2004 The Apache Software Foundation.
+ *
+ * Licensed 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.receivers;
+
+import java.awt.Container;
+
+/**
+ * If a receiver has a visual component, implement this interface and Chainsaw
will call
+ * 'setContainer' passing in a container that the receiver can use.
+ * <p>
+ * For example, VFSLogFilePatternReceiver provides an optional
'promptForUserInfo', that
+ * when set to true, will allow a login dialog to be displayed on top of the
Chainsaw window.
+ *
+ * @author Scott Deboy<[EMAIL PROTECTED]>
+ *
+ */
+
+public interface VisualReceiver {
+ /**
+ * Provides access to a container.
+ *
+ * @param container
+ */
+ void setContainer(Container container);
+}
Modified:
logging/chainsaw/trunk/src/java/org/apache/log4j/chainsaw/receivers/known.receivers
URL:
http://svn.apache.org/viewcvs/logging/chainsaw/trunk/src/java/org/apache/log4j/chainsaw/receivers/known.receivers?rev=380883&r1=380882&r2=380883&view=diff
==============================================================================
Binary files - no diff available.
Modified:
logging/chainsaw/trunk/src/java/org/apache/log4j/chainsaw/version/VersionManager.java
URL:
http://svn.apache.org/viewcvs/logging/chainsaw/trunk/src/java/org/apache/log4j/chainsaw/version/VersionManager.java?rev=380883&r1=380882&r2=380883&view=diff
==============================================================================
---
logging/chainsaw/trunk/src/java/org/apache/log4j/chainsaw/version/VersionManager.java
(original)
+++
logging/chainsaw/trunk/src/java/org/apache/log4j/chainsaw/version/VersionManager.java
Fri Feb 24 18:42:27 2006
@@ -10,7 +10,7 @@
private static final VersionManager instance = new VersionManager();
- private static final String VERSION_INFO = "1.99.99 (24 February 2006)";
+ private static final String VERSION_INFO = "1.99.99 (25 February 2006)";
public static final VersionManager getInstance() {
return instance;
Modified:
logging/chainsaw/trunk/src/java/org/apache/log4j/chainsaw/vfs/VFSLogFilePatternReceiver.java
URL:
http://svn.apache.org/viewcvs/logging/chainsaw/trunk/src/java/org/apache/log4j/chainsaw/vfs/VFSLogFilePatternReceiver.java?rev=380883&r1=380882&r2=380883&view=diff
==============================================================================
---
logging/chainsaw/trunk/src/java/org/apache/log4j/chainsaw/vfs/VFSLogFilePatternReceiver.java
(original)
+++
logging/chainsaw/trunk/src/java/org/apache/log4j/chainsaw/vfs/VFSLogFilePatternReceiver.java
Fri Feb 24 18:42:27 2006
@@ -16,15 +16,33 @@
package org.apache.log4j.chainsaw.vfs;
+import java.awt.Container;
+import java.awt.Dimension;
+import java.awt.Frame;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
+import java.awt.Insets;
+import java.awt.Toolkit;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;
+import javax.swing.JButton;
+import javax.swing.JDialog;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JPasswordField;
+import javax.swing.JTextField;
+import javax.swing.SwingUtilities;
+
import org.apache.commons.vfs.FileObject;
import org.apache.commons.vfs.FileSystemException;
import org.apache.commons.vfs.FileSystemManager;
import org.apache.commons.vfs.VFS;
import org.apache.commons.vfs.provider.URLFileName;
+import org.apache.log4j.chainsaw.receivers.VisualReceiver;
import org.apache.log4j.varia.LogFilePatternReceiver;
/**
@@ -34,6 +52,32 @@
* LoggingEvents. If the file doesn't exist when the receiver is initialized,
the
* receiver will look for the file once every 10 seconds.
* <p>
+ * See the Chainsaw page (http://logging.apache.org/log4j/docs/chainsaw.html)
for information
+ * on how to set up Chainsaw with VFS.
+ * <p>
+ * See http://jakarta.apache.org/commons/vfs/filesystems.html for a list of
VFS-supported
+ * file systems and the URIs needed to access the file systems.
+ * <p>
+ * Because some VFS file systems allow you to provide username/password, this
receiver
+ * provides an optional GUI dialog for entering the username/password fields
instead
+ * of requiring you to hard code usernames and passwords into the URI.
+ * <p>
+ * If the 'promptForUserInfo' param is set to true (default is false),
+ * the receiver will wait for a call to 'setContainer', and then display
+ * a username/password dialog.
+ * <p>
+ * If you are using this receiver without a GUI, don't set promptForUserInfo
+ * to true - it will block indefinitely waiting for a visual component.
+ * <p>
+ * If the 'promptForUserInfo' param is set to true, the fileURL should -leave
out-
+ * the username/password portion of the VFS-supported URI. Examples:
+ * <p>
+ * An sftp URI that would be used with promptForUserInfo=true:
+ * sftp://192.168.1.100:22/home/thisuser/logfile.txt
+ * <p>
+ * An sftp URI that would be used with promptForUserInfo=false:
+ * sftp://username:[EMAIL PROTECTED]:22/home/thisuser/logfile.txt
+ * <p>
* This receiver relies on ORO Perl5 features to perform the parsing of text
in the
* log file, however the only regular expression field explicitly supported is
* a glob-style wildcard used to ignore fields in the log file if needed. All
other
@@ -45,6 +89,7 @@
* - specify the pattern (logFormat) used in the log file using keywords, a
wildcard character (*) and fixed text<br>
* - 'tail' the file (allows the contents of the file to be continually read
and new events processed)<br>
* - supports the parsing of multi-line messages and exceptions
+ * - to access
*<p>
* <b>Keywords:</b><br>
* TIMESTAMP<br>
@@ -103,6 +148,7 @@
* param: "logFormat" value="RELATIVETIME [THREAD] LEVEL LOGGER * -
MESSAGE"<br>
* param: "fileURL" value="file:///c:/events.log"<br>
* param: "tailing" value="true"
+ * param: "promptForUserInfo" value="false"
*<p>
* This configuration will be able to process these sample events:<br>
* 710 [ Thread-0] DEBUG first.logger first -
<test> <test2>something here</test2> <test3 blah=something/> <test4>
<test5>something else</test5> </test4></test><br>
@@ -113,14 +159,19 @@
*
[EMAIL PROTECTED] Scott Deboy
*/
-public class VFSLogFilePatternReceiver extends LogFilePatternReceiver {
+public class VFSLogFilePatternReceiver extends LogFilePatternReceiver
implements VisualReceiver {
private Reader reader;
+ private boolean promptForUserInfo = false;
+ private Container container;
+ private Object waitForContainerLock = new Object();
+
public VFSLogFilePatternReceiver() {
super();
}
public void shutdown() {
+ container = null;
if (reader != null) {
try {
reader.close();
@@ -132,40 +183,197 @@
}
/**
+ * If set to true, will cause the receiver to block indefinitely until
'setContainer' has been called,
+ * at which point a username/password dialog will appear.
+ *
+ * @param promptForUserInfo
+ */
+ public void setPromptForUserInfo(boolean promptForUserInfo) {
+ this.promptForUserInfo = promptForUserInfo;
+ }
+
+ public boolean isPromptForUserInfo() {
+ return promptForUserInfo;
+ }
+
+ /**
+ * Implementation of VisualReceiver interface - allows this receiver to
provide
+ * a username/password dialog.
+ */
+ public void setContainer(Container container) {
+ if (promptForUserInfo) {
+ synchronized(waitForContainerLock) {
+ this.container=container;
+ waitForContainerLock.notify();
+ }
+ }
+ }
+
+ /**
* Read and process the log file.
*/
public void activateOptions() {
- new Thread(new Runnable() {
- public void run() {
- while (reader == null) {
- getLogger().info("attempting to load file: " + getFileURL());
- try {
- FileSystemManager fileSystemManager = VFS.getManager();
- FileObject fileObject = fileSystemManager.resolveFile(getFileURL());
- reader = new
InputStreamReader(fileObject.getContent().getInputStream());
- //now that we have a reader, remove additional portions of the file
url (sftp passwords, etc.)
- //check to see if the name is a URLFileName..if so, set file name to
not include username/pass
- if (fileObject.getName() instanceof URLFileName) {
- URLFileName urlFileName = (URLFileName)fileObject.getName();
- setHost(urlFileName.getHostName());
- setPath(urlFileName.getPath());
- }
- } catch (FileSystemException fse) {
- getLogger().info("file not available - will try again in 10
seconds");
- synchronized(this) {
- try {
- wait(10000);
- } catch (InterruptedException ie){}
- }
- }
- }
- initialize();
-
- try {
- process(reader);
- } catch (IOException ioe) {
- getLogger().info("stream closed");
+
+ if (promptForUserInfo) {
+ /*
+ if promptforuserinfo is true, wait for a reference to the container
+ (via the VisualReceiver callback).
+
+ We need to display a login dialog on top of the container, so we must
then
+ wait until the container has been added to a frame
+ */
+
+ //get a reference to the container
+ new Thread(new Runnable() {
+ public void run() {
+ synchronized(waitForContainerLock) {
+ while (container == null) {
+ try {
+ waitForContainerLock.wait();
+ } catch (InterruptedException ie){}
+ }
+ }
+
+ Frame containerFrame1;
+ synchronized(waitForContainerLock) {
+ //loop until the container has a frame
+ while ((containerFrame1 =
(Frame)SwingUtilities.getAncestorOfClass(Frame.class, container)) == null) {
+ try {
+ waitForContainerLock.wait(1000);
+ } catch (InterruptedException ie) {}
+ }
+ }
+ final Frame containerFrame = containerFrame1;
+
+ //create the dialog
+ SwingUtilities.invokeLater(new Runnable() {
+ public void run() {
+ final UserNamePasswordDialog f = new
UserNamePasswordDialog(containerFrame);
+ f.pack();
+ Dimension d =
Toolkit.getDefaultToolkit().getScreenSize();
+ f.setLocation(d.width /2, d.height/2);
+ f.setVisible(true);
+ if (null == f.getUserName() || null ==
f.getPassword()) {
+ getLogger().warn("No username
or password provided - not loading file " + getFileURL());
+ } else {
+ int index =
getFileURL().indexOf("://");
+ String firstPart =
getFileURL().substring(0, index);
+ String lastPart =
getFileURL().substring(index + "://".length());
+ setFileURL(firstPart + "://" +
f.getUserName()+ ":" + new String(f.getPassword()) + "@" + lastPart);
+ new Thread(new
VFSReader()).start();
+ }
+ }
+ });
+ }}).start();
+ } else {
+ new Thread(new VFSReader()).start();
}
- }}).start();
}
+
+ private class VFSReader implements Runnable {
+ public void run() {
+ while (reader == null) {
+ getLogger().info("attempting to load file: " + getFileURL());
+ try {
+ FileSystemManager fileSystemManager = VFS.getManager();
+ FileObject fileObject =
fileSystemManager.resolveFile(getFileURL());
+ reader = new
InputStreamReader(fileObject.getContent().getInputStream());
+ //now that we have a reader, remove additional portions of the
file url (sftp passwords, etc.)
+ //check to see if the name is a URLFileName..if so, set file name
to not include username/pass
+ if (fileObject.getName() instanceof URLFileName) {
+ URLFileName urlFileName = (URLFileName)fileObject.getName();
+ setHost(urlFileName.getHostName());
+ setPath(urlFileName.getPath());
+ }
+ } catch (FileSystemException fse) {
+ getLogger().info("file not available - will try again in 10
seconds");
+ synchronized(this) {
+ try {
+ wait(10000);
+ } catch (InterruptedException ie){}
+ }
+ }
+ }
+ initialize();
+
+ try {
+ process(reader);
+ } catch (IOException ioe) {
+ getLogger().info("stream closed");
+ }
+ }
+ }
+
+ public class UserNamePasswordDialog extends JDialog{
+ private String userName;
+ private char[] password;
+ private UserNamePasswordDialog(Frame containerFrame) {
+ super(containerFrame, "Login", true);
+ JPanel panel = new JPanel(new GridBagLayout());
+ GridBagConstraints gc = new GridBagConstraints();
+ gc.fill=GridBagConstraints.NONE;
+
+ gc.anchor=GridBagConstraints.NORTH;
+ gc.gridx=0;
+ gc.gridy=0;
+ gc.gridwidth=3;
+ gc.insets=new Insets(7, 7, 7, 7);
+ panel.add(new JLabel("URI: " + getFileURL()), gc);
+
+ gc.gridx=0;
+ gc.gridy=1;
+ gc.gridwidth=1;
+ gc.insets=new Insets(2, 2, 2, 2);
+ panel.add(new JLabel("Username"), gc);
+
+ gc.gridx=1;
+ gc.gridy=1;
+ gc.gridwidth=2;
+ gc.weightx=1.0;
+ gc.fill=GridBagConstraints.HORIZONTAL;
+
+ final JTextField userNameTextField = new JTextField(15);
+ panel.add(userNameTextField, gc);
+
+ gc.gridx=0;
+ gc.gridy=2;
+ gc.gridwidth=1;
+ gc.fill=GridBagConstraints.NONE;
+
+ panel.add(new JLabel("Password"), gc);
+
+ gc.gridx=1;
+ gc.gridy=2;
+ gc.gridwidth=2;
+ gc.fill=GridBagConstraints.HORIZONTAL;
+
+ final JPasswordField passwordTextField = new
JPasswordField(15);
+ panel.add(passwordTextField, gc);
+
+ gc.gridy=3;
+ gc.anchor=GridBagConstraints.SOUTH;
+ gc.fill=GridBagConstraints.NONE;
+
+ JButton submitButton = new JButton("Submit");
+ panel.add(submitButton, gc);
+
+ getContentPane().add(panel);
+ submitButton.addActionListener(new ActionListener(){
+ public void actionPerformed(ActionEvent evt) {
+ userName = userNameTextField.getText();
+ password = passwordTextField.getPassword();
+ getContentPane().setVisible(false);
+ UserNamePasswordDialog.this.dispose();
+ }
+ });
+ }
+
+ public String getUserName() {
+ return userName;
+ }
+
+ public char[] getPassword() {
+ return password;
+ }
+ }
}
Modified:
logging/chainsaw/trunk/src/java/org/apache/log4j/chainsaw/vfs/VFSLogFilePatternReceiverBeanInfo.java
URL:
http://svn.apache.org/viewcvs/logging/chainsaw/trunk/src/java/org/apache/log4j/chainsaw/vfs/VFSLogFilePatternReceiverBeanInfo.java?rev=380883&r1=380882&r2=380883&view=diff
==============================================================================
---
logging/chainsaw/trunk/src/java/org/apache/log4j/chainsaw/vfs/VFSLogFilePatternReceiverBeanInfo.java
(original)
+++
logging/chainsaw/trunk/src/java/org/apache/log4j/chainsaw/vfs/VFSLogFilePatternReceiverBeanInfo.java
Fri Feb 24 18:42:27 2006
@@ -39,6 +39,8 @@
new PropertyDescriptor("tailing", VFSLogFilePatternReceiver.class),
new PropertyDescriptor(
"filterExpression", VFSLogFilePatternReceiver.class),
+ new PropertyDescriptor(
+ "promptForUserInfo", VFSLogFilePatternReceiver.class),
};
} catch (Exception e) {
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]