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
|
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. |
From: <mor...@us...> - 2015-08-17 04:08:24
|
Revision: 1925 http://sourceforge.net/p/wrapper/code/1925 Author: mortenson Date: 2015-08-17 04:08:19 +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/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/AppNoWrapper.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/Makefile-aix-ppc-32.make trunk/wrapper/src/c/Makefile-aix-ppc-64.make trunk/wrapper/src/c/Makefile-freebsd-x86-32.gmake trunk/wrapper/src/c/Makefile-freebsd-x86-64.gmake trunk/wrapper/src/c/Makefile-hpux-ia-32.make trunk/wrapper/src/c/Makefile-hpux-ia-64.make trunk/wrapper/src/c/Makefile-hpux-parisc-32.make trunk/wrapper/src/c/Makefile-hpux-parisc-64.make trunk/wrapper/src/c/Makefile-irix-mips-32.cc trunk/wrapper/src/c/Makefile-irix-mips-32.gmake trunk/wrapper/src/c/Makefile-linux-armel-32.make trunk/wrapper/src/c/Makefile-linux-armhf-32.make trunk/wrapper/src/c/Makefile-linux-ia-64.make trunk/wrapper/src/c/Makefile-linux-ppc-32.make trunk/wrapper/src/c/Makefile-linux-ppc-64.make trunk/wrapper/src/c/Makefile-linux-x86-32.make trunk/wrapper/src/c/Makefile-linux-x86-64.make trunk/wrapper/src/c/Makefile-macosx-universal-32.make trunk/wrapper/src/c/Makefile-macosx-universal-64.make trunk/wrapper/src/c/Makefile-osf1-alpha-64.gmake trunk/wrapper/src/c/Makefile-solaris-sparc-32.gmake trunk/wrapper/src/c/Makefile-solaris-sparc-64.gmake trunk/wrapper/src/c/Makefile-solaris-x86-32.gmake trunk/wrapper/src/c/Makefile-solaris-x86-64.gmake 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/logger.h trunk/wrapper/src/c/logger_base.h trunk/wrapper/src/c/logger_file.c trunk/wrapper/src/c/logger_file.h trunk/wrapper/src/c/loggerjni.c trunk/wrapper/src/c/loggerjni.h trunk/wrapper/src/c/property.c trunk/wrapper/src/c/property.h trunk/wrapper/src/c/runnmake.bat trunk/wrapper/src/c/test_example.c trunk/wrapper/src/c/test_filter.c trunk/wrapper/src/c/test_hashmap.c trunk/wrapper/src/c/test_javaadditionalparam.c trunk/wrapper/src/c/testsuite.c trunk/wrapper/src/c/testsuite.h trunk/wrapper/src/c/wrapper.c trunk/wrapper/src/c/wrapper.h trunk/wrapper/src/c/wrapper_file.c trunk/wrapper/src/c/wrapper_file.h trunk/wrapper/src/c/wrapper_hashmap.c trunk/wrapper/src/c/wrapper_hashmap.h trunk/wrapper/src/c/wrapper_i18n.c trunk/wrapper/src/c/wrapper_i18n.h 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 trunk/wrapper/src/c/wrapperinfo.h trunk/wrapper/src/c/wrapperjni.c trunk/wrapper/src/c/wrapperjni.h trunk/wrapper/src/c/wrapperjni_unix.c trunk/wrapper/src/c/wrapperjni_win.c trunk/wrapper/src/java/org/tanukisoftware/wrapper/WrapperActionServer.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/WrapperGroup.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/WrapperInfo.java.in trunk/wrapper/src/java/org/tanukisoftware/wrapper/WrapperJNIError.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/WrapperJarApp.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/WrapperLicenseError.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/WrapperListener.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/WrapperManager.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/WrapperPrintStream.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/WrapperProcess.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/WrapperProcessConfig.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/WrapperProcessInputStream.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/WrapperProcessOutputStream.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/WrapperProperties.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/WrapperPropertyUtil.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/WrapperResources.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/WrapperServiceException.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/WrapperShuttingDownException.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/WrapperSimpleApp.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/WrapperStartStopApp.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/WrapperSystemPropertyUtil.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/WrapperUNIXGroup.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/WrapperUNIXUser.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/WrapperUser.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/WrapperWin32Group.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/WrapperWin32Service.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/WrapperWin32User.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/demo/AboutDialog.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/demo/CustomizeDialog.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/demo/DeadLock.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/demo/DemoApp.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/demo/DemoAppMainFrame.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/demo/ExtensionFilter.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/demo/MailDialog.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/event/WrapperControlEvent.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/event/WrapperCoreEvent.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/event/WrapperEvent.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/event/WrapperEventListener.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/event/WrapperLogFileChangedEvent.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/event/WrapperLoggingEvent.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/event/WrapperPingEvent.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/event/WrapperServiceActionEvent.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/event/WrapperServiceControlEvent.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/event/WrapperServiceEvent.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/event/WrapperServicePauseEvent.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/event/WrapperServiceResumeEvent.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/event/WrapperTickEvent.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/jmx/WrapperManager.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/jmx/WrapperManagerMBean.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/jmx/WrapperManagerTesting.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/jmx/WrapperManagerTestingMBean.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/security/WrapperEventPermission.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/security/WrapperPermission.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/security/WrapperServicePermission.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/security/WrapperUserEventPermission.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/test/AbstractActionApp.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/test/BackgroundThreads.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/test/ChildWrapper.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/test/DaemonThreads.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/test/DeadLockBase.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/test/DeadLockMixed.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/test/DeadLockObject.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/test/DeadLockReentrantLock.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/test/DeadlockPrintStream.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/test/DelayedIORestarter.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/test/EnvironmentVariables.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/test/ExecThrasher.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/test/Filter.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/test/GrowingLogOutput.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/test/HugeLogOutput.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/test/JarMain.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/test/LoadedGCOutput.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/test/LoadedLogOutput.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/test/LoadedSplitOutput.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/test/LoadedWrapperListener.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/test/LogOutput.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/test/LogStdoutStderr.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/test/LongRunningBackgroundThreads.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/test/Main.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/test/Memory.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/test/NestedWrapperListener.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/test/NoReturn.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/test/OnExit.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/test/OutputLoader.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/test/PercentOutput.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/test/Performance.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/test/PostShutdownGC.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/test/QuickComplete.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/test/Restarter.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/test/RuntimeExec.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/test/ShutdownHook.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/test/ShutdownLock.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/test/SimpleWrapperListener.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/test/SlowStop.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/test/StopWhileStarting.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/test/SystemProperty.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/test/TestUtils.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/test/TimedLogOutput.java trunk/wrapper/src/java/org/tanukisoftware/wrapper/test2/Jar2Main.java trunk/wrapper/src/test/org/tanukisoftware/wrapper/WrapperManagerSystemTimeTestCase.java Added Paths: ----------- trunk/wrapper/doc/wrapper-community-license-1.3.txt trunk/wrapper/src/c/makefile.inc trunk/wrapper/src/c/makefile.targ.inc Removed Paths: ------------- trunk/wrapper/doc/wrapper-community-license-1.2.txt Property Changed: ---------------- trunk/wrapper/src/c/ Modified: trunk/wrapper/README_de.txt =================================================================== --- trunk/wrapper/README_de.txt 2014-12-08 06:05:16 UTC (rev 1924) +++ trunk/wrapper/README_de.txt 2015-08-17 04:08:19 UTC (rev 1925) @@ -1,6 +1,6 @@ ----------------------------------------------------------------------------- Java Service Wrapper Community Edition 3.5.27-a -Copyright (C) 1999-2014 Tanuki Software, Ltd. All Rights Reserved. +Copyright (C) 1999-2015 Tanuki Software, Ltd. All Rights Reserved. http://wrapper.tanukisoftware.com ----------------------------------------------------------------------------- @@ -170,4 +170,4 @@ ----------------------------------------------------------------------------- -Copyright (C) 1999-2014 Tanuki Software, Ltd. All Rights Reserved. +Copyright (C) 1999-2015 Tanuki Software, Ltd. All Rights Reserved. Modified: trunk/wrapper/README_en.txt =================================================================== --- trunk/wrapper/README_en.txt 2014-12-08 06:05:16 UTC (rev 1924) +++ trunk/wrapper/README_en.txt 2015-08-17 04:08:19 UTC (rev 1925) @@ -1,6 +1,6 @@ ----------------------------------------------------------------------------- Java Service Wrapper Community Edition 3.5.27-a -Copyright (C) 1999-2014 Tanuki Software, Ltd. All Rights Reserved. +Copyright (C) 1999-2015 Tanuki Software, Ltd. All Rights Reserved. http://wrapper.tanukisoftware.com ----------------------------------------------------------------------------- @@ -161,4 +161,4 @@ ----------------------------------------------------------------------------- -Copyright (C) 1999-2014 Tanuki Software, Ltd. All Rights Reserved. +Copyright (C) 1999-2015 Tanuki Software, Ltd. All Rights Reserved. Modified: trunk/wrapper/README_es.txt =================================================================== --- trunk/wrapper/README_es.txt 2014-12-08 06:05:16 UTC (rev 1924) +++ trunk/wrapper/README_es.txt 2015-08-17 04:08:19 UTC (rev 1925) @@ -1,6 +1,6 @@ ----------------------------------------------------------------------------- Java Service Wrapper Community Edition 3.5.27-a -Copyright (C) 1999-2014 Tanuki Software, Ltd. All Rights Reserved. +Copyright (C) 1999-2015 Tanuki Software, Ltd. All Rights Reserved. http://wrapper.tanukisoftware.com ----------------------------------------------------------------------------- @@ -190,4 +190,4 @@ ----------------------------------------------------------------------------- -Copyright (C) 1999-2014 Tanuki Software, Ltd. All Rights Reserved. +Copyright (C) 1999-2015 Tanuki Software, Ltd. All Rights Reserved. Modified: trunk/wrapper/README_ja.txt =================================================================== --- trunk/wrapper/README_ja.txt 2014-12-08 06:05:16 UTC (rev 1924) +++ trunk/wrapper/README_ja.txt 2015-08-17 04:08:19 UTC (rev 1925) @@ -1,6 +1,6 @@ ----------------------------------------------------------------------------- Java Service Wrapper Community Edition 3.5.27-a -Copyright (C) 1999-2014 Tanuki Software, Ltd. All Rights Reserved. +Copyright (C) 1999-2015 Tanuki Software, Ltd. All Rights Reserved. http://wrapper.tanukisoftware.com ----------------------------------------------------------------------------- @@ -172,4 +172,4 @@ ----------------------------------------------------------------------------- -Copyright (C) 1999-2014 Tanuki Software, Ltd. All Rights Reserved. +Copyright (C) 1999-2015 Tanuki Software, Ltd. All Rights Reserved. Modified: trunk/wrapper/build-tests.xml =================================================================== --- trunk/wrapper/build-tests.xml 2014-12-08 06:05:16 UTC (rev 1924) +++ trunk/wrapper/build-tests.xml 2015-08-17 04:08:19 UTC (rev 1925) @@ -559,9 +559,8 @@ 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"> - importClass(java.io.File) echo = project.createTask("echo"); - echo.setFile(new File(project.getProperty("test.dir"), "hugeclasspathenvmaxsize-path.conf")); + 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"); @@ -593,9 +592,8 @@ 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"> - importClass(java.io.File) echo = project.createTask("echo"); - echo.setFile(new File(project.getProperty("test.dir"), "hugeclasspathenvoversize-path.conf")); + 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"); Modified: trunk/wrapper/build.xml =================================================================== --- trunk/wrapper/build.xml 2014-12-08 06:05:16 UTC (rev 1924) +++ trunk/wrapper/build.xml 2015-08-17 04:08:19 UTC (rev 1925) @@ -58,6 +58,8 @@ <equals arg1="${os.name}" arg2="Windows 7"/> <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 2012"/> </or> </condition> <condition property="dist.os" value="linux"> @@ -320,9 +322,16 @@ <available file="${vcvars.v8_x86_64_6}"/> </and> </condition> - <condition property="vcvars.bat" value="${vcvars.v8_ia_64_1}"> + <condition property="vcvars.bat" value="${vcvars.v8_x86_64_7}"> <and> <equals arg1="${bits}" arg2="64"/> + <equals arg1="${dist.arch}" arg2="x86"/> + <available file="${vcvars.v8_x86_64_7}"/> + </and> + </condition> + <condition property="vcvars.bat" value="${vcvars.v8_ia_64_1}"> + <and> + <equals arg1="${bits}" arg2="64"/> <equals arg1="${dist.arch}" arg2="ia"/> <available file="${vcvars.v8_ia_64_1}"/> </and> @@ -662,7 +671,25 @@ <equals arg1="${bits}" arg2="64"/> </condition> <property name="makefile" value="Makefile-windows-x86-32.nmake"/> + + <!-- architecture to be inserted in the manifest --> + <condition property="processor.architecture" value="ia64"> + <equals arg1="${dist.arch}" arg2="ia"/> + </condition> + <condition property="processor.architecture" value="amd64"> + <and> + <equals arg1="${dist.arch}" arg2="x86"/> + <equals arg1="${bits}" arg2="64"/> + </and> + </condition> + <property name="processor.architecture" value="x86"/> + <!-- Edit the manifest --> + <replace file="${src.dir}/c/wrapper.exe.manifest" token='SXS_ASSEMBLY_VERSION' value='"${version}"' /> + <replace file="${src.dir}/c/wrapper.exe.manifest" token='SXS_PROCESSOR_ARCHITECTURE' value='"${processor.architecture}"' /> + <replace file="${src.dir}/c/wrapper.dll.manifest" token='SXS_ASSEMBLY_VERSION' value='"${version}"' /> + <replace file="${src.dir}/c/wrapper.dll.manifest" token='SXS_PROCESSOR_ARCHITECTURE' value='"${processor.architecture}"' /> + <exec executable="${src.dir}/c/runnmake.bat" dir="${src.dir}/c" failonerror="true"> @@ -906,6 +933,10 @@ <copy file="${src.dir}/bin/QueryApp-NT.bat.in" tofile="${bin.dir}/Query${app.caps.name}-NT.bat" filtering="on"/> + + <copy file="${src.dir}/bin/SetupApp.bat.in" + tofile="${bin.dir}/Setup${app.caps.name}.bat" + filtering="on"/> </target> <!-- =================================================================== --> @@ -1194,10 +1225,11 @@ <include name="src/c/*.ico" /> <include name="src/c/*.bmp" /> <include name="src/c/*.bin" /> + <include name="src/c/*.manifest" /> <exclude name="**/CVS/*" /> </fileset> </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" /> @@ -1388,9 +1420,11 @@ <include name="jdoc/**" /> <include name="doc/**" /> <include name="conf/demoapp.conf" /> + <include name="src/c/*.manifest" /> <exclude name="**/CVS/*" /> </fileset> </copy> + <!-- Copy a fresh wrapper.conf rather than the development file --> <copy file="${src.dir}/conf/wrapper.conf.in" tofile="${releasedir}/conf/wrapper.conf" Modified: trunk/wrapper/default.properties =================================================================== --- trunk/wrapper/default.properties 2014-12-08 06:05:16 UTC (rev 1924) +++ trunk/wrapper/default.properties 2015-08-17 04:08:19 UTC (rev 1925) @@ -11,7 +11,7 @@ Version = 3.5.27-a version = ${Version} version.root = 3.5.27-a -year = 2014 +year = 2015 # NOTE - The version property gets corrupted by the use of Xalan # so Version is used instead. @@ -75,7 +75,8 @@ vcvars.v8_x86_64_4.arg.2=/RETAIL vcvars.v8_x86_64_5=C:\\Program Files\\Microsoft SDKs\\Windows\\v7.1\\Bin\\SetEnv.cmd vcvars.v8_x86_64_5.arg.1=/x64 -vcvars.v8_x86_64_6=c:\\Program Files (x86)\\Microsoft Visual Studio 11.0\\VC\\bin\\x86_amd64\\vcvarsx86_amd64.bat +vcvars.v8_x86_64_6=c:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\bin\\x86_amd64\\vcvarsx86_amd64.bat +vcvars.v8_x86_64_7=c:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\bin\\x86_amd64\\vcvarsx86_amd64.bat vcvars.v8_ia_64_1=c:\\Program Files\\Microsoft Platform SDK\\SetEnv.Cmd vcvars.v8_ia_64_1.arg.1=/SRV64 vcvars.v8_ia_64_1.arg.2=/RETAIL Modified: trunk/wrapper/doc/revisions.txt =================================================================== --- trunk/wrapper/doc/revisions.txt 2014-12-08 06:05:16 UTC (rev 1924) +++ trunk/wrapper/doc/revisions.txt 2015-08-17 04:08:19 UTC (rev 1925) @@ -1,6 +1,66 @@ Java Service Wrapper Revision History. -------------------------------------- +3.5.27 +* Fix a misleading error message when there is a problem processing a system + 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 + 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. +* Improve accuracy of status messages when installing, removing, starting, + stopping, resuming and pausing a Windows service. +* Improve the display of the available HostIds when calling 'wrapper -h'. +* 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 + 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 + (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 + 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). +* Modify the Community Edition license to allow the Wrapper to be integrated + and distributed with Products released under either the GPL version 2 or GPL + version 3 licenses. +* Include the PID of the Wrapper and Java processes in debug output. +* Fix a problem where the wrapper.jvm.port.min and wrapper.jvm.port.max + properties were being ignored. This meant that the defaults were always + being used. Since 3.5.26. +* Fix a very infrequent issue in which the Wrapper would produce an out of + memory error or fail when trying to get the path to the Wrapper on Windows + XP. +* Modify the wrapper.pausable and wrapper.pausable.stop_jvm properties so they + are no longer reloaded when wrapper.restart.reload_configuration=TRUE. +* Fix a bug when the child process printing the JVM version became a zombie + after completion (problem known on CentOS). Add property + wrapper.java.version.timeout to let the user set a timeout for the child + process to print the JVM version before being terminated. +* Avoid 4227 events in the Windows LogBook when using SOCKET values for the + wrapper.backend.type property. We now try to check the port status in + 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 + 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. + + 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. @@ -13,11 +73,13 @@ (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. -* Allow to control the service in systemd using the script file. -* Improve script file. Fix a typo. On MacOS, add another alternative way to - find Java and use full path to execute sysctl in case it's not in the path. - Thanks to Dannes Wessels for pointing this out. -* Fix a problem on newer version of Windows when customizing the Wrapper. +* Add the ability to control running 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 + out. +* Fix a problem on newer versions of Windows when customizing the Wrapper. The certificate was not removed when creating the target. This was leading to an error when trying to sign the target with a new certificate. * Add missing support in the shell script for restarting/stopping the Wrapper @@ -25,7 +87,7 @@ * Add missing support in the shell script for restarting/stopping the Wrapper service with Upstart. * Add the ability to set the path of the 'su' command as well as the ability - to specifiy additional options in the Wrapper shell script using new SU_BIN + to specify additional arguments in the Wrapper shell script using new SU_BIN and SU_OPTS variables. * Fix a problem in the WrapperSimpleApp, WrapperStartStopApp, and WrapperJarApp helper classes where command line problems that resulted in Deleted: trunk/wrapper/doc/wrapper-community-license-1.2.txt =================================================================== --- trunk/wrapper/doc/wrapper-community-license-1.2.txt 2014-12-08 06:05:16 UTC (rev 1924) +++ trunk/wrapper/doc/wrapper-community-license-1.2.txt 2015-08-17 04:08:19 UTC (rev 1925) @@ -1,396 +0,0 @@ ----------------------------------------------------------------------- ------------------ ----------------- - Tanuki Software, Ltd. - Community Software License Agreement - Version 1.2 - -IMPORTANT-READ CAREFULLY: This license agreement is a legal agreement -between you ("Licensee") and Tanuki Software, Ltd. ("TSI"), which -includes computer software, associated media, printed materials, and -may include online or electronic documentation ( Software ). PLEASE -READ THIS AGREEMENT CAREFULLY BEFORE YOU INSTALL, COPY, DOWNLOAD OR -USE THE SOFTWARE ACCOMPANYING THIS PACKAGE. - -Section 1 - Grant of License - -Community editions of the Software are made available on the GNU -General Public License, Version 2 ("GPLv2"), included in Section 4 of -this license document. All sections of the Community Software License -Agreement must be complied with in addition to those of the GPLv2. - - -Section 2 - Definitions - -2.1. "Community Edition" shall mean versions of the Software Program -distributed in source form under this license agreement, and all new -releases, corrections, enhancements and updates to the Software -Program, which TSI makes generally available under this agreement. - -2.2. "Documentation" shall mean the contents of the website -describing the functionality and use of the Software Program, located -at http://wrapper.tanukisoftware.org - -2.3. "Product" shall mean the computer programs, that are provided by -Licensee to Licensee customers or potential customers, and that -contain both the Software Program as a component of the Product, and a -component or components (other than the Software Program) that provide -the material functionality of the Product. If the Product is released -in source form, the Software Program or any of its components may only -be included in executable form. - -2.4. "Software Program" shall mean the computer software and license -file provided by TSI under this Agreement, including all new releases, -corrections, enhancements and updates to such computer software, which -TSI makes generally available and which Licensee receive pursuant to -Licensee subscription to TSIMS. Some specific features or platforms -may not be enabled if they do not fall under the feature set(s) -covered by the specific license fees paid. - -2.5 "End User" shall mean the customers of the Licensee or any -recipient of the Product whether or not any payment is made to use -the Product. - - -Section 3 - Licensee Obligations - -A copy of this license must be distributed in full with the Product -in a location that is obvious to any End User. - -In accordance with Section 4, the full source code of all components -of the Product must be made available to any and all End Users. - -Licensee may extend and/or modify the Software Program and distribute -under the terms of this agreement provided that the copyright notice -and license information displayed in the console and log files are -not obfuscated or obstructed in any way. - - -Section 4 - GPLv2 License Agreement - - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA - - Everyone is permitted to copy and distribute verbatim copies of - this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your - freedom to share and change it. By contrast, the GNU General - Public License is intended to guarantee your freedom to share and - change free software--to make sure the software is free for all - its users. This General Public License applies to most of the Free - Software Foundation's software and to any other program whose - authors commit to using it. (Some other Free Software Foundation - software is covered by the GNU Library General Public License - instead.) You can apply it to your programs, too. - - When we speak of free software, we are referring to freedom, not - price. Our General Public Licenses are designed to make sure that - you have the freedom to distribute copies of free software (and - charge for this service if you wish), that you receive source code - or can get it if you want it, that you can change the software or - use pieces of it in new free programs; and that you know you can - do these things. - - To protect your rights, we need to make restrictions that forbid - anyone to deny you these rights or to ask you to surrender the - rights. These restrictions translate to certain responsibilities - for you if you distribute copies of the software, or if you modify - it. - - For example, if you distribute copies of such a program, whether - gratis or for a fee, you must give the recipients all the rights - that you have. You must make sure that they, too, receive or can - get the source code. And you must show them these terms so they - know their rights. - - We protect your rights with two steps: - - (1) copyright the software, and - (2) offer you this license which gives you legal permission to - copy, distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make - certain that everyone understands that there is no warranty for - this free software. If the software is modified by someone else - and passed on, we want its recipients to know that what they have - is not the original, so that any problems introduced by others - will not reflect on the original authors' reputations. - - Finally, any free program is threatened constantly by software - patents. We wish to avoid the danger that redistributors of a free - program will individually obtain patent licenses, in effect making - the program proprietary. To prevent this, we have made it clear - that any patent must be licensed for everyone's free use or not - licensed at all. - - The precise terms and conditions for copying, distribution and - modification follow. - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which - contains a notice placed by the copyright holder saying it may be - distributed under the terms of this General Public License. The - "Program", below, refers to any such program or work, and a "work - based on the Program" means either the Program or any derivative - work under copyright law: that is to say, a work containing the - Program or a portion of it, either verbatim or with modifications - and/or translated into another language. (Hereinafter, translation - is included without limitation in the term "modification".) Each - licensee is addressed as "you". - - Activities other than copying, distribution and modification are - not covered by this License; they are outside its scope. The act - of running the Program is not restricted, and the output from the - Program is covered only if its contents constitute a work based on - the Program (independent of having been made by running the - Program). Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's - source code as you receive it, in any medium, provided that you - conspicuously and appropriately publish on each copy an - appropriate copyright notice and disclaimer of warranty; keep - intact all the notices that refer to this License and to the - absence of any warranty; and give any other recipients of the - Program a copy of this License along with the Program. - - You may charge a fee for the physical act of transferring a copy, - and you may at your option offer warranty protection in exchange - for a fee. - - 2. You may modify your copy or copies of the Program or any - portion of it, thus forming a work based on the Program, and copy - and distribute such modifications or work under the terms of - Section 1 above, provided that you also meet all of these - conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but does - not normally print such an announcement, your work based on the - Program is not required to print an announcement.) - - These requirements apply to the modified work as a whole. If - identifiable sections of that work are not derived from the - Program, and can be reasonably considered independent and separate - works in themselves, then this License, and its terms, do not - apply to those sections when you distribute them as separate works. - But when you distribute the same sections as part of a whole which - is a work based on the Program, the distribution of the whole must - be on the terms of this License, whose permissions for other - licensees extend to the entire whole, and thus to each and every - part regardless of who wrote it. - - Thus, it is not the intent of this section to claim rights or - contest your rights to work written entirely by you; rather, the - intent is to exercise the right to control the distribution of - derivative or collective works based on the Program. - - In addition, mere aggregation of another work not based on the - Program with the Program (or with a work based on the Program) on - a volume of a storage or distribution medium does not bring the - other work under the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, - under Section 2) in object code or executable form under the terms - of Sections 1 and 2 above provided that you also do one of the - following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software - interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - - The source code for a work means the preferred form of the work - for making modifications to it. For an executable work, complete - source code means all the source code for all modules it contains, - plus any associated interface definition files, plus the scripts - used to control compilation and installation of the executable. - However, as a special exception, the source code distributed need - not include anything that is normally distributed (in either - source or binary form) with the major components (compiler, - kernel, and so on) of the operating system on which the executable - runs, unless that component itself accompanies the executable. - - If distribution of executable or object code is made by offering - access to copy from a designated place, then offering equivalent - access to copy the source code from the same place counts as - distribution of the source code, even though third parties are not - compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program - except as expressly provided under this License. Any attempt - otherwise to copy, modify, sublicense or distribute the Program is - void, and will automatically terminate your rights under this - License. However, parties who have received copies, or rights, - from you under this License will not have their licenses - terminated so long as such parties remain in full compliance. - - 5. You are not required to accept this License, since you have not - signed it. However, nothing else grants you permission to modify - or distribute the Program or its derivative works. These actions - are prohibited by law if you do not accept this License. - Therefore, by modifying or distributing the Program (or any work - based on the Program), you indicate your acceptance of this - License to do so, and all its terms and conditions for copying, - distributing or modifying the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on - the Program), the recipient automatically receives a license from - the original licensor to copy, distribute or modify the Program - subject to these terms and conditions. You may not impose any - further restrictions on the recipients' exercise of the rights - granted herein. You are not responsible for enforcing compliance - by third parties to this License. - - 7. If, as a consequence of a court judgment or allegation of - patent infringement or for any other reason (not limited to - patent issues), conditions are imposed on you (whether by court - order, agreement or otherwise) that contradict the conditions of - this License, they do not excuse you from the conditions of this - License. If you cannot distribute so as to satisfy simultaneously - your obligations under this License and any other pertinent - obligations, then as a consequence you may not distribute the - Program at all. For example, if a patent license would not permit - royalty-free redistribution of the Program by all those who - receive copies directly or indirectly through you, then the only - way you could satisfy both it and this License would be to refrain - entirely from distribution of the Program. - - If any portion of this section is held invalid or unenforceable - under any particular circumstance, the balance of the section is - intended to apply and the section as a whole is intended to apply - in other circumstances. - - It is not the purpose of this section to induce you to infringe - any patents or other property right claims or to contest validity - of any such claims; this section has the sole purpose of - protecting the integrity of the free software distribution system, - which is implemented by public license practices. Many people have - made generous contributions to the wide range of software - distributed through that system in reliance on consistent - application of that system; it is up to the author/donor to decide - if he or she is willing to distribute software through any other - system and a licensee cannot impose that choice. - - This section is intended to make thoroughly clear what is believed - to be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in - certain countries either by patents or by copyrighted interfaces, - the original copyright holder who places the Program under this - License may add an explicit geographical distribution limitation - excluding those countries, so that distribution is permitted only - in or among countries not thus excluded. In such case, this - License incorporates the limitation as if written in the body of - this License. - - 9. The Free Software Foundation may publish revised and/or new - versions of the General Public License from time to time. Such new - versions will be similar in spirit to the present version, but may - differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the - Program specifies a version number of this License which applies - to it and "any later version", you have the option of following - the terms and conditions either of that version or of any later - version published by the Free Software Foundation. If the Program - does not specify a version number of this License, you may choose - any version ever published by the Free Software Foundation. - - 10. If you wish to incorporate parts of the Program into other - free programs whose distribution conditions are different, write - to the author to ask for permission. For software which is - copyrighted by the Free Software Foundation, write to the Free - Software Foundation; we sometimes make exceptions for this. Our - decision will be guided by the two goals of preserving the free - status of all derivatives of our free software and of promoting - the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO - WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE - LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS - AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY - OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND - PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE - DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR - OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN - WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY - MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE - LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, - INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR - INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF - DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU - OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY - OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN - ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - -Section 4 - 3rd Party Components - -(1) The Software Program includes software and documentation components -developed in part by Silver Egg Technology, Inc.("SET") prior to 2001 -and released under the following license. - - Copyright (c) 2001 Silver Egg Technology - - Permission is hereby granted, free of charge, to any person - obtaining a copy of this software and associated documentation - files (the "Software"), to deal in the Software without - restriction, including without limitation the rights to use, - copy, modify, merge, publish, distribute, sub-license, and/or - sell copies of the Software, and to permit persons to whom the - Software is furnished to do so, subject to the following - conditions: - - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES - OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT - HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - OTHER DEALINGS IN THE SOFTWARE. - Added: trunk/wrapper/doc/wrapper-community-license-1.3.txt =================================================================== --- trunk/wrapper/doc/wrapper-community-license-1.3.txt (rev 0) +++ trunk/wrapper/doc/wrapper-community-license-1.3.txt 2015-08-17 04:08:19 UTC (rev 1925) @@ -0,0 +1,1062 @@ +---------------------------------------------------------------------- +----------------- ----------------- + Tanuki Software, Ltd. + Community Software License Agreement + Version 1.3 + +IMPORTANT-READ CAREFULLY: This license agreement is a legal agreement +between you ("Licensee") and Tanuki Software, Ltd. ("TSI"), which +includes computer software, associated media, printed materials, and +may include online or electronic documentation ( Software ). PLEASE +READ THIS AGREEMENT CAREFULLY BEFORE YOU INSTALL, COPY, DOWNLOAD OR +USE THE SOFTWARE ACCOMPANYING THIS PACKAGE. + +Section 1 - Grant of License + +Community editions of the Software are made available on the GNU +General Public License, Version 2 ("GPLv2") or Version 3 ("GPLv3"), +included in Sections 4 and 5 of this license document. All sections +of the Community Software License Agreement must be complied with in +addition to those of either the GPLv2 or GPLv3. This license allows +the Software Program to be used with Products that are released under +either GPLv2 or GPLv3. + + +Section 2 - Definitions + +2.1. "Community Edition" shall mean versions of the Software Program +distributed in source form under this license agreement, and all new +releases, corrections, enhancements and updates to the Software +Program, which TSI makes generally available under this agreement. + +2.2. "Documentation" shall mean the contents of the website +describing the functionality and use of the Software Program, located +at http://wrapper.tanukisoftware.org + +2.3. "Product" shall mean the computer programs, that are provided by +Licensee to Licensee customers or potential customers, and that +contain both the Software Program as a component of the Product, and a +component or components (other than the Software Program) that provide +the material functionality of the Product. If the Product is released +in source form, the Software Program or any of its components may only +be included in executable form. + +2.4. "Software Program" shall mean the computer software and license +file provided by TSI under this Agreement, including all new releases, +corrections, enhancements and updates to such computer software, which +TSI makes generally available and which Licensee receive pursuant to +Licensee subscription to TSIMS. Some specific features or platforms +may not be enabled if they do not fall under the feature set(s) +covered by the specific license fees paid. + +2.5 "End User" shall mean the customers of the Licensee or any +recipient of the Product whether or not any payment is made to use +the Product. + + +Section 3 - Licensee Obligations + +A copy of this license must be distributed in full with the Product +in a location that is obvious to any End User. + +In accordance with Section 4, the full source code of all components +of the Product must be made available to any and all End Users. + +Licensee may extend and/or modify the Software Program and distribute +under the terms of this agreement provided that the copyright notice +and license information displayed in the console and log files are +not obfuscated or obstructed in any way. + + +Section 4 - GPLv2 License Agreement + + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + + Everyone is permitted to copy and distribute verbatim copies of + this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your + freedom to share and change it. By contrast, the GNU General + Public License is intended to guarantee your freedom to share and + change free software--to make sure the software is free for all + its users. This General Public License applies to most of the Free + Software Foundation's software and to any other program whose + authors commit to using it. (Some other Free Software Foundation + software is covered by the GNU Library General Public License + instead.) You can apply it to your programs, too. + + When we speak of free software, we are referring to freedom, not + price. Our General Public Licenses are designed to make sure that + you have the freedom to distribute copies of free software (and + charge for this service if you wish), that you receive source code + or can get it if you want it, that you can change the software or + use pieces of it in new free programs; and that you know you can + do these things. + + To protect your rights, we need to make restrictions that forbid + anyone to deny you these rights or to ask you to surrender the + rights. These restrictions translate to certain responsibilities + for you if you distribute copies of the software, or if you modify + it. + + For example, if you distribute copies of such a program, whether + gratis or for a fee, you must give the recipients all the rights + that you have. You must make sure that they, too, receive or can + get the source code. And you must show them these terms so they + know their rights. + + We protect your rights with two steps: + + (1) copyright the software, and + (2) offer you this license which gives you legal permission to + copy, distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make + certain that everyone understands that there is no warranty for + this free software. If the software is modified by someone else + and passed on, we want its recipients to know that what they have + is not the original, so that any problems introduced by others + will not reflect on the original authors' reputations. + + Finally, any free program is threatened constantly by software + patents. We wish to avoid the danger that redistributors of a free + program will individually obtain patent licenses, in effect making + the program proprietary. To prevent this, we have made it clear + that any patent must be licensed for everyone's free use or not + licensed at all. + + The precise terms and conditions for copying, distribution and + modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which + contains a notice placed by the copyright holder saying it may be + distributed under the terms of this General Public License. The + "Program", below, refers to any such program or work, and a "work + based on the Program" means either the Program or any derivative + work under copyright law: that is to say, a work containing the + Program or a portion of it, either verbatim or with modifications + and/or translated into another language. (Hereinafter, translation + is included without limitation in the term "modification".) Each + licensee is addressed as "you". + + Activities other than copying, distribution and modification are + not covered by this License; they are outside its scope. The act + of running the Program is not restricted, and the output from the + Program is covered only if its contents constitute a work based on + the Program (independent of having been made by running the + Program). Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's + source code as you receive it, in any medium, provided that you + conspicuously and appropriately publish on each copy an + appropriate copyright notice and disclaimer of warranty; keep + intact all the notices that refer to this License and to the + absence of any warranty; and give any other recipients of the + Program a copy of this License along with the Program. + + You may charge a fee for the physical act of transferring a copy, + and you may at your option offer warranty protection in exchange + for a fee. + + 2. You may modify your copy or copies of the Program or any + portion of it, thus forming a work based on the Program, and copy + and distribute such modifications or work under the terms of + Section 1 above, provided that you also meet all of these + conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the + Program is not required to print an announcement.) + + These requirements apply to the modified work as a whole. If + identifiable sections of that work are not derived from the + Program, and can be reasonably considered independent and separate + works in themselves, then this License, and its terms, do not + apply to those sections when you distribute them as separate works. + But when you distribute the same sections as part of a whole which + is a work based on the Program, the distribution of the whole must + be on the terms of this License, whose permissions for other + licensees extend to the entire whole, and thus to each and every + part regardless of who wrote it. + + Thus, it is not the intent of this section to claim rights or + contest your rights to work written entirely by you; rather, the + intent is to exercise the right to control the distribution of + derivative or collective works based on the Program. + + In addition, mere aggregation of another work not ba... [truncated message content] |