From 7210aa7ce7369e44f5cdbc9bf19d28f0c6106d35 Mon Sep 17 00:00:00 2001 From: Giorgio Peron Date: Sat, 22 Oct 2011 09:39:40 -0200 Subject: network/jboss-as: Added (JBoss Application Server) Signed-off-by: Niels Horn --- network/jboss-as/README | 12 +++ network/jboss-as/doinst.sh | 27 +++++++ network/jboss-as/jboss-as.SlackBuild | 150 +++++++++++++++++++++++++++++++++++ network/jboss-as/jboss-as.info | 10 +++ network/jboss-as/rc.jboss-as | 145 +++++++++++++++++++++++++++++++++ network/jboss-as/slack-desc | 12 +++ 6 files changed, 356 insertions(+) create mode 100644 network/jboss-as/README create mode 100644 network/jboss-as/doinst.sh create mode 100644 network/jboss-as/jboss-as.SlackBuild create mode 100644 network/jboss-as/jboss-as.info create mode 100644 network/jboss-as/rc.jboss-as create mode 100644 network/jboss-as/slack-desc (limited to 'network/jboss-as') diff --git a/network/jboss-as/README b/network/jboss-as/README new file mode 100644 index 0000000000..4d0ab1453a --- /dev/null +++ b/network/jboss-as/README @@ -0,0 +1,12 @@ +JBoss is a free, open source, Java EE certified platform for developing and +deploying enterprise Java applications, Web applications, and Portals, +JBoss Application Server provides the full range of Java EE 6 features as +well as extended enterprise services including clustering, caching, and +persistence. + +JBoss-AS requires a "jboss" user and group; create these before running the +SlackBuild script. Examples: + +# groupadd -g 254 -r jboss +# useradd -u 254 -M -r -s /bin/bash -d /usr/share/jboss-as \ + -c "JBoss Application Server" -g jboss jboss diff --git a/network/jboss-as/doinst.sh b/network/jboss-as/doinst.sh new file mode 100644 index 0000000000..76f820b3d4 --- /dev/null +++ b/network/jboss-as/doinst.sh @@ -0,0 +1,27 @@ +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then + # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} + +preserve_perms() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + if [ -e $OLD ]; then + cp -a $OLD ${NEW}.incoming + cat $NEW > ${NEW}.incoming + mv ${NEW}.incoming $NEW + fi + config $NEW +} + +# Keep same perms on rc.jboss-as.new: +preserve_perms etc/rc.d/rc.jboss-as.new + diff --git a/network/jboss-as/jboss-as.SlackBuild b/network/jboss-as/jboss-as.SlackBuild new file mode 100644 index 0000000000..c2b7e78c10 --- /dev/null +++ b/network/jboss-as/jboss-as.SlackBuild @@ -0,0 +1,150 @@ +#!/bin/sh + +# Copyright 2011 Giorgio Peron, Campodarsego, PD, Italy giorgio.peron@gmail.com +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +PRGNAM=jboss-as +VERSION=${VERSION:-7.0.1.Final} +BUILD=${BUILD:-1} +TAG=${TAG:-_SBo} + +ARCH=noarch + +CWD=$(pwd) +TMP=${TMP:-/tmp/SBo} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +set -e + +# Check if the 'jboss' user & group exist: +if [ "$(grep ^jboss /etc/passwd)" = "" -o "$(grep ^jboss /etc/group)" = "" ] ; then + printf "\nYou must have a jboss user and group.\n\nExample:\n" + printf "\t# groupadd -g 254 jboss\n" + printf "\t# useradd -u 254 -M -r -s /bin/bash -d /usr/share/jboss-as -c \"JBoss Application Server\" -g jboss jboss\n\n" + exit 1 +fi + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +tar xvzf $CWD/$PRGNAM-$VERSION.tar.gz + +# move everything to /usr/share/jboss-as +mkdir -p $PKG/usr/share/$PRGNAM +mv $TMP/$PRGNAM-$VERSION/* $PKG/usr/share/$PRGNAM +cd $PKG/usr/share/$PRGNAM +chown -R root:root . + +# Move the docs to our standard location first +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +mv docs/* $PKG/usr/doc/$PRGNAM-$VERSION +mv *.txt $PKG/usr/doc/$PRGNAM-$VERSION +rm -rf docs +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild + +# directory server: jboss/standalone/* -> /var/lib/jboss/standalone/* +cd $PKG +mkdir -p $PKG/var/lib/$PRGNAM +mv $PKG/usr/share/$PRGNAM/standalone $PKG/var/lib/$PRGNAM +cd $PKG/usr/share/$PRGNAM +ln -sf ../../../var/lib/$PRGNAM/standalone +mv $PKG/usr/share/$PRGNAM/domain $PKG/var/lib/$PRGNAM +cd $PKG/usr/share/$PRGNAM +ln -sf ../../../var/lib/$PRGNAM/domain +mkdir -p $PKG/etc/$PRGNAM/{standalone,domain} +mv $PKG/var/lib/$PRGNAM/standalone/configuration $PKG/etc/$PRGNAM/standalone/ +mv $PKG/var/lib/$PRGNAM/domain/configuration $PKG/etc/$PRGNAM/domain/ +cd $PKG/var/lib/$PRGNAM/standalone +ln -sf ../../../../etc/$PRGNAM/standalone/configuration configuration +cd $PKG/var/lib/$PRGNAM/domain +ln -sf ../../../../etc/$PRGNAM/domain/configuration configuration +mkdir -p $PKG/var/{log,tmp}/$PRGNAM/standalone +cd $PKG/var/lib/$PRGNAM/standalone +ln -sf ../../../log/$PRGNAM/standalone log +ln -sf ../../../tmp/$PRGNAM/standalone tmp + +mv $PKG/usr/share/$PRGNAM/bin/standalone.conf $PKG/etc/$PRGNAM/standalone/ +mv $PKG/usr/share/$PRGNAM/bin/domain.conf $PKG/etc/$PRGNAM/domain/ +cd $PKG/usr/share/$PRGNAM/bin +ln -sf ../../../../etc/$PRGNAM/standalone/standalone.conf +ln -sf ../../../../etc/$PRGNAM/domain/domain.conf + +# the xml history need some special treatment +mkdir -p $PKG/var/lib/$PRGNAM/standalone/standalone_xml_history +mkdir -p $PKG/var/lib/$PRGNAM/domain/domain_xml_history +mkdir -p $PKG/var/lib/$PRGNAM/domain/host_xml_history +cd $PKG/etc/$PRGNAM/standalone/configuration +ln -sf ../../../../var/lib/$PRGNAM/standalone/standalone_xml_history +cd $PKG/etc/$PRGNAM/domain/configuration +ln -sf ../../../../var/lib/$PRGNAM/domain/domain_xml_history +ln -sf ../../../../var/lib/$PRGNAM/domain/host_xml_history + +# Add /etc/rc.d/rc.jboss.new +mkdir -p $PKG/etc/rc.d +cat $CWD/rc.$PRGNAM > $PKG/etc/rc.d/rc.$PRGNAM.new + +# Add /etc/profile.d/jboss-as.sh +mkdir -p $PKG/etc/profile.d +cat > $PKG/etc/profile.d/$PRGNAM.sh << EOF +#!/bin/sh +export JBOSS_HOME=/usr/share/jboss-as +EOF +cat > $PKG/etc/profile.d/$PRGNAM.csh << EOF +#!/bin/csh +setenv JBOSS_HOME /usr/share/jboss-as +EOF +chmod +x $PKG/etc/profile.d/$PRGNAM.* + +# Remove win*z executables +rm $PKG/usr/share/$PRGNAM/bin/*.bat +chmod 0755 $PKG/usr/share/$PRGNAM/bin/*.sh + +mkdir -p $PKG/usr/bin +cd $PKG/usr/bin +ln -sf ../share/$PRGNAM/bin/domain.sh +ln -sf ../share/$PRGNAM/bin/standalone.sh +ln -sf ../share/$PRGNAM/bin/jboss-admin.sh +ln -sf ../share/$PRGNAM/bin/wsprovide.sh +ln -sf ../share/$PRGNAM/bin/wsconsume.sh + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +cat $CWD/doinst.sh > $PKG/install/doinst.sh + +chown -R root:root $PKG +find $PKG \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; +chown -R jboss:jboss $PKG/var/{lib,log,tmp}/$PRGNAM +chown -R jboss:jboss $PKG/etc/$PRGNAM/{standalone,domain} + +# Don't overwrite existing configuration: +cd $PKG +for cf in $( find etc/$PRGNAM/ -type f ); do + chmod -x $cf + mv $cf $cf.new + echo "config $cf.new" >> install/doinst.sh +done + +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz} diff --git a/network/jboss-as/jboss-as.info b/network/jboss-as/jboss-as.info new file mode 100644 index 0000000000..d9caab019d --- /dev/null +++ b/network/jboss-as/jboss-as.info @@ -0,0 +1,10 @@ +PRGNAM="jboss-as" +VERSION="7.0.1.Final" +HOMEPAGE="http://www.jboss.org/jbossas" +DOWNLOAD="http://download.jboss.org/jbossas/7.0/jboss-as-7.0.1.Final/jboss-as-7.0.1.Final.tar.gz" +MD5SUM="0f25ab4e936de94780dba1e3a6d2da60" +DOWNLOAD_x86_64="" +MD5SUM_x86_64="" +MAINTAINER="Giorgio Peron" +EMAIL="giorgio.peron@gmail.com" +APPROVED="Niels Horn" diff --git a/network/jboss-as/rc.jboss-as b/network/jboss-as/rc.jboss-as new file mode 100644 index 0000000000..1ea83476cb --- /dev/null +++ b/network/jboss-as/rc.jboss-as @@ -0,0 +1,145 @@ +#!/bin/sh + +# Start/stop/restart jboss-as. + +# Copyright 2011 Giorgio Peron, Campodarsego, PD, Italy giorgio.peron@gmail.com +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +# define where jboss is - this is the directory containing directories log, bin, conf etc +JBOSS_HOME=${JBOSS_HOME:-"/usr/share/jboss-as"} + +# make java is on your path +JAVAPTH=${JAVAPTH:-"$JAVA_HOME/bin"} + +# define the user under which jboss will run, or use RUNASIS to run as the current user +JBOSSUS=${JBOSSUS:-"jboss"} + +export LAUNCH_JBOSS_IN_BACKGROUND=yes + +# define the script to use to start standalone jboss +JBOSS_START_STANDALONE=${JBOSS_START_STANDALONE:-"$JBOSS_HOME/bin/standalone.sh "} + +# define the script to use to shutdown jboss +# change host and port as need +JBOSS_STOP_STANDALONE=${JBOSS_STOP_STANDALONE:-"$JBOSS_HOME/bin/jboss-admin.sh --connect controller=127.0.0.1:9999 command=:shutdown"} + +# define log file +JBOSS_CONSOLE="/var/log/jboss-as/jboss.log" +JBOSS_DOMAIN_CONSOLE="/var/log/jboss-as/jboss_domain.log" + +if [ -n "$JBOSS_CONSOLE" -a ! -d "$JBOSS_CONSOLE" ]; then + # ensure the file exists + touch $JBOSS_CONSOLE + if [ "$JBOSSUS" != "RUNASIS" ]; then + chown -R $JBOSSUS.$JBOSSUS $JBOSS_CONSOLE + fi +fi + +if [ -n "$JBOSS_CONSOLE" -a ! -f "$JBOSS_CONSOLE" ]; then + echo "WARNING: location for saving console log invalid: $JBOSS_CONSOLE" + echo "WARNING: ignoring it and using /dev/null" + JBOSS_CONSOLE="/dev/null" +fi + +# define what will be done with the console log +JBOSS_CONSOLE=${JBOSS_CONSOLE:-"/dev/null"} + +if [ -n "$JBOSS_DOMAIN_CONSOLE" -a ! -d "$JBOSS_DOMAIN_CONSOLE" ]; then + # ensure the file exists + touch $JBOSS_DOMAIN_CONSOLE + if [ "$JBOSSUS" != "RUNASIS" ]; then + chown -R $JBOSSUS.$JBOSSUS $JBOSS_DOMAIN_CONSOLE + fi +fi + +if [ -n "$JBOSS_DOMAIN_CONSOLE" -a ! -f "$JBOSS_DOMAIN_CONSOLE" ]; then + echo "WARNING: location for saving console log invalid: $JBOSS_DOMAIN_CONSOLE" + echo "WARNING: ignoring it and using /dev/null" + JBOSS_DOMAIN_CONSOLE="/dev/null" +fi + +# define what will be done with the console log +JBOSS_DOMAIN_CONSOLE=${JBOSS_DOMAIN_CONSOLE:-"/dev/null"} + +CMD_START_STANDALONE="cd $JBOSS_HOME/bin; $JBOSS_START_STANDALONE" +CMD_STOP_STANDALONE="cd $JBOSS_HOME/bin; $JBOSS_STOP_STANDALONE" + +if [ "$JBOSSUS" = "RUNASIS" ]; then + SUBIT="" +else + SUBIT="su $JBOSSUS -c " +fi + +if [ -z "`echo $PATH | grep $JAVAPTH`" ]; then + export PATH=$PATH:$JAVAPTH +fi + +if [ ! -d "$JBOSS_HOME" ]; then + echo "JBOSS_HOME does not exist as a valid directory : $JBOSS_HOME" + exit 1 +fi + +case "$1" in +start) + echo "Starting JBoss Application Server" + cd $JBOSS_HOME/bin + if [ -z "$SUBIT" ]; then + eval $CMD_START_STANDALONE >${JBOSS_CONSOLE} 2>&1 & + else + $SUBIT "$CMD_START_STANDALONE >${JBOSS_CONSOLE} 2>&1 &" + fi + ;; +stop) + echo "Stopping JBoss Application Server" + if [ -z "$SUBIT" ]; then + $CMD_STOP_STANDALONE >/dev/null 2>&1 + else + $SUBIT "$CMD_STOP_STANDALONE >/dev/null 2>&1" + fi + ;; +restart) + $0 stop + $0 start + ;; +domain-start) + echo "Starting Domain JBoss Application Server" + cd $JBOSS_HOME/bin + if [ -z "$SUBIT" ]; then + eval $CMD_START_DOMAIN >${JBOSS_DOMAIN_CONSOLE} 2>&1 & + else + $SUBIT "$CMD_START_DOMAIN >${JBOSS_DOMAIN_CONSOLE} 2>&1 &" + fi + ;; +domain-stop) + echo "Stopping Domain JBoss Application Server" + if [ -z "$SUBIT" ]; then + $CMD_STOP_DOMAIN >/dev/null 2>&1 + else + $SUBIT "$CMD_STOP_DOMAIN >/dev/null 2>&1" + fi + ;; +domain-restart) + $0 domain-stop + $0 domain-start + ;; +*) + echo "usage: $0 (start|stop|restart|help|domain-start|domain-stop|domain-restart)" +esac diff --git a/network/jboss-as/slack-desc b/network/jboss-as/slack-desc new file mode 100644 index 0000000000..fd7a0299d4 --- /dev/null +++ b/network/jboss-as/slack-desc @@ -0,0 +1,12 @@ + |-----handy-ruler------------------------------------------------------| +jboss-as: jboss-as (JBoss Application Server) +jboss-as: +jboss-as: JBoss is a free, open source, Java EE certified platform for +jboss-as: developing and deploying enterprise Java applications, Web +jboss-as: applications, and Portals, JBoss Application Server provides the full +jboss-as: range of Java EE 6 features as well as extended enterprise services +jboss-as: including clustering, caching, and persistence. +jboss-as: +jboss-as: +jboss-as: Homepage http://www.jboss.org/jbossas/ +jboss-as: -- cgit v1.2.3