An error occurred while loading the file. Please try again.
-
student authored96695ee9
swi-install.sh 39.11 KiB
#!/bin/bash
#Download
function downloadAndExtract(){
local targetDir=${1:-/tmp}
local localFile=${2:-/tmp/tmp}
local tarDir=${3:-/tmp}
local localDir=${4:-/tmp}
local url=${5:-tmp}
echo '============>Downloading '$localFile' .....==========================================================================================================='
wget -O $localFile $url
echo '============>Extracting '$localFile' .....==========================================================================================================='
sudo tar --warning=no-unknown-keyword -xz -C $targetDir -f $localFile
rm $localFile
if ! [ "$tarDir" == "$localDir" ] ; then
sudo mv $targetDir/$tarDir $targetDir/$localDir
fi
sudo chown -R root:root $targetDir/$localDir
sudo chmod -R g-w $targetDir/$localDir
echo '============>Download and extract '$localFile' complete.==========================================================================================================='
}
function uninstallJavaVersion(){
local ver=${1:-21}
sudo apt -y purge openjdk-$ver-jdk openjdk-$ver-source openjdk-$ver-doc
}
function installJavaVersion(){
local ver=${1:-21}
sudo apt -y install openjdk-$ver-jdk openjdk-$ver-source openjdk-$ver-doc
}
#Install ORACLE JAVA 8 and OPEN JDK 11, 17
function installJava(){
echo '============>Install java packages.....==========================================================================================================='
installJavaVersion 8
installJavaVersion 17
installJavaVersion 21
echo '============>Java installed.==========================================================================================================='
}
function installJavaFX(){
echo '============>Install java FX.....==========================================================================================================='
wget https://download2.gluonhq.com/scenebuilder/22.0.0/install/linux/SceneBuilder-22.0.0.deb
sudo apt install libpcre3
sudo dpkg -i SceneBuilder-22.0.0.deb
rm SceneBuilder-22.0.0.deb
wget -O openjfx-22.0.2_linux-x64_bin-sdk.zip https://download2.gluonhq.com/openjfx/22.0.2/openjfx-22.0.2_linux-x64_bin-sdk.zip
sudo unzip -d /opt openjfx-22.0.2_linux-x64_bin-sdk.zip
rm openjfx-22.0.2_linux-x64_bin-sdk.zip
echo '============>Java FX installed.==========================================================================================================='
}
function uninstallJavaFX(){
echo '============>Uninstalling OpenJFX a javaFX.....==========================================================================================================='
sudo rm -R /opt/openjfx-*
sudo rm -R /opt/javafx-sdk*
echo '============>JFX uninstalled==========================================================================================================='
}
#Create menu launcher and alternatives
function createLauncher(){
local name=$1
local niceName=$2
local execFile=$3
local icon=$4
local description=$5
local terminal=$6
local wmclass=$7
echo '============>Creating launcher '$niceName'==========================================================================================================='
if [ -n "$terminal" ] ; then
terminal="true"
else
terminal="false"
fi
printf -v launcherText "\
[Desktop Entry]\n\
Version=1.0\n\
Name=$niceName\n\
Comment=$description\n\
StartupWMClass=$wmclass\n\
Exec=$execFile\n\
Icon=$icon\n\
Terminal=$terminal\n\
Type=Application\n\
Categories=Development;Java;\n"
printf "$launcherText" | sudo tee /usr/share/applications/$name.desktop > /dev/null
sudo update-alternatives --install "/usr/bin/$name" $name $execFile 1
}
function removeLauncher(){
local name=$1
sudo update-alternatives --remove .$name /usr/share/applications/$name.desktop
sudo rm /usr/share/applications/$name.desktop
}
function downloadAndExtractEclipse(){
local suffix=$1
local url=$2
local eclipseSrcDir=${3:-eclipse}
downloadAndExtract /opt eclipse-$suffix.tar.gz $eclipseSrcDir eclipse-$suffix $url
}
function eclipseChangeVm(){
local suffix=$1
local vm=$2
local altConfigName=${3:-eclipse}
printf -v substituteWorkspace "s/plugins\/org\.eclipse\.justj\.openjdk\.hotspot\.jre\.full.*$/$vm/g"
sudo sed -i -e $substituteWorkspace /opt/eclipse-$suffix/$altConfigName.ini
}
function installPlugins(){
local suffix=$1
local repos=$2
local plugins=$3
local altRunName=${4:-eclipse}
#install plugins
echo $repos
echo $plugins
cat <<EOF | sudo tee /opt/eclipse-$suffix/logback.xml > /dev/null
<configuration debug="true">
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- encoders are by default assigned the type
ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
<encoder>
<pattern>aaa%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%kvp- %msg%n</pattern>
</encoder>
</appender>
<root level="info">
<appender-ref ref="STDOUT" />
</root>
<logger name="org.apache" level="WARN" />
<logger name="org.apache.http" level="WARN" />
<logger name="org.apache.hc.client5.http" level="WARN" />
<logger name="org.apache.hc.client5.http.wire" level="WARN" />
<logger name="org.apache.hc" level="WARN" />
<logger name="httpclient" level="WARN" />
</configuration>
EOF
local eclipseConfigFile="/opt/eclipse-$suffix/$altRunName.ini"
local logLevelLine="-Dlogback.configurationFile=logback.xml"
sudo sed -i "/$logLevelLine/d" $eclipseConfigFile
sudo sed -i "/-Dsun.java.command/a $logLevelLine" $eclipseConfigFile
sudo /opt/eclipse-$suffix/$altRunName -nosplash -application org.eclipse.equinox.p2.director -repository $repos -installIU $plugins -vmargs -Dlogback.configurationFile=logback.xml -Declipse.log.level=INFO | tee plugin-install-$altRunName-$suffix.log |grep -v "] DEBUG org.apache"
# sed -i "/$logLevelLine/d" $eclipseConfigFile
}
#config workspace and config area
function doConfig() {
local suffix=$1
local altConfigName=${2:-eclipse}
printf -v substituteWorkspace "s/osgi\.instance\.area\.default=@user\.home\/workspace$/osgi\.instance\.area\.default=@user.home\/workspace.$suffix/g"
sudo sed -i -e $substituteWorkspace /opt/eclipse-$suffix/configuration/config.ini
if ! grep "osgi\.configuration\.area=@user\.home/\.eclipse-$suffix/configuration" /opt/eclipse-$suffix/configuration/config.ini > /dev/null; then
printf -v substituteConfig "\$aosgi\.configuration\.area=@user\.home/\.eclipse-$suffix/configuration"
sudo sed -i -e $substituteConfig /opt/eclipse-$suffix/configuration/config.ini
fi
sudo sed -i '/-Dosgi\.instance\.area\.default=/d' /opt/eclipse-$suffix/$altConfigName.ini
sudo sed -i '/^-D/i -Doomph.setup.skip=true' /opt/eclipse-$suffix/$altConfigName.ini
}
function removeEclipseInstance(){
local suffix=$1
echo '============>Removing eclipse '$suffix' instance.....==========================================================================================================='
sudo rm -R /opt/eclipse-$suffix
removeLauncher eclipse-$suffix
echo '============>Eclipse-'$suffix' instance remmoved.==========================================================================================================='
}
function installEclipseInstance(){
local suffix=$1
local url=$2
local repos=$3
local plugins=$4
local niceName=$5
local icon=$6
local description=$7
local iconUrl=$8
local altSrcDirName=${9:-eclipse}
local altRunName=${10:-eclipse}
echo '============>Installing eclipse '$suffix' .....==========================================================================================================='
downloadAndExtractEclipse $suffix $url $altSrcDirName
echo '============>Change VM eclipse '$suffix' .....==========================================================================================================='
eclipseChangeVm $suffix \\/usr\\/lib\\/jvm\\/java-21-openjdk-amd64\\/bin $altRunName
echo '============>Installing eclipse '$suffix' plugins .....==========================================================================================================='
installPlugins $suffix $repos $plugins $altRunName
doConfig $suffix $altRunName
if [[ -n "$iconUrl" && "$iconUrl" != "-" ]] ; then
sudo wget -O /opt/eclipse-$suffix/$icon $iconUrl
fi
if [ ! -f /opt/eclipse-$suffix/eclipse-orig ] ; then
if [ -f /opt/eclipse-$suffix/$altRunName ] ; then
sudo mv /opt/eclipse-$suffix/$altRunName /opt/eclipse-$suffix/$altRunName-orig
sudo mv /opt/eclipse-$suffix/$altRunName.ini /opt/eclipse-$suffix/$altRunName-orig.ini
cat <<EOF | sudo tee /opt/eclipse-$suffix/$altRunName > /dev/null
#!/bin/bash
if [ -f /usr/share/maven/bin/student-setup ] ; then
/usr/share/maven/bin/student-setup
fi
/opt/eclipse-$suffix/$altRunName-orig
EOF
sudo chmod +x /opt/eclipse-$suffix/$altRunName
fi
fi
createLauncher eclipse-$suffix "$niceName" /opt/eclipse-$suffix/$altRunName /opt/eclipse-$suffix/$icon "$description" false Eclipse
echo '============>Eclipse '$suffix' installed.==========================================================================================================='
}
function addModule(){
local url=$1
local dir=$2
local strip=$3
local moduleName=$4
local moduleBin=$5
local xaDSClass=$6
local pattern=${@:7}
local moduleDir=/opt/wildfly-33/modules/system/layers/base/$dir/main
local moduleXmlTmp=""
local moduleXml=""
local driver=""
wget -O moduleLib.tar.gz $url
sudo mkdir -p $moduleDir
sudo tar --wildcards --strip=$strip -C $moduleDir -xzf moduleLib.tar.gz $pattern
rm -R moduleLib.tar.gz
printf -v moduleXmlTmp "<module xmlns=\"urn:jboss:module:1.5\" name=\"$moduleName\">\n\
<resources>\n"
moduleXml=$moduleXml$moduleXmlTmp
jarList=$(find $moduleDir -name '*.jar' -exec printf "{} " \;)
IFS=' ' read -a jarArray <<< $jarList
for jar in "${jarArray[@]}"
do
jar=$(basename $jar)
printf -v moduleXmlTmp " <resource-root path=\"$jar\" />\n"
moduleXml=$moduleXml$moduleXmlTmp
done
printf -v moduleXmlTmp "\
</resources>\n\
<dependencies>\n\
<module name=\"javax.api\"/>\n\
<module name=\"javax.transaction.api\"/>\n\
</dependencies>\n\
</module>"
moduleXml=$moduleXml$moduleXmlTmp
printf "$moduleXml" | sudo tee $moduleDir/module.xml > /dev/null
printf -v driver "\
<driver name=\"$moduleName\" module=\"$moduleName\">\\\\n\
<xa-datasource-class>$xaDSClass<\/xa-datasource-class>\\\\n\
<\/driver>\\\\n\
"
if ! grep -q "<driver name=\"$moduleName\" module=\"$moduleName\">" /opt/wildfly-33/standalone/configuration/standalone.xml; then
sudo sed -i -e "s/<\/drivers>/$driver<\/drivers>/g" /opt/wildfly-33/standalone/configuration/standalone.xml
fi
}
function createRunScript(){
cat <<EOF | sudo tee /opt/wildfly-33/bin/standalone-student.sh > /dev/null
#!/bin/bash
WILDFLY_DIR=\$HOME/.wildfly
if [ ! -d \"\$WILDFLY_DIR\" ]; then
mkdir -p \$WILDFLY_DIR/configuration
mkdir -p \$WILDFLY_DIR/content
mkdir -p \$WILDFLY_DIR/data
mkdir -p \$WILDFLY_DIR/deployments
mkdir -p \$WILDFLY_DIR/log
cp /opt/wildfly-33/standalone/configuration/* \$WILDFLY_DIR/configuration/
fi
/opt/wildfly-33/bin/standalone.sh -Djboss.server.base.dir=\$WILDFLY_DIR -Djboss.server.temp.dir=/tmp/wildfly
EOF
sudo chmod +x /opt/wildfly-33/bin/standalone-student.sh
cat <<EOF | sudo tee /opt/wildfly-33/bin/add-user-student.sh > /dev/null
#!/bin/bash
WILDFLY_DIR=\$HOME/.wildfly
/opt/wildfly-33/bin/add-user.sh -sc \$WILDFLY_DIR/configuration
EOF
sudo chmod +x /opt/wildfly-33/bin/add-user-student.sh
}
function installWildfly(){
echo '============>Installing wildfly .....==========================================================================================================='
downloadAndExtract /opt wildfly-33.0.1.Final.tar.gz wildfly-33.0.1.Final wildfly-33 https://github.com/wildfly/wildfly/releases/download/33.0.1.Final/wildfly-33.0.1.Final.tar.gz
addModule https://cdn.mysql.com//Downloads/Connector-J/mysql-connector-j-9.0.0.tar.gz com/mysql 1 com.mysql mysql-connector-java-9.0.0.jar com.mysql.cj.jdbc.MysqlXADataSource *mysql-connector-java-9.0.0.jar
addModule https://dlcdn.apache.org//db/derby/db-derby-10.17.1.0/db-derby-10.17.1.0-lib.tar.gz org/apache/derby 2 org.apache.derby derbyclient.jar org.apache.derby.jdbc.ClientXADataSource *derbyclient.jar *derbyLocale* *derbyshared.jar *derbytools.jar
sudo chmod +r /opt/wildfly-33/standalone/configuration/*
createRunScript
echo '============>Wildfly installed==========================================================================================================='
}
function uninstallWildfly(){
echo '============>Uninstalling wildfly .....==========================================================================================================='
sudo rm -R /opt/wildfly*
echo '============>Wildfly uninstalled==========================================================================================================='
}
function installAppacheDerby() {
echo '============>Installing appache derby DB .....==========================================================================================================='
downloadAndExtract /opt db-derby-10.17.1.0-bin.tar.gz db-derby-10.17.1.0-bin db-derby https://dlcdn.apache.org//db/derby/db-derby-10.17.1.0/db-derby-10.17.1.0-bin.tar.gz
cat <<EOF | sudo tee /opt/db-derby/bin/startNetworkServer-student > /dev/null
#!/bin/bash
JAVA_DB_DIR=\$HOME/.java-db
if [ ! -d \"\$JAVA_DB_DIR\" ]; then
mkdir -p \$JAVA_DB_DIR
fi
cd \$JAVA_DB_DIR
JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
/opt/db-derby/bin/startNetworkServer -noSecurityManager
EOF
sudo chmod +x /opt/db-derby/bin/startNetworkServer-student
sudo wget -O /opt/db-derby/derby-logo.png https://db.apache.org/derby/logo/final_logo.png
createLauncher java-db "Apache Derby DB (java DB)" /opt/db-derby/bin/startNetworkServer-student /opt/db-derby/derby-logo.png "Apache Derby DB (java DB)" true derby
echo '============>Apache derby DB installed.==========================================================================================================='
}
function uninstallAppacheDerby() {
echo '============>Uninstalling appache derby DB .....==========================================================================================================='
sudo rm -R /opt/db-derby
removeLauncher java-db
echo '============>Apache derby DB uninstalled.==========================================================================================================='
}
function setupBase(){
LOCALHD=/media/localdata
LOCALHD=/media/student/DATADISK
SWI_HOME=/media/swi-home
cat <<EOF | sudo tee /etc/profile.d/01-env-var.sh > /dev/null
#create base env var
export LOCALHD=$LOCALHD
export SWI_HOME=$SWI_HOME
EOF
}
function installMaven(){
echo '============>Installing maven .....==========================================================================================================='
setupBase
sudo apt -y install maven
wget https://dlcdn.apache.org/maven/maven-3/3.9.9/binaries/apache-maven-3.9.9-bin.tar.gz
tar -xzf apache-maven-3.9.9-bin.tar.gz
rm apache-maven-3.9.9-bin.tar.gz
sudo rm -r /usr/share/maven/bin
sudo rm -r /usr/share/maven/boot
sudo rm -r /usr/share/maven/lib
sudo mv apache-maven-3.9.9/bin /usr/share/maven/bin
sudo mv apache-maven-3.9.9/boot /usr/share/maven/boot
sudo mv apache-maven-3.9.9/lib /usr/share/maven/lib
sudo cp -R apache-maven-3.9.9/conf/* /etc/maven/
sudo chown -R root:root /etc/maven/
sudo chown -R root:root /usr/share/maven/bin
sudo chown -R root:root /usr/share/maven/boot
sudo chown -R root:root /usr/share/maven/lib
rm -R apache-maven-3.9.9
sudo mkdir -p $LOCALHD/.m2/repository
sudo chmod -R go+rwx $LOCALHD/.m2
cat <<EOF | sudo tee /etc/profile.d/maven.sh > /dev/null
#create default user settiing for maven
export WILDFLY_DATA_DIR=\$HOME/.wildfly
export MAVEN_HOME=/usr/share/maven
export MAVEN_USER_HOME=~/.m2
EOF
cat <<EOF | sudo tee /etc/cron.d/maven > /dev/null
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
@reboot root chmod -R uga+rw $LOCALHD/.m2
EOF
cat <<EOF | sudo tee /usr/share/maven/bin/student-setup > /dev/null
#!/bin/bash
if [ ! -d ~/.m2/ ] ; then
mkdir ~/.m2
fi
if [ ! -f ~/.m2/settings.xml ] ; then
cp /usr/share/maven/conf/settings.xml ~/.m2/
fi
EOF
sudo chmod +x /usr/share/maven/bin/student-setup
if ! grep "<localRepository>$LOCALHD/\.m2/repository</localRepository>" /usr/share/maven/conf/settings.xml > /dev/null; then
sudo sed -i -e "/<!-- localRepository/i <localRepository>$LOCALHD/.m2/repository</localRepository>" /usr/share/maven/conf/settings.xml;
fi
echo '============>Maven installed.==========================================================================================================='
}
function installGradle(){
echo '============>Installing gradel .....==========================================================================================================='
wget https://services.gradle.org/distributions/gradle-8.10-bin.zip
sudo unzip -d /opt gradle-8.10-bin.zip
rm gradle-8.10-bin.zip
setupBase
sudo mkdir -p $LOCALHD/.gradle
sudo chmod -R go+rwx $LOCALHD/.gradle
cat <<EOF | sudo tee /etc/profile.d/gradle.sh > /dev/null
#set default home dir for gradle
export GRADLE_USER_HOME=\$LOCALHD/.gradle
export PATH=\$PATH:/opt/gradle-8.10/bin
EOF
cat <<EOF | sudo tee /etc/cron.d/gradle > /dev/null
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
@reboot root chmod -R uga+rw $LOCALHD/.gradle
EOF
echo '============>Gradle installed.==========================================================================================================='
}
function installJMeter(){
echo '============>Installing JMeter .....==========================================================================================================='
setupBase
downloadAndExtract /opt apache-jmeter-5.6.3.tgz apache-jmeter-5.6.3 jmeter https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.6.3.tgz
cat <<EOF | sudo tee /opt/jmeter/bin/jmeter-student.sh > /dev/null
#!/bin/bash
#create default user settiing for JMeter
JMETER_DATA_DIR=\$HOME/.jmeter
if [ ! -d "\$JMETER_DATA_DIR" ]; then
mkdir -p \$JMETER_DATA_DIR
fi
export JMETER_OPTS="-Dproxy.cert.directory=\$JMETER_DATA_DIR"
/opt/jmeter/bin/jmeter
EOF
sudo chmod +x /opt/jmeter/bin/jmeter-student.sh
sudo wget -O /opt/jmeter/jmeter-logo.svg https://jmeter.apache.org/images/logo.svg
createLauncher jmeter "Apache JMeter 5" /opt/jmeter/bin/jmeter-student.sh /opt/jmeter/jmeter-logo.svg "Apache JMeter 5" false "Apache JMeter"
#plugin manager
sudo wget -O /opt/jmeter/lib/ext/jmeter-plugins-manager-1.10.jar https://repo1.maven.org/maven2/kg/apc/jmeter-plugins-manager/1.10/jmeter-plugins-manager-1.10.jar
sudo wget -O /opt/jmeter/lib/cmdrunner-2.3.jar http://search.maven.org/remotecontent?filepath=kg/apc/cmdrunner/2.3/cmdrunner-2.3.jar
sudo java -cp /opt/jmeter/lib/ext/jmeter-plugins-manager-1.10.jar org.jmeterplugins.repository.PluginManagerCMDInstaller
sudo sed -i -e "s/cmdrunner-2\.2\.jar/cmdrunner-2\.3\.jar/g" /opt/jmeter/bin/PluginsManagerCMD.sh
#Add Plugins
sudo /opt/jmeter/bin/PluginsManagerCMD.sh install jpgc-graphs-basic,jpgc-graphs-additional,jpgc-functions,custom-soap,jpgc-casutg,jpgc-dbmon,jmeter.backendlistener.elasticsearch,jpgc-filterresults,jpgc-httpraw,mqmeter,jpgc-jms,jpgc-jmxmon,jmeter.pack-listener,jpgc-json,jpgc-lockfile,mqtt-sampler,jpgc-oauth,jpgc-pde,bzm-parallel,jpgc-prmctl,jpgc-perfmon,jmeter-prometheus,bzm-random-csv,ssh-sampler,tilln-sshmon,jpgc-webdriver,jpgc-plancheck,jpgc-udp,jpgc-csvars,tilln-wssecurity,websocket-sampler,websocket-samplers,jpgc-wsc,jpgc-xml,jpgc-xmpp,jpgc-standard
echo '============>JMeter installed.==========================================================================================================='
}
function uninstallJMeter(){
echo '============>uninstalling JMeter .....==========================================================================================================='
sudo rm -R /opt/jmeter
removeLauncher jmeter
}
#deprecated
function installTomcat(){
echo '============>Installing TomCat .....==========================================================================================================='
downloadAndExtract /opt apache-tomcat-10.0.23.tar.gz apache-tomcat-10.0.23 apache-tomcat-10 https://dlcdn.apache.org/tomcat/tomcat-10/v10.0.23/bin/apache-tomcat-10.0.23.tar.gz
sudo find /opt/apache-tomcat-10 -type d -exec chmod go+x {} \;
sudo find /opt/apache-tomcat-10 -type f -executable -exec chmod go+x {} \;
sudo chmod -R +r /opt/apache-tomcat-10/*
setupBase
cat <<EOF | sudo tee /opt/apache-tomcat-10/bin/startup-student.sh > /dev/null
#create default user setting for tomcat
export CATALINA_BASE=\$HOME/.tomcat
if [ ! -d "\$CATALINA_BASE" ]; then
mkdir -p \$CATALINA_BASE
mkdir -p \$CATALINA_BASE/conf
mkdir -p \$CATALINA_BASE/logs
mkdir -p \$CATALINA_BASE/webapps
mkdir -p \$CATALINA_BASE/work
mkdir -p \$CATALINA_BASE/temp
cp /opt/apache-tomcat-10/conf/* \$CATALINA_BASE/conf
fi
/opt/apache-tomcat-10/bin/startup.sh
EOF
sudo chmod +x /opt/apache-tomcat-10/bin/startup-student.sh
wget https://cdn.mysql.com//Downloads/Connector-J/mysql-connector-java-8.0.30.tar.gz
sudo tar -xzf mysql-connector-java-8.0.30.tar.gz -C /opt/apache-tomcat-10/lib --strip-components=1 mysql-connector-java-8.0.30/mysql-connector-java-8.0.30.jar
rm mysql-connector-java-8.0.30.tar.gz
wget https://www-eu.apache.org/dist//db/derby/db-derby-10.15.2.0/db-derby-10.15.2.0-lib.tar.gz
sudo tar --wildcards -xzf db-derby-10.15.2.0-lib.tar.gz -C /opt/apache-tomcat-10/lib --strip-components=2 db-derby-10.15.2.0-lib/lib/derbyclient.jar db-derby-10.15.2.0-lib/lib/derbyLocale*
rm db-derby-10.15.2.0-lib.tar.gz
echo '============>TomCat installed.==========================================================================================================='
}
function uninstallTomcat(){
echo '============>Uninstalling TomCat .....==========================================================================================================='
sudo rm -R /opt/apache-tomcat*
echo '============>TomCat uninstalled.==========================================================================================================='
}
#deprecated
function installTomEE(){
echo '============>Installing TomEE .....==========================================================================================================='
downloadAndExtract /opt apache-tomee-9.0.0-M7-plume.tar.gz apache-tomee-plume-9.0.0-M7 apache-tomee-plume-9 https://dlcdn.apache.org/tomee/tomee-9.0.0-M7/apache-tomee-9.0.0-M7-plume.tar.gz
setupBase
cat <<EOF | sudo tee /etc/profile.d/tomee.sh > /dev/null
#create default user setting for tomEE
export CATALINA_BASE_EE=\$HOME/.tomee
if [ ! -d "\$CATALINA_BASE_EE" ]; then
mkdir -p \$CATALINA_BASE_EE
mkdir -p \$CATALINA_BASE_EE/conf
mkdir -p \$CATALINA_BASE_EE/logs
mkdir -p \$CATALINA_BASE_EE/webapps
mkdir -p \$CATALINA_BASE_EE/work
mkdir -p \$CATALINA_BASE_EE/temp
cp /opt/apache-tomee-plume-9/conf/* \$CATALINA_BASE_EE/conf
fi
EOF
echo '============>TomEE installed.==========================================================================================================='
}
function uninstallTomEE(){
echo '============>Uninstalling TomEE .....==========================================================================================================='
sudo rm -R /opt/apache-tomee*
sudo rm /etc/profile.d/tomee.sh
echo '============>TomEE uninstalled.==========================================================================================================='
}
function installGecko(){
echo '============>Installing GeckoDriver .....==========================================================================================================='
wget https://github.com/mozilla/geckodriver/releases/download/v0.35.0/geckodriver-v0.35.0-linux64.tar.gz
sudo tar -xz -C /usr/bin -f geckodriver-v0.35.0-linux64.tar.gz
sudo chown root:root /usr/bin/geckodriver
sudo chmod +x /usr/bin/geckodriver
sudo chmod g-w /usr/bin/geckodriver
rm geckodriver-v0.35.0-linux64.tar.gz
echo '============>GeckoDriver installed.==========================================================================================================='
}
function uninstallGecko(){
echo '============>Uninstalling GeckoDriver .....==========================================================================================================='
sudo rm /usr/bin/geckodriver
echo '============>GeckoDriver uninstalled.==========================================================================================================='
}
function installNetBeans(){
echo '============>Installing NetBeans .....==========================================================================================================='
sudo apt -y install netbeans
echo '============>NetBeans installed.==========================================================================================================='
}
function uninstallNetBeans(){
echo '============>Uninstalling NetBeans .....==========================================================================================================='
sudo apt -y remove netbeans
echo '=======installGecko=====>NetBeans uninstalled.==========================================================================================================='
}
#deprecated - new version need license :-(
function installIdea(){
echo '============>Installing Idea IDE .....==========================================================================================================='
downloadAndExtract /opt ideaIC-2024.2.0.2.tar.gz idea-IC-242.20224.419 idea-IC https://download-cdn.jetbrains.com/idea/ideaIC-2024.2.0.2.tar.gz
createLauncher idea-IC "inteliJ IDEA" /opt/idea-IC/bin/idea.sh /opt/idea-IC/bin/idea.png "inteliJ IDEA Comunity Edition" false idea
echo '============>Idea IDE installed.==========================================================================================================='
}
function uninstallIdea(){
echo '============>Uninstalling Idea IDE .....==========================================================================================================='
sudo rm -R /opt/idea-IC*
removeLauncher idea-IC
echo '============>Idea IDE uninstalled.==========================================================================================================='
}
function installLombok(){
local eclipseSuffix=${1:-java}
local eclipseName=${2:-eclipse}
local eclipseConfigFile="/opt/eclipse-$eclipseSuffix/$eclipseName-orig.ini"
local lombokLine="-javaagent:/opt/eclipse-$eclipseSuffix/lombok.jar"
local lombokLineSed="-javaagent:\/opt\/eclipse-$eclipseSuffix\/lombok.jar"
#sudo sed -i "/$lombokLineSed/d" $eclipseConfigFile
wget https://projectlombok.org/downloads/lombok.jar
sudo mv lombok.jar /opt/eclipse-$eclipseSuffix/
cat <<EOF | sudo tee -a $eclipseConfigFile
$lombokLine
EOF
}
#deprecated
function installEclipseSTS(){
downloadAndExtract /opt spring-tool-suite-3.9.5.RELEASE-e4.8.0-linux-gtk-x86_64.tar.gz sts-bundle eclipse-sts https://download.springsource.com/release/STS/3.9.5.RELEASE/dist/e4.8/spring-tool-suite-3.9.5.RELEASE-e4.8.0-linux-gtk-x86_64.tar.gz
printf -v substituteWorkspace "s/osgi\.instance\.area\.default=@user\.home\/.*$/osgi\.instance\.area\.default=@user.home\/workspace.sts/g"
sudo sed -i -e $substituteWorkspace /opt/eclipse-sts/sts-3.9.5.RELEASE/configuration/config.ini
if ! grep "osgi\.configuration\.area=@user\.home/\.eclipse-sts/configuration" /opt/eclipse-sts/sts-3.9.5.RELEASE/configuration/config.ini > /dev/null; then
printf -v substituteConfig "\$aosgi\.configuration\.area=@user\.home/\.eclipse-sts/configuration"
sudo sed -i -e $substituteConfig /opt/eclipse-sts/sts-3.9.5.RELEASE/configuration/config.ini
fi
sudo sed -i '/-Dosgi\.instance\.area\.default=/d' /opt/eclipse-sts/sts-3.9.5.RELEASE/STS.ini
createLauncher eclipse-sts "Eclipse STS" /opt/eclipse-sts/sts-3.9.5.RELEASE/STS /opt/eclipse-sts/sts-3.9.5.RELEASE/icon.xpm "Eclipse STS (Spring Tool suite)" false Eclipse
}
function installEclipseJava(){
######Install Eclipse for JAVA development package
installEclipseInstance java https://ftp.fau.de/eclipse/technology/epp/downloads/release/2024-03/R/eclipse-java-2024-03-R-linux-gtk-x86_64.tar.gz \
"https://download.eclipse.org/releases/2024-03/,\
https://binaries.sonarsource.com/SonarLint-for-Eclipse/releases/,\
https://download.eclipse.org/efxclipse/updates-released/3.9.0/site/,\
https://ecd-plugin.github.io/update/" \
"org.eclipse.fx.runtime.min.feature.feature.group,\
org.eclipse.fx.ide.feature.feature.group,\
org.eclipse.wb.core.feature.feature.group,\
org.eclipse.wb.core.ui.feature.feature.group,\
org.eclipse.wb.layout.group.feature.feature.group,\
org.eclipse.wb.core.java.feature.feature.group,\
org.eclipse.wb.swing.feature.feature.group,\
org.sonarlint.eclipse.feature.feature.group,\
org.sf.feeling.decompiler.feature.group,\
org.sf.feeling.decompiler.cfr.feature.group,\
org.sf.feeling.decompiler.fernflower.feature.group,\
org.sf.feeling.decompiler.jd.feature.group,\
org.sf.feeling.decompiler.procyon.feature.group,\
org.sf.feeling.decompiler.vineflower.feature.group" \
"Eclipse Java" icon.xpm "Eclipse for Java Developers"
}
function installEclipsePapyrus(){
######Install Eclipse for JAVA development packages
installEclipseInstance papyrus https://mirror.leitecastro.com/eclipse/modeling/mdt/papyrus/rcp/2024-06/6.7.0/papyrus-2024-06-6.7.0-linux64.tar.gz \
"https://download.eclipse.org/modeling/mdt/papyrus/updates/releases/2024-06/" \
"org.eclipse.papyrus.sdk.feature.feature.group" \
"Eclipse Papyrus" icon.xpm "Eclipse Papyrus" - Papyrus papyrus
}
function installEclipseEE(){
######Install Eclipse for EE development package
installEclipseInstance ee https://eclipse.mirror.liteserver.nl/technology/epp/downloads/release/2024-06/R/eclipse-jee-2024-06-R-linux-gtk-x86_64.tar.gz \
"https://download.eclipse.org/releases/2024-06/,\
https://binaries.sonarsource.com/SonarLint-for-Eclipse/releases/,\
https://download.jboss.org/jbosstools/photon/stable/updates/,\
https://ecd-plugin.github.io/update/,\
https://www.thymeleaf.org/eclipse-plugin-update-site/,\
https://projectlombok.org/p2,\
https://de-jcup.github.io/update-site-eclipse-yaml-editor/update-site/" \
"org.sonarlint.eclipse.feature.feature.group,\
org.jboss.tools.cdi.feature.feature.group,\
org.eclipse.wst.json_ui.feature.feature.group,\
org.jboss.ide.eclipse.as.feature.feature.group,\
org.jboss.tools.wtp.runtimes.tomcat.feature.feature.group,\
org.sf.feeling.decompiler.feature.group,\
org.sf.feeling.decompiler.cfr.feature.group,\
org.sf.feeling.decompiler.fernflower.feature.group,\
org.sf.feeling.decompiler.jd.feature.group,\
org.sf.feeling.decompiler.procyon.feature.group,\
org.sf.feeling.decompiler.vineflower.feature.group,\
org.thymeleaf.extras.eclipse.contentassist.feature.feature.group,\
org.thymeleaf.extras.eclipse.contentassist.feature.source.feature.group,\
de.jcup.yamleditor.feature.group" \
"Eclipse EE" eclipse-ee.png "Eclipse for EE Developers" https://www.eclipse.org/webtools/images/wtp_logo_2010.png
}
function installVagrant(){
echo '============>Installing Vagrant .....==========================================================================================================='
wget https://releases.hashicorp.com/vagrant/2.2.18/vagrant_2.2.18_x86_64.deb
sudo dpkg -i vagrant_2.2.18_x86_64.deb
rm vagrant_2.2.18_x86_64.deb
echo '============>Vagrant installed.==========================================================================================================='
}
function installAndroidStudio(){
echo '============>Installing Android Studio .....==========================================================================================================='
sudo apt -y install libc6:i386 libncurses5:i386 libstdc++6:i386 lib32z1 libbz2-1.0:i386
downloadAndExtract /opt android-studio-2020.3.1.24-linux.tar.gz android-studio android-studio-2020 https://r6---sn-2gb7sn7s.gvt1.com/edgedl/android/studio/ide-zips/2020.3.1.24/android-studio-2020.3.1.24-linux.tar.gz
setupBase
cat <<EOF | sudo tee /opt/android-studio-2020/bin/studio-student.sh > /dev/null
#create default user setting for tomcat
export ANDROID_SDK_ROOT=$LOCALHD/android-sdk-root
/opt/android-studio-2020/bin/studio.sh
EOF
sudo chmod +x /opt/android-studio-2020/bin/studio-student.sh
createLauncher androidStudio "Android Studio" /opt/android-studio-2020/bin/studio-student.sh /opt/android-studio-2020/studio.svg "Android Studio IDE" false "android"
sudo mkdir -p $LOCALHD/android-sdk-root
sudo chmod go+rwx $LOCALHD/android-sdk-root
echo '============>Android Studio installed.==========================================================================================================='
}
function uninstallAndroidStudio(){
echo '============>Uninstalling Android Studio .....==========================================================================================================='
sudo rm -R /opt/android-studio*
removeLauncher androidStudio
sudo mkdir -p $LOCALHD/android-sdk-root
sudo chmod go+rwx $LOCALHD/android-sdk-root
echo '============>Android Studio uninstalled.==========================================================================================================='
}
function installGitkraken() {
echo '============>Installing gitkraken.....==========================================================================================================='
PACKAGE=gitkraken-amd64.deb
wget https://release.axocdn.com/linux/$PACKAGE
sudo dpkg --install $PACKAGE
rm $PACKAGE
echo '============>Gitkraken installed.==========================================================================================================='
}
function installDocker() {
echo '============>Installing Docker.....=============================================='
sudo apt-get -y remove docker docker-engine docker.io containerd runc
sudo apt-get update
sudo apt-get -y install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common \
uidmap
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
sudo apt-get update
sudo apt-get -y install docker-ce docker-ce-cli containerd.io
ARCHIVE_TEMPLATE=docker-rootless-extras-24.0.
ROOTLESS_URL_TEMPLATE=https://download.docker.com/linux/static/stable/x86_64/$ARCHIVE_TEMPLATE
for i in {0..6}; do
wget $ROOTLESS_URL_TEMPLATE$i'.tgz'
tar xzf $ARCHIVE_TEMPLATE$i.tgz
done
sudo mv docker-rootless-extras/???* /usr/bin/
rm -rf docker-rootless-extras*
sudo sh -c 'cat <<EOT > /usr/lib/systemd/user/docker.service
[Unit]
Description=Docker Application Container Engine (Rootless)
Documentation=https://docs.docker.com
[Service]
Environment=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ExecStart=/usr/bin/dockerd-rootless.sh --experimental --storage-driver=vfs
ExecReload=/bin/kill -s HUP \$MAINPID
TimeoutSec=0
RestartSec=2
Restart=always
StartLimitBurst=3
StartLimitInterval=60s
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
Delegate=yes
Type=simple
[Install]
WantedBy=multi-user.target
EOT'
systemctl --user daemon-reload
echo 'Add to .bashrc:'
echo 'export DOCKER_HOST=unix:///run/user/$(id -u)/docker.sock'
echo '============>Docker Installed.....==============================================='
}
function disableAltF5(){
# sudo dconf write /org/gnome/desktop/wm/keybindings/unmaximize ['<Super>Down']
cat <<EOF | sudo tee /etc/dconf/db/ibus.d/91-disableAltF5 > /dev/null
[org/gnome/desktop/wm/keybindings]
unmaximize=['<Super>Down']
EOF
sudo dconf update
}
function installAll() {
sudo apt -y install geany
sudo apt -y install git gitk git-gui kdiff3 krusader unrar rar 7zip
#sudo sed -i -e "s/line_height=0;0;/line_height=0;2;/g" /usr/share/geany/filedefs/filetypes.common
#disableAltF5
installJava
installJavaFX
installGradle
installMaven
removeEclipseInstance java
installEclipseJava
installLombok java
removeEclipseInstance ee
installEclipseEE
installLombok ee
uninstallIdea
installIdea
#uninstallTomcat
#installTomcat
#uninstallTomEE
# installTomEE
uninstallWildfly
installWildfly
uninstallAppacheDerby
installAppacheDerby
uninstallJMeter
installJMeter
uninstallGecko
installGecko
installVagrant
uninstallAndroidStudio
installAndroidStudio
installDocker
installGitkraken
}
function upgradeEclipselinkInTomEE(){
wget http://ftp-stud.fht-esslingen.de/pub/Mirrors/eclipse/rt/eclipselink/releases/2.7.5/eclipselink-2.7.5.v20191016-ea124dd158.zip
unzip -j -d . eclipselink-2.7.5.v20191016-ea124dd158.zip eclipselink/jlib/eclipselink.jar
sudo mv eclipselink.jar /opt/apache-tomee-plume-8/lib/eclipselink-2.7.5.jar
sudo rm /opt/apache-tomee-plume-8/lib/eclipselink-2.6.4.jar
}
function upgradeDerbyModuleInWildfly(){
addModule https://www-eu.apache.org/dist//db/derby/db-derby-10.15.1.3/db-derby-10.15.1.3-lib.tar.gz org/apache/derby 2 org.apache.derby derbyclient.jar org.apache.derby.jdbc.ClientXADataSource *derbyclient.jar *derbyLocale* *derbyshared.jar *derbytools.jar
cat <<EOF | sudo tee /opt/wildfly-20/bin/add-user-student.sh > /dev/null
#!/bin/bash
WILDFLY_DIR=\$HOME/.wildfly
/opt/wildfly-20/bin/add-user.sh -sc \$WILDFLY_DIR/configuration
EOF
sudo chmod +x /opt/wildfly-20/bin/add-user-student.sh
}
function upgrade2023(){
installJava
uninstallJavaFX
installJavaFX
installGradle
removeEclipseInstance java
installEclipseJava
removeEclipseInstance ee
installEclipseEE
# installEclipseSTS
removeEclipseInstance papyrus
installEclipsePapyrus
installMaven
uninstallNetBeans
installNetBeans
# uninstallIdea
# installIdea
uninstallTomcat
# installTomcat
# uninstallTomEE
# installTomEE
uninstallWildfly
installWildfly
uninstallAppacheDerby
installAppacheDerby
uninstallJMeter
installJMeter
uninstallGecko
installGecko
# installVagrant
# uninstallAndroidStudio
# installAndroidStudio
# installDocker
installGitkraken
}
function fix2023(){
removeEclipseInstance ee
installEclipseEE
installLombok java
cat <<EOF | sudo tee /opt/wildfly-29/bin/standalone-student.sh > /dev/null
#!/bin/bash
WILDFLY_DIR=\$HOME/.wildfly
if [ ! -d \"\$WILDFLY_DIR \" ]; then
mkdir -p \$WILDFLY_DIR/configuration
mkdir -p \$WILDFLY_DIR/content
mkdir -p \$WILDFLY_DIR/data
mkdir -p \$WILDFLY_DIR/deployments
mkdir -p \$WILDFLY_DIR/log
cp /opt/wildfly-29/standalone/configuration/* \$WILDFLY_DIR/configuration/
fi
/opt/wildfly-29/bin/standalone.sh -Djboss.server.base.dir=\$WILDFLY_DIR -Djboss.server.temp.dir=/tmp/wildfly
EOF
}
function update2024(){
installJava
uninstallJavaFX
installJavaFX
installMaven
removeEclipseInstance ee
installEclipseEE
removeEclipseInstance java
installEclipseJava
installLombok java
installLombok ee
}
function fix2024(){
removeEclipseInstance ee
installEclipseEE
removeEclipseInstance java
installEclipseJava
installLombok java
installLombok ee
uninstallIdea
installIdea
}
if [ $# == 0 ] ; then
commands=("installAll")
else
commands=("${@}")
fi
for index in "${!commands[@]}"
do
eval ${commands[$index]}
done