Search in sources :

Example 66 with PropertySet

use of com.enonic.xp.data.PropertySet in project xp by enonic.

the class SchedulerSerializer method toUpdateNodeData.

public static PropertyTree toUpdateNodeData(final ModifyScheduledJobParams params, final ScheduledJob original) {
    final ScheduledJob modifiedJob = editScheduledJob(params.getEditor(), original);
    final PropertyTree tree = new PropertyTree();
    final PropertySet data = tree.getRoot();
    data.ifNotNull().setString(ScheduledJobPropertyNames.DESCRIPTION, modifiedJob.getDescription());
    data.setBoolean(ScheduledJobPropertyNames.ENABLED, modifiedJob.isEnabled());
    addCalendar(modifiedJob, data);
    if (modifiedJob.getDescriptor() != null) {
        data.setString(ScheduledJobPropertyNames.DESCRIPTOR, modifiedJob.getDescriptor().toString());
    }
    if (modifiedJob.getConfig() != null) {
        data.setSet(ScheduledJobPropertyNames.CONFIG, modifiedJob.getConfig().getRoot().copy(data.getTree()));
    }
    if (modifiedJob.getUser() != null) {
        data.setString(ScheduledJobPropertyNames.USER, modifiedJob.getUser().toString());
    }
    if (modifiedJob.getCreator() != null) {
        data.setString(ScheduledJobPropertyNames.CREATOR, modifiedJob.getCreator().toString());
    }
    if (modifiedJob.getCreatedTime() != null) {
        data.setInstant(ScheduledJobPropertyNames.CREATED_TIME, modifiedJob.getCreatedTime());
    }
    data.setString(ScheduledJobPropertyNames.MODIFIER, getCurrentUser().getKey().toString());
    data.setInstant(ScheduledJobPropertyNames.MODIFIED_TIME, Instant.now());
    return tree;
}
Also used : ScheduledJob(com.enonic.xp.scheduler.ScheduledJob) EditableScheduledJob(com.enonic.xp.scheduler.EditableScheduledJob) PropertyTree(com.enonic.xp.data.PropertyTree) PropertySet(com.enonic.xp.data.PropertySet)

Example 67 with PropertySet

use of com.enonic.xp.data.PropertySet in project xp by enonic.

the class SchedulerSerializer method addCalendar.

private static void addCalendar(final CreateScheduledJobParams params, final PropertySet data) {
    final PropertySet calendarSet = new PropertySet();
    switch(params.getCalendar().getType()) {
        case CRON:
            final CronCalendar cronCalendar = ((CronCalendar) params.getCalendar());
            calendarSet.setString(ScheduledJobPropertyNames.CALENDAR_VALUE, cronCalendar.getCronValue());
            calendarSet.setString(ScheduledJobPropertyNames.CALENDAR_TIMEZONE, cronCalendar.getTimeZone().getID());
            calendarSet.setString(ScheduledJobPropertyNames.CALENDAR_TYPE, ScheduleCalendarType.CRON.name());
            break;
        case ONE_TIME:
            final OneTimeCalendar oneTimeCalendar = ((OneTimeCalendar) params.getCalendar());
            calendarSet.setString(ScheduledJobPropertyNames.CALENDAR_VALUE, oneTimeCalendar.getValue().toString());
            calendarSet.setString(ScheduledJobPropertyNames.CALENDAR_TYPE, ScheduleCalendarType.ONE_TIME.name());
            break;
        default:
            throw new IllegalStateException(String.format("invalid calendar type: '%s'", params.getCalendar().getType()));
    }
    data.setSet(ScheduledJobPropertyNames.CALENDAR, calendarSet);
}
Also used : CronCalendar(com.enonic.xp.scheduler.CronCalendar) OneTimeCalendar(com.enonic.xp.scheduler.OneTimeCalendar) PropertySet(com.enonic.xp.data.PropertySet)

Example 68 with PropertySet

use of com.enonic.xp.data.PropertySet in project xp by enonic.

the class SchedulerSerializer method addCalendar.

private static void addCalendar(final ScheduledJob modifiedJob, final PropertySet data) {
    final PropertySet calendarSet = new PropertySet();
    switch(modifiedJob.getCalendar().getType()) {
        case CRON:
            final CronCalendar cronCalendar = ((CronCalendar) modifiedJob.getCalendar());
            calendarSet.setString(ScheduledJobPropertyNames.CALENDAR_VALUE, cronCalendar.getCronValue());
            calendarSet.setString(ScheduledJobPropertyNames.CALENDAR_TIMEZONE, cronCalendar.getTimeZone().getID());
            calendarSet.setString(ScheduledJobPropertyNames.CALENDAR_TYPE, ScheduleCalendarType.CRON.name());
            break;
        case ONE_TIME:
            final OneTimeCalendar oneTimeCalendar = ((OneTimeCalendar) modifiedJob.getCalendar());
            calendarSet.setString(ScheduledJobPropertyNames.CALENDAR_VALUE, oneTimeCalendar.getValue().toString());
            calendarSet.setString(ScheduledJobPropertyNames.CALENDAR_TYPE, ScheduleCalendarType.ONE_TIME.name());
            break;
        default:
            throw new IllegalStateException(String.format("invalid calendar type: '%s'", modifiedJob.getCalendar().getType()));
    }
    data.setSet(ScheduledJobPropertyNames.CALENDAR, calendarSet);
}
Also used : CronCalendar(com.enonic.xp.scheduler.CronCalendar) OneTimeCalendar(com.enonic.xp.scheduler.OneTimeCalendar) PropertySet(com.enonic.xp.data.PropertySet)

Example 69 with PropertySet

use of com.enonic.xp.data.PropertySet in project xp by enonic.

the class ContentServiceImplTest_duplicate method data_removed_on_duplicate.

@Test
public void data_removed_on_duplicate() throws Exception {
    final CreateContentParams createContentParams = CreateContentParams.create().contentData(new PropertyTree()).displayName("rootContent").parent(ContentPath.ROOT).type(ContentTypeName.folder()).permissions(AccessControlList.create().build()).build();
    final Content content = this.contentService.create(createContentParams);
    this.nodeService.update(UpdateNodeParams.create().id(NodeId.from(content.getId())).editor(toBeEdited -> {
        toBeEdited.data.addSet(ContentPropertyNames.PUBLISH_INFO, new PropertySet());
        toBeEdited.data.addString(ContentPropertyNames.ORIGIN_PROJECT, "some-project");
        toBeEdited.data.addStrings(ContentPropertyNames.INHERIT, ContentInheritType.CONTENT.name(), ContentInheritType.NAME.name());
    }).build());
    final Content duplicateContent = doDuplicateContent(content);
    assertNull(duplicateContent.getPublishInfo());
    assertNull(duplicateContent.getOriginProject());
    assertTrue(duplicateContent.getInherit().isEmpty());
}
Also used : CreateContentParams(com.enonic.xp.content.CreateContentParams) Content(com.enonic.xp.content.Content) PropertyTree(com.enonic.xp.data.PropertyTree) PropertySet(com.enonic.xp.data.PropertySet) Test(org.junit.jupiter.api.Test)

Example 70 with PropertySet

use of com.enonic.xp.data.PropertySet in project xp by enonic.

the class ContentServiceImplTest_duplicate method audit_data.

@Test
public void audit_data() throws Exception {
    final ArgumentCaptor<LogAuditLogParams> captor = ArgumentCaptor.forClass(LogAuditLogParams.class);
    final Content rootContent = createContent(ContentPath.ROOT);
    final Content childContent = createContent(rootContent.getPath());
    final Content duplicatedContent = doDuplicateContent(rootContent);
    Mockito.verify(auditLogService, Mockito.timeout(5000).atLeast(17)).log(captor.capture());
    final PropertySet logResultSet = captor.getAllValues().stream().filter(log -> log.getType().equals("system.content.duplicate")).findFirst().get().getData().getSet("result");
    final Iterable<String> ids = logResultSet.getStrings("duplicatedContents");
    assertEquals(2, StreamSupport.stream(ids.spliterator(), false).count());
    assertTrue(StreamSupport.stream(ids.spliterator(), false).anyMatch(id -> id.equals(duplicatedContent.getId().toString())));
}
Also used : CreateContentParams(com.enonic.xp.content.CreateContentParams) Assertions.assertNotNull(org.junit.jupiter.api.Assertions.assertNotNull) IdProviderKey(com.enonic.xp.security.IdProviderKey) DuplicateContentParams(com.enonic.xp.content.DuplicateContentParams) Assertions.assertNull(org.junit.jupiter.api.Assertions.assertNull) ContentTypeName(com.enonic.xp.schema.content.ContentTypeName) ArgumentCaptor(org.mockito.ArgumentCaptor) Assertions.assertFalse(org.junit.jupiter.api.Assertions.assertFalse) ContextAccessor(com.enonic.xp.context.ContextAccessor) DuplicateContentsResult(com.enonic.xp.content.DuplicateContentsResult) StreamSupport(java.util.stream.StreamSupport) ContextBuilder(com.enonic.xp.context.ContextBuilder) Assertions.assertEquals(org.junit.jupiter.api.Assertions.assertEquals) LogAuditLogParams(com.enonic.xp.audit.LogAuditLogParams) PropertyTree(com.enonic.xp.data.PropertyTree) User(com.enonic.xp.security.User) ContentPropertyNames(com.enonic.xp.content.ContentPropertyNames) ContentPath(com.enonic.xp.content.ContentPath) PropertySet(com.enonic.xp.data.PropertySet) ContentInheritType(com.enonic.xp.content.ContentInheritType) Content(com.enonic.xp.content.Content) AuthenticationInfo(com.enonic.xp.security.auth.AuthenticationInfo) AccessControlList(com.enonic.xp.security.acl.AccessControlList) NodeId(com.enonic.xp.node.NodeId) UpdateNodeParams(com.enonic.xp.node.UpdateNodeParams) Test(org.junit.jupiter.api.Test) Mockito(org.mockito.Mockito) PrincipalKey(com.enonic.xp.security.PrincipalKey) Assertions.assertTrue(org.junit.jupiter.api.Assertions.assertTrue) RoleKeys(com.enonic.xp.security.RoleKeys) Context(com.enonic.xp.context.Context) AccessControlEntry(com.enonic.xp.security.acl.AccessControlEntry) LogAuditLogParams(com.enonic.xp.audit.LogAuditLogParams) Content(com.enonic.xp.content.Content) PropertySet(com.enonic.xp.data.PropertySet) Test(org.junit.jupiter.api.Test)

Aggregations

PropertySet (com.enonic.xp.data.PropertySet)225 PropertyTree (com.enonic.xp.data.PropertyTree)150 Test (org.junit.jupiter.api.Test)69 Content (com.enonic.xp.content.Content)30 Node (com.enonic.xp.node.Node)20 CreateContentParams (com.enonic.xp.content.CreateContentParams)12 ContentId (com.enonic.xp.content.ContentId)11 Property (com.enonic.xp.data.Property)11 LogAuditLogParams (com.enonic.xp.audit.LogAuditLogParams)10 PrincipalKey (com.enonic.xp.security.PrincipalKey)9 ContentQuery (com.enonic.xp.content.ContentQuery)7 DescriptorKey (com.enonic.xp.page.DescriptorKey)7 ExtraDatas (com.enonic.xp.content.ExtraDatas)6 Form (com.enonic.xp.form.Form)6 PatternIndexConfigDocument (com.enonic.xp.index.PatternIndexConfigDocument)6 CreateAttachment (com.enonic.xp.attachment.CreateAttachment)5 ContentPropertyNames (com.enonic.xp.content.ContentPropertyNames)5 ExtraData (com.enonic.xp.content.ExtraData)5 PropertyPath (com.enonic.xp.data.PropertyPath)5 Page (com.enonic.xp.page.Page)5