You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by gn...@apache.org on 2014/04/10 16:16:10 UTC

[48/59] [abbrv] [KARAF-2852] Merge wrapper/core and wrapper/command

http://git-wip-us.apache.org/repos/asf/karaf/blob/4182735c/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/aix/ppc32/karaf-wrapper
----------------------------------------------------------------------
diff --git a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/aix/ppc32/karaf-wrapper b/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/aix/ppc32/karaf-wrapper
deleted file mode 100755
index 5215c2e..0000000
Binary files a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/aix/ppc32/karaf-wrapper and /dev/null differ

http://git-wip-us.apache.org/repos/asf/karaf/blob/4182735c/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/aix/ppc32/libwrapper.a
----------------------------------------------------------------------
diff --git a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/aix/ppc32/libwrapper.a b/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/aix/ppc32/libwrapper.a
deleted file mode 100755
index 4bcc342..0000000
Binary files a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/aix/ppc32/libwrapper.a and /dev/null differ

http://git-wip-us.apache.org/repos/asf/karaf/blob/4182735c/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/aix/ppc64/karaf-wrapper
----------------------------------------------------------------------
diff --git a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/aix/ppc64/karaf-wrapper b/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/aix/ppc64/karaf-wrapper
deleted file mode 100755
index 6ba0351..0000000
Binary files a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/aix/ppc64/karaf-wrapper and /dev/null differ

http://git-wip-us.apache.org/repos/asf/karaf/blob/4182735c/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/aix/ppc64/libwrapper.a
----------------------------------------------------------------------
diff --git a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/aix/ppc64/libwrapper.a b/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/aix/ppc64/libwrapper.a
deleted file mode 100755
index b569e3f..0000000
Binary files a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/aix/ppc64/libwrapper.a and /dev/null differ

http://git-wip-us.apache.org/repos/asf/karaf/blob/4182735c/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/all/karaf-wrapper.jar
----------------------------------------------------------------------
diff --git a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/all/karaf-wrapper.jar b/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/all/karaf-wrapper.jar
deleted file mode 100644
index 4db355b..0000000
Binary files a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/all/karaf-wrapper.jar and /dev/null differ

http://git-wip-us.apache.org/repos/asf/karaf/blob/4182735c/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/hpux/parisc64/karaf-wrapper
----------------------------------------------------------------------
diff --git a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/hpux/parisc64/karaf-wrapper b/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/hpux/parisc64/karaf-wrapper
deleted file mode 100755
index ad883d7..0000000
Binary files a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/hpux/parisc64/karaf-wrapper and /dev/null differ

http://git-wip-us.apache.org/repos/asf/karaf/blob/4182735c/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/hpux/parisc64/libwrapper.sl
----------------------------------------------------------------------
diff --git a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/hpux/parisc64/libwrapper.sl b/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/hpux/parisc64/libwrapper.sl
deleted file mode 100755
index 08adc52..0000000
Binary files a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/hpux/parisc64/libwrapper.sl and /dev/null differ

http://git-wip-us.apache.org/repos/asf/karaf/blob/4182735c/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/linux/karaf-wrapper
----------------------------------------------------------------------
diff --git a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/linux/karaf-wrapper b/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/linux/karaf-wrapper
deleted file mode 100644
index 7e00645..0000000
Binary files a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/linux/karaf-wrapper and /dev/null differ

http://git-wip-us.apache.org/repos/asf/karaf/blob/4182735c/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/linux/libwrapper.so
----------------------------------------------------------------------
diff --git a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/linux/libwrapper.so b/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/linux/libwrapper.so
deleted file mode 100644
index 2cc4ab3..0000000
Binary files a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/linux/libwrapper.so and /dev/null differ

http://git-wip-us.apache.org/repos/asf/karaf/blob/4182735c/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/linux64/karaf-wrapper
----------------------------------------------------------------------
diff --git a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/linux64/karaf-wrapper b/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/linux64/karaf-wrapper
deleted file mode 100644
index 3128b95..0000000
Binary files a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/linux64/karaf-wrapper and /dev/null differ

http://git-wip-us.apache.org/repos/asf/karaf/blob/4182735c/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/linux64/libwrapper.so
----------------------------------------------------------------------
diff --git a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/linux64/libwrapper.so b/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/linux64/libwrapper.so
deleted file mode 100644
index 24197bf..0000000
Binary files a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/linux64/libwrapper.so and /dev/null differ

http://git-wip-us.apache.org/repos/asf/karaf/blob/4182735c/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/macosx/karaf-wrapper
----------------------------------------------------------------------
diff --git a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/macosx/karaf-wrapper b/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/macosx/karaf-wrapper
deleted file mode 100644
index 0165db0..0000000
Binary files a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/macosx/karaf-wrapper and /dev/null differ

http://git-wip-us.apache.org/repos/asf/karaf/blob/4182735c/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/macosx/libwrapper.jnilib
----------------------------------------------------------------------
diff --git a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/macosx/libwrapper.jnilib b/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/macosx/libwrapper.jnilib
deleted file mode 100644
index 6356705..0000000
Binary files a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/macosx/libwrapper.jnilib and /dev/null differ

http://git-wip-us.apache.org/repos/asf/karaf/blob/4182735c/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/macosx/org.apache.karaf.KARAF.plist
----------------------------------------------------------------------
diff --git a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/macosx/org.apache.karaf.KARAF.plist b/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/macosx/org.apache.karaf.KARAF.plist
deleted file mode 100644
index 1c18918..0000000
--- a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/macosx/org.apache.karaf.KARAF.plist
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    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.
-    -->
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>ProcessType</key>
-	<string>Background</string>
-	<key>KeepAlive</key>
-	<false/>
-	<key>Label</key>
-	<string>org.apache.karaf.KARAF</string>
-	<key>ProgramArguments</key>
-	<array>
-		<!-- path to your KARAF-service wrapper -->
-		<string>${karaf.home}/bin/${name}-service</string>
-		<string>console</string>
-	</array>
-	<key>RunAtLoad</key>
-	<true/>
-</dict>
-</plist>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/karaf/blob/4182735c/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/solaris/sparc32/karaf-wrapper
----------------------------------------------------------------------
diff --git a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/solaris/sparc32/karaf-wrapper b/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/solaris/sparc32/karaf-wrapper
deleted file mode 100755
index 7cac208..0000000
Binary files a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/solaris/sparc32/karaf-wrapper and /dev/null differ

http://git-wip-us.apache.org/repos/asf/karaf/blob/4182735c/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/solaris/sparc32/libwrapper.so
----------------------------------------------------------------------
diff --git a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/solaris/sparc32/libwrapper.so b/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/solaris/sparc32/libwrapper.so
deleted file mode 100755
index 4093262..0000000
Binary files a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/solaris/sparc32/libwrapper.so and /dev/null differ

http://git-wip-us.apache.org/repos/asf/karaf/blob/4182735c/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/solaris/sparc64/karaf-wrapper
----------------------------------------------------------------------
diff --git a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/solaris/sparc64/karaf-wrapper b/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/solaris/sparc64/karaf-wrapper
deleted file mode 100755
index 91257c6..0000000
Binary files a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/solaris/sparc64/karaf-wrapper and /dev/null differ

http://git-wip-us.apache.org/repos/asf/karaf/blob/4182735c/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/solaris/sparc64/libwrapper.so
----------------------------------------------------------------------
diff --git a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/solaris/sparc64/libwrapper.so b/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/solaris/sparc64/libwrapper.so
deleted file mode 100755
index 008bef6..0000000
Binary files a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/solaris/sparc64/libwrapper.so and /dev/null differ

http://git-wip-us.apache.org/repos/asf/karaf/blob/4182735c/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/solaris/x86/karaf-wrapper
----------------------------------------------------------------------
diff --git a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/solaris/x86/karaf-wrapper b/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/solaris/x86/karaf-wrapper
deleted file mode 100755
index bdec254..0000000
Binary files a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/solaris/x86/karaf-wrapper and /dev/null differ

http://git-wip-us.apache.org/repos/asf/karaf/blob/4182735c/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/solaris/x86/libwrapper.so
----------------------------------------------------------------------
diff --git a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/solaris/x86/libwrapper.so b/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/solaris/x86/libwrapper.so
deleted file mode 100755
index 963ff49..0000000
Binary files a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/solaris/x86/libwrapper.so and /dev/null differ

http://git-wip-us.apache.org/repos/asf/karaf/blob/4182735c/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/solaris/x86_64/karaf-wrapper
----------------------------------------------------------------------
diff --git a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/solaris/x86_64/karaf-wrapper b/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/solaris/x86_64/karaf-wrapper
deleted file mode 100755
index 6bd165e..0000000
Binary files a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/solaris/x86_64/karaf-wrapper and /dev/null differ

http://git-wip-us.apache.org/repos/asf/karaf/blob/4182735c/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/solaris/x86_64/libwrapper.so
----------------------------------------------------------------------
diff --git a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/solaris/x86_64/libwrapper.so b/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/solaris/x86_64/libwrapper.so
deleted file mode 100755
index 0d52ffa..0000000
Binary files a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/solaris/x86_64/libwrapper.so and /dev/null differ

http://git-wip-us.apache.org/repos/asf/karaf/blob/4182735c/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/unix/karaf-service
----------------------------------------------------------------------
diff --git a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/unix/karaf-service b/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/unix/karaf-service
deleted file mode 100644
index a7ca8bb..0000000
--- a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/unix/karaf-service
+++ /dev/null
@@ -1,557 +0,0 @@
-#! /bin/sh
-
-# ------------------------------------------------------------------------
-# 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.
-# ------------------------------------------------------------------------
-
-# If require, set the JAVA_HOME to launch the wrapper
-#
-#JAVA_HOME=
-#
-
-# Application
-APP_NAME="${name}"
-APP_LONG_NAME="${displayName}"
-
-# Wrapper
-WRAPPER_CMD="${karaf.base}/bin/${APP_NAME}-wrapper"
-WRAPPER_CONF="${karaf.etc}/${APP_NAME}-wrapper.conf"
-
-# Priority at which to run the wrapper.  See "man nice" for valid priorities.
-#  nice is only used if a priority is specified.
-PRIORITY=
-
-# Location of the data folder.
-DATADIR="${karaf.data}"
-
-# Location of the pid file.
-PIDDIR="${karaf.data}"
-
-# If uncommented, causes the Wrapper to be shutdown using an anchor file.
-#  When launched with the 'start' command, it will also ignore all INT and
-#  TERM signals.
-#IGNORE_SIGNALS=true
-
-# If specified, the Wrapper will be run as the specified user.
-# IMPORTANT - Make sure that the user has the required privileges to write
-#  the PID file and wrapper.log files.  Failure to be able to write the log
-#  file will cause the Wrapper to exit without any way to write out an error
-#  message.
-# NOTE - This will set the user which is used to run the Wrapper as well as
-#  the JVM and is not useful in situations where a privileged resource or
-#  port needs to be allocated prior to the user being changed.
-#RUN_AS_USER=
-
-# 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
-# description: ${displayName}
-
-# Do not modify anything beyond this point
-#-----------------------------------------------------------------------------
-
-# Get the fully qualified path to the script
-case $0 in
-    /*)
-        SCRIPT="$0"
-        ;;
-    *)
-        PWD=`pwd`
-        SCRIPT="$PWD/$0"
-        ;;
-esac
-
-# Resolve the true real path without any sym links.
-CHANGED=true
-while [ "X$CHANGED" != "X" ]
-do
-    # Change spaces to ":" so the tokens can be parsed.
-    SCRIPT=`echo $SCRIPT | sed -e 's; ;:;g'`
-    # Get the real path to this script, resolving any symbolic links
-    TOKENS=`echo $SCRIPT | sed -e 's;/; ;g'`
-    REALPATH=
-    for C in $TOKENS; do
-        REALPATH="$REALPATH/$C"
-        while [ -h "$REALPATH" ] ; do
-            LS="`ls -ld "$REALPATH"`"
-            LINK="`expr "$LS" : '.*-> \(.*\)$'`"
-            if expr "$LINK" : '/.*' > /dev/null; then
-                REALPATH="$LINK"
-            else
-                REALPATH="`dirname "$REALPATH"`""/$LINK"
-            fi
-        done
-    done
-    # Change ":" chars back to spaces.
-    REALPATH=`echo $REALPATH | sed -e 's;:; ;g'`
-
-    if [ "$REALPATH" = "$SCRIPT" ]
-    then
-        CHANGED=""
-    else
-        SCRIPT="$REALPATH"
-    fi
-done
-
-# Change the current directory to the location of the script
-cd "`dirname "$REALPATH"`"
-REALDIR=`pwd`
-
-# If the PIDDIR is relative, set its value relative to the full REALPATH to avoid problems if
-#  the working directory is later changed.
-FIRST_CHAR=`echo $PIDDIR | cut -c1,1`
-if [ "$FIRST_CHAR" != "/" ]
-then
-    PIDDIR=$REALDIR/$PIDDIR
-fi
-# Same test for WRAPPER_CMD
-FIRST_CHAR=`echo $WRAPPER_CMD | cut -c1,1`
-if [ "$FIRST_CHAR" != "/" ]
-then
-    WRAPPER_CMD=$REALDIR/$WRAPPER_CMD
-fi
-# Same test for WRAPPER_CONF
-FIRST_CHAR=`echo $WRAPPER_CONF | cut -c1,1`
-if [ "$FIRST_CHAR" != "/" ]
-then
-    WRAPPER_CONF=$REALDIR/$WRAPPER_CONF
-fi
-
-# Process ID
-ANCHORFILE="$PIDDIR/$APP_NAME.anchor"
-PIDFILE="$PIDDIR/$APP_NAME.pid"
-LOCKDIR="/var/lock/subsys"
-LOCKFILE="$LOCKDIR/$APP_NAME"
-pid=""
-
-# Resolve the location of the 'ps' command
-PSEXE="/usr/bin/ps"
-if [ ! -x $PSEXE ]
-then
-    PSEXE="/bin/ps"
-    if [ ! -x $PSEXE ]
-    then
-        echo "Unable to locate 'ps'."
-        echo "Please report this message along with the location of the command on your system."
-        exit 1
-    fi
-fi
-
-# Resolve the os
-DIST_OS=`uname -s | tr [:upper:] [:lower:] | tr -d [:blank:]`
-case "$DIST_OS" in
-    'sunos')
-        DIST_OS="solaris"
-        ;;
-    'hp-ux' | 'hp-ux64')
-        DIST_OS="hpux"
-        ;;
-    'darwin')
-        DIST_OS="macosx"
-        ;;
-    'unix_sv')
-        DIST_OS="unixware"
-        ;;
-esac
-
-# Resolve the architecture
-DIST_ARCH=`uname -p | tr [:upper:] [:lower:] | tr -d [:blank:]`
-if [ "$DIST_ARCH" = "unknown" ]
-then
-    DIST_ARCH=`uname -m | tr [:upper:] [:lower:] | tr -d [:blank:]`
-fi
-case "$DIST_ARCH" in
-    'amd64' | 'ia32' | 'ia64' | 'i386' | 'i486' | 'i586' | 'i686' | 'x86_64')
-        DIST_ARCH="x86"
-        ;;
-    'ip27')
-        DIST_ARCH="mips"
-        ;;
-    'power' | 'powerpc' | 'power_pc' | 'ppc64')
-        DIST_ARCH="ppc"
-        ;;
-    'pa_risc' | 'pa-risc')
-        DIST_ARCH="parisc"
-        ;;
-    'sun4u' | 'sparcv9')
-        DIST_ARCH="sparc"
-        ;;
-    '9000/800')
-        DIST_ARCH="parisc"
-        ;;
-esac
-
-# Decide on the wrapper binary to use.
-# If a 32-bit wrapper binary exists then it will work on 32 or 64 bit
-#  platforms, if the 64-bit binary exists then the distribution most
-#  likely wants to use long names.  Otherwise, look for the default.
-# For macosx, we also want to look for universal binaries.
-WRAPPER_TEST_CMD="$WRAPPER_CMD-$DIST_OS-$DIST_ARCH-32"
-if [ -x $WRAPPER_TEST_CMD ]
-then
-    WRAPPER_CMD="$WRAPPER_TEST_CMD"
-else
-    if [ "$DIST_OS" = "macosx" ]
-    then
-        WRAPPER_TEST_CMD="$WRAPPER_CMD-$DIST_OS-universal-32"
-        if [ -x $WRAPPER_TEST_CMD ]
-        then
-            WRAPPER_CMD="$WRAPPER_TEST_CMD"
-        else
-            WRAPPER_TEST_CMD="$WRAPPER_CMD-$DIST_OS-$DIST_ARCH-64"
-            if [ -x $WRAPPER_TEST_CMD ]
-            then
-                WRAPPER_CMD="$WRAPPER_TEST_CMD"
-            else
-                WRAPPER_TEST_CMD="$WRAPPER_CMD-$DIST_OS-universal-64"
-                if [ -x $WRAPPER_TEST_CMD ]
-                then
-                    WRAPPER_CMD="$WRAPPER_TEST_CMD"
-                else
-                    if [ ! -x $WRAPPER_CMD ]
-                    then
-                        echo "Unable to locate any of the following binaries:"
-                        echo "  $WRAPPER_CMD-$DIST_OS-$DIST_ARCH-32"
-                        echo "  $WRAPPER_CMD-$DIST_OS-universal-32"
-                        echo "  $WRAPPER_CMD-$DIST_OS-$DIST_ARCH-64"
-                        echo "  $WRAPPER_CMD-$DIST_OS-universal-64"
-                        echo "  $WRAPPER_CMD"
-                        exit 1
-                    fi
-                fi
-            fi
-        fi
-    else
-        WRAPPER_TEST_CMD="$WRAPPER_CMD-$DIST_OS-$DIST_ARCH-64"
-        if [ -x $WRAPPER_TEST_CMD ]
-        then
-            WRAPPER_CMD="$WRAPPER_TEST_CMD"
-        else
-            if [ ! -x $WRAPPER_CMD ]
-            then
-                echo "Unable to locate any of the following binaries:"
-                echo "  $WRAPPER_CMD-$DIST_OS-$DIST_ARCH-32"
-                echo "  $WRAPPER_CMD-$DIST_OS-$DIST_ARCH-64"
-                echo "  $WRAPPER_CMD"
-                exit 1
-            fi
-        fi
-    fi
-fi
-
-# Build the nice clause
-if [ "X$PRIORITY" = "X" ]
-then
-    CMDNICE=""
-else
-    CMDNICE="nice -$PRIORITY"
-fi
-
-# Build the anchor file clause.
-if [ "X$IGNORE_SIGNALS" = "X" ]
-then
-   ANCHORPROP=
-   IGNOREPROP=
-else
-   ANCHORPROP=wrapper.anchorfile=$ANCHORFILE
-   IGNOREPROP=wrapper.ignore_signals=TRUE
-fi
-
-# Build the lock file clause.  Only create a lock file if the lock directory exists on this platform.
-if [ -d $LOCKDIR ]
-then
-    LOCKPROP=wrapper.lockfile=$LOCKFILE
-else
-    LOCKPROP=
-fi
-
-checkUser() {
-    # Check the configured user.  If necessary rerun this script as the desired user.
-    if [ "X$RUN_AS_USER" != "X" ]
-    then
-        # Resolve the location of the 'id' command
-        IDEXE="/usr/xpg4/bin/id"
-        if [ ! -x $IDEXE ]
-        then
-            IDEXE="/usr/bin/id"
-            if [ ! -x $IDEXE ]
-            then
-                echo "Unable to locate 'id'."
-                echo "Please report this message along with the location of the command on your system."
-                exit 1
-            fi
-        fi
-
-        if [ "`$IDEXE -u -n`" = "$RUN_AS_USER" ]
-        then
-            # Already running as the configured user.  Avoid password prompts by not calling su.
-            RUN_AS_USER=""
-        fi
-    fi
-    if [ "X$RUN_AS_USER" != "X" ]
-    then
-        # If LOCKPROP and $RUN_AS_USER are defined then the new user will most likely not be
-        # able to create the lock file.  The Wrapper will be able to update this file once it
-        # is created but will not be able to delete it on shutdown.  If $2 is defined then
-        # the lock file should be created for the current command
-        if [ "X$LOCKPROP" != "X" ]
-        then
-            if [ "X$2" != "X" ]
-            then
-                # Resolve the primary group
-                RUN_AS_GROUP=`groups $RUN_AS_USER | awk '{print $3}' | tail -1`
-                if [ "X$RUN_AS_GROUP" = "X" ]
-                then
-                    RUN_AS_GROUP=$RUN_AS_USER
-                fi
-                touch $LOCKFILE
-                chown $RUN_AS_USER:$RUN_AS_GROUP $LOCKFILE
-            fi
-        fi
-
-        # Still want to change users, recurse.  This means that the user will only be
-        #  prompted for a password once.
-        su -m $RUN_AS_USER -s /bin/sh -c "$REALPATH $1"
-        RETVAL=$?
-
-        # Now that we are the original user again, we may need to clean up the lock file.
-        if [ "X$LOCKPROP" != "X" ]
-        then
-            getpid
-            if [ "X$pid" = "X" ]
-            then
-                # Wrapper is not running so make sure the lock file is deleted.
-                if [ -f $LOCKFILE ]
-                then
-                    rm $LOCKFILE
-                fi
-            fi
-        fi
-
-        exit $RETVAL
-    fi
-}
-
-getpid() {
-    if [ -f $PIDFILE ]
-    then
-        if [ -r $PIDFILE ]
-        then
-            pid=`cat $PIDFILE`
-            if [ "X$pid" != "X" ]
-            then
-                # It is possible that 'a' process with the pid exists but that it is not the
-                #  correct process.  This can happen in a number of cases, but the most
-                #  common is during system startup after an unclean shutdown.
-                # The ps statement below looks for the specific wrapper command running as
-                #  the pid.  If it is not found then the pid file is considered to be stale.
-                if [ "$DIST_OS" = "solaris" ]
-                then
-                    pidtest=`$PSEXE -p $pid -o comm | grep $WRAPPER_CMD | tail -1`
-                else
-                    pidtest=`$PSEXE -p $pid -o command | grep $WRAPPER_CMD | tail -1`
-                fi
-                if [ "X$pidtest" = "X" ]
-                then
-                    # This is a stale pid file.
-                    rm -f $PIDFILE
-                    echo "Removed stale pid file: $PIDFILE"
-                    pid=""
-                fi
-            fi
-        else
-            echo "Cannot read $PIDFILE."
-            exit 1
-        fi
-    fi
-}
-
-testpid() {
-    pid=`$PSEXE -p $pid | grep $pid | grep -v grep | awk '{print $1}' | tail -1`
-    if [ "X$pid" = "X" ]
-    then
-        # Process is gone so remove the pid file.
-        rm -f $PIDFILE
-        pid=""
-    fi
-}
-
-console() {
-    echo "Running $APP_LONG_NAME..."
-    getpid
-    if [ "X$pid" = "X" ]
-    then
-        COMMAND_LINE="$CMDNICE $WRAPPER_CMD $WRAPPER_CONF wrapper.syslog.ident=$APP_NAME wrapper.pidfile=$PIDFILE $ANCHORPROP $LOCKPROP"
-        exec $COMMAND_LINE
-    else
-        echo "$APP_LONG_NAME is already running."
-        exit 1
-    fi
-}
-
-start() {
-    echo "Starting $APP_LONG_NAME..."
-    getpid
-    if [ "X$pid" = "X" ]
-    then
-        if [ ! -d $DATADIR ]; then
-            mkdir $DATADIR
-        fi
-        if [ ! -d $DATADIR/log ]; then
-            mkdir $DATADIR/log
-        fi
-        COMMAND_LINE="$CMDNICE $WRAPPER_CMD $WRAPPER_CONF wrapper.syslog.ident=$APP_NAME wrapper.pidfile=$PIDFILE wrapper.daemonize=TRUE $ANCHORPROP $IGNOREPROP $LOCKPROP"
-        exec $COMMAND_LINE
-    else
-        echo "$APP_LONG_NAME is already running."
-        exit 1
-    fi
-}
-
-stopit() {
-    echo "Stopping $APP_LONG_NAME..."
-    getpid
-    if [ "X$pid" = "X" ]
-    then
-        echo "$APP_LONG_NAME was not running."
-    else
-        if [ "X$IGNORE_SIGNALS" = "X" ]
-        then
-            # Running so try to stop it.
-            kill $pid
-            if [ $? -ne 0 ]
-            then
-                # An explanation for the failure should have been given
-                echo "Unable to stop $APP_LONG_NAME."
-                exit 1
-            fi
-        else
-            rm -f $ANCHORFILE
-            if [ -f $ANCHORFILE ]
-            then
-                # An explanation for the failure should have been given
-                echo "Unable to stop $APP_LONG_NAME."
-                exit 1
-            fi
-        fi
-
-        # We can not predict how long it will take for the wrapper to
-        #  actually stop as it depends on settings in wrapper.conf.
-        #  Loop until it does.
-        savepid=$pid
-        CNT=0
-        TOTCNT=0
-        while [ "X$pid" != "X" ]
-        do
-            # Show a waiting message every 5 seconds.
-            if [ "$CNT" -lt "5" ]
-            then
-                CNT=`expr $CNT + 1`
-            else
-                echo "Waiting for $APP_LONG_NAME to exit..."
-                CNT=0
-            fi
-            TOTCNT=`expr $TOTCNT + 1`
-
-            sleep 1
-
-            testpid
-        done
-
-        pid=$savepid
-        testpid
-        if [ "X$pid" != "X" ]
-        then
-            echo "Failed to stop $APP_LONG_NAME."
-            exit 1
-        else
-            echo "Stopped $APP_LONG_NAME."
-        fi
-    fi
-}
-
-status() {
-    getpid
-    if [ "X$pid" = "X" ]
-    then
-        echo "$APP_LONG_NAME is not running."
-        exit 1
-    else
-        echo "$APP_LONG_NAME is running ($pid)."
-        exit 0
-    fi
-}
-
-dump() {
-    echo "Dumping $APP_LONG_NAME..."
-    getpid
-    if [ "X$pid" = "X" ]
-    then
-        echo "$APP_LONG_NAME was not running."
-
-    else
-        kill -3 $pid
-
-        if [ $? -ne 0 ]
-        then
-            echo "Failed to dump $APP_LONG_NAME."
-            exit 1
-        else
-            echo "Dumped $APP_LONG_NAME."
-        fi
-    fi
-}
-
-case "$1" in
-
-    'console')
-        checkUser $1 touchlock
-        console
-        ;;
-
-    'start')
-        checkUser $1 touchlock
-        start
-        ;;
-
-    'stop')
-        checkUser $1
-        stopit
-        ;;
-
-    'restart')
-        checkUser $1 touchlock
-        stopit
-        start
-        ;;
-
-    'status')
-        checkUser $1
-        status
-        ;;
-
-    'dump')
-        checkUser $1
-        dump
-        ;;
-
-    *)
-        echo "Usage: $0 { console | start | stop | restart | status | dump }"
-        exit 1
-        ;;
-esac
-
-exit 0

http://git-wip-us.apache.org/repos/asf/karaf/blob/4182735c/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/unix/karaf-wrapper.conf
----------------------------------------------------------------------
diff --git a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/unix/karaf-wrapper.conf b/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/unix/karaf-wrapper.conf
deleted file mode 100644
index a3f98a5..0000000
--- a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/unix/karaf-wrapper.conf
+++ /dev/null
@@ -1,135 +0,0 @@
-# ------------------------------------------------------------------------
-# 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
-#********************************************************************
-set.default.JAVA_HOME=${java.home}
-set.default.KARAF_HOME=${karaf.home}
-set.default.KARAF_BASE=${karaf.base}
-set.default.KARAF_DATA=${karaf.data}
-set.default.KARAF_ETC=${karaf.etc}
-
-# Java Application
-wrapper.working.dir=%KARAF_BASE%
-wrapper.java.command=%JAVA_HOME%/bin/java
-wrapper.java.mainclass=org.apache.karaf.wrapper.internal.Main
-wrapper.java.classpath.1=%KARAF_HOME%/lib/karaf-wrapper.jar
-wrapper.java.classpath.2=%KARAF_HOME%/lib/karaf.jar
-wrapper.java.classpath.3=%KARAF_HOME%/lib/karaf-jmx-boot.jar
-wrapper.java.classpath.4=%KARAF_HOME%/lib/karaf-jaas-boot.jar
-wrapper.java.classpath.5=%KARAF_HOME%/lib/karaf-wrapper-main.jar
-wrapper.java.classpath.6=%KARAF_HOME%/lib/karaf-org.osgi.core.jar
-wrapper.java.library.path.1=%KARAF_HOME%/lib/
-
-# Application Parameters.  Add parameters as needed starting from 1
-#wrapper.app.parameter.1=
-
-# JVM Parameters            
-# note that n is the parameter number starting from 1.
-wrapper.java.additional.1=-Dkaraf.home=%KARAF_HOME%
-wrapper.java.additional.2=-Dkaraf.base=%KARAF_BASE%
-wrapper.java.additional.3=-Dkaraf.data=%KARAF_DATA%
-wrapper.java.additional.4=-Dkaraf.etc=%KARAF_ETC%
-wrapper.java.additional.5=-Dcom.sun.management.jmxremote
-wrapper.java.additional.6=-Djavax.management.builder.initial=org.apache.karaf.management.boot.KarafMBeanServerBuilder
-wrapper.java.additional.7=-Dkaraf.startLocalConsole=false
-wrapper.java.additional.8=-Dkaraf.startRemoteShell=true
-wrapper.java.additional.9=-Djava.endorsed.dirs=%JAVA_HOME%/jre/lib/endorsed:%JAVA_HOME%/lib/endorsed:%KARAF_HOME%/lib/endorsed
-wrapper.java.additional.10=-Djava.ext.dirs=%JAVA_HOME%/jre/lib/ext:%JAVA_HOME%/lib/ext:%KARAF_HOME%/lib/ext
-
-# Uncomment to enable 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=512
-
-
-#********************************************************************
-# 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=%KARAF_DATA%/log/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=10m
-
-# 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=5
-
-# 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=${name}
-
-#********************************************************************
-# 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=${name}
-
-# Display name of the service
-wrapper.ntservice.displayname=${displayName}
-
-# Description of the service
-wrapper.ntservice.description=${description}
-
-# 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=${startType}
-
-# Allow the service to interact with the desktop.
-wrapper.ntservice.interactive=false

http://git-wip-us.apache.org/repos/asf/karaf/blob/4182735c/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/windows/karaf-service.bat
----------------------------------------------------------------------
diff --git a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/windows/karaf-service.bat b/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/windows/karaf-service.bat
deleted file mode 100644
index 0dd0474..0000000
--- a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/windows/karaf-service.bat
+++ /dev/null
@@ -1,51 +0,0 @@
-@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
-
-set APP_NAME=${name}
-set APP_LONG_NAME=${displayName}
-set APP_BASE=${karaf.base}
-set APP_ETC=${karaf.etc}
-
-if ""%1"" == ""run"" goto doRun
-if ""%1"" == ""install"" goto doInstall
-if ""%1"" == ""remove"" goto doRemove
-
-echo Usage:  karaf-service ( commands ... )
-echo commands:
-echo   run               Start %APP_NAME% in the current console
-echo   install           Install %APP_NAME% as a Windows service
-echo   remove            Remove the %APP_NAME% Windows service
-goto end
-
-:doRun
-"%APP_BASE%\bin\%APP_NAME%-wrapper.exe" -c "%APP_ETC%\%APP_NAME%-wrapper.conf"
-goto end
-
-:doInstall
-"%APP_BASE%\bin\%APP_NAME%-wrapper.exe" -i "%APP_ETC%\%APP_NAME%-wrapper.conf"
-goto end
-
-:doRemove
-"%APP_BASE%\bin\%APP_NAME%-wrapper.exe" -r "%APP_ETC%\%APP_NAME%-wrapper.conf"
-goto end
-
-:end
-if not "%PAUSE%" == "" pause

http://git-wip-us.apache.org/repos/asf/karaf/blob/4182735c/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/windows/karaf-wrapper.conf
----------------------------------------------------------------------
diff --git a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/windows/karaf-wrapper.conf b/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/windows/karaf-wrapper.conf
deleted file mode 100644
index def40f7..0000000
--- a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/windows/karaf-wrapper.conf
+++ /dev/null
@@ -1,135 +0,0 @@
-# ------------------------------------------------------------------------
-# 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
-#********************************************************************
-set.default.JAVA_HOME=${java.home}
-set.default.KARAF_HOME=${karaf.home}
-set.default.KARAF_BASE=${karaf.base}
-set.default.KARAF_DATA=${karaf.data}
-set.default.KARAF_ETC=${karaf.etc}
-
-# Java Application
-wrapper.working.dir=%KARAF_BASE%
-wrapper.java.command=%JAVA_HOME%/bin/java
-wrapper.java.mainclass=org.apache.karaf.wrapper.internal.Main
-wrapper.java.classpath.1=%KARAF_HOME%/lib/karaf-wrapper.jar
-wrapper.java.classpath.2=%KARAF_HOME%/lib/karaf.jar
-wrapper.java.classpath.3=%KARAF_HOME%/lib/karaf-jmx-boot.jar
-wrapper.java.classpath.4=%KARAF_HOME%/lib/karaf-jaas-boot.jar
-wrapper.java.classpath.5=%KARAF_HOME%/lib/karaf-wrapper-main.jar
-wrapper.java.classpath.6=%KARAF_HOME%/lib/karaf-org.osgi.core.jar
-wrapper.java.library.path.1=%KARAF_HOME%/lib/
-
-# Application Parameters.  Add parameters as needed starting from 1
-#wrapper.app.parameter.1=
-
-# JVM Parameters
-# note that n is the parameter number starting from 1.
-wrapper.java.additional.1=-Dkaraf.home="%KARAF_HOME%"
-wrapper.java.additional.2=-Dkaraf.base="%KARAF_BASE%"
-wrapper.java.additional.3=-Dkaraf.data="%KARAF_DATA%"
-wrapper.java.additional.4=-Dkaraf.etc="%KARAF_ETC%"
-wrapper.java.additional.5=-Dcom.sun.management.jmxremote
-wrapper.java.additional.6=-Djavax.management.builder.initial=org.apache.karaf.management.boot.KarafMBeanServerBuilder
-wrapper.java.additional.7=-Dkaraf.startLocalConsole=false
-wrapper.java.additional.8=-Dkaraf.startRemoteShell=true
-wrapper.java.additional.9=-Djava.endorsed.dirs="%JAVA_HOME%/jre/lib/endorsed;%JAVA_HOME%/lib/endorsed;%KARAF_HOME%/lib/endorsed"
-wrapper.java.additional.10=-Djava.ext.dirs="%JAVA_HOME%/jre/lib/ext;%JAVA_HOME%/lib/ext;%KARAF_HOME%/lib/ext"
-
-# Uncomment to enable 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=512
-
-
-#********************************************************************
-# 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=%KARAF_DATA%/log/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=10m
-
-# 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=5
-
-# 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=${name}
-
-#********************************************************************
-# 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=${name}
-
-# Display name of the service
-wrapper.ntservice.displayname=${displayName}
-
-# Description of the service
-wrapper.ntservice.description=${description}
-
-# 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=${startType}
-
-# Allow the service to interact with the desktop.
-wrapper.ntservice.interactive=false

http://git-wip-us.apache.org/repos/asf/karaf/blob/4182735c/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/windows/karaf-wrapper.exe
----------------------------------------------------------------------
diff --git a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/windows/karaf-wrapper.exe b/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/windows/karaf-wrapper.exe
deleted file mode 100644
index b4cfc55..0000000
Binary files a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/windows/karaf-wrapper.exe and /dev/null differ

http://git-wip-us.apache.org/repos/asf/karaf/blob/4182735c/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/windows/wrapper.dll
----------------------------------------------------------------------
diff --git a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/windows/wrapper.dll b/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/windows/wrapper.dll
deleted file mode 100644
index cb553c1..0000000
Binary files a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/windows/wrapper.dll and /dev/null differ

http://git-wip-us.apache.org/repos/asf/karaf/blob/4182735c/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/windows64/karaf-service.bat
----------------------------------------------------------------------
diff --git a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/windows64/karaf-service.bat b/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/windows64/karaf-service.bat
deleted file mode 100644
index 0dd0474..0000000
--- a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/windows64/karaf-service.bat
+++ /dev/null
@@ -1,51 +0,0 @@
-@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
-
-set APP_NAME=${name}
-set APP_LONG_NAME=${displayName}
-set APP_BASE=${karaf.base}
-set APP_ETC=${karaf.etc}
-
-if ""%1"" == ""run"" goto doRun
-if ""%1"" == ""install"" goto doInstall
-if ""%1"" == ""remove"" goto doRemove
-
-echo Usage:  karaf-service ( commands ... )
-echo commands:
-echo   run               Start %APP_NAME% in the current console
-echo   install           Install %APP_NAME% as a Windows service
-echo   remove            Remove the %APP_NAME% Windows service
-goto end
-
-:doRun
-"%APP_BASE%\bin\%APP_NAME%-wrapper.exe" -c "%APP_ETC%\%APP_NAME%-wrapper.conf"
-goto end
-
-:doInstall
-"%APP_BASE%\bin\%APP_NAME%-wrapper.exe" -i "%APP_ETC%\%APP_NAME%-wrapper.conf"
-goto end
-
-:doRemove
-"%APP_BASE%\bin\%APP_NAME%-wrapper.exe" -r "%APP_ETC%\%APP_NAME%-wrapper.conf"
-goto end
-
-:end
-if not "%PAUSE%" == "" pause

http://git-wip-us.apache.org/repos/asf/karaf/blob/4182735c/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/windows64/karaf-wrapper.conf
----------------------------------------------------------------------
diff --git a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/windows64/karaf-wrapper.conf b/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/windows64/karaf-wrapper.conf
deleted file mode 100644
index def40f7..0000000
--- a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/windows64/karaf-wrapper.conf
+++ /dev/null
@@ -1,135 +0,0 @@
-# ------------------------------------------------------------------------
-# 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
-#********************************************************************
-set.default.JAVA_HOME=${java.home}
-set.default.KARAF_HOME=${karaf.home}
-set.default.KARAF_BASE=${karaf.base}
-set.default.KARAF_DATA=${karaf.data}
-set.default.KARAF_ETC=${karaf.etc}
-
-# Java Application
-wrapper.working.dir=%KARAF_BASE%
-wrapper.java.command=%JAVA_HOME%/bin/java
-wrapper.java.mainclass=org.apache.karaf.wrapper.internal.Main
-wrapper.java.classpath.1=%KARAF_HOME%/lib/karaf-wrapper.jar
-wrapper.java.classpath.2=%KARAF_HOME%/lib/karaf.jar
-wrapper.java.classpath.3=%KARAF_HOME%/lib/karaf-jmx-boot.jar
-wrapper.java.classpath.4=%KARAF_HOME%/lib/karaf-jaas-boot.jar
-wrapper.java.classpath.5=%KARAF_HOME%/lib/karaf-wrapper-main.jar
-wrapper.java.classpath.6=%KARAF_HOME%/lib/karaf-org.osgi.core.jar
-wrapper.java.library.path.1=%KARAF_HOME%/lib/
-
-# Application Parameters.  Add parameters as needed starting from 1
-#wrapper.app.parameter.1=
-
-# JVM Parameters
-# note that n is the parameter number starting from 1.
-wrapper.java.additional.1=-Dkaraf.home="%KARAF_HOME%"
-wrapper.java.additional.2=-Dkaraf.base="%KARAF_BASE%"
-wrapper.java.additional.3=-Dkaraf.data="%KARAF_DATA%"
-wrapper.java.additional.4=-Dkaraf.etc="%KARAF_ETC%"
-wrapper.java.additional.5=-Dcom.sun.management.jmxremote
-wrapper.java.additional.6=-Djavax.management.builder.initial=org.apache.karaf.management.boot.KarafMBeanServerBuilder
-wrapper.java.additional.7=-Dkaraf.startLocalConsole=false
-wrapper.java.additional.8=-Dkaraf.startRemoteShell=true
-wrapper.java.additional.9=-Djava.endorsed.dirs="%JAVA_HOME%/jre/lib/endorsed;%JAVA_HOME%/lib/endorsed;%KARAF_HOME%/lib/endorsed"
-wrapper.java.additional.10=-Djava.ext.dirs="%JAVA_HOME%/jre/lib/ext;%JAVA_HOME%/lib/ext;%KARAF_HOME%/lib/ext"
-
-# Uncomment to enable 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=512
-
-
-#********************************************************************
-# 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=%KARAF_DATA%/log/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=10m
-
-# 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=5
-
-# 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=${name}
-
-#********************************************************************
-# 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=${name}
-
-# Display name of the service
-wrapper.ntservice.displayname=${displayName}
-
-# Description of the service
-wrapper.ntservice.description=${description}
-
-# 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=${startType}
-
-# Allow the service to interact with the desktop.
-wrapper.ntservice.interactive=false

http://git-wip-us.apache.org/repos/asf/karaf/blob/4182735c/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/windows64/karaf-wrapper.exe
----------------------------------------------------------------------
diff --git a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/windows64/karaf-wrapper.exe b/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/windows64/karaf-wrapper.exe
deleted file mode 100755
index db2ddda..0000000
Binary files a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/windows64/karaf-wrapper.exe and /dev/null differ

http://git-wip-us.apache.org/repos/asf/karaf/blob/4182735c/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/windows64/wrapper.dll
----------------------------------------------------------------------
diff --git a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/windows64/wrapper.dll b/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/windows64/wrapper.dll
deleted file mode 100644
index f07fc9e..0000000
Binary files a/wrapper/core/src/main/resources/org/apache/karaf/wrapper/internal/windows64/wrapper.dll and /dev/null differ

http://git-wip-us.apache.org/repos/asf/karaf/blob/4182735c/wrapper/pom.xml
----------------------------------------------------------------------
diff --git a/wrapper/pom.xml b/wrapper/pom.xml
index 3c809b9..6f36786 100644
--- a/wrapper/pom.xml
+++ b/wrapper/pom.xml
@@ -10,7 +10,7 @@
         (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
+            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,
@@ -29,13 +29,105 @@
     </parent>
 
     <groupId>org.apache.karaf.wrapper</groupId>
-    <artifactId>wrapper</artifactId>
-    <packaging>pom</packaging>
-    <name>Apache Karaf :: Wrapper</name>
-
-    <modules>
-        <module>core</module>
-        <module>command</module>
-    </modules>
+    <artifactId>org.apache.karaf.wrapper.core</artifactId>
+    <packaging>bundle</packaging>
+    <name>Apache Karaf :: Wrapper :: Core</name>
+    <description>
+        Core implementation and integration of the Java Service Wrapper.
+        It provides a complete integration of Karaf with your Operating System.
+    </description>
+
+    <properties>
+        <appendedResourcesDirectory>${basedir}/../../etc/appended-resources</appendedResourcesDirectory>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.karaf</groupId>
+            <artifactId>org.apache.karaf.main</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.karaf.shell</groupId>
+            <artifactId>org.apache.karaf.shell.core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>tanukisoft</groupId>
+            <artifactId>wrapper</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-api</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-jdk14</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <resources>
+            <resource>
+                <directory>${project.basedir}/src/main/resources</directory>
+                <includes>
+                    <include>**/*</include>
+                </includes>
+            </resource>
+            <resource>
+                <directory>${project.basedir}/src/main/resources</directory>
+                <filtering>true</filtering>
+                <includes>
+                    <include>**/*.info</include>
+                </includes>
+            </resource>
+        </resources>
+        <plugins>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>exec-maven-plugin</artifactId>
+                <configuration>
+                    <mainClass>Main</mainClass>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-bundle-plugin</artifactId>
+                <configuration>
+                    <instructions>
+                        <Export-Package>
+                            org.apache.karaf.wrapper,
+                            org.apache.karaf.wrapper.management
+                        </Export-Package>
+                        <Private-Package>
+                            org.apache.karaf.wrapper.commands,
+                            org.apache.karaf.wrapper.internal,
+                            org.apache.karaf.wrapper.internal.osgi,
+                            org.apache.karaf.wrapper.management.internal,
+                            org.tanukisoftware.wrapper*,
+                            org.apache.karaf.main*,
+                            org.apache.karaf.util.tracker
+                        </Private-Package>
+                        <Import-Package>
+                            !org.apache.felix.utils.properties,
+                            !org.apache.karaf.util.locks,
+                            !org.apache.karaf.info,
+                            *
+                        </Import-Package>
+                        <Bundle-Activator>
+                            org.apache.karaf.wrapper.internal.osgi.Activator
+                        </Bundle-Activator>
+                        <Karaf-Commands>
+                            org.apache.karaf.wrapper.commands
+                        </Karaf-Commands>
+                    </instructions>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
 
 </project>

http://git-wip-us.apache.org/repos/asf/karaf/blob/4182735c/wrapper/src/main/java/org/apache/karaf/wrapper/WrapperService.java
----------------------------------------------------------------------
diff --git a/wrapper/src/main/java/org/apache/karaf/wrapper/WrapperService.java b/wrapper/src/main/java/org/apache/karaf/wrapper/WrapperService.java
new file mode 100644
index 0000000..fb05a16
--- /dev/null
+++ b/wrapper/src/main/java/org/apache/karaf/wrapper/WrapperService.java
@@ -0,0 +1,42 @@
+/*
+ * 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.
+ */
+package org.apache.karaf.wrapper;
+
+import java.io.File;
+
+/**
+ * Interface describing the Wrapper service.
+ */
+public interface WrapperService {
+
+    /**
+     * Install the Karaf container as a system service in the OS.
+     */
+    public void install() throws Exception;
+
+    /**
+     * Install the Karaf container as a system service in the OS.
+     *
+     * @param name The service name that will be used when installing the service.
+     * @param displayName The display name of the service.
+     * @param description The description of the service.
+     * @param startType Mode in which the service is installed. AUTO_START or DEMAND_START.
+     * @return an array containing the wrapper configuration file (index 0) and the service file (index 1)
+     */
+    public File[] install(String name, String displayName, String description, String startType) throws Exception;
+
+}

http://git-wip-us.apache.org/repos/asf/karaf/blob/4182735c/wrapper/src/main/java/org/apache/karaf/wrapper/commands/Install.java
----------------------------------------------------------------------
diff --git a/wrapper/src/main/java/org/apache/karaf/wrapper/commands/Install.java b/wrapper/src/main/java/org/apache/karaf/wrapper/commands/Install.java
new file mode 100644
index 0000000..346f6f1
--- /dev/null
+++ b/wrapper/src/main/java/org/apache/karaf/wrapper/commands/Install.java
@@ -0,0 +1,199 @@
+/*
+ * 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.
+ */
+package org.apache.karaf.wrapper.commands;
+
+import java.io.File;
+
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Option;
+import org.apache.karaf.shell.api.action.lifecycle.Reference;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.wrapper.WrapperService;
+
+import static org.apache.karaf.shell.support.ansi.SimpleAnsi.INTENSITY_BOLD;
+import static org.apache.karaf.shell.support.ansi.SimpleAnsi.INTENSITY_NORMAL;
+
+/**
+ * Installs the Karaf instance as a service in your operating system.
+ */
+@Command(scope = "wrapper", name = "install", description = "Install the container as a system service in the OS.")
+@Service
+public class Install implements Action {
+
+	@Option(name = "-n", aliases = { "--name" }, description = "The service name that will be used when installing the service. (Default: karaf)", required = false, multiValued = false)
+	private String name = "karaf";
+
+	@Option(name = "-d", aliases = { "--display" }, description = "The display name of the service.", required = false, multiValued = false)
+	private String displayName = "karaf";
+
+	@Option(name = "-D", aliases = { "--description" }, description = "The description of the service.", required = false, multiValued = false)
+	private String description = "";
+
+	@Option(name = "-s", aliases = { "--start-type" }, description = "Mode in which the service is installed. AUTO_START or DEMAND_START (Default: AUTO_START)", required = false, multiValued = false)
+	private String startType = "AUTO_START";
+
+    @Reference
+	private WrapperService wrapperService;
+
+    @Override
+	public Object execute() throws Exception {
+        File[] wrapperPaths = wrapperService.install(name, displayName, description, startType);
+
+        String os = System.getProperty("os.name", "Unknown");
+        File wrapperConf = wrapperPaths[0];
+        File serviceFile = wrapperPaths[1];
+
+        System.out.println("");
+        System.out.println("Setup complete.  You may wish to tweak the JVM properties in the wrapper configuration file:");
+        System.out.println("\t" + wrapperConf.getPath());
+        System.out.println("before installing and starting the service.");
+        System.out.println("");
+        if (os.startsWith("Win")) {
+            System.out.println("");
+            System.out.println(INTENSITY_BOLD + "MS Windows system detected:" + INTENSITY_NORMAL);
+            System.out.println("To install the service, run: ");
+            System.out.println("  C:> " + serviceFile.getPath() + " install");
+            System.out.println("");
+            System.out.println("Once installed, to start the service run: ");
+            System.out.println("  C:> net start \"" + name + "\"");
+            System.out.println("");
+            System.out.println("Once running, to stop the service run: ");
+            System.out.println("  C:> net stop \"" + name + "\"");
+            System.out.println("");
+            System.out.println("Once stopped, to remove the installed the service run: ");
+            System.out.println("  C:> " + serviceFile.getPath() + " remove");
+            System.out.println("");
+        } else if (os.startsWith("Mac OS X")) {
+            System.out.println("");
+            System.out.println(INTENSITY_BOLD + "Mac OS X system detected:" + INTENSITY_NORMAL);
+            System.out.println("to add bin/org.apache.karaf.KARAF as user service move this file into ~/Library/LaunchAgents/");  
+            System.out.println("> mv bin/org.apache.karaf.KARAF.plist ~/Library/LaunchAgents/");
+            System.out.println("");
+            System.out.println("to add org.apache.karaf.KARAF as system service move this into /Library/LaunchDaemons");  
+            System.out.println("> sudo mv bin/org.apache.karaf.KARAF.plist /Library/LaunchDaemons/");  
+            System.out.println("change owner and rights");  
+            System.out.println("> sudo chown root:wheel /Library/LaunchDaemons/org.apache.karaf.KARAF.plist");  
+            System.out.println("> sudo chmod u=rw,g=r,o=r /Library/LaunchDaemons/org.apache.karaf.KARAF.plist");  
+            System.out.println(""); 
+            System.out.println("test your service");  
+            System.out.println("> launchctl load ~/Library/LaunchAgents/org.apache.karaf.KARAF.plist");  
+            System.out.println("> launchctl start org.apache.karaf.KARAF");  
+            System.out.println("> launchctl stop org.apache.karaf.KARAF");  
+            System.out.println("");  
+            System.out.println("after restart your session or system");  
+            System.out.println("you can use launchctl command to start and stop your service");  
+            System.out.println("");  
+            System.out.println("for removing the service call");  
+            System.out.println("> launchctl remove org.apache.karaf.KARAF");  
+            System.out.println("");
+        } else if (os.startsWith("Linux")) {
+
+            File debianVersion = new File("/etc/debian_version");
+            File redhatRelease = new File("/etc/redhat-release");
+
+            if (redhatRelease.exists()) {
+                System.out.println("");
+                System.out.println(INTENSITY_BOLD + "RedHat/Fedora/CentOS Linux system detected:" + INTENSITY_NORMAL);
+                System.out.println("  To install the service:");
+                System.out.println("    $ ln -s " + serviceFile.getPath() + " /etc/init.d/");
+                System.out.println("    $ chkconfig " + serviceFile.getName() + " --add");
+                System.out.println("");
+                System.out.println("  To start the service when the machine is rebooted:");
+                System.out.println("    $ chkconfig " + serviceFile.getName() + " on");
+                System.out.println("");
+                System.out.println("  To disable starting the service when the machine is rebooted:");
+                System.out.println("    $ chkconfig " + serviceFile.getName() + " off");
+                System.out.println("");
+                System.out.println("  To start the service:");
+                System.out.println("    $ service " + serviceFile.getName() + " start");
+                System.out.println("");
+                System.out.println("  To stop the service:");
+                System.out.println("    $ service " + serviceFile.getName() + " stop");
+                System.out.println("");
+                System.out.println("  To uninstall the service :");
+                System.out.println("    $ chkconfig " + serviceFile.getName() + " --del");
+                System.out.println("    $ rm /etc/init.d/" + serviceFile.getPath());
+            } else if (debianVersion.exists()) {
+                System.out.println("");
+                System.out.println(INTENSITY_BOLD + "Ubuntu/Debian Linux system detected:" + INTENSITY_NORMAL);
+                System.out.println("  To install the service:");
+                System.out.println("    $ ln -s " + serviceFile.getPath() + " /etc/init.d/");
+                System.out.println("");
+                System.out.println("  To start the service when the machine is rebooted:");
+                System.out.println("    $ update-rc.d " + serviceFile.getName() + " defaults");
+                System.out.println("");
+                System.out.println("  To disable starting the service when the machine is rebooted:");
+                System.out.println("    $ update-rc.d -f " + serviceFile.getName() + " remove");
+                System.out.println("");
+                System.out.println("  To start the service:");
+                System.out.println("    $ /etc/init.d/" + serviceFile.getName() + " start");
+                System.out.println("");
+                System.out.println("  To stop the service:");
+                System.out.println("    $ /etc/init.d/" + serviceFile.getName() + " stop");
+                System.out.println("");
+                System.out.println("  To uninstall the service :");
+                System.out.println("    $ rm /etc/init.d/" + serviceFile.getName());
+            } else {
+				System.out.println("");
+                System.out.println(INTENSITY_BOLD + "On Redhat/Fedora/CentOS Systems:" + INTENSITY_NORMAL);
+				System.out.println("  To install the service:");
+				System.out.println("    $ ln -s "+serviceFile.getPath()+" /etc/init.d/");
+				System.out.println("    $ chkconfig "+serviceFile.getName()+" --add");
+				System.out.println("");
+				System.out.println("  To start the service when the machine is rebooted:");
+				System.out.println("    $ chkconfig "+serviceFile.getName()+" on");
+				System.out.println("");
+				System.out.println("  To disable starting the service when the machine is rebooted:");
+				System.out.println("    $ chkconfig "+serviceFile.getName()+" off");
+				System.out.println("");
+				System.out.println("  To start the service:");
+				System.out.println("    $ service "+serviceFile.getName()+" start");
+				System.out.println("");
+				System.out.println("  To stop the service:");
+				System.out.println("    $ service "+serviceFile.getName()+" stop");
+				System.out.println("");
+				System.out.println("  To uninstall the service :");
+				System.out.println("    $ chkconfig "+serviceFile.getName()+" --del");
+				System.out.println("    $ rm /etc/init.d/"+serviceFile.getName());
+
+				System.out.println("");
+                System.out.println(INTENSITY_BOLD + "On Ubuntu/Debian Systems:" + INTENSITY_NORMAL);
+				System.out.println("  To install the service:");
+				System.out.println("    $ ln -s "+serviceFile.getPath()+" /etc/init.d/");
+				System.out.println("");
+				System.out.println("  To start the service when the machine is rebooted:");
+				System.out.println("    $ update-rc.d "+serviceFile.getName()+" defaults");
+				System.out.println("");
+				System.out.println("  To disable starting the service when the machine is rebooted:");
+				System.out.println("    $ update-rc.d -f "+serviceFile.getName()+" remove");
+				System.out.println("");
+				System.out.println("  To start the service:");
+				System.out.println("    $ /etc/init.d/"+serviceFile.getName()+" start");
+				System.out.println("");
+				System.out.println("  To stop the service:");
+				System.out.println("    $ /etc/init.d/"+serviceFile.getName()+" stop");
+				System.out.println("");
+				System.out.println("  To uninstall the service :");
+				System.out.println("    $ rm /etc/init.d/"+serviceFile.getName());
+            }
+
+        }
+
+        return null;
+    }
+}

http://git-wip-us.apache.org/repos/asf/karaf/blob/4182735c/wrapper/src/main/java/org/apache/karaf/wrapper/internal/Main.java
----------------------------------------------------------------------
diff --git a/wrapper/src/main/java/org/apache/karaf/wrapper/internal/Main.java b/wrapper/src/main/java/org/apache/karaf/wrapper/internal/Main.java
new file mode 100644
index 0000000..8f3060e
--- /dev/null
+++ b/wrapper/src/main/java/org/apache/karaf/wrapper/internal/Main.java
@@ -0,0 +1,146 @@
+/*
+ * 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.
+ */
+package org.apache.karaf.wrapper.internal;
+
+import org.apache.karaf.main.ShutdownCallback;
+import org.tanukisoftware.wrapper.WrapperListener;
+import org.tanukisoftware.wrapper.WrapperManager;
+
+/**
+ * Java Service Wrapper Main class
+ */
+public class Main extends Thread implements WrapperListener, ShutdownCallback {
+
+    private org.apache.karaf.main.Main main;
+    private volatile boolean destroying;
+
+    /*---------------------------------------------------------------
+     * Constructors
+     *-------------------------------------------------------------*/
+    private Main() {
+    }
+
+    /*---------------------------------------------------------------
+     * WrapperListener Methods
+     *-------------------------------------------------------------*/
+
+    /**
+     * The start method is called when the WrapperManager is signaled by the
+     * native Wrapper code that it can start its application.  This
+     * method call is expected to return, so a new thread should be launched
+     * if necessary.
+     *
+     * @param args List of arguments used to initialize the application.
+     * @return Any error code if the application should exit on completion
+     *         of the start method.  If there were no problems then this
+     *         method should return null.
+     */
+    public Integer start(String[] args) {
+        main = new org.apache.karaf.main.Main(args);
+        try {
+            main.launch();
+            main.setShutdownCallback(this);
+            start();
+            return null;
+        } catch (Throwable ex) {
+            System.err.println("Could not create framework: " + ex);
+            ex.printStackTrace();
+            return -1;
+        }
+    }
+
+    public void run() {
+        try {
+            main.awaitShutdown();
+            if (!destroying) {
+                WrapperManager.stop(main.getExitCode());
+            }
+        } catch (Exception e) {
+            // Ignore
+        }
+    }
+
+    /**
+     * Called when the application is shutting down.  The Wrapper assumes that
+     * this method will return fairly quickly.  If the shutdown code code
+     * could potentially take a long time, then WrapperManager.signalStopping()
+     * should be called to extend the timeout period.  If for some reason,
+     * the stop method can not return, then it must call
+     * WrapperManager.stopped() to avoid warning messages from the Wrapper.
+     *
+     * @param exitCode The suggested exit code that will be returned to the OS
+     *                 when the JVM exits.
+     * @return The exit code to actually return to the OS.  In most cases, this
+     *         should just be the value of exitCode, however the user code has
+     *         the option of changing the exit code if there are any problems
+     *         during shutdown.
+     */
+    public int stop(int exitCode) {
+        try {
+            destroying = true;
+            if (!main.destroy()) {
+                System.err.println("Timeout waiting for Karaf to shutdown");
+                return -3;
+            }
+        } catch (Throwable ex) {
+            System.err.println("Error occured shutting down framework: " + ex);
+            ex.printStackTrace();
+            return -2;
+        }
+
+        return main.getExitCode();
+    }
+
+    /**
+     * Call-back method is called by the @{link org.apache.karaf.main.Main} for Signaling
+     * that the stopping process is in progress and the wrapper doesn't kill the JVM.
+     */
+    public void waitingForShutdown(int delay) {
+        WrapperManager.signalStopping(delay);
+    }
+
+    /**
+     * Called whenever the native Wrapper code traps a system control signal
+     * against the Java process.  It is up to the callback to take any actions
+     * necessary.  Possible values are: WrapperManager.WRAPPER_CTRL_C_EVENT,
+     * WRAPPER_CTRL_CLOSE_EVENT, WRAPPER_CTRL_LOGOFF_EVENT, or
+     * WRAPPER_CTRL_SHUTDOWN_EVENT
+     *
+     * @param event The system control signal.
+     */
+    public void controlEvent(int event) {
+        if ((event == WrapperManager.WRAPPER_CTRL_LOGOFF_EVENT)
+                && (WrapperManager.isLaunchedAsService())) {
+            // Ignore
+        } else {
+            WrapperManager.stop(0);
+            // Will not get here.
+        }
+    }
+
+    /*---------------------------------------------------------------
+     * Main Method
+     *-------------------------------------------------------------*/
+    public static void main(String[] args) {
+        // Start the application.  If the JVM was launched from the native
+        //  Wrapper then the application will wait for the native Wrapper to
+        //  call the application's start method.  Otherwise the start method
+        //  will be called immediately.
+        WrapperManager.start(new Main(), args);
+    }
+
+}
\ No newline at end of file