4.4. Unsupported Use Cases

There are a few use cases which are possible to generate in the object model but are currently unsupported by the publishing infrastructure.

  1. Non-component associations to components of the top-level item: Internal associations among components of a content item can not be reliably published because there is no direct mapping of a top-level item to all of its direct and indirect components. An example of this situation would be a direct association from, say "Paragraph 1" to "Paragraph 5", if paragraphs are separate components of an article.

    If the publishing system could reliably know that the association from one paragraph to the other was within the set of components of an item being published, the right thing to do would be to associate the new pending paragraphs with each other. However, if this fact is not recognized, then this association may be copied by reference, which would result in one live paragraph pointing to another draft paragraph.

  2. Link attributes in associations from items or components to other top-level items, resulting in PublishedLink: Associations to other top-level content items are not created at publish time. Instead creation is deferred, and the necessary metadata is stored in a PublishedLink object until the item becomes live. If this deferred association contains any link attributes, these will not be recreated when the item goes live. To add link attribute support here would require deferred object creation as well as deferred association creation, as the internal object created to support link attributes can itself be arbitrarily complex.

  3. Required associations to other top-level content items: For any association whose creation is deferred via the PublishedLink infrastructure, the [1..1] multiplicity is not allowed. The persistence layer does not allow creation of the pending item without setting these associations, which would prevent deferred association creation.

  4. Components which do not extend ACSObject: The Publishing API only requires that components are instances of DomainObject. However, the current implementation imposes this additional restriction. In future releases, this restriction may be removed.