Commit Graph

197 Commits (f38f101aa28064026d3840bce9cf423c8f594e12)

Author SHA1 Message Date
Oleg Nenashev ecadc0ef8b
Merge pull request #403 from NextTurn/ims
Support 'If-Modified-Since' for downloads
2020-03-25 11:05:52 +01:00
NextTurn 80e99d8426
Rework P/Invoke signatures 2020-03-24 23:37:02 +08:00
NextTurn 05b421b37b
Remove unused file 2020-03-24 23:36:16 +08:00
NextTurn fc08355620
Specify Unicode versions 2020-03-24 23:36:16 +08:00
NextTurn 5bc19e43af
Introduce constant strings 2020-03-24 23:36:16 +08:00
NextTurn f1036e613b
Replace GetLastError 2020-03-24 23:36:16 +08:00
NextTurn 3bb10ab60d
Remove unnecessary attributes 2020-03-24 23:36:15 +08:00
Oleg Nenashev dbb8efe410
Merge pull request #430 from NextTurn/enum
Use generic enum parsing methods in all packages except .NET 2.0
2020-03-11 12:04:51 +01:00
NextTurn e843c5c89c
Generic enum parsing 2020-03-02 08:54:42 +08:00
NextTurn 76a7fff7a6
Use StringBuilder 2020-03-01 11:00:05 +08:00
NextTurn 89677a7f49
Support 'If-Modified-Since' for downloads 2020-02-25 11:12:59 +08:00
NextTurn b991f8c9f1
Revert CLI behaviors in non-interactive mode 2020-02-21 14:04:29 +08:00
NextTurn d97c72e48f
Disable MMI 2020-02-18 11:37:31 +08:00
Oleg Nenashev 0f0ed5f850
Merge pull request #408 from NextTurn/download
Update exception handling for downloads
2020-02-16 07:38:26 +01:00
NextTurn bf09ea36f9
Update downloading 2020-02-13 10:45:41 +08:00
Oleg Nenashev 3753bce369
Merge pull request #387 from NextTurn/stop
Treat ERROR_SERVICE_CANNOT_ACCEPT_CTRL as success for stop command
2020-02-12 21:04:57 +01:00
Oleg Nenashev 9a7e0b141a
Merge pull request #391 from NextTurn/redirect
Fix stdout/stderr redirection when log disabled
2020-02-12 21:04:06 +01:00
Oleg Nenashev 7bbe98e326
Merge pull request #385 from NextTurn/start
Treat ERROR_SERVICE_ALREADY_RUNNING as success for start command
2020-02-11 17:07:57 +01:00
NextTurn da2772c6c4
Treat ERROR_SERVICE_CANNOT_ACCEPT_CTRL as success for stop command 2020-02-10 19:14:52 +08:00
NextTurn 16205acbc8
Treat ERROR_SERVICE_ALREADY_RUNNING as success for start command 2020-02-10 19:08:28 +08:00
NextTurn b86a028392
Throw correct exceptions for IO errors 2020-02-10 18:59:08 +08:00
NextTurn 368b99d8a1
Implement atomic file movement 2020-02-10 18:28:59 +08:00
Oleg Nenashev 96c03efb0a
Merge pull request #397 from NextTurn/nullable
Annotate more nullable variables
2020-02-07 04:38:13 -05:00
Oleg Nenashev dc10d4d3ce
Merge pull request #367 from NextTurn/download
Parallelize downloads in .NET 4.6.1 and .NET Core bundles
2020-02-06 05:31:12 -05:00
NextTurn 08da959737
Optimize DynamicProxy 2020-02-06 18:20:38 +08:00
NextTurn ec6d9b0a69
Rename to FEATURE_CIM 2020-02-06 11:18:48 +08:00
NextTurn 30c5994c42
Migrate to MMI 2020-02-06 10:58:37 +08:00
NextTurn da71f5dd83
Annotate more nullable variables 2020-02-06 10:55:13 +08:00
Oleg Nenashev b36aff024e
Merge pull request #394 from NextTurn/tls
Enable TLS 1.1/1.2 when using .NET2 and .NET4 packages on Windows 7 and Windows Server 2008 R2
2020-02-05 12:49:31 -05:00
Oleg Nenashev b49216fcb1
Merge pull request #374 from NextTurn/cli
Improve CLI behaviors with empty arguments
2020-02-05 12:40:43 -05:00
NextTurn fce9a79d66
Fix stdout/stderr redirection when log disabled 2020-02-02 11:18:47 +08:00
NextTurn ce7b6078f9
Enable TLS 1.1/1.2 on outdated versions 2020-02-02 11:02:22 +08:00
NextTurn 5a42863fdc
Potentially fix RunawayProcessKillerTest 2020-02-01 14:00:45 +08:00
NextTurn ff60522b0d
Use Debug logging level for modes 2020-02-01 10:58:35 +08:00
NextTurn e8e1ee2300
Improve CLI behaviors with empty arguments 2020-02-01 10:58:33 +08:00
Oleg Nenashev e06ae851f4
Merge pull request #373 from NextTurn/catch
Don't print stack trace to console for user errors
2020-01-31 22:53:38 +01:00
Oleg Nenashev a1df4472a5
Merge pull request #390 from NextTurn/line
Stop buffering stdout/stderr
2020-01-31 22:49:26 +01:00
Oleg Nenashev fef7d7e560
Merge pull request #383 from NextTurn/artifacts
Produce ready-to-publish artifacts in build phase for AppVeyor
2020-01-31 22:47:44 +01:00
Oleg Nenashev a157b79dcb
Merge pull request #359 from NextTurn/envvar
Fix RunawayProcessKiller
2020-01-31 22:43:16 +01:00
NextTurn aa3b6249a5
Stop buffering stdout/stderr 2020-01-30 16:59:54 +08:00
NextTurn 189e3d52e2
Fix executable path on .NET Core 2020-01-29 11:09:50 +08:00
NextTurn ab22212252
Produce ready-to-publish artifacts in build phase for AppVeyor 2020-01-27 17:24:49 +08:00
NextTurn b3d4b466aa
Don't print stack trace to console for invalid config files 2020-01-24 15:42:07 +08:00
NextTurn ba328e3162
Optimize Download 2020-01-21 11:16:11 +08:00
NextTurn 941e67d08c
Simplify syntax 2020-01-20 21:09:39 +08:00
NextTurn c32d17c21b
Don't use System.Environment APIs 2020-01-20 12:33:24 +08:00
NextTurn cff7360118
Fix RunawayProcessKiller 2020-01-20 12:27:23 +08:00
NextTurn 466b5264e1
Annotate other libraries for nullable reference types 2020-01-20 12:19:26 +08:00
NextTurn 93b2212774
Suppress warnings for confusing designs 2020-01-20 12:19:07 +08:00
NextTurn 315b0ac440
Throw for necessary settings 2020-01-20 12:19:06 +08:00
NextTurn 5be8708701
Annotate WinSWCore for nullable reference types 2020-01-20 12:18:58 +08:00
NextTurn 3a7a332b84
Target .NET Framework 4.6.1 2020-01-19 21:14:19 +08:00
NextTurn cf396b718b
Publish single executable 2020-01-15 00:27:19 +08:00
NextTurn 492a4e3e42
Fix tests and update test framework 2020-01-15 00:07:44 +08:00
NextTurn eebc49d295
Fix an ancient bug 2020-01-14 20:11:47 +08:00
NextTurn bab17429d2
Improve RollingSizeTimeLogAppender 2020-01-14 19:44:12 +08:00
NextTurn 8864b676fb
Add new target frameworks 2020-01-14 19:26:26 +08:00
NextTurn b9089ab748
Remove unused variables 2020-01-14 14:05:04 +08:00
NextTurn 08bae2a682
Use built-in types 2020-01-14 14:05:03 +08:00
NextTurn 9808ae88e8
Clean up styles 2020-01-14 14:04:25 +08:00
NextTurn 6e9d25a7b5
Fix versioning 2020-01-13 14:39:16 +08:00
NextTurn afadf8f2b2
Fix tests 2020-01-13 14:39:14 +08:00
NextTurn 9634ddf0a9
Migrate to SDK-style projects 2020-01-13 14:10:57 +08:00
Oleg Nenashev 075be3f03d
Merge pull request #315 from mmatt1967/master
Prevent application crash when `roll-by-size-time` is enabled
2019-08-17 00:47:41 +02:00
Oleg Nenashev 831c7fbb7e
Merge pull request #321 from jeacott1/hidewindow
Add a new `hidewindow` option to suppress windows popup on legacy platforms
2019-08-17 00:44:38 +02:00
Ryan Rupp 502ed969fc Fix missing space in logging format 2019-08-13 23:30:53 -05:00
Ryan Rupp 47a3ca964a Fix duplicate startup logging 2019-08-13 16:54:13 -05:00
jeacott1 e2bf78f1df adds a <hidewindow>true</hidewindow> config switch
so that launching bat files on legacy machines
running Interactive Services Detection don't balk.
2019-05-28 13:25:17 +09:30
Pram 092b972617
Fix test for spelling 2019-05-20 19:26:06 +01:00
Mark Matthews e94e364a90 Fix issue #314 2019-04-29 12:08:05 +02:00
Dinz 9014f38b9c Added Support for the log appender roll-by-size-time to zip older files (#259)
* Introduced the following new elements.
1. logname - you can override the name of the log file rather than using the EXE name, this means you don't have to call your EXE a different name, just name the winsw exe different. Default's the name to the EXE as before.
2. outfiledisabled - you can disable writing to the out file. Defaults to false.
3. errfiledisabled - you can disable writing to the error file. Defaults to false.
4. outfilepattern - you can choose the pattern of the out file. Defaults to .out.log.
5. errfilepattern - you can choos the pattern of the error file. Defaults to .err.log.

* Downgraded from C#7.0 syntax.

* Applied reviewers comment

* not required

* removed the key

* Added unit test for new fields logname, outfiledisabled, errfiledisabled and errfilepattern.

Created a new appender called roll-by-size-time see class RollingSizeTimeLogAppender, this appender supports rolling by time and size and rolling at a specific time each day.

Added unit test for the new appender.

Added a new option testwait which is similar to test but waits for the user to press any key before calling the stop method.

* Update loggingAndErrorReporting.md

* Cannot use $ string.format syntax, downgraded code to string.format.

* Another syntax found of $

* Fixed a unit tests

* Added support to zip files.

* Added error handling

* Removed the zip call at startup.

* Fix issue with UTC

* Update loggingAndErrorReporting.md

Documented the new fields zipolderthannumdays and zipdateformat

* Update loggingAndErrorReporting.md

* Applied Code review

* Fixed a BST bug

* Added zip lib
2018-06-19 18:39:03 +02:00
Gabor Garancsi 56ab348652 Fix environment variable setting in RunawayProcessKiller test
This way the check can be reenabled as well.
2018-05-31 10:19:00 +02:00
Gerald Senarclens de Grancy f4da4bb8a8 pass ServiceDescriptor when creating wrapperservice 2017-10-30 13:36:17 +01:00
Oleg Nenashev 8d94277288 Issue #237 - Improve diagnostics of the Runaway Process Killer when it kills the process (#239)
* Issue #237 - Improve diagnostics of the Runaway Process Killer when it kills the process

* Issue #237 - Also print the process (not sure if it's safe)
2017-09-18 18:25:16 +02:00
Dinz 221d30f271 Introduced the following new elements. (#247)
* Introduced the following new elements.
1. logname - you can override the name of the log file rather than using the EXE name, this means you don't have to call your EXE a different name, just name the winsw exe different. Default's the name to the EXE as before.
2. outfiledisabled - you can disable writing to the out file. Defaults to false.
3. errfiledisabled - you can disable writing to the error file. Defaults to false.
4. outfilepattern - you can choose the pattern of the out file. Defaults to .out.log.
5. errfilepattern - you can choos the pattern of the error file. Defaults to .err.log.

* Downgraded from C#7.0 syntax.

* Applied reviewers comment

* not required

* removed the key

* Added unit test for new fields logname, outfiledisabled, errfiledisabled and errfilepattern.

Created a new appender called roll-by-size-time see class RollingSizeTimeLogAppender, this appender supports rolling by time and size and rolling at a specific time each day.

Added unit test for the new appender.

Added a new option testwait which is similar to test but waits for the user to press any key before calling the stop method.

* Update loggingAndErrorReporting.md

* Cannot use $ string.format syntax, downgraded code to string.format.

* Another syntax found of $

* Fixed a unit tests
2017-09-18 18:22:01 +02:00
Dos Moonen 0833d67c26 Start using stopTimeoutMs 2017-06-28 15:56:12 +02:00
Dos Moonen 138bca822d Noticed a small 'error' and fixed it 2017-06-27 09:58:04 +02:00
Oleg Nenashev 69857d5d8c Issue #218 - Also support managing Stdin, which is required in the main executable logic 2017-06-08 23:44:24 +02:00
Oleg Nenashev 05092376f3 Issue #218 - ProcessHelper#StartProcessAndCallbackForExit() should redirect STDOUT/STDERR when LogHandler is defined
It restores logging of executables, which has been broken in https://github.com/kohsuke/winsw/pull/220.
Not a regression, because the change has not been released yet
2017-06-08 22:54:44 +02:00
Paul Nikonowicz 5fb03bb094 [Issue #218] StdOut was not being redirected properly and was causing the child process to hang. 2017-05-30 17:32:25 -04:00
Oleg Nenashev 45f94fe006 [Issue #206] - Prevent printing of logs to the status command
This is rather a workaround to prevent printing of log messages in CLI with the default logging level. I reduced CLI logging verbosity to "Info" and moved the messages polluting the output to Debug. Anyway, these logging levels seem to be reasonable. I also added Info logging for start/stop/install/restart commands just to have a welcome message in CLI.
2017-04-26 00:35:28 +02:00
Oleg Nenashev 7d7000b1b9 Issue #148 - Update log4net to 2.0.8
It effectively bumps the bundled log4net version from 1.2.13 to 2.0.8 (log4net NuGet package used to have different versions).
According to the changelogs, there is no expected compatibility issues: https://logging.apache.org/log4net/release/release-notes.html
2017-04-23 13:41:18 +02:00
Oleg Nenashev d192c03638 #183 - Add core logic for the DelayedStart option support (#205)
* #183 - Add core logic for the DelayedStart option support

* #183 - Add unit tests

* #183 - Update documentation and the configuration sample

* #183 - Use API calls to set the DelayedAutoStart flag as @jtnord proposed

* #183 - Refactor the project to use `delayedAutoStart`
2017-04-18 23:23:52 +02:00
Oleg Nenashev 790b3a6541 Finalize the Download Command changes (#203)
* Refactor parameter parsing in Download.cs, add more checks

* Handle Download#unsecureAuth as boolean

* Parse Enums in a case-insensitive mode, propagate error correctly

* Add tests for the newly introduced functionality

* Update the configuration sample to reflect the recent changes

* Update the sample text according to the proposal from @nightman68
2017-04-13 16:49:59 +02:00
Oleg Nenashev f0770a0e15 Introduce the Download#FailOnError option. (#195)
* Introduce the Download#FailOnError option.

The change also adds logging of download operations to the wrapper log

* Add documentation for the failOnError flag
2017-04-11 22:57:39 +02:00
Torsten 5803d3ce15 Add support of authentication in the download operation (#194)
Issue #126 - Add support of authentication in the download settings
2017-04-11 22:37:44 +02:00
Oleg Nenashev 5637c406aa ExtensionTestBase should provide public methods within the test class 2017-03-31 17:01:42 +02:00
Oleg Nenashev 8cd58531f6 [JENKINS-42744] - Just another proof that some testing coverage is required for the service management logic 2017-03-31 16:01:01 +02:00
Oleg Nenashev f81f5d3c57 [FIXED JENKINS-42744] - Do not inject ps.EnvironmentVariables explicitly 2017-03-31 15:36:56 +02:00
Oleg Nenashev 9cfdcf4ae7 [JENKINS-42744] - Allow ignoring the WINSW_SERVICE_ID env variable (test-only for now) 2017-03-31 15:28:02 +02:00
Oleg Nenashev bca9bafc66 [JENKINS-42744] - Improve the ProcessHelperTes, add RunawayProcessKillerTest for the affected logic 2017-03-31 15:10:57 +02:00
Oleg Nenashev 9fc518a3d0 [JENKINS-42744] - Reproduce the issue in the unit test 2017-03-31 13:02:53 +02:00
Oleg Nenashev 615519f6a3 [JENKINS-42744] - Decouple the process start logic to a separate method in the helper class 2017-03-31 12:06:36 +02:00
madargs de83539bef Fixes #95 - Service not sending SIGINT properly to java (#186)
* Fixes #95 - Service not sending SIGINT properly to java

Detach from console process after sending SIGINT to java.
Note: we still need <stopparentprocessfirst> to be set to true, so the
parent (java) process is shut down first.
Moved exception handling to GetChildPids.
StopProcessAndChildren now gets a fresh list of childPids after stopping
a parent process, as that may have caused some child processes to
terminate.

* Fixes #181 - V2 : WinSW.NET2.exe not working

Latest version of ILMerge targets .NET4 by default when merging
assemblies; specify target platform version for the .NET2 executable.

* Fixes #95 - Service not sending SIGINT properly to java

Error-checking for console detach, spaces indentation.
#181 fix moved to separate branch.

Revert "Fixes #181 - V2 :
WinSW.NET2.exe not working"

This reverts
commit
a089755cb9.
2017-02-13 18:24:23 +03:00
madargs ac7a8b6f99 Issue #181 - WinSW.NET2.exe - ILMerge should explicitly define v2 as a TargetPlatformVersion (#188)
* Fixes #95 - Service not sending SIGINT properly to java

Detach from console process after sending SIGINT to java.
Note: we still need <stopparentprocessfirst> to be set to true, so the
parent (java) process is shut down first.
Moved exception handling to GetChildPids.
StopProcessAndChildren now gets a fresh list of childPids after stopping
a parent process, as that may have caused some child processes to
terminate.

* Fixes #181 - V2 : WinSW.NET2.exe not working

Latest version of ILMerge targets .NET4 by default when merging
assemblies; specify target platform version for the .NET2 executable.

* Revert "Fixes #95 - Service not sending SIGINT properly to java"

This reverts commit dc42c73fab.
2017-02-13 18:24:07 +03:00
Oleg Nenashev d665afc91c Fix #178 - Use proper default value when handling Arguments 2017-01-04 23:15:42 +01:00
Oleg Nenashev b27c523f0a Issue #178 - Add unit tests for argument ant arguments config entries 2017-01-04 23:14:49 +01:00
Oleg Nenashev 9399544ef5 Fix #159 - Streamline TimeSpan parsing logic, get rid of the buggy code 2016-12-29 11:02:24 +01:00
Oleg Nenashev fca428d351 Issue #159 - reproduce issue in tests 2016-12-29 10:49:42 +01:00
Oleg Nenashev 806c945d65 Issue #159 - Add tests for TimeSpan fields 2016-12-29 00:13:56 +01:00