diff --git a/net/activemq/Makefile b/net/activemq/Makefile index 6d85ef5be430..953c048cb821 100644 --- a/net/activemq/Makefile +++ b/net/activemq/Makefile @@ -1,59 +1,61 @@ PORTNAME= activemq -PORTVERSION= 5.17.2 +PORTVERSION= 5.18.1 CATEGORIES= net java MASTER_SITES= APACHE/${PORTNAME}/${PORTVERSION} DISTNAME= apache-${PORTNAME}-${PORTVERSION} EXTRACT_SUFX= -bin.tar.gz -MAINTAINER= ports@FreeBSD.org +MAINTAINER= james@elstone.net COMMENT= Messaging and Integration Patterns provider WWW= https://activemq.apache.org LICENSE= APACHE20 LICENSE_FILE= ${WRKSRC}/LICENSE USES= cpe CPE_VENDOR= apache USE_JAVA= yes +JAVA_VERSION= 18 USE_RC_SUBR= activemq NO_ARCH= yes NO_BUILD= yes USERS= activemq GROUPS= activemq PORTDATA= * PORTDOCS= * PORTEXAMPLES= * OPTIONS_DEFINE= DOCS EXAMPLES do-install: - ${RM} ${WRKSRC}/conf/log4j.properties.orig + @${REINPLACE_CMD} -i '' -e 's|$\{sys:activemq.data\}\/audit.log|\$\{sys:activemq.logs\}\/audit.log|g' ${WRKSRC}/conf/log4j2.properties + @${REINPLACE_CMD} -i '' -e 's|$\{sys:activemq.data\}\/activemq.log|\$\{sys:activemq.logs\}\/activemq.log|g' ${WRKSRC}/conf/log4j2.properties @${MKDIR} ${STAGEDIR}${ETCDIR} cd ${WRKSRC}/conf && for f in *; do \ ${INSTALL_DATA} ${WRKSRC}/conf/$$f ${STAGEDIR}${ETCDIR}/$$f.sample; \ done @${MKDIR} ${STAGEDIR}${DATADIR}/bin ${INSTALL_SCRIPT} ${WRKSRC}/bin/activemq* ${STAGEDIR}${DATADIR}/bin ${RLN} ${STAGEDIR}${DATADIR}/bin/activemq ${STAGEDIR}${PREFIX}/bin ${RLN} ${STAGEDIR}${DATADIR}/bin/activemq-diag ${STAGEDIR}${PREFIX}/bin ${INSTALL_DATA} ${WRKSRC}/bin/activemq.jar ${WRKSRC}/bin/wrapper.jar \ ${STAGEDIR}${DATADIR}/bin @${MKDIR} ${STAGEDIR}/var/db/activemq ${RLN} ${STAGEDIR}/var/db/activemq ${STAGEDIR}${DATADIR}/data ${RLN} ${STAGEDIR}${ETCDIR} ${STAGEDIR}${DATADIR}/conf cd ${WRKSRC} && ${COPYTREE_SHARE} "lib webapps webapps-demo" \ ${STAGEDIR}${DATADIR} do-install-DOCS-on: cd ${WRKSRC}/docs && ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR} ${INSTALL_DATA} ${WRKSRC}/NOTICE ${WRKSRC}/README.txt ${STAGEDIR}${DOCSDIR} ${RLN} ${STAGEDIR}${DOCSDIR} ${STAGEDIR}${DATADIR}/docs do-install-EXAMPLES-on: cd ${WRKSRC}/examples && ${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR} ${RLN} ${STAGEDIR}${EXAMPLESDIR} ${STAGEDIR}${DATADIR}/examples .include diff --git a/net/activemq/distinfo b/net/activemq/distinfo index 71379e3fc510..1b9119985556 100644 --- a/net/activemq/distinfo +++ b/net/activemq/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1668099098 -SHA256 (apache-activemq-5.17.2-bin.tar.gz) = 4216387240ef38e912f88162c52e26128f0f72d15910852d12eb0a7845819195 -SIZE (apache-activemq-5.17.2-bin.tar.gz) = 48943814 +TIMESTAMP = 1682592741 +SHA256 (apache-activemq-5.18.1-bin.tar.gz) = fedd7bde9af5babaeb072bf7aeb2065d9021c26163ded639c87a32d673795472 +SIZE (apache-activemq-5.18.1-bin.tar.gz) = 49261889 diff --git a/net/activemq/files/activemq.in b/net/activemq/files/activemq.in index cc399619b130..10a7d237e5bc 100644 --- a/net/activemq/files/activemq.in +++ b/net/activemq/files/activemq.in @@ -1,137 +1,174 @@ #!/bin/sh # PROVIDE: activemq # REQUIRE: NETWORKING SERVERS # BEFORE: DAEMON # KEYWORD: shutdown # # Add the following lines to /etc/rc.conf.local or /etc/rc.conf # to enable this service: # # activemq_enable (bool): Set to NO by default. # Set it to YES to enable activemq. +# # activemq_user (username): Set to activemq by default. # Set it to required username. +# # activemq_group (group): Set to activemq by default. # Set it to required group. +# # activemq_classpath (path): Set to %%DATADIR%% by default. # Set it to java classes directory. +# # activemq_home (path): Set to %%DATADIR%% by default. # Set it to java home directory. +# # activemq_javargs (args): Set to -Xmx256M by default. # See java -h for available arguments. +# # activemq_stop_timeout (num): Set to "10" by default. # Set the timeout in seconds to shutdown. # +# activemq_java_home (path): Set the path to the jvm to use. +# Set to openJDK18 by default. +# +# activemq_debug_precmd (bool): Give java command line that +# will be run, when started for debugging outside +# of being demonised. Helpful for people new to +# activemq. +# +# activemq_audit_log (bool): Enable audit logging by default. +# In production, you will have to evaluate enabling +# this option (set to NO to disable), as it has +# disk I/O and storage implications which may +# impact expected performance. By disabling the +# audit log, security logging maybe reduced +# depending on your configuration. . /etc/rc.subr name="activemq" rcvar=activemq_enable load_rc_config $name # Set defaults : ${activemq_enable:=NO} : ${activemq_user:=activemq} : ${activemq_group:=activemq} : ${activemq_classpath:=%%ETCDIR%%} : ${activemq_conf:=%%ETCDIR%%} : ${activemq_data:=/var/db/activemq} : ${activemq_logs:=/var/log/activemq} : ${activemq_home:=%%DATADIR%%} : ${activemq_javargs:='-Xmx512M -Dorg.apache.activemq.UseDedicatedTaskRunner=true -Djava.util.logging.config.file=logging.properties -Dcom.sun.management.jmxremote'} : ${activemq_stop_timeout:="10"} : ${activemq_hostname:=`/bin/hostname`} +: ${activemq_java_home:='%%LOCALBASE%%/openjdk18/bin/java'} +: ${activemq_debug_precmd:=NO} +: ${activemq_audit_log:=YES} pidfile=/var/run/${name}.pid required_files="%%ETCDIR%%/activemq.xml" jar_file="%%DATADIR%%/bin/activemq.jar" -java_options=" -server -jar ${activemq_javargs} \ - -Dactivemq.classpath=${activemq_classpath} \ - -Dactivemq.conf=${activemq_conf} \ - -Dactivemq.data=${activemq_data} \ - -Dactivemq.logs=${activemq_logs} \ - -Dactivemq.home=${activemq_home} \ - -Dactivemq.base=${activemq_home} \ - -Dactivemq.hostname=${activemq_hostname}" -java_command="%%LOCALBASE%%/bin/java ${java_options} ${jar_file}" +activemq_audit_args="" +if checkyesno activemq_audit_log; then + activemq_audit_args="-Dorg.apache.activemq.audit=true" +fi + +jolokia_conf="file:${activemq_conf}/jolokia-access.xml" + +java_options="-server -jar ${activemq_javargs} \ +-Dactivemq.classpath=${activemq_classpath} \ +-Dactivemq.conf=${activemq_conf} \ +-Dactivemq.data=${activemq_data} \ +-Dactivemq.logs=${activemq_logs} \ +-Dactivemq.home=${activemq_home} \ +-Dactivemq.base=${activemq_home} \ +-Djolokia.conf=${jolokia_conf} \ +${activemq_audit_args} \ +-Dactivemq.hostname=${activemq_hostname}" + +java_command="${activemq_java_home} ${java_options} ${jar_file}" command="/usr/sbin/daemon" -command_args="-f -p ${pidfile} ${java_command} start" +command_args="-p ${pidfile} -o ${activemq_logs}/daemon.log ${java_command} start" start_precmd="activemq_precmd" status_cmd="activemq_status" stop_cmd="activemq_stop" activemq_precmd() { touch ${pidfile} chown ${activemq_user}:${activemq_group} ${pidfile} /usr/bin/install -d -m 0750 -o ${activemq_user} -g ${activemq_group} ${activemq_logs} /usr/bin/install -d -m 0750 -o ${activemq_user} -g ${activemq_group} ${activemq_data} + if checkyesno activemq_debug_precmd; then + echo "Starting with Java command: ${java_command}" + fi } activemq_stop() { rc_pid=$(activemq_check_pidfile $pidfile) if [ -z "$rc_pid" ]; then [ -n "$rc_fast" ] && return 0 echo "${name} not running? (check $pidfile)." return 1 fi echo "Stopping ${name}." /usr/bin/su -m $activemq_user -c "${java_command} stop" >/dev/null activemq_wait_max_for_pid ${activemq_stop_timeout} ${rc_pid} kill -KILL ${rc_pid} 2> /dev/null && echo "Killed." rm -f ${pidfile} } activemq_status() { rc_pid=$(activemq_check_pidfile $pidfile) if [ -z "$rc_pid" ]; then [ -n "$rc_fast" ] && return 0 echo "${name} not running? (check $pidfile)." return 1 fi echo "${name} is running as pid ${rc_pid}." } activemq_check_pidfile() { _pidfile=$1 if [ -z "$_pidfile" ]; then err 3 'USAGE: activemq_check_pidfile pidfile' fi if [ ! -f $_pidfile ]; then debug "pid file ($_pidfile): not readable." return fi read _pid _junk < $_pidfile if [ -z "$_pid" ]; then debug "pid file ($_pidfile): no pid in file." return fi if [ -n "`/usr/bin/su -m $activemq_user -c '%%LOCALBASE%%/bin/jps -l' | grep -e "^$_pid $jar_file\$"`" ]; then echo -n $_pid fi } activemq_wait_max_for_pid() { _timeout=$1 shift _pid=$1 _prefix= while [ $_timeout -gt 0 ] ; do echo -n ${_prefix:-"Waiting (max $_timeout secs) for PIDS: "}$_pid _prefix=", " sleep 2 kill -0 $_pid 2> /dev/null || break _timeout=$(($_timeout-2)) done if [ -n "$_prefix" ]; then echo "." fi } run_rc_command "$1"