You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2017/01/20 03:01:21 UTC
svn commit: r1779552 - in /openmeetings/application:
branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/calendar/
branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/
branches/3.1.x/openmeetings-db/...
Author: solomax
Date: Fri Jan 20 03:01:21 2017
New Revision: 1779552
URL: http://svn.apache.org/viewvc?rev=1779552&view=rev
Log:
[OPENMEETINGS-1533] appointment can be created
Added:
openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestWebConverters.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestWebConverters.java
openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestWebConverters.java
Modified:
openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/calendar/AppointmentDTO.java
openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/calendar/MeetingMemberDTO.java
openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomDTO.java
openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/UserDTO.java
openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestCalendarService.java
openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/AppointmentParamConverter.java
openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/CalendarParamConverter.java
openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/DateParamConverter.java
openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/OmParamConverterProvider.java
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/calendar/AppointmentDTO.java
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/calendar/MeetingMemberDTO.java
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomDTO.java
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/UserDTO.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestCalendarService.java
openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/AppointmentParamConverter.java
openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/CalendarParamConverter.java
openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/DateParamConverter.java
openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/OmParamConverterProvider.java
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/calendar/AppointmentDTO.java
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/calendar/MeetingMemberDTO.java
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomDTO.java
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/UserDTO.java
openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestCalendarService.java
openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/AppointmentParamConverter.java
openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/CalendarParamConverter.java
openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/DateParamConverter.java
openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/OmParamConverterProvider.java
Modified: openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/calendar/AppointmentDTO.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/calendar/AppointmentDTO.java?rev=1779552&r1=1779551&r2=1779552&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/calendar/AppointmentDTO.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/calendar/AppointmentDTO.java Fri Jan 20 03:01:21 2017
@@ -100,7 +100,7 @@ public class AppointmentDTO implements S
a.setStart(start.getTime());
a.setEnd(end.getTime());
a.setDescription(description);
- a.setOwner(owner.get(userDao));
+ a.setOwner(owner == null ? null : owner.get(userDao));
a.setInserted(inserted);
a.setUpdated(updated);
a.setDeleted(deleted);
Modified: openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/calendar/MeetingMemberDTO.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/calendar/MeetingMemberDTO.java?rev=1779552&r1=1779551&r2=1779552&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/calendar/MeetingMemberDTO.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/calendar/MeetingMemberDTO.java Fri Jan 20 03:01:21 2017
@@ -68,7 +68,8 @@ public class MeetingMemberDTO implements
public static MeetingMemberDTO get(JSONObject o) {
MeetingMemberDTO m = new MeetingMemberDTO();
- m.id = o.optLong("id");
+ long id = o.optLong("id");
+ m.id = id == 0 ? null : id;
m.user = UserDTO.get(o.optJSONObject("user"));
return m;
}
Modified: openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomDTO.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomDTO.java?rev=1779552&r1=1779551&r2=1779552&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomDTO.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomDTO.java Fri Jan 20 03:01:21 2017
@@ -19,7 +19,6 @@
package org.apache.openmeetings.db.dto.room;
import static org.apache.openmeetings.db.dto.room.RoomOptionsDTO.optInt;
-import static org.apache.openmeetings.db.dto.room.RoomOptionsDTO.optLong;
import java.io.Serializable;
import java.util.ArrayList;
@@ -346,8 +345,12 @@ public class RoomDTO implements Serializ
}
public static RoomDTO get(JSONObject o) {
+ if (o == null) {
+ return null;
+ }
RoomDTO r = new RoomDTO();
- r.id = optLong(o, "id");
+ long id = o.optLong("id");
+ r.id = id == 0 ? null : id;
r.name = o.optString("name");
r.comment = o.optString("comment");
r.type = Room.Type.valueOf(o.getString("type"));
Modified: openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/UserDTO.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/UserDTO.java?rev=1779552&r1=1779551&r2=1779552&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/UserDTO.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/UserDTO.java Fri Jan 20 03:01:21 2017
@@ -187,8 +187,12 @@ public class UserDTO implements Serializ
}
public static UserDTO get(JSONObject o) {
+ if (o == null) {
+ return null;
+ }
UserDTO u = new UserDTO();
- u.id = o.optLong("id");
+ long id = o.optLong("id");
+ u.id = id == 0 ? null : id;
u.login = o.optString("login");
u.password = o.optString("password");
u.firstname = o.optString("firstname");
Modified: openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestCalendarService.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestCalendarService.java?rev=1779552&r1=1779551&r2=1779552&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestCalendarService.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestCalendarService.java Fri Jan 20 03:01:21 2017
@@ -18,8 +18,11 @@
*/
package org.apache.openmeetings.test.webservice;
+import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
+import java.time.LocalDate;
+import java.time.ZoneId;
import java.util.Date;
import java.util.UUID;
@@ -31,6 +34,7 @@ import org.apache.openmeetings.db.entity
import org.apache.openmeetings.db.entity.room.Room;
import org.apache.openmeetings.db.entity.user.GroupUser;
import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.webservice.util.DateParamConverter;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
@@ -65,4 +69,12 @@ public class TestCalendarService extends
public void testGetByPublicRoom() throws Exception {
actualTest(roomDao.get(5L)); //default public restricted room
}
+
+ @Test
+ public void testDateConverter() throws Exception {
+ assertEquals("Null date should be parsed", null, DateParamConverter.get(null));
+ assertEquals("Date should be parsed"
+ , Date.from(LocalDate.of(2017, 01, 15).atStartOfDay(ZoneId.systemDefault()).toInstant())
+ , DateParamConverter.get("2017-01-15"));
+ }
}
Added: openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestWebConverters.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestWebConverters.java?rev=1779552&view=auto
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestWebConverters.java (added)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestWebConverters.java Fri Jan 20 03:01:21 2017
@@ -0,0 +1,60 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") + you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test.webservice;
+
+import static org.junit.Assert.assertEquals;
+
+import java.time.LocalDate;
+import java.time.ZoneId;
+import java.time.ZonedDateTime;
+import java.util.Calendar;
+import java.util.Date;
+
+import org.apache.openmeetings.db.dto.user.UserDTO;
+import org.apache.openmeetings.webservice.util.CalendarParamConverter;
+import org.apache.openmeetings.webservice.util.DateParamConverter;
+import org.apache.wicket.ajax.json.JSONObject;
+import org.junit.Test;
+
+public class TestWebConverters {
+ @Test
+ public void testDateConverter() throws Exception {
+ assertEquals("Null date should be parsed", null, DateParamConverter.get(null));
+ assertEquals("Date should be parsed"
+ , Date.from(LocalDate.of(2017, 01, 15).atStartOfDay(ZoneId.systemDefault()).toInstant())
+ , DateParamConverter.get("2017-01-15"));
+ assertEquals("Date should be parsed"
+ , Date.from(ZonedDateTime.of(2017, 01, 20, 20, 30, 03, 0, ZoneId.of("Europe/Moscow")).toInstant())
+ , DateParamConverter.get("2017-01-20T20:30:03+0300"));
+ }
+
+ @Test
+ public void testCalendarConverter() throws Exception {
+ CalendarParamConverter c = new CalendarParamConverter();
+ assertEquals("Null calendar should be parsed", null, c.fromString(null));
+ Calendar cal = Calendar.getInstance();
+ cal.setTime(Date.from(LocalDate.of(2017, 01, 15).atStartOfDay(ZoneId.systemDefault()).toInstant()));
+ assertEquals("Calendar should be parsed", cal, c.fromString("2017-01-15"));
+ }
+
+ @Test
+ public void testUserConverter() throws Exception {
+ assertEquals("Null UserDTO should be parsed", null, UserDTO.get((JSONObject)null));
+ }
+}
Modified: openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/AppointmentParamConverter.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/AppointmentParamConverter.java?rev=1779552&r1=1779551&r2=1779552&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/AppointmentParamConverter.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/AppointmentParamConverter.java Fri Jan 20 03:01:21 2017
@@ -35,15 +35,17 @@ public class AppointmentParamConverter i
public AppointmentDTO fromString(String val) {
JSONObject o = new JSONObject(val);
AppointmentDTO a = new AppointmentDTO();
- a.setId(o.optLong("id"));
+ long id = o.optLong("id");
+ a.setId(id == 0 ? null : id);
a.setTitle(o.optString("title"));
a.setLocation(o.optString("location"));
a.setOwner(UserDTO.get(o.optJSONObject("owner")));
- a.setStart(CalendarParamConverter.get(o.optString("start"), a.getOwner().getTimeZoneId()));
- a.setEnd(CalendarParamConverter.get(o.optString("end"), a.getOwner().getTimeZoneId()));
+ String tzId = a.getOwner() == null ? null : a.getOwner().getTimeZoneId();
+ a.setStart(CalendarParamConverter.get(o.optString("start"), tzId));
+ a.setEnd(CalendarParamConverter.get(o.optString("end"), tzId));
a.setDescription(o.optString("description"));
a.setInserted(DateParamConverter.get(o.optString("inserted")));
- a.setInserted(DateParamConverter.get(o.optString("updated")));
+ a.setUpdated(DateParamConverter.get(o.optString("updated")));
a.setDeleted(o.optBoolean("inserted"));
a.setReminder(Reminder.valueOf(o.optString("reminder")));
a.setRoom(RoomDTO.get(o.optJSONObject("room")));
Modified: openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/CalendarParamConverter.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/CalendarParamConverter.java?rev=1779552&r1=1779551&r2=1779552&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/CalendarParamConverter.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/CalendarParamConverter.java Fri Jan 20 03:01:21 2017
@@ -25,15 +25,20 @@ import java.util.TimeZone;
import javax.ws.rs.ext.ParamConverter;
+import org.apache.wicket.util.string.Strings;
+
public class CalendarParamConverter implements ParamConverter<Calendar> {
public static Calendar get(String val, String tzId) {
- Calendar c = Calendar.getInstance(TimeZone.getTimeZone(tzId));
+ Calendar c = Strings.isEmpty(tzId) ? Calendar.getInstance() : Calendar.getInstance(TimeZone.getTimeZone(tzId));
c.setTime(DateParamConverter.get(val));
return c;
}
@Override
public Calendar fromString(String val) {
+ if (Strings.isEmpty(val)) {
+ return null;
+ }
Calendar c = Calendar.getInstance();
c.setTime(DateParamConverter.get(val));
return c;
Modified: openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/DateParamConverter.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/DateParamConverter.java?rev=1779552&r1=1779551&r2=1779552&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/DateParamConverter.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/DateParamConverter.java Fri Jan 20 03:01:21 2017
@@ -28,11 +28,15 @@ import java.util.Date;
import javax.ws.rs.ext.ParamConverter;
import org.apache.commons.lang3.time.FastDateFormat;
+import org.apache.wicket.util.string.Strings;
public class DateParamConverter implements ParamConverter<Date> {
private final static FastDateFormat[] formats = new FastDateFormat[] { ISO8601_FULL_FORMAT, ISO8601_DATETIME_FORMAT, ISO8601_DATE_FORMAT };
- static Date get(String val) {
+ public static Date get(String val) {
+ if (Strings.isEmpty(val)) {
+ return null;
+ }
for (FastDateFormat df : formats) {
try {
return df.parse(val);
@@ -40,7 +44,7 @@ public class DateParamConverter implemen
// no-op
}
}
- throw new IllegalArgumentException("Unparsable format");
+ throw new IllegalArgumentException("Unparsable format: " + val);
}
@Override
Modified: openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/OmParamConverterProvider.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/OmParamConverterProvider.java?rev=1779552&r1=1779551&r2=1779552&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/OmParamConverterProvider.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/OmParamConverterProvider.java Fri Jan 20 03:01:21 2017
@@ -38,7 +38,7 @@ public class OmParamConverterProvider im
} else if (Date.class.isAssignableFrom(rawType)) {
return (ParamConverter<T>)new DateParamConverter();
} else if (AppointmentDTO.class.isAssignableFrom(rawType)) {
- return (ParamConverter<T>)new DateParamConverter();
+ return (ParamConverter<T>)new AppointmentParamConverter();
}
return null;
}
Modified: openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/calendar/AppointmentDTO.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/calendar/AppointmentDTO.java?rev=1779552&r1=1779551&r2=1779552&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/calendar/AppointmentDTO.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/calendar/AppointmentDTO.java Fri Jan 20 03:01:21 2017
@@ -100,7 +100,7 @@ public class AppointmentDTO implements S
a.setStart(start.getTime());
a.setEnd(end.getTime());
a.setDescription(description);
- a.setOwner(owner.get(userDao));
+ a.setOwner(owner == null ? null : owner.get(userDao));
a.setInserted(inserted);
a.setUpdated(updated);
a.setDeleted(deleted);
Modified: openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/calendar/MeetingMemberDTO.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/calendar/MeetingMemberDTO.java?rev=1779552&r1=1779551&r2=1779552&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/calendar/MeetingMemberDTO.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/calendar/MeetingMemberDTO.java Fri Jan 20 03:01:21 2017
@@ -68,7 +68,8 @@ public class MeetingMemberDTO implements
public static MeetingMemberDTO get(JSONObject o) {
MeetingMemberDTO m = new MeetingMemberDTO();
- m.id = o.optLong("id");
+ long id = o.optLong("id");
+ m.id = id == 0 ? null : id;
m.user = UserDTO.get(o.optJSONObject("user"));
return m;
}
Modified: openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomDTO.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomDTO.java?rev=1779552&r1=1779551&r2=1779552&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomDTO.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomDTO.java Fri Jan 20 03:01:21 2017
@@ -284,8 +284,12 @@ public class RoomDTO implements Serializ
}
public static RoomDTO get(JSONObject o) {
+ if (o == null) {
+ return null;
+ }
RoomDTO r = new RoomDTO();
- r.id = optLong(o, "id");
+ long id = o.optLong("id");
+ r.id = id == 0 ? null : id;
r.name = o.optString("name");
r.comment = o.optString("comment");
r.type = Room.Type.valueOf(o.getString("type"));
Modified: openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/UserDTO.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/UserDTO.java?rev=1779552&r1=1779551&r2=1779552&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/UserDTO.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/UserDTO.java Fri Jan 20 03:01:21 2017
@@ -187,8 +187,12 @@ public class UserDTO implements Serializ
}
public static UserDTO get(JSONObject o) {
+ if (o == null) {
+ return null;
+ }
UserDTO u = new UserDTO();
- u.id = o.optLong("id");
+ long id = o.optLong("id");
+ u.id = id == 0 ? null : id;
u.login = o.optString("login");
u.password = o.optString("password");
u.firstname = o.optString("firstname");
Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestCalendarService.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestCalendarService.java?rev=1779552&r1=1779551&r2=1779552&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestCalendarService.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestCalendarService.java Fri Jan 20 03:01:21 2017
@@ -18,8 +18,11 @@
*/
package org.apache.openmeetings.test.webservice;
+import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
+import java.time.LocalDate;
+import java.time.ZoneId;
import java.util.Date;
import java.util.UUID;
@@ -31,6 +34,7 @@ import org.apache.openmeetings.db.entity
import org.apache.openmeetings.db.entity.room.Room;
import org.apache.openmeetings.db.entity.user.GroupUser;
import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.webservice.util.DateParamConverter;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
@@ -65,4 +69,12 @@ public class TestCalendarService extends
public void testGetByPublicRoom() throws Exception {
actualTest(roomDao.get(5L)); //default public restricted room
}
+
+ @Test
+ public void testDateConverter() throws Exception {
+ assertEquals("Null date should be parsed", null, DateParamConverter.get(null));
+ assertEquals("Date should be parsed"
+ , Date.from(LocalDate.of(2017, 01, 15).atStartOfDay(ZoneId.systemDefault()).toInstant())
+ , DateParamConverter.get("2017-01-15"));
+ }
}
Added: openmeetings/application/branches/3.2.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestWebConverters.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestWebConverters.java?rev=1779552&view=auto
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestWebConverters.java (added)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestWebConverters.java Fri Jan 20 03:01:21 2017
@@ -0,0 +1,60 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") + you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test.webservice;
+
+import static org.junit.Assert.assertEquals;
+
+import java.time.LocalDate;
+import java.time.ZoneId;
+import java.time.ZonedDateTime;
+import java.util.Calendar;
+import java.util.Date;
+
+import org.apache.openmeetings.db.dto.user.UserDTO;
+import org.apache.openmeetings.webservice.util.CalendarParamConverter;
+import org.apache.openmeetings.webservice.util.DateParamConverter;
+import org.apache.wicket.ajax.json.JSONObject;
+import org.junit.Test;
+
+public class TestWebConverters {
+ @Test
+ public void testDateConverter() throws Exception {
+ assertEquals("Null date should be parsed", null, DateParamConverter.get(null));
+ assertEquals("Date should be parsed"
+ , Date.from(LocalDate.of(2017, 01, 15).atStartOfDay(ZoneId.systemDefault()).toInstant())
+ , DateParamConverter.get("2017-01-15"));
+ assertEquals("Date should be parsed"
+ , Date.from(ZonedDateTime.of(2017, 01, 20, 20, 30, 03, 0, ZoneId.of("Europe/Moscow")).toInstant())
+ , DateParamConverter.get("2017-01-20T20:30:03+0300"));
+ }
+
+ @Test
+ public void testCalendarConverter() throws Exception {
+ CalendarParamConverter c = new CalendarParamConverter();
+ assertEquals("Null calendar should be parsed", null, c.fromString(null));
+ Calendar cal = Calendar.getInstance();
+ cal.setTime(Date.from(LocalDate.of(2017, 01, 15).atStartOfDay(ZoneId.systemDefault()).toInstant()));
+ assertEquals("Calendar should be parsed", cal, c.fromString("2017-01-15"));
+ }
+
+ @Test
+ public void testUserConverter() throws Exception {
+ assertEquals("Null UserDTO should be parsed", null, UserDTO.get((JSONObject)null));
+ }
+}
Modified: openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/AppointmentParamConverter.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/AppointmentParamConverter.java?rev=1779552&r1=1779551&r2=1779552&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/AppointmentParamConverter.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/AppointmentParamConverter.java Fri Jan 20 03:01:21 2017
@@ -35,15 +35,17 @@ public class AppointmentParamConverter i
public AppointmentDTO fromString(String val) {
JSONObject o = new JSONObject(val);
AppointmentDTO a = new AppointmentDTO();
- a.setId(o.optLong("id"));
+ long id = o.optLong("id");
+ a.setId(id == 0 ? null : id);
a.setTitle(o.optString("title"));
a.setLocation(o.optString("location"));
a.setOwner(UserDTO.get(o.optJSONObject("owner")));
- a.setStart(CalendarParamConverter.get(o.optString("start"), a.getOwner().getTimeZoneId()));
- a.setEnd(CalendarParamConverter.get(o.optString("end"), a.getOwner().getTimeZoneId()));
+ String tzId = a.getOwner() == null ? null : a.getOwner().getTimeZoneId();
+ a.setStart(CalendarParamConverter.get(o.optString("start"), tzId));
+ a.setEnd(CalendarParamConverter.get(o.optString("end"), tzId));
a.setDescription(o.optString("description"));
a.setInserted(DateParamConverter.get(o.optString("inserted")));
- a.setInserted(DateParamConverter.get(o.optString("updated")));
+ a.setUpdated(DateParamConverter.get(o.optString("updated")));
a.setDeleted(o.optBoolean("inserted"));
a.setReminder(Reminder.valueOf(o.optString("reminder")));
a.setRoom(RoomDTO.get(o.optJSONObject("room")));
Modified: openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/CalendarParamConverter.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/CalendarParamConverter.java?rev=1779552&r1=1779551&r2=1779552&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/CalendarParamConverter.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/CalendarParamConverter.java Fri Jan 20 03:01:21 2017
@@ -25,15 +25,20 @@ import java.util.TimeZone;
import javax.ws.rs.ext.ParamConverter;
+import org.apache.wicket.util.string.Strings;
+
public class CalendarParamConverter implements ParamConverter<Calendar> {
public static Calendar get(String val, String tzId) {
- Calendar c = Calendar.getInstance(TimeZone.getTimeZone(tzId));
+ Calendar c = Strings.isEmpty(tzId) ? Calendar.getInstance() : Calendar.getInstance(TimeZone.getTimeZone(tzId));
c.setTime(DateParamConverter.get(val));
return c;
}
@Override
public Calendar fromString(String val) {
+ if (Strings.isEmpty(val)) {
+ return null;
+ }
Calendar c = Calendar.getInstance();
c.setTime(DateParamConverter.get(val));
return c;
Modified: openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/DateParamConverter.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/DateParamConverter.java?rev=1779552&r1=1779551&r2=1779552&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/DateParamConverter.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/DateParamConverter.java Fri Jan 20 03:01:21 2017
@@ -28,11 +28,15 @@ import java.util.Date;
import javax.ws.rs.ext.ParamConverter;
import org.apache.commons.lang3.time.FastDateFormat;
+import org.apache.wicket.util.string.Strings;
public class DateParamConverter implements ParamConverter<Date> {
private final static FastDateFormat[] formats = new FastDateFormat[] { ISO8601_FULL_FORMAT, ISO8601_DATETIME_FORMAT, ISO8601_DATE_FORMAT };
- static Date get(String val) {
+ public static Date get(String val) {
+ if (Strings.isEmpty(val)) {
+ return null;
+ }
for (FastDateFormat df : formats) {
try {
return df.parse(val);
@@ -40,7 +44,7 @@ public class DateParamConverter implemen
// no-op
}
}
- throw new IllegalArgumentException("Unparsable format");
+ throw new IllegalArgumentException("Unparsable format: " + val);
}
@Override
Modified: openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/OmParamConverterProvider.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/OmParamConverterProvider.java?rev=1779552&r1=1779551&r2=1779552&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/OmParamConverterProvider.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/OmParamConverterProvider.java Fri Jan 20 03:01:21 2017
@@ -38,7 +38,7 @@ public class OmParamConverterProvider im
} else if (Date.class.isAssignableFrom(rawType)) {
return (ParamConverter<T>)new DateParamConverter();
} else if (AppointmentDTO.class.isAssignableFrom(rawType)) {
- return (ParamConverter<T>)new DateParamConverter();
+ return (ParamConverter<T>)new AppointmentParamConverter();
}
return null;
}
Modified: openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/calendar/AppointmentDTO.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/calendar/AppointmentDTO.java?rev=1779552&r1=1779551&r2=1779552&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/calendar/AppointmentDTO.java (original)
+++ openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/calendar/AppointmentDTO.java Fri Jan 20 03:01:21 2017
@@ -100,7 +100,7 @@ public class AppointmentDTO implements S
a.setStart(start.getTime());
a.setEnd(end.getTime());
a.setDescription(description);
- a.setOwner(owner.get(userDao));
+ a.setOwner(owner == null ? null : owner.get(userDao));
a.setInserted(inserted);
a.setUpdated(updated);
a.setDeleted(deleted);
Modified: openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/calendar/MeetingMemberDTO.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/calendar/MeetingMemberDTO.java?rev=1779552&r1=1779551&r2=1779552&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/calendar/MeetingMemberDTO.java (original)
+++ openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/calendar/MeetingMemberDTO.java Fri Jan 20 03:01:21 2017
@@ -68,7 +68,8 @@ public class MeetingMemberDTO implements
public static MeetingMemberDTO get(JSONObject o) {
MeetingMemberDTO m = new MeetingMemberDTO();
- m.id = o.optLong("id");
+ long id = o.optLong("id");
+ m.id = id == 0 ? null : id;
m.user = UserDTO.get(o.optJSONObject("user"));
return m;
}
Modified: openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomDTO.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomDTO.java?rev=1779552&r1=1779551&r2=1779552&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomDTO.java (original)
+++ openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomDTO.java Fri Jan 20 03:01:21 2017
@@ -284,8 +284,12 @@ public class RoomDTO implements Serializ
}
public static RoomDTO get(JSONObject o) {
+ if (o == null) {
+ return null;
+ }
RoomDTO r = new RoomDTO();
- r.id = optLong(o, "id");
+ long id = o.optLong("id");
+ r.id = id == 0 ? null : id;
r.name = o.optString("name");
r.comment = o.optString("comment");
r.type = Room.Type.valueOf(o.getString("type"));
Modified: openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/UserDTO.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/UserDTO.java?rev=1779552&r1=1779551&r2=1779552&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/UserDTO.java (original)
+++ openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/UserDTO.java Fri Jan 20 03:01:21 2017
@@ -187,8 +187,12 @@ public class UserDTO implements Serializ
}
public static UserDTO get(JSONObject o) {
+ if (o == null) {
+ return null;
+ }
UserDTO u = new UserDTO();
- u.id = o.optLong("id");
+ long id = o.optLong("id");
+ u.id = id == 0 ? null : id;
u.login = o.optString("login");
u.password = o.optString("password");
u.firstname = o.optString("firstname");
Modified: openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestCalendarService.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestCalendarService.java?rev=1779552&r1=1779551&r2=1779552&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestCalendarService.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestCalendarService.java Fri Jan 20 03:01:21 2017
@@ -18,8 +18,11 @@
*/
package org.apache.openmeetings.test.webservice;
+import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
+import java.time.LocalDate;
+import java.time.ZoneId;
import java.util.Date;
import java.util.UUID;
@@ -31,6 +34,7 @@ import org.apache.openmeetings.db.entity
import org.apache.openmeetings.db.entity.room.Room;
import org.apache.openmeetings.db.entity.user.GroupUser;
import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.webservice.util.DateParamConverter;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
@@ -65,4 +69,12 @@ public class TestCalendarService extends
public void testGetByPublicRoom() throws Exception {
actualTest(roomDao.get(5L)); //default public restricted room
}
+
+ @Test
+ public void testDateConverter() throws Exception {
+ assertEquals("Null date should be parsed", null, DateParamConverter.get(null));
+ assertEquals("Date should be parsed"
+ , Date.from(LocalDate.of(2017, 01, 15).atStartOfDay(ZoneId.systemDefault()).toInstant())
+ , DateParamConverter.get("2017-01-15"));
+ }
}
Added: openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestWebConverters.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestWebConverters.java?rev=1779552&view=auto
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestWebConverters.java (added)
+++ openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestWebConverters.java Fri Jan 20 03:01:21 2017
@@ -0,0 +1,60 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") + you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test.webservice;
+
+import static org.junit.Assert.assertEquals;
+
+import java.time.LocalDate;
+import java.time.ZoneId;
+import java.time.ZonedDateTime;
+import java.util.Calendar;
+import java.util.Date;
+
+import org.apache.openmeetings.db.dto.user.UserDTO;
+import org.apache.openmeetings.webservice.util.CalendarParamConverter;
+import org.apache.openmeetings.webservice.util.DateParamConverter;
+import org.apache.wicket.ajax.json.JSONObject;
+import org.junit.Test;
+
+public class TestWebConverters {
+ @Test
+ public void testDateConverter() throws Exception {
+ assertEquals("Null date should be parsed", null, DateParamConverter.get(null));
+ assertEquals("Date should be parsed"
+ , Date.from(LocalDate.of(2017, 01, 15).atStartOfDay(ZoneId.systemDefault()).toInstant())
+ , DateParamConverter.get("2017-01-15"));
+ assertEquals("Date should be parsed"
+ , Date.from(ZonedDateTime.of(2017, 01, 20, 20, 30, 03, 0, ZoneId.of("Europe/Moscow")).toInstant())
+ , DateParamConverter.get("2017-01-20T20:30:03+0300"));
+ }
+
+ @Test
+ public void testCalendarConverter() throws Exception {
+ CalendarParamConverter c = new CalendarParamConverter();
+ assertEquals("Null calendar should be parsed", null, c.fromString(null));
+ Calendar cal = Calendar.getInstance();
+ cal.setTime(Date.from(LocalDate.of(2017, 01, 15).atStartOfDay(ZoneId.systemDefault()).toInstant()));
+ assertEquals("Calendar should be parsed", cal, c.fromString("2017-01-15"));
+ }
+
+ @Test
+ public void testUserConverter() throws Exception {
+ assertEquals("Null UserDTO should be parsed", null, UserDTO.get((JSONObject)null));
+ }
+}
Modified: openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/AppointmentParamConverter.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/AppointmentParamConverter.java?rev=1779552&r1=1779551&r2=1779552&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/AppointmentParamConverter.java (original)
+++ openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/AppointmentParamConverter.java Fri Jan 20 03:01:21 2017
@@ -35,15 +35,17 @@ public class AppointmentParamConverter i
public AppointmentDTO fromString(String val) {
JSONObject o = new JSONObject(val);
AppointmentDTO a = new AppointmentDTO();
- a.setId(o.optLong("id"));
+ long id = o.optLong("id");
+ a.setId(id == 0 ? null : id);
a.setTitle(o.optString("title"));
a.setLocation(o.optString("location"));
a.setOwner(UserDTO.get(o.optJSONObject("owner")));
- a.setStart(CalendarParamConverter.get(o.optString("start"), a.getOwner().getTimeZoneId()));
- a.setEnd(CalendarParamConverter.get(o.optString("end"), a.getOwner().getTimeZoneId()));
+ String tzId = a.getOwner() == null ? null : a.getOwner().getTimeZoneId();
+ a.setStart(CalendarParamConverter.get(o.optString("start"), tzId));
+ a.setEnd(CalendarParamConverter.get(o.optString("end"), tzId));
a.setDescription(o.optString("description"));
a.setInserted(DateParamConverter.get(o.optString("inserted")));
- a.setInserted(DateParamConverter.get(o.optString("updated")));
+ a.setUpdated(DateParamConverter.get(o.optString("updated")));
a.setDeleted(o.optBoolean("inserted"));
a.setReminder(Reminder.valueOf(o.optString("reminder")));
a.setRoom(RoomDTO.get(o.optJSONObject("room")));
Modified: openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/CalendarParamConverter.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/CalendarParamConverter.java?rev=1779552&r1=1779551&r2=1779552&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/CalendarParamConverter.java (original)
+++ openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/CalendarParamConverter.java Fri Jan 20 03:01:21 2017
@@ -25,15 +25,20 @@ import java.util.TimeZone;
import javax.ws.rs.ext.ParamConverter;
+import org.apache.wicket.util.string.Strings;
+
public class CalendarParamConverter implements ParamConverter<Calendar> {
public static Calendar get(String val, String tzId) {
- Calendar c = Calendar.getInstance(TimeZone.getTimeZone(tzId));
+ Calendar c = Strings.isEmpty(tzId) ? Calendar.getInstance() : Calendar.getInstance(TimeZone.getTimeZone(tzId));
c.setTime(DateParamConverter.get(val));
return c;
}
@Override
public Calendar fromString(String val) {
+ if (Strings.isEmpty(val)) {
+ return null;
+ }
Calendar c = Calendar.getInstance();
c.setTime(DateParamConverter.get(val));
return c;
Modified: openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/DateParamConverter.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/DateParamConverter.java?rev=1779552&r1=1779551&r2=1779552&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/DateParamConverter.java (original)
+++ openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/DateParamConverter.java Fri Jan 20 03:01:21 2017
@@ -28,11 +28,15 @@ import java.util.Date;
import javax.ws.rs.ext.ParamConverter;
import org.apache.commons.lang3.time.FastDateFormat;
+import org.apache.wicket.util.string.Strings;
public class DateParamConverter implements ParamConverter<Date> {
private final static FastDateFormat[] formats = new FastDateFormat[] { ISO8601_FULL_FORMAT, ISO8601_DATETIME_FORMAT, ISO8601_DATE_FORMAT };
- static Date get(String val) {
+ public static Date get(String val) {
+ if (Strings.isEmpty(val)) {
+ return null;
+ }
for (FastDateFormat df : formats) {
try {
return df.parse(val);
@@ -40,7 +44,7 @@ public class DateParamConverter implemen
// no-op
}
}
- throw new IllegalArgumentException("Unparsable format");
+ throw new IllegalArgumentException("Unparsable format: " + val);
}
@Override
Modified: openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/OmParamConverterProvider.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/OmParamConverterProvider.java?rev=1779552&r1=1779551&r2=1779552&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/OmParamConverterProvider.java (original)
+++ openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/OmParamConverterProvider.java Fri Jan 20 03:01:21 2017
@@ -38,7 +38,7 @@ public class OmParamConverterProvider im
} else if (Date.class.isAssignableFrom(rawType)) {
return (ParamConverter<T>)new DateParamConverter();
} else if (AppointmentDTO.class.isAssignableFrom(rawType)) {
- return (ParamConverter<T>)new DateParamConverter();
+ return (ParamConverter<T>)new AppointmentParamConverter();
}
return null;
}