File change listener

Hi !
My java app runs in an endless polling loop (by design) interrogating approx. 100 external devices via a comm port.
This endless loop is interrupted when any keyboard entry is made, processed, then loop is again allowed to resume.
I now need to interrupt my app if a certain file is changed(ie: a new line record is added).
.... then to copy this file into my app for processing, then continue my normal loop polling.
I think I need to add a "file listener" to this target file , but I'm new to Java.
Can some one suggest a code snip to get me started?
Thanks!

I now need to interrupt my app if a certain file is changed(ie: a new line record is added)..... then to copy this file into my app for processing, then continue my normal loop polling.
Java doen't provide a file change notifier. Read the "certain file" for a file parameter (maybe last modified) and if it's different from the previous read, do what is wanted. Depending on the specifics of your situation, you may want to do this in a separate thread from your polling.

Similar Messages

  • Adding file change listener

    Hi we have a requirement to invalidate web server cache once the file deployment happens from BCC.
    i was trying to modify the file FileChangeListener to do this job.
    but when i override the FileChangeListener clsass it is not deploying the file asset from bcc , once the autoher state completed it is not moving forward to content re view step and not throwing any error also.
    Thanks,
    Tijomon Mathew

    Write a deployment listener instead and register it to DeploymentServer. You have to implement interface atg.deployment.common.event.DeploymentEventListener.
    Refer CA Programming guide for more details.

  • Event handling to listen directory file changes?

    I want to write a Java program that watches directories for changes. If there are any new files, or files are deleted in a directory, notify the user. I think this is a multi-thread program that watches files changes in specific directories. But I don't know what listener that the program should implements. please help!!

    There are no events that do what you ask (actually, there are native OS events in Win32 that do this, but I suspect that isn't what you are going for).
    You'll need to write your own event source for this (and hey, if you are feeling crazy, you could even create your own event type - FolderChangedEvent or such).
    Start a thread that wakes up periodically and checks the contents of a specified folder for changes. If there is a change, fire your event to any listeners.
    Now, how you actually define a change in a folder is an entirely different matter. It may be sufficient to calculate a CRC (or Adler32) on the modified date of all files in the folder, then compare that to a previous version to see if there has been a change.
    If you have to drop into sub-folders, you'll need to create a recursive call to do that.
    - K

  • Value change listener method on h:selectBooleanCheckbox in h:dataTable

    Hello,
    Does JSF handle value change listeners as expected when they are attached to h:selectBooleanCheckbox components within an h:dataTable?
    In the following example, I have a JSP that has some h:selectBooleanCheckbox components nested in an h:dataTable, and some that aren't. When I bulid and deploy the example to Tomcat 5.5, I can see (using the log4j output) that the value change listener methods for the checkboxes that are NOT in the dataTable are fired, but the ones that are in the dataTable do not get fired.
    I am using Sun's RI of JSF, version 1.1.0.1.
    Thanks,
    Scott
    ----------------------------- JSP:
    <%@ page language="java" %>
    <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
    <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
    <f:view>
    <h:form>
    <h:dataTable value="#{checkboxBean.beans}" var="thisBean">
         <h:column>
              <h:outputText  value="#{thisBean.id}: " />
         </h:column>
         <h:column>
              <h:selectBooleanCheckbox value="#{thisBean.checked}" valueChangeListener="#{checkboxBean.somethingChanged}" />
         </h:column>
    </h:dataTable>
         <h:panelGrid columns="2">
              <h:outputText value="One:"/>
              <h:selectBooleanCheckbox id="firstOne" valueChangeListener="#{checkboxBean.somethingChanged}" />
              <h:outputText value="Two:"/>
              <h:selectBooleanCheckbox id="secondOne" valueChangeListener="#{checkboxBean.somethingChanged}" />
              <h:panelGroup/>
              <h:commandButton value="Do Stuff" action="#{checkboxBean.doStuff}" />
         </h:panelGrid>
    </h:form>
    </f:view>----------------------------- Beans:
    package workshop;
    import javax.faces.event.ValueChangeEvent;
    import org.apache.log4j.Logger;
    * Test attaching value change listener methods to checkboxes.
    public class CheckboxBean {
        private static final Logger logger = Logger.getLogger(CheckboxBean.class);
        private SomeBean[] beans = null;
        public CheckboxBean() {
            logger.debug("CheckboxBean()");
        public String load() {
            SomeBean[] someBeans = new SomeBean[3];
            someBeans[0] = new SomeBean("firstGuy", false);
            someBeans[1] = new SomeBean("2ndGuy", false);
            someBeans[2] = new SomeBean("third", false);
            this.setBeans(someBeans);
            return null;
        public String doStuff() {
            logger.debug("doStuff()");
            return this.load();
        public void somethingChanged(ValueChangeEvent e) {
            logger.debug("somethingChanged() in component with id " + e.getComponent().getId() );
        public SomeBean[] getBeans() {
            logger.debug("getBeans()");
            return this.beans;
        public void setBeans(SomeBean[] beans) {
            logger.debug("setBeans()");
            this.beans = beans;
    package workshop;
    public class SomeBean {
        private boolean checked = false;
        private String id = null;
        public SomeBean() {
        public SomeBean(String anId, boolean bool) {
            super();
            this.id = anId;
            this.checked = bool;
        public String getId() {
            return this.id;
        public void setId(String id) {
            this.id = id;
        public boolean isChecked() {
            return this.checked;
        public boolean getChecked() {
            return this.checked;
        public void setChecked(boolean checked) {
            this.checked = checked;
    }----------------------------- faces-config.xml:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN" "http://java.sun.com/dtd/web-facesconfig_1_1.dtd">
    <faces-config>
      <managed-bean>
        <description>Checkbox bean.</description>
        <managed-bean-name>checkboxBean</managed-bean-name>
        <managed-bean-class>workshop.CheckboxBean</managed-bean-class>
        <managed-bean-scope>request</managed-bean-scope>
      </managed-bean>
    </faces-config>----------------------------- log4j config:
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
    <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
        <appender  name="RollingFile" class="org.apache.log4j.RollingFileAppender" >
              <param name="File" value="/Users/scott/workshop/logs/workshop.log"/>
            <param name="Append" value="false"/>
            <param name="MaxFileSize" value="4096KB" />
            <param name="MaxBackupIndex" value="4" />
            <layout class="org.apache.log4j.PatternLayout">
              <param name="ConversionPattern" value="%d{DATE} %-5p %-15c{1} : %m%n"/>
            </layout>
        </appender>
        <category name="workshop" >
          <priority value="debug" />
        </category>
        <root>
            <priority  value="warn" />
            <appender-ref  ref="RollingFile" />
        </root>
    </log4j:configuration>

    I have Just run into the same problem. When using the following code inside a data table the valueChangeListener event is not fired when the checkbox has it's value changed. Is this a bug?
    I created a simple page with just a form and the selectBooleanCheckbox. This time the valueChangeListener event fired OK. It seems the problem only occurs when the check box is inside the dataTable
    here is the code snippet
    <h:form >
    <h:column>
    <f:facet name="header">
         <h:outputText value="Add to Basket"/>
    </f:facet>
    <h:selectBooleanCheckbox immediate="true" valueChangeListener="#{reportsResultHandler.addToBasket}" value="#{reportsResultHandler.addbasketChecked}" onchange="this.form.submit
    ();"/>                              
    </h:column>
    </h:form>

  • A file/directory listener

    What is the best way to implement a 'fileListener'?
    I am trying to implement 'listening' to a properties file (and/or XML config file) within a given URL and automatically reloading it upon modification. Of course I am familiar with the File.lastModified() method and somewhat familiar with the Swing eventListeners, but I'm not aware of any 'fileListener' API.
    Likewise, it would be helpful to be able to 'listen' to a directory and automatically load new configurations as new property files (or XML config files) are added to the directory.
    Does anyone have any suggestions?

    I don't know an API that can do that and think you can do this with a few lines of code. What about using a thread that periodically check the content of a directory? Using something like File.listFiles() would give you the state of the directory at this moment. Simply compare with the old state and you will find any change. You can list files using a filter to only keep track of specific files changes (XML, config files, etc.).

  • After plugging my hard drive on my friend's windows all the files changes to .ink!!!! please help

    I gave my friend who has windows laptop to copy some files from my hard drive WD 1tb. when I plug it into my mac all the files changed to .ink files I can't open them I tried to repair it and didn't work. there are important files on it so any idea please???

    CS5.5 - http://helpx.adobe.com/creative-suite/kb/cs5-5-product-downloads.html
    You can also download the trial version of the software thru the page linked below and then use your current serial number to activate it.
    Be sure to follow the steps outlined in the Note: Very Important Instructions section on the download pages at this site and have cookies enabled in your browser or else the download will not work properly.
    CS5.5: http://prodesigntools.com/adobe-cs5-5-direct-download-links.html

  • When I open iTunes, I get a message that "iTunes has stopped working".  I've tried reinstalling itunes, creating a new user file, changing the startup programs, and am having no success in getting iTunes to stay open. Any "fixes" for this problem?

    When I open ITunes, I get a message that "iTunes has stopped working".  I have tried reinstalling iTunes, creating a new user file, changing the startup programs in accordance with articles in iTunes troubleshooting, but am having no success in getting iTunes to stay open.  Any fixes for this problem?

     

  • Not able to save file changes on HCP Web IDE

    Hi
    i am not able to save the file changes on my HANA XS Application created on HCP Trail Account using Wed IDE. This problem does not occur always but now it has become frequent. On click of save button waiting icon comes up and then after minutes it shows error message as Error while Saving.
    I normally use HCP Web IDE platform for all development work.
    My Account ID : i314165trial
    Can anybuddy tell me what is the issue as this is will hamper the development process.

    Check the permissons on the folder and drive, not just on the file.

  • ADF - Component File Download Listener - Setting the output filename

    Studio Edition Version 11.1.1.2.0
    Hi, I would like to learn how to set the output filename as current data + filename. I have a button with the component File Download Listener that has theses parameters
    Content/Type: application/pdf
    Filename: test.pdf
    Method: fullReportPDF()
    I needed that when the user clicks the button, that he return the current date + filename statically defined.
    How i may to make this?

    In a bean you implement a method which return the filen ame date and static part concatenated and set it as EL into the af:fileDownloadActionListener
    // on the page
    <af:fileDownloadActionListener contentType="application/pdf"
                                             filename="#{XYZBean.filename}"
                                             method="#{XYZBean.fullReportPDF}"/>
    // in the bean
        public String getFilename()
            String fn = (new Date()).toString() + "static_part.xyz";
            return fn;
        public void fullReportPDF(FacesContext facesContext, OutputStream outputStream) { ... }where XYZBean is the bean where you have implmented the method fullReportPDF.
    Timo

  • When I drag pdf files into iBooks Author, the background in the pdf file changes into the colour of my book (brown/beige)?

    Hi,
    when I drag a pdf file (when working in Preview) into iBooks Author, the background colour in the pdf file changes into the background colour of the book.
    This happens not consistently, sometimes the background of the pdf file does not change (and stays white), sometimes it's like the text in the pdf file is 'lifted' of the file, and put on the page in iBooks Author (with a brown/beige background).
    All the pdf files are scanned pdf's, nothing comes out of Pages, Word, Excel,...
    Anybody?
    Thanks a lot!
    Wouter

    I have the same question (posted here: https://discussions.apple.com/message/25644741#25644741).
    I believe this is because the PDFs have transparent backgrounds. As far as I can tell, the only way to fix it is to export the PDF as another file, such as an image file. Or perhaps convert it to Word and import it that way.

  • Need to monitor any file change in the system, in real time

    Hi,
    I am running a program that I suspect may be doing changes in the filesystem, but I do not know which ones. I would like to know if there is a daemon/program that could help me monitor those changes. I tried AIDE, however, it works by creating a database of checksums for each file and does not report in real time potential changes. I would rather use a program that logs changes and timestamp them. Furthermore, AIDE is not useable with /var files, since there are many of them and they change so often. Is there another good solution?
    Alternatively I would like to run the program with monitoring. For instance, run the process as:
    monitor_program my_program_to_monitor logfile
    This would dump in logfile what my_program_to_monitor does to the filesystem.
    Thanks in advance.
    Last edited by zebulon (2011-08-24 15:44:10)

    no, at least with inotifywait, it is not possible. once you know what file is being changed you can use "lsof" to see what process have opened that file.
    i tried the following to search lsof output first thing when inotifywait finds a file change.
    file=$(inotifywait -r /home/mang/watch --format %w | sed 's/.$//'); lsof | grep $file
    while in another terminal running "vi /home/mang/watch/test"
    the output is:
    zsh 12574 mang cwd DIR 254,11 4096 4723089 /home/mang/watch
    vi 16790 mang cwd DIR 254,11 4096 4723089 /home/mang/watch
    try it!

  • Property change listener error with jtabbedpane

    Greetings
    I have a property change listener on my jtabbedpane (2 panes (index 0 of course and index 1). my problem is when i want to run my app it gives me a java null pointer exception. I believe it is b/c it is starting the app and it see the property change of the first tab at index 0 which is the first tab it sees and tries to run the method that makes the buttons visibility to true. but the buttons are already true. Basically how can I get the property change to run only after the app is visible? I made the buttons visibility false on startup to see if it can run the app but I still got the same error. I hope I am clear enough, if I am not please and I will attempt to reiterate the situation better. thanks for anyones help.
    tabs = new JTabbedPane();
              tabs.addChangeListener(this);
              tabs.setPreferredSize(new java.awt.Dimension(800, 400));
              tabs.addTab("Q", tab1.getMa());
              tabs.addTab("R", tab2);
      public void stateChanged(ChangeEvent changeEvent) {
                JTabbedPane sourceTabbedPane = (JTabbedPane) changeEvent.getSource();
               int index = sourceTabbedPane.getSelectedIndex();
               //System.out.println("Tab changed to: " + sourceTabbedPane.getTitleAt(index)+"  Index: "+index);
               if (index==1){
                         changeButtonsF();
                             ///makes buttons false on side panel
               else if (index==0){
                    changeButtonsT();
                     //makes buttons true on side panel
           }

    Basically how can I get the property change to run only after the app is visible?Add the PropertyChangeListener to the tabbed pane after the JFrame is visible.
    If you need further help then you need to create a "Short, Self Contained, Compilable and Executable, Example Program (SSCCE)",
    see http://homepage1.nifty.com/algafield/sscce.html,
    that demonstrates the incorrect behaviour, because I can't guess exactly what you are doing based on the information provided.

  • Get action or value change listener to be invoked from phaseEvent

    Hi,
    Does a PhaseEvent object has information for which action or value change listener is to be invoked?
    I have implemented a common logging method which has to be called on any action or value change event.
    The method requires the name of the method bound to action or value change listener.
    It is convinient if a phaseEvent object has information for the listener's method name because in that case I don't have to write a code calling the logging method in each action or value change listener but only in PhaseListener.
    Regards,
    Kenji

    Same as my thread...no answers...!

  • Multiple flash files change when a button click using javascript function

    hi.. am new in flsh...
    i want to multiple flash files change when a button click using a javascript

    <script>
    var count=0;
    function mafunct(newSrc){
        alert("hi");
    var path="a"+count+".swf"; 
    flash+='<OBJECT CLASSID="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" CODEBASE="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" WIDTH="100%" HEIGHT="100%">';         
        flash+='<PARAM NAME=movie VALUE="'+path+'">';         
        flash+='<PARAM NAME="PLAY" VALUE="false">'; 
        flash+='<PARAM NAME="LOOP" VALUE="false">';
        flash+='<PARAM NAME="QUALITY" VALUE="high">';
        flash+='<PARAM NAME="SCALE" VALUE="SHOWALL">';
        flash+='<EMBED NAME="testmovie" SRC="Menu.swf" WIDTH="100%" HEIGHT="100%"PLAY="false" LOOP="false" QUALITY="high" SCALE="SHOWALL"swLiveConnect="true"PLUGINSPAGE="http://www.macromedia.com/go/flashplayer/">';
        flash+='</EMBED>';
        flash+='</OBJECT>';    
    count++;
    alert(path+"aa");
    </script>
    <button onclick="mafunct()">next</button>

  • File change for highest level page home page

    file change for highest level page home page
    When I got these files
    I would type server/mywork/bkb
    These files are in the server under the folders mywork/bkb
    When I type server/mywork/bkb
    The my index page would show up
    That’s fine.
    Now, I created a page called highestpage.cfm
    The purpose is for me to put the link myindex.cfm and it
    works fine.
    But my problem that I am really still confused is
    It will show up when I type server/mywork/bkb/ myindex.cfm
    But my goal is not to type that far off.
    I just want to type I type server/mywork/bkb/ without
    myindex.cfm
    And still will lead me to I type server/mywork/bkb/
    myindex.cfm
    Just like the earlier version
    server/mywork/bkb that lead me to myindex.cfm
    but only now will lead me to highestpage.cfm
    I hope I am expressing my self correctly.
    Thanks for understanding

    If I understand your situation correctly, you can accomplish
    this by setting the default web page names in your web server,
    whatever that might be - Apache, IIS, etc. The web server will have
    some default file names (web pages) that it will serve if no
    specific file is requested. this is often index.html, index.cfm,
    etc. You want to add myindex.cfm to that list.

Maybe you are looking for