CCM NG: ContentItemManager now passes all tests

git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@4313 8810af33-2d31-482b-a856-94f89814c4df
pull/2/head
jensp 2016-09-22 18:52:23 +00:00
parent 9485722dc0
commit ae27dbe0cc
5 changed files with 876 additions and 20 deletions

View File

@ -705,13 +705,41 @@ public class ContentItemManager {
* @param item
*/
@Transactional(Transactional.TxType.REQUIRED)
public void unpublish(final ContentItem item
) {
public void unpublish(final ContentItem item) {
if (item == null) {
throw new IllegalArgumentException(
"The item to unpublish can't be null");
}
LOGGER.debug("Unpublishing item {}...", item.getItemUuid());
final Optional<ContentItem> liveItem = getLiveVersion(
item, ContentItem.class);
if (!liveItem.isPresent()) {
LOGGER.info("ContentItem {} has no live version.",
item.getItemUuid());
return;
}
final List<Category> categories = liveItem
.get()
.getCategories()
.stream()
.map(categorization -> categorization.getCategory())
.collect(Collectors.toList());
categories.forEach(category -> {
try {
categoryManager.removeObjectFromCategory(liveItem.get(),
category);
} catch (ObjectNotAssignedToCategoryException ex) {
throw new RuntimeException(ex);
}
});
if (liveItem.isPresent()) {
entityManager.remove(liveItem);
entityManager.remove(liveItem.get());
}
}
@ -727,7 +755,7 @@ public class ContentItemManager {
public boolean isLive(final ContentItem item) {
final TypedQuery<Boolean> query = entityManager.createNamedQuery(
"ContentItem.hasLiveVersion", Boolean.class);
query.setParameter("uuid", item.getUuid());
query.setParameter("uuid", item.getItemUuid());
return query.getSingleResult();
}
@ -744,16 +772,31 @@ public class ContentItemManager {
* version is returned. If there is no live version an empty
* {@link Optional} is returned.
*/
@SuppressWarnings({"unchecked"})
public <T extends ContentItem> Optional<T> getLiveVersion(
final ContentItem item,
final Class<T> type) {
if (!ContentItem.class.isAssignableFrom(type)) {
throw new IllegalArgumentException(String.format(
"The provided type \"%s\" does match the type of the provided "
+ "item (\"%s\").",
type.getName(),
item.getClass().getName()));
}
if (isLive(item)) {
final TypedQuery<T> query = entityManager.createNamedQuery(
"ContentItem.findLiveVersion", type);
query.setParameter("uuid", item.getUuid());
final TypedQuery<ContentItem> query = entityManager
.createNamedQuery(
"ContentItem.findLiveVersion", ContentItem.class);
query.setParameter("uuid", item.getItemUuid());
return Optional.of(query.getSingleResult());
final ContentItem result = query.getSingleResult();
if (type.isAssignableFrom(result.getClass())) {
return Optional.of((T) result);
} else {
return Optional.empty();
}
} else {
return Optional.empty();
}
@ -801,7 +844,7 @@ public class ContentItemManager {
final TypedQuery<ContentItem> query = entityManager.createNamedQuery(
"ContentItem.findDraftVersion", ContentItem.class);
query.setParameter("uuid", item.getUuid());
query.setParameter("uuid", item.getItemUuid());
return (T) query.getSingleResult();
}

View File

@ -711,7 +711,7 @@ public class ContentItemManagerTest {
public void publishItemNull() {
itemManager.publish(null);
}
@Test(expected = IllegalArgumentException.class)
@InSequence(5500)
@UsingDataSet("datasets/org/librecms/contentsection/"
@ -721,15 +721,167 @@ public class ContentItemManagerTest {
@ShouldThrowException(IllegalArgumentException.class)
public void publishItemLifecycleNull() {
final Optional<ContentItem> draft = itemRepo.findById(-10200L);
itemManager.publish(draft.get(), null);
}
// unpublish item
// unpublish non live
// unpublish item null
// isLive
// isDraft
// getLiveVersion
@Test
@InSequence(6000)
@UsingDataSet("datasets/org/librecms/contentsection/"
+ "ContentItemManagerTest/data.xml")
@ShouldMatchDataSet(
value = "datasets/org/librecms/contentsection/"
+ "ContentItemManagerTest/after-unpublish.xml",
excludeColumns = {"categorization_id",
"id",
"lifecycle_id",
"object_id",
"object_order",
"phase_id",
"rev",
"revend",
"task_id",
"timestamp",
"uuid",
"workflow_id"})
public void unpublishItem() {
final Optional<ContentItem> item = itemRepo.findById(-10200L);
assertThat(item.isPresent(), is(true));
itemManager.unpublish(item.get());
}
@Test
@InSequence(6100)
@UsingDataSet("datasets/org/librecms/contentsection/"
+ "ContentItemManagerTest/data.xml")
@ShouldMatchDataSet("datasets/org/librecms/contentsection/"
+ "ContentItemManagerTest/data.xml")
public void unpublishNonLiveItem() {
final Optional<ContentItem> item = itemRepo.findById(-10300L);
assertThat(item.isPresent(), is(true));
itemManager.unpublish(item.get());
}
@Test(expected = IllegalArgumentException.class)
@InSequence(6200)
@UsingDataSet("datasets/org/librecms/contentsection/"
+ "ContentItemManagerTest/data.xml")
@ShouldMatchDataSet("datasets/org/librecms/contentsection/"
+ "ContentItemManagerTest/data.xml")
@ShouldThrowException(IllegalArgumentException.class)
public void unpublishItemNull() {
itemManager.unpublish(null);
}
@Test
@InSequence(7000)
@UsingDataSet("datasets/org/librecms/contentsection/"
+ "ContentItemManagerTest/data.xml")
@ShouldMatchDataSet("datasets/org/librecms/contentsection/"
+ "ContentItemManagerTest/data.xml")
public void isLive() {
final Optional<ContentItem> item1 = itemRepo.findById(-10100L);
final Optional<ContentItem> item2 = itemRepo.findById(-10200L);
final Optional<ContentItem> item3 = itemRepo.findById(-10300L);
final Optional<ContentItem> item4 = itemRepo.findById(-10400L);
assertThat(item1.isPresent(), is(true));
assertThat(item2.isPresent(), is(true));
assertThat(item3.isPresent(), is(true));
assertThat(item4.isPresent(), is(true));
assertThat(itemManager.isLive(item1.get()), is(false));
assertThat(itemManager.isLive(item2.get()), is(true));
assertThat(itemManager.isLive(item3.get()), is(false));
assertThat(itemManager.isLive(item4.get()), is(false));
}
@Test
@InSequence(8000)
@UsingDataSet("datasets/org/librecms/contentsection/"
+ "ContentItemManagerTest/data.xml")
@ShouldMatchDataSet("datasets/org/librecms/contentsection/"
+ "ContentItemManagerTest/data.xml")
public void getLiveVersion() {
final Optional<ContentItem> draft1 = itemRepo.findById(-10100L);
final Optional<ContentItem> draft2 = itemRepo.findById(-10200L);
final Optional<ContentItem> draft3 = itemRepo.findById(-10300L);
final Optional<ContentItem> draft4 = itemRepo.findById(-10400L);
final Optional<ContentItem> live2 = itemRepo.findById(-99200L);
assertThat(itemManager.getLiveVersion(draft1.get(),
ContentItem.class).isPresent(),
is(false));
final Optional<Article> liveVersion = itemManager.getLiveVersion(
draft2.get(), Article.class);
assertThat(liveVersion.isPresent(),
is(true));
assertThat(liveVersion.get().getObjectId(),
is(-99200L));
assertThat(liveVersion.get().getItemUuid(),
is(equalTo("acae860f-2ffa-450d-b486-054292f0dae6")));
assertThat(liveVersion.get().getVersion(),
is(ContentItemVersion.LIVE));
assertThat(itemManager.getLiveVersion(draft3.get(),
ContentItem.class).isPresent(),
is(false));
assertThat(itemManager.getLiveVersion(draft4.get(),
ContentItem.class).isPresent(),
is(false));
final Optional<ContentItem> fromLive = itemManager.getLiveVersion(
live2.get(), ContentItem.class);
assertThat(fromLive.isPresent(),
is(true));
assertThat(fromLive.get().getObjectId(),
is(-99200L));
assertThat(fromLive.get().getItemUuid(),
is(equalTo("acae860f-2ffa-450d-b486-054292f0dae6")));
assertThat(fromLive.get().getVersion(),
is(ContentItemVersion.LIVE));
}
@Test
@InSequence(8100)
@UsingDataSet("datasets/org/librecms/contentsection/"
+ "ContentItemManagerTest/data.xml")
@ShouldMatchDataSet("datasets/org/librecms/contentsection/"
+ "ContentItemManagerTest/data.xml")
// getDraftVersion
public void getDraftVersion() {
final Optional<ContentItem> draft1 = itemRepo.findById(-10100L);
final Optional<ContentItem> draft2 = itemRepo.findById(-10200L);
final Optional<ContentItem> draft3 = itemRepo.findById(-10300L);
final Optional<ContentItem> draft4 = itemRepo.findById(-10400L);
assertThat(itemManager.getDraftVersion(draft1.get(),
ContentItem.class).getObjectId(),
is(-10100L));
assertThat(itemManager.getDraftVersion(draft2.get(),
ContentItem.class).getObjectId(),
is(-10200L));
assertThat(itemManager.getDraftVersion(draft3.get(),
ContentItem.class).getObjectId(),
is(-10300L));
assertThat(itemManager.getDraftVersion(draft4.get(),
ContentItem.class).getObjectId(),
is(-10400L));
final Optional<ContentItem> live2 = itemRepo.findById(-99200L);
final ContentItem draftVersion = itemManager.getDraftVersion(
live2.get(), ContentItem.class);
assertThat(draftVersion, is(not(nullValue())));
assertThat(draftVersion.getObjectId(), is(-10200L));
assertThat(draftVersion.getItemUuid(),
is(equalTo("acae860f-2ffa-450d-b486-054292f0dae6")));
assertThat(draftVersion.getVersion(),
is(ContentItemVersion.DRAFT));
}
}

View File

@ -59,7 +59,8 @@ public class DatasetsTest extends DatasetsVerifier {
"/datasets/org/librecms/contentsection/ContentItemManagerTest/after-copy-to-other-folder.xml",
"/datasets/org/librecms/contentsection/ContentItemManagerTest/after-copy-to-same-folder.xml",
"/datasets/org/librecms/contentsection/ContentItemManagerTest/after-publish.xml",
"/datasets/org/librecms/contentsection/ContentItemManagerTest/after-republish.xml"});
"/datasets/org/librecms/contentsection/ContentItemManagerTest/after-republish.xml",
"/datasets/org/librecms/contentsection/ContentItemManagerTest/after-unpublish.xml"});
}
public DatasetsTest(final String datasetPath) {

View File

@ -32,9 +32,9 @@
<property name="qualifiedTableNames">true</property>
</extension>
<!--<extension qualifier="persistence-script">
<extension qualifier="persistence-script">
<property name="scriptsToExecuteAfterTest">scripts/h2-cleanup.sql</property>
</extension>-->
</extension>
</arquillian>

View File

@ -0,0 +1,660 @@
<?xml version="1.0" encoding="utf-8"?>
<dataset>
<ccm_core.workflows workflow_id="-100" />
<ccm_core.workflows workflow_id="-110" />
<ccm_core.workflow_names workflow_id="-100"
locale="en"
localized_value="Standard workflow" />
<ccm_core.workflow_names workflow_id="-110"
locale="en"
localized_value="Fast workflow" />
<ccm_core.workflow_templates workflow_id="-100" />
<ccm_core.workflow_templates workflow_id="-110" />
<ccm_core.workflow_tasks task_id="-100100"
active="false"
task_state="waiting"
workflow_id="-100" />
<ccm_core.workflow_tasks task_id="-100200"
active="false"
task_state="waiting"
workflow_id="-100" />
<ccm_core.workflow_tasks task_id="-110100"
active="false"
task_state="waiting"
workflow_id="-110" />
<ccm_core.workflow_task_labels task_id="-100100"
localized_value="Task 1.1"
locale="en" />
<ccm_core.workflow_task_labels task_id="-100200"
localized_value="Task 1.2"
locale="en" />
<ccm_core.workflow_task_labels task_id="-110100"
localized_value="Task 2.1"
locale="en" />
<ccm_core.workflow_user_tasks task_id="-100100"
duration_minutes="0"
locked="false" />
<ccm_core.workflow_user_tasks task_id="-100200"
duration_minutes="0"
locked="false" />
<ccm_core.workflow_user_tasks task_id="-110100"
duration_minutes="0"
locked="false" />
<ccm_cms.lifecyle_definitions lifecycle_definition_id="-200" />
<ccm_cms.lifecyle_definitions lifecycle_definition_id="-210" />
<ccm_cms.lifecycle_definition_labels object_id="-200"
localized_value="Default lifecycle"
locale="en" />
<ccm_cms.lifecycle_definition_labels object_id="-210"
localized_value="Alternate lifecycle"
locale="en" />
<ccm_cms.lifecycle_phase_definitions phase_definition_id="-200100"
lifecycle_definition_id="-200"
default_delay="0"
default_duration="0" />
<ccm_cms.lifecycle_phase_definitions phase_definition_id="-200200"
lifecycle_definition_id="-200"
default_delay="0"
default_duration="0" />
<ccm_cms.lifecycle_phase_definitions phase_definition_id="-210100"
lifecycle_definition_id="-210"
default_delay="0"
default_duration="0" />
<ccm_cms.lifecycle_phase_definition_labels object_id="-200100"
localized_value="Phase 1"
locale="en" />
<ccm_cms.lifecycle_phase_definition_labels object_id="-200200"
localized_value="Phase 2"
locale="en" />
<ccm_cms.lifecycle_phase_definition_labels object_id="-210100"
localized_value="The only phase"
locale="en" />
<ccm_core.ccm_revisions id="0"
timestamp="1451602800" />
<ccm_core.ccm_revisions id="1"
timestamp="1451602800" />
<ccm_core.ccm_objects object_id="-1100"
display_name="info"
uuid="963bcae7-3aeb-4b62-891c-e16c4defa1f2" />
<ccm_core.ccm_objects object_id="-2100"
display_name="info_root"
uuid="82014239-9c06-486d-ae8c-4ae47f52a699" />
<ccm_core.ccm_objects object_id="-2110"
display_name="folder1"
uuid="c634c1c3-41b7-4773-bb2e-5b6cd14492a3" />
<ccm_core.ccm_objects object_id="-2120"
display_name="folder2"
uuid="3b2a3a92-cdea-4fe3-b364-401eb3fb0ffc" />
<ccm_core.ccm_objects object_id="-2200"
display_name="info_assets"
uuid="b163f73c-9ac2-44d7-a037-de621f5ca828" />
<ccm_core.ccm_objects object_id="-10100"
display_name="article1"
uuid="aed4b402-1180-46c6-b42d-7245f4dca248" />
<ccm_core.ccm_objects object_id="-10300"
display_name="article3"
uuid="f4b38abb-234b-4354-bc92-e36c068a1ebd" />
<ccm_core.ccm_objects object_id="-10200"
display_name="article2"
uuid="acae860f-2ffa-450d-b486-054292f0dae6" />
<ccm_core.ccm_objects object_id="-10400"
display_name="news1"
uuid="d9ea527d-c6e3-4bdd-962d-c0a1a80c6c72" />
<ccm_core.ccm_objects object_id="-20100"
display_name="org.librecms.contenttypes.Article"
uuid="2c8ec2fb-319d-4d44-9698-697c08b2b941" />
<ccm_core.ccm_objects object_id="-20200"
display_name="org.librecms.contenttypes.News"
uuid="47740f22-f89f-4ec3-90cf-d62859e53c7e" />
<ccm_core.ccm_objects_aud object_id="-10100"
rev="0"
revtype="0"
display_name="article1" />
<ccm_core.ccm_objects_aud object_id="-10200"
rev="0"
revtype="0"
display_name="article2" />
<ccm_core.ccm_objects_aud object_id="-99200"
rev="0"
revtype="0"
display_name="article2" />
<ccm_core.ccm_objects_aud object_id="-10300"
rev="0"
revtype="0"
display_name="article3" />
<ccm_core.ccm_objects_aud object_id="-10400"
rev="0"
revtype="0"
display_name="news1" />
<ccm_core.ccm_objects_aud object_id="-99200"
rev="1"
revtype="2" />
<ccm_core.categories object_id="-2100"
unique_id="82014239-9c06-486d-ae8c-4ae47f52a699"
name="info_root"
enabled="true"
visible="true"
abstract_category="false"
category_order="1" />
<ccm_core.categories object_id="-2110"
unique_id="c634c1c3-41b7-4773-bb2e-5b6cd14492a3"
parent_category_id="-2100"
name="folder1"
enabled="true"
visible="true"
abstract_category="false"
category_order="1" />
<ccm_core.categories object_id="-2120"
unique_id="3b2a3a92-cdea-4fe3-b364-401eb3fb0ffc"
parent_category_id="-2100"
name="folder2"
enabled="true"
visible="true"
abstract_category="false"
category_order="2" />
<ccm_core.categories object_id="-2200"
unique_id="b163f73c-9ac2-44d7-a037-de621f5ca828"
name="info_assets"
enabled="true"
visible="true"
abstract_category="false"
category_order="1" />
<ccm_core.category_titles object_id="-2100"
locale="en"
localized_value="info_root" />
<ccm_core.category_titles object_id="-2200"
locale="en"
localized_value="info_assets" />
<ccm_core.resources object_id="-1100"
created="2016-07-15" />
<ccm_core.resource_titles object_id="-1100"
locale="en"
localized_value="info" />
<ccm_core.applications object_id="-1100"
application_type="org.librecms.contentsection.ContentSection"
primary_url="info" />
<ccm_cms.content_sections object_id="-1100"
label="info"
root_documents_folder_id="-2100"
root_assets_folder_id="-2200" />
<ccm_cms.content_section_workflow_templates
content_section_id="-1100"
workflow_template_id="-100" />
<ccm_cms.content_section_workflow_templates
content_section_id="-1100"
workflow_template_id="-110" />
<ccm_cms.content_section_lifecycle_definitions
content_section_id="-1100"
lifecycle_definition_id="-200" />
<ccm_cms.content_section_lifecycle_definitions
content_section_id="-1100"
lifecycle_definition_id="-210" />
<ccm_cms.content_types object_id="-20100"
content_item_class="org.librecms.contenttypes.Article"
content_section_id="-1100"
default_workflow="-100"
default_lifecycle_id="-200" />
<ccm_cms.content_types object_id="-20200"
content_item_class="org.librecms.contenttypes.News"
content_section_id="-1100"
default_workflow="-100"
default_lifecycle_id="-200" />
<ccm_cms.content_items object_id="-10100"
item_uuid="aed4b402-1180-46c6-b42d-7245f4dca248"
version="DRAFT"
content_type_id="-20100" />
<ccm_cms.content_items object_id="-10200"
item_uuid="acae860f-2ffa-450d-b486-054292f0dae6"
version="DRAFT"
content_type_id="-20100" />
<ccm_cms.content_items object_id="-10300"
item_uuid="f4b38abb-234b-4354-bc92-e36c068a1ebd"
version="DRAFT"
content_type_id="-20100" />
<ccm_cms.content_items object_id="-10400"
item_uuid="d9ea527d-c6e3-4bdd-962d-c0a1a80c6c72"
version="DRAFT"
content_type_id="-20200" />
<ccm_cms.content_items_aud object_id="-10100"
rev="0"
item_uuid="aed4b402-1180-46c6-b42d-7245f4dca248"
version="DRAFT"
content_type_id="-20100" />
<ccm_cms.content_items_aud object_id="-10200"
rev="0"
item_uuid="acae860f-2ffa-450d-b486-054292f0dae6"
version="DRAFT"
content_type_id="-20100"/>
<ccm_cms.content_items_aud object_id="-99200"
rev="0"
item_uuid="acae860f-2ffa-450d-b486-054292f0dae6"
version="DRAFT"
content_type_id="-20100"/>
<ccm_cms.content_items_aud object_id="-10300"
rev="0"
item_uuid="f4b38abb-234b-4354-bc92-e36c068a1ebd"
version="DRAFT"
content_type_id="-20100"/>
<ccm_cms.content_items_aud object_id="-10400"
rev="0"
item_uuid="d9ea527d-c6e3-4bdd-962d-c0a1a80c6c72"
version="DRAFT"
content_type_id="-20200"/>
<ccm_cms.content_items_aud object_id="-99200"
rev="1" />
<ccm_cms.content_item_names object_id="-10100"
locale="en"
localized_value="article1" />
<ccm_cms.content_item_names object_id="-10200"
locale="en"
localized_value="article2" />
<ccm_cms.content_item_names object_id="-10300"
locale="en"
localized_value="article3" />
<ccm_cms.content_item_names object_id="-10400"
locale="en"
localized_value="news1" />
<ccm_cms.content_item_names_aud rev="0"
object_id="-10100"
localized_value="article1"
locale="en"
revtype="0" />
<ccm_cms.content_item_names_aud rev="0"
object_id="-10200"
localized_value="article2"
locale="en"
revtype="0" />
<ccm_cms.content_item_names_aud rev="0"
object_id="-99200"
localized_value="article2"
locale="en"
revtype="0" />
<ccm_cms.content_item_names_aud rev="0"
object_id="-10300"
localized_value="article3"
locale="en"
revtype="0" />
<ccm_cms.content_item_names_aud rev="0"
object_id="-10400"
localized_value="news1"
locale="en"
revtype="0" />
<ccm_cms.content_item_names_aud rev="1"
object_id="-99200"
localized_value="article2"
locale="en"
revtype="2" />
<ccm_cms.content_item_titles object_id="-10100"
locale="en"
localized_value="Article 1" />
<ccm_cms.content_item_titles object_id="-10200"
locale="en"
localized_value="Article 2 Title" />
<ccm_cms.content_item_titles object_id="-10300"
locale="en"
localized_value="Article 3" />
<ccm_cms.content_item_titles object_id="-10400"
locale="en"
localized_value="News 1" />
<ccm_cms.content_item_titles_aud rev="0"
object_id="-10100"
localized_value="Article 1"
locale="en"
revtype="0" />
<ccm_cms.content_item_titles_aud rev="0"
object_id="-10200"
localized_value="Article 2"
locale="en"
revtype="0" />
<ccm_cms.content_item_titles_aud rev="0"
object_id="-99200"
localized_value="Article 2 Title"
locale="en"
revtype="0" />
<ccm_cms.content_item_titles_aud rev="0"
object_id="-10300"
localized_value="Article 3"
locale="en"
revtype="0" />
<ccm_cms.content_item_titles_aud rev="0"
object_id="-10400"
localized_value="News 1"
locale="en"
revtype="0" />
<ccm_cms.content_item_titles_aud rev="1"
object_id="-99200"
localized_value="Article 2"
locale="en"
revtype="2" />
<ccm_cms.content_type_labels object_id="-20100"
locale="en"
localized_value="Article" />
<ccm_cms.content_type_labels object_id="-20200"
locale="en"
localized_value="News" />
<ccm_cms.articles object_id="-10100" />
<ccm_cms.articles object_id="-10200" />
<ccm_cms.articles object_id="-10300" />
<ccm_cms.article_texts
object_id="-10100"
locale="en"
localized_value="Quisque varius turpis et nibh rhoncus consequat. In sapien metus, fermentum quis." />
<ccm_cms.article_texts
object_id="-10200"
locale="en"
localized_value="Duis quis tincidunt elit. In pharetra justo sit amet ipsum dictum, at." />
<ccm_cms.article_texts
object_id="-10300"
locale="en"
localized_value="Etiam euismod lacus laoreet sodales ultricies. Pellentesque non elit vitae purus sagittis." />
<ccm_cms.article_texts_aud
rev="0"
object_id="-10100"
localized_value="Quisque varius turpis et nibh rhoncus consequat. In sapien metus, fermentum quis."
locale="en"
revtype="0" />
<ccm_cms.article_texts_aud
rev="0"
object_id="-10200"
localized_value="Duis quis tincidunt elit. In pharetra justo sit amet ipsum dictum, at."
locale="en"
revtype="0" />
<ccm_cms.article_texts_aud
rev="0"
object_id="-99200"
localized_value="Duis quis tincidunt elit. In pharetra justo sit amet ipsum dictum, at."
locale="en"
revtype="0" />
<ccm_cms.article_texts_aud
rev="0"
object_id="-10300"
localized_value="Etiam euismod lacus laoreet sodales ultricies. Pellentesque non elit vitae purus sagittis."
locale="en"
revtype="0" />
<ccm_cms.article_texts_aud
rev="1"
object_id="-99200"
localized_value="Duis quis tincidunt elit. In pharetra justo sit amet ipsum dictum, at."
locale="en"
revtype="2" />
<ccm_cms.news object_id="-10400"
news_date="2016-08-08"
homepage="false" />
<ccm_cms.news_texts
object_id="-10400"
locale="en"
localized_value="Curabitur vel sapien eu eros gravida bibendum vitae." />
<ccm_core.categorizations categorization_id="-30100"
category_id="-2110"
object_id="-10100"
category_order="1"
object_order="1"
category_index="false"
type="folder" />
<ccm_core.categorizations categorization_id="-30200"
category_id="-2100"
object_id="-10200"
category_order="1"
object_order="2"
category_index="false"
type="folder" />
<ccm_core.categorizations categorization_id="-30300"
category_id="-2100"
object_id="-10300"
category_order="1"
object_order="3"
category_index="false"
type="folder" />
<ccm_core.categorizations categorization_id="-30400"
category_id="-2100"
object_id="-10400"
category_order="1"
object_order="4"
category_index="false"
type="folder" />
<ccm_core.ccm_roles role_id="-3100"
name="info_alert_recipient" />
<ccm_core.ccm_roles role_id="-3200"
name="info_author" />
<ccm_core.ccm_roles role_id="-3300"
name="info_editor" />
<ccm_core.ccm_roles role_id="-3400"
name="info_manager" />
<ccm_core.ccm_roles role_id="-3500"
name="info_publisher" />
<ccm_core.ccm_roles role_id="-3600"
name="info_content_reader" />
<ccm_core.task_assignments task_assignment_id="-910"
task_id="-100100"
role_id="-3200" />
<ccm_core.task_assignments task_assignment_id="-920"
task_id="-100100"
role_id="-3300" />
<ccm_core.task_assignments task_assignment_id="-930"
task_id="-110100"
role_id="-3200" />
<ccm_cms.content_section_roles role_id="-3100"
section_id="-1100" />
<ccm_cms.content_section_roles role_id="-3200"
section_id="-1100" />
<ccm_cms.content_section_roles role_id="-3300"
section_id="-1100" />
<ccm_cms.content_section_roles role_id="-3400"
section_id="-1100" />
<ccm_cms.content_section_roles role_id="-3500"
section_id="-1100" />
<ccm_cms.content_section_roles role_id="-3600"
section_id="-1100" />
<ccm_core.permissions permission_id="-4110"
granted_privilege="categorize_items"
object_id="-2100"
grantee_id="-3200"
creation_date="2016-07-15"/>
<ccm_core.permissions permission_id="-4120"
granted_privilege="create_new_items"
object_id="-2100"
grantee_id="-3200"
creation_date="2016-07-15"/>
<ccm_core.permissions permission_id="-4130"
granted_privilege="edit_items"
object_id="-2100"
grantee_id="-3200"
creation_date="2016-07-15"/>
<ccm_core.permissions permission_id="-4140"
granted_privilege="view_published_items"
object_id="-2100"
grantee_id="-3200"
creation_date="2016-07-15"/>
<ccm_core.permissions permission_id="-4150"
granted_privilege="preview_items"
object_id="-2100"
grantee_id="-3200"
creation_date="2016-07-15"/>
<ccm_core.permissions permission_id="-4210"
granted_privilege="categorize_items"
object_id="-2100"
grantee_id="-3300"
creation_date="2016-07-15"/>
<ccm_core.permissions permission_id="-4220"
granted_privilege="create_new_items"
object_id="-2100"
grantee_id="-3300"
creation_date="2016-07-15"/>
<ccm_core.permissions permission_id="-4230"
granted_privilege="edit_items"
object_id="-2100"
grantee_id="-3300"
creation_date="2016-07-15"/>
<ccm_core.permissions permission_id="-4240"
granted_privilege="approve_items"
object_id="-2100"
grantee_id="-3300"
creation_date="2016-07-15"/>
<ccm_core.permissions permission_id="-4250"
granted_privilege="delete_items"
object_id="-2100"
grantee_id="-3300"
creation_date="2016-07-15"/>
<ccm_core.permissions permission_id="-4260"
granted_privilege="view_published_items"
object_id="-2100"
grantee_id="-3300"
creation_date="2016-07-15"/>
<ccm_core.permissions permission_id="-4270"
granted_privilege="preview_items"
object_id="-2100"
grantee_id="-3300"
creation_date="2016-07-15"/>
<ccm_core.permissions permission_id="-4310"
granted_privilege="administer_roles"
object_id="-1100"
grantee_id="-3400"
creation_date="2016-07-15"/>
<ccm_core.permissions permission_id="-4320"
granted_privilege="administer_workflow"
object_id="-1100"
grantee_id="-3400"
creation_date="2016-07-15"/>
<ccm_core.permissions permission_id="-4330"
granted_privilege="administer_lifecyles"
object_id="-1100"
grantee_id="-3400"
creation_date="2016-07-15"/>
<ccm_core.permissions permission_id="-4340"
granted_privilege="administer_categories"
object_id="-1100"
grantee_id="-3400"
creation_date="2016-07-15"/>
<ccm_core.permissions permission_id="-4350"
granted_privilege="administer_content_types"
object_id="-1100"
grantee_id="-3400"
creation_date="2016-07-15"/>
<ccm_core.permissions permission_id="-4360"
granted_privilege="categorize_items"
object_id="-2100"
grantee_id="-3400"
creation_date="2016-07-15"/>
<ccm_core.permissions permission_id="-4370"
granted_privilege="create_new_items"
object_id="-2100"
grantee_id="-3400"
creation_date="2016-07-15"/>
<ccm_core.permissions permission_id="-4380"
granted_privilege="edit_items"
object_id="-2100"
grantee_id="-3400"
creation_date="2016-07-15"/>
<ccm_core.permissions permission_id="-4390"
granted_privilege="approve_items"
object_id="-2100"
grantee_id="-3400"
creation_date="2016-07-15"/>
<ccm_core.permissions permission_id="-4400"
granted_privilege="publish_items"
object_id="-2100"
grantee_id="-3400"
creation_date="2016-07-15"/>
<ccm_core.permissions permission_id="-4410"
granted_privilege="delete_items"
object_id="-2100"
grantee_id="-3400"
creation_date="2016-07-15"/>
<ccm_core.permissions permission_id="-4420"
granted_privilege="view_published_items"
object_id="-2100"
grantee_id="-3400"
creation_date="2016-07-15"/>
<ccm_core.permissions permission_id="-4430"
granted_privilege="preview_items"
object_id="-2100"
grantee_id="-3400"
creation_date="2016-07-15"/>
<ccm_core.permissions permission_id="-4510"
granted_privilege="categorize_items"
object_id="-2100"
grantee_id="-3500"
creation_date="2016-07-15"/>
<ccm_core.permissions permission_id="-4520"
granted_privilege="create_new_items"
object_id="-2100"
grantee_id="-3500"
creation_date="2016-07-15"/>
<ccm_core.permissions permission_id="-4530"
granted_privilege="edit_items"
object_id="-2100"
grantee_id="-3500"
creation_date="2016-07-15"/>
<ccm_core.permissions permission_id="-4540"
granted_privilege="approve_items"
object_id="-2100"
grantee_id="-3500"
creation_date="2016-07-15"/>
<ccm_core.permissions permission_id="-4550"
granted_privilege="publish_items"
object_id="-2100"
grantee_id="-3500"
creation_date="2016-07-15"/>
<ccm_core.permissions permission_id="-4560"
granted_privilege="delete_items"
object_id="-2100"
grantee_id="-3500"
creation_date="2016-07-15"/>
<ccm_core.permissions permission_id="-4570"
granted_privilege="view_published_items"
object_id="-2100"
grantee_id="-3500"
creation_date="2016-07-15"/>
<ccm_core.permissions permission_id="-4580"
granted_privilege="preview_items"
object_id="-2100"
grantee_id="-3500"
creation_date="2016-07-15"/>
<ccm_core.permissions permission_id="-4610"
granted_privilege="view_published_items"
object_id="-2100"
grantee_id="-3600"
creation_date="2016-07-15"/>
</dataset>