diff --git a/ccm-bundle/web/WEB-INF/systeminformation.properties b/ccm-bundle/web/WEB-INF/systeminformation.properties new file mode 100644 index 000000000..84165fa6b --- /dev/null +++ b/ccm-bundle/web/WEB-INF/systeminformation.properties @@ -0,0 +1,3 @@ +version = 2.3.x +appname = ScientificCMS +apphomepage = http://www.scientificcms.org diff --git a/ccm-cms/src/com/arsdigita/cms/CMSResources.properties b/ccm-cms/src/com/arsdigita/cms/CMSResources.properties index 0e89cef97..7eab946ba 100755 --- a/ccm-cms/src/com/arsdigita/cms/CMSResources.properties +++ b/ccm-cms/src/com/arsdigita/cms/CMSResources.properties @@ -1079,3 +1079,4 @@ cms.ui.authoring.parameter_not_empty=This parameter may not be empty. cms.ui.authoring.parameter_should_be_a_valid_filename=This parameter should be a valid filename. cms.ui.authoring.parameter_may_not_contain_periods=This parameter may not contain periods cms.ui.cse.none=No soon expired items were found. +cms.ui.contentcenter.task_panel_control=Experimental. Try to use it. diff --git a/ccm-cms/src/com/arsdigita/cms/CMSResources_de.properties b/ccm-cms/src/com/arsdigita/cms/CMSResources_de.properties index 7d630a43a..561ed7f6b 100755 --- a/ccm-cms/src/com/arsdigita/cms/CMSResources_de.properties +++ b/ccm-cms/src/com/arsdigita/cms/CMSResources_de.properties @@ -1073,3 +1073,4 @@ cms.ui.authoring.parameter_not_empty=Dieser Parameter darf nicht leer sein. cms.ui.authoring.parameter_should_be_a_valid_filename=Dieser Parameter muss einem g\u00fcltigen Dateinamen entsprechen. cms.ui.authoring.parameter_may_not_contain_periods=This parameter may not contain periods cms.ui.cse.none=Es wurde keine bald abgelaufenen Dokumente gefunden. +cms.ui.contentcenter.task_panel_control=Experimental. Try to use it. diff --git a/ccm-cms/src/com/arsdigita/cms/CMSResources_en_GB.properties b/ccm-cms/src/com/arsdigita/cms/CMSResources_en_GB.properties index a749ef238..3323432fb 100755 --- a/ccm-cms/src/com/arsdigita/cms/CMSResources_en_GB.properties +++ b/ccm-cms/src/com/arsdigita/cms/CMSResources_en_GB.properties @@ -127,3 +127,4 @@ cms.ui.authoring.parameter_not_empty=This parameter may not be empty. cms.ui.authoring.parameter_should_be_a_valid_filename=This parameter should be a valid filename. cms.ui.authoring.parameter_may_not_contain_periods=This parameter may not contain periods cms.ui.cse.none= +cms.ui.contentcenter.task_panel_control=Experimental. Try to use it. diff --git a/ccm-cms/src/com/arsdigita/cms/CMSResources_fr.properties b/ccm-cms/src/com/arsdigita/cms/CMSResources_fr.properties index 384defec8..6665c471f 100755 --- a/ccm-cms/src/com/arsdigita/cms/CMSResources_fr.properties +++ b/ccm-cms/src/com/arsdigita/cms/CMSResources_fr.properties @@ -601,3 +601,4 @@ cms.ui.authoring.parameter_not_empty=This parameter may not be empty. cms.ui.authoring.parameter_should_be_a_valid_filename=This parameter should be a valid filename. cms.ui.authoring.parameter_may_not_contain_periods=This parameter may not contain periods cms.ui.cse.none= +cms.ui.contentcenter.task_panel_control=Experimental. Try to use it. diff --git a/ccm-cms/src/com/arsdigita/cms/ui/authoring/BasicItemForm.java b/ccm-cms/src/com/arsdigita/cms/ui/authoring/BasicItemForm.java index 07fe309c8..fdc6700c1 100755 --- a/ccm-cms/src/com/arsdigita/cms/ui/authoring/BasicItemForm.java +++ b/ccm-cms/src/com/arsdigita/cms/ui/authoring/BasicItemForm.java @@ -358,9 +358,6 @@ public abstract class BasicItemForm extends FormSection * @param parent the folder in which to check * @param event the {@link FormSectionEvent} which was passed to the * validation listener - * - * @throws FormProcessException if the folder already contains an item - * with the name the use provided on the input form. */ public void validateNameUniqueness(Folder parent, FormSectionEvent event) { @@ -375,8 +372,6 @@ public abstract class BasicItemForm extends FormSection * @param parent * @param event * @param newName - * - * @throws FormProcessException */ public void validateNameUniqueness(Folder parent, FormSectionEvent event, @@ -418,7 +413,7 @@ public abstract class BasicItemForm extends FormSection String[] itemObj=new String[1]; itemObj[0]=itemID.toString(); dq.close(); - name.addError(globalize(ERR_MSG)); + name.addError(globalize(ERR_MSG,itemObj)); return; } } diff --git a/ccm-cms/src/com/arsdigita/cms/ui/contentcenter/TasksPanel.java b/ccm-cms/src/com/arsdigita/cms/ui/contentcenter/TasksPanel.java index 56d37ccb5..1484e98c0 100755 --- a/ccm-cms/src/com/arsdigita/cms/ui/contentcenter/TasksPanel.java +++ b/ccm-cms/src/com/arsdigita/cms/ui/contentcenter/TasksPanel.java @@ -133,6 +133,9 @@ public class TasksPanel extends CMSContainer { /** * Constructs a new task panel that shows no more than 15 * enabled tasks by default. + * + * @param typeModel + * @param sectionModel **/ public TasksPanel(ACSObjectSelectionModel typeModel, ACSObjectSelectionModel sectionModel) { @@ -144,6 +147,8 @@ public class TasksPanel extends CMSContainer { * enabled tasks by default. * * @param maxRows the maximum number of rows to show by default + * @param typeModel + * @param sectionModel * * @pre maxRows != null **/ @@ -174,6 +179,7 @@ public class TasksPanel extends CMSContainer { // A label that says "Create $content_type in $section" m_selectorLabel = new Label(new PrintListener() { + @Override public void prepare(PrintEvent e) { PageState s = e.getPageState(); Label t = (Label) e.getTarget(); @@ -182,7 +188,7 @@ public class TasksPanel extends CMSContainer { ContentSection sec = (ContentSection) m_sectionSel.getSelectedObject(s); - StringBuffer buf = new StringBuffer( + StringBuilder buf = new StringBuilder( GlobalizationUtil .globalize("cms.ui.create").localize() + " "); buf.append(type.getLabel()); @@ -212,6 +218,7 @@ public class TasksPanel extends CMSContainer { // When a new type is selected, show the creation UI. // When the selection is cleared, return to section list m_typeSel.addChangeListener(new ChangeListener() { + @Override public void stateChanged(ChangeEvent e) { PageState s = e.getPageState(); boolean isSelected = m_typeSel.isSelected(s); @@ -225,6 +232,7 @@ public class TasksPanel extends CMSContainer { m_viewLockLink = new ActionLink(new Label(GlobalizationUtil .globalize("cms.ui.workflow.task.view_locked"))); m_viewLockLink.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { PageState ps = e.getPageState(); ps.setValue(m_lockFilterParam, "lock"); @@ -235,6 +243,7 @@ public class TasksPanel extends CMSContainer { m_viewUnlockLink = new ActionLink(new Label(GlobalizationUtil .globalize("cms.ui.workflow.task.view_unlocked"))); m_viewUnlockLink.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { PageState ps = e.getPageState(); ps.setValue(m_lockFilterParam, "unlock"); @@ -245,6 +254,7 @@ public class TasksPanel extends CMSContainer { m_viewAllLockLink = new ActionLink(new Label(GlobalizationUtil .globalize("cms.ui.workflow.task.view_all"))); m_viewAllLockLink.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { PageState ps = e.getPageState(); ps.setValue(m_lockFilterParam, "all"); @@ -301,6 +311,7 @@ public class TasksPanel extends CMSContainer { p.setVisibleDefault(m_viewAllLockLink, false); p.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { final PageState state = e.getPageState(); @@ -358,6 +369,9 @@ public class TasksPanel extends CMSContainer { /** * Returns the number of enabled tasks for the specified user. + * + * @param state + * @return **/ protected int numberTasksForUser(PageState state) { return m_taskList.size(state); @@ -456,13 +470,18 @@ public class TasksPanel extends CMSContainer { } + /** + * + */ private class TasksPaginationModelBuilder implements PaginationModelBuilder { + @Override public int getTotalSize(Paginator paginator, PageState state) { return numberTasksForUser(state); } + @Override public boolean isVisible(PageState state) { return numberTasksForUser(state) > m_maxRows; } @@ -650,6 +669,8 @@ public class TasksPanel extends CMSContainer { } ControlLink link = new ControlLink(container); + link.setHint(GlobalizationUtil + .globalize("cms.ui.contentcenter.task_panel_control")); link.setClassAttr(header); link.generateXML(state, content); state.clearControlEvent(); diff --git a/ccm-core/src/com/arsdigita/bebop/BaseLink.java b/ccm-core/src/com/arsdigita/bebop/BaseLink.java index c1f61735d..acc3628c0 100755 --- a/ccm-core/src/com/arsdigita/bebop/BaseLink.java +++ b/ccm-core/src/com/arsdigita/bebop/BaseLink.java @@ -84,10 +84,19 @@ public abstract class BaseLink extends TextStylable private final String HREF_NO_JAVASCRIPT = "href_no_javascript"; private final String HREF = "href"; - protected String m_url; - protected String m_noJavascriptURL = null; + /** Label component used to display the link. Typically a Label, may be + * e.g. an image as well. */ protected Component m_child; + /** Property to store the url the Link points to. */ + protected String m_url; + + /** Property to store informational text for the user about the Link, e.g. + * how to use it, or when to use it (or not to use it). */ + private GlobalizedMessage m_hint; + + protected String m_noJavascriptURL = null; + private PrintListener m_printListener; private String m_sConfirmMsg = ""; @@ -150,6 +159,11 @@ public abstract class BaseLink extends TextStylable this("", listener); } + /** + * + * @return + * @throws CloneNotSupportedException + */ @Override public Object clone() throws CloneNotSupportedException { final BaseLink result = (BaseLink) super.clone(); @@ -199,6 +213,11 @@ public abstract class BaseLink extends TextStylable m_printListener = null; } + /** + * + * @param state + * @return + */ protected BaseLink firePrintEvent(final PageState state) { BaseLink l = this; if (m_printListener != null) { @@ -213,6 +232,12 @@ public abstract class BaseLink extends TextStylable return l; } + /** + * Retrieves the label component used to display the Link. Typically a Label, + * but may be an other type, e.g. an Image, as well. + * + * @return Component used to display the Link. + */ public final Component getChild() { return m_child; } @@ -222,6 +247,10 @@ public abstract class BaseLink extends TextStylable m_child = child; } + /** + * + * @return + */ public final String getTarget() { return m_url; } @@ -232,6 +261,16 @@ public abstract class BaseLink extends TextStylable m_url = url; } + /** + * Sets a popup hint for the Link. It usually contains some explanation for + * the user about the link, how to use, why it is there, etc. + * + * @param hint GlobalizedMessage object with the information text. + */ + public void setHint(GlobalizedMessage hint) { + m_hint = hint; + } + /** * Sets the type of link this link represents. * @@ -242,6 +281,11 @@ public abstract class BaseLink extends TextStylable setAttribute(TYPE_ATTR, type); } + /** + * + * @param state + * @param parent + */ protected abstract void generateURL(final PageState state, final Element parent); /** @@ -249,14 +293,13 @@ public abstract class BaseLink extends TextStylable *

      * <bebop:link href="..." type="..." %bebopAttr;/>
      * 
- * The href attribute contains the target the link - * should point to. The type attribute is used to - * give more fine grained control over which kind of link this element - * represents. The types are link for a - * Link, control for a {@link ControlLink}, - * and toggle for a {@link ToggleLink}. There may be - * additional attributes depending on what type of link this link - * represents. + * The href attribute contains the target the link should point + * to. The type attribute is used to give more fine grained + * control over which kind of link this element represents. The types are + * link for a Link, control for a + * {@link ControlLink}, and toggle for a {@link ToggleLink}. + * There may be additional attributes depending on what type of link this + * link represents. * * @param state The current {@link PageState}. * @param parent The XML element to attach the XML to. @@ -270,16 +313,23 @@ public abstract class BaseLink extends TextStylable BaseLink target = firePrintEvent(state); Element link = parent.newChildElement("bebop:link", BEBOP_XML_NS); target.generateURL(state, link); - target.exportConfirmAttributes(state, link); - + target.exportConfirmAttributes(state, link); //setup the link without javascript target.setupNoJavascriptURL(state, link); target.exportAttributes(link); target.generateExtraXMLAttributes(state, link); target.getChild().generateXML(state, link); + if(m_hint != null) target.setAttribute("hint", + (String) m_hint.localize()); } } + /** + * + * @param state + * @param sUrl + * @return + */ private String getAbsoluteUrl(final PageState state, final String sUrl) { String sReturn = ""; @@ -397,7 +447,7 @@ public abstract class BaseLink extends TextStylable * * @param message the confirmation message presented to the user. This * message cannot have an apostrophe or back slash. - * + * @deprecated Use setConfirmation(final GlobalizedMessage msg) instead */ public void setConfirmation(final String message) { //make sure that the message doesn't have any apostrophe's diff --git a/ccm-core/src/com/arsdigita/bebop/SimpleComponent.java b/ccm-core/src/com/arsdigita/bebop/SimpleComponent.java index 903804865..b886db6de 100755 --- a/ccm-core/src/com/arsdigita/bebop/SimpleComponent.java +++ b/ccm-core/src/com/arsdigita/bebop/SimpleComponent.java @@ -56,6 +56,7 @@ public class SimpleComponent extends Completable * Clones a component. The clone is not locked and has its own set of * attributes. * @return the clone of a component. + * @throws java.lang.CloneNotSupportedException * @post ! ((SimpleComponent) return).isLocked() */ @Override @@ -98,6 +99,7 @@ public class SimpleComponent extends Completable * @pre p != null * @param p */ + @Override public void register(Page p) { return; } @@ -109,9 +111,12 @@ public class SimpleComponent extends Completable * have a connection to an HTML form). Other components can implement it * as a no-op. * + * @param f + * @param m * @pre f != null * @pre m != null */ + @Override public void register(Form f, FormModel m) { return; } @@ -121,24 +126,30 @@ public class SimpleComponent extends Completable * receiving the click. * @param state the current page state */ + @Override public void respond(PageState state) throws javax.servlet.ServletException { } + @Override public Iterator children() { return Collections.EMPTY_LIST.iterator(); } /** Adds [J]DOM nodes for this component. Specifically for * base class SimpleComponent, does nothing. + * @param p */ + @Override public void generateXML(PageState state, Element p) { return; } + @Override public final boolean isLocked() { return m_locked; } + @Override public void lock () { if (m_attr != null) { m_attr.lock(); @@ -163,6 +174,7 @@ public class SimpleComponent extends Completable * Gets the class attribute. * @return the class attribute. */ + @Override public String getClassAttr() { return getAttribute(CLASS); } @@ -172,6 +184,7 @@ public class SimpleComponent extends Completable * @param theClass a valid XML name */ + @Override public void setClassAttr(String theClass) { Assert.isUnlocked(this); setAttribute(CLASS, theClass); @@ -181,6 +194,7 @@ public class SimpleComponent extends Completable * Gets the style attribute. * @return the style attribute. */ + @Override public String getStyleAttr() { return getAttribute(STYLE); } @@ -195,6 +209,7 @@ public class SimpleComponent extends Completable * style attribute of an HTML tag * @see Standard Attributes */ + @Override public void setStyleAttr(String style) { Assert.isUnlocked(this); setAttribute(STYLE, style); @@ -205,6 +220,7 @@ public class SimpleComponent extends Completable * @return the id attribute. * @see #setIdAttr(String id) */ + @Override public String getIdAttr() { return getAttribute(ID); } @@ -220,6 +236,7 @@ public class SimpleComponent extends Completable * @param id a valid XML identifier * @see Standard Attributes */ + @Override public void setIdAttr(String id) { Assert.isUnlocked(this); setAttribute(ID, id); @@ -306,8 +323,11 @@ public class SimpleComponent extends Completable /** * Supplies a key for parameter name mangling. + * * @param key the key to mangle + * @return */ + @Override public Component setKey(String key) { Assert.isUnlocked(this); if (key.charAt(0) >= 0 && key.charAt(0) <= 9) { @@ -321,14 +341,17 @@ public class SimpleComponent extends Completable * Retrieves a key for parameter name mangling. * @return a key for parameter name mangling. */ + @Override public final String getKey() { return m_key; } + @Override public boolean isVisible(PageState s) { return s.isVisible(this); } + @Override public void setVisible(PageState s, boolean v) { s.setVisible(this, v); } diff --git a/ccm-core/src/com/arsdigita/bebop/form/Widget.java b/ccm-core/src/com/arsdigita/bebop/form/Widget.java index 0578745da..5e837554f 100755 --- a/ccm-core/src/com/arsdigita/bebop/form/Widget.java +++ b/ccm-core/src/com/arsdigita/bebop/form/Widget.java @@ -80,9 +80,7 @@ public abstract class Widget extends BlockStylable implements Cloneable, private ParameterListener m_forwardParameter = null; private PrintListener m_printListener; private Form m_form; - /** - * The optional (localized) label (or title) of this widget. - */ + /** The optional (localized) label (or title) of this widget. */ private GlobalizedMessage m_label; private ValidationGuard m_guard = null; diff --git a/ccm-ldn-aplaws/application.xml b/ccm-ldn-aplaws/application.xml index 3f6cd67c4..bb60cfbb6 100755 --- a/ccm-ldn-aplaws/application.xml +++ b/ccm-ldn-aplaws/application.xml @@ -13,7 +13,7 @@ - + diff --git a/ccm-ldn-aplaws/bundles/devel/cfg/integration.properties b/ccm-ldn-aplaws/bundles/devel/cfg/integration.properties index 8625cdd86..f2aa89e81 100755 --- a/ccm-ldn-aplaws/bundles/devel/cfg/integration.properties +++ b/ccm-ldn-aplaws/bundles/devel/cfg/integration.properties @@ -1,6 +1,6 @@ # ############################################################################## -# APLAWS+ devel bundle integration.properties, version 2.0.x -# Main purpose is to ensurecompatibility among all CCM packages and to provide +# APLAWS+ devel bundle integration.properties, version 2.2.x +# Main purpose is to ensure compatibility among all CCM packages and to provide # Add On packages. # ############################################################################## # diff --git a/ccm-ldn-aplaws/bundles/devel/cfg/project.xml b/ccm-ldn-aplaws/bundles/devel/cfg/project.xml index 4de259516..1cecb19a3 100755 --- a/ccm-ldn-aplaws/bundles/devel/cfg/project.xml +++ b/ccm-ldn-aplaws/bundles/devel/cfg/project.xml @@ -45,7 +45,7 @@ in class ui.PortletTypeForm --> - + diff --git a/ccm-ldn-aplaws/bundles/standard/cfg/integration.properties b/ccm-ldn-aplaws/bundles/standard/cfg/integration.properties index 9b9470ebd..6f2f39d0f 100755 --- a/ccm-ldn-aplaws/bundles/standard/cfg/integration.properties +++ b/ccm-ldn-aplaws/bundles/standard/cfg/integration.properties @@ -1,5 +1,5 @@ # ############################################################################## -# APLAWS+ Standard bundle integration.properties, version 2.0.x +# APLAWS+ Standard bundle integration.properties, version 2.2.x # ############################################################################## # # diff --git a/ccm-ldn-aplaws/bundles/standard/cfg/project.xml b/ccm-ldn-aplaws/bundles/standard/cfg/project.xml index 78d32c16f..f334319c9 100755 --- a/ccm-ldn-aplaws/bundles/standard/cfg/project.xml +++ b/ccm-ldn-aplaws/bundles/standard/cfg/project.xml @@ -1,4 +1,4 @@ -^ + @@ -8,7 +8,7 @@ ccmVersion="6.1" name="aplaws" prettyName="APLAWS plus Standard Spin" - version="2-0-0" + version="2.2.2" release="std-beta" webxml="web.xml" webapp="ROOT" diff --git a/tools-ng/distribution/tomcat7/SOURCES/tomcat7-7.0-digest.script b/tools-ng/distribution/tomcat7/SOURCES/tomcat7-7.0-digest.script new file mode 100644 index 000000000..409dc8684 --- /dev/null +++ b/tools-ng/distribution/tomcat7/SOURCES/tomcat7-7.0-digest.script @@ -0,0 +1,45 @@ +#!/bin/sh +# +# tomcat7-digest script +# JPackage Project + +# Source functions library +if [ -f /usr/share/java-utils/java-functions ] ; then + . /usr/share/java-utils/java-functions +else + echo "Can't find functions library, aborting" + exit 1 +fi + +# Get the tomcat config (use this for environment specific settings) +if [ -z "${TOMCAT_CFG}" ]; then + TOMCAT_CFG="/etc/tomcat7/tomcat7.conf" +fi + +if [ -r "$TOMCAT_CFG" ]; then + . $TOMCAT_CFG +fi + +set_javacmd + +# CLASSPATH munging +if [ -n "$JSSE_HOME" ]; then + CLASSPATH="${CLASSPATH}:$(build-classpath jcert jnet jsse 2>/dev/null)" +fi +CLASSPATH="${CLASSPATH}:${CATALINA_HOME}/bin/bootstrap.jar" +CLASSPATH="${CLASSPATH}:${CATALINA_HOME}/bin/tomcat-juli.jar" +export CLASSPATH + +# Configuration +MAIN_CLASS="org.apache.catalina.startup.Tool" +BASE_FLAGS="-Dcatalina.home=\"$CATALINA_HOME\"" +BASE_OPTIONS="" +BASE_JARS="commons-daemon tomcat7/catalina servlet" + +# Set parameters +set_classpath $BASE_JARS +set_flags $BASE_FLAGS +set_options $BASE_OPTIONS + +# Let's start +run -server org.apache.catalina.realm.RealmBase "$@" diff --git a/tools-ng/distribution/tomcat7/SOURCES/tomcat7-7.0-tool-wrapper.script b/tools-ng/distribution/tomcat7/SOURCES/tomcat7-7.0-tool-wrapper.script new file mode 100644 index 000000000..ad75a097d --- /dev/null +++ b/tools-ng/distribution/tomcat7/SOURCES/tomcat7-7.0-tool-wrapper.script @@ -0,0 +1,45 @@ +#!/bin/sh +# +# tomcat7-digest script +# JPackage Project + +# Source functions library +if [ -f /usr/share/java-utils/java-functions ] ; then + . /usr/share/java-utils/java-functions +else + echo "Can't find functions library, aborting" + exit 1 +fi + +# Get the tomcat config (use this for environment specific settings) +if [ -z "${TOMCAT_CFG}" ]; then + TOMCAT_CFG="/etc/tomcat7/tomcat7.conf" +fi + +if [ -r "$TOMCAT_CFG" ]; then + . $TOMCAT_CFG +fi + +set_javacmd + +# CLASSPATH munging +if [ -n "$JSSE_HOME" ]; then + CLASSPATH="${CLASSPATH}:$(build-classpath jcert jnet jsse 2>/dev/null)" +fi +CLASSPATH="${CLASSPATH}:${CATALINA_HOME}/bin/bootstrap.jar" +CLASSPATH="${CLASSPATH}:${CATALINA_HOME}/bin/tomcat-juli.jar" +export CLASSPATH + +# Configuration +MAIN_CLASS="org.apache.catalina.startup.Tool" +BASE_OPTIONS="" +BASE_FLAGS="-Dcatalina.home=\"$CATALINA_HOME\"" +BASE_JARS="commons-daemon tomcat7/catalina servlet" + +# Set parameters +set_classpath $BASE_JARS +set_flags $BASE_FLAGS +set_options $BASE_OPTIONS + +# Let's start +run "$@" diff --git a/tools-ng/distribution/tomcat7/SOURCES/tomcat7-7.0.conf b/tools-ng/distribution/tomcat7/SOURCES/tomcat7-7.0.conf new file mode 100644 index 000000000..44115a856 --- /dev/null +++ b/tools-ng/distribution/tomcat7/SOURCES/tomcat7-7.0.conf @@ -0,0 +1,50 @@ +# System-wide configuration file for tomcat7 services +# This will be sourced by tomcat7 and any secondary service +# Values will be overridden by service-specific configuration +# files in /etc/sysconfig +# +# Use this one to change default values for all services +# Change the service specific ones to affect only one service +# (see, for instance, /etc/sysconfig/tomcat7) +# + +# Where your java installation lives +#JAVA_HOME="/usr/lib/jvm/java" + +# Where your tomcat installation lives +CATALINA_BASE="@@@TCHOME@@@" +CATALINA_HOME="@@@TCHOME@@@" +JASPER_HOME="@@@TCHOME@@@" +CATALINA_TMPDIR="@@@TCTEMP@@@" + +# You can pass some parameters to java here if you wish to +#JAVA_OPTS="-Xminf0.1 -Xmaxf0.3" + +# Use JAVA_OPTS to set java.library.path for libtcnative.so +#JAVA_OPTS="-Djava.library.path=@@@LIBDIR@@@" + +# What user should run tomcat +TOMCAT_USER="tomcat" + +# You can change your tomcat locale here +#LANG="en_US" + +# Run tomcat under the Java Security Manager +SECURITY_MANAGER="false" + +# Time to wait in seconds, before killing process +SHUTDOWN_WAIT="30" + +# Whether to annoy the user with "attempting to shut down" messages or not +SHUTDOWN_VERBOSE="false" + +# Set the TOMCAT_PID location +CATALINA_PID="/var/run/tomcat7.pid" + +# Connector port is 8080 for this tomcat7 instance +#CONNECTOR_PORT="8080" + +# If you wish to further customize your tomcat environment, +# put your own definitions here +# (i.e. LD_LIBRARY_PATH for some jdbc drivers) + diff --git a/tools-ng/distribution/tomcat7/SOURCES/tomcat7-7.0.init b/tools-ng/distribution/tomcat7/SOURCES/tomcat7-7.0.init new file mode 100644 index 000000000..2dac7238b --- /dev/null +++ b/tools-ng/distribution/tomcat7/SOURCES/tomcat7-7.0.init @@ -0,0 +1,291 @@ +#!/bin/bash +# +# tomcat7 This shell script takes care of starting and stopping Tomcat +# +# chkconfig: - 80 20 +# +### BEGIN INIT INFO +# Provides: tomcat7 +# Required-Start: $network $syslog +# Required-Stop: $network $syslog +# Default-Start: +# Default-Stop: +# Description: Release implementation for Servlet 3.0 and JSP 2.2 +# Short-Description: start and stop tomcat +### END INIT INFO +# +# - originally written by Henri Gomez, Keith Irwin, and Nicolas Mailhot +# - heavily rewritten by Deepak Bhole and Jason Corley +# + +## Source function library. +#. /etc/rc.d/init.d/functions +# Source LSB function library. +if [ -r /lib/lsb/init-functions ]; then + . /lib/lsb/init-functions +else + exit 1 +fi + +DISTRIB_ID=`lsb_release -i -s 2>/dev/null` + +NAME="$(basename $0)" +unset ISBOOT +if [ "${NAME:0:1}" = "S" -o "${NAME:0:1}" = "K" ]; then + NAME="${NAME:3}" + ISBOOT="1" +fi + +# For SELinux we need to use 'runuser' not 'su' +if [ -x "/sbin/runuser" ]; then + SU="/sbin/runuser -s /bin/sh" +else + SU="/bin/su -s /bin/sh" +fi + +# Get the tomcat config (use this for environment specific settings) +TOMCAT_CFG="/etc/tomcat7/tomcat7.conf" +if [ -r "$TOMCAT_CFG" ]; then + . $TOMCAT_CFG +fi + +# Get instance specific config file +if [ -r "/etc/sysconfig/${NAME}" ]; then + . /etc/sysconfig/${NAME} +fi + +# Define which connector port to use +CONNECTOR_PORT="${CONNECTOR_PORT:-8080}" + +# Path to the tomcat launch script +TOMCAT_SCRIPT="/usr/sbin/dtomcat7" + +# Tomcat program name +TOMCAT_PROG="${NAME}" + +# Define the tomcat username +TOMCAT_USER="${TOMCAT_USER:-tomcat}" + +# Define the tomcat log file +TOMCAT_LOG="${TOMCAT_LOG:-/var/log/${NAME}/catalina.out}" + +RETVAL="0" + +# Look for open ports, as the function name might imply +function findFreePorts() { + local isSet1="false" + local isSet2="false" + local isSet3="false" + local lower="8000" + randomPort1="0" + randomPort2="0" + randomPort3="0" + local -a listeners="( $( + netstat -ntl | \ + awk '/^tcp/ {gsub("(.)*:", "", $4); print $4}' + ) )" + while [ "$isSet1" = "false" ] || \ + [ "$isSet2" = "false" ] || \ + [ "$isSet3" = "false" ]; do + let port="${lower}+${RANDOM:0:4}" + if [ -z `expr " ${listeners[*]} " : ".*\( $port \).*"` ]; then + if [ "$isSet1" = "false" ]; then + export randomPort1="$port" + isSet1="true" + elif [ "$isSet2" = "false" ]; then + export randomPort2="$port" + isSet2="true" + elif [ "$isSet3" = "false" ]; then + export randomPort3="$port" + isSet3="true" + fi + fi + done +} + +function makeHomeDir() { + if [ ! -d "$CATALINA_HOME" ]; then + echo "$CATALINA_HOME does not exist, creating" + if [ ! -d "/usr/share/${NAME}" ]; then + mkdir /usr/share/${NAME} + cp -pLR /usr/share/tomcat7/* /usr/share/${NAME} + fi + mkdir -p /var/log/${NAME} \ + /var/cache/${NAME} \ + /var/tmp/${NAME} + ln -fs /var/cache/${NAME} ${CATALINA_HOME}/work + ln -fs /var/tmp/${NAME} ${CATALINA_HOME}/temp + cp -pLR /usr/share/${NAME}/bin $CATALINA_HOME + cp -pLR /usr/share/${NAME}/conf $CATALINA_HOME + ln -fs /usr/share/java/tomcat7 ${CATALINA_HOME}/lib + ln -fs /usr/share/tomcat7/webapps ${CATALINA_HOME}/webapps + chown ${TOMCAT_USER}:${TOMCAT_USER} /var/log/${NAME} + fi +} + +function parseOptions() { + options="" + options="$options $( + awk '!/^#/ && !/^$/ { ORS=" "; print "export ", $0, ";" }' \ + $TOMCAT_CFG + )" + if [ -r "/etc/sysconfig/${NAME}" ]; then + options="$options $( + awk '!/^#/ && !/^$/ { ORS=" "; + print "export ", $0, ";" }' \ + /etc/sysconfig/${NAME} + )" + fi + TOMCAT_SCRIPT="$options ${TOMCAT_SCRIPT}" +} + +# See how we were called. +function start() { + echo -n "Starting ${TOMCAT_PROG}: " + if [ -f "/var/lock/subsys/${NAME}" ] ; then + if [ -f "/var/run/${NAME}.pid" ]; then + read kpid < /var/run/${NAME}.pid +# if checkpid $kpid 2>&1; then + if [ -d "/proc/${kpid}" ]; then + log_success_msg + if [ "$DISTRIB_ID" = "MandrivaLinux" ]; then + echo + fi + return 0 + fi + fi + fi + # fix permissions on the log and pid files + export CATALINA_PID="/var/run/${NAME}.pid" + touch $CATALINA_PID + chown ${TOMCAT_USER}:${TOMCAT_USER} $CATALINA_PID + touch $TOMCAT_LOG + chown ${TOMCAT_USER}:${TOMCAT_USER} $TOMCAT_LOG + if [ "$CATALINA_HOME" != "/usr/share/tomcat7" ]; then + # Create a tomcat directory if it doesn't exist + makeHomeDir + # If CATALINA_HOME doesn't exist modify port number so that + # multiple instances don't interfere with each other + findFreePorts + sed -i -e "s/8005/${randomPort1}/g" -e "s/8080/${CONNECTOR_PORT}/g" \ + -e "s/8009/${randomPort2}/g" -e "s/8443/${randomPort3}/g" \ + ${CATALINA_HOME}/conf/server.xml + fi + parseOptions + if [ "$SECURITY_MANAGER" = "true" ]; then + $SU - $TOMCAT_USER -c "${TOMCAT_SCRIPT} start-security" \ + >> $TOMCAT_LOG 2>&1 + else + $SU - $TOMCAT_USER -c "${TOMCAT_SCRIPT} start" >> $TOMCAT_LOG 2>&1 + fi + RETVAL="$?" + if [ "$RETVAL" -eq 0 ]; then + log_success_msg + touch /var/lock/subsys/${NAME} + else + log_failure_msg + fi + if [ "$DISTRIB_ID" = "MandrivaLinux" ]; then + echo + fi + return $RETVAL +} + +function stop() { + RETVAL="0" + echo -n "Stopping ${TOMCAT_PROG}: " + if [ -f "/var/lock/subsys/${NAME}" ]; then + parseOptions + $SU - $TOMCAT_USER -c "${TOMCAT_SCRIPT} stop" >> $TOMCAT_LOG 2>&1 + RETVAL="$?" + if [ "$RETVAL" -eq "0" ]; then + count="0" + if [ -f "/var/run/${NAME}.pid" ]; then + read kpid < /var/run/${NAME}.pid + until [ "$(ps --pid $kpid | grep -c $kpid)" -eq "0" ] || \ + [ "$count" -gt "$SHUTDOWN_WAIT" ]; do + if [ "$SHUTDOWN_VERBOSE" = "true" ]; then + echo "waiting for processes $kpid to exit" + fi + sleep 1 + let count="${count}+1" + done + if [ "$count" -gt "$SHUTDOWN_WAIT" ]; then + if [ "$SHUTDOWN_VERBOSE" = "true" ]; then + echo "killing processes which didn't stop after $SHUTDOWN_WAIT seconds" + fi + kill -9 $kpid + fi + log_success_msg + fi + rm -f /var/lock/subsys/${NAME} /var/run/${NAME}.pid + else + log_failure_msg + fi + else + log_success_msg + fi + if [ "$DISTRIB_ID" = "MandrivaLinux" ]; then + echo + fi + return $RETVAL +} + +# See how we were called. +case "$1" in + start) + start + ;; + stop) + stop + ;; + restart) + stop + start + ;; + condrestart|try-restart) + if [ -f "/var/run/${NAME}.pid" ]; then + stop + start + fi + ;; + reload) + RETVAL="3" + ;; + force-reload) + if [ -f "/var/run/${NAME}.pid" ]; then + stop + start + fi + ;; + status) + if [ -f "/var/run/${NAME}.pid" ]; then +# status ${NAME} +# RETVAL="$?" + read kpid < /var/run/${NAME}.pid + if [ -d "/proc/${kpid}" ]; then + echo "${NAME} (pid ${kpid}) is running..." + RETVAL="0" + fi + else + pid="$(/usr/bin/pgrep -d , -u ${TOMCAT_USER} -G ${TOMCAT_USER} java)" + if [ -z "$pid" ]; then +# status ${NAME} +# RETVAL="$?" + echo "${NAME} is stopped" + RETVAL="3" + else + echo "${NAME} (pid $pid) is running..." + RETVAL="0" + fi + fi + ;; + version) + ${TOMCAT_SCRIPT} version + ;; + *) + echo "Usage: $0 {start|stop|restart|condrestart|try-restart|reload|force-reload|status|version}" + RETVAL="2" +esac + +exit $RETVAL diff --git a/tools-ng/distribution/tomcat7/SOURCES/tomcat7-7.0.logrotate b/tools-ng/distribution/tomcat7/SOURCES/tomcat7-7.0.logrotate new file mode 100644 index 000000000..a87b4c005 --- /dev/null +++ b/tools-ng/distribution/tomcat7/SOURCES/tomcat7-7.0.logrotate @@ -0,0 +1,8 @@ +@@@TCLOG@@@/catalina.out { + copytruncate + weekly + rotate 52 + compress + missingok + create 0644 tomcat tomcat +} diff --git a/tools-ng/distribution/tomcat7/SOURCES/tomcat7-7.0.starter b/tools-ng/distribution/tomcat7/SOURCES/tomcat7-7.0.starter new file mode 100755 index 000000000..f17b20f5b --- /dev/null +++ b/tools-ng/distribution/tomcat7/SOURCES/tomcat7-7.0.starter @@ -0,0 +1,40 @@ +#!/bin/sh +# +# Wrapper script for Tomcat 7.0, to be sure it will allways +# be run with correct user profile (tomcat by default) +# +# derived from stuff in tomcat5.init +# +# Gomez Henri +# Keith Irwin +# Nicolas Mailhot +# +# version 1.01 - Fix webapps dir permissions +# + + +# Get Tomcat config + +TOMCAT_CFG="/etc/tomcat7/tomcat7.conf" + +[ -r "$TOMCAT_CFG" ] && . "${TOMCAT_CFG}" + +export CATALINA_BASE +export CATALINA_HOME + +# Path to the tomcat launch script +TOMCAT_SCRIPT=/usr/sbin/dtomcat7 + +# Tomcat name :) +TOMCAT_PROG=tomcat7 + +# if TOMCAT_USER is not set, use tomcat +if [ -z "$TOMCAT_USER" ]; then + TOMCAT_USER="tomcat" +fi + +RETVAL=0 + +su $TOMCAT_USER -c "$TOMCAT_SCRIPT $@" +RETVAL=$? +exit $RETVAL diff --git a/tools-ng/distribution/tomcat7/SOURCES/tomcat7-7.0.sysconfig b/tools-ng/distribution/tomcat7/SOURCES/tomcat7-7.0.sysconfig new file mode 100644 index 000000000..69cd0a1d5 --- /dev/null +++ b/tools-ng/distribution/tomcat7/SOURCES/tomcat7-7.0.sysconfig @@ -0,0 +1,56 @@ +# Service-specific configuration file for tomcat7. This will be sourced by +# the SysV init script after the global configuration file +# /etc/tomcat7/tomcat7.conf, thus allowing values to be overridden in +# a per-service manner. +# +# NEVER change the init script itself. To change values for all services make +# your changes in /etc/tomcat7/tomcat7.conf +# +# To change values for a specific service make your edits here. +# To create a new service create a link from /etc/init.d/ to +# /etc/init.d/tomcat7 (do not copy the init script) and make a copy of the +# /etc/sysconfig/tomcat7 file to /etc/sysconfig/ and change +# the property values so the two services won't conflict. Register the new +# service in the system as usual (see chkconfig and similars). +# + +# Where your java installation lives +#JAVA_HOME="/usr/lib/jvm/java" + +# Where your tomcat installation lives +#CATALINA_BASE="@@@TCHOME@@@" +#CATALINA_HOME="@@@TCHOME@@@" +#JASPER_HOME="@@@TCHOME@@@" +#CATALINA_TMPDIR="@@@TCTEMP@@@" + +# You can pass some parameters to java here if you wish to +#JAVA_OPTS="-Xminf0.1 -Xmaxf0.3" + +# Use JAVA_OPTS to set java.library.path for libtcnative.so +#JAVA_OPTS="-Djava.library.path=@@@LIBDIR@@@" + +# What user should run tomcat +#TOMCAT_USER="tomcat" + +# You can change your tomcat locale here +#LANG="en_US" + +# Run tomcat under the Java Security Manager +#SECURITY_MANAGER="false" + +# Time to wait in seconds, before killing process +#SHUTDOWN_WAIT="30" + +# Whether to annoy the user with "attempting to shut down" messages or not +#SHUTDOWN_VERBOSE="false" + +# Set the TOMCAT_PID location +#CATALINA_PID="/var/run/tomcat7.pid" + +# Connector port is 8080 for this tomcat7 instance +#CONNECTOR_PORT="8080" + +# If you wish to further customize your tomcat environment, +# put your own definitions here +# (i.e. LD_LIBRARY_PATH for some jdbc drivers) + diff --git a/tools-ng/distribution/tomcat7/SOURCES/tomcat7-7.0.wrapper b/tools-ng/distribution/tomcat7/SOURCES/tomcat7-7.0.wrapper new file mode 100644 index 000000000..24891d499 --- /dev/null +++ b/tools-ng/distribution/tomcat7/SOURCES/tomcat7-7.0.wrapper @@ -0,0 +1,74 @@ +#!/bin/bash + +if [ -r /usr/share/java-utils/java-functions ]; then + . /usr/share/java-utils/java-functions +else + echo "Can't read Java functions library, aborting" + exit 1 +fi + +## Get the tomcat config (use this for environment specific settings) +#if [ -z "${TOMCAT_CFG}" ]; then +# TOMCAT_CFG="/etc/tomcat7/tomcat7.conf" +#fi + +#if [ -r "$TOMCAT_CFG" ]; then +# . $TOMCAT_CFG +#fi + +set_javacmd + +# CLASSPATH munging +if [ -n "$JSSE_HOME" ]; then + CLASSPATH="${CLASSPATH}:$(build-classpath jcert jnet jsse 2>/dev/null)" +fi +CLASSPATH="${CLASSPATH}:${CATALINA_HOME}/bin/bootstrap.jar" +CLASSPATH="${CLASSPATH}:${CATALINA_HOME}/bin/tomcat-juli.jar" +CLASSPATH="${CLASSPATH}:$(build-classpath commons-daemon 2>/dev/null)" + +if [ "$1" = "start" ]; then + ${JAVACMD} $JAVA_OPTS $CATALINA_OPTS \ + -classpath "$CLASSPATH" \ + -Dcatalina.base="$CATALINA_BASE" \ + -Dcatalina.home="$CATALINA_HOME" \ + -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" \ + -Djava.io.tmpdir="$CATALINA_TMPDIR" \ + -Djava.util.logging.config.file="${CATALINA_BASE}/conf/logging.properties" \ + -Djava.util.logging.manager="org.apache.juli.ClassLoaderLogManager" \ + org.apache.catalina.startup.Bootstrap start \ + >> ${CATALINA_BASE}/logs/catalina.out 2>&1 & + if [ ! -z "$CATALINA_PID" ]; then + echo $! > $CATALINA_PID + fi +elif [ "$1" = "start-security" ]; then + ${JAVACMD} $JAVA_OPTS $CATALINA_OPTS \ + -classpath "$CLASSPATH" \ + -Dcatalina.base="$CATALINA_BASE" \ + -Dcatalina.home="$CATALINA_HOME" \ + -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" \ + -Djava.io.tmpdir="$CATALINA_TMPDIR" \ + -Djava.security.manager \ + -Djava.security.policy=="${CATALINA_BASE}/conf/catalina.policy" \ + -Djava.util.logging.config.file="${CATALINA_BASE}/conf/logging.properties" \ + -Djava.util.logging.manager="org.apache.juli.ClassLoaderLogManager" \ + org.apache.catalina.startup.Bootstrap start \ + >> ${CATALINA_BASE}/logs/catalina.out 2>&1 & + if [ ! -z "$CATALINA_PID" ]; then + echo $! > $CATALINA_PID + fi +elif [ "$1" = "stop" ]; then + ${JAVACMD} $JAVA_OPTS \ + -classpath "$CLASSPATH" \ + -Dcatalina.base="$CATALINA_BASE" \ + -Dcatalina.home="$CATALINA_HOME" \ + -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" \ + -Djava.io.tmpdir="$CATALINA_TMPDIR" \ + org.apache.catalina.startup.Bootstrap stop \ + >> ${CATALINA_BASE}/logs/catalina.out 2>&1 +elif [ "$1" = "version" ]; then + ${JAVACMD} -classpath ${CATALINA_HOME}/lib/catalina.jar \ + org.apache.catalina.util.ServerInfo +else + echo "Usage: $0 {start|start-security|stop|version}" + exit 1 +fi diff --git a/tools-ng/distribution/tomcat7/SPECS/tomcat7-ccm.spec b/tools-ng/distribution/tomcat7/SPECS/tomcat7-ccm.spec new file mode 100644 index 000000000..86d0da857 --- /dev/null +++ b/tools-ng/distribution/tomcat7/SPECS/tomcat7-ccm.spec @@ -0,0 +1,355 @@ +# Copyright (c) 2000-2012, JPackage Project +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the +# distribution. +# 3. Neither the name of the JPackage Project nor the names of its +# contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "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 COPYRIGHT +# OWNER OR CONTRIBUTORS 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 rel 4%{?dist} + +###%define section free + +%define major_version 7 +%define minor_version 0 +%define micro_version 37 +%define packdname apache-tomcat-%{major_version}.%{minor_version}.%{micro_version} +%define jspspec 2.2 +%define servletspec 3.0 +%define elspec 2.2 +%define tcuid 91 +#--%global arch noarch + +%define dist .TCbin + +# FHS 2.3 compliant tree structure - http://www.pathname.com/fhs/2.3/ +%define homedir %{_datadir}/%{name} +%define basedir %{_var}/lib/%{name} + +%define appdir %{basedir}/webapps +%define bindir %{_datadir}/%{name}/bin +%define confdir %{_sysconfdir}/%{name} +%define libdir %{_javadir}/%{name} +%define logdir %{_var}/log/%{name} +%define cachedir %{_var}/cache/%{name} +%define tempdir %{cachedir}/temp +%define workdir %{cachedir}/work +%define _initrddir %{_sysconfdir}/init.d + +# Avoid RPM 4.2+'s internal dep generator, it may produce bogus +# Provides/Requires here. +%define _use_internal_dependency_generator 0 + +# This prevents aggressive stripping. +%define debug_package %{nil} + + +Name: tomcat7 +Epoch: 0 +Version: %{major_version}.%{minor_version}.%{micro_version} +Release: 1ccm%{dist} +Summary: Apache Servlet/JSP Engine, RI for Servlet %{servletspec}/JSP %{jspspec} API + +License: ASL 2.0 +URL: http://tomcat.apache.org/ +Source0: apache-tomcat-%{major_version}.%{minor_version}.%{micro_version}.tar.gz +Source1: %{name}-%{major_version}.%{minor_version}.conf +Source2: %{name}-%{major_version}.%{minor_version}.init +Source3: %{name}-%{major_version}.%{minor_version}.sysconfig +Source4: %{name}-%{major_version}.%{minor_version}.wrapper +Source5: %{name}-%{major_version}.%{minor_version}.logrotate +Source6: %{name}-%{major_version}.%{minor_version}-digest.script +Source7: %{name}-%{major_version}.%{minor_version}-tool-wrapper.script +Source8: %{name}-%{major_version}.%{minor_version}.starter + +###Source10 http://apache.mirror.clusters.cc/tomcat/tomcat-7/v%{version}/bin/extras/tomcat-juli.jar + +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root +BuildArch: noarch + +Requires(pre): shadow-utils +Requires(pre): shadow-utils +Requires: java >= 0:1.6.0 +Requires: procps +Requires(post): /sbin/chkconfig +Requires(preun): /sbin/chkconfig +Requires(post): /lib/lsb/init-functions +Requires(preun): /lib/lsb/init-functions +Requires(post): jpackage-utils >= 0:1.7.5 +Requires(postun): jpackage-utils >= 0:1.7.5 + +%description +Tomcat is the servlet container that is used in the official Reference +Implementation for the Java Servlet and JavaServer Pages technologies. +The Java Servlet and JavaServer Pages specifications are developed by +Sun under the Java Community Process. + +Tomcat is developed in an open and participatory environment and +released under the Apache Software License version 2.0. Tomcat is intended +to be a collaboration of the best-of-breed developers from around the world. + +This package distributes the original, unmodified binary Apache Tomcat +distribution in a FHS compliant structure and includes configuration and +helper files to start Tomcat during systems init process. + +# -------------------------------------------------------------------------- + +%package admin-webapps +Summary: The host-manager and manager web applications for Apache Tomcat +Requires: %{name} = %{epoch}:%{version}-%{release} + +%description admin-webapps +The host-manager and manager web applications for Apache Tomcat. + +This package distributes the original, unmodified binary Apache Tomcat +distribution in a FHS compliant structure and includes configuration and +helper files to start Tomcat during systems init process. + +# -------------------------------------------------------------------------- + +%package docs-webapp +Group: System Environment/Applications +Summary: The docs web application for Apache Tomcat +Requires: %{name} = %{epoch}:%{version}-%{release} + +%description docs-webapp +The docs web application for Apache Tomcat. + +This package distributes the original, unmodified binary Apache Tomcat +distribution in a FHS compliant structure and includes configuration and +helper files to start Tomcat during systems init process. + +# -------------------------------------------------------------------------- + +%package webapps +##Group: System Environment/Applications +Summary: The ROOT and examples web applications for Apache Tomcat +Requires: %{name} = %{epoch}:%{version}-%{release} + +%description webapps +The ROOT and examples web applications for Apache Tomcat. + +This package distributes the original, unmodified binary Apache Tomcat +distribution in a FHS compliant structure and includes configuration and +helper files to start Tomcat during systems init process. + +# -------------------------------------------------------------------------- + + + +%prep +###%setup -q -c + +%setup -n %{packdname} +chmod -R go=u-w * +chmod -R u+w * + +# remove pre-built binaries and windows files +find . -type f \( \ + -name "*.bat" -o \ + -name "*.gz" -o \ + -name "*.war" -o \ + -name "*.zip" -o \ + -name "Thumbs.db" \) | xargs -t %{__rm} + +# excluded in order to provice the managers class files +# -name "*.class" -o \ + +### currently nothing to patch +### %patch0 -p0 + + + + +%build +# Nope. + + +%install +%{__rm} -rf $RPM_BUILD_ROOT + +# build initial path structure +%{__install} -d -m 0755 ${RPM_BUILD_ROOT}%{_bindir} +%{__install} -d -m 0755 ${RPM_BUILD_ROOT}%{_sbindir} +%{__install} -d -m 0755 ${RPM_BUILD_ROOT}%{_initrddir} +%{__install} -d -m 0755 ${RPM_BUILD_ROOT}%{_sysconfdir}/logrotate.d +%{__install} -d -m 0755 ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig + +%{__install} -d -m 0755 ${RPM_BUILD_ROOT}%{homedir} +%{__install} -d -m 0755 ${RPM_BUILD_ROOT}%{bindir} +%{__install} -d -m 0755 ${RPM_BUILD_ROOT}%{confdir} +%{__install} -d -m 0755 ${RPM_BUILD_ROOT}%{confdir}/Catalina/localhost +%{__install} -d -m 0755 ${RPM_BUILD_ROOT}%{libdir} +%{__install} -d -m 0755 ${RPM_BUILD_ROOT}%{logdir} +/bin/touch ${RPM_BUILD_ROOT}%{logdir}/catalina.out +%{__install} -d -m 0755 ${RPM_BUILD_ROOT}%{tempdir} +%{__install} -d -m 0755 ${RPM_BUILD_ROOT}%{workdir} + +%{__install} -d -m 0755 ${RPM_BUILD_ROOT}%{webappdir} +%{__install} -d -m 0755 ${RPM_BUILD_ROOT}%{appdir} + +# move things into place +# tomcat stuff first +# pushd %{packdname} + %{__cp} -a $RPM_BUILD_DIR/%{packdname}/LICENSE ${RPM_BUILD_ROOT}/%{homedir}/ + %{__cp} -a $RPM_BUILD_DIR/%{packdname}/NOTICE ${RPM_BUILD_ROOT}/%{homedir}/ + %{__cp} -a $RPM_BUILD_DIR/%{packdname}/RELEASE* ${RPM_BUILD_ROOT}/%{homedir}/ + %{__cp} -a $RPM_BUILD_DIR/%{packdname}/bin/*.{jar,xml} ${RPM_BUILD_ROOT}%{bindir} + %{__cp} -a $RPM_BUILD_DIR/%{packdname}/conf/*.{policy,properties,xml} ${RPM_BUILD_ROOT}%{confdir} + %{__cp} -a $RPM_BUILD_DIR/%{packdname}/lib/*.jar ${RPM_BUILD_ROOT}%{libdir} + %{__cp} -a $RPM_BUILD_DIR/%{packdname}/webapps/* ${RPM_BUILD_ROOT}%{webappdir} +# popd + + +# supporting files for configuration, init etc. +%{__sed} -e "s|\@\@\@TCHOME\@\@\@|%{homedir}|g" \ + -e "s|\@\@\@TCTEMP\@\@\@|%{tempdir}|g" \ + -e "s|\@\@\@LIBDIR\@\@\@|%{_libdir}|g" %{SOURCE1} \ + > ${RPM_BUILD_ROOT}%{confdir}/%{name}.conf +%{__sed} -e "s|\@\@\@TCHOME\@\@\@|%{homedir}|g" \ + -e "s|\@\@\@TCTEMP\@\@\@|%{tempdir}|g" \ + -e "s|\@\@\@LIBDIR\@\@\@|%{_libdir}|g" %{SOURCE3} \ + > ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig/%{name} +%{__install} -m 0644 %{SOURCE2} \ + ${RPM_BUILD_ROOT}%{initrddir}/%{name} +%{__install} -m 0644 %{SOURCE4} \ + ${RPM_BUILD_ROOT}%{_sbindir}/%{name} +%{__ln_s} %{name} ${RPM_BUILD_ROOT}%{_sbindir}/d%{name} +%{__sed} -e "s|\@\@\@TCLOG\@\@\@|%{logdir}|g" %{SOURCE5} \ + > ${RPM_BUILD_ROOT}%{_sysconfdir}/logrotate.d/%{name} +%{__sed} -e "s|\@\@\@TCHOME\@\@\@|%{homedir}|g" \ + -e "s|\@\@\@TCTEMP\@\@\@|%{tempdir}|g" \ + -e "s|\@\@\@LIBDIR\@\@\@|%{_libdir}|g" %{SOURCE6} \ + > ${RPM_BUILD_ROOT}%{_bindir}/%{name}-digest +%{__sed} -e "s|\@\@\@TCHOME\@\@\@|%{homedir}|g" \ + -e "s|\@\@\@TCTEMP\@\@\@|%{tempdir}|g" \ + -e "s|\@\@\@LIBDIR\@\@\@|%{_libdir}|g" %{SOURCE7} \ + > ${RPM_BUILD_ROOT}%{_bindir}/%{name}-tool-wrapper + +# symlink to the FHS locations where we've installed things +pushd ${RPM_BUILD_ROOT}%{homedir} + %{__ln_s} %{confdir} conf + %{__ln_s} %{logdir} logs + %{__ln_s} %{tempdir} temp + %{__ln_s} %{workdir} work + %{__ln_s} %{webappdir} webapps +popd + + + +%pre +# add the tomcat user and group +%{_sbindir}/groupadd -g %{tcuid} -r tomcat 2>/dev/null || : +%{_sbindir}/useradd -c "Apache Tomcat" -u %{tcuid} -g tomcat \ + -s /bin/nologin -r -d %{homedir} tomcat 2>/dev/null || : +## In case user tomcat exists already from a previous tomcat6 install, fix the homedir. +#%{_sbindir}/usermod -d %{homedir} tomcat 2>/dev/null || : + + +%post +# install but don't activate +/sbin/chkconfig --add %{name} + + +%preun +# clean tempdir and workdir on removal or upgrade +%{__rm} -rf %{workdir} %{tempdir} +if [ "$1" = "0" ]; then + %{initrddir}/%{name} stop >/dev/null 2>&1 + /sbin/chkconfig --del %{name} +fi + + +# base package +%files +%defattr(0664,root,tomcat,0775) +# % % doc {LICENSE,NOTICE,RELEASE*} + +# attribute flags for rpm support and config files +%attr(0755,root,root) %{_bindir}/%{name}-digest +%attr(0755,root,root) %{_bindir}/%{name}-tool-wrapper +%attr(0755,root,root) %{_sbindir}/d%{name} +%attr(0755,root,root) %{_sbindir}/%{name} +%attr(0755,root,root) %{initrddir}/%{name} +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/logrotate.d/%{name} +%config(noreplace) %{_sysconfdir}/sysconfig/%{name} + +# attribute flags for basic tomcat directories and config files +%attr(0765,root,tomcat) %dir %{basedir} +%attr(0775,root,tomcat) %dir %{webappdir} +%attr(0775,root,tomcat) %dir %{cachedir} +%attr(0775,root,tomcat) %dir %{tempdir} +%attr(0775,root,tomcat) %dir %{workdir} +# (from sl spec) +%attr(0775,root,tomcat) %dir %{logdir} +%attr(0644,tomcat,tomcat) %{logdir}/catalina.out + +%attr(0775,root,tomcat) %dir %{confdir} +%attr(0775,root,tomcat) %dir %{confdir}/Catalina +%attr(0775,root,tomcat) %dir %{confdir}/Catalina/localhost +%attr(0664,tomcat,tomcat) %config(noreplace) %{confdir}/%{name}.conf +%attr(0664,tomcat,tomcat) %config(noreplace) %{confdir}/*.policy +%attr(0664,tomcat,tomcat) %config(noreplace) %{confdir}/*.properties +%attr(0664,tomcat,tomcat) %config(noreplace) %{confdir}/context.xml +%attr(0664,tomcat,tomcat) %config(noreplace) %{confdir}/server.xml +%attr(0664,tomcat,tomcat) %config(noreplace) %{confdir}/tomcat-users.xml +%attr(0666,tomcat,tomcat) %config(noreplace) %{confdir}/web.xml + +%dir %{homedir} +# specify files to include in package for installation +%{homedir}/LICENSE +%{homedir}/NOTICE +%{homedir}/RELEASE* +%{homedir}/bin +%{homedir}/lib +%{homedir}/temp +%{homedir}/webapps +%{homedir}/work +%{homedir}/logs +%{homedir}/conf + +%files admin-webapps +%defattr(0664,root,tomcat,0775) +%{webappdir}/host-manager +%{webappdir}/manager + +%files docs-webapp +%defattr(-,root,root,-) +%{webappdir}/docs + +%files webapps +%defattr(0664,root,tomcat,0775) +%{webappdir}/ROOT +%{webappdir}/examples + +%changelog +* Sun Jun 21 2014 Peter Boy 0:7.0.53-1 +- Initial release, heavily borrowed from jpp, Scientific Linux, + and CentOS + + + + + + diff --git a/tools-ng/netbeans/project.xml b/tools-ng/netbeans/project.xml index b69bece86..8d6f8b0e9 100644 --- a/tools-ng/netbeans/project.xml +++ b/tools-ng/netbeans/project.xml @@ -15,6 +15,16 @@ . UTF-8 + + + doc_root + runtime/webapps + + + + web_inf + runtime/webapps/WEB-INF + java @@ -51,12 +61,24 @@ ccm-cms-assets-notes/src UTF-8 + + + java + ccm-cms-assets-orgaunittext/src + UTF-8 + java ccm-cms-assets-relatedlink/src UTF-8 + + + java + ccm-cms-personalcontentcomponent/src + UTF-8 + java @@ -142,9 +164,9 @@ UTF-8 - + java - ccm-cms-types-htmlform/src + ccm-cms-types-historicdate/src UTF-8 @@ -237,6 +259,12 @@ ccm-cms-types-simpleaddress/src UTF-8 + + + java + ccm-cms-types-simpleorganization/src + UTF-8 + java @@ -537,6 +565,30 @@ ccm-lbc-wordxml/src UTF-8 + + + java + ccm-sci-assets-publicationsabout/src + UTF-8 + + + + java + ccm-sci-assets-publicationslibrarysignatures/src + UTF-8 + + + + java + ccm-sci-assets-publicationspersons/src + UTF-8 + + + + java + ccm-sci-assets-publicationspublicationtype/src + UTF-8 + java @@ -561,6 +613,36 @@ ccm-sci-publications/src UTF-8 + + + java + ccm-sci-publicationscvsexporter/src + UTF-8 + + + + java + ccm-sci-publicationscvsimporter/src + UTF-8 + + + + java + ccm-sci-publications-dramaticarts/src + UTF-8 + + + + java + ccm-sci-publicationsexportlinks/src + UTF-8 + + + + java + ccm-sci-publications-researchreport/src + UTF-8 + java @@ -585,16 +667,6 @@ ccm-sci-types-project/src UTF-8 - - - doc_root - runtime/webapps - - - - web_inf - runtime/webapps/WEB-INF - @@ -662,10 +734,18 @@ ccm-cms-assets-notes/src + + + ccm-cms-assets-orgaunittext/src + ccm-cms-assets-relatedlink/src + + + ccm-cms-personalcontentcomponent/src + ccm-cms-publicpersonalprofile/src @@ -723,8 +803,8 @@ ccm-cms-types-healthCareFacility/src - - ccm-cms-types-htmlform/src + + ccm-cms-types-historicdate/src @@ -786,6 +866,10 @@ ccm-cms-types-simpleaddress/src + + + ccm-cms-types-simpleorganisation/src + ccm-cms-types-siteproxy/src @@ -946,6 +1030,10 @@ ccm-ldn-types-contact/src + + + ccm-ldn-types-councillor/src + ccm-ldn-types-esdservice/src @@ -986,6 +1074,22 @@ ccm-lbc-wordxml/src + + + ccm-sci-assets-publicationsabout/src + + + + ccm-sci-assets-publicationslibrarysignatures/src + + + + ccm-sci-assets-publicationspersons/src + + + + ccm-sci-assets-publicationspublicationtype/src + ccm-sci-bundle/src @@ -1002,6 +1106,26 @@ ccm-sci-publications/src + + + ccm-sci-cvsexporter/src + + + + ccm-sci-publicationscvsimporter/src + + + + ccm-sci-publications-dramaticarts/src + + + + ccm-sci-publicationsexportlinks/src + + + + ccm-sci-publications-researchreport/src + ccm-sci-types-department/src @@ -1043,7 +1167,9 @@ ccm-cms-assets-fileattachment/src ccm-cms-assets-imagestep/src ccm-cms-assets-notes/src + ccm-cms-assets-orgaunittext/src ccm-cms-assets-relatedlink/src + ccm-cms-personalcontentcomponent/src ccm-cms-publicpersonalprofile/src ccm-cms-types-address/src ccm-cms-types-agenda/src @@ -1059,7 +1185,7 @@ ccm-cms-types-formsectionitem/src ccm-cms-types-glossaryitem/src ccm-cms-types-healthCareFacility/src - ccm-cms-types-htmlform/src + ccm-cms-types-historicdate/src ccm-cms-types-image/src ccm-cms-types-inlinesite/src ccm-cms-types-job/src @@ -1075,6 +1201,7 @@ ccm-cms-types-researchnetwork/src ccm-cms-types-service/src ccm-cms-types-simpleaddress/src + ccm-cms-types-simpleorganisation/src ccm-cms-types-siteproxy/src ccm-cms-types-survey/src ccm-cms-types-xmlfeed/src @@ -1107,6 +1234,7 @@ ccm-webpage/src ccm-ldn-aplaws/src ccm-ldn-atoz/src + ccm-ldn-atoz-siteproxy/src ccm-ldn-dublin/src ccm-ldn-exporter/src ccm-ldn-freeform/src @@ -1114,6 +1242,7 @@ ccm-ldn-search/src ccm-ldn-terms/src ccm-ldn-types-contact/src + ccm-ldn-types-councillor/src ccm-ldn-types-esdservice/src ccm-ldn-userpreferences/src ccm-ldn-util/src @@ -1124,15 +1253,24 @@ ccm-lbc-foi/src ccm-lbc-retention/src ccm-lbc-wordxml/src + ccm-sci-assets-publicationsabout/src + ccm-sci-assets-publicationslibrarysignatures/src + ccm-sci-assets-publicationspersons/src + ccm-sci-assets-publicationspublicationtype/src ccm-sci-bundle/src ccm-sci-personalprojects/src ccm-sci-personalpublications/src ccm-sci-publications/src + ccm-sci-publicationscsvexporter/src + ccm-sci-publicationscsvimporter/src + ccm-sci-publications-dramaticarts/src + ccm-sci-publicationsexportlinks/src + ccm-sci-publications-researchreport/src ccm-sci-types-department/src ccm-sci-types-institute/src ccm-sci-types-member/src ccm-sci-types-project/src - ccm-core/lib/log4j.jar:ccm-core/lib/mail.jar:ccm-core/lib/commons-beanutils.jar:ccm-core/lib/commons-cli-1.0.jar:ccm-core/lib/commons-collections-3.0.jar:ccm-core/lib/commons-codec-1.3.jar:ccm-core/lib/commons-fileupload-1.1.1.jar:ccm-core/lib/commons-io-1.3.1.jar:ccm-core/lib/commons-lang-2.1.jar:ccm-core/lib/commons-primitives-1.0.jar:ccm-core/lib/xercesImpl.jar:ccm-core/lib/jakarta-oro-2.0.8.jar:ccm-core/lib/Tidy.jar:ccm-core/lib/imgscalr-lib-4.3-SNAPSHOT.jar:ccm-core/lib/jdom.jar:ccm-core/lib/jdxslt.jar:ccm-core/lib/lucene-core-2.4.0.jar:ccm-core/lib/saxon.jar:ccm-core/lib/poi-2.5-final-20040302.jar:ccm-core/lib/pdfbox-1.4.0.jar:ccm-core/lib/tm-extractors-0.4.jar:ccm-core/lib/bcprov-jdk16-144.jar:ccm-cms/lib/jai_codec.jar:ccm-cms/lib/jai_core.jar:ccm-cms/lib/mlibwrapper_jai.jar:ccm-ldn-search/lib/axis.jar:ccm-ldn-search/lib/jaxrpc.jar:ccm-ldn-search/lib/jobo.jar:ccm-ldn-terms/lib/commons-digester.jar:ccm-ldn-terms/lib/jena.jar:ccm-ldn-terms/lib/snowball.jar:ccm-ldn-terms/lib/weka-3.5.5.jar:ccm-ldn-terms/lib/xstream-1.3.1.jar:ccm-formbuilder-pdf/lib/fop.jar:ccm-sci-publications/lib/jbibtex-1.0.2.jar:tools-ng/devel/lib/ojdbc14.jar:tools-ng/devel/lib/postgresql-jdbc.jar:tools-ng/devel/lib/servlet-api.jar:tools-ng/devel/lib/jsp-api.jar + ccm-core/lib/log4j.jar:ccm-core/lib/mail.jar:ccm-core/lib/commons-beanutils.jar:ccm-core/lib/commons-cli-1.0.jar:ccm-core/lib/commons-collections-3.0.jar:ccm-core/lib/commons-codec-1.3.jar:ccm-core/lib/commons-fileupload-1.1.1.jar:ccm-core/lib/commons-io-1.3.1.jar:ccm-core/lib/commons-lang-2.1.jar:ccm-core/lib/commons-primitives-1.0.jar:ccm-core/lib/xercesImpl.jar:ccm-core/lib/jakarta-oro-2.0.8.jar:ccm-core/lib/Tidy.jar:ccm-core/lib/imgscalr-lib-4.3-SNAPSHOT.jar:ccm-core/lib/jdom.jar:ccm-core/lib/jdxslt.jar:ccm-core/lib/lucene-core-2.4.0.jar:ccm-core/lib/saxon.jar:ccm-core/lib/poi-2.5-final-20040302.jar:ccm-core/lib/pdfbox-1.4.0.jar:ccm-core/lib/tm-extractors-0.4.jar:ccm-core/lib/bcprov-jdk16-144.jar:ccm-cms/lib/jai_codec.jar:ccm-cms/lib/jai_core.jar:ccm-cms/lib/mlibwrapper_jai.jar:ccm-ldn-search/lib/axis.jar:ccm-ldn-search/lib/jaxrpc.jar:ccm-ldn-search/lib/jobo.jar:ccm-ldn-terms/lib/commons-digester.jar:ccm-ldn-terms/lib/jena.jar:ccm-ldn-terms/lib/snowball.jar:ccm-ldn-terms/lib/weka-3.5.5.jar:ccm-ldn-terms/lib/xstream-1.3.1.jar:ccm-formbuilder-pdf/lib/fop.jar:ccm-sci-publications/lib/jbibtex-1.0.2.jar:tools-ng/devel/lib/ojdbc14.jar:tools-ng/devel/lib/servlet-api.jar:tools-ng/devel/lib/jsp-api.jar:tools-ng/devel/lib/portlet-2.0.jar 1.6