You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(19) |
Oct
(26) |
Nov
(37) |
Dec
(9) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(48) |
Feb
(107) |
Mar
(74) |
Apr
(89) |
May
(37) |
Jun
(29) |
Jul
(40) |
Aug
(75) |
Sep
(59) |
Oct
(80) |
Nov
(16) |
Dec
|
| 2004 |
Jan
(54) |
Feb
(13) |
Mar
(64) |
Apr
(52) |
May
(13) |
Jun
(52) |
Jul
(72) |
Aug
(53) |
Sep
(80) |
Oct
(22) |
Nov
(48) |
Dec
(33) |
| 2005 |
Jan
(1) |
Feb
(6) |
Mar
(12) |
Apr
(7) |
May
(35) |
Jun
(19) |
Jul
(6) |
Aug
(11) |
Sep
(9) |
Oct
(29) |
Nov
(17) |
Dec
(58) |
| 2006 |
Jan
(44) |
Feb
(78) |
Mar
(29) |
Apr
(31) |
May
(19) |
Jun
(34) |
Jul
(23) |
Aug
(16) |
Sep
(20) |
Oct
(49) |
Nov
(11) |
Dec
(4) |
| 2007 |
Jan
(23) |
Feb
(17) |
Mar
(18) |
Apr
(45) |
May
(10) |
Jun
(3) |
Jul
(3) |
Aug
|
Sep
|
Oct
(1) |
Nov
(5) |
Dec
(7) |
| 2008 |
Jan
(1) |
Feb
(15) |
Mar
(2) |
Apr
(2) |
May
|
Jun
(2) |
Jul
(1) |
Aug
(3) |
Sep
|
Oct
|
Nov
|
Dec
(1) |
| 2009 |
Jan
(11) |
Feb
(7) |
Mar
(2) |
Apr
(11) |
May
(6) |
Jun
|
Jul
|
Aug
(11) |
Sep
(1) |
Oct
(7) |
Nov
(33) |
Dec
(2) |
| 2010 |
Jan
|
Feb
(19) |
Mar
(14) |
Apr
(17) |
May
(15) |
Jun
(13) |
Jul
(51) |
Aug
(17) |
Sep
(3) |
Oct
(19) |
Nov
(1) |
Dec
(8) |
| 2011 |
Jan
|
Feb
|
Mar
|
Apr
(4) |
May
(14) |
Jun
(2) |
Jul
(5) |
Aug
(10) |
Sep
(5) |
Oct
|
Nov
(6) |
Dec
(4) |
| 2012 |
Jan
|
Feb
(11) |
Mar
|
Apr
|
May
|
Jun
(3) |
Jul
(6) |
Aug
|
Sep
|
Oct
(1) |
Nov
(4) |
Dec
|
| 2013 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(4) |
Jun
(8) |
Jul
(4) |
Aug
(21) |
Sep
(15) |
Oct
(12) |
Nov
(22) |
Dec
(9) |
| 2014 |
Jan
(3) |
Feb
(1) |
Mar
|
Apr
(2) |
May
|
Jun
(7) |
Jul
(4) |
Aug
(2) |
Sep
|
Oct
(9) |
Nov
(23) |
Dec
(9) |
| 2015 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(10) |
Sep
(3) |
Oct
|
Nov
(2) |
Dec
|
| 2020 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(2) |
Nov
(5) |
Dec
(1) |
| 2021 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
| 2022 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2025 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
|
From: <mor...@us...> - 2025-09-01 05:46:40
|
Revision: 2155
http://sourceforge.net/p/wrapper/code/2155
Author: mortenson
Date: 2025-09-01 05:46:39 +0000 (Mon, 01 Sep 2025)
Log Message:
-----------
Add to ignores
Property Changed:
----------------
trunk/wrapper/
trunk/wrapper/src/c/
Index: trunk/wrapper
===================================================================
--- trunk/wrapper 2025-06-05 04:05:05 UTC (rev 2154)
+++ trunk/wrapper 2025-09-01 05:46:39 UTC (rev 2155)
Property changes on: trunk/wrapper
___________________________________________________________________
Modified: svn:ignore
## -9,3 +9,5 ##
logs
iv?
d???.properties
+wrapper.log
+CUnitAutomated-*.xml
Index: trunk/wrapper/src/c
===================================================================
--- trunk/wrapper/src/c 2025-06-05 04:05:05 UTC (rev 2154)
+++ trunk/wrapper/src/c 2025-09-01 05:46:39 UTC (rev 2155)
Property changes on: trunk/wrapper/src/c
___________________________________________________________________
Modified: svn:ignore
## -12,6 +12,7 ##
WrapperJNI??.dep
WrapperJNI??.mak
.deps
+obj_*
*.ncb
*.suo
*.user
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <mor...@us...> - 2022-05-13 06:49:27
|
Revision: 2085
http://sourceforge.net/p/wrapper/code/2085
Author: mortenson
Date: 2022-05-13 06:49:26 +0000 (Fri, 13 May 2022)
Log Message:
-----------
Fix a typo generating the long.dist.name property on arm macosx.
Modified Paths:
--------------
trunk/wrapper/build.xml
Modified: trunk/wrapper/build.xml
===================================================================
--- trunk/wrapper/build.xml 2022-05-13 04:59:43 UTC (rev 2084)
+++ trunk/wrapper/build.xml 2022-05-13 06:49:26 UTC (rev 2085)
@@ -109,9 +109,6 @@
<condition property="dist.arch" value="universal">
<equals arg1="${dist.os}" arg2="macosx"/>
</condition>
- <condition property="dist.arch.long" value="x86, ppc">
- <equals arg1="${dist.os}" arg2="macosx"/>
- </condition>
<condition property="dist.arch" value="x86">
<or>
<equals arg1="${os.arch}" arg2="amd64"/>
@@ -178,8 +175,16 @@
<available file="/usr/bin/arm-linux-gnueabihf-gcc"/>
</condition>
<property name="dist.arch" value="${os.arch}"/>
+
<!-- dist.arch.long defaults to dist.arch unless otherwise defined above. -->
+ <condition property="dist.arch.long" value="x86, ppc">
+ <and>
+ <equals arg1="${dist.arch}" arg2="universal"/>
+ <equals arg1="${dist.os}" arg2="macosx"/>
+ </and>
+ </condition>
<property name="dist.arch.long" value="${dist.arch}"/>
+
<property name="long.name.arch" value="${long.name} (${dist.arch.long})"/>
<!-- platform -->
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <mor...@us...> - 2021-12-22 02:59:52
|
Revision: 2073
http://sourceforge.net/p/wrapper/code/2073
Author: mortenson
Date: 2021-12-22 02:59:50 +0000 (Wed, 22 Dec 2021)
Log Message:
-----------
Update release notes.
Modified Paths:
--------------
trunk/wrapper/doc/revisions.txt
trunk/wrapper/src/c/wrapperinfo.c.in
Modified: trunk/wrapper/doc/revisions.txt
===================================================================
--- trunk/wrapper/doc/revisions.txt 2021-12-22 02:00:55 UTC (rev 2072)
+++ trunk/wrapper/doc/revisions.txt 2021-12-22 02:59:50 UTC (rev 2073)
@@ -1,16 +1,20 @@
Java Service Wrapper Revision History.
--------------------------------------
3.5.48
-* Fix a bug on UNIX where the Wrapper would get stuck on a JVM restart if
- wrapper.disable_console_input was set to TRUE, which is the default when
- running as a daemon (Since 3.5.47).
+* Fix a critical bug on UNIX where the Wrapper could get stuck and fail to
+ restart if a JVM restart was requested by the JVM or Wrapper. This would
+ happen when wrapper.disable_console_input was set to TRUE, which is the
+ default when running as a daemon. Since 3.5.47.
* Fix a bug on UNIX where console messages would sometimes be truncated,
- causing the following message to start on the same line (Since 3.5.47).
+ causing the next message to start on the same line. This was only a display
+ problem and did not affect the operation of the Wrapper. The log file was
+ not affected. Since 3.5.47.
+* Windows versions were unchanged from 3.5.47.
3.5.47
* (Standard) Fix a bug where setting wrapper.share.<n>.startup.premapped or
wrapper.share.<n>.startup.failure to 'SHUTDOWN' would cancel the action
- specified by wrapper.on_exit.<n> (Since 3.5.30).
+ specified by wrapper.on_exit.<n>. Since 3.5.30.
* Fix 'Invalid permission eventType: "serviceremote control"' exception when
using a Security Manager. Security Manager has, however, been deprecated
since Java 17 and usage is no longer recommended.
@@ -241,10 +245,10 @@
configured account during installation of the Windows Service.
* Fix issue where the authentication attempt performed during installation of a
Windows Service would fail if the configured wrapper.ntservice.account did
- not have the 'Log on as a service' privilege (Since 3.5.42).
+ not have the 'Log on as a service' privilege. Since 3.5.42.
* Fix a problem where special service accounts (LocalService, NetworkService
and LocalSystem) could not be used by wrapper.ntservice.account when
- installing a service (Since 3.5.42).
+ installing a service. Since 3.5.42.
* Fix a timing problem where the Wrapper would sometimes claim that the JVM
exited unexpectedly if the JVM requested a stop while starting.
* Sign the binaries in the macosx tar.gz distributions as well as in the
Modified: trunk/wrapper/src/c/wrapperinfo.c.in
===================================================================
--- trunk/wrapper/src/c/wrapperinfo.c.in 2021-12-22 02:00:55 UTC (rev 2072)
+++ trunk/wrapper/src/c/wrapperinfo.c.in 2021-12-22 02:59:50 UTC (rev 2073)
@@ -30,7 +30,7 @@
TCHAR *wrapperBits = TEXT("@bits@");
TCHAR *wrapperArch = TEXT("@dist.arch@");
TCHAR *wrapperOS = TEXT("@dist.os@");
-TCHAR *wrapperReleaseDate = TEXT("20211207");
+TCHAR *wrapperReleaseDate = TEXT("20211222");
TCHAR *wrapperReleaseTime = TEXT("0000");
TCHAR *wrapperBuildDate = TEXT("@build.date@");
TCHAR *wrapperBuildTime = TEXT("@build.time@");
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <mor...@us...> - 2020-12-02 16:05:46
|
Revision: 2049
http://sourceforge.net/p/wrapper/code/2049
Author: mortenson
Date: 2020-12-02 16:05:33 +0000 (Wed, 02 Dec 2020)
Log Message:
-----------
Work on 3.5.45
Modified Paths:
--------------
trunk/wrapper/build-tests.xml
trunk/wrapper/build.xml
trunk/wrapper/default.properties
trunk/wrapper/doc/revisions.txt
trunk/wrapper/src/bin/App.bat.in
trunk/wrapper/src/bin/App.sh.in
trunk/wrapper/src/bin/AppCommand.bat.in
trunk/wrapper/src/bin/AppTemplate.bat.in
trunk/wrapper/src/bin/AppTemplatePassThrough.bat.in
trunk/wrapper/src/bin/InstallApp-NT.bat.in
trunk/wrapper/src/bin/PauseApp-NT.bat.in
trunk/wrapper/src/bin/QueryApp-NT.bat.in
trunk/wrapper/src/bin/ResumeApp-NT.bat.in
trunk/wrapper/src/bin/SetupApp.bat.in
trunk/wrapper/src/bin/StartApp-NT.bat.in
trunk/wrapper/src/bin/StopApp-NT.bat.in
trunk/wrapper/src/bin/TeardownApp.bat.in
trunk/wrapper/src/bin/UninstallApp-NT.bat.in
trunk/wrapper/src/c/wrapper.c
trunk/wrapper/src/c/wrapper.h
trunk/wrapper/src/c/wrapper_jvminfo.c
trunk/wrapper/src/c/wrapperinfo.c.in
trunk/wrapper/src/c/wrapperinfo.h
trunk/wrapper/src/java/org/tanukisoftware/wrapper/WrapperManager.java
trunk/wrapper/src/java/org/tanukisoftware/wrapper/demo/DemoApp.java
Modified: trunk/wrapper/build-tests.xml
===================================================================
--- trunk/wrapper/build-tests.xml 2020-11-30 15:37:23 UTC (rev 2048)
+++ trunk/wrapper/build-tests.xml 2020-12-02 16:05:33 UTC (rev 2049)
@@ -121,7 +121,7 @@
<property name="@{mode}-js-execute-first-try" value="true" />
<!-- this might fail on the first loop, but will never fail on the second loop thanks to '@{mode}-js-execute-second-try' being set. -->
- <antcall target="test-js-engine:execute-@{mode}-js" inheritAll="true" />
+ <antcall target="test-js-engine:execute-@{mode}-js" inheritAll="true" inheritRefs="true" />
<!-- if 'execute-js' failed, we should not go here. -->
<condition property="js-engine-ok" value="true">
@@ -141,13 +141,13 @@
</target>
<!-- If a built-in javascript exists, set an empty classpath. -->
- <target name="builtin.js.engine:set-classpath" depends="builtin.js.engine:test" if="js-engine-ok">
- <echo message="built-in Javascript engine detected." />
+ <target name="builtin.js.engine" depends="builtin.js.engine:test" if="js-engine-ok">
+ <echo message="Built-in Javascript engine detected." />
<path id="classpath.js.engine"/>
</target>
<!-- If no built-in javascript exists, check if there is an external directory from where the engine should be loaded. -->
- <target name="external.js.engine:check-dir" depends="builtin.js.engine:set-classpath" unless="js-engine-ok">
+ <target name="external.js.engine:check-dir" depends="builtin.js.engine" unless="js-engine-ok">
<condition property="no-js-engine">
<not><isset property="external.js.engine.dir"/></not>
</condition>
@@ -188,7 +188,7 @@
<!-- If the external javascript engine should be used, set a classpath to all jars contained in the specified directory and test the engine. -->
<target name="external.js.engine:test" depends="external.js.engine:check-for-test" if="test-external-js">
- <echo message="built-in Javascript engine not present, try using external engine from ${external.js.engine.dir}." />
+ <echo message="Built-in Javascript engine not present, try using external engine from ${external.js.engine.dir}." />
<path id="classpath.js.engine">
<fileset dir="${external.js.engine.dir}">
<include name="*.jar"/>
@@ -195,20 +195,31 @@
</fileset>
</path>
<test-js-engine mode="external" />
+ <condition property="external-js-engine-ok">
+ <isset property="js-engine-ok"/>
+ </condition>
</target>
-
- <target name="resolve-js-engine" depends="init, external.js.engine:test">
+
+ <!-- Stop if the external javascript engine was tested but failed to execute. -->
+ <target name="external.js.engine:err-if-invalid-engine" depends="external.js.engine:test" if="test-external-js" unless="external-js-engine-ok">
+ <echo message="**********************************************************************"/>
+ <echo message="* ERROR"/>
+ <echo message="* External Javascript engine failed to execute. Check that the correct libraries are present in ${external.js.engine.dir}."/>
+ <echo message="**********************************************************************"/>
+ <fail message="External Javascript engine failed to execute."/>
+ </target>
+
+ <!-- Finally, show a message if the external javascript engine was tested and executed correctly. -->
+ <target name="external.js.engine" depends="external.js.engine:err-if-invalid-engine" if="external-js-engine-ok">
+ <echo message="External Javascript engine detected." />
+ </target>
+
+ <target name="resolve-js-engine" depends="init, builtin.js.engine, external.js.engine" if="js-engine-ok">
<condition property="js-engine-ok-and-win">
- <and>
- <isset property="${js-engine-ok}"/>
- <istrue value="${is.shell.bat}"/>
- </and>
+ <istrue value="${is.shell.bat}"/>
</condition>
<condition property="js-engine-ok-and-unix">
- <and>
- <isset property="${js-engine-ok}"/>
- <istrue value="${is.Unix}"/>
- </and>
+ <istrue value="${is.Unix}"/>
</condition>
</target>
Modified: trunk/wrapper/build.xml
===================================================================
--- trunk/wrapper/build.xml 2020-11-30 15:37:23 UTC (rev 2048)
+++ trunk/wrapper/build.xml 2020-12-02 16:05:33 UTC (rev 2049)
@@ -7,7 +7,8 @@
<project name="wrapper" default="main" basedir=".">
<!-- Local build properties -->
- <property file="${user.home}/.ant.properties"/>
+ <property name="config.dir" value="${user.home}"/>
+ <property file="${config.dir}/.ant.properties"/>
<property file="${basedir}/ant.properties"/>
<property file="${basedir}/default.properties"/>
@@ -18,6 +19,8 @@
<property environment="env"/>
<property name="java.home" value="${env.JAVA_HOME}"/>
+ <property name="prerelease.marker" value="pre-release"/>
+
<!-- Project classpath -->
<path id="project.class.path">
<pathelement location="${build.classes}"/>
@@ -50,7 +53,15 @@
<echo message="Java Version: ${java.version}"/>
<echo message="Ant Version: ${ant.version}"/>
+ <available property="home.ant.properties.exists" value="true" file="${config.dir}/.ant.properties"/>
+ <property name="home.ant.properties.exists" value="false"/>
+ <echo message="${config.dir}/.ant.properties exists?: ${home.ant.properties.exists}"/>
+ <available property="ant.properties.exists" value="true" file="${basedir}/ant.properties"/>
+ <property name="ant.properties.exists" value="false"/>
+ <echo message="${basedir}/ant.properties exists?: ${ant.properties.exists}"/>
+
+
<!-- Resolve an OS name to use in release names. -->
<condition property="dist.os" value="windows">
<or>
@@ -218,14 +229,10 @@
</condition>
<condition property="prebuilt.jar.present" value="true">
- <and>
- <available file="${src.dir}/lib/wrapper.jar" />
- <available file="${src.dir}/lib/wrappertest.jar" />
- <available file="${src.dir}/lib/wrappertest2.jar" />
- </and>
+ <available file="${src.dir}/pre-release/lib/wrapper.jar" />
</condition>
- <condition property="pre-release.disable" value="true">
+ <condition property="jar.pre-release-step1.disable" value="true">
<and>
<not>
<isset property="prebuilt.jar.present"/>
@@ -461,19 +468,18 @@
depends="init-windows, init-unix, init-bits-check, init-bits-mismatch-check">
<tstamp/>
- <filter token="version" value="${version}" />
- <filter token="version.root" value="${version.root}" />
- <filter token="bits" value="${bits}" />
- <filter token="dist.arch" value="${dist.arch}" />
- <filter token="dist.os" value="${dist.os}" />
- <filter token="build.date" value="${DSTAMP}" />
- <filter token="build.time" value="${TSTAMP}" />
+ <filter token="version" value="${version}" />
+ <filter token="version.root" value="${version.root}" />
+ <filter token="bits" value="${bits}" />
+ <filter token="dist.arch" value="${dist.arch}" />
+ <filter token="dist.os" value="${dist.os}" />
+ <filter token="build.date" value="${DSTAMP}" />
+ <filter token="build.time" value="${TSTAMP}" />
+ <filter token="javac.target.version" value="${javac.target.version}" />
- <filter token="app.name" value="${app.name}" />
- <filter token="app.long.name" value="${app.long.name}" />
- <filter token="app.description" value="${app.desc}" />
-
- <property name="prerelease.marker" value="pre-release"/>
+ <filter token="app.name" value="${app.name}" />
+ <filter token="app.long.name" value="${app.long.name}" />
+ <filter token="app.description" value="${app.desc}" />
</target>
<target name="init:msg" depends="init">
<echo message="**********************************************************************"/>
@@ -520,7 +526,7 @@
tofile="${src.dir}/c/wrapperinfo.c"
filtering="on" overwrite="true"/>
</target>
-
+
<!-- =================================================================== -->
<!-- Compiles the source code -->
<!-- =================================================================== -->
@@ -531,14 +537,27 @@
<echo message="* compatible with older JVMs."/>
<echo message="**********************************************************************"/>
</target>
- <target name="compile-java:core" depends="compile-java-warn">
+ <target name="compile-java:setup" depends="compile-java-warn">
<mkdir dir="${build.dir}"/>
<mkdir dir="${build.classes}"/>
+ <mkdir dir="${build.headers}"/>
<mkdir dir="${build.testclasses}"/>
<mkdir dir="${lib.dir}"/>
+ <!-- Check if this Java version can use javah -->
+ <condition property="is.javah_supported">
+ <or>
+ <equals arg1="${ant.java.version}" arg2="1.4" />
+ <equals arg1="${ant.java.version}" arg2="1.5" />
+ <equals arg1="${ant.java.version}" arg2="1.6" />
+ <equals arg1="${ant.java.version}" arg2="1.7" />
+ </or>
+ </condition>
+ </target>
+ <target name="compile-java:javac-javah" depends="compile-java:setup" if="is.javah_supported">
<!-- compile everything under src/java -->
- <javac srcdir="${src.dir}/java" destdir="${build.classes}"
+ <javac srcdir="${src.dir}/java"
+ destdir="${build.classes}"
deprecation="on"
debug="on"
optimize="on"
@@ -547,7 +566,27 @@
target="${javac.target.version}">
<classpath refid="project.class.path"/>
</javac>
-
+
+ <javah destdir="${build.headers}" classpath="${build.classes}">
+ <class name="org.tanukisoftware.wrapper.WrapperManager"/>
+ </javah>
+ </target>
+ <target name="compile-java:javac-no-javah" depends="compile-java:setup" unless="is.javah_supported">
+ <!-- From Java 8 is recommended not to use javah to generate JNI headers, from Java 10 it is no longer possible and javac -h must be used. -->
+ <echo message="White headers to ${build.headers}"/>
+ <javac srcdir="${src.dir}/java"
+ destdir="${build.classes}"
+ nativeheaderdir="${build.headers}"
+ deprecation="on"
+ debug="on"
+ optimize="on"
+ includeantruntime="false"
+ source="${javac.target.version}"
+ target="${javac.target.version}">
+ <classpath refid="project.class.path"/>
+ </javac>
+ </target>
+ <target name="compile-java:core" depends="compile-java:javac-javah, compile-java:javac-no-javah">
<!-- copy resource files to build directory -->
<copy todir="${build.classes}" >
<fileset dir="${src.dir}/java" >
@@ -568,38 +607,8 @@
</fileset>
</copy>
- <!-- Generate the jni header files. This is done here rather than with the
- c code to make intermediate pre-release distributions possible. -->
- <javah
- destdir="${src.dir}/c"
- classpath="${build.classes}">
- <class name="org.tanukisoftware.wrapper.WrapperManager"/>
- </javah>
- <fixcrlf srcdir="${src.dir}/c" includes="org_tanukisoftware_wrapper_WrapperManager.h" eol="lf" />
- <javah
- destdir="${src.dir}/c"
- classpath="${build.classes}">
- <class name="org.tanukisoftware.wrapper.WrapperProcessInputStream"/>
- </javah>
- <fixcrlf srcdir="${src.dir}/c" includes="org_tanukisoftware_wrapper_WrapperProcessInputStream.h" eol="lf" />
- <javah
- destdir="${src.dir}/c"
- classpath="${build.classes}">
- <class name="org.tanukisoftware.wrapper.WrapperProcessOutputStream"/>
- </javah>
- <fixcrlf srcdir="${src.dir}/c" includes="org_tanukisoftware_wrapper_WrapperProcessOutputStream.h" eol="lf" />
- <javah
- destdir="${src.dir}/c"
- classpath="${build.classes}">
- <class name="org.tanukisoftware.wrapper.WrapperProcessConfig"/>
- </javah>
- <fixcrlf srcdir="${src.dir}/c" includes="org_tanukisoftware_wrapper_WrapperProcessConfig.h" eol="lf" />
- <javah
- destdir="${src.dir}/c"
- classpath="${build.classes}">
- <class name="org.tanukisoftware.wrapper.WrapperResources"/>
- </javah>
- <fixcrlf srcdir="${src.dir}/c" includes="org_tanukisoftware_wrapper_WrapperResources.h" eol="lf" />
+ <!-- Cleanup the linefeeds of the generated headers -->
+ <fixcrlf srcdir="${build.headers}" includes="org_tanukisoftware_wrapper_*.h" eol="lf" />
<available property="junit.present"
classname="junit.framework.TestCase">
@@ -647,7 +656,7 @@
<echo message="* ${vcvars.v8_ia_64_1} ${vcvars.v8_ia_64_1.arg.1} ${vcvars.v8_ia_64_1.arg.2}"/>
<echo message="* "/>
<echo message="* If it is installed at a different location, create a file called "/>
- <echo message="* ${user.home}/.ant.properties"/>
+ <echo message="* ${config.dir}/.ant.properties"/>
<echo message="* * and define the vcvars.bat property with the absolute location of the "/>
<echo message="* vcvars scripts. For example:"/>
<echo message="* vcvars.bat=${vcvars.v8_32_1}"/>
@@ -749,9 +758,17 @@
<!-- Creates the jar archive -->
<!-- =================================================================== -->
<target name="jar:copy" depends="init-setup" if="prebuilt.jar.present">
- <copy file="${src.dir}/lib/wrapper.jar" todir="${lib.dir}" preservelastmodified="true" />
- <copy file="${src.dir}/lib/wrappertest.jar" todir="${lib.dir}" preservelastmodified="true" />
- <copy file="${src.dir}/lib/wrappertest2.jar" todir="${lib.dir}" preservelastmodified="true" />
+ <copy file="${src.dir}/pre-release/lib/wrapper.jar" todir="${lib.dir}" preservelastmodified="true" />
+ <copy file="${src.dir}/pre-release/lib/wrappertest.jar" todir="${lib.dir}" preservelastmodified="true" />
+ <copy file="${src.dir}/pre-release/lib/wrappertest2.jar" todir="${lib.dir}" preservelastmodified="true" />
+ <copy file="${src.dir}/pre-release/lib/wrapperdemo.jar" todir="${lib.dir}" preservelastmodified="true" />
+
+ <!-- Update the JNI header files from pre-release files. -->
+ <copy todir="${src.dir}/c" overwrite="true">
+ <fileset dir="${src.dir}/pre-release/headers">
+ <include name="*.h"/>
+ </fileset>
+ </copy>
</target>
<target name="jar:build" depends="init-setup" unless="prebuilt.jar.present">
<antcall target="compile-java" />
@@ -821,13 +838,25 @@
<attribute name="Main-Class" value="org.tanukisoftware.wrapper.demo.DemoApp"/>
</manifest>
</jar>
+
+ <!-- Update the JNI header files from build.headers. -->
+ <delete>
+ <fileset dir="${src.dir}/c">
+ <include name="org_tanukisoftware_wrapper_*.h"/>
+ </fileset>
+ </delete>
+ <copy todir="${src.dir}/c" overwrite="true">
+ <fileset dir="${build.headers}">
+ <include name="org_tanukisoftware_wrapper_WrapperManager.h"/>
+ </fileset>
+ </copy>
</target>
<!-- During the pre-releases, we want to create unique jar files which will be signed and used by all editions.
But community or professional should also be able to build the jar files on their own.
- We do the following: - if the files are present in src/lib, they are copied to lib, otherwise they are built.
- - during the pre-release, the jar files are built, output to coresrc/src/lib, and copied
+ We do the following: - if the files are present in src/pre-release/lib, they are copied to lib, otherwise they are built.
+ - during the pre-release, the jar files are built, output to coresrc/src/pre-release/lib, and copied
to each edition. Then the editions will copy them to their lib folders and add them to
- the archive. At the end of the pre-release the src/lib folder are cleaned so that those
+ the archive. At the end of the pre-release the src/pre-release/lib folder are cleaned so that those
jar files are not reused. -->
<target name="jar:get" depends="jar:copy, jar:build">
</target>
@@ -838,7 +867,7 @@
<!-- This is a bit long because the -verbose mode goes through all the class files contained in the jar.
But it's the only way I know to check the timestamps. -->
<exec executable="jarsigner" outputproperty="verify.@{filename}.output">
- <arg line="-verify -verbose -certs src/lib/@{filename}" />
+ <arg line="-verify -verbose -certs src/pre-release/lib/@{filename}" />
</exec>
<echo level="verbose" message="${verify.@{filename}.output}${line.separator}timestamp.start=${timestamp.start}${line.separator}timestamp.end=${timestamp.end}" />
@@ -878,12 +907,9 @@
</target>
<target name="jar" depends="jar:get"/>
- <!-- Clear the jar file in src/lib -->
- <target name="jar:clean-src-lib">
- <delete file="${src.dir}/lib/wrapper.jar" />
- <delete file="${src.dir}/lib/wrappertest.jar" />
- <delete file="${src.dir}/lib/wrappertest2.jar" />
- <delete file="${src.dir}/lib/wrapperdemo.jar" />
+ <!-- Removes the src/pre-release directory -->
+ <target name="jar:clean-src-pre-release">
+ <delete dir="${src.dir}/pre-release"/>
</target>
<!-- =================================================================== -->
@@ -1233,17 +1259,7 @@
<!-- =================================================================== -->
<!-- Pre Release -->
<!-- =================================================================== -->
- <target name="pre-release:disabled" depends="init" if="pre-release.disable">
- <echo/>
- <echo>**********************************************************</echo>
- <echo>* Pre-release distributions can only be generated using *</echo>
- <echo>* Java ${javac.target.version} JVMs to guarantee that the resulting jars *</echo>
- <echo>* will run on all platforms. *</echo>
- <echo>* This is a ${java.specification.version} JVM. *</echo>
- <echo>**********************************************************</echo>
- <fail message="Invalid JVM version for pre-release build."/>
- </target>
- <target name="pre-release" depends="pre-release:disabled, release-common"
+ <target name="pre-release" depends="release-common"
description="Builds an intermediate release file that can then be deployed to individual platforms to complete the platform specific releases.">
<property name="prerelease.file" value="wrapper_prerelease_${version}"/>
<property name="prerelease.dir" value="${build.dir}/prerelease/${prerelease.file}"/>
Modified: trunk/wrapper/default.properties
===================================================================
--- trunk/wrapper/default.properties 2020-11-30 15:37:23 UTC (rev 2048)
+++ trunk/wrapper/default.properties 2020-12-02 16:05:33 UTC (rev 2049)
@@ -36,6 +36,7 @@
# location of intermediate products
build.dir = ${basedir}/build
build.classes = ${build.dir}/classes
+build.headers = ${build.dir}/headers
build.testclasses = ${build.dir}/testclasses
build.tests = ${build.dir}/tests
dist.dir = ${basedir}/dist
Modified: trunk/wrapper/doc/revisions.txt
===================================================================
--- trunk/wrapper/doc/revisions.txt 2020-11-30 15:37:23 UTC (rev 2048)
+++ trunk/wrapper/doc/revisions.txt 2020-12-02 16:05:33 UTC (rev 2049)
@@ -9,10 +9,29 @@
startup. Removing this file would solve the issue.
* Fix a problem where the Wrapper would fail to start if the shell script was
on a path which contained multiple consecutive spaces. (Bug #311)
-* When building tests (community edition), check the presence of a javascript
+* When building tests (Community Edition), check the presence of a javascript
engine instead of assuming it is available based on the Java version. If no
built-in engine is found, an external engine can be specified by setting the
'external.js.engine.dir' property when calling Ant. (Bug #313)
+* Add a new _WRAPPER_TIMEOUT setting in the Windows batch scripts which makes
+ it possible to control the maximum number of seconds to pause on exit when
+ there is a problem. (Feature #136)
+* Makes it possible to build the Community Edition with with Java 10+ by
+ automatically using 'javac -h' instead of 'javah'. (Bug #312)
+* Use the value of javac.target.version in default.properties (Ant file) as the
+ minimum version of Java supported by the Wrapper instead of a hard-coded
+ value (useful when compiling the Community Edition).
+* No longer show a warning when Java is launched via a script. Instead the
+ Wrapper will check that the Java PID is as expected to confirm that Java has
+ been launched correctly.
+* Fix a problem where the Wrapper would show an error on startup if the stdin
+ pipe was not tied to a console window. This can happen when called within
+ other programs. Since 3.5.43.
+* Modify the DemoApp so its internal Wrapper instances no longer log to the
+ mail wrapper.log file as that was causing confusion. Fix an NPE in the
+ DemoApp if the Wrapper was shutdown external to the DemoApp dialog.
+* The z/Linux distributions are now built on a IBM z14 machine with RedHat
+ Linux 7.8.
3.5.44
* Add a log message when a wildcard classpath, defined with a
Modified: trunk/wrapper/src/bin/App.bat.in
===================================================================
--- trunk/wrapper/src/bin/App.bat.in 2020-11-30 15:37:23 UTC (rev 2048)
+++ trunk/wrapper/src/bin/App.bat.in 2020-12-02 16:05:33 UTC (rev 2049)
@@ -50,6 +50,10 @@
rem starting with the second, otherwise it applies to all arguments.
rem set _PASS_THROUGH=app_args
+rem If there are any errors, the script will pause for a specific number of seconds
+rem or until the user presses a key. (0 not to wait, negative to wait forever).
+set _WRAPPER_TIMEOUT=-1
+
rem Do not modify anything beyond this point
rem -----------------------------------------------------------------------------
@@ -111,8 +115,7 @@
echo Unable to locate a Wrapper executable using any of the following names:
echo %_WRAPPER_L_EXE%
echo %_WRAPPER_EXE%
-pause
-goto :eof
+goto preexitpause
:check_lic_bits
if %_BIN_BITS%=="64" (
@@ -160,8 +163,7 @@
if not [%1]==[] (
if [%_PASS_THROUGH%]==[false] (
echo Additional arguments are not allowed when _PASS_THROUGH is set to false.
- pause
- goto :eof
+ goto preexitpause
)
)
@@ -211,4 +213,13 @@
%_WRAPPER_EXE% -c %_WRAPPER_CONF% %_PARAMETERS%
)
if not errorlevel 1 goto :eof
-pause
+
+:preexitpause
+if %_WRAPPER_TIMEOUT% gtr 0 (
+ timeout /t %_WRAPPER_TIMEOUT%
+) else (
+ if %_WRAPPER_TIMEOUT% lss 0 (
+ pause
+ )
+)
+
Modified: trunk/wrapper/src/bin/App.sh.in
===================================================================
--- trunk/wrapper/src/bin/App.sh.in 2020-11-30 15:37:23 UTC (rev 2048)
+++ trunk/wrapper/src/bin/App.sh.in 2020-12-02 16:05:33 UTC (rev 2049)
@@ -1641,9 +1641,13 @@
echo "Type=forking" >> "${SYSTEMD_SERVICE_FILE}"
case "${REALPATH}" in
*\ *)
- # REALPATH contains space
- echo 'ExecStart=/usr/bin/env "'${REALPATH}'" start sysd' >> "${SYSTEMD_SERVICE_FILE}"
- echo 'ExecStop=/usr/bin/env "'${REALPATH}'" stop sysd' >> "${SYSTEMD_SERVICE_FILE}"
+ # REALPATH contains spaces
+ LINE_HEAD='ExecStart=/usr/bin/env "'
+ LINE_TAIL='" start sysd'
+ echo "${LINE_HEAD}${REALPATH}${LINE_TAIL}" >> "${SYSTEMD_SERVICE_FILE}"
+ LINE_HEAD='ExecStop=/usr/bin/env "'
+ LINE_TAIL='" stop sysd'
+ echo "${LINE_HEAD}${REALPATH}${LINE_TAIL}" >> "${SYSTEMD_SERVICE_FILE}"
;;
*)
echo "ExecStart=${REALPATH} start sysd" >> "${SYSTEMD_SERVICE_FILE}"
Modified: trunk/wrapper/src/bin/AppCommand.bat.in
===================================================================
--- trunk/wrapper/src/bin/AppCommand.bat.in 2020-11-30 15:37:23 UTC (rev 2048)
+++ trunk/wrapper/src/bin/AppCommand.bat.in 2020-12-02 16:05:33 UTC (rev 2049)
@@ -51,6 +51,10 @@
rem 'installstart' and 'update' commands.
set _PASS_THROUGH=app_args
+rem If there are any errors, the script will pause for a specific number of seconds
+rem or until the user presses a key. (0 not to wait, negative to wait forever).
+set _WRAPPER_TIMEOUT=-1
+
rem Do not modify anything beyond this point
rem -----------------------------------------------------------------------------
@@ -107,8 +111,7 @@
echo Unable to locate a Wrapper executable using any of the following names:
echo %_WRAPPER_L_EXE%
echo %_WRAPPER_EXE%
-pause
-goto :eof
+goto preexitpause
:check_lic_bits
rem The command should not be called inside a IF, else errorlevel would be 0
@@ -165,8 +168,7 @@
goto showusage
) else (
echo Invalid value '%_COMMAND%' for _FIXED_COMMAND.
- pause
- goto :eof
+ goto preexitpause
)
:args_not_allowed
@@ -183,8 +185,7 @@
if not [%1]==[] (
if [%_PASS_THROUGH%]==[false] (
echo Additional arguments are not allowed when _PASS_THROUGH is set to false.
- pause
- goto :eof
+ goto preexitpause
)
)
@@ -255,8 +256,7 @@
call :start
)
if not errorlevel 1 goto :eof
-pause
-goto :eof
+goto preexitpause
:start
%_WRAPPER_EXE% -t "%_WRAPPER_CONF%"
@@ -304,4 +304,13 @@
echo Optional arguments which will be passed to the Java application.
echo.
)
-pause
+
+:preexitpause
+if %_WRAPPER_TIMEOUT% gtr 0 (
+ timeout /t %_WRAPPER_TIMEOUT%
+) else (
+ if %_WRAPPER_TIMEOUT% lss 0 (
+ pause
+ )
+)
+
Modified: trunk/wrapper/src/bin/AppTemplate.bat.in
===================================================================
--- trunk/wrapper/src/bin/AppTemplate.bat.in 2020-11-30 15:37:23 UTC (rev 2048)
+++ trunk/wrapper/src/bin/AppTemplate.bat.in 2020-12-02 16:05:33 UTC (rev 2049)
@@ -37,6 +37,10 @@
rem as the first parameter.
rem set _WRAPPER_CONF_OVERRIDE=true
+rem If there are any errors, the script will pause for a specific number of seconds
+rem or until the user presses a key. (0 not to wait, negative to wait forever).
+set _WRAPPER_TIMEOUT=-1
+
rem Note that it is only possible to pass parameters through to the JVM when
rem installing the service, or when running in a console.
@@ -101,8 +105,7 @@
echo Unable to locate a Wrapper executable using any of the following names:
echo %_WRAPPER_L_EXE%
echo %_WRAPPER_EXE%
-pause
-goto :eof
+goto preexitpause
:check_lic_bits
if %_BIN_BITS%=="64" (
@@ -137,11 +140,19 @@
:callcommand
if not [%1]==[] (
echo Additional arguments are not allowed.
- pause
- goto :eof
+ goto preexitpause
)
%_WRAPPER_EXE% @wrapper.command@ %_WRAPPER_CONF%
if not errorlevel 1 goto :eof
-pause
+
+:preexitpause
+if %_WRAPPER_TIMEOUT% gtr 0 (
+ timeout /t %_WRAPPER_TIMEOUT%
+) else (
+ if %_WRAPPER_TIMEOUT% lss 0 (
+ pause
+ )
+)
+
Modified: trunk/wrapper/src/bin/AppTemplatePassThrough.bat.in
===================================================================
--- trunk/wrapper/src/bin/AppTemplatePassThrough.bat.in 2020-11-30 15:37:23 UTC (rev 2048)
+++ trunk/wrapper/src/bin/AppTemplatePassThrough.bat.in 2020-12-02 16:05:33 UTC (rev 2049)
@@ -50,6 +50,10 @@
rem starting with the second, otherwise it applies to all arguments.
rem set _PASS_THROUGH=app_args
+rem If there are any errors, the script will pause for a specific number of seconds
+rem or until the user presses a key. (0 not to wait, negative to wait forever).
+set _WRAPPER_TIMEOUT=-1
+
rem Do not modify anything beyond this point
rem -----------------------------------------------------------------------------
@@ -111,8 +115,7 @@
echo Unable to locate a Wrapper executable using any of the following names:
echo %_WRAPPER_L_EXE%
echo %_WRAPPER_EXE%
-pause
-goto :eof
+goto preexitpause
:check_lic_bits
if %_BIN_BITS%=="64" (
@@ -160,8 +163,7 @@
if not [%1]==[] (
if [%_PASS_THROUGH%]==[false] (
echo Additional arguments are not allowed when _PASS_THROUGH is set to false.
- pause
- goto :eof
+ goto preexitpause
)
)
@@ -211,4 +213,13 @@
%_WRAPPER_EXE% @wrapper.command@ %_WRAPPER_CONF% %_PARAMETERS%
)
if not errorlevel 1 goto :eof
-pause
+
+:preexitpause
+if %_WRAPPER_TIMEOUT% gtr 0 (
+ timeout /t %_WRAPPER_TIMEOUT%
+) else (
+ if %_WRAPPER_TIMEOUT% lss 0 (
+ pause
+ )
+)
+
Modified: trunk/wrapper/src/bin/InstallApp-NT.bat.in
===================================================================
--- trunk/wrapper/src/bin/InstallApp-NT.bat.in 2020-11-30 15:37:23 UTC (rev 2048)
+++ trunk/wrapper/src/bin/InstallApp-NT.bat.in 2020-12-02 16:05:33 UTC (rev 2049)
@@ -50,6 +50,10 @@
rem starting with the second, otherwise it applies to all arguments.
rem set _PASS_THROUGH=app_args
+rem If there are any errors, the script will pause for a specific number of seconds
+rem or until the user presses a key. (0 not to wait, negative to wait forever).
+set _WRAPPER_TIMEOUT=-1
+
rem Do not modify anything beyond this point
rem -----------------------------------------------------------------------------
@@ -111,8 +115,7 @@
echo Unable to locate a Wrapper executable using any of the following names:
echo %_WRAPPER_L_EXE%
echo %_WRAPPER_EXE%
-pause
-goto :eof
+goto preexitpause
:check_lic_bits
if %_BIN_BITS%=="64" (
@@ -160,8 +163,7 @@
if not [%1]==[] (
if [%_PASS_THROUGH%]==[false] (
echo Additional arguments are not allowed when _PASS_THROUGH is set to false.
- pause
- goto :eof
+ goto preexitpause
)
)
@@ -211,4 +213,13 @@
%_WRAPPER_EXE% -i %_WRAPPER_CONF% %_PARAMETERS%
)
if not errorlevel 1 goto :eof
-pause
+
+:preexitpause
+if %_WRAPPER_TIMEOUT% gtr 0 (
+ timeout /t %_WRAPPER_TIMEOUT%
+) else (
+ if %_WRAPPER_TIMEOUT% lss 0 (
+ pause
+ )
+)
+
Modified: trunk/wrapper/src/bin/PauseApp-NT.bat.in
===================================================================
--- trunk/wrapper/src/bin/PauseApp-NT.bat.in 2020-11-30 15:37:23 UTC (rev 2048)
+++ trunk/wrapper/src/bin/PauseApp-NT.bat.in 2020-12-02 16:05:33 UTC (rev 2049)
@@ -37,6 +37,10 @@
rem as the first parameter.
rem set _WRAPPER_CONF_OVERRIDE=true
+rem If there are any errors, the script will pause for a specific number of seconds
+rem or until the user presses a key. (0 not to wait, negative to wait forever).
+set _WRAPPER_TIMEOUT=-1
+
rem Note that it is only possible to pass parameters through to the JVM when
rem installing the service, or when running in a console.
@@ -101,8 +105,7 @@
echo Unable to locate a Wrapper executable using any of the following names:
echo %_WRAPPER_L_EXE%
echo %_WRAPPER_EXE%
-pause
-goto :eof
+goto preexitpause
:check_lic_bits
if %_BIN_BITS%=="64" (
@@ -137,11 +140,19 @@
:callcommand
if not [%1]==[] (
echo Additional arguments are not allowed.
- pause
- goto :eof
+ goto preexitpause
)
%_WRAPPER_EXE% -a %_WRAPPER_CONF%
if not errorlevel 1 goto :eof
-pause
+
+:preexitpause
+if %_WRAPPER_TIMEOUT% gtr 0 (
+ timeout /t %_WRAPPER_TIMEOUT%
+) else (
+ if %_WRAPPER_TIMEOUT% lss 0 (
+ pause
+ )
+)
+
Modified: trunk/wrapper/src/bin/QueryApp-NT.bat.in
===================================================================
--- trunk/wrapper/src/bin/QueryApp-NT.bat.in 2020-11-30 15:37:23 UTC (rev 2048)
+++ trunk/wrapper/src/bin/QueryApp-NT.bat.in 2020-12-02 16:05:33 UTC (rev 2049)
@@ -37,6 +37,10 @@
rem as the first parameter.
rem set _WRAPPER_CONF_OVERRIDE=true
+rem If there are any errors, the script will pause for a specific number of seconds
+rem or until the user presses a key. (0 not to wait, negative to wait forever).
+set _WRAPPER_TIMEOUT=-1
+
rem Note that it is only possible to pass parameters through to the JVM when
rem installing the service, or when running in a console.
@@ -101,8 +105,7 @@
echo Unable to locate a Wrapper executable using any of the following names:
echo %_WRAPPER_L_EXE%
echo %_WRAPPER_EXE%
-pause
-goto :eof
+goto preexitpause
:check_lic_bits
if %_BIN_BITS%=="64" (
@@ -137,11 +140,19 @@
:callcommand
if not [%1]==[] (
echo Additional arguments are not allowed.
- pause
- goto :eof
+ goto preexitpause
)
%_WRAPPER_EXE% -q %_WRAPPER_CONF%
if not errorlevel 1 goto :eof
-pause
+
+:preexitpause
+if %_WRAPPER_TIMEOUT% gtr 0 (
+ timeout /t %_WRAPPER_TIMEOUT%
+) else (
+ if %_WRAPPER_TIMEOUT% lss 0 (
+ pause
+ )
+)
+
Modified: trunk/wrapper/src/bin/ResumeApp-NT.bat.in
===================================================================
--- trunk/wrapper/src/bin/ResumeApp-NT.bat.in 2020-11-30 15:37:23 UTC (rev 2048)
+++ trunk/wrapper/src/bin/ResumeApp-NT.bat.in 2020-12-02 16:05:33 UTC (rev 2049)
@@ -37,6 +37,10 @@
rem as the first parameter.
rem set _WRAPPER_CONF_OVERRIDE=true
+rem If there are any errors, the script will pause for a specific number of seconds
+rem or until the user presses a key. (0 not to wait, negative to wait forever).
+set _WRAPPER_TIMEOUT=-1
+
rem Note that it is only possible to pass parameters through to the JVM when
rem installing the service, or when running in a console.
@@ -101,8 +105,7 @@
echo Unable to locate a Wrapper executable using any of the following names:
echo %_WRAPPER_L_EXE%
echo %_WRAPPER_EXE%
-pause
-goto :eof
+goto preexitpause
:check_lic_bits
if %_BIN_BITS%=="64" (
@@ -137,11 +140,19 @@
:callcommand
if not [%1]==[] (
echo Additional arguments are not allowed.
- pause
- goto :eof
+ goto preexitpause
)
%_WRAPPER_EXE% -e %_WRAPPER_CONF%
if not errorlevel 1 goto :eof
-pause
+
+:preexitpause
+if %_WRAPPER_TIMEOUT% gtr 0 (
+ timeout /t %_WRAPPER_TIMEOUT%
+) else (
+ if %_WRAPPER_TIMEOUT% lss 0 (
+ pause
+ )
+)
+
Modified: trunk/wrapper/src/bin/SetupApp.bat.in
===================================================================
--- trunk/wrapper/src/bin/SetupApp.bat.in 2020-11-30 15:37:23 UTC (rev 2048)
+++ trunk/wrapper/src/bin/SetupApp.bat.in 2020-12-02 16:05:33 UTC (rev 2049)
@@ -37,6 +37,10 @@
rem as the first parameter.
rem set _WRAPPER_CONF_OVERRIDE=true
+rem If there are any errors, the script will pause for a specific number of seconds
+rem or until the user presses a key. (0 not to wait, negative to wait forever).
+set _WRAPPER_TIMEOUT=-1
+
rem Note that it is only possible to pass parameters through to the JVM when
rem installing the service, or when running in a console.
@@ -101,8 +105,7 @@
echo Unable to locate a Wrapper executable using any of the following names:
echo %_WRAPPER_L_EXE%
echo %_WRAPPER_EXE%
-pause
-goto :eof
+goto preexitpause
:check_lic_bits
if %_BIN_BITS%=="64" (
@@ -137,11 +140,19 @@
:callcommand
if not [%1]==[] (
echo Additional arguments are not allowed.
- pause
- goto :eof
+ goto preexitpause
)
%_WRAPPER_EXE% -su %_WRAPPER_CONF%
if not errorlevel 1 goto :eof
-pause
+
+:preexitpause
+if %_WRAPPER_TIMEOUT% gtr 0 (
+ timeout /t %_WRAPPER_TIMEOUT%
+) else (
+ if %_WRAPPER_TIMEOUT% lss 0 (
+ pause
+ )
+)
+
Modified: trunk/wrapper/src/bin/StartApp-NT.bat.in
===================================================================
--- trunk/wrapper/src/bin/StartApp-NT.bat.in 2020-11-30 15:37:23 UTC (rev 2048)
+++ trunk/wrapper/src/bin/StartApp-NT.bat.in 2020-12-02 16:05:33 UTC (rev 2049)
@@ -37,6 +37,10 @@
rem as the first parameter.
rem set _WRAPPER_CONF_OVERRIDE=true
+rem If there are any errors, the script will pause for a specific number of seconds
+rem or until the user presses a key. (0 not to wait, negative to wait forever).
+set _WRAPPER_TIMEOUT=-1
+
rem Note that it is only possible to pass parameters through to the JVM when
rem installing the service, or when running in a console.
@@ -101,8 +105,7 @@
echo Unable to locate a Wrapper executable using any of the following names:
echo %_WRAPPER_L_EXE%
echo %_WRAPPER_EXE%
-pause
-goto :eof
+goto preexitpause
:check_lic_bits
if %_BIN_BITS%=="64" (
@@ -137,11 +140,19 @@
:callcommand
if not [%1]==[] (
echo Additional arguments are not allowed.
- pause
- goto :eof
+ goto preexitpause
)
%_WRAPPER_EXE% -t %_WRAPPER_CONF%
if not errorlevel 1 goto :eof
-pause
+
+:preexitpause
+if %_WRAPPER_TIMEOUT% gtr 0 (
+ timeout /t %_WRAPPER_TIMEOUT%
+) else (
+ if %_WRAPPER_TIMEOUT% lss 0 (
+ pause
+ )
+)
+
Modified: trunk/wrapper/src/bin/StopApp-NT.bat.in
===================================================================
--- trunk/wrapper/src/bin/StopApp-NT.bat.in 2020-11-30 15:37:23 UTC (rev 2048)
+++ trunk/wrapper/src/bin/StopApp-NT.bat.in 2020-12-02 16:05:33 UTC (rev 2049)
@@ -37,6 +37,10 @@
rem as the first parameter.
rem set _WRAPPER_CONF_OVERRIDE=true
+rem If there are any errors, the script will pause for a specific number of seconds
+rem or until the user presses a key. (0 not to wait, negative to wait forever).
+set _WRAPPER_TIMEOUT=-1
+
rem Note that it is only possible to pass parameters through to the JVM when
rem installing the service, or when running in a console.
@@ -101,8 +105,7 @@
echo Unable to locate a Wrapper executable using any of the following names:
echo %_WRAPPER_L_EXE%
echo %_WRAPPER_EXE%
-pause
-goto :eof
+goto preexitpause
:check_lic_bits
if %_BIN_BITS%=="64" (
@@ -137,11 +140,19 @@
:callcommand
if not [%1]==[] (
echo Additional arguments are not allowed.
- pause
- goto :eof
+ goto preexitpause
)
%_WRAPPER_EXE% -p %_WRAPPER_CONF%
if not errorlevel 1 goto :eof
-pause
+
+:preexitpause
+if %_WRAPPER_TIMEOUT% gtr 0 (
+ timeout /t %_WRAPPER_TIMEOUT%
+) else (
+ if %_WRAPPER_TIMEOUT% lss 0 (
+ pause
+ )
+)
+
Modified: trunk/wrapper/src/bin/TeardownApp.bat.in
===================================================================
--- trunk/wrapper/src/bin/TeardownApp.bat.in 2020-11-30 15:37:23 UTC (rev 2048)
+++ trunk/wrapper/src/bin/TeardownApp.bat.in 2020-12-02 16:05:33 UTC (rev 2049)
@@ -37,6 +37,10 @@
rem as the first parameter.
rem set _WRAPPER_CONF_OVERRIDE=true
+rem If there are any errors, the script will pause for a specific number of seconds
+rem or until the user presses a key. (0 not to wait, negative to wait forever).
+set _WRAPPER_TIMEOUT=-1
+
rem Note that it is only possible to pass parameters through to the JVM when
rem installing the service, or when running in a console.
@@ -101,8 +105,7 @@
echo Unable to locate a Wrapper executable using any of the following names:
echo %_WRAPPER_L_EXE%
echo %_WRAPPER_EXE%
-pause
-goto :eof
+goto preexitpause
:check_lic_bits
if %_BIN_BITS%=="64" (
@@ -137,11 +140,19 @@
:callcommand
if not [%1]==[] (
echo Additional arguments are not allowed.
- pause
- goto :eof
+ goto preexitpause
)
%_WRAPPER_EXE% -td %_WRAPPER_CONF%
if not errorlevel 1 goto :eof
-pause
+
+:preexitpause
+if %_WRAPPER_TIMEOUT% gtr 0 (
+ timeout /t %_WRAPPER_TIMEOUT%
+) else (
+ if %_WRAPPER_TIMEOUT% lss 0 (
+ pause
+ )
+)
+
Modified: trunk/wrapper/src/bin/UninstallApp-NT.bat.in
===================================================================
--- trunk/wrapper/src/bin/UninstallApp-NT.bat.in 2020-11-30 15:37:23 UTC (rev 2048)
+++ trunk/wrapper/src/bin/UninstallApp-NT.bat.in 2020-12-02 16:05:33 UTC (rev 2049)
@@ -37,6 +37,10 @@
rem as the first parameter.
rem set _WRAPPER_CONF_OVERRIDE=true
+rem If there are any errors, the script will pause for a specific number of seconds
+rem or until the user presses a key. (0 not to wait, negative to wait forever).
+set _WRAPPER_TIMEOUT=-1
+
rem Note that it is only possible to pass parameters through to the JVM when
rem installing the service, or when running in a console.
@@ -101,8 +105,7 @@
echo Unable to locate a Wrapper executable using any of the following names:
echo %_WRAPPER_L_EXE%
echo %_WRAPPER_EXE%
-pause
-goto :eof
+goto preexitpause
:check_lic_bits
if %_BIN_BITS%=="64" (
@@ -137,11 +140,19 @@
:callcommand
if not [%1]==[] (
echo Additional arguments are not allowed.
- pause
- goto :eof
+ goto preexitpause
)
%_WRAPPER_EXE% -r %_WRAPPER_CONF%
if not errorlevel 1 goto :eof
-pause
+
+:preexitpause
+if %_WRAPPER_TIMEOUT% gtr 0 (
+ timeout /t %_WRAPPER_TIMEOUT%
+) else (
+ if %_WRAPPER_TIMEOUT% lss 0 (
+ pause
+ )
+)
+
Modified: trunk/wrapper/src/c/wrapper.c
===================================================================
--- trunk/wrapper/src/c/wrapper.c 2020-11-30 15:37:23 UTC (rev 2048)
+++ trunk/wrapper/src/c/wrapper.c 2020-12-02 16:05:33 UTC (rev 2049)
@@ -2543,6 +2543,10 @@
name = TEXT("STOPPED");
break;
+ case WRAPPER_MSG_JAVA_PID:
+ name = TEXT("JAVA_PID");
+ break;
+
case WRAPPER_MSG_KEY:
name = TEXT("KEY");
break;
@@ -3315,6 +3319,10 @@
wrapperStartedSignaled();
break;
+ case WRAPPER_MSG_JAVA_PID:
+ wrapperConfirmJavaPID(_ttoi(packetBufferW));
+ break;
+
case WRAPPER_MSG_KEY:
wrapperKeyRegistered(packetBufferW);
break;
@@ -5682,36 +5690,46 @@
if (wrapperProcessHasVisibleConsole()) {
consoleHandle = GetStdHandle(STD_INPUT_HANDLE);
- if (!GetConsoleMode(consoleHandle, &consoleMode)) {
- log_printf(WRAPPER_SOURCE_WRAPPER, LEVEL_ERROR, TEXT("Failed to retrieve the current input mode of the console."));
+ if (consoleHandle == NULL) {
+ /* Requested handle does not exist. */
+ log_printf(WRAPPER_SOURCE_WRAPPER, LEVEL_INFO, TEXT("Standard input does not exist for process."));
+ } else if (consoleHandle == INVALID_HANDLE_VALUE) {
+ log_printf(WRAPPER_SOURCE_WRAPPER, LEVEL_ERROR, TEXT("Faild to retrieve the standard input handle: %s"), getLastErrorText());
} else {
- quickEditStatus = getStatusProperty(properties, TEXT("wrapper.console.quickedit"), STATUS_DISABLED);
- if (consoleMode & ENABLE_QUICK_EDIT_MODE) {
- /* Quick mode was enabled. */
- if (quickEditStatus == STATUS_DISABLED) {
- /* Disable quick edit mode. */
- if (!SetConsoleMode(consoleHandle, consoleMode & ~ENABLE_QUICK_EDIT_MODE)) {
- log_printf(WRAPPER_SOURCE_WRAPPER, LEVEL_ERROR, TEXT("Failed to disable QuickEdit Mode for the console."));
+ if (!GetConsoleMode(consoleHandle, &consoleMode)) {
+ if (GetLastError() == ERROR_INVALID_HANDLE) {
+ log_printf(WRAPPER_SOURCE_WRAPPER, LEVEL_DEBUG, TEXT("The standard input appears to be a pipe. Not checking console mode."));
+ } else {
+ log_printf(WRAPPER_SOURCE_WRAPPER, LEVEL_ERROR, TEXT("Failed to retrieve the current input mode of the console: %s"), getLastErrorText());
+ }
+ } else {
+ quickEditStatus = getStatusProperty(properties, TEXT("wrapper.console.quickedit"), STATUS_DISABLED);
+ if (consoleMode & ENABLE_QUICK_EDIT_MODE) {
+ /* Quick mode was enabled. */
+ if (quickEditStatus == STATUS_DISABLED) {
+ /* Disable quick edit mode. */
+ if (!SetConsoleMode(consoleHandle, consoleMode & ~ENABLE_QUICK_EDIT_MODE)) {
+ log_printf(WRAPPER_SOURCE_WRAPPER, LEVEL_ERROR, TEXT("Failed to disable QuickEdit Mode for the console: %s"), getLastErrorText());
+ quickEditStatus = STATUS_ENABLED;
+ }
+ } else if (quickEditStatus == STATUS_UNCHANGED) {
quickEditStatus = STATUS_ENABLED;
}
- } else if (quickEditStatus == STATUS_UNCHANGED) {
- quickEditStatus = STATUS_ENABLED;
+ } else {
+ /* Quick mode was disabled. */
+ if (quickEditStatus == STATUS_ENABLED) {
+ /* Enable quick edit mode. */
+ if (!SetConsoleMode(consoleHandle, consoleMode | ENABLE_QUICK_EDIT_MODE)) {
+ log_printf(WRAPPER_SOURCE_WRAPPER, LEVEL_ERROR, TEXT("Failed to enable QuickEdit Mode for the console: %s"), getLastErrorText());
+ quickEditStatus = STATUS_DISABLED;
+ }
+ }
}
- } else {
- /* Quick mode was disabled. */
if (quickEditStatus == STATUS_ENABLED) {
- /* Enable quick edit mode. */
- if (!SetConsoleMode(consoleHandle, consoleMode | ENABLE_QUICK_EDIT_MODE)) {
- log_printf(WRAPPER_SOURCE_WRAPPER, LEVEL_ERROR, TEXT("Failed to enable QuickEdit Mode for the console."));
- quickEditStatus = STATUS_DISABLED;
- }
+ log_printf(WRAPPER_SOURCE_WRAPPER, getLogLevelForName(getStringProperty(properties, TEXT("wrapper.console.quickedit.loglevel"), TEXT("WARN"))),
+ TEXT("Running in a console with QuickEdit Mode. Be careful when selecting text in the\n console as this may cause to block the Java Application.\n"));
}
}
- if (quickEditStatus == STATUS_ENABLED) {
- log_printf(WRAPPER_SOURCE_WRAPPER,
- getLogLevelForName(getStringProperty(properties, TEXT("wrapper.console.quickedit.loglevel"), TEXT("WARN"))),
- TEXT("Running in a console with QuickEdit Mode. Be careful when selecting text in the\n console as this may cause to block the Java Application.\n"));
- }
}
}
#endif
@@ -6721,13 +6739,31 @@
}
#endif
if (!checkIfBinary(path)) {
- log_printf(WRAPPER_SOURCE_WRAPPER, LEVEL_WARN, TEXT("The value of wrapper.java.command does not appear to be a java binary."));
- log_printf(WRAPPER_SOURCE_WRAPPER, LEVEL_WARN, TEXT(" Launching Java from a script is not supported. Trying to continue, but some features may not work correctly."));
+ /* Set a flag to later show a warning when receiving the Java PID from the backend. */
+ wrapperData->javaCommandNotBinary = TRUE;
}
free(path);
}
}
+#ifdef WIN32
+void wrapperConfirmJavaPID(DWORD javaPID) {
+#else
+void wrapperConfirmJavaPID(pid_t javaPID) {
+#endif
+ /* Check if the PID of the Java process at the moment of the fork is the same as the one returned through backend. */
+ if (wrapperData->javaPID != javaPID) {
+ log_printf(WRAPPER_SOURCE_WRAPPER, LEVEL_WARN, TEXT("The Java PID (%d) differs from that expected (%d). This may happen when Java is launched from a script."), javaPID, wrapperData->javaPID);
+
+ /* Check if the wrapper.java.command is a regular binary */
+ if (wrapperData->javaCommandNotBinary) {
+ log_printf(WRAPPER_SOURCE_WRAPPER, LEVEL_WARN, TEXT(" The value of wrapper.java.command does not appear to be a java binary."));
+ }
+
+ log_printf(WRAPPER_SOURCE_WRAPPER, LEVEL_WARN, TEXT(" Trying to continue, but some features may not work correctly."));
+ }
+}
+
/**
* Performs checks on the Java command.
*
Modified: trunk/wrapper/src/c/wrapper.h
===================================================================
--- trunk/wrapper/src/c/wrapper.h 2020-11-30 15:37:23 UTC (rev 2048)
+++ trunk/wrapper/src/c/wrapper.h 2020-12-02 16:05:33 UTC (rev 2049)
@@ -303,6 +303,7 @@
TCHAR **jvmVersionCommand; /* Command used to launch the JVM and request its version */
TCHAR **jvmCommand; /* Command used to launch the JVM */
#endif
+ int javaCommandNotBinary; /* Flag used to warn when the Java command is not a binary. */
int detachStarted; /* TRUE if the JVM process should be detached once it has started. */
int environmentClasspath; /* TRUE if the classpath should be passed to the JVM in the environment. */
TCHAR *classpath; /* Classpath to pass to the JVM. */
@@ -557,6 +558,7 @@
#define WRAPPER_MSG_START_PENDING (char)105
#define WRAPPER_MSG_STARTED (char)106
#define WRAPPER_MSG_STOPPED (char)107
+#define WRAPPER_MSG_JAVA_PID (char)108
#define WRAPPER_MSG_KEY (char)110
#define WRAPPER_MSG_BADKEY (char)111
#define WRAPPER_MSG_LOW_LOG_LEVEL (char)112
@@ -919,7 +921,9 @@
extern int wrapperRemove();
#define OSBUFSIZE 256
BOOL GetOSDisplayString(TCHAR** pszOS);
+void wrapperConfirmJavaPID(DWORD javaPID);
#else
+void wrapperConfirmJavaPID(pid_t javaPID);
extern void changePidFileGroup(const TCHAR* filename, gid_t newGroup);
extern void wrapperMaintainSignals();
extern TCHAR* findPathOf(const TCHAR *exe, const TCHAR* name);
Modified: trunk/wrapper/src/c/wrapper_jvminfo.c
===================================================================
--- trunk/wrapper/src/c/wrapper_jvminfo.c 2020-11-30 15:37:23 UTC (rev 2048)
+++ trunk/wrapper/src/c/wrapper_jvminfo.c 2020-12-02 16:05:33 UTC (rev 2049)
@@ -36,6 +36,7 @@
#endif
#include "logger.h"
#include "wrapper.h"
+#include "wrapperinfo.h"
#include "wrapper_jvminfo.h"
#include "property.h"
@@ -247,10 +248,8 @@
JavaVersion* result = createJavaVersion();
if (result) {
- result->major = 4;
- result->minor = 0;
- result->revision = 0;
- updateStringValue(&result->displayName, TEXT("1.4"));
+ parseJavaVersionInner(wrapperJavacTargetVersion, &(result->major), &(result->minor), &(result->revision), 0);
+ updateStringValue(&result->displayName, wrapperJavacTargetVersion);
}
return result;
}
Modified: trunk/wrapper/src/c/wrapperinfo.c.in
===================================================================
--- trunk/wrapper/src/c/wrapperinfo.c.in 2020-11-30 15:37:23 UTC (rev 2048)
+++ trunk/wrapper/src/c/wrapperinfo.c.in 2020-12-02 16:05:33 UTC (rev 2049)
@@ -34,4 +34,5 @@
TCHAR *wrapperReleaseTime = TEXT("0000");
TCHAR *wrapperBuildDate = TEXT("@build.date@");
TCHAR *wrapperBuildTime = TEXT("@build.time@");
+TCHAR *wrapperJavacTargetVersion = TEXT("@javac.target.version@");
Modified: trunk/wrapper/src/c/wrapperinfo.h
===================================================================
--- trunk/wrapper/src/c/wrapperinfo.h 2020-11-30 15:37:23 UTC (rev 2048)
+++ trunk/wrapper/src/c/wrapperinfo.h 2020-12-02 16:05:33 UTC (rev 2049)
@@ -26,5 +26,6 @@
extern TCHAR *wrapperReleaseTime;
extern TCHAR *wrapperBuildDate;
extern TCHAR *wrapperBuildTime;
+extern TCHAR *wrapperJavacTargetVersion;
#endif
Modified: trunk/wrapper/src/java/org/tanukisoftware/wrapper/WrapperManager.java
===================================================================
--- trunk/wrapper/src/java/org/tanukisoftware/wrapper/WrapperManager.java 2020-11-30 15:37:23 UTC (rev 2048)
+++ trunk/wrapper/src/java/org/tanukisoftware/wrapper/WrapperManager.java 2020-12-02 16:05:33 UTC (rev 2049)
@@ -156,6 +156,7 @@
private static final byte WRAPPER_MSG_START_PENDING = (byte)105;
private static final byte WRAPPER_MSG_STARTED = (byte)106;
private static final byte WRAPPER_MSG_STOPPED = (byte)107;
+ private static final byte WRAPPER_MSG_JAVA_PID = (byte)108;
private static final byte WRAPPER_MSG_KEY = (byte)110;
private static final byte WRAPPER_MSG_BADKEY = (byte)111;
private static final byte WRAPPER_MSG_LOW_LOG_LEVEL = (byte)112;
@@ -6282,6 +6283,11 @@
}
}
+ // Send the Java PID back to the wrapper so it can confirm it has not
+ // changed since the fork (may happen when the JVM was launched through
+ // a script).
+ sendCommand( WRAPPER_MSG_JAVA_PID, Integer.toString( getJavaPID() ) );
+
// Make sure that the version of the Wrapper is correct.
verifyWrapperVersion();
Modified: trunk/wrapper/src/java/org/tanukisoftware/wrapper/demo/DemoApp.java
===================================================================
--- trunk/wrapper/src/java/org/tanukisoftware/wrapper/demo/DemoApp.java 2020-11-30 15:37:23 UTC (rev 2048)
+++ trunk/wrapper/src/java/org/tanukisoftware/wrapper/demo/DemoApp.java 2020-12-02 16:05:33 UTC (rev 2049)
@@ -57,6 +57,7 @@
private File m_wrapperBin;
private String m_wrapperBinS;
private String m_confFile;
+ private String m_loggingProps;
/*---------------------------------------------------------------
* Constructors
@@ -99,7 +100,8 @@
System.out.println( "wrapperBinS=" + m_wrapperBinS );
m_confFile = "../conf/demoapp.conf";
-
+
+ m_loggingProps = "wrapper.console.flush=TRUE wrapper.console.format=LPM wrapper.logfile=";
}
protected DemoAppMainFrame getFrame()
@@ -248,8 +250,12 @@
try
{
command = br.readLine();
+ if ( command == null )
+ {
+ command = "finish";
+ }
+
System.out.println( getRes().getString( "Read action: {0}", command ) );
-
if ( command.equals( "crash" ) )
{
Thread.sleep( 5000 );
@@ -454,7 +460,7 @@
e.printStackTrace();
}
- String arg = m_wrapperBinS + " -c " + m_confFile + " wrapper.console.flush=TRUE wrapper.console.format=LPM wrapper.app.parameter.1=start " + md.getEvents()
+ String arg = m_wrapperBinS + " -c " + m_confFile + " " + m_loggingProps + " wrapper.app.parameter.1=start " + md.getEvents()
+ " wrapper.event.default.email.debug=TRUE wrapper.event.default.email.smtp.host=" + md.getServer() + " wrapper.event.default.email.smtp.port="
+ md.getPort() + " wrapper.event.default.email.sender=" + md.getSender() + " wrapper.event.default.email.recipient=" + md.getRecipients();
// System.out.println( "execing: " + arg );
@@ -524,7 +530,7 @@
}
else if ( action.equals( "service" ) )
{
- p = Runtime.getRuntime().exec( m_wrapperBinS + " -it " + m_confFile + " wrapper.console.flush=TRUE" );
+ p = Runtime.getRuntime().exec( m_wrapperBinS + " -it " + m_confFile + " " + m_loggingProps );
// WrapperManager.exec( "sudo ../test/demoapp remove" );
if ( p != null )
{
@@ -573,7 +579,7 @@
}
else if ( action.equals( "start" ) )
{
- String arg = m_wrapperBinS + " -c " + m_confFile + " wrapper.console.flush=TRUE wrapper.console.format=LPM wrapper.app.parameter.1=" + action;
+ String arg = m_wrapperBinS + " -c " + m_confFile + " " + m_loggingProps + " wrapper.app.parameter.1=" + action;
// System.out.println( "calling: " + arg );
if ( !m_isTestCaseRunning )
@@ -623,7 +629,7 @@
}
if ( input != null && input.length() > 0 )
{
- String arg = m_wrapperBinS + " -c " + m_confFile + " wrapper.console.flush=TRUE wrapper.console.format=LPM wrapper.app.parameter.1=start";
+ String arg = m_wrapperBinS + " -c " + m_confFile + " " + m_loggingProps + " wrapper.app.parameter.1=start";
//System.out.println( "calling: " + arg );
if ( !m_isTestCaseRunning )
{
@@ -652,7 +658,7 @@
}
else
{
- String arg = m_wrapperBinS + " -c " + m_confFile + " wrapper.console.flush=TRUE wrapper.console.format=LPM wrapper.app.parameter.1=start";
+ String arg = m_wrapperBinS + " -c " + m_confFile + " " + m_loggingProps + " wrapper.app.parameter.1=start";
//System.out.println( "calling: " + arg );
if ( !m_isTestCaseRunning )
{
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <mor...@us...> - 2020-11-30 15:37:25
|
Revision: 2048
http://sourceforge.net/p/wrapper/code/2048
Author: mortenson
Date: 2020-11-30 15:37:23 +0000 (Mon, 30 Nov 2020)
Log Message:
-----------
Work on 3.5.45
Modified Paths:
--------------
trunk/wrapper/build.xml
Modified: trunk/wrapper/build.xml
===================================================================
--- trunk/wrapper/build.xml 2020-11-30 15:01:21 UTC (rev 2047)
+++ trunk/wrapper/build.xml 2020-11-30 15:37:23 UTC (rev 2048)
@@ -2030,12 +2030,12 @@
</exec>
</target>
<target name="clean" depends="clean-unix" description="Clean up any files from the build">
- <condition property="clean.excludes" value="build/pre-release">
+ <condition property="clean.excludes" value="build/prerelease/${prerelease.marker}">
<isset property="src.java.missing"/>
</condition>
<property name="clean.excludes" value=""/>
- <!-- We don't want to delete the build/pre-release file for prerelease distributions. -->
+ <!-- We don't want to delete the build/prerelease/${prerelease.marker} file for prerelease distributions. -->
<delete includeEmptyDirs="true">
<fileset dir="${basedir}">
<include name="build/**/*"/>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <mor...@us...> - 2020-11-30 15:01:24
|
Revision: 2047
http://sourceforge.net/p/wrapper/code/2047
Author: mortenson
Date: 2020-11-30 15:01:21 +0000 (Mon, 30 Nov 2020)
Log Message:
-----------
Work on 3.5.45
Modified Paths:
--------------
trunk/wrapper/build.xml
Modified: trunk/wrapper/build.xml
===================================================================
--- trunk/wrapper/build.xml 2020-11-30 07:17:32 UTC (rev 2046)
+++ trunk/wrapper/build.xml 2020-11-30 15:01:21 UTC (rev 2047)
@@ -473,7 +473,7 @@
<filter token="app.long.name" value="${app.long.name}" />
<filter token="app.description" value="${app.desc}" />
- <property name="intermmarker" value="pre-release"/>
+ <property name="prerelease.marker" value="pre-release"/>
</target>
<target name="init:msg" depends="init">
<echo message="**********************************************************************"/>
@@ -508,7 +508,7 @@
<!-- =================================================================== -->
<target name="update-info" depends="convert">
<!-- Delete the pre-release marker file as early as possible. -->
- <delete file="${build.dir}/${intermmarker}"/>
+ <delete file="${build.dir}/prerelease/${prerelease.marker}"/>
<!-- copy server info source, using filtering to update version and build time -->
<copy file="${src.dir}/java/org/tanukisoftware/wrapper/WrapperInfo.java.in"
@@ -1245,12 +1245,12 @@
</target>
<target name="pre-release" depends="pre-release:disabled, release-common"
description="Builds an intermediate release file that can then be deployed to individual platforms to complete the platform specific releases.">
- <property name="intermfile" value="wrapper_prerelease_${version}"/>
- <property name="intermdir" value="${build.dir}/${intermfile}"/>
- <delete dir="${intermdir}"/>
- <mkdir dir="${intermdir}"/>
+ <property name="prerelease.file" value="wrapper_prerelease_${version}"/>
+ <property name="prerelease.dir" value="${build.dir}/prerelease/${prerelease.file}"/>
+ <delete dir="${prerelease.dir}"/>
+ <mkdir dir="${prerelease.dir}"/>
- <copy todir="${intermdir}" >
+ <copy todir="${prerelease.dir}" >
<fileset dir="${basedir}" >
<include name="index.html" />
<include name="build*" />
@@ -1293,67 +1293,69 @@
</copy>
<!-- Make sure that files are formatted correctly for their platforms -->
- <fixcrlf srcdir="${intermdir}" includes="**/*.bat" eol="crlf" />
- <fixcrlf srcdir="${intermdir}" includes="**/*.bat.in" eol="crlf" />
- <fixcrlf srcdir="${intermdir}" includes="**/*.sh.in" eol="lf" />
- <fixcrlf srcdir="${intermdir}" includes="**/*.shconf.in" eol="lf" />
- <fixcrlf srcdir="${intermdir}" includes="src/test/**/*.in" eol="lf" />
- <fixcrlf srcdir="${intermdir}" includes="build32.sh" eol="lf" />
- <fixcrlf srcdir="${intermdir}" includes="build64.sh" eol="lf" />
- <fixcrlf srcdir="${intermdir}" includes="**/Makefile-*" eol="lf" />
+ <fixcrlf srcdir="${prerelease.dir}" includes="**/*.bat" eol="crlf" />
+ <fixcrlf srcdir="${prerelease.dir}" includes="**/*.bat.in" eol="crlf" />
+ <fixcrlf srcdir="${prerelease.dir}" includes="**/*.sh.in" eol="lf" />
+ <fixcrlf srcdir="${prerelease.dir}" includes="**/*.shconf.in" eol="lf" />
+ <fixcrlf srcdir="${prerelease.dir}" includes="src/test/**/*.in" eol="lf" />
+ <fixcrlf srcdir="${prerelease.dir}" includes="build32.sh" eol="lf" />
+ <fixcrlf srcdir="${prerelease.dir}" includes="build64.sh" eol="lf" />
+ <fixcrlf srcdir="${prerelease.dir}" includes="**/Makefile-*" eol="lf" />
- <!-- Create a marker in both the intermdir and the build dir so the release target
- can be run from the current source tree or from the intermdir tree. -->
- <touch file="${build.dir}/${intermmarker}"/>
- <touch file="${intermdir}/build/${intermmarker}"/>
+ <!-- Create a marker in both the prerelease.dir and the build dir so the release target
+ can be run from the current source tree or from the prerelease.dir tree. -->
+ <mkdir dir="${build.dir}/prerelease"/>
+ <touch file="${build.dir}/prerelease/${prerelease.marker}"/>
+ <mkdir dir="${prerelease.dir}/build/prerelease"/>
+ <touch file="${prerelease.dir}/build/prerelease/${prerelease.marker}"/>
<!-- Create a logs dir so the prerelease file can easily be tested. -->
- <mkdir dir="${intermdir}/logs"/>
- <touch file="${intermdir}/logs/wrapper.log"/>
+ <mkdir dir="${prerelease.dir}/logs"/>
+ <touch file="${prerelease.dir}/logs/wrapper.log"/>
<!-- Make the intermediate build for Windows -->
<!-- Set files to windows line feeds for .zip files -->
- <fixcrlf srcdir="${intermdir}" eol="crlf" includes="**/*.java, **/*.properties, **/*.txt, **/*.xml, **/*.html, **/*.css, **/*.conf*, **/*.c.in, **/*.c, **/*.h, **/*.log"/>
+ <fixcrlf srcdir="${prerelease.dir}" eol="crlf" includes="**/*.java, **/*.properties, **/*.txt, **/*.xml, **/*.html, **/*.css, **/*.conf*, **/*.c.in, **/*.c, **/*.h, **/*.log"/>
<!-- Copy the README's -->
- <copy todir="${intermdir}" overwrite="true" encoding="UTF-8" outputencoding="UTF-8">
+ <copy todir="${prerelease.dir}" overwrite="true" encoding="UTF-8" outputencoding="UTF-8">
<fileset dir="${basedir}" >
<include name="README_*.txt" />
</fileset>
</copy>
- <fixcrlf srcdir="${intermdir}" encoding="UTF-8" outputencoding="UTF-8" includes="README_*.txt" eol="crlf"/>
+ <fixcrlf srcdir="${prerelease.dir}" encoding="UTF-8" outputencoding="UTF-8" includes="README_*.txt" eol="crlf"/>
<!-- Create the pre-release package -->
- <zip zipfile="${dist.dir}/${intermfile}.zip"
- basedir="${build.dir}"
+ <zip zipfile="${dist.dir}/${prerelease.file}.zip"
+ basedir="${build.dir}/prerelease"
compress="true">
- <include name="${intermfile}/**/*" />
+ <include name="${prerelease.file}/**/*" />
</zip>
<!-- Make the intermediate build for Unix -->
- <fixcrlf srcdir="${intermdir}" eol="lf" includes="**/*.java, **/*.properties, **/*.txt, **/*.xml, **/*.html, **/*.css, **/*.conf*, **/*.c.in, **/*.c, **/*.h, **/*.log"/>
+ <fixcrlf srcdir="${prerelease.dir}" eol="lf" includes="**/*.java, **/*.properties, **/*.txt, **/*.xml, **/*.html, **/*.css, **/*.conf*, **/*.c.in, **/*.c, **/*.h, **/*.log"/>
<!-- Copy the README's again but this time convert the encoding in favour for unix (UTF-8) -->
- <copy todir="${intermdir}" overwrite="true" encoding="UTF-8" outputencoding="UTF-8">
+ <copy todir="${prerelease.dir}" overwrite="true" encoding="UTF-8" outputencoding="UTF-8">
<fileset dir="${basedir}" >
<include name="README_*.txt" />
</fileset>
</copy>
- <fixcrlf srcdir="${intermdir}" encoding="UTF-8" outputencoding="UTF-8" includes="README_*.txt" eol="lf"/>
+ <fixcrlf srcdir="${prerelease.dir}" encoding="UTF-8" outputencoding="UTF-8" includes="README_*.txt" eol="lf"/>
<!-- Create the pre-release package -->
- <tar tarfile="${build.dir}/${intermfile}.tar">
- <tarfileset dir="${build.dir}" mode="755">
- <include name="${intermfile}/build32.sh"/>
- <include name="${intermfile}/build64.sh"/>
+ <tar tarfile="${build.dir}/${prerelease.file}.tar">
+ <tarfileset dir="${build.dir}/prerelease" mode="755">
+ <include name="${prerelease.file}/build32.sh"/>
+ <include name="${prerelease.file}/build64.sh"/>
</tarfileset>
- <tarfileset dir="${build.dir}">
- <include name="${intermfile}/**/*" />
- <exclude name="${intermfile}/build32.sh"/>
- <exclude name="${intermfile}/build64.sh"/>
+ <tarfileset dir="${build.dir}/prerelease">
+ <include name="${prerelease.file}/**/*" />
+ <exclude name="${prerelease.file}/build32.sh"/>
+ <exclude name="${prerelease.file}/build64.sh"/>
</tarfileset>
</tar>
- <gzip zipfile="${dist.dir}/${intermfile}.tar.gz" src="${build.dir}/${intermfile}.tar" />
+ <gzip zipfile="${dist.dir}/${prerelease.file}.tar.gz" src="${build.dir}/${prerelease.file}.tar" />
<echo/>
<echo>**********************************************************</echo>
@@ -1366,16 +1368,16 @@
<echo>* platform by running "build<64/32> release" now. *</echo>
<echo>* *</echo>
<echo>* Intermediate pre-release distributions: *</echo>
- <echo>* ${dist.dir}/${intermfile}.zip</echo>
- <echo>* ${dist.dir}/${intermfile}.tar.gz</echo>
+ <echo>* ${dist.dir}/${prerelease.file}.zip</echo>
+ <echo>* ${dist.dir}/${prerelease.file}.tar.gz</echo>
<echo>**********************************************************</echo>
</target>
<target name="pre-release:check-init" depends="init:msg">
- <property name="intermfile" value="wrapper_prerelease_${version}"/>
- <property name="intermdir" value="${build.dir}/${intermfile}"/>
+ <property name="prerelease.file" value="wrapper_prerelease_${version}"/>
+ <property name="prerelease.dir" value="${build.dir}/prerelease/${prerelease.file}"/>
- <available property="pre-release.exists" value="true" file="${build.dir}/${intermmarker}"/>
+ <available property="pre-release.exists" value="true" file="${build.dir}/prerelease/${prerelease.marker}"/>
</target>
<target name="pre-release:check" depends="pre-release:check-init" unless="pre-release.exists">
<echo/>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <mor...@us...> - 2020-11-30 07:17:43
|
Revision: 2046
http://sourceforge.net/p/wrapper/code/2046
Author: mortenson
Date: 2020-11-30 07:17:32 +0000 (Mon, 30 Nov 2020)
Log Message:
-----------
Work on 3.5.45
Modified Paths:
--------------
trunk/wrapper/build-tests.xml
trunk/wrapper/build.xml
trunk/wrapper/doc/revisions.txt
Property Changed:
----------------
trunk/wrapper/src/
Modified: trunk/wrapper/build-tests.xml
===================================================================
--- trunk/wrapper/build-tests.xml 2020-11-26 03:47:17 UTC (rev 2045)
+++ trunk/wrapper/build-tests.xml 2020-11-30 07:17:32 UTC (rev 2046)
@@ -9,40 +9,11 @@
<!-- Local build properties -->
<property file="${user.home}/.ant.local.properties" />
- <!-- Java version -->
- <condition property="is.java 1.5 or lower">
- <!-- ant.java.version can hold values starting from 1.2 -->
- <or>
- <equals arg1="${ant.java.version}" arg2="1.2" />
- <equals arg1="${ant.java.version}" arg2="1.3" />
- <equals arg1="${ant.java.version}" arg2="1.4" />
- <equals arg1="${ant.java.version}" arg2="1.5" />
- </or>
- </condition>
-
- <!-- Java vendor -->
- <condition property="is.JavaSunOracleApple">
- <or>
- <equals arg1="${java.vendor}" arg2="Sun Microsystems Inc."/>
- <equals arg1="${java.vendor}" arg2="Oracle Corporation"/>
- <equals arg1="${java.vendor}" arg2="Apple Inc."/>
- </or>
- </condition>
-
- <!-- Does Java include the JavaScript Engine ? -->
- <condition property="java-includes-jsEngine">
- <and>
- <isfalse value="${is.java 1.5 or lower}"/>
- <istrue value="${is.JavaSunOracleApple}"/>
- </and>
- </condition>
-
<!-- platform -->
<property name="is.${os.name}" value="true"/>
<property name="test.dir" value="${basedir}/test"/>
<property name="src.dir" value="${basedir}/src"/>
- <property name="external.test.dir" value="${basedir}/external/test"/>
<!-- =================================================================== -->
<!-- Help on usage -->
@@ -125,72 +96,117 @@
<!-- Resolve Classpaths -->
<!-- =================================================================== -->
<!-- Classpath for script tests -->
- <target name="set-classpath.scriptLibs" unless="java-includes-jsEngine">
- <path id="classpath.scriptLibs">
- <fileset dir="${external.test.dir}/scriptLibs/">
- <include name="*.jar"/>
- </fileset>
- </path>
+ <target name="test-js-engine:execute-builtin-js" if="builtin-js-execute-first-try" unless="builtin-js-execute-second-try">
+ <echo message="testing built-in javascript engine..." />
+ <script language="javascript" />
</target>
- <target name="default-classpath.scriptLibs" if="java-includes-jsEngine">
- <!-- empty path: we don't need any additional libs because they are already included in Oracle Java 1.6 and upper -->
- <path id="classpath.scriptLibs"/>
+ <target name="test-js-engine:execute-external-js" if="external-js-execute-first-try" unless="external-js-execute-second-try">
+ <echo message="testing external javascript engine..." />
+ <script language="javascript">
+ <classpath refid="classpath.js.engine" />
+ </script>
</target>
- <target name="init-classpath.scriptLibs" depends="set-classpath.scriptLibs, default-classpath.scriptLibs"/>
+ <macrodef name="test-js-engine">
+ <attribute name="mode" /> <!-- 'builtin' or 'external' -->
+ <sequential>
+ <!-- to be able to continue after a retry, we need to make sure that retrycount is never exceeded. This is done using the '@{mode}-js-execute-second-try' property. -->
+ <retry retrycount="1">
+ <sequential>
+ <!-- 'js-execute-second-try' will be set on the second loop after 'tried-once' is set. -->
+ <condition property="@{mode}-js-execute-second-try">
+ <isset property="@{mode}-js-execute-first-try" />
+ </condition>
+ <property name="@{mode}-js-execute-first-try" value="true" />
+
+ <!-- this might fail on the first loop, but will never fail on the second loop thanks to '@{mode}-js-execute-second-try' being set. -->
+ <antcall target="test-js-engine:execute-@{mode}-js" inheritAll="true" />
+
+ <!-- if 'execute-js' failed, we should not go here. -->
+ <condition property="js-engine-ok" value="true">
+ <and>
+ <isset property="@{mode}-js-execute-first-try" />
+ <not><isset property="@{mode}-js-execute-second-try" /></not>
+ </and>
+ </condition>
+ </sequential>
+ </retry>
+ </sequential>
+ </macrodef>
+
+ <!-- First, try to use the built-in javascript engine if it exists. -->
+ <target name="builtin.js.engine:test">
+ <test-js-engine mode="builtin" />
+ </target>
- <!-- =================================================================== -->
- <!-- Check if the required libs exist -->
- <!-- =================================================================== -->
- <!-- Check libs for script tests -->
- <target name="check-libs-exist.scriptLibs" unless="java-includes-jsEngine">
- <available file="${external.test.dir}/scriptLibs/js-1.6R7.jar" property="js.exists"/>
- <available file="${external.test.dir}/scriptLibs/bsf.jar" property="bsf.exists"/>
- <available file="${external.test.dir}/scriptLibs/commons-logging-1.2.jar" property="cl.exists"/>
- <condition property="libs-exist.scriptLibs">
+ <!-- If a built-in javascript exists, set an empty classpath. -->
+ <target name="builtin.js.engine:set-classpath" depends="builtin.js.engine:test" if="js-engine-ok">
+ <echo message="built-in Javascript engine detected." />
+ <path id="classpath.js.engine"/>
+ </target>
+
+ <!-- If no built-in javascript exists, check if there is an external directory from where the engine should be loaded. -->
+ <target name="external.js.engine:check-dir" depends="builtin.js.engine:set-classpath" unless="js-engine-ok">
+ <condition property="no-js-engine">
+ <not><isset property="external.js.engine.dir"/></not>
+ </condition>
+ <condition property="invalid-js-engine">
<and>
- <istrue value="${js.exists}"/>
- <istrue value="${bsf.exists}"/>
- <istrue value="${cl.exists}"/>
+ <isset property="external.js.engine.dir"/>
+ <not><available file="${external.js.engine.dir}" type="dir"/></not>
</and>
</condition>
</target>
-
- <target name="check-script-tests-setup-common" depends="check-libs-exist.scriptLibs">
- <condition property="script-tests-setup-common-ok">
- <or>
- <istrue value="${java-includes-jsEngine}"/>
- <istrue value="${libs-exist.scriptLibs}"/>
- </or>
+
+ <!-- If no built-in javascript exists and no external directory is set, show a warning and continue. -->
+ <target name="external.js.engine:warn-if-no-dir" depends="external.js.engine:check-dir" if="no-js-engine">
+ <echo message="**********************************************************************"/>
+ <echo message="* WARNING"/>
+ <echo message="* External Javascript engine directory not set. Some tests will be skipped."/>
+ <echo message="**********************************************************************"/>
+ </target>
+
+ <!-- If the external directory for the javascript engine is invalid, show an error and stop. -->
+ <target name="external.js.engine:err-if-invalid-dir" depends="external.js.engine:check-dir" if="invalid-js-engine">
+ <echo message="**********************************************************************"/>
+ <echo message="* ERROR"/>
+ <echo message="* Invalid external Javascript engine directory: ${external.js.engine.dir}"/>
+ <echo message="**********************************************************************"/>
+ <fail message="Invalid external Javascript engine directory."/>
+ </target>
+
+ <!-- If no built-in javascript exists but an external directory is set, try to use the external javascript engine. -->
+ <target name="external.js.engine:check-for-test" depends="external.js.engine:warn-if-no-dir, external.js.engine:err-if-invalid-dir">
+ <condition property="test-external-js">
+ <and>
+ <not><isset property="js-engine-ok"/></not>
+ <not><isset property="no-js-engine"/></not>
+ </and>
</condition>
</target>
-
- <target name="script-tests-setup-common-not-ok" depends="check-script-tests-setup-common" unless="script-tests-setup-common-ok">
- <echo message="*******************************************************************"/>
- <echo message="* WARNING"/>
- <echo message="* The tests are being built with Java version ${ant.java.version} which doesn't"/>
- <echo message="* include the Scripting API. "/>
- <echo message="* Apache Commons Logging, Apache Commons BSF and Rhino are required"/>
- <echo message="* when using a Java version older than 6 but these libraries could"/>
- <echo message="* not be found in '${external.test.dir}/scriptLibs/'. "/>
- <echo message="* The tests using the Scripting API will not be built."/>
- <echo message="********************************************************************"/>
+
+ <!-- If the external javascript engine should be used, set a classpath to all jars contained in the specified directory and test the engine. -->
+ <target name="external.js.engine:test" depends="external.js.engine:check-for-test" if="test-external-js">
+ <echo message="built-in Javascript engine not present, try using external engine from ${external.js.engine.dir}." />
+ <path id="classpath.js.engine">
+ <fileset dir="${external.js.engine.dir}">
+ <include name="*.jar"/>
+ </fileset>
+ </path>
+ <test-js-engine mode="external" />
</target>
- <target name="check-script-tests-setup-bat" depends="check-script-tests-setup-common, init">
- <condition property="script-tests-setup-bat-ok">
+ <target name="resolve-js-engine" depends="init, external.js.engine:test">
+ <condition property="js-engine-ok-and-win">
<and>
- <istrue value="${script-tests-setup-common-ok}"/>
+ <isset property="${js-engine-ok}"/>
<istrue value="${is.shell.bat}"/>
</and>
</condition>
- </target>
-
- <target name="check-script-tests-setup-unix" depends="check-script-tests-setup-common, init">
- <condition property="script-tests-setup-unix-ok">
+ <condition property="js-engine-ok-and-unix">
<and>
- <istrue value="${script-tests-setup-common-ok}"/>
+ <isset property="${js-engine-ok}"/>
<istrue value="${is.Unix}"/>
</and>
</condition>
@@ -1261,8 +1277,8 @@
<!-- =================================================================== -->
<!-- Script Tests Setup target (Common) -->
- <!-- =================================================================== -->
- <target name="script-tests-setup-common" depends="test-setup-common-init, check-script-tests-setup-common, init-classpath.scriptLibs" if="script-tests-setup-common-ok">
+ <!-- =================================================================== -->
+ <target name="script-tests-setup-common" depends="test-setup-common-init, resolve-js-engine" if="js-engine-ok">
<!-- Huge Classpath Env Max Size Test -->
<delete file="${test.dir}/hugeclasspathenvmaxsize.conf"/>
<filter token="app.name" value="hugeclasspathenvmaxsize"/>
@@ -1278,7 +1294,7 @@
value="wrapper.app.parameter.1=org.tanukisoftware.wrapper.test.QuickComplete" />
<echo file="${test.dir}/hugeclasspathenvmaxsize-path.conf" append="false" message="#encoding=UTF-8${line.separator}"/>
<script language="javascript">
- <classpath refid="classpath.scriptLibs" />
+ <classpath refid="classpath.js.engine" />
echo = project.createTask("echo");
echo.setFile(new java.io.File(project.getProperty("test.dir"), "hugeclasspathenvmaxsize-path.conf"));
echo.setAppend(true);
@@ -1312,7 +1328,7 @@
value="wrapper.app.parameter.1=org.tanukisoftware.wrapper.test.QuickComplete" />
<echo file="${test.dir}/hugeclasspathenvoversize-path.conf" append="false" message="#encoding=UTF-8${line.separator}"/>
<script language="javascript">
- <classpath refid="classpath.scriptLibs" />
+ <classpath refid="classpath.js.engine" />
echo = project.createTask("echo");
echo.setFile(new java.io.File(project.getProperty("test.dir"), "hugeclasspathenvoversize-path.conf"));
echo.setAppend(true);
@@ -2346,7 +2362,7 @@
<!-- =================================================================== -->
<!-- Script Tests Setup target (Bat files - Windows) -->
<!-- =================================================================== -->
- <target name="script-tests-setup-bat" depends="test-setup-common, check-script-tests-setup-bat" if="script-tests-setup-bat-ok">
+ <target name="script-tests-setup-bat" depends="test-setup-common, resolve-js-engine" if="js-engine-ok-and-win">
<!-- Huge Classpath Env Max Size Test -->
<delete file="${test.dir}/TestHugeClasspathEnvMaxSize.bat"/>
<copy file="${src.dir}/bin/App.bat.in"
@@ -2993,7 +3009,7 @@
<!-- =================================================================== -->
<!-- Script Tests Setup target (Unix) -->
<!-- =================================================================== -->
- <target name="script-tests-setup-unix" depends="test-setup-unix-init, check-script-tests-setup-unix" if="script-tests-setup-unix-ok">
+ <target name="script-tests-setup-unix" depends="test-setup-unix-init, resolve-js-engine" if="js-engine-ok-and-unix">
<!-- Huge Classpath Env Max Size Test -->
<filter token="app.name" value="hugeclasspathenvmaxsize"/>
<filter token="app.long.name" value="Huge Classpath Env Max Size Case" />
@@ -3023,9 +3039,7 @@
<!-- =================================================================== -->
<!-- Test Setup target -->
<!-- =================================================================== -->
- <target name="test-setup"
- depends="script-tests-setup-common-not-ok, test-setup-bat, test-setup-unix">
- </target>
+ <target name="test-setup" depends="test-setup-bat, test-setup-unix" />
<!-- =================================================================== -->
<!-- Clean up everything. -->
Modified: trunk/wrapper/build.xml
===================================================================
--- trunk/wrapper/build.xml 2020-11-26 03:47:17 UTC (rev 2045)
+++ trunk/wrapper/build.xml 2020-11-30 07:17:32 UTC (rev 2046)
@@ -89,11 +89,6 @@
</condition>
<property name="dist.os" value="${os.name}"/>
- <condition property="release-unsigned-tail" value="-unsigned">
- <equals arg1="${dist.os}" arg2="macosx"/>
- </condition>
- <property name="release-unsigned-tail" value=""/>
-
<!-- Resolve an architecture to use in release names. -->
<condition property="dist.arch" value="universal">
<equals arg1="${dist.os}" arg2="macosx"/>
@@ -179,6 +174,18 @@
</not>
</condition>
+ <!-- Release tail -->
+ <condition property="release-unsigned-tail" value="-unsigned">
+ <or>
+ <equals arg1="${dist.os}" arg2="macosx"/>
+ <and>
+ <isset property="is.windows"/>
+ <not><equals arg1="${dist.arch}" arg2="ia"/></not>
+ </and>
+ </or>
+ </condition>
+ <property name="release-unsigned-tail" value=""/>
+
<!-- Java version. -->
<condition property="javac.target.warn" value="true">
<not>
@@ -235,16 +242,6 @@
<!-- Generate the release-file base. -->
<property name="releasefile" value="${name}-${dist.os}-${dist.arch}-${bits}-${version}"/>
<property name="releaseSymbolsFile" value="${releasefile}-SYMBOLS"/>
-
- <!-- Check if the binaries need to be code-signed. -->
- <condition property="code-sign-required-windows" value="true">
- <and>
- <isset property="is.windows"/>
- <not>
- <equals arg1="${dist.arch}" arg2="ia"/>
- </not>
- </and>
- </condition>
</target>
<target name="init-windows" depends="init-setup" if="is.windows">
<!-- Decide on the type of script to generate. -->
@@ -1123,7 +1120,7 @@
<!-- Test Setup target -->
<!-- =================================================================== -->
<target name="test-setup">
- <ant antfile="build-tests.xml" target="test-setup" inheritall="false"/>
+ <ant antfile="build-tests.xml" target="test-setup" inheritall="false"/>
</target>
<!-- =================================================================== -->
@@ -1393,7 +1390,7 @@
<!-- =================================================================== -->
<!-- Release (Windows) -->
<!-- =================================================================== -->
- <target name="release-windows:begin" depends="pre-release:check, compile-c" if="is.windows">
+ <target name="release-windows" depends="pre-release:check, compile-c" if="is.windows">
<property name="releasedir" value="${build.dir}/${releasefile}"/>
<delete dir="${releasedir}"/>
<mkdir dir="${releasedir}"/>
@@ -1459,68 +1456,7 @@
<!-- Need an empty log file so that the logs directory will be included -->
<mkdir dir="${releasedir}/logs"/>
<touch file="${releasedir}/logs/wrapper.log"/>
- </target>
-
- <target name="release-windows:code-sign-windows" depends="release-windows:begin" if="code-sign-required-widows">
- <fail unless="wrapper.cert.password">
- ERROR:
-**************************************************************************
-* The password for the CodeSigning Certificate is not set.
-* Please define it on the commandline: ant -Dwrapper.cert.password="..."
-**************************************************************************
- </fail>
- <fail unless="signtool.dir">
- ERROR:
-****************************************************************************
-* Please specify the path for SignTool in default.properties (signtool.dir).
-****************************************************************************
- </fail>
- <available property="signtool.exists" file="${signtool.dir}/signtool.exe"/>
- <fail unless="signtool.exists">
- ERROR:
-************************************************************************************************************
-* The directory specified in signtool.dir (${signtool.dir}) does not exist/or does not contain signtool.exe.
-* Please verify the folder contains the file!!
-************************************************************************************************************
- </fail>
- <fail unless="cert.dir">
- ERROR:
-****************************************************************************
-* Please specify the path to the certificate in default.properties (cert.dir).
-****************************************************************************
- </fail>
- <available property="cert.exists" file="${cert.dir}/codesigncert.p12"/>
- <fail unless="cert.exists">
- ERROR:
-************************************************************************************************************
-* The directory specified in cert.dir (${cert.dir}) does not exist/or does not contain the certificate codesigncert.p12.
-* Please verify the folder contains the file!!
-************************************************************************************************************
- </fail>
- <!-- Sign the binaries -->
- <echo message="Signing ${wrapper.bin.name} file using ${cert.dir}/codesigncert.p12"/>
- <exec executable="${signtool.dir}/signtool.exe"
- failonerror="true">
- <arg line="sign /f "${cert.dir}/codesigncert.p12" /p ${wrapper.cert.password} /t http://timestamp.comodoca.com/authenticode /v "${releasedir}/bin/${wrapper.bin.name}"" />
- </exec>
- <exec executable="${signtool.dir}/signtool.exe"
- failonerror="true">
- <arg line="sign /f "${cert.dir}/codesigncert.p12" /p ${wrapper.cert.password} /fd sha256 /tr http://timestamp.comodoca.com/?td=sha256 /td sha256 /as /v "${releasedir}/bin/${wrapper.bin.name}"" />
- </exec>
-
- <echo message="Signing ${wrapper.lib.name} file using ${cert.dir}/codesigncert.p12"/>
- <exec executable="${signtool.dir}/signtool.exe"
- failonerror="true">
- <arg line="sign /f "${cert.dir}/codesigncert.p12" /p ${wrapper.cert.password} /t http://timestamp.comodoca.com/authenticode /v "${releasedir}/lib/${wrapper.lib.name}"" />
- </exec>
- <exec executable="${signtool.dir}/signtool.exe"
- failonerror="true">
- <arg line="sign /f "${cert.dir}/codesigncert.p12" /p ${wrapper.cert.password} /fd sha256 /tr http://timestamp.comodoca.com/?td=sha256 /td sha256 /as /v "${releasedir}/lib/${wrapper.lib.name}"" />
- </exec>
- </target>
-
- <target name="release-windows" depends="release-windows:code-sign-windows" if="is.windows">
<!-- Make sure that files are formatted correctly for their platforms -->
<fixcrlf srcdir="${releasedir}" includes="**/*.bat" eol="crlf" />
<fixcrlf srcdir="${releasedir}" includes="**/*.bat.in" eol="crlf" />
@@ -1538,7 +1474,7 @@
</copy>
<fixcrlf srcdir="${releasedir}" encoding="UTF-8" outputencoding="UTF-8" includes="README_*.txt" eol="crlf"/>
- <zip zipfile="${dist.dir}/${releasefile}.zip"
+ <zip zipfile="${dist.dir}/${releasefile}${release-unsigned-tail}.zip"
basedir="${build.dir}"
compress="true">
<include name="${releasefile}/**/*" />
@@ -1567,7 +1503,7 @@
<echo>* dist directory. *</echo>
<echo>* *</echo>
<echo>* Release distribution: *</echo>
- <echo>* ${dist.dir}/${releasefile}.zip</echo>
+ <echo>* ${dist.dir}/${releasefile}${release-unsigned-tail}.zip</echo>
<echo>**********************************************************</echo>
</target>
Modified: trunk/wrapper/doc/revisions.txt
===================================================================
--- trunk/wrapper/doc/revisions.txt 2020-11-26 03:47:17 UTC (rev 2045)
+++ trunk/wrapper/doc/revisions.txt 2020-11-30 07:17:32 UTC (rev 2046)
@@ -1,6 +1,8 @@
Java Service Wrapper Revision History.
--------------------------------------
3.5.45
+* Fix a problem where Windows binaries were not being signed correctly in the
+ 3.5.44 release. Added additional checks.
* Fix an issue when using wrapper.timezone. If the file named 'etcetera',
provided by the IANA tz database, was present at the location specified by
wrapper.timezone.folder, the Wrapper failed to parse it and got blocked on
@@ -7,6 +9,10 @@
startup. Removing this file would solve the issue.
* Fix a problem where the Wrapper would fail to start if the shell script was
on a path which contained multiple consecutive spaces. (Bug #311)
+* When building tests (community edition), check the presence of a javascript
+ engine instead of assuming it is available based on the Java version. If no
+ built-in engine is found, an external engine can be specified by setting the
+ 'external.js.engine.dir' property when calling Ant. (Bug #313)
3.5.44
* Add a log message when a wildcard classpath, defined with a
Index: trunk/wrapper/src
===================================================================
--- trunk/wrapper/src 2020-11-26 03:47:17 UTC (rev 2045)
+++ trunk/wrapper/src 2020-11-30 07:17:32 UTC (rev 2046)
Property changes on: trunk/wrapper/src
___________________________________________________________________
Modified: svn:ignore
## -1 +1,2 ##
d?????
+lib
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <mor...@us...> - 2020-11-26 03:47:22
|
Revision: 2045
http://sourceforge.net/p/wrapper/code/2045
Author: mortenson
Date: 2020-11-26 03:47:17 +0000 (Thu, 26 Nov 2020)
Log Message:
-----------
Fix a problem where the Wrapper would fail to start if the shell script was on a path which contained multiple consecutive spaces. #noref
Modified Paths:
--------------
trunk/wrapper/doc/revisions.txt
trunk/wrapper/src/bin/App.sh.in
Modified: trunk/wrapper/doc/revisions.txt
===================================================================
--- trunk/wrapper/doc/revisions.txt 2020-11-04 01:42:34 UTC (rev 2044)
+++ trunk/wrapper/doc/revisions.txt 2020-11-26 03:47:17 UTC (rev 2045)
@@ -1,5 +1,13 @@
Java Service Wrapper Revision History.
--------------------------------------
+3.5.45
+* Fix an issue when using wrapper.timezone. If the file named 'etcetera',
+ provided by the IANA tz database, was present at the location specified by
+ wrapper.timezone.folder, the Wrapper failed to parse it and got blocked on
+ startup. Removing this file would solve the issue.
+* Fix a problem where the Wrapper would fail to start if the shell script was
+ on a path which contained multiple consecutive spaces. (Bug #311)
+
3.5.44
* Add a log message when a wildcard classpath, defined with a
wrapper.java.classpath.<n> property, does not match any files. The log level
@@ -11,7 +19,7 @@
This change is not compatible with the implementation in 3.5.43.
* Update the LSB Init Block in the default shell script so it works more
smoothly with older Linux systems using update-rc.d.
-* Improve logging when the value of wrapper.java.command is not a java binary.
+* Improve logging when the value of wrapper.java.command is not a Java binary.
* Add property wrapper.ntservice.account.logon_as_service to control whether or
not the Wrapper should add the 'Log on as a service' privilege to the
configured account during installation of the Windows Service.
@@ -29,6 +37,7 @@
* Stop providing new releases for Windows and Linux Itanium. The Itanium
architecture is discontinued and no usage have been reported recently. Please
contact us if there is a need for these platforms.
+* Build the z/OS distribution on z/OS 2.4. Previously z/OS 1.8 was used.
3.5.43
* Rename sh.script.in to App.sh.in in the src/bin directory.
Modified: trunk/wrapper/src/bin/App.sh.in
===================================================================
--- trunk/wrapper/src/bin/App.sh.in 2020-11-04 01:42:34 UTC (rev 2044)
+++ trunk/wrapper/src/bin/App.sh.in 2020-11-26 03:47:17 UTC (rev 2045)
@@ -333,7 +333,7 @@
while [ "X$CHANGED" != "X" ]
do
# Change spaces to ":" so the tokens can be parsed.
- SAFESCRIPT=`echo $SCRIPT | sed -e 's; ;:;g'`
+ SAFESCRIPT=`echo "$SCRIPT" | sed -e 's; ;:;g'`
# Get the real path to this script, resolving any symbolic links
TOKENS=`echo $SAFESCRIPT | sed -e 's;/; ;g'`
REALPATH=
@@ -1323,7 +1323,7 @@
then
# The string passed to eval must handles spaces in paths correctly.
COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" wrapper.syslog.ident=\"$APP_NAME\" wrapper.pidfile=\"$PIDFILE\" wrapper.daemonize=TRUE $APPNAMEPROP $ANCHORPROP $IGNOREPROP $STATUSPROP $COMMANDPROP $LOCKPROP wrapper.script.version=3.5.45-a $ADDITIONAL_PARA"
- eval $COMMAND_LINE
+ eval "$COMMAND_LINE"
else
eval echo `gettext '$APP_LONG_NAME is already running.'`
exit 1
@@ -1346,7 +1346,7 @@
# The string passed to eval must handles spaces in paths correctly.
COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" wrapper.syslog.ident=\"$APP_NAME\" wrapper.pidfile=\"$PIDFILE\" $APPNAMEPROP $ANCHORPROP $STATUSPROP $COMMANDPROP $LOCKPROP wrapper.script.version=3.5.45-a $ADDITIONAL_PARA"
- eval $COMMAND_LINE
+ eval "$COMMAND_LINE"
COMMAND_EXIT_CODE=$?
if [ $COMMAND_EXIT_CODE -ne 0 ] ; then
exit $COMMAND_EXIT_CODE
@@ -1810,7 +1810,7 @@
# The string passed to eval must handles spaces in paths correctly.
COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" wrapper.syslog.ident=\"$APP_NAME\" wrapper.pidfile=\"$PIDFILE\" wrapper.daemonize=TRUE $APPNAMEPROP $ANCHORPROP $IGNOREPROP $STATUSPROP $COMMANDPROP $LOCKPROP wrapper.script.version=3.5.45-a $ADDITIONAL_PARA"
- eval $COMMAND_LINE
+ eval "$COMMAND_LINE"
startwait
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <mor...@us...> - 2020-11-04 01:42:42
|
Revision: 2044
http://sourceforge.net/p/wrapper/code/2044
Author: mortenson
Date: 2020-11-04 01:42:34 +0000 (Wed, 04 Nov 2020)
Log Message:
-----------
Prepare for 3.5.45
Modified Paths:
--------------
trunk/wrapper/README_de.txt
trunk/wrapper/README_en.txt
trunk/wrapper/README_es.txt
trunk/wrapper/README_ja.txt
trunk/wrapper/build.xml
trunk/wrapper/default.properties
trunk/wrapper/src/bin/App.bat.in
trunk/wrapper/src/bin/App.sh.in
trunk/wrapper/src/bin/App.shconf.in
trunk/wrapper/src/bin/AppCommand.bat.in
trunk/wrapper/src/bin/AppTemplate.bat.in
trunk/wrapper/src/bin/AppTemplatePassThrough.bat.in
trunk/wrapper/src/bin/InstallApp-NT.bat.in
trunk/wrapper/src/bin/PauseApp-NT.bat.in
trunk/wrapper/src/bin/QueryApp-NT.bat.in
trunk/wrapper/src/bin/README.txt
trunk/wrapper/src/bin/ResumeApp-NT.bat.in
trunk/wrapper/src/bin/SetupApp.bat.in
trunk/wrapper/src/bin/StartApp-NT.bat.in
trunk/wrapper/src/bin/StopApp-NT.bat.in
trunk/wrapper/src/bin/TeardownApp.bat.in
trunk/wrapper/src/bin/UninstallApp-NT.bat.in
trunk/wrapper/src/c/Wrapper.rc
Property Changed:
----------------
trunk/wrapper/src/
Modified: trunk/wrapper/README_de.txt
===================================================================
--- trunk/wrapper/README_de.txt 2020-11-02 11:24:29 UTC (rev 2043)
+++ trunk/wrapper/README_de.txt 2020-11-04 01:42:34 UTC (rev 2044)
@@ -1,5 +1,5 @@
-----------------------------------------------------------------------------
-Java Service Wrapper Community Edition 3.5.44
+Java Service Wrapper Community Edition 3.5.45-a
Copyright (C) 1999-2020 Tanuki Software, Ltd. All Rights Reserved.
https://wrapper.tanukisoftware.com
-----------------------------------------------------------------------------
Modified: trunk/wrapper/README_en.txt
===================================================================
--- trunk/wrapper/README_en.txt 2020-11-02 11:24:29 UTC (rev 2043)
+++ trunk/wrapper/README_en.txt 2020-11-04 01:42:34 UTC (rev 2044)
@@ -1,5 +1,5 @@
-----------------------------------------------------------------------------
-Java Service Wrapper Community Edition 3.5.44
+Java Service Wrapper Community Edition 3.5.45-a
Copyright (C) 1999-2020 Tanuki Software, Ltd. All Rights Reserved.
https://wrapper.tanukisoftware.com
-----------------------------------------------------------------------------
Modified: trunk/wrapper/README_es.txt
===================================================================
--- trunk/wrapper/README_es.txt 2020-11-02 11:24:29 UTC (rev 2043)
+++ trunk/wrapper/README_es.txt 2020-11-04 01:42:34 UTC (rev 2044)
@@ -1,5 +1,5 @@
-----------------------------------------------------------------------------
-Java Service Wrapper Community Edition 3.5.44
+Java Service Wrapper Community Edition 3.5.45-a
Copyright (C) 1999-2020 Tanuki Software, Ltd. All Rights Reserved.
https://wrapper.tanukisoftware.com
-----------------------------------------------------------------------------
Modified: trunk/wrapper/README_ja.txt
===================================================================
--- trunk/wrapper/README_ja.txt 2020-11-02 11:24:29 UTC (rev 2043)
+++ trunk/wrapper/README_ja.txt 2020-11-04 01:42:34 UTC (rev 2044)
@@ -1,5 +1,5 @@
-----------------------------------------------------------------------------
-Java Service Wrapper Community Edition 3.5.44
+Java Service Wrapper Community Edition 3.5.45-a
Copyright (C) 1999-2020 Tanuki Software, Ltd. All Rights Reserved.
https://wrapper.tanukisoftware.com
-----------------------------------------------------------------------------
Modified: trunk/wrapper/build.xml
===================================================================
--- trunk/wrapper/build.xml 2020-11-02 11:24:29 UTC (rev 2043)
+++ trunk/wrapper/build.xml 2020-11-04 01:42:34 UTC (rev 2044)
@@ -1177,6 +1177,7 @@
<include name="src/c/*.bmp" />
<include name="src/c/*.bin" />
<include name="src/c/*.manifest" />
+ <exclude name="src/d?????" />
<exclude name="**/CVS/*" />
</fileset>
</copy>
@@ -1286,6 +1287,7 @@
<include name="src/c/*.bmp" />
<include name="src/c/*.bin" />
<include name="src/c/*.manifest" />
+ <exclude name="src/d?????" />
<include name="src/test/*.in" />
<include name="src/test/common/*.in" />
<include name="external/**" />
Modified: trunk/wrapper/default.properties
===================================================================
--- trunk/wrapper/default.properties 2020-11-02 11:24:29 UTC (rev 2043)
+++ trunk/wrapper/default.properties 2020-11-04 01:42:34 UTC (rev 2044)
@@ -8,9 +8,9 @@
name = wrapper
Name = Wrapper
long.name = Java Service Wrapper Community ${Version}
-Version = 3.5.44
+Version = 3.5.45-a
version = ${Version}
-version.root = 3.5.44
+version.root = 3.5.45-a
year = 2020
# NOTE - The version property gets corrupted by the use of Xalan
# so Version is used instead.
Index: trunk/wrapper/src
===================================================================
--- trunk/wrapper/src 2020-11-02 11:24:29 UTC (rev 2043)
+++ trunk/wrapper/src 2020-11-04 01:42:34 UTC (rev 2044)
Property changes on: trunk/wrapper/src
___________________________________________________________________
Added: svn:ignore
## -0,0 +1 ##
+d?????
Modified: trunk/wrapper/src/bin/App.bat.in
===================================================================
--- trunk/wrapper/src/bin/App.bat.in 2020-11-02 11:24:29 UTC (rev 2043)
+++ trunk/wrapper/src/bin/App.bat.in 2020-11-04 01:42:34 UTC (rev 2044)
@@ -16,7 +16,7 @@
rem -----------------------------------------------------------------------------
rem These settings can be modified to fit the needs of your application
-rem Optimized for use with version 3.5.44 of the Wrapper.
+rem Optimized for use with version 3.5.45-a of the Wrapper.
rem The base name for the Wrapper binary.
set _WRAPPER_BASE=wrapper
Modified: trunk/wrapper/src/bin/App.sh.in
===================================================================
--- trunk/wrapper/src/bin/App.sh.in 2020-11-02 11:24:29 UTC (rev 2043)
+++ trunk/wrapper/src/bin/App.sh.in 2020-11-04 01:42:34 UTC (rev 2044)
@@ -12,7 +12,7 @@
#
# Java Service Wrapper sh script. Suitable for starting and stopping
# wrapped Java applications on UNIX platforms.
-# Optimized for use with version 3.5.44 of the Wrapper.
+# Optimized for use with version 3.5.45-a of the Wrapper.
#
#-----------------------------------------------------------------------------
@@ -1322,7 +1322,7 @@
if [ "X$pid" = "X" ]
then
# The string passed to eval must handles spaces in paths correctly.
- COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" wrapper.syslog.ident=\"$APP_NAME\" wrapper.pidfile=\"$PIDFILE\" wrapper.daemonize=TRUE $APPNAMEPROP $ANCHORPROP $IGNOREPROP $STATUSPROP $COMMANDPROP $LOCKPROP wrapper.script.version=3.5.44 $ADDITIONAL_PARA"
+ COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" wrapper.syslog.ident=\"$APP_NAME\" wrapper.pidfile=\"$PIDFILE\" wrapper.daemonize=TRUE $APPNAMEPROP $ANCHORPROP $IGNOREPROP $STATUSPROP $COMMANDPROP $LOCKPROP wrapper.script.version=3.5.45-a $ADDITIONAL_PARA"
eval $COMMAND_LINE
else
eval echo `gettext '$APP_LONG_NAME is already running.'`
@@ -1345,7 +1345,7 @@
prepAdditionalParams "$@"
# The string passed to eval must handles spaces in paths correctly.
- COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" wrapper.syslog.ident=\"$APP_NAME\" wrapper.pidfile=\"$PIDFILE\" $APPNAMEPROP $ANCHORPROP $STATUSPROP $COMMANDPROP $LOCKPROP wrapper.script.version=3.5.44 $ADDITIONAL_PARA"
+ COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" wrapper.syslog.ident=\"$APP_NAME\" wrapper.pidfile=\"$PIDFILE\" $APPNAMEPROP $ANCHORPROP $STATUSPROP $COMMANDPROP $LOCKPROP wrapper.script.version=3.5.45-a $ADDITIONAL_PARA"
eval $COMMAND_LINE
COMMAND_EXIT_CODE=$?
if [ $COMMAND_EXIT_CODE -ne 0 ] ; then
@@ -1809,7 +1809,7 @@
prepAdditionalParams "$@"
# The string passed to eval must handles spaces in paths correctly.
- COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" wrapper.syslog.ident=\"$APP_NAME\" wrapper.pidfile=\"$PIDFILE\" wrapper.daemonize=TRUE $APPNAMEPROP $ANCHORPROP $IGNOREPROP $STATUSPROP $COMMANDPROP $LOCKPROP wrapper.script.version=3.5.44 $ADDITIONAL_PARA"
+ COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" wrapper.syslog.ident=\"$APP_NAME\" wrapper.pidfile=\"$PIDFILE\" wrapper.daemonize=TRUE $APPNAMEPROP $ANCHORPROP $IGNOREPROP $STATUSPROP $COMMANDPROP $LOCKPROP wrapper.script.version=3.5.45-a $ADDITIONAL_PARA"
eval $COMMAND_LINE
startwait
Modified: trunk/wrapper/src/bin/App.shconf.in
===================================================================
--- trunk/wrapper/src/bin/App.shconf.in 2020-11-02 11:24:29 UTC (rev 2043)
+++ trunk/wrapper/src/bin/App.shconf.in 2020-11-04 01:42:34 UTC (rev 2044)
@@ -12,7 +12,7 @@
#
# Java Service Wrapper shconf file. Suitable for overriding the default
# settings of the Wrapper Shell Script.
-# Optimized for use with version 3.5.44 of the Wrapper.
+# Optimized for use with version 3.5.45-a of the Wrapper.
#
#-----------------------------------------------------------------------------
Modified: trunk/wrapper/src/bin/AppCommand.bat.in
===================================================================
--- trunk/wrapper/src/bin/AppCommand.bat.in 2020-11-02 11:24:29 UTC (rev 2043)
+++ trunk/wrapper/src/bin/AppCommand.bat.in 2020-11-04 01:42:34 UTC (rev 2044)
@@ -16,7 +16,7 @@
rem -----------------------------------------------------------------------------
rem These settings can be modified to fit the needs of your application
-rem Optimized for use with version 3.5.44 of the Wrapper.
+rem Optimized for use with version 3.5.45-a of the Wrapper.
rem The base name for the Wrapper binary.
set _WRAPPER_BASE=wrapper
Modified: trunk/wrapper/src/bin/AppTemplate.bat.in
===================================================================
--- trunk/wrapper/src/bin/AppTemplate.bat.in 2020-11-02 11:24:29 UTC (rev 2043)
+++ trunk/wrapper/src/bin/AppTemplate.bat.in 2020-11-04 01:42:34 UTC (rev 2044)
@@ -16,7 +16,7 @@
rem -----------------------------------------------------------------------------
rem These settings can be modified to fit the needs of your application
-rem Optimized for use with version 3.5.44 of the Wrapper.
+rem Optimized for use with version 3.5.45-a of the Wrapper.
rem The base name for the Wrapper binary.
set _WRAPPER_BASE=wrapper
Modified: trunk/wrapper/src/bin/AppTemplatePassThrough.bat.in
===================================================================
--- trunk/wrapper/src/bin/AppTemplatePassThrough.bat.in 2020-11-02 11:24:29 UTC (rev 2043)
+++ trunk/wrapper/src/bin/AppTemplatePassThrough.bat.in 2020-11-04 01:42:34 UTC (rev 2044)
@@ -16,7 +16,7 @@
rem -----------------------------------------------------------------------------
rem These settings can be modified to fit the needs of your application
-rem Optimized for use with version 3.5.44 of the Wrapper.
+rem Optimized for use with version 3.5.45-a of the Wrapper.
rem The base name for the Wrapper binary.
set _WRAPPER_BASE=wrapper
Modified: trunk/wrapper/src/bin/InstallApp-NT.bat.in
===================================================================
--- trunk/wrapper/src/bin/InstallApp-NT.bat.in 2020-11-02 11:24:29 UTC (rev 2043)
+++ trunk/wrapper/src/bin/InstallApp-NT.bat.in 2020-11-04 01:42:34 UTC (rev 2044)
@@ -16,7 +16,7 @@
rem -----------------------------------------------------------------------------
rem These settings can be modified to fit the needs of your application
-rem Optimized for use with version 3.5.44 of the Wrapper.
+rem Optimized for use with version 3.5.45-a of the Wrapper.
rem The base name for the Wrapper binary.
set _WRAPPER_BASE=wrapper
Modified: trunk/wrapper/src/bin/PauseApp-NT.bat.in
===================================================================
--- trunk/wrapper/src/bin/PauseApp-NT.bat.in 2020-11-02 11:24:29 UTC (rev 2043)
+++ trunk/wrapper/src/bin/PauseApp-NT.bat.in 2020-11-04 01:42:34 UTC (rev 2044)
@@ -16,7 +16,7 @@
rem -----------------------------------------------------------------------------
rem These settings can be modified to fit the needs of your application
-rem Optimized for use with version 3.5.44 of the Wrapper.
+rem Optimized for use with version 3.5.45-a of the Wrapper.
rem The base name for the Wrapper binary.
set _WRAPPER_BASE=wrapper
Modified: trunk/wrapper/src/bin/QueryApp-NT.bat.in
===================================================================
--- trunk/wrapper/src/bin/QueryApp-NT.bat.in 2020-11-02 11:24:29 UTC (rev 2043)
+++ trunk/wrapper/src/bin/QueryApp-NT.bat.in 2020-11-04 01:42:34 UTC (rev 2044)
@@ -16,7 +16,7 @@
rem -----------------------------------------------------------------------------
rem These settings can be modified to fit the needs of your application
-rem Optimized for use with version 3.5.44 of the Wrapper.
+rem Optimized for use with version 3.5.45-a of the Wrapper.
rem The base name for the Wrapper binary.
set _WRAPPER_BASE=wrapper
Modified: trunk/wrapper/src/bin/README.txt
===================================================================
--- trunk/wrapper/src/bin/README.txt 2020-11-02 11:24:29 UTC (rev 2043)
+++ trunk/wrapper/src/bin/README.txt 2020-11-04 01:42:34 UTC (rev 2044)
@@ -1,5 +1,5 @@
-----------------------------------------------------------------------------
-Java Service Wrapper Community Edition 3.5.44
+Java Service Wrapper Community Edition 3.5.45-a
Copyright (C) 1999-2020 Tanuki Software, Ltd. All Rights Reserved.
https://wrapper.tanukisoftware.com
-----------------------------------------------------------------------------
Modified: trunk/wrapper/src/bin/ResumeApp-NT.bat.in
===================================================================
--- trunk/wrapper/src/bin/ResumeApp-NT.bat.in 2020-11-02 11:24:29 UTC (rev 2043)
+++ trunk/wrapper/src/bin/ResumeApp-NT.bat.in 2020-11-04 01:42:34 UTC (rev 2044)
@@ -16,7 +16,7 @@
rem -----------------------------------------------------------------------------
rem These settings can be modified to fit the needs of your application
-rem Optimized for use with version 3.5.44 of the Wrapper.
+rem Optimized for use with version 3.5.45-a of the Wrapper.
rem The base name for the Wrapper binary.
set _WRAPPER_BASE=wrapper
Modified: trunk/wrapper/src/bin/SetupApp.bat.in
===================================================================
--- trunk/wrapper/src/bin/SetupApp.bat.in 2020-11-02 11:24:29 UTC (rev 2043)
+++ trunk/wrapper/src/bin/SetupApp.bat.in 2020-11-04 01:42:34 UTC (rev 2044)
@@ -16,7 +16,7 @@
rem -----------------------------------------------------------------------------
rem These settings can be modified to fit the needs of your application
-rem Optimized for use with version 3.5.44 of the Wrapper.
+rem Optimized for use with version 3.5.45-a of the Wrapper.
rem The base name for the Wrapper binary.
set _WRAPPER_BASE=wrapper
Modified: trunk/wrapper/src/bin/StartApp-NT.bat.in
===================================================================
--- trunk/wrapper/src/bin/StartApp-NT.bat.in 2020-11-02 11:24:29 UTC (rev 2043)
+++ trunk/wrapper/src/bin/StartApp-NT.bat.in 2020-11-04 01:42:34 UTC (rev 2044)
@@ -16,7 +16,7 @@
rem -----------------------------------------------------------------------------
rem These settings can be modified to fit the needs of your application
-rem Optimized for use with version 3.5.44 of the Wrapper.
+rem Optimized for use with version 3.5.45-a of the Wrapper.
rem The base name for the Wrapper binary.
set _WRAPPER_BASE=wrapper
Modified: trunk/wrapper/src/bin/StopApp-NT.bat.in
===================================================================
--- trunk/wrapper/src/bin/StopApp-NT.bat.in 2020-11-02 11:24:29 UTC (rev 2043)
+++ trunk/wrapper/src/bin/StopApp-NT.bat.in 2020-11-04 01:42:34 UTC (rev 2044)
@@ -16,7 +16,7 @@
rem -----------------------------------------------------------------------------
rem These settings can be modified to fit the needs of your application
-rem Optimized for use with version 3.5.44 of the Wrapper.
+rem Optimized for use with version 3.5.45-a of the Wrapper.
rem The base name for the Wrapper binary.
set _WRAPPER_BASE=wrapper
Modified: trunk/wrapper/src/bin/TeardownApp.bat.in
===================================================================
--- trunk/wrapper/src/bin/TeardownApp.bat.in 2020-11-02 11:24:29 UTC (rev 2043)
+++ trunk/wrapper/src/bin/TeardownApp.bat.in 2020-11-04 01:42:34 UTC (rev 2044)
@@ -16,7 +16,7 @@
rem -----------------------------------------------------------------------------
rem These settings can be modified to fit the needs of your application
-rem Optimized for use with version 3.5.44 of the Wrapper.
+rem Optimized for use with version 3.5.45-a of the Wrapper.
rem The base name for the Wrapper binary.
set _WRAPPER_BASE=wrapper
Modified: trunk/wrapper/src/bin/UninstallApp-NT.bat.in
===================================================================
--- trunk/wrapper/src/bin/UninstallApp-NT.bat.in 2020-11-02 11:24:29 UTC (rev 2043)
+++ trunk/wrapper/src/bin/UninstallApp-NT.bat.in 2020-11-04 01:42:34 UTC (rev 2044)
@@ -16,7 +16,7 @@
rem -----------------------------------------------------------------------------
rem These settings can be modified to fit the needs of your application
-rem Optimized for use with version 3.5.44 of the Wrapper.
+rem Optimized for use with version 3.5.45-a of the Wrapper.
rem The base name for the Wrapper binary.
set _WRAPPER_BASE=wrapper
Modified: trunk/wrapper/src/c/Wrapper.rc
===================================================================
--- trunk/wrapper/src/c/Wrapper.rc 2020-11-02 11:24:29 UTC (rev 2043)
+++ trunk/wrapper/src/c/Wrapper.rc 2020-11-04 01:42:34 UTC (rev 2044)
@@ -53,8 +53,8 @@
// http://msdn.microsoft.com/en-us/library/aa381058%28VS.85%29.aspx
VS_VERSION_INFO VERSIONINFO
- FILEVERSION 3,5,44,0
- PRODUCTVERSION 3,5,44,0
+ FILEVERSION 3,5,45,0
+ PRODUCTVERSION 3,5,45,0
FILEFLAGSMASK 0x17L
#ifdef _DEBUG
FILEFLAGS 0x1L
@@ -70,13 +70,13 @@
BLOCK "000904b0"
BEGIN
VALUE "CompanyName", "Tanuki Software, Ltd."
- VALUE "FileDescription", "Java Service Wrapper Community Edition 3.5.44"
- VALUE "FileVersion", "3, 5, 44, 0"
+ VALUE "FileDescription", "Java Service Wrapper Community Edition 3.5.45-a"
+ VALUE "FileVersion", "3, 5, 45, 0"
VALUE "LegalCopyright", "Copyright (C) 1999, 2020 Tanuki Software, Ltd. All rights reserved."
VALUE "InternalName", "wrapper"
VALUE "OriginalFilename", "wrapper.exe"
VALUE "ProductName", "Java Service Wrapper Community"
- VALUE "ProductVersion", "3, 5, 44, 0"
+ VALUE "ProductVersion", "3, 5, 45, 0"
END
END
BLOCK "VarFileInfo"
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <mor...@us...> - 2020-10-30 11:04:10
|
Revision: 2041
http://sourceforge.net/p/wrapper/code/2041
Author: mortenson
Date: 2020-10-30 11:04:09 +0000 (Fri, 30 Oct 2020)
Log Message:
-----------
Work on 3.5.44
Modified Paths:
--------------
trunk/wrapper/build.xml
Modified: trunk/wrapper/build.xml
===================================================================
--- trunk/wrapper/build.xml 2020-10-30 10:58:19 UTC (rev 2040)
+++ trunk/wrapper/build.xml 2020-10-30 11:04:09 UTC (rev 2041)
@@ -1147,6 +1147,7 @@
<fileset dir="${basedir}">
<include name="index.html" />
<include name="build*" />
+ <exclude name="build-s???.xml" />
<include name="default.properties" />
<include name="project.dtd" />
<include name="doc/**" />
@@ -1255,6 +1256,7 @@
<fileset dir="${basedir}" >
<include name="index.html" />
<include name="build*" />
+ <exclude name="build-s???.xml" />
<include name="default.properties" />
<include name="project.dtd" />
<include name="lib/wrapper.jar" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <mor...@us...> - 2020-10-30 10:58:22
|
Revision: 2040
http://sourceforge.net/p/wrapper/code/2040
Author: mortenson
Date: 2020-10-30 10:58:19 +0000 (Fri, 30 Oct 2020)
Log Message:
-----------
Work on 3.5.44
Modified Paths:
--------------
trunk/wrapper/build.xml
trunk/wrapper/doc/revisions.txt
trunk/wrapper/src/c/wrapperinfo.c.in
Property Changed:
----------------
trunk/wrapper/
Index: trunk/wrapper
===================================================================
--- trunk/wrapper 2020-10-30 03:00:17 UTC (rev 2039)
+++ trunk/wrapper 2020-10-30 10:58:19 UTC (rev 2040)
Property changes on: trunk/wrapper
___________________________________________________________________
Modified: svn:ignore
## -1,3 +1,4 ##
+build-s???.xml
test
dist
lib
Modified: trunk/wrapper/build.xml
===================================================================
--- trunk/wrapper/build.xml 2020-10-30 03:00:17 UTC (rev 2039)
+++ trunk/wrapper/build.xml 2020-10-30 10:58:19 UTC (rev 2040)
@@ -245,9 +245,6 @@
</not>
</and>
</condition>
- <condition property="code-sign-required-macosx" value="true">
- <isset property="is.macosx"/>
- </condition>
</target>
<target name="init-windows" depends="init-setup" if="is.windows">
<!-- Decide on the type of script to generate. -->
@@ -1690,221 +1687,6 @@
<echo>**********************************************************</echo>
</target>
- <target name="release-sign:sign-macosx" depends="init" if="code-sign-required-macosx">
- <fail unless="codesign.identity">
- ERROR:
-**************************************************************************
-* The codesign developer identity is not set.
-* Please define "codesign.identity" in ${user.home}/.ant.properties
-**************************************************************************
- </fail>
-
- <!-- Extract the unsigned tar.gz from the release target. -->
- <mkdir dir="${build.dir}/sign"/>
- <untar src="${dist.dir}/${releasefile}${release-unsigned-tail}.tar.gz" dest="${build.dir}/sign" compression="gzip"/>
-
- <!-- Sign the binaries -->
- <echo message="Signing ${wrapper.bin.name} file using KeyStore"/>
- <exec executable="/usr/bin/codesign" failonerror="true">
- <arg line="-s "${codesign.identity}" -vvvv --options=runtime ${build.dir}/sign/${releasefile}/bin/${wrapper.bin.name}"/>
- </exec>
- <echo message="Verifying ${wrapper.bin.name} signature"/>
- <exec executable="/usr/bin/codesign" failonerror="true">
- <arg line="-vvvv ${build.dir}/sign/${releasefile}/bin/${wrapper.bin.name}"/>
- </exec>
-
- <echo message="Signing ${wrapper.lib.name} file using KeyStore"/>
- <exec executable="/usr/bin/codesign" failonerror="true">
- <arg line="-s "${codesign.identity}" -vvvv --options=runtime ${build.dir}/sign/${releasefile}/lib/${wrapper.lib.name}"/>
- </exec>
- <echo message="Verifying ${wrapper.lib.name} signature"/>
- <exec executable="/usr/bin/codesign" failonerror="true">
- <arg line="-vvvv ${build.dir}/sign/${releasefile}/lib/${wrapper.lib.name}"/>
- </exec>
-
- <!-- Recreate the tar and tar.gz -->
- <tar tarfile="${build.dir}/sign/${releasefile}.tar">
- <tarfileset dir="${build.dir}/sign" mode="755">
- <include name="${releasefile}/bin/${wrapper.bin.name}"/>
- <include name="${releasefile}/bin/${app.name}"/>
- <include name="${releasefile}/bin/demoapp"/>
- <include name="${releasefile}/lib/${wrapper.lib.name}"/>
- </tarfileset>
- <tarfileset dir="${build.dir}/sign">
- <include name="${releasefile}/**"/>
- <exclude name="${releasefile}/bin/${wrapper.bin.name}"/>
- <exclude name="${releasefile}/bin/${app.name}"/>
- <exclude name="${releasefile}/bin/demoapp"/>
- <exclude name="${releasefile}/lib/${wrapper.lib.name}"/>
- </tarfileset>
- </tar>
- <gzip zipfile="${dist.dir}/${releasefile}.tar.gz" src="${build.dir}/sign/${releasefile}.tar" />
- <echo>**********************************************************</echo>
- <echo>* A native release SIGNED distribution has been created *</echo>
- <echo>* in the dist directory. *</echo>
- <echo>* *</echo>
- <echo>* Release distribution: *</echo>
- <echo>* ${dist.dir}/${releasefile}.tar.gz</echo>
- <echo>**********************************************************</echo>
- </target>
- <target name="release-sign:package-macosx" depends="release-sign:sign-macosx" if="code-sign-required-macosx">
-
- <fail unless="codesign.installer.identity">
- ERROR:
-**************************************************************************
-* The codesign installer identity is not set.
-* Please define "codesign.installer.identity" in ${user.home}/.ant.properties
-**************************************************************************
- </fail>
-
- <property name="pkg.dir" value="${build.dir}/pkg"/>
- <delete dir="${pkg.dir}"/>
- <mkdir dir="${pkg.dir}"/>
-
- <!-- Copy over the package files. -->
- <mkdir dir="${pkg.dir}/darwin"/>
- <copy todir="${pkg.dir}/darwin">
- <fileset dir="${src.dir}/darwin">
- <include name="**/*"/>
- <exclude name="Distribution.xml"/>
- <exclude name="Resources/*.sh"/>
- <exclude name="Resources/*.html"/>
- <exclude name="scripts/*"/>
- </fileset>
- </copy>
- <copy todir="${pkg.dir}/darwin" filtering="on" overwrite="true" encoding="UTF-8">
- <fileset dir="${src.dir}/darwin">
- <include name="Distribution.xml"/>
- <include name="Resources/*.sh"/>
- <include name="Resources/*.html"/>
- <include name="scripts/*"/>
- </fileset>
- </copy>
- <!-- It is important that the executable bit be set on scripts added to the package. -->
- <chmod perm="+x">
- <fileset dir="${pkg.dir}/darwin">
- <include name="**/*.sh"/>
- <include name="scripts/*"/>
- </fileset>
- </chmod>
- <mkdir dir="${pkg.dir}/darwinpkg/usr/local/Cellar/wrapper/${version}"/>
- <copy todir="${pkg.dir}/darwinpkg/usr/local/Cellar/wrapper/${version}">
- <fileset dir="${build.dir}/sign/${releasefile}">
- <include name="**/*"/>
- </fileset>
- </copy>
-
- <!-- Dump installed certificates -->
- <echo message="Installed certificates"/>
- <exec executable="/usr/bin/security" failonerror="true">
- <arg line="find-identity -p basic -v"/>
- </exec>
-
- <!-- Uninstall script -->
- <copy todir="${pkg.dir}/darwinpkg/usr/local/Cellar/wrapper/${version}" file="${pkg.dir}/darwin/Resources/uninstall.sh"/>
-
- <!-- Create installer -->
- <echo message="Build installer package..."/>
- <mkdir dir="${pkg.dir}/step1-package"/>
- <exec executable="/usr/bin/pkgbuild" failonerror="true">
- <arg line="--root ${pkg.dir}/darwinpkg --identifier "com.tanukisoftware.wrapper.${version}" --version "${version}" --install-location "/" --scripts ${pkg.dir}/darwin/scripts ${pkg.dir}/step1-package/${releasefile}.pkg"/>
- </exec>
- <echo message="Build installer product..."/>
- <mkdir dir="${pkg.dir}/step2-pkg-unsigned"/>
- <exec executable="/usr/bin/productbuild" failonerror="true">
- <arg line="--distribution ${pkg.dir}/darwin/Distribution.xml --resources ${pkg.dir}/darwin/Resources --package-path ${pkg.dir}/step1-package ${pkg.dir}/step2-pkg-unsigned/${releasefile}.pkg"/>
- </exec>
-
- <!-- Sign installer -->
- <echo message="Sign the installer..."/>
- <mkdir dir="${pkg.dir}/step3-pkg-signed"/>
- <exec executable="/usr/bin/productsign" failonerror="true">
- <arg line="--sign "${codesign.installer.identity}" ${pkg.dir}/step2-pkg-unsigned/${releasefile}.pkg ${pkg.dir}/step3-pkg-signed/${releasefile}.pkg"/>
- </exec>
-
- <!-- Check signature -->
- <echo message="Verify the installer..."/>
- <exec executable="/usr/sbin/pkgutil" failonerror="true">
- <arg line="--check-signature ${pkg.dir}/step3-pkg-signed/${releasefile}.pkg"/>
- </exec>
- </target>
- <target name="release-sign:notarize-package-macosx" depends="release-sign:package-macosx" if="code-sign-required-macosx">
- <fail unless="codesign.notarize.email">
- ERROR:
-**************************************************************************
-* The codesign installer identity is not set.
-* Please define "codesign.notarize.email" in ${user.home}/.ant.properties
-**************************************************************************
- </fail>
-
- <property name="sepline" value="--------------------------------------------------------------------------------"/>
-
- <!-- Notarize the installer -->
- <echo message="Notarizing the installer..."/>
- <property name="pkg.notarize" value="altool --notarize-app --primary-bundle-id "com.tanukisoftware.wrapper" --username "${codesign.notarize.email}" --password "@keychain:AC_PASSWORD" --file ${pkg.dir}/step3-pkg-signed/${releasefile}.pkg"/>
- <echo message="/usr/bin/xcrun ${pkg.notarize}"/>
- <exec executable="/usr/bin/xcrun" failonerror="true" outputproperty="pkg.notarize.out">
- <arg line="${pkg.notarize}"/>
- </exec>
- <echo message="${sepline}${line.separator}${pkg.notarize.out}${sepline}"/>
- <!-- Extract the RequestUUID -->
- <propertyregex property="notarization-request-uuid" input="${pkg.notarize.out}" regexp="(?:RequestUUID = )([\w\d-]*)" select="\1"/>
-
- <!-- Request notarization status -->
- <property name="pkg.notarizecheck" value="altool --notarization-info "${notarization-request-uuid}" --username "${codesign.notarize.email}" --password "@keychain:AC_PASSWORD""/>
- <retry retrydelay="15000" retrycount="20">
- <sequential>
- <echo message="Check on notarization status..."/>
- <local name="__pkg.notarizecheck.out"/>
- <local name="__pkg.notarizecheck.code"/>
- <local name="__pkg.notarizecheck.message"/>
-
- <exec executable="/usr/bin/xcrun" failonerror="true" outputproperty="__pkg.notarizecheck.out">
- <arg line="${pkg.notarizecheck}"/>
- </exec>
- <propertyregex property="__pkg.notarizecheck.code" input="${__pkg.notarizecheck.out}" regexp="(?:Status Code: )(.*)" select="\1"/>
- <propertyregex property="__pkg.notarizecheck.message" input="${__pkg.notarizecheck.out}" regexp="(?:Status Message: )(.*)" select="\1"/>
- <fail message="Notarazation still working...">
- <condition>
- <or>
- <not>
- <isset property="__pkg.notarizecheck.code"/>
- </not>
- <not>
- <isset property="__pkg.notarizecheck.message"/>
- </not>
- </or>
- </condition>
- </fail>
- <property name="pkg.notarizecheck.code" value="${__pkg.notarizecheck.code}"/>
- <property name="pkg.notarizecheck.out" value="${__pkg.notarizecheck.out}"/>
- </sequential>
- </retry>
-
- <!-- Did we succeed? -->
- <fail message="Notarization Status Code: ${pkg.notarizecheck.failed}${line.separator}${sepline}${line.separator}${pkg.notarizecheck.out}${sepline}">
- <condition>
- <not>
- <equals arg1="${pkg.notarizecheck.code}" arg2="0"/>
- </not>
- </condition>
- </fail>
- <echo message="Natarization complete:${line.separator}${sepline}${line.separator}${pkg.notarizecheck.out}${sepline}"/>
-
- <!-- Staple the result into the pkg -->
- <echo message="Stapling notarized package..."/>
- <property name="pkg.staple" value="stapler staple ${pkg.dir}/step3-pkg-signed/${releasefile}.pkg"/>
- <exec executable="/usr/bin/xcrun" failonerror="true">
- <arg line="${pkg.staple}"/>
- </exec>
-
- <echo message="Package signed, notarized and stapled."/>
-
- <copy file="${pkg.dir}/step3-pkg-signed/${releasefile}.pkg" todir="${dist.dir}" overwrite="true"/>
- </target>
- <target name="release-sign" depends="release-sign:notarize-package-macosx">
- </target>
-
<target name="release-unix:check-consistency" unless="is.macosx">
<exec dir="${build.dir}/${releasefile}/bin" executable="file" outputproperty="check-bin-result">
<arg line="${wrapper.bin.name}"/>
@@ -2368,30 +2150,5 @@
<ant antfile="build-tests.xml" target="total-clean" inheritall="false"/>
</target>
- <scriptdef language="javascript" name="propertyregex">
- <attribute name="property"/>
- <attribute name="input"/>
- <attribute name="regexp"/>
- <attribute name="select"/>
- <attribute name="default"/>
- <![CDATA[
- input = attributes.get("input");
- array = input.match( attributes.get("regexp") );
- if (array == null) {
- //project.setProperty("console", "here1");
- defaultValue = attributes.get("default");
- if (defaultValue != null) {
- project.setProperty(attributes.get("property"), defaultValue);
- }
- } else {
- //project.setProperty("console", "here2");
- select = attributes.get("select");
- if (select.startsWith("\\")) {
- select = select.substring(1);
- }
- project.setProperty(attributes.get("property"), array[select]);
- }
- ]]>
- </scriptdef>
</project>
Modified: trunk/wrapper/doc/revisions.txt
===================================================================
--- trunk/wrapper/doc/revisions.txt 2020-10-30 03:00:17 UTC (rev 2039)
+++ trunk/wrapper/doc/revisions.txt 2020-10-30 10:58:19 UTC (rev 2040)
@@ -26,9 +26,9 @@
* Sign the binaries in the macosx tar.gz distributions as well as in the
delta pack distributions.
* Add a new signed and notarized package distribution for macosx.
-* Remove support for Windows and Linux Itanium. The Itanium architecture is
- discontinued and no usage have been reported recently. Please contact us if
- there is a need for these platforms.
+* Stop providing new releases for Windows and Linux Itanium. The Itanium
+ architecture is discontinued and no usage have been reported recently. Please
+ contact us if there is a need for these platforms.
3.5.43
* Rename sh.script.in to App.sh.in in the src/bin directory.
Modified: trunk/wrapper/src/c/wrapperinfo.c.in
===================================================================
--- trunk/wrapper/src/c/wrapperinfo.c.in 2020-10-30 03:00:17 UTC (rev 2039)
+++ trunk/wrapper/src/c/wrapperinfo.c.in 2020-10-30 10:58:19 UTC (rev 2040)
@@ -30,7 +30,7 @@
TCHAR *wrapperBits = TEXT("@bits@");
TCHAR *wrapperArch = TEXT("@dist.arch@");
TCHAR *wrapperOS = TEXT("@dist.os@");
-TCHAR *wrapperReleaseDate = TEXT("20200306");
+TCHAR *wrapperReleaseDate = TEXT("20201102");
TCHAR *wrapperReleaseTime = TEXT("0000");
TCHAR *wrapperBuildDate = TEXT("@build.date@");
TCHAR *wrapperBuildTime = TEXT("@build.time@");
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <mor...@us...> - 2015-11-04 00:37:16
|
Revision: 1939
http://sourceforge.net/p/wrapper/code/1939
Author: mortenson
Date: 2015-11-04 00:37:14 +0000 (Wed, 04 Nov 2015)
Log Message:
-----------
Work on 3.5.28
Added Paths:
-----------
trunk/wrapper/src/java/org/tanukisoftware/wrapper/event/WrapperConsumableEvent.java
trunk/wrapper/src/java/org/tanukisoftware/wrapper/event/WrapperRemoteControlEvent.java
trunk/wrapper/src/java/org/tanukisoftware/wrapper/event/WrapperSecondInvocationEvent.java
Added: trunk/wrapper/src/java/org/tanukisoftware/wrapper/event/WrapperConsumableEvent.java
===================================================================
--- trunk/wrapper/src/java/org/tanukisoftware/wrapper/event/WrapperConsumableEvent.java (rev 0)
+++ trunk/wrapper/src/java/org/tanukisoftware/wrapper/event/WrapperConsumableEvent.java 2015-11-04 00:37:14 UTC (rev 1939)
@@ -0,0 +1,60 @@
+package org.tanukisoftware.wrapper.event;
+
+/*
+ * Copyright (c) 1999, 2015 Tanuki Software, Ltd.
+ * http://www.tanukisoftware.com
+ * All rights reserved.
+ *
+ * This software is the proprietary information of Tanuki Software.
+ * You shall use it only in accordance with the terms of the
+ * license agreement you entered into with Tanuki Software.
+ * http://wrapper.tanukisoftware.com/doc/english/licenseOverview.html
+ */
+
+/**
+ * WrapperConsumableEvent is used to keep trace whether
+ * the event has been handled or not.
+ */
+public abstract class WrapperConsumableEvent
+ extends WrapperEvent
+{
+ /** True if the event has been consumed. */
+ private boolean m_consumed;
+
+ /*---------------------------------------------------------------
+ * Constructors
+ *-------------------------------------------------------------*/
+ /**
+ * Creates a new WrapperConsumableEvent.
+ */
+ public WrapperConsumableEvent()
+ {
+ }
+
+ /*---------------------------------------------------------------
+ * WrapperConsumableEvent Methods
+ *-------------------------------------------------------------*/
+
+ /**
+ * Mark the event as consumed. This should be done if the event
+ * has been handled.
+ * <p>
+ * On Windows, some events are sent both to the JVM and Wrapper processes.
+ * Event if the CTRL-C event is ignored within the JVM, the Wrapper
+ * process may still initiate a shutdown.
+ */
+ public void consume()
+ {
+ m_consumed = true;
+ }
+
+ /**
+ * Returns true if the event has been consumed.
+ *
+ * @return True if the event has been consumed.
+ */
+ public boolean isConsumed()
+ {
+ return m_consumed;
+ }
+}
\ No newline at end of file
Property changes on: trunk/wrapper/src/java/org/tanukisoftware/wrapper/event/WrapperConsumableEvent.java
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/wrapper/src/java/org/tanukisoftware/wrapper/event/WrapperRemoteControlEvent.java
===================================================================
--- trunk/wrapper/src/java/org/tanukisoftware/wrapper/event/WrapperRemoteControlEvent.java (rev 0)
+++ trunk/wrapper/src/java/org/tanukisoftware/wrapper/event/WrapperRemoteControlEvent.java 2015-11-04 00:37:14 UTC (rev 1939)
@@ -0,0 +1,51 @@
+package org.tanukisoftware.wrapper.event;
+
+/*
+ * Copyright (c) 1999, 2015 Tanuki Software, Ltd.
+ * http://www.tanukisoftware.com
+ * All rights reserved.
+ *
+ * This software is the proprietary information of Tanuki Software.
+ * You shall use it only in accordance with the terms of the
+ * license agreement you entered into with Tanuki Software.
+ * http://wrapper.tanukisoftware.com/doc/english/licenseOverview.html
+ */
+
+/**
+ * WrapperRemoteControlEvent are fired when a signal is caught from
+ * outside the Wrapper (for example a signal coming from a pipe).
+ * Those events should be handled carefully as they may be originally
+ * triggered by unauthenticated sources.
+ */
+public abstract class WrapperRemoteControlEvent
+ extends WrapperConsumableEvent
+{
+ /*---------------------------------------------------------------
+ * Constructors
+ *-------------------------------------------------------------*/
+ /**
+ * Creates a new WrapperRemoteControlEvent.
+ */
+ public WrapperRemoteControlEvent()
+ {
+ }
+
+ /*---------------------------------------------------------------
+ * WrapperRemoteControlEvent Methods
+ *-------------------------------------------------------------*/
+ /**
+ * Returns a set of event flags for which the event should be fired.
+ * This value is compared with the mask supplied when when a
+ * WrapperEventListener is registered to decide which listeners should
+ * receive the event.
+ * <p>
+ * If subclassed, the return value of the super class should usually
+ * be ORed with any additional flags.
+ *
+ * @return a set of event flags.
+ */
+ public long getFlags()
+ {
+ return super.getFlags() | WrapperEventListener.EVENT_FLAG_REMOTE_CONTROL;
+ }
+}
\ No newline at end of file
Property changes on: trunk/wrapper/src/java/org/tanukisoftware/wrapper/event/WrapperRemoteControlEvent.java
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/wrapper/src/java/org/tanukisoftware/wrapper/event/WrapperSecondInvocationEvent.java
===================================================================
--- trunk/wrapper/src/java/org/tanukisoftware/wrapper/event/WrapperSecondInvocationEvent.java (rev 0)
+++ trunk/wrapper/src/java/org/tanukisoftware/wrapper/event/WrapperSecondInvocationEvent.java 2015-11-04 00:37:14 UTC (rev 1939)
@@ -0,0 +1,45 @@
+package org.tanukisoftware.wrapper.event;
+
+/*
+ * Copyright (c) 1999, 2015 Tanuki Software, Ltd.
+ * http://www.tanukisoftware.com
+ * All rights reserved.
+ *
+ * This software is the proprietary information of Tanuki Software.
+ * You shall use it only in accordance with the terms of the
+ * license agreement you entered into with Tanuki Software.
+ * http://wrapper.tanukisoftware.com/doc/english/licenseOverview.html
+ */
+
+/**
+ * WrapperSecondInvocationEvent is fired whenever a second
+ * instance of the Wrapper starts in single invocation mode.
+ * The property 'wrapper.single_invocation.notify' should also
+ * exlicitely set to true.
+ */
+public class WrapperSecondInvocationEvent
+ extends WrapperRemoteControlEvent
+{
+ /*---------------------------------------------------------------
+ * Constructors
+ *-------------------------------------------------------------*/
+ /**
+ * Creates a new WrapperSecondInvocationEvent.
+ */
+ public WrapperSecondInvocationEvent()
+ {
+ }
+
+ /*---------------------------------------------------------------
+ * WrapperSecondInvocationEvent Methods
+ *-------------------------------------------------------------*/
+ /**
+ * Returns a string representation of the event.
+ *
+ * @return A string representation of the event.
+ */
+ public String toString()
+ {
+ return "WrapperSecondInvocationEvent";
+ }
+}
\ No newline at end of file
Property changes on: trunk/wrapper/src/java/org/tanukisoftware/wrapper/event/WrapperSecondInvocationEvent.java
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <mor...@us...> - 2015-11-04 00:36:19
|
Revision: 1938
http://sourceforge.net/p/wrapper/code/1938
Author: mortenson
Date: 2015-11-04 00:36:16 +0000 (Wed, 04 Nov 2015)
Log Message:
-----------
Work on 3.5.28
Modified Paths:
--------------
trunk/wrapper/README_de.txt
trunk/wrapper/README_en.txt
trunk/wrapper/README_es.txt
trunk/wrapper/README_ja.txt
trunk/wrapper/build-tests.xml
trunk/wrapper/build.xml
trunk/wrapper/default.properties
trunk/wrapper/doc/revisions.txt
trunk/wrapper/src/bin/App.bat.in
trunk/wrapper/src/bin/AppCommand.bat.in
trunk/wrapper/src/bin/AppTemplate.bat.in
trunk/wrapper/src/bin/AppTemplatePassThrough.bat.in
trunk/wrapper/src/bin/InstallApp-NT.bat.in
trunk/wrapper/src/bin/PauseApp-NT.bat.in
trunk/wrapper/src/bin/QueryApp-NT.bat.in
trunk/wrapper/src/bin/ResumeApp-NT.bat.in
trunk/wrapper/src/bin/SetupApp.bat.in
trunk/wrapper/src/bin/StartApp-NT.bat.in
trunk/wrapper/src/bin/StopApp-NT.bat.in
trunk/wrapper/src/bin/UninstallApp-NT.bat.in
trunk/wrapper/src/bin/sh.script.in
trunk/wrapper/src/c/Makefile-windows-x86-32.nmake
trunk/wrapper/src/c/Wrapper.rc
trunk/wrapper/src/c/logger.c
trunk/wrapper/src/c/property.c
trunk/wrapper/src/c/property.h
trunk/wrapper/src/c/wrapper.c
trunk/wrapper/src/c/wrapper.h
trunk/wrapper/src/c/wrapper_unix.c
trunk/wrapper/src/c/wrapper_win.c
trunk/wrapper/src/c/wrapperinfo.c.in
trunk/wrapper/src/java/org/tanukisoftware/wrapper/WrapperManager.java
trunk/wrapper/src/java/org/tanukisoftware/wrapper/WrapperPropertyUtil.java
trunk/wrapper/src/java/org/tanukisoftware/wrapper/WrapperStartStopApp.java
trunk/wrapper/src/java/org/tanukisoftware/wrapper/event/WrapperControlEvent.java
trunk/wrapper/src/java/org/tanukisoftware/wrapper/event/WrapperEventListener.java
trunk/wrapper/src/java/org/tanukisoftware/wrapper/security/WrapperEventPermission.java
trunk/wrapper/src/java/org/tanukisoftware/wrapper/test/Main.java
Modified: trunk/wrapper/README_de.txt
===================================================================
--- trunk/wrapper/README_de.txt 2015-09-04 04:28:59 UTC (rev 1937)
+++ trunk/wrapper/README_de.txt 2015-11-04 00:36:16 UTC (rev 1938)
@@ -1,5 +1,5 @@
-----------------------------------------------------------------------------
-Java Service Wrapper Community Edition 3.5.27
+Java Service Wrapper Community Edition 3.5.28-a
Copyright (C) 1999-2015 Tanuki Software, Ltd. All Rights Reserved.
http://wrapper.tanukisoftware.com
-----------------------------------------------------------------------------
Modified: trunk/wrapper/README_en.txt
===================================================================
--- trunk/wrapper/README_en.txt 2015-09-04 04:28:59 UTC (rev 1937)
+++ trunk/wrapper/README_en.txt 2015-11-04 00:36:16 UTC (rev 1938)
@@ -1,5 +1,5 @@
-----------------------------------------------------------------------------
-Java Service Wrapper Community Edition 3.5.27
+Java Service Wrapper Community Edition 3.5.28-a
Copyright (C) 1999-2015 Tanuki Software, Ltd. All Rights Reserved.
http://wrapper.tanukisoftware.com
-----------------------------------------------------------------------------
Modified: trunk/wrapper/README_es.txt
===================================================================
--- trunk/wrapper/README_es.txt 2015-09-04 04:28:59 UTC (rev 1937)
+++ trunk/wrapper/README_es.txt 2015-11-04 00:36:16 UTC (rev 1938)
@@ -1,5 +1,5 @@
-----------------------------------------------------------------------------
-Java Service Wrapper Community Edition 3.5.27
+Java Service Wrapper Community Edition 3.5.28-a
Copyright (C) 1999-2015 Tanuki Software, Ltd. All Rights Reserved.
http://wrapper.tanukisoftware.com
-----------------------------------------------------------------------------
Modified: trunk/wrapper/README_ja.txt
===================================================================
--- trunk/wrapper/README_ja.txt 2015-09-04 04:28:59 UTC (rev 1937)
+++ trunk/wrapper/README_ja.txt 2015-11-04 00:36:16 UTC (rev 1938)
@@ -1,5 +1,5 @@
-----------------------------------------------------------------------------
-Java Service Wrapper Community Edition 3.5.27
+Java Service Wrapper Community Edition 3.5.28-a
Copyright (C) 1999-2015 Tanuki Software, Ltd. All Rights Reserved.
http://wrapper.tanukisoftware.com
-----------------------------------------------------------------------------
Modified: trunk/wrapper/build-tests.xml
===================================================================
--- trunk/wrapper/build-tests.xml 2015-09-04 04:28:59 UTC (rev 1937)
+++ trunk/wrapper/build-tests.xml 2015-11-04 00:36:16 UTC (rev 1938)
@@ -21,10 +21,11 @@
</condition>
<!-- Java vendor -->
- <condition property="is.JavaSunOracle">
+ <condition property="is.JavaSunOracleApple">
<or>
<equals arg1="${java.vendor}" arg2="Sun Microsystems Inc."/>
<equals arg1="${java.vendor}" arg2="Oracle Corporation"/>
+ <equals arg1="${java.vendor}" arg2="Apple Inc."/>
</or>
</condition>
@@ -32,7 +33,7 @@
<condition property="java-includes-jsEngine">
<and>
<isfalse value="${is.java 1.5 or lower}"/>
- <istrue value="${is.JavaSunOracle}"/>
+ <istrue value="${is.JavaSunOracleApple}"/>
</and>
</condition>
Modified: trunk/wrapper/build.xml
===================================================================
--- trunk/wrapper/build.xml 2015-09-04 04:28:59 UTC (rev 1937)
+++ trunk/wrapper/build.xml 2015-11-04 00:36:16 UTC (rev 1938)
@@ -1199,7 +1199,6 @@
<include name="lib/wrapper.jar" />
<include name="lib/wrappertest.jar" />
<include name="lib/wrapperdemo.jar" />
- <include name="jdoc/**" />
<include name="doc/**" />
<include name="src/bin/**" />
<include name="src/conf/**" />
@@ -1281,25 +1280,7 @@
</copy>
<fixcrlf srcdir="${intermdir}" encoding="UTF-8" outputencoding="UTF-8" includes="README_*.txt" eol="lf"/>
- <!-- For tar files, the javadocs are stored in a jdoc.tar file to avoid problems with
- long file names and some tar implementations. -->
- <tar tarfile="${intermdir}/jdoc.tar">
- <tarfileset dir="${intermdir}">
- <include name="jdoc/**"/>
- </tarfileset>
- </tar>
- <gzip zipfile="${intermdir}/jdoc.tar.gz" src="${intermdir}/jdoc.tar" />
- <delete file="${intermdir}/jdoc.tar"/>
- <delete dir="${intermdir}/jdoc"/>
- <!-- Create a dummy jdoc dir which directs the user to expand the actual javadocs. -->
- <mkdir dir="${intermdir}/jdoc"/>
- <echo file="${intermdir}/jdoc/index.html"><html><body>
-The javadocs for this application are found in $WRAPPER_HOME/jdoc.tar.gz. Please extract this
-archive into the $WRAPPER_HOME directory.<p>The javadocs could not be included directly in the
-original tar distribution due to a lack of support for long path names in some tar implementations.
-</body></html></echo>
- <fixcrlf srcdir="${intermdir}/jdoc" eol="lf" />
-
+ <!-- Create the pre-release package -->
<tar tarfile="${build.dir}/${intermfile}.tar">
<tarfileset dir="${build.dir}" mode="755">
<include name="${intermfile}/build32.sh"/>
@@ -1334,7 +1315,6 @@
<property name="intermdir" value="${build.dir}/${intermfile}"/>
<available property="pre-release.exists" value="true" file="${build.dir}/${intermmarker}"/>
- <available property="pre-release.jdocs" value="true" file="jdoc.tar.gz"/>
</target>
<target name="pre-release:check" depends="pre-release:check-init" unless="pre-release.exists">
<echo/>
@@ -1345,11 +1325,6 @@
<echo>**********************************************************</echo>
<fail message="pre-release files not found."/>
</target>
- <target name="pre-release:restore-jdocs" depends="pre-release:check-init" if="pre-release.jdocs">
- <delete dir="jdoc"/>
- <gunzip src="jdoc.tar.gz" dest="jdoc.tar"/>
- <untar src="jdoc.tar" dest="${basedir}"/>
- </target>
<target name="code-sign-check" if="is.windows">
<fail unless="wrapper.cert.password">
@@ -1392,7 +1367,7 @@
<!-- =================================================================== -->
<!-- Release (Windows) -->
<!-- =================================================================== -->
- <target name="release-windows" depends="code-sign-check, pre-release:check, pre-release:restore-jdocs, compile-c" if="is.windows">
+ <target name="release-windows" depends="code-sign-check, pre-release:check, compile-c" if="is.windows">
<property name="releasedir" value="${build.dir}/${releasefile}"/>
<delete dir="${releasedir}"/>
@@ -1416,7 +1391,6 @@
<include name="logs" />
<include name="src/bin/*.bat.in" />
<include name="src/conf/**" />
- <include name="jdoc/**" />
<include name="doc/**" />
<include name="conf/demoapp.conf" />
<exclude name="**/CVS/*" />
@@ -1528,7 +1502,7 @@
<!-- =================================================================== -->
<!-- Release (Unix) -->
<!-- =================================================================== -->
- <target name="release-unix" depends="pre-release:check, pre-release:restore-jdocs, compile-c" if="is.unix">
+ <target name="release-unix" depends="pre-release:check, compile-c" if="is.unix">
<property name="releasedir" value="${build.dir}/${releasefile}"/>
<delete dir="${releasedir}"/>
<mkdir dir="${releasedir}"/>
@@ -1551,7 +1525,6 @@
<include name="lib/${wrapper.lib.name}" />
<include name="logs" />
<include name="src/conf/**" />
- <include name="jdoc/**" />
<include name="doc/**" />
<include name="src/bin/*.script.in" />
<include name="conf/demoapp.conf" />
@@ -1611,25 +1584,6 @@
</copy>
<fixcrlf srcdir="${releasedir}" encoding="UTF-8" outputencoding="UTF-8" includes="README_*.txt" eol="lf"/>
-
- <!-- For tar files, the javadocs are stored in a jdoc.tar file to avoid problems with
- long file names and some tar implementations. -->
- <tar tarfile="${releasedir}/jdoc.tar">
- <tarfileset dir="${releasedir}">
- <include name="jdoc/**"/>
- </tarfileset>
- </tar>
- <gzip zipfile="${releasedir}/jdoc.tar.gz" src="${releasedir}/jdoc.tar" />
- <delete file="${releasedir}/jdoc.tar"/>
- <delete dir="${releasedir}/jdoc"/>
- <!-- Create a dummy jdoc dir which directs the user to expand the actual javadocs. -->
- <mkdir dir="${releasedir}/jdoc"/>
- <echo file="${releasedir}/jdoc/index.html"><html><body>
-The javadocs for this application are found in $WRAPPER_HOME/jdoc.tar.gz. Please extract this
-archive into the $WRAPPER_HOME directory.<p>The javadocs could not be included directly in the
-original tar distribution due to a lack of support for long path names in some tar implementations.
-</body></html></echo>
- <fixcrlf srcdir="${releasedir}/jdoc" eol="lf" />
<antcall target="release-unix:strip-symbols"/>
@@ -1876,7 +1830,7 @@
<release-delta-extract-platform osname="linux" osarch="armel" bits="32" wrapperbinhead="wrapper" wrapperbintail="" wrapperlibhead="libwrapper" wrapperlibtail=".so" archivetype="tar.gz"/>
<release-delta-extract-platform osname="linux" osarch="armhf" bits="32" wrapperbinhead="wrapper" wrapperbintail="" wrapperlibhead="libwrapper" wrapperlibtail=".so" archivetype="tar.gz"/>
</target>
- <target name="release-delta" depends="pre-release:check, release-delta:init, pre-release:restore-jdocs, release-delta:extract-platforms">
+ <target name="release-delta" depends="pre-release:check, release-delta:init, release-delta:extract-platforms">
<property name="deltareleasefile" value="wrapper-delta-pack-${version}"/>
<property name="releasedir" value="${build.dir}/${deltareleasefile}"/>
<delete dir="${releasedir}"/>
@@ -1906,7 +1860,6 @@
<include name="src/bin/*.bat.in"/>
<include name="src/bin/sh.script.in"/>
<include name="src/conf/**"/>
- <include name="jdoc/**"/>
<include name="doc/**"/>
<exclude name="**/CVS/*"/>
</fileset>
@@ -2010,25 +1963,6 @@
</copy>
<fixcrlf srcdir="${releasedir}" encoding="UTF-8" outputencoding="UTF-8" includes="README_*.txt" eol="lf"/>
- <!-- For tar files, the javadocs are stored in a jdoc.tar file to avoid problems with
- long file names and some tar implementations. -->
- <tar tarfile="${releasedir}/jdoc.tar">
- <tarfileset dir="${releasedir}">
- <include name="jdoc/**"/>
- </tarfileset>
- </tar>
- <gzip zipfile="${releasedir}/jdoc.tar.gz" src="${releasedir}/jdoc.tar" />
- <delete file="${releasedir}/jdoc.tar"/>
- <delete dir="${releasedir}/jdoc"/>
- <!-- Create a dummy jdoc dir which directs the user to expand the actual javadocs. -->
- <mkdir dir="${releasedir}/jdoc"/>
- <echo file="${releasedir}/jdoc/index.html"><html><body>
-The javadocs for this application are found in $WRAPPER_HOME/jdoc.tar.gz. Please extract this
-archive into the $WRAPPER_HOME directory.<p>The javadocs could not be included directly in the
-original tar distribution due to a lack of support for long path names in some tar implementations.
-</body></html></echo>
- <fixcrlf srcdir="${releasedir}/jdoc" eol="lf" />
-
<tar tarfile="${build.dir}/${deltareleasefile}.tar">
<tarfileset dir="${build.dir}" mode="755">
<include name="${deltareleasefile}/bin/wrapper-*"/>
Modified: trunk/wrapper/default.properties
===================================================================
--- trunk/wrapper/default.properties 2015-09-04 04:28:59 UTC (rev 1937)
+++ trunk/wrapper/default.properties 2015-11-04 00:36:16 UTC (rev 1938)
@@ -8,9 +8,9 @@
name = wrapper
Name = Wrapper
long.name = Java Service Wrapper Community ${Version}
-Version = 3.5.27
+Version = 3.5.28-a
version = ${Version}
-version.root = 3.5.27
+version.root = 3.5.28-a
year = 2015
# NOTE - The version property gets corrupted by the use of Xalan
# so Version is used instead.
Modified: trunk/wrapper/doc/revisions.txt
===================================================================
--- trunk/wrapper/doc/revisions.txt 2015-09-04 04:28:59 UTC (rev 1937)
+++ trunk/wrapper/doc/revisions.txt 2015-11-04 00:36:16 UTC (rev 1938)
@@ -1,6 +1,62 @@
Java Service Wrapper Revision History.
--------------------------------------
-
+3.5.28
+* Fix a memory leak on CentOS and Amazon Linux AMI. It happened when activating
+ log rolling in size mode. This memory leak comes from an issue in the GNU C
+ Library (glibc) which was fixed on version 2.21. However, a workaround was
+ added so that the Wrapper can run without problem on any version of glibc.
+* Fix a problem on z/OS platforms caused by the ps command truncating to 78
+ characters the command names in the processes list. If the full path to the
+ Wrapper was longer than this limit, the Wrapper script�$could not assert the
+ process was indeed the wrapper. It thus reported a stale PID file when
+ starting the application as a daemon process and later failed to stop it
+ because it could not find that PID file.
+* Fix the console flicker bug that was still happening when launching the
+ Wrapper from a Windows shortcut.
+* Add the possibility to configure cpu affinity for AIX, FreeBSD, HP-UX and
+ Solaris. For HP-UX and Solaris it is only possible to bind one CPU per
+ process.
+* Fix a problem where boolean configuration properties were not assigned their
+ default values if a wrong value was set. The Wrapper always resolved unknown
+ value to FALSE even though the default value should be TRUE.
+* Add a new event 'WrapperSecondInvocationEvent' that can be consumed in the
+ Java Application on Windows. The event will be fired whenever a second
+ instance of the Wrapper tries to start whereas single invocation mode has
+ been specified. This enables you to execute custom tasks like showing a
+ message or bringing a window of your application to the front.
+* Add a new property to be used in single invocation mode. It allows to
+ activate the foreground window of the running Java Application whenever the
+ user tries to launch a second instance. If no window can be found, an attempt
+ will be made to give the focus to a window of the Wrapper on which the
+ application is running. This feature can be used in combination with the
+ event handling to activate any window that was brought to the top.
+* Fix bug when RUN_AS_USER was ignored when running the Wrapper as a service
+ controlled by systemd. The service was always running as root.
+* Add a new bit flag (0x8000) to indicate that an error occurred when querying
+ the status of a Windows service. If the query is silent (-qs option),
+ wrapperw.exe will no longer display error messages in the dialogbox, but
+ these errors will still be logged in the log file.
+* Add new system property to WrapperStartStopApp (integration method #2) to
+ handle passthrough parameters. These parameters can be passed to the start
+ or stop method (or both) of your Java application. By default the
+ passthrough parameters are ignored (see the javadocs of the
+ WrapperStartStopApp class for details).
+* Fix bug on AIX when running the Wrapper as a service would not use the System
+ Resource Controller (SRC) and ignore RUN_AS_USER value.
+* On Windows, the Wrapper will now check that the code page of the console
+ supports the specified language. If it doesn't it will fall back to English.
+* Add two new values for the wrapper.lang property: 'desktop' and 'system'.
+ These values are used on Windows and ignored on other systems. The first,
+ which is the default, specifies that the language of the Wrapper will be
+ resolved according to the UI language. The second will cause to use the
+ system language for Non-Unicode programs. Before the Wrapper used the
+ language identifier of the Region Format settings.
+* Fixed a bug where messages in Japanese coming from the JVM were badly
+ encoded. It happened on Windows when the language for non-unicode programs
+ was not set to Japanese.
+* Improve the error message if there are any problems initializing the backend
+ pipe or socket.
+
3.5.27
* Fix a misleading error message when there is a problem processing a system
error message on Windows.
@@ -78,8 +134,7 @@
(Solaris, MacOS, etc.) show an error message because '-o' is not a valid
parameter. Now we hide this error message to avoid confusion and we can
guess that Cygwin is not running.
-* Add the ability to control running the service with systemd using the script
- file.
+* Add the ability to control the service with systemd using the script file.
* On Mac OS X, fix a typo, add another alternative way to find Java to set
the JAVA_HOME environment variable, and use the full path to execute sysctl
in case it's not in the path. Thanks to Dannes Wessels for pointing this
Modified: trunk/wrapper/src/bin/App.bat.in
===================================================================
--- trunk/wrapper/src/bin/App.bat.in 2015-09-04 04:28:59 UTC (rev 1937)
+++ trunk/wrapper/src/bin/App.bat.in 2015-11-04 00:36:16 UTC (rev 1938)
@@ -16,7 +16,7 @@
rem -----------------------------------------------------------------------------
rem These settings can be modified to fit the needs of your application
-rem Optimized for use with version 3.5.27 of the Wrapper.
+rem Optimized for use with version 3.5.28-a of the Wrapper.
rem The base name for the Wrapper binary.
set _WRAPPER_BASE=wrapper
Modified: trunk/wrapper/src/bin/AppCommand.bat.in
===================================================================
--- trunk/wrapper/src/bin/AppCommand.bat.in 2015-09-04 04:28:59 UTC (rev 1937)
+++ trunk/wrapper/src/bin/AppCommand.bat.in 2015-11-04 00:36:16 UTC (rev 1938)
@@ -16,7 +16,7 @@
rem -----------------------------------------------------------------------------
rem These settings can be modified to fit the needs of your application
-rem Optimized for use with version 3.5.27 of the Wrapper.
+rem Optimized for use with version 3.5.28-a of the Wrapper.
rem The base name for the Wrapper binary.
set _WRAPPER_BASE=wrapper
Modified: trunk/wrapper/src/bin/AppTemplate.bat.in
===================================================================
--- trunk/wrapper/src/bin/AppTemplate.bat.in 2015-09-04 04:28:59 UTC (rev 1937)
+++ trunk/wrapper/src/bin/AppTemplate.bat.in 2015-11-04 00:36:16 UTC (rev 1938)
@@ -16,7 +16,7 @@
rem -----------------------------------------------------------------------------
rem These settings can be modified to fit the needs of your application
-rem Optimized for use with version 3.5.27 of the Wrapper.
+rem Optimized for use with version 3.5.28-a of the Wrapper.
rem The base name for the Wrapper binary.
set _WRAPPER_BASE=wrapper
Modified: trunk/wrapper/src/bin/AppTemplatePassThrough.bat.in
===================================================================
--- trunk/wrapper/src/bin/AppTemplatePassThrough.bat.in 2015-09-04 04:28:59 UTC (rev 1937)
+++ trunk/wrapper/src/bin/AppTemplatePassThrough.bat.in 2015-11-04 00:36:16 UTC (rev 1938)
@@ -16,7 +16,7 @@
rem -----------------------------------------------------------------------------
rem These settings can be modified to fit the needs of your application
-rem Optimized for use with version 3.5.27 of the Wrapper.
+rem Optimized for use with version 3.5.28-a of the Wrapper.
rem The base name for the Wrapper binary.
set _WRAPPER_BASE=wrapper
Modified: trunk/wrapper/src/bin/InstallApp-NT.bat.in
===================================================================
--- trunk/wrapper/src/bin/InstallApp-NT.bat.in 2015-09-04 04:28:59 UTC (rev 1937)
+++ trunk/wrapper/src/bin/InstallApp-NT.bat.in 2015-11-04 00:36:16 UTC (rev 1938)
@@ -16,7 +16,7 @@
rem -----------------------------------------------------------------------------
rem These settings can be modified to fit the needs of your application
-rem Optimized for use with version 3.5.27 of the Wrapper.
+rem Optimized for use with version 3.5.28-a of the Wrapper.
rem The base name for the Wrapper binary.
set _WRAPPER_BASE=wrapper
Modified: trunk/wrapper/src/bin/PauseApp-NT.bat.in
===================================================================
--- trunk/wrapper/src/bin/PauseApp-NT.bat.in 2015-09-04 04:28:59 UTC (rev 1937)
+++ trunk/wrapper/src/bin/PauseApp-NT.bat.in 2015-11-04 00:36:16 UTC (rev 1938)
@@ -16,7 +16,7 @@
rem -----------------------------------------------------------------------------
rem These settings can be modified to fit the needs of your application
-rem Optimized for use with version 3.5.27 of the Wrapper.
+rem Optimized for use with version 3.5.28-a of the Wrapper.
rem The base name for the Wrapper binary.
set _WRAPPER_BASE=wrapper
Modified: trunk/wrapper/src/bin/QueryApp-NT.bat.in
===================================================================
--- trunk/wrapper/src/bin/QueryApp-NT.bat.in 2015-09-04 04:28:59 UTC (rev 1937)
+++ trunk/wrapper/src/bin/QueryApp-NT.bat.in 2015-11-04 00:36:16 UTC (rev 1938)
@@ -16,7 +16,7 @@
rem -----------------------------------------------------------------------------
rem These settings can be modified to fit the needs of your application
-rem Optimized for use with version 3.5.27 of the Wrapper.
+rem Optimized for use with version 3.5.28-a of the Wrapper.
rem The base name for the Wrapper binary.
set _WRAPPER_BASE=wrapper
Modified: trunk/wrapper/src/bin/ResumeApp-NT.bat.in
===================================================================
--- trunk/wrapper/src/bin/ResumeApp-NT.bat.in 2015-09-04 04:28:59 UTC (rev 1937)
+++ trunk/wrapper/src/bin/ResumeApp-NT.bat.in 2015-11-04 00:36:16 UTC (rev 1938)
@@ -16,7 +16,7 @@
rem -----------------------------------------------------------------------------
rem These settings can be modified to fit the needs of your application
-rem Optimized for use with version 3.5.27 of the Wrapper.
+rem Optimized for use with version 3.5.28-a of the Wrapper.
rem The base name for the Wrapper binary.
set _WRAPPER_BASE=wrapper
Modified: trunk/wrapper/src/bin/SetupApp.bat.in
===================================================================
--- trunk/wrapper/src/bin/SetupApp.bat.in 2015-09-04 04:28:59 UTC (rev 1937)
+++ trunk/wrapper/src/bin/SetupApp.bat.in 2015-11-04 00:36:16 UTC (rev 1938)
@@ -16,7 +16,7 @@
rem -----------------------------------------------------------------------------
rem These settings can be modified to fit the needs of your application
-rem Optimized for use with version 3.5.27 of the Wrapper.
+rem Optimized for use with version 3.5.28-a of the Wrapper.
rem The base name for the Wrapper binary.
set _WRAPPER_BASE=wrapper
Modified: trunk/wrapper/src/bin/StartApp-NT.bat.in
===================================================================
--- trunk/wrapper/src/bin/StartApp-NT.bat.in 2015-09-04 04:28:59 UTC (rev 1937)
+++ trunk/wrapper/src/bin/StartApp-NT.bat.in 2015-11-04 00:36:16 UTC (rev 1938)
@@ -16,7 +16,7 @@
rem -----------------------------------------------------------------------------
rem These settings can be modified to fit the needs of your application
-rem Optimized for use with version 3.5.27 of the Wrapper.
+rem Optimized for use with version 3.5.28-a of the Wrapper.
rem The base name for the Wrapper binary.
set _WRAPPER_BASE=wrapper
Modified: trunk/wrapper/src/bin/StopApp-NT.bat.in
===================================================================
--- trunk/wrapper/src/bin/StopApp-NT.bat.in 2015-09-04 04:28:59 UTC (rev 1937)
+++ trunk/wrapper/src/bin/StopApp-NT.bat.in 2015-11-04 00:36:16 UTC (rev 1938)
@@ -16,7 +16,7 @@
rem -----------------------------------------------------------------------------
rem These settings can be modified to fit the needs of your application
-rem Optimized for use with version 3.5.27 of the Wrapper.
+rem Optimized for use with version 3.5.28-a of the Wrapper.
rem The base name for the Wrapper binary.
set _WRAPPER_BASE=wrapper
Modified: trunk/wrapper/src/bin/UninstallApp-NT.bat.in
===================================================================
--- trunk/wrapper/src/bin/UninstallApp-NT.bat.in 2015-09-04 04:28:59 UTC (rev 1937)
+++ trunk/wrapper/src/bin/UninstallApp-NT.bat.in 2015-11-04 00:36:16 UTC (rev 1938)
@@ -16,7 +16,7 @@
rem -----------------------------------------------------------------------------
rem These settings can be modified to fit the needs of your application
-rem Optimized for use with version 3.5.27 of the Wrapper.
+rem Optimized for use with version 3.5.28-a of the Wrapper.
rem The base name for the Wrapper binary.
set _WRAPPER_BASE=wrapper
Modified: trunk/wrapper/src/bin/sh.script.in
===================================================================
--- trunk/wrapper/src/bin/sh.script.in 2015-09-04 04:28:59 UTC (rev 1937)
+++ trunk/wrapper/src/bin/sh.script.in 2015-11-04 00:36:16 UTC (rev 1938)
@@ -16,7 +16,7 @@
#-----------------------------------------------------------------------------
# These settings can be modified to fit the needs of your application
-# Optimized for use with version 3.5.27 of the Wrapper.
+# Optimized for use with version 3.5.28-a of the Wrapper.
# IMPORTANT - Please always stop and uninstall an application before making
# any changes to this file. Failure to do so could remove the
@@ -125,6 +125,11 @@
# the '-s' option.
#SU_OPTS="-s /bin/bash"
+# Set the full path to the 'id' command.
+# For example:
+# ID_BIN=/usr/bin/id
+ID_BIN=id
+
# By default we show a detailed usage block. Uncomment to show brief usage.
#BRIEF_USAGE=true
@@ -494,8 +499,10 @@
if [ "$ECHOTEST" = "x" ]
then
ECHOOPT="-n "
+ ECHOOPTC=""
else
ECHOOPT=""
+ ECHOOPTC="\c"
fi
@@ -876,6 +883,14 @@
'hpux')
pidtest=`$PS_BIN -p $pid -x -o args | grep -F "$WRAPPER_CMD" | tail -1`
;;
+ 'zos')
+ TRUNCATED_CMD=`$PS_BIN -p $pid -o args | tail -1`
+ COUNT=`echo $TRUNCATED_CMD | wc -m`
+ COUNT=`echo ${COUNT}`
+ COUNT=`expr $COUNT - 1`
+ TRUNCATED_CMD=`echo $WRAPPER_CMD | cut -c1-$COUNT`
+ pidtest=`$PS_BIN -p $pid -o args | grep -F "$TRUNCATED_CMD" | tail -1`
+ ;;
*)
pidtest=`$PS_BIN -p $pid -o args | grep -F "$WRAPPER_CMD" | tail -1`
;;
@@ -1001,7 +1016,7 @@
prepAdditionalParams "$@"
# The string passed to eval must handles spaces in paths correctly.
- COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" wrapper.syslog.ident=\"$APP_NAME\" wrapper.pidfile=\"$PIDFILE\" wrapper.daemonize=TRUE $APPNAMEPROP $ANCHORPROP $IGNOREPROP $STATUSPROP $COMMANDPROP $LOCKPROP wrapper.script.version=3.5.27 $ADDITIONAL_PARA"
+ COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" wrapper.syslog.ident=\"$APP_NAME\" wrapper.pidfile=\"$PIDFILE\" wrapper.daemonize=TRUE $APPNAMEPROP $ANCHORPROP $IGNOREPROP $STATUSPROP $COMMANDPROP $LOCKPROP wrapper.script.version=3.5.28-a $ADDITIONAL_PARA"
eval $COMMAND_LINE
else
eval echo `gettext '$APP_LONG_NAME is already running.'`
@@ -1024,7 +1039,7 @@
prepAdditionalParams "$@"
# The string passed to eval must handles spaces in paths correctly.
- COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" wrapper.syslog.ident=\"$APP_NAME\" wrapper.pidfile=\"$PIDFILE\" $APPNAMEPROP $ANCHORPROP $STATUSPROP $COMMANDPROP $LOCKPROP wrapper.script.version=3.5.27 $ADDITIONAL_PARA"
+ COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" wrapper.syslog.ident=\"$APP_NAME\" wrapper.pidfile=\"$PIDFILE\" $APPNAMEPROP $ANCHORPROP $STATUSPROP $COMMANDPROP $LOCKPROP wrapper.script.version=3.5.28-a $ADDITIONAL_PARA"
eval $COMMAND_LINE
else
eval echo `gettext '$APP_LONG_NAME is already running.'`
@@ -1034,12 +1049,12 @@
waitforjavastartup() {
getstatus
- eval echo $ECHOOPT `gettext 'Waiting for $APP_LONG_NAME...'`
+ eval echo $ECHOOPT `gettext 'Waiting for $APP_LONG_NAME...$ECHOOPTC'`
# Wait until the timeout or we have something besides Unknown.
counter=15
while [ "$JAVASTATUS" = "Unknown" -a $counter -gt 0 -a -n "$JAVASTATUS" ] ; do
- echo $ECHOOPT"."
+ echo $ECHOOPT".$ECHOOPTC"
sleep 1
getstatus
counter=`expr $counter - 1`
@@ -1051,14 +1066,12 @@
counter=120
fi
while [ "$JAVASTATUS" != "STARTED" -a "$JAVASTATUS" != "Unknown" -a $counter -gt 0 -a -n "$JAVASTATUS" ] ; do
- echo $ECHOOPT"."
+ echo $ECHOOPT".$ECHOOPTC"
sleep 1
getstatus
counter=`expr $counter - 1`
done
- if [ "X$ECHOOPT" != "X" ] ; then
- echo ""
- fi
+ echo ""
}
startwait() {
@@ -1073,7 +1086,7 @@
while [ $i -lt $WAIT_AFTER_STARTUP ]
do
sleep 1
- echo $ECHOOPT"."
+ echo $ECHOOPT".$ECHOOPTC"
i=`expr $i + 1`
done
if [ $WAIT_AFTER_STARTUP -gt 0 -o $WAIT_FOR_STARTED_STATUS = true ]
@@ -1230,6 +1243,9 @@
echo "Type=forking" >> "${SYSTEMD_SERVICE_FILE}"
echo "ExecStart=${REALPATH} start sysd" >> "${SYSTEMD_SERVICE_FILE}"
echo "ExecStop=${REALPATH} stop sysd" >> "${SYSTEMD_SERVICE_FILE}"
+ if [ "X${RUN_AS_USER}" != "X" ] ; then
+ echo "User=${RUN_AS_USER}" >> "${SYSTEMD_SERVICE_FILE}"
+ fi
echo "" >> "${SYSTEMD_SERVICE_FILE}"
echo "[Install]" >> "${SYSTEMD_SERVICE_FILE}"
echo "WantedBy=multi-user.target" >> "${SYSTEMD_SERVICE_FILE}"
@@ -1260,7 +1276,7 @@
systemdStop() {
systemctl stop $APP_NAME
if [ $? -ne 0 ] ; then
- eval echo `gettext 'Failed to stop $APP_NAME'`
+ eval echo `gettext 'Failed to stop service $APP_NAME'`
exit 1
fi
}
@@ -1268,7 +1284,7 @@
systemdRestart() {
systemctl restart $APP_NAME
if [ $? -ne 0 ] ; then
- eval echo `gettext 'Failed to restart $APP_NAME'`
+ eval echo `gettext 'Failed to restart service $APP_NAME'`
exit 1
fi
@@ -1283,6 +1299,41 @@
systemctl daemon-reload
}
+srcInstall() {
+ if [ "X$RUN_AS_USER" = "X" ] ; then
+ USERID="0"
+ else
+ USERID=`$ID_BIN -u "$RUN_AS_USER"`
+ if [ $? -ne 0 ] ; then
+ eval echo `gettext 'Failed to get user id for $RUN_AS_USER'`
+ exit 1
+ fi
+ fi
+ /usr/bin/mkssys -s "$APP_NAME" -p "$REALPATH" -a "launchdinternal" -u "$USERID" -f 9 -n 15 -S
+ /usr/sbin/mkitab "$APP_NAME":2:once:"/usr/bin/startsrc -s \"${APP_NAME}\" >/dev/console 2>&1"
+}
+
+srcStart() {
+ startsrc -s "${APP_NAME}"
+ if [ $? -ne 0 ] ; then
+ eval echo `gettext 'Failed to start service $APP_NAME'`
+ exit 1
+ fi
+}
+
+srcStop() {
+ stopsrc -s "${APP_NAME}"
+ if [ $? -ne 0 ] ; then
+ eval echo `gettext 'Failed to stop service $APP_NAME'`
+ exit 1
+ fi
+}
+
+srcRestart() {
+ srcStop
+ srcStart
+}
+
start() {
eval echo `gettext 'Starting $APP_LONG_NAME...'`
getpid
@@ -1291,7 +1342,7 @@
prepAdditionalParams "$@"
# The string passed to eval must handles spaces in paths correctly.
- COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" wrapper.syslog.ident=\"$APP_NAME\" wrapper.pidfile=\"$PIDFILE\" wrapper.daemonize=TRUE $APPNAMEPROP $ANCHORPROP $IGNOREPROP $STATUSPROP $COMMANDPROP $LOCKPROP wrapper.script.version=3.5.27 $ADDITIONAL_PARA"
+ COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" wrapper.syslog.ident=\"$APP_NAME\" wrapper.pidfile=\"$PIDFILE\" wrapper.daemonize=TRUE $APPNAMEPROP $ANCHORPROP $IGNOREPROP $STATUSPROP $COMMANDPROP $LOCKPROP wrapper.script.version=3.5.28-a $ADDITIONAL_PARA"
eval $COMMAND_LINE
else
eval echo `gettext '$APP_LONG_NAME is already running.'`
@@ -1537,8 +1588,7 @@
eval echo `gettext ' Removing unexpected file before proceeding: $i'`
rm -f $i
done
- /usr/bin/mkssys -s "$APP_NAME" -p "$REALPATH" -a "launchdinternal" -u 0 -f 9 -n 15 -S
- /usr/sbin/mkitab "$APP_NAME":2:once:"/usr/bin/startsrc -s \"${APP_NAME}\" >/dev/console 2>&1"
+ srcInstall
fi
elif [ "$DIST_OS" = "freebsd" ] ; then
eval echo `gettext 'Detected FreeBSD:'`
@@ -1923,6 +1973,8 @@
upstartstart
elif [ "$DIST_OS" = "linux" -a -n "$USE_SYSTEMD" -a -z "$SYSD" ] ; then
systemdStart
+ elif [ "$DIST_OS" = "aix" -a -n "`/usr/bin/lssrc -S -s $APP_NAME`" ] ; then
+ srcStart
else
if [ -n "$SYSD" ] ; then
shift
@@ -1943,6 +1995,8 @@
upstartStop
elif [ "$DIST_OS" = "linux" -a -n "$USE_SYSTEMD" -a -z "$SYSD" ] ; then
systemdStop
+ elif [ "$DIST_OS" = "aix" -a -n "`/usr/bin/lssrc -S -s $APP_NAME`" ] ; then
+ srcStop
else
checkUser "" "$COMMAND"
stopit "0"
@@ -1960,6 +2014,8 @@
upstartRestart
elif [ "$DIST_OS" = "linux" -a -n "$USE_SYSTEMD" -a -z "$SYSD" ] ; then
systemdRestart
+ elif [ "$DIST_OS" = "aix" -a -n "`/usr/bin/lssrc -S -s $APP_NAME`" ] ; then
+ srcRestart
else
if [ -n "$SMF" ] ; then
shift
Modified: trunk/wrapper/src/c/Makefile-windows-x86-32.nmake
===================================================================
--- trunk/wrapper/src/c/Makefile-windows-x86-32.nmake 2015-09-04 04:28:59 UTC (rev 1937)
+++ trunk/wrapper/src/c/Makefile-windows-x86-32.nmake 2015-11-04 00:36:16 UTC (rev 1938)
@@ -18,7 +18,7 @@
# EXE Definitions
EXE_OUTDIR = $(PROJ)32_VC8__Win32_Release
EXE_OBJS = $(EXE_OUTDIR)\wrapper.obj $(EXE_OUTDIR)\wrapperinfo.obj $(EXE_OUTDIR)\wrappereventloop.obj $(EXE_OUTDIR)\wrapper_win.obj $(EXE_OUTDIR)\property.obj $(EXE_OUTDIR)\logger.obj $(EXE_OUTDIR)\logger_file.obj $(EXE_OUTDIR)\wrapper_file.obj $(EXE_OUTDIR)\wrapper_i18n.obj $(EXE_OUTDIR)\wrapper_hashmap.obj
-EXE_LIBS = mpr.lib shell32.lib netapi32.lib wsock32.lib shlwapi.lib advapi32.lib user32.lib Crypt32.lib Wintrust.lib pdh.lib
+EXE_LIBS = mpr.lib shell32.lib netapi32.lib wsock32.lib shlwapi.lib advapi32.lib user32.lib Crypt32.lib Wintrust.lib pdh.lib ole32.lib
EXE_COMPILE_OPTS = /O2 /GL /D "_CONSOLE"
EXE_LINK_OPTS = /INCREMENTAL:NO /SUBSYSTEM:CONSOLE /MANIFESTFILE:"$(EXE_OUTDIR)\$(PROJ).exe.intermediate.manifest" /PDB:"$(EXE_OUTDIR)\$(PROJ).pdb" /OPT:REF /OPT:ICF /LTCG
Modified: trunk/wrapper/src/c/Wrapper.rc
===================================================================
--- trunk/wrapper/src/c/Wrapper.rc 2015-09-04 04:28:59 UTC (rev 1937)
+++ trunk/wrapper/src/c/Wrapper.rc 2015-11-04 00:36:16 UTC (rev 1938)
@@ -53,8 +53,8 @@
// http://msdn.microsoft.com/en-us/library/aa381058%28VS.85%29.aspx
VS_VERSION_INFO VERSIONINFO
- FILEVERSION 3,5,27,0
- PRODUCTVERSION 3,5,27,0
+ FILEVERSION 3,5,28,0
+ PRODUCTVERSION 3,5,28,0
FILEFLAGSMASK 0x17L
#ifdef _DEBUG
FILEFLAGS 0x1L
@@ -70,13 +70,13 @@
BLOCK "000904b0"
BEGIN
VALUE "CompanyName", "Tanuki Software, Ltd."
- VALUE "FileDescription", "Java Service Wrapper Community Edition 3.5.27"
- VALUE "FileVersion", "3, 5, 27, 0"
+ VALUE "FileDescription", "Java Service Wrapper Community Edition 3.5.28-a"
+ VALUE "FileVersion", "3, 5, 28, 0"
VALUE "LegalCopyright", "Copyright (C) 1999, 2015 Tanuki Software, Ltd. All rights reserved."
VALUE "InternalName", "wrapper"
VALUE "OriginalFilename", "wrapper.exe"
VALUE "ProductName", "Java Service Wrapper Community"
- VALUE "ProductVersion", "3, 5, 27, 0"
+ VALUE "ProductVersion", "3, 5, 28, 0"
END
END
BLOCK "VarFileInfo"
Modified: trunk/wrapper/src/c/logger.c
===================================================================
--- trunk/wrapper/src/c/logger.c 2015-09-04 04:28:59 UTC (rev 1937)
+++ trunk/wrapper/src/c/logger.c 2015-11-04 00:36:16 UTC (rev 1938)
@@ -79,6 +79,7 @@
#include <errno.h>
#else /* LINUX */
#include <asm/errno.h>
+ #include <gnu/libc-version.h>
#endif
#endif
@@ -179,7 +180,8 @@
#ifdef WIN32
int writeToConsole( HANDLE hdl, TCHAR *lpszFmt, ...);
#endif
-void checkAndRollLogs(const TCHAR *nowDate);
+int doesFtellCauseMemoryLeak();
+void checkAndRollLogs(const TCHAR *nowDate, size_t printBufferSize);
int lockLoggingMutex();
int releaseLoggingMutex();
@@ -1289,84 +1291,92 @@
return threadPrintBuffer;
}
-/* Writes to and then returns a buffer that is reused by the current thread.
- * It should not be released. */
-TCHAR* buildPrintBuffer( int source_id, int level, int threadId, int queued, struct tm *nowTM, int nowMillis, time_t durationMillis, const TCHAR *format, const TCHAR *defaultFormat, const TCHAR *message) {
- int i;
- size_t reqSize;
- int numColumns;
- TCHAR *pos;
- int currentColumn;
- int handledFormat;
- int temp;
- int len;
+/* Returns the number of columns and come up with a required length for the printBuffer. */
+int GetColumnsAndReqSizeForPrintBuffer(const TCHAR *format, const TCHAR *message, size_t *reqSize) {
+ int i;
+ int numColumns;
- /* Decide the number of columns and come up with a required length for the printBuffer. */
- reqSize = 0;
+ *reqSize = 0;
for( i = 0, numColumns = 0; i < (int)_tcslen( format ); i++ ) {
switch( format[i] ) {
case TEXT('P'):
case TEXT('p'):
- reqSize += 8 + 3;
+ *reqSize += 8 + 3;
numColumns++;
break;
case TEXT('L'):
case TEXT('l'):
- reqSize += 6 + 3;
+ *reqSize += 6 + 3;
numColumns++;
break;
case TEXT('D'):
case TEXT('d'):
- reqSize += 7 + 3;
+ *reqSize += 7 + 3;
numColumns++;
break;
case TEXT('Q'):
case TEXT('q'):
- reqSize += 1 + 3;
+ *reqSize += 1 + 3;
numColumns++;
break;
case TEXT('T'):
case TEXT('t'):
- reqSize += 19 + 3;
+ *reqSize += 19 + 3;
numColumns++;
break;
case TEXT('Z'):
case TEXT('z'):
- reqSize += 23 + 3;
+ *reqSize += 23 + 3;
numColumns++;
break;
case TEXT('U'):
case TEXT('u'):
- reqSize += 8 + 3;
+ *reqSize += 8 + 3;
numColumns++;
break;
case TEXT('R'):
case TEXT('r'):
- reqSize += 8 + 3;
+ *reqSize += 8 + 3;
numColumns++;
break;
case TEXT('G'):
case TEXT('g'):
- reqSize += 10 + 3;
+ *reqSize += 10 + 3;
numColumns++;
break;
case TEXT('M'):
case TEXT('m'):
- reqSize += _tcslen( message ) + 3;
+ *reqSize += _tcslen( message ) + 3;
numColumns++;
break;
}
}
+ return numColumns;
+}
+
+/* Writes to and then returns a buffer that is reused by the current thread.
+ * It should not be released. */
+TCHAR* buildPrintBuffer( int source_id, int level, int threadId, int queued, struct tm *nowTM, int nowMillis, time_t durationMillis, const TCHAR *format, const TCHAR *defaultFormat, const TCHAR *message) {
+ int i;
+ size_t reqSize;
+ int numColumns;
+ TCHAR *pos;
+ int currentColumn;
+ int handledFormat;
+ int temp;
+ int len;
+ numColumns = GetColumnsAndReqSizeForPrintBuffer(format, message, &reqSize);
+
if ((reqSize == 0) && (defaultFormat != NULL)) {
/* This means that the specified format was completely invalid.
* Recurse using the defaultFormat instead.
@@ -1647,6 +1657,9 @@
const TCHAR *tempBufferLastErrorText;
size_t tempBufferLen;
TCHAR *tempBuffer;
+ size_t reqSize = 0;
+ char *messageMB;
+ size_t messageMBMaxLen = 0;
/* If the log file was set to a blank value then it will not be used. */
if (logFilePath && (_tcslen(logFilePath) > 0)) {
@@ -1657,8 +1670,29 @@
nowDate[0] = TEXT('\0');
}
+ /* If ftell() can't be used, we need the size of the logging message in order to calculate the size of the buffered data that is not flushed. */
+ if (doesFtellCauseMemoryLeak()) {
+ /* We will not use ftell(), so we have to take into account the size of the buffered data that have not been flushed yet. */
+ GetColumnsAndReqSizeForPrintBuffer(logfileFormat, message, &reqSize);
+ /* The previous function will process the length of message in number of characters. We want it in bytes. */
+ messageMBMaxLen = _tcslen(message) * sizeof(TCHAR);
+ if (messageMBMaxLen > 0) {
+ messageMB = malloc(messageMBMaxLen);
+ if (!messageMB) {
+ outOfMemoryQueued(TEXT("LPME"), 0);
+ } else {
+ wcstombs(messageMB, message, messageMBMaxLen);
+
+ reqSize -= _tcslen(message);
+ reqSize += strlen(messageMB);
+ /* Actually GetColumnsAndReqSizeForPrintBuffer() return 3 characters more than needed, but we need to add 2 more caracters for carriage return. */
+ reqSize -= 1;
+ }
+ free(messageMB);
+ }
+ }
/* Make sure that the log file does not need to be rolled. */
- checkAndRollLogs(nowDate);
+ checkAndRollLogs(nowDate, reqSize);
/* If the file needs to be opened then do so. */
if (logfileFP == NULL) {
@@ -3215,17 +3249,135 @@
currentLogFileName[0] = TEXT('\0'); /* Log file was rolled, so we want to cause a logfile change event. */
}
+#ifdef LINUX
/**
+ * Get description found in a release file.
+ * This function will only check for the first line because there is only one line in these files.
+ *
+ * @return TRUE if the description could be found.
+ */
+int getReleaseDescription(TCHAR **description, const TCHAR *releaseFile) {
+ struct stat fileStat;
+ FILE *file = NULL;
+ int result = FALSE;
+
+ /* check if the file exists */
+ if (_tstat(releaseFile, &fileStat) == 0) {
+ file = _tfopen(releaseFile, TEXT("r"));
+ if (file != NULL) {
+ *description = malloc(100 * sizeof(TCHAR));
+ if (*description == NULL) {
+ outOfMemoryQueued(TEXT("GRD"), 1);
+ } else if (_fgetts(*description, 100, file) != NULL) {
+ /* got the release description inside the file */
+ result = TRUE;
+ } else {
+ /* _fgetts failed but *description remains unchanged. Free it up. */
+ free(*description);
+ *description = NULL;
+ }
+ fclose(file);
+ }
+ }
+ return result;
+}
+
+static TCHAR distroDescription[100];
+
+/**
+ * Get a description of the linux distribution.
+ */
+const TCHAR *getDistro() {
+ static int firstCall = TRUE;
+ TCHAR *sysDescription = NULL;
+ TCHAR *rhelDescription = NULL;
+ int foundSysDescription;
+ int foundRhelDescription;
+ const TCHAR *centosPattern = TEXT("CentOS Linux");
+ const TCHAR *amiPattern = TEXT("Amazon Linux AMI");
+ const TCHAR *linuxPattern = TEXT("Linux");
+
+ if (firstCall) {
+ firstCall = FALSE;
+
+ foundSysDescription = getReleaseDescription(&sysDescription, TEXT("/etc/system-release"));
+ foundRhelDescription = getReleaseDescription(&rhelDescription, TEXT("/etc/redhat-release"));
+
+ if ((foundRhelDescription && _tcsstr(rhelDescription, centosPattern) != NULL) ||
+ (foundSysDescription && _tcsstr(sysDescription, centosPattern) != NULL)) {
+ _tcsncpy(distroDescription, centosPattern, 100);
+ } else if (foundSysDescription && _tcsstr(sysDescription, amiPattern) != NULL) {
+ _tcsncpy(distroDescription, amiPattern, 100);
+ } else {
+ _tcsncpy(distroDescription, linuxPattern, 100);
+ }
+ if (sysDescription) {
+ free(sysDescription);
+ }
+ if (rhelDescription) {
+ free(rhelDescription);
+ }
+ }
+
+ return distroDescription;
+}
+
+int isCentos() {
+ static int result = -1;
+ return result != -1 ? result : (_tcsicmp(getDistro(), TEXT("CentOS Linux")) == 0);
+}
+
+int isAMI() {
+ static int result = -1;
+ return result != -1 ? result : (_tcsicmp(getDistro(), TEXT("Amazon Linux AMI")) == 0);
+}
+
+/**
+ * Check if the glibc version of the user is upper to given numbers.
+ */
+int wrapperAssertGlibcUserBis(unsigned int maj, unsigned int min, unsigned int rev) {
+ unsigned int vmaj=0;
+ unsigned int vmin=0;
+ unsigned int vrev=0;
+
+ TCHAR versionW[10];
+
+ mbstowcs(versionW, gnu_get_libc_version(), 10);
+ _stscanf(versionW, TEXT("%d.%d.%d"), &vmaj, &vmin, &vrev);
+ return ((vmaj == maj && vmin == min && vrev >= rev) || (vmaj == maj && vmin > min) || vmaj > maj);
+}
+#endif
+
+/**
+ * Check if the system is Centos with glibc < 2.21 as there is a memory leak issue under these conditions.
+ */
+int doesFtellCauseMemoryLeak() {
+ static int result = -1;
+#ifdef LINUX
+ if (result == -1) {
+ if ((isCentos() || isAMI()) && !wrapperAssertGlibcUserBis(2, 21, 0)){
+ result = 1;
+ } else {
+ result = 0;
+ }
+ }
+#endif
+ return (result > 0);
+}
+
+/**
* Check to see whether or not the log file needs to be rolled.
* This is only called when synchronized.
*/
-void checkAndRollLogs(const TCHAR *nowDate) {
- long position;
+void checkAndRollLogs(const TCHAR *nowDate, size_t printBufferSize) {
+ size_t position;
#if defined(WIN32) && !defined(WIN64)
struct _stat64i32 fileStat;
#else
struct stat fileStat;
#endif
+ static size_t unflushedBufferSize = -2; /* initial value to -2: no carriage return for the last message beeing logged. */
+ static size_t previousFileSize = 0;
/* Depending on the roll mode, decide how to roll the log file. */
if (logFileRollMode & ROLL_MODE_SIZE) {
@@ -3236,14 +3388,14 @@
/* Find out the current size of the file. If the file is currently open then we need to
* use ftell to make sure that the buffered data is also included. */
- if (logfileFP != NULL) {
+ if (logfileFP != NULL && !doesFtellCauseMemoryLeak()) {
/* File is open */
if ((position = ftell(logfileFP)) < 0) {
_tprintf(TEXT("Unable to get the current logfile size with ftell: %s\n"), getLastErrorText());
return;
}
} else {
- /* File is not open */
+ /* File is not open or we can't use ftell because of memory leak issue */
if (_tstat(logFilePath, &fileStat) != 0) {
if (getLastError() == 2) {
/* File does not yet exist. */
@@ -3257,6 +3409,20 @@
}
} else {
position = fileStat.st_size;
+ if (doesFtellCauseMemoryLeak()) {
+ if (previousFileSize != position) {
+ /* the file has been flushed */
+ previousFileSize = position;
+ if (position == 0) {
+ /* initial value to -2: no carriage return for the last message beeing logged. */
+ unflushedBufferSize = -2;
+ } else {
+ unflushedBufferSize = 0;
+ }
+ }
+ unflushedBufferSize += printBufferSize;
+ position += unflushedBufferSize;
+ }
}
}
Modified: trunk/wrapper/src/c/property.c
===================================================================
--- trunk/wrapper/src/c/property.c 2015-09-04 04:28:59 UTC (rev 1937)
+++ trunk/wrapper/src/c/property.c 2015-11-04 00:36:16 UTC (rev 1938)
@@ -1689,9 +1689,9 @@
const TCHAR *propertyValue;
if (defaultValue) {
- defaultValueS = TEXT("true");
+ defaultValueS = TEXT("TRUE");
} else {
- defaultValueS = TEXT("false");
+ defaultValueS = TEXT("FALSE");
}
property = getInnerProperty(properties, propertyName, TRUE);
@@ -1701,18 +1701,18 @@
propertyValue = property->value;
}
- if (strcmpIgnoreCase(propertyValue, TEXT("true")) == 0) {
+ if (strcmpIgnoreCase(propertyValue, TEXT("TRUE")) == 0) {
return TRUE;
- } else if (strcmpIgnoreCase(propertyValue, TEXT("false")) == 0) {
+ } else if (strcmpIgnoreCase(propertyValue, TEXT("FALSE")) == 0) {
return FALSE;
} else {
if (properties->logWarnings) {
log_printf(WRAPPER_SOURCE_WRAPPER, properties->logWarningLogLevel,
TEXT("Encountered an invalid boolean value for configuration property %s=%s. Resolving to %s."),
- propertyName, propertyValue, TEXT("FALSE"));
+ propertyName, propertyValue, defaultValueS);
}
- return FALSE;
+ return defaultValue;
}
}
@@ -1741,7 +1741,7 @@
*
* @return 0 if successful, -1 if there was an error.
*/
-int getBooleanProperties(Properties *properties, const TCHAR *propertyNameHead, const TCHAR *propertyNameTail, int all, int matchAny, TCHAR ***propertyNames, int **propertyValues, long unsigned int **propertyIndices) {
+int getBooleanProperties(Properties *properties, const TCHAR *propertyNameHead, const TCHAR *propertyNameTail, int all, int matchAny, TCHAR ***propertyNames, int **propertyValues, long unsigned int **propertyIndices, int defaultValue) {
TCHAR **strPropertyValues;
int i = 0;
int count = 0;
@@ -1759,18 +1759,18 @@
i = 0;
while (strPropertyValues[i]) {
- if (strcmpIgnoreCase(strPropertyValues[i], TEXT("true")) == 0) {
+ if (strcmpIgnoreCase(strPropertyValues[i], TEXT("TRUE")) == 0) {
(*propertyValues)[i] = TRUE;
- } else if (strcmpIgnoreCase(strPropertyValues[i], TEXT("false")) == 0) {
+ } else if (strcmpIgnoreCase(strPropertyValues[i], TEXT("FALSE")) == 0) {
(*propertyValues)[i] = FALSE;
} else {
if (properties->logWarnings) {
log_printf(WRAPPER_SOURCE_WRAPPER, properties->logWarningLogLevel,
TEXT("Encountered an invalid boolean value for configuration property %s=%s. Resolving to %s."),
- (*propertyNames)[i], (*propertyValues)[i], TEXT("FALSE"));
+ (*propertyNames)[i], strPropertyValues[i], defaultValue ? TEXT("TRUE") : TEXT("FALSE"));
}
- (*propertyValues)[i] = FALSE;
+ (*propertyValues)[i] = defaultValue;
}
i++;
}
Modified: trunk/wrapper/src/c/property.h
===================================================================
--- trunk/wrapper/src/c/property.h 2015-09-04 04:28:59 UTC (rev 1937)
+++ trunk/wrapper/src/c/property.h 2015-11-04 00:36:16 UTC (rev 1938)
@@ -275,7 +275,7 @@
extern int getBooleanProperty(Properties *properties, const TCHAR *propertyName, int defaultValue);
-extern int getBooleanProperties(Properties *properties, const TCHAR *propertyNameHead, const TCHAR *propertyNameTail, int all, int matchAny, TCHAR ***propertyNames, int **propertyValues, long unsigned int **propertyIndices);
+extern int getBooleanProperties(Properties *properties, const TCHAR *propertyNameHead, const TCHAR *propertyNameTail, int all, int matchAny, TCHAR ***propertyNames, int **propertyValues, long unsigned int **propertyIndices, int defaultValue);
extern void freeBooleanProperties(TCHAR **propertyNames, int *propertyValues, long unsigned int *propertyIndices);
Modified: trunk/wrapper/src/c/wrapper.c
===================================================================
--- trunk/wrapper/src/c/wrapper.c 2015-09-04 04:28:59 UTC (rev 1937)
+++ trunk/wrapper/src/c/wrapper.c 2015-11-04 00:36:16 UTC (rev 1938)
@@ -3995,6 +3995,9 @@
#ifdef WIN32
GetLocaleInfo(GetThreadLocale(), LOCALE_IDEFAULTANSICODEPAGE, buffer, sizeof(buffer));
cp = _ttoi(buffer);
+ if ((_tcsstr(wrapperData->language, TEXT("ja")) == wrapperData->language) && !(wrapperCheckCodePageSupport(cp, LANG_JAPANESE))) {
+ cp = 932;
+ }
size = MultiByteToWideChar(cp, 0, log, -1 , NULL, 0);
if (size <= 0) {
log_printf(WRAPPER_SOURCE_WRAPPER, LEVEL_WARN,
Modified: trunk/wrapper/src/c/wrapper.h
===================================================================
--- trunk/wrapper/src/c/wrapper.h 2015-09-04 04:28:59 UTC (rev 1937)
+++ trunk/wrapper/src/c/wrapper.h 2015-11-04 00:36:16 UTC (rev 1938)
@@ -469,9 +469,6 @@
};
-
-
-
#define WRAPPER_SIGNAL_MODE_IGNORE (char)100
#define WRAPPER_SIGNAL_MODE_RESTART (char)101
#define WRAPPER_SIGNAL_MODE_SHUTDOWN (char)102
@@ -801,18 +798,9 @@
* Platform specific methods
*****************************************************************************/
#ifdef WIN32
-
/**
- * Function that returns the position of the top-bottom corner of the user's screen.
- *
- * @return 8-byte hexadecimal value. The first four bytes (high word) represent the position of the window on the X (horizontal) axis. The last four bytes (low word) represent the position of the window on the Y (vertical) axis. If the function fails, NULL will be returned.
- */
-extern DWORD wrapperGetRightBottomCornerPosition();
-
-/**
- * Function that allocates an hidden console by editing the registry (fix for the console flicker bug).
- * The function will edit the registry in order to minimize the size of the console and to position it in the right-bottom hand corner of the screen.
- * The registry key will be removed just after the console is allocated. As a precaution, it is also set volatile and will not persist on system restart.
+ * Allocates an hidden console. (fix for the console flicker bug).
+ * The size of the console will be minimized and its position will be set outside of the screen.
*
* @return TRUE if the console was allocated, FALSE if it could not be allocated.
*/
@@ -837,6 +825,11 @@
#else
extern void wrapperMaintainSignals();
extern TCHAR* findPathOf(const TCHAR *exe, const TCHAR* name);
+
+/**
+ * Check if the glibc version of the user is upper to given numbers.
+ */
+extern int wrapperAssertGlibcUser(unsigned int maj, unsigned int min, unsigned int rev);
#endif
/**
Modified: trunk/wrapper/src/c/wrapper_unix.c
===================================================================
--- trunk/wrapper/src/c/wrapper_unix.c 2015-09-04 04:28:59 UTC (rev 1937)
+++ trunk/wrapper/src/c/wrapper_unix.c 2015-11-04 00:36:16 UTC (rev 1938)
@@ -1854,7 +1854,22 @@
free(szPath);
return 0;
}
+#ifdef LINUX
+/**
+ * Check if the glibc version of the user is upper to given numbers.
+ */
+int wrapperAssertGlibcUser(unsigned int maj, unsigned int min, unsigned int rev) {
+ unsigned int vmaj=0;
+ unsigned int vmin=0;
+ unsigned int vrev=0;
+ TCHAR versionW[10];
+
+ mbstowcs(versionW, gnu_get_libc_version(), 10);
+ _stscanf(versionW, TEXT("%d.%d.%d"), &vmaj, &vmin, &vrev);
+ return ((vmaj == maj && vmin == min && vrev >= rev) || (vmaj == maj && vmin > min) || vmaj > maj);
+}
+#endif
/*******************************************************************************
* Main function *
Modified: trunk/wrapper/src/c/wrapper_win.c
===================================================================
--- trunk/wrapper/src/c/wrapper_win.c 2015-09-04 04:28:59 UTC (rev 1937)
+++ trunk/wrapper/src/c/wrapper_win.c 2015-11-04 00:36:16 UTC (rev 1938)
@@ -33,6 +33,9 @@
*/
#ifdef WIN32
+#include <shlwapi.h>
+#include <shobjidl.h>
+#include <shlobj.h>
#include <direct.h>
#include <io.h>
#include <math.h>
@@ -316,6 +319,7 @@
mutexName = malloc(sizeof(TCHAR) * (30 + _tcslen(wrapperData->serviceName) + 1));
if (!mutexName) {
outOfMemory(TEXT("IIM"), 1);
+ wrapperData->exitCode = 1;
return 1;
}
_sntprintf(mutexName, 30 + _tcslen(wrapperData->serviceName) + 1, TEXT("Global\\Java Service Wrapper - %s"), wrapperData->serviceName);
@@ -328,11 +332,13 @@
log_printf(WRAPPER_SOURCE_WRAPPER, LEVEL_ERROR,
TEXT("ERROR: Another instance of the %s application is already running."),
...
[truncated message content] |
|
From: <mor...@us...> - 2015-09-04 04:29:01
|
Revision: 1937
http://sourceforge.net/p/wrapper/code/1937
Author: mortenson
Date: 2015-09-04 04:28:59 +0000 (Fri, 04 Sep 2015)
Log Message:
-----------
Work on 3.5.27 Release.
Modified Paths:
--------------
trunk/wrapper/build-tests.xml
trunk/wrapper/src/c/wrapper_unix.c
trunk/wrapper/src/c/wrapper_win.c
trunk/wrapper/src/c/wrappereventloop.c
trunk/wrapper/src/c/wrapperinfo.c.in
Modified: trunk/wrapper/build-tests.xml
===================================================================
--- trunk/wrapper/build-tests.xml 2015-09-01 02:45:26 UTC (rev 1936)
+++ trunk/wrapper/build-tests.xml 2015-09-04 04:28:59 UTC (rev 1937)
@@ -11,16 +11,31 @@
<!-- Java version -->
<condition property="is.java 1.5 or lower">
+ <!-- ant.java.version can hold values starting from 1.2 -->
<or>
- <equals arg1="${ant.java.version}" arg2="1.0" />
- <equals arg1="${ant.java.version}" arg2="1.1" />
<equals arg1="${ant.java.version}" arg2="1.2" />
<equals arg1="${ant.java.version}" arg2="1.3" />
<equals arg1="${ant.java.version}" arg2="1.4" />
<equals arg1="${ant.java.version}" arg2="1.5" />
</or>
</condition>
-
+
+ <!-- Java vendor -->
+ <condition property="is.JavaSunOracle">
+ <or>
+ <equals arg1="${java.vendor}" arg2="Sun Microsystems Inc."/>
+ <equals arg1="${java.vendor}" arg2="Oracle Corporation"/>
+ </or>
+ </condition>
+
+ <!-- Does Java include the JavaScript Engine ? -->
+ <condition property="java-includes-jsEngine">
+ <and>
+ <isfalse value="${is.java 1.5 or lower}"/>
+ <istrue value="${is.JavaSunOracle}"/>
+ </and>
+ </condition>
+
<!-- platform -->
<property name="is.${os.name}" value="true"/>
@@ -108,7 +123,7 @@
<!-- Resolve Classpaths -->
<!-- =================================================================== -->
<!-- Classpath for script tests -->
- <target name="set-classpath.scriptLibs" if="is.java 1.5 or lower">
+ <target name="set-classpath.scriptLibs" unless="java-includes-jsEngine">
<path id="classpath.scriptLibs">
<fileset dir="${external.test.dir}/scriptLibs/">
<include name="*.jar"/>
@@ -116,8 +131,8 @@
</path>
</target>
- <target name="default-classpath.scriptLibs" unless="is.java 1.5 or lower">
- <!-- empty path: we don't need any additional libs because they are already included in Java 1.6 and upper -->
+ <target name="default-classpath.scriptLibs" if="java-includes-jsEngine">
+ <!-- empty path: we don't need any additional libs because they are already included in Oracle Java 1.6 and upper -->
<path id="classpath.scriptLibs"/>
</target>
@@ -127,7 +142,7 @@
<!-- Check if the required libs exist -->
<!-- =================================================================== -->
<!-- Check libs for script tests -->
- <target name="check-libs-exist.scriptLibs">
+ <target name="check-libs-exist.scriptLibs" unless="java-includes-jsEngine">
<available file="${external.test.dir}/scriptLibs/js-1.6R7.jar" property="js.exists"/>
<available file="${external.test.dir}/scriptLibs/bsf.jar" property="bsf.exists"/>
<available file="${external.test.dir}/scriptLibs/commons-logging-1.2.jar" property="cl.exists"/>
@@ -143,8 +158,8 @@
<target name="check-script-tests-setup-common" depends="check-libs-exist.scriptLibs">
<condition property="script-tests-setup-common-ok">
<or>
+ <istrue value="${java-includes-jsEngine}"/>
<istrue value="${libs-exist.scriptLibs}"/>
- <isfalse value="${is.java 1.5 or lower}"/>
</or>
</condition>
</target>
Modified: trunk/wrapper/src/c/wrapper_unix.c
===================================================================
--- trunk/wrapper/src/c/wrapper_unix.c 2015-09-01 02:45:26 UTC (rev 1936)
+++ trunk/wrapper/src/c/wrapper_unix.c 2015-09-04 04:28:59 UTC (rev 1937)
@@ -1477,7 +1477,6 @@
}
}
- /* we are on the parent side, cpuAffinityConfig will not be used here. A copy will remain for the child. */
return FALSE;
}
}
@@ -2008,14 +2007,6 @@
return 1; /* For compiler. */
}
-
-#if defined(LINUX) && defined(__GLIBC__) && defined(__GLIBC_MINOR__)
- if (((__GLIBC__ == 2 && __GLIBC_MINOR__ < 21) || (__GLIBC__ < 2)) &&
- (_tcscmp(getStringProperty(properties, TEXT("wrapper.logfile.maxsize"), TEXT("0")), TEXT("0")) != 0)) {
- log_printf(WRAPPER_SOURCE_WRAPPER, LEVEL_WARN, TEXT("The wrapper detected that the current version of the GNU C Library\n(glibc) is %d.%d. This library has a known bug that causes memory leaks\nfor versions lower than 2.21. Please upgrade it to a more recent\nversion.\n"), __GLIBC__, __GLIBC_MINOR__);
- }
-#endif
-
/* Set the default umask of the Wrapper process. */
umask(wrapperData->umask);
if (!strcmpIgnoreCase(wrapperData->argCommand, TEXT("-translate"))) {
Modified: trunk/wrapper/src/c/wrapper_win.c
===================================================================
--- trunk/wrapper/src/c/wrapper_win.c 2015-09-01 02:45:26 UTC (rev 1936)
+++ trunk/wrapper/src/c/wrapper_win.c 2015-09-04 04:28:59 UTC (rev 1937)
@@ -1410,9 +1410,9 @@
int res;
TCHAR titleBuffer[80];
int allocConsoleSucceed;
+ HANDLE process = GetCurrentProcess();
/* Set the process priority. */
- HANDLE process = GetCurrentProcess();
if (!SetPriorityClass(process, wrapperData->ntServicePriorityClass)) {
log_printf(WRAPPER_SOURCE_WRAPPER, LEVEL_WARN,
TEXT("Unable to set the process priority: %s"), getLastErrorText());
@@ -6560,7 +6560,6 @@
appExit(1);
return; /* For clarity. */
}
-
/* Set the default umask of the Wrapper process. */
_umask(wrapperData->umask);
Modified: trunk/wrapper/src/c/wrappereventloop.c
===================================================================
--- trunk/wrapper/src/c/wrappereventloop.c 2015-09-01 02:45:26 UTC (rev 1936)
+++ trunk/wrapper/src/c/wrappereventloop.c 2015-09-04 04:28:59 UTC (rev 1937)
@@ -1953,6 +1953,7 @@
int uptimeSeconds;
TICKS lastCycleTicks = wrapperGetTicks();
int nextSleep;
+
/* Initialize the tick timeouts. */
wrapperData->anchorTimeoutTicks = lastCycleTicks;
wrapperData->commandTimeoutTicks = lastCycleTicks;
Modified: trunk/wrapper/src/c/wrapperinfo.c.in
===================================================================
--- trunk/wrapper/src/c/wrapperinfo.c.in 2015-09-01 02:45:26 UTC (rev 1936)
+++ trunk/wrapper/src/c/wrapperinfo.c.in 2015-09-04 04:28:59 UTC (rev 1937)
@@ -30,7 +30,7 @@
TCHAR *wrapperBits = TEXT("@bits@");
TCHAR *wrapperArch = TEXT("@dist.arch@");
TCHAR *wrapperOS = TEXT("@dist.os@");
-TCHAR *wrapperReleaseDate = TEXT("20150901");
+TCHAR *wrapperReleaseDate = TEXT("20150904");
TCHAR *wrapperReleaseTime = TEXT("0000");
TCHAR *wrapperBuildDate = TEXT("@build.date@");
TCHAR *wrapperBuildTime = TEXT("@build.time@");
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <mor...@us...> - 2015-09-01 02:45:28
|
Revision: 1936
http://sourceforge.net/p/wrapper/code/1936
Author: mortenson
Date: 2015-09-01 02:45:26 +0000 (Tue, 01 Sep 2015)
Log Message:
-----------
Add manifest files.
Added Paths:
-----------
trunk/wrapper/src/c/wrapper.dll.manifest
trunk/wrapper/src/c/wrapper.exe.manifest
Property Changed:
----------------
trunk/wrapper/src/c/
Index: trunk/wrapper/src/c
===================================================================
--- trunk/wrapper/src/c 2015-09-01 01:53:11 UTC (rev 1935)
+++ trunk/wrapper/src/c 2015-09-01 02:45:26 UTC (rev 1936)
Property changes on: trunk/wrapper/src/c
___________________________________________________________________
Modified: svn:ignore
## -29,6 +29,3 ##
wrapperJNI64_VC8__Win32_Release
wrapper64_VC8__Win32_Release
wrapper_VC8__Win32_Debug
-wrapper.dll.manifest
-wrapper.exe.manifest
-wrapperw.exe.manifest
Added: trunk/wrapper/src/c/wrapper.dll.manifest
===================================================================
--- trunk/wrapper/src/c/wrapper.dll.manifest (rev 0)
+++ trunk/wrapper/src/c/wrapper.dll.manifest 2015-09-01 02:45:26 UTC (rev 1936)
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
+ <!--
+ <assemblyIdentity
+ type="win32"
+ name="wrapper"
+ version=SXS_ASSEMBLY_VERSION
+ processorArchitecture=SXS_PROCESSOR_ARCHITECTURE
+ />-->
+ <description>wrapper.dll</description>
+ <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
+ <security>
+ <requestedPrivileges>
+ <requestedExecutionLevel
+ level="asInvoker"
+ uiAccess="false"
+ />
+ </requestedPrivileges>
+ </security>
+ </trustInfo>
+ <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
+ <application>
+ <!-- Windows 10 -->
+ <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
+ <!-- Windows 8.1 -->
+ <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
+ <!-- Windows Vista -->
+ <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
+ <!-- Windows 7 -->
+ <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
+ <!-- Windows 8 -->
+ <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
+ </application>
+ </compatibility>
+</assembly>
\ No newline at end of file
Property changes on: trunk/wrapper/src/c/wrapper.dll.manifest
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/wrapper/src/c/wrapper.exe.manifest
===================================================================
--- trunk/wrapper/src/c/wrapper.exe.manifest (rev 0)
+++ trunk/wrapper/src/c/wrapper.exe.manifest 2015-09-01 02:45:26 UTC (rev 1936)
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
+ <!--
+ <assemblyIdentity
+ type="win32"
+ name="wrapper"
+ version=SXS_ASSEMBLY_VERSION
+ processorArchitecture=SXS_PROCESSOR_ARCHITECTURE
+ />-->
+ <description>wrapper.exe</description>
+ <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
+ <security>
+ <requestedPrivileges>
+ <requestedExecutionLevel
+ level="asInvoker"
+ uiAccess="false"
+ />
+ </requestedPrivileges>
+ </security>
+ </trustInfo>
+ <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
+ <application>
+ <!-- Windows 10 -->
+ <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
+ <!-- Windows 8.1 -->
+ <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
+ <!-- Windows Vista -->
+ <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
+ <!-- Windows 7 -->
+ <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
+ <!-- Windows 8 -->
+ <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
+ </application>
+ </compatibility>
+</assembly>
\ No newline at end of file
Property changes on: trunk/wrapper/src/c/wrapper.exe.manifest
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <mor...@us...> - 2015-09-01 01:53:13
|
Revision: 1935
http://sourceforge.net/p/wrapper/code/1935
Author: mortenson
Date: 2015-09-01 01:53:11 +0000 (Tue, 01 Sep 2015)
Log Message:
-----------
Work on 3.5.27 release.
Modified Paths:
--------------
trunk/wrapper/build-tests.xml
trunk/wrapper/build.xml
trunk/wrapper/doc/revisions.txt
trunk/wrapper/src/bin/sh.script.in
trunk/wrapper/src/c/property.c
trunk/wrapper/src/c/property.h
trunk/wrapper/src/c/test_javaadditionalparam.c
trunk/wrapper/src/c/wrapper.c
trunk/wrapper/src/c/wrapper_file.c
trunk/wrapper/src/c/wrapper_unix.c
trunk/wrapper/src/c/wrapper_win.c
trunk/wrapper/src/c/wrapperinfo.c.in
Modified: trunk/wrapper/build-tests.xml
===================================================================
--- trunk/wrapper/build-tests.xml 2015-08-20 03:03:32 UTC (rev 1934)
+++ trunk/wrapper/build-tests.xml 2015-09-01 01:53:11 UTC (rev 1935)
@@ -9,11 +9,24 @@
<!-- Local build properties -->
<property file="${user.home}/.ant.local.properties" />
+ <!-- Java version -->
+ <condition property="is.java 1.5 or lower">
+ <or>
+ <equals arg1="${ant.java.version}" arg2="1.0" />
+ <equals arg1="${ant.java.version}" arg2="1.1" />
+ <equals arg1="${ant.java.version}" arg2="1.2" />
+ <equals arg1="${ant.java.version}" arg2="1.3" />
+ <equals arg1="${ant.java.version}" arg2="1.4" />
+ <equals arg1="${ant.java.version}" arg2="1.5" />
+ </or>
+ </condition>
+
<!-- platform -->
<property name="is.${os.name}" value="true"/>
<property name="test.dir" value="${basedir}/test"/>
<property name="src.dir" value="${basedir}/src"/>
+ <property name="external.test.dir" value="${basedir}/external/test"/>
<!-- =================================================================== -->
<!-- Help on usage -->
@@ -90,11 +103,86 @@
<!-- =================================================================== -->
<target name="init" depends="init-windows, init-linux, init-solaris, init-aix, init-hpux, init-macosx, init-osf1, init-freebsd, init-irix">
</target>
+
+ <!-- =================================================================== -->
+ <!-- Resolve Classpaths -->
+ <!-- =================================================================== -->
+ <!-- Classpath for script tests -->
+ <target name="set-classpath.scriptLibs" if="is.java 1.5 or lower">
+ <path id="classpath.scriptLibs">
+ <fileset dir="${external.test.dir}/scriptLibs/">
+ <include name="*.jar"/>
+ </fileset>
+ </path>
+ </target>
+
+ <target name="default-classpath.scriptLibs" unless="is.java 1.5 or lower">
+ <!-- empty path: we don't need any additional libs because they are already included in Java 1.6 and upper -->
+ <path id="classpath.scriptLibs"/>
+ </target>
+
+ <target name="init-classpath.scriptLibs" depends="set-classpath.scriptLibs, default-classpath.scriptLibs"/>
+
+ <!-- =================================================================== -->
+ <!-- Check if the required libs exist -->
+ <!-- =================================================================== -->
+ <!-- Check libs for script tests -->
+ <target name="check-libs-exist.scriptLibs">
+ <available file="${external.test.dir}/scriptLibs/js-1.6R7.jar" property="js.exists"/>
+ <available file="${external.test.dir}/scriptLibs/bsf.jar" property="bsf.exists"/>
+ <available file="${external.test.dir}/scriptLibs/commons-logging-1.2.jar" property="cl.exists"/>
+ <condition property="libs-exist.scriptLibs">
+ <and>
+ <istrue value="${js.exists}"/>
+ <istrue value="${bsf.exists}"/>
+ <istrue value="${cl.exists}"/>
+ </and>
+ </condition>
+ </target>
+ <target name="check-script-tests-setup-common" depends="check-libs-exist.scriptLibs">
+ <condition property="script-tests-setup-common-ok">
+ <or>
+ <istrue value="${libs-exist.scriptLibs}"/>
+ <isfalse value="${is.java 1.5 or lower}"/>
+ </or>
+ </condition>
+ </target>
+
+ <target name="script-tests-setup-common-not-ok" depends="check-script-tests-setup-common" unless="script-tests-setup-common-ok">
+ <echo message="*******************************************************************"/>
+ <echo message="* WARNING"/>
+ <echo message="* The tests are being built with Java version ${ant.java.version} which doesn't"/>
+ <echo message="* include the Scripting API. "/>
+ <echo message="* Apache Commons Logging, Apache Commons BSF and Rhino are required"/>
+ <echo message="* when using a Java version older than 6 but these libraries could"/>
+ <echo message="* not be found in '${external.test.dir}/scriptLibs/'. "/>
+ <echo message="* The tests using the Scripting API will not be built."/>
+ <echo message="********************************************************************"/>
+ </target>
+
+ <target name="check-script-tests-setup-bat" depends="check-script-tests-setup-common, init">
+ <condition property="script-tests-setup-bat-ok">
+ <and>
+ <istrue value="${script-tests-setup-common-ok}"/>
+ <istrue value="${is.shell.bat}"/>
+ </and>
+ </condition>
+ </target>
+
+ <target name="check-script-tests-setup-unix" depends="check-script-tests-setup-common, init">
+ <condition property="script-tests-setup-unix-ok">
+ <and>
+ <istrue value="${script-tests-setup-common-ok}"/>
+ <istrue value="${is.Unix}"/>
+ </and>
+ </condition>
+ </target>
+
<!-- =================================================================== -->
- <!-- Test Setup target (Common) -->
+ <!-- Test Setup target (Init - Common) -->
<!-- =================================================================== -->
- <target name="test-setup-common" depends="init">
+ <target name="test-setup-common-init" depends="init">
<!-- Create a template wrapper.conf file that will be used to create the files for
each of the additional conf files for each test. -->
<delete file="${test.dir}/template.conf"/>
@@ -108,7 +196,6 @@
<replace file="${test.dir}/template.conf"
token="wrapper.logfile=../logs/wrapper.log"
value="wrapper.logfile=../test/testwrapper.log" />
-
<!-- Delete old files to help with version upgrade. -->
<delete>
@@ -117,7 +204,12 @@
<include name="TestAdditionalParameterFile-0?-*.*"/>
</fileset>
</delete>
+ </target>
+ <!-- =================================================================== -->
+ <!-- General Tests Setup target (Common) -->
+ <!-- =================================================================== -->
+ <target name="general-tests-setup-common" depends="test-setup-common-init">
<!-- Background Threads Test -->
<delete file="${test.dir}/backgroundthreads.conf"/>
<filter token="app.name" value="backgroundthreads"/>
@@ -543,72 +635,6 @@
wrapper.java.classpath.3=../lib/%WRAPPER_COMMAND_FILLER_32767%.jar
wrapper.java.classpath.missing.loglevel=NONE]]></replacevalue>
</replace>
-
- <!-- Huge Classpath Env Max Size Test -->
- <delete file="${test.dir}/hugeclasspathenvmaxsize.conf"/>
- <filter token="app.name" value="hugeclasspathenvmaxsize"/>
- <filter token="app.long.name" value="Huge Classpath Env Max Size Case" />
- <copy file="${test.dir}/template.conf"
- tofile="${test.dir}/hugeclasspathenvmaxsize.conf"
- filtering="on"/>
- <replace file="${test.dir}/hugeclasspathenvmaxsize.conf"
- token="#wrapper.java.command.loglevel=INFO"
- value="wrapper.java.command.loglevel=INFO" />
- <replace file="${test.dir}/hugeclasspathenvmaxsize.conf"
- token="wrapper.app.parameter.1=<YourMainClass>"
- value="wrapper.app.parameter.1=org.tanukisoftware.wrapper.test.QuickComplete" />
- <echo file="${test.dir}/hugeclasspathenvmaxsize-path.conf" append="false" message="#encoding=UTF-8${line.separator}"/>
- <script language="javascript">
- echo = project.createTask("echo");
- echo.setFile(new java.io.File(project.getProperty("test.dir"), "hugeclasspathenvmaxsize-path.conf"));
- echo.setAppend(true);
- for (var i = 1000; i < 2362; i++) {
- echo.setMessage("wrapper.java.classpath." + i + "=../lib/no-file-" + i + ".jar\n");
- echo.perform();
- }
- echo.setMessage("wrapper.java.classpath.2363=../lib/no-file-2363abc.jar\n");
- echo.perform();
- </script>
- <replace file="${test.dir}/hugeclasspathenvmaxsize.conf">
- <replacetoken>wrapper.java.classpath.2=../lib/wrapper.jar</replacetoken>
- <replacevalue><![CDATA[wrapper.java.classpath.2=../lib/wrapper.jar
-#include ../test/hugeclasspathenvmaxsize-path.conf
-wrapper.java.classpath.use_environment=TRUE
-wrapper.java.classpath.missing.loglevel=NONE]]></replacevalue>
- </replace>
-
- <!-- Huge Classpath Env Over Size Test -->
- <delete file="${test.dir}/hugeclasspathenvoversize.conf"/>
- <filter token="app.name" value="hugeclasspathenvoversize"/>
- <filter token="app.long.name" value="Huge Classpath Env Over Size Case" />
- <copy file="${test.dir}/template.conf"
- tofile="${test.dir}/hugeclasspathenvoversize.conf"
- filtering="on"/>
- <replace file="${test.dir}/hugeclasspathenvoversize.conf"
- token="#wrapper.java.command.loglevel=INFO"
- value="wrapper.java.command.loglevel=INFO" />
- <replace file="${test.dir}/hugeclasspathenvoversize.conf"
- token="wrapper.app.parameter.1=<YourMainClass>"
- value="wrapper.app.parameter.1=org.tanukisoftware.wrapper.test.QuickComplete" />
- <echo file="${test.dir}/hugeclasspathenvoversize-path.conf" append="false" message="#encoding=UTF-8${line.separator}"/>
- <script language="javascript">
- echo = project.createTask("echo");
- echo.setFile(new java.io.File(project.getProperty("test.dir"), "hugeclasspathenvoversize-path.conf"));
- echo.setAppend(true);
- for (var i = 1000; i < 2362; i++) {
- echo.setMessage("wrapper.java.classpath." + i + "=../lib/no-file-" + i + ".jar\n");
- echo.perform();
- }
- echo.setMessage("wrapper.java.classpath.2363=../lib/no-file-2363abcd.jar\n");
- echo.perform();
- </script>
- <replace file="${test.dir}/hugeclasspathenvoversize.conf">
- <replacetoken>wrapper.java.classpath.2=../lib/wrapper.jar</replacetoken>
- <replacevalue><![CDATA[wrapper.java.classpath.2=../lib/wrapper.jar
-#include ../test/hugeclasspathenvoversize-path.conf
-wrapper.java.classpath.use_environment=TRUE
-wrapper.java.classpath.missing.loglevel=NONE]]></replacevalue>
- </replace>
<!-- Filter Test -->
<delete file="${test.dir}/filter.conf"/>
@@ -1129,11 +1155,90 @@
token="wrapper.app.parameter.1=<YourMainClass>"
value="wrapper.app.parameter.1=org.tanukisoftware.wrapper.test.WrapperPrintParam" />
</target>
+
+ <!-- =================================================================== -->
+ <!-- Script Tests Setup target (Common) -->
+ <!-- =================================================================== -->
+ <target name="script-tests-setup-common" depends="test-setup-common-init, check-script-tests-setup-common, init-classpath.scriptLibs" if="script-tests-setup-common-ok">
+ <!-- Huge Classpath Env Max Size Test -->
+ <delete file="${test.dir}/hugeclasspathenvmaxsize.conf"/>
+ <filter token="app.name" value="hugeclasspathenvmaxsize"/>
+ <filter token="app.long.name" value="Huge Classpath Env Max Size Case" />
+ <copy file="${test.dir}/template.conf"
+ tofile="${test.dir}/hugeclasspathenvmaxsize.conf"
+ filtering="on"/>
+ <replace file="${test.dir}/hugeclasspathenvmaxsize.conf"
+ token="#wrapper.java.command.loglevel=INFO"
+ value="wrapper.java.command.loglevel=INFO" />
+ <replace file="${test.dir}/hugeclasspathenvmaxsize.conf"
+ token="wrapper.app.parameter.1=<YourMainClass>"
+ value="wrapper.app.parameter.1=org.tanukisoftware.wrapper.test.QuickComplete" />
+ <echo file="${test.dir}/hugeclasspathenvmaxsize-path.conf" append="false" message="#encoding=UTF-8${line.separator}"/>
+ <script language="javascript">
+ <classpath refid="classpath.scriptLibs" />
+ echo = project.createTask("echo");
+ echo.setFile(new java.io.File(project.getProperty("test.dir"), "hugeclasspathenvmaxsize-path.conf"));
+ echo.setAppend(true);
+ for (var i = 1000; i < 2362; i++) {
+ echo.setMessage("wrapper.java.classpath." + i + "=../lib/no-file-" + i + ".jar\n");
+ echo.perform();
+ }
+ echo.setMessage("wrapper.java.classpath.2363=../lib/no-file-2363abc.jar\n");
+ echo.perform();
+ </script>
+ <replace file="${test.dir}/hugeclasspathenvmaxsize.conf">
+ <replacetoken>wrapper.java.classpath.2=../lib/wrapper.jar</replacetoken>
+ <replacevalue><![CDATA[wrapper.java.classpath.2=../lib/wrapper.jar
+#include ../test/hugeclasspathenvmaxsize-path.conf
+wrapper.java.classpath.use_environment=TRUE
+wrapper.java.classpath.missing.loglevel=NONE]]></replacevalue>
+ </replace>
+
+ <!-- Huge Classpath Env Over Size Test -->
+ <delete file="${test.dir}/hugeclasspathenvoversize.conf"/>
+ <filter token="app.name" value="hugeclasspathenvoversize"/>
+ <filter token="app.long.name" value="Huge Classpath Env Over Size Case" />
+ <copy file="${test.dir}/template.conf"
+ tofile="${test.dir}/hugeclasspathenvoversize.conf"
+ filtering="on"/>
+ <replace file="${test.dir}/hugeclasspathenvoversize.conf"
+ token="#wrapper.java.command.loglevel=INFO"
+ value="wrapper.java.command.loglevel=INFO" />
+ <replace file="${test.dir}/hugeclasspathenvoversize.conf"
+ token="wrapper.app.parameter.1=<YourMainClass>"
+ value="wrapper.app.parameter.1=org.tanukisoftware.wrapper.test.QuickComplete" />
+ <echo file="${test.dir}/hugeclasspathenvoversize-path.conf" append="false" message="#encoding=UTF-8${line.separator}"/>
+ <script language="javascript">
+ <classpath refid="classpath.scriptLibs" />
+ echo = project.createTask("echo");
+ echo.setFile(new java.io.File(project.getProperty("test.dir"), "hugeclasspathenvoversize-path.conf"));
+ echo.setAppend(true);
+ for (var i = 1000; i < 2362; i++) {
+ echo.setMessage("wrapper.java.classpath." + i + "=../lib/no-file-" + i + ".jar\n");
+ echo.perform();
+ }
+ echo.setMessage("wrapper.java.classpath.2363=../lib/no-file-2363abcd.jar\n");
+ echo.perform();
+ </script>
+ <replace file="${test.dir}/hugeclasspathenvoversize.conf">
+ <replacetoken>wrapper.java.classpath.2=../lib/wrapper.jar</replacetoken>
+ <replacevalue><![CDATA[wrapper.java.classpath.2=../lib/wrapper.jar
+#include ../test/hugeclasspathenvoversize-path.conf
+wrapper.java.classpath.use_environment=TRUE
+wrapper.java.classpath.missing.loglevel=NONE]]></replacevalue>
+ </replace>
+ </target>
<!-- =================================================================== -->
- <!-- Test Setup target (Bat files - Windows) -->
+ <!-- Test Setup target (Common) -->
<!-- =================================================================== -->
- <target name="test-setup-bat" depends="test-setup-common" if="is.shell.bat">
+ <target name="test-setup-common" depends="general-tests-setup-common, script-tests-setup-common">
+ </target>
+
+ <!-- =================================================================== -->
+ <!-- General Tests Setup target (Bat files - Windows) -->
+ <!-- =================================================================== -->
+ <target name="general-tests-setup-bat" depends="test-setup-common" if="is.shell.bat">
<!-- Create the test specific batch files -->
<!-- Background Threads Test -->
@@ -1147,9 +1252,6 @@
<replace file="${test.dir}/TestBackgroundThreads.bat"
token='set _WRAPPER_CONF_DEFAULT="../conf/%_WRAPPER_BASE%.conf"'
value='set _WRAPPER_CONF_DEFAULT=../test/backgroundthreads.conf' />
-
-
-
<!-- Long Running Background Threads Test -->
<delete file="${test.dir}/TestLongRunningBackgroundThreads.bat"/>
@@ -1524,30 +1626,6 @@
token='set _WRAPPER_CONF_DEFAULT="../conf/%_WRAPPER_BASE%.conf"'
value='set _WRAPPER_CONF_DEFAULT=../test/hugeclasspathoversize.conf' />
- <!-- Huge Classpath Env Max Size Test -->
- <delete file="${test.dir}/TestHugeClasspathEnvMaxSize.bat"/>
- <copy file="${src.dir}/bin/App.bat.in"
- tofile="${test.dir}/TestHugeClasspathEnvMaxSize.bat"
- filtering="on"/>
- <replace file="${test.dir}/TestHugeClasspathEnvMaxSize.bat"
- token='set _WRAPPER_BASE=wrapper'
- value='set _WRAPPER_BASE=..\bin\wrapper' />
- <replace file="${test.dir}/TestHugeClasspathEnvMaxSize.bat"
- token='set _WRAPPER_CONF_DEFAULT="../conf/%_WRAPPER_BASE%.conf"'
- value='set _WRAPPER_CONF_DEFAULT=../test/hugeclasspathenvmaxsize.conf' />
-
- <!-- Huge Classpath Env Over Size Test -->
- <delete file="${test.dir}/TestHugeClasspathEnvOverSize.bat"/>
- <copy file="${src.dir}/bin/App.bat.in"
- tofile="${test.dir}/TestHugeClasspathEnvOverSize.bat"
- filtering="on"/>
- <replace file="${test.dir}/TestHugeClasspathEnvOverSize.bat"
- token='set _WRAPPER_BASE=wrapper'
- value='set _WRAPPER_BASE=..\bin\wrapper' />
- <replace file="${test.dir}/TestHugeClasspathEnvOverSize.bat"
- token='set _WRAPPER_CONF_DEFAULT="../conf/%_WRAPPER_BASE%.conf"'
- value='set _WRAPPER_CONF_DEFAULT=../test/hugeclasspathenvoversize.conf' />
-
<!-- Filter Test -->
<delete file="${test.dir}/TestFilter.bat"/>
<copy file="${src.dir}/bin/App.bat.in"
@@ -1857,6 +1935,41 @@
</target>
<!-- =================================================================== -->
+ <!-- Script Tests Setup target (Bat files - Windows) -->
+ <!-- =================================================================== -->
+ <target name="script-tests-setup-bat" depends="test-setup-common, check-script-tests-setup-bat" if="script-tests-setup-bat-ok">
+ <!-- Huge Classpath Env Max Size Test -->
+ <delete file="${test.dir}/TestHugeClasspathEnvMaxSize.bat"/>
+ <copy file="${src.dir}/bin/App.bat.in"
+ tofile="${test.dir}/TestHugeClasspathEnvMaxSize.bat"
+ filtering="on"/>
+ <replace file="${test.dir}/TestHugeClasspathEnvMaxSize.bat"
+ token='set _WRAPPER_BASE=wrapper'
+ value='set _WRAPPER_BASE=..\bin\wrapper' />
+ <replace file="${test.dir}/TestHugeClasspathEnvMaxSize.bat"
+ token='set _WRAPPER_CONF_DEFAULT="../conf/%_WRAPPER_BASE%.conf"'
+ value='set _WRAPPER_CONF_DEFAULT=../test/hugeclasspathenvmaxsize.conf' />
+
+ <!-- Huge Classpath Env Over Size Test -->
+ <delete file="${test.dir}/TestHugeClasspathEnvOverSize.bat"/>
+ <copy file="${src.dir}/bin/App.bat.in"
+ tofile="${test.dir}/TestHugeClasspathEnvOverSize.bat"
+ filtering="on"/>
+ <replace file="${test.dir}/TestHugeClasspathEnvOverSize.bat"
+ token='set _WRAPPER_BASE=wrapper'
+ value='set _WRAPPER_BASE=..\bin\wrapper' />
+ <replace file="${test.dir}/TestHugeClasspathEnvOverSize.bat"
+ token='set _WRAPPER_CONF_DEFAULT="../conf/%_WRAPPER_BASE%.conf"'
+ value='set _WRAPPER_CONF_DEFAULT=../test/hugeclasspathenvoversize.conf' />
+ </target>
+
+ <!-- =================================================================== -->
+ <!-- Test Setup target (Bat files - Windows) -->
+ <!-- =================================================================== -->
+ <target name="test-setup-bat" depends="general-tests-setup-bat, script-tests-setup-bat" if="is.shell.bat">
+ </target>
+
+ <!-- =================================================================== -->
<!-- Test Setup target (sh scripts - Unix, Linux) -->
<!-- =================================================================== -->
<target name="test-setup-sh" depends="test-setup-common" if="is.shell.sh">
@@ -1870,9 +1983,9 @@
</target>
<!-- =================================================================== -->
- <!-- Test Setup target (Unix) -->
+ <!-- Test Setup target (Init - Unix) -->
<!-- =================================================================== -->
- <target name="test-setup-unix" depends="test-setup-sh" if="is.Unix">
+ <target name="test-setup-unix-init" depends="test-setup-sh" if="is.Unix">
<!-- Create the test specific script files -->
<replace file="${test.dir}/temp.script.in"
token='WRAPPER_CMD="./wrapper"'
@@ -1898,7 +2011,12 @@
<replacetoken><![CDATA[#PASS_THROUGH=]]></replacetoken>
<replacevalue><![CDATA[PASS_THROUGH=]]></replacevalue>
</replace>
-
+ </target>
+
+ <!-- =================================================================== -->
+ <!-- General Tests Setup target (Unix) -->
+ <!-- =================================================================== -->
+ <target name="general-tests-setup-unix" depends="test-setup-unix-init" if="is.Unix">
<!-- Background Threads Test -->
<filter token="app.name" value="backgroundthreads"/>
<filter token="app.long.name" value="Background Threads Case" />
@@ -2157,22 +2275,6 @@
filtering="on"/>
<chmod file="${test.dir}/hugeclasspathoversize" perm="+x"/>
- <!-- Huge Classpath Env Max Size Test -->
- <filter token="app.name" value="hugeclasspathenvmaxsize"/>
- <filter token="app.long.name" value="Huge Classpath Env Max Size Case" />
- <copy file="${test.dir}/temp.script.in"
- tofile="${test.dir}/hugeclasspathenvmaxsize"
- filtering="on"/>
- <chmod file="${test.dir}/hugeclasspathenvmaxsize" perm="+x"/>
-
- <!-- Huge Classpath Env Over Size Test -->
- <filter token="app.name" value="hugeclasspathenvoversize"/>
- <filter token="app.long.name" value="Huge Classpath Env Over Size Case" />
- <copy file="${test.dir}/temp.script.in"
- tofile="${test.dir}/hugeclasspathenvoversize"
- filtering="on"/>
- <chmod file="${test.dir}/hugeclasspathenvoversize" perm="+x"/>
-
<!-- Filter Test -->
<filter token="app.name" value="filter"/>
<filter token="app.long.name" value="Filter Case" />
@@ -2366,17 +2468,43 @@
tofile="${test.dir}/defaultstripquotes-03-false"
filtering="on"/>
<chmod file="${test.dir}/defaultstripquotes-03-false" perm="+x"/>
-
+ </target>
+
+ <!-- =================================================================== -->
+ <!-- Script Tests Setup target (Unix) -->
+ <!-- =================================================================== -->
+ <target name="script-tests-setup-unix" depends="test-setup-unix-init, check-script-tests-setup-unix" if="script-tests-setup-unix-ok">
+ <!-- Huge Classpath Env Max Size Test -->
+ <filter token="app.name" value="hugeclasspathenvmaxsize"/>
+ <filter token="app.long.name" value="Huge Classpath Env Max Size Case" />
+ <copy file="${test.dir}/temp.script.in"
+ tofile="${test.dir}/hugeclasspathenvmaxsize"
+ filtering="on"/>
+ <chmod file="${test.dir}/hugeclasspathenvmaxsize" perm="+x"/>
+
+ <!-- Huge Classpath Env Over Size Test -->
+ <filter token="app.name" value="hugeclasspathenvoversize"/>
+ <filter token="app.long.name" value="Huge Classpath Env Over Size Case" />
+ <copy file="${test.dir}/temp.script.in"
+ tofile="${test.dir}/hugeclasspathenvoversize"
+ filtering="on"/>
+ <chmod file="${test.dir}/hugeclasspathenvoversize" perm="+x"/>
+ </target>
+
+ <!-- =================================================================== -->
+ <!-- Test Setup target (Unix) -->
+ <!-- =================================================================== -->
+ <target name="test-setup-unix" depends="general-tests-setup-unix, script-tests-setup-unix" if="is.Unix">
<!-- Get rid of the temp script file -->
<delete file="${test.dir}/temp.script.in"/>
<delete file="${test.dir}/action.script.in"/>
</target>
-
+
<!-- =================================================================== -->
<!-- Test Setup target -->
<!-- =================================================================== -->
<target name="test-setup"
- depends="test-setup-bat, test-setup-unix">
+ depends="script-tests-setup-common-not-ok, test-setup-bat, test-setup-unix">
</target>
<!-- =================================================================== -->
Modified: trunk/wrapper/build.xml
===================================================================
--- trunk/wrapper/build.xml 2015-08-20 03:03:32 UTC (rev 1934)
+++ trunk/wrapper/build.xml 2015-09-01 01:53:11 UTC (rev 1935)
@@ -1224,6 +1224,7 @@
<include name="src/c/*.bmp" />
<include name="src/c/*.bin" />
<include name="src/c/*.manifest" />
+ <include name="external/**" />
<exclude name="**/CVS/*" />
</fileset>
</copy>
@@ -1418,7 +1419,6 @@
<include name="jdoc/**" />
<include name="doc/**" />
<include name="conf/demoapp.conf" />
- <include name="src/c/*.manifest" />
<exclude name="**/CVS/*" />
</fileset>
</copy>
@@ -1861,7 +1861,7 @@
<release-delta-extract-platform osname="hpux" osarch="ia" bits="64" wrapperbinhead="wrapper" wrapperbintail="" wrapperlibhead="libwrapper" wrapperlibtail=".so" archivetype="tar.gz"/>
<release-delta-extract-platform osname="hpux" osarch="parisc" bits="32" wrapperbinhead="wrapper" wrapperbintail="" wrapperlibhead="libwrapper" wrapperlibtail=".sl" archivetype="tar.gz"/>
<release-delta-extract-platform osname="hpux" osarch="parisc" bits="64" wrapperbinhead="wrapper" wrapperbintail="" wrapperlibhead="libwrapper" wrapperlibtail=".sl" archivetype="tar.gz"/>
-<!-- <release-delta-extract-platform osname="linux" osarch="ia" bits="64" wrapperbinhead="wrapper" wrapperbintail="" wrapperlibhead="libwrapper" wrapperlibtail=".so" archivetype="tar.gz"/> -->
+ <release-delta-extract-platform osname="linux" osarch="ia" bits="64" wrapperbinhead="wrapper" wrapperbintail="" wrapperlibhead="libwrapper" wrapperlibtail=".so" archivetype="tar.gz"/>
<release-delta-extract-platform osname="linux" osarch="ppc" bits="32" wrapperbinhead="wrapper" wrapperbintail="" wrapperlibhead="libwrapper" wrapperlibtail=".so" archivetype="tar.gz"/>
<release-delta-extract-platform osname="linux" osarch="ppc" bits="64" wrapperbinhead="wrapper" wrapperbintail="" wrapperlibhead="libwrapper" wrapperlibtail=".so" archivetype="tar.gz"/>
<release-delta-extract-platform osname="linux" osarch="x86" bits="32" wrapperbinhead="wrapper" wrapperbintail="" wrapperlibhead="libwrapper" wrapperlibtail=".so" archivetype="tar.gz"/>
Modified: trunk/wrapper/doc/revisions.txt
===================================================================
--- trunk/wrapper/doc/revisions.txt 2015-08-20 03:03:32 UTC (rev 1934)
+++ trunk/wrapper/doc/revisions.txt 2015-09-01 01:53:11 UTC (rev 1935)
@@ -6,7 +6,7 @@
error message on Windows.
* Handle system exit codes with descriptions (Windows only).
* Add new configuration file directives (#properties.on_overwrite.loglevel and
- #properties.on_overwrite.exit) to better control how the wrapper should
+ #properties.on_overwrite.exit) to better control how the Wrapper should
behave when detecting duplicate property definitions.
* Fix: No longer tries to resume a Windows service that is already running,
or pause a service that is already paused.
@@ -16,17 +16,17 @@
* Fix the console flicker bug. Happened when wrapper.ntservice.generate_console
was set to TRUE, which is required for thread dumping.
* Fix a problem on Windows with the consoleless version of the Wrapper. If a
- splash screen was set at launch time, and if the wrapper eventually failed to
+ splash screen was set at launch time, and if the Wrapper eventually failed to
start normally, the splash screen did not disappear and remained on the top
of the log window.
* Fix a problem on Windows platforms that caused the log window to overlap all
the other forms even when the focus was set on an other application.
-* Add the ability to define CPU affinity for the wrapper and JVM processes
+* Add the ability to define CPU affinity for the Wrapper and JVM processes
(Windows and Linux systems, professional edition).
* The wrapper can now be executed with a '--setup' option in order to install
components under elevated mode on Windows. During the installation, the
wrapper will register the application to the Windows Event Log system.
- After the wrapper is executed with the '--setup' option, the Event Viewer
+ After the Wrapper is executed with the '--setup' option, the Event Viewer
will no longer report that the installation was corrupted.
* wrapper.exe and wrapper.dll are now manifested for compatibility with newer
versions of Windows (8.1 and above).
@@ -51,14 +51,20 @@
native code prior to opening it in Java. The Wrapper worked correctly, but
a Windows issue was causing warnings in the EventLog if the port had an
existing socket in the TIME_WAIT state from a previous JVM invocation.
-* Fix a problem on AIX with OpenJRE where the wrapper failed to load the
+* Fix a problem on AIX with OpenJRE where the Wrapper failed to load the
native library. The native library now has a '.so' extension like on other
UNIX platforms.
* Fix a problem on HP-UX when listing HostIds. If several HostIds were
- available on the machine, the wrapper could only get the first one and
+ available on the machine, the Wrapper could only get the first one and
reported DLPI errors when attempting to get the others.
* Fix path to remove files when uninstalling the Wrapper daemon process on
HPUX.
+* Added Linux Itanium binaries in the "Delta Pack". It was removed since
+ version 3.5.18.
+* Fix an encoding conversion error when sending email on HP-UX.
+* On MacOSX, set the launchd KeepAlive key to "false" by default as
+ recommended by Apple. However, it is possible to set it to "true" by editing
+ the new MACOSX_KEEP_RUNNING variable in the script file.
3.5.26
* Improve the log messages when a JVM restart is requested when the Wrapper is
Modified: trunk/wrapper/src/bin/sh.script.in
===================================================================
--- trunk/wrapper/src/bin/sh.script.in 2015-08-20 03:03:32 UTC (rev 1934)
+++ trunk/wrapper/src/bin/sh.script.in 2015-09-01 01:53:11 UTC (rev 1935)
@@ -134,10 +134,15 @@
# OS service management tool: flag for using systemd when installing
USE_SYSTEMD=
-# When installing on On Mac OSX platforms, the following domain will be used to
+# When installing on Mac OSX platforms, the following domain will be used to
# prefix the plist file name.
PLIST_DOMAIN=org.tanukisoftware.wrapper
+# When installing on Mac OSX platforms, this parameter controls whether the daemon
+# is to be kept continuously running or to let demand and conditions control the
+# invocation.
+MACOSX_KEEP_RUNNING="false"
+
# The following two lines are used by the chkconfig command. Change as is
# appropriate for your application. They should remain commented.
# chkconfig: 2345 20 80
@@ -369,7 +374,9 @@
DIST_BITS="32"
KEY_KEEP_ALIVE="OnDemand"
else
+ # Note: "OnDemand" has been deprecated and replaced from Mac OS X 10.5 by "KeepAlive"
KEY_KEEP_ALIVE="KeepAlive"
+
if [ "X`/usr/sbin/sysctl -n hw.cpu64bit_capable`" == "X1" ]
then
DIST_BITS="64"
@@ -742,8 +749,8 @@
shift
done
- # Use "runuser" if this exists. runuser should be used on RedHat in preference to su.
- #
+ # Use "runuser" if this exists.
+ # runuser should be used on RedHat in preference to su.
if test -f "/sbin/runuser"
then
/sbin/runuser - $RUN_AS_USER -c "\"$REALPATH\" $ADDITIONAL_PARA"
@@ -755,11 +762,13 @@
# we check if the previous command has failed
if [ $RUN_AS_USER_EXITCODE -ne 0 ]
then
- eval echo `gettext 'Advice: One possible cause of failure is when the user \(\"$RUN_AS_USER\"\) has no shell. Two solutions are available:'`
- eval echo `gettext '1. you can set the shell to use with \"SU_OPTS\"'`
- eval echo `gettext 'For example, at the top of the script file you can set: SU_OPTS=\"-s /bin/bash\"'`
- eval echo `gettext '2. you can use a OS service management tool'`
- eval echo `gettext 'Supported OS service management tools are described at the top of the script file.'`
+ if [ $RUN_AS_USER_EXITCODE -eq 1 ]
+ then
+ checkForkCommand
+ else
+ eval echo `gettext 'Error executing the requested command with user \"$RUN_AS_USER\" \(error code $RUN_AS_USER_EXITCODE\).'`
+ echo ""
+ fi
fi
# Now that we are the original user again, we may need to clean up the lock file.
@@ -780,6 +789,31 @@
fi
}
+# Try to fork by executing a simple command.
+# With this function, we want to make sure we are able to fork.
+checkForkCommand() {
+
+ if test -f "/sbin/runuser"
+ then
+ /sbin/runuser - $RUN_AS_USER -c "ls \"$REALPATH\"" > /dev/null 2>&1 &
+ else
+ $SU_BIN - $RUN_AS_USER -c "ls \"$REALPATH\"" $SU_OPTS > /dev/null 2>&1 &
+ fi
+ CHECK_EXITCODE=$?
+
+ if [ $CHECK_EXITCODE -ne 0 ]
+ then
+ # clearly a problem with forking
+ eval echo `gettext 'Error: unable to create fork process.'`
+ eval echo `gettext 'Advice:'`
+ eval echo `gettext 'One possible cause of failure is when the user \(\"$RUN_AS_USER\"\) has no shell.'`
+ eval echo `gettext 'In this case, two solutions are available by editing the script file:'`
+ eval echo `gettext '1. Use \"SU_OPTS\" to set the shell for the user.'`
+ eval echo `gettext '2. Use a OS service management tool (only available on some platforms).'`
+ echo ""
+ fi
+}
+
getpid() {
pid=""
if [ -f "$PIDFILE" ]
@@ -1100,6 +1134,14 @@
eval echo `gettext '$APP_LONG_NAME is not running.'`
exit 1
else
+ if [ "$MACOSX_KEEP_RUNNING" = "true" ] ; then
+ echo ""
+ eval echo `gettext 'Daemon is set to be kept continuously running and it will be automatically restarted.'`
+ eval echo `gettext 'To stop the daemon you need to uninstall it.'`
+ eval echo `gettext 'If you want to use the \"stop\" argument, you need to find MACOSX_KEEP_RUNNING'`
+ eval echo `gettext 'at the beginning of the script file and set it to \"false\".'`
+ echo ""
+ fi
launchctl stop ${APP_PLIST_BASE}
fi
}
@@ -1114,8 +1156,14 @@
eval echo `gettext '$APP_LONG_NAME is not running.'`
exit 1
else
- launchctl unload "/Library/LaunchDaemons/${APP_PLIST}"
- launchctl load "/Library/LaunchDaemons/${APP_PLIST}"
+ if [ "$MACOSX_KEEP_RUNNING" = "true" ] ; then
+ # by stopping it, launchd will automatically restart it
+ launchctl stop ${APP_PLIST_BASE}
+ else
+ launchctl unload "/Library/LaunchDaemons/${APP_PLIST}"
+ sleep 1
+ launchctl load "/Library/LaunchDaemons/${APP_PLIST}"
+ fi
fi
startwait
@@ -1540,28 +1588,28 @@
if [ -f "${REALDIR}/${APP_PLIST}" ] ; then
ln -s "${REALDIR}/${APP_PLIST}" "/Library/LaunchDaemons/${APP_PLIST}"
else
- echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" > "/Library/LaunchDaemons/${APP_PLIST}"
+ echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" > "/Library/LaunchDaemons/${APP_PLIST}"
echo "<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\"" >> "/Library/LaunchDaemons/${APP_PLIST}"
- echo "\"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">" >> "/Library/LaunchDaemons/${APP_PLIST}"
- echo "<plist version=\"1.0\">" >> "/Library/LaunchDaemons/${APP_PLIST}"
- echo " <dict>" >> "/Library/LaunchDaemons/${APP_PLIST}"
- echo " <key>Label</key>" >> "/Library/LaunchDaemons/${APP_PLIST}"
- echo " <string>${APP_PLIST_BASE}</string>" >> "/Library/LaunchDaemons/${APP_PLIST}"
- echo " <key>ProgramArguments</key>" >> "/Library/LaunchDaemons/${APP_PLIST}"
- echo " <array>" >> "/Library/LaunchDaemons/${APP_PLIST}"
- echo " <string>${REALPATH}</string>" >> "/Library/LaunchDaemons/${APP_PLIST}"
- echo " <string>launchdinternal</string>" >> "/Library/LaunchDaemons/${APP_PLIST}"
- echo " </array>" >> "/Library/LaunchDaemons/${APP_PLIST}"
- echo " <key>${KEY_KEEP_ALIVE}</key>" >> "/Library/LaunchDaemons/${APP_PLIST}"
- echo " <true/>" >> "/Library/LaunchDaemons/${APP_PLIST}"
- echo " <key>RunAtLoad</key>" >> "/Library/LaunchDaemons/${APP_PLIST}"
- echo " <true/>" >> "/Library/LaunchDaemons/${APP_PLIST}"
+ echo "\"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">" >> "/Library/LaunchDaemons/${APP_PLIST}"
+ echo "<plist version=\"1.0\">" >> "/Library/LaunchDaemons/${APP_PLIST}"
+ echo " <dict>" >> "/Library/LaunchDaemons/${APP_PLIST}"
+ echo " <key>Label</key>" >> "/Library/LaunchDaemons/${APP_PLIST}"
+ echo " <string>${APP_PLIST_BASE}</string>" >> "/Library/LaunchDaemons/${APP_PLIST}"
+ echo " <key>ProgramArguments</key>" >> "/Library/LaunchDaemons/${APP_PLIST}"
+ echo " <array>" >> "/Library/LaunchDaemons/${APP_PLIST}"
+ echo " <string>${REALPATH}</string>" >> "/Library/LaunchDaemons/${APP_PLIST}"
+ echo " <string>launchdinternal</string>" >> "/Library/LaunchDaemons/${APP_PLIST}"
+ echo " </array>" >> "/Library/LaunchDaemons/${APP_PLIST}"
+ echo " <key>${KEY_KEEP_ALIVE}</key>" >> "/Library/LaunchDaemons/${APP_PLIST}"
+ echo " <${MACOSX_KEEP_RUNNING}/>" >> "/Library/LaunchDaemons/${APP_PLIST}"
+ echo " <key>RunAtLoad</key>" >> "/Library/LaunchDaemons/${APP_PLIST}"
+ echo " <true/>" >> "/Library/LaunchDaemons/${APP_PLIST}"
if [ "X$RUN_AS_USER" != "X" ] ; then
- echo " <key>UserName</key>" >> "/Library/LaunchDaemons/${APP_PLIST}"
- echo " <string>${RUN_AS_USER}</string>" >> "/Library/LaunchDaemons/${APP_PLIST}"
+ echo " <key>UserName</key>" >> "/Library/LaunchDaemons/${APP_PLIST}"
+ echo " <string>${RUN_AS_USER}</string>" >> "/Library/LaunchDaemons/${APP_PLIST}"
fi
- echo " </dict>" >> "/Library/LaunchDaemons/${APP_PLIST}"
- echo "</plist>" >> "/Library/LaunchDaemons/${APP_PLIST}"
+ echo " </dict>" >> "/Library/LaunchDaemons/${APP_PLIST}"
+ echo "</plist>" >> "/Library/LaunchDaemons/${APP_PLIST}"
fi
chmod 555 "/Library/LaunchDaemons/${APP_PLIST}"
fi
@@ -1864,8 +1912,13 @@
;;
'start')
- if [ "$DIST_OS" = "macosx" -a -f "/Library/LaunchDaemons/${APP_PLIST}" ] ; then
- macosxStart
+ if [ "$DIST_OS" = "macosx" ] ; then
+ if [ ! -f "/Library/LaunchDaemons/${APP_PLIST}" ] ; then
+ # inform the user that the application was not installed
+ status
+ else
+ macosxStart
+ fi
elif [ "$DIST_OS" = "linux" -a -f "/etc/init/${APP_NAME}.conf" ] ; then
upstartstart
elif [ "$DIST_OS" = "linux" -a -n "$USE_SYSTEMD" -a -z "$SYSD" ] ; then
@@ -1897,8 +1950,12 @@
;;
'restart')
- if [ "$DIST_OS" = "macosx" -a -f "/Library/LaunchDaemons/${APP_PLIST}" ] ; then
- macosxRestart
+ if [ "$DIST_OS" = "macosx" ] ; then
+ if [ ! -f "/Library/LaunchDaemons/${APP_PLIST}" ] ; then
+ eval echo `gettext '$APP_NAME was not installed.'`
+ else
+ macosxRestart
+ fi
elif [ "$DIST_OS" = "linux" -a -f "/etc/init/${APP_NAME}.conf" ] ; then
upstartRestart
elif [ "$DIST_OS" = "linux" -a -n "$USE_SYSTEMD" -a -z "$SYSD" ] ; then
Modified: trunk/wrapper/src/c/property.c
===================================================================
--- trunk/wrapper/src/c/property.c 2015-08-20 03:03:32 UTC (rev 1934)
+++ trunk/wrapper/src/c/property.c 2015-09-01 01:53:11 UTC (rev 1935)
@@ -476,6 +476,11 @@
properties->exitOnOverwrite = exitOnOverwrite;
properties->logLevelOnOverwrite = logLevelOnOverwrite;
+ /* special case where the callback should only update the properties structure */
+ if ((fileName == NULL) && (lineNumber == -1) && (config == NULL)) {
+ return TRUE;
+ }
+
if (_tcsstr(config, TEXT("include")) == config) {
/* Users sometimes remove the '#' from include statements.
Add a warning to help them notice the problem. */
@@ -564,14 +569,15 @@
return LEVEL_UNKNOWN;
}
-Properties* createProperties() {
+Properties* createProperties(int debug, int logLevelOnOverwrite, int exitOnOverwrite) {
Properties *properties = malloc(sizeof(Properties));
if (!properties) {
outOfMemory(TEXT("CP"), 1);
return NULL;
}
- properties->exitOnOverwrite = FALSE;
- properties->logLevelOnOverwrite = LEVEL_NONE;
+ properties->debugProperties = debug;
+ properties->exitOnOverwrite = exitOnOverwrite;
+ properties->logLevelOnOverwrite = logLevelOnOverwrite;
properties->overwrittenPropertyCausedExit = FALSE;
properties->logWarnings = TRUE;
properties->logWarningLogLevel = LEVEL_WARN;
@@ -1168,26 +1174,40 @@
/* Insert this property at the correct location. Value will still be null. */
insertInnerProperty(properties, property);
} else {
- logLevelOnOverwrite = GetLogLevelOnOverwrite(properties);
- /* On preload the loglevel is set to NONE, then it is set by default to DEBUG on the second load.
- * We don't want to log anything nor to stop the Wrapper on preload so we test if logLevelOnOverwrite < LEVEL_NONE). */
- if (logLevelOnOverwrite < LEVEL_NONE) {
- /* The property was already set. Only change it if non final */
- if (property->internal) {
- setValue = FALSE;
- /* Logging properties were already preoloaded, so the logging system is ready. */
- log_printf(WRAPPER_SOURCE_WRAPPER, logLevelOnOverwrite,
- TEXT("The \"%s\" property is defined by the Wrapper internally and can not be overwritten.\n Ignoring redefinition on line #%d of configuration file: %s\n Fixed Value %s=%s\n Ignored Value %s=%s"),
- propertyNameTrim, lineNum, (filename ? filename : TEXT("<NULL>")), propertyNameTrim, property->value, propertyNameTrim, propertyValueTrim);
- } else if (property->finalValue) {
- setValue = FALSE;
- log_printf(WRAPPER_SOURCE_WRAPPER, logLevelOnOverwrite,
- TEXT("The \"%s\" property was defined on the Wrapper command line and can not be overwritten.\n Ignoring redefinition on line #%d of configuration file: %s\n Fixed Value %s=%s\n Ignored Value %s=%s"),
- propertyNameTrim, lineNum, (filename ? filename : TEXT("<NULL>")), propertyNameTrim, property->value, propertyNameTrim, propertyValueTrim);
+ /* The property was already set. Only change it if non final and non internal */
+ if (property->internal || property->finalValue) {
+ setValue = FALSE;
+ }
+
+ /* On preload we set properties->debugProperties to false as we don't want to log anything nor to stop the Wrapper at this stage. */
+ if (properties->debugProperties) {
+ /* Preload was already done so the logging system is ready. */
+ logLevelOnOverwrite = GetLogLevelOnOverwrite(properties);
+ /* From version 3.5.27, the Wrapper will also log messages if the command line contains duplicated properties or attempts to set an internal environment variable. */
+ if (finalValue) {
+ if (property->internal) {
+ log_printf(WRAPPER_SOURCE_WRAPPER, logLevelOnOverwrite,
+ TEXT("The \"%s\" property is defined by the Wrapper internally and can not be overwritten.\n Ignoring redefinition on the Wrapper command line.\n Fixed Value %s=%s\n Ignored Value %s=%s"),
+ propertyNameTrim, propertyNameTrim, property->value, propertyNameTrim, propertyValueTrim);
+ } else if (property->finalValue) {
+ log_printf(WRAPPER_SOURCE_WRAPPER, logLevelOnOverwrite,
+ TEXT("The \"%s\" property was already defined on the Wrapper command line and can not be overwritten.\n Ignoring redefinition on the Wrapper command line.\n Fixed Value %s=%s\n Ignored Value %s=%s"),
+ propertyNameTrim, propertyNameTrim, property->value, propertyNameTrim, propertyValueTrim);
+ }
} else {
- log_printf(WRAPPER_SOURCE_WRAPPER, logLevelOnOverwrite,
- TEXT("The \"%s\" property was redefined on line #%d of configuration file: %s\n Old Value %s=%s\n New Value %s=%s"),
- propertyNameTrim, lineNum, (filename ? filename : TEXT("<NULL>")), propertyNameTrim, property->value, propertyNameTrim, propertyValueTrim);
+ if (property->internal) {
+ log_printf(WRAPPER_SOURCE_WRAPPER, logLevelOnOverwrite,
+ TEXT("The \"%s\" property is defined by the Wrapper internally and can not be overwritten.\n Ignoring redefinition on line #%d of configuration file: %s\n Fixed Value %s=%s\n Ignored Value %s=%s"),
+ propertyNameTrim, lineNum, (filename ? filename : TEXT("<NULL>")), propertyNameTrim, property->value, propertyNameTrim, propertyValueTrim);
+ } else if (property->finalValue) {
+ log_printf(WRAPPER_SOURCE_WRAPPER, logLevelOnOverwrite,
+ TEXT("The \"%s\" property was defined on the Wrapper command line and can not be overwritten.\n Ignoring redefinition on line #%d of configuration file: %s\n Fixed Value %s=%s\n Ignored Value %s=%s"),
+ propertyNameTrim, lineNum, (filename ? filename : TEXT("<NULL>")), propertyNameTrim, property->value, propertyNameTrim, propertyValueTrim);
+ } else {
+ log_printf(WRAPPER_SOURCE_WRAPPER, logLevelOnOverwrite,
+ TEXT("The \"%s\" property was redefined on line #%d of configuration file: %s\n Old Value %s=%s\n New Value %s=%s"),
+ propertyNameTrim, lineNum, (filename ? filename : TEXT("<NULL>")), propertyNameTrim, property->value, propertyNameTrim, propertyValueTrim);
+ }
}
if (properties->exitOnOverwrite) {
Modified: trunk/wrapper/src/c/property.h
===================================================================
--- trunk/wrapper/src/c/property.h 2015-08-20 03:03:32 UTC (rev 1934)
+++ trunk/wrapper/src/c/property.h 2015-09-01 01:53:11 UTC (rev 1935)
@@ -75,6 +75,7 @@
typedef struct Properties Properties;
struct Properties {
+ int debugProperties; /* TRUE if debug information on Properties should be shown. */
int exitOnOverwrite; /* If TRUE, causes the wrapper to exit when any property is overwritten in the config files. */
int logLevelOnOverwrite; /* Defines the log level of the messages reported when properties are overwritten. */
int overwrittenPropertyCausedExit; /* Flag to keep trace whether at least one property was overridden */
@@ -159,7 +160,7 @@
* Create a Properties structure. Must call disposeProperties to free up
* allocated memory.
*/
-extern Properties* createProperties();
+extern Properties* createProperties(int debug, int logLevelOnOverwrite, int exitOnOverwrite);
/**
* Free all memory allocated by a Properties structure. The properties
Modified: trunk/wrapper/src/c/test_javaadditionalparam.c
===================================================================
--- trunk/wrapper/src/c/test_javaadditionalparam.c 2015-08-20 03:03:32 UTC (rev 1934)
+++ trunk/wrapper/src/c/test_javaadditionalparam.c 2015-09-01 01:53:11 UTC (rev 1935)
@@ -35,7 +35,7 @@
setConsoleFlush(TRUE);
setSyslogLevelInt(LEVEL_NONE);
- properties = createProperties();
+ properties = createProperties(FALSE, LEVEL_NONE, FALSE);
return properties ? 0 : 1;
}
Modified: trunk/wrapper/src/c/wrapper.c
===================================================================
--- trunk/wrapper/src/c/wrapper.c 2015-08-20 03:03:32 UTC (rev 1934)
+++ trunk/wrapper/src/c/wrapper.c 2015-09-01 01:53:11 UTC (rev 1935)
@@ -738,9 +738,13 @@
* This function provides a log file after proloading the properties.
* It will load all configurations related to the logging (loglevel, format, etc.).
* For standard editions, it helps us to resolve the language, if specified in the conf file.
+ *
+ * @param logLevelOnOverwriteProperties : use this parameter to keep the value of the last #properties.on_overwrite.loglevel found during the preload phase
+ * @param exitOnOverwriteProperties : use this parameter to keep the value of the last #properties.on_overwrite.exit found during the preload phase
+ *
* @return TRUE if something failed.
*/
-int wrapperPreLoadConfigurationProperties() {
+int wrapperPreLoadConfigurationProperties(int *logLevelOnOverwriteProperties, int *exitOnOverwriteProperties) {
int returnVal;
returnVal = TRUE;
@@ -759,6 +763,9 @@
returnVal = TRUE;
}
}
+
+ *logLevelOnOverwriteProperties = properties->logLevelOnOverwrite;
+ *exitOnOverwriteProperties = properties->exitOnOverwrite;
if (properties) {
disposeProperties(properties);
@@ -775,6 +782,8 @@
* Return TRUE if there were any problems.
*/
int wrapperLoadConfigurationProperties(int preload) {
+ static int logLevelOnOverwriteProperties = LEVEL_NONE;
+ static int exitOnOverwriteProperties = FALSE;
int i;
int firstCall;
#ifdef WIN32
@@ -893,14 +902,16 @@
}
/* Create a Properties structure. */
- properties = createProperties();
+ properties = createProperties(!preload && firstCall, logLevelOnOverwriteProperties, exitOnOverwriteProperties);
+ logLevelOnOverwriteProperties = LEVEL_NONE;
+ exitOnOverwriteProperties = FALSE;
if (!properties) {
return TRUE;
}
setLogPropertyWarnings(properties, !preload);
- /* Is it really useful to call again wrapperAddDefaultProperties() here? The function was already called on preload.
+ /* Not sure we need to call again wrapperAddDefaultProperties() here. The function was already called on preload.
Use properties->logLevelOnOverwrite to see the concerned properties */
wrapperAddDefaultProperties();
@@ -944,6 +955,7 @@
/* If we are in preload mode, we want to enable log warning messages here so everything below this point has propper warnings. */
setLogPropertyWarnings(properties, TRUE);
} else if (properties->overwrittenPropertyCausedExit) {
+ log_printf(WRAPPER_SOURCE_WRAPPER, LEVEL_FATAL, TEXT("Found duplicated properties. The wrapper will stop."));
return TRUE; /* will cause the wrapper to exit with error code 1 */
}
@@ -1026,7 +1038,7 @@
wrapperData->javaStatusFileUmask = getIntProperty(properties, TEXT("wrapper.java.statusfile.umask"), wrapperData->umask);
wrapperData->anchorFileUmask = getIntProperty(properties, TEXT("wrapper.anchorfile.umask"), wrapperData->umask);
setLogfileUmask(getIntProperty(properties, TEXT("wrapper.logfile.umask"), wrapperData->umask));
- return wrapperPreLoadConfigurationProperties();
+ return wrapperPreLoadConfigurationProperties(&logLevelOnOverwriteProperties, &exitOnOverwriteProperties);
}
#ifndef WIN32
/** If in the first call here and the wrapper will deamonize, then we don't need
@@ -6061,6 +6073,11 @@
int InQuotes = FALSE;
int Escaped = FALSE;
+ /* special case where the callback should do nothing */
+ if ((fileName == NULL) && (lineNumber == -1) && (config == NULL)) {
+ return TRUE;
+ }
+
#ifdef _DEBUG
log_printf(WRAPPER_SOURCE_WRAPPER, LEVEL_NOTICE, TEXT(" : %s"), config);
#endif
Modified: trunk/wrapper/src/c/wrapper_file.c
===================================================================
--- trunk/wrapper/src/c/wrapper_file.c 2015-08-20 03:03:32 UTC (rev 1934)
+++ trunk/wrapper/src/c/wrapper_file.c 2015-09-01 01:53:11 UTC (rev 1935)
@@ -252,7 +252,7 @@
return CONFIG_FILE_READER_FAIL;
}
- if (depth == 0 && !reader->preload) {
+ if (depth == 0) {
/* At least log with LEVEL_DEBUG to help support. */
reader->logLevelOnOverwrite = LEVEL_DEBUG;
}
@@ -503,18 +503,17 @@
break;
}
}
- } else if (!reader->preload && _tcsstr(trimmedBuffer, TEXT("#properties.")) == trimmedBuffer) {
+ } else if (_tcsstr(trimmedBuffer, TEXT("#properties.")) == trimmedBuffer) {
if(_tcsstr(trimmedBuffer, TEXT("#properties.on_overwrite.exit=")) == trimmedBuffer) {
trimmedBuffer += 30;
if (_tcsicmp(trimmedBuffer, TEXT("TRUE")) == 0) {
reader->exitOnOverwrite = TRUE;
- } else {
+ } else if (_tcsicmp(trimmedBuffer, TEXT("FALSE")) == 0) {
reader->exitOnOverwrite = FALSE;
- if (_tcsicmp(trimmedBuffer, TEXT("FALSE")) != 0) {
- log_printf(WRAPPER_SOURCE_WRAPPER, LEVEL_WARN,
- TEXT("Encountered an invalid boolean value for directive #properties.on_overwrite.exit=%s (line %d). Resolving to FALSE."),
- trimmedBuffer, lineNumber);
- }
+ } else if (!reader->preload) {
+ log_printf(WRAPPER_SOURCE_WRAPPER, LEVEL_WARN,
+ TEXT("Encountered an invalid boolean value for directive #properties.on_overwrite.exit=%s (line %d). Ignoring this directive."),
+ trimmedBuffer, lineNumber);
}
} else if (_tcsstr(trimmedBuffer, TEXT("#properties.on_overwrite.loglevel=")) == trimmedBuffer) {
trimmedBuffer += 34;
@@ -524,7 +523,7 @@
reader->logLevelOnOverwrite = LEVEL_DEBUG;
} else if (logLevelOnOverwrite != LEVEL_UNKNOWN) {
reader->logLevelOnOverwrite = logLevelOnOverwrite;
- } else {
+ } else if (!reader->preload) {
log_printf(WRAPPER_SOURCE_WRAPPER, LEVEL_WARN,
TEXT("Encountered an invalid value for directive #properties.on_overwrite.loglevel=%s (line %d). Ignoring this directive."),
trimmedBuffer, lineNumber);
@@ -542,6 +541,15 @@
lineNumber++;
} while (c != NULL);
+ /* Call the callback after reading the file completely in order to copy reader->exitOnOverwrite & reader->logLevelOnOverwrite into the properties structure.
+ * (we want to keep these values after preload for logging potential problems on properties defined in the command line)
+ * This is needed if directives are set at the end of the file with no properties after. */
+ ...
[truncated message content] |
|
From: <mor...@us...> - 2015-08-20 03:03:34
|
Revision: 1934
http://sourceforge.net/p/wrapper/code/1934
Author: mortenson
Date: 2015-08-20 03:03:32 +0000 (Thu, 20 Aug 2015)
Log Message:
-----------
Work on 3.5.27 release.
Modified Paths:
--------------
trunk/wrapper/src/c/wrapperinfo.c.in
Modified: trunk/wrapper/src/c/wrapperinfo.c.in
===================================================================
--- trunk/wrapper/src/c/wrapperinfo.c.in 2015-08-20 02:54:03 UTC (rev 1933)
+++ trunk/wrapper/src/c/wrapperinfo.c.in 2015-08-20 03:03:32 UTC (rev 1934)
@@ -30,7 +30,7 @@
TCHAR *wrapperBits = TEXT("@bits@");
TCHAR *wrapperArch = TEXT("@dist.arch@");
TCHAR *wrapperOS = TEXT("@dist.os@");
-TCHAR *wrapperReleaseDate = TEXT("20150820");
+TCHAR *wrapperReleaseDate = TEXT("20150821");
TCHAR *wrapperReleaseTime = TEXT("0000");
TCHAR *wrapperBuildDate = TEXT("@build.date@");
TCHAR *wrapperBuildTime = TEXT("@build.time@");
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <mor...@us...> - 2015-08-20 02:54:05
|
Revision: 1933
http://sourceforge.net/p/wrapper/code/1933
Author: mortenson
Date: 2015-08-20 02:54:03 +0000 (Thu, 20 Aug 2015)
Log Message:
-----------
Work on 3.5.27 release.
Modified Paths:
--------------
trunk/wrapper/build.xml
trunk/wrapper/doc/revisions.txt
trunk/wrapper/src/bin/sh.script.in
trunk/wrapper/src/c/wrapper.c
trunk/wrapper/src/c/wrapper_file.c
Modified: trunk/wrapper/build.xml
===================================================================
--- trunk/wrapper/build.xml 2015-08-19 04:42:06 UTC (rev 1932)
+++ trunk/wrapper/build.xml 2015-08-20 02:54:03 UTC (rev 1933)
@@ -1853,8 +1853,8 @@
</sequential>
</macrodef>
<target name="release-delta:extract-platforms">
- <release-delta-extract-platform osname="aix" osarch="ppc" bits="32" wrapperbinhead="wrapper" wrapperbintail="" wrapperlibhead="libwrapper" wrapperlibtail=".a" archivetype="tar.gz"/>
- <release-delta-extract-platform osname="aix" osarch="ppc" bits="64" wrapperbinhead="wrapper" wrapperbintail="" wrapperlibhead="libwrapper" wrapperlibtail=".a" archivetype="tar.gz"/>
+ <release-delta-extract-platform osname="aix" osarch="ppc" bits="32" wrapperbinhead="wrapper" wrapperbintail="" wrapperlibhead="libwrapper" wrapperlibtail=".so" archivetype="tar.gz"/>
+ <release-delta-extract-platform osname="aix" osarch="ppc" bits="64" wrapperbinhead="wrapper" wrapperbintail="" wrapperlibhead="libwrapper" wrapperlibtail=".so" archivetype="tar.gz"/>
<release-delta-extract-platform osname="freebsd" osarch="x86" bits="32" wrapperbinhead="wrapper" wrapperbintail="" wrapperlibhead="libwrapper" wrapperlibtail=".so" archivetype="tar.gz"/>
<release-delta-extract-platform osname="freebsd" osarch="x86" bits="64" wrapperbinhead="wrapper" wrapperbintail="" wrapperlibhead="libwrapper" wrapperlibtail=".so" archivetype="tar.gz"/>
<release-delta-extract-platform osname="hpux" osarch="ia" bits="32" wrapperbinhead="wrapper" wrapperbintail="" wrapperlibhead="libwrapper" wrapperlibtail=".so" archivetype="tar.gz"/>
Modified: trunk/wrapper/doc/revisions.txt
===================================================================
--- trunk/wrapper/doc/revisions.txt 2015-08-19 04:42:06 UTC (rev 1932)
+++ trunk/wrapper/doc/revisions.txt 2015-08-20 02:54:03 UTC (rev 1933)
@@ -57,8 +57,9 @@
* Fix a problem on HP-UX when listing HostIds. If several HostIds were
available on the machine, the wrapper could only get the first one and
reported DLPI errors when attempting to get the others.
+* Fix path to remove files when uninstalling the Wrapper daemon process on
+ HPUX.
-
3.5.26
* Improve the log messages when a JVM restart is requested when the Wrapper is
in a state that it will be ignored.
Modified: trunk/wrapper/src/bin/sh.script.in
===================================================================
--- trunk/wrapper/src/bin/sh.script.in 2015-08-19 04:42:06 UTC (rev 1932)
+++ trunk/wrapper/src/bin/sh.script.in 2015-08-20 02:54:03 UTC (rev 1933)
@@ -1464,7 +1464,7 @@
else
eval echo `gettext ' Installing the $APP_LONG_NAME daemon..'`
ln -s "$REALPATH" "/sbin/init.d/$APP_NAME"
- for i in `ls "/etc/rc3.d/K"??"$APP_NAME_LOWER" "/etc/rc3.d/S"??"$APP_NAME_LOWER" 2>/dev/null` ; do
+ for i in `ls "/sbin/rc3.d/K"??"$APP_NAME_LOWER" "/sbin/rc3.d/S"??"$APP_NAME_LOWER" 2>/dev/null` ; do
eval echo `gettext ' Removing unexpected file before proceeding: $i'`
rm -f $i
done
@@ -1666,7 +1666,7 @@
if [ -f "/sbin/init.d/$APP_NAME" -o -L "/sbin/init.d/$APP_NAME" ] ; then
stopit "0"
eval echo `gettext ' Removing $APP_LONG_NAME daemon...'`
- for i in `ls "/etc/rc3.d/K"??"$APP_NAME_LOWER" "/etc/rc3.d/S"??"$APP_NAME_LOWER" "/etc/init.d/$APP_NAME" 2>/dev/null` ; do
+ for i in `ls "/sbin/rc3.d/K"??"$APP_NAME_LOWER" "/sbin/rc3.d/S"??"$APP_NAME_LOWER" "/sbin/init.d/$APP_NAME" 2>/dev/null` ; do
rm -f $i
done
else
Modified: trunk/wrapper/src/c/wrapper.c
===================================================================
--- trunk/wrapper/src/c/wrapper.c 2015-08-19 04:42:06 UTC (rev 1932)
+++ trunk/wrapper/src/c/wrapper.c 2015-08-20 02:54:03 UTC (rev 1933)
@@ -4947,7 +4947,7 @@
* If the the user specifically wants the environment, show it as the status log level, otherwise include it in debug output if enabled. */
if (getBooleanProperty(properties, TEXT("wrapper.environment.dump"), FALSE)) {
dumpEnvironment(LEVEL_INFO);
- } else if (getBooleanProperty(properties, TEXT("wrapper.debug"), FALSE)) {
+ } else if (wrapperData->isDebugging) {
dumpEnvironment(LEVEL_DEBUG);
}
Modified: trunk/wrapper/src/c/wrapper_file.c
===================================================================
--- trunk/wrapper/src/c/wrapper_file.c 2015-08-19 04:42:06 UTC (rev 1932)
+++ trunk/wrapper/src/c/wrapper_file.c 2015-08-20 02:54:03 UTC (rev 1933)
@@ -506,7 +506,16 @@
} else if (!reader->preload && _tcsstr(trimmedBuffer, TEXT("#properties.")) == trimmedBuffer) {
if(_tcsstr(trimmedBuffer, TEXT("#properties.on_overwrite.exit=")) == trimmedBuffer) {
trimmedBuffer += 30;
- reader->exitOnOverwrite = (_tcsicmp(trimmedBuffer, TEXT("TRUE")) == 0);
+ if (_tcsicmp(trimmedBuffer, TEXT("TRUE")) == 0) {
+ reader->exitOnOverwrite = TRUE;
+ } else {
+ reader->exitOnOverwrite = FALSE;
+ if (_tcsicmp(trimmedBuffer, TEXT("FALSE")) != 0) {
+ log_printf(WRAPPER_SOURCE_WRAPPER, LEVEL_WARN,
+ TEXT("Encountered an invalid boolean value for directive #properties.on_overwrite.exit=%s (line %d). Resolving to FALSE."),
+ trimmedBuffer, lineNumber);
+ }
+ }
} else if (_tcsstr(trimmedBuffer, TEXT("#properties.on_overwrite.loglevel=")) == trimmedBuffer) {
trimmedBuffer += 34;
logLevelOnOverwrite = getLogLevelForName(trimmedBuffer);
@@ -517,7 +526,7 @@
reader->logLevelOnOverwrite = logLevelOnOverwrite;
} else {
log_printf(WRAPPER_SOURCE_WRAPPER, LEVEL_WARN,
- TEXT("Encountered an invalid value for directive #properties.on_overwrite.loglevel=%s (line %d)\n Ignoring this directive."),
+ TEXT("Encountered an invalid value for directive #properties.on_overwrite.loglevel=%s (line %d). Ignoring this directive."),
trimmedBuffer, lineNumber);
}
} else if (strcmpIgnoreCase(trimmedBuffer, TEXT("#properties.debug")) == 0) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <mor...@us...> - 2015-08-19 04:42:07
|
Revision: 1932
http://sourceforge.net/p/wrapper/code/1932
Author: mortenson
Date: 2015-08-19 04:42:06 +0000 (Wed, 19 Aug 2015)
Log Message:
-----------
Work on 3.5.27 release.
Modified Paths:
--------------
trunk/wrapper/src/c/wrapperinfo.c.in
Modified: trunk/wrapper/src/c/wrapperinfo.c.in
===================================================================
--- trunk/wrapper/src/c/wrapperinfo.c.in 2015-08-19 04:38:16 UTC (rev 1931)
+++ trunk/wrapper/src/c/wrapperinfo.c.in 2015-08-19 04:42:06 UTC (rev 1932)
@@ -30,7 +30,7 @@
TCHAR *wrapperBits = TEXT("@bits@");
TCHAR *wrapperArch = TEXT("@dist.arch@");
TCHAR *wrapperOS = TEXT("@dist.os@");
-TCHAR *wrapperReleaseDate = TEXT("20150818");
+TCHAR *wrapperReleaseDate = TEXT("20150820");
TCHAR *wrapperReleaseTime = TEXT("0000");
TCHAR *wrapperBuildDate = TEXT("@build.date@");
TCHAR *wrapperBuildTime = TEXT("@build.time@");
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <mor...@us...> - 2015-08-19 04:38:18
|
Revision: 1931
http://sourceforge.net/p/wrapper/code/1931
Author: mortenson
Date: 2015-08-19 04:38:16 +0000 (Wed, 19 Aug 2015)
Log Message:
-----------
Work on 3.5.27 release.
Modified Paths:
--------------
trunk/wrapper/build.xml
trunk/wrapper/src/bin/sh.script.in
trunk/wrapper/src/c/property.c
trunk/wrapper/src/c/wrapper.c
trunk/wrapper/src/c/wrapper_file.c
trunk/wrapper/src/c/wrapper_unix.c
trunk/wrapper/src/c/wrapper_win.c
Modified: trunk/wrapper/build.xml
===================================================================
--- trunk/wrapper/build.xml 2015-08-18 01:29:57 UTC (rev 1930)
+++ trunk/wrapper/build.xml 2015-08-19 04:38:16 UTC (rev 1931)
@@ -388,9 +388,6 @@
<property name="wrapper.bin.long.name" value="${name}-${dist.os}-${dist.arch}-${bits}"/>
<!-- Decide on library names -->
- <condition property="wrapper.lib.extension" value="a">
- <isset property="is.aix"/>
- </condition>
<condition property="wrapper.lib.extension" value="sl">
<and>
<isset property="is.hpux"/>
@@ -1024,10 +1021,10 @@
<!-- Create wrapper.conf for the TestWrapper Sample Application -->
<copy file="${src.dir}/conf/wrapper.conf.in"
tofile="${conf.dir}/wrapper.conf"
- filtering="on"/>
+ filtering="on" overwrite="true" />
<replace file="${conf.dir}/wrapper.conf">
- <replacetoken># Wrapper Properties</replacetoken>
- <replacevalue><![CDATA[# TestWrapper Properties
+ <replacetoken># of the the file.</replacetoken>
+ <replacevalue><![CDATA[# of the the file.
#
# NOTE - Please use src/conf/wrapper.conf.in as a template for your
# own application rather than the values used for the
@@ -1429,10 +1426,10 @@
<!-- Copy a fresh wrapper.conf rather than the development file -->
<copy file="${src.dir}/conf/wrapper.conf.in"
tofile="${releasedir}/conf/wrapper.conf"
- filtering="on"/>
+ filtering="on" overwrite="true" />
<replace file="${releasedir}/conf/wrapper.conf">
- <replacetoken># Wrapper Properties</replacetoken>
- <replacevalue><![CDATA[# TestWrapper Properties
+ <replacetoken># of the the file.</replacetoken>
+ <replacevalue><![CDATA[# of the the file.
#
# NOTE - Please use src/conf/wrapper.conf.in as a template for your
# own application rather than the values used for the
@@ -1564,10 +1561,10 @@
<!-- Copy a fresh wrapper.conf rather than the development file -->
<copy file="${src.dir}/conf/wrapper.conf.in"
tofile="${releasedir}/conf/wrapper.conf"
- filtering="on"/>
+ filtering="on" overwrite="true" />
<replace file="${releasedir}/conf/wrapper.conf">
- <replacetoken># Wrapper Properties</replacetoken>
- <replacevalue><![CDATA[# TestWrapper Properties
+ <replacetoken># of the the file.</replacetoken>
+ <replacevalue><![CDATA[# of the the file.
#
# NOTE - Please use src/conf/wrapper.conf.in as a template for your
# own application rather than the values used for the
Modified: trunk/wrapper/src/bin/sh.script.in
===================================================================
--- trunk/wrapper/src/bin/sh.script.in 2015-08-18 01:29:57 UTC (rev 1930)
+++ trunk/wrapper/src/bin/sh.script.in 2015-08-19 04:38:16 UTC (rev 1931)
@@ -22,11 +22,28 @@
# any changes to this file. Failure to do so could remove the
# script's ability to control the application.
+# Initialization block for the install_initd and remove_initd scripts used by
+# SUSE linux, CentOS and RHEL distributions.
+# Note: From CentOS 6, make sure the BEGIN INIT INFO section is before any line
+# of code otherwise the service won't be displayed in the Service
+# Configuration GUI.
+### BEGIN INIT INFO
+# Provides: @app.name@
+# Required-Start: $local_fs $network $syslog
+# Should-Start:
+# Required-Stop:
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: @app.long.name@
+# Description: @app.description@
+### END INIT INFO
+
# Application
APP_NAME="@app.name@"
APP_LONG_NAME="@app.long.name@"
-# If uncommented (and set to false), APP_NAME and APP_LONG_NAME will no longer be passed to the wrapper. See documentation for details.
+# If uncommented (and set to false), APP_NAME and APP_LONG_NAME will no longer
+# be passed to the wrapper. See documentation for details.
#APP_NAME_PASS_TO_WRAPPER=false
# Wrapper
@@ -125,19 +142,6 @@
# appropriate for your application. They should remain commented.
# chkconfig: 2345 20 80
# description: @app.long.name@
-
-# Initialization block for the install_initd and remove_initd scripts used by
-# SUSE linux distributions.
-### BEGIN INIT INFO
-# Provides: @app.name@
-# Required-Start: $local_fs $network $syslog
-# Should-Start:
-# Required-Stop:
-# Default-Start: 2 3 4 5
-# Default-Stop: 0 1 6
-# Short-Description: @app.long.name@
-# Description: @app.description@
-### END INIT INFO
# Set run level to use when installing the application to start and stop on
# system startup and shutdown. It is important that the application always
Modified: trunk/wrapper/src/c/property.c
===================================================================
--- trunk/wrapper/src/c/property.c 2015-08-18 01:29:57 UTC (rev 1930)
+++ trunk/wrapper/src/c/property.c 2015-08-19 04:38:16 UTC (rev 1931)
@@ -1169,7 +1169,9 @@
insertInnerProperty(properties, property);
} else {
logLevelOnOverwrite = GetLogLevelOnOverwrite(properties);
- if (logLevelOnOverwrite < LEVEL_NONE) { /* Don't log anything on preload (logLevelOnOverwrite = LEVEL_NONE). */
+ /* On preload the loglevel is set to NONE, then it is set by default to DEBUG on the second load.
+ * We don't want to log anything nor to stop the Wrapper on preload so we test if logLevelOnOverwrite < LEVEL_NONE). */
+ if (logLevelOnOverwrite < LEVEL_NONE) {
/* The property was already set. Only change it if non final */
if (property->internal) {
setValue = FALSE;
Modified: trunk/wrapper/src/c/wrapper.c
===================================================================
--- trunk/wrapper/src/c/wrapper.c 2015-08-18 01:29:57 UTC (rev 1930)
+++ trunk/wrapper/src/c/wrapper.c 2015-08-19 04:38:16 UTC (rev 1931)
@@ -734,7 +734,39 @@
}
+/**
+ * This function provides a log file after proloading the properties.
+ * It will load all configurations related to the logging (loglevel, format, etc.).
+ * For standard editions, it helps us to resolve the language, if specified in the conf file.
+ * @return TRUE if something failed.
+ */
+int wrapperPreLoadConfigurationProperties() {
+ int returnVal;
+ returnVal = TRUE;
+ /* Load log file */
+ wrapperLoadLoggingProperties(TRUE);
+
+ /* As soon as the logging is loaded see if we are in a translate call. If so we need to reset the log levels to silent mode. */
+ if (!strcmpIgnoreCase(wrapperData->argCommand, TEXT("-translate"))) {
+ setSilentLogLevels();
+ }
+
+ wrapperAddDefaultProperties();
+ if (wrapperData->workingDir && wrapperData->originalWorkingDir) {
+ if (wrapperSetWorkingDir(wrapperData->originalWorkingDir, FALSE)) {
+ /* Failed to restore the working dir. Shutdown the Wrapper */
+ returnVal = TRUE;
+ }
+ }
+
+ if (properties) {
+ disposeProperties(properties);
+ properties = NULL;
+ }
+ return returnVal;
+}
+
/**
* Load the configuration.
*
@@ -909,6 +941,8 @@
/* The properties have just been loaded. */
if (preload == TRUE) {
+ /* If we are in preload mode, we want to enable log warning messages here so everything below this point has propper warnings. */
+ setLogPropertyWarnings(properties, TRUE);
} else if (properties->overwrittenPropertyCausedExit) {
return TRUE; /* will cause the wrapper to exit with error code 1 */
}
@@ -969,6 +1003,9 @@
return TRUE;
}
+ /* We are only preloading */
+ if (preload == TRUE) {
+ /* this affects basically language specific variables */
if (wrapperData->umask == -1) {
/** Get the umask value for the various files. */
#ifdef WIN32
@@ -989,6 +1026,8 @@
wrapperData->javaStatusFileUmask = getIntProperty(properties, TEXT("wrapper.java.statusfile.umask"), wrapperData->umask);
wrapperData->anchorFileUmask = getIntProperty(properties, TEXT("wrapper.anchorfile.umask"), wrapperData->umask);
setLogfileUmask(getIntProperty(properties, TEXT("wrapper.logfile.umask"), wrapperData->umask));
+ return wrapperPreLoadConfigurationProperties();
+ }
#ifndef WIN32
/** If in the first call here and the wrapper will deamonize, then we don't need
* to proceed any further anymore as the properties will be loaded properly at
Modified: trunk/wrapper/src/c/wrapper_file.c
===================================================================
--- trunk/wrapper/src/c/wrapper_file.c 2015-08-18 01:29:57 UTC (rev 1930)
+++ trunk/wrapper/src/c/wrapper_file.c 2015-08-19 04:38:16 UTC (rev 1931)
@@ -253,8 +253,8 @@
}
if (depth == 0 && !reader->preload) {
- /* On the community edition, all messages will appear on loading the configuration file because there is no preload. So we shouldn't log if there is no directive. */
- reader->logLevelOnOverwrite = LEVEL_NONE;
+ /* At least log with LEVEL_DEBUG to help support. */
+ reader->logLevelOnOverwrite = LEVEL_DEBUG;
}
/* Read all of the configurations */
@@ -511,10 +511,14 @@
trimmedBuffer += 34;
logLevelOnOverwrite = getLogLevelForName(trimmedBuffer);
if (logLevelOnOverwrite >= LEVEL_NONE ) {
- /* On the community edition, all messages will appear on loading the configuration file because there is no preload. So we shouldn't log if there is no directive. */
- reader->logLevelOnOverwrite = LEVEL_NONE;
+ /* At least log with LEVEL_DEBUG to help support. */
+ reader->logLevelOnOverwrite = LEVEL_DEBUG;
} else if (logLevelOnOverwrite != LEVEL_UNKNOWN) {
reader->logLevelOnOverwrite = logLevelOnOverwrite;
+ } else {
+ log_printf(WRAPPER_SOURCE_WRAPPER, LEVEL_WARN,
+ TEXT("Encountered an invalid value for directive #properties.on_overwrite.loglevel=%s (line %d)\n Ignoring this directive."),
+ trimmedBuffer, lineNumber);
}
} else if (strcmpIgnoreCase(trimmedBuffer, TEXT("#properties.debug")) == 0) {
reader->logLevelOnOverwrite = LEVEL_STATUS;
Modified: trunk/wrapper/src/c/wrapper_unix.c
===================================================================
--- trunk/wrapper/src/c/wrapper_unix.c 2015-08-18 01:29:57 UTC (rev 1930)
+++ trunk/wrapper/src/c/wrapper_unix.c 2015-08-19 04:38:16 UTC (rev 1931)
@@ -1990,6 +1990,11 @@
}
/* Load the properties. */
+ /* To make the WRAPPER_LANG references in the configuration work correctly,
+ * it is necessary to load the configuration twice.
+ * The first time, we want to ignore the return value. Any errors will be
+ * suppressed and will get reported again the second time through. */
+ wrapperLoadConfigurationProperties(TRUE);
if (wrapperLoadConfigurationProperties(FALSE)) {
/* Unable to load the configuration. Any errors will have already
* been reported. */
Modified: trunk/wrapper/src/c/wrapper_win.c
===================================================================
--- trunk/wrapper/src/c/wrapper_win.c 2015-08-18 01:29:57 UTC (rev 1930)
+++ trunk/wrapper/src/c/wrapper_win.c 2015-08-19 04:38:16 UTC (rev 1931)
@@ -6543,6 +6543,11 @@
}
/* Load the properties. */
+ /* To make the WRAPPER_LANG references in the configuration work correctly,
+ * it is necessary to load the configuration twice.
+ * The first time, we want to ignore the return value. Any errors will be
+ * suppressed and will get reported again the second time through. */
+ wrapperLoadConfigurationProperties(TRUE);
if (wrapperLoadConfigurationProperties(FALSE)) {
/* Unable to load the configuration. Any errors will have already
* been reported. */
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <mor...@us...> - 2015-08-18 01:30:00
|
Revision: 1930
http://sourceforge.net/p/wrapper/code/1930
Author: mortenson
Date: 2015-08-18 01:29:57 +0000 (Tue, 18 Aug 2015)
Log Message:
-----------
Add new setup bat file.
Added Paths:
-----------
trunk/wrapper/src/bin/SetupApp.bat.in
Added: trunk/wrapper/src/bin/SetupApp.bat.in
===================================================================
--- trunk/wrapper/src/bin/SetupApp.bat.in (rev 0)
+++ trunk/wrapper/src/bin/SetupApp.bat.in 2015-08-18 01:29:57 UTC (rev 1930)
@@ -0,0 +1,135 @@
+@echo off
+setlocal
+
+rem
+rem Copyright (c) 1999, 2015 Tanuki Software, Ltd.
+rem http://www.tanukisoftware.com
+rem All rights reserved.
+rem
+rem This software is the proprietary information of Tanuki Software.
+rem You shall use it only in accordance with the terms of the
+rem license agreement you entered into with Tanuki Software.
+rem http://wrapper.tanukisoftware.com/doc/english/licenseOverview.html
+rem
+rem Java Service Wrapper general startup script.
+rem
+
+rem -----------------------------------------------------------------------------
+rem These settings can be modified to fit the needs of your application
+rem Optimized for use with version 3.5.27 of the Wrapper.
+
+rem The base name for the Wrapper binary.
+set _WRAPPER_BASE=wrapper
+
+rem The directory where the Wrapper binary (.exe) file is located. It can be
+rem either an absolute or a relative path. If the path contains any special
+rem characters, please make sure to quote the variable.
+set _WRAPPER_DIR=
+
+rem The name and location of the Wrapper configuration file. This will be used
+rem if the user does not specify a configuration file as the first parameter to
+rem this script.
+set _WRAPPER_CONF_DEFAULT="../conf/%_WRAPPER_BASE%.conf"
+
+rem Makes it possible to override the Wrapper configuration file by specifying it
+rem as the first parameter.
+rem set _WRAPPER_CONF_OVERRIDE=true
+
+rem Note that it is only possible to pass parameters through to the JVM when
+rem installing the service, or when running in a console.
+
+rem Do not modify anything beyond this point
+rem -----------------------------------------------------------------------------
+
+rem
+rem Resolve the real path of the wrapper.exe
+rem For non NT systems, the _REALPATH and _WRAPPER_CONF values
+rem can be hard-coded below and the following test removed.
+rem
+if "%OS%"=="Windows_NT" goto nt
+echo This script only works with NT-based versions of Windows.
+goto :eof
+
+:nt
+rem Find the application home.
+rem if no path path specified do the default action
+IF not DEFINED _WRAPPER_DIR goto dir_undefined
+set _WRAPPER_DIR_QUOTED="%_WRAPPER_DIR:"=%"
+if not "%_WRAPPER_DIR:~-2,1%" == "\" set _WRAPPER_DIR_QUOTED="%_WRAPPER_DIR_QUOTED:"=%\"
+rem check if absolute path
+if "%_WRAPPER_DIR_QUOTED:~2,1%" == ":" goto absolute_path
+if "%_WRAPPER_DIR_QUOTED:~1,1%" == "\" goto absolute_path
+rem everythig else means relative path
+set _REALPATH="%~dp0%_WRAPPER_DIR_QUOTED:"=%"
+goto pathfound
+
+:dir_undefined
+rem Use a relative path to the wrapper %~dp0 is location of current script under NT
+set _REALPATH="%~dp0"
+goto pathfound
+:absolute_path
+rem Use an absolute path to the wrapper
+set _REALPATH="%_WRAPPER_DIR_QUOTED:"=%"
+
+:pathfound
+rem
+rem Decide on the specific Wrapper binary to use (See delta-pack)
+rem
+if "%PROCESSOR_ARCHITEW6432%"=="AMD64" goto amd64
+if "%PROCESSOR_ARCHITECTURE%"=="AMD64" goto amd64
+if "%PROCESSOR_ARCHITECTURE%"=="IA64" goto ia64
+set _WRAPPER_L_EXE="%_REALPATH:"=%%_WRAPPER_BASE%-windows-x86-32.exe"
+goto search
+:amd64
+set _WRAPPER_L_EXE="%_REALPATH:"=%%_WRAPPER_BASE%-windows-x86-64.exe"
+goto search
+:ia64
+set _WRAPPER_L_EXE="%_REALPATH:"=%%_WRAPPER_BASE%-windows-ia-64.exe"
+goto search
+:search
+set _WRAPPER_EXE="%_WRAPPER_L_EXE:"=%"
+if exist %_WRAPPER_EXE% goto conf
+set _WRAPPER_EXE="%_REALPATH:"=%%_WRAPPER_BASE%.exe"
+if exist %_WRAPPER_EXE% goto conf
+echo Unable to locate a Wrapper executable using any of the following names:
+echo %_WRAPPER_L_EXE%
+echo %_WRAPPER_EXE%
+pause
+goto :eof
+
+rem
+rem Find the wrapper.conf
+rem
+:conf
+if [%_WRAPPER_CONF_OVERRIDE%]==[true] (
+ set _WRAPPER_CONF="%~f1"
+ if not [%_WRAPPER_CONF%]==[""] (
+ shift
+ goto :startup
+ )
+)
+set _WRAPPER_CONF="%_WRAPPER_CONF_DEFAULT:"=%"
+
+rem
+rem Start the Wrapper
+rem
+:startup
+if not [%_PASS_THROUGH%]==[true] (
+ if not [%1]==[] (
+ echo WARNING: Extra arguments will be ignored. Please check usage in the batch file.
+ )
+)
+
+rem Collect the application parameters
+:parameters
+set _PARAMETERS=%_PARAMETERS% %1
+shift
+if not [%1]==[] goto :parameters
+
+if not [%_PASS_THROUGH%]==[true] (
+ %_WRAPPER_EXE% -su %_WRAPPER_CONF%
+) else (
+ %_WRAPPER_EXE% -su %_WRAPPER_CONF% -- %_PARAMETERS%
+)
+if not errorlevel 1 goto :eof
+pause
Property changes on: trunk/wrapper/src/bin/SetupApp.bat.in
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <mor...@us...> - 2015-08-18 01:26:47
|
Revision: 1929
http://sourceforge.net/p/wrapper/code/1929
Author: mortenson
Date: 2015-08-18 01:26:45 +0000 (Tue, 18 Aug 2015)
Log Message:
-----------
Update release notes.
Modified Paths:
--------------
trunk/wrapper/doc/revisions.txt
Modified: trunk/wrapper/doc/revisions.txt
===================================================================
--- trunk/wrapper/doc/revisions.txt 2015-08-17 05:17:45 UTC (rev 1928)
+++ trunk/wrapper/doc/revisions.txt 2015-08-18 01:26:45 UTC (rev 1929)
@@ -54,11 +54,9 @@
* Fix a problem on AIX with OpenJRE where the wrapper failed to load the
native library. The native library now has a '.so' extension like on other
UNIX platforms.
-* Fix a problem on HP-UX when listing HostIds with the 32-bit version of the
- Wrapper. If several HostIds are available on the machine, the wrapper could
- only get the first one and reported DLPI errors when attempting to get the
- others. This issue remains in the 64-bit version and will be corrected in
- a future release.
+* Fix a problem on HP-UX when listing HostIds. If several HostIds were
+ available on the machine, the wrapper could only get the first one and
+ reported DLPI errors when attempting to get the others.
3.5.26
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <mor...@us...> - 2015-08-17 05:17:47
|
Revision: 1928
http://sourceforge.net/p/wrapper/code/1928
Author: mortenson
Date: 2015-08-17 05:17:45 +0000 (Mon, 17 Aug 2015)
Log Message:
-----------
Work on 3.5.27 release.
Modified Paths:
--------------
trunk/wrapper/build.xml
Modified: trunk/wrapper/build.xml
===================================================================
--- trunk/wrapper/build.xml 2015-08-17 04:59:14 UTC (rev 1927)
+++ trunk/wrapper/build.xml 2015-08-17 05:17:45 UTC (rev 1928)
@@ -56,9 +56,9 @@
<equals arg1="${os.name}" arg2="Windows 2003"/>
<equals arg1="${os.name}" arg2="Windows Vista"/>
<equals arg1="${os.name}" arg2="Windows 7"/>
- <equals arg1="${os.name}" arg2="Windows 8"/>
+ <equals arg1="${os.name}" arg2="Windows 8"/>
<equals arg1="${os.name}" arg2="Windows Server 2008"/>
- <equals arg1="${os.name}" arg2="Windows Server 2008 R2"/>
+ <equals arg1="${os.name}" arg2="Windows Server 2008 R2"/>
<equals arg1="${os.name}" arg2="Windows Server 2012"/>
</or>
</condition>
@@ -315,14 +315,14 @@
<condition property="vcvars.bat.arg.1" value="${vcvars.v8_x86_64_5.arg.1}">
<equals arg1="${vcvars.bat}" arg2="${vcvars.v8_x86_64_5}"/>
</condition>
- <condition property="vcvars.bat" value="${vcvars.v8_x86_64_6}">
+ <condition property="vcvars.bat" value="${vcvars.v8_x86_64_6}">
<and>
<equals arg1="${bits}" arg2="64"/>
<equals arg1="${dist.arch}" arg2="x86"/>
<available file="${vcvars.v8_x86_64_6}"/>
</and>
</condition>
- <condition property="vcvars.bat" value="${vcvars.v8_x86_64_7}">
+ <condition property="vcvars.bat" value="${vcvars.v8_x86_64_7}">
<and>
<equals arg1="${bits}" arg2="64"/>
<equals arg1="${dist.arch}" arg2="x86"/>
@@ -1210,6 +1210,7 @@
<include name="src/c/*.c" />
<include name="src/c/*.c.in" />
<include name="src/c/*.h" />
+ <include name="src/c/*.inc" />
<include name="src/c/Makefile-*" />
<include name="src/c/*.mak" />
<exclude name="src/c/WrapperJNI*.mak" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <mor...@us...> - 2015-08-17 04:59:16
|
Revision: 1927
http://sourceforge.net/p/wrapper/code/1927
Author: mortenson
Date: 2015-08-17 04:59:14 +0000 (Mon, 17 Aug 2015)
Log Message:
-----------
Work on 3.5.27 release.
Modified Paths:
--------------
trunk/wrapper/README_de.txt
trunk/wrapper/README_en.txt
trunk/wrapper/README_es.txt
trunk/wrapper/README_ja.txt
trunk/wrapper/default.properties
trunk/wrapper/src/bin/App.bat.in
trunk/wrapper/src/bin/AppCommand.bat.in
trunk/wrapper/src/bin/AppTemplate.bat.in
trunk/wrapper/src/bin/AppTemplatePassThrough.bat.in
trunk/wrapper/src/bin/InstallApp-NT.bat.in
trunk/wrapper/src/bin/PauseApp-NT.bat.in
trunk/wrapper/src/bin/QueryApp-NT.bat.in
trunk/wrapper/src/bin/ResumeApp-NT.bat.in
trunk/wrapper/src/bin/StartApp-NT.bat.in
trunk/wrapper/src/bin/StopApp-NT.bat.in
trunk/wrapper/src/bin/UninstallApp-NT.bat.in
trunk/wrapper/src/bin/sh.script.in
trunk/wrapper/src/c/Wrapper.rc
Modified: trunk/wrapper/README_de.txt
===================================================================
--- trunk/wrapper/README_de.txt 2015-08-17 04:10:56 UTC (rev 1926)
+++ trunk/wrapper/README_de.txt 2015-08-17 04:59:14 UTC (rev 1927)
@@ -1,5 +1,5 @@
-----------------------------------------------------------------------------
-Java Service Wrapper Community Edition 3.5.27-a
+Java Service Wrapper Community Edition 3.5.27
Copyright (C) 1999-2015 Tanuki Software, Ltd. All Rights Reserved.
http://wrapper.tanukisoftware.com
-----------------------------------------------------------------------------
Modified: trunk/wrapper/README_en.txt
===================================================================
--- trunk/wrapper/README_en.txt 2015-08-17 04:10:56 UTC (rev 1926)
+++ trunk/wrapper/README_en.txt 2015-08-17 04:59:14 UTC (rev 1927)
@@ -1,5 +1,5 @@
-----------------------------------------------------------------------------
-Java Service Wrapper Community Edition 3.5.27-a
+Java Service Wrapper Community Edition 3.5.27
Copyright (C) 1999-2015 Tanuki Software, Ltd. All Rights Reserved.
http://wrapper.tanukisoftware.com
-----------------------------------------------------------------------------
Modified: trunk/wrapper/README_es.txt
===================================================================
--- trunk/wrapper/README_es.txt 2015-08-17 04:10:56 UTC (rev 1926)
+++ trunk/wrapper/README_es.txt 2015-08-17 04:59:14 UTC (rev 1927)
@@ -1,5 +1,5 @@
-----------------------------------------------------------------------------
-Java Service Wrapper Community Edition 3.5.27-a
+Java Service Wrapper Community Edition 3.5.27
Copyright (C) 1999-2015 Tanuki Software, Ltd. All Rights Reserved.
http://wrapper.tanukisoftware.com
-----------------------------------------------------------------------------
Modified: trunk/wrapper/README_ja.txt
===================================================================
--- trunk/wrapper/README_ja.txt 2015-08-17 04:10:56 UTC (rev 1926)
+++ trunk/wrapper/README_ja.txt 2015-08-17 04:59:14 UTC (rev 1927)
@@ -1,5 +1,5 @@
-----------------------------------------------------------------------------
-Java Service Wrapper Community Edition 3.5.27-a
+Java Service Wrapper Community Edition 3.5.27
Copyright (C) 1999-2015 Tanuki Software, Ltd. All Rights Reserved.
http://wrapper.tanukisoftware.com
-----------------------------------------------------------------------------
Modified: trunk/wrapper/default.properties
===================================================================
--- trunk/wrapper/default.properties 2015-08-17 04:10:56 UTC (rev 1926)
+++ trunk/wrapper/default.properties 2015-08-17 04:59:14 UTC (rev 1927)
@@ -8,9 +8,9 @@
name = wrapper
Name = Wrapper
long.name = Java Service Wrapper Community ${Version}
-Version = 3.5.27-a
+Version = 3.5.27
version = ${Version}
-version.root = 3.5.27-a
+version.root = 3.5.27
year = 2015
# NOTE - The version property gets corrupted by the use of Xalan
# so Version is used instead.
Modified: trunk/wrapper/src/bin/App.bat.in
===================================================================
--- trunk/wrapper/src/bin/App.bat.in 2015-08-17 04:10:56 UTC (rev 1926)
+++ trunk/wrapper/src/bin/App.bat.in 2015-08-17 04:59:14 UTC (rev 1927)
@@ -16,7 +16,7 @@
rem -----------------------------------------------------------------------------
rem These settings can be modified to fit the needs of your application
-rem Optimized for use with version 3.5.27-a of the Wrapper.
+rem Optimized for use with version 3.5.27 of the Wrapper.
rem The base name for the Wrapper binary.
set _WRAPPER_BASE=wrapper
Modified: trunk/wrapper/src/bin/AppCommand.bat.in
===================================================================
--- trunk/wrapper/src/bin/AppCommand.bat.in 2015-08-17 04:10:56 UTC (rev 1926)
+++ trunk/wrapper/src/bin/AppCommand.bat.in 2015-08-17 04:59:14 UTC (rev 1927)
@@ -16,7 +16,7 @@
rem -----------------------------------------------------------------------------
rem These settings can be modified to fit the needs of your application
-rem Optimized for use with version 3.5.27-a of the Wrapper.
+rem Optimized for use with version 3.5.27 of the Wrapper.
rem The base name for the Wrapper binary.
set _WRAPPER_BASE=wrapper
Modified: trunk/wrapper/src/bin/AppTemplate.bat.in
===================================================================
--- trunk/wrapper/src/bin/AppTemplate.bat.in 2015-08-17 04:10:56 UTC (rev 1926)
+++ trunk/wrapper/src/bin/AppTemplate.bat.in 2015-08-17 04:59:14 UTC (rev 1927)
@@ -16,7 +16,7 @@
rem -----------------------------------------------------------------------------
rem These settings can be modified to fit the needs of your application
-rem Optimized for use with version 3.5.27-a of the Wrapper.
+rem Optimized for use with version 3.5.27 of the Wrapper.
rem The base name for the Wrapper binary.
set _WRAPPER_BASE=wrapper
Modified: trunk/wrapper/src/bin/AppTemplatePassThrough.bat.in
===================================================================
--- trunk/wrapper/src/bin/AppTemplatePassThrough.bat.in 2015-08-17 04:10:56 UTC (rev 1926)
+++ trunk/wrapper/src/bin/AppTemplatePassThrough.bat.in 2015-08-17 04:59:14 UTC (rev 1927)
@@ -16,7 +16,7 @@
rem -----------------------------------------------------------------------------
rem These settings can be modified to fit the needs of your application
-rem Optimized for use with version 3.5.27-a of the Wrapper.
+rem Optimized for use with version 3.5.27 of the Wrapper.
rem The base name for the Wrapper binary.
set _WRAPPER_BASE=wrapper
Modified: trunk/wrapper/src/bin/InstallApp-NT.bat.in
===================================================================
--- trunk/wrapper/src/bin/InstallApp-NT.bat.in 2015-08-17 04:10:56 UTC (rev 1926)
+++ trunk/wrapper/src/bin/InstallApp-NT.bat.in 2015-08-17 04:59:14 UTC (rev 1927)
@@ -16,7 +16,7 @@
rem -----------------------------------------------------------------------------
rem These settings can be modified to fit the needs of your application
-rem Optimized for use with version 3.5.27-a of the Wrapper.
+rem Optimized for use with version 3.5.27 of the Wrapper.
rem The base name for the Wrapper binary.
set _WRAPPER_BASE=wrapper
Modified: trunk/wrapper/src/bin/PauseApp-NT.bat.in
===================================================================
--- trunk/wrapper/src/bin/PauseApp-NT.bat.in 2015-08-17 04:10:56 UTC (rev 1926)
+++ trunk/wrapper/src/bin/PauseApp-NT.bat.in 2015-08-17 04:59:14 UTC (rev 1927)
@@ -16,7 +16,7 @@
rem -----------------------------------------------------------------------------
rem These settings can be modified to fit the needs of your application
-rem Optimized for use with version 3.5.27-a of the Wrapper.
+rem Optimized for use with version 3.5.27 of the Wrapper.
rem The base name for the Wrapper binary.
set _WRAPPER_BASE=wrapper
Modified: trunk/wrapper/src/bin/QueryApp-NT.bat.in
===================================================================
--- trunk/wrapper/src/bin/QueryApp-NT.bat.in 2015-08-17 04:10:56 UTC (rev 1926)
+++ trunk/wrapper/src/bin/QueryApp-NT.bat.in 2015-08-17 04:59:14 UTC (rev 1927)
@@ -16,7 +16,7 @@
rem -----------------------------------------------------------------------------
rem These settings can be modified to fit the needs of your application
-rem Optimized for use with version 3.5.27-a of the Wrapper.
+rem Optimized for use with version 3.5.27 of the Wrapper.
rem The base name for the Wrapper binary.
set _WRAPPER_BASE=wrapper
Modified: trunk/wrapper/src/bin/ResumeApp-NT.bat.in
===================================================================
--- trunk/wrapper/src/bin/ResumeApp-NT.bat.in 2015-08-17 04:10:56 UTC (rev 1926)
+++ trunk/wrapper/src/bin/ResumeApp-NT.bat.in 2015-08-17 04:59:14 UTC (rev 1927)
@@ -16,7 +16,7 @@
rem -----------------------------------------------------------------------------
rem These settings can be modified to fit the needs of your application
-rem Optimized for use with version 3.5.27-a of the Wrapper.
+rem Optimized for use with version 3.5.27 of the Wrapper.
rem The base name for the Wrapper binary.
set _WRAPPER_BASE=wrapper
Modified: trunk/wrapper/src/bin/StartApp-NT.bat.in
===================================================================
--- trunk/wrapper/src/bin/StartApp-NT.bat.in 2015-08-17 04:10:56 UTC (rev 1926)
+++ trunk/wrapper/src/bin/StartApp-NT.bat.in 2015-08-17 04:59:14 UTC (rev 1927)
@@ -16,7 +16,7 @@
rem -----------------------------------------------------------------------------
rem These settings can be modified to fit the needs of your application
-rem Optimized for use with version 3.5.27-a of the Wrapper.
+rem Optimized for use with version 3.5.27 of the Wrapper.
rem The base name for the Wrapper binary.
set _WRAPPER_BASE=wrapper
Modified: trunk/wrapper/src/bin/StopApp-NT.bat.in
===================================================================
--- trunk/wrapper/src/bin/StopApp-NT.bat.in 2015-08-17 04:10:56 UTC (rev 1926)
+++ trunk/wrapper/src/bin/StopApp-NT.bat.in 2015-08-17 04:59:14 UTC (rev 1927)
@@ -16,7 +16,7 @@
rem -----------------------------------------------------------------------------
rem These settings can be modified to fit the needs of your application
-rem Optimized for use with version 3.5.27-a of the Wrapper.
+rem Optimized for use with version 3.5.27 of the Wrapper.
rem The base name for the Wrapper binary.
set _WRAPPER_BASE=wrapper
Modified: trunk/wrapper/src/bin/UninstallApp-NT.bat.in
===================================================================
--- trunk/wrapper/src/bin/UninstallApp-NT.bat.in 2015-08-17 04:10:56 UTC (rev 1926)
+++ trunk/wrapper/src/bin/UninstallApp-NT.bat.in 2015-08-17 04:59:14 UTC (rev 1927)
@@ -16,7 +16,7 @@
rem -----------------------------------------------------------------------------
rem These settings can be modified to fit the needs of your application
-rem Optimized for use with version 3.5.27-a of the Wrapper.
+rem Optimized for use with version 3.5.27 of the Wrapper.
rem The base name for the Wrapper binary.
set _WRAPPER_BASE=wrapper
Modified: trunk/wrapper/src/bin/sh.script.in
===================================================================
--- trunk/wrapper/src/bin/sh.script.in 2015-08-17 04:10:56 UTC (rev 1926)
+++ trunk/wrapper/src/bin/sh.script.in 2015-08-17 04:59:14 UTC (rev 1927)
@@ -16,7 +16,7 @@
#-----------------------------------------------------------------------------
# These settings can be modified to fit the needs of your application
-# Optimized for use with version 3.5.27-a of the Wrapper.
+# Optimized for use with version 3.5.27 of the Wrapper.
# IMPORTANT - Please always stop and uninstall an application before making
# any changes to this file. Failure to do so could remove the
@@ -963,7 +963,7 @@
prepAdditionalParams "$@"
# The string passed to eval must handles spaces in paths correctly.
- COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" wrapper.syslog.ident=\"$APP_NAME\" wrapper.pidfile=\"$PIDFILE\" wrapper.daemonize=TRUE $APPNAMEPROP $ANCHORPROP $IGNOREPROP $STATUSPROP $COMMANDPROP $LOCKPROP wrapper.script.version=3.5.27-a $ADDITIONAL_PARA"
+ COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" wrapper.syslog.ident=\"$APP_NAME\" wrapper.pidfile=\"$PIDFILE\" wrapper.daemonize=TRUE $APPNAMEPROP $ANCHORPROP $IGNOREPROP $STATUSPROP $COMMANDPROP $LOCKPROP wrapper.script.version=3.5.27 $ADDITIONAL_PARA"
eval $COMMAND_LINE
else
eval echo `gettext '$APP_LONG_NAME is already running.'`
@@ -986,7 +986,7 @@
prepAdditionalParams "$@"
# The string passed to eval must handles spaces in paths correctly.
- COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" wrapper.syslog.ident=\"$APP_NAME\" wrapper.pidfile=\"$PIDFILE\" $APPNAMEPROP $ANCHORPROP $STATUSPROP $COMMANDPROP $LOCKPROP wrapper.script.version=3.5.27-a $ADDITIONAL_PARA"
+ COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" wrapper.syslog.ident=\"$APP_NAME\" wrapper.pidfile=\"$PIDFILE\" $APPNAMEPROP $ANCHORPROP $STATUSPROP $COMMANDPROP $LOCKPROP wrapper.script.version=3.5.27 $ADDITIONAL_PARA"
eval $COMMAND_LINE
else
eval echo `gettext '$APP_LONG_NAME is already running.'`
@@ -1239,7 +1239,7 @@
prepAdditionalParams "$@"
# The string passed to eval must handles spaces in paths correctly.
- COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" wrapper.syslog.ident=\"$APP_NAME\" wrapper.pidfile=\"$PIDFILE\" wrapper.daemonize=TRUE $APPNAMEPROP $ANCHORPROP $IGNOREPROP $STATUSPROP $COMMANDPROP $LOCKPROP wrapper.script.version=3.5.27-a $ADDITIONAL_PARA"
+ COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" wrapper.syslog.ident=\"$APP_NAME\" wrapper.pidfile=\"$PIDFILE\" wrapper.daemonize=TRUE $APPNAMEPROP $ANCHORPROP $IGNOREPROP $STATUSPROP $COMMANDPROP $LOCKPROP wrapper.script.version=3.5.27 $ADDITIONAL_PARA"
eval $COMMAND_LINE
else
eval echo `gettext '$APP_LONG_NAME is already running.'`
Modified: trunk/wrapper/src/c/Wrapper.rc
===================================================================
--- trunk/wrapper/src/c/Wrapper.rc 2015-08-17 04:10:56 UTC (rev 1926)
+++ trunk/wrapper/src/c/Wrapper.rc 2015-08-17 04:59:14 UTC (rev 1927)
@@ -70,7 +70,7 @@
BLOCK "000904b0"
BEGIN
VALUE "CompanyName", "Tanuki Software, Ltd."
- VALUE "FileDescription", "Java Service Wrapper Community Edition 3.5.27-a"
+ VALUE "FileDescription", "Java Service Wrapper Community Edition 3.5.27"
VALUE "FileVersion", "3, 5, 27, 0"
VALUE "LegalCopyright", "Copyright (C) 1999, 2015 Tanuki Software, Ltd. All rights reserved."
VALUE "InternalName", "wrapper"
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <mor...@us...> - 2015-08-17 04:10:59
|
Revision: 1926
http://sourceforge.net/p/wrapper/code/1926
Author: mortenson
Date: 2015-08-17 04:10:56 +0000 (Mon, 17 Aug 2015)
Log Message:
-----------
Work on 3.5.27 release.
Modified Paths:
--------------
trunk/wrapper/src/c/wrapperinfo.c.in
Modified: trunk/wrapper/src/c/wrapperinfo.c.in
===================================================================
--- trunk/wrapper/src/c/wrapperinfo.c.in 2015-08-17 04:08:19 UTC (rev 1925)
+++ trunk/wrapper/src/c/wrapperinfo.c.in 2015-08-17 04:10:56 UTC (rev 1926)
@@ -30,7 +30,7 @@
TCHAR *wrapperBits = TEXT("@bits@");
TCHAR *wrapperArch = TEXT("@dist.arch@");
TCHAR *wrapperOS = TEXT("@dist.os@");
-TCHAR *wrapperReleaseDate = TEXT("20150728");
+TCHAR *wrapperReleaseDate = TEXT("20150818");
TCHAR *wrapperReleaseTime = TEXT("0000");
TCHAR *wrapperBuildDate = TEXT("@build.date@");
TCHAR *wrapperBuildTime = TEXT("@build.time@");
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|