Skip to content

Commit eda8fd4

Browse files
committed
[controller] add default timezone to iCalendar
1 parent 401ca8b commit eda8fd4

File tree

2 files changed

+26
-1
lines changed

2 files changed

+26
-1
lines changed

shongo-controller/src/main/java/cz/cesnet/shongo/controller/util/iCalendar.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
import net.fortuna.ical4j.model.parameter.Role;
1010
import net.fortuna.ical4j.model.property.*;
1111
import org.joda.time.DateTimeZone;
12+
import org.slf4j.Logger;
13+
import org.slf4j.LoggerFactory;
1214

1315
import java.net.URISyntaxException;
1416
import java.util.LinkedList;
@@ -23,6 +25,14 @@
2325
*/
2426
public class iCalendar
2527
{
28+
29+
private static final Logger logger = LoggerFactory.getLogger(iCalendar.class);
30+
31+
/**
32+
* Default time zone id.
33+
*/
34+
private static final String DEFAULT_TIME_ZONE_ID = "Europe/Prague";
35+
2636
/**
2737
* @see net.fortuna.ical4j.model.Calendar
2838
*/
@@ -167,7 +177,8 @@ private VTimeZone getVTimeZone(org.joda.time.DateTimeZone dateTimeZone)
167177
{
168178
TimeZone timezone = timeZoneRegistry.getTimeZone(dateTimeZone.getID());
169179
if (timezone == null) {
170-
throw new IllegalArgumentException("Unknown timezone " + dateTimeZone);
180+
logger.info("Unknown timezone {}. Using default timezone {}.", dateTimeZone, DEFAULT_TIME_ZONE_ID);
181+
timezone = timeZoneRegistry.getTimeZone(DEFAULT_TIME_ZONE_ID);
171182
}
172183
return timezone.getVTimeZone();
173184
}

shongo-controller/src/test/java/cz/cesnet/shongo/controller/util/iCalendarTest.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,20 @@ public void testCancel() throws Exception
5858
finish("delete", calendar);
5959
}
6060

61+
@Test
62+
public void testUnknownTimezone() throws Exception
63+
{
64+
iCalendar calendar = new iCalendar();
65+
calendar.setMethod(iCalendar.Method.CREATE);
66+
iCalendar.Event event = calendar.addEvent(DOMAIN, EVENT_ID, "Testing meeting 3");
67+
event.setOrganizer(ORGANIZER);
68+
event.setSequence(0);
69+
event.setDescription("description");
70+
event.setInterval(Interval.parse("2014-02-11T17:30/2014-02-11T18:30"), DateTimeZone.forID("CET"));
71+
event.addAttendee("Martin Srom", ATTENDEE);
72+
finish("create", calendar);
73+
}
74+
6175
private void finish(String subject, iCalendar calendar) throws Exception
6276
{
6377
System.out.println(calendar);

0 commit comments

Comments
 (0)