Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
33 changes: 33 additions & 0 deletions .rat-excludes
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
**/*.avpr
debian/**
.classpath
.rat-excludes
**/.project
**/.pydevproject
CHANGES.txt
README.asc
.git/**
**/*.json
**/*.patch
interface/*/gen-*/**
src/gen-java/**
build/**
lib/licenses/*.txt
.settings/**
**/cassandra.yaml
**/cassandra-topology.yaml
**/metrics-reporter-config-sample.yaml
**/*.db
.externalToolBuilders/**
test/data/serialization/*/*
**/*.wpr
doc/**
build.properties.default
test/data/**
examples/triggers/build.xml
examples/triggers/conf/*
examples/hadoop_word_count/conf/log4j.properties
pylib/cqlshlib/test/**
src/resources/org/apache/cassandra/config/version.properties
conf/hotspot_compiler
**/*-example.yaml
184 changes: 184 additions & 0 deletions bin/cassandra.bat
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.2"^
-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"
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
74 changes: 74 additions & 0 deletions bin/cassandra.in.bat
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%

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"
Loading