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/27 10:01:05 UTC
svn commit: r1780531 [2/2] - in /openmeetings/application:
branches/3.2.x/openmeetings-db/
branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/
branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/cal...
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInPage.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInPage.java?rev=1780531&r1=1780530&r2=1780531&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInPage.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInPage.java Fri Jan 27 10:01:04 2017
@@ -59,14 +59,13 @@ import org.apache.openmeetings.web.app.W
import org.apache.openmeetings.web.pages.BaseInitedPage;
import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.json.JSONException;
-import org.apache.wicket.ajax.json.JSONObject;
import org.apache.wicket.markup.head.IHeaderResponse;
import org.apache.wicket.request.IRequestParameters;
import org.apache.wicket.request.cycle.RequestCycle;
import org.apache.wicket.request.flow.RedirectToUrlException;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.apache.wicket.util.string.StringValue;
+import org.json.JSONObject;
import org.red5.logging.Red5LoggerFactory;
import org.slf4j.Logger;
@@ -75,15 +74,15 @@ public class SignInPage extends BaseInit
private static final Logger log = Red5LoggerFactory.getLogger(SignInPage.class, webAppRootKey);
private SignInDialog d;
private KickMessageDialog m;
-
+
static boolean allowRegister() {
return "1".equals(getBean(ConfigurationDao.class).getConfValue(CONFIG_FRONTEND_REGISTER_KEY, String.class, "0"));
}
-
+
static boolean allowOAuthLogin() {
return getBean(OAuth2Dao.class).getActive().size() > 0;
}
-
+
public SignInPage(PageParameters p) {
super();
StringValue oauthid = p.get("oauthid");
@@ -96,7 +95,7 @@ public class SignInPage extends BaseInit
log.warn("OAuth server id=" + serverId + " not found");
return;
}
-
+
if (p.get("code").toString() != null) { // got code
String code = p.get("code").toString();
log.debug("OAuth response code=" + code);
@@ -108,7 +107,7 @@ public class SignInPage extends BaseInit
loginViaOAuth2(authParams, serverId);
}
} else { // redirect to get code
- String redirectUrl = prepareUrlParams(server.getRequestKeyUrl(), server.getClientId(),
+ String redirectUrl = prepareUrlParams(server.getRequestKeyUrl(), server.getClientId(),
null, null, getRedirectUri(server, this), null);
log.debug("redirectUrl=" + redirectUrl);
throw new RedirectToUrlException(redirectUrl);
@@ -129,7 +128,7 @@ public class SignInPage extends BaseInit
log.error("Failed to login using POST parameters passed");
}
}
-
+
RegisterDialog r = new RegisterDialog("register");
ForgetPasswordDialog f = new ForgetPasswordDialog("forget");
d = new SignInDialog("signin");
@@ -138,27 +137,27 @@ public class SignInPage extends BaseInit
r.setSignInDialog(d);
f.setSignInDialog(d);
m = new KickMessageDialog("kick");
- add(d.setVisible(!WebSession.get().isKickedByAdmin()),
+ add(d.setVisible(!WebSession.get().isKickedByAdmin()),
r.setVisible(allowRegister()), f, m.setVisible(WebSession.get().isKickedByAdmin()));
}
-
+
public SignInPage() {
this(new PageParameters());
}
-
+
@Override
public void renderHead(IHeaderResponse response) {
super.renderHead(response);
}
-
+
@Override
protected void onParameterArrival(IRequestParameters params, AjaxRequestTarget arg1) {
WebSession.get().setArea(getUrlFragment(params));
}
-
+
// ============= OAuth2 methods =============
- public String prepareUrlParams(String urlTemplate, String clientId, String clientSecret,
+ public String prepareUrlParams(String urlTemplate, String clientId, String clientSecret,
String clientToken, String redirectUri, String code) throws UnsupportedEncodingException {
String result = urlTemplate;
if (clientId != null) {
@@ -192,7 +191,7 @@ public class SignInPage extends BaseInit
}
return result;
}
-
+
private static void prepareConnection(URLConnection connection) {
if (!(connection instanceof HttpsURLConnection)) {
return;
@@ -212,7 +211,7 @@ public class SignInPage extends BaseInit
public X509Certificate[] getAcceptedIssuers() {
return null;
}
-
+
}};
try {
SSLContext sslContext = SSLContext.getInstance("SSL");
@@ -220,12 +219,12 @@ public class SignInPage extends BaseInit
SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory();
((HttpsURLConnection) connection).setSSLSocketFactory(sslSocketFactory);
((HttpsURLConnection) connection).setHostnameVerifier(new HostnameVerifier() {
-
+
@Override
public boolean verify(String arg0, SSLSession arg1) {
return true;
}
-
+
});
} catch (Exception e) {
log.error("[prepareConnection]", e);
@@ -236,7 +235,7 @@ public class SignInPage extends BaseInit
String requestTokenBaseUrl = server.getRequestTokenUrl();
// build url params to request auth token
String requestTokenParams = server.getRequestTokenAttributes();
- requestTokenParams = prepareUrlParams(requestTokenParams, server.getClientId(), server.getClientSecret(),
+ requestTokenParams = prepareUrlParams(requestTokenParams, server.getClientId(), server.getClientSecret(),
null, getRedirectUri(server, this), code);
// request auth token
HttpURLConnection urlConnection = (HttpURLConnection) new URL(requestTokenBaseUrl).openConnection();
@@ -254,29 +253,18 @@ public class SignInPage extends BaseInit
String sourceResponse = IOUtils.toString(urlConnection.getInputStream(), UTF_8);
// parse json result
AuthInfo result = new AuthInfo();
- try {
- JSONObject jsonResult = new JSONObject(sourceResponse.toString());
- if (jsonResult.has("access_token")) {
- result.accessToken = jsonResult.getString("access_token");
- }
- if (jsonResult.has("refresh_token")) {
- result.refreshToken = jsonResult.getString("refresh_token");
- }
- if (jsonResult.has("token_type")) {
- result.tokenType = jsonResult.getString("token_type");
- }
- if (jsonResult.has("expires_in")) {
- result.expiresIn = jsonResult.getLong("expires_in");
- }
- } catch (JSONException e) {
- // try to parse as canonical
- Map<String, String> parsedMap = parseCanonicalResponse(sourceResponse.toString());
- result.accessToken = parsedMap.get("access_token");
- result.refreshToken = parsedMap.get("refresh_token");
- result.tokenType = parsedMap.get("token_type");
- try {
- result.expiresIn = Long.valueOf(parsedMap.get("expires_in"));
- } catch (NumberFormatException nfe) {}
+ JSONObject jsonResult = new JSONObject(sourceResponse.toString());
+ if (jsonResult.has("access_token")) {
+ result.accessToken = jsonResult.getString("access_token");
+ }
+ if (jsonResult.has("refresh_token")) {
+ result.refreshToken = jsonResult.getString("refresh_token");
+ }
+ if (jsonResult.has("token_type")) {
+ result.tokenType = jsonResult.getString("token_type");
+ }
+ if (jsonResult.has("expires_in")) {
+ result.expiresIn = jsonResult.getLong("expires_in");
}
// access token must be specified
if (result.accessToken == null) {
@@ -285,19 +273,7 @@ public class SignInPage extends BaseInit
}
return result;
}
-
- private static Map<String, String> parseCanonicalResponse(String response) {
- String[] parts = response.split("&");
- Map<String, String> result = new HashMap<String, String>();
- for (String part: parts) {
- String pair[] = part.split("=");
- if (pair.length > 1) {
- result.put(pair[0], pair[1]);
- }
- }
- return result;
- }
-
+
private Map<String, String> getAuthParams(String token, String code, OAuthServer server) throws IOException {
// get attributes names
String loginAttributeName = server.getLoginParamName();
@@ -306,7 +282,7 @@ public class SignInPage extends BaseInit
String lastname = server.getLastnameParamName();
// prepare url
String requestInfoUrl = server.getRequestInfoUrl();
- requestInfoUrl = prepareUrlParams(requestInfoUrl, server.getClientId(), server.getClientSecret(),
+ requestInfoUrl = prepareUrlParams(requestInfoUrl, server.getClientId(), server.getClientSecret(),
token, getRedirectUri(server, this), code);
// send request
URLConnection connection = new URL(requestInfoUrl).openConnection();
@@ -314,27 +290,14 @@ public class SignInPage extends BaseInit
String sourceResponse = IOUtils.toString(connection.getInputStream(), UTF_8);
// parse json result
Map<String, String> result = new HashMap<>();
- try {
- JSONObject parsedJson = new JSONObject(sourceResponse);
- result.put("login", parsedJson.getString(loginAttributeName));
- result.put("email", parsedJson.getString(emailAttributeName));
- if (parsedJson.has(firstname)) {
- result.put("firstname", parsedJson.getString(firstname));
- }
- if (parsedJson.has(lastname)) {
- result.put("lastname", parsedJson.getString(lastname));
- }
- } catch (JSONException e) {
- // try to parse response as canonical
- Map<String, String> parsedMap = parseCanonicalResponse(sourceResponse);
- result.put("login", parsedMap.get(loginAttributeName));
- result.put("email", parsedMap.get(emailAttributeName));
- if (parsedMap.containsKey(firstname)) {
- result.put("firstname", parsedMap.get(firstname));
- }
- if (parsedMap.containsKey(lastname)) {
- result.put("lastname", parsedMap.get(lastname));
- }
+ JSONObject parsedJson = new JSONObject(sourceResponse);
+ result.put("login", parsedJson.getString(loginAttributeName));
+ result.put("email", parsedJson.getString(emailAttributeName));
+ if (parsedJson.has(firstname)) {
+ result.put("firstname", parsedJson.getString(firstname));
+ }
+ if (parsedJson.has(lastname)) {
+ result.put("lastname", parsedJson.getString(lastname));
}
return result;
}
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/SwfPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/SwfPanel.java?rev=1780531&r1=1780530&r2=1780531&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/SwfPanel.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/SwfPanel.java Fri Jan 27 10:01:04 2017
@@ -22,8 +22,6 @@ import static org.apache.wicket.RuntimeC
import org.apache.openmeetings.web.app.Application;
import org.apache.openmeetings.web.common.BasePanel;
-import org.apache.wicket.ajax.json.JSONArray;
-import org.apache.wicket.ajax.json.JSONObject;
import org.apache.wicket.markup.head.CssHeaderItem;
import org.apache.wicket.markup.head.IHeaderResponse;
import org.apache.wicket.markup.head.JavaScriptHeaderItem;
@@ -35,17 +33,19 @@ import org.apache.wicket.request.resourc
import org.apache.wicket.request.resource.ResourceReference;
import org.apache.wicket.util.string.StringValue;
import org.apache.wicket.util.string.Strings;
+import org.json.JSONArray;
+import org.json.JSONObject;
public class SwfPanel extends BasePanel {
private static final long serialVersionUID = 1L;
public static final String SWF = "swf";
public static final String SWF_TYPE_NETWORK = "network";
public static final String SWF_TYPE_SETTINGS = "settings";
-
+
public SwfPanel(String id) {
this(id, new PageParameters());
}
-
+
public String getInitFunction() {
return getInitFunction(new PageParameters());
}
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java?rev=1780531&r1=1780530&r2=1780531&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java Fri Jan 27 10:01:04 2017
@@ -42,7 +42,6 @@ import org.apache.openmeetings.web.room.
import org.apache.openmeetings.web.room.RoomPanel.Action;
import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior;
import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.json.JSONObject;
import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
import org.apache.wicket.extensions.markup.html.tabs.ITab;
import org.apache.wicket.markup.head.IHeaderResponse;
@@ -57,6 +56,7 @@ import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.util.string.StringValue;
import org.apache.wicket.util.string.Strings;
+import org.json.JSONObject;
import org.red5.logging.Red5LoggerFactory;
import org.slf4j.Logger;
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java?rev=1780531&r1=1780530&r2=1780531&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java Fri Jan 27 10:01:04 2017
@@ -18,6 +18,7 @@
*/
package org.apache.openmeetings.web.user;
+import static org.apache.openmeetings.db.util.AuthLevelUtil.hasAdminLevel;
import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DASHBOARD_SHOW_CHAT;
import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
import static org.apache.openmeetings.web.app.Application.getBean;
@@ -25,13 +26,12 @@ import static org.apache.openmeetings.we
import static org.apache.openmeetings.web.app.Application.getUserRooms;
import static org.apache.openmeetings.web.app.Application.isUserInRoom;
import static org.apache.openmeetings.web.app.WebSession.getDateFormat;
+import static org.apache.openmeetings.web.app.WebSession.getRights;
import static org.apache.openmeetings.web.app.WebSession.getUserId;
import static org.apache.openmeetings.web.room.RoomPanel.isModerator;
import static org.apache.openmeetings.web.util.CallbackFunctionHelper.getNamedFunction;
import static org.apache.openmeetings.web.util.ProfileImageResourceReference.getUrl;
import static org.apache.wicket.ajax.attributes.CallbackParameter.explicit;
-import static org.apache.openmeetings.db.util.AuthLevelUtil.hasAdminLevel;
-import static org.apache.openmeetings.web.app.WebSession.getRights;
import java.time.Duration;
import java.time.Instant;
@@ -56,9 +56,6 @@ import org.apache.openmeetings.web.commo
import org.apache.wicket.Component;
import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior;
import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.json.JSONArray;
-import org.apache.wicket.ajax.json.JSONException;
-import org.apache.wicket.ajax.json.JSONObject;
import org.apache.wicket.authroles.authorization.strategies.role.annotations.AuthorizeInstantiation;
import org.apache.wicket.behavior.Behavior;
import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
@@ -75,6 +72,8 @@ import org.apache.wicket.protocol.ws.api
import org.apache.wicket.protocol.ws.api.registry.IWebSocketConnectionRegistry;
import org.apache.wicket.protocol.ws.api.registry.PageIdKey;
import org.apache.wicket.request.resource.JavaScriptResourceReference;
+import org.json.JSONArray;
+import org.json.JSONObject;
import org.red5.logging.Red5LoggerFactory;
import org.slf4j.Logger;
@@ -99,7 +98,7 @@ public class ChatPanel extends BasePanel
@Override
protected void respond(AjaxRequestTarget target) {
try {
- long msgId = getRequest().getRequestParameters().getParameterValue(PARAM_MSG_ID).toLong();
+ long msgId = getRequest().getRequestParameters().getParameterValue(PARAM_MSG_ID).toLong();
long roomId = getRequest().getRequestParameters().getParameterValue(PARAM_ROOM_ID).toLong();
ChatDao dao = getBean(ChatDao.class);
ChatMessage m = dao.get(msgId);
@@ -133,11 +132,11 @@ public class ChatPanel extends BasePanel
return o.put("scope", scope).put("scopeName", scopeName);
}
- public JSONObject getMessage(List<ChatMessage> list) throws JSONException {
+ public JSONObject getMessage(List<ChatMessage> list) {
return getMessage(getUserId(), list);
}
- private JSONObject getMessage(long curUserId, List<ChatMessage> list) throws JSONException {
+ private JSONObject getMessage(long curUserId, List<ChatMessage> list) {
JSONArray arr = new JSONArray();
for (ChatMessage m : list) {
String smsg = m.getMessage();
@@ -170,21 +169,17 @@ public class ChatPanel extends BasePanel
@Override
public void renderHead(Component component, IHeaderResponse response) {
ChatDao dao = getBean(ChatDao.class);
- try {
- //FIXME limited count should be loaded with "earlier" link
- List<ChatMessage> list = new ArrayList<ChatMessage>(dao.getGlobal(0, 30));
- for(Long roomId : getUserRooms(getUserId())) {
- Room r = getBean(RoomDao.class).get(roomId);
- list.addAll(dao.getRoom(roomId, 0, 30, !r.isChatModerated() || isModerator(getUserId(), roomId)));
- }
- list.addAll(dao.getUserRecent(getUserId(), Date.from(Instant.now().minus(Duration.ofHours(1L))), 0, 30));
- if (list.size() > 0) {
- StringBuilder sb = new StringBuilder();
- sb.append("addChatMessage(").append(getMessage(list).toString()).append(");");
- response.render(OnDomReadyHeaderItem.forScript(sb.toString()));
- }
- } catch (JSONException e) {
-
+ //FIXME limited count should be loaded with "earlier" link
+ List<ChatMessage> list = new ArrayList<ChatMessage>(dao.getGlobal(0, 30));
+ for(Long roomId : getUserRooms(getUserId())) {
+ Room r = getBean(RoomDao.class).get(roomId);
+ list.addAll(dao.getRoom(roomId, 0, 30, !r.isChatModerated() || isModerator(getUserId(), roomId)));
+ }
+ list.addAll(dao.getUserRecent(getUserId(), Date.from(Instant.now().minus(Duration.ofHours(1L))), 0, 30));
+ if (list.size() > 0) {
+ StringBuilder sb = new StringBuilder();
+ sb.append("addChatMessage(").append(getMessage(list).toString()).append(");");
+ response.render(OnDomReadyHeaderItem.forScript(sb.toString()));
}
super.renderHead(component, response);
}
@@ -274,7 +269,7 @@ public class ChatPanel extends BasePanel
private final ChatToolbar toolbar = new ChatToolbar("toolbarContainer");
private final WysiwygEditor chatMessage = new WysiwygEditor("chatMessage", Model.of(""), toolbar);
private final HiddenField<String> activeTab = new HiddenField<String>("activeTab", Model.of(""));
-
+
ChatForm(String id) {
super(id);
add(toolbar
@@ -282,7 +277,7 @@ public class ChatPanel extends BasePanel
, chatMessage.setOutputMarkupId(true)
, new AjaxButton("send") {
private static final long serialVersionUID = 1L;
-
+
@Override
protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
ChatDao dao = getBean(ChatDao.class);
@@ -354,7 +349,7 @@ public class ChatPanel extends BasePanel
};
});
}
-
+
@Override
protected void onInitialize() {
super.onInitialize();
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java?rev=1780531&r1=1780530&r2=1780531&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java Fri Jan 27 10:01:04 2017
@@ -43,9 +43,6 @@ import org.apache.openmeetings.web.commo
import org.apache.wicket.ajax.AbstractAjaxTimerBehavior;
import org.apache.wicket.ajax.AjaxEventBehavior;
import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.json.JSONArray;
-import org.apache.wicket.ajax.json.JSONException;
-import org.apache.wicket.ajax.json.JSONObject;
import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
import org.apache.wicket.markup.head.IHeaderResponse;
import org.apache.wicket.markup.head.JavaScriptHeaderItem;
@@ -57,6 +54,8 @@ import org.apache.wicket.model.CompoundP
import org.apache.wicket.model.LoadableDetachableModel;
import org.apache.wicket.model.PropertyModel;
import org.apache.wicket.util.time.Duration;
+import org.json.JSONArray;
+import org.json.JSONObject;
import org.red5.logging.Red5LoggerFactory;
import org.slf4j.Logger;
import org.threeten.bp.LocalDateTime;
@@ -169,20 +168,16 @@ public class CalendarPanel extends UserP
JSONArray shortMonthes = new JSONArray();
JSONArray days = new JSONArray();
JSONArray shortDays = new JSONArray();
- try {
- // first week day must be Sunday
- days.put(0, Application.getString(466));
- shortDays.put(0, Application.getString(459));
- for (int i = 0; i < 12; i++) {
- monthes.put(i, Application.getString(469 + i));
- shortMonthes.put(i, Application.getString(1556 + i));
- if (i + 1 < 7) {
- days.put(i + 1, Application.getString(460 + i));
- shortDays.put(i + 1, Application.getString(453 + i));
- }
+ // first week day must be Sunday
+ days.put(0, Application.getString(466));
+ shortDays.put(0, Application.getString(459));
+ for (int i = 0; i < 12; i++) {
+ monthes.put(i, Application.getString(469 + i));
+ shortMonthes.put(i, Application.getString(1556 + i));
+ if (i + 1 < 7) {
+ days.put(i + 1, Application.getString(460 + i));
+ shortDays.put(i + 1, Application.getString(453 + i));
}
- } catch (JSONException e) {
- log.error("Unexpected error while creating label lists", e);
}
options.set("monthNames", monthes.toString());
options.set("monthNamesShort", shortMonthes.toString());
Modified: openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml?rev=1780531&r1=1780530&r2=1780531&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml Fri Jan 27 10:01:04 2017
@@ -281,6 +281,8 @@
<ref bean="netTestWebService"/> <!-- JaxRs only -->
</jaxrs:serviceBeans>
<jaxrs:providers>
+ <bean id="appDtoMessageBodyWriter" class="org.apache.openmeetings.webservice.util.AppointmentMessageBodyWriter" />
+ <bean id="appDtoListMessageBodyWriter" class="org.apache.openmeetings.webservice.util.AppointmentListMessageBodyWriter" />
<bean id="omParamProvider" class="org.apache.openmeetings.webservice.util.OmParamConverterProvider"/>
</jaxrs:providers>
</jaxrs:server>
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=1780531&r1=1780530&r2=1780531&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 27 10:01:04 2017
@@ -46,8 +46,8 @@ import org.apache.openmeetings.db.entity
import org.apache.openmeetings.db.entity.user.GroupUser;
import org.apache.openmeetings.db.entity.user.User;
import org.apache.openmeetings.webservice.util.AppointmentParamConverter;
-import org.apache.wicket.ajax.json.JSONArray;
-import org.apache.wicket.ajax.json.JSONObject;
+import org.json.JSONArray;
+import org.json.JSONObject;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
Modified: 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=1780531&r1=1780530&r2=1780531&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestWebConverters.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestWebConverters.java Fri Jan 27 10:01:04 2017
@@ -29,7 +29,7 @@ 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.json.JSONObject;
import org.junit.Test;
public class TestWebConverters {
Added: openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/AppointmentListMessageBodyWriter.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/AppointmentListMessageBodyWriter.java?rev=1780531&view=auto
==============================================================================
--- openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/AppointmentListMessageBodyWriter.java (added)
+++ openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/AppointmentListMessageBodyWriter.java Fri Jan 27 10:01:04 2017
@@ -0,0 +1,76 @@
+/*
+ * 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.webservice.util;
+
+import static org.apache.openmeetings.webservice.util.AppointmentParamConverter.ROOT;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.PrintWriter;
+import java.io.Writer;
+import java.lang.annotation.Annotation;
+import java.lang.reflect.ParameterizedType;
+import java.lang.reflect.Type;
+import java.util.List;
+
+import javax.ws.rs.Produces;
+import javax.ws.rs.WebApplicationException;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.MultivaluedMap;
+import javax.ws.rs.ext.MessageBodyWriter;
+import javax.ws.rs.ext.Provider;
+
+import org.apache.openmeetings.db.dto.calendar.AppointmentDTO;
+import org.json.JSONArray;
+import org.json.JSONObject;
+
+@Provider
+@Produces({MediaType.APPLICATION_JSON})
+public class AppointmentListMessageBodyWriter implements MessageBodyWriter<List<AppointmentDTO>> {
+ @Override
+ public boolean isWriteable(Class<?> clazz, Type type, Annotation[] annotations, MediaType mediaType) {
+ if (type instanceof ParameterizedType) {
+ ParameterizedType pt = (ParameterizedType)type;
+ Type[] args = pt.getActualTypeArguments();
+ if (args != null && args.length == 1) {
+ return AppointmentDTO.class.equals(args[0]);
+ }
+ }
+ return false;
+ }
+
+ @Override
+ public long getSize(List<AppointmentDTO> t, Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType) {
+ return 0;
+ }
+
+ @Override
+ public void writeTo(List<AppointmentDTO> t, Class<?> type, Type genericType, Annotation[] annotations,
+ MediaType mediaType, MultivaluedMap<String, Object> httpHeaders, OutputStream out)
+ throws IOException, WebApplicationException
+ {
+ Writer writer = new PrintWriter(out);
+ JSONArray rr = new JSONArray();
+ for (AppointmentDTO dto : t) {
+ rr.put(AppointmentParamConverter.json(dto));
+ }
+ writer.write(new JSONObject().put(ROOT, rr).toString());
+ writer.flush();
+ }
+}
Added: openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/AppointmentMessageBodyWriter.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/AppointmentMessageBodyWriter.java?rev=1780531&view=auto
==============================================================================
--- openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/AppointmentMessageBodyWriter.java (added)
+++ openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/AppointmentMessageBodyWriter.java Fri Jan 27 10:01:04 2017
@@ -0,0 +1,62 @@
+/*
+ * 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.webservice.util;
+
+import static org.apache.openmeetings.webservice.util.AppointmentParamConverter.ROOT;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.PrintWriter;
+import java.io.Writer;
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Type;
+
+import javax.ws.rs.Produces;
+import javax.ws.rs.WebApplicationException;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.MultivaluedMap;
+import javax.ws.rs.ext.MessageBodyWriter;
+import javax.ws.rs.ext.Provider;
+
+import org.apache.openmeetings.db.dto.calendar.AppointmentDTO;
+import org.json.JSONObject;
+
+@Provider
+@Produces({MediaType.APPLICATION_JSON})
+public class AppointmentMessageBodyWriter implements MessageBodyWriter<AppointmentDTO> {
+ @Override
+ public boolean isWriteable(Class<?> clazz, Type type, Annotation[] annotations, MediaType mediaType) {
+ return AppointmentDTO.class.equals(type);
+ }
+
+ @Override
+ public long getSize(AppointmentDTO t, Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType) {
+ return 0;
+ }
+
+ @Override
+ public void writeTo(AppointmentDTO t, Class<?> type, Type genericType, Annotation[] annotations,
+ MediaType mediaType, MultivaluedMap<String, Object> httpHeaders, OutputStream out)
+ throws IOException, WebApplicationException
+ {
+ Writer writer = new PrintWriter(out);
+ writer.write(new JSONObject().put(ROOT, AppointmentParamConverter.json(t)).toString().toString());
+ writer.flush();
+ }
+}
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=1780531&r1=1780530&r2=1780531&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 27 10:01:04 2017
@@ -31,10 +31,12 @@ import org.apache.openmeetings.db.dto.ca
import org.apache.openmeetings.db.dto.room.RoomDTO;
import org.apache.openmeetings.db.dto.user.UserDTO;
import org.apache.openmeetings.db.entity.calendar.Appointment.Reminder;
-import org.apache.wicket.ajax.json.JSONArray;
-import org.apache.wicket.ajax.json.JSONObject;
+import org.json.JSONArray;
+import org.json.JSONObject;
public class AppointmentParamConverter implements ParamConverter<AppointmentDTO> {
+ public static final String ROOT = "appointmentDTO";
+
@Override
public AppointmentDTO fromString(String val) {
JSONObject o = new JSONObject(val);
@@ -49,7 +51,7 @@ public class AppointmentParamConverter i
a.setDescription(o.optString("description"));
a.setInserted(DateParamConverter.get(o.optString("inserted")));
a.setUpdated(DateParamConverter.get(o.optString("updated")));
- a.setDeleted(o.optBoolean("inserted"));
+ a.setDeleted(o.optBoolean("deleted"));
a.setReminder(optEnum(Reminder.class, o, "reminder"));
a.setRoom(RoomDTO.get(o.optJSONObject("room")));
a.setIcalId(o.optString("icalId"));
@@ -69,22 +71,11 @@ public class AppointmentParamConverter i
public static JSONObject json(AppointmentDTO val) {
Date i = val.getInserted(), u = val.getUpdated();
- JSONObject o = new JSONObject(val)
- .put("owner", UserDTO.json(val.getOwner()))
- .put("room", RoomDTO.json(val.getRoom()))
- .put("reminder", val.getReminder() == null ? null : val.getReminder().name())
+ return new JSONObject(val)
.put("start", ISO8601_FULL_FORMAT.format(val.getStart()))
.put("end", ISO8601_FULL_FORMAT.format(val.getEnd()))
.put("inserted", i == null ? null : ISO8601_FULL_FORMAT.format(i))
.put("updated", u == null ? null : ISO8601_FULL_FORMAT.format(u));
- if (val.getMeetingMembers() != null) {
- JSONArray rr = new JSONArray();
- for(MeetingMemberDTO mm : val.getMeetingMembers()) {
- rr.put(MeetingMemberDTO.json(mm));
- }
- o.put("meetingMembers", rr);
- }
- return o;
}
@Override