Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'build-kernel')
-rw-r--r--build-kernel/bin/checkJava.bat17
-rwxr-xr-xbuild-kernel/bin/checkJava.sh12
-rwxr-xr-xbuild-kernel/bin/dmk.bat239
-rwxr-xr-xbuild-kernel/bin/dmk.sh228
-rw-r--r--build-kernel/bin/jconsole.bat54
-rwxr-xr-xbuild-kernel/bin/jconsole.sh53
-rw-r--r--build-kernel/bin/jmxPermissions.vbs70
-rw-r--r--build-kernel/bin/setupClasspath.bat20
-rwxr-xr-xbuild-kernel/bin/setupClasspath.sh19
-rw-r--r--build-kernel/bin/setupVars.bat31
-rw-r--r--build-kernel/bin/shutdown.bat8
-rwxr-xr-xbuild-kernel/bin/shutdown.sh20
-rw-r--r--build-kernel/bin/startup.bat8
-rwxr-xr-xbuild-kernel/bin/startup.sh20
-rw-r--r--build-kernel/build.xml185
-rw-r--r--build-kernel/config/keystorebin0 -> 1206 bytes
-rw-r--r--build-kernel/config/org.eclipse.virgo.kernel.authentication.config3
-rw-r--r--build-kernel/config/org.eclipse.virgo.kernel.jmxremote.access.properties1
-rw-r--r--build-kernel/config/org.eclipse.virgo.kernel.properties12
-rw-r--r--build-kernel/config/org.eclipse.virgo.kernel.userregion.properties74
-rw-r--r--build-kernel/config/org.eclipse.virgo.kernel.users.properties10
-rw-r--r--build-kernel/config/org.eclipse.virgo.medic.properties6
-rw-r--r--build-kernel/config/org.eclipse.virgo.repository.properties7
-rw-r--r--build-kernel/config/serviceability.xml77
-rw-r--r--build-kernel/kernel-ivy.xml39
-rw-r--r--build-kernel/lib-ivy.xml22
-rw-r--r--build-kernel/lib/java6-server.profile207
-rw-r--r--build-kernel/lib/org.eclipse.virgo.kernel.launch.properties54
-rw-r--r--build-kernel/repository/ext/org.eclipse.virgo.kernel.userregion.springdm.plan13
-rw-r--r--build-kernel/test-package.xml30
30 files changed, 1539 insertions, 0 deletions
diff --git a/build-kernel/bin/checkJava.bat b/build-kernel/bin/checkJava.bat
new file mode 100644
index 00000000..316486be
--- /dev/null
+++ b/build-kernel/bin/checkJava.bat
@@ -0,0 +1,17 @@
+@echo off
+rem Script for checking we have the right version of Java.
+
+if "%JAVA_HOME%" == "" (
+ echo The JAVA_HOME environment variable is not defined.
+ exit /B 1
+)
+if "%CLASSPATH%" == "" (
+ echo The CLASSPATH environment variable is not defined.
+ exit /B 1
+)
+
+rem Run java version check with the discovered java jvm.
+"%JAVA_HOME%\bin\java" -classpath "%CLASSPATH%" org.eclipse.virgo.osgi.launcher.JavaVersionChecker
+
+rem If non-zero exit then either we cannot find the checker or the Java version is incorrect.
+if not "%ERRORLEVEL%"=="0" exit /B %ERRORLEVEL%
diff --git a/build-kernel/bin/checkJava.sh b/build-kernel/bin/checkJava.sh
new file mode 100755
index 00000000..3dace27e
--- /dev/null
+++ b/build-kernel/bin/checkJava.sh
@@ -0,0 +1,12 @@
+#!/bin/bash
+
+# Run java version check with the discovered java jvm.
+$JAVA_HOME/bin/java \
+ -classpath $CLASSPATH \
+ org.eclipse.virgo.osgi.launcher.JavaVersionChecker
+
+# If non-zero exit then either we cannot find the check or the java version is incorrect.
+if [ $? != 0 ]
+then
+ exit 1
+fi
diff --git a/build-kernel/bin/dmk.bat b/build-kernel/bin/dmk.bat
new file mode 100755
index 00000000..7d1e9aa7
--- /dev/null
+++ b/build-kernel/bin/dmk.bat
@@ -0,0 +1,239 @@
+@echo off
+rem Script for starting and stopping the kernel
+
+if "%OS%" == "Windows_NT" setlocal
+
+rem Derive full path for script (includes trailing backslash)
+ set SCRIPT_DIR=%~dp0
+
+if exist "%SCRIPT_DIR%setupVars.bat" (
+ call "%SCRIPT_DIR%setupVars.bat"
+ if not "%ERRORLEVEL%"=="0" (
+ if "%OS%" == "Windows_NT" endlocal
+ exit /B %ERRORLEVEL%
+ )
+) else (
+ echo Cannot set up environment. "setupVars.bat" file missing.
+ if "%OS%" == "Windows_NT" endlocal
+ exit /B 1
+)
+
+rem Select command we are to run
+
+ rem First parm is command
+ set COMMAND=%~1
+ rem Rest are parameters - shift done in subroutines
+
+ rem Switch on COMMAND in {"start","stop"}
+
+ if "%COMMAND%" == "start" (
+ call :doStartCommand %*
+ if "%OS%" == "Windows_NT" endlocal
+ exit /B 0
+ )
+
+ if "%COMMAND%" == "stop" (
+ call :doStopCommand %*
+ if "%OS%" == "Windows_NT" endlocal
+ exit /B 0
+ )
+
+ echo Unknown command: %COMMAND%
+ if "%OS%" == "Windows_NT" endlocal
+ exit /B 1
+
+rem ------------------ Subroutines
+rem ------------------------------
+:doStartCommand
+
+ shift
+ rem The shift must be here :()
+
+ rem Check further file that needs to exist
+ for %%I in ("%KERNEL_HOME%\bin\jmxPermissions.vbs") do if not exist "%%~I" (
+ echo File "%%~I" does not exist but is required to continue.
+ exit /B 1
+ )
+
+ rem Set defaults
+ set CONFIG_DIR=%KERNEL_HOME%\config
+ set CLEAN_FLAG=
+ set DEBUG_FLAG=
+ set DEBUG_PORT=8000
+ set SUSPEND=n
+ if not defined JMX_PORT set JMX_PORT=9875
+ if not defined KEYSTORE_PASSWORD set KEYSTORE_PASSWORD=changeit
+ set ADDITIONAL_ARGS=
+
+ rem Loop through options
+
+ :startOptionLoop
+ if "%~1"=="" goto endStartOptionLoop
+ if "%~1"=="-debug" goto debug
+ if "%~1"=="-clean" goto clean
+ if "%~1"=="-configDir" goto configDir
+ if "%~1"=="-jmxport" goto jmxport
+ if "%~1"=="-keystore" goto keystore
+ if "%~1"=="-keystorePassword" goto keystorePassword
+ if "%~1"=="-suspend" goto suspend
+ if "%~1"=="-shell" goto shell
+
+ set ADDITIONAL_ARGS=%ADDITIONAL_ARGS% "%~1"
+
+ :continueStartOptionLoop
+ shift
+ goto startOptionLoop
+
+ :debug
+ set DEBUG_FLAG=1
+ set PORT_CANDIDATE=%~2
+ if not "%PORT_CANDIDATE:~0,1%"=="-" (
+ set DEBUG_PORT=%PORT_CANDIDATE%
+ shift
+ )
+ goto continueStartOptionLoop
+ :clean
+ set CLEAN_FLAG=1
+ goto continueStartOptionLoop
+ :configDir
+ set CONFIG_DIR=%~2
+ rem check it is absolute, relative to the kernel home
+ if not "%CONFIG_DIR:~1,2%"==":\" set CONFIG_DIR=%KERNEL_HOME%\%CONFIG_DIR%
+ if "%CONFIG_DIR:-1%"=="\" set CONFIG_DIR=%CONFIG_DIR:~-1%
+ shift
+ goto continueStartOptionLoop
+ :jmxport
+ set JMX_PORT=%~2
+ shift
+ goto continueStartOptionLoop
+ :keystore
+ set KEYSTORE_PATH=%~2
+ shift
+ goto continueStartOptionLoop
+ :keystorePassword
+ set KEYSTORE_PASSWORD=%~2
+ shift
+ goto continueStartOptionLoop
+ :suspend
+ set SUSPEND=y
+ goto continueStartOptionLoop
+ :shell
+ set SHELL_FLAG=1
+ goto continueStartOptionLoop
+
+ :endStartOptionLoop
+
+
+ rem Adjust permissions if necessary
+ cscript //NoLogo "%KERNEL_HOME%\bin\jmxPermissions.vbs" "%CONFIG_DIR%\"
+
+ rem Adjust options now all are known
+ if "%KEYSTORE_PATH%"=="" set KEYSTORE_PATH=%CONFIG_DIR%\keystore
+ if not "%DEBUG_FLAG%"=="" set DEBUG_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=%DEBUG_PORT%,server=y,suspend=%SUSPEND%
+
+ rem do Clean work:
+ if not "%CLEAN_FLAG%"=="" (
+ rmdir /Q /S "%KERNEL_HOME%\serviceability"
+ rmdir /Q /S "%KERNEL_HOME%\work"
+ set LAUNCH_OPTS=%LAUNCH_OPTS% -Fosgi.clean=true
+ )
+
+ rem ensure that the tmp directory exists:
+ set TMP_DIR="%KERNEL_HOME%\work\tmp"
+ if not exist "%TMP_DIR%" mkdir "%TMP_DIR%"
+
+ rem do Shell work:
+ if not "%SHELL_FLAG%"=="" (
+ set LAUNCH_OPTS=%LAUNCH_OPTS% -Forg.eclipse.virgo.kernel.shell.local=true
+ )
+
+ rem Set JMX options
+ set JMX_OPTS=%JMX_OPTS% -Dcom.sun.management.jmxremote.port=%JMX_PORT%
+ set JMX_OPTS=%JMX_OPTS% -Dcom.sun.management.jmxremote.authenticate=true
+ set JMX_OPTS=%JMX_OPTS% -Dcom.sun.management.jmxremote.login.config=virgo-kernel
+ set JMX_OPTS=%JMX_OPTS% -Dcom.sun.management.jmxremote.access.file="%CONFIG_DIR%\org.eclipse.virgo.kernel.jmxremote.access.properties"
+ set JMX_OPTS=%JMX_OPTS% -Djavax.net.ssl.keyStore="%KEYSTORE_PATH%"
+ set JMX_OPTS=%JMX_OPTS% -Djavax.net.ssl.keyStorePassword=%KEYSTORE_PASSWORD%
+ set JMX_OPTS=%JMX_OPTS% -Dcom.sun.management.jmxremote.ssl=true
+ set JMX_OPTS=%JMX_OPTS% -Dcom.sun.management.jmxremote.ssl.need.client.auth=false
+
+ rem Run the server
+
+ rem Marshall parameters
+ set KERNEL_JAVA_PARMS=%JAVA_OPTS% %DEBUG_OPTS% %JMX_OPTS%
+
+ set KERNEL_JAVA_PARMS=%KERNEL_JAVA_PARMS% -XX:+HeapDumpOnOutOfMemoryError
+ set KERNEL_JAVA_PARMS=%KERNEL_JAVA_PARMS% -XX:ErrorFile="%KERNEL_HOME%\serviceability\error.log"
+ set KERNEL_JAVA_PARMS=%KERNEL_JAVA_PARMS% -XX:HeapDumpPath="%KERNEL_HOME%\serviceability\heap_dump.hprof"
+ set KERNEL_JAVA_PARMS=%KERNEL_JAVA_PARMS% -Djava.security.auth.login.config="%CONFIG_DIR%\org.eclipse.virgo.kernel.authentication.config"
+ set KERNEL_JAVA_PARMS=%KERNEL_JAVA_PARMS% -Dorg.eclipse.virgo.kernel.authentication.file="%CONFIG_DIR%\org.eclipse.virgo.kernel.users.properties"
+ set KERNEL_JAVA_PARMS=%KERNEL_JAVA_PARMS% -Djava.io.tmpdir="%TMP_DIR%"
+ set KERNEL_JAVA_PARMS=%KERNEL_JAVA_PARMS% -Dorg.eclipse.virgo.kernel.home="%KERNEL_HOME%"
+ set KERNEL_JAVA_PARMS=%KERNEL_JAVA_PARMS% -classpath "%CLASSPATH%"
+ set KERNEL_JAVA_PARMS=%KERNEL_JAVA_PARMS% org.eclipse.virgo.osgi.launcher.Launcher
+ set KERNEL_JAVA_PARMS=%KERNEL_JAVA_PARMS% -config "%KERNEL_HOME%\lib\org.eclipse.virgo.kernel.launch.properties"
+ set KERNEL_JAVA_PARMS=%KERNEL_JAVA_PARMS% -Forg.eclipse.virgo.kernel.home="%KERNEL_HOME%"
+ set KERNEL_JAVA_PARMS=%KERNEL_JAVA_PARMS% -Forg.eclipse.virgo.kernel.config="%CONFIG_DIR%"
+ set KERNEL_JAVA_PARMS=%KERNEL_JAVA_PARMS% -Fosgi.configuration.area="%KERNEL_HOME%\work\osgi\configuration"
+ set KERNEL_JAVA_PARMS=%KERNEL_JAVA_PARMS% -Fosgi.java.profile="file:%KERNEL_HOME%\lib\java6-server.profile"
+ set KERNEL_JAVA_PARMS=%KERNEL_JAVA_PARMS% %LAUNCH_OPTS%
+ set KERNEL_JAVA_PARMS=%KERNEL_JAVA_PARMS% %ADDITIONAL_ARGS%
+
+ rem Now run it
+ PUSHD %KERNEL_HOME%
+ "%JAVA_HOME%\bin\java" %KERNEL_JAVA_PARMS%
+ POPD
+
+goto :eof
+
+rem ------------------------------
+:doStopCommand
+
+ shift
+ rem The shift must be here :()
+
+ rem Set defaults
+ if not defined TRUSTSTORE_PATH set TRUSTSTORE_PATH=%KERNEL_HOME%\config\keystore
+ if not defined TRUSTSTORE_PASSWORD set TRUSTSTORE_PASSWORD=changeit
+ set OTHER_ARGS=
+
+ rem Loop through options
+
+ :stopOptionLoop
+ if "%~1"=="" goto endStopOptionLoop
+
+ if "%~1"=="-truststore" (
+ set TRUSTSTORE_PATH=%~2
+ shift
+ ) else (
+ if "%~1"=="-truststorePassword" (
+ set TRUSTSTORE_PASSWORD=%~2
+ shift
+ ) else (
+ set OTHER_ARGS=%OTHER_ARGS% "%~1"
+ )
+ )
+
+ shift
+ goto stopOptionLoop
+ :endStopOptionLoop
+
+ rem Call shutdown client
+
+ rem Extend JMX options
+ set JMX_OPTS=%JMX_OPTS% -Djavax.net.ssl.trustStore="%TRUSTSTORE_PATH%"
+ set JMX_OPTS=%JMX_OPTS% -Djavax.net.ssl.trustStorePassword=%TRUSTSTORE_PASSWORD%
+
+ rem Marshall parameters
+ set SHUTDOWN_PARMS= %JAVA_OPTS% %JMX_OPTS%
+ set SHUTDOWN_PARMS=%SHUTDOWN_PARMS% -classpath "%CLASSPATH%"
+ set SHUTDOWN_PARMS=%SHUTDOWN_PARMS% -Dorg.eclipse.virgo.kernel.home="%KERNEL_HOME%"
+ set SHUTDOWN_PARMS=%SHUTDOWN_PARMS% org.eclipse.virgo.kernel.shutdown.ShutdownClient
+ set SHUTDOWN_PARMS=%SHUTDOWN_PARMS% %OTHER_ARGS%
+
+ rem Run Java program
+ PUSHD %KERNEL_HOME%
+ "%JAVA_HOME%\bin\java" %SHUTDOWN_PARMS%
+ POPD
+
+goto :eof
diff --git a/build-kernel/bin/dmk.sh b/build-kernel/bin/dmk.sh
new file mode 100755
index 00000000..bd9dd368
--- /dev/null
+++ b/build-kernel/bin/dmk.sh
@@ -0,0 +1,228 @@
+#!/bin/bash
+
+SCRIPT="$0"
+
+# SCRIPT may be an arbitrarily deep series of symlinks. Loop until we have the concrete path.
+while [ -h "$SCRIPT" ] ; do
+ ls=`ls -ld "$SCRIPT"`
+ # Drop everything prior to ->
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ SCRIPT="$link"
+ else
+ SCRIPT=`dirname "$SCRIPT"`/"$link"
+ fi
+done
+
+# determine kernel home
+KERNEL_HOME=`dirname "$SCRIPT"`/..
+
+# make KERNEL_HOME absolute
+KERNEL_HOME=`cd $KERNEL_HOME; pwd`
+
+# setup classpath and java environment
+. $KERNEL_HOME/bin/setupClasspath.sh
+
+# execute user setenv script if needed
+if [ -r $KERNEL_HOME/bin/setenv.sh ]
+then
+ . $KERNEL_HOME/bin/setenv.sh
+fi
+
+
+# Run java version check with the discovered java jvm.
+. $KERNEL_HOME/bin/checkJava.sh
+
+shopt -s extglob
+
+# parse the command we executing
+COMMAND=$1
+shift;
+
+if [ "$COMMAND" = "start" ]
+then
+
+ # parse the standard arguments
+ CONFIG_DIR=$KERNEL_HOME/config
+ CLEAN_FLAG=
+
+ SHELL_FLAG=
+
+ DEBUG_FLAG=
+ DEBUG_PORT=8000
+ SUSPEND=n
+ if [ -z "$JMX_PORT" ]
+ then
+ JMX_PORT=9875
+ fi
+
+ if [ -z "$KEYSTORE_PASSWORD" ]
+ then
+ KEYSTORE_PASSWORD=changeit
+ fi
+
+ ADDITIONAL_ARGS=
+
+ while (($# > 0))
+ do
+ case $1 in
+ -debug)
+ DEBUG_FLAG=1
+ if [[ "$2" == +([0-9]) ]]
+ then
+ DEBUG_PORT=$2
+ shift;
+ fi
+ ;;
+ -clean)
+ CLEAN_FLAG=1
+ ;;
+ -configDir)
+ CONFIG_DIR=$2
+ shift;
+ ;;
+ -jmxport)
+ JMX_PORT=$2
+ shift;
+ ;;
+ -keystore)
+ KEYSTORE_PATH=$2
+ shift;
+ ;;
+ -keystorePassword)
+ KEYSTORE_PASSWORD=$2
+ shift;
+ ;;
+ -suspend)
+ SUSPEND=y
+ ;;
+ -shell)
+ SHELL_FLAG=1
+ ;;
+ *)
+ ADDITIONAL_ARGS="$ADDITIONAL_ARGS $1"
+ ;;
+ esac
+ shift
+ done
+
+ # start the kernel
+ if [[ "$CONFIG_DIR" != /* ]]
+ then
+ CONFIG_DIR=$KERNEL_HOME/$CONFIG_DIR
+ fi
+
+ if [ -z "$KEYSTORE_PATH" ]
+ then
+ KEYSTORE_PATH=$CONFIG_DIR/keystore
+ fi
+
+ if [ "$DEBUG_FLAG" ]
+ then
+ DEBUG_OPTS=" \
+ -Xdebug \
+ -Xrunjdwp:transport=dt_socket,address=$DEBUG_PORT,server=y,suspend=$SUSPEND"
+ fi
+
+ if [ "$CLEAN_FLAG" ]
+ then
+ rm -rf $KERNEL_HOME/work
+ rm -rf $KERNEL_HOME/serviceability
+
+ LAUNCH_OPTS="$LAUNCH_OPTS -Fosgi.clean=true"
+ fi
+
+ if [ "$SHELL_FLAG" ]
+ then
+ LAUNCH_OPTS="$LAUNCH_OPTS -Forg.eclipse.virgo.kernel.shell.local=true"
+ fi
+
+ # Set the required permissions on the JMX configuration files
+ chmod 600 $CONFIG_DIR/org.eclipse.virgo.kernel.jmxremote.access.properties
+
+ JMX_OPTS=" \
+ $JMX_OPTS \
+ -Dcom.sun.management.jmxremote.port=$JMX_PORT \
+ -Dcom.sun.management.jmxremote.authenticate=true \
+ -Dcom.sun.management.jmxremote.login.config=virgo-kernel \
+ -Dcom.sun.management.jmxremote.access.file=$CONFIG_DIR/org.eclipse.virgo.kernel.jmxremote.access.properties \
+ -Djavax.net.ssl.keyStore=$KEYSTORE_PATH \
+ -Djavax.net.ssl.keyStorePassword=$KEYSTORE_PASSWORD \
+ -Dcom.sun.management.jmxremote.ssl=true \
+ -Dcom.sun.management.jmxremote.ssl.need.client.auth=false"
+
+ # If we get here we have the correct Java version.
+
+ TMP_DIR=$KERNEL_HOME/work/tmp
+
+ # Ensure that the tmp directory exists
+ mkdir -p $TMP_DIR
+
+ cd $KERNEL_HOME; $JAVA_HOME/bin/java \
+ $JAVA_OPTS \
+ $DEBUG_OPTS \
+ $JMX_OPTS \
+ -XX:+HeapDumpOnOutOfMemoryError \
+ -XX:ErrorFile=$KERNEL_HOME/serviceability/error.log \
+ -XX:HeapDumpPath=$KERNEL_HOME/serviceability/heap_dump.hprof \
+ -Djava.security.auth.login.config=$CONFIG_DIR/org.eclipse.virgo.kernel.authentication.config \
+ -Dorg.eclipse.virgo.kernel.authentication.file=$CONFIG_DIR/org.eclipse.virgo.kernel.users.properties \
+ -Djava.io.tmpdir=$TMP_DIR \
+ -Dorg.eclipse.virgo.kernel.home=$KERNEL_HOME \
+ -classpath $CLASSPATH \
+ org.eclipse.virgo.osgi.launcher.Launcher \
+ -config $KERNEL_HOME/lib/org.eclipse.virgo.kernel.launch.properties \
+ -Forg.eclipse.virgo.kernel.home=$KERNEL_HOME \
+ -Forg.eclipse.virgo.kernel.config=$CONFIG_DIR \
+ -Fosgi.configuration.area=$KERNEL_HOME/work/osgi/configuration \
+ -Fosgi.java.profile="file:$KERNEL_HOME/lib/java6-server.profile" \
+ $LAUNCH_OPTS \
+ $ADDITIONAL_ARGS
+elif [ "$COMMAND" = "stop" ]
+then
+
+ #parse args for the script
+ if [ -z "$TRUSTSTORE_PATH" ]
+ then
+ TRUSTSTORE_PATH=$KERNEL_HOME/config/keystore
+ fi
+
+ if [ -z "$TRUSTSTORE_PASSWORD" ]
+ then
+ TRUSTSTORE_PASSWORD=changeit
+ fi
+
+ shopt -s extglob
+
+ while (($# > 0))
+ do
+ case $1 in
+ -truststore)
+ TRUSTSTORE_PATH=$2
+ shift;
+ ;;
+ -truststorePassword)
+ TRUSTSTORE_PASSWORD=$2
+ shift;
+ ;;
+ *)
+ OTHER_ARGS+=" $1"
+ ;;
+ esac
+ shift
+ done
+
+ JMX_OPTS=" \
+ $JMX_OPTS \
+ -Djavax.net.ssl.trustStore=${TRUSTSTORE_PATH} \
+ -Djavax.net.ssl.trustStorePassword=${TRUSTSTORE_PASSWORD}"
+
+ $JAVA_HOME/bin/java $JAVA_OPTS $JMX_OPTS \
+ -classpath $CLASSPATH \
+ -Dorg.eclipse.virgo.kernel.home=$KERNEL_HOME \
+ org.eclipse.virgo.kernel.shutdown.ShutdownClient $OTHER_ARGS
+
+else
+ echo "Unknown command: ${COMMAND}"
+fi
+
diff --git a/build-kernel/bin/jconsole.bat b/build-kernel/bin/jconsole.bat
new file mode 100644
index 00000000..27fd0219
--- /dev/null
+++ b/build-kernel/bin/jconsole.bat
@@ -0,0 +1,54 @@
+@echo off
+rem Script for starting jconsole
+
+if "%OS%" == "Windows_NT" setlocal
+
+rem Find root drive and path for current bat file directory (includes trailing backslash)
+ set SCRIPT_DIR=%~dp0
+
+if exist "%SCRIPT_DIR%setupVars.bat" (
+ call "%SCRIPT_DIR%setupVars.bat"
+ if not "%ERRORLEVEL%"=="0" (
+ if "%OS%" == "Windows_NT" endlocal
+ exit /B %ERRORLEVEL%
+ )
+) else (
+ echo Cannot set up environment. "setupVars.bat" file missing.
+ if "%OS%" == "Windows_NT" endlocal
+ exit /B 1
+)
+
+rem Set defaults
+ set TRUSTSTORE_PATH=%KERNEL_HOME%\config\keystore
+ set TRUSTSTORE_PASSWORD=changeit
+ set OTHER_ARGS=
+
+:Loop
+ if "%~1"=="" goto EndLoop
+
+ if "%~1"=="-truststore" (
+ set TRUSTSTORE_PATH=%~2
+ shift
+ shift
+ goto Loop
+ )
+ if "%~1"=="-truststorePassword" (
+ set TRUSTSTORE_PASSWORD=%~2
+ shift
+ shift
+ goto Loop
+ )
+ rem Accumulate extra parameters.
+ set OTHER_ARGS=%OTHER_ARGS% "%~1"
+ shift
+ goto Loop
+:EndLoop
+
+set JMX_OPTS=%JMX_OPTS% -J-Dcom.sun.tools.jconsole.mbeans.keyPropertyList=category,type
+set JMX_OPTS=%JMX_OPTS% -J-Djavax.net.ssl.trustStore="%TRUSTSTORE_PATH%"
+set JMX_OPTS=%JMX_OPTS% -J-Djavax.net.ssl.trustStorePassword=%TRUSTSTORE_PASSWORD%
+
+"%JAVA_HOME%\bin\jconsole" %JMX_OPTS% %OTHER_ARGS%
+
+if "%OS%" == "Windows_NT" endlocal
+goto :eof
diff --git a/build-kernel/bin/jconsole.sh b/build-kernel/bin/jconsole.sh
new file mode 100755
index 00000000..34f864b7
--- /dev/null
+++ b/build-kernel/bin/jconsole.sh
@@ -0,0 +1,53 @@
+#!/bin/bash
+
+if [ -z "$JAVA_HOME" ]
+then
+ echo The JAVA_HOME environment variable is not defined
+ exit 1
+fi
+
+SCRIPT="$0"
+
+# SCRIPT may be an arbitrarily deep series of symlinks. Loop until we have the concrete path.
+while [ -h "$SCRIPT" ] ; do
+ ls=`ls -ld "$SCRIPT"`
+ # Drop everything prior to ->
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ SCRIPT="$link"
+ else
+ SCRIPT=`dirname "$SCRIPT"`/"$link"
+ fi
+done
+
+KERNEL_HOME=`dirname "$SCRIPT"`/..
+KERNEL_HOME=`cd $KERNEL_HOME; pwd`
+
+#parse args for the script
+TRUSTSTORE_PATH=$KERNEL_HOME/config/keystore
+TRUSTSTORE_PASSWORD=changeit
+
+shopt -s extglob
+
+while (($# > 0))
+ do
+ case $1 in
+ -truststore)
+ TRUSTSTORE_PATH=$2
+ shift;
+ ;;
+ -truststorePassword)
+ TRUSTSTORE_PASSWORD=$2
+ shift;
+ ;;
+ esac
+ shift
+done
+
+JMX_OPTS=" \
+ $JMX_OPTS \
+ -J-Dcom.sun.tools.jconsole.mbeans.keyPropertyList=category,type \
+ -J-Djavax.net.ssl.trustStore=$TRUSTSTORE_PATH \
+ -J-Djavax.net.ssl.trustStorePassword=$TRUSTSTORE_PASSWORD"
+
+$JAVA_HOME/bin/jconsole $JMX_OPTS
diff --git a/build-kernel/bin/jmxPermissions.vbs b/build-kernel/bin/jmxPermissions.vbs
new file mode 100644
index 00000000..c50031b1
--- /dev/null
+++ b/build-kernel/bin/jmxPermissions.vbs
@@ -0,0 +1,70 @@
+configFolder = Wscript.Arguments.Item(0)
+
+'WScript.Echo "Fixing permissions on " & configFolder
+
+Set objWMIService = GetObject("winmgmts:\\.\root\CIMV2") 'Load up WMI with the right dll
+
+Dim files(0)
+files(0) = "org.eclipse.virgo.kernel.jmxremote.access.properties"
+
+For Each file In files
+ updateInheritance(configFolder & file)
+ updateOwnership(configFolder & file)
+ updatePermissions(configFolder & file)
+Next
+
+Sub updateInheritance(file)
+ 'WScript.Echo "Updating inheritance of " & file
+
+ Const SE_DACL_PRESENT = 4
+ Const SE_DACL_PROTECTED = 4096
+ Const SE_SELF_RELATIVE = 32768
+
+ Set objFileSecSetting = objWMIService.Get("Win32_LogicalFileSecuritySetting.Path='" & file & "'")
+ objFileSecSetting.GetSecurityDescriptor objSecurityDescriptor
+
+ objSecurityDescriptor.ControlFlags = SE_DACL_PRESENT + SE_DACL_PROTECTED + SE_SELF_RELATIVE
+
+ Set objMethod = objFileSecSetting.Methods_("SetSecurityDescriptor")
+ Set objInParam = objMethod.inParameters.SpawnInstance_()
+ objInParam.Properties_.item("Descriptor") = objSecurityDescriptor
+ objFileSecSetting.ExecMethod_ "SetSecurityDescriptor", objInParam
+
+ 'WScript.Echo "Updated inheritance of " & file
+End Sub
+
+Sub updateOwnership(file)
+ 'WScript.Echo "Updating ownership of " & file
+ Set objDataFile = objWMIService.Get("CIM_DataFile.Name='" & file & "'")
+
+ Set objMethod = objDataFile.Methods_("TakeOwnerShipEx")
+ Set objInParam = objMethod.inParameters.SpawnInstance_()
+
+ objDataFile.ExecMethod_ "TakeOwnerShipEx", objInParam
+
+ 'WScript.Echo "Updated ownership of " & file
+End Sub
+
+Sub updatePermissions(file)
+ 'WScript.Echo "Updating permissions of " & file
+
+ Set objFileSecSetting = objWMIService.Get("Win32_LogicalFileSecuritySetting.Path='" & file & "'")
+ objFileSecSetting.GetSecurityDescriptor objSecurityDescriptor
+
+ Set WshNetwork = WScript.CreateObject("WScript.Network")
+ Dim specificAce(0)
+ For Each ace in objSecurityDescriptor.DACL
+ If ace.Trustee.Name = WshNetwork.UserName Then
+ Set specificAce(0) = ace
+ End If
+ Next
+
+ objSecurityDescriptor.DACL = specificAce
+
+ Set objMethod = objFileSecSetting.Methods_("SetSecurityDescriptor")
+ Set objInParam = objMethod.inParameters.SpawnInstance_()
+ objInParam.Properties_.item("Descriptor") = objSecurityDescriptor
+ objFileSecSetting.ExecMethod_ "SetSecurityDescriptor", objInParam
+
+ 'WScript.Echo "Updated permissions of " & file
+End Sub
diff --git a/build-kernel/bin/setupClasspath.bat b/build-kernel/bin/setupClasspath.bat
new file mode 100644
index 00000000..96b7ac97
--- /dev/null
+++ b/build-kernel/bin/setupClasspath.bat
@@ -0,0 +1,20 @@
+@echo off
+rem Construct the CLASSPATH list from the Kernel lib directory.
+
+if "%JAVA_HOME%" == "" (
+ echo The JAVA_HOME environment variable is not defined.
+ exit /B 1
+)
+if "%KERNEL_HOME%" == "" (
+ echo The KERNEL_HOME environment variable is not defined.
+ exit /B 1
+)
+
+for %%G in ("%KERNEL_HOME%\lib\*.jar") do call :AppendToClasspath "%%G"
+rem Remove leading semi-colon if present
+if "%CLASSPATH:~0,1%"==";" set CLASSPATH=%CLASSPATH:~1%
+exit /B 0
+
+:AppendToClasspath
+ set CLASSPATH=%CLASSPATH%;%~1
+ goto :eof
diff --git a/build-kernel/bin/setupClasspath.sh b/build-kernel/bin/setupClasspath.sh
new file mode 100755
index 00000000..75410b38
--- /dev/null
+++ b/build-kernel/bin/setupClasspath.sh
@@ -0,0 +1,19 @@
+#!/bin/bash
+
+# make sure we have JAVA_HOME set
+if [ -z "$JAVA_HOME" ]
+then
+ echo The JAVA_HOME environment variable is not defined
+ exit 1
+fi
+
+CLASSPATH=
+
+# Create the classpath for bootstrapping the Server from all the JARs in lib
+for file in $KERNEL_HOME/lib/*
+do
+ if [[ $file == *.jar ]]
+ then
+ CLASSPATH=$CLASSPATH:$KERNEL_HOME/lib/${file##*/}
+ fi
+done
diff --git a/build-kernel/bin/setupVars.bat b/build-kernel/bin/setupVars.bat
new file mode 100644
index 00000000..55ff31dc
--- /dev/null
+++ b/build-kernel/bin/setupVars.bat
@@ -0,0 +1,31 @@
+@echo off
+rem Set up env vars needed for dmk.bat and jconsole.bat (with user-pluggable mods if present)
+
+if "%SCRIPT_DIR%"=="" (
+ echo Called setupVars.bat out of context.
+ exit /B 1
+)
+
+rem Derive KERNEL_HOME full path from script's parent (no backslash)
+ for %%I in ("%SCRIPT_DIR%..") do set KERNEL_HOME=%%~dpfsI
+
+rem Check files exist (exit if not)
+ set ChkLst="%KERNEL_HOME%\bin\setupClasspath.bat","%KERNEL_HOME%\bin\checkJava.bat"
+
+ for %%I in (%ChkLst%) do if not exist "%%~I" (
+ echo File "%%~I" does not exist but is required.
+ exit /B 1
+ )
+
+rem set up the classpath (check result)
+ call "%KERNEL_HOME%\bin\setupClasspath.bat"
+ if not "%ERRORLEVEL%" == "0" exit /B %ERRORLEVEL%
+
+rem Run Java Version check (uses JAVA_HOME) (check result)
+ call "%KERNEL_HOME%\bin\checkJava.bat"
+ if not "%ERRORLEVEL%" == "0" exit /B %ERRORLEVEL%
+
+rem Execute user setenv script if needed (ignore result)
+ if exist "%KERNEL_HOME%\bin\setenv.bat" call "%KERNEL_HOME%\bin\setenv.bat"
+
+goto :eof
diff --git a/build-kernel/bin/shutdown.bat b/build-kernel/bin/shutdown.bat
new file mode 100644
index 00000000..a2a1ff47
--- /dev/null
+++ b/build-kernel/bin/shutdown.bat
@@ -0,0 +1,8 @@
+@ECHO OFF
+IF "%OS%" == "Windows_NT" SETLOCAL
+
+SET SCRIPT_DIR=%~dp0%
+SET EXECUTABLE=dmk.bat
+
+call "%SCRIPT_DIR%%EXECUTABLE%" stop %*
+if not "%ERRORLEVEL%"=="0" exit /B %ERRORLEVEL%
diff --git a/build-kernel/bin/shutdown.sh b/build-kernel/bin/shutdown.sh
new file mode 100755
index 00000000..aac5ff46
--- /dev/null
+++ b/build-kernel/bin/shutdown.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+
+SCRIPT="$0"
+
+# SCRIPT may be an arbitrarily deep series of symlinks. Loop until we have the concrete path.
+while [ -h "$SCRIPT" ] ; do
+ ls=`ls -ld "$SCRIPT"`
+ # Drop everything prior to ->
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ SCRIPT="$link"
+ else
+ SCRIPT=`dirname "$SCRIPT"`/"$link"
+ fi
+done
+
+SCRIPT_DIR=`dirname $SCRIPT`
+EXECUTABLE="dmk.sh"
+
+exec "$SCRIPT_DIR"/"$EXECUTABLE" stop "$@"
diff --git a/build-kernel/bin/startup.bat b/build-kernel/bin/startup.bat
new file mode 100644
index 00000000..76e1618f
--- /dev/null
+++ b/build-kernel/bin/startup.bat
@@ -0,0 +1,8 @@
+@ECHO OFF
+IF "%OS%" == "Windows_NT" SETLOCAL
+
+SET SCRIPT_DIR=%~dp0%
+SET EXECUTABLE=dmk.bat
+
+call "%SCRIPT_DIR%%EXECUTABLE%" start %*
+if not "%ERRORLEVEL%"=="0" exit /B %ERRORLEVEL%
diff --git a/build-kernel/bin/startup.sh b/build-kernel/bin/startup.sh
new file mode 100755
index 00000000..20f721e5
--- /dev/null
+++ b/build-kernel/bin/startup.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+
+SCRIPT="$0"
+
+# SCRIPT may be an arbitrarily deep series of symlinks. Loop until we have the concrete path.
+while [ -h "$SCRIPT" ] ; do
+ ls=`ls -ld "$SCRIPT"`
+ # Drop everything prior to ->
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ SCRIPT="$link"
+ else
+ SCRIPT=`dirname "$SCRIPT"`/"$link"
+ fi
+done
+
+SCRIPT_DIR=`dirname $SCRIPT`
+EXECUTABLE="dmk.sh"
+
+exec "$SCRIPT_DIR"/"$EXECUTABLE" start "$@"
diff --git a/build-kernel/build.xml b/build-kernel/build.xml
new file mode 100644
index 00000000..b2c9203c
--- /dev/null
+++ b/build-kernel/build.xml
@@ -0,0 +1,185 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="build-kernel" xmlns:ivy="antlib:org.apache.ivy.ant">
+
+ <path id="unit.test.bundles">
+ <pathelement location="../org.eclipse.virgo.kernel.shutdown"/>
+ <pathelement location="../org.eclipse.virgo.kernel.authentication"/>
+ <pathelement location="../org.eclipse.virgo.kernel.core"/>
+ <pathelement location="../org.eclipse.virgo.kernel.artifact"/>
+ <pathelement location="../org.eclipse.virgo.kernel.services"/>
+ <pathelement location="../org.eclipse.virgo.kernel.osgi"/>
+ <pathelement location="../org.eclipse.virgo.kernel.deployer"/>
+ <pathelement location="../org.eclipse.virgo.kernel.userregion"/>
+ <pathelement location="../org.eclipse.virgo.kernel.agent.dm"/>
+ <pathelement location="../org.eclipse.virgo.kernel.kerneldmfragment"/>
+ <pathelement location="../org.eclipse.virgo.kernel.dmfragment"/>
+ <pathelement location="../org.eclipse.virgo.kernel.dm"/>
+ <pathelement location="../org.eclipse.virgo.kernel.deployer.dm"/>
+ <pathelement location="../org.eclipse.virgo.kernel.model"/>
+ <pathelement location="../org.eclipse.virgo.kernel.shell"/>
+ <pathelement location="../org.eclipse.virgo.kernel.stubs"/>
+ </path>
+
+ <path id="bundles">
+ <path refid="unit.test.bundles" />
+ <pathelement location="../org.eclipse.virgo.kernel"/>
+ <pathelement location="../org.eclipse.virgo.kernel.test"/>
+ <pathelement location="../org.eclipse.virgo.kernel.deployer.testbundle"/>
+ <pathelement location="../org.eclipse.virgo.kernel.deployer.test"/>
+ </path>
+
+ <property file="${basedir}/../build.properties"/>
+ <property file="${basedir}/../build.versions"/>
+ <import file="${basedir}/../virgo-build/multi-bundle/default.xml"/>
+
+ <target name="precommit" depends="clean, clean-integration, test, findbugs, package, smoke-test"
+ description="Performs a CI server-like build, should be run prior to performing a Git push"/>
+
+ <target name="package" depends="ivy.init">
+ <delete dir="${package.output.dir}" quiet="true"/>
+ <mkdir dir="${package.output.dir}"/>
+
+ <ivy:resolve resolveId="copy.path" file="${basedir}/lib-ivy.xml" transitive="true"/>
+ <ivy:retrieve resolveId="copy.path" pattern="${package.output.dir}/lib/[artifact]-[revision].[ext]" conf="lib" type="jar"/>
+
+ <ivy:resolve resolveId="copy.path" file="${basedir}/kernel-ivy.xml" transitive="true"/>
+ <ivy:retrieve resolveId="copy.path" pattern="${package.output.dir}/lib/kernel/[artifact]-[revision].[ext]" conf="lib-kernel" type="jar"/>
+
+ <ivy:resolve resolveId="copy.path" file="${basedir}/kernel-ivy.xml" transitive="true"/>
+ <ivy:retrieve resolveId="copy.path" pattern="${package.output.dir}/repository/ext/[artifact]-[revision].[ext]" conf="repository-ext" type="jar"/>
+
+ <mkdir dir="${package.output.dir}/bin/service"/>
+ <mkdir dir="${package.output.dir}/config"/>
+ <mkdir dir="${package.output.dir}/work"/>
+
+ <echo file="${package.output.dir}/lib/.version"
+ message="virgo.kernel.version=${bundle.version}&#xa;"/>
+
+ <ivy:cachepath resolveId="jsw" pathid="jsw" organisation="org.tanukisoftware"
+ module="org.tanukisoftware.wrapper" revision="${org.tanukisoftware.wrapper}" conf="runtime" type="zip"
+ inline="true" log="download-only"/>
+
+ <unzip dest="${package.output.dir}">
+ <path refid="jsw"/>
+ <patternset>
+ <include name="*/bin/wrapper-*"/>
+ <include name="*/lib/libwrapper-*"/>
+ <include name="*/lib/wrapper-*"/>
+ <include name="*/lib/wrapper.jar"/>
+ </patternset>
+ <globmapper from="wrapper-delta-pack-${org.tanukisoftware.wrapper}/*" to="bin/service/*"/>
+ </unzip>
+
+ <copy todir="${package.output.dir}/bin" failonerror="false">
+ <fileset dir="${basedir}/bin"/>
+ </copy>
+
+ <copy todir="${package.output.dir}/lib" failonerror="false">
+ <fileset dir="${basedir}/lib"/>
+ <filterset>
+ <filter token="ASPECTJ.VERSION" value="${org.aspectj}"/>
+ <filter token="FELIX.CONFIGADMIN.VERSION" value="${org.apache.felix}"/>
+ <filter token="FELIX.EVENTADMIN.VERSION" value="${org.apache.felix.eventadmin}"/>
+ <filter token="JLINE.VERSION" value="${net.sourceforge.jline}"/>
+ <filter token="KERNEL.VERSION" value="${bundle.version}"/>
+ <filter token="MEDIC.VERSION" value="${org.eclipse.virgo.medic}"/>
+ <filter token="REPOSITORY.VERSION" value="${org.eclipse.virgo.repository}"/>
+ <filter token="SLF4J.VERSION" value="${org.slf4j}"/>
+ <filter token="SPRING.DM.VERSION" value="${org.springframework.osgi}"/>
+ <filter token="SPRING.VERSION" value="${org.springframework}"/>
+ <filter token="UTIL.VERSION" value="${org.eclipse.virgo.util}"/>
+ </filterset>
+ </copy>
+
+ <copy todir="${package.output.dir}/config" failonerror="false">
+ <fileset dir="${basedir}/config" excludes="keystore"/>
+ <filterset>
+ <filter token="ASPECTJ.VERSION" value="${org.aspectj}"/>
+ <filter token="FELIX.CONFIGADMIN.VERSION" value="${org.apache.felix}"/>
+ <filter token="FELIX.EVENTADMIN.VERSION" value="${org.apache.felix.eventadmin}"/>
+ <filter token="JLINE.VERSION" value="${net.sourceforge.jline}"/>
+ <filter token="KERNEL.VERSION" value="${bundle.version}"/>
+ <filter token="MEDIC.VERSION" value="${org.eclipse.virgo.medic}"/>
+ <filter token="REPOSITORY.VERSION" value="${org.eclipse.virgo.repository}"/>
+ <filter token="SLF4J.VERSION" value="${org.slf4j}"/>
+ <filter token="SPRING.DM.VERSION" value="${org.springframework.osgi}"/>
+ <filter token="SPRING.VERSION" value="${org.springframework}"/>
+ <filter token="UTIL.VERSION" value="${org.eclipse.virgo.util}"/>
+ </filterset>
+ </copy>
+
+ <copy todir="${package.output.dir}/repository/ext" failonerror="false">
+ <fileset dir="${basedir}/repository/ext"/>
+ </copy>
+
+ <copy todir="${package.output.dir}/repository/ext" failonerror="false">
+ <fileset dir="${package.output.dir}/lib/kernel">
+ <include name="org.eclipse.virgo.kernel.agent.dm-*.jar"/>
+ </fileset>
+ </copy>
+
+ <move todir="${package.output.dir}/repository/ext" failonerror="false">
+ <fileset dir="${package.output.dir}/lib/kernel">
+ <include name="org.eclipse.virgo.kernel.dmfragment-*.jar"/>
+ <include name="org.eclipse.virgo.kernel.deployer.dm-*.jar"/>
+ </fileset>
+ </move>
+
+ <mkdir dir="${package.output.dir}/repository/usr"/>
+
+ <copy file="${basedir}/config/keystore" todir="${package.output.dir}/config" failonerror="false"/>
+
+ <chmod perm="600">
+ <fileset dir="${package.output.dir}/config">
+ <include name="org.eclipse.virgo.kernel.jmxremote.access.properties"/>
+ </fileset>
+ </chmod>
+
+ <chmod perm="755">
+ <fileset dir="${package.output.dir}/bin">
+ <include name="*.sh"/>
+ </fileset>
+ <fileset dir="${package.output.dir}/bin/service">
+ <include name="*.sh"/>
+ </fileset>
+ <fileset dir="${package.output.dir}/bin/service/bin">
+ <exclude name="*.exe"/>
+ </fileset>
+ </chmod>
+
+ <copy todir="${package.output.dir}" failonerror="false">
+ <fileset dir="${basedir}/resources"/>
+ </copy>
+
+ <mkdir dir="${artifacts.dir}"/>
+ <zip destfile="${package.output.file}">
+ <zipfileset dir="${package.dir}" includes="${package.basename}/bin/*.sh" filemode="755"/>
+ <zipfileset dir="${package.dir}" includes="${package.basename}/bin/service/*.sh" filemode="755"/>
+ <zipfileset dir="${package.dir}" includes="${package.basename}/bin/service/bin/*" filemode="755"/>
+ <zipfileset dir="${package.dir}" includes="${package.basename}/config/org.eclipse.virgo.kernel.jmxremote.access.properties" filemode="600"/>
+ <zipfileset dir="${package.dir}">
+ <exclude name="${package.basename}/bin/*.sh"/>
+ <exclude name="${package.basename}/bin/service/*.sh"/>
+ <exclude name="${package.basename}/bin/service/bin/*"/>
+ <exclude name="${package.basename}/config/org.eclipse.virgo.kernel.jmxremote.access.properties"/>
+ </zipfileset>
+ </zip>
+ </target>
+
+<!--publish-package, -->
+
+ <target name="publish" depends="publish-package, publish-multi-bundle.publish"/>
+
+ <target name="smoke-test" description="Runs a smoke test on the kernel packaged build">
+ <path id="smoke.test.bundles">
+ <pathelement location="${basedir}/../org.eclipse.virgo.kernel.smoketest" />
+ </path>
+ <antcall target="test.pre"/>
+ <all-bundles target="test-package" buildpathRef="smoke.test.bundles">
+ <property name="package.output.file" value="${package.output.file}"/>
+ <property name="package.basename" value="${package.basename}"/>
+ </all-bundles>
+ <antcall target="test.post"/>
+ </target>
+
+</project>
diff --git a/build-kernel/config/keystore b/build-kernel/config/keystore
new file mode 100644
index 00000000..9684caa0
--- /dev/null
+++ b/build-kernel/config/keystore
Binary files differ
diff --git a/build-kernel/config/org.eclipse.virgo.kernel.authentication.config b/build-kernel/config/org.eclipse.virgo.kernel.authentication.config
new file mode 100644
index 00000000..5adc6b85
--- /dev/null
+++ b/build-kernel/config/org.eclipse.virgo.kernel.authentication.config
@@ -0,0 +1,3 @@
+virgo-kernel {
+ org.eclipse.virgo.kernel.authentication.KernelLoginModule REQUIRED;
+};
diff --git a/build-kernel/config/org.eclipse.virgo.kernel.jmxremote.access.properties b/build-kernel/config/org.eclipse.virgo.kernel.jmxremote.access.properties
new file mode 100644
index 00000000..ba899791
--- /dev/null
+++ b/build-kernel/config/org.eclipse.virgo.kernel.jmxremote.access.properties
@@ -0,0 +1 @@
+admin=readwrite
diff --git a/build-kernel/config/org.eclipse.virgo.kernel.properties b/build-kernel/config/org.eclipse.virgo.kernel.properties
new file mode 100644
index 00000000..3a7e4fb8
--- /dev/null
+++ b/build-kernel/config/org.eclipse.virgo.kernel.properties
@@ -0,0 +1,12 @@
+########################
+# Deployer Configuration
+########################
+# Note: use 0 to disable deployment timeouts
+deployer.timeout= 300
+deployer.pickupDirectory= pickup
+
+##########################
+# OSGi Shell Configuration
+##########################
+shell.enabled= true
+shell.port= 2401
diff --git a/build-kernel/config/org.eclipse.virgo.kernel.userregion.properties b/build-kernel/config/org.eclipse.virgo.kernel.userregion.properties
new file mode 100644
index 00000000..4247e876
--- /dev/null
+++ b/build-kernel/config/org.eclipse.virgo.kernel.userregion.properties
@@ -0,0 +1,74 @@
+baseBundles = \
+ file:lib/kernel/org.eclipse.virgo.kernel.userregion-@KERNEL.VERSION@.jar@start
+
+packageImports =\
+ org.eclipse.virgo.kernel.artifact.*;version="[2.1.0,2.1.1)",\
+ org.eclipse.virgo.kernel.core;version="[2.1.0,2.1.1)",\
+ org.eclipse.virgo.kernel.deployer.core;version="[2.1.0,2.1.1)",\
+ org.eclipse.virgo.kernel.deployer.core.event;version="[2.1.0,2.1.1)",\
+ org.eclipse.virgo.kernel.install.*;version="[2.1.0,2.1.1)",\
+ org.eclipse.virgo.kernel.osgi.*;version="[2.1.0,2.1.1)",\
+ org.eclipse.virgo.kernel.model.management;version="[2.1.0,2.1.1)",\
+ org.eclipse.virgo.kernel.module;version="[2.1.0,2.1.1)",\
+ org.eclipse.virgo.kernel.serviceability;version="[2.1.0,2.1.1)",\
+ org.eclipse.virgo.kernel.serviceability.*;version="[2.1.0,2.1.1)",\
+ org.eclipse.virgo.kernel.services.work;version="[2.1.0,2.1.1)",\
+ org.eclipse.virgo.kernel.shell.*;version="[2.1.0,2.1.1)",\
+ org.eclipse.virgo.kernel.shim.*;version="[2.1.0,2.1.1)",\
+ org.eclipse.virgo.medic.*;version="[1.0,2)",\
+ org.eclipse.virgo.repository;version="[2.0,3)",\
+ org.eclipse.virgo.repository.*;version="[2.0,3)",\
+ org.eclipse.virgo.util.*;version="[2.0,3)",\
+ org.apache.commons.logging;version="[1.0.0,2.0.0)",\
+ org.apache.commons.logging.impl;version="[1.0.0,2.0.0)",\
+ org.aspectj.*;version="[1.6.5.RELEASE,2.0.0)",\
+ org.osgi.service.cm;version="0",\
+ org.osgi.service.event;version="0",\
+ org.slf4j;version="[1.5.10,2)",\
+ org.slf4j.spi;version="[1.5.10,2)"
+
+serviceImports =\
+ org.eclipse.virgo.kernel.deployer.core.ApplicationDeployer,\
+ org.eclipse.virgo.kernel.deployer.core.DeployUriNormaliser,\
+ org.eclipse.virgo.kernel.install.artifact.ScopeServiceRepository,\
+ org.eclipse.virgo.kernel.services.work.WorkArea,\
+ org.eclipse.virgo.repository.ArtifactBridge,\
+ org.eclipse.virgo.kernel.shell.state.StateService,\
+ org.eclipse.virgo.repository.RepositoryFactory,\
+ org.eclipse.virgo.repository.HashGenerator,\
+ org.eclipse.virgo.medic.eventlog.EventLoggerFactory,\
+ org.eclipse.virgo.repository.Repository,\
+ org.eclipse.virgo.kernel.core.Shutdown,\
+ org.osgi.service.cm.ConfigurationAdmin,\
+ org.osgi.service.event.EventAdmin,\
+ org.eclipse.virgo.medic.dump.DumpGenerator,\
+ org.eclipse.virgo.kernel.shim.scope.ScopeFactory,\
+ org.eclipse.virgo.kernel.shim.serviceability.TracingService
+
+serviceExports =\
+ org.eclipse.virgo.kernel.install.artifact.InstallArtifactLifecycleListener,\
+ org.eclipse.virgo.kernel.install.artifact.ArtifactIdentityDeterminer,\
+ org.eclipse.virgo.kernel.install.pipeline.stage.transform.Transformer,\
+ org.eclipse.virgo.kernel.module.ModuleContextAccessor,\
+ org.eclipse.virgo.medic.dump.DumpContributor,\
+ org.eclipse.virgo.kernel.osgi.quasi.QuasiFrameworkFactory,\
+ org.eclipse.virgo.kernel.osgi.framework.OsgiFramework,\
+ org.eclipse.virgo.kernel.osgi.framework.ImportExpander,\
+ org.eclipse.virgo.kernel.osgi.framework.PackageAdminUtil,\
+ org.osgi.service.event.EventHandler,\
+ org.osgi.service.cm.ConfigurationListener,\
+ org.osgi.service.cm.ManagedService,\
+ org.osgi.service.cm.ManagedServiceFactory
+
+inheritedFrameworkProperties =\
+ eclipse.bundle.setTCCL,\
+ eclipse.enableStateSaver,\
+ osgi.java.profile,\
+ osgi.parentClassloader,\
+ osgi.context.bootdelegation,\
+ osgi.compatibility.bootdelegation,\
+ osgi.java.profile.bootdelegation,\
+ osgi.hook.configurators.include
+
+# the next line must not be broken with back-slashes
+initialArtifacts = repository:plan/org.eclipse.virgo.kernel.userregion.springdm
diff --git a/build-kernel/config/org.eclipse.virgo.kernel.users.properties b/build-kernel/config/org.eclipse.virgo.kernel.users.properties
new file mode 100644
index 00000000..10d4c38c
--- /dev/null
+++ b/build-kernel/config/org.eclipse.virgo.kernel.users.properties
@@ -0,0 +1,10 @@
+##################
+# User definitions
+##################
+user.admin=springsource
+
+
+##################
+# Role definitions
+##################
+role.admin=admin
diff --git a/build-kernel/config/org.eclipse.virgo.medic.properties b/build-kernel/config/org.eclipse.virgo.medic.properties
new file mode 100644
index 00000000..d8882a5a
--- /dev/null
+++ b/build-kernel/config/org.eclipse.virgo.medic.properties
@@ -0,0 +1,6 @@
+dump.root.directory=serviceability/dump
+log.wrapSysOut=true
+log.wrapSysErr=true
+log.dump.level=DEBUG
+log.dump.bufferSize=10000
+log.dump.pattern=[%d{yyyy-MM-dd HH:mm:ss.SSS}] %-28.28thread %-64.64logger{64} %X{medic.eventCode} %msg %ex%n
diff --git a/build-kernel/config/org.eclipse.virgo.repository.properties b/build-kernel/config/org.eclipse.virgo.repository.properties
new file mode 100644
index 00000000..5e7de2bc
--- /dev/null
+++ b/build-kernel/config/org.eclipse.virgo.repository.properties
@@ -0,0 +1,7 @@
+ext.type=external
+ext.searchPattern=repository/ext/{artifact}
+
+usr.type=watched
+usr.watchDirectory=repository/usr
+
+chain=ext,usr
diff --git a/build-kernel/config/serviceability.xml b/build-kernel/config/serviceability.xml
new file mode 100644
index 00000000..24accf18
--- /dev/null
+++ b/build-kernel/config/serviceability.xml
@@ -0,0 +1,77 @@
+<configuration>
+
+ <appender name="SIFTED_LOG_FILE" class="ch.qos.logback.classic.sift.SiftingAppender">
+ <discriminator>
+ <Key>applicationName</Key>
+ <DefaultValue>virgo-kernel</DefaultValue>
+ </discriminator>
+ <sift>
+ <appender name="${applicationName}_LOG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>serviceability/logs/${applicationName}/log.log</file>
+ <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <FileNamePattern>serviceability/logs/${applicationName}/log_%i.log</FileNamePattern>
+ <MinIndex>1</MinIndex>
+ <MaxIndex>4</MaxIndex>
+ </rollingPolicy>
+ <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <MaxFileSize>10MB</MaxFileSize>
+ </triggeringPolicy>
+ <layout class="ch.qos.logback.classic.PatternLayout">
+ <Pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] %-28.28thread %-64.64logger{64} %X{medic.eventCode} %msg %ex%n</Pattern>
+ </layout>
+ </appender>
+ </sift>
+ </appender>
+
+ <appender name="LOG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>serviceability/logs/log.log</file>
+ <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <FileNamePattern>serviceability/logs/log_%i.log</FileNamePattern>
+ <MinIndex>1</MinIndex>
+ <MaxIndex>4</MaxIndex>
+ </rollingPolicy>
+ <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <MaxFileSize>10MB</MaxFileSize>
+ </triggeringPolicy>
+ <layout class="ch.qos.logback.classic.PatternLayout">
+ <Pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] %-28.28thread %-64.64logger{64} %X{medic.eventCode} %msg %ex%n</Pattern>
+ </layout>
+ </appender>
+
+ <appender name="EVENT_LOG_STDOUT" class="org.eclipse.virgo.medic.log.logback.ReroutingAwareConsoleAppender">
+ <layout class="ch.qos.logback.classic.PatternLayout">
+ <Pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] %-28.28thread &lt;%X{medic.eventCode}&gt; %msg %ex%n</Pattern>
+ </layout>
+ </appender>
+
+ <appender name="EVENT_LOG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>serviceability/eventlogs/eventlog.log</file>
+ <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <FileNamePattern>serviceability/eventlogs/eventlog_%i.log</FileNamePattern>
+ <MinIndex>1</MinIndex>
+ <MaxIndex>4</MaxIndex>
+ </rollingPolicy>
+ <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <MaxFileSize>10MB</MaxFileSize>
+ </triggeringPolicy>
+ <layout class="ch.qos.logback.classic.PatternLayout">
+ <Pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] %-28.28thread &lt;%X{medic.eventCode}&gt; %msg %ex%n</Pattern>
+ </layout>
+ </appender>
+
+ <logger level="INFO" additivity="false" name="org.eclipse.virgo.medic.eventlog.localized">
+ <appender-ref ref="EVENT_LOG_STDOUT" />
+ <appender-ref ref="EVENT_LOG_FILE" />
+ </logger>
+
+ <logger level="INFO" additivity="false" name="org.eclipse.virgo.medic.eventlog.default">
+ <appender-ref ref="SIFTED_LOG_FILE" />
+ <appender-ref ref="LOG_FILE" />
+ </logger>
+
+ <root level="WARN">
+ <appender-ref ref="SIFTED_LOG_FILE" />
+ <appender-ref ref="LOG_FILE" />
+ </root>
+
+</configuration>
diff --git a/build-kernel/kernel-ivy.xml b/build-kernel/kernel-ivy.xml
new file mode 100644
index 00000000..e3baaf19
--- /dev/null
+++ b/build-kernel/kernel-ivy.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="http://ivyrep.jayasoft.org/ivy-doc.xsl"?>
+<ivy-module xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://incubator.apache.org/ivy/schemas/ivy.xsd" version="1.3">
+
+ <info organisation="org.eclipse.virgo" module="${ant.project.name}" />
+
+ <configurations>
+ <include file="${virgo.build.dir}/common/default-ivy-configurations.xml"/>
+ <conf name="lib-kernel" visibility="public" description="Dependencies to be packaged in lib/kernel"/>
+ <conf name="repository-ext" visibility="public" description="Dependencies to be packaged in repository/ext"/>
+ </configurations>
+
+ <dependencies>
+ <!-- lib/kernel -->
+ <dependency org="org.eclipse.virgo.kernel" name="org.eclipse.virgo.kernel" rev="latest.integration" conf="lib-kernel->runtime"/>
+ <dependency org="org.slf4j" name="com.springsource.slf4j.org.apache.commons.logging" rev="${org.slf4j}" conf="lib-kernel->runtime"/>
+ <dependency org="org.aspectj" name="com.springsource.org.aspectj.weaver" rev="${org.aspectj}" conf="lib-kernel->runtime"/>
+
+ <!-- repository-ext -->
+ <dependency org="org.springframework.osgi" name="org.springframework.osgi.core" rev="${org.springframework.osgi}" conf="repository-ext->runtime"/>
+ <dependency org="org.springframework.osgi" name="org.springframework.osgi.extender" rev="${org.springframework.osgi}" conf="repository-ext->runtime"/>
+ <dependency org="org.springframework.osgi" name="org.springframework.osgi.io" rev="${org.springframework.osgi}" conf="repository-ext->runtime"/>
+
+ <exclude org="org.eclipse.osgi"/>
+ <exclude org="org.eclipse.virgo.util" conf="repository-ext"/>
+ <exclude org="org.eclipse.virgo.osgi" module="org.eclipse.virgo.osgi.extensions.equinox"/>
+ <exclude org="org.aspectj" module="com.springsource.org.aspectj.runtime"/>
+ <exclude org="org.jboss.logging"/>
+ <exclude org="org.jboss.util"/>
+ <exclude org="org.jboss.vfs"/>
+ <exclude org="org.apache.commons" module="com.springsource.org.apache.commons.logging"/>
+
+ <override org="org.eclipse.virgo.util" rev="${org.eclipse.virgo.util}"/>
+ <override org="org.eclipse.virgo.medic" rev="${org.eclipse.virgo.medic}"/>
+ <override org="org.springframework" rev="${org.springframework}"/>
+ </dependencies>
+
+</ivy-module>
+
diff --git a/build-kernel/lib-ivy.xml b/build-kernel/lib-ivy.xml
new file mode 100644
index 00000000..d5860ece
--- /dev/null
+++ b/build-kernel/lib-ivy.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="http://ivyrep.jayasoft.org/ivy-doc.xsl"?>
+<ivy-module xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://incubator.apache.org/ivy/schemas/ivy.xsd" version="1.3">
+
+ <info organisation="com.springsource" module="${ant.project.name}" />
+
+ <configurations>
+ <include file="${virgo.build.dir}/common/default-ivy-configurations.xml"/>
+ <conf name="lib" visibility="public" description="Dependencies to be packaged in lib"/>
+ </configurations>
+
+ <dependencies>
+ <!-- lib -->
+ <dependency org="org.eclipse.virgo.kernel" name="org.eclipse.virgo.kernel.shutdown" rev="latest.integration" conf="lib->runtime"/>
+ <dependency org="org.eclipse.virgo.kernel" name="org.eclipse.virgo.kernel.authentication" rev="latest.integration" conf="lib->runtime"/>
+ <dependency org="org.eclipse.virgo.osgi" name="org.eclipse.virgo.osgi.launcher" rev="${org.eclipse.virgo.osgi}" conf="lib->runtime"/>
+ <dependency org="org.eclipse.virgo.osgi" name="org.eclipse.virgo.osgi.extensions.equinox" rev="${org.eclipse.virgo.osgi}" conf="lib->runtime"/>
+ <dependency org="javax.transaction" name="com.springsource.javax.transaction" rev="${javax.transaction}" conf="lib->runtime"/>
+ </dependencies>
+
+</ivy-module>
+
diff --git a/build-kernel/lib/java6-server.profile b/build-kernel/lib/java6-server.profile
new file mode 100644
index 00000000..72c7529e
--- /dev/null
+++ b/build-kernel/lib/java6-server.profile
@@ -0,0 +1,207 @@
+org.osgi.framework.system.packages = \
+ javax.accessibility,\
+ javax.activation,\
+ javax.activation;version="1.1.1",\
+ javax.activity,\
+ javax.annotation,\
+ javax.annotation;version="1.0.0",\
+ javax.annotation.processing,\
+ javax.crypto,\
+ javax.crypto.interfaces,\
+ javax.crypto.spec,\
+ javax.imageio,\
+ javax.imageio.event,\
+ javax.imageio.metadata,\
+ javax.imageio.plugins.bmp,\
+ javax.imageio.plugins.jpeg,\
+ javax.imageio.spi,\
+ javax.imageio.stream,\
+ javax.jws,\
+ javax.jws;version="2.0",\
+ javax.jws.soap,\
+ javax.jws.soap;version="2.0",\
+ javax.lang.model,\
+ javax.lang.model.element,\
+ javax.lang.model.type,\
+ javax.lang.model.util,\
+ javax.management,\
+ javax.management.loading,\
+ javax.management.modelmbean,\
+ javax.management.monitor,\
+ javax.management.openmbean,\
+ javax.management.relation,\
+ javax.management.remote,\
+ javax.management.remote.rmi,\
+ javax.management.timer,\
+ javax.naming,\
+ javax.naming.directory,\
+ javax.naming.event,\
+ javax.naming.ldap,\
+ javax.naming.spi,\
+ javax.net,\
+ javax.net.ssl,\
+ javax.print,\
+ javax.print.attribute,\
+ javax.print.attribute.standard,\
+ javax.print.event,\
+ javax.rmi,\
+ javax.rmi.CORBA,\
+ javax.rmi.ssl,\
+ javax.script,\
+ javax.script;version="1.1",\
+ javax.security.auth,\
+ javax.security.auth.callback,\
+ javax.security.auth.kerberos,\
+ javax.security.auth.login,\
+ javax.security.auth.spi,\
+ javax.security.auth.x500,\
+ javax.security.cert,\
+ javax.security.sasl,\
+ javax.sound.midi,\
+ javax.sound.midi.spi,\
+ javax.sound.sampled,\
+ javax.sound.sampled.spi,\
+ javax.sql,\
+ javax.sql.rowset,\
+ javax.sql.rowset.serial,\
+ javax.sql.rowset.spi,\
+ javax.swing,\
+ javax.swing.border,\
+ javax.swing.colorchooser,\
+ javax.swing.event,\
+ javax.swing.filechooser,\
+ javax.swing.plaf,\
+ javax.swing.plaf.basic,\
+ javax.swing.plaf.metal,\
+ javax.swing.plaf.multi,\
+ javax.swing.plaf.synth,\
+ javax.swing.table,\
+ javax.swing.text,\
+ javax.swing.text.html,\
+ javax.swing.text.html.parser,\
+ javax.swing.text.rtf,\
+ javax.swing.tree,\
+ javax.swing.undo,\
+ javax.tools,\
+ javax.transaction,\
+ javax.transaction;version="1.0.1",\
+ javax.transaction;version="1.1.0",\
+ javax.transaction.xa,\
+ javax.transaction.xa;version="1.0.1",\
+ javax.transaction.xa;version="1.1.0",\
+ javax.xml,\
+ javax.xml;version="1.0.1",\
+ javax.xml.bind,\
+ javax.xml.bind;version="2.0",\
+ javax.xml.bind.annotation,\
+ javax.xml.bind.annotation;version="2.0",\
+ javax.xml.bind.annotation.adapters,\
+ javax.xml.bind.annotation.adapters;version="2.0",\
+ javax.xml.bind.attachment,\
+ javax.xml.bind.attachment;version="2.0",\
+ javax.xml.bind.helpers,\
+ javax.xml.bind.helpers;version="2.0",\
+ javax.xml.bind.util,\
+ javax.xml.bind.util;version="2.0",\
+ javax.xml.crypto,\
+ javax.xml.crypto;version="1.0",\
+ javax.xml.crypto.dom,\
+ javax.xml.crypto.dom;version="1.0",\
+ javax.xml.crypto.dsig,\
+ javax.xml.crypto.dsig;version="1.0",\
+ javax.xml.crypto.dsig.dom,\
+ javax.xml.crypto.dsig.dom;version="1.0",\
+ javax.xml.crypto.dsig.keyinfo,\
+ javax.xml.crypto.dsig.keyinfo;version="1.0",\
+ javax.xml.crypto.dsig.spec,\
+ javax.xml.crypto.dsig.spec;version="1.0",\
+ javax.xml.datatype,\
+ javax.xml.namespace,\
+ javax.xml.parsers,\
+ javax.xml.soap,\
+ javax.xml.soap;version="1.3.0",\
+ javax.xml.stream,\
+ javax.xml.stream;version="1.0.1",\
+ javax.xml.stream.events,\
+ javax.xml.stream.events;version="1.0.1",\
+ javax.xml.stream.util,\
+ javax.xml.stream.util;version="1.0.1",\
+ javax.xml.transform,\
+ javax.xml.transform.dom,\
+ javax.xml.transform.sax,\
+ javax.xml.transform.stax,\
+ javax.xml.transform.stream,\
+ javax.xml.validation,\
+ javax.xml.ws,\
+ javax.xml.ws;version="2.1.1",\
+ javax.xml.ws.handler,\
+ javax.xml.ws.handler;version="2.1.1",\
+ javax.xml.ws.handler.soap,\
+ javax.xml.ws.handler.soap;version="2.1.1",\
+ javax.xml.ws.http,\
+ javax.xml.ws.http;version="2.1.1",\
+ javax.xml.ws.soap,\
+ javax.xml.ws.soap;version="2.1.1",\
+ javax.xml.ws.spi,\
+ javax.xml.ws.spi;version="2.1.1",\
+ javax.xml.xpath,\
+ org.ietf.jgss,\
+ org.omg.CORBA,\
+ org.omg.CORBA_2_3,\
+ org.omg.CORBA_2_3.portable,\
+ org.omg.CORBA.DynAnyPackage,\
+ org.omg.CORBA.ORBPackage,\
+ org.omg.CORBA.portable,\
+ org.omg.CORBA.TypeCodePackage,\
+ org.omg.CosNaming,\
+ org.omg.CosNaming.NamingContextExtPackage,\
+ org.omg.CosNaming.NamingContextPackage,\
+ org.omg.Dynamic,\
+ org.omg.DynamicAny,\
+ org.omg.DynamicAny.DynAnyFactoryPackage,\
+ org.omg.DynamicAny.DynAnyPackage,\
+ org.omg.IOP,\
+ org.omg.IOP.CodecFactoryPackage,\
+ org.omg.IOP.CodecPackage,\
+ org.omg.Messaging,\
+ org.omg.PortableInterceptor,\
+ org.omg.PortableInterceptor.ORBInitInfoPackage,\
+ org.omg.PortableServer,\
+ org.omg.PortableServer.CurrentPackage,\
+ org.omg.PortableServer.POAManagerPackage,\
+ org.omg.PortableServer.POAPackage,\
+ org.omg.PortableServer.portable,\
+ org.omg.PortableServer.ServantLocatorPackage,\
+ org.omg.SendingContext,\
+ org.omg.stub.java.rmi,\
+ org.w3c.dom,\
+ org.w3c.dom.bootstrap,\
+ org.w3c.dom.css,\
+ org.w3c.dom.events,\
+ org.w3c.dom.html,\
+ org.w3c.dom.ls,\
+ org.w3c.dom.ranges,\
+ org.w3c.dom.stylesheets,\
+ org.w3c.dom.traversal,\
+ org.w3c.dom.views ,\
+ org.xml.sax,\
+ org.xml.sax.ext,\
+ org.xml.sax.helpers
+org.osgi.framework.bootdelegation = \
+ org.eclipse.virgo.osgi.extensions.*,\
+ org.eclipse.virgo.osgi.launcher.*,\
+ org.eclipse.virgo.kernel.authentication,\
+ com.sun.*,\
+ javax.xml.*,\
+ org.apache.xerces.jaxp.*,\
+ org.w3c.*,\
+ org.xml.*,\
+ sun.*
+org.osgi.framework.executionenvironment = \
+ OSGi/Minimum-1.0,\
+ OSGi/Minimum-1.1,\
+ J2SE-1.3,\
+ J2SE-1.4,\
+ J2SE-1.5,\
+ JavaSE-1.6
+osgi.java.profile.name = Virgo-Kernel-Java6
diff --git a/build-kernel/lib/org.eclipse.virgo.kernel.launch.properties b/build-kernel/lib/org.eclipse.virgo.kernel.launch.properties
new file mode 100644
index 00000000..e63bf9c3
--- /dev/null
+++ b/build-kernel/lib/org.eclipse.virgo.kernel.launch.properties
@@ -0,0 +1,54 @@
+launcher.bundles =\
+ file:lib/kernel/com.springsource.slf4j.api-@SLF4J.VERSION@.jar@start,\
+ file:lib/kernel/com.springsource.slf4j.org.apache.commons.logging-@SLF4J.VERSION@.jar@start,\
+ file:lib/kernel/com.springsource.org.aspectj.weaver-@ASPECTJ.VERSION@.jar@start,\
+ file:lib/kernel/org.eclipse.virgo.medic-@MEDIC.VERSION@.jar@start,\
+ file:lib/kernel/org.apache.felix.configadmin-@FELIX.CONFIGADMIN.VERSION@.jar@start,\
+ file:lib/kernel/org.eclipse.virgo.medic.core-@MEDIC.VERSION@.jar@start,\
+ file:lib/kernel/org.eclipse.virgo.util.osgi-@UTIL.VERSION@.jar@start,\
+ file:lib/kernel/org.apache.felix.eventadmin-@FELIX.EVENTADMIN.VERSION@.jar@start,\
+ file:lib/kernel/org.eclipse.virgo.util.common-@UTIL.VERSION@.jar@start,\
+ file:lib/kernel/org.eclipse.virgo.util.io-@UTIL.VERSION@.jar@start,\
+ file:lib/kernel/org.eclipse.virgo.util.jmx-@UTIL.VERSION@.jar,\
+ file:lib/kernel/org.eclipse.virgo.util.math-@UTIL.VERSION@.jar@start,\
+ file:lib/kernel/org.eclipse.virgo.util.parser.manifest-@UTIL.VERSION@.jar@start,\
+ file:lib/kernel/com.springsource.org.apache.commons.codec-1.3.0.jar@start,\
+ file:lib/kernel/com.springsource.org.apache.commons.httpclient-3.1.0.jar@start,\
+ file:lib/kernel/org.eclipse.virgo.repository-@REPOSITORY.VERSION@.jar@start,\
+ file:lib/kernel/org.springframework.aop-@SPRING.VERSION@.jar,\
+ file:lib/kernel/org.springframework.asm-@SPRING.VERSION@.jar,\
+ file:lib/kernel/org.springframework.expression-@SPRING.VERSION@.jar,\
+ file:lib/kernel/org.springframework.beans-@SPRING.VERSION@.jar,\
+ file:lib/kernel/org.springframework.core-@SPRING.VERSION@.jar,\
+ file:lib/kernel/org.springframework.context-@SPRING.VERSION@.jar,\
+ file:lib/kernel/org.eclipse.virgo.kernel.core-@KERNEL.VERSION@.jar@start,\
+ file:lib/kernel/org.eclipse.virgo.kernel.agent.dm-@KERNEL.VERSION@.jar@start,\
+ file:lib/kernel/org.springframework.osgi.core-@SPRING.DM.VERSION@.jar,\
+ file:lib/kernel/org.springframework.osgi.extender-@SPRING.DM.VERSION@.jar@start,\
+ file:lib/kernel/org.springframework.osgi.io-@SPRING.DM.VERSION@.jar,\
+ file:lib/kernel/com.springsource.org.aopalliance-1.0.0.jar,\
+ file:lib/kernel/org.eclipse.virgo.kernel.artifact-@KERNEL.VERSION@.jar@start,\
+ file:lib/kernel/org.eclipse.virgo.kernel.services-@KERNEL.VERSION@.jar@start,\
+ file:lib/kernel/org.eclipse.virgo.kernel.osgi-@KERNEL.VERSION@.jar@start,\
+ file:lib/kernel/org.eclipse.virgo.kernel.deployer-@KERNEL.VERSION@.jar@start,\
+ file:lib/kernel/org.eclipse.virgo.kernel.dm-@KERNEL.VERSION@.jar@start,\
+ file:lib/kernel/org.eclipse.virgo.kernel.model-@KERNEL.VERSION@.jar@start,\
+ file:lib/kernel/org.eclipse.virgo.kernel.kerneldmfragment-@KERNEL.VERSION@.jar,\
+ file:lib/kernel/com.springsource.jline-@JLINE.VERSION@.jar@start,\
+ file:lib/kernel/org.eclipse.virgo.kernel.shell-@KERNEL.VERSION@.jar@start
+
+
+#Equinox Configuration
+osgi.parentClassloader=fwk
+osgi.context.bootdelegation=false
+osgi.compatibility.bootdelegation=false
+osgi.clean=true
+
+osgi.java.profile=file:lib/java6-server.profile
+osgi.java.profile.bootdelegation=override
+osgi.hook.configurators.include=org.eclipse.virgo.osgi.extensions.equinox.hooks.ExtensionsHookConfigurator
+
+org.eclipse.virgo.medic.log.config.path=config/serviceability.xml
+
+eclipse.bundle.setTCCL=false
+eclipse.enableStateSaver=false
diff --git a/build-kernel/repository/ext/org.eclipse.virgo.kernel.userregion.springdm.plan b/build-kernel/repository/ext/org.eclipse.virgo.kernel.userregion.springdm.plan
new file mode 100644
index 00000000..fc7ba213
--- /dev/null
+++ b/build-kernel/repository/ext/org.eclipse.virgo.kernel.userregion.springdm.plan
@@ -0,0 +1,13 @@
+<plan name="org.eclipse.virgo.kernel.userregion.springdm" version="2.1" scoped="false" atomic="false"
+ xmlns="http://www.springsource.org/schema/dm-server/plan"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="
+ http://www.springsource.org/schema/dm-server/plan
+ http://www.springsource.org/schema/dm-server/plan/springsource-dm-server-plan.xsd">
+
+ <artifact type="bundle" name="org.springframework.osgi.core" version="[1.2.1, 1.3.0)"/>
+ <artifact type="bundle" name="org.springframework.osgi.extender" version="[1.2.1, 1.3.0)"/>
+ <artifact type="bundle" name="org.springframework.osgi.io" version="[1.2.1, 1.3.0)"/>
+ <artifact type="bundle" name="org.eclipse.virgo.kernel.agent.dm" version="[2.1.0, 2.2)"/>
+ <artifact type="bundle" name="org.eclipse.virgo.kernel.deployer.dm" version="[2.1.0, 2.2)"/>
+</plan>
diff --git a/build-kernel/test-package.xml b/build-kernel/test-package.xml
new file mode 100644
index 00000000..d89422ff
--- /dev/null
+++ b/build-kernel/test-package.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="test-package">
+
+ <property name="test.staging.dir" value="${target.dir}/test-expanded"/>
+ <property name="package.basename" value="${package.basename}"/>
+ <property name="test.package.dir" value="${test.staging.dir}/${package.basename}"/>
+
+ <target name="test-package"
+ description="Runs a test on the packaged build">
+ <antcall target="unzip.package"/>
+ <antcall target="test.do"/>
+ </target>
+
+ <target name="unzip.package">
+ <delete dir="${test.staging.dir}" quiet="true"/>
+ <mkdir dir="${test.staging.dir}"/>
+ <unzip src="${package.output.file}" dest="${test.staging.dir}"/>
+ <chmod perm="755">
+ <fileset dir="${test.package.dir}/bin">
+ <include name="*.sh"/>
+ </fileset>
+ </chmod>
+ <chmod perm="600">
+ <fileset dir="${test.package.dir}/config">
+ <include name="org.eclipse.virgo.kernel.jmxremote.access.properties"/>
+ </fileset>
+ </chmod>
+ </target>
+
+</project>

Back to the top