diff --git a/ccm-cms/src/com/arsdigita/cms/AssociationCopier.java b/ccm-cms/src/com/arsdigita/cms/AssociationCopier.java deleted file mode 100644 index 8a432bc4b..000000000 --- a/ccm-cms/src/com/arsdigita/cms/AssociationCopier.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.arsdigita.cms; - -import com.arsdigita.persistence.metadata.Property; - -/** - * - * @author Jens Pelzetter - * @version $Id$ - */ -public interface AssociationCopier { - - /** - *
- * Return the property which is handled by this implementation. Format: - *
- *- * {@code $type::$property} - *
- *- * Where {@code $type} is the fully qualified name of the class/type owing - * the property and {@code property} is the name the property. Example - *
- *- * {@code com.arsdigita.cms.contenttypes.GenericPerson::publications} - *
- *- * This indicates that the implementation handles a property - * {@code publications} added to the {@code GenericPerson} type by some - * module via an PDL association. - *
- * - * @return - */ - String forProperty(); - - boolean copyProperty(CustomCopy source, Property property, ItemCopier copier); -} diff --git a/ccm-cms/src/com/arsdigita/cms/AssociationCopierLoader.java b/ccm-cms/src/com/arsdigita/cms/AssociationCopierLoader.java deleted file mode 100644 index 8c9297cb1..000000000 --- a/ccm-cms/src/com/arsdigita/cms/AssociationCopierLoader.java +++ /dev/null @@ -1,77 +0,0 @@ -package com.arsdigita.cms; - -import com.arsdigita.persistence.metadata.Property; -import java.util.HashMap; -import java.util.Map; -import org.apache.log4j.Logger; - -/** - * - * @author Jens Pelzetter - * @version $Id$ - */ -public final class AssociationCopierLoader { - - private static final AssociationCopierLoader INSTANCE = - new AssociationCopierLoader(); - private static final Logger logger = - Logger.getLogger(AssociationCopierLoader.class); - private MapContentSectionConfig record; it cannot be null
+ * @return The
+ * ContentSectionConfig record; it cannot be null
*/
public static synchronized CMSConfig getInstance() {
if (s_config == null) {
@@ -115,13 +98,13 @@ public final class CMSConfig extends AbstractConfig {
}
/**
* Storage (map) for method getAssetStepsToSkip(ContentType type) to store
- * mapping of steps that are deemed irrelevant for the passid in type.
+ * mapping of steps that are deemed irrelevant for the passid in type.
*/
private static Map s_skipAssetSteps = null;
/**
- * Item category add form speciofies Subclass of ItemCategoryForm
- * to use for the assign categories step.
- * Used in c.ad.cms.ui.authoring.ItemCategoryStep
+ * Item category add form speciofies Subclass of ItemCategoryForm to use for
+ * the assign categories step. Used in
+ * c.ad.cms.ui.authoring.ItemCategoryStep
*/
private final Parameter m_categoryAuthoringAddForm =
new SpecificClassParameter(
@@ -130,8 +113,8 @@ public final class CMSConfig extends AbstractConfig {
ItemCategoryForm.class,
SimpleComponent.class);
/**
- * Path for the default item template. Path is relative to the
- * Template Root path.
+ * Path for the default item template. Path is relative to the Template Root
+ * path.
*/
private final Parameter m_defaultItemTemplatePath =
new StringParameter(
@@ -139,8 +122,8 @@ public final class CMSConfig extends AbstractConfig {
Parameter.REQUIRED,
"/default/item.jsp");
/**
- * Path for the default folder template. Path is relative to the
- * Template Root path.
+ * Path for the default folder template. Path is relative to the Template
+ * Root path.
*/
private final Parameter m_defaultFolderTemplatePath =
new StringParameter(
@@ -148,17 +131,17 @@ public final class CMSConfig extends AbstractConfig {
Parameter.REQUIRED,
"/default/folder.jsp");
/**
- * Path or the root folter for template folders.
- * Path is relative to webapp root.
+ * Path or the root folter for template folders. Path is relative to webapp
+ * root.
*/
private final Parameter m_templateRootPath =
- new StringParameter("com.arsdigita.cms.template_root_path",
- Parameter.REQUIRED,
- "/templates/ccm-cms/content-section");
+ new StringParameter(
+ "com.arsdigita.cms.template_root_path",
+ Parameter.REQUIRED,
+ "/templates/ccm-cms/content-section");
// up to version 6.6.4
// "/packages/content-section/templates");
-
- // URL resource: protocol handler removal: START
+ // URL resource: protocol handler removal: START
// remove:
// try {
// m_itemAdapters = new URLParameter
@@ -174,22 +157,22 @@ public final class CMSConfig extends AbstractConfig {
* specifications. Path is relative to webapp root.
*/
private final Parameter m_itemAdapters =
- new ResourceParameter("com.arsdigita.cms.item_adapters",
- Parameter.REQUIRED,
- "/WEB-INF/resources/cms-item-adapters.xml");
+ new ResourceParameter(
+ "com.arsdigita.cms.item_adapters",
+ Parameter.REQUIRED,
+ "/WEB-INF/resources/cms-item-adapters.xml");
// URL resource: protocol handler removal: END
/**
- * Use streamlined content creation: upon item creation,
- * automatically open authoring steps and forward to the next step
+ * Use streamlined content creation: upon item creation, automatically open
+ * authoring steps and forward to the next step
*/
private final Parameter m_useStreamlinedCreation = new BooleanParameter(
"com.arsdigita.cms.use_streamlined_creation",
Parameter.REQUIRED,
- new Boolean(
- true));
+ Boolean.TRUE);
/**
- * DHTML Editor Configuration for use in CMS module, lists the
- * config object name and Javascript source location for its definition.
+ * DHTML Editor Configuration for use in CMS module, lists the config object
+ * name and Javascript source location for its definition.
*/
private final Parameter m_dhtmlEditorConfig =
new DHTMLEditorConfigParameter(
@@ -208,16 +191,16 @@ public final class CMSConfig extends AbstractConfig {
// be accessable by other modules which use DHTMLeditor.
// Would be bad style to configure a cms specific parameter in core.
/**
- * Defines which plugins to use, e.g.TableOperations,CSS
- * Format: [string,string,string]
+ * Defines which plugins to use, e.g.TableOperations,CSS Format:
+ * [string,string,string]
*/
private final Parameter m_dhtmlEditorPlugins = new StringArrayParameter(
"com.arsdigita.cms.dhtml_editor_plugins",
Parameter.OPTIONAL,
null);
/**
- * Prevent undesirable functions from being made available,
- * eg images should only be added through the cms methods.
+ * Prevent undesirable functions from being made available, eg images should
+ * only be added through the cms methods.
*/
private final Parameter m_dhtmlEditorHiddenButtons =
new StringArrayParameter(
@@ -230,65 +213,57 @@ public final class CMSConfig extends AbstractConfig {
private final Parameter m_hideAdminTabs = new BooleanParameter(
"com.arsdigita.cms.hide_admin_tabs",
Parameter.REQUIRED,
- new Boolean(
- false));
+ Boolean.FALSE);
/**
* Hide Folder Index Checkbox from folder view
*/
private final Parameter m_hideFolderIndexCheckbox = new BooleanParameter(
"com.arsdigita.cms.hide_folder_index_checkbox",
Parameter.REQUIRED,
- new Boolean(
- false));
+ Boolean.FALSE);
/**
* Hide launch date parameter on all forms and displays where it's used.
*/
private final Parameter m_hideLaunchDate = new BooleanParameter(
"com.arsdigita.cms.hide_launch_date",
Parameter.REQUIRED,
- new Boolean(
- true));
+ Boolean.TRUE);
/**
* Require the launch date parameter to be set by the content author.
*/
private final Parameter m_requireLaunchDate = new BooleanParameter(
"com.arsdigita.cms.require_launch_date",
Parameter.REQUIRED,
- new Boolean(
- false));
+ Boolean.FALSE);
/**
* Hide the templates tab on the item admin page.
*/
private final Parameter m_hideTemplatesTab = new BooleanParameter(
"com.arsdigita.cms.hide_templates_tab",
Parameter.REQUIRED,
- new Boolean(
- false));
+ Boolean.FALSE);
/**
* Hide the upload file link in the editing of a text asset.
*/
private final Parameter m_hideTextAssetUploadFile = new BooleanParameter(
"com.arsdigita.cms.hide_text_asset_upload_file",
Parameter.REQUIRED,
- new Boolean(
- false));
+ Boolean.FALSE);
/**
- * Hide timezone labels (if, for example, all users will be in the
- * same timezone and such information would be unnecessary)
+ * Hide timezone labels (if, for example, all users will be in the same
+ * timezone and such information would be unnecessary)
*/
private final Parameter m_hideTimezone = new BooleanParameter(
"com.arsdigita.cms.hide_timezone",
Parameter.REQUIRED,
- new Boolean(
- false));
+ Boolean.FALSE);
/**
* Hide User Defined Content Types UI
*/
private final Parameter m_hideUDCTUI = new BooleanParameter(
"com.arsdigita.cms.hide_udct_ui",
Parameter.REQUIRED,
- new Boolean(
- false));
+ Boolean.FALSE);
/**
* Specifies the name of the class to use as a PublishLifecycleListener
*/
@@ -298,14 +273,13 @@ public final class CMSConfig extends AbstractConfig {
Parameter.OPTIONAL,
PublishLifecycleListener.class.getName());
/**
- * Wether the Wysiwyg editor should clear the text of MSWord tags,
- * everytime the user clicks on 'Save'
+ * Wether the Wysiwyg editor should clear the text of MSWord tags, everytime
+ * the user clicks on 'Save'
*/
private final Parameter m_saveTextCleansWordTags = new BooleanParameter(
"com.arsdigita.cms.save_text_cleans_word_tags",
Parameter.OPTIONAL,
- new Boolean(
- false));
+ Boolean.FALSE);
/**
* Hide Additional Resource Fields on RelatedLinkPropertyForm
*/
@@ -314,60 +288,55 @@ public final class CMSConfig extends AbstractConfig {
"com.arsdigita.cms.contentassets.ui."
+ "RelatedLinkPropertyForm.hideAdditionalResourceFields",
Parameter.REQUIRED,
- new Boolean(false));
+ Boolean.FALSE);
/**
- * Get the search indexing not to process FileAssets,
- * eg to avoid PDF slowdowns
+ * Get the search indexing not to process FileAssets, eg to avoid PDF
+ * slowdowns
*/
private final Parameter m_disableFileAssetExtraction = new BooleanParameter(
"com.arsdigita.cms.search.disableFileAssetExtraction",
Parameter.REQUIRED,
- new Boolean(
- false));
+ Boolean.FALSE);
/**
- * Whether an item's workflow should be deleted, once the item
- * has been (re)published
+ * Whether an item's workflow should be deleted, once the item has been
+ * (re)published
*/
private final Parameter m_deleteWorkflowAfterPublication =
new BooleanParameter(
"com.arsdigita.cms.delete_workflow_after_publication",
Parameter.REQUIRED,
- new Boolean(true));
+ Boolean.TRUE);
/**
- * Defines the number of days ahead that are covered in the
- * 'Soon Expired' tab
+ * Defines the number of days ahead that are covered in the 'Soon Expired'
+ * tab
*/
private final Parameter m_soonExpiredTimespanDays = new IntegerParameter(
"com.arsdigita.cms.soon_expired_timespan_days",
Parameter.REQUIRED,
- new Integer(
- 14));
+ new Integer(14));
/**
- * Defines the number of months ahead that are covered in the
- * 'Soon Expired' tab
+ * Defines the number of months ahead that are covered in the 'Soon Expired'
+ * tab
*/
private final Parameter m_soonExpiredTimespanMonths = new IntegerParameter(
"com.arsdigita.cms.soon_expired_timespan_months",
Parameter.REQUIRED,
- new Integer(
- 1));
+ new Integer(1));
/**
* Does a redirect to the unpublished item generate not found error?
*/
private final Parameter m_unpublishedNotFound = new BooleanParameter(
"com.arsdigita.cms.unpublished_not_found",
Parameter.REQUIRED,
- new Boolean(
- true));
+ Boolean.TRUE);
/**
- * Links created through browse interfaces should only be within the
- * same subsite
+ * Links created through browse interfaces should only be within the same
+ * subsite
*/
private final Parameter m_linksOnlyInSameSubsite = new BooleanParameter(
"com.arsdigita.cms.browse_links_in_same_subsite_only",
Parameter.REQUIRED,
- new Boolean(
- false));
+ Boolean.FALSE);
/**
* Item category step extension hook: Subclass of ItemCategoryExtension
* which adds extension actions for the category authoring step
@@ -385,10 +354,10 @@ public final class CMSConfig extends AbstractConfig {
private final Parameter m_hideResetLifecycleLink = new BooleanParameter(
"com.arsdigita.cms.hide_reset_lifecycle_link",
Parameter.OPTIONAL,
- new Boolean(
- true));
+ Boolean.TRUE);
/**
- * Whether to include INPATH operators to contains clause in intermedia search
+ * Whether to include INPATH operators to contains clause in intermedia
+ * search
*/
private final Parameter m_scoreTitleAndKeywords =
new BooleanParameter(
@@ -396,8 +365,8 @@ public final class CMSConfig extends AbstractConfig {
Parameter.OPTIONAL,
Boolean.FALSE);
/**
- * Title Weight, the relative weight given to title element within
- * cms:item when ranking search results (only used by interMedia)
+ * Title Weight, the relative weight given to title element within cms:item
+ * when ranking search results (only used by interMedia)
*/
private final Parameter m_titleWeight = new IntegerParameter(
"com.arsdigita.cms.search.intermedia.title_weight",
@@ -405,8 +374,8 @@ public final class CMSConfig extends AbstractConfig {
new Integer(1));
/**
* Keyword Weight, the relative weight given to the dcKeywords element
- * within dublinCore element within cms:item element when ranking
- * search results (only used by interMedia)
+ * within dublinCore element within cms:item element when ranking search
+ * results (only used by interMedia)
*/
private final Parameter m_keywordWeight =
new IntegerParameter(
@@ -423,26 +392,24 @@ public final class CMSConfig extends AbstractConfig {
Boolean.TRUE);
/**
* Asset steps to skip, specify asset steps that are not relevant for
- * specific content types.
- * Each entry in the list is a : separated pair. The first string
- * is the className for the type (refer to classname column in contenttypes
- * table eg com.arsdigita.cms.contenttypes.MultiPartArticle
- * Second string is the name of the bebop step component
- * eg com.arsdigita.cms.contenttypes.ui.ImageStep
+ * specific content types. Each entry in the list is a : separated pair. The
+ * first string is the className for the type (refer to classname column in
+ * contenttypes table eg com.arsdigita.cms.contenttypes.MultiPartArticle
+ * Second string is the name of the bebop step component eg
+ * com.arsdigita.cms.contenttypes.ui.ImageStep
*/
private final Parameter m_skipAssetSteps = new StringArrayParameter(
"com.arsdigita.cms.skip_asset_steps",
Parameter.OPTIONAL,
null);
/**
- * Mandatory Descriptions Content types may refer to this to decide
- * whether to validate against empty descriptions
+ * Mandatory Descriptions Content types may refer to this to decide whether
+ * to validate against empty descriptions
*/
private final Parameter m_mandatoryDescriptions = new BooleanParameter(
"com.arsdigita.cms.mandatory_descriptions",
Parameter.OPTIONAL,
- new Boolean(
- false));
+ Boolean.FALSE);
/**
* Delete Finished Lifecycles. Decide whether lifecycles and their phases
* should be deleted from the system when finished.
@@ -451,56 +418,50 @@ public final class CMSConfig extends AbstractConfig {
new BooleanParameter(
"com.arsdigita.cms.delete_lifecycle_when_complete",
Parameter.OPTIONAL,
- new Boolean(false));
+ Boolean.FALSE);
/**
- * Contacts for content items. Allows you to add a Contact authoring step
- * to all items
+ * Contacts for content items. Allows you to add a Contact authoring step to
+ * all items
*/
private final Parameter m_hasContactsAuthoringStep = new BooleanParameter(
"com.arsdigita.cms.has_contacts_authoring_step",
Parameter.REQUIRED,
- new Boolean(
- false));
+ Boolean.FALSE);
/**
- * Ordering for nodes in assign category tree. Decide whether entries
- * should be ordered alphabetically or according to sort key
- * (maintained in category admin tab in content centre)
- * SortKey|Alphabetical is initialized in constructor! See below.
+ * Ordering for nodes in assign category tree. Decide whether entries should
+ * be ordered alphabetically or according to sort key (maintained in
+ * category admin tab in content centre) SortKey|Alphabetical is initialized
+ * in constructor! See below.
*/
private final Parameter m_categoryTreeOrdering =
- new EnumerationParameter(
- "com.arsdigita.cms.category_tree_order",
- Parameter.OPTIONAL,
- Category.SORT_KEY);
-
+ new EnumerationParameter(
+ "com.arsdigita.cms.category_tree_order",
+ Parameter.OPTIONAL,
+ Category.SORT_KEY);
/**
- * Allow content creation in Workspace (content center) section listing.
- * Allows you to turn off the ability to create content in the section listing
+ * Allow content creation in Workspace (content center) section listing.
+ * Allows you to turn off the ability to create content in the section
+ * listing
*/
private final Parameter m_allowContentCreateInSectionListing =
- new BooleanParameter(
- "com.arsdigita.cms.allow_content_create_in_section_listing",
- Parameter.REQUIRED,
- new Boolean(true));
-
+ new BooleanParameter(
+ "com.arsdigita.cms.allow_content_create_in_section_listing",
+ Parameter.REQUIRED,
+ Boolean.TRUE);
/**
* Hide the legacy public site link in Workspace (content center) section
* listing. Legacy public site display is replaced by navigation based
- * presentation (or by portlets) and should be hidden in the admin ui
- * be default now.
+ * presentation (or by portlets) and should be hidden in the admin ui be
+ * default now.
*/
private final Parameter m_hideLegacyPublicSiteLink =
- new BooleanParameter(
- "com.arsdigita.cms.hide_legacy_public_site_link",
- Parameter.REQUIRED,
- new Boolean(true));
-
-
+ new BooleanParameter(
+ "com.arsdigita.cms.hide_legacy_public_site_link",
+ Parameter.REQUIRED,
+ Boolean.TRUE);
// ///////////////////////////////////////////
// Notification related parameters
// ///////////////////////////////////////////
-
-
/**
* Delete Sent Workflow Notifications. Decide whether successfully sent
* notifications and messages should be deleted from the system
@@ -509,34 +470,32 @@ public final class CMSConfig extends AbstractConfig {
new BooleanParameter(
"com.arsdigita.cms.delete_workflow_notification_when_sent",
Parameter.OPTIONAL,
- new Boolean(false));
+ Boolean.FALSE);
/**
- * Decide whether successfully sent notifications and messages
- * should be deleted from the system
+ * Decide whether successfully sent notifications and messages should be
+ * deleted from the system
*/
private final Parameter m_deleteExpiryNotificationsWhenSent =
new BooleanParameter(
"com.arsdigita.cms.delete_expiry_notification_when_sent",
Parameter.OPTIONAL,
- new Boolean(false));
+ Boolean.FALSE);
/**
- * Amount of time (in hours) before the expiration of a content item
- * that users in the Alert Recipient role are alerted via email
+ * Amount of time (in hours) before the expiration of a content item that
+ * users in the Alert Recipient role are alerted via email
*/
private final Parameter m_defaultNotificationTime = new IntegerParameter(
"com.arsdigita.cms.default_notification_time",
Parameter.REQUIRED,
- new Integer(
- 0));
+ new Integer(0));
/**
- * Wether a content item's author should be notified
- * by the item's LifecycleListener; defaults to true
+ * Wether a content item's author should be notified by the item's
+ * LifecycleListener; defaults to true
*/
private final Parameter m_notifyAuthorOnLifecycle = new BooleanParameter(
"com.arsdigita.cms.notify_author_on_lifecycle",
Parameter.OPTIONAL,
- new Boolean(
- true));
+ Boolean.TRUE);
// ////////////////////////////////////////////////////
// Content Center (Workspace) config related parameters
// ////////////////////////////////////////////////////
@@ -607,7 +566,6 @@ public final class CMSConfig extends AbstractConfig {
"com.arsdigita.cms.lifecycle.use_old_style_item_lifecycle_item_pane",
Parameter.REQUIRED,
false);
-
////////////////////////////////////////////////
//Actives threaded publishing. If active, the publish process for
//content items will run in a separate thread. May useful if you have
@@ -620,14 +578,14 @@ public final class CMSConfig extends AbstractConfig {
"com.arsdigita.cms.lifecycle.threaded_publishing",
Parameter.REQUIRED,
true);
-
- /**
- * Copiers for associations not known yet. For example for associations
- * with the generic types defined in this module from another module.
- */
- private final Parameter m_assocCopiers = new StringArrayParameter("com.arsdigita.cms.publish.association_copiers",
- Parameter.REQUIRED,
- new String[]{});
+ private final Parameter m_publishingFailureSender = new StringParameter(
+ "cms.arsdigita.cms.lifecycle.threaded_publishing.notify_on_error.from",
+ Parameter.REQUIRED,
+ "");
+ private final Parameter m_publishingFailureReceiver = new StringParameter(
+ "cms.arsdigita.cms.lifecycle.threaded_publishing.notify_on_error.to",
+ Parameter.REQUIRED,
+ "");
// ///////////////////////////////////////////
// publishToFile package related parameter
@@ -639,7 +597,8 @@ public final class CMSConfig extends AbstractConfig {
* Constructor, but do NOT instantiate this class directly.
*
* @see ContentSection#getConfig()
- **/
+ *
+ */
public CMSConfig() {
// Initialize m_categoryTreeOrdering parameter here!
@@ -712,7 +671,9 @@ public final class CMSConfig extends AbstractConfig {
register(m_useOldStyleItemLifecycleItemPane);
register(m_threadPublishing);
- register(m_assocCopiers);
+ register(m_publishingFailureSender);
+ register(m_publishingFailureReceiver);
+
// publishToFile package related parameter
// Moved to publishToFile.PublishToFileConfig as of version 6.0.2
@@ -723,8 +684,8 @@ public final class CMSConfig extends AbstractConfig {
}
/**
- * Retrieve path of the root folter for template folders.
- * Path is relative to webapp root.
+ * Retrieve path of the root folter for template folders. Path is relative
+ * to webapp root.
*/
public final String getTemplateRoot() {
return (String) get(m_templateRootPath);
@@ -763,9 +724,9 @@ public final class CMSConfig extends AbstractConfig {
}
/**
- *
- * @deprecated
- * use com.arsdigita.cms.ContentSection.getDefaultSection().getName() instead
+ *
+ * @deprecated use
+ * com.arsdigita.cms.ContentSection.getDefaultSection().getName() instead
*/
public final String getDefaultContentSection() {
// return (String) get(m_defaultSection);
@@ -880,8 +841,9 @@ public final class CMSConfig extends AbstractConfig {
}
/**
- * Fetch the file name contaning XML Mapping of the content center tabs
- * to URLs
+ * Fetch the file name contaning XML Mapping of the content center tabs to
+ * URLs
+ *
* @return String containig file name including path component.
*/
public String getContentCenterMap() {
@@ -889,17 +851,16 @@ public final class CMSConfig extends AbstractConfig {
}
/**
- * Internal class representing a DHTMLEditor configuration parameter. It
+ * Internal class representing a DHTMLEditor configuration parameter. It
* creates a new DHMTLEditor Config object (internal class in DHTMLEditor).
- *
+ *
* XXX Method unmarshal is broken and currently does not work correctly. It
- * does not process default values provided by using
+ * does not process default values provided by using
* DHTMLEditor.Config.Standard (see parameter m_dhtmlEditorConfig above).
* May be a similiar problem as with ResourceParameter and default value,
- * see patch provided by pbrucha.
- * Best solution may be to remove this special parameter class and use a
- * string parameter instead to directly create a DHTMLEditor.Config object.
- * (pboy, 2010-09-02)
+ * see patch provided by pbrucha. Best solution may be to remove this
+ * special parameter class and use a string parameter instead to directly
+ * create a DHTMLEditor.Config object. (pboy, 2010-09-02)
*/
private class DHTMLEditorConfigParameter extends StringParameter {
@@ -911,6 +872,7 @@ public final class CMSConfig extends AbstractConfig {
/**
* WARNING: Does not correctly process default values, see above!
+ *
* @param value
* @param errors
* @return
@@ -922,7 +884,9 @@ public final class CMSConfig extends AbstractConfig {
}
protected static HashMap extraXMLGenerators = new HashMap();
- /** Add one ExtraXMLGenerator to the list. */
+ /**
+ * Add one ExtraXMLGenerator to the list.
+ */
public static void registerExtraXMLGenerator(String type,
ExtraXMLGenerator gen) {
List gens = (List) extraXMLGenerators.get(type);
@@ -936,7 +900,9 @@ public final class CMSConfig extends AbstractConfig {
gens.add(gen.getClass()); // XXX assumes default ctor
}
- /** Get the iterator of ExtraXMLGenerators. */
+ /**
+ * Get the iterator of ExtraXMLGenerators.
+ */
public static Iterator getExtraXMLGeneratorsIterator() {
return extraXMLGenerators.entrySet().iterator();
}
@@ -946,11 +912,11 @@ public final class CMSConfig extends AbstractConfig {
}
/**
- * The relative weight given to the dcKeywords element
- * within dublinCore element within cms:item element
- * when ranking search results
- * Only used by the interMedia query engine.
- **/
+ * The relative weight given to the dcKeywords element within dublinCore
+ * element within cms:item element when ranking search results Only used by
+ * the interMedia query engine.
+ *
+ */
public Integer getKeywordSearchWeight() {
return (Integer) get(m_keywordWeight);
}
@@ -960,18 +926,20 @@ public final class CMSConfig extends AbstractConfig {
}
/**
- * The relative weight given to title element
- * within cms:item element when ranking search results
- * Only used by the interMedia query engine.
- **/
+ * The relative weight given to title element within cms:item element when
+ * ranking search results Only used by the interMedia query engine.
+ *
+ */
public Integer getTitleSearchWeight() {
return (Integer) get(m_titleWeight);
}
/**
- * Whether to include INPATH operators to contains clause in intermedia search
+ * Whether to include INPATH operators to contains clause in intermedia
+ * search
*
- * NB - if true, INDEX MUST BE CREATED WITH PATH_SECTION_GROUP - upgrade 6.5.0 - 6.5.1
+ * NB - if true, INDEX MUST BE CREATED WITH PATH_SECTION_GROUP - upgrade
+ * 6.5.0 - 6.5.1
*
* @return
*/
@@ -980,14 +948,14 @@ public final class CMSConfig extends AbstractConfig {
}
/**
- * for the given content type, returns a collection of
- * steps that are deemed irrelevant for the type.
- *
+ * for the given content type, returns a collection of steps that are deemed
+ * irrelevant for the type.
+ *
* If no irrelevant steps, an empty set is returned.
- *
- * Steps are the names of the bebop step components that
- * are used by the authoring kit wizard
- *
+ *
+ * Steps are the names of the bebop step components that are used by the
+ * authoring kit wizard
+ *
* @param type
* @return
*/
@@ -1031,8 +999,8 @@ public final class CMSConfig extends AbstractConfig {
}
/**
- * May be used by any content type creation form to decide whether to validate
- * description field
+ * May be used by any content type creation form to decide whether to
+ * validate description field
*
*/
public boolean mandatoryDescriptions() {
@@ -1040,9 +1008,9 @@ public final class CMSConfig extends AbstractConfig {
}
/**
- * Used to decide whether lifecycles (and all asociated phases)
- * should be deleted from the system when complete
- *
+ * Used to decide whether lifecycles (and all asociated phases) should be
+ * deleted from the system when complete
+ *
* (Deleting lifecycle means that you lose a bit of historical information
* eg when was this item unpublished)
*/
@@ -1051,26 +1019,24 @@ public final class CMSConfig extends AbstractConfig {
}
/**
- * Used to decide whether to delete old notification records
- * for expiry notifications.
- *
- * If true, notifications and messages are deleted if the
- * notification is successfully sent. Any send failures are
- * retained
- *
+ * Used to decide whether to delete old notification records for expiry
+ * notifications.
+ *
+ * If true, notifications and messages are deleted if the notification is
+ * successfully sent. Any send failures are retained
+ *
*/
public boolean deleteExpiryNotifications() {
return ((Boolean) get(m_deleteExpiryNotificationsWhenSent)).booleanValue();
}
/**
- * Used to decide whether to delete old notification records
- * for workflow notifications.
- *
- * If true, notifications and messages are deleted if the
- * notification is successfully sent. Any send failures are
- * retained
- *
+ * Used to decide whether to delete old notification records for workflow
+ * notifications.
+ *
+ * If true, notifications and messages are deleted if the notification is
+ * successfully sent. Any send failures are retained
+ *
*/
public boolean deleteWorkflowNotifications() {
return ((Boolean) get(m_deleteWorkflowNotificationsWhenSent)).
@@ -1083,11 +1049,11 @@ public final class CMSConfig extends AbstractConfig {
/**
* I'am not sure for what this method is. I found it here when I tried
- * figure out how add multiple parts to an ContentType, like ccm-cms-types-contact
- * and the Multipart article do. I think this method should not be here because
- * it is only needed by one specific contenttype. Because of this, I think that
- * this method and the contact are violating many rules of modern software design.
- * Jens Pelzetter, 2009-06-02.
+ * figure out how add multiple parts to an ContentType, like
+ * ccm-cms-types-contact and the Multipart article do. I think this method
+ * should not be here because it is only needed by one specific contenttype.
+ * Because of this, I think that this method and the contact are violating
+ * many rules of modern software design. Jens Pelzetter, 2009-06-02.
*
* @return
*/
@@ -1105,8 +1071,8 @@ public final class CMSConfig extends AbstractConfig {
}
/**
- * Hide the (no longer used) legacy public site link in Workspace
- * (content center) section listing, true by default.
+ * Hide the (no longer used) legacy public site link in Workspace (content
+ * center) section listing, true by default.
*/
public final boolean getHideLegacyPublicSiteLink() {
return ((Boolean) get(m_hideLegacyPublicSiteLink)).booleanValue();
@@ -1131,8 +1097,12 @@ public final class CMSConfig extends AbstractConfig {
public Boolean getThreadedPublishing() {
return (Boolean) get(m_threadPublishing);
}
-
- public String[] getAssocCopiers() {
- return (String[]) get(m_assocCopiers);
+
+ public String getPublicationFailureSender() {
+ return (String) get(m_publishingFailureSender);
+ }
+
+ public String getPublicationFailureReceiver() {
+ return (String) get(m_publishingFailureReceiver);
}
}
diff --git a/ccm-cms/src/com/arsdigita/cms/CMSConfig_parameter.properties b/ccm-cms/src/com/arsdigita/cms/CMSConfig_parameter.properties
index ebcb1fc06..8c4471064 100755
--- a/ccm-cms/src/com/arsdigita/cms/CMSConfig_parameter.properties
+++ b/ccm-cms/src/com/arsdigita/cms/CMSConfig_parameter.properties
@@ -259,6 +259,17 @@ com.arsdigita.cms.lifecycle.threaded_publishing.purpose = Decides if publishing
com.arsdigita.cms.lifecycle.threaded_publishing.example = false
com.arsdigita.cms.lifecycle.threaded_com.arsdigita.cms.lifecycle.threaded_publishingpublishing.format = [Boolean]
+cms.arsdigita.cms.lifecycle.threaded_publishing.notify_on_error.from.title = Publishing failed notification sender
+cms.arsdigita.cms.lifecycle.threaded_publishing.notify_on_error.from.purpose = Sender e-mail address for notificiation on error while publishing
+cms.arsdigita.cms.lifecycle.threaded_publishing.notify_on_error.from.example = webmaster@example.org
+cms.arsdigita.cms.lifecycle.threaded_publishing.notify_on_error.from.format = [String]
+
+cms.arsdigita.cms.lifecycle.threaded_publishing.notify_on_error.to.title = Publishing failed notification receiver
+cms.arsdigita.cms.lifecycle.threaded_publishing.notify_on_error.to.purpose = email address to send failure notifications to
+cms.arsdigita.cms.lifecycle.threaded_publishing.notify_on_error.to.example = webmaster@example.org
+cms.arsdigita.cms.lifecycle.threaded_publishing.notify_on_error.to.format = [String]
+
+
com.arsdigita.cms.xx.title=
com.arsdigita.cms.xx.purpose=
com.arsdigita.cms.xx.example=
diff --git a/ccm-cms/src/com/arsdigita/cms/ui/lifecycle/ItemLifecycleSelectForm.java b/ccm-cms/src/com/arsdigita/cms/ui/lifecycle/ItemLifecycleSelectForm.java
index 10e394c7f..8517d861a 100755
--- a/ccm-cms/src/com/arsdigita/cms/ui/lifecycle/ItemLifecycleSelectForm.java
+++ b/ccm-cms/src/com/arsdigita/cms/ui/lifecycle/ItemLifecycleSelectForm.java
@@ -18,17 +18,6 @@
*/
package com.arsdigita.cms.ui.lifecycle;
-import java.math.BigDecimal;
-import java.math.BigInteger;
-import java.util.Calendar;
-import java.util.Iterator;
-import java.util.TimeZone;
-import java.util.TooManyListenersException;
-
-import javax.servlet.http.HttpServletRequest;
-
-import org.apache.log4j.Logger;
-
import com.arsdigita.bebop.BoxPanel;
import com.arsdigita.bebop.FormProcessException;
import com.arsdigita.bebop.Label;
@@ -81,6 +70,14 @@ import com.arsdigita.workflow.simple.Engine;
import com.arsdigita.workflow.simple.TaskException;
import com.arsdigita.workflow.simple.Workflow;
import com.arsdigita.workflow.simple.WorkflowTemplate;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.util.Calendar;
+import java.util.Iterator;
+import java.util.TimeZone;
+import java.util.TooManyListenersException;
+import javax.servlet.http.HttpServletRequest;
+import org.apache.log4j.Logger;
/**
* A form to select and apply a lifecycle to a content item.
@@ -393,7 +390,7 @@ class ItemLifecycleSelectForm extends BaseForm { thread.setUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() { public void uncaughtException(final Thread thread, - final Throwable ex) { + final Throwable ex) { PublishLock.getInstance().setError(item); s_log.error(String.format( "An error occurred while " diff --git a/ccm-sci-publications/src/com/arsdigita/cms/contenttypes/PublicationBundle.java b/ccm-sci-publications/src/com/arsdigita/cms/contenttypes/PublicationBundle.java index a03957b33..0766c7121 100644 --- a/ccm-sci-publications/src/com/arsdigita/cms/contenttypes/PublicationBundle.java +++ b/ccm-sci-publications/src/com/arsdigita/cms/contenttypes/PublicationBundle.java @@ -1,6 +1,5 @@ package com.arsdigita.cms.contenttypes; -import com.arsdigita.cms.AssociationCopier; import com.arsdigita.cms.ContentBundle; import com.arsdigita.cms.ContentItem; import com.arsdigita.cms.CustomCopy;