Giter Site home page Giter Site logo

eclipse-archived / codewind-filewatchers Goto Github PK

View Code? Open in Web Editor NEW
6.0 9.0 17.0 5.38 MB

File change notification clients that recursively monitor project directories and notify the Codewind server of file changes

Home Page: https://codewind.dev

License: Eclipse Public License 2.0

Go 29.90% Shell 0.90% TypeScript 36.42% Java 32.70% Batchfile 0.07%
cloud codewind container eclipse file-change-notifications file-monitoring inotify kubernetes openshift

codewind-filewatchers's Introduction

Codewind File Watcher

File watching daemon and clients in Codewind for source code monitoring.

platforms License Build Status Chat

The intent of this service is to provide mechanism for clients, e.g. IDEs or Che, to notify Codewind to track the list of source file changes and trigger build if auto build has been enabled. There are three implementations on the client written in Java, Typescript and Go to fit different client environments.

Contributing

We welcome submitting issues and contributions.

  1. Submitting bugs
  2. Contributing

Developing

To develop and debug the Codewind Filewatchers, see DEVELOPING.md.

License

EPL 2.0

codewind-filewatchers's People

Contributors

dependabot[bot] avatar elsony avatar jgwest avatar jopit avatar josephca avatar mmulholl avatar nikcanvin avatar sishida avatar stalleyj avatar tobespc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

codewind-filewatchers's Issues

Modify build to build TypeScript

Currently, the Jenkinsfile is set up to build the plugins that were needed for codewind-eclipse . We need this to create the TypeScript content instead.

Initial Jenkinsfile

Add initial Jenkinsfile to build 'org.eclipse.codewind.filewatchers*' jars

Filewatcher watching list is out-of-sync if socket event is lost

I have seen this behavior in my local environment. I only had a spring project bound in my workspace, and filewatcher knows that since it sends a GET request every 2 minutes to get the watch list.

However, I still saw filewatcher was sending filechange event for 2 unbound projects.

Suspecting it's because the project deletion socket event was lost, and filewatcher never received the events.
Filewatcher should compare the watch list received from the GET request with it's current watching list, and remove any deleted projects.

[04/07/19 19:07:34 User.js] [DEBUG] Find project springtest1 with info: {"pathToMonitor":"/Users/stephanie/Documents/microclimate/tempest/codewind-workspace/springtest1","projectID":"acecbeb0-9e8b-11e9-8ec6-4f80c3eb665c","ignoredPaths":["/.project","/target","/Dockerfile-tools","/cli-config.yml","/README.md","/Jenkinsfile","/.m2","*/node_modules*","*/.git/*","*/.DS_Store","*/*.swp","*/*.swx","*/4913","*/.dockerignore","*/.gitignore","*/*~","/.settings","/localm2cache.zip","/chart"],"projectWatchStateId":"3a247fe0600a2fa61fdf68a42ea5e6a9"}
[04/07/19 19:07:34 User.js] [DEBUG] The watch list: {"projects":[{"pathToMonitor":"/Users/stephanie/Documents/microclimate/tempest/codewind-workspace/springtest1","projectID":"acecbeb0-9e8b-11e9-8ec6-4f80c3eb665c","ignoredPaths":["/.project","/target","/Dockerfile-tools","/cli-config.yml","/README.md","/Jenkinsfile","/.m2","*/node_modules*","*/.git/*","*/.DS_Store","*/*.swp","*/*.swx","*/4913","*/.dockerignore","*/.gitignore","*/*~","/.settings","/localm2cache.zip","/chart"],"projectWatchStateId":"3a247fe0600a2fa61fdf68a42ea5e6a9"},{"pathToMonitor":"/Users/stephanie/Documents/microclimate/tempest/codewind-workspace/.config","projectID":"d786dcc94c8d2f711488d75b36a92400","ignoredPaths":[],"projectWatchStateId":"2b94cf8e6e5e26568bbd15eb3054106d","type":"non-project"}]}
[04/07/19 19:07:36 server.js] [DEBUG] POST /api/v1/projects/d73307f65b96af064f7c8ef308d1bb1c/file-changes called
[04/07/19 19:07:37 server.js] [DEBUG] POST /api/v1/projects/2444a122f5a335404cab99443fca84de/file-changes called
[04/07/19 19:07:40 server.js] [DEBUG] POST /api/v1/projects/d73307f65b96af064f7c8ef308d1bb1c/file-changes called
[04/07/19 19:07:41 server.js] [DEBUG] POST /api/v1/projects/2444a122f5a335404cab99443fca84de/file-changes called
[04/07/19 19:07:44 server.js] [DEBUG] POST /api/v1/projects/d73307f65b96af064f7c8ef308d1bb1c/file-changes called
[04/07/19 19:07:45 server.js] [DEBUG] POST /api/v1/projects/2444a122f5a335404cab99443fca84de/file-changes called
[04/07/19 19:07:48 server.js] [DEBUG] POST /api/v1/projects/d73307f65b96af064f7c8ef308d1bb1c/file-changes called
[04/07/19 19:07:49 server.js] [DEBUG] POST /api/v1/projects/2444a122f5a335404cab99443fca84de/file-changes called
[04/07/19 19:07:52 server.js] [DEBUG] POST /api/v1/projects/d73307f65b96af064f7c8ef308d1bb1c/file-changes called
[04/07/19 19:07:53 server.js] [DEBUG] POST /api/v1/projects/2444a122f5a335404cab99443fca84de/file-changes called
[04/07/19 19:07:56 server.js] [DEBUG] POST /api/v1/projects/d73307f65b96af064f7c8ef308d1bb1c/file-changes called
[04/07/19 19:07:57 server.js] [DEBUG] POST /api/v1/projects/2444a122f5a335404cab99443fca84de/file-changes called
[04/07/19 19:08:00 server.js] [DEBUG] POST /api/v1/projects/d73307f65b96af064f7c8ef308d1bb1c/file-changes called
[04/07/19 19:08:01 server.js] [DEBUG] POST /api/v1/projects/2444a122f5a335404cab99443fca84de/file-changes called
[04/07/19 19:08:04 server.js] [DEBUG] POST /api/v1/projects/d73307f65b96af064f7c8ef308d1bb1c/file-changes called
[04/07/19 19:08:05 server.js] [DEBUG] POST /api/v1/projects/2444a122f5a335404cab99443fca84de/file-changes called
[04/07/19 19:08:08 server.js] [DEBUG] POST /api/v1/projects/d73307f65b96af064f7c8ef308d1bb1c/file-changes called
[04/07/19 19:08:09 server.js] [DEBUG] POST /api/v1/projects/2444a122f5a335404cab99443fca84de/file-changes called
[04/07/19 19:08:12 server.js] [DEBUG] POST /api/v1/projects/d73307f65b96af064f7c8ef308d1bb1c/file-changes called
[04/07/19 19:08:13 server.js] [DEBUG] POST /api/v1/projects/2444a122f5a335404cab99443fca84de/file-changes called
[04/07/19 19:08:16 server.js] [DEBUG] POST /api/v1/projects/d73307f65b96af064f7c8ef308d1bb1c/file-changes called
[04/07/19 19:08:17 server.js] [DEBUG] POST /api/v1/projects/2444a122f5a335404cab99443fca84de/file-changes called

Here is the filewatcher log:

[July 4, 16:07:35.574] [82728.949] Initiating GET request to http://localhost:9090/api/v1/projects/watchlist
[July 4, 16:07:35.599] [82728.974] GET response received: {"projects":[{"pathToMonitor":"/Users/stephanie/Documents/microclimate/tempest/codewind-workspace/springtest1","projectID":"acecbeb0-9e8b-11e9-8ec6-4f80c3eb665c","ignoredPaths":["/.project","/target","/Dockerfile-tools","/cli-config.yml","/README.md","/Jenkinsfile","/.m2","*/node_modules*","*/.git/*","*/.DS_Store","*/*.swp","*/*.swx","*/4913","*/.dockerignore","*/.gitignore","*/*~","/.settings","/localm2cache.zip","/chart"],"projectWatchStateId":"3a247fe0600a2fa61fdf68a42ea5e6a9"},{"pathToMonitor":"/Users/stephanie/Documents/microclimate/tempest/codewind-workspace/.config","projectID":"d786dcc94c8d2f711488d75b36a92400","ignoredPaths":[],"projectWatchStateId":"2b94cf8e6e5e26568bbd15eb3054106d","type":"non-project"}]}
[July 4, 16:07:35.600] [82728.975] Examining file watch state from GET request
[July 4, 16:07:35.600] [82728.975] The project watch state has not changed for project acecbeb0-9e8b-11e9-8ec6-4f80c3eb665c
[July 4, 16:07:35.601] [82728.976] The project watch state has not changed for project d786dcc94c8d2f711488d75b36a92400
[July 4, 16:07:35.602] [82728.977] HttpGetStatus - GET request loop complete.
[July 4, 16:07:35.610] [82728.985] Issuing POST request to 'http://localhost:9090/api/v1/projects/2444a122f5a335404cab99443fca84de/file-changes?timestamp=1562251399089&chunk=1&chunk_total=1'
[July 4, 16:07:35.615] [82728.990] ! ERROR !  Unable to connect to 'http://localhost:9090/api/v1/projects/2444a122f5a335404cab99443fca84de/file-changes?timestamp=1562251399089&chunk=1&chunk_total=1', 404 - "Unable to find project 2444a122f5a335404cab99443fca84de"
[July 4, 16:07:39.618] [82732.993] Issuing POST request to 'http://localhost:9090/api/v1/projects/2444a122f5a335404cab99443fca84de/file-changes?timestamp=1562251399089&chunk=1&chunk_total=1'
[July 4, 16:07:39.625] [82733.000] ! ERROR !  Unable to connect to 'http://localhost:9090/api/v1/projects/2444a122f5a335404cab99443fca84de/file-changes?timestamp=1562251399089&chunk=1&chunk_total=1', 404 - "Unable to find project 2444a122f5a335404cab99443fca84de"
[July 4, 16:07:43.625] [82737.000] Issuing POST request to 'http://localhost:9090/api/v1/projects/2444a122f5a335404cab99443fca84de/file-changes?timestamp=1562251399089&chunk=1&chunk_total=1'

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.