FreeBSD Bugzilla – Attachment 100121 Details for
Bug 139372
java/jboss5 reorganization.
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
file.diff
file.diff (text/plain), 30.87 KB, created by
Jonathan Chen
on 2009-10-06 03:40:01 UTC
(
hide
)
Description:
file.diff
Filename:
MIME Type:
Creator:
Jonathan Chen
Created:
2009-10-06 03:40:01 UTC
Size:
30.87 KB
patch
obsolete
>diff -ruN /usr/ports/java/jboss5/Makefile ./Makefile >--- /usr/ports/java/jboss5/Makefile 2009-09-07 09:12:34.000000000 +1200 >+++ ./Makefile 2009-10-06 15:19:57.000000000 +1300 >@@ -5,19 +5,16 @@ > # $FreeBSD: ports/java/jboss5/Makefile,v 1.50 2009/09/02 17:13:03 miwi Exp $ > # > >-PORTNAME= ${APP_TITLE:L} >+PORTNAME= jboss5 > PORTVERSION= 5.1.0.GA > PORTEPOCH= 1 > CATEGORIES= java devel >-MASTER_SITES= SF/${PORTNAME}/JBoss/JBoss-${PORTVERSION} >-DISTNAME= ${PORTNAME}-${PORTVERSION}-src >+MASTER_SITES= SF/jboss/JBoss/JBoss-${PORTVERSION} >+DISTNAME= jboss-${PORTVERSION}-src > >-MAINTAINER= ports@FreeBSD.org >+MAINTAINER= jonc@chen.org.nz > COMMENT= Open-source J2EE application server (5.x family) > >-BUILD_DEPENDS= ant:${PORTSDIR}/devel/apache-ant >- >-LATEST_LINK= jboss5 > USE_JAVA= yes > JAVA_VERSION= 1.5+ > USE_ANT= yes >@@ -27,65 +24,37 @@ > MAKE_ARGS= -buildfile build/build.xml > > USE_RC_SUBR= jboss5.sh >-SUB_FILES= pkg-install pkg-deinstall pkg-message daemonctl.1 daemonctl.c >+SUB_FILES= pkg-install pkg-deinstall pkg-message > > .if !defined(NOPORTDOCS) > PORTDOCS= * > .endif > >-APP_HOME?= ${PREFIX}/${APP_SHORTNAME} >-DOCSDIR= ${PREFIX}/share/doc/${LATEST_LINK} >-LOG_DIR= ${APP_HOME}/log >-APP_TITLE= JBoss >-APP_SHORTNAME= ${UNIQUENAME} >-CONTROL_SCRIPT_NAME= ${APP_SHORTNAME}ctl >-CONTROL_SCRIPT= ${PREFIX}/bin/${CONTROL_SCRIPT_NAME} >-CONTROL_SCRIPT_MANPAGE_TITLE= ${CONTROL_SCRIPT_NAME:U} >-STARTUP_SCRIPT_NAME= ${APP_SHORTNAME}.sh >-STARTUP_SCRIPT= ${PREFIX}/etc/rc.d/${STARTUP_SCRIPT_NAME} >+VAR_DIR?= /var >+LOG_DIR?= ${VAR_DIR}/log/${PORTNAME} >+DEPLOY_DIR?= ${VAR_DIR}/${PORTNAME} > USER= www > GROUP= www > STDOUT_LOG= ${LOG_DIR}/stdout.log > STDERR_LOG= ${LOG_DIR}/stderr.log >-AUTO_START?= NO >-STOP_TIMEOUT?= 5 >-PID_FILE= /var/run/${APP_SHORTNAME}.pid >-JAVA_OPTS= >-JAVA_CP= bin/run.jar:${JAVA_HOME}/lib/tools.jar >-JAVA_MAIN= org.jboss.Main >-MAN1= ${CONTROL_SCRIPT_NAME}.1 >+STOP_TIMEOUT?= 10 >+PID_FILE= /var/run/${PORTNAME}.pid > >-JBOSSOUTPUT= ${WRKSRC}/build/output/${PORTNAME}-${PORTVERSION} >-APP_HOME_FILES= bin client lib server common >+JBOSSOUTPUT= ${WRKSRC}/build/output/jboss-${PORTVERSION} >+APP_HOME_FILES= bin client lib common > > PKGMESSAGE= ${WRKDIR}/pkg-message > >-PLIST_FILES= ${CONTROL_SCRIPT:S,^${PREFIX}/,,} \ >- ${STDOUT_LOG:S,^${PREFIX}/,,} \ >- ${STDERR_LOG:S,^${PREFIX}/,,} >- >-SUB_LIST= APP_HOME=${APP_HOME} \ >- APP_SHORTNAME=${APP_SHORTNAME} \ >- APP_TITLE=${APP_TITLE} \ >- CONTROL_SCRIPT=${CONTROL_SCRIPT} \ >- CONTROL_SCRIPT_MANPAGE_TITLE=${CONTROL_SCRIPT_MANPAGE_TITLE} \ >- CONTROL_SCRIPT_NAME=${CONTROL_SCRIPT_NAME} \ >+SUB_LIST= APP_HOME=${DATADIR} \ >+ APP_SHORTNAME=${PORTNAME} \ > GROUP=${GROUP} \ >- JAVA=${JAVA} \ >- JAVA_CP=${JAVA_CP} \ >- JAVA_HOME=${JAVA_HOME} \ >- JAVA_MAIN=${JAVA_MAIN} \ >- JAVA_OPTS=${JAVA_OPTS} \ >- JAVA_PORT_VERSION=${JAVA_PORT_VERSION} \ >- JAVA_PORT_OS_DESCRIPTION=${JAVA_PORT_OS_DESCRIPTION} \ >- JAR_FILE=${JAR_FILE} \ > LOG_DIR=${LOG_DIR} \ >+ DEPLOY_DIR=${DEPLOY_DIR} \ > PID_FILE=${PID_FILE} \ > PKGNAME=${PKGNAME} \ > PORTNAME=${PORTNAME} \ > PORTVERSION=${PORTVERSION} \ > PREFIX=${PREFIX} \ >- STARTUP_SCRIPT=${STARTUP_SCRIPT} \ > STDERR_LOG=${STDERR_LOG} \ > STDOUT_LOG=${STDOUT_LOG} \ > STOP_TIMEOUT=${STOP_TIMEOUT} \ >@@ -93,35 +62,18 @@ > > .include <bsd.port.pre.mk> > >-pre-patch: >- @${ECHO_MSG} "Installation settings:" >- @${ECHO_MSG} " Destination directory: ${APP_HOME}" >- @${ECHO_MSG} " Control program location: ${CONTROL_SCRIPT}" >- @${ECHO_MSG} " Startup script location: ${STARTUP_SCRIPT}" >- @${ECHO_MSG} " Location of JDK: ${JAVA_HOME}" >- @${ECHO_MSG} " Location of Java port: ${JAVA_PORT}" >- @${ECHO_MSG} " Startup Java Options: ${JAVA_OPTS}" >- @${ECHO_MSG} " Running as (user/group): ${USER}/${GROUP}" >- @${ECHO_MSG} " Logfile stdout: ${STDOUT_LOG}" >- @${ECHO_MSG} " Logfile stderr: ${STDERR_LOG}" >- @${ECHO_MSG} " Starting after install: ${AUTO_START}" >- @${ECHO_MSG} " Stop time-out: ${STOP_TIMEOUT} sec." >- >-pre-install: >- @${SETENV} PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL} ${PKGNAME} PRE-INSTALL >- > do-install: >- cd ${WRKDIR} && ${CC} ${CFLAGS} -o ${CONTROL_SCRIPT_NAME} daemonctl.c >- ${MKDIR} ${APP_HOME} && ${CHOWN} ${USER}:${GROUP} ${APP_HOME} >+ ${MKDIR} ${DATADIR} && ${CHOWN} ${USER}:${GROUP} ${DATADIR} > ${MKDIR} ${LOG_DIR} && ${CHOWN} ${USER}:${GROUP} ${LOG_DIR} >+ ${MKDIR} ${DEPLOY_DIR} && ${CHOWN} ${USER}:${GROUP} ${DEPLOY_DIR} >+ @${FIND} ${JBOSSOUTPUT}/bin \( -name '*.bat' -o -name '*.exe' \) | ${XARGS} ${RM} > (cd ${JBOSSOUTPUT} && ${FIND} ${APP_HOME_FILES} |\ >- ${CPIO} -pdmu -R ${USER}:${GROUP} ${APP_HOME}) >- ${INSTALL} -o ${USER} -g ${GROUP} -m 06754\ >- ${WRKDIR}/${CONTROL_SCRIPT_NAME} ${CONTROL_SCRIPT} >+ ${CPIO} -pdmu -R ${USER}:${GROUP} ${DATADIR}) >+ (cd ${JBOSSOUTPUT}/server && ${FIND} . |\ >+ ${CPIO} -pdmu -R ${USER}:${GROUP} ${DEPLOY_DIR}) > ${INSTALL} -o ${USER} -g ${GROUP} -m 0640 /dev/null ${STDOUT_LOG} > ${INSTALL} -o ${USER} -g ${GROUP} -m 0640 /dev/null ${STDERR_LOG} > ${INSTALL} -o ${USER} -g ${GROUP} -m 0640 /dev/null ${PID_FILE} >- ${INSTALL_MAN} ${WRKDIR}/daemonctl.1 ${MANPREFIX}/man/man1/${CONTROL_SCRIPT_NAME}.1 > .if !defined(NOPORTDOCS) > cd ${JBOSSOUTPUT}/docs \ > && ${FIND} . -type d -exec ${MKDIR} ${DOCSDIR}/{} \; \ >@@ -129,15 +81,21 @@ > .endif > > post-install: >+ @${ECHO_CMD} "@cwd ${PREFIX}" >> ${TMPPLIST} > @${FIND} -s ${APP_HOME_FILES:S,^,${JBOSSOUTPUT}/,} -not -type d | \ >- ${SED} -ne 's,^${JBOSSOUTPUT},${APP_HOME:S,${PREFIX}/,,},p' >> ${TMPPLIST} >+ ${SED} -ne 's,^${JBOSSOUTPUT},${DATADIR:S,^${PREFIX}/,,},p' >> ${TMPPLIST} > @${FIND} -s -d ${APP_HOME_FILES:S,^,${JBOSSOUTPUT}/,} -type d | \ >- ${SED} -ne 's,^${JBOSSOUTPUT},@dirrm ${APP_HOME:S,${PREFIX}/,,},p' >> ${TMPPLIST} >- @${ECHO_CMD} "@dirrm ${APP_HOME:S,^${PREFIX}/,,}/log" >> ${TMPPLIST} >- @${ECHO_CMD} "@dirrm ${APP_HOME:S,^${PREFIX}/,,}" >> ${TMPPLIST} >-.if ${AUTO_START} == "YES" >- @${CONTROL_SCRIPT} start || true >-.endif >+ ${SED} -ne 's,^${JBOSSOUTPUT},@dirrm ${DATADIR:S,^${PREFIX}/,,},p' >> ${TMPPLIST} >+ @${ECHO_CMD} "@dirrm ${DATADIR:S,^${PREFIX}/,,}" >> ${TMPPLIST} >+ @${ECHO_CMD} "@cwd ${VAR_DIR}" >> ${TMPPLIST} >+ @${FIND} -s ${JBOSSOUTPUT}/server -not -type d | \ >+ ${SED} -ne 's,^${JBOSSOUTPUT}/server/,${DEPLOY_DIR:S,^${VAR_DIR}/,,}/,p' >> ${TMPPLIST} >+ @${FIND} -s -d ${JBOSSOUTPUT}/server -type d | \ >+ ${SED} -ne 's,^${JBOSSOUTPUT}/server/,@dirrm ${DEPLOY_DIR:S,^${VAR_DIR}/,,}/,p' >> ${TMPPLIST} >+ @${ECHO_CMD} "@dirrm ${DEPLOY_DIR:S,^${VAR_DIR}/,,}" >> ${TMPPLIST} >+ @${ECHO_CMD} "${STDOUT_LOG:S,^${VAR_DIR}/,,}" >> ${TMPPLIST} >+ @${ECHO_CMD} "${STDERR_LOG:S,^${VAR_DIR}/,,}" >> ${TMPPLIST} >+ @${ECHO_CMD} "@dirrm ${LOG_DIR:S,^${VAR_DIR}/,,}" >> ${TMPPLIST} > .if !defined(BATCH) > @${CAT} ${PKGMESSAGE} > .endif >diff -ruN /usr/ports/java/jboss5/files/daemonctl.1.in ./files/daemonctl.1.in >--- /usr/ports/java/jboss5/files/daemonctl.1.in 2007-03-28 17:47:17.000000000 +1200 >+++ ./files/daemonctl.1.in 1970-01-01 12:00:00.000000000 +1200 >@@ -1,78 +0,0 @@ >-.Dd February 21, 2002 >-.Dt %%CONTROL_SCRIPT_MANPAGE_TITLE%% 1 >-.Os FreeBSD >-.Sh NAME >-.Nm %%CONTROL_SCRIPT_NAME%% >-.Nd %%APP_TITLE%% server control interface >-.Sh SYNOPSIS >-.Nm >-.Op Fl java-options >-.Ar {start|restart|stop} >-.Sh DESCRIPTION >-The >-.Nm >-program provides an restricted interface to the %%APP_TITLE%% >-application server. The >-.Nm >-program is only accessible to users in the 'www' group, and will >-only invoke the %%JAVA_PORT_OS_DESCRIPTION%% %%JAVA_PORT_VERSION%% JVM. >-.Pp >-Any Java options listed are handed off directly to the JVM. Any >-classpath options will be ignored. >-.Pp >-The program expects exactly one of the following terminating commands: >-.Bl -tag -width indent >-.It Ar start >-Start %%APP_TITLE%%, if it is not already running. >-.It Ar restart >-Restart %%APP_TITLE%%. If it is already running, then it will be stopped and >-then started right after that. Otherwise it will just be started up. >-.It Ar stop >-Stop %%APP_TITLE%%, if it is actually running. >-.El >-.Sh ERRORS >-The following error conditions are detected. They will be checked in the >-specified order. In each case an error message is printed with the name of the >-control program prepended. >-.Pp >-If no argument is passed, then a simple help message is printed and the >-program exists with error code 0. >-.Pp >-If at least one argument is passed, but it is different from >-.Ar start , >-.Ar restart >-or >-.Ar stop >-then the help message is printed as well, and the program exits with error >-code 1. >-.Pp >-The following errors conditions are defined: >-.Bl -tag -width indent >-.It Em Illegal program argument (error code 1) >-.It Em PID file not found (error code 2) >-.It Em PID file too large (error code 3) >-.It Em PID file contains illegal character (error code 4) >-.It Em Kill of process failed (error code 5) >-.It Em %%APP_TITLE%% is already running (error code 6) >-.It Em %%APP_TITLE%% is not running (error code 7) >-.It Em Unable to chdir to the %%APP_TITLE%% home directory (error code 8) >-.It Em Unable to open the stdout log file (error code 9) >-.It Em Unable to open the stderr log file (error code 10) >-.It Em Unable to start %%APP_TITLE%% (error code 11) >-.El >-.Sh FILES >-.Bl -tag -width -indent >-.It Pa %%PID_FILE%% >-The %%APP_TITLE%% PID file that is used to store the process ID of the >-currently running process in. It is emptied as soon as the server is stopped >-and filled with the process ID when it is started. It should never be writable >-for anyone but >-.Em www , >-.It Pa %%STARTUP_SCRIPT%% >-A script that starts the >-.Nm >-program. It is used to start %%APP_TITLE%% at startup time. >-.El >-.Sh AUTHORS >-.An Ernst de Haan Aq znerd@FreeBSD.org >-.An Jonathan Chen Aq jonc@chen.org.nz >diff -ruN /usr/ports/java/jboss5/files/daemonctl.c.in ./files/daemonctl.c.in >--- /usr/ports/java/jboss5/files/daemonctl.c.in 2007-03-28 17:47:17.000000000 +1200 >+++ ./files/daemonctl.c.in 1970-01-01 12:00:00.000000000 +1200 >@@ -1,557 +0,0 @@ >-/* >- * -*- mode: Fundamental; tab-width: 4; -*- >- * ex:ts=4 >- * >- * Daemon control program, with Java Startup options. >- * >- * Original by Ernst de Haan <znerd@freebsd.org> >- * www/jakarta-tomcat4/files/daemonctl.c >- * >- * $FreeBSD: ports/java/jboss5/files/daemonctl.c.in,v 1.1 2007/03/28 05:47:17 delphij Exp $ >- */ >- >-#include <assert.h> >-#include <fcntl.h> >-#include <signal.h> >-#include <stdarg.h> >-#include <stdio.h> >-#include <stdlib.h> >-#include <string.h> >-#include <syslog.h> >-#include <unistd.h> >-#include <sys/errno.h> >-#include <sys/stat.h> >-#include <sys/types.h> >-#include <sys/uio.h> >- >-#define TRUE 1 >-#define FALSE 0 >- >-/* The interval in seconds between the checks to make sure the process >- died after a kill */ >-#define STOP_TIME_INTERVAL 1 >- >-#define ERR_ILLEGAL_ARGUMENT 1 >-#define ERR_PID_FILE_NOT_FOUND 2 >-#define ERR_KILL_FAILED 5 >-#define ERR_ALREADY_RUNNING 6 >-#define ERR_NOT_RUNNING 7 >-#define ERR_CHDIR_TO_APP_HOME 8 >-#define ERR_ACCESS_JAR_FILE 17 >-#define ERR_STDOUT_LOGFILE_OPEN 9 >-#define ERR_STDERR_LOGFILE_OPEN 10 >-#define ERR_FORK_FAILED 11 >-#define ERR_STAT_JAVA_HOME 12 >-#define ERR_JAVA_HOME_NOT_DIR 13 >-#define ERR_STAT_JAVA_CMD 14 >-#define ERR_JAVA_CMD_NOT_FILE 15 >-#define ERR_JAVA_CMD_NOT_EXECUTABLE 16 >- >-/* >- Function declarations. >- */ >-static void printUsage (void); >-static int readPID (void); >-static void writePID (int pid); >-static void clearPID (void); >-static void start (int javaOpt, char * javaArgs [], int jbossOpt, char * jbossArgs []); >-static void stop (void); >-static void restart (int javaOpt, char * javaArgs [], int jbossOpt, char * jbossArgs []); >-static void logOutput (char *); >- >-/* >- Globals >- */ >-static int isQuiet = FALSE; >-static char * optQuiet = "-q", /* quiet option */ >- * optConfig = "-config"; /* jboss configuration option */ >- >-/** >- * Main function. This function is called when this program is executed. >- * >- * @param argc >- * the number of arguments plus one, so always greater than 0. >- * >- * @param argv >- * the arguments in an array of character pointers, where the last argument >- * element is followed by a NULL element. >- */ >-int >-main ( >- int argc, >- char *argv []) >-{ >- /* Declare variables, like all other good ANSI C programs do :) */ >- int i, javaOpt, jbossOpt; >- char *argument, **javaArgs, **jbossArgs; >- >- /* Parse the arguments */ >- if (argc < 2) >- { >- printUsage (); >- return 0; >- } >- >- /* XXX: Fix for setting up the environment for the java wrapper script */ >- setuid (geteuid ()); >- setgid (getegid ()); >- >- /* >- Build up java and jboss option blocks. >- */ >- javaOpt = jbossOpt = 0; >- for (i = 1; i < argc; i++) >- { >- if (strcmp (argv [i], optQuiet) == 0) >- { >- isQuiet = TRUE; >- >- } else if (strcmp (argv [i], optConfig) == 0) >- { >- jbossOpt += 2; >- if (++i >= argc) >- { >- printUsage (); >- return ERR_ILLEGAL_ARGUMENT; >- } >- >- } else if (*argv [i] == '-') >- { >- javaOpt++; >- } >- } >- if (javaOpt == 0) >- javaArgs = NULL; >- else >- { >- int j = 0; >- javaArgs = malloc (sizeof (char *) * javaOpt); >- for (i = 0; i < argc; i++) >- { >- if (strcmp (argv [i], optQuiet) && >- strcmp (argv [i], optConfig) && >- *argv [i] == '-') >- { >- javaArgs [j++] = argv [i]; >- } >- } >- } >- if (jbossOpt == 0) >- jbossArgs = NULL; >- else >- { >- int j = 0; >- jbossArgs = malloc (sizeof (char *) * jbossOpt); >- for (i = 0; i < argc; i++) >- { >- if (strcmp (argv [i], optConfig) == 0) >- { >- jbossArgs [j++] = "-c"; >- jbossArgs [j++] = argv [++i]; >- } >- } >- } >- >- /* >- Decide on just what to call. >- */ >- argument = argv [argc - 1]; >- if (strcmp ("start", argument) == 0) >- { >- start (javaOpt, javaArgs, jbossOpt, jbossArgs); >- >- } else if (strcmp ("stop", argument) == 0) >- { >- stop (); >- >- } else if (strcmp ("restart", argument) == 0) >- { >- restart (javaOpt, javaArgs, jbossOpt, jbossArgs); >- >- } else { >- fprintf (stderr, "%%CONTROL_SCRIPT_NAME%%: Illegal argument \"%s\".\n", argument); >- printUsage (); >- exit (ERR_ILLEGAL_ARGUMENT); >- } >- >- return EXIT_SUCCESS; >-} >- >-/** >- * Prints usage information to stdout. >- */ >-static void >-printUsage (void) >-{ >- printf ("Usage: %%CONTROL_SCRIPT_NAME%% [java-options] [-config jbossconfig] {start|stop|restart}\n"); >-} >- >-/** >- * Reads a PID from the PID file. >- * >- * @return >- * the PID, or -1 if the file was empty. >- */ >-static int >-readPID (void) >-{ >- FILE * file; >- int pid; >- >- logOutput (">> Reading PID file (%%PID_FILE%%)..."); >- file = fopen ("%%PID_FILE%%", "r"); >- if (!file) >- { >- logOutput (" [ FAILED ]\n"); >- perror ("%%CONTROL_SCRIPT_NAME%%: Unable to open %%PID_FILE%% for reading: "); >- exit (ERR_PID_FILE_NOT_FOUND); >- } >- if (fscanf (file, "%d", &pid) < 1) >- pid = -1; >- fclose (file); >- >- logOutput (" [ DONE ]\n"); >- return pid; >-} >- >-/** >- * Writes a process ID to the specified file. The file is identified by a file >- * handle. >- * >- * @param pid >- * the PID to store, always greater than 0. >- */ >-static void >-writePID ( >- int pid) >-{ >- FILE * file; >- >- logOutput (">> Writing PID file..."); >- file = fopen ("%%PID_FILE%%", "w"); >- if (!file) >- { >- logOutput (" [ FAILED ]\n"); >- perror ("%%CONTROL_SCRIPT_NAME%%: Unable to open %%PID_FILE%% for writing: "); >- exit (ERR_PID_FILE_NOT_FOUND); >- } >- fprintf (file, "%d\n", pid); >- fclose (file); >- >- logOutput (" [ DONE ]\n"); >-} >- >-/** >- Truncate the PID file. >- */ >-static void >-clearPID (void) >-{ >- if (truncate ("%%PID_FILE%%", 0) != 0) >- { >- perror ("%%CONTROL_SCRIPT_NAME%%: Unable to clear %%PID_FILE%%: "); >- exit (ERR_PID_FILE_NOT_FOUND); >- } >-} >- >-/** >- * Checks if the specified process is running. >- * >- * @param pid >- * the process id, greater than 0. >- * >- * @return >- * 0 if the specified process is not running, a different value otherwise. >- */ >-static int >-existsProcess ( >- int pid) >-{ >- int result; >- >- /* Check preconditions */ >- assert (pid > 0); >- >- /* See if the process exists */ >- result = kill (pid, 0); >- >- /* If the result is 0, then the process exists */ >- return result == 0; >-} >- >-/** >- * Kills the process identified by the specified ID. >- * >- * @param pid >- * the process id, greater than 0. >- */ >-static void >-killProcess ( >- int pid) >-{ >- int result; >- unsigned int waited; >- unsigned int forced; >- unsigned int interval = STOP_TIME_INTERVAL; >- unsigned int timeout = %%STOP_TIMEOUT%%; >- >- /* Check preconditions */ >- assert (pid > 0); >- >- if (!isQuiet) >- printf (">> Terminating process %d...", pid); >- result = kill (pid, SIGTERM); >- if (result < 0) { >- logOutput (" [ FAILED ]\n"); >- fprintf (stderr, "%%CONTROL_SCRIPT_NAME%%: Unable to kill process %d: ", pid); >- perror (NULL); >- exit (ERR_KILL_FAILED); >- } >- >- /* Wait until the process is actually killed */ >- result = existsProcess (pid); >- for (waited=0; result == 1 && waited < timeout; waited += interval) >- { >- logOutput ("."); >- fflush (stdout); >- sleep (interval); >- result = existsProcess (pid); >- } >- >- /* If the process still exists, then have no mercy and kill it */ >- forced = 0; >- if (result == 1) >- { >- /* Force the process to die */ >- result = kill (pid, SIGKILL); >- if (result == 0) { >- forced = 1; >- logOutput (" [ KILLED ]\n"); >- fprintf (stderr, "%%CONTROL_SCRIPT_NAME%%: Process %d did not terminate within %%STOP_TIMEOUT%% sec. Killed.\n", pid); >- } else if (result != ESRCH) { >- logOutput (" [ FAILED ]\n"); >- fprintf (stderr, "%%CONTROL_SCRIPT_NAME%%: Unable to kill process %d: ", pid); >- perror (NULL); >- exit (ERR_KILL_FAILED); >- } >- } >- >- if (forced == 0) { >- logOutput (" [ DONE ]\n"); >- } >-} >- >-/** >- * Starts the daemon. >- */ >-static void >-start ( >- int javaOpt, >- char * javaArgs [], >- int jbossOpt, >- char * jbossArgs []) >-{ >- int i, argc; >- char ** argv; >- int pid; >- int result; >- int stdoutLogFile; >- int stderrLogFile; >- struct stat sb; >- >- pid = readPID (); >- >- logOutput (">> Starting %%APP_TITLE%% %%PORTVERSION%%..."); >- if (pid != -1) >- { >- /* Check if the process actually exists */ >- result = existsProcess (pid); >- if (result == 1) >- { >- logOutput (" [ FAILED ]\n"); >- fprintf (stderr, "%%CONTROL_SCRIPT_NAME%%: %%APP_TITLE%% %%PORTVERSION%% is already running, PID is %d.\n", pid); >- exit (ERR_ALREADY_RUNNING); >- } >- } >- >- /* Check if the JDK home directory is actually a directory */ >- result = stat ("%%JAVA_HOME%%", &sb); >- if (result != 0) { >- logOutput (" [ FAILED ]\n"); >- fprintf (stderr, "%%CONTROL_SCRIPT_NAME%%: Unable to stat %%JAVA_HOME%%: "); >- perror (NULL); >- exit (ERR_STAT_JAVA_HOME); >- } >- if (!S_ISDIR (sb.st_mode)) { >- logOutput (" [ FAILED ]\n"); >- fprintf (stderr, "%%CONTROL_SCRIPT_NAME%%: Java home directory %%JAVA_HOME%% is not a directory.\n"); >- exit (ERR_JAVA_HOME_NOT_DIR); >- } >- >- /* Check if the Java command is actually an executable regular file */ >- result = stat ("%%JAVA%%", &sb); >- if (result != 0) { >- logOutput (" [ FAILED ]\n"); >- fprintf (stderr, "%%CONTROL_SCRIPT_NAME%%: Unable to stat %%JAVA%%: "); >- perror (NULL); >- exit (ERR_STAT_JAVA_CMD); >- } >- if (!S_ISREG (sb.st_mode)) { >- logOutput (" [ FAILED ]\n"); >- fprintf (stderr, "%%CONTROL_SCRIPT_NAME%%: Java command %%JAVA%% is not a regular file.\n"); >- exit (ERR_JAVA_CMD_NOT_FILE); >- } >- result = access ("%%JAVA%%", X_OK); >- if (result != 0) { >- logOutput (" [ FAILED ]\n"); >- fprintf (stderr, "%%CONTROL_SCRIPT_NAME%%: Java command %%JAVA%% is not executable: "); >- perror (NULL); >- exit (ERR_JAVA_CMD_NOT_EXECUTABLE); >- } >- >- /* Change directory */ >- result = chdir ("%%APP_HOME%%"); >- if (result < 0) { >- logOutput (" [ FAILED ]\n"); >- fprintf (stderr, "%%CONTROL_SCRIPT_NAME%%: Unable to access directory %%APP_HOME%%: "); >- perror (NULL); >- exit (ERR_CHDIR_TO_APP_HOME); >- } >- >- /* See if the JAR file exists */ >- result = access ("%%APP_HOME%%/%%JAR_FILE%%", R_OK); >- if (result < 0) { >- logOutput (" [ FAILED ]\n"); >- fprintf (stderr, "%%CONTROL_SCRIPT_NAME%%: Unable to access JAR file %%APP_HOME%%/%%JAR_FILE%%: "); >- perror (NULL); >- exit (ERR_ACCESS_JAR_FILE); >- } >- >- /* Open the stdout log file */ >- stdoutLogFile = open ("%%STDOUT_LOG%%", O_WRONLY); >- if (stdoutLogFile < 0) { >- logOutput (" [ FAILED ]\n"); >- fprintf (stderr, "%%CONTROL_SCRIPT_NAME%%: Unable to open %%STDOUT_LOG%% for writing: "); >- perror (NULL); >- exit (ERR_STDOUT_LOGFILE_OPEN); >- } >- lseek (stdoutLogFile, (off_t) 0, SEEK_END); >- >- /* Open the stderr log file */ >- stderrLogFile = open ("%%STDERR_LOG%%", O_WRONLY); >- if (stderrLogFile < 0) { >- logOutput (" [ FAILED ]\n"); >- fprintf (stderr, "%%CONTROL_SCRIPT_NAME%%: Unable to open %%STDERR_LOG%% for writing: "); >- perror (NULL); >- exit (ERR_STDERR_LOGFILE_OPEN); >- } >- lseek (stderrLogFile, (off_t) 0, SEEK_END); >- >- /* Split this process in two */ >- switch (pid = fork ()) >- { >- case -1: >- logOutput (" [ FAILED ]\n"); >- fprintf (stderr, "%%CONTROL_SCRIPT_NAME%%: Unable to fork: "); >- perror (NULL); >- exit (ERR_FORK_FAILED); >- break; >- >- case 0: >- /* Redirect stdout to log file */ >- dup2 (stdoutLogFile, STDOUT_FILENO); >- >- /* Redirect stderr to log file */ >- dup2 (stderrLogFile, STDERR_FILENO); >- >- /* TODO: Support redirection of both stdout and stderr to the same >- file using pipe (2) */ >- >- /* >- Build the argument vector, with the java/jboss options if any. >- */ >- argv = malloc (sizeof (char *) * (javaOpt + jbossOpt + 5)); >- argc = 0; >- argv [argc++] = "%%JAVA%%"; >- for (i = 0; i < javaOpt; i++) >- argv [argc++] = javaArgs [i]; >- argv [argc++] = "-cp"; >- argv [argc++] = "%%JAVA_CP%%"; >- argv [argc++] = "%%JAVA_MAIN%%"; >- for (i = 0; i < jbossOpt; i++) >- argv [argc++] = jbossArgs [i]; >- argv [argc++] = NULL; >- >- /* Execute the command */ >- execv (argv [0], argv); >- perror (NULL); >- break; >- >- default: >- logOutput (" [ DONE ]\n"); >- writePID (pid); >- } >-} >- >-/** >- * Stops the daemon. >- */ >-static void >-stop (void) >-{ >- int pid; >- >- pid = readPID (); >- >- logOutput (">> Checking if %%APP_TITLE%% %%PORTVERSION%% is running..."); >- >- /* If there is a PID, see if the process still exists */ >- if (pid != -1) >- { >- int result = kill (pid, 0); >- if (result != 0 && errno == ESRCH) >- { >- clearPID (); >- pid = -1; >- } >- } >- >- /* If there is no running process, produce an error */ >- if (pid == -1) >- { >- logOutput (" [ FAILED ]\n"); >- fprintf (stderr, "%%CONTROL_SCRIPT_NAME%%: %%APP_TITLE%% %%PORTVERSION%% is currently not running.\n"); >- exit (ERR_NOT_RUNNING); >- } >- logOutput (" [ DONE ]\n"); >- >- /* Terminate the process */ >- killProcess (pid); >- clearPID (); >-} >- >- >-/** >- * Restarts the process. If it not currently running, then it will fail. >- */ >-static void >-restart ( >- int javaOpt, >- char * javaArgs [], >- int jbossOpt, >- char * jbossArgs []) >-{ >- stop (); >- start (javaOpt, javaArgs, jbossOpt, jbossArgs); >-} >- >-/** >- Output log to stdout. >- */ >-static void >-logOutput ( >- char * string) >-{ >- if (!isQuiet) >- printf (string); >-} >diff -ruN /usr/ports/java/jboss5/files/jboss5.sh.in ./files/jboss5.sh.in >--- /usr/ports/java/jboss5/files/jboss5.sh.in 2007-03-28 17:47:17.000000000 +1200 >+++ ./files/jboss5.sh.in 2009-10-06 15:07:08.000000000 +1300 >@@ -1,6 +1,6 @@ > #!/bin/sh > # >-# %%APP_TITLE%% startup script. >+# %%APP_SHORTNAME%% startup script. > # > # $FreeBSD: ports/java/jboss5/files/jboss5.sh.in,v 1.1 2007/03/28 05:47:17 delphij Exp $ > # >@@ -9,53 +9,92 @@ > # REQUIRE: NETWORKING SERVERS > > # Add the following lines to /etc/rc.conf to enable %%APP_SHORTNAME%%: >-# %%APP_SHORTNAME%%_enable (bool): Set to "NO" by default. >-# Set it to "YES" to enable %%APP_SHORTNAME%% >-# %%APP_SHORTNAME%%_flags (str): Set to "-server" by default. >-# Extra JVM flags. >-# %%APP_SHORTNAME%%_config (str): Set to "" by default >-# JBoss server config, eg {all|default|minimal|standard} >+# %%APP_SHORTNAME%%_enable (bool): Set to "YES" to enable %%APP_SHORTNAME%% >+# %%APP_SHORTNAME%%_jvm_opts (str): Extra JVM flags. >+# %%APP_SHORTNAME%%_args (str): Optional arguments to JBoss > # >+ >+%%APP_SHORTNAME%%_user="%%USER%%" >+%%APP_SHORTNAME%%_enable="${%%APP_SHORTNAME%%_enable:-"NO"}" >+%%APP_SHORTNAME%%_jvm_opts="${%%APP_SHORTNAME%%_jvm_opts:-"-server -Xms128m -Xmx512m -XX:MaxPermSize=256m -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000"}" >+ > . %%RC_SUBR%% > > name="%%APP_SHORTNAME%%" > rcvar=`set_rcvar` > >-start_cmd="%%APP_SHORTNAME%%_start" >-restart_cmd="%%APP_SHORTNAME%%_restart" >+start_precmd="pid_touch" >+stop_cmd="%%APP_SHORTNAME%%_stop" > pidfile="%%PID_FILE%%" >-procname="%%JAVA%%" > >-[ -z "$%%APP_SHORTNAME%%_enable" ] && %%APP_SHORTNAME%%_enable="NO" >-[ -z "$%%APP_SHORTNAME%%_flags" ] && %%APP_SHORTNAME%%_flags="-server" >-[ -z "$%%APP_SHORTNAME%%_config" ] && %%APP_SHORTNAME%%_config="" >+# Subvert the check_pid_file procname check. >+if [ -f ${pidfile} ] >+then >+ read rc_pid junk < $pidfile >+ if [ ! -z "${rc_pid}" ] >+ then >+ procname=`ps -o ucomm= ${rc_pid}` >+ fi >+fi >+ >+JBOSS_HOME="%%APP_HOME%%" >+JBOSS_DEPLOY="%%DEPLOY_DIR%%" >+JAVA_OPTS="${%%APP_SHORTNAME%%_jvm_opts} \ >+ -Djboss.server.base.dir=${JBOSS_DEPLOY} -Djboss.server.base.url=file://${JBOSS_DEPLOY} \ >+ -Djava.endorsed.dirs=${JBOSS_HOME}/lib/endorsed \ >+ -classpath ${JBOSS_HOME}/bin/run.jar org.jboss.Main" >+ >+command="/usr/sbin/daemon" >+flags="-p ${pidfile} java ${JAVA_OPTS} ${%%APP_SHORTNAME%%_args} >> %%STDOUT_LOG%% 2>> %%STDERR_LOG%%" >+ >+pid_touch () >+{ >+ touch $pidfile >+ chown %%USER%% $pidfile >+} > >-%%APP_SHORTNAME%%_start () >+%%APP_SHORTNAME%%_stop () > { >- checkyesno %%APP_SHORTNAME%%_enable && >- { >- if [ ! -f ${pidfile} ] >+ rc_pid=$(check_pidfile $pidfile *$procname*) >+ >+ if [ -z "${rc_pid}" ] >+ then >+ [ -n "${rc_fast}" ] && return 0 >+ if [ -n "${pidfile}" ] > then >- touch ${pidfile} >- chown %%USER%%:%%GROUP%% ${pidfile} >+ echo "${name} not running? (check ${pidfile})." >+ else >+ echo "${name} not running?" > fi >+ return 1 >+ fi > >- echo "Starting %%APP_SHORTNAME%%." >- %%CONTROL_SCRIPT%% -q ${%%APP_SHORTNAME%%_flags} ${%%APP_SHORTNAME%%_configflag} ${%%APP_SHORTNAME%%_config} start >- } >+ echo "Stopping ${name}." >+ kill ${rc_pid} 2> /dev/null >+ jboss_wait_max_for_pid %%STOP_TIMEOUT%% ${rc_pid} >+ kill -KILL ${rc_pid} 2> /dev/null && echo "Killed." >+ rm -f ${pidfile} > } > >-%%APP_SHORTNAME%%_restart () >+jboss_wait_max_for_pid () > { >- checkyesno %%APP_SHORTNAME%%_enable && >- { >- echo "Restarting %%APP_SHORTNAME%%." >- %%CONTROL_SCRIPT%% -q ${%%APP_SHORTNAME%%_flags} ${%%APP_SHORTNAME%%_configflag} ${%%APP_SHORTNAME%%_config} restart >- } >+ _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 > } > > load_rc_config $name > >-[ -n "${%%APP_SHORTNAME%%_config}" ] && %%APP_SHORTNAME%%_configflag="-config" >- > run_rc_command "$1" >diff -ruN /usr/ports/java/jboss5/files/patch-build-common.xml ./files/patch-build-common.xml >--- /usr/ports/java/jboss5/files/patch-build-common.xml 2008-09-09 17:09:45.000000000 +1200 >+++ ./files/patch-build-common.xml 1970-01-01 12:00:00.000000000 +1200 >@@ -1,12 +0,0 @@ >---- ./tools/etc/buildmagic/build-common.xml.orig Sun Mar 25 20:25:52 2007 >-+++ ./tools/etc/buildmagic/build-common.xml Sun Mar 25 20:27:18 2007 >-@@ -20,6 +20,7 @@ >- <fail unless="buildmagic.ant.compatible"> >- Unsupported Ant version: >- ${ant.version} >-- Please install a version which is compatible with Ant ${buildmagic.ant16.baseversion}. >-+ Please install a version which is compatible with Ant ${buildmagic.ant16.baseversion} >-+ or ${buildmagic.ant17.baseversion}. >- </fail> >- >- <!-- JDK Detection --> >diff -ruN /usr/ports/java/jboss5/files/patch-build.xml ./files/patch-build.xml >--- /usr/ports/java/jboss5/files/patch-build.xml 2007-03-28 17:47:17.000000000 +1200 >+++ ./files/patch-build.xml 1970-01-01 12:00:00.000000000 +1200 >@@ -1,39 +0,0 @@ >---- ./build/build.xml.orig Sun Mar 25 21:29:21 2007 >-+++ ./build/build.xml Sun Mar 25 21:30:56 2007 >-@@ -40,6 +40,36 @@ >- --> >- >- <target name="init" unless="init.disable" depends="_buildmagic:init"> >-+ <!-- Make sure we have the right version of Ant --> >-+ <property name="buildmagic.ant15.baseversion" value="1.5"/> >-+ <property name="buildmagic.ant16.baseversion" value="1.6"/> >-+ <property name="buildmagic.ant17.baseversion" value="1.7"/> >-+ <!-- >-+ | Add new conditions for other supported Ant versions when they >-+ | become avaialble. >-+ --> >-+ >-+ <condition property="buildmagic.ant.compatible"> >-+ <or> >-+ <contains string="${ant.version}" >-+ substring="Ant version ${buildmagic.ant15.baseversion}"/> >-+ <contains string="${ant.version}" >-+ substring="Ant version ${buildmagic.ant16.baseversion}"/> >-+ <contains string="${ant.version}" >-+ substring="Ant version ${buildmagic.ant17.baseversion}"/> >-+ </or> >-+ </condition> >-+ >-+ <fail unless="buildmagic.ant.compatible"> >-+ >-+ Unsupported Ant version: >-+ >-+ ${ant.version} >-+ >-+ Please install a version which is compatible with Ant ${buildmagic.ant15.baseversion} or ${buildmagic.ant16.baseversion} >-+ or ${buildmagic.ant17.baseversion}. >-+ >-+ </fail> >- </target> >- >- >diff -ruN /usr/ports/java/jboss5/files/pkg-message.in ./files/pkg-message.in >--- /usr/ports/java/jboss5/files/pkg-message.in 2007-03-28 17:47:17.000000000 +1200 >+++ ./files/pkg-message.in 2009-10-06 11:08:32.000000000 +1300 >@@ -1,7 +1,5 @@ >-%%PKGNAME%% has been installed in %%APP_HOME%%. >+%%PKGNAME%% has been installed in %%DATADIR%%. > >-If a user should be able to use %%CONTROL_SCRIPT_NAME%%, put it in the group '%%GROUP%%'. >+The deployment directory for applications is %%DEPLOY_DIR%%. > >-Use 'man %%CONTROL_SCRIPT_NAME%%' for information about starting and stopping %%APP_TITLE%%. >- >-To run the %%APP_TITLE%% server from startup, add %%APP_SHORTNAME%%_enable="YES" in your /etc/rc.conf. Extra options can be found in the startup script. >+To run the %%PORTNAME%% server from startup, add %%APP_SHORTNAME%%_enable="YES" in your /etc/rc.conf. Extra options can be found in the startup script. >diff -ruN /usr/ports/java/jboss5/pkg-descr ./pkg-descr >--- /usr/ports/java/jboss5/pkg-descr 2007-03-28 17:47:16.000000000 +1200 >+++ ./pkg-descr 2009-10-06 15:15:51.000000000 +1300 >@@ -1,13 +1,17 @@ >-JBoss AS 5 GA will be Java EE 5 certified and will include the following core >-technologies. >+This is the final release of the JBoss 5.0 series for the Java EE5 codebase >+that fully complies with the Java EE5 conformance testing certification >+requirements. > >- * JBoss Microcontainer - POJO based microcontainer removing the dependency >- on JMX >+Many key features of JBoss 5 are provided by integrating other standalone >+JBoss projects: >+ >+ * JBoss Microcontainer 2.0.2 - POJO based microcontainer removing the >+ dependency on JMX > * EJB 3.0 - Fully certified as part of the Java EE 5 compliant JBoss AS 5 >- * Hibernate 3.2 - JPA certified >- * JBoss Messaging 1.2 - the next generation messaging platform from JBoss >+ * Hibernate 3.3.1 - JPA certified >+ * JBoss Messaging 1.4.1 - the next generation messaging platform from JBoss > with HA features. >- * JBoss WebServices 2.0 - new custom built JAX-WS compliant WebServices >+ * JBoss WebServices 3.0.4 - new custom built JAX-WS compliant WebServices > stack. > * JBoss Seam 1.1 - a powerful new application framework to build next > generation Web 2.0 applications by unifying and integrating popular
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 139372
: 100121