fix for: https://issues.apache.org/jira/browse/AMQ-3824

Adds a 64 bit Java service wrapper.

git-svn-id: https://svn.apache.org/repos/asf/activemq/trunk@1332880 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/assembly/src/main/descriptors/windows-bin.xml b/assembly/src/main/descriptors/windows-bin.xml
index d8331ab..6c7e7f1 100644
--- a/assembly/src/main/descriptors/windows-bin.xml
+++ b/assembly/src/main/descriptors/windows-bin.xml
@@ -6,9 +6,9 @@
     The ASF licenses this file to You under the Apache License, Version 2.0
     (the "License"); you may not use this file except in compliance with
     the License.  You may obtain a copy of the License at
-   
+
     http://www.apache.org/licenses/LICENSE-2.0
-   
+
     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -34,20 +34,22 @@
       </excludes>
       <lineEnding>dos</lineEnding>
     </fileSet>
-    
+
     <fileSet>
       <directory>src/release</directory>
       <outputDirectory>/</outputDirectory>
       <includes>
         <include>bin/*.bat</include>
-		 <include>bin/activemq</include>
-		 <include>bin/activemq-admin</include>
+         <include>bin/activemq</include>
+         <include>bin/activemq-admin</include>
         <include>bin/win32/*.bat</include>
         <include>bin/win32/*.conf</include>
+        <include>bin/win64/*.bat</include>
+        <include>bin/win64/*.conf</include>
       </includes>
       <lineEnding>dos</lineEnding>
     </fileSet>
-    
+
     <!-- Copy over files that should not get the line endings converted -->
     <fileSet>
       <directory>src/release</directory>
@@ -55,13 +57,15 @@
       <includes>
         <include>bin/win32/*.exe</include>
         <include>bin/win32/*.dll</include>
+        <include>bin/win64/*.exe</include>
+        <include>bin/win64/*.dll</include>
       </includes>
     </fileSet>
 
    </fileSets>
-  
+
   <componentDescriptors>
     <componentDescriptor>src/main/descriptors/common-bin.xml</componentDescriptor>
   </componentDescriptors>
-  
+
 </assembly>
diff --git a/assembly/src/release/bin/win64/InstallService.bat b/assembly/src/release/bin/win64/InstallService.bat
new file mode 100644
index 0000000..6b27259
--- /dev/null
+++ b/assembly/src/release/bin/win64/InstallService.bat
@@ -0,0 +1,52 @@
+@echo off
+
+REM ------------------------------------------------------------------------
+REM Licensed to the Apache Software Foundation (ASF) under one or more
+REM contributor license agreements.  See the NOTICE file distributed with
+REM this work for additional information regarding copyright ownership.
+REM The ASF licenses this file to You under the Apache License, Version 2.0
+REM (the "License"); you may not use this file except in compliance with
+REM the License.  You may obtain a copy of the License at
+REM
+REM http://www.apache.org/licenses/LICENSE-2.0
+REM
+REM Unless required by applicable law or agreed to in writing, software
+REM distributed under the License is distributed on an "AS IS" BASIS,
+REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+REM See the License for the specific language governing permissions and
+REM limitations under the License.
+REM ------------------------------------------------------------------------
+
+setlocal
+
+rem Java Service Wrapper general NT service install script
+
+
+if "%OS%"=="Windows_NT" goto nt
+echo This script only works with NT-based versions of Windows.
+goto :eof
+
+:nt
+rem
+rem Find the application home.
+rem
+rem %~dp0 is location of current script under NT
+set _REALPATH=%~dp0
+
+set ACTIVEMQ_HOME=%~dp0..\..
+set ACTIVEMQ_BASE=%~dp0..\..
+
+:conf
+set _WRAPPER_CONF="%ACTIVEMQ_HOME%\bin\win64\wrapper.conf"
+
+set _ACTIVEMQ_HOME="set.ACTIVEMQ_HOME=%ACTIVEMQ_HOME%"
+set _ACTIVEMQ_BASE="set.ACTIVEMQ_BASE=%ACTIVEMQ_BASE%"
+
+rem
+rem Install the Wrapper as an NT service.
+rem
+:startup
+"wrapper.exe" -i %_WRAPPER_CONF% %_ACTIVEMQ_HOME% %_ACTIVEMQ_BASE%
+if not errorlevel 1 goto :eof
+pause
+
diff --git a/assembly/src/release/bin/win64/UninstallService.bat b/assembly/src/release/bin/win64/UninstallService.bat
new file mode 100644
index 0000000..72b2034
--- /dev/null
+++ b/assembly/src/release/bin/win64/UninstallService.bat
@@ -0,0 +1,48 @@
+@echo off
+
+REM ------------------------------------------------------------------------
+REM Licensed to the Apache Software Foundation (ASF) under one or more
+REM contributor license agreements.  See the NOTICE file distributed with
+REM this work for additional information regarding copyright ownership.
+REM The ASF licenses this file to You under the Apache License, Version 2.0
+REM (the "License"); you may not use this file except in compliance with
+REM the License.  You may obtain a copy of the License at
+REM
+REM http://www.apache.org/licenses/LICENSE-2.0
+REM
+REM Unless required by applicable law or agreed to in writing, software
+REM distributed under the License is distributed on an "AS IS" BASIS,
+REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+REM See the License for the specific language governing permissions and
+REM limitations under the License.
+REM ------------------------------------------------------------------------
+
+setlocal
+
+rem Java Service Wrapper general NT service uninstall script
+
+if "%OS%"=="Windows_NT" goto nt
+echo This script only works with NT-based versions of Windows.
+goto :eof
+
+:nt
+rem
+rem Find the application home.
+rem
+rem %~dp0 is location of current script under NT
+set _REALPATH=%~dp0
+
+set ACTIVEMQ_HOME=%~dp0\..\..
+
+:conf
+set _WRAPPER_CONF="%ACTIVEMQ_HOME%\bin\win64\wrapper.conf"
+
+
+rem
+rem Uninstall the Wrapper as an NT service.
+rem
+:startup
+"%_APP_HOME%wrapper.exe" -r %_WRAPPER_CONF%
+if not errorlevel 1 goto :eof
+pause
+
diff --git a/assembly/src/release/bin/win64/activemq.bat b/assembly/src/release/bin/win64/activemq.bat
new file mode 100644
index 0000000..c49922f
--- /dev/null
+++ b/assembly/src/release/bin/win64/activemq.bat
@@ -0,0 +1,50 @@
+@echo off
+
+REM ------------------------------------------------------------------------
+REM Licensed to the Apache Software Foundation (ASF) under one or more
+REM contributor license agreements.  See the NOTICE file distributed with
+REM this work for additional information regarding copyright ownership.
+REM The ASF licenses this file to You under the Apache License, Version 2.0
+REM (the "License"); you may not use this file except in compliance with
+REM the License.  You may obtain a copy of the License at
+REM
+REM http://www.apache.org/licenses/LICENSE-2.0
+REM
+REM Unless required by applicable law or agreed to in writing, software
+REM distributed under the License is distributed on an "AS IS" BASIS,
+REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+REM See the License for the specific language governing permissions and
+REM limitations under the License.
+REM ------------------------------------------------------------------------
+
+rem
+rem Find the application home.
+rem
+if "%OS%"=="Windows_NT" goto nt
+
+echo This is not NT, so please edit this script and set _APP_HOME manually
+set _APP_HOME=..
+
+goto conf
+
+:nt
+rem %~dp0 is name of current script under NT
+set _APP_HOME=%~dp0
+
+rem
+rem Find the wrapper.conf
+rem
+:conf
+set _WRAPPER_CONF=wrapper.conf
+
+rem
+rem Run the application.
+rem At runtime, the current directory will be that of Wrapper.exe
+rem
+"%_APP_HOME%wrapper.exe" -c %_WRAPPER_CONF% 
+if not errorlevel 1 goto end
+pause
+
+:end
+set _APP_HOME=
+set _WRAPPER_CONF=
diff --git a/assembly/src/release/bin/win64/wrapper.conf b/assembly/src/release/bin/win64/wrapper.conf
new file mode 100644
index 0000000..c4b6125
--- /dev/null
+++ b/assembly/src/release/bin/win64/wrapper.conf
@@ -0,0 +1,143 @@
+# ------------------------------------------------------------------------

+# Licensed to the Apache Software Foundation (ASF) under one or more

+# contributor license agreements.  See the NOTICE file distributed with

+# this work for additional information regarding copyright ownership.

+# The ASF licenses this file to You under the Apache License, Version 2.0

+# (the "License"); you may not use this file except in compliance with

+# the License.  You may obtain a copy of the License at

+#

+# http://www.apache.org/licenses/LICENSE-2.0

+#

+# Unless required by applicable law or agreed to in writing, software

+# distributed under the License is distributed on an "AS IS" BASIS,

+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+# See the License for the specific language governing permissions and

+# limitations under the License.

+# ------------------------------------------------------------------------

+

+#********************************************************************

+# Wrapper Properties

+#********************************************************************

+

+# wrapper.debug=TRUE

+set.default.ACTIVEMQ_HOME=../..

+set.default.ACTIVEMQ_BASE=../..

+set.default.ACTIVEMQ_CONF=%ACTIVEMQ_BASE%/conf

+set.default.ACTIVEMQ_DATA=%ACTIVEMQ_BASE%/data

+wrapper.working.dir=.

+

+# Java Application

+wrapper.java.command=java

+

+# Java Main class.  This class must implement the WrapperListener interface

+#  or guarantee that the WrapperManager class is initialized.  Helper

+#  classes are provided to do this for you.  See the Integration section

+#  of the documentation for details.

+wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp

+

+# Java Classpath (include wrapper.jar)  Add class path elements as

+#  needed starting from 1

+wrapper.java.classpath.1=%ACTIVEMQ_HOME%/bin/wrapper.jar

+wrapper.java.classpath.2=%ACTIVEMQ_HOME%/bin/run.jar

+

+# Java Library Path (location of Wrapper.DLL or libwrapper.so)

+wrapper.java.library.path.1=%ACTIVEMQ_HOME%/bin/win64

+

+# Java Additional Parameters

+# note that n is the parameter number starting from 1.

+wrapper.java.additional.1=-Dactivemq.home="%ACTIVEMQ_HOME%"

+wrapper.java.additional.2=-Dactivemq.base="%ACTIVEMQ_BASE%"

+wrapper.java.additional.3=-Djavax.net.ssl.keyStorePassword=password

+wrapper.java.additional.4=-Djavax.net.ssl.trustStorePassword=password

+wrapper.java.additional.5=-Djavax.net.ssl.keyStore=%ACTIVEMQ_CONF%/broker.ks

+wrapper.java.additional.6=-Djavax.net.ssl.trustStore=%ACTIVEMQ_CONF%/broker.ts

+wrapper.java.additional.7=-Dcom.sun.management.jmxremote

+wrapper.java.additional.8=-Dorg.apache.activemq.UseDedicatedTaskRunner=true

+wrapper.java.additional.9=-Djava.util.logging.config.file=logging.properties

+wrapper.java.additional.10=-Dactivemq.conf="%ACTIVEMQ_CONF%"

+wrapper.java.additional.11=-Dactivemq.data="%ACTIVEMQ_DATA%"

+

+# Uncomment to enable remote jmx

+#wrapper.java.additional.n=-Dcom.sun.management.jmxremote.port=1616

+#wrapper.java.additional.n=-Dcom.sun.management.jmxremote.authenticate=false

+#wrapper.java.additional.n=-Dcom.sun.management.jmxremote.ssl=false

+

+# Uncomment to enable YourKit profiling

+#wrapper.java.additional.n=-Xrunyjpagent

+

+# Uncomment to enable remote debugging

+#wrapper.java.additional.n=-Xdebug -Xnoagent -Djava.compiler=NONE

+#wrapper.java.additional.n=-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005

+

+# Initial Java Heap Size (in MB)

+#wrapper.java.initmemory=3

+

+# Maximum Java Heap Size (in MB)

+wrapper.java.maxmemory=1024

+

+# Application parameters.  Add parameters as needed starting from 1

+wrapper.app.parameter.1=org.apache.activemq.console.Main

+wrapper.app.parameter.2=start

+

+#********************************************************************

+# Wrapper Logging Properties

+#********************************************************************

+# Format of output for the console.  (See docs for formats)

+wrapper.console.format=PM

+

+# Log Level for console output.  (See docs for log levels)

+wrapper.console.loglevel=INFO

+

+# Log file to use for wrapper output logging.

+wrapper.logfile=%ACTIVEMQ_DATA%/wrapper.log

+

+# Format of output for the log file.  (See docs for formats)

+wrapper.logfile.format=LPTM

+

+# Log Level for log file output.  (See docs for log levels)

+wrapper.logfile.loglevel=INFO

+

+# Maximum size that the log file will be allowed to grow to before

+#  the log is rolled. Size is specified in bytes.  The default value

+#  of 0, disables log rolling.  May abbreviate with the 'k' (kb) or

+#  'm' (mb) suffix.  For example: 10m = 10 megabytes.

+wrapper.logfile.maxsize=0

+

+# Maximum number of rolled log files which will be allowed before old

+#  files are deleted.  The default value of 0 implies no limit.

+wrapper.logfile.maxfiles=0

+

+# Log Level for sys/event log output.  (See docs for log levels)

+wrapper.syslog.loglevel=NONE

+

+#********************************************************************

+# Wrapper Windows Properties

+#********************************************************************

+# Title to use when running as a console

+wrapper.console.title=ActiveMQ

+

+#********************************************************************

+# Wrapper Windows NT/2000/XP Service Properties

+#********************************************************************

+# WARNING - Do not modify any of these properties when an application

+#  using this configuration file has been installed as a service.

+#  Please uninstall the service before modifying this section.  The

+#  service can then be reinstalled.

+

+# Name of the service

+wrapper.ntservice.name=ActiveMQ

+

+# Display name of the service

+wrapper.ntservice.displayname=ActiveMQ

+

+# Description of the service

+wrapper.ntservice.description=ActiveMQ Broker

+

+# Service dependencies.  Add dependencies as needed starting from 1

+wrapper.ntservice.dependency.1=

+

+# Mode in which the service is installed.  AUTO_START or DEMAND_START

+wrapper.ntservice.starttype=AUTO_START

+

+# Allow the service to interact with the desktop.

+wrapper.ntservice.interactive=false

diff --git a/assembly/src/release/bin/win64/wrapper.dll b/assembly/src/release/bin/win64/wrapper.dll
new file mode 100644
index 0000000..f07fc9e
--- /dev/null
+++ b/assembly/src/release/bin/win64/wrapper.dll
Binary files differ
diff --git a/assembly/src/release/bin/win64/wrapper.exe b/assembly/src/release/bin/win64/wrapper.exe
new file mode 100644
index 0000000..db2ddda
--- /dev/null
+++ b/assembly/src/release/bin/win64/wrapper.exe
Binary files differ