Skip to content

Commit

Permalink
java/wildfly: New port
Browse files Browse the repository at this point in the history
Replacement for JBoss Application Server

WildFly is a flexible, lightweight, managed application runtime that
helps you build amazing applications.  WildFly - new name for JBoss
Application Server

- Fast Startup
- Small Footprint
- Modular Design
- Unified Configuration and Management
And of course Java EE!

WWW: https://wildfly.org/

As the current MAINTAINER is no longer adding any support and all
wildfly versions are about to EXPIRE add this port. Please be informed
that this is still an older version of the port. There was a breaking
change in wildfly which I cannot recollect so I will need to test and
update. But in case someone quickly recollects the breaking version
number give me a heads up. Otherwise I will test and update soonish.
  • Loading branch information
5u623l20 committed Dec 27, 2023
1 parent f4149cf commit 2e7d20d
Show file tree
Hide file tree
Showing 7 changed files with 1,497 additions and 0 deletions.
1 change: 1 addition & 0 deletions java/Makefile
Expand Up @@ -107,6 +107,7 @@
SUBDIR += trove4j
SUBDIR += veditor
SUBDIR += visualvm
SUBDIR += wildfly
SUBDIR += wildfly10

.include <bsd.port.subdir.mk>
73 changes: 73 additions & 0 deletions java/wildfly/Makefile
@@ -0,0 +1,73 @@
PORTNAME= wildfly
PORTVERSION= 11.0.0
CATEGORIES= java www
MASTER_SITES= https://download.jboss.org/wildfly/${WILDFLY_VERSION}/
DISTNAME= wildfly-${WILDFLY_VERSION}

MAINTAINER= bofh@FreeBSD.org
COMMENT= Replacement for JBoss Application Server
WWW= https://wildfly.org/

LICENSE= GPLv2

USE_JAVA= 8+
USE_RC_SUBR= wildfly

NO_BUILD= yes
SUB_FILES= pkg-message
SUB_LIST= APP_SHORTNAME=${PORTNAME} \
LOG_DIR=${LOG_DIR} \
USERS=${USERS} \
GROUPS=${GROUPS} \
PID_FILE=${PID_FILE} \
APP_HOME=${PREFIX}/${PORTNAME}

USERS= www
GROUPS= www

PLIST_SUB= APP_HOME=${PORTNAME}

VAR_DIR?= /var
LOG_DIR?= ${VAR_DIR}/log/${PORTNAME}
PID_FILE= ${VAR_DIR}/run/${PORTNAME}.pid
WILDFLY_VERSION=${PORTVERSION}.Final

CONFIG_FILES= appclient/configuration/appclient.xml \
appclient/configuration/logging.properties \
domain/configuration/application-roles.properties \
domain/configuration/application-users.properties \
domain/configuration/default-server-logging.properties \
domain/configuration/domain.xml \
domain/configuration/host-master.xml \
domain/configuration/host-slave.xml \
domain/configuration/host.xml \
domain/configuration/logging.properties \
domain/configuration/mgmt-groups.properties \
domain/configuration/mgmt-users.properties \
standalone/configuration/application-roles.properties \
standalone/configuration/application-users.properties \
standalone/configuration/logging.properties \
standalone/configuration/mgmt-groups.properties \
standalone/configuration/mgmt-users.properties \
standalone/configuration/standalone-full-ha.xml \
standalone/configuration/standalone-full.xml \
standalone/configuration/standalone-ha.xml \
standalone/configuration/standalone.xml

post-extract:
${RM} ${WRKSRC}/bin/add-user.sh.orig
${RM} ${WRKSRC}/bin/*.bat
${RM} ${WRKSRC}/bin/*.ps1
${RM} -r ${WRKSRC}/bin/service
${RM} -r ${WRKSRC}/bin/init.d

do-install:
${MKDIR} ${STAGEDIR}${PREFIX}/${PORTNAME}
(cd ${WRKSRC} && ${COPYTREE_SHARE} . ${STAGEDIR}${PREFIX}/${PORTNAME})
${RMDIR} ${STAGEDIR}${PREFIX}/${PORTNAME}/.installation
.for FILE in ${CONFIG_FILES}
${MV} ${STAGEDIR}${PREFIX}/${PORTNAME}/${FILE} \
${STAGEDIR}${PREFIX}/${PORTNAME}/${FILE}.sample
.endfor

.include <bsd.port.mk>
3 changes: 3 additions & 0 deletions java/wildfly/distinfo
@@ -0,0 +1,3 @@
TIMESTAMP = 1703628970
SHA256 (wildfly-11.0.0.Final.tar.gz) = a2f5fb4187369196003e31eb086f0a1f7bfc0645a3a61a53ed20ab5853481e71
SIZE (wildfly-11.0.0.Final.tar.gz) = 158031524
21 changes: 21 additions & 0 deletions java/wildfly/files/pkg-message.in
@@ -0,0 +1,21 @@
[
{ type: install
message: <<EOM
To make WildFly bind to all interfaces add this to rc.conf:

%%APP_SHORTNAME%%_args="-Djboss.bind.address=0.0.0.0"

See

https://community.jboss.org/wiki/JBossProperties

for additional startup properties.

To change JVM args, edit appropriate standalone.conf.

To add the initial admin user:

%%APP_HOME%%/bin/add-user.sh
EOM
}
]
93 changes: 93 additions & 0 deletions java/wildfly/files/wildfly.in
@@ -0,0 +1,93 @@
#!/bin/sh
#
# %%APP_SHORTNAME%% startup script.

# PROVIDE: %%APP_SHORTNAME%%
# REQUIRE: NETWORKING SERVERS
# KEYWORD: shutdown

# Add the following lines to /etc/rc.conf to enable %%APP_SHORTNAME%%:
# %%APP_SHORTNAME%%_enable (bool): Set to "YES" to enable %%APP_SHORTNAME%%
# %%APP_SHORTNAME%%_args (str): Optional arguments to OAJBoss
# %%APP_SHORTNAME%%_log_stdout (str) JBoss log output stdout, filename.
# %%APP_SHORTNAME%%_log_stderr (str) JBoss log output stderr, filename.
#

. /etc/rc.subr

name="%%APP_SHORTNAME%%"
rcvar=%%APP_SHORTNAME%%_enable
extra_commands="status"

load_rc_config $name

%%APP_SHORTNAME%%_logdir="%%LOG_DIR%%"
%%APP_SHORTNAME%%_enable="${%%APP_SHORTNAME%%_enable:-"NO"}"
%%APP_SHORTNAME%%_log_stdout="${%%APP_SHORTNAME%%_log_stdout:-"${%%APP_SHORTNAME%%_logdir}/log"}"
%%APP_SHORTNAME%%_log_stderr="${%%APP_SHORTNAME%%_log_stderr:-"${%%APP_SHORTNAME%%_logdir}/error"}"
%%APP_SHORTNAME%%_args="${%%APP_SHORTNAME%%_args:-""}"
%%APP_SHORTNAME%%_sleep="${%%APP_SHORTNAME%%_sleep:-"5"}"
%%APP_SHORTNAME%%_kill9="${%%APP_SHORTNAME%%_kill9:-""}"
%%APP_SHORTNAME%%_additional_killall="${%%APP_SHORTNAME%%_additional_killall:-""}"
%%APP_SHORTNAME%%_user="%%USER%%"
%%APP_SHORTNAME%%_group="%%GROUP%%"

start_cmd="%%APP_SHORTNAME%%_start"
stop_cmd="%%APP_SHORTNAME%%_stop"
pidfile="%%PID_FILE%%"
status_cmd="%%APP_SHORTNAME%%_status"

WILDFLY_HOME="%%APP_HOME%%"

%%APP_SHORTNAME%%_start ()
{
if [ ! -d "${%%APP_SHORTNAME%%_logdir}" ]
then
install -d -o ${%%APP_SHORTNAME%%_user} ${%%APP_SHORTNAME%%_logdir}
fi

echo "%%APP_SHORTNAME%%: making sure all writeable dirs belong to proper user/group"
chown -R ${%%APP_SHORTNAME%%_user}:${%%APP_SHORTNAME%%_group} ${WILDFLY_HOME}/standalone
echo "Starting %%APP_SHORTNAME%%."
daemon -u ${%%APP_SHORTNAME%%_user} ${WILDFLY_HOME}/bin/standalone.sh ${%%APP_SHORTNAME%%_args} >> ${%%APP_SHORTNAME%%_log_stdout} 2>> ${%%APP_SHORTNAME%%_log_stderr}

sleep ${%%APP_SHORTNAME%%_sleep} # let daemon(8) and sh(1) finish before executing pgrep(1)
pgrep -U ${%%APP_SHORTNAME%%_user} -f ${WILDFLY_HOME}/modules > ${pidfile}
chown ${%%APP_SHORTNAME%%_user} $pidfile
}

%%APP_SHORTNAME%%_stop ()
{
# Subvert the check_pid_file procname check.
if [ -f ${pidfile} ]
then
kill `cat ${pidfile}`
# Only if we aware that our setup can hangs, and only after trying simple kill, we can kill it hard way.
if [ ! -z "${%%APP_SHORTNAME%%_kill9}" ]
then
sleep ${%%APP_SHORTNAME%%_sleep}
kill -9 `cat ${pidfile}`
fi
# In some setups, JBoss can spawn some child processess, which could prevent it from stopping, and freeing net ports.
# Let's blindly kill them all, since we are really know what we are doing.
if [ ! -z "${%%APP_SHORTNAME%%_additional_killall}" ]
then
sleep ${%%APP_SHORTNAME%%_sleep}
killall ${%%APP_SHORTNAME%%_additional_killall}
fi
rm ${pidfile}
fi
}

%%APP_SHORTNAME%%_status ()
{
# If running, show pid
if [ -f ${pidfile} ]
then
echo "%%APP_SHORTNAME%% is running as pid" `cat ${pidfile}`
else
echo "%%APP_SHORTNAME%% is not running"
fi
}

run_rc_command "$1"
9 changes: 9 additions & 0 deletions java/wildfly/pkg-descr
@@ -0,0 +1,9 @@
WildFly is a flexible, lightweight, managed application runtime that helps you
build amazing applications. WildFly - new name for JBoss Application Server

- Fast Startup
- Small Footprint
- Modular Design
- Unified Configuration and Management

And of course Java EE!

0 comments on commit 2e7d20d

Please sign in to comment.