2014-11-22 2 views
0

У меня возникли проблемы с записью свойств cq:PageContent. releaseDate (тип Date) дает мне некоторые проблемы. Следующий метод из теста sling-junit, где я звоню из метода @Before.Настройка свойства JCR Date

private void setNewsReleaseDate(Resource res, int month) 
     throws InvalidDateException { 
    String date = "2014-%sT11:31:00.000-04:00"; //07-23 
    Calendar rd = DateUtil.parseISO8601(String.format(date, "0"+month+"-23")); //iso8601Date 
    ModifiableValueMap modMap = res.adaptTo(ModifiableValueMap.class); 
    if (modMap != null) { 
     modMap.put("releaseDate", rd); // this is a Date property 
     /* also tried below, which also fails 
     modMap.put("releaseDate", String.format(date, "0"+month+"-23"));    
     */ 
    } 
} 

Я получаю эту ошибку ...

Value for key releaseDate can't be put into node:java.util.GregorianCalendar[time=1406129460000,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="GMT-04:00",offset=-14400000,dstSavings=0,useDaylight=false,transitions=0,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2014,MONTH=6,WEEK_OF_.... ]

ответ

0

Я изменил метод, передавая на странице, а затем получить /jcr:content ниже страницы, что я хотел, чтобы изменить свойства. ..

private void setNewsReleaseDate(Page page, int month) throws InvalidDateException{ 
    LOGGER.info("change prop at page path "+page.getPath()); 
    Resource res = rr.getResource(page.getPath()+"/jcr:content"); 
    String date = "2014-%sT11:31:00.000-04:00"; //07-23 
    Calendar rd = DateUtil.parseISO8601(String.format(date, "0"+month+"-23")); //iso8601Date   
    ModifiableValueMap modMap = res.adaptTo(ModifiableValueMap.class); 
    if (modMap != null) { 
     modMap.put("releaseDate", rd); // this is a Date property 
     modMap.put("notes", "hello"); // a string property 
    } 
} 
Смежные вопросы