Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
37 changed files
with
6,569 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,184 @@ | ||
@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. | ||
|
||
@echo off | ||
if "%OS%" == "Windows_NT" setlocal | ||
|
||
set ARG=%1 | ||
set INSTALL="INSTALL" | ||
set UNINSTALL="UNINSTALL" | ||
|
||
pushd %~dp0.. | ||
if NOT DEFINED CASSANDRA_HOME set CASSANDRA_HOME=%CD% | ||
popd | ||
|
||
if /i "%ARG%" == "LEGACY" goto runLegacy | ||
REM ----------------------------------------------------------------------------- | ||
REM See if we have access to run unsigned powershell scripts | ||
for /F "delims=" %%i in ('powershell Get-ExecutionPolicy') do set PERMISSION=%%i | ||
if "%PERMISSION%" == "Unrestricted" goto runPowerShell | ||
goto runLegacy | ||
|
||
REM ----------------------------------------------------------------------------- | ||
:runPowerShell | ||
echo Detected powershell execution permissions. Running with enhanced startup scripts. | ||
set errorlevel= | ||
powershell /file "%CASSANDRA_HOME%\bin\cassandra.ps1" %* | ||
exit /b %errorlevel% | ||
|
||
REM ----------------------------------------------------------------------------- | ||
:runLegacy | ||
echo WARNING! Powershell script execution unavailable. | ||
echo Please use 'powershell Set-ExecutionPolicy Unrestricted' | ||
echo on this user-account to run cassandra with fully featured | ||
echo functionality on this platform. | ||
|
||
echo Starting with legacy startup options | ||
|
||
if NOT DEFINED CASSANDRA_MAIN set CASSANDRA_MAIN=org.apache.cassandra.service.CassandraDaemon | ||
if NOT DEFINED JAVA_HOME goto :err | ||
|
||
REM ----------------------------------------------------------------------------- | ||
REM JVM Opts we'll use in legacy run or installation | ||
set JAVA_OPTS=-ea^ | ||
-javaagent:"%CASSANDRA_HOME%\lib\jamm-0.3.0.jar"^ | ||
-Xms2G^ | ||
-Xmx2G^ | ||
-XX:+HeapDumpOnOutOfMemoryError^ | ||
-XX:+UseParNewGC^ | ||
-XX:+UseConcMarkSweepGC^ | ||
-XX:+CMSParallelRemarkEnabled^ | ||
-XX:SurvivorRatio=8^ | ||
-XX:MaxTenuringThreshold=1^ | ||
-XX:CMSInitiatingOccupancyFraction=75^ | ||
-XX:+UseCMSInitiatingOccupancyOnly^ | ||
-Dlogback.configurationFile=logback.xml^ | ||
-Djava.library.path="%CASSANDRA_HOME%\lib\sigar-bin"^ | ||
-Dcassandra.jmx.local.port=7199 | ||
REM **** JMX REMOTE ACCESS SETTINGS SEE: https://wiki.apache.org/cassandra/JmxSecurity *** | ||
REM -Dcom.sun.management.jmxremote.port=7199^ | ||
REM -Dcom.sun.management.jmxremote.ssl=false^ | ||
REM -Dcom.sun.management.jmxremote.authenticate=true^ | ||
REM -Dcom.sun.management.jmxremote.password.file=C:\jmxremote.password | ||
|
||
REM ***** CLASSPATH library setting ***** | ||
REM Ensure that any user defined CLASSPATH variables are not used on startup | ||
set CLASSPATH="%CASSANDRA_HOME%\conf" | ||
|
||
REM For each jar in the CASSANDRA_HOME lib directory call append to build the CLASSPATH variable. | ||
for %%i in ("%CASSANDRA_HOME%\lib\*.jar") do call :append "%%i" | ||
goto okClasspath | ||
|
||
:append | ||
set CLASSPATH=%CLASSPATH%;%1 | ||
goto :eof | ||
|
||
REM ----------------------------------------------------------------------------- | ||
:okClasspath | ||
|
||
REM JSR223 - collect all JSR223 engines' jars | ||
for /D %%P in ("%CASSANDRA_HOME%\lib\jsr223\*.*") do ( | ||
for %%i in ("%%P\*.jar") do call :append "%%i" | ||
) | ||
|
||
REM JSR223/JRuby - set ruby lib directory | ||
if EXIST "%CASSANDRA_HOME%\lib\jsr223\jruby\ruby" ( | ||
set JAVA_OPTS=%JAVA_OPTS% "-Djruby.lib=%CASSANDRA_HOME%\lib\jsr223\jruby" | ||
) | ||
REM JSR223/JRuby - set ruby JNI libraries root directory | ||
if EXIST "%CASSANDRA_HOME%\lib\jsr223\jruby\jni" ( | ||
set JAVA_OPTS=%JAVA_OPTS% "-Djffi.boot.library.path=%CASSANDRA_HOME%\lib\jsr223\jruby\jni" | ||
) | ||
REM JSR223/Jython - set python.home system property | ||
if EXIST "%CASSANDRA_HOME%\lib\jsr223\jython\jython.jar" ( | ||
set JAVA_OPTS=%JAVA_OPTS% "-Dpython.home=%CASSANDRA_HOME%\lib\jsr223\jython" | ||
) | ||
REM JSR223/Scala - necessary system property | ||
if EXIST "%CASSANDRA_HOME%\lib\jsr223\scala\scala-compiler.jar" ( | ||
set JAVA_OPTS=%JAVA_OPTS% "-Dscala.usejavacp=true" | ||
) | ||
|
||
REM Include the build\classes\main directory so it works in development | ||
set CASSANDRA_CLASSPATH=%CLASSPATH%;"%CASSANDRA_HOME%\build\classes\main";"%CASSANDRA_HOME%\build\classes\thrift" | ||
set CASSANDRA_PARAMS=-Dcassandra -Dcassandra-foreground=yes | ||
set CASSANDRA_PARAMS=%CASSANDRA_PARAMS% -Dcassandra.logdir="%CASSANDRA_HOME%\logs" | ||
set CASSANDRA_PARAMS=%CASSANDRA_PARAMS% -Dcassandra.storagedir="%CASSANDRA_HOME%\data" | ||
|
||
if /i "%ARG%" == "INSTALL" goto doInstallOperation | ||
if /i "%ARG%" == "UNINSTALL" goto doInstallOperation | ||
|
||
echo Starting Cassandra Server | ||
"%JAVA_HOME%\bin\java" %JAVA_OPTS% %CASSANDRA_PARAMS% -cp %CASSANDRA_CLASSPATH% "%CASSANDRA_MAIN%" | ||
goto finally | ||
|
||
REM ----------------------------------------------------------------------------- | ||
:doInstallOperation | ||
set SERVICE_JVM="cassandra" | ||
rem location of Prunsrv | ||
set PATH_PRUNSRV=%CASSANDRA_HOME%\bin\daemon\ | ||
set PR_LOGPATH=%PATH_PRUNSRV% | ||
|
||
rem Allow prunsrv to be overridden | ||
if "%PRUNSRV%" == "" set PRUNSRV=%PATH_PRUNSRV%prunsrv | ||
|
||
echo trying to delete service if it has been created already | ||
"%PRUNSRV%" //DS//%SERVICE_JVM% | ||
rem quit if we're just going to uninstall | ||
if /i "%ARG%" == "UNINSTALL" goto finally | ||
|
||
echo Installing %SERVICE_JVM%. If you get registry warnings, re-run as an Administrator | ||
"%PRUNSRV%" //IS//%SERVICE_JVM% | ||
|
||
echo Setting startup parameters for %SERVICE_JVM% | ||
set cmd="%PRUNSRV%" //US//%SERVICE_JVM% ^ | ||
--Jvm=auto --StdOutput auto --StdError auto ^ | ||
--Classpath=%CASSANDRA_CLASSPATH% ^ | ||
--StartMode=jvm --StartClass=%CASSANDRA_MAIN% --StartMethod=main ^ | ||
--StopMode=jvm --StopClass=%CASSANDRA_MAIN% --StopMethod=stop | ||
|
||
REM convert ' -' into ';-' so we can tokenize on semicolon as we may have spaces in folder names | ||
set tempOptions=%JAVA_OPTS: -=;-% | ||
REM Append the JAVA_OPTS, each with independent ++JvmOptions as delimited list fails for some options | ||
:optStrip | ||
for /F "tokens=1* delims=;" %%a in ("%tempOptions%") do ( | ||
set JVMOPTIONS=%JVMOPTIONS% ++JvmOptions=%%a | ||
set tempOptions=%%b | ||
) | ||
if defined tempOptions goto :optStrip | ||
|
||
REM do the same for CASSANDRA_PARAMS | ||
set tempOptions=%CASSANDRA_PARAMS: -=;-% | ||
|
||
:paramStrip | ||
for /F "tokens=1* delims=;" %%a in ("%tempOptions%") do ( | ||
set JVMOPTIONS=%JVMOPTIONS% ++JvmOptions=%%a | ||
set tempOptions=%%b | ||
) | ||
if defined tempOptions goto :paramStrip | ||
|
||
%cmd% %JVMOPTIONS% | ||
|
||
echo Installation of %SERVICE_JVM% is complete | ||
goto finally | ||
|
||
:err | ||
echo JAVA_HOME environment variable must be set! | ||
pause | ||
|
||
REM ----------------------------------------------------------------------------- | ||
:finally | ||
|
||
ENDLOCAL |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,74 @@ | ||
@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. | ||
|
||
@echo off | ||
pushd %~dp0.. | ||
if NOT DEFINED CASSANDRA_HOME set CASSANDRA_HOME=%CD% | ||
popd | ||
|
||
if NOT DEFINED CASSANDRA_CONF set CASSANDRA_CONF="%CASSANDRA_HOME%\conf" | ||
|
||
REM the default location for commitlogs, sstables, and saved caches | ||
REM if not set in cassandra.yaml | ||
set cassandra_storagedir="%CASSANDRA_HOME%\data" | ||
|
||
REM JAVA_HOME can optionally be set here | ||
REM set JAVA_HOME="<directory>" | ||
|
||
REM ***** CLASSPATH library setting ***** | ||
|
||
REM Ensure that any user defined CLASSPATH variables are not used on startup | ||
set CLASSPATH=%CASSANDRA_CONF% | ||
|
||
REM For each jar in the CASSANDRA_HOME lib directory call append to build the CLASSPATH variable. | ||
for %%i in ("%CASSANDRA_HOME%\lib\*.jar") do call :append "%%i" | ||
goto :okClasspath | ||
|
||
:append | ||
set CLASSPATH=%CLASSPATH%;%1 | ||
goto :eof | ||
|
||
:okClasspath | ||
|
||
REM Include the build\classes\main directory so it works in development | ||
set CASSANDRA_CLASSPATH=%CLASSPATH%;"%CASSANDRA_HOME%\build\classes\main";%CASSANDRA_CONF%;"%CASSANDRA_HOME%\build\classes\thrift" | ||
|
||
REM Add the default storage location. Can be overridden in conf\cassandra.yaml | ||
set CASSANDRA_PARAMS=%CASSANDRA_PARAMS% "-Dcassandra.storagedir=%CASSANDRA_HOME%\data" | ||
|
||
REM JSR223 - collect all JSR223 engines' jars | ||
for /r %%P in ("%CASSANDRA_HOME%\lib\jsr223\*.jar") do ( | ||
set CLASSPATH=%CLASSPATH%;%%~fP | ||
) | ||
REM JSR223/JRuby - set ruby lib directory | ||
if EXIST "%CASSANDRA_HOME%\lib\jsr223\jruby\ruby" ( | ||
set JAVA_OPTS=%JAVA_OPTS% "-Djruby.lib=%CASSANDRA_HOME%\lib\jsr223\jruby" | ||
) | ||
REM JSR223/JRuby - set ruby JNI libraries root directory | ||
if EXIST "%CASSANDRA_HOME%\lib\jsr223\jruby\jni" ( | ||
set JAVA_OPTS=%JAVA_OPTS% "-Djffi.boot.library.path=%CASSANDRA_HOME%\lib\jsr223\jruby\jni" | ||
) | ||
REM JSR223/Jython - set python.home system property | ||
if EXIST "%$CASSANDRA_HOME%\lib\jsr223\jython\jython.jar" ( | ||
set JAVA_OPTS=%JAVA_OPTS% "-Dpython.home=%CASSANDRA_HOME%\lib\jsr223\jython" | ||
) | ||
REM JSR223/Scala - necessary system property | ||
if EXIST "$CASSANDRA_HOME\lib\jsr223\scala\scala-compiler.jar" ( | ||
set JAVA_OPTS=%JAVA_OPTS% "-Dscala.usejavacp=true" | ||
) | ||
|
||
REM Add the sigar-bin path to the java.library.path CASSANDRA-7838 | ||
set JAVA_OPTS=%JAVA_OPTS% -Djava.library.path=%CASSANDRA_HOME%\lib\sigar-bin" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
# 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 [ "x$CASSANDRA_HOME" = "x" ]; then | ||
CASSANDRA_HOME="`dirname "$0"`/.." | ||
fi | ||
|
||
# The directory where Cassandra's configs live (required) | ||
if [ "x$CASSANDRA_CONF" = "x" ]; then | ||
CASSANDRA_CONF="$CASSANDRA_HOME/conf" | ||
fi | ||
|
||
# This can be the path to a jar file, or a directory containing the | ||
# compiled classes. NOTE: This isn't needed by the startup script, | ||
# it's just used here in constructing the classpath. | ||
#cassandra_bin="$CASSANDRA_HOME/build/classes/main" | ||
#cassandra_bin="$cassandra_bin:$CASSANDRA_HOME/build/classes/thrift" | ||
#cassandra_bin="$CASSANDRA_HOME/build/cassandra.jar" | ||
|
||
# the default location for commitlogs, sstables, and saved caches | ||
# if not set in cassandra.yaml | ||
cassandra_storagedir="$CASSANDRA_HOME/data" | ||
|
||
# JAVA_HOME can optionally be set here | ||
#JAVA_HOME=/usr/local/jdk6 | ||
|
||
# The java classpath (required) | ||
#CLASSPATH="$CASSANDRA_CONF:$cassandra_bin" | ||
CLASSPATH="$CASSANDRA_CONF" | ||
|
||
for jar in "$CASSANDRA_HOME"/lib/*.jar; do | ||
CLASSPATH="$CLASSPATH:$jar" | ||
done | ||
|
||
# JSR223 - collect all JSR223 engines' jars | ||
#for jsr223jar in "$CASSANDRA_HOME"/lib/jsr223/*/*.jar; do | ||
# CLASSPATH="$CLASSPATH:$jsr223jar" | ||
#done | ||
|
||
# JSR223/JRuby - set ruby lib directory | ||
if [ -d "$CASSANDRA_HOME"/lib/jsr223/jruby/ruby ] ; then | ||
export JVM_OPTS="$JVM_OPTS -Djruby.lib=$CASSANDRA_HOME/lib/jsr223/jruby" | ||
fi | ||
# JSR223/JRuby - set ruby JNI libraries root directory | ||
if [ -d "$CASSANDRA_HOME"/lib/jsr223/jruby/jni ] ; then | ||
export JVM_OPTS="$JVM_OPTS -Djffi.boot.library.path=$CASSANDRA_HOME/lib/jsr223/jruby/jni" | ||
fi | ||
# JSR223/Jython - set python.home system property | ||
if [ -f "$CASSANDRA_HOME"/lib/jsr223/jython/jython.jar ] ; then | ||
export JVM_OPTS="$JVM_OPTS -Dpython.home=$CASSANDRA_HOME/lib/jsr223/jython" | ||
fi | ||
# JSR223/Scala - necessary system property | ||
if [ -f "$CASSANDRA_HOME"/lib/jsr223/scala/scala-compiler.jar ] ; then | ||
export JVM_OPTS="$JVM_OPTS -Dscala.usejavacp=true" | ||
fi | ||
|
||
# set JVM javaagent opts to avoid warnings/errors | ||
if [ "$JVM_VENDOR" != "OpenJDK" -o "$JVM_VERSION" \> "1.6.0" ] \ | ||
|| [ "$JVM_VERSION" = "1.6.0" -a "$JVM_PATCH_VERSION" -ge 23 ] | ||
then | ||
JAVA_AGENT="$JAVA_AGENT -javaagent:$CASSANDRA_HOME/lib/jamm-0.3.0.jar" | ||
fi | ||
|
||
# Added sigar-bin to the java.library.path CASSANDRA-7838 | ||
JAVA_OPTS="$JAVA_OPTS:-Djava.library.path=$CASSANDRA_HOME/lib/sigar-bin" |
Oops, something went wrong.